@wix/web5-core 1.56.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/README.md +8 -0
- package/dist/cjs/client/clientBundleOverride.js +48 -0
- package/dist/cjs/client/clientBundleOverride.js.map +1 -0
- package/dist/cjs/client/devEnvironment.js +4 -0
- package/dist/cjs/client/devEnvironment.js.map +1 -0
- package/dist/cjs/client/loadClientBundle.js +85 -0
- package/dist/cjs/client/loadClientBundle.js.map +1 -0
- package/dist/cjs/client/wixAuthFetch.js +73 -0
- package/dist/cjs/client/wixAuthFetch.js.map +1 -0
- package/dist/cjs/clients.js +15 -0
- package/dist/cjs/clients.js.map +1 -0
- package/dist/cjs/color/colorUtils.js +126 -0
- package/dist/cjs/color/colorUtils.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js +67 -0
- package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js +141 -0
- package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js +85 -0
- package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js +171 -0
- package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js +81 -0
- package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js +29 -0
- package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js +119 -0
- package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js +75 -0
- package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js +124 -0
- package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js +209 -0
- package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js +19 -0
- package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js +114 -0
- package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js +136 -0
- package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js +18 -0
- package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js +20 -0
- package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js +65 -0
- package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/index.js +48 -0
- package/dist/cjs/component/componentDefinitions/index.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js +86 -0
- package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/parse-utils.js +434 -0
- package/dist/cjs/component/componentDefinitions/parse-utils.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/specHelpers.js +36 -0
- package/dist/cjs/component/componentDefinitions/specHelpers.js.map +1 -0
- package/dist/cjs/component/componentParser.js +365 -0
- package/dist/cjs/component/componentParser.js.map +1 -0
- package/dist/cjs/component/diagnosticTypes.js +30 -0
- package/dist/cjs/component/diagnosticTypes.js.map +1 -0
- package/dist/cjs/component/parser-types.js +4 -0
- package/dist/cjs/component/parser-types.js.map +1 -0
- package/dist/cjs/component/section-definition.js +4 -0
- package/dist/cjs/component/section-definition.js.map +1 -0
- package/dist/cjs/component/types.js +4 -0
- package/dist/cjs/component/types.js.map +1 -0
- package/dist/cjs/components/placement/PlacementPayloadContext.js +29 -0
- package/dist/cjs/components/placement/PlacementPayloadContext.js.map +1 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.css +269 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.js +259 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.js.map +1 -0
- package/dist/cjs/components/placement/buildPlacementDependencies.js +214 -0
- package/dist/cjs/components/placement/buildPlacementDependencies.js.map +1 -0
- package/dist/cjs/components/ui/BottomContainer.js +26 -0
- package/dist/cjs/components/ui/BottomContainer.js.map +1 -0
- package/dist/cjs/components/ui/CalloutBlock.js +156 -0
- package/dist/cjs/components/ui/CalloutBlock.js.map +1 -0
- package/dist/cjs/components/ui/Disclaimer.css +35 -0
- package/dist/cjs/components/ui/Disclaimer.js +56 -0
- package/dist/cjs/components/ui/Disclaimer.js.map +1 -0
- package/dist/cjs/components/ui/FeedbackBar.css +267 -0
- package/dist/cjs/components/ui/FeedbackBar.js +417 -0
- package/dist/cjs/components/ui/FeedbackBar.js.map +1 -0
- package/dist/cjs/components/ui/Loader.js +73 -0
- package/dist/cjs/components/ui/Loader.js.map +1 -0
- package/dist/cjs/components/ui/MarkdownText.js +419 -0
- package/dist/cjs/components/ui/MarkdownText.js.map +1 -0
- package/dist/cjs/components/ui/OptimizedImage.js +414 -0
- package/dist/cjs/components/ui/OptimizedImage.js.map +1 -0
- package/dist/cjs/components/ui/PlacementLoader.css +101 -0
- package/dist/cjs/components/ui/PlacementLoader.js +62 -0
- package/dist/cjs/components/ui/PlacementLoader.js.map +1 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.css +172 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.js +96 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.js.map +1 -0
- package/dist/cjs/components/ui/SearchSection.css +538 -0
- package/dist/cjs/components/ui/SearchSection.js +550 -0
- package/dist/cjs/components/ui/SearchSection.js.map +1 -0
- package/dist/cjs/components/ui/SectionSkeleton.css +109 -0
- package/dist/cjs/components/ui/SectionSkeleton.js +190 -0
- package/dist/cjs/components/ui/SectionSkeleton.js.map +1 -0
- package/dist/cjs/components/ui/SmartIcon.js +122 -0
- package/dist/cjs/components/ui/SmartIcon.js.map +1 -0
- package/dist/cjs/components/ui/UnifiedLink.js +169 -0
- package/dist/cjs/components/ui/UnifiedLink.js.map +1 -0
- package/dist/cjs/components/ui/UserQuery.js +348 -0
- package/dist/cjs/components/ui/UserQuery.js.map +1 -0
- package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js +37 -0
- package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/ArrowUpIcon.js +61 -0
- package/dist/cjs/components/ui/icons/ArrowUpIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/CheckIcon.js +37 -0
- package/dist/cjs/components/ui/icons/CheckIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/CommentIcon.js +34 -0
- package/dist/cjs/components/ui/icons/CommentIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/PlusIcon.js +51 -0
- package/dist/cjs/components/ui/icons/PlusIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/RedoIcon.js +51 -0
- package/dist/cjs/components/ui/icons/RedoIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/ShareIcon.js +81 -0
- package/dist/cjs/components/ui/icons/ShareIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/UndoIcon.js +51 -0
- package/dist/cjs/components/ui/icons/UndoIcon.js.map +1 -0
- package/dist/cjs/components/ui/table.js +159 -0
- package/dist/cjs/components/ui/table.js.map +1 -0
- package/dist/cjs/context/ChipsContext.js +12 -0
- package/dist/cjs/context/ChipsContext.js.map +1 -0
- package/dist/cjs/context/ComponentDependenciesContext.js +32 -0
- package/dist/cjs/context/ComponentDependenciesContext.js.map +1 -0
- package/dist/cjs/entity/defaultExtractor.js +117 -0
- package/dist/cjs/entity/defaultExtractor.js.map +1 -0
- package/dist/cjs/entity/enrichEntitiesFromPayload.js +39 -0
- package/dist/cjs/entity/enrichEntitiesFromPayload.js.map +1 -0
- package/dist/cjs/entity/fetchEntityListData.js +78 -0
- package/dist/cjs/entity/fetchEntityListData.js.map +1 -0
- package/dist/cjs/entity/index.js +41 -0
- package/dist/cjs/entity/index.js.map +1 -0
- package/dist/cjs/entity/types.js +4 -0
- package/dist/cjs/entity/types.js.map +1 -0
- package/dist/cjs/errors/conversationErrorTypes.js +56 -0
- package/dist/cjs/errors/conversationErrorTypes.js.map +1 -0
- package/dist/cjs/errors/errorTemplates.js +86 -0
- package/dist/cjs/errors/errorTemplates.js.map +1 -0
- package/dist/cjs/errors/index.js +13 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/external-types.d.js +2 -0
- package/dist/cjs/external-types.d.js.map +1 -0
- package/dist/cjs/featureToggles/FeatureToggleContext.js +44 -0
- package/dist/cjs/featureToggles/FeatureToggleContext.js.map +1 -0
- package/dist/cjs/hooks/useConversation.js +10 -0
- package/dist/cjs/hooks/useConversation.js.map +1 -0
- package/dist/cjs/hooks/useDebugImageContext.js +10 -0
- package/dist/cjs/hooks/useDebugImageContext.js.map +1 -0
- package/dist/cjs/hooks/useEntityTransforms.js +10 -0
- package/dist/cjs/hooks/useEntityTransforms.js.map +1 -0
- package/dist/cjs/hooks/useMarkdownUtils.js +10 -0
- package/dist/cjs/hooks/useMarkdownUtils.js.map +1 -0
- package/dist/cjs/hooks/useResolveGenericEntityData.js +10 -0
- package/dist/cjs/hooks/useResolveGenericEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolveSearchSpringEntityData.js +146 -0
- package/dist/cjs/hooks/useResolveSearchSpringEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolveShopifyEntityData.js +190 -0
- package/dist/cjs/hooks/useResolveShopifyEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolvedImageSources.js +160 -0
- package/dist/cjs/hooks/useResolvedImageSources.js.map +1 -0
- package/dist/cjs/hooks/useWeb5Link.js +10 -0
- package/dist/cjs/hooks/useWeb5Link.js.map +1 -0
- package/dist/cjs/image/contextualImageTypes.js +4 -0
- package/dist/cjs/image/contextualImageTypes.js.map +1 -0
- package/dist/cjs/image/imageSearchFilterTypes.js +19 -0
- package/dist/cjs/image/imageSearchFilterTypes.js.map +1 -0
- package/dist/cjs/image/imageSearchFilters.js +22 -0
- package/dist/cjs/image/imageSearchFilters.js.map +1 -0
- package/dist/cjs/index.js +285 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/utils.js +33 -0
- package/dist/cjs/lib/utils.js.map +1 -0
- package/dist/cjs/markdownBlocks.js +645 -0
- package/dist/cjs/markdownBlocks.js.map +1 -0
- package/dist/cjs/match/astToParts.js +374 -0
- package/dist/cjs/match/astToParts.js.map +1 -0
- package/dist/cjs/match/extractProps.js +654 -0
- package/dist/cjs/match/extractProps.js.map +1 -0
- package/dist/cjs/match/index.js +11 -0
- package/dist/cjs/match/index.js.map +1 -0
- package/dist/cjs/match/matchAllSections.js +34 -0
- package/dist/cjs/match/matchAllSections.js.map +1 -0
- package/dist/cjs/match/matchMarkdown.js +39 -0
- package/dist/cjs/match/matchMarkdown.js.map +1 -0
- package/dist/cjs/parts/parts.js +183 -0
- package/dist/cjs/parts/parts.js.map +1 -0
- package/dist/cjs/patternAnalyzer/conflictDetector.js +103 -0
- package/dist/cjs/patternAnalyzer/conflictDetector.js.map +1 -0
- package/dist/cjs/patternAnalyzer/index.js +40 -0
- package/dist/cjs/patternAnalyzer/index.js.map +1 -0
- package/dist/cjs/patternAnalyzer/markdownGenerator.js +347 -0
- package/dist/cjs/patternAnalyzer/markdownGenerator.js.map +1 -0
- package/dist/cjs/patternAnalyzer/mergeDetector.js +505 -0
- package/dist/cjs/patternAnalyzer/mergeDetector.js.map +1 -0
- package/dist/cjs/patternAnalyzer/parserValidator.js +56 -0
- package/dist/cjs/patternAnalyzer/parserValidator.js.map +1 -0
- package/dist/cjs/patternAnalyzer/patternWriter.js +106 -0
- package/dist/cjs/patternAnalyzer/patternWriter.js.map +1 -0
- package/dist/cjs/patternAnalyzer/run.js +140 -0
- package/dist/cjs/patternAnalyzer/run.js.map +1 -0
- package/dist/cjs/patternAnalyzer/types.js +4 -0
- package/dist/cjs/patternAnalyzer/types.js.map +1 -0
- package/dist/cjs/patternValidator/ERROR_MESSAGES.md +110 -0
- package/dist/cjs/patternValidator/README.md +757 -0
- package/dist/cjs/patternValidator/automaton.js +349 -0
- package/dist/cjs/patternValidator/automaton.js.map +1 -0
- package/dist/cjs/patternValidator/index.js +196 -0
- package/dist/cjs/patternValidator/index.js.map +1 -0
- package/dist/cjs/patternValidator/lexer.js +218 -0
- package/dist/cjs/patternValidator/lexer.js.map +1 -0
- package/dist/cjs/patternValidator/matcher.js +722 -0
- package/dist/cjs/patternValidator/matcher.js.map +1 -0
- package/dist/cjs/patternValidator/parser.js +533 -0
- package/dist/cjs/patternValidator/parser.js.map +1 -0
- package/dist/cjs/patternValidator/types.js +4 -0
- package/dist/cjs/patternValidator/types.js.map +1 -0
- package/dist/cjs/patternValidator/validator.test.js +1277 -0
- package/dist/cjs/patternValidator/validator.test.js.map +1 -0
- package/dist/cjs/registry/ComponentRegistry.js +438 -0
- package/dist/cjs/registry/ComponentRegistry.js.map +1 -0
- package/dist/cjs/registry/Intent.js +19 -0
- package/dist/cjs/registry/Intent.js.map +1 -0
- package/dist/cjs/registry/index.js +9 -0
- package/dist/cjs/registry/index.js.map +1 -0
- package/dist/cjs/registry/types.js +4 -0
- package/dist/cjs/registry/types.js.map +1 -0
- package/dist/cjs/services/cart/addToCart.js +147 -0
- package/dist/cjs/services/cart/addToCart.js.map +1 -0
- package/dist/cjs/services/cart/index.js +7 -0
- package/dist/cjs/services/cart/index.js.map +1 -0
- package/dist/cjs/services/searchspring/index.js +10 -0
- package/dist/cjs/services/searchspring/index.js.map +1 -0
- package/dist/cjs/services/searchspring/searchSpringClient.js +49 -0
- package/dist/cjs/services/searchspring/searchSpringClient.js.map +1 -0
- package/dist/cjs/services/searchspring/transformSSProduct.js +70 -0
- package/dist/cjs/services/searchspring/transformSSProduct.js.map +1 -0
- package/dist/cjs/services/searchspring/types.js +4 -0
- package/dist/cjs/services/searchspring/types.js.map +1 -0
- package/dist/cjs/services/shopify/globals.d.js +4 -0
- package/dist/cjs/services/shopify/globals.d.js.map +1 -0
- package/dist/cjs/services/shopify/index.js +22 -0
- package/dist/cjs/services/shopify/index.js.map +1 -0
- package/dist/cjs/services/shopify/queries.js +214 -0
- package/dist/cjs/services/shopify/queries.js.map +1 -0
- package/dist/cjs/services/shopify/resolveStoreDomain.js +28 -0
- package/dist/cjs/services/shopify/resolveStoreDomain.js.map +1 -0
- package/dist/cjs/services/shopify/shopifyEntityResolver.js +109 -0
- package/dist/cjs/services/shopify/shopifyEntityResolver.js.map +1 -0
- package/dist/cjs/services/shopify/shopifyStorefrontClient.js +58 -0
- package/dist/cjs/services/shopify/shopifyStorefrontClient.js.map +1 -0
- package/dist/cjs/services/shopify/transformShopifyEntity.js +137 -0
- package/dist/cjs/services/shopify/transformShopifyEntity.js.map +1 -0
- package/dist/cjs/services/shopify/types.js +4 -0
- package/dist/cjs/services/shopify/types.js.map +1 -0
- package/dist/cjs/styles/base-tokens.css +152 -0
- package/dist/cjs/styles/base-utilities.css +424 -0
- package/dist/cjs/styles/components.css +6 -0
- package/dist/cjs/styles/prompt-input-tokens.css +136 -0
- package/dist/cjs/styles/tailwind-theme.css +138 -0
- package/dist/cjs/test-types.d.js +2 -0
- package/dist/cjs/test-types.d.js.map +1 -0
- package/dist/cjs/testUtils.js +25 -0
- package/dist/cjs/testUtils.js.map +1 -0
- package/dist/cjs/types/answerUpdatedEvent.js +20 -0
- package/dist/cjs/types/answerUpdatedEvent.js.map +1 -0
- package/dist/cjs/types/blog.js +4 -0
- package/dist/cjs/types/blog.js.map +1 -0
- package/dist/cjs/types/callout.js +6 -0
- package/dist/cjs/types/callout.js.map +1 -0
- package/dist/cjs/types/dependencies.js +4 -0
- package/dist/cjs/types/dependencies.js.map +1 -0
- package/dist/cjs/types/entity.js +4 -0
- package/dist/cjs/types/entity.js.map +1 -0
- package/dist/cjs/types/link-types.js +62 -0
- package/dist/cjs/types/link-types.js.map +1 -0
- package/dist/cjs/types/page-section.js +4 -0
- package/dist/cjs/types/page-section.js.map +1 -0
- package/dist/cjs/types/placement.js +4 -0
- package/dist/cjs/types/placement.js.map +1 -0
- package/dist/cjs/types/redirectEvent.js +27 -0
- package/dist/cjs/types/redirectEvent.js.map +1 -0
- package/dist/cjs/types/userQueryEvent.js +19 -0
- package/dist/cjs/types/userQueryEvent.js.map +1 -0
- package/dist/cjs/utils/analyticsEvents.js +91 -0
- package/dist/cjs/utils/analyticsEvents.js.map +1 -0
- package/dist/cjs/utils/componentTracking.js +90 -0
- package/dist/cjs/utils/componentTracking.js.map +1 -0
- package/dist/cjs/utils/contentKeywordMatcher.js +56 -0
- package/dist/cjs/utils/contentKeywordMatcher.js.map +1 -0
- package/dist/cjs/utils/conversationApi.js +52 -0
- package/dist/cjs/utils/conversationApi.js.map +1 -0
- package/dist/cjs/utils/conversationMode.js +23 -0
- package/dist/cjs/utils/conversationMode.js.map +1 -0
- package/dist/cjs/utils/diagnosticsCollector.js +58 -0
- package/dist/cjs/utils/diagnosticsCollector.js.map +1 -0
- package/dist/cjs/utils/entityLinkParser.js +256 -0
- package/dist/cjs/utils/entityLinkParser.js.map +1 -0
- package/dist/cjs/utils/htmlCommentParser.js +122 -0
- package/dist/cjs/utils/htmlCommentParser.js.map +1 -0
- package/dist/cjs/utils/image-utils.js +49 -0
- package/dist/cjs/utils/image-utils.js.map +1 -0
- package/dist/cjs/utils/intentExtractor.js +47 -0
- package/dist/cjs/utils/intentExtractor.js.map +1 -0
- package/dist/cjs/utils/markdownPreprocessor.js +268 -0
- package/dist/cjs/utils/markdownPreprocessor.js.map +1 -0
- package/dist/cjs/utils/navigationStack.js +35 -0
- package/dist/cjs/utils/navigationStack.js.map +1 -0
- package/dist/cjs/utils/nodeMatchers.js +43 -0
- package/dist/cjs/utils/nodeMatchers.js.map +1 -0
- package/dist/cjs/utils/propsExtractor.js +66 -0
- package/dist/cjs/utils/propsExtractor.js.map +1 -0
- package/dist/cjs/utils/sessionManager.js +161 -0
- package/dist/cjs/utils/sessionManager.js.map +1 -0
- package/dist/cjs/utils/unifiedMarkdownParser.js +44 -0
- package/dist/cjs/utils/unifiedMarkdownParser.js.map +1 -0
- package/dist/cjs/utils/web5LinkValidator.js +56 -0
- package/dist/cjs/utils/web5LinkValidator.js.map +1 -0
- package/dist/cjs/utils/web5LinkValidator.test.js +115 -0
- package/dist/cjs/utils/web5LinkValidator.test.js.map +1 -0
- package/dist/esm/client/clientBundleOverride.js +43 -0
- package/dist/esm/client/clientBundleOverride.js.map +1 -0
- package/dist/esm/client/devEnvironment.js +2 -0
- package/dist/esm/client/devEnvironment.js.map +1 -0
- package/dist/esm/client/loadClientBundle.js +82 -0
- package/dist/esm/client/loadClientBundle.js.map +1 -0
- package/dist/esm/client/wixAuthFetch.js +68 -0
- package/dist/esm/client/wixAuthFetch.js.map +1 -0
- package/dist/esm/clients.js +11 -0
- package/dist/esm/clients.js.map +1 -0
- package/dist/esm/color/colorUtils.js +118 -0
- package/dist/esm/color/colorUtils.js.map +1 -0
- package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js +61 -0
- package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js +135 -0
- package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js +79 -0
- package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js +165 -0
- package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js +75 -0
- package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js +23 -0
- package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js +113 -0
- package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js +69 -0
- package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js +119 -0
- package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js +203 -0
- package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js +13 -0
- package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js +108 -0
- package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js +130 -0
- package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js +12 -0
- package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js +14 -0
- package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js +59 -0
- package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/index.js +45 -0
- package/dist/esm/component/componentDefinitions/index.js.map +1 -0
- package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js +80 -0
- package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/parse-utils.js +412 -0
- package/dist/esm/component/componentDefinitions/parse-utils.js.map +1 -0
- package/dist/esm/component/componentDefinitions/specHelpers.js +31 -0
- package/dist/esm/component/componentDefinitions/specHelpers.js.map +1 -0
- package/dist/esm/component/componentParser.js +358 -0
- package/dist/esm/component/componentParser.js.map +1 -0
- package/dist/esm/component/diagnosticTypes.js +26 -0
- package/dist/esm/component/diagnosticTypes.js.map +1 -0
- package/dist/esm/component/parser-types.js +2 -0
- package/dist/esm/component/parser-types.js.map +1 -0
- package/dist/esm/component/section-definition.js +2 -0
- package/dist/esm/component/section-definition.js.map +1 -0
- package/dist/esm/component/types.js +2 -0
- package/dist/esm/component/types.js.map +1 -0
- package/dist/esm/components/placement/PlacementPayloadContext.js +24 -0
- package/dist/esm/components/placement/PlacementPayloadContext.js.map +1 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.css +269 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.js +173 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.js.map +1 -0
- package/dist/esm/components/placement/buildPlacementDependencies.js +212 -0
- package/dist/esm/components/placement/buildPlacementDependencies.js.map +1 -0
- package/dist/esm/components/ui/BottomContainer.js +14 -0
- package/dist/esm/components/ui/BottomContainer.js.map +1 -0
- package/dist/esm/components/ui/CalloutBlock.js +118 -0
- package/dist/esm/components/ui/CalloutBlock.js.map +1 -0
- package/dist/esm/components/ui/Disclaimer.css +35 -0
- package/dist/esm/components/ui/Disclaimer.js +32 -0
- package/dist/esm/components/ui/Disclaimer.js.map +1 -0
- package/dist/esm/components/ui/FeedbackBar.css +267 -0
- package/dist/esm/components/ui/FeedbackBar.js +221 -0
- package/dist/esm/components/ui/FeedbackBar.js.map +1 -0
- package/dist/esm/components/ui/Loader.js +43 -0
- package/dist/esm/components/ui/Loader.js.map +1 -0
- package/dist/esm/components/ui/MarkdownText.js +283 -0
- package/dist/esm/components/ui/MarkdownText.js.map +1 -0
- package/dist/esm/components/ui/OptimizedImage.js +354 -0
- package/dist/esm/components/ui/OptimizedImage.js.map +1 -0
- package/dist/esm/components/ui/PlacementLoader.css +101 -0
- package/dist/esm/components/ui/PlacementLoader.js +28 -0
- package/dist/esm/components/ui/PlacementLoader.js.map +1 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.css +172 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.js +36 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.js.map +1 -0
- package/dist/esm/components/ui/SearchSection.css +538 -0
- package/dist/esm/components/ui/SearchSection.js +317 -0
- package/dist/esm/components/ui/SearchSection.js.map +1 -0
- package/dist/esm/components/ui/SectionSkeleton.css +109 -0
- package/dist/esm/components/ui/SectionSkeleton.js +100 -0
- package/dist/esm/components/ui/SectionSkeleton.js.map +1 -0
- package/dist/esm/components/ui/SmartIcon.js +91 -0
- package/dist/esm/components/ui/SmartIcon.js.map +1 -0
- package/dist/esm/components/ui/UnifiedLink.js +105 -0
- package/dist/esm/components/ui/UnifiedLink.js.map +1 -0
- package/dist/esm/components/ui/UserQuery.js +167 -0
- package/dist/esm/components/ui/UserQuery.js.map +1 -0
- package/dist/esm/components/ui/icons/ArrowTopRightIcon.js +17 -0
- package/dist/esm/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/ArrowUpIcon.js +29 -0
- package/dist/esm/components/ui/icons/ArrowUpIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/CheckIcon.js +17 -0
- package/dist/esm/components/ui/icons/CheckIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/CommentIcon.js +15 -0
- package/dist/esm/components/ui/icons/CommentIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/PlusIcon.js +25 -0
- package/dist/esm/components/ui/icons/PlusIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/RedoIcon.js +25 -0
- package/dist/esm/components/ui/icons/RedoIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/ShareIcon.js +37 -0
- package/dist/esm/components/ui/icons/ShareIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/UndoIcon.js +25 -0
- package/dist/esm/components/ui/icons/UndoIcon.js.map +1 -0
- package/dist/esm/components/ui/table.js +92 -0
- package/dist/esm/components/ui/table.js.map +1 -0
- package/dist/esm/context/ChipsContext.js +7 -0
- package/dist/esm/context/ChipsContext.js.map +1 -0
- package/dist/esm/context/ComponentDependenciesContext.js +19 -0
- package/dist/esm/context/ComponentDependenciesContext.js.map +1 -0
- package/dist/esm/entity/defaultExtractor.js +111 -0
- package/dist/esm/entity/defaultExtractor.js.map +1 -0
- package/dist/esm/entity/enrichEntitiesFromPayload.js +35 -0
- package/dist/esm/entity/enrichEntitiesFromPayload.js.map +1 -0
- package/dist/esm/entity/fetchEntityListData.js +76 -0
- package/dist/esm/entity/fetchEntityListData.js.map +1 -0
- package/dist/esm/entity/index.js +29 -0
- package/dist/esm/entity/index.js.map +1 -0
- package/dist/esm/entity/types.js +2 -0
- package/dist/esm/entity/types.js.map +1 -0
- package/dist/esm/errors/conversationErrorTypes.js +50 -0
- package/dist/esm/errors/conversationErrorTypes.js.map +1 -0
- package/dist/esm/errors/errorTemplates.js +81 -0
- package/dist/esm/errors/errorTemplates.js.map +1 -0
- package/dist/esm/errors/index.js +3 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/external-types.d.js +2 -0
- package/dist/esm/external-types.d.js.map +1 -0
- package/dist/esm/featureToggles/FeatureToggleContext.js +30 -0
- package/dist/esm/featureToggles/FeatureToggleContext.js.map +1 -0
- package/dist/esm/hooks/useConversation.js +6 -0
- package/dist/esm/hooks/useConversation.js.map +1 -0
- package/dist/esm/hooks/useDebugImageContext.js +6 -0
- package/dist/esm/hooks/useDebugImageContext.js.map +1 -0
- package/dist/esm/hooks/useEntityTransforms.js +6 -0
- package/dist/esm/hooks/useEntityTransforms.js.map +1 -0
- package/dist/esm/hooks/useMarkdownUtils.js +6 -0
- package/dist/esm/hooks/useMarkdownUtils.js.map +1 -0
- package/dist/esm/hooks/useResolveGenericEntityData.js +6 -0
- package/dist/esm/hooks/useResolveGenericEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolveSearchSpringEntityData.js +146 -0
- package/dist/esm/hooks/useResolveSearchSpringEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolveShopifyEntityData.js +191 -0
- package/dist/esm/hooks/useResolveShopifyEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolvedImageSources.js +169 -0
- package/dist/esm/hooks/useResolvedImageSources.js.map +1 -0
- package/dist/esm/hooks/useWeb5Link.js +6 -0
- package/dist/esm/hooks/useWeb5Link.js.map +1 -0
- package/dist/esm/image/contextualImageTypes.js +2 -0
- package/dist/esm/image/contextualImageTypes.js.map +1 -0
- package/dist/esm/image/imageSearchFilterTypes.js +15 -0
- package/dist/esm/image/imageSearchFilterTypes.js.map +1 -0
- package/dist/esm/image/imageSearchFilters.js +18 -0
- package/dist/esm/image/imageSearchFilters.js.map +1 -0
- package/dist/esm/index.js +152 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/utils.js +33 -0
- package/dist/esm/lib/utils.js.map +1 -0
- package/dist/esm/markdownBlocks.js +641 -0
- package/dist/esm/markdownBlocks.js.map +1 -0
- package/dist/esm/match/astToParts.js +371 -0
- package/dist/esm/match/astToParts.js.map +1 -0
- package/dist/esm/match/extractProps.js +634 -0
- package/dist/esm/match/extractProps.js.map +1 -0
- package/dist/esm/match/index.js +4 -0
- package/dist/esm/match/index.js.map +1 -0
- package/dist/esm/match/matchAllSections.js +31 -0
- package/dist/esm/match/matchAllSections.js.map +1 -0
- package/dist/esm/match/matchMarkdown.js +36 -0
- package/dist/esm/match/matchMarkdown.js.map +1 -0
- package/dist/esm/parts/parts.js +171 -0
- package/dist/esm/parts/parts.js.map +1 -0
- package/dist/esm/patternAnalyzer/conflictDetector.js +99 -0
- package/dist/esm/patternAnalyzer/conflictDetector.js.map +1 -0
- package/dist/esm/patternAnalyzer/index.js +36 -0
- package/dist/esm/patternAnalyzer/index.js.map +1 -0
- package/dist/esm/patternAnalyzer/markdownGenerator.js +344 -0
- package/dist/esm/patternAnalyzer/markdownGenerator.js.map +1 -0
- package/dist/esm/patternAnalyzer/mergeDetector.js +504 -0
- package/dist/esm/patternAnalyzer/mergeDetector.js.map +1 -0
- package/dist/esm/patternAnalyzer/parserValidator.js +52 -0
- package/dist/esm/patternAnalyzer/parserValidator.js.map +1 -0
- package/dist/esm/patternAnalyzer/patternWriter.js +102 -0
- package/dist/esm/patternAnalyzer/patternWriter.js.map +1 -0
- package/dist/esm/patternAnalyzer/run.js +138 -0
- package/dist/esm/patternAnalyzer/run.js.map +1 -0
- package/dist/esm/patternAnalyzer/types.js +2 -0
- package/dist/esm/patternAnalyzer/types.js.map +1 -0
- package/dist/esm/patternValidator/ERROR_MESSAGES.md +110 -0
- package/dist/esm/patternValidator/README.md +757 -0
- package/dist/esm/patternValidator/automaton.js +345 -0
- package/dist/esm/patternValidator/automaton.js.map +1 -0
- package/dist/esm/patternValidator/index.js +190 -0
- package/dist/esm/patternValidator/index.js.map +1 -0
- package/dist/esm/patternValidator/lexer.js +214 -0
- package/dist/esm/patternValidator/lexer.js.map +1 -0
- package/dist/esm/patternValidator/matcher.js +717 -0
- package/dist/esm/patternValidator/matcher.js.map +1 -0
- package/dist/esm/patternValidator/parser.js +531 -0
- package/dist/esm/patternValidator/parser.js.map +1 -0
- package/dist/esm/patternValidator/types.js +2 -0
- package/dist/esm/patternValidator/types.js.map +1 -0
- package/dist/esm/patternValidator/validator.test.js +1275 -0
- package/dist/esm/patternValidator/validator.test.js.map +1 -0
- package/dist/esm/registry/ComponentRegistry.js +435 -0
- package/dist/esm/registry/ComponentRegistry.js.map +1 -0
- package/dist/esm/registry/Intent.js +15 -0
- package/dist/esm/registry/Intent.js.map +1 -0
- package/dist/esm/registry/index.js +3 -0
- package/dist/esm/registry/index.js.map +1 -0
- package/dist/esm/registry/types.js +2 -0
- package/dist/esm/registry/types.js.map +1 -0
- package/dist/esm/services/cart/addToCart.js +146 -0
- package/dist/esm/services/cart/addToCart.js.map +1 -0
- package/dist/esm/services/cart/index.js +2 -0
- package/dist/esm/services/cart/index.js.map +1 -0
- package/dist/esm/services/searchspring/index.js +3 -0
- package/dist/esm/services/searchspring/index.js.map +1 -0
- package/dist/esm/services/searchspring/searchSpringClient.js +44 -0
- package/dist/esm/services/searchspring/searchSpringClient.js.map +1 -0
- package/dist/esm/services/searchspring/transformSSProduct.js +66 -0
- package/dist/esm/services/searchspring/transformSSProduct.js.map +1 -0
- package/dist/esm/services/searchspring/types.js +2 -0
- package/dist/esm/services/searchspring/types.js.map +1 -0
- package/dist/esm/services/shopify/globals.d.js +7 -0
- package/dist/esm/services/shopify/globals.d.js.map +1 -0
- package/dist/esm/services/shopify/index.js +6 -0
- package/dist/esm/services/shopify/index.js.map +1 -0
- package/dist/esm/services/shopify/queries.js +210 -0
- package/dist/esm/services/shopify/queries.js.map +1 -0
- package/dist/esm/services/shopify/resolveStoreDomain.js +25 -0
- package/dist/esm/services/shopify/resolveStoreDomain.js.map +1 -0
- package/dist/esm/services/shopify/shopifyEntityResolver.js +105 -0
- package/dist/esm/services/shopify/shopifyEntityResolver.js.map +1 -0
- package/dist/esm/services/shopify/shopifyStorefrontClient.js +52 -0
- package/dist/esm/services/shopify/shopifyStorefrontClient.js.map +1 -0
- package/dist/esm/services/shopify/transformShopifyEntity.js +130 -0
- package/dist/esm/services/shopify/transformShopifyEntity.js.map +1 -0
- package/dist/esm/services/shopify/types.js +2 -0
- package/dist/esm/services/shopify/types.js.map +1 -0
- package/dist/esm/styles/base-tokens.css +152 -0
- package/dist/esm/styles/base-utilities.css +424 -0
- package/dist/esm/styles/components.css +6 -0
- package/dist/esm/styles/prompt-input-tokens.css +136 -0
- package/dist/esm/styles/tailwind-theme.css +138 -0
- package/dist/esm/test-types.d.js +2 -0
- package/dist/esm/test-types.d.js.map +1 -0
- package/dist/esm/testUtils.js +20 -0
- package/dist/esm/testUtils.js.map +1 -0
- package/dist/esm/types/answerUpdatedEvent.js +16 -0
- package/dist/esm/types/answerUpdatedEvent.js.map +1 -0
- package/dist/esm/types/blog.js +2 -0
- package/dist/esm/types/blog.js.map +1 -0
- package/dist/esm/types/callout.js +2 -0
- package/dist/esm/types/callout.js.map +1 -0
- package/dist/esm/types/dependencies.js +2 -0
- package/dist/esm/types/dependencies.js.map +1 -0
- package/dist/esm/types/entity.js +2 -0
- package/dist/esm/types/entity.js.map +1 -0
- package/dist/esm/types/link-types.js +52 -0
- package/dist/esm/types/link-types.js.map +1 -0
- package/dist/esm/types/page-section.js +2 -0
- package/dist/esm/types/page-section.js.map +1 -0
- package/dist/esm/types/placement.js +2 -0
- package/dist/esm/types/placement.js.map +1 -0
- package/dist/esm/types/redirectEvent.js +23 -0
- package/dist/esm/types/redirectEvent.js.map +1 -0
- package/dist/esm/types/userQueryEvent.js +15 -0
- package/dist/esm/types/userQueryEvent.js.map +1 -0
- package/dist/esm/utils/analyticsEvents.js +84 -0
- package/dist/esm/utils/analyticsEvents.js.map +1 -0
- package/dist/esm/utils/componentTracking.js +84 -0
- package/dist/esm/utils/componentTracking.js.map +1 -0
- package/dist/esm/utils/contentKeywordMatcher.js +50 -0
- package/dist/esm/utils/contentKeywordMatcher.js.map +1 -0
- package/dist/esm/utils/conversationApi.js +45 -0
- package/dist/esm/utils/conversationApi.js.map +1 -0
- package/dist/esm/utils/conversationMode.js +18 -0
- package/dist/esm/utils/conversationMode.js.map +1 -0
- package/dist/esm/utils/diagnosticsCollector.js +52 -0
- package/dist/esm/utils/diagnosticsCollector.js.map +1 -0
- package/dist/esm/utils/entityLinkParser.js +246 -0
- package/dist/esm/utils/entityLinkParser.js.map +1 -0
- package/dist/esm/utils/htmlCommentParser.js +117 -0
- package/dist/esm/utils/htmlCommentParser.js.map +1 -0
- package/dist/esm/utils/image-utils.js +45 -0
- package/dist/esm/utils/image-utils.js.map +1 -0
- package/dist/esm/utils/intentExtractor.js +45 -0
- package/dist/esm/utils/intentExtractor.js.map +1 -0
- package/dist/esm/utils/markdownPreprocessor.js +257 -0
- package/dist/esm/utils/markdownPreprocessor.js.map +1 -0
- package/dist/esm/utils/navigationStack.js +27 -0
- package/dist/esm/utils/navigationStack.js.map +1 -0
- package/dist/esm/utils/nodeMatchers.js +38 -0
- package/dist/esm/utils/nodeMatchers.js.map +1 -0
- package/dist/esm/utils/propsExtractor.js +58 -0
- package/dist/esm/utils/propsExtractor.js.map +1 -0
- package/dist/esm/utils/sessionManager.js +151 -0
- package/dist/esm/utils/sessionManager.js.map +1 -0
- package/dist/esm/utils/unifiedMarkdownParser.js +36 -0
- package/dist/esm/utils/unifiedMarkdownParser.js.map +1 -0
- package/dist/esm/utils/web5LinkValidator.js +52 -0
- package/dist/esm/utils/web5LinkValidator.js.map +1 -0
- package/dist/esm/utils/web5LinkValidator.test.js +113 -0
- package/dist/esm/utils/web5LinkValidator.test.js.map +1 -0
- package/dist/types/client/clientBundleOverride.d.ts +26 -0
- package/dist/types/client/clientBundleOverride.d.ts.map +1 -0
- package/dist/types/client/devEnvironment.d.ts +24 -0
- package/dist/types/client/devEnvironment.d.ts.map +1 -0
- package/dist/types/client/loadClientBundle.d.ts +27 -0
- package/dist/types/client/loadClientBundle.d.ts.map +1 -0
- package/dist/types/client/wixAuthFetch.d.ts +12 -0
- package/dist/types/client/wixAuthFetch.d.ts.map +1 -0
- package/dist/types/clients.d.ts +10 -0
- package/dist/types/clients.d.ts.map +1 -0
- package/dist/types/color/colorUtils.d.ts +9 -0
- package/dist/types/color/colorUtils.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts +16 -0
- package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts +23 -0
- package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts +10 -0
- package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/index.d.ts +26 -0
- package/dist/types/component/componentDefinitions/index.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/parse-utils.d.ts +88 -0
- package/dist/types/component/componentDefinitions/parse-utils.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/specHelpers.d.ts +16 -0
- package/dist/types/component/componentDefinitions/specHelpers.d.ts.map +1 -0
- package/dist/types/component/componentParser.d.ts +63 -0
- package/dist/types/component/componentParser.d.ts.map +1 -0
- package/dist/types/component/diagnosticTypes.d.ts +23 -0
- package/dist/types/component/diagnosticTypes.d.ts.map +1 -0
- package/dist/types/component/parser-types.d.ts +71 -0
- package/dist/types/component/parser-types.d.ts.map +1 -0
- package/dist/types/component/section-definition.d.ts +32 -0
- package/dist/types/component/section-definition.d.ts.map +1 -0
- package/dist/types/component/types.d.ts +315 -0
- package/dist/types/component/types.d.ts.map +1 -0
- package/dist/types/components/placement/PlacementPayloadContext.d.ts +20 -0
- package/dist/types/components/placement/PlacementPayloadContext.d.ts.map +1 -0
- package/dist/types/components/placement/PlacementResponseRenderer.d.ts +106 -0
- package/dist/types/components/placement/PlacementResponseRenderer.d.ts.map +1 -0
- package/dist/types/components/placement/buildPlacementDependencies.d.ts +44 -0
- package/dist/types/components/placement/buildPlacementDependencies.d.ts.map +1 -0
- package/dist/types/components/ui/BottomContainer.d.ts +9 -0
- package/dist/types/components/ui/BottomContainer.d.ts.map +1 -0
- package/dist/types/components/ui/CalloutBlock.d.ts +9 -0
- package/dist/types/components/ui/CalloutBlock.d.ts.map +1 -0
- package/dist/types/components/ui/Disclaimer.d.ts +21 -0
- package/dist/types/components/ui/Disclaimer.d.ts.map +1 -0
- package/dist/types/components/ui/FeedbackBar.d.ts +41 -0
- package/dist/types/components/ui/FeedbackBar.d.ts.map +1 -0
- package/dist/types/components/ui/Loader.d.ts +9 -0
- package/dist/types/components/ui/Loader.d.ts.map +1 -0
- package/dist/types/components/ui/MarkdownText.d.ts +9 -0
- package/dist/types/components/ui/MarkdownText.d.ts.map +1 -0
- package/dist/types/components/ui/OptimizedImage.d.ts +59 -0
- package/dist/types/components/ui/OptimizedImage.d.ts.map +1 -0
- package/dist/types/components/ui/PlacementLoader.d.ts +15 -0
- package/dist/types/components/ui/PlacementLoader.d.ts.map +1 -0
- package/dist/types/components/ui/PromptEntryEmptyState.d.ts +21 -0
- package/dist/types/components/ui/PromptEntryEmptyState.d.ts.map +1 -0
- package/dist/types/components/ui/SearchSection.d.ts +37 -0
- package/dist/types/components/ui/SearchSection.d.ts.map +1 -0
- package/dist/types/components/ui/SectionSkeleton.d.ts +27 -0
- package/dist/types/components/ui/SectionSkeleton.d.ts.map +1 -0
- package/dist/types/components/ui/SmartIcon.d.ts +19 -0
- package/dist/types/components/ui/SmartIcon.d.ts.map +1 -0
- package/dist/types/components/ui/UnifiedLink.d.ts +22 -0
- package/dist/types/components/ui/UnifiedLink.d.ts.map +1 -0
- package/dist/types/components/ui/UserQuery.d.ts +33 -0
- package/dist/types/components/ui/UserQuery.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ArrowUpIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ArrowUpIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/CheckIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/CheckIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/CommentIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/CommentIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/PlusIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/PlusIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/RedoIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/RedoIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ShareIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ShareIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/UndoIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/UndoIcon.d.ts.map +1 -0
- package/dist/types/components/ui/table.d.ts +11 -0
- package/dist/types/components/ui/table.d.ts.map +1 -0
- package/dist/types/context/ChipsContext.d.ts +8 -0
- package/dist/types/context/ChipsContext.d.ts.map +1 -0
- package/dist/types/context/ComponentDependenciesContext.d.ts +8 -0
- package/dist/types/context/ComponentDependenciesContext.d.ts.map +1 -0
- package/dist/types/entity/defaultExtractor.d.ts +14 -0
- package/dist/types/entity/defaultExtractor.d.ts.map +1 -0
- package/dist/types/entity/enrichEntitiesFromPayload.d.ts +27 -0
- package/dist/types/entity/enrichEntitiesFromPayload.d.ts.map +1 -0
- package/dist/types/entity/fetchEntityListData.d.ts +20 -0
- package/dist/types/entity/fetchEntityListData.d.ts.map +1 -0
- package/dist/types/entity/index.d.ts +16 -0
- package/dist/types/entity/index.d.ts.map +1 -0
- package/dist/types/entity/types.d.ts +13 -0
- package/dist/types/entity/types.d.ts.map +1 -0
- package/dist/types/errors/conversationErrorTypes.d.ts +20 -0
- package/dist/types/errors/conversationErrorTypes.d.ts.map +1 -0
- package/dist/types/errors/errorTemplates.d.ts +27 -0
- package/dist/types/errors/errorTemplates.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +3 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/featureToggles/FeatureToggleContext.d.ts +18 -0
- package/dist/types/featureToggles/FeatureToggleContext.d.ts.map +1 -0
- package/dist/types/hooks/useConversation.d.ts +3 -0
- package/dist/types/hooks/useConversation.d.ts.map +1 -0
- package/dist/types/hooks/useDebugImageContext.d.ts +2 -0
- package/dist/types/hooks/useDebugImageContext.d.ts.map +1 -0
- package/dist/types/hooks/useEntityTransforms.d.ts +3 -0
- package/dist/types/hooks/useEntityTransforms.d.ts.map +1 -0
- package/dist/types/hooks/useMarkdownUtils.d.ts +3 -0
- package/dist/types/hooks/useMarkdownUtils.d.ts.map +1 -0
- package/dist/types/hooks/useResolveGenericEntityData.d.ts +11 -0
- package/dist/types/hooks/useResolveGenericEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts +20 -0
- package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolveShopifyEntityData.d.ts +21 -0
- package/dist/types/hooks/useResolveShopifyEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolvedImageSources.d.ts +6 -0
- package/dist/types/hooks/useResolvedImageSources.d.ts.map +1 -0
- package/dist/types/hooks/useWeb5Link.d.ts +3 -0
- package/dist/types/hooks/useWeb5Link.d.ts.map +1 -0
- package/dist/types/image/contextualImageTypes.d.ts +17 -0
- package/dist/types/image/contextualImageTypes.d.ts.map +1 -0
- package/dist/types/image/imageSearchFilterTypes.d.ts +14 -0
- package/dist/types/image/imageSearchFilterTypes.d.ts.map +1 -0
- package/dist/types/image/imageSearchFilters.d.ts +16 -0
- package/dist/types/image/imageSearchFilters.d.ts.map +1 -0
- package/dist/types/index.d.ts +88 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/utils.d.ts +3 -0
- package/dist/types/lib/utils.d.ts.map +1 -0
- package/dist/types/markdownBlocks.d.ts +44 -0
- package/dist/types/markdownBlocks.d.ts.map +1 -0
- package/dist/types/match/astToParts.d.ts +15 -0
- package/dist/types/match/astToParts.d.ts.map +1 -0
- package/dist/types/match/extractProps.d.ts +207 -0
- package/dist/types/match/extractProps.d.ts.map +1 -0
- package/dist/types/match/index.d.ts +4 -0
- package/dist/types/match/index.d.ts.map +1 -0
- package/dist/types/match/matchAllSections.d.ts +15 -0
- package/dist/types/match/matchAllSections.d.ts.map +1 -0
- package/dist/types/match/matchMarkdown.d.ts +25 -0
- package/dist/types/match/matchMarkdown.d.ts.map +1 -0
- package/dist/types/parts/parts.d.ts +144 -0
- package/dist/types/parts/parts.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/conflictDetector.d.ts +19 -0
- package/dist/types/patternAnalyzer/conflictDetector.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/index.d.ts +10 -0
- package/dist/types/patternAnalyzer/index.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/markdownGenerator.d.ts +9 -0
- package/dist/types/patternAnalyzer/markdownGenerator.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/mergeDetector.d.ts +14 -0
- package/dist/types/patternAnalyzer/mergeDetector.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/parserValidator.d.ts +13 -0
- package/dist/types/patternAnalyzer/parserValidator.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/patternWriter.d.ts +8 -0
- package/dist/types/patternAnalyzer/patternWriter.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/run.d.ts +2 -0
- package/dist/types/patternAnalyzer/run.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/types.d.ts +59 -0
- package/dist/types/patternAnalyzer/types.d.ts.map +1 -0
- package/dist/types/patternValidator/automaton.d.ts +3 -0
- package/dist/types/patternValidator/automaton.d.ts.map +1 -0
- package/dist/types/patternValidator/index.d.ts +48 -0
- package/dist/types/patternValidator/index.d.ts.map +1 -0
- package/dist/types/patternValidator/lexer.d.ts +3 -0
- package/dist/types/patternValidator/lexer.d.ts.map +1 -0
- package/dist/types/patternValidator/matcher.d.ts +14 -0
- package/dist/types/patternValidator/matcher.d.ts.map +1 -0
- package/dist/types/patternValidator/parser.d.ts +14 -0
- package/dist/types/patternValidator/parser.d.ts.map +1 -0
- package/dist/types/patternValidator/types.d.ts +125 -0
- package/dist/types/patternValidator/types.d.ts.map +1 -0
- package/dist/types/patternValidator/validator.test.d.ts +2 -0
- package/dist/types/patternValidator/validator.test.d.ts.map +1 -0
- package/dist/types/registry/ComponentRegistry.d.ts +64 -0
- package/dist/types/registry/ComponentRegistry.d.ts.map +1 -0
- package/dist/types/registry/Intent.d.ts +12 -0
- package/dist/types/registry/Intent.d.ts.map +1 -0
- package/dist/types/registry/index.d.ts +4 -0
- package/dist/types/registry/index.d.ts.map +1 -0
- package/dist/types/registry/types.d.ts +99 -0
- package/dist/types/registry/types.d.ts.map +1 -0
- package/dist/types/services/cart/addToCart.d.ts +26 -0
- package/dist/types/services/cart/addToCart.d.ts.map +1 -0
- package/dist/types/services/cart/index.d.ts +2 -0
- package/dist/types/services/cart/index.d.ts.map +1 -0
- package/dist/types/services/searchspring/index.d.ts +4 -0
- package/dist/types/services/searchspring/index.d.ts.map +1 -0
- package/dist/types/services/searchspring/searchSpringClient.d.ts +13 -0
- package/dist/types/services/searchspring/searchSpringClient.d.ts.map +1 -0
- package/dist/types/services/searchspring/transformSSProduct.d.ts +7 -0
- package/dist/types/services/searchspring/transformSSProduct.d.ts.map +1 -0
- package/dist/types/services/searchspring/types.d.ts +48 -0
- package/dist/types/services/searchspring/types.d.ts.map +1 -0
- package/dist/types/services/shopify/index.d.ts +7 -0
- package/dist/types/services/shopify/index.d.ts.map +1 -0
- package/dist/types/services/shopify/queries.d.ts +13 -0
- package/dist/types/services/shopify/queries.d.ts.map +1 -0
- package/dist/types/services/shopify/resolveStoreDomain.d.ts +14 -0
- package/dist/types/services/shopify/resolveStoreDomain.d.ts.map +1 -0
- package/dist/types/services/shopify/shopifyEntityResolver.d.ts +21 -0
- package/dist/types/services/shopify/shopifyEntityResolver.d.ts.map +1 -0
- package/dist/types/services/shopify/shopifyStorefrontClient.d.ts +19 -0
- package/dist/types/services/shopify/shopifyStorefrontClient.d.ts.map +1 -0
- package/dist/types/services/shopify/transformShopifyEntity.d.ts +11 -0
- package/dist/types/services/shopify/transformShopifyEntity.d.ts.map +1 -0
- package/dist/types/services/shopify/types.d.ts +109 -0
- package/dist/types/services/shopify/types.d.ts.map +1 -0
- package/dist/types/testUtils.d.ts +7 -0
- package/dist/types/testUtils.d.ts.map +1 -0
- package/dist/types/types/answerUpdatedEvent.d.ts +29 -0
- package/dist/types/types/answerUpdatedEvent.d.ts.map +1 -0
- package/dist/types/types/blog.d.ts +22 -0
- package/dist/types/types/blog.d.ts.map +1 -0
- package/dist/types/types/callout.d.ts +7 -0
- package/dist/types/types/callout.d.ts.map +1 -0
- package/dist/types/types/dependencies.d.ts +191 -0
- package/dist/types/types/dependencies.d.ts.map +1 -0
- package/dist/types/types/entity.d.ts +38 -0
- package/dist/types/types/entity.d.ts.map +1 -0
- package/dist/types/types/link-types.d.ts +38 -0
- package/dist/types/types/link-types.d.ts.map +1 -0
- package/dist/types/types/page-section.d.ts +27 -0
- package/dist/types/types/page-section.d.ts.map +1 -0
- package/dist/types/types/placement.d.ts +94 -0
- package/dist/types/types/placement.d.ts.map +1 -0
- package/dist/types/types/redirectEvent.d.ts +42 -0
- package/dist/types/types/redirectEvent.d.ts.map +1 -0
- package/dist/types/types/userQueryEvent.d.ts +24 -0
- package/dist/types/types/userQueryEvent.d.ts.map +1 -0
- package/dist/types/utils/analyticsEvents.d.ts +24 -0
- package/dist/types/utils/analyticsEvents.d.ts.map +1 -0
- package/dist/types/utils/componentTracking.d.ts +55 -0
- package/dist/types/utils/componentTracking.d.ts.map +1 -0
- package/dist/types/utils/contentKeywordMatcher.d.ts +14 -0
- package/dist/types/utils/contentKeywordMatcher.d.ts.map +1 -0
- package/dist/types/utils/conversationApi.d.ts +26 -0
- package/dist/types/utils/conversationApi.d.ts.map +1 -0
- package/dist/types/utils/conversationMode.d.ts +16 -0
- package/dist/types/utils/conversationMode.d.ts.map +1 -0
- package/dist/types/utils/diagnosticsCollector.d.ts +33 -0
- package/dist/types/utils/diagnosticsCollector.d.ts.map +1 -0
- package/dist/types/utils/entityLinkParser.d.ts +97 -0
- package/dist/types/utils/entityLinkParser.d.ts.map +1 -0
- package/dist/types/utils/htmlCommentParser.d.ts +13 -0
- package/dist/types/utils/htmlCommentParser.d.ts.map +1 -0
- package/dist/types/utils/image-utils.d.ts +10 -0
- package/dist/types/utils/image-utils.d.ts.map +1 -0
- package/dist/types/utils/intentExtractor.d.ts +11 -0
- package/dist/types/utils/intentExtractor.d.ts.map +1 -0
- package/dist/types/utils/markdownPreprocessor.d.ts +95 -0
- package/dist/types/utils/markdownPreprocessor.d.ts.map +1 -0
- package/dist/types/utils/navigationStack.d.ts +6 -0
- package/dist/types/utils/navigationStack.d.ts.map +1 -0
- package/dist/types/utils/nodeMatchers.d.ts +10 -0
- package/dist/types/utils/nodeMatchers.d.ts.map +1 -0
- package/dist/types/utils/propsExtractor.d.ts +51 -0
- package/dist/types/utils/propsExtractor.d.ts.map +1 -0
- package/dist/types/utils/sessionManager.d.ts +57 -0
- package/dist/types/utils/sessionManager.d.ts.map +1 -0
- package/dist/types/utils/unifiedMarkdownParser.d.ts +9 -0
- package/dist/types/utils/unifiedMarkdownParser.d.ts.map +1 -0
- package/dist/types/utils/web5LinkValidator.d.ts +14 -0
- package/dist/types/utils/web5LinkValidator.d.ts.map +1 -0
- package/dist/types/utils/web5LinkValidator.test.d.ts +2 -0
- package/dist/types/utils/web5LinkValidator.test.d.ts.map +1 -0
- package/package.json +103 -0
- package/src/styles/base-tokens.css +152 -0
- package/src/styles/base-utilities.css +424 -0
- package/src/styles/components.css +6 -0
- package/src/styles/prompt-input-tokens.css +136 -0
- package/src/styles/tailwind-theme.css +138 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/* PlacementResponseRenderer — placement card chrome (DL #097 —
|
|
2
|
+
Figma 128:5251 framing / 128:5258 conversation).
|
|
3
|
+
Renders the streamed answer as a warm card with a FormAI eyebrow and a
|
|
4
|
+
gradient highlight ring (accent → transparent, top-left → bottom-right)
|
|
5
|
+
that holds while the answer streams, spins twice once it settles, and then
|
|
6
|
+
stays put. The conversation variant additionally shows the user's question
|
|
7
|
+
as a chip.
|
|
8
|
+
Re-skin via the `--w5-placement-*` tokens below.
|
|
9
|
+
The loading skeleton's styles live in `../ui/PlacementLoader.css`. */
|
|
10
|
+
|
|
11
|
+
/* Outer host-page spacing — matches the loader's `--w5-placement-spacing` so
|
|
12
|
+
the gap to surrounding content doesn't change at swap time. */
|
|
13
|
+
[data-w5-placement-renderer] {
|
|
14
|
+
margin-block: var(--w5-placement-spacing, 24px);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* The loader→content swap is height-animated by the PlacementSmoothHeight
|
|
18
|
+
wrapper (`.w5-placement__body` below); this fade-in covers the paint swap
|
|
19
|
+
itself so the card doesn't pop in while the height glides. Plays once per
|
|
20
|
+
renderer mount (so again after each re-submit). */
|
|
21
|
+
[data-w5-placement-renderer] {
|
|
22
|
+
animation: w5-placement-content-in 240ms ease-out both;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@keyframes w5-placement-content-in {
|
|
26
|
+
from {
|
|
27
|
+
opacity: 0;
|
|
28
|
+
}
|
|
29
|
+
to {
|
|
30
|
+
opacity: 1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
[data-w5-placement-renderer].w5-placement {
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
padding: var(--w5-placement-card-padding, 30px);
|
|
37
|
+
border-radius: var(--w5-placement-card-radius, 4px);
|
|
38
|
+
background: var(--w5-placement-card-bg, #f1f0ee);
|
|
39
|
+
/* Section components inside the answer use `bg-background`
|
|
40
|
+
(= var(--color-background), white), which would paint a white block over
|
|
41
|
+
the card. Re-point that token within the placement so those sections
|
|
42
|
+
inherit the card colour instead — one shared background across the whole
|
|
43
|
+
placement. Change --w5-placement-card-bg to re-theme card + sections. */
|
|
44
|
+
--color-background: var(--w5-placement-card-bg, #f1f0ee);
|
|
45
|
+
/* Reserve the border box so the conversation highlight ring (the
|
|
46
|
+
`::before` gradient below) doesn't shift layout when it fades in/out. */
|
|
47
|
+
border: 2px solid transparent;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Height smoothing for the whole placement slot: PlacementSmoothHeight
|
|
51
|
+
(mounted around the loader/content swap in embed-placement) measures the
|
|
52
|
+
current child (ResizeObserver) and sets an explicit `height` here, so the
|
|
53
|
+
loader→content swap and each streamed section appending animate instead
|
|
54
|
+
of snapping. Until the first measurement lands there's no inline height
|
|
55
|
+
and the box sizes naturally. */
|
|
56
|
+
.w5-placement__body {
|
|
57
|
+
overflow: clip;
|
|
58
|
+
transition: height var(--w5-placement-grow-duration, 350ms) ease-out;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* flow-root so children's top/bottom margins can't collapse out of the
|
|
62
|
+
measured inner box (they'd be clipped by the wrapper otherwise). */
|
|
63
|
+
.w5-placement__body-inner {
|
|
64
|
+
display: flow-root;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* Height clamp + "Show more" (DL #113) — Google-AI-Overview style. Opt-in via
|
|
68
|
+
the slot's `data-clamp` attribute; the renderer adds `--clamped` to the card
|
|
69
|
+
ROOT and caps it directly (no inner wrapper), so the answer sections stay
|
|
70
|
+
direct children of the placement root — clients lay them out with
|
|
71
|
+
`:has(> …)` direct-child grids (feature-com's search-overview two-column
|
|
72
|
+
layout) that a wrapper would break. The cap is also what
|
|
73
|
+
`PlacementSmoothHeight` then measures, so the slot animates to the capped
|
|
74
|
+
height rather than the full content. */
|
|
75
|
+
.w5-placement--clamped {
|
|
76
|
+
position: relative;
|
|
77
|
+
max-height: var(--w5-placement-clamp-height, 220px);
|
|
78
|
+
overflow: hidden;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* The variant highlight ring is a `::before` at `inset: -2px` (outside the
|
|
82
|
+
padding box) — `overflow: hidden` above would clip it to a stub. Drop it on
|
|
83
|
+
clamped cards; the clamp + fade is its own treatment. */
|
|
84
|
+
.w5-placement--clamped::before {
|
|
85
|
+
content: none;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Fade the cut-off bottom edge to the card background (a wash, like Google —
|
|
89
|
+
not a mask that makes text vanish). Rendered only when the content overflows
|
|
90
|
+
(the renderer omits it otherwise), pinned to the bottom of the capped root. */
|
|
91
|
+
.w5-placement__fade {
|
|
92
|
+
position: absolute;
|
|
93
|
+
inset-inline: 0;
|
|
94
|
+
bottom: 0;
|
|
95
|
+
height: var(--w5-placement-fade-height, 96px);
|
|
96
|
+
background: linear-gradient(
|
|
97
|
+
to bottom,
|
|
98
|
+
transparent,
|
|
99
|
+
var(--w5-placement-card-bg, #f1f0ee)
|
|
100
|
+
);
|
|
101
|
+
pointer-events: none;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* "Show more" pill, pinned over the fade. Re-skins via the shared
|
|
105
|
+
`--w5-placement-*` tokens. */
|
|
106
|
+
.w5-placement__show-more {
|
|
107
|
+
position: absolute;
|
|
108
|
+
bottom: 14px;
|
|
109
|
+
left: 50%;
|
|
110
|
+
transform: translateX(-50%);
|
|
111
|
+
display: inline-flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
gap: 6px;
|
|
114
|
+
padding: 8px 18px;
|
|
115
|
+
border-radius: 999px;
|
|
116
|
+
border: 1px solid var(--w5-placement-show-more-border, #d8d5cf);
|
|
117
|
+
background: var(--w5-placement-show-more-bg, #fff);
|
|
118
|
+
color: var(--w5-placement-show-more-color, #000);
|
|
119
|
+
font-size: 14px;
|
|
120
|
+
line-height: 15px;
|
|
121
|
+
font-weight: 500;
|
|
122
|
+
text-decoration: none;
|
|
123
|
+
cursor: pointer;
|
|
124
|
+
white-space: nowrap;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.w5-placement__show-more:hover {
|
|
128
|
+
background: var(--w5-placement-show-more-bg-hover, #f6f5f3);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.w5-placement__show-more:focus-visible {
|
|
132
|
+
outline: 2px solid var(--w5-placement-accent, #ef1b28);
|
|
133
|
+
outline-offset: 2px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.w5-placement__show-more-icon {
|
|
137
|
+
flex: none;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.w5-placement__eyebrow {
|
|
141
|
+
display: flex;
|
|
142
|
+
align-items: center;
|
|
143
|
+
gap: 10px;
|
|
144
|
+
margin-bottom: 20px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.w5-placement__eyebrow-icon {
|
|
148
|
+
flex: none;
|
|
149
|
+
color: var(--w5-placement-accent, #ef1b28);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.w5-placement__eyebrow-label {
|
|
153
|
+
font-size: 14px;
|
|
154
|
+
line-height: 15px;
|
|
155
|
+
font-weight: 500;
|
|
156
|
+
color: var(--w5-placement-eyebrow-color, #000);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* The user's question (conversation variant). */
|
|
160
|
+
.w5-placement__query {
|
|
161
|
+
display: inline-block;
|
|
162
|
+
margin: 0 0 20px;
|
|
163
|
+
padding: 7px 10px;
|
|
164
|
+
border-radius: 3px;
|
|
165
|
+
background: var(--w5-placement-query-bg, #e2dfd9);
|
|
166
|
+
font-size: 14px;
|
|
167
|
+
line-height: 15px;
|
|
168
|
+
color: var(--w5-placement-query-color, #000);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* Placement highlight (conversation + informational): a gradient ring — fully
|
|
172
|
+
opaque accent at the top-left corner fading to transparent toward the
|
|
173
|
+
bottom-right. A solid `border-color` can't render a gradient, so the ring
|
|
174
|
+
is a masked pseudo-element: the gradient paints the whole box, and the
|
|
175
|
+
mask punches out the padding box so only the 2px border area remains.
|
|
176
|
+
The ring shows as soon as the placement starts to render, holds for the
|
|
177
|
+
whole streamed render (the `--streaming` modifier below); once the answer
|
|
178
|
+
settles the modifier drops and the animation plays — the gradient spins
|
|
179
|
+
two full counter-clockwise turns, then the ring stays in place. Replays
|
|
180
|
+
after each re-submit since the renderer remounts via the loader. */
|
|
181
|
+
.w5-placement--conversation,
|
|
182
|
+
.w5-placement--informational {
|
|
183
|
+
position: relative;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* Registered so the gradient angle interpolates in the keyframes below.
|
|
187
|
+
Browsers without `@property` (Firefox < 128) apply custom-property
|
|
188
|
+
keyframes discretely — harmless here, since -585deg ≡ 135deg (mod 360°)
|
|
189
|
+
the jump is invisible and only the hold + fade-out remains. */
|
|
190
|
+
@property --w5-placement-highlight-angle {
|
|
191
|
+
syntax: '<angle>';
|
|
192
|
+
inherits: false;
|
|
193
|
+
initial-value: 135deg;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.w5-placement--conversation::before,
|
|
197
|
+
.w5-placement--informational::before {
|
|
198
|
+
content: '';
|
|
199
|
+
position: absolute;
|
|
200
|
+
/* Cover the reserved 2px transparent border (absolute positioning is
|
|
201
|
+
relative to the padding box, which excludes it). */
|
|
202
|
+
inset: -2px;
|
|
203
|
+
padding: 2px;
|
|
204
|
+
/* Outer radius of the card's border box: card radius + border width. */
|
|
205
|
+
border-radius: calc(var(--w5-placement-card-radius, 4px) + 2px);
|
|
206
|
+
background: linear-gradient(
|
|
207
|
+
var(--w5-placement-highlight-angle, 135deg),
|
|
208
|
+
var(--w5-placement-accent, #ef1b28),
|
|
209
|
+
transparent
|
|
210
|
+
);
|
|
211
|
+
/* Keep only the ring: padding-box ⊖ full box. */
|
|
212
|
+
-webkit-mask:
|
|
213
|
+
linear-gradient(#fff 0 0) content-box,
|
|
214
|
+
linear-gradient(#fff 0 0);
|
|
215
|
+
-webkit-mask-composite: xor;
|
|
216
|
+
mask:
|
|
217
|
+
linear-gradient(#fff 0 0) content-box,
|
|
218
|
+
linear-gradient(#fff 0 0);
|
|
219
|
+
mask-composite: exclude;
|
|
220
|
+
pointer-events: none;
|
|
221
|
+
/* ~9.4s default for the 2.5 counter-clockwise turns (same angular speed as
|
|
222
|
+
the original 2 turns in 7.5s); the ring then holds its final state
|
|
223
|
+
(`both` fill mode) and stays visible. */
|
|
224
|
+
animation: w5-placement-highlight
|
|
225
|
+
var(--w5-placement-highlight-duration, 9375ms) linear both;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* Still streaming: hold the ring fully visible; the spin only starts
|
|
229
|
+
when this class is removed (answer settled) and the animation kicks in. */
|
|
230
|
+
.w5-placement--conversation.w5-placement--streaming::before,
|
|
231
|
+
.w5-placement--informational.w5-placement--streaming::before {
|
|
232
|
+
animation: none;
|
|
233
|
+
opacity: 1;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
@keyframes w5-placement-highlight {
|
|
237
|
+
/* Two and a half counter-clockwise turns (135° → -765° ≡ 315°) at constant
|
|
238
|
+
speed, so the accent settles on the opposite side (bottom-right); the
|
|
239
|
+
ring stays fully visible throughout and after. */
|
|
240
|
+
0% {
|
|
241
|
+
--w5-placement-highlight-angle: 135deg;
|
|
242
|
+
opacity: 1;
|
|
243
|
+
}
|
|
244
|
+
100% {
|
|
245
|
+
--w5-placement-highlight-angle: -765deg;
|
|
246
|
+
opacity: 1;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
@media (prefers-reduced-motion: reduce) {
|
|
251
|
+
/* No spin — show the ring statically in its settled position
|
|
252
|
+
(accent at the bottom-right). */
|
|
253
|
+
.w5-placement--conversation::before,
|
|
254
|
+
.w5-placement--informational::before,
|
|
255
|
+
.w5-placement--conversation.w5-placement--streaming::before,
|
|
256
|
+
.w5-placement--informational.w5-placement--streaming::before {
|
|
257
|
+
animation: none;
|
|
258
|
+
opacity: 1;
|
|
259
|
+
--w5-placement-highlight-angle: 315deg;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.w5-placement__body {
|
|
263
|
+
transition: none;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
[data-w5-placement-renderer] {
|
|
267
|
+
animation: none;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.PlacementSmoothHeight = exports.PlacementResponseRenderer = void 0;
|
|
5
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
6
|
+
var _jsxFileName = "/home/builduser/work/c2b6ca0b3fa984ee/packages/web5-core/dist/cjs/components/placement/PlacementResponseRenderer.tsx";
|
|
7
|
+
/**
|
|
8
|
+
* PlacementResponseRenderer (DL #088 D3.2, DL #097 visual pass).
|
|
9
|
+
*
|
|
10
|
+
* Renders the AI response inside a placement slot. Takes already-parsed
|
|
11
|
+
* sections from the caller's parser and renders the placement chrome
|
|
12
|
+
* (FormAI eyebrow + optional user-query chip) above them.
|
|
13
|
+
*
|
|
14
|
+
* The renderer deliberately does NOT call the parser itself — that's the
|
|
15
|
+
* caller's job (the placement bundle wires the parser of its choice).
|
|
16
|
+
*
|
|
17
|
+
* No post-parse filtering: hero / next-steps exclusion is the **prompt's**
|
|
18
|
+
* job (the LLM is instructed not to emit them), and there's no
|
|
19
|
+
* `maxComponents` cap. Placement-specific designs for a section type (e.g. a
|
|
20
|
+
* tailored rich-text fallback) belong as `{ placement: true }` registry
|
|
21
|
+
* variants in the client package — `resolveSection(type, { placement: true })`
|
|
22
|
+
* picks them automatically.
|
|
23
|
+
*
|
|
24
|
+
* Visual chrome (Figma 128:5251 framing / 128:5258 conversation):
|
|
25
|
+
* - `variant` drives the card; both variants show the highlight border.
|
|
26
|
+
* - `eyebrow` renders the FormAI star + label (chrome, opt-in).
|
|
27
|
+
* - `query` renders the user's question as a chip (conversation only).
|
|
28
|
+
* Styles live in `./PlacementResponseRenderer.css` (injected with the client UMD).
|
|
29
|
+
*/
|
|
30
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
31
|
+
/**
|
|
32
|
+
* Minimal section shape the renderer needs. Designed to match
|
|
33
|
+
* `web50-server-ui`'s `PageSection` shape (with a pre-instantiated `component`)
|
|
34
|
+
* so the renderer works against today's parser output without modification.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Placement visual variant → `w5-placement--<variant>` class. Defined in
|
|
39
|
+
* `../../types/placement` (DL #106 D1: free-form string, no longer a closed
|
|
40
|
+
* `'informational' | 'conversation'` union) and re-exported here for back-compat
|
|
41
|
+
* with existing `from '.../PlacementResponseRenderer'` imports.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Smooths out step-wise height changes in the placement slot: the
|
|
46
|
+
* loader→content swap and each streamed section appending. `height: auto`
|
|
47
|
+
* changes aren't CSS-animatable, so we measure the content's natural height
|
|
48
|
+
* with a ResizeObserver and transition an explicit `height` on the wrapper
|
|
49
|
+
* (see `.w5-placement__body` in the CSS). Falls back to natural auto-height
|
|
50
|
+
* when ResizeObserver is unavailable (SSR, old jsdom).
|
|
51
|
+
*
|
|
52
|
+
* Mounted by the placement stream app (embed-placement) AROUND the
|
|
53
|
+
* loader/content swap — not inside this renderer — so the swap itself
|
|
54
|
+
* animates too.
|
|
55
|
+
*/
|
|
56
|
+
const PlacementSmoothHeight = ({
|
|
57
|
+
children
|
|
58
|
+
}) => {
|
|
59
|
+
const innerRef = _react.default.useRef(null);
|
|
60
|
+
const [height, setHeight] = _react.default.useState(null);
|
|
61
|
+
_react.default.useEffect(() => {
|
|
62
|
+
const el = innerRef.current;
|
|
63
|
+
if (!el || typeof ResizeObserver === 'undefined') return;
|
|
64
|
+
const observer = new ResizeObserver(() => {
|
|
65
|
+
setHeight(el.offsetHeight);
|
|
66
|
+
});
|
|
67
|
+
observer.observe(el);
|
|
68
|
+
return () => observer.disconnect();
|
|
69
|
+
}, []);
|
|
70
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
71
|
+
className: "w5-placement__body",
|
|
72
|
+
style: height != null ? {
|
|
73
|
+
height
|
|
74
|
+
} : undefined,
|
|
75
|
+
__self: void 0,
|
|
76
|
+
__source: {
|
|
77
|
+
fileName: _jsxFileName,
|
|
78
|
+
lineNumber: 123,
|
|
79
|
+
columnNumber: 5
|
|
80
|
+
}
|
|
81
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
82
|
+
ref: innerRef,
|
|
83
|
+
className: "w5-placement__body-inner",
|
|
84
|
+
__self: void 0,
|
|
85
|
+
__source: {
|
|
86
|
+
fileName: _jsxFileName,
|
|
87
|
+
lineNumber: 128,
|
|
88
|
+
columnNumber: 7
|
|
89
|
+
}
|
|
90
|
+
}, children));
|
|
91
|
+
};
|
|
92
|
+
exports.PlacementSmoothHeight = PlacementSmoothHeight;
|
|
93
|
+
const StarIcon = () => /*#__PURE__*/_react.default.createElement('svg', {
|
|
94
|
+
className: 'w5-placement__eyebrow-icon',
|
|
95
|
+
viewBox: '0 0 16 16',
|
|
96
|
+
width: 13,
|
|
97
|
+
height: 13,
|
|
98
|
+
'aria-hidden': true,
|
|
99
|
+
focusable: false
|
|
100
|
+
}, /*#__PURE__*/_react.default.createElement('path', {
|
|
101
|
+
d: 'M8 0 L9.6 6.4 L16 8 L9.6 9.6 L8 16 L6.4 9.6 L0 8 L6.4 6.4 Z',
|
|
102
|
+
fill: 'currentColor'
|
|
103
|
+
}));
|
|
104
|
+
const ChevronIcon = () => /*#__PURE__*/_react.default.createElement('svg', {
|
|
105
|
+
className: 'w5-placement__show-more-icon',
|
|
106
|
+
viewBox: '0 0 16 16',
|
|
107
|
+
width: 14,
|
|
108
|
+
height: 14,
|
|
109
|
+
'aria-hidden': true,
|
|
110
|
+
focusable: false
|
|
111
|
+
}, /*#__PURE__*/_react.default.createElement('path', {
|
|
112
|
+
d: 'M4 6 L8 10 L12 6',
|
|
113
|
+
fill: 'none',
|
|
114
|
+
stroke: 'currentColor',
|
|
115
|
+
strokeWidth: 1.6,
|
|
116
|
+
strokeLinecap: 'round',
|
|
117
|
+
strokeLinejoin: 'round'
|
|
118
|
+
}));
|
|
119
|
+
const PlacementResponseRenderer = ({
|
|
120
|
+
sections,
|
|
121
|
+
prompt,
|
|
122
|
+
eyebrow,
|
|
123
|
+
query,
|
|
124
|
+
variant,
|
|
125
|
+
streaming,
|
|
126
|
+
className,
|
|
127
|
+
clamp,
|
|
128
|
+
clampHeight,
|
|
129
|
+
showMoreHref,
|
|
130
|
+
showMoreLabel
|
|
131
|
+
}) => {
|
|
132
|
+
// Overflow detection for the clamp (DL #113). The clamp caps the *root* card
|
|
133
|
+
// (not a wrapper) so the answer sections stay direct children of the
|
|
134
|
+
// placement root — clients lay them out with `:has(> …)` direct-child grids
|
|
135
|
+
// (e.g. feature-com's search-overview two-column layout), which a wrapper
|
|
136
|
+
// would break. With `max-height` + `overflow: hidden` the root's scrollHeight
|
|
137
|
+
// is the full content and clientHeight is the capped box; the fade + "Show
|
|
138
|
+
// more" only appear when the content actually overflows (a fade under a short
|
|
139
|
+
// answer reads as broken). Re-measure on every section change (streaming) and
|
|
140
|
+
// on container resize.
|
|
141
|
+
const rootRef = _react.default.useRef(null);
|
|
142
|
+
const [overflowing, setOverflowing] = _react.default.useState(false);
|
|
143
|
+
_react.default.useEffect(() => {
|
|
144
|
+
if (!clamp) {
|
|
145
|
+
setOverflowing(false);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const el = rootRef.current;
|
|
149
|
+
if (!el) return;
|
|
150
|
+
const measure = () => setOverflowing(el.scrollHeight > el.clientHeight + 1);
|
|
151
|
+
measure();
|
|
152
|
+
if (typeof ResizeObserver === 'undefined') return;
|
|
153
|
+
const observer = new ResizeObserver(measure);
|
|
154
|
+
observer.observe(el);
|
|
155
|
+
return () => observer.disconnect();
|
|
156
|
+
}, [clamp, clampHeight, sections]);
|
|
157
|
+
const rootClass = ['w5-placement', variant ? `w5-placement--${variant}` : '', streaming ? 'w5-placement--streaming' : '', clamp ? 'w5-placement--clamped' : '', className ?? ''].filter(Boolean).join(' ');
|
|
158
|
+
const sectionNodes = sections.map((section, i) => /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
159
|
+
key: section.id ?? `${section.sectionType}-${i}`,
|
|
160
|
+
__self: void 0,
|
|
161
|
+
__source: {
|
|
162
|
+
fileName: _jsxFileName,
|
|
163
|
+
lineNumber: 225,
|
|
164
|
+
columnNumber: 5
|
|
165
|
+
}
|
|
166
|
+
}, section.component));
|
|
167
|
+
|
|
168
|
+
// The fade + button overlay the bottom of the clamped card. The button only
|
|
169
|
+
// appears once the content actually overflows and a destination is supplied.
|
|
170
|
+
const showMore = !!clamp && overflowing && !!showMoreHref;
|
|
171
|
+
return /*#__PURE__*/_react.default.createElement("section", {
|
|
172
|
+
ref: rootRef,
|
|
173
|
+
className: rootClass,
|
|
174
|
+
"data-w5-placement-renderer": "",
|
|
175
|
+
style: clamp && clampHeight != null ? {
|
|
176
|
+
maxHeight: `${clampHeight}px`
|
|
177
|
+
} : undefined,
|
|
178
|
+
__self: void 0,
|
|
179
|
+
__source: {
|
|
180
|
+
fileName: _jsxFileName,
|
|
181
|
+
lineNumber: 235,
|
|
182
|
+
columnNumber: 5
|
|
183
|
+
}
|
|
184
|
+
}, eyebrow && /*#__PURE__*/_react.default.createElement("div", {
|
|
185
|
+
className: "w5-placement__eyebrow",
|
|
186
|
+
__self: void 0,
|
|
187
|
+
__source: {
|
|
188
|
+
fileName: _jsxFileName,
|
|
189
|
+
lineNumber: 246,
|
|
190
|
+
columnNumber: 9
|
|
191
|
+
}
|
|
192
|
+
}, /*#__PURE__*/_react.default.createElement(StarIcon, {
|
|
193
|
+
__self: void 0,
|
|
194
|
+
__source: {
|
|
195
|
+
fileName: _jsxFileName,
|
|
196
|
+
lineNumber: 247,
|
|
197
|
+
columnNumber: 11
|
|
198
|
+
}
|
|
199
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
200
|
+
className: "w5-placement__eyebrow-label",
|
|
201
|
+
__self: void 0,
|
|
202
|
+
__source: {
|
|
203
|
+
fileName: _jsxFileName,
|
|
204
|
+
lineNumber: 248,
|
|
205
|
+
columnNumber: 11
|
|
206
|
+
}
|
|
207
|
+
}, eyebrow)), query && /*#__PURE__*/_react.default.createElement("p", {
|
|
208
|
+
className: "w5-placement__query",
|
|
209
|
+
__self: void 0,
|
|
210
|
+
__source: {
|
|
211
|
+
fileName: _jsxFileName,
|
|
212
|
+
lineNumber: 251,
|
|
213
|
+
columnNumber: 17
|
|
214
|
+
}
|
|
215
|
+
}, query), prompt && /*#__PURE__*/_react.default.createElement("header", {
|
|
216
|
+
className: "w5-placement__prompt",
|
|
217
|
+
__self: void 0,
|
|
218
|
+
__source: {
|
|
219
|
+
fileName: _jsxFileName,
|
|
220
|
+
lineNumber: 252,
|
|
221
|
+
columnNumber: 18
|
|
222
|
+
}
|
|
223
|
+
}, prompt), sectionNodes, showMore && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
224
|
+
className: "w5-placement__fade",
|
|
225
|
+
"aria-hidden": "true",
|
|
226
|
+
__self: void 0,
|
|
227
|
+
__source: {
|
|
228
|
+
fileName: _jsxFileName,
|
|
229
|
+
lineNumber: 260,
|
|
230
|
+
columnNumber: 11
|
|
231
|
+
}
|
|
232
|
+
}), /*#__PURE__*/_react.default.createElement("a", {
|
|
233
|
+
className: "w5-placement__show-more",
|
|
234
|
+
href: showMoreHref,
|
|
235
|
+
"aria-label": "See the full answer on the AI page",
|
|
236
|
+
__self: void 0,
|
|
237
|
+
__source: {
|
|
238
|
+
fileName: _jsxFileName,
|
|
239
|
+
lineNumber: 261,
|
|
240
|
+
columnNumber: 11
|
|
241
|
+
}
|
|
242
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
243
|
+
__self: void 0,
|
|
244
|
+
__source: {
|
|
245
|
+
fileName: _jsxFileName,
|
|
246
|
+
lineNumber: 266,
|
|
247
|
+
columnNumber: 13
|
|
248
|
+
}
|
|
249
|
+
}, showMoreLabel ?? 'Show more'), /*#__PURE__*/_react.default.createElement(ChevronIcon, {
|
|
250
|
+
__self: void 0,
|
|
251
|
+
__source: {
|
|
252
|
+
fileName: _jsxFileName,
|
|
253
|
+
lineNumber: 267,
|
|
254
|
+
columnNumber: 13
|
|
255
|
+
}
|
|
256
|
+
}))));
|
|
257
|
+
};
|
|
258
|
+
exports.PlacementResponseRenderer = PlacementResponseRenderer;
|
|
259
|
+
//# sourceMappingURL=PlacementResponseRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PlacementSmoothHeight","children","innerRef","React","useRef","height","setHeight","useState","useEffect","el","current","ResizeObserver","observer","offsetHeight","observe","disconnect","createElement","className","style","undefined","__self","__source","fileName","lineNumber","columnNumber","ref","exports","StarIcon","viewBox","width","focusable","d","fill","ChevronIcon","stroke","strokeWidth","strokeLinecap","strokeLinejoin","PlacementResponseRenderer","sections","prompt","eyebrow","query","variant","streaming","clamp","clampHeight","showMoreHref","showMoreLabel","rootRef","overflowing","setOverflowing","measure","scrollHeight","clientHeight","rootClass","filter","Boolean","join","sectionNodes","map","section","Fragment","key","id","sectionType","component","showMore","maxHeight","href"],"sources":["../../../../src/components/placement/PlacementResponseRenderer.tsx"],"sourcesContent":["/**\n * PlacementResponseRenderer (DL #088 D3.2, DL #097 visual pass).\n *\n * Renders the AI response inside a placement slot. Takes already-parsed\n * sections from the caller's parser and renders the placement chrome\n * (FormAI eyebrow + optional user-query chip) above them.\n *\n * The renderer deliberately does NOT call the parser itself — that's the\n * caller's job (the placement bundle wires the parser of its choice).\n *\n * No post-parse filtering: hero / next-steps exclusion is the **prompt's**\n * job (the LLM is instructed not to emit them), and there's no\n * `maxComponents` cap. Placement-specific designs for a section type (e.g. a\n * tailored rich-text fallback) belong as `{ placement: true }` registry\n * variants in the client package — `resolveSection(type, { placement: true })`\n * picks them automatically.\n *\n * Visual chrome (Figma 128:5251 framing / 128:5258 conversation):\n * - `variant` drives the card; both variants show the highlight border.\n * - `eyebrow` renders the FormAI star + label (chrome, opt-in).\n * - `query` renders the user's question as a chip (conversation only).\n * Styles live in `./PlacementResponseRenderer.css` (injected with the client UMD).\n */\nimport React, { Fragment, type FC, type ReactNode } from 'react';\nimport type { PlacementVariant } from '../../types/placement';\n\n/**\n * Minimal section shape the renderer needs. Designed to match\n * `web50-server-ui`'s `PageSection` shape (with a pre-instantiated `component`)\n * so the renderer works against today's parser output without modification.\n */\nexport interface PlacementSection {\n /** Stable id for React key. Falls back to `sectionType + index` if absent. */\n id?: string;\n /** Section type key (e.g., 'narrative', 'list-items', 'pros-cons'). */\n sectionType: string;\n /** Pre-instantiated React element from the parser. */\n component: ReactNode;\n}\n\n/**\n * Placement visual variant → `w5-placement--<variant>` class. Defined in\n * `../../types/placement` (DL #106 D1: free-form string, no longer a closed\n * `'informational' | 'conversation'` union) and re-exported here for back-compat\n * with existing `from '.../PlacementResponseRenderer'` imports.\n */\nexport type { PlacementVariant };\n\nexport interface PlacementResponseRendererProps {\n /** Already-parsed sections from `parseMarkdownToComponents`. */\n sections: readonly PlacementSection[];\n /** Deprecated plain-text prompt header (kept for back-compat). */\n prompt?: string;\n /**\n * Eyebrow label shown with the accent star at the top (e.g. \"FormAI\").\n * Chrome — opt-in; omit to render no eyebrow.\n */\n eyebrow?: string;\n /**\n * The user's question, rendered as a chip above the answer (conversation\n * variant, DL #097). Omit for the informational variant.\n */\n query?: string;\n /** Visual variant — both add the persistent gradient highlight border. */\n variant?: PlacementVariant;\n /**\n * Clamp the answer body to a max height with a fade-out and a \"Show more\"\n * affordance (DL #113) — Google-AI-Overview style. Opt-in; used by the\n * `searchResults` placement. The body is capped at `clampHeight` (or the\n * `--w5-placement-clamp-height` token); the fade + button appear only once\n * the content overflows and a `showMoreHref` is supplied.\n */\n clamp?: boolean;\n /** Clamp height in px (DL #113). Overrides `--w5-placement-clamp-height`. */\n clampHeight?: number;\n /**\n * Destination for \"Show more\" (DL #113) — the main Web5 page seeded with the\n * visitor's search terms (`<mainPage>?initialQuestion=<q>`). When absent the\n * button is not rendered (clamp + fade still apply).\n */\n showMoreHref?: string;\n /** Label for the \"Show more\" button (DL #113). Default `'Show more'`. */\n showMoreLabel?: string;\n /**\n * True while the answer is still streaming in. The highlight border stays\n * solid for the whole render and only starts its spin once this flips to\n * false (answer settled); it remains visible afterwards.\n */\n streaming?: boolean;\n /** Optional extra className for the placement root. */\n className?: string;\n}\n\n/**\n * Smooths out step-wise height changes in the placement slot: the\n * loader→content swap and each streamed section appending. `height: auto`\n * changes aren't CSS-animatable, so we measure the content's natural height\n * with a ResizeObserver and transition an explicit `height` on the wrapper\n * (see `.w5-placement__body` in the CSS). Falls back to natural auto-height\n * when ResizeObserver is unavailable (SSR, old jsdom).\n *\n * Mounted by the placement stream app (embed-placement) AROUND the\n * loader/content swap — not inside this renderer — so the swap itself\n * animates too.\n */\nexport const PlacementSmoothHeight: FC<{ children: ReactNode }> = ({\n children,\n}) => {\n const innerRef = React.useRef<HTMLDivElement | null>(null);\n const [height, setHeight] = React.useState<number | null>(null);\n\n React.useEffect(() => {\n const el = innerRef.current;\n if (!el || typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => {\n setHeight(el.offsetHeight);\n });\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n return (\n <div\n className=\"w5-placement__body\"\n style={height != null ? { height } : undefined}\n >\n {/* flow-root (in CSS) keeps child margins inside the measured box. */}\n <div ref={innerRef} className=\"w5-placement__body-inner\">\n {children}\n </div>\n </div>\n );\n};\n\nconst StarIcon: FC = () =>\n React.createElement(\n 'svg',\n {\n className: 'w5-placement__eyebrow-icon',\n viewBox: '0 0 16 16',\n width: 13,\n height: 13,\n 'aria-hidden': true,\n focusable: false,\n },\n React.createElement('path', {\n d: 'M8 0 L9.6 6.4 L16 8 L9.6 9.6 L8 16 L6.4 9.6 L0 8 L6.4 6.4 Z',\n fill: 'currentColor',\n }),\n );\n\nconst ChevronIcon: FC = () =>\n React.createElement(\n 'svg',\n {\n className: 'w5-placement__show-more-icon',\n viewBox: '0 0 16 16',\n width: 14,\n height: 14,\n 'aria-hidden': true,\n focusable: false,\n },\n React.createElement('path', {\n d: 'M4 6 L8 10 L12 6',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 1.6,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n }),\n );\n\nexport const PlacementResponseRenderer: FC<PlacementResponseRendererProps> = ({\n sections,\n prompt,\n eyebrow,\n query,\n variant,\n streaming,\n className,\n clamp,\n clampHeight,\n showMoreHref,\n showMoreLabel,\n}) => {\n // Overflow detection for the clamp (DL #113). The clamp caps the *root* card\n // (not a wrapper) so the answer sections stay direct children of the\n // placement root — clients lay them out with `:has(> …)` direct-child grids\n // (e.g. feature-com's search-overview two-column layout), which a wrapper\n // would break. With `max-height` + `overflow: hidden` the root's scrollHeight\n // is the full content and clientHeight is the capped box; the fade + \"Show\n // more\" only appear when the content actually overflows (a fade under a short\n // answer reads as broken). Re-measure on every section change (streaming) and\n // on container resize.\n const rootRef = React.useRef<HTMLElement | null>(null);\n const [overflowing, setOverflowing] = React.useState(false);\n\n React.useEffect(() => {\n if (!clamp) {\n setOverflowing(false);\n return;\n }\n const el = rootRef.current;\n if (!el) return;\n const measure = (): void =>\n setOverflowing(el.scrollHeight > el.clientHeight + 1);\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(measure);\n observer.observe(el);\n return () => observer.disconnect();\n }, [clamp, clampHeight, sections]);\n\n const rootClass = [\n 'w5-placement',\n variant ? `w5-placement--${variant}` : '',\n streaming ? 'w5-placement--streaming' : '',\n clamp ? 'w5-placement--clamped' : '',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const sectionNodes = sections.map((section, i) => (\n <Fragment key={section.id ?? `${section.sectionType}-${i}`}>\n {section.component}\n </Fragment>\n ));\n\n // The fade + button overlay the bottom of the clamped card. The button only\n // appears once the content actually overflows and a destination is supplied.\n const showMore = !!clamp && overflowing && !!showMoreHref;\n\n return (\n <section\n ref={rootRef}\n className={rootClass}\n data-w5-placement-renderer=\"\"\n style={\n clamp && clampHeight != null\n ? { maxHeight: `${clampHeight}px` }\n : undefined\n }\n >\n {eyebrow && (\n <div className=\"w5-placement__eyebrow\">\n <StarIcon />\n <span className=\"w5-placement__eyebrow-label\">{eyebrow}</span>\n </div>\n )}\n {query && <p className=\"w5-placement__query\">{query}</p>}\n {prompt && <header className=\"w5-placement__prompt\">{prompt}</header>}\n {sectionNodes}\n {/* Fade + \"Show more\" overlay the bottom of the clamped card. Both are\n absolutely positioned (out of flow), so they don't disturb the\n client's grid placement of the sections, and are clipped by the\n root's `overflow: hidden`. */}\n {showMore && (\n <>\n <div className=\"w5-placement__fade\" aria-hidden=\"true\" />\n <a\n className=\"w5-placement__show-more\"\n href={showMoreHref}\n aria-label=\"See the full answer on the AI page\"\n >\n <span>{showMoreLabel ?? 'Show more'}</span>\n <ChevronIcon />\n </a>\n </>\n )}\n </section>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|