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,34 @@
|
|
|
1
|
+
import type { HtmlArtifactPreviewOptions } from "../types/client.js";
|
|
2
|
+
import type { ArtifactTheme } from "../types/artifact.js";
|
|
3
|
+
/**
|
|
4
|
+
* Render a host {@link ArtifactTheme} into a `<style>` block exposing its values
|
|
5
|
+
* as CSS custom properties inside the iframe, plus sensible base color/font so
|
|
6
|
+
* artifacts inherit the host look. Background is intentionally left transparent
|
|
7
|
+
* (the host surface shows through — essential for seamless mode).
|
|
8
|
+
*/
|
|
9
|
+
export declare function themeToCss(theme: ArtifactTheme): string;
|
|
10
|
+
export interface BuildSrcDocOptions {
|
|
11
|
+
sanitize?: boolean;
|
|
12
|
+
seamless?: boolean;
|
|
13
|
+
/** Force the document + any single full-page wrapper transparent (camouflage). */
|
|
14
|
+
camouflage?: boolean;
|
|
15
|
+
/** Host theme injected as CSS variables + base color/font into the iframe. */
|
|
16
|
+
theme?: ArtifactTheme;
|
|
17
|
+
sanitizeOptions?: Pick<HtmlArtifactPreviewOptions, "allowForms" | "allowInlineStyles" | "allowStyleTags" | "allowSvg" | "allowExternalFonts">;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Produce the final `srcDoc` string for the preview iframe: sanitized (by
|
|
21
|
+
* default), wrapped into a complete document if needed, with seamless base
|
|
22
|
+
* styles and `<base target="_blank">` so any links open in a new tab.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildSrcDoc(rawHtml: string, options?: BuildSrcDocOptions): string;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the sandbox attribute. An explicit `sandbox` wins; otherwise we build
|
|
27
|
+
* a minimal token set from the flags. Forbidden tokens (notably `allow-scripts`)
|
|
28
|
+
* are stripped no matter what.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveSandbox(options: {
|
|
31
|
+
sandbox?: string;
|
|
32
|
+
allowForms?: boolean;
|
|
33
|
+
}): string;
|
|
34
|
+
//# sourceMappingURL=iframeSrcDoc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iframeSrcDoc.d.ts","sourceRoot":"","sources":["../../src/iframe/iframeSrcDoc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkB1D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAsBvD;AAwKD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,eAAe,CAAC,EAAE,IAAI,CACpB,0BAA0B,EACxB,YAAY,GACZ,mBAAmB,GACnB,gBAAgB,GAChB,UAAU,GACV,oBAAoB,CACvB,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAsBR;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,CAUT"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { sanitizeHtml } from "../sanitizer/sanitizeHtml.js";
|
|
2
|
+
import { cleanArtifactHtml } from "../artifacts/artifactEnvelope.js";
|
|
3
|
+
import { DEFAULT_SANDBOX, FORBIDDEN_SANDBOX_TOKENS } from "../constants/sandbox.js";
|
|
4
|
+
/**
|
|
5
|
+
* Minimal reset injected for the framed (pure artifact) path: margin/box-sizing
|
|
6
|
+
* only. It must NOT force a background — a standalone artifact owns its own
|
|
7
|
+
* background (often set inline on <html>/<body>), and an !important transparent
|
|
8
|
+
* rule here would override it and reveal the card surface (a white sheet in
|
|
9
|
+
* light mode). Camouflage transparency is handled separately by
|
|
10
|
+
* {@link inlineCamouflageHtml}.
|
|
11
|
+
*/
|
|
12
|
+
const SEAMLESS_BASE = `<style>html,body{margin:0;padding:0;}*{box-sizing:border-box;}</style>`;
|
|
13
|
+
const LIGHT_COLOR = /(?:#fff(?:fff)?\b|#f[0-9a-f]{2}f[0-9a-f]{2}f[0-9a-f]{2}\b|#(?:f8fafc|f9fafb|f8f9fa|f5f5f5|f4f4f5|f3f4f6|f1f5f9|fafafa|fcfcfd|fdfdfd)\b|white\b|rgba?\(\s*(?:23[0-9]|24[0-9]|25[0-5])\s*,\s*(?:23[0-9]|24[0-9]|25[0-5])\s*,\s*(?:23[0-9]|24[0-9]|25[0-5])(?:\s*,\s*(?:0?\.[5-9]\d*|1(?:\.0+)?))?\s*\)|hsla?\(\s*(?:0|[12]?\d{1,2}|3[0-5]\d|360)\s*,\s*(?:0|[1-9]\d?|100)%\s*,\s*(?:8[8-9]|9\d|100)%[^)]*\))/i;
|
|
14
|
+
const LIGHT_GRADIENT = /(?:linear|radial|conic)-gradient\([^;}]*(?:#fff(?:fff)?\b|white\b|rgba?\(\s*255\s*,\s*255\s*,\s*255)[^;}]*\)/i;
|
|
15
|
+
/**
|
|
16
|
+
* Render a host {@link ArtifactTheme} into a `<style>` block exposing its values
|
|
17
|
+
* as CSS custom properties inside the iframe, plus sensible base color/font so
|
|
18
|
+
* artifacts inherit the host look. Background is intentionally left transparent
|
|
19
|
+
* (the host surface shows through — essential for seamless mode).
|
|
20
|
+
*/
|
|
21
|
+
export function themeToCss(theme) {
|
|
22
|
+
const vars = [];
|
|
23
|
+
const push = (name, value) => {
|
|
24
|
+
if (value)
|
|
25
|
+
vars.push(`${name}:${value}`);
|
|
26
|
+
};
|
|
27
|
+
push("--background", theme.background);
|
|
28
|
+
push("--foreground", theme.foreground);
|
|
29
|
+
push("--primary", theme.primary);
|
|
30
|
+
push("--accent", theme.accent);
|
|
31
|
+
push("--muted", theme.muted);
|
|
32
|
+
push("--border", theme.border);
|
|
33
|
+
push("--surface", theme.surface);
|
|
34
|
+
push("--radius", theme.radius);
|
|
35
|
+
push("--font", theme.fontFamily);
|
|
36
|
+
const root = vars.length ? `:root{${vars.join(";")}}` : "";
|
|
37
|
+
const base = [];
|
|
38
|
+
if (theme.foreground)
|
|
39
|
+
base.push("color:var(--foreground)");
|
|
40
|
+
if (theme.fontFamily)
|
|
41
|
+
base.push("font-family:var(--font)");
|
|
42
|
+
const baseRule = base.length ? `html,body{${base.join(";")}}` : "";
|
|
43
|
+
if (!root && !baseRule)
|
|
44
|
+
return "";
|
|
45
|
+
return `<style>${root}${baseRule}</style>`;
|
|
46
|
+
}
|
|
47
|
+
/** True if the string already looks like a full HTML document. */
|
|
48
|
+
function isFullDocument(html) {
|
|
49
|
+
return /<html[\s>]/i.test(html) || /<!DOCTYPE/i.test(html);
|
|
50
|
+
}
|
|
51
|
+
function injectIntoHead(doc, injection) {
|
|
52
|
+
if (/<\/head\s*>/i.test(doc)) {
|
|
53
|
+
return doc.replace(/<\/head\s*>/i, `${injection}</head>`);
|
|
54
|
+
}
|
|
55
|
+
if (/<head[^>]*>/i.test(doc)) {
|
|
56
|
+
return doc.replace(/<head([^>]*)>/i, `<head$1>${injection}`);
|
|
57
|
+
}
|
|
58
|
+
if (/<html[^>]*>/i.test(doc)) {
|
|
59
|
+
return doc.replace(/<html([^>]*)>/i, `<html$1><head>${injection}</head>`);
|
|
60
|
+
}
|
|
61
|
+
return injection + doc;
|
|
62
|
+
}
|
|
63
|
+
function themeToInlineVars(theme) {
|
|
64
|
+
if (!theme)
|
|
65
|
+
return "";
|
|
66
|
+
const vars = [];
|
|
67
|
+
const push = (name, value) => {
|
|
68
|
+
if (value)
|
|
69
|
+
vars.push(`${name}:${value}`);
|
|
70
|
+
};
|
|
71
|
+
push("--background", theme.background);
|
|
72
|
+
push("--foreground", theme.foreground);
|
|
73
|
+
push("--primary", theme.primary);
|
|
74
|
+
push("--accent", theme.accent);
|
|
75
|
+
push("--muted", theme.muted);
|
|
76
|
+
push("--border", theme.border);
|
|
77
|
+
push("--surface", theme.surface);
|
|
78
|
+
push("--radius", theme.radius);
|
|
79
|
+
push("--font", theme.fontFamily);
|
|
80
|
+
return vars.join(";");
|
|
81
|
+
}
|
|
82
|
+
function normalizeCamouflageHtml(html) {
|
|
83
|
+
return html
|
|
84
|
+
.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi, (_tag, attrs, css) => {
|
|
85
|
+
return `<style${attrs}>${normalizeCamouflageCss(css)}</style>`;
|
|
86
|
+
})
|
|
87
|
+
.replace(/\sstyle\s*=\s*(["'])([\s\S]*?)\1/gi, (_attr, quote, css) => {
|
|
88
|
+
const normalized = normalizeInlineCamouflageStyle(css);
|
|
89
|
+
return normalized ? ` style=${quote}${normalized}${quote}` : "";
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
const CAMOUFLAGE_TAGS = /<(html|body|main|section|article|aside|header|footer|nav|form|div)\b([^>]*)>/gi;
|
|
93
|
+
function appendInlineStyle(attrs, style) {
|
|
94
|
+
if (!style)
|
|
95
|
+
return attrs;
|
|
96
|
+
const styleAttr = attrs.match(/\sstyle\s*=\s*(["'])([\s\S]*?)\1/i);
|
|
97
|
+
if (!styleAttr)
|
|
98
|
+
return `${attrs} style="${style}"`;
|
|
99
|
+
const quote = styleAttr[1] ?? `"`;
|
|
100
|
+
const existing = styleAttr[2]?.trim();
|
|
101
|
+
const merged = existing ? `${existing};${style}` : style;
|
|
102
|
+
return attrs.replace(/\sstyle\s*=\s*(["'])([\s\S]*?)\1/i, ` style=${quote}${merged}${quote}`);
|
|
103
|
+
}
|
|
104
|
+
function inlineCamouflageHtml(html, theme) {
|
|
105
|
+
const themeVars = themeToInlineVars(theme);
|
|
106
|
+
const rootStyle = [
|
|
107
|
+
themeVars,
|
|
108
|
+
"margin:0!important",
|
|
109
|
+
"padding:0!important",
|
|
110
|
+
"background:transparent!important",
|
|
111
|
+
"background-color:transparent!important",
|
|
112
|
+
"background-image:none!important",
|
|
113
|
+
"color-scheme:normal!important",
|
|
114
|
+
"box-sizing:border-box",
|
|
115
|
+
"color:var(--foreground,#f4f4f8)!important",
|
|
116
|
+
theme?.fontFamily ? "font-family:var(--font)!important" : "",
|
|
117
|
+
]
|
|
118
|
+
.filter(Boolean)
|
|
119
|
+
.join(";");
|
|
120
|
+
const bodyStyle = [
|
|
121
|
+
"margin:0!important",
|
|
122
|
+
"padding:0!important",
|
|
123
|
+
"background:transparent!important",
|
|
124
|
+
"background-color:transparent!important",
|
|
125
|
+
"background-image:none!important",
|
|
126
|
+
"box-sizing:border-box",
|
|
127
|
+
"color:var(--foreground,#f4f4f8)!important",
|
|
128
|
+
theme?.fontFamily ? "font-family:var(--font)!important" : "",
|
|
129
|
+
]
|
|
130
|
+
.filter(Boolean)
|
|
131
|
+
.join(";");
|
|
132
|
+
const blockStyle = [
|
|
133
|
+
"background-color:transparent!important",
|
|
134
|
+
"background-image:none!important",
|
|
135
|
+
"box-sizing:border-box",
|
|
136
|
+
"color:var(--foreground,#f4f4f8)!important",
|
|
137
|
+
"border-color:var(--border,rgba(255,255,255,0.12))!important",
|
|
138
|
+
].join(";");
|
|
139
|
+
return html.replace(CAMOUFLAGE_TAGS, (tag, name, attrs) => {
|
|
140
|
+
const lowerName = name.toLowerCase();
|
|
141
|
+
if (lowerName === "html")
|
|
142
|
+
return `<${name}${appendInlineStyle(attrs, rootStyle)}>`;
|
|
143
|
+
if (lowerName === "body")
|
|
144
|
+
return `<${name}${appendInlineStyle(attrs, bodyStyle)}>`;
|
|
145
|
+
return `<${name}${appendInlineStyle(attrs, blockStyle)}>`;
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
function normalizeInlineCamouflageStyle(style) {
|
|
149
|
+
return style
|
|
150
|
+
.split(";")
|
|
151
|
+
.map((declaration) => normalizeCamouflageDeclaration(declaration))
|
|
152
|
+
.filter(Boolean)
|
|
153
|
+
.join(";");
|
|
154
|
+
}
|
|
155
|
+
function normalizeCamouflageCss(css) {
|
|
156
|
+
return css
|
|
157
|
+
.replace(/([^{}]+)\{([^{}]*)\}/g, (rule, selector, body) => {
|
|
158
|
+
const normalizedBody = body
|
|
159
|
+
.split(";")
|
|
160
|
+
.map((declaration) => normalizeCamouflageDeclaration(declaration, /\b(html|body)\b/i.test(selector)))
|
|
161
|
+
.filter(Boolean)
|
|
162
|
+
.join(";");
|
|
163
|
+
return normalizedBody ? `${selector}{${normalizedBody}}` : rule;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
function normalizeCamouflageDeclaration(declaration, forceTransparent = false) {
|
|
167
|
+
const trimmed = declaration.trim();
|
|
168
|
+
if (!trimmed)
|
|
169
|
+
return "";
|
|
170
|
+
const match = trimmed.match(/^(-?[\w-]+)\s*:\s*([\s\S]+)$/);
|
|
171
|
+
if (!match)
|
|
172
|
+
return trimmed;
|
|
173
|
+
const property = match[1]?.toLowerCase() ?? "";
|
|
174
|
+
const value = match[2] ?? "";
|
|
175
|
+
const important = /!important/i.test(value) ? " !important" : "";
|
|
176
|
+
const cleanValue = value.replace(/!important/gi, "").trim();
|
|
177
|
+
if (property === "background-image" && (forceTransparent || LIGHT_GRADIENT.test(cleanValue) || LIGHT_COLOR.test(cleanValue))) {
|
|
178
|
+
return `${property}:none${important}`;
|
|
179
|
+
}
|
|
180
|
+
if (property.startsWith("--") && LIGHT_COLOR.test(cleanValue)) {
|
|
181
|
+
return `${property}:transparent`;
|
|
182
|
+
}
|
|
183
|
+
if (property === "background" || property === "background-color") {
|
|
184
|
+
if (forceTransparent)
|
|
185
|
+
return `${property}:transparent${important}`;
|
|
186
|
+
if (LIGHT_COLOR.test(cleanValue) || LIGHT_GRADIENT.test(cleanValue)) {
|
|
187
|
+
return `${property}:transparent${important}`;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (property === "color" && LIGHT_COLOR.test(cleanValue)) {
|
|
191
|
+
return `${property}:var(--foreground,#f4f4f8)${important}`;
|
|
192
|
+
}
|
|
193
|
+
return trimmed;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Produce the final `srcDoc` string for the preview iframe: sanitized (by
|
|
197
|
+
* default), wrapped into a complete document if needed, with seamless base
|
|
198
|
+
* styles and `<base target="_blank">` so any links open in a new tab.
|
|
199
|
+
*/
|
|
200
|
+
export function buildSrcDoc(rawHtml, options = {}) {
|
|
201
|
+
const { sanitize = true, seamless = true, camouflage = false, theme, sanitizeOptions } = options;
|
|
202
|
+
let html = cleanArtifactHtml(rawHtml ?? "");
|
|
203
|
+
if (sanitize) {
|
|
204
|
+
html = sanitizeHtml(html, { ...sanitizeOptions, allowScripts: false }).html;
|
|
205
|
+
}
|
|
206
|
+
if (camouflage) {
|
|
207
|
+
html = normalizeCamouflageHtml(html);
|
|
208
|
+
}
|
|
209
|
+
const themeStyles = theme && !camouflage ? themeToCss(theme) : "";
|
|
210
|
+
const injection = `<base target="_blank" />${seamless && !camouflage ? SEAMLESS_BASE : ""}${themeStyles}`;
|
|
211
|
+
let doc;
|
|
212
|
+
if (isFullDocument(html)) {
|
|
213
|
+
doc = injectIntoHead(html, injection);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
doc = `<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" />${injection}</head><body>${html}</body></html>`;
|
|
217
|
+
}
|
|
218
|
+
return camouflage ? inlineCamouflageHtml(doc, theme) : doc;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Resolve the sandbox attribute. An explicit `sandbox` wins; otherwise we build
|
|
222
|
+
* a minimal token set from the flags. Forbidden tokens (notably `allow-scripts`)
|
|
223
|
+
* are stripped no matter what.
|
|
224
|
+
*/
|
|
225
|
+
export function resolveSandbox(options) {
|
|
226
|
+
const explicit = options.sandbox;
|
|
227
|
+
if (explicit !== undefined) {
|
|
228
|
+
return explicit
|
|
229
|
+
.split(/\s+/)
|
|
230
|
+
.filter(Boolean)
|
|
231
|
+
.filter((t) => !FORBIDDEN_SANDBOX_TOKENS.includes(t))
|
|
232
|
+
.join(" ");
|
|
233
|
+
}
|
|
234
|
+
return options.allowForms === false ? "" : DEFAULT_SANDBOX;
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=iframeSrcDoc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iframeSrcDoc.js","sourceRoot":"","sources":["../../src/iframe/iframeSrcDoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { HtmlArtifactCard } from "./HtmlArtifactCard.js";
|
|
2
|
+
export { HtmlArtifactPreview } from "./HtmlArtifactPreview.js";
|
|
3
|
+
export { HtmlArtifactModal } from "./HtmlArtifactModal.js";
|
|
4
|
+
export { HtmlArtifactToolbar } from "./HtmlArtifactToolbar.js";
|
|
5
|
+
export { HtmlArtifactCodeView } from "./HtmlArtifactCodeView.js";
|
|
6
|
+
export { buildSrcDoc, resolveSandbox } from "./iframeSrcDoc.js";
|
|
7
|
+
export { useIframeAutoSize } from "./iframeSizing.js";
|
|
8
|
+
export { useArtifactStyles, ARTIFACT_CSS } from "./styles.js";
|
|
9
|
+
export type { HtmlArtifactToolbarProps } from "./HtmlArtifactToolbar.js";
|
|
10
|
+
export type { HtmlArtifactPreviewProps } from "./HtmlArtifactPreview.js";
|
|
11
|
+
export type { HtmlArtifactModalProps } from "./HtmlArtifactModal.js";
|
|
12
|
+
export type { HtmlArtifactCodeViewProps } from "./HtmlArtifactCodeView.js";
|
|
13
|
+
export type { BuildSrcDocOptions } from "./iframeSrcDoc.js";
|
|
14
|
+
export type { AutoSizeOptions } from "./iframeSizing.js";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/iframe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { HtmlArtifactCard } from "./HtmlArtifactCard.js";
|
|
2
|
+
export { HtmlArtifactPreview } from "./HtmlArtifactPreview.js";
|
|
3
|
+
export { HtmlArtifactModal } from "./HtmlArtifactModal.js";
|
|
4
|
+
export { HtmlArtifactToolbar } from "./HtmlArtifactToolbar.js";
|
|
5
|
+
export { HtmlArtifactCodeView } from "./HtmlArtifactCodeView.js";
|
|
6
|
+
export { buildSrcDoc, resolveSandbox } from "./iframeSrcDoc.js";
|
|
7
|
+
export { useIframeAutoSize } from "./iframeSizing.js";
|
|
8
|
+
export { useArtifactStyles, ARTIFACT_CSS } from "./styles.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/iframe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-contained, premium chrome styles for the artifact card. Injected once
|
|
3
|
+
* into <head> so components can use hover/focus/dark states without depending
|
|
4
|
+
* on the host app's CSS. Uses the CSS `light-dark()` function (the card sets
|
|
5
|
+
* `color-scheme: light dark`) so it adapts to the OS theme automatically.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ARTIFACT_CSS = "\n.aha-scope{\n color-scheme: light dark;\n --aha-bg: light-dark(#fbfbfc, #0c0c0f);\n --aha-elev: light-dark(#ffffff, #161619);\n --aha-fg: light-dark(#15161a, #f4f4f6);\n --aha-muted: light-dark(#6b7280, #9aa0ab);\n --aha-faint: light-dark(#9ca3af, #6b7280);\n --aha-hairline: light-dark(rgba(0,0,0,.07), rgba(255,255,255,.08));\n --aha-ring: light-dark(oklch(0 0 0 / .08), oklch(1 0 0 / .11));\n --aha-hover: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.07));\n --aha-accent: light-dark(#3b3bff, #8aa0ff);\n font-family: ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif;\n -webkit-font-smoothing: antialiased;\n}\n\n/* The premium ring + border + layered shadow treatment (no flat white box). */\n.aha-card{\n position: relative;\n border-radius: var(--aha-radius, 22px);\n background: var(--aha-bg);\n color: var(--aha-fg);\n overflow: hidden;\n box-shadow:\n 0 0 0 1px var(--aha-ring),\n light-dark(oklch(0 0 0 / .04), oklch(0 0 0 / .20)) 0px 2px 2px -1px,\n light-dark(oklch(0 0 0 / .035), oklch(0 0 0 / .22)) 0px 10px 20px -6px,\n light-dark(oklch(0 0 0 / .05), oklch(0 0 0 / .35)) 0px 30px 60px -18px;\n transition: box-shadow .25s ease, transform .25s ease;\n}\n.aha-card[data-variant=\"glass\"]{\n background: light-dark(rgba(255,255,255,.72), rgba(22,22,26,.66));\n backdrop-filter: blur(20px) saturate(140%);\n}\n\n.aha-toolbar{\n display:flex; align-items:center; gap:10px;\n padding: 9px 10px 9px 14px;\n background: light-dark(rgba(252,252,253,.82), rgba(20,20,24,.7));\n backdrop-filter: blur(12px);\n border-bottom: 1px solid var(--aha-hairline);\n position: relative; z-index: 2;\n}\n.aha-dots{ display:inline-flex; gap:6px; margin-right:4px; }\n.aha-dot{ width:11px; height:11px; border-radius:50%; }\n.aha-title{\n font-size:13px; font-weight:600; letter-spacing:-0.01em;\n color: var(--aha-fg);\n white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n min-width:0; flex: 0 1 auto;\n}\n.aha-stream-dot{\n width:7px;height:7px;border-radius:50%;flex:none;\n background:#22c55e; box-shadow:0 0 0 0 rgba(34,197,94,.55);\n animation: aha-pulse 1.5s infinite;\n}\n\n.aha-seg{\n display:inline-flex; padding:3px; gap:2px; border-radius:11px;\n background: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.06));\n box-shadow: inset 0 0 0 1px var(--aha-ring);\n}\n.aha-seg button{\n appearance:none; border:none; cursor:pointer;\n font-size:12px; font-weight:600; letter-spacing:-0.01em;\n padding:5px 13px; border-radius:8px; color: var(--aha-muted);\n background:transparent; transition: all .15s ease;\n}\n.aha-seg button[data-active=\"true\"]{\n color: var(--aha-fg);\n background: var(--aha-elev);\n box-shadow: 0 1px 2px light-dark(rgba(0,0,0,.10), rgba(0,0,0,.4)), 0 0 0 .5px var(--aha-ring);\n}\n\n.aha-iconbtn{\n display:inline-flex; align-items:center; justify-content:center;\n width:32px; height:32px; border-radius:999px; flex:none;\n border:none; cursor:pointer; padding:0;\n color: var(--aha-muted); background:transparent;\n transition: background .15s ease, color .15s ease, transform .1s ease;\n}\n.aha-iconbtn:hover{ background: var(--aha-hover); color: var(--aha-fg); }\n.aha-iconbtn:active{ transform: scale(.94); }\n\n/* Seamless (\"camouflage\") presentation: chromeless, transparent, inline. The\n action row stays invisible until hover so the surface reads as native UI. */\n.aha-seamless{ position:relative; }\n.aha-seamless-actions{\n position:absolute; top:8px; right:8px; z-index:4;\n display:flex; gap:4px; padding:3px; border-radius:999px;\n background: color-mix(in srgb, var(--aha-bg) 70%, transparent);\n border:1px solid var(--aha-border);\n backdrop-filter: blur(8px);\n opacity:0; transform: translateY(-2px);\n transition: opacity .18s ease, transform .18s ease;\n}\n.aha-seamless:hover .aha-seamless-actions,\n.aha-seamless:focus-within .aha-seamless-actions{ opacity:1; transform: translateY(0); }\n\n/* Streaming progress shimmer along the top edge of the preview. */\n.aha-progress{\n position:absolute; top:0; left:0; right:0; height:2px; z-index:3;\n background: linear-gradient(90deg, transparent, var(--aha-accent), transparent);\n background-size: 40% 100%;\n animation: aha-progress 1.1s linear infinite;\n}\n\n.aha-frame{ display:block; width:100%; border:none; background:transparent; }\n.aha-frame[data-fade=\"in\"]{ animation: aha-fade .45s ease both; }\n\n.aha-skel{\n display:grid; gap:14px; padding:26px;\n background: light-dark(linear-gradient(180deg,#fcfcfd,#f4f5f7), linear-gradient(180deg,#121215,#0d0d10));\n}\n.aha-skel .row{\n height:16px; border-radius:8px;\n background: light-dark(\n linear-gradient(90deg, rgba(0,0,0,.05) 25%, rgba(0,0,0,.10) 37%, rgba(0,0,0,.05) 63%),\n linear-gradient(90deg, rgba(255,255,255,.05) 25%, rgba(255,255,255,.10) 37%, rgba(255,255,255,.05) 63%));\n background-size: 400% 100%;\n animation: aha-shimmer 1.4s ease infinite;\n opacity:0; animation-fill-mode: both;\n}\n/* Stagger the skeleton in so it reads as a layout being built up. */\n.aha-skel .row:nth-child(1){ width:42%; animation-delay:0s,.0s; }\n.aha-skel .row:nth-child(2){ width:88%; }\n.aha-skel .row:nth-child(3){ width:74%; }\n.aha-skel .row:nth-child(4){ height:130px; }\n.aha-skel .row:nth-child(5){ width:60%; }\n.aha-skel .row:nth-child(6){ width:80%; }\n.aha-skel .row{ animation: aha-shimmer 1.4s ease infinite, aha-rise .5s ease both; }\n.aha-skel .row:nth-child(2){ animation-delay: 0s, .07s; }\n.aha-skel .row:nth-child(3){ animation-delay: 0s, .14s; }\n.aha-skel .row:nth-child(4){ animation-delay: 0s, .21s; }\n.aha-skel .row:nth-child(5){ animation-delay: 0s, .28s; }\n.aha-skel .row:nth-child(6){ animation-delay: 0s, .35s; }\n\n.aha-overlay{\n display:flex; align-items:center; justify-content:center; text-align:center;\n padding:24px; color: var(--aha-muted); font-size:13px;\n background: light-dark(rgba(255,255,255,.82), rgba(12,12,15,.82));\n backdrop-filter: blur(3px);\n}\n\n@keyframes aha-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}\n@keyframes aha-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}\n@keyframes aha-progress{0%{background-position:120% 0}100%{background-position:-20% 0}}\n@keyframes aha-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n@keyframes aha-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion: reduce){\n .aha-frame[data-fade=\"in\"], .aha-skel .row, .aha-progress, .aha-stream-dot{ animation: none !important; }\n .aha-skel .row{ opacity:1; }\n}\n";
|
|
8
|
+
/** Inject the artifact stylesheet once per document. */
|
|
9
|
+
export declare function useArtifactStyles(): void;
|
|
10
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/iframe/styles.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,giNAyJxB,CAAC;AAIF,wDAAwD;AACxD,wBAAgB,iBAAiB,IAAI,IAAI,CAaxC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
const STYLE_ID = "aha-artifact-styles";
|
|
4
|
+
/**
|
|
5
|
+
* Self-contained, premium chrome styles for the artifact card. Injected once
|
|
6
|
+
* into <head> so components can use hover/focus/dark states without depending
|
|
7
|
+
* on the host app's CSS. Uses the CSS `light-dark()` function (the card sets
|
|
8
|
+
* `color-scheme: light dark`) so it adapts to the OS theme automatically.
|
|
9
|
+
*/
|
|
10
|
+
export const ARTIFACT_CSS = `
|
|
11
|
+
.aha-scope{
|
|
12
|
+
color-scheme: light dark;
|
|
13
|
+
--aha-bg: light-dark(#fbfbfc, #0c0c0f);
|
|
14
|
+
--aha-elev: light-dark(#ffffff, #161619);
|
|
15
|
+
--aha-fg: light-dark(#15161a, #f4f4f6);
|
|
16
|
+
--aha-muted: light-dark(#6b7280, #9aa0ab);
|
|
17
|
+
--aha-faint: light-dark(#9ca3af, #6b7280);
|
|
18
|
+
--aha-hairline: light-dark(rgba(0,0,0,.07), rgba(255,255,255,.08));
|
|
19
|
+
--aha-ring: light-dark(oklch(0 0 0 / .08), oklch(1 0 0 / .11));
|
|
20
|
+
--aha-hover: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.07));
|
|
21
|
+
--aha-accent: light-dark(#3b3bff, #8aa0ff);
|
|
22
|
+
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
23
|
+
-webkit-font-smoothing: antialiased;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* The premium ring + border + layered shadow treatment (no flat white box). */
|
|
27
|
+
.aha-card{
|
|
28
|
+
position: relative;
|
|
29
|
+
border-radius: var(--aha-radius, 22px);
|
|
30
|
+
background: var(--aha-bg);
|
|
31
|
+
color: var(--aha-fg);
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
box-shadow:
|
|
34
|
+
0 0 0 1px var(--aha-ring),
|
|
35
|
+
light-dark(oklch(0 0 0 / .04), oklch(0 0 0 / .20)) 0px 2px 2px -1px,
|
|
36
|
+
light-dark(oklch(0 0 0 / .035), oklch(0 0 0 / .22)) 0px 10px 20px -6px,
|
|
37
|
+
light-dark(oklch(0 0 0 / .05), oklch(0 0 0 / .35)) 0px 30px 60px -18px;
|
|
38
|
+
transition: box-shadow .25s ease, transform .25s ease;
|
|
39
|
+
}
|
|
40
|
+
.aha-card[data-variant="glass"]{
|
|
41
|
+
background: light-dark(rgba(255,255,255,.72), rgba(22,22,26,.66));
|
|
42
|
+
backdrop-filter: blur(20px) saturate(140%);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.aha-toolbar{
|
|
46
|
+
display:flex; align-items:center; gap:10px;
|
|
47
|
+
padding: 9px 10px 9px 14px;
|
|
48
|
+
background: light-dark(rgba(252,252,253,.82), rgba(20,20,24,.7));
|
|
49
|
+
backdrop-filter: blur(12px);
|
|
50
|
+
border-bottom: 1px solid var(--aha-hairline);
|
|
51
|
+
position: relative; z-index: 2;
|
|
52
|
+
}
|
|
53
|
+
.aha-dots{ display:inline-flex; gap:6px; margin-right:4px; }
|
|
54
|
+
.aha-dot{ width:11px; height:11px; border-radius:50%; }
|
|
55
|
+
.aha-title{
|
|
56
|
+
font-size:13px; font-weight:600; letter-spacing:-0.01em;
|
|
57
|
+
color: var(--aha-fg);
|
|
58
|
+
white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
|
|
59
|
+
min-width:0; flex: 0 1 auto;
|
|
60
|
+
}
|
|
61
|
+
.aha-stream-dot{
|
|
62
|
+
width:7px;height:7px;border-radius:50%;flex:none;
|
|
63
|
+
background:#22c55e; box-shadow:0 0 0 0 rgba(34,197,94,.55);
|
|
64
|
+
animation: aha-pulse 1.5s infinite;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.aha-seg{
|
|
68
|
+
display:inline-flex; padding:3px; gap:2px; border-radius:11px;
|
|
69
|
+
background: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.06));
|
|
70
|
+
box-shadow: inset 0 0 0 1px var(--aha-ring);
|
|
71
|
+
}
|
|
72
|
+
.aha-seg button{
|
|
73
|
+
appearance:none; border:none; cursor:pointer;
|
|
74
|
+
font-size:12px; font-weight:600; letter-spacing:-0.01em;
|
|
75
|
+
padding:5px 13px; border-radius:8px; color: var(--aha-muted);
|
|
76
|
+
background:transparent; transition: all .15s ease;
|
|
77
|
+
}
|
|
78
|
+
.aha-seg button[data-active="true"]{
|
|
79
|
+
color: var(--aha-fg);
|
|
80
|
+
background: var(--aha-elev);
|
|
81
|
+
box-shadow: 0 1px 2px light-dark(rgba(0,0,0,.10), rgba(0,0,0,.4)), 0 0 0 .5px var(--aha-ring);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.aha-iconbtn{
|
|
85
|
+
display:inline-flex; align-items:center; justify-content:center;
|
|
86
|
+
width:32px; height:32px; border-radius:999px; flex:none;
|
|
87
|
+
border:none; cursor:pointer; padding:0;
|
|
88
|
+
color: var(--aha-muted); background:transparent;
|
|
89
|
+
transition: background .15s ease, color .15s ease, transform .1s ease;
|
|
90
|
+
}
|
|
91
|
+
.aha-iconbtn:hover{ background: var(--aha-hover); color: var(--aha-fg); }
|
|
92
|
+
.aha-iconbtn:active{ transform: scale(.94); }
|
|
93
|
+
|
|
94
|
+
/* Seamless ("camouflage") presentation: chromeless, transparent, inline. The
|
|
95
|
+
action row stays invisible until hover so the surface reads as native UI. */
|
|
96
|
+
.aha-seamless{ position:relative; }
|
|
97
|
+
.aha-seamless-actions{
|
|
98
|
+
position:absolute; top:8px; right:8px; z-index:4;
|
|
99
|
+
display:flex; gap:4px; padding:3px; border-radius:999px;
|
|
100
|
+
background: color-mix(in srgb, var(--aha-bg) 70%, transparent);
|
|
101
|
+
border:1px solid var(--aha-border);
|
|
102
|
+
backdrop-filter: blur(8px);
|
|
103
|
+
opacity:0; transform: translateY(-2px);
|
|
104
|
+
transition: opacity .18s ease, transform .18s ease;
|
|
105
|
+
}
|
|
106
|
+
.aha-seamless:hover .aha-seamless-actions,
|
|
107
|
+
.aha-seamless:focus-within .aha-seamless-actions{ opacity:1; transform: translateY(0); }
|
|
108
|
+
|
|
109
|
+
/* Streaming progress shimmer along the top edge of the preview. */
|
|
110
|
+
.aha-progress{
|
|
111
|
+
position:absolute; top:0; left:0; right:0; height:2px; z-index:3;
|
|
112
|
+
background: linear-gradient(90deg, transparent, var(--aha-accent), transparent);
|
|
113
|
+
background-size: 40% 100%;
|
|
114
|
+
animation: aha-progress 1.1s linear infinite;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.aha-frame{ display:block; width:100%; border:none; background:transparent; }
|
|
118
|
+
.aha-frame[data-fade="in"]{ animation: aha-fade .45s ease both; }
|
|
119
|
+
|
|
120
|
+
.aha-skel{
|
|
121
|
+
display:grid; gap:14px; padding:26px;
|
|
122
|
+
background: light-dark(linear-gradient(180deg,#fcfcfd,#f4f5f7), linear-gradient(180deg,#121215,#0d0d10));
|
|
123
|
+
}
|
|
124
|
+
.aha-skel .row{
|
|
125
|
+
height:16px; border-radius:8px;
|
|
126
|
+
background: light-dark(
|
|
127
|
+
linear-gradient(90deg, rgba(0,0,0,.05) 25%, rgba(0,0,0,.10) 37%, rgba(0,0,0,.05) 63%),
|
|
128
|
+
linear-gradient(90deg, rgba(255,255,255,.05) 25%, rgba(255,255,255,.10) 37%, rgba(255,255,255,.05) 63%));
|
|
129
|
+
background-size: 400% 100%;
|
|
130
|
+
animation: aha-shimmer 1.4s ease infinite;
|
|
131
|
+
opacity:0; animation-fill-mode: both;
|
|
132
|
+
}
|
|
133
|
+
/* Stagger the skeleton in so it reads as a layout being built up. */
|
|
134
|
+
.aha-skel .row:nth-child(1){ width:42%; animation-delay:0s,.0s; }
|
|
135
|
+
.aha-skel .row:nth-child(2){ width:88%; }
|
|
136
|
+
.aha-skel .row:nth-child(3){ width:74%; }
|
|
137
|
+
.aha-skel .row:nth-child(4){ height:130px; }
|
|
138
|
+
.aha-skel .row:nth-child(5){ width:60%; }
|
|
139
|
+
.aha-skel .row:nth-child(6){ width:80%; }
|
|
140
|
+
.aha-skel .row{ animation: aha-shimmer 1.4s ease infinite, aha-rise .5s ease both; }
|
|
141
|
+
.aha-skel .row:nth-child(2){ animation-delay: 0s, .07s; }
|
|
142
|
+
.aha-skel .row:nth-child(3){ animation-delay: 0s, .14s; }
|
|
143
|
+
.aha-skel .row:nth-child(4){ animation-delay: 0s, .21s; }
|
|
144
|
+
.aha-skel .row:nth-child(5){ animation-delay: 0s, .28s; }
|
|
145
|
+
.aha-skel .row:nth-child(6){ animation-delay: 0s, .35s; }
|
|
146
|
+
|
|
147
|
+
.aha-overlay{
|
|
148
|
+
display:flex; align-items:center; justify-content:center; text-align:center;
|
|
149
|
+
padding:24px; color: var(--aha-muted); font-size:13px;
|
|
150
|
+
background: light-dark(rgba(255,255,255,.82), rgba(12,12,15,.82));
|
|
151
|
+
backdrop-filter: blur(3px);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@keyframes aha-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
|
|
155
|
+
@keyframes aha-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
|
|
156
|
+
@keyframes aha-progress{0%{background-position:120% 0}100%{background-position:-20% 0}}
|
|
157
|
+
@keyframes aha-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
|
|
158
|
+
@keyframes aha-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
|
|
159
|
+
@media (prefers-reduced-motion: reduce){
|
|
160
|
+
.aha-frame[data-fade="in"], .aha-skel .row, .aha-progress, .aha-stream-dot{ animation: none !important; }
|
|
161
|
+
.aha-skel .row{ opacity:1; }
|
|
162
|
+
}
|
|
163
|
+
`;
|
|
164
|
+
let injected = false;
|
|
165
|
+
/** Inject the artifact stylesheet once per document. */
|
|
166
|
+
export function useArtifactStyles() {
|
|
167
|
+
React.useEffect(() => {
|
|
168
|
+
if (injected || typeof document === "undefined")
|
|
169
|
+
return;
|
|
170
|
+
if (document.getElementById(STYLE_ID)) {
|
|
171
|
+
injected = true;
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
const el = document.createElement("style");
|
|
175
|
+
el.id = STYLE_ID;
|
|
176
|
+
el.textContent = ARTIFACT_CSS;
|
|
177
|
+
document.head.appendChild(el);
|
|
178
|
+
injected = true;
|
|
179
|
+
}, []);
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/iframe/styles.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyJ3B,CAAC;AAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,wDAAwD;AACxD,MAAM,UAAU,iBAAiB;IAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QACxD,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;QACjB,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root entry — isomorphic exports only (no React, no AI SDK import), safe to
|
|
3
|
+
* pull into any environment. Use the `./server` and `./client` subpaths for
|
|
4
|
+
* the AI-SDK and React surfaces respectively.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./types/index.js";
|
|
7
|
+
export * from "./stream/index.js";
|
|
8
|
+
export * from "./sanitizer/index.js";
|
|
9
|
+
export * from "./artifacts/index.js";
|
|
10
|
+
export * from "./constants/index.js";
|
|
11
|
+
export * from "./utils/index.js";
|
|
12
|
+
export * from "./errors/index.js";
|
|
13
|
+
export * from "./prompts/index.js";
|
|
14
|
+
export { classifyByRules, type RuleClassification } from "./classifier/rules.js";
|
|
15
|
+
export { CLASSIFIER_SYSTEM_PROMPT, buildClassifierUserPrompt, } from "./classifier/classifierPrompt.js";
|
|
16
|
+
export { CircuitBreaker, MemoryCircuitStore, defaultCircuitStore, } from "./circuit-breaker/index.js";
|
|
17
|
+
export { createMessageId, createArtifactId, MessageLifecycle, ArtifactLifecycle, createArtifactStream, createArtifactResponse, SSE_HEADERS, type Emit, type ArtifactStreamProducer, } from "./core/index.js";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAInC,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,KAAK,IAAI,EACT,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root entry — isomorphic exports only (no React, no AI SDK import), safe to
|
|
3
|
+
* pull into any environment. Use the `./server` and `./client` subpaths for
|
|
4
|
+
* the AI-SDK and React surfaces respectively.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./types/index.js";
|
|
7
|
+
export * from "./stream/index.js";
|
|
8
|
+
export * from "./sanitizer/index.js";
|
|
9
|
+
export * from "./artifacts/index.js";
|
|
10
|
+
export * from "./constants/index.js";
|
|
11
|
+
export * from "./utils/index.js";
|
|
12
|
+
export * from "./errors/index.js";
|
|
13
|
+
export * from "./prompts/index.js";
|
|
14
|
+
// Heuristic classifier + prompt are dependency-free; the model-based
|
|
15
|
+
// `classifyMode` lives behind the `./server` entry (it imports the AI SDK).
|
|
16
|
+
export { classifyByRules } from "./classifier/rules.js";
|
|
17
|
+
export { CLASSIFIER_SYSTEM_PROMPT, buildClassifierUserPrompt, } from "./classifier/classifierPrompt.js";
|
|
18
|
+
// Circuit breaker is isomorphic.
|
|
19
|
+
export { CircuitBreaker, MemoryCircuitStore, defaultCircuitStore, } from "./circuit-breaker/index.js";
|
|
20
|
+
// Core stream/response helpers (framework-agnostic).
|
|
21
|
+
export { createMessageId, createArtifactId, MessageLifecycle, ArtifactLifecycle, createArtifactStream, createArtifactResponse, SSE_HEADERS, } from "./core/index.js";
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,qEAAqE;AACrE,4EAA4E;AAC5E,OAAO,EAAE,eAAe,EAA2B,MAAM,uBAAuB,CAAC;AACjF,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAE1C,iCAAiC;AACjC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,qDAAqD;AACrD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,GAGZ,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ArtifactPresentation, ArtifactStyleProfile, ArtifactTheme } from "../types/artifact.js";
|
|
2
|
+
export interface HtmlPromptOptions {
|
|
3
|
+
styleProfile?: ArtifactStyleProfile;
|
|
4
|
+
allowExternalFonts?: boolean;
|
|
5
|
+
allowForms?: boolean;
|
|
6
|
+
/** Host theme to match exactly (colours, radius, font). */
|
|
7
|
+
theme?: ArtifactTheme;
|
|
8
|
+
/** `seamless` artifacts must be transparent and chromeless to blend inline. */
|
|
9
|
+
presentation?: ArtifactPresentation;
|
|
10
|
+
}
|
|
11
|
+
/** Build the HTML-artifact system prompt, tuned by style profile and flags. */
|
|
12
|
+
export declare function buildHtmlArtifactPrompt(options?: HtmlPromptOptions): string;
|
|
13
|
+
/** Default prompt with no style profile, system fonts, forms allowed. */
|
|
14
|
+
export declare const HTML_ARTIFACT_SYSTEM_PROMPT: string;
|
|
15
|
+
//# sourceMappingURL=htmlArtifactPrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"htmlArtifactPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/htmlArtifactPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAsND,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAqC/E;AAED,yEAAyE;AACzE,eAAO,MAAM,2BAA2B,QAA4B,CAAC"}
|