@wix/web5-core 1.58.0 → 1.60.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.
Files changed (103) hide show
  1. package/dist/cjs/client/applyThemeOverrides.js +89 -0
  2. package/dist/cjs/client/applyThemeOverrides.js.map +1 -0
  3. package/dist/cjs/client/clientBundleUrl.js +43 -0
  4. package/dist/cjs/client/clientBundleUrl.js.map +1 -1
  5. package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js +33 -1
  6. package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -1
  7. package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js +9 -5
  8. package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -1
  9. package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js +5 -2
  10. package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -1
  11. package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js +4 -1
  12. package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js.map +1 -1
  13. package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js +35 -2
  14. package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -1
  15. package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js +27 -1
  16. package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -1
  17. package/dist/cjs/component/componentDefinitions/index.js +8 -1
  18. package/dist/cjs/component/componentDefinitions/index.js.map +1 -1
  19. package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js +10 -5
  20. package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -1
  21. package/dist/cjs/component/componentDefinitions/parse-utils.js +45 -8
  22. package/dist/cjs/component/componentDefinitions/parse-utils.js.map +1 -1
  23. package/dist/cjs/component/componentParser.js +15 -0
  24. package/dist/cjs/component/componentParser.js.map +1 -1
  25. package/dist/cjs/component/section-definition.js +14 -0
  26. package/dist/cjs/component/section-definition.js.map +1 -1
  27. package/dist/cjs/component/types.js.map +1 -1
  28. package/dist/cjs/components/ui/MarkdownText.js +41 -42
  29. package/dist/cjs/components/ui/MarkdownText.js.map +1 -1
  30. package/dist/cjs/components/ui/UnifiedLink.js +22 -10
  31. package/dist/cjs/components/ui/UnifiedLink.js.map +1 -1
  32. package/dist/cjs/hostScope.js.map +1 -1
  33. package/dist/cjs/index.js +13 -3
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/utils/markdownPreprocessor.js +162 -8
  36. package/dist/cjs/utils/markdownPreprocessor.js.map +1 -1
  37. package/dist/esm/client/applyThemeOverrides.js +85 -0
  38. package/dist/esm/client/applyThemeOverrides.js.map +1 -0
  39. package/dist/esm/client/clientBundleUrl.js +39 -0
  40. package/dist/esm/client/clientBundleUrl.js.map +1 -1
  41. package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js +34 -1
  42. package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -1
  43. package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js +10 -6
  44. package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -1
  45. package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js +6 -3
  46. package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -1
  47. package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js +5 -2
  48. package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js.map +1 -1
  49. package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js +36 -3
  50. package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -1
  51. package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js +27 -1
  52. package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -1
  53. package/dist/esm/component/componentDefinitions/index.js +8 -1
  54. package/dist/esm/component/componentDefinitions/index.js.map +1 -1
  55. package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js +11 -6
  56. package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -1
  57. package/dist/esm/component/componentDefinitions/parse-utils.js +44 -8
  58. package/dist/esm/component/componentDefinitions/parse-utils.js.map +1 -1
  59. package/dist/esm/component/componentParser.js +15 -0
  60. package/dist/esm/component/componentParser.js.map +1 -1
  61. package/dist/esm/component/section-definition.js +13 -1
  62. package/dist/esm/component/section-definition.js.map +1 -1
  63. package/dist/esm/component/types.js.map +1 -1
  64. package/dist/esm/components/ui/MarkdownText.js +8 -9
  65. package/dist/esm/components/ui/MarkdownText.js.map +1 -1
  66. package/dist/esm/components/ui/UnifiedLink.js +7 -1
  67. package/dist/esm/components/ui/UnifiedLink.js.map +1 -1
  68. package/dist/esm/hostScope.js.map +1 -1
  69. package/dist/esm/index.js +4 -1
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/utils/markdownPreprocessor.js +160 -8
  72. package/dist/esm/utils/markdownPreprocessor.js.map +1 -1
  73. package/dist/types/client/applyThemeOverrides.d.ts +19 -0
  74. package/dist/types/client/applyThemeOverrides.d.ts.map +1 -0
  75. package/dist/types/client/clientBundleUrl.d.ts +22 -0
  76. package/dist/types/client/clientBundleUrl.d.ts.map +1 -1
  77. package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts +2 -2
  78. package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts.map +1 -1
  79. package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts.map +1 -1
  80. package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts.map +1 -1
  81. package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts.map +1 -1
  82. package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts.map +1 -1
  83. package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts.map +1 -1
  84. package/dist/types/component/componentDefinitions/index.d.ts.map +1 -1
  85. package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts.map +1 -1
  86. package/dist/types/component/componentDefinitions/parse-utils.d.ts +10 -0
  87. package/dist/types/component/componentDefinitions/parse-utils.d.ts.map +1 -1
  88. package/dist/types/component/componentParser.d.ts.map +1 -1
  89. package/dist/types/component/section-definition.d.ts +13 -1
  90. package/dist/types/component/section-definition.d.ts.map +1 -1
  91. package/dist/types/component/types.d.ts +7 -0
  92. package/dist/types/component/types.d.ts.map +1 -1
  93. package/dist/types/components/ui/MarkdownText.d.ts +13 -0
  94. package/dist/types/components/ui/MarkdownText.d.ts.map +1 -1
  95. package/dist/types/components/ui/UnifiedLink.d.ts +1 -1
  96. package/dist/types/components/ui/UnifiedLink.d.ts.map +1 -1
  97. package/dist/types/hostScope.d.ts +11 -0
  98. package/dist/types/hostScope.d.ts.map +1 -1
  99. package/dist/types/index.d.ts +4 -2
  100. package/dist/types/index.d.ts.map +1 -1
  101. package/dist/types/utils/markdownPreprocessor.d.ts +30 -5
  102. package/dist/types/utils/markdownPreprocessor.d.ts.map +1 -1
  103. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactMarkdown","_remarkGfm","_entityLinkParser","_linkTypes","_utils","_useWeb5Link","_ComponentDependenciesContext","_diagnosticTypes","_table","_UnifiedLink","_OptimizedImage","_SmartIcon","_jsxFileName","decodeWeb5Path","path","decodeURIComponent","MarkdownText","children","markdownChildren","className","codeClassName","isActionRegistered","useWeb5Link","reportDiagnostic","useComponentDependencies","fixMalformedLinks","markdown","replace","processedMarkdown","urlTransform","url","validated","validateLinkUrl","DIAGNOSTIC_TYPES","BROKEN_WEB5_LINK","default","createElement","cn","__self","__source","fileName","lineNumber","columnNumber","remarkPlugins","remarkGfm","components","p","code","inlineClassName","isBlock","includes","pre","em","strong","h1","h2","h3","h4","h5","h6","blockquote","table","Table","thead","TableHeader","tbody","TableBody","tr","TableRow","th","TableHead","td","TableCell","ul","ol","li","a","href","parsed","parseWeb5Url","type","Web5UrlType","ACTION","actionName","UNKNOWN_WEB5_ACTION","UnifiedLink","variant","hr","img","src","alt","ICON","SmartIcon","iconHint","label","undefined","IMAGE","IMAGE_RESOLUTION_FAILED","Fragment","OptimizedImage","filename","objectFit","layout","exports"],"sources":["../../../../src/components/ui/MarkdownText.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport { parseWeb5Url, validateLinkUrl } from '../../utils/entityLinkParser';\nimport { Web5UrlType } from '../../types/link-types';\nimport { cn } from '../../lib/utils';\nimport { useWeb5Link } from '../../hooks/useWeb5Link';\nimport { useComponentDependencies } from '../../context/ComponentDependenciesContext';\nimport { DIAGNOSTIC_TYPES } from '../../component/diagnosticTypes';\nimport {\n Table,\n TableHeader,\n TableBody,\n TableRow,\n TableHead,\n TableCell,\n} from './table';\nimport { UnifiedLink } from './UnifiedLink';\nimport { OptimizedImage } from './OptimizedImage';\nimport { SmartIcon } from './SmartIcon';\n\n/** Decode a web5:// url path, tolerating malformed escape sequences. */\nfunction decodeWeb5Path(path: string): string {\n try {\n return decodeURIComponent(path);\n } catch {\n return path;\n }\n}\n\ninterface MarkdownTextProps {\n children: string;\n className?: string;\n codeClassName?: string;\n}\n\nexport const MarkdownText: FC<MarkdownTextProps> = ({\n children: markdownChildren,\n className = '',\n codeClassName = 'bg-muted px-1 py-0.5 rounded text-xs font-mono',\n}) => {\n const { isActionRegistered } = useWeb5Link();\n const { reportDiagnostic } = useComponentDependencies();\n\n // Fix malformed markdown links with space between ] and ( e.g. [text] (url) → [text](url)\n const fixMalformedLinks = (markdown: string): string => {\n return markdown.replace(/\\]\\s+\\(/g, '](');\n };\n\n const processedMarkdown = fixMalformedLinks(markdownChildren);\n // Custom URL transform: only render valid URLs (react-markdown v9+ strips non-http by default)\n const urlTransform = (url: string) => {\n const validated = validateLinkUrl(url);\n if (!validated) {\n reportDiagnostic?.(\n DIAGNOSTIC_TYPES.BROKEN_WEB5_LINK,\n 'markdownText',\n `URL stripped: \"${url}\"`,\n );\n }\n return validated;\n };\n\n return (\n <div className={cn('prose prose-slate max-w-none', className)}>\n <ReactMarkdown\n remarkPlugins={[remarkGfm]}\n urlTransform={urlTransform}\n components={{\n p: ({ children }) => (\n <p className=\"mb-4 leading-relaxed\">{children}</p>\n ),\n code: ({ children, className: inlineClassName }) => {\n const isBlock = inlineClassName?.includes('language-');\n if (isBlock) {\n return (\n <code\n className={cn(\n 'block bg-muted p-4 rounded-md text-sm font-mono overflow-x-auto',\n inlineClassName,\n )}\n >\n {children}\n </code>\n );\n }\n return (\n <code className={cn(codeClassName, inlineClassName)}>\n {children}\n </code>\n );\n },\n pre: ({ children }) => {\n return (\n <pre className=\"mb-4 overflow-x-auto [&>code]:block [&>code]:my-0\">\n {children}\n </pre>\n );\n },\n em: ({ children }) => <em className=\"italic\">{children}</em>,\n strong: ({ children }) => (\n <strong className=\"font-bold\">{children}</strong>\n ),\n h1: ({ children }) => (\n <h1 className=\"text-4xl font-bold text-foreground mb-4 mt-6\">\n {children}\n </h1>\n ),\n h2: ({ children }) => (\n <h2 className=\"text-3xl font-bold text-foreground mb-3 mt-6\">\n {children}\n </h2>\n ),\n h3: ({ children }) => (\n <h3 className=\"text-2xl font-semibold text-foreground mb-3 mt-5\">\n {children}\n </h3>\n ),\n h4: ({ children }) => (\n <h4 className=\"text-xl font-semibold text-foreground mb-2 mt-4\">\n {children}\n </h4>\n ),\n h5: ({ children }) => (\n <h5 className=\"text-lg font-semibold text-foreground mb-2 mt-4\">\n {children}\n </h5>\n ),\n h6: ({ children }) => (\n <h6 className=\"text-base font-semibold text-foreground mb-2 mt-3\">\n {children}\n </h6>\n ),\n blockquote: ({ children }) => (\n <blockquote className=\"border-l-4 border-border pl-4 italic text-muted-foreground my-4\">\n {children}\n </blockquote>\n ),\n table: ({ children }) => (\n <div className=\"my-6\">\n <Table>{children}</Table>\n </div>\n ),\n thead: ({ children }) => <TableHeader>{children}</TableHeader>,\n tbody: ({ children }) => <TableBody>{children}</TableBody>,\n tr: ({ children }) => <TableRow>{children}</TableRow>,\n th: ({ children }) => <TableHead>{children}</TableHead>,\n td: ({ children }) => <TableCell>{children}</TableCell>,\n ul: ({ children }) => (\n <ul className=\"list-disc list-outside mb-4 space-y-2 text-foreground pl-6\">\n {children}\n </ul>\n ),\n ol: ({ children }) => (\n <ol className=\"list-decimal list-outside mb-4 space-y-2 text-foreground pl-6\">\n {children}\n </ol>\n ),\n li: ({ children }) => <li className=\"text-foreground\">{children}</li>,\n a: ({ children, href: url }) => {\n // Validate web5://action/ links — render as plain text if unregistered\n if (url) {\n const parsed = parseWeb5Url(url);\n if (\n parsed &&\n parsed.type === Web5UrlType.ACTION &&\n !isActionRegistered(parsed.actionName)\n ) {\n reportDiagnostic?.(\n DIAGNOSTIC_TYPES.UNKNOWN_WEB5_ACTION,\n 'markdownText',\n `Unregistered action: \"${parsed.actionName}\"`,\n );\n return (\n <span className=\"text-muted-foreground\">{children}</span>\n );\n }\n }\n\n return (\n <UnifiedLink href={url} variant=\"inline\">\n {children}\n </UnifiedLink>\n );\n },\n hr: () => <hr className=\"my-6 border-border\" />,\n img: ({ src, alt }) => {\n const parsed = src ? parseWeb5Url(src) : null;\n\n // `web5://icon/…` references a named icon, not a bitmap (KPI /\n // metrics blocks emit these). Render it via SmartIcon, which\n // resolves through the `resolveIcons` dependency and degrades to an\n // empty inline placeholder when no resolver is present — never a\n // broken-image box.\n if (parsed?.type === Web5UrlType.ICON) {\n return (\n <SmartIcon\n iconHint={decodeWeb5Path(parsed.path)}\n label={alt || undefined}\n />\n );\n }\n\n // Only `web5://image/` resolves to a real asset. Any other web5://\n // scheme used as an image source would fall through to a raw\n // <img src=\"web5://…\"> the browser can't load, rendering a \"Failed\n // to load image\" box — skip it (keep the alt text if present).\n if (parsed && parsed.type !== Web5UrlType.IMAGE) {\n reportDiagnostic?.(\n DIAGNOSTIC_TYPES.IMAGE_RESOLUTION_FAILED,\n 'markdownText',\n `Unsupported web5:// image source: \"${src}\"`,\n );\n return alt ? <>{alt}</> : null;\n }\n\n return (\n <span className=\"block my-4\">\n <OptimizedImage\n filename={src ?? ''}\n alt={alt ?? ''}\n className=\"w-full rounded-md\"\n objectFit=\"cover\"\n layout=\"intrinsic\"\n />\n </span>\n );\n },\n }}\n >\n {processedMarkdown}\n </ReactMarkdown>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactMarkdown","_remarkGfm","_entityLinkParser","_markdownPreprocessor","_linkTypes","_utils","_useWeb5Link","_ComponentDependenciesContext","_diagnosticTypes","_table","_UnifiedLink","_OptimizedImage","_SmartIcon","_jsxFileName","decodeWeb5Path","path","decodeURIComponent","MarkdownText","children","markdownChildren","className","codeClassName","inline","isActionRegistered","useWeb5Link","reportDiagnostic","useComponentDependencies","processedMarkdown","fixMalformedLinks","urlTransform","url","validated","validateLinkUrl","DIAGNOSTIC_TYPES","BROKEN_WEB5_LINK","Wrapper","wrapperClassName","undefined","cn","default","createElement","__self","__source","fileName","lineNumber","columnNumber","remarkPlugins","remarkGfm","components","p","Fragment","code","inlineClassName","isBlock","includes","pre","em","strong","h1","h2","h3","h4","h5","h6","blockquote","table","Table","thead","TableHeader","tbody","TableBody","tr","TableRow","th","TableHead","td","TableCell","ul","ol","li","a","href","parsed","parseWeb5Url","type","Web5UrlType","ACTION","actionName","UNKNOWN_WEB5_ACTION","UnifiedLink","variant","hr","img","src","alt","ICON","SmartIcon","iconHint","label","IMAGE","IMAGE_RESOLUTION_FAILED","OptimizedImage","filename","objectFit","layout","exports"],"sources":["../../../../src/components/ui/MarkdownText.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport { parseWeb5Url, validateLinkUrl } from '../../utils/entityLinkParser';\nimport { fixMalformedLinks } from '../../utils/markdownPreprocessor';\nimport { Web5UrlType } from '../../types/link-types';\nimport { cn } from '../../lib/utils';\nimport { useWeb5Link } from '../../hooks/useWeb5Link';\nimport { useComponentDependencies } from '../../context/ComponentDependenciesContext';\nimport { DIAGNOSTIC_TYPES } from '../../component/diagnosticTypes';\nimport {\n Table,\n TableHeader,\n TableBody,\n TableRow,\n TableHead,\n TableCell,\n} from './table';\nimport { UnifiedLink } from './UnifiedLink';\nimport { OptimizedImage } from './OptimizedImage';\nimport { SmartIcon } from './SmartIcon';\n\n/** Decode a web5:// url path, tolerating malformed escape sequences. */\nfunction decodeWeb5Path(path: string): string {\n try {\n return decodeURIComponent(path);\n } catch {\n return path;\n }\n}\n\ninterface MarkdownTextProps {\n children: string;\n className?: string;\n codeClassName?: string;\n /**\n * Render a single line of *inline* markdown — links, bold, italic, code —\n * with no `prose` wrapper and no paragraph margins.\n *\n * The default (block) mode wraps output in `prose prose-slate`, which sets\n * its own font size and body color. That is right for a standalone passage\n * and wrong inside text the caller has already styled: a list item body or a\n * label would silently lose its variant's size, weight and theme color to\n * prose's slate palette. Use `inline` there so the surrounding element keeps\n * control of typography, and keep the content to one line — block markdown\n * (lists, tables, headings) has no place inside a span.\n */\n inline?: boolean;\n}\n\nexport const MarkdownText: FC<MarkdownTextProps> = ({\n children: markdownChildren,\n className = '',\n codeClassName = 'bg-muted px-1 py-0.5 rounded text-xs font-mono',\n inline = false,\n}) => {\n const { isActionRegistered } = useWeb5Link();\n const { reportDiagnostic } = useComponentDependencies();\n\n const processedMarkdown = fixMalformedLinks(markdownChildren);\n // Custom URL transform: only render valid URLs (react-markdown v9+ strips non-http by default)\n const urlTransform = (url: string) => {\n const validated = validateLinkUrl(url);\n if (!validated) {\n reportDiagnostic?.(\n DIAGNOSTIC_TYPES.BROKEN_WEB5_LINK,\n 'markdownText',\n `URL stripped: \"${url}\"`,\n );\n }\n return validated;\n };\n\n const Wrapper = inline ? 'span' : 'div';\n const wrapperClassName = inline\n ? className || undefined\n : cn('prose prose-slate max-w-none', className);\n\n return (\n <Wrapper className={wrapperClassName}>\n <ReactMarkdown\n remarkPlugins={[remarkGfm]}\n urlTransform={urlTransform}\n components={{\n p: ({ children }) =>\n inline ? (\n <>{children}</>\n ) : (\n <p className=\"mb-4 leading-relaxed\">{children}</p>\n ),\n code: ({ children, className: inlineClassName }) => {\n const isBlock = inlineClassName?.includes('language-');\n if (isBlock) {\n return (\n <code\n className={cn(\n 'block bg-muted p-4 rounded-md text-sm font-mono overflow-x-auto',\n inlineClassName,\n )}\n >\n {children}\n </code>\n );\n }\n return (\n <code className={cn(codeClassName, inlineClassName)}>\n {children}\n </code>\n );\n },\n pre: ({ children }) => {\n return (\n <pre className=\"mb-4 overflow-x-auto [&>code]:block [&>code]:my-0\">\n {children}\n </pre>\n );\n },\n em: ({ children }) => <em className=\"italic\">{children}</em>,\n strong: ({ children }) => (\n <strong className=\"font-bold\">{children}</strong>\n ),\n h1: ({ children }) => (\n <h1 className=\"text-4xl font-bold text-foreground mb-4 mt-6\">\n {children}\n </h1>\n ),\n h2: ({ children }) => (\n <h2 className=\"text-3xl font-bold text-foreground mb-3 mt-6\">\n {children}\n </h2>\n ),\n h3: ({ children }) => (\n <h3 className=\"text-2xl font-semibold text-foreground mb-3 mt-5\">\n {children}\n </h3>\n ),\n h4: ({ children }) => (\n <h4 className=\"text-xl font-semibold text-foreground mb-2 mt-4\">\n {children}\n </h4>\n ),\n h5: ({ children }) => (\n <h5 className=\"text-lg font-semibold text-foreground mb-2 mt-4\">\n {children}\n </h5>\n ),\n h6: ({ children }) => (\n <h6 className=\"text-base font-semibold text-foreground mb-2 mt-3\">\n {children}\n </h6>\n ),\n blockquote: ({ children }) => (\n <blockquote className=\"border-l-4 border-border pl-4 italic text-muted-foreground my-4\">\n {children}\n </blockquote>\n ),\n table: ({ children }) => (\n <div className=\"my-6\">\n <Table>{children}</Table>\n </div>\n ),\n thead: ({ children }) => <TableHeader>{children}</TableHeader>,\n tbody: ({ children }) => <TableBody>{children}</TableBody>,\n tr: ({ children }) => <TableRow>{children}</TableRow>,\n th: ({ children }) => <TableHead>{children}</TableHead>,\n td: ({ children }) => <TableCell>{children}</TableCell>,\n ul: ({ children }) => (\n <ul className=\"list-disc list-outside mb-4 space-y-2 text-foreground pl-6\">\n {children}\n </ul>\n ),\n ol: ({ children }) => (\n <ol className=\"list-decimal list-outside mb-4 space-y-2 text-foreground pl-6\">\n {children}\n </ol>\n ),\n li: ({ children }) => <li className=\"text-foreground\">{children}</li>,\n a: ({ children, href: url }) => {\n // Validate web5://action/ links — render as plain text if unregistered\n if (url) {\n const parsed = parseWeb5Url(url);\n if (\n parsed &&\n parsed.type === Web5UrlType.ACTION &&\n !isActionRegistered(parsed.actionName)\n ) {\n reportDiagnostic?.(\n DIAGNOSTIC_TYPES.UNKNOWN_WEB5_ACTION,\n 'markdownText',\n `Unregistered action: \"${parsed.actionName}\"`,\n );\n return (\n <span className=\"text-muted-foreground\">{children}</span>\n );\n }\n }\n\n return (\n <UnifiedLink href={url} variant=\"inline\">\n {children}\n </UnifiedLink>\n );\n },\n hr: () => <hr className=\"my-6 border-border\" />,\n img: ({ src, alt }) => {\n const parsed = src ? parseWeb5Url(src) : null;\n\n // `web5://icon/…` references a named icon, not a bitmap (KPI /\n // metrics blocks emit these). Render it via SmartIcon, which\n // resolves through the `resolveIcons` dependency and degrades to an\n // empty inline placeholder when no resolver is present — never a\n // broken-image box.\n if (parsed?.type === Web5UrlType.ICON) {\n return (\n <SmartIcon\n iconHint={decodeWeb5Path(parsed.path)}\n label={alt || undefined}\n />\n );\n }\n\n // Only `web5://image/` resolves to a real asset. Any other web5://\n // scheme used as an image source would fall through to a raw\n // <img src=\"web5://…\"> the browser can't load, rendering a \"Failed\n // to load image\" box — skip it (keep the alt text if present).\n if (parsed && parsed.type !== Web5UrlType.IMAGE) {\n reportDiagnostic?.(\n DIAGNOSTIC_TYPES.IMAGE_RESOLUTION_FAILED,\n 'markdownText',\n `Unsupported web5:// image source: \"${src}\"`,\n );\n return alt ? <>{alt}</> : null;\n }\n\n return (\n <span className=\"block my-4\">\n <OptimizedImage\n filename={src ?? ''}\n alt={alt ?? ''}\n className=\"w-full rounded-md\"\n objectFit=\"cover\"\n layout=\"intrinsic\"\n />\n </span>\n );\n },\n }}\n >\n {processedMarkdown}\n </ReactMarkdown>\n </Wrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -59,7 +59,19 @@ function UnifiedLink({
59
59
  } = (0, _ComponentDependenciesContext.useComponentDependencies)();
60
60
  if (!(0, _entityLinkParser.validateLinkUrl)(href)) {
61
61
  reportDiagnostic == null || reportDiagnostic(_diagnosticTypes.DIAGNOSTIC_TYPES.BROKEN_WEB5_LINK, 'unifiedLink', `link rejected: "${href}"`);
62
- return null;
62
+ // Degrade to the label as plain text rather than dropping it. Returning
63
+ // null used to delete the children too, so a bad href silently removed
64
+ // words from the middle of a sentence — the reader lost prose, not just a
65
+ // link. An unclickable phrase is the smaller failure.
66
+ return /*#__PURE__*/_react.default.createElement("span", {
67
+ className: className,
68
+ __self: this,
69
+ __source: {
70
+ fileName: _jsxFileName,
71
+ lineNumber: 79,
72
+ columnNumber: 12
73
+ }
74
+ }, children);
63
75
  }
64
76
  const resolvedHref = resolveUrl(href) ?? href;
65
77
  const linkType = linkTypeProp ?? detectLinkType(href);
@@ -84,7 +96,7 @@ function UnifiedLink({
84
96
  __self: this,
85
97
  __source: {
86
98
  fileName: _jsxFileName,
87
- lineNumber: 96,
99
+ lineNumber: 100,
88
100
  columnNumber: 7
89
101
  }
90
102
  }), children);
@@ -98,7 +110,7 @@ function UnifiedLink({
98
110
  __self: this,
99
111
  __source: {
100
112
  fileName: _jsxFileName,
101
- lineNumber: 112,
113
+ lineNumber: 116,
102
114
  columnNumber: 7
103
115
  }
104
116
  }), children, showArrow && /*#__PURE__*/_react.default.createElement("span", {
@@ -106,7 +118,7 @@ function UnifiedLink({
106
118
  __self: this,
107
119
  __source: {
108
120
  fileName: _jsxFileName,
109
- lineNumber: 124,
121
+ lineNumber: 128,
110
122
  columnNumber: 11
111
123
  }
112
124
  }, "\xA0", /*#__PURE__*/_react.default.createElement(ArrowIcon, {
@@ -114,7 +126,7 @@ function UnifiedLink({
114
126
  __self: this,
115
127
  __source: {
116
128
  fileName: _jsxFileName,
117
- lineNumber: 126,
129
+ lineNumber: 130,
118
130
  columnNumber: 13
119
131
  }
120
132
  })));
@@ -129,7 +141,7 @@ function UnifiedLink({
129
141
  __self: this,
130
142
  __source: {
131
143
  fileName: _jsxFileName,
132
- lineNumber: 135,
144
+ lineNumber: 139,
133
145
  columnNumber: 5
134
146
  }
135
147
  }), /*#__PURE__*/_react.default.createElement("span", {
@@ -137,7 +149,7 @@ function UnifiedLink({
137
149
  __self: this,
138
150
  __source: {
139
151
  fileName: _jsxFileName,
140
- lineNumber: 149,
152
+ lineNumber: 153,
141
153
  columnNumber: 7
142
154
  }
143
155
  }), /*#__PURE__*/_react.default.createElement("span", {
@@ -145,7 +157,7 @@ function UnifiedLink({
145
157
  __self: this,
146
158
  __source: {
147
159
  fileName: _jsxFileName,
148
- lineNumber: 157,
160
+ lineNumber: 161,
149
161
  columnNumber: 7
150
162
  }
151
163
  }, children), showArrow && /*#__PURE__*/_react.default.createElement("span", {
@@ -153,7 +165,7 @@ function UnifiedLink({
153
165
  __self: this,
154
166
  __source: {
155
167
  fileName: _jsxFileName,
156
- lineNumber: 161,
168
+ lineNumber: 165,
157
169
  columnNumber: 9
158
170
  }
159
171
  }, /*#__PURE__*/_react.default.createElement(ArrowIcon, {
@@ -161,7 +173,7 @@ function UnifiedLink({
161
173
  __self: this,
162
174
  __source: {
163
175
  fileName: _jsxFileName,
164
- lineNumber: 168,
176
+ lineNumber: 172,
165
177
  columnNumber: 11
166
178
  }
167
179
  })));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_linkTypes","_entityLinkParser","_utils","_useWeb5Link","_ComponentDependenciesContext","_diagnosticTypes","_ArrowUpIcon","_ArrowTopRightIcon","_jsxFileName","LinkType","exports","ARROW_BY_TYPE","ASK","ArrowUpIcon","ACTION","ArrowTopRightIcon","NAVIGATE","detectLinkType","href","isWeb5AskUrl","isWeb5ActionUrl","UnifiedLink","linkType","linkTypeProp","variant","active","hideArrow","className","children","onClick","props","handleLinkClick","resolveUrl","useWeb5Link","reportDiagnostic","useComponentDependencies","validateLinkUrl","DIAGNOSTIC_TYPES","BROKEN_WEB5_LINK","resolvedHref","ArrowIcon","showArrow","safeHref","startsWith","handleClick","e","defaultPrevented","default","createElement","_extends2","cn","__self","__source","fileName","lineNumber","columnNumber"],"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 &nbsp;\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":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_linkTypes","_entityLinkParser","_utils","_useWeb5Link","_ComponentDependenciesContext","_diagnosticTypes","_ArrowUpIcon","_ArrowTopRightIcon","_jsxFileName","LinkType","exports","ARROW_BY_TYPE","ASK","ArrowUpIcon","ACTION","ArrowTopRightIcon","NAVIGATE","detectLinkType","href","isWeb5AskUrl","isWeb5ActionUrl","UnifiedLink","linkType","linkTypeProp","variant","active","hideArrow","className","children","onClick","props","handleLinkClick","resolveUrl","useWeb5Link","reportDiagnostic","useComponentDependencies","validateLinkUrl","DIAGNOSTIC_TYPES","BROKEN_WEB5_LINK","default","createElement","__self","__source","fileName","lineNumber","columnNumber","resolvedHref","ArrowIcon","showArrow","safeHref","startsWith","handleClick","e","defaultPrevented","_extends2","cn"],"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 // Degrade to the label as plain text rather than dropping it. Returning\n // null used to delete the children too, so a bad href silently removed\n // words from the middle of a sentence — the reader lost prose, not just a\n // link. An unclickable phrase is the smaller failure.\n return <span className={className}>{children}</span>;\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 &nbsp;\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":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["WEB5_ROOT_ID","exports","WEB5_ROOT_CLASS","WEB5_SCOPES","WEB5_SCOPE","join","WEB5_GLOBAL_TOKENS"],"sources":["../../src/hostScope.ts"],"sourcesContent":["/**\n * The mount-scope contract.\n *\n * Several packages have to agree on where Web5 content begins in a host\n * document:\n *\n * - **web5-core** scopes its own CSS to it (`base-utilities.css` already\n * targets `#root`).\n * - **the client build** compiles every selector against it (`scopeCss` in\n * `web5-core/scripts/scope-css.ts`).\n * - **web50-server-ui** stamps `WEB5_ROOT_CLASS` on the element it mounts\n * into, and renders the debug panel into `.debug-view`.\n * - **embed-placement** mounts the *same* client bundle into\n * `[data-web5-placement]` slots on host pages.\n *\n * One home for the list, so those cannot drift.\n *\n * ## Why it is a list and not just `#root`\n *\n * A placement renders client components **outside** `#root`, on the merchant's\n * own PDP. A stylesheet scoped to `#root` alone leaves every placement — and the\n * debug panel — completely unstyled. `w5-client-circana` and\n * `w5-client-feature-com` each discovered this and each hardcoded their own\n * list; this constant is what replaces both.\n */\nexport const WEB5_ROOT_ID = 'root';\n\nexport const WEB5_ROOT_CLASS = 'w5-root';\n\n/**\n * Every place Web5 content can be mounted.\n *\n * `#root` is the id the host runtime has always created, kept so the compiled\n * stylesheet matches before any script runs. `.w5-root` is stamped at mount and\n * keeps the contract working if the host ever renames the element.\n */\nexport const WEB5_SCOPES = [\n `#${WEB5_ROOT_ID}`,\n `.${WEB5_ROOT_CLASS}`,\n '[data-web5-placement]',\n '.debug-view',\n] as const;\n\n/**\n * `:is()` takes the specificity of its most specific argument, so this is worth\n * (1,0,0) whichever branch matches — enough to outrank the (0,1,1) descendant\n * selectors host themes use for rich-text typography.\n */\nexport const WEB5_SCOPE = `:is(${WEB5_SCOPES.join(',')})`;\n\n/**\n * Custom properties the **host** sets on `:root` at runtime. Their declarations\n * must stay global: moved into the scope they would shadow the host's value for\n * our own subtree, which is precisely where it is needed.\n *\n * Kept in sync with what `web50-server-ui` and the host offset injectors write.\n */\nexport const WEB5_GLOBAL_TOKENS: readonly RegExp[] = [\n /^--web5-host-left-offset$/,\n /^--web5-host-right-offset$/,\n /^--web5-window-scroll-top-offset$/,\n];\n\n/**\n * Per-client overrides for the host adaptation web50-server-ui performs at\n * mount. Shared behaviour, client values — a client package supplies this on\n * `clientConfig.hostFit` and never forks the implementation.\n */\nexport interface HostFitConfig {\n /** Master switch. Default `true`. */\n enabled?: boolean;\n /**\n * What \"the full available width\" means on this site. Default\n * `'main, [role=\"main\"]'`; falls back to `<body>` when nothing matches.\n */\n containerSelector?: string;\n /**\n * Widen the page's content container to the host container's content box.\n * Default **`false`** — opt in per client.\n *\n * Off by default because widening changes the layout of hosts that are\n * already sized correctly; only a client whose host constrains it (a theme\n * that drops the mount into a narrow reading column) needs this.\n */\n bleed?: boolean;\n /**\n * Sticky-header height. `'auto'` (default) measures it; a number pins it.\n *\n * Prefer pinning where the host chrome is known. Circana's\n * `inject-host-nav-offset` measured side rails at runtime, hit false\n * positives in production (host layout containers and full-height nav panels\n * matched the filter), and was changed to static values — the same trap\n * applies to any measured host geometry.\n */\n topInset?: number | 'auto';\n /**\n * Hide the host's own page-title heading where it sits above the mount.\n * Default **`false`** — opt in per client.\n *\n * A Web5 page opens with its own hero `h1`, so on a host that also prints the\n * CMS page title the visitor reads the page name twice and the document ends\n * up with two `h1`s. Every standard Shopify theme does this on `/pages/*` —\n * Dawn as `h1.main-page-title` before the `.rte`, Horizon as a `text-block`\n * before the block we mount into — hence a shared switch and not a per-theme\n * fork.\n *\n * Off by default because a heading above us is only reliably *ours to remove*\n * when the mount owns the page. A placement, or a host that puts Web5 beside\n * real editorial content, must keep it.\n */\n hideHostTitle?: boolean;\n /**\n * Collapse the host's padding and margin above the mount. Default\n * **`false`** — opt in per client.\n *\n * Only dead space goes: the walk stops at the first ancestor with anything\n * visible rendering above us, so a host that does put content over the mount\n * keeps its separation. Pairs with {@link hideHostTitle}, which is what takes\n * the title's own row out of that walk.\n */\n flushTop?: boolean;\n}\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,MAAM;AAE3B,MAAME,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG,SAAS;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,GAAAF,OAAA,CAAAE,WAAA,GAAG,CACzB,IAAIH,YAAY,EAAE,EAClB,IAAIE,eAAe,EAAE,EACrB,uBAAuB,EACvB,aAAa,CACL;;AAEV;AACA;AACA;AACA;AACA;AACO,MAAME,UAAU,GAAAH,OAAA,CAAAG,UAAA,GAAG,OAAOD,WAAW,CAACE,IAAI,CAAC,GAAG,CAAC,GAAG;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAqC,GAAAL,OAAA,CAAAK,kBAAA,GAAG,CACnD,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,CACpC;;AAED;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["WEB5_ROOT_ID","exports","WEB5_ROOT_CLASS","WEB5_SCOPES","WEB5_SCOPE","join","WEB5_GLOBAL_TOKENS"],"sources":["../../src/hostScope.ts"],"sourcesContent":["/**\n * The mount-scope contract.\n *\n * Several packages have to agree on where Web5 content begins in a host\n * document:\n *\n * - **web5-core** scopes its own CSS to it (`base-utilities.css` already\n * targets `#root`).\n * - **the client build** compiles every selector against it (`scopeCss` in\n * `web5-core/scripts/scope-css.ts`).\n * - **web50-server-ui** stamps `WEB5_ROOT_CLASS` on the element it mounts\n * into, and renders the debug panel into `.debug-view`.\n * - **embed-placement** mounts the *same* client bundle into\n * `[data-web5-placement]` slots on host pages.\n *\n * One home for the list, so those cannot drift.\n *\n * ## Why it is a list and not just `#root`\n *\n * A placement renders client components **outside** `#root`, on the merchant's\n * own PDP. A stylesheet scoped to `#root` alone leaves every placement — and the\n * debug panel — completely unstyled. `w5-client-circana` and\n * `w5-client-feature-com` each discovered this and each hardcoded their own\n * list; this constant is what replaces both.\n */\nexport const WEB5_ROOT_ID = 'root';\n\nexport const WEB5_ROOT_CLASS = 'w5-root';\n\n/**\n * Every place Web5 content can be mounted.\n *\n * `#root` is the id the host runtime has always created, kept so the compiled\n * stylesheet matches before any script runs. `.w5-root` is stamped at mount and\n * keeps the contract working if the host ever renames the element.\n */\nexport const WEB5_SCOPES = [\n `#${WEB5_ROOT_ID}`,\n `.${WEB5_ROOT_CLASS}`,\n '[data-web5-placement]',\n '.debug-view',\n] as const;\n\n/**\n * `:is()` takes the specificity of its most specific argument, so this is worth\n * (1,0,0) whichever branch matches — enough to outrank the (0,1,1) descendant\n * selectors host themes use for rich-text typography.\n */\nexport const WEB5_SCOPE = `:is(${WEB5_SCOPES.join(',')})`;\n\n/**\n * Custom properties the **host** sets on `:root` at runtime. Their declarations\n * must stay global: moved into the scope they would shadow the host's value for\n * our own subtree, which is precisely where it is needed.\n *\n * Kept in sync with what `web50-server-ui` and the host offset injectors write.\n */\nexport const WEB5_GLOBAL_TOKENS: readonly RegExp[] = [\n /^--web5-host-left-offset$/,\n /^--web5-host-right-offset$/,\n /^--web5-window-scroll-top-offset$/,\n];\n\n/**\n * Per-client overrides for the host adaptation web50-server-ui performs at\n * mount. Shared behaviour, client values — a client package supplies this on\n * `clientConfig.hostFit` and never forks the implementation.\n */\nexport interface HostFitConfig {\n /** Master switch. Default `true`. */\n enabled?: boolean;\n /**\n * What \"the full available width\" means on this site. Default\n * `'main, [role=\"main\"]'`; falls back to `<body>` when nothing matches.\n */\n containerSelector?: string;\n /**\n * Widen the page's content container to the host container's content box.\n * Default **`false`** — opt in per client.\n *\n * Off by default because widening changes the layout of hosts that are\n * already sized correctly; only a client whose host constrains it (a theme\n * that drops the mount into a narrow reading column) needs this.\n */\n bleed?: boolean;\n /**\n * Sticky-header height. `'auto'` (default) measures it; a number pins it.\n *\n * Prefer pinning where the host chrome is known. Circana's\n * `inject-host-nav-offset` measured side rails at runtime, hit false\n * positives in production (host layout containers and full-height nav panels\n * matched the filter), and was changed to static values — the same trap\n * applies to any measured host geometry.\n */\n topInset?: number | 'auto';\n /**\n * Height of the chrome the host pins to the *bottom* of the viewport — a\n * cookie bar, a sticky add-to-cart bar, Shopify's storefront preview bar.\n * `'auto'` (default) measures it; a number pins it.\n *\n * The mirror of {@link topInset}, and it exists for the same reason: the\n * prompt input is `position: fixed; bottom: 0`, so anything the host pins\n * down there covers it. Same trap, too — prefer pinning where the host\n * chrome is known and constant.\n */\n bottomInset?: number | 'auto';\n /**\n * Hide the host's own page-title heading where it sits above the mount.\n * Default **`false`** — opt in per client.\n *\n * A Web5 page opens with its own hero `h1`, so on a host that also prints the\n * CMS page title the visitor reads the page name twice and the document ends\n * up with two `h1`s. Every standard Shopify theme does this on `/pages/*` —\n * Dawn as `h1.main-page-title` before the `.rte`, Horizon as a `text-block`\n * before the block we mount into — hence a shared switch and not a per-theme\n * fork.\n *\n * Off by default because a heading above us is only reliably *ours to remove*\n * when the mount owns the page. A placement, or a host that puts Web5 beside\n * real editorial content, must keep it.\n */\n hideHostTitle?: boolean;\n /**\n * Collapse the host's padding and margin above the mount. Default\n * **`false`** — opt in per client.\n *\n * Only dead space goes: the walk stops at the first ancestor with anything\n * visible rendering above us, so a host that does put content over the mount\n * keeps its separation. Pairs with {@link hideHostTitle}, which is what takes\n * the title's own row out of that walk.\n */\n flushTop?: boolean;\n}\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,MAAM;AAE3B,MAAME,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG,SAAS;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,GAAAF,OAAA,CAAAE,WAAA,GAAG,CACzB,IAAIH,YAAY,EAAE,EAClB,IAAIE,eAAe,EAAE,EACrB,uBAAuB,EACvB,aAAa,CACL;;AAEV;AACA;AACA;AACA;AACA;AACO,MAAME,UAAU,GAAAH,OAAA,CAAAG,UAAA,GAAG,OAAOD,WAAW,CAACE,IAAI,CAAC,GAAG,CAAC,GAAG;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAqC,GAAAL,OAAA,CAAAK,kBAAA,GAAG,CACnD,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,CACpC;;AAED;AACA;AACA;AACA;AACA","ignoreList":[]}
package/dist/cjs/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.defaultExtractor = exports.decodeLinkText = exports.createWixAuthFetch = exports.createSdkRegistry = exports.createPageSection = exports.createFeatureToggleReader = exports.createErrorMarkdown = exports.convertToBlockElementsWithMapping = exports.convertToBlockElements = exports.computeContentBBox = exports.cn = exports.clearForwardStack = exports.buildProbeUrl = exports.buildPlacementDependencies = exports.buildImageSearchFilter = exports.backgroundFilter = exports.analyzeBackdrop = exports.addToCart = exports.Web5UrlType = exports.WEB5_USER_QUERY_EVENT = exports.WEB5_SCOPES = exports.WEB5_SCOPE = exports.WEB5_ROOT_ID = exports.WEB5_ROOT_CLASS = exports.WEB5_REDIRECT_EVENT = exports.WEB5_GLOBAL_TOKENS = exports.WEB5_ANSWER_UPDATED_EVENT = exports.UserQueryProvider = exports.UserQuery = exports.UnifiedMarkdownParser = exports.UnifiedLink = exports.TextBlockSectionDefinition = exports.TableRow = exports.TableHeader = exports.TableHead = exports.TableFooter = exports.TableCell = exports.TableCaption = exports.TableBody = exports.Table = exports.SmartIcon = exports.SkipNodesSectionDefinition = exports.ShopifyStorefrontClient = exports.SectionSkeleton = exports.SearchSectionDefinition = exports.SearchSection = exports.STREAMING_TIMEOUT_MS = exports.REFRESH_PROMPTS_WINDOW_MS = exports.REFRESH_PROMPTS_UNTIL_KEY = exports.PromptEntryEmptyState = exports.PlacementSmoothHeight = exports.PlacementResponseRenderer = exports.PlacementPayloadProvider = exports.PlacementLoader = exports.PRODUCT_BY_HANDLE_QUERY = exports.PRODUCT_BACK_SESSION_KEY = exports.OptimizedImage = exports.NextStepsSectionDefinition = exports.MarkdownText = exports.MATCH_DEBUG_QUERY_PARAM = exports.MATCH_DEBUG_KEY = exports.Loader = exports.ListItemsSectionDefinition = exports.LinkType = exports.LIST_ITEMS_ENDPOINT = exports.KpiSectionDefinition = exports.ImageSearchFilterToken = exports.HtmlCommentSectionDefinition = exports.HeroSectionDefinition = exports.HeroEntitySectionDefinition = exports.FeedbackBar = exports.FeatureToggleProvider = exports.FeatureSection9PlusDefinition = exports.FeatureCardsSectionDefinition = exports.FallbackSectionDefinition = exports.ErrorSectionDefinition = exports.EntitySectionDefinition = exports.EntityCollectionSectionDefinition = exports.EXPERIMENT_IDS = exports.ERROR_MARKDOWN = exports.Disclaimer = exports.DiagnosticsCollector = exports.DIAGNOSTIC_TYPES = exports.DEFAULT_ERROR_TEMPLATES = exports.DEFAULT_BACKEND_ENVIRONMENT = exports.CtaBannerSectionDefinition = exports.ComponentTracking = exports.ComponentRegistry = exports.ComponentDependenciesProvider = exports.ComparisonSectionDefinition = exports.ChipsProvider = exports.CalloutSectionDefinition = exports.CalloutBlock = exports.COLLECTION_BY_HANDLE_QUERY = exports.CLIENT_IDS = exports.CALLOUT_KINDS = exports.BottomContainer = exports.BACKEND_ENVIRONMENT_QUERY_PARAM = exports.BACKEND_ENVIRONMENT_KEY = exports.ARTICLE_BY_HANDLE_QUERY = void 0;
5
- exports.setMatchDebug = exports.setForwardStack = exports.setChatId = exports.setBackendEnvironment = exports.rgbToHsl = exports.resolveShopifyEntity = exports.resolveShopifyConfig = exports.resolveErrorTemplate = exports.resolveClientBundleUrl = exports.resetMatchDebugCache = exports.resetChatIdForTests = exports.registerEntityExtractor = exports.readProductBackHandoff = exports.pushToForwardStack = exports.pushPromptSubmit = exports.pushLinkClick = exports.pushExit = exports.pushEvent = exports.pushError = exports.pushEntityFiltered = exports.preprocessMarkdown = exports.popFromForwardStack = exports.parseWeb5Url = exports.parseMarkdownToComponents = exports.parseMarkdownToAst = exports.parseEntityLink = exports.parseAstToMarkdown = exports.normalizeImageUrl = exports.normalizeIconUrls = exports.nodesToParts = exports.mergeSectionsWithStableReferences = exports.mergeClientConfig = exports.matchMarkdown = exports.matchAllSections = exports.logMatchDebug = exports.loadImagePixels = exports.loadClientBundle = exports.loadBackdropAnalysis = exports.listEntityItems = exports.isWeb5Url = exports.isWeb5SearchUrl = exports.isWeb5ImageUrl = exports.isWeb5IconUrl = exports.isWeb5EntityUrl = exports.isWeb5AskUrl = exports.isWeb5ActionUrl = exports.isValidWeb5Url = exports.isValidLinkUrl = exports.isTrustedBundleHost = exports.isNavigableUrl = exports.isMatchDebugEnabled = exports.isLegacyUrl = exports.isHtmlComment = exports.isEntityLink = exports.hslToRgb = exports.hasImage = exports.hasAnalyticsConsent = exports.getSessionId = exports.getResizedImageUrl = exports.getRefreshPromptsExpiry = exports.getPartsByType = exports.getPartByRole = exports.getOrCreateSessionId = exports.getLinks = exports.getIntentFromMarkdown = exports.getImages = exports.getHeading = exports.getForwardStack = exports.getErrorTypeFromStatus = exports.getEntityExtractor = exports.getContextualImageFilename = exports.getClientBundleOverride = exports.getChatId = exports.getBackendEnvironment = exports.getAllByRole = exports.generateSectionId = exports.generateId = exports.fixMalformedLinks = exports.findKeywordsInContent = exports.findInvalidWeb5Links = exports.findImageInNode = exports.findImageInChildren = exports.fetchProductsByHandlesMap = exports.fetchProductsByHandles = exports.fetchEntityListData = exports.extractProtocol = exports.extractLinkMetadata = exports.extractIntentFromMarkdown = exports.extractContentMarkdown = exports.extractContent = exports.escapeWeb5Links = exports.ensureMinLightness = exports.enrichEntitiesFromPayload = exports.enableRefreshPrompts = exports.disableRefreshPrompts = exports.detectLinkType = exports.deriveRole = exports.deriveLightColor = exports.deriveDarkGradient = exports.deriveDarkColor = void 0;
6
- exports.writeProductBackHandoff = exports.validatePatternWithBlocks = exports.validatePatternSyntax = exports.validatePattern = exports.validateLinkUrl = exports.usesStagingBackend = exports.useWeb5Link = exports.useUserQuery = exports.useResolvedImageSources = exports.useResolveShopifyEntityData = exports.useResolveSearchSpringEntityData = exports.useResolveGenericEntityData = exports.usePlacementPayload = exports.useMarkdownUtils = exports.useFeatureToggles = exports.useFeatureToggle = exports.useEntityTransforms = exports.useDebugImageContext = exports.useConversation = exports.useComponentDependencies = exports.useChips = exports.tryParseComponent = exports.trimTrailingWhitespace = exports.transformToSolutionEntityData = exports.transformToGenericEntityData = exports.transformToBlogPostEntityData = exports.transformShopifyProduct = exports.transformShopifyEntityToItemData = exports.transformShopifyCollection = exports.transformShopifyArticle = exports.transformSSProductToEntityItemData = exports.toRgb = exports.stripMarkdown = exports.startNewChatId = exports.shouldRefreshPrompts = void 0;
4
+ exports.createFeatureToggleReader = exports.createErrorMarkdown = exports.convertToBlockElementsWithMapping = exports.convertToBlockElements = exports.computeContentBBox = exports.cn = exports.clearForwardStack = exports.buildProbeUrl = exports.buildPlacementDependencies = exports.buildImageSearchFilter = exports.backgroundFilter = exports.applyThemeOverrides = exports.analyzeBackdrop = exports.addToCart = exports.Web5UrlType = exports.WEB5_USER_QUERY_EVENT = exports.WEB5_SCOPES = exports.WEB5_SCOPE = exports.WEB5_ROOT_ID = exports.WEB5_ROOT_CLASS = exports.WEB5_REDIRECT_EVENT = exports.WEB5_GLOBAL_TOKENS = exports.WEB5_ANSWER_UPDATED_EVENT = exports.UserQueryProvider = exports.UserQuery = exports.UnifiedMarkdownParser = exports.UnifiedLink = exports.TextBlockSectionDefinition = exports.TableRow = exports.TableHeader = exports.TableHead = exports.TableFooter = exports.TableCell = exports.TableCaption = exports.TableBody = exports.Table = exports.THEME_OVERRIDE_TOKENS = exports.TEMPLATES_MANIFEST_URL = exports.TEMPLATES_CDN_BASE = exports.SmartIcon = exports.SkipNodesSectionDefinition = exports.ShopifyStorefrontClient = exports.SectionSkeleton = exports.SearchSectionDefinition = exports.SearchSection = exports.STREAMING_TIMEOUT_MS = exports.REFRESH_PROMPTS_WINDOW_MS = exports.REFRESH_PROMPTS_UNTIL_KEY = exports.PromptEntryEmptyState = exports.PlacementSmoothHeight = exports.PlacementResponseRenderer = exports.PlacementPayloadProvider = exports.PlacementLoader = exports.PRODUCT_BY_HANDLE_QUERY = exports.PRODUCT_BACK_SESSION_KEY = exports.OptimizedImage = exports.NextStepsSectionDefinition = exports.MarkdownText = exports.MATCH_DEBUG_QUERY_PARAM = exports.MATCH_DEBUG_KEY = exports.Loader = exports.ListItemsSectionDefinition = exports.LinkType = exports.LIST_ITEMS_ENDPOINT = exports.KpiSectionDefinition = exports.ImageSearchFilterToken = exports.HtmlCommentSectionDefinition = exports.HeroSectionDefinition = exports.HeroEntitySectionDefinition = exports.FeedbackBar = exports.FeatureToggleProvider = exports.FeatureSection9PlusDefinition = exports.FeatureCardsSectionDefinition = exports.FallbackSectionDefinition = exports.ErrorSectionDefinition = exports.EntitySectionDefinition = exports.EntityCollectionSectionDefinition = exports.EXPERIMENT_IDS = exports.ERROR_MARKDOWN = exports.Disclaimer = exports.DiagnosticsCollector = exports.DROP_SECTION = exports.DIAGNOSTIC_TYPES = exports.DEFAULT_ERROR_TEMPLATES = exports.DEFAULT_BACKEND_ENVIRONMENT = exports.CtaBannerSectionDefinition = exports.ComponentTracking = exports.ComponentRegistry = exports.ComponentDependenciesProvider = exports.ComparisonSectionDefinition = exports.ChipsProvider = exports.CalloutSectionDefinition = exports.CalloutBlock = exports.COLLECTION_BY_HANDLE_QUERY = exports.CLIENT_IDS = exports.CALLOUT_KINDS = exports.BottomContainer = exports.BACKEND_ENVIRONMENT_QUERY_PARAM = exports.BACKEND_ENVIRONMENT_KEY = exports.ARTICLE_BY_HANDLE_QUERY = void 0;
5
+ exports.resolveClientBundleUrl = exports.resetMatchDebugCache = exports.resetChatIdForTests = exports.registerEntityExtractor = exports.readProductBackHandoff = exports.pushToForwardStack = exports.pushPromptSubmit = exports.pushLinkClick = exports.pushExit = exports.pushEvent = exports.pushError = exports.pushEntityFiltered = exports.preprocessMarkdown = exports.popFromForwardStack = exports.parseWeb5Url = exports.parseMarkdownToComponents = exports.parseMarkdownToAst = exports.parseEntityLink = exports.parseAstToMarkdown = exports.normalizeImageUrl = exports.normalizeIconUrls = exports.nodesToParts = exports.mergeSectionsWithStableReferences = exports.mergeClientConfig = exports.matchMarkdown = exports.matchAllSections = exports.logMatchDebug = exports.loadImagePixels = exports.loadClientBundle = exports.loadBackdropAnalysis = exports.listEntityItems = exports.isWeb5Url = exports.isWeb5SearchUrl = exports.isWeb5ImageUrl = exports.isWeb5IconUrl = exports.isWeb5EntityUrl = exports.isWeb5AskUrl = exports.isWeb5ActionUrl = exports.isValidWeb5Url = exports.isValidTemplateId = exports.isValidLinkUrl = exports.isTrustedBundleHost = exports.isTemplatePickerRequested = exports.isNavigableUrl = exports.isMatchDebugEnabled = exports.isLegacyUrl = exports.isHtmlComment = exports.isEntityLink = exports.hslToRgb = exports.hasImage = exports.hasAnalyticsConsent = exports.getTemplateOverride = exports.getSessionId = exports.getResizedImageUrl = exports.getRefreshPromptsExpiry = exports.getPartsByType = exports.getPartByRole = exports.getOrCreateSessionId = exports.getLinks = exports.getIntentFromMarkdown = exports.getImages = exports.getHeading = exports.getForwardStack = exports.getErrorTypeFromStatus = exports.getEntityExtractor = exports.getContextualImageFilename = exports.getClientBundleOverride = exports.getChatId = exports.getBackendEnvironment = exports.getAllByRole = exports.generateSectionId = exports.generateId = exports.fixMalformedLinks = exports.findKeywordsInContent = exports.findInvalidWeb5Links = exports.findImageInNode = exports.findImageInChildren = exports.fetchProductsByHandlesMap = exports.fetchProductsByHandles = exports.fetchEntityListData = exports.extractProtocol = exports.extractLinkMetadata = exports.extractIntentFromMarkdown = exports.extractContentMarkdown = exports.extractContent = exports.escapeWeb5Links = exports.ensureMinLightness = exports.enrichEntitiesFromPayload = exports.enableRefreshPrompts = exports.disableRefreshPrompts = exports.detectLinkType = exports.deriveRole = exports.deriveLightColor = exports.deriveDarkGradient = exports.deriveDarkColor = exports.defaultExtractor = exports.decodeLinkText = exports.createWixAuthFetch = exports.createSdkRegistry = exports.createPageSection = void 0;
6
+ exports.writeProductBackHandoff = exports.validatePatternWithBlocks = exports.validatePatternSyntax = exports.validatePattern = exports.validateLinkUrl = exports.usesStagingBackend = exports.useWeb5Link = exports.useUserQuery = exports.useResolvedImageSources = exports.useResolveShopifyEntityData = exports.useResolveSearchSpringEntityData = exports.useResolveGenericEntityData = exports.usePlacementPayload = exports.useMarkdownUtils = exports.useFeatureToggles = exports.useFeatureToggle = exports.useEntityTransforms = exports.useDebugImageContext = exports.useConversation = exports.useComponentDependencies = exports.useChips = exports.tryParseComponent = exports.trimTrailingWhitespace = exports.transformToSolutionEntityData = exports.transformToGenericEntityData = exports.transformToBlogPostEntityData = exports.transformShopifyProduct = exports.transformShopifyEntityToItemData = exports.transformShopifyCollection = exports.transformShopifyArticle = exports.transformSSProductToEntityItemData = exports.toRgb = exports.stripMarkdown = exports.startNewChatId = exports.shouldRefreshPrompts = exports.setMatchDebug = exports.setForwardStack = exports.setChatId = exports.setBackendEnvironment = exports.rgbToHsl = exports.resolveShopifyEntity = exports.resolveShopifyConfig = exports.resolveErrorTemplate = void 0;
7
7
  var _clients = require("./clients");
8
8
  exports.CLIENT_IDS = _clients.CLIENT_IDS;
9
9
  exports.EXPERIMENT_IDS = _clients.EXPERIMENT_IDS;
@@ -22,6 +22,8 @@ exports.getLinks = _parts.getLinks;
22
22
  exports.extractContent = _parts.extractContent;
23
23
  exports.extractContentMarkdown = _parts.extractContentMarkdown;
24
24
  exports.deriveRole = _parts.deriveRole;
25
+ var _sectionDefinition = require("./component/section-definition");
26
+ exports.DROP_SECTION = _sectionDefinition.DROP_SECTION;
25
27
  var _diagnosticTypes = require("./component/diagnosticTypes");
26
28
  exports.DIAGNOSTIC_TYPES = _diagnosticTypes.DIAGNOSTIC_TYPES;
27
29
  var _imageSearchFilterTypes = require("./image/imageSearchFilterTypes");
@@ -241,9 +243,17 @@ var _clientBundleOverride = require("./client/clientBundleOverride");
241
243
  exports.getClientBundleOverride = _clientBundleOverride.getClientBundleOverride;
242
244
  exports.isTrustedBundleHost = _clientBundleOverride.isTrustedBundleHost;
243
245
  var _clientBundleUrl = require("./client/clientBundleUrl");
246
+ exports.TEMPLATES_CDN_BASE = _clientBundleUrl.TEMPLATES_CDN_BASE;
247
+ exports.TEMPLATES_MANIFEST_URL = _clientBundleUrl.TEMPLATES_MANIFEST_URL;
248
+ exports.getTemplateOverride = _clientBundleUrl.getTemplateOverride;
249
+ exports.isTemplatePickerRequested = _clientBundleUrl.isTemplatePickerRequested;
250
+ exports.isValidTemplateId = _clientBundleUrl.isValidTemplateId;
244
251
  exports.resolveClientBundleUrl = _clientBundleUrl.resolveClientBundleUrl;
245
252
  var _mergeClientConfig = require("./client/mergeClientConfig");
246
253
  exports.mergeClientConfig = _mergeClientConfig.mergeClientConfig;
254
+ var _applyThemeOverrides = require("./client/applyThemeOverrides");
255
+ exports.applyThemeOverrides = _applyThemeOverrides.applyThemeOverrides;
256
+ exports.THEME_OVERRIDE_TOKENS = _applyThemeOverrides.THEME_OVERRIDE_TOKENS;
247
257
  var _PlacementResponseRenderer = require("./components/placement/PlacementResponseRenderer");
248
258
  exports.PlacementResponseRenderer = _PlacementResponseRenderer.PlacementResponseRenderer;
249
259
  exports.PlacementSmoothHeight = _PlacementResponseRenderer.PlacementSmoothHeight;
@@ -1 +1 @@
1
- {"version":3,"names":["_clients","require","exports","CLIENT_IDS","EXPERIMENT_IDS","_FeatureToggleContext","createFeatureToggleReader","FeatureToggleProvider","useFeatureToggles","useFeatureToggle","_parts","getPartsByType","getPartByRole","getAllByRole","getHeading","getImages","getLinks","extractContent","extractContentMarkdown","deriveRole","_diagnosticTypes","DIAGNOSTIC_TYPES","_imageSearchFilterTypes","buildImageSearchFilter","_imageSearchFilters","ImageSearchFilterToken","backgroundFilter","_componentDefinitions","HeroSectionDefinition","HeroEntitySectionDefinition","KpiSectionDefinition","FeatureCardsSectionDefinition","EntitySectionDefinition","EntityCollectionSectionDefinition","ComparisonSectionDefinition","TextBlockSectionDefinition","CtaBannerSectionDefinition","CalloutSectionDefinition","NextStepsSectionDefinition","FeatureSection9PlusDefinition","ListItemsSectionDefinition","SkipNodesSectionDefinition","HtmlCommentSectionDefinition","SearchSectionDefinition","ErrorSectionDefinition","FallbackSectionDefinition","createSdkRegistry","_registry","ComponentRegistry","_patternValidator","validatePattern","validatePatternSyntax","validatePatternWithBlocks","_markdownBlocks","convertToBlockElements","convertToBlockElementsWithMapping","_linkTypes","Web5UrlType","isWeb5AskUrl","isWeb5EntityUrl","isWeb5ImageUrl","isWeb5IconUrl","isWeb5ActionUrl","isWeb5SearchUrl","isWeb5Url","isNavigableUrl","isValidLinkUrl","isLegacyUrl","_entityLinkParser","parseWeb5Url","isValidWeb5Url","validateLinkUrl","isEntityLink","parseEntityLink","extractProtocol","extractLinkMetadata","_web5LinkValidator","findInvalidWeb5Links","_nodeMatchers","hasImage","isHtmlComment","_match","matchMarkdown","matchAllSections","nodesToParts","_ComponentDependenciesContext","ComponentDependenciesProvider","useComponentDependencies","_UserQueryContext","UserQueryProvider","useUserQuery","_ChipsContext","ChipsProvider","useChips","_entity","defaultExtractor","enrichEntitiesFromPayload","fetchEntityListData","listEntityItems","LIST_ITEMS_ENDPOINT","getEntityExtractor","registerEntityExtractor","transformToSolutionEntityData","transformToBlogPostEntityData","transformToGenericEntityData","_callout","CALLOUT_KINDS","_useWeb5Link","useWeb5Link","_useConversation","useConversation","_useDebugImageContext","useDebugImageContext","_useResolvedImageSources","useResolvedImageSources","_useResolveGenericEntityData","useResolveGenericEntityData","_useEntityTransforms","useEntityTransforms","_useMarkdownUtils","useMarkdownUtils","_useResolveShopifyEntityData","useResolveShopifyEntityData","_useResolveSearchSpringEntityData","useResolveSearchSpringEntityData","_searchspring","fetchProductsByHandles","fetchProductsByHandlesMap","transformSSProductToEntityItemData","_cart","addToCart","_shopify","ShopifyStorefrontClient","resolveShopifyConfig","resolveShopifyEntity","transformShopifyProduct","transformShopifyCollection","transformShopifyArticle","transformShopifyEntityToItemData","PRODUCT_BY_HANDLE_QUERY","COLLECTION_BY_HANDLE_QUERY","ARTICLE_BY_HANDLE_QUERY","_utils","cn","_imageUtils","normalizeImageUrl","getResizedImageUrl","_imageBackdrop","analyzeBackdrop","computeContentBBox","buildProbeUrl","loadImagePixels","loadBackdropAnalysis","_parseUtils","stripMarkdown","_colorUtils","rgbToHsl","hslToRgb","ensureMinLightness","toRgb","deriveDarkColor","deriveDarkGradient","deriveLightColor","_analyticsEvents","pushEvent","pushPromptSubmit","pushLinkClick","pushError","pushExit","pushEntityFiltered","hasAnalyticsConsent","_errors","ERROR_MARKDOWN","getErrorTypeFromStatus","createErrorMarkdown","STREAMING_TIMEOUT_MS","DEFAULT_ERROR_TEMPLATES","resolveErrorTemplate","_navigationStack","getForwardStack","setForwardStack","clearForwardStack","pushToForwardStack","popFromForwardStack","_UserQuery","UserQuery","_productBackHandoff","PRODUCT_BACK_SESSION_KEY","writeProductBackHandoff","readProductBackHandoff","_PromptEntryEmptyState","PromptEntryEmptyState","_SearchSection","SearchSection","_FeedbackBar","FeedbackBar","_Disclaimer","Disclaimer","_BottomContainer","BottomContainer","_MarkdownText","MarkdownText","_CalloutBlock","CalloutBlock","_OptimizedImage","OptimizedImage","_SectionSkeleton","SectionSkeleton","_SmartIcon","SmartIcon","_Loader","Loader","_PlacementLoader","PlacementLoader","_UnifiedLink","UnifiedLink","detectLinkType","LinkType","_table","Table","TableHeader","TableBody","TableFooter","TableHead","TableRow","TableCell","TableCaption","_userQueryEvent","WEB5_USER_QUERY_EVENT","_answerUpdatedEvent","WEB5_ANSWER_UPDATED_EVENT","_redirectEvent","WEB5_REDIRECT_EVENT","_loadClientBundle","loadClientBundle","_clientBundleOverride","getClientBundleOverride","isTrustedBundleHost","_clientBundleUrl","resolveClientBundleUrl","_mergeClientConfig","mergeClientConfig","_PlacementResponseRenderer","PlacementResponseRenderer","PlacementSmoothHeight","_buildPlacementDependencies","buildPlacementDependencies","_PlacementPayloadContext","PlacementPayloadProvider","usePlacementPayload","_unifiedMarkdownParser","UnifiedMarkdownParser","parseMarkdownToAst","parseAstToMarkdown","_markdownPreprocessor","escapeWeb5Links","fixMalformedLinks","trimTrailingWhitespace","normalizeIconUrls","decodeLinkText","preprocessMarkdown","_componentTracking","ComponentTracking","_contentKeywordMatcher","findKeywordsInContent","getContextualImageFilename","_intentExtractor","extractIntentFromMarkdown","getIntentFromMarkdown","_propsExtractor","createPageSection","generateSectionId","generateId","findImageInNode","findImageInChildren","_diagnosticsCollector","DiagnosticsCollector","_refreshPrompts","REFRESH_PROMPTS_UNTIL_KEY","REFRESH_PROMPTS_WINDOW_MS","getRefreshPromptsExpiry","shouldRefreshPrompts","enableRefreshPrompts","disableRefreshPrompts","_backendEnvironment","BACKEND_ENVIRONMENT_KEY","BACKEND_ENVIRONMENT_QUERY_PARAM","DEFAULT_BACKEND_ENVIRONMENT","getBackendEnvironment","setBackendEnvironment","usesStagingBackend","_matchDebug","MATCH_DEBUG_KEY","MATCH_DEBUG_QUERY_PARAM","isMatchDebugEnabled","setMatchDebug","resetMatchDebugCache","logMatchDebug","_wixAuthFetch","createWixAuthFetch","_sessionManager","getOrCreateSessionId","getSessionId","getChatId","startNewChatId","setChatId","resetChatIdForTests","_componentParser","parseMarkdownToComponents","tryParseComponent","mergeSectionsWithStableReferences","_hostScope","WEB5_ROOT_ID","WEB5_ROOT_CLASS","WEB5_SCOPES","WEB5_SCOPE","WEB5_GLOBAL_TOKENS"],"sources":["../../src/index.ts"],"sourcesContent":["// Client IDs and experiment IDs\nexport { CLIENT_IDS, EXPERIMENT_IDS } from './clients';\n\nexport {\n type EmbedFeatureToggleResult,\n type FeatureToggleReader,\n createFeatureToggleReader,\n FeatureToggleProvider,\n useFeatureToggles,\n useFeatureToggle,\n} from './featureToggles/FeatureToggleContext';\n\n// Dev-only chrome injection contract for client packages\nexport type { DevEnvironment } from './client/devEnvironment';\n\n// Part types and helpers\nexport {\n type PartType,\n type Part,\n type HeadingPart,\n type ImagePart,\n type LinkPart,\n type ListPart,\n type ListItemPart,\n type KpiItemPart,\n type CardPart,\n type IconPart,\n type CalloutPart,\n type EntityPart,\n getPartsByType,\n getPartByRole,\n getAllByRole,\n getHeading,\n getImages,\n getLinks,\n extractContent,\n extractContentMarkdown,\n deriveRole,\n} from './parts/parts';\n\n// Component types\nexport type {\n BaseCompProps,\n SlotCompProps,\n SectionCompProps,\n SectionCompPropsWithSlot,\n TextCompProps,\n ButtonCompProps,\n ImageCompProps,\n BadgeCompProps,\n HeroButton,\n KpiItemCompProps,\n FeatureItemCompProps,\n FeatureCardCompProps,\n EntityItemData,\n EntityItem,\n GenericEntityData,\n GenericEntityCompProps,\n ComparisonRow,\n ComparisonColumn,\n AiNarrativeCompProps,\n HeroCompProps,\n HeroEntityCompProps,\n KpiCompProps,\n FeatureCardsCompProps,\n EntityCompProps,\n ComparisonCompProps,\n TextBlockCompProps,\n Component,\n BaseComponent,\n SlotComponent,\n SectionComponent,\n TextComponent,\n ButtonComponent,\n ImageComponent,\n BadgeComponent,\n KpiItemComponent,\n FeatureItemComponent,\n FeatureCardComponent,\n GenericEntityComponent,\n AiNarrativeComponent,\n ComparisonSectionComponent,\n TextBlockSectionComponent,\n HeroSectionComponent,\n HeroEntitySectionComponent,\n KpiSectionComponent,\n FeatureCardsSectionComponent,\n EntitySectionComponent,\n PropsOf,\n SectionFixture,\n CtaBannerCompProps,\n CtaBannerSectionComponent,\n CalloutCompProps,\n CalloutSectionComponent,\n NextStepsCompProps,\n NextStepsSectionComponent,\n FeatureSection9PlusCompProps,\n FeatureSection9PlusSectionComponent,\n ListItemsSectionCompProps,\n ListItemsSectionComponent,\n ErrorCompProps,\n ErrorSectionComponent,\n NullCompProps,\n NullSectionComponent,\n SolutionEntityCompProps,\n SolutionEntitySectionComponent,\n SolutionEntityData,\n BlogEntityCompProps,\n BlogEntitySectionComponent,\n BlogEntityData,\n GeneralTextCompProps,\n GeneralTextSectionComponent,\n PersonalizedNarrativeCompProps,\n PersonalizedNarrativeSectionComponent,\n} from './component/types';\n\n// Section definition\nexport type {\n SectionDefinition,\n ParseContext,\n ContextualImageResult,\n} from './component/section-definition';\n\n// Diagnostic types\nexport { DIAGNOSTIC_TYPES } from './component/diagnosticTypes';\nexport type { DiagnosticType } from './component/diagnosticTypes';\n\n// Image search filters\nexport {\n buildImageSearchFilter,\n type ImageSearchFilterString,\n} from './image/imageSearchFilterTypes';\nexport {\n ImageSearchFilterToken,\n backgroundFilter,\n} from './image/imageSearchFilters';\nexport type {\n ContextualImageAsset,\n ImageSourceInput,\n ResolvedImageSource,\n ResolvedImageSourceKind,\n} from './image/contextualImageTypes';\n\n// Section definition classes + createSdkRegistry\nexport {\n HeroSectionDefinition,\n HeroEntitySectionDefinition,\n KpiSectionDefinition,\n FeatureCardsSectionDefinition,\n EntitySectionDefinition,\n EntityCollectionSectionDefinition,\n ComparisonSectionDefinition,\n TextBlockSectionDefinition,\n CtaBannerSectionDefinition,\n CalloutSectionDefinition,\n NextStepsSectionDefinition,\n FeatureSection9PlusDefinition,\n ListItemsSectionDefinition,\n SkipNodesSectionDefinition,\n HtmlCommentSectionDefinition,\n SearchSectionDefinition,\n ErrorSectionDefinition,\n FallbackSectionDefinition,\n createSdkRegistry,\n} from './component/componentDefinitions';\n\n// Registry\nexport { ComponentRegistry } from './registry';\nexport type {\n SlotOptions,\n SectionOptions,\n SectionRegistration,\n SlotNode,\n SlotIntentNode,\n SectionIntentNode,\n SectionNode,\n SlotVariant,\n SectionVariant,\n RegistryCatalog,\n ActionResult,\n ActionHandler,\n} from './registry';\n\n// Pattern validator\nexport {\n validatePattern,\n validatePatternSyntax,\n validatePatternWithBlocks,\n type PatternValidationResult,\n type BlockElement,\n type EnrichedBlockElement,\n type LinkMetadata,\n type LinkAttribute,\n} from './patternValidator';\n\n// Markdown blocks\nexport {\n convertToBlockElements,\n convertToBlockElementsWithMapping,\n type BlockElementsWithMapping,\n} from './markdownBlocks';\n\n// Link types, enum & guards\nexport {\n Web5UrlType,\n type Web5AskUrl,\n type Web5EntityUrl,\n type Web5ImageUrl,\n type Web5IconUrl,\n type Web5ActionUrl,\n type Web5SearchUrl,\n type Web5Url,\n type HttpsUrl,\n type HttpUrl,\n type MailtoUrl,\n type RelativeUrl,\n type NavigableUrl,\n type ValidLinkUrl,\n type AnyKnownUrl,\n type LegacyUrl,\n isWeb5AskUrl,\n isWeb5EntityUrl,\n isWeb5ImageUrl,\n isWeb5IconUrl,\n isWeb5ActionUrl,\n isWeb5SearchUrl,\n isWeb5Url,\n isNavigableUrl,\n isValidLinkUrl,\n isLegacyUrl,\n} from './types/link-types';\n\n// Entity/URL parsing\nexport {\n parseWeb5Url,\n isValidWeb5Url,\n validateLinkUrl,\n type Web5UrlParsed,\n type Web5AskParsed,\n type Web5EntityParsed,\n type Web5ImageParsed,\n type Web5IconParsed,\n type Web5ActionParsed,\n type Web5SearchParsed,\n isEntityLink,\n parseEntityLink,\n extractProtocol,\n extractLinkMetadata,\n} from './utils/entityLinkParser';\n\n// Web5 link validation\nexport {\n findInvalidWeb5Links,\n type InvalidWeb5Link,\n} from './utils/web5LinkValidator';\n\n// Node matchers\nexport { hasImage, isHtmlComment } from './utils/nodeMatchers';\n\n// Match API\nexport {\n matchMarkdown,\n type MarkdownMatchResult,\n matchAllSections,\n type MatchAllSectionsResult,\n nodesToParts,\n} from './match';\n\n// ---------------------------------------------------------------------------\n// DI Infrastructure (moved from @wix/w5-client-circana)\n// ---------------------------------------------------------------------------\n\n// DI context and provider\nexport {\n ComponentDependenciesProvider,\n useComponentDependencies,\n type ComponentDependenciesProviderProps,\n} from './context/ComponentDependenciesContext';\n\n// Raw user query for the current response page\nexport {\n UserQueryProvider,\n useUserQuery,\n type UserQueryProviderProps,\n} from './context/UserQueryContext';\n\n// Chips context (suggestion chips shared between SearchSection and error states)\nexport {\n ChipsProvider,\n useChips,\n type SuggestionChip,\n} from './context/ChipsContext';\n\n// DI types\nexport type {\n ComponentDependencies,\n Web5LinkApi,\n ConversationApi,\n SendMessageTrackingOptions,\n SendMessageOptions,\n ComparisonSubmitPayload,\n ComparisonSelectedProduct,\n ProductComparisonSelectionState,\n ProductComparisonApi,\n EntityTransforms,\n MarkdownUtils,\n ResolveGenericEntityDataOptions,\n} from './types/dependencies';\nexport type {\n ApiPayloadItem,\n EntityTypeConfig,\n EntityConfig,\n EntityExtractionContext,\n} from './types/entity';\nexport {\n defaultExtractor,\n enrichEntitiesFromPayload,\n fetchEntityListData,\n listEntityItems,\n LIST_ITEMS_ENDPOINT,\n getEntityExtractor,\n registerEntityExtractor,\n transformToSolutionEntityData,\n transformToBlogPostEntityData,\n transformToGenericEntityData,\n} from './entity';\nexport type {\n EntityExtractor,\n FetchEntityListDataOptions,\n ListEntityItemsOptions,\n} from './entity';\nexport { CALLOUT_KINDS, type CalloutKind, type Callout } from './types/callout';\n\n// Wrapper hooks\nexport { useWeb5Link } from './hooks/useWeb5Link';\nexport { useConversation } from './hooks/useConversation';\nexport { useDebugImageContext } from './hooks/useDebugImageContext';\nexport { useResolvedImageSources } from './hooks/useResolvedImageSources';\nexport { useResolveGenericEntityData } from './hooks/useResolveGenericEntityData';\nexport { useEntityTransforms } from './hooks/useEntityTransforms';\nexport { useMarkdownUtils } from './hooks/useMarkdownUtils';\nexport { useResolveShopifyEntityData } from './hooks/useResolveShopifyEntityData';\nexport { useResolveSearchSpringEntityData } from './hooks/useResolveSearchSpringEntityData';\n\n// SearchSpring\nexport {\n fetchProductsByHandles,\n fetchProductsByHandlesMap,\n transformSSProductToEntityItemData,\n} from './services/searchspring';\nexport type {\n SearchSpringConfig,\n SSProduct,\n SSSearchResponse,\n SSSizeData,\n} from './services/searchspring';\n\n// Shopify Storefront API\n// Cart actions\nexport { addToCart } from './services/cart';\n\nexport {\n ShopifyStorefrontClient,\n resolveShopifyConfig,\n resolveShopifyEntity,\n transformShopifyProduct,\n transformShopifyCollection,\n transformShopifyArticle,\n transformShopifyEntityToItemData,\n PRODUCT_BY_HANDLE_QUERY,\n COLLECTION_BY_HANDLE_QUERY,\n ARTICLE_BY_HANDLE_QUERY,\n} from './services/shopify';\nexport type {\n ShopifyStorefrontConfig,\n ShopifyProduct,\n ShopifyCollection,\n ShopifyArticle,\n ShopifyImage,\n ShopifyMoneyV2,\n} from './services/shopify';\n\n// Utilities\nexport { cn } from './lib/utils';\nexport { normalizeImageUrl, getResizedImageUrl } from './utils/image-utils';\nexport {\n analyzeBackdrop,\n computeContentBBox,\n buildProbeUrl,\n loadImagePixels,\n loadBackdropAnalysis,\n type BackdropAnalysis,\n type ContentBBox,\n type ImagePixels,\n} from './utils/imageBackdrop';\nexport { stripMarkdown } from './component/componentDefinitions/parse-utils';\n\n// Color utilities\nexport {\n type RGB,\n rgbToHsl,\n hslToRgb,\n ensureMinLightness,\n toRgb,\n deriveDarkColor,\n deriveDarkGradient,\n deriveLightColor,\n} from './color/colorUtils';\n\n// Analytics\nexport {\n pushEvent,\n pushPromptSubmit,\n pushLinkClick,\n pushError,\n pushExit,\n pushEntityFiltered,\n hasAnalyticsConsent,\n type EntityFilteredReason,\n} from './utils/analyticsEvents';\n\n// Error handling types and utilities\nexport {\n type ConversationErrorType,\n ERROR_MARKDOWN,\n getErrorTypeFromStatus,\n createErrorMarkdown,\n STREAMING_TIMEOUT_MS,\n type ErrorActionType,\n type ErrorIconType,\n type ErrorTemplateButton,\n type ErrorTemplate,\n type ErrorTemplateOverrides,\n DEFAULT_ERROR_TEMPLATES,\n resolveErrorTemplate,\n} from './errors';\n\n// Navigation utilities\nexport {\n getForwardStack,\n setForwardStack,\n clearForwardStack,\n pushToForwardStack,\n popFromForwardStack,\n} from './utils/navigationStack';\n\n// UI components\nexport {\n UserQuery,\n type UserQueryProps,\n type ProductBackContext,\n} from './components/ui/UserQuery';\nexport {\n PRODUCT_BACK_SESSION_KEY,\n writeProductBackHandoff,\n readProductBackHandoff,\n type ProductBackHandoff,\n} from './utils/productBackHandoff';\nexport {\n PromptEntryEmptyState,\n type PromptEntryEmptyStateProps,\n} from './components/ui/PromptEntryEmptyState';\nexport {\n SearchSection,\n type SearchSectionProps,\n type SearchSectionHandle,\n type ScrollChip,\n} from './components/ui/SearchSection';\nexport {\n FeedbackBar,\n type FeedbackBarProps,\n type FeedbackCategoryOption,\n type FeedbackSentiment,\n type FeedbackSubmitInput,\n} from './components/ui/FeedbackBar';\nexport {\n Disclaimer,\n type DisclaimerProps,\n} from './components/ui/Disclaimer';\nexport {\n BottomContainer,\n type BottomContainerProps,\n} from './components/ui/BottomContainer';\nexport { MarkdownText } from './components/ui/MarkdownText';\nexport {\n CalloutBlock,\n type CalloutBlockProps,\n} from './components/ui/CalloutBlock';\nexport {\n OptimizedImage,\n type OptimizedImageProps,\n} from './components/ui/OptimizedImage';\nexport {\n SectionSkeleton,\n type SectionSkeletonProps,\n} from './components/ui/SectionSkeleton';\nexport { SmartIcon, type SmartIconProps } from './components/ui/SmartIcon';\nexport { Loader, type LoaderProps } from './components/ui/Loader';\nexport {\n PlacementLoader,\n type PlacementLoaderProps,\n} from './components/ui/PlacementLoader';\nexport {\n UnifiedLink,\n detectLinkType,\n type UnifiedLinkProps,\n LinkType,\n type LinkVariant,\n} from './components/ui/UnifiedLink';\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n} from './components/ui/table';\n\n// Placement (DL #088, DL #102 behavior declarations)\nexport type {\n PlacementBehaviorConfig,\n PlacementConfig,\n PlacementPrompts,\n} from './types/placement';\n\n// Cross-bundle user-query broadcast event (DL #097 D2)\nexport {\n WEB5_USER_QUERY_EVENT,\n type Web5UserQueryEventDetail,\n type Web5UserQueryEvent,\n} from './types/userQueryEvent';\n\n// Cross-bundle answer-updated broadcast event (B2B-4121)\nexport {\n WEB5_ANSWER_UPDATED_EVENT,\n type Web5AnswerUpdatedEventDetail,\n type Web5AnswerUpdatedEvent,\n} from './types/answerUpdatedEvent';\n\n// Cross-bundle redirect broadcast event (DL #098 D3)\nexport {\n WEB5_REDIRECT_EVENT,\n type Web5RedirectEventDetail,\n type Web5RedirectEvent,\n type Web5RedirectReason,\n} from './types/redirectEvent';\n// `placementFilter` was removed — hero/next-steps exclusion is the prompt's job\n// and placement-specific designs belong as `{ placement: true }` registry\n// variants (resolved automatically via `resolveSection(type, { placement: true })`).\n\n// Client bundle loader (DL #088 D3.3)\nexport { loadClientBundle } from './client/loadClientBundle';\n\n// `?clientBundleUrl=` dev override — shared by `web50-server-ui` and\n// `embed-placement` so the trusted-host gate can't drift between them.\nexport {\n getClientBundleOverride,\n isTrustedBundleHost,\n} from './client/clientBundleOverride';\n\n// Client-UMD URL resolution (DL #094 per-msid, DL #129 per-template) and the\n// universal bundle←backend config merge (DL #129 Q3/Q7) — shared by\n// `web50-server-ui` and `embed-placement`, the two client-bundle load sites.\nexport { resolveClientBundleUrl } from './client/clientBundleUrl';\nexport { mergeClientConfig, type DeepPartial } from './client/mergeClientConfig';\n\n// Placement renderer + DI helper (DL #088 D3.2, D3.4)\nexport {\n PlacementResponseRenderer,\n PlacementSmoothHeight,\n type PlacementResponseRendererProps,\n type PlacementSection,\n type PlacementVariant,\n} from './components/placement/PlacementResponseRenderer';\nexport {\n buildPlacementDependencies,\n type BuildPlacementDependenciesOptions,\n} from './components/placement/buildPlacementDependencies';\nexport {\n PlacementPayloadProvider,\n usePlacementPayload,\n type PlacementPayloadContextValue,\n} from './components/placement/PlacementPayloadContext';\n\n// Markdown parsing utilities — lifted from web50-server-ui (DL #088 B9.1)\nexport {\n UnifiedMarkdownParser,\n parseMarkdownToAst,\n parseAstToMarkdown,\n} from './utils/unifiedMarkdownParser';\nexport {\n escapeWeb5Links,\n fixMalformedLinks,\n trimTrailingWhitespace,\n normalizeIconUrls,\n decodeLinkText,\n preprocessMarkdown,\n type PreprocessorDiagnostic,\n type PreprocessResult,\n} from './utils/markdownPreprocessor';\nexport {\n ComponentTracking,\n type ComponentNodeRange,\n} from './utils/componentTracking';\nexport {\n findKeywordsInContent,\n getContextualImageFilename,\n} from './utils/contentKeywordMatcher';\nexport {\n extractIntentFromMarkdown,\n getIntentFromMarkdown,\n type IntentInfo,\n type IntentExtractionOptions,\n type ResponseState,\n} from './utils/intentExtractor';\nexport type { PageSection } from './types/page-section';\nexport {\n createPageSection,\n generateSectionId,\n generateId,\n findImageInNode,\n findImageInChildren,\n type Product,\n type ComparisonProduct,\n type ProductComparisonSectionProps,\n} from './utils/propsExtractor';\nexport {\n DiagnosticsCollector,\n type DiagnosticEntry,\n} from './utils/diagnosticsCollector';\nexport {\n REFRESH_PROMPTS_UNTIL_KEY,\n REFRESH_PROMPTS_WINDOW_MS,\n getRefreshPromptsExpiry,\n shouldRefreshPrompts,\n enableRefreshPrompts,\n disableRefreshPrompts,\n} from './utils/refreshPrompts';\nexport {\n type BackendEnvironment,\n BACKEND_ENVIRONMENT_KEY,\n BACKEND_ENVIRONMENT_QUERY_PARAM,\n DEFAULT_BACKEND_ENVIRONMENT,\n getBackendEnvironment,\n setBackendEnvironment,\n usesStagingBackend,\n} from './utils/backendEnvironment';\nexport {\n MATCH_DEBUG_KEY,\n MATCH_DEBUG_QUERY_PARAM,\n isMatchDebugEnabled,\n setMatchDebug,\n resetMatchDebugCache,\n logMatchDebug,\n} from './utils/matchDebug';\nexport { createWixAuthFetch } from './client/wixAuthFetch';\nexport {\n getOrCreateSessionId,\n getSessionId,\n getChatId,\n startNewChatId,\n setChatId,\n resetChatIdForTests,\n} from './utils/sessionManager';\n\n// Component parser orchestrator — lifted from web50-server-ui (DL #088 B9.5)\nexport {\n parseMarkdownToComponents,\n tryParseComponent,\n mergeSectionsWithStableReferences,\n type ParseMarkdownOptions,\n type ParseMarkdownResult,\n type ComponentMatch,\n type ParserContext,\n} from './component/componentParser';\nexport type {\n ParserClientConfig,\n EnrichEntityProps,\n} from './component/parser-types';\n\n// Host-mount scope contract — shared by web50-server-ui (which stamps the\n// class and mounts), embed-placement (which mounts the same bundle elsewhere),\n// and the client CDN build (which compiles every selector against it).\nexport {\n WEB5_ROOT_ID,\n WEB5_ROOT_CLASS,\n WEB5_SCOPES,\n WEB5_SCOPE,\n WEB5_GLOBAL_TOKENS,\n type HostFitConfig,\n} from './hostScope';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clients","require","exports","CLIENT_IDS","EXPERIMENT_IDS","_FeatureToggleContext","createFeatureToggleReader","FeatureToggleProvider","useFeatureToggles","useFeatureToggle","_parts","getPartsByType","getPartByRole","getAllByRole","getHeading","getImages","getLinks","extractContent","extractContentMarkdown","deriveRole","_sectionDefinition","DROP_SECTION","_diagnosticTypes","DIAGNOSTIC_TYPES","_imageSearchFilterTypes","buildImageSearchFilter","_imageSearchFilters","ImageSearchFilterToken","backgroundFilter","_componentDefinitions","HeroSectionDefinition","HeroEntitySectionDefinition","KpiSectionDefinition","FeatureCardsSectionDefinition","EntitySectionDefinition","EntityCollectionSectionDefinition","ComparisonSectionDefinition","TextBlockSectionDefinition","CtaBannerSectionDefinition","CalloutSectionDefinition","NextStepsSectionDefinition","FeatureSection9PlusDefinition","ListItemsSectionDefinition","SkipNodesSectionDefinition","HtmlCommentSectionDefinition","SearchSectionDefinition","ErrorSectionDefinition","FallbackSectionDefinition","createSdkRegistry","_registry","ComponentRegistry","_patternValidator","validatePattern","validatePatternSyntax","validatePatternWithBlocks","_markdownBlocks","convertToBlockElements","convertToBlockElementsWithMapping","_linkTypes","Web5UrlType","isWeb5AskUrl","isWeb5EntityUrl","isWeb5ImageUrl","isWeb5IconUrl","isWeb5ActionUrl","isWeb5SearchUrl","isWeb5Url","isNavigableUrl","isValidLinkUrl","isLegacyUrl","_entityLinkParser","parseWeb5Url","isValidWeb5Url","validateLinkUrl","isEntityLink","parseEntityLink","extractProtocol","extractLinkMetadata","_web5LinkValidator","findInvalidWeb5Links","_nodeMatchers","hasImage","isHtmlComment","_match","matchMarkdown","matchAllSections","nodesToParts","_ComponentDependenciesContext","ComponentDependenciesProvider","useComponentDependencies","_UserQueryContext","UserQueryProvider","useUserQuery","_ChipsContext","ChipsProvider","useChips","_entity","defaultExtractor","enrichEntitiesFromPayload","fetchEntityListData","listEntityItems","LIST_ITEMS_ENDPOINT","getEntityExtractor","registerEntityExtractor","transformToSolutionEntityData","transformToBlogPostEntityData","transformToGenericEntityData","_callout","CALLOUT_KINDS","_useWeb5Link","useWeb5Link","_useConversation","useConversation","_useDebugImageContext","useDebugImageContext","_useResolvedImageSources","useResolvedImageSources","_useResolveGenericEntityData","useResolveGenericEntityData","_useEntityTransforms","useEntityTransforms","_useMarkdownUtils","useMarkdownUtils","_useResolveShopifyEntityData","useResolveShopifyEntityData","_useResolveSearchSpringEntityData","useResolveSearchSpringEntityData","_searchspring","fetchProductsByHandles","fetchProductsByHandlesMap","transformSSProductToEntityItemData","_cart","addToCart","_shopify","ShopifyStorefrontClient","resolveShopifyConfig","resolveShopifyEntity","transformShopifyProduct","transformShopifyCollection","transformShopifyArticle","transformShopifyEntityToItemData","PRODUCT_BY_HANDLE_QUERY","COLLECTION_BY_HANDLE_QUERY","ARTICLE_BY_HANDLE_QUERY","_utils","cn","_imageUtils","normalizeImageUrl","getResizedImageUrl","_imageBackdrop","analyzeBackdrop","computeContentBBox","buildProbeUrl","loadImagePixels","loadBackdropAnalysis","_parseUtils","stripMarkdown","_colorUtils","rgbToHsl","hslToRgb","ensureMinLightness","toRgb","deriveDarkColor","deriveDarkGradient","deriveLightColor","_analyticsEvents","pushEvent","pushPromptSubmit","pushLinkClick","pushError","pushExit","pushEntityFiltered","hasAnalyticsConsent","_errors","ERROR_MARKDOWN","getErrorTypeFromStatus","createErrorMarkdown","STREAMING_TIMEOUT_MS","DEFAULT_ERROR_TEMPLATES","resolveErrorTemplate","_navigationStack","getForwardStack","setForwardStack","clearForwardStack","pushToForwardStack","popFromForwardStack","_UserQuery","UserQuery","_productBackHandoff","PRODUCT_BACK_SESSION_KEY","writeProductBackHandoff","readProductBackHandoff","_PromptEntryEmptyState","PromptEntryEmptyState","_SearchSection","SearchSection","_FeedbackBar","FeedbackBar","_Disclaimer","Disclaimer","_BottomContainer","BottomContainer","_MarkdownText","MarkdownText","_CalloutBlock","CalloutBlock","_OptimizedImage","OptimizedImage","_SectionSkeleton","SectionSkeleton","_SmartIcon","SmartIcon","_Loader","Loader","_PlacementLoader","PlacementLoader","_UnifiedLink","UnifiedLink","detectLinkType","LinkType","_table","Table","TableHeader","TableBody","TableFooter","TableHead","TableRow","TableCell","TableCaption","_userQueryEvent","WEB5_USER_QUERY_EVENT","_answerUpdatedEvent","WEB5_ANSWER_UPDATED_EVENT","_redirectEvent","WEB5_REDIRECT_EVENT","_loadClientBundle","loadClientBundle","_clientBundleOverride","getClientBundleOverride","isTrustedBundleHost","_clientBundleUrl","TEMPLATES_CDN_BASE","TEMPLATES_MANIFEST_URL","getTemplateOverride","isTemplatePickerRequested","isValidTemplateId","resolveClientBundleUrl","_mergeClientConfig","mergeClientConfig","_applyThemeOverrides","applyThemeOverrides","THEME_OVERRIDE_TOKENS","_PlacementResponseRenderer","PlacementResponseRenderer","PlacementSmoothHeight","_buildPlacementDependencies","buildPlacementDependencies","_PlacementPayloadContext","PlacementPayloadProvider","usePlacementPayload","_unifiedMarkdownParser","UnifiedMarkdownParser","parseMarkdownToAst","parseAstToMarkdown","_markdownPreprocessor","escapeWeb5Links","fixMalformedLinks","trimTrailingWhitespace","normalizeIconUrls","decodeLinkText","preprocessMarkdown","_componentTracking","ComponentTracking","_contentKeywordMatcher","findKeywordsInContent","getContextualImageFilename","_intentExtractor","extractIntentFromMarkdown","getIntentFromMarkdown","_propsExtractor","createPageSection","generateSectionId","generateId","findImageInNode","findImageInChildren","_diagnosticsCollector","DiagnosticsCollector","_refreshPrompts","REFRESH_PROMPTS_UNTIL_KEY","REFRESH_PROMPTS_WINDOW_MS","getRefreshPromptsExpiry","shouldRefreshPrompts","enableRefreshPrompts","disableRefreshPrompts","_backendEnvironment","BACKEND_ENVIRONMENT_KEY","BACKEND_ENVIRONMENT_QUERY_PARAM","DEFAULT_BACKEND_ENVIRONMENT","getBackendEnvironment","setBackendEnvironment","usesStagingBackend","_matchDebug","MATCH_DEBUG_KEY","MATCH_DEBUG_QUERY_PARAM","isMatchDebugEnabled","setMatchDebug","resetMatchDebugCache","logMatchDebug","_wixAuthFetch","createWixAuthFetch","_sessionManager","getOrCreateSessionId","getSessionId","getChatId","startNewChatId","setChatId","resetChatIdForTests","_componentParser","parseMarkdownToComponents","tryParseComponent","mergeSectionsWithStableReferences","_hostScope","WEB5_ROOT_ID","WEB5_ROOT_CLASS","WEB5_SCOPES","WEB5_SCOPE","WEB5_GLOBAL_TOKENS"],"sources":["../../src/index.ts"],"sourcesContent":["// Client IDs and experiment IDs\nexport { CLIENT_IDS, EXPERIMENT_IDS } from './clients';\n\nexport {\n type EmbedFeatureToggleResult,\n type FeatureToggleReader,\n createFeatureToggleReader,\n FeatureToggleProvider,\n useFeatureToggles,\n useFeatureToggle,\n} from './featureToggles/FeatureToggleContext';\n\n// Dev-only chrome injection contract for client packages\nexport type { DevEnvironment } from './client/devEnvironment';\n\n// Part types and helpers\nexport {\n type PartType,\n type Part,\n type HeadingPart,\n type ImagePart,\n type LinkPart,\n type ListPart,\n type ListItemPart,\n type KpiItemPart,\n type CardPart,\n type IconPart,\n type CalloutPart,\n type EntityPart,\n getPartsByType,\n getPartByRole,\n getAllByRole,\n getHeading,\n getImages,\n getLinks,\n extractContent,\n extractContentMarkdown,\n deriveRole,\n} from './parts/parts';\n\n// Component types\nexport type {\n BaseCompProps,\n SlotCompProps,\n SectionCompProps,\n SectionCompPropsWithSlot,\n TextCompProps,\n ButtonCompProps,\n ImageCompProps,\n BadgeCompProps,\n HeroButton,\n KpiItemCompProps,\n FeatureItemCompProps,\n FeatureCardCompProps,\n EntityItemData,\n EntityItem,\n GenericEntityData,\n GenericEntityCompProps,\n ComparisonRow,\n ComparisonColumn,\n AiNarrativeCompProps,\n HeroCompProps,\n HeroEntityCompProps,\n KpiCompProps,\n FeatureCardsCompProps,\n EntityCompProps,\n ComparisonCompProps,\n TextBlockCompProps,\n Component,\n BaseComponent,\n SlotComponent,\n SectionComponent,\n TextComponent,\n ButtonComponent,\n ImageComponent,\n BadgeComponent,\n KpiItemComponent,\n FeatureItemComponent,\n FeatureCardComponent,\n GenericEntityComponent,\n AiNarrativeComponent,\n ComparisonSectionComponent,\n TextBlockSectionComponent,\n HeroSectionComponent,\n HeroEntitySectionComponent,\n KpiSectionComponent,\n FeatureCardsSectionComponent,\n EntitySectionComponent,\n PropsOf,\n SectionFixture,\n CtaBannerCompProps,\n CtaBannerSectionComponent,\n CalloutCompProps,\n CalloutSectionComponent,\n NextStepsCompProps,\n NextStepsSectionComponent,\n FeatureSection9PlusCompProps,\n FeatureSection9PlusSectionComponent,\n ListItemsSectionCompProps,\n ListItemsSectionComponent,\n ErrorCompProps,\n ErrorSectionComponent,\n NullCompProps,\n NullSectionComponent,\n SolutionEntityCompProps,\n SolutionEntitySectionComponent,\n SolutionEntityData,\n BlogEntityCompProps,\n BlogEntitySectionComponent,\n BlogEntityData,\n GeneralTextCompProps,\n GeneralTextSectionComponent,\n PersonalizedNarrativeCompProps,\n PersonalizedNarrativeSectionComponent,\n} from './component/types';\n\n// Section definition\nexport type {\n SectionDefinition,\n ParseContext,\n ContextualImageResult,\n DropSection,\n} from './component/section-definition';\nexport { DROP_SECTION } from './component/section-definition';\n\n// Diagnostic types\nexport { DIAGNOSTIC_TYPES } from './component/diagnosticTypes';\nexport type { DiagnosticType } from './component/diagnosticTypes';\n\n// Image search filters\nexport {\n buildImageSearchFilter,\n type ImageSearchFilterString,\n} from './image/imageSearchFilterTypes';\nexport {\n ImageSearchFilterToken,\n backgroundFilter,\n} from './image/imageSearchFilters';\nexport type {\n ContextualImageAsset,\n ImageSourceInput,\n ResolvedImageSource,\n ResolvedImageSourceKind,\n} from './image/contextualImageTypes';\n\n// Section definition classes + createSdkRegistry\nexport {\n HeroSectionDefinition,\n HeroEntitySectionDefinition,\n KpiSectionDefinition,\n FeatureCardsSectionDefinition,\n EntitySectionDefinition,\n EntityCollectionSectionDefinition,\n ComparisonSectionDefinition,\n TextBlockSectionDefinition,\n CtaBannerSectionDefinition,\n CalloutSectionDefinition,\n NextStepsSectionDefinition,\n FeatureSection9PlusDefinition,\n ListItemsSectionDefinition,\n SkipNodesSectionDefinition,\n HtmlCommentSectionDefinition,\n SearchSectionDefinition,\n ErrorSectionDefinition,\n FallbackSectionDefinition,\n createSdkRegistry,\n} from './component/componentDefinitions';\n\n// Registry\nexport { ComponentRegistry } from './registry';\nexport type {\n SlotOptions,\n SectionOptions,\n SectionRegistration,\n SlotNode,\n SlotIntentNode,\n SectionIntentNode,\n SectionNode,\n SlotVariant,\n SectionVariant,\n RegistryCatalog,\n ActionResult,\n ActionHandler,\n} from './registry';\n\n// Pattern validator\nexport {\n validatePattern,\n validatePatternSyntax,\n validatePatternWithBlocks,\n type PatternValidationResult,\n type BlockElement,\n type EnrichedBlockElement,\n type LinkMetadata,\n type LinkAttribute,\n} from './patternValidator';\n\n// Markdown blocks\nexport {\n convertToBlockElements,\n convertToBlockElementsWithMapping,\n type BlockElementsWithMapping,\n} from './markdownBlocks';\n\n// Link types, enum & guards\nexport {\n Web5UrlType,\n type Web5AskUrl,\n type Web5EntityUrl,\n type Web5ImageUrl,\n type Web5IconUrl,\n type Web5ActionUrl,\n type Web5SearchUrl,\n type Web5Url,\n type HttpsUrl,\n type HttpUrl,\n type MailtoUrl,\n type RelativeUrl,\n type NavigableUrl,\n type ValidLinkUrl,\n type AnyKnownUrl,\n type LegacyUrl,\n isWeb5AskUrl,\n isWeb5EntityUrl,\n isWeb5ImageUrl,\n isWeb5IconUrl,\n isWeb5ActionUrl,\n isWeb5SearchUrl,\n isWeb5Url,\n isNavigableUrl,\n isValidLinkUrl,\n isLegacyUrl,\n} from './types/link-types';\n\n// Entity/URL parsing\nexport {\n parseWeb5Url,\n isValidWeb5Url,\n validateLinkUrl,\n type Web5UrlParsed,\n type Web5AskParsed,\n type Web5EntityParsed,\n type Web5ImageParsed,\n type Web5IconParsed,\n type Web5ActionParsed,\n type Web5SearchParsed,\n isEntityLink,\n parseEntityLink,\n extractProtocol,\n extractLinkMetadata,\n} from './utils/entityLinkParser';\n\n// Web5 link validation\nexport {\n findInvalidWeb5Links,\n type InvalidWeb5Link,\n} from './utils/web5LinkValidator';\n\n// Node matchers\nexport { hasImage, isHtmlComment } from './utils/nodeMatchers';\n\n// Match API\nexport {\n matchMarkdown,\n type MarkdownMatchResult,\n matchAllSections,\n type MatchAllSectionsResult,\n nodesToParts,\n} from './match';\n\n// ---------------------------------------------------------------------------\n// DI Infrastructure (moved from @wix/w5-client-circana)\n// ---------------------------------------------------------------------------\n\n// DI context and provider\nexport {\n ComponentDependenciesProvider,\n useComponentDependencies,\n type ComponentDependenciesProviderProps,\n} from './context/ComponentDependenciesContext';\n\n// Raw user query for the current response page\nexport {\n UserQueryProvider,\n useUserQuery,\n type UserQueryProviderProps,\n} from './context/UserQueryContext';\n\n// Chips context (suggestion chips shared between SearchSection and error states)\nexport {\n ChipsProvider,\n useChips,\n type SuggestionChip,\n} from './context/ChipsContext';\n\n// DI types\nexport type {\n ComponentDependencies,\n Web5LinkApi,\n ConversationApi,\n SendMessageTrackingOptions,\n SendMessageOptions,\n ComparisonSubmitPayload,\n ComparisonSelectedProduct,\n ProductComparisonSelectionState,\n ProductComparisonApi,\n EntityTransforms,\n MarkdownUtils,\n ResolveGenericEntityDataOptions,\n} from './types/dependencies';\nexport type {\n ApiPayloadItem,\n EntityTypeConfig,\n EntityConfig,\n EntityExtractionContext,\n} from './types/entity';\nexport {\n defaultExtractor,\n enrichEntitiesFromPayload,\n fetchEntityListData,\n listEntityItems,\n LIST_ITEMS_ENDPOINT,\n getEntityExtractor,\n registerEntityExtractor,\n transformToSolutionEntityData,\n transformToBlogPostEntityData,\n transformToGenericEntityData,\n} from './entity';\nexport type {\n EntityExtractor,\n FetchEntityListDataOptions,\n ListEntityItemsOptions,\n} from './entity';\nexport { CALLOUT_KINDS, type CalloutKind, type Callout } from './types/callout';\n\n// Wrapper hooks\nexport { useWeb5Link } from './hooks/useWeb5Link';\nexport { useConversation } from './hooks/useConversation';\nexport { useDebugImageContext } from './hooks/useDebugImageContext';\nexport { useResolvedImageSources } from './hooks/useResolvedImageSources';\nexport { useResolveGenericEntityData } from './hooks/useResolveGenericEntityData';\nexport { useEntityTransforms } from './hooks/useEntityTransforms';\nexport { useMarkdownUtils } from './hooks/useMarkdownUtils';\nexport { useResolveShopifyEntityData } from './hooks/useResolveShopifyEntityData';\nexport { useResolveSearchSpringEntityData } from './hooks/useResolveSearchSpringEntityData';\n\n// SearchSpring\nexport {\n fetchProductsByHandles,\n fetchProductsByHandlesMap,\n transformSSProductToEntityItemData,\n} from './services/searchspring';\nexport type {\n SearchSpringConfig,\n SSProduct,\n SSSearchResponse,\n SSSizeData,\n} from './services/searchspring';\n\n// Shopify Storefront API\n// Cart actions\nexport { addToCart } from './services/cart';\n\nexport {\n ShopifyStorefrontClient,\n resolveShopifyConfig,\n resolveShopifyEntity,\n transformShopifyProduct,\n transformShopifyCollection,\n transformShopifyArticle,\n transformShopifyEntityToItemData,\n PRODUCT_BY_HANDLE_QUERY,\n COLLECTION_BY_HANDLE_QUERY,\n ARTICLE_BY_HANDLE_QUERY,\n} from './services/shopify';\nexport type {\n ShopifyStorefrontConfig,\n ShopifyProduct,\n ShopifyCollection,\n ShopifyArticle,\n ShopifyImage,\n ShopifyMoneyV2,\n} from './services/shopify';\n\n// Utilities\nexport { cn } from './lib/utils';\nexport { normalizeImageUrl, getResizedImageUrl } from './utils/image-utils';\nexport {\n analyzeBackdrop,\n computeContentBBox,\n buildProbeUrl,\n loadImagePixels,\n loadBackdropAnalysis,\n type BackdropAnalysis,\n type ContentBBox,\n type ImagePixels,\n} from './utils/imageBackdrop';\nexport { stripMarkdown } from './component/componentDefinitions/parse-utils';\n\n// Color utilities\nexport {\n type RGB,\n rgbToHsl,\n hslToRgb,\n ensureMinLightness,\n toRgb,\n deriveDarkColor,\n deriveDarkGradient,\n deriveLightColor,\n} from './color/colorUtils';\n\n// Analytics\nexport {\n pushEvent,\n pushPromptSubmit,\n pushLinkClick,\n pushError,\n pushExit,\n pushEntityFiltered,\n hasAnalyticsConsent,\n type EntityFilteredReason,\n} from './utils/analyticsEvents';\n\n// Error handling types and utilities\nexport {\n type ConversationErrorType,\n ERROR_MARKDOWN,\n getErrorTypeFromStatus,\n createErrorMarkdown,\n STREAMING_TIMEOUT_MS,\n type ErrorActionType,\n type ErrorIconType,\n type ErrorTemplateButton,\n type ErrorTemplate,\n type ErrorTemplateOverrides,\n DEFAULT_ERROR_TEMPLATES,\n resolveErrorTemplate,\n} from './errors';\n\n// Navigation utilities\nexport {\n getForwardStack,\n setForwardStack,\n clearForwardStack,\n pushToForwardStack,\n popFromForwardStack,\n} from './utils/navigationStack';\n\n// UI components\nexport {\n UserQuery,\n type UserQueryProps,\n type ProductBackContext,\n} from './components/ui/UserQuery';\nexport {\n PRODUCT_BACK_SESSION_KEY,\n writeProductBackHandoff,\n readProductBackHandoff,\n type ProductBackHandoff,\n} from './utils/productBackHandoff';\nexport {\n PromptEntryEmptyState,\n type PromptEntryEmptyStateProps,\n} from './components/ui/PromptEntryEmptyState';\nexport {\n SearchSection,\n type SearchSectionProps,\n type SearchSectionHandle,\n type ScrollChip,\n} from './components/ui/SearchSection';\nexport {\n FeedbackBar,\n type FeedbackBarProps,\n type FeedbackCategoryOption,\n type FeedbackSentiment,\n type FeedbackSubmitInput,\n} from './components/ui/FeedbackBar';\nexport {\n Disclaimer,\n type DisclaimerProps,\n} from './components/ui/Disclaimer';\nexport {\n BottomContainer,\n type BottomContainerProps,\n} from './components/ui/BottomContainer';\nexport { MarkdownText } from './components/ui/MarkdownText';\nexport {\n CalloutBlock,\n type CalloutBlockProps,\n} from './components/ui/CalloutBlock';\nexport {\n OptimizedImage,\n type OptimizedImageProps,\n} from './components/ui/OptimizedImage';\nexport {\n SectionSkeleton,\n type SectionSkeletonProps,\n} from './components/ui/SectionSkeleton';\nexport { SmartIcon, type SmartIconProps } from './components/ui/SmartIcon';\nexport { Loader, type LoaderProps } from './components/ui/Loader';\nexport {\n PlacementLoader,\n type PlacementLoaderProps,\n} from './components/ui/PlacementLoader';\nexport {\n UnifiedLink,\n detectLinkType,\n type UnifiedLinkProps,\n LinkType,\n type LinkVariant,\n} from './components/ui/UnifiedLink';\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n} from './components/ui/table';\n\n// Placement (DL #088, DL #102 behavior declarations)\nexport type {\n PlacementBehaviorConfig,\n PlacementConfig,\n PlacementPrompts,\n} from './types/placement';\n\n// Cross-bundle user-query broadcast event (DL #097 D2)\nexport {\n WEB5_USER_QUERY_EVENT,\n type Web5UserQueryEventDetail,\n type Web5UserQueryEvent,\n} from './types/userQueryEvent';\n\n// Cross-bundle answer-updated broadcast event (B2B-4121)\nexport {\n WEB5_ANSWER_UPDATED_EVENT,\n type Web5AnswerUpdatedEventDetail,\n type Web5AnswerUpdatedEvent,\n} from './types/answerUpdatedEvent';\n\n// Cross-bundle redirect broadcast event (DL #098 D3)\nexport {\n WEB5_REDIRECT_EVENT,\n type Web5RedirectEventDetail,\n type Web5RedirectEvent,\n type Web5RedirectReason,\n} from './types/redirectEvent';\n// `placementFilter` was removed — hero/next-steps exclusion is the prompt's job\n// and placement-specific designs belong as `{ placement: true }` registry\n// variants (resolved automatically via `resolveSection(type, { placement: true })`).\n\n// Client bundle loader (DL #088 D3.3)\nexport { loadClientBundle } from './client/loadClientBundle';\n\n// `?clientBundleUrl=` dev override — shared by `web50-server-ui` and\n// `embed-placement` so the trusted-host gate can't drift between them.\nexport {\n getClientBundleOverride,\n isTrustedBundleHost,\n} from './client/clientBundleOverride';\n\n// Client-UMD URL resolution (DL #094 per-msid, DL #129 per-template) and the\n// universal bundle←backend config merge (DL #129 Q3/Q7) — shared by\n// `web50-server-ui` and `embed-placement`, the two client-bundle load sites.\nexport {\n TEMPLATES_CDN_BASE,\n TEMPLATES_MANIFEST_URL,\n getTemplateOverride,\n isTemplatePickerRequested,\n isValidTemplateId,\n resolveClientBundleUrl,\n} from './client/clientBundleUrl';\nexport { mergeClientConfig, type DeepPartial } from './client/mergeClientConfig';\nexport {\n applyThemeOverrides,\n THEME_OVERRIDE_TOKENS,\n type ThemeOverrideKey,\n type ThemeOverrides,\n} from './client/applyThemeOverrides';\n\n// Placement renderer + DI helper (DL #088 D3.2, D3.4)\nexport {\n PlacementResponseRenderer,\n PlacementSmoothHeight,\n type PlacementResponseRendererProps,\n type PlacementSection,\n type PlacementVariant,\n} from './components/placement/PlacementResponseRenderer';\nexport {\n buildPlacementDependencies,\n type BuildPlacementDependenciesOptions,\n} from './components/placement/buildPlacementDependencies';\nexport {\n PlacementPayloadProvider,\n usePlacementPayload,\n type PlacementPayloadContextValue,\n} from './components/placement/PlacementPayloadContext';\n\n// Markdown parsing utilities — lifted from web50-server-ui (DL #088 B9.1)\nexport {\n UnifiedMarkdownParser,\n parseMarkdownToAst,\n parseAstToMarkdown,\n} from './utils/unifiedMarkdownParser';\nexport {\n escapeWeb5Links,\n fixMalformedLinks,\n trimTrailingWhitespace,\n normalizeIconUrls,\n decodeLinkText,\n preprocessMarkdown,\n type PreprocessorDiagnostic,\n type PreprocessResult,\n} from './utils/markdownPreprocessor';\nexport {\n ComponentTracking,\n type ComponentNodeRange,\n} from './utils/componentTracking';\nexport {\n findKeywordsInContent,\n getContextualImageFilename,\n} from './utils/contentKeywordMatcher';\nexport {\n extractIntentFromMarkdown,\n getIntentFromMarkdown,\n type IntentInfo,\n type IntentExtractionOptions,\n type ResponseState,\n} from './utils/intentExtractor';\nexport type { PageSection } from './types/page-section';\nexport {\n createPageSection,\n generateSectionId,\n generateId,\n findImageInNode,\n findImageInChildren,\n type Product,\n type ComparisonProduct,\n type ProductComparisonSectionProps,\n} from './utils/propsExtractor';\nexport {\n DiagnosticsCollector,\n type DiagnosticEntry,\n} from './utils/diagnosticsCollector';\nexport {\n REFRESH_PROMPTS_UNTIL_KEY,\n REFRESH_PROMPTS_WINDOW_MS,\n getRefreshPromptsExpiry,\n shouldRefreshPrompts,\n enableRefreshPrompts,\n disableRefreshPrompts,\n} from './utils/refreshPrompts';\nexport {\n type BackendEnvironment,\n BACKEND_ENVIRONMENT_KEY,\n BACKEND_ENVIRONMENT_QUERY_PARAM,\n DEFAULT_BACKEND_ENVIRONMENT,\n getBackendEnvironment,\n setBackendEnvironment,\n usesStagingBackend,\n} from './utils/backendEnvironment';\nexport {\n MATCH_DEBUG_KEY,\n MATCH_DEBUG_QUERY_PARAM,\n isMatchDebugEnabled,\n setMatchDebug,\n resetMatchDebugCache,\n logMatchDebug,\n} from './utils/matchDebug';\nexport { createWixAuthFetch } from './client/wixAuthFetch';\nexport {\n getOrCreateSessionId,\n getSessionId,\n getChatId,\n startNewChatId,\n setChatId,\n resetChatIdForTests,\n} from './utils/sessionManager';\n\n// Component parser orchestrator — lifted from web50-server-ui (DL #088 B9.5)\nexport {\n parseMarkdownToComponents,\n tryParseComponent,\n mergeSectionsWithStableReferences,\n type ParseMarkdownOptions,\n type ParseMarkdownResult,\n type ComponentMatch,\n type ParserContext,\n} from './component/componentParser';\nexport type {\n ParserClientConfig,\n EnrichEntityProps,\n} from './component/parser-types';\n\n// Host-mount scope contract — shared by web50-server-ui (which stamps the\n// class and mounts), embed-placement (which mounts the same bundle elsewhere),\n// and the client CDN build (which compiles every selector against it).\nexport {\n WEB5_ROOT_ID,\n WEB5_ROOT_CLASS,\n WEB5_SCOPES,\n WEB5_SCOPE,\n WEB5_GLOBAL_TOKENS,\n type HostFitConfig,\n} from './hostScope';\n"],"mappings":"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","ignoreList":[]}