@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,91 @@
|
|
|
1
|
+
import React, { useRef, useEffect, useState, useCallback } from 'react';
|
|
2
|
+
import { useComponentDependencies } from '../../context/ComponentDependenciesContext.js';
|
|
3
|
+
function sanitizeAndAdoptSvg(raw, container) {
|
|
4
|
+
const parser = new DOMParser();
|
|
5
|
+
const doc = parser.parseFromString(raw, 'image/svg+xml');
|
|
6
|
+
const svg = doc.querySelector('svg');
|
|
7
|
+
if (!svg) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
svg.querySelectorAll('script, foreignObject, iframe, object, embed').forEach(el => el.remove());
|
|
11
|
+
svg.querySelectorAll('*').forEach(el => {
|
|
12
|
+
for (const attr of [...el.attributes]) {
|
|
13
|
+
if (attr.name.startsWith('on')) {
|
|
14
|
+
el.removeAttribute(attr.name);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
svg.style.width = '100%';
|
|
19
|
+
svg.style.height = 'auto';
|
|
20
|
+
container.replaceChildren(document.adoptNode(svg));
|
|
21
|
+
}
|
|
22
|
+
const SCOPED_CLASS = 'smart-icon-svg';
|
|
23
|
+
const COLOR_STYLE = `.${SCOPED_CLASS} path:not([fill="none"]), .${SCOPED_CLASS} circle:not([fill="none"]), .${SCOPED_CLASS} rect:not([fill="none"]), .${SCOPED_CLASS} line:not([fill="none"]), .${SCOPED_CLASS} polygon:not([fill="none"]), .${SCOPED_CLASS} polyline:not([fill="none"]), .${SCOPED_CLASS} ellipse:not([fill="none"]) { fill: currentColor; }`;
|
|
24
|
+
export const SmartIcon = _ref => {
|
|
25
|
+
let {
|
|
26
|
+
iconHint,
|
|
27
|
+
width = 24,
|
|
28
|
+
color,
|
|
29
|
+
label,
|
|
30
|
+
fallback
|
|
31
|
+
} = _ref;
|
|
32
|
+
const {
|
|
33
|
+
resolveIcons
|
|
34
|
+
} = useComponentDependencies();
|
|
35
|
+
const [svgContent, setSvgContent] = useState();
|
|
36
|
+
const containerRef = useRef(null);
|
|
37
|
+
const hintRef = useRef(iconHint);
|
|
38
|
+
hintRef.current = iconHint;
|
|
39
|
+
const resolve = useCallback(async () => {
|
|
40
|
+
if (!resolveIcons || !iconHint) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const result = await resolveIcons([iconHint]);
|
|
45
|
+
if (hintRef.current === iconHint && result[iconHint]) {
|
|
46
|
+
setSvgContent(result[iconHint]);
|
|
47
|
+
}
|
|
48
|
+
} catch {
|
|
49
|
+
// Silently ignore resolution failures
|
|
50
|
+
}
|
|
51
|
+
}, [resolveIcons, iconHint]);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
resolve();
|
|
54
|
+
}, [resolve]);
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (!svgContent || !containerRef.current) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
sanitizeAndAdoptSvg(svgContent, containerRef.current);
|
|
60
|
+
}, [svgContent]);
|
|
61
|
+
if (!svgContent) {
|
|
62
|
+
if (fallback !== undefined) {
|
|
63
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, fallback);
|
|
64
|
+
}
|
|
65
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
66
|
+
"aria-hidden": label ? undefined : true,
|
|
67
|
+
role: label ? 'img' : undefined,
|
|
68
|
+
"aria-label": label || undefined,
|
|
69
|
+
style: {
|
|
70
|
+
display: 'inline-block',
|
|
71
|
+
width,
|
|
72
|
+
height: width
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
77
|
+
"aria-hidden": label ? undefined : true,
|
|
78
|
+
role: label ? 'img' : undefined,
|
|
79
|
+
"aria-label": label || undefined,
|
|
80
|
+
style: {
|
|
81
|
+
display: 'inline-block',
|
|
82
|
+
width,
|
|
83
|
+
height: 'auto',
|
|
84
|
+
color
|
|
85
|
+
}
|
|
86
|
+
}, /*#__PURE__*/React.createElement("style", null, COLOR_STYLE), /*#__PURE__*/React.createElement("span", {
|
|
87
|
+
ref: containerRef,
|
|
88
|
+
className: SCOPED_CLASS
|
|
89
|
+
}));
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=SmartIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useRef","useEffect","useState","useCallback","useComponentDependencies","sanitizeAndAdoptSvg","raw","container","parser","DOMParser","doc","parseFromString","svg","querySelector","querySelectorAll","forEach","el","remove","attr","attributes","name","startsWith","removeAttribute","style","width","height","replaceChildren","document","adoptNode","SCOPED_CLASS","COLOR_STYLE","SmartIcon","_ref","iconHint","color","label","fallback","resolveIcons","svgContent","setSvgContent","containerRef","hintRef","current","resolve","result","undefined","createElement","Fragment","role","display","ref","className"],"sources":["../../../../src/components/ui/SmartIcon.tsx"],"sourcesContent":["import React, { useRef, useEffect, useState, useCallback } from 'react';\nimport { useComponentDependencies } from '../../context/ComponentDependenciesContext';\n\nexport interface SmartIconProps {\n iconHint: string;\n width?: number;\n color?: string;\n /**\n * Accessible name for screen readers. Omit for decorative icons (the default).\n */\n label?: string;\n /**\n * Rendered in place of the icon whenever a resolved SVG is not (yet) available:\n * no resolver in context, no `iconHint`, resolution still pending, or resolution\n * returned nothing / errored. Lets callers guarantee a meaningful icon always\n * shows (e.g. a bundled fallback icon) instead of a blank placeholder box.\n */\n fallback?: React.ReactNode;\n}\n\nfunction sanitizeAndAdoptSvg(raw: string, container: HTMLElement): void {\n const parser = new DOMParser();\n const doc = parser.parseFromString(raw, 'image/svg+xml');\n const svg = doc.querySelector('svg');\n if (!svg) {\n return;\n }\n\n svg\n .querySelectorAll('script, foreignObject, iframe, object, embed')\n .forEach((el) => el.remove());\n svg.querySelectorAll('*').forEach((el) => {\n for (const attr of [...el.attributes]) {\n if (attr.name.startsWith('on')) {\n el.removeAttribute(attr.name);\n }\n }\n });\n\n svg.style.width = '100%';\n svg.style.height = 'auto';\n\n container.replaceChildren(document.adoptNode(svg));\n}\n\nconst SCOPED_CLASS = 'smart-icon-svg';\nconst COLOR_STYLE = `.${SCOPED_CLASS} path:not([fill=\"none\"]), .${SCOPED_CLASS} circle:not([fill=\"none\"]), .${SCOPED_CLASS} rect:not([fill=\"none\"]), .${SCOPED_CLASS} line:not([fill=\"none\"]), .${SCOPED_CLASS} polygon:not([fill=\"none\"]), .${SCOPED_CLASS} polyline:not([fill=\"none\"]), .${SCOPED_CLASS} ellipse:not([fill=\"none\"]) { fill: currentColor; }`;\n\nexport const SmartIcon: React.FC<SmartIconProps> = ({\n iconHint,\n width = 24,\n color,\n label,\n fallback,\n}) => {\n const { resolveIcons } = useComponentDependencies();\n const [svgContent, setSvgContent] = useState<string | undefined>();\n const containerRef = useRef<HTMLSpanElement>(null);\n const hintRef = useRef(iconHint);\n hintRef.current = iconHint;\n\n const resolve = useCallback(async () => {\n if (!resolveIcons || !iconHint) {\n return;\n }\n try {\n const result = await resolveIcons([iconHint]);\n if (hintRef.current === iconHint && result[iconHint]) {\n setSvgContent(result[iconHint]);\n }\n } catch {\n // Silently ignore resolution failures\n }\n }, [resolveIcons, iconHint]);\n\n useEffect(() => {\n resolve();\n }, [resolve]);\n\n useEffect(() => {\n if (!svgContent || !containerRef.current) {\n return;\n }\n sanitizeAndAdoptSvg(svgContent, containerRef.current);\n }, [svgContent]);\n\n if (!svgContent) {\n if (fallback !== undefined) {\n return <>{fallback}</>;\n }\n return (\n <span\n aria-hidden={label ? undefined : true}\n role={label ? 'img' : undefined}\n aria-label={label || undefined}\n style={{ display: 'inline-block', width, height: width }}\n />\n );\n }\n\n return (\n <span\n aria-hidden={label ? undefined : true}\n role={label ? 'img' : undefined}\n aria-label={label || undefined}\n style={{ display: 'inline-block', width, height: 'auto', color }}\n >\n <style>{COLOR_STYLE}</style>\n <span ref={containerRef} className={SCOPED_CLASS} />\n </span>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { isWeb5AskUrl, isWeb5ActionUrl } from '../../types/link-types.js';
|
|
4
|
+
import { validateLinkUrl } from '../../utils/entityLinkParser.js';
|
|
5
|
+
import { cn } from '../../lib/utils.js';
|
|
6
|
+
import { useWeb5Link } from '../../hooks/useWeb5Link.js';
|
|
7
|
+
import { useComponentDependencies } from '../../context/ComponentDependenciesContext.js';
|
|
8
|
+
import { DIAGNOSTIC_TYPES } from '../../component/diagnosticTypes.js';
|
|
9
|
+
import { ArrowUpIcon } from './icons/ArrowUpIcon.js';
|
|
10
|
+
import { ArrowTopRightIcon } from './icons/ArrowTopRightIcon.js';
|
|
11
|
+
export let LinkType = /*#__PURE__*/function (LinkType) {
|
|
12
|
+
LinkType["ASK"] = "ask";
|
|
13
|
+
LinkType["ACTION"] = "action";
|
|
14
|
+
LinkType["NAVIGATE"] = "navigate";
|
|
15
|
+
return LinkType;
|
|
16
|
+
}({});
|
|
17
|
+
const ARROW_BY_TYPE = {
|
|
18
|
+
[LinkType.ASK]: ArrowUpIcon,
|
|
19
|
+
[LinkType.ACTION]: ArrowTopRightIcon,
|
|
20
|
+
[LinkType.NAVIGATE]: ArrowUpIcon
|
|
21
|
+
};
|
|
22
|
+
export function detectLinkType(href) {
|
|
23
|
+
if (!href) {
|
|
24
|
+
return LinkType.NAVIGATE;
|
|
25
|
+
}
|
|
26
|
+
if (isWeb5AskUrl(href)) {
|
|
27
|
+
return LinkType.ASK;
|
|
28
|
+
}
|
|
29
|
+
if (isWeb5ActionUrl(href)) {
|
|
30
|
+
return LinkType.ACTION;
|
|
31
|
+
}
|
|
32
|
+
return LinkType.NAVIGATE;
|
|
33
|
+
}
|
|
34
|
+
export function UnifiedLink(_ref) {
|
|
35
|
+
let {
|
|
36
|
+
href,
|
|
37
|
+
linkType: linkTypeProp,
|
|
38
|
+
variant = 'primary',
|
|
39
|
+
active = false,
|
|
40
|
+
hideArrow,
|
|
41
|
+
className,
|
|
42
|
+
children,
|
|
43
|
+
onClick,
|
|
44
|
+
...props
|
|
45
|
+
} = _ref;
|
|
46
|
+
const {
|
|
47
|
+
handleLinkClick,
|
|
48
|
+
resolveUrl
|
|
49
|
+
} = useWeb5Link();
|
|
50
|
+
const {
|
|
51
|
+
reportDiagnostic
|
|
52
|
+
} = useComponentDependencies();
|
|
53
|
+
if (!validateLinkUrl(href)) {
|
|
54
|
+
reportDiagnostic == null || reportDiagnostic(DIAGNOSTIC_TYPES.BROKEN_WEB5_LINK, 'unifiedLink', `link rejected: "${href}"`);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const resolvedHref = resolveUrl(href) ?? href;
|
|
58
|
+
const linkType = linkTypeProp ?? detectLinkType(href);
|
|
59
|
+
const ArrowIcon = ARROW_BY_TYPE[linkType];
|
|
60
|
+
const showArrow = !hideArrow && variant !== 'inline';
|
|
61
|
+
|
|
62
|
+
// web5:// hrefs must never reach the browser — Safari iOS attempts custom-scheme
|
|
63
|
+
// navigation before JS fires, producing an "address is invalid" error.
|
|
64
|
+
const safeHref = href != null && href.startsWith('web5://') ? '#' : resolvedHref;
|
|
65
|
+
const handleClick = e => {
|
|
66
|
+
onClick == null || onClick(e);
|
|
67
|
+
if (!e.defaultPrevented && resolvedHref) {
|
|
68
|
+
handleLinkClick(e, resolvedHref);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
if (variant === 'inline') {
|
|
72
|
+
return /*#__PURE__*/React.createElement("a", _extends({
|
|
73
|
+
href: safeHref,
|
|
74
|
+
className: cn('text-primary underline underline-offset-4 hover:text-primary/80 cursor-pointer', className),
|
|
75
|
+
onClick: handleClick
|
|
76
|
+
}, props), children);
|
|
77
|
+
}
|
|
78
|
+
if (variant === 'secondary') {
|
|
79
|
+
return /*#__PURE__*/React.createElement("a", _extends({
|
|
80
|
+
href: safeHref,
|
|
81
|
+
className: cn('inline w-fit cursor-pointer', 'text-sm leading-[18px] text-text-accent', className),
|
|
82
|
+
onClick: handleClick
|
|
83
|
+
}, props), children, showArrow && /*#__PURE__*/React.createElement("span", {
|
|
84
|
+
className: "inline whitespace-nowrap"
|
|
85
|
+
}, "\xA0", /*#__PURE__*/React.createElement(ArrowIcon, {
|
|
86
|
+
className: "ml-0.5 inline-block size-4 align-middle"
|
|
87
|
+
})));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Primary variant — pill with arrow circle and hover overlay
|
|
91
|
+
return /*#__PURE__*/React.createElement("a", _extends({
|
|
92
|
+
href: safeHref,
|
|
93
|
+
className: cn('group relative flex md:w-fit md:max-w-[500px] items-center justify-between rounded-[80px] pl-5 pr-[3px] py-[3px] gap-2 cursor-pointer overflow-hidden', 'text-sm leading-[14px]', active ? 'bg-text-accent text-white' : 'bg-white border border-text-accent/30 text-text-accent', className),
|
|
94
|
+
onClick: handleClick
|
|
95
|
+
}, props), /*#__PURE__*/React.createElement("span", {
|
|
96
|
+
className: cn('absolute inset-[3px] rounded-[80px] pointer-events-none', 'origin-right scale-x-0 group-hover:scale-x-100', 'transition-transform duration-300 ease-out', active ? 'bg-text-accent-hover' : 'bg-text-accent/10')
|
|
97
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
98
|
+
className: "relative z-[1] min-w-0 py-[10px] truncate"
|
|
99
|
+
}, children), showArrow && /*#__PURE__*/React.createElement("span", {
|
|
100
|
+
className: cn('relative z-[1] flex items-center justify-center rounded-full shrink-0', 'size-[34px] p-2.5', active ? 'bg-text-accent-hover' : 'bg-text-accent/10')
|
|
101
|
+
}, /*#__PURE__*/React.createElement(ArrowIcon, {
|
|
102
|
+
className: "size-4"
|
|
103
|
+
})));
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=UnifiedLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","isWeb5AskUrl","isWeb5ActionUrl","validateLinkUrl","cn","useWeb5Link","useComponentDependencies","DIAGNOSTIC_TYPES","ArrowUpIcon","ArrowTopRightIcon","LinkType","ARROW_BY_TYPE","ASK","ACTION","NAVIGATE","detectLinkType","href","UnifiedLink","_ref","linkType","linkTypeProp","variant","active","hideArrow","className","children","onClick","props","handleLinkClick","resolveUrl","reportDiagnostic","BROKEN_WEB5_LINK","resolvedHref","ArrowIcon","showArrow","safeHref","startsWith","handleClick","e","defaultPrevented","createElement","_extends"],"sources":["../../../../src/components/ui/UnifiedLink.tsx"],"sourcesContent":["import React from 'react';\nimport { isWeb5AskUrl, isWeb5ActionUrl } from '../../types/link-types';\nimport { validateLinkUrl } from '../../utils/entityLinkParser';\nimport { cn } from '../../lib/utils';\nimport { useWeb5Link } from '../../hooks/useWeb5Link';\nimport { useComponentDependencies } from '../../context/ComponentDependenciesContext';\nimport { DIAGNOSTIC_TYPES } from '../../component/diagnosticTypes';\nimport { ArrowUpIcon } from './icons/ArrowUpIcon';\nimport { ArrowTopRightIcon } from './icons/ArrowTopRightIcon';\n\nexport enum LinkType {\n ASK = 'ask',\n ACTION = 'action',\n NAVIGATE = 'navigate',\n}\n\nexport type LinkVariant = 'primary' | 'secondary' | 'inline';\n\nexport interface UnifiedLinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n href?: string;\n /** Override auto-detected link type */\n linkType?: LinkType;\n /** Visual variant */\n variant?: LinkVariant;\n /** Whether this is the first/active item (dark bg). Only applies to primary variant. */\n active?: boolean;\n /** Hide the arrow icon */\n hideArrow?: boolean;\n children: React.ReactNode;\n}\n\nconst ARROW_BY_TYPE: Record<\n LinkType,\n React.FC<React.SVGProps<SVGSVGElement>>\n> = {\n [LinkType.ASK]: ArrowUpIcon,\n [LinkType.ACTION]: ArrowTopRightIcon,\n [LinkType.NAVIGATE]: ArrowUpIcon,\n};\n\nexport function detectLinkType(href: string | undefined): LinkType {\n if (!href) {\n return LinkType.NAVIGATE;\n }\n if (isWeb5AskUrl(href)) {\n return LinkType.ASK;\n }\n if (isWeb5ActionUrl(href)) {\n return LinkType.ACTION;\n }\n return LinkType.NAVIGATE;\n}\n\nexport function UnifiedLink({\n href,\n linkType: linkTypeProp,\n variant = 'primary',\n active = false,\n hideArrow,\n className,\n children,\n onClick,\n ...props\n}: UnifiedLinkProps) {\n const { handleLinkClick, resolveUrl } = useWeb5Link();\n const { reportDiagnostic } = useComponentDependencies();\n\n if (!validateLinkUrl(href)) {\n reportDiagnostic?.(\n DIAGNOSTIC_TYPES.BROKEN_WEB5_LINK,\n 'unifiedLink',\n `link rejected: \"${href}\"`,\n );\n return null;\n }\n\n const resolvedHref = resolveUrl(href) ?? href;\n const linkType = linkTypeProp ?? detectLinkType(href);\n const ArrowIcon = ARROW_BY_TYPE[linkType];\n const showArrow = !hideArrow && variant !== 'inline';\n\n // web5:// hrefs must never reach the browser — Safari iOS attempts custom-scheme\n // navigation before JS fires, producing an \"address is invalid\" error.\n const safeHref = href?.startsWith('web5://') ? '#' : resolvedHref;\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n onClick?.(e);\n if (!e.defaultPrevented && resolvedHref) {\n handleLinkClick(e, resolvedHref);\n }\n };\n\n if (variant === 'inline') {\n return (\n <a\n href={safeHref}\n className={cn(\n 'text-primary underline underline-offset-4 hover:text-primary/80 cursor-pointer',\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n </a>\n );\n }\n\n if (variant === 'secondary') {\n return (\n <a\n href={safeHref}\n className={cn(\n 'inline w-fit cursor-pointer',\n 'text-sm leading-[18px] text-text-accent',\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n {showArrow && (\n <span className=\"inline whitespace-nowrap\">\n \n <ArrowIcon className=\"ml-0.5 inline-block size-4 align-middle\" />\n </span>\n )}\n </a>\n );\n }\n\n // Primary variant — pill with arrow circle and hover overlay\n return (\n <a\n href={safeHref}\n className={cn(\n 'group relative flex md:w-fit md:max-w-[500px] items-center justify-between rounded-[80px] pl-5 pr-[3px] py-[3px] gap-2 cursor-pointer overflow-hidden',\n 'text-sm leading-[14px]',\n active\n ? 'bg-text-accent text-white'\n : 'bg-white border border-text-accent/30 text-text-accent',\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n {/* Hover overlay — expands from right (arrow) to fill pill */}\n <span\n className={cn(\n 'absolute inset-[3px] rounded-[80px] pointer-events-none',\n 'origin-right scale-x-0 group-hover:scale-x-100',\n 'transition-transform duration-300 ease-out',\n active ? 'bg-text-accent-hover' : 'bg-text-accent/10',\n )}\n />\n <span className=\"relative z-[1] min-w-0 py-[10px] truncate\">\n {children}\n </span>\n {showArrow && (\n <span\n className={cn(\n 'relative z-[1] flex items-center justify-center rounded-full shrink-0',\n 'size-[34px] p-2.5',\n active ? 'bg-text-accent-hover' : 'bg-text-accent/10',\n )}\n >\n <ArrowIcon className=\"size-4\" />\n </span>\n )}\n </a>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { ShareIcon } from './icons/ShareIcon.js';
|
|
3
|
+
import { CheckIcon } from './icons/CheckIcon.js';
|
|
4
|
+
import { PlusIcon } from './icons/PlusIcon.js';
|
|
5
|
+
import { UndoIcon } from './icons/UndoIcon.js';
|
|
6
|
+
import { RedoIcon } from './icons/RedoIcon.js';
|
|
7
|
+
import { CommentIcon } from './icons/CommentIcon.js';
|
|
8
|
+
import { getForwardStack, pushToForwardStack, popFromForwardStack, clearForwardStack } from '../../utils/navigationStack.js';
|
|
9
|
+
const DEFAULT_LOADING_MESSAGES = ['Thinking…', 'Recognizing intent…', 'Connecting the dots…', 'Synthesizing insights…', 'Formulating a response…'];
|
|
10
|
+
const headerClassName = 'web5-user-query sticky top-0 z-10 flex items-center justify-between bg-white/60 backdrop-blur-sm pl-5 pr-[10px] py-[7px] sm:px-[30px] sm:py-[17px]';
|
|
11
|
+
export const UserQuery = _ref => {
|
|
12
|
+
let {
|
|
13
|
+
query,
|
|
14
|
+
onNewConversation,
|
|
15
|
+
onNavigateToTriggerId,
|
|
16
|
+
predecessorTriggerId,
|
|
17
|
+
currentTriggerId,
|
|
18
|
+
onShare,
|
|
19
|
+
onToggleCommentMode,
|
|
20
|
+
commentMode = false,
|
|
21
|
+
commentCount = 0,
|
|
22
|
+
loading,
|
|
23
|
+
newConversationLabel = 'New conversation',
|
|
24
|
+
copiedLabel = 'Link Copied',
|
|
25
|
+
copiedDurationMs = 2000
|
|
26
|
+
} = _ref;
|
|
27
|
+
const forwardStack = useMemo(() => getForwardStack(), [currentTriggerId]);
|
|
28
|
+
const canGoForward = forwardStack.length > 0;
|
|
29
|
+
const canGoBack = !!predecessorTriggerId;
|
|
30
|
+
const hasNavigation = canGoBack || canGoForward;
|
|
31
|
+
const handleBack = useCallback(() => {
|
|
32
|
+
if (!predecessorTriggerId || !currentTriggerId || !onNavigateToTriggerId) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
pushToForwardStack(currentTriggerId);
|
|
36
|
+
onNavigateToTriggerId(predecessorTriggerId);
|
|
37
|
+
}, [predecessorTriggerId, currentTriggerId, onNavigateToTriggerId]);
|
|
38
|
+
const handleForward = useCallback(() => {
|
|
39
|
+
if (!onNavigateToTriggerId) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const nextTid = popFromForwardStack();
|
|
43
|
+
if (!nextTid) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
onNavigateToTriggerId(nextTid);
|
|
47
|
+
}, [onNavigateToTriggerId]);
|
|
48
|
+
const handleNewConversation = useCallback(() => {
|
|
49
|
+
clearForwardStack();
|
|
50
|
+
onNewConversation == null || onNewConversation();
|
|
51
|
+
}, [onNewConversation]);
|
|
52
|
+
const [shareState, setShareState] = useState('idle');
|
|
53
|
+
const handleShare = useCallback(async () => {
|
|
54
|
+
if (shareState !== 'idle') {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
setShareState('loading');
|
|
58
|
+
let urlToCopy = window.location.href;
|
|
59
|
+
try {
|
|
60
|
+
if (onShare && currentTriggerId) {
|
|
61
|
+
urlToCopy = await onShare(currentTriggerId);
|
|
62
|
+
}
|
|
63
|
+
} catch (err) {
|
|
64
|
+
console.warn('[share] failed, falling back to current URL:', err);
|
|
65
|
+
}
|
|
66
|
+
navigator.clipboard.writeText(urlToCopy).catch(err => console.warn('[share] clipboard write failed:', err));
|
|
67
|
+
setShareState('copied');
|
|
68
|
+
setTimeout(() => setShareState('idle'), copiedDurationMs);
|
|
69
|
+
}, [shareState, onShare, currentTriggerId, copiedDurationMs]);
|
|
70
|
+
const cyclingMessages = useMemo(() => loading != null && loading.messages && loading.messages.length > 0 ? loading.messages : DEFAULT_LOADING_MESSAGES, [loading == null ? void 0 : loading.messages]);
|
|
71
|
+
const [cycledMessage, setCycledMessage] = useState(cyclingMessages[0]);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (!loading || loading.progressMessage) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
setCycledMessage(cyclingMessages[0]);
|
|
77
|
+
if (cyclingMessages.length <= 1) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
let index = 0;
|
|
81
|
+
const interval = setInterval(() => {
|
|
82
|
+
index = (index + 1) % cyclingMessages.length;
|
|
83
|
+
setCycledMessage(cyclingMessages[index]);
|
|
84
|
+
}, 4000);
|
|
85
|
+
return () => clearInterval(interval);
|
|
86
|
+
}, [loading, cyclingMessages]);
|
|
87
|
+
if (!query && !loading) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const isCopied = shareState === 'copied';
|
|
91
|
+
const isLoading = shareState === 'loading';
|
|
92
|
+
if (loading) {
|
|
93
|
+
const progressText = loading.progressMessage ?? cycledMessage;
|
|
94
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
95
|
+
className: headerClassName,
|
|
96
|
+
role: "status",
|
|
97
|
+
"aria-busy": "true",
|
|
98
|
+
"aria-live": "polite"
|
|
99
|
+
}, /*#__PURE__*/React.createElement("p", {
|
|
100
|
+
className: "text-[14px] leading-5 text-text-body truncate min-w-0 max-w-[700px] flex-1",
|
|
101
|
+
title: `Asking: ${loading.pendingQuery}`
|
|
102
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
103
|
+
className: "text-text-body/70"
|
|
104
|
+
}, "Asking: "), loading.pendingQuery), progressText && /*#__PURE__*/React.createElement("div", {
|
|
105
|
+
className: "hidden sm:flex items-center gap-2 ml-[10px] shrink-0 min-w-0"
|
|
106
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
107
|
+
className: "w-4 h-4 shrink-0 animate-spin inline-block border-[2px] border-current border-t-transparent text-blue-600 dark:text-blue-500 rounded-full",
|
|
108
|
+
"aria-hidden": "true"
|
|
109
|
+
}), /*#__PURE__*/React.createElement("p", {
|
|
110
|
+
className: "text-[13px] leading-5 text-text-body/70 truncate max-w-[240px]"
|
|
111
|
+
}, progressText)));
|
|
112
|
+
}
|
|
113
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
114
|
+
className: headerClassName
|
|
115
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
116
|
+
className: "flex items-center gap-[30px] flex-1 min-w-0"
|
|
117
|
+
}, /*#__PURE__*/React.createElement("p", {
|
|
118
|
+
className: "web5-user-query__title text-[14px] leading-5 text-text-body truncate min-w-0 max-w-[700px]",
|
|
119
|
+
title: query
|
|
120
|
+
}, query), hasNavigation && /*#__PURE__*/React.createElement("div", {
|
|
121
|
+
className: "flex items-center gap-[9px]"
|
|
122
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
123
|
+
type: "button",
|
|
124
|
+
onClick: handleBack,
|
|
125
|
+
disabled: !canGoBack,
|
|
126
|
+
title: "Go to previous conversation",
|
|
127
|
+
"aria-label": "Go to previous conversation",
|
|
128
|
+
className: "w-6 h-6 flex items-center justify-center text-text-body hover:text-black transition-colors bg-transparent border-0 cursor-pointer disabled:opacity-30 disabled:cursor-default"
|
|
129
|
+
}, /*#__PURE__*/React.createElement(UndoIcon, null)), /*#__PURE__*/React.createElement("button", {
|
|
130
|
+
type: "button",
|
|
131
|
+
onClick: handleForward,
|
|
132
|
+
disabled: !canGoForward,
|
|
133
|
+
title: "Go to next conversation",
|
|
134
|
+
"aria-label": "Go to next conversation",
|
|
135
|
+
className: "w-6 h-6 flex items-center justify-center text-text-body hover:text-black transition-colors bg-transparent border-0 cursor-pointer disabled:opacity-30 disabled:cursor-default"
|
|
136
|
+
}, /*#__PURE__*/React.createElement(RedoIcon, null)))), /*#__PURE__*/React.createElement("div", {
|
|
137
|
+
className: "flex items-center gap-[10px] ml-[10px] sm:ml-0 shrink-0"
|
|
138
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
139
|
+
className: "relative"
|
|
140
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
141
|
+
type: "button",
|
|
142
|
+
onClick: handleShare,
|
|
143
|
+
disabled: isLoading || isCopied,
|
|
144
|
+
className: `web5-user-query__share flex items-center gap-2 p-[6px] sm:px-[13px] sm:py-[5px] rounded-[30px] text-[13px] leading-5 border-0 cursor-pointer transition-colors disabled:cursor-default
|
|
145
|
+
${isCopied ? 'is-copied bg-[#2b2b2b] text-white' : 'text-text-body bg-white hover:bg-gray-50'}`
|
|
146
|
+
}, isCopied ? /*#__PURE__*/React.createElement(CheckIcon, null) : /*#__PURE__*/React.createElement(ShareIcon, null), /*#__PURE__*/React.createElement("span", {
|
|
147
|
+
className: "hidden sm:inline"
|
|
148
|
+
}, isLoading ? 'Sharing…' : isCopied ? copiedLabel : 'Share')), isCopied && /*#__PURE__*/React.createElement("div", {
|
|
149
|
+
className: "web5-user-query__copied-toast sm:hidden absolute top-full right-0 mt-1 flex items-center gap-2 bg-[#2b2b2b] text-white text-[12px] leading-none px-3 py-2 rounded-[8px] whitespace-nowrap"
|
|
150
|
+
}, /*#__PURE__*/React.createElement(CheckIcon, null), copiedLabel)), onNewConversation && /*#__PURE__*/React.createElement("button", {
|
|
151
|
+
type: "button",
|
|
152
|
+
onClick: handleNewConversation,
|
|
153
|
+
className: "web5-user-query__new-conversation flex items-center gap-2 p-[6px] sm:px-[13px] sm:py-[5px] rounded-[30px] text-[13px] leading-5 text-text-body bg-white border-0 cursor-pointer hover:bg-gray-50 transition-colors"
|
|
154
|
+
}, /*#__PURE__*/React.createElement(PlusIcon, null), /*#__PURE__*/React.createElement("span", {
|
|
155
|
+
className: "hidden sm:inline"
|
|
156
|
+
}, newConversationLabel)), onToggleCommentMode && /*#__PURE__*/React.createElement("button", {
|
|
157
|
+
type: "button",
|
|
158
|
+
onClick: onToggleCommentMode,
|
|
159
|
+
"aria-pressed": commentMode,
|
|
160
|
+
title: "Add a comment",
|
|
161
|
+
"aria-label": "Add a comment",
|
|
162
|
+
className: `relative flex items-center gap-2 p-[6px] sm:px-[13px] sm:py-[5px] rounded-[30px] text-[13px] leading-5 border-0 cursor-pointer transition-colors ${commentMode ? 'bg-[#2b2b2b] text-white' : 'text-text-body bg-white hover:bg-gray-50'}`
|
|
163
|
+
}, /*#__PURE__*/React.createElement(CommentIcon, null), commentCount > 0 && /*#__PURE__*/React.createElement("span", {
|
|
164
|
+
className: `absolute -top-1 -right-1 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] leading-[18px] text-center font-semibold ${commentMode ? 'bg-white text-[#2b2b2b]' : 'bg-[#2b2b2b] text-white'}`
|
|
165
|
+
}, commentCount))));
|
|
166
|
+
};
|
|
167
|
+
//# sourceMappingURL=UserQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","ShareIcon","CheckIcon","PlusIcon","UndoIcon","RedoIcon","CommentIcon","getForwardStack","pushToForwardStack","popFromForwardStack","clearForwardStack","DEFAULT_LOADING_MESSAGES","headerClassName","UserQuery","_ref","query","onNewConversation","onNavigateToTriggerId","predecessorTriggerId","currentTriggerId","onShare","onToggleCommentMode","commentMode","commentCount","loading","newConversationLabel","copiedLabel","copiedDurationMs","forwardStack","canGoForward","length","canGoBack","hasNavigation","handleBack","handleForward","nextTid","handleNewConversation","shareState","setShareState","handleShare","urlToCopy","window","location","href","err","console","warn","navigator","clipboard","writeText","catch","setTimeout","cyclingMessages","messages","cycledMessage","setCycledMessage","progressMessage","index","interval","setInterval","clearInterval","isCopied","isLoading","progressText","createElement","className","role","title","pendingQuery","type","onClick","disabled"],"sources":["../../../../src/components/ui/UserQuery.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { ShareIcon } from './icons/ShareIcon';\nimport { CheckIcon } from './icons/CheckIcon';\nimport { PlusIcon } from './icons/PlusIcon';\nimport { UndoIcon } from './icons/UndoIcon';\nimport { RedoIcon } from './icons/RedoIcon';\nimport { CommentIcon } from './icons/CommentIcon';\nimport {\n getForwardStack,\n pushToForwardStack,\n popFromForwardStack,\n clearForwardStack,\n} from '../../utils/navigationStack';\n\ntype ShareState = 'idle' | 'loading' | 'copied';\n\nconst DEFAULT_LOADING_MESSAGES = [\n 'Thinking…',\n 'Recognizing intent…',\n 'Connecting the dots…',\n 'Synthesizing insights…',\n 'Formulating a response…',\n];\n\nconst headerClassName =\n 'web5-user-query sticky top-0 z-10 flex items-center justify-between bg-white/60 backdrop-blur-sm pl-5 pr-[10px] py-[7px] sm:px-[30px] sm:py-[17px]';\n\nexport interface UserQueryLoadingState {\n pendingQuery: string;\n /** Static progress message. If omitted, falls back to cycling through `messages`. */\n progressMessage?: string;\n /** Messages cycled while loading when `progressMessage` is not set. */\n messages?: string[];\n}\n\nexport interface UserQueryProps {\n query: string;\n onNewConversation?: () => void;\n onNavigateToTriggerId?: (triggerId: string) => void;\n predecessorTriggerId?: string;\n currentTriggerId?: string;\n onShare?: (triggerId: string) => Promise<string>;\n /** Optional comment-mode toggle. When provided, render the chat-bubble\n * toggle button next to Share. The button reflects `commentMode` via\n * `is-on` styling and `aria-pressed`. */\n onToggleCommentMode?: () => void;\n commentMode?: boolean;\n /** Total number of comments on this response — shown as a badge next to the\n * toggle when > 0. */\n commentCount?: number;\n loading?: UserQueryLoadingState;\n /** Label for the \"new conversation\" action. Defaults to \"New conversation\". */\n newConversationLabel?: string;\n /** Label shown after the share link is copied. Defaults to \"Link Copied\". */\n copiedLabel?: string;\n /** How long the copied state stays visible, in ms. Defaults to 2000. */\n copiedDurationMs?: number;\n}\n\nexport const UserQuery: FC<UserQueryProps> = ({\n query,\n onNewConversation,\n onNavigateToTriggerId,\n predecessorTriggerId,\n currentTriggerId,\n onShare,\n onToggleCommentMode,\n commentMode = false,\n commentCount = 0,\n loading,\n newConversationLabel = 'New conversation',\n copiedLabel = 'Link Copied',\n copiedDurationMs = 2000,\n}) => {\n const forwardStack = useMemo(() => getForwardStack(), [currentTriggerId]);\n const canGoForward = forwardStack.length > 0;\n const canGoBack = !!predecessorTriggerId;\n const hasNavigation = canGoBack || canGoForward;\n\n const handleBack = useCallback(() => {\n if (!predecessorTriggerId || !currentTriggerId || !onNavigateToTriggerId) {\n return;\n }\n pushToForwardStack(currentTriggerId);\n onNavigateToTriggerId(predecessorTriggerId);\n }, [predecessorTriggerId, currentTriggerId, onNavigateToTriggerId]);\n\n const handleForward = useCallback(() => {\n if (!onNavigateToTriggerId) {\n return;\n }\n const nextTid = popFromForwardStack();\n if (!nextTid) {\n return;\n }\n onNavigateToTriggerId(nextTid);\n }, [onNavigateToTriggerId]);\n\n const handleNewConversation = useCallback(() => {\n clearForwardStack();\n onNewConversation?.();\n }, [onNewConversation]);\n\n const [shareState, setShareState] = useState<ShareState>('idle');\n\n const handleShare = useCallback(async () => {\n if (shareState !== 'idle') {\n return;\n }\n setShareState('loading');\n let urlToCopy = window.location.href;\n try {\n if (onShare && currentTriggerId) {\n urlToCopy = await onShare(currentTriggerId);\n }\n } catch (err) {\n console.warn('[share] failed, falling back to current URL:', err);\n }\n navigator.clipboard\n .writeText(urlToCopy)\n .catch((err) => console.warn('[share] clipboard write failed:', err));\n setShareState('copied');\n setTimeout(() => setShareState('idle'), copiedDurationMs);\n }, [shareState, onShare, currentTriggerId, copiedDurationMs]);\n\n const cyclingMessages = useMemo(\n () =>\n loading?.messages && loading.messages.length > 0\n ? loading.messages\n : DEFAULT_LOADING_MESSAGES,\n [loading?.messages],\n );\n const [cycledMessage, setCycledMessage] = useState(cyclingMessages[0]);\n\n useEffect(() => {\n if (!loading || loading.progressMessage) {\n return;\n }\n setCycledMessage(cyclingMessages[0]);\n if (cyclingMessages.length <= 1) {\n return;\n }\n let index = 0;\n const interval = setInterval(() => {\n index = (index + 1) % cyclingMessages.length;\n setCycledMessage(cyclingMessages[index]);\n }, 4000);\n return () => clearInterval(interval);\n }, [loading, cyclingMessages]);\n\n if (!query && !loading) {\n return null;\n }\n\n const isCopied = shareState === 'copied';\n const isLoading = shareState === 'loading';\n\n if (loading) {\n const progressText = loading.progressMessage ?? cycledMessage;\n return (\n <div\n className={headerClassName}\n role=\"status\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n >\n <p\n className=\"text-[14px] leading-5 text-text-body truncate min-w-0 max-w-[700px] flex-1\"\n title={`Asking: ${loading.pendingQuery}`}\n >\n <span className=\"text-text-body/70\">Asking: </span>\n {loading.pendingQuery}\n </p>\n {progressText && (\n <div className=\"hidden sm:flex items-center gap-2 ml-[10px] shrink-0 min-w-0\">\n <div\n className=\"w-4 h-4 shrink-0 animate-spin inline-block border-[2px] border-current border-t-transparent text-blue-600 dark:text-blue-500 rounded-full\"\n aria-hidden=\"true\"\n />\n <p className=\"text-[13px] leading-5 text-text-body/70 truncate max-w-[240px]\">\n {progressText}\n </p>\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div className={headerClassName}>\n <div className=\"flex items-center gap-[30px] flex-1 min-w-0\">\n <p\n className=\"web5-user-query__title text-[14px] leading-5 text-text-body truncate min-w-0 max-w-[700px]\"\n title={query}\n >\n {query}\n </p>\n {hasNavigation && (\n <div className=\"flex items-center gap-[9px]\">\n <button\n type=\"button\"\n onClick={handleBack}\n disabled={!canGoBack}\n title=\"Go to previous conversation\"\n aria-label=\"Go to previous conversation\"\n className=\"w-6 h-6 flex items-center justify-center text-text-body hover:text-black transition-colors bg-transparent border-0 cursor-pointer disabled:opacity-30 disabled:cursor-default\"\n >\n <UndoIcon />\n </button>\n <button\n type=\"button\"\n onClick={handleForward}\n disabled={!canGoForward}\n title=\"Go to next conversation\"\n aria-label=\"Go to next conversation\"\n className=\"w-6 h-6 flex items-center justify-center text-text-body hover:text-black transition-colors bg-transparent border-0 cursor-pointer disabled:opacity-30 disabled:cursor-default\"\n >\n <RedoIcon />\n </button>\n </div>\n )}\n </div>\n <div className=\"flex items-center gap-[10px] ml-[10px] sm:ml-0 shrink-0\">\n {/* Share button — wraps button + mobile tooltip in a relative container */}\n <div className=\"relative\">\n <button\n type=\"button\"\n onClick={handleShare}\n disabled={isLoading || isCopied}\n className={`web5-user-query__share flex items-center gap-2 p-[6px] sm:px-[13px] sm:py-[5px] rounded-[30px] text-[13px] leading-5 border-0 cursor-pointer transition-colors disabled:cursor-default\n ${\n isCopied\n ? 'is-copied bg-[#2b2b2b] text-white'\n : 'text-text-body bg-white hover:bg-gray-50'\n }`}\n >\n {isCopied ? <CheckIcon /> : <ShareIcon />}\n <span className=\"hidden sm:inline\">\n {isLoading ? 'Sharing…' : isCopied ? copiedLabel : 'Share'}\n </span>\n </button>\n {/* Mobile-only tooltip: drops below the button when link is copied */}\n {isCopied && (\n <div className=\"web5-user-query__copied-toast sm:hidden absolute top-full right-0 mt-1 flex items-center gap-2 bg-[#2b2b2b] text-white text-[12px] leading-none px-3 py-2 rounded-[8px] whitespace-nowrap\">\n <CheckIcon />\n {copiedLabel}\n </div>\n )}\n </div>\n {onNewConversation && (\n <button\n type=\"button\"\n onClick={handleNewConversation}\n className=\"web5-user-query__new-conversation flex items-center gap-2 p-[6px] sm:px-[13px] sm:py-[5px] rounded-[30px] text-[13px] leading-5 text-text-body bg-white border-0 cursor-pointer hover:bg-gray-50 transition-colors\"\n >\n <PlusIcon />\n <span className=\"hidden sm:inline\">{newConversationLabel}</span>\n </button>\n )}\n {onToggleCommentMode && (\n <button\n type=\"button\"\n onClick={onToggleCommentMode}\n aria-pressed={commentMode}\n title=\"Add a comment\"\n aria-label=\"Add a comment\"\n className={`relative flex items-center gap-2 p-[6px] sm:px-[13px] sm:py-[5px] rounded-[30px] text-[13px] leading-5 border-0 cursor-pointer transition-colors ${\n commentMode\n ? 'bg-[#2b2b2b] text-white'\n : 'text-text-body bg-white hover:bg-gray-50'\n }`}\n >\n <CommentIcon />\n {commentCount > 0 && (\n <span\n className={`absolute -top-1 -right-1 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] leading-[18px] text-center font-semibold ${\n commentMode ? 'bg-white text-[#2b2b2b]' : 'bg-[#2b2b2b] text-white'\n }`}\n >\n {commentCount}\n </span>\n )}\n </button>\n )}\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const ArrowTopRightIcon = props => /*#__PURE__*/React.createElement("svg", _extends({
|
|
4
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5
|
+
width: "22",
|
|
6
|
+
height: "22",
|
|
7
|
+
viewBox: "0 0 22 22",
|
|
8
|
+
fill: "none",
|
|
9
|
+
"aria-hidden": "true"
|
|
10
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
11
|
+
d: "M6.41602 6.4165H15.5827M15.5827 6.4165V15.5832M15.5827 6.4165L6.41602 15.5832",
|
|
12
|
+
stroke: "currentColor",
|
|
13
|
+
strokeWidth: "1.3",
|
|
14
|
+
strokeLinecap: "round",
|
|
15
|
+
strokeLinejoin: "round"
|
|
16
|
+
}));
|
|
17
|
+
//# sourceMappingURL=ArrowTopRightIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","ArrowTopRightIcon","props","createElement","_extends","xmlns","width","height","viewBox","fill","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin"],"sources":["../../../../../src/components/ui/icons/ArrowTopRightIcon.tsx"],"sourcesContent":["import React from 'react';\n\nexport const ArrowTopRightIcon: React.FC<React.SVGProps<SVGSVGElement>> = (\n props,\n) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d=\"M6.41602 6.4165H15.5827M15.5827 6.4165V15.5832M15.5827 6.4165L6.41602 15.5832\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,iBAA0D,GACrEC,KAAK,iBAELF,KAAA,CAAAG,aAAA,QAAAC,QAAA;EACEC,KAAK,EAAC,4BAA4B;EAClCC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACX,eAAY;AAAM,GACdP,KAAK,gBAETF,KAAA,CAAAG,aAAA;EACEO,CAAC,EAAC,+EAA+E;EACjFC,MAAM,EAAC,cAAc;EACrBC,WAAW,EAAC,KAAK;EACjBC,aAAa,EAAC,OAAO;EACrBC,cAAc,EAAC;AAAO,CACvB,CACE,CACN","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const ArrowUpIcon = props => /*#__PURE__*/React.createElement("svg", _extends({
|
|
4
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5
|
+
width: "16",
|
|
6
|
+
height: "16",
|
|
7
|
+
viewBox: "0 0 24 24",
|
|
8
|
+
fill: "none",
|
|
9
|
+
stroke: "currentColor",
|
|
10
|
+
strokeWidth: "1",
|
|
11
|
+
strokeLinecap: "butt",
|
|
12
|
+
"aria-hidden": "true"
|
|
13
|
+
}, props), /*#__PURE__*/React.createElement("line", {
|
|
14
|
+
x1: "12",
|
|
15
|
+
y1: "20",
|
|
16
|
+
x2: "12",
|
|
17
|
+
y2: "5"
|
|
18
|
+
}), /*#__PURE__*/React.createElement("line", {
|
|
19
|
+
x1: "7",
|
|
20
|
+
y1: "10",
|
|
21
|
+
x2: "12",
|
|
22
|
+
y2: "5"
|
|
23
|
+
}), /*#__PURE__*/React.createElement("line", {
|
|
24
|
+
x1: "17",
|
|
25
|
+
y1: "10",
|
|
26
|
+
x2: "12",
|
|
27
|
+
y2: "5"
|
|
28
|
+
}));
|
|
29
|
+
//# sourceMappingURL=ArrowUpIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","ArrowUpIcon","props","createElement","_extends","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","x1","y1","x2","y2"],"sources":["../../../../../src/components/ui/icons/ArrowUpIcon.tsx"],"sourcesContent":["import React from 'react';\n\nexport const ArrowUpIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n strokeLinecap=\"butt\"\n aria-hidden=\"true\"\n {...props}\n >\n <line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"5\" />\n <line x1=\"7\" y1=\"10\" x2=\"12\" y2=\"5\" />\n <line x1=\"17\" y1=\"10\" x2=\"12\" y2=\"5\" />\n </svg>\n);\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,WAAoD,GAAIC,KAAK,iBACxEF,KAAA,CAAAG,aAAA,QAAAC,QAAA;EACEC,KAAK,EAAC,4BAA4B;EAClCC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACXC,MAAM,EAAC,cAAc;EACrBC,WAAW,EAAC,GAAG;EACfC,aAAa,EAAC,MAAM;EACpB,eAAY;AAAM,GACdV,KAAK,gBAETF,KAAA,CAAAG,aAAA;EAAMU,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC;AAAG,CAAE,CAAC,eACvChB,KAAA,CAAAG,aAAA;EAAMU,EAAE,EAAC,GAAG;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC;AAAG,CAAE,CAAC,eACtChB,KAAA,CAAAG,aAAA;EAAMU,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC;AAAG,CAAE,CACnC,CACN","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const CheckIcon = props => /*#__PURE__*/React.createElement("svg", _extends({
|
|
4
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5
|
+
width: "16",
|
|
6
|
+
height: "16",
|
|
7
|
+
viewBox: "0 0 24 24",
|
|
8
|
+
fill: "none",
|
|
9
|
+
stroke: "currentColor",
|
|
10
|
+
strokeWidth: "2",
|
|
11
|
+
strokeLinecap: "round",
|
|
12
|
+
strokeLinejoin: "round",
|
|
13
|
+
"aria-hidden": "true"
|
|
14
|
+
}, props), /*#__PURE__*/React.createElement("polyline", {
|
|
15
|
+
points: "20 6 9 17 4 12"
|
|
16
|
+
}));
|
|
17
|
+
//# sourceMappingURL=CheckIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","CheckIcon","props","createElement","_extends","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","points"],"sources":["../../../../../src/components/ui/icons/CheckIcon.tsx"],"sourcesContent":["import React from 'react';\n\nexport const CheckIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n);\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,SAAkD,GAAIC,KAAK,iBACtEF,KAAA,CAAAG,aAAA,QAAAC,QAAA;EACEC,KAAK,EAAC,4BAA4B;EAClCC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACXC,MAAM,EAAC,cAAc;EACrBC,WAAW,EAAC,GAAG;EACfC,aAAa,EAAC,OAAO;EACrBC,cAAc,EAAC,OAAO;EACtB,eAAY;AAAM,GACdX,KAAK,gBAETF,KAAA,CAAAG,aAAA;EAAUW,MAAM,EAAC;AAAgB,CAAE,CAChC,CACN","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export const CommentIcon = () => /*#__PURE__*/React.createElement("svg", {
|
|
3
|
+
width: "16",
|
|
4
|
+
height: "16",
|
|
5
|
+
viewBox: "0 0 24 24",
|
|
6
|
+
fill: "none",
|
|
7
|
+
stroke: "currentColor",
|
|
8
|
+
strokeWidth: 2,
|
|
9
|
+
strokeLinecap: "round",
|
|
10
|
+
strokeLinejoin: "round",
|
|
11
|
+
"aria-hidden": true
|
|
12
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
13
|
+
d: "M21 12a8 8 0 1 1-3.2-6.4L21 4l-1 4.2A8 8 0 0 1 21 12z"
|
|
14
|
+
}));
|
|
15
|
+
//# sourceMappingURL=CommentIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","CommentIcon","createElement","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d"],"sources":["../../../../../src/components/ui/icons/CommentIcon.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nexport const CommentIcon: FC = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M21 12a8 8 0 1 1-3.2-6.4L21 4l-1 4.2A8 8 0 0 1 21 12z\" />\n </svg>\n);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AAEjC,OAAO,MAAMC,WAAe,GAAGA,CAAA,kBAC7BD,KAAA,CAAAE,aAAA;EACEC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACXC,MAAM,EAAC,cAAc;EACrBC,WAAW,EAAE,CAAE;EACfC,aAAa,EAAC,OAAO;EACrBC,cAAc,EAAC,OAAO;EACtB;AAAW,gBAEXV,KAAA,CAAAE,aAAA;EAAMS,CAAC,EAAC;AAAuD,CAAE,CAC9D,CACN","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const PlusIcon = props => /*#__PURE__*/React.createElement("svg", _extends({
|
|
4
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5
|
+
width: "16",
|
|
6
|
+
height: "16",
|
|
7
|
+
viewBox: "0 0 24 24",
|
|
8
|
+
fill: "none",
|
|
9
|
+
stroke: "currentColor",
|
|
10
|
+
strokeWidth: "2",
|
|
11
|
+
strokeLinecap: "round",
|
|
12
|
+
strokeLinejoin: "round",
|
|
13
|
+
"aria-hidden": "true"
|
|
14
|
+
}, props), /*#__PURE__*/React.createElement("line", {
|
|
15
|
+
x1: "12",
|
|
16
|
+
y1: "5",
|
|
17
|
+
x2: "12",
|
|
18
|
+
y2: "19"
|
|
19
|
+
}), /*#__PURE__*/React.createElement("line", {
|
|
20
|
+
x1: "5",
|
|
21
|
+
y1: "12",
|
|
22
|
+
x2: "19",
|
|
23
|
+
y2: "12"
|
|
24
|
+
}));
|
|
25
|
+
//# sourceMappingURL=PlusIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","PlusIcon","props","createElement","_extends","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","x1","y1","x2","y2"],"sources":["../../../../../src/components/ui/icons/PlusIcon.tsx"],"sourcesContent":["import React from 'react';\n\nexport const PlusIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" />\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n);\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,QAAiD,GAAIC,KAAK,iBACrEF,KAAA,CAAAG,aAAA,QAAAC,QAAA;EACEC,KAAK,EAAC,4BAA4B;EAClCC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACXC,MAAM,EAAC,cAAc;EACrBC,WAAW,EAAC,GAAG;EACfC,aAAa,EAAC,OAAO;EACrBC,cAAc,EAAC,OAAO;EACtB,eAAY;AAAM,GACdX,KAAK,gBAETF,KAAA,CAAAG,aAAA;EAAMW,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC,GAAG;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC;AAAI,CAAE,CAAC,eACvCjB,KAAA,CAAAG,aAAA;EAAMW,EAAE,EAAC,GAAG;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC,IAAI;EAACC,EAAE,EAAC;AAAI,CAAE,CACnC,CACN","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const RedoIcon = props => /*#__PURE__*/React.createElement("svg", _extends({
|
|
4
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5
|
+
width: "16",
|
|
6
|
+
height: "16",
|
|
7
|
+
viewBox: "0 0 24 24",
|
|
8
|
+
fill: "none",
|
|
9
|
+
"aria-hidden": "true"
|
|
10
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
11
|
+
d: "M17 11l4-4-4-4",
|
|
12
|
+
fill: "none",
|
|
13
|
+
stroke: "currentColor",
|
|
14
|
+
strokeWidth: "1.5",
|
|
15
|
+
strokeLinecap: "round",
|
|
16
|
+
strokeLinejoin: "round"
|
|
17
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
18
|
+
d: "M21 7h-8a7 7 0 0 0-7 7v1",
|
|
19
|
+
fill: "none",
|
|
20
|
+
stroke: "currentColor",
|
|
21
|
+
strokeWidth: "1.5",
|
|
22
|
+
strokeLinecap: "round",
|
|
23
|
+
strokeLinejoin: "round"
|
|
24
|
+
}));
|
|
25
|
+
//# sourceMappingURL=RedoIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","RedoIcon","props","createElement","_extends","xmlns","width","height","viewBox","fill","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin"],"sources":["../../../../../src/components/ui/icons/RedoIcon.tsx"],"sourcesContent":["import React from 'react';\n\nexport const RedoIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d=\"M17 11l4-4-4-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M21 7h-8a7 7 0 0 0-7 7v1\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,QAAiD,GAAIC,KAAK,iBACrEF,KAAA,CAAAG,aAAA,QAAAC,QAAA;EACEC,KAAK,EAAC,4BAA4B;EAClCC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACX,eAAY;AAAM,GACdP,KAAK,gBAETF,KAAA,CAAAG,aAAA;EACEO,CAAC,EAAC,gBAAgB;EAClBD,IAAI,EAAC,MAAM;EACXE,MAAM,EAAC,cAAc;EACrBC,WAAW,EAAC,KAAK;EACjBC,aAAa,EAAC,OAAO;EACrBC,cAAc,EAAC;AAAO,CACvB,CAAC,eACFd,KAAA,CAAAG,aAAA;EACEO,CAAC,EAAC,0BAA0B;EAC5BD,IAAI,EAAC,MAAM;EACXE,MAAM,EAAC,cAAc;EACrBC,WAAW,EAAC,KAAK;EACjBC,aAAa,EAAC,OAAO;EACrBC,cAAc,EAAC;AAAO,CACvB,CACE,CACN","ignoreList":[]}
|