@wix/web5-core 1.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (947) hide show
  1. package/README.md +8 -0
  2. package/dist/cjs/client/clientBundleOverride.js +48 -0
  3. package/dist/cjs/client/clientBundleOverride.js.map +1 -0
  4. package/dist/cjs/client/devEnvironment.js +4 -0
  5. package/dist/cjs/client/devEnvironment.js.map +1 -0
  6. package/dist/cjs/client/loadClientBundle.js +85 -0
  7. package/dist/cjs/client/loadClientBundle.js.map +1 -0
  8. package/dist/cjs/client/wixAuthFetch.js +73 -0
  9. package/dist/cjs/client/wixAuthFetch.js.map +1 -0
  10. package/dist/cjs/clients.js +15 -0
  11. package/dist/cjs/clients.js.map +1 -0
  12. package/dist/cjs/color/colorUtils.js +126 -0
  13. package/dist/cjs/color/colorUtils.js.map +1 -0
  14. package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js +67 -0
  15. package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
  16. package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js +141 -0
  17. package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
  18. package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js +85 -0
  19. package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
  20. package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js +171 -0
  21. package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
  22. package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js +81 -0
  23. package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
  24. package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js +29 -0
  25. package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
  26. package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js +119 -0
  27. package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
  28. package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js +75 -0
  29. package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
  30. package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js +124 -0
  31. package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
  32. package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js +209 -0
  33. package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
  34. package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js +19 -0
  35. package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
  36. package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js +114 -0
  37. package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
  38. package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js +136 -0
  39. package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
  40. package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js +18 -0
  41. package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
  42. package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js +20 -0
  43. package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
  44. package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js +65 -0
  45. package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
  46. package/dist/cjs/component/componentDefinitions/index.js +48 -0
  47. package/dist/cjs/component/componentDefinitions/index.js.map +1 -0
  48. package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js +86 -0
  49. package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
  50. package/dist/cjs/component/componentDefinitions/parse-utils.js +434 -0
  51. package/dist/cjs/component/componentDefinitions/parse-utils.js.map +1 -0
  52. package/dist/cjs/component/componentDefinitions/specHelpers.js +36 -0
  53. package/dist/cjs/component/componentDefinitions/specHelpers.js.map +1 -0
  54. package/dist/cjs/component/componentParser.js +365 -0
  55. package/dist/cjs/component/componentParser.js.map +1 -0
  56. package/dist/cjs/component/diagnosticTypes.js +30 -0
  57. package/dist/cjs/component/diagnosticTypes.js.map +1 -0
  58. package/dist/cjs/component/parser-types.js +4 -0
  59. package/dist/cjs/component/parser-types.js.map +1 -0
  60. package/dist/cjs/component/section-definition.js +4 -0
  61. package/dist/cjs/component/section-definition.js.map +1 -0
  62. package/dist/cjs/component/types.js +4 -0
  63. package/dist/cjs/component/types.js.map +1 -0
  64. package/dist/cjs/components/placement/PlacementPayloadContext.js +29 -0
  65. package/dist/cjs/components/placement/PlacementPayloadContext.js.map +1 -0
  66. package/dist/cjs/components/placement/PlacementResponseRenderer.css +269 -0
  67. package/dist/cjs/components/placement/PlacementResponseRenderer.js +259 -0
  68. package/dist/cjs/components/placement/PlacementResponseRenderer.js.map +1 -0
  69. package/dist/cjs/components/placement/buildPlacementDependencies.js +214 -0
  70. package/dist/cjs/components/placement/buildPlacementDependencies.js.map +1 -0
  71. package/dist/cjs/components/ui/BottomContainer.js +26 -0
  72. package/dist/cjs/components/ui/BottomContainer.js.map +1 -0
  73. package/dist/cjs/components/ui/CalloutBlock.js +156 -0
  74. package/dist/cjs/components/ui/CalloutBlock.js.map +1 -0
  75. package/dist/cjs/components/ui/Disclaimer.css +35 -0
  76. package/dist/cjs/components/ui/Disclaimer.js +56 -0
  77. package/dist/cjs/components/ui/Disclaimer.js.map +1 -0
  78. package/dist/cjs/components/ui/FeedbackBar.css +267 -0
  79. package/dist/cjs/components/ui/FeedbackBar.js +417 -0
  80. package/dist/cjs/components/ui/FeedbackBar.js.map +1 -0
  81. package/dist/cjs/components/ui/Loader.js +73 -0
  82. package/dist/cjs/components/ui/Loader.js.map +1 -0
  83. package/dist/cjs/components/ui/MarkdownText.js +419 -0
  84. package/dist/cjs/components/ui/MarkdownText.js.map +1 -0
  85. package/dist/cjs/components/ui/OptimizedImage.js +414 -0
  86. package/dist/cjs/components/ui/OptimizedImage.js.map +1 -0
  87. package/dist/cjs/components/ui/PlacementLoader.css +101 -0
  88. package/dist/cjs/components/ui/PlacementLoader.js +62 -0
  89. package/dist/cjs/components/ui/PlacementLoader.js.map +1 -0
  90. package/dist/cjs/components/ui/PromptEntryEmptyState.css +172 -0
  91. package/dist/cjs/components/ui/PromptEntryEmptyState.js +96 -0
  92. package/dist/cjs/components/ui/PromptEntryEmptyState.js.map +1 -0
  93. package/dist/cjs/components/ui/SearchSection.css +538 -0
  94. package/dist/cjs/components/ui/SearchSection.js +550 -0
  95. package/dist/cjs/components/ui/SearchSection.js.map +1 -0
  96. package/dist/cjs/components/ui/SectionSkeleton.css +109 -0
  97. package/dist/cjs/components/ui/SectionSkeleton.js +190 -0
  98. package/dist/cjs/components/ui/SectionSkeleton.js.map +1 -0
  99. package/dist/cjs/components/ui/SmartIcon.js +122 -0
  100. package/dist/cjs/components/ui/SmartIcon.js.map +1 -0
  101. package/dist/cjs/components/ui/UnifiedLink.js +169 -0
  102. package/dist/cjs/components/ui/UnifiedLink.js.map +1 -0
  103. package/dist/cjs/components/ui/UserQuery.js +348 -0
  104. package/dist/cjs/components/ui/UserQuery.js.map +1 -0
  105. package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js +37 -0
  106. package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
  107. package/dist/cjs/components/ui/icons/ArrowUpIcon.js +61 -0
  108. package/dist/cjs/components/ui/icons/ArrowUpIcon.js.map +1 -0
  109. package/dist/cjs/components/ui/icons/CheckIcon.js +37 -0
  110. package/dist/cjs/components/ui/icons/CheckIcon.js.map +1 -0
  111. package/dist/cjs/components/ui/icons/CommentIcon.js +34 -0
  112. package/dist/cjs/components/ui/icons/CommentIcon.js.map +1 -0
  113. package/dist/cjs/components/ui/icons/PlusIcon.js +51 -0
  114. package/dist/cjs/components/ui/icons/PlusIcon.js.map +1 -0
  115. package/dist/cjs/components/ui/icons/RedoIcon.js +51 -0
  116. package/dist/cjs/components/ui/icons/RedoIcon.js.map +1 -0
  117. package/dist/cjs/components/ui/icons/ShareIcon.js +81 -0
  118. package/dist/cjs/components/ui/icons/ShareIcon.js.map +1 -0
  119. package/dist/cjs/components/ui/icons/UndoIcon.js +51 -0
  120. package/dist/cjs/components/ui/icons/UndoIcon.js.map +1 -0
  121. package/dist/cjs/components/ui/table.js +159 -0
  122. package/dist/cjs/components/ui/table.js.map +1 -0
  123. package/dist/cjs/context/ChipsContext.js +12 -0
  124. package/dist/cjs/context/ChipsContext.js.map +1 -0
  125. package/dist/cjs/context/ComponentDependenciesContext.js +32 -0
  126. package/dist/cjs/context/ComponentDependenciesContext.js.map +1 -0
  127. package/dist/cjs/entity/defaultExtractor.js +117 -0
  128. package/dist/cjs/entity/defaultExtractor.js.map +1 -0
  129. package/dist/cjs/entity/enrichEntitiesFromPayload.js +39 -0
  130. package/dist/cjs/entity/enrichEntitiesFromPayload.js.map +1 -0
  131. package/dist/cjs/entity/fetchEntityListData.js +78 -0
  132. package/dist/cjs/entity/fetchEntityListData.js.map +1 -0
  133. package/dist/cjs/entity/index.js +41 -0
  134. package/dist/cjs/entity/index.js.map +1 -0
  135. package/dist/cjs/entity/types.js +4 -0
  136. package/dist/cjs/entity/types.js.map +1 -0
  137. package/dist/cjs/errors/conversationErrorTypes.js +56 -0
  138. package/dist/cjs/errors/conversationErrorTypes.js.map +1 -0
  139. package/dist/cjs/errors/errorTemplates.js +86 -0
  140. package/dist/cjs/errors/errorTemplates.js.map +1 -0
  141. package/dist/cjs/errors/index.js +13 -0
  142. package/dist/cjs/errors/index.js.map +1 -0
  143. package/dist/cjs/external-types.d.js +2 -0
  144. package/dist/cjs/external-types.d.js.map +1 -0
  145. package/dist/cjs/featureToggles/FeatureToggleContext.js +44 -0
  146. package/dist/cjs/featureToggles/FeatureToggleContext.js.map +1 -0
  147. package/dist/cjs/hooks/useConversation.js +10 -0
  148. package/dist/cjs/hooks/useConversation.js.map +1 -0
  149. package/dist/cjs/hooks/useDebugImageContext.js +10 -0
  150. package/dist/cjs/hooks/useDebugImageContext.js.map +1 -0
  151. package/dist/cjs/hooks/useEntityTransforms.js +10 -0
  152. package/dist/cjs/hooks/useEntityTransforms.js.map +1 -0
  153. package/dist/cjs/hooks/useMarkdownUtils.js +10 -0
  154. package/dist/cjs/hooks/useMarkdownUtils.js.map +1 -0
  155. package/dist/cjs/hooks/useResolveGenericEntityData.js +10 -0
  156. package/dist/cjs/hooks/useResolveGenericEntityData.js.map +1 -0
  157. package/dist/cjs/hooks/useResolveSearchSpringEntityData.js +146 -0
  158. package/dist/cjs/hooks/useResolveSearchSpringEntityData.js.map +1 -0
  159. package/dist/cjs/hooks/useResolveShopifyEntityData.js +190 -0
  160. package/dist/cjs/hooks/useResolveShopifyEntityData.js.map +1 -0
  161. package/dist/cjs/hooks/useResolvedImageSources.js +160 -0
  162. package/dist/cjs/hooks/useResolvedImageSources.js.map +1 -0
  163. package/dist/cjs/hooks/useWeb5Link.js +10 -0
  164. package/dist/cjs/hooks/useWeb5Link.js.map +1 -0
  165. package/dist/cjs/image/contextualImageTypes.js +4 -0
  166. package/dist/cjs/image/contextualImageTypes.js.map +1 -0
  167. package/dist/cjs/image/imageSearchFilterTypes.js +19 -0
  168. package/dist/cjs/image/imageSearchFilterTypes.js.map +1 -0
  169. package/dist/cjs/image/imageSearchFilters.js +22 -0
  170. package/dist/cjs/image/imageSearchFilters.js.map +1 -0
  171. package/dist/cjs/index.js +285 -0
  172. package/dist/cjs/index.js.map +1 -0
  173. package/dist/cjs/lib/utils.js +33 -0
  174. package/dist/cjs/lib/utils.js.map +1 -0
  175. package/dist/cjs/markdownBlocks.js +645 -0
  176. package/dist/cjs/markdownBlocks.js.map +1 -0
  177. package/dist/cjs/match/astToParts.js +374 -0
  178. package/dist/cjs/match/astToParts.js.map +1 -0
  179. package/dist/cjs/match/extractProps.js +654 -0
  180. package/dist/cjs/match/extractProps.js.map +1 -0
  181. package/dist/cjs/match/index.js +11 -0
  182. package/dist/cjs/match/index.js.map +1 -0
  183. package/dist/cjs/match/matchAllSections.js +34 -0
  184. package/dist/cjs/match/matchAllSections.js.map +1 -0
  185. package/dist/cjs/match/matchMarkdown.js +39 -0
  186. package/dist/cjs/match/matchMarkdown.js.map +1 -0
  187. package/dist/cjs/parts/parts.js +183 -0
  188. package/dist/cjs/parts/parts.js.map +1 -0
  189. package/dist/cjs/patternAnalyzer/conflictDetector.js +103 -0
  190. package/dist/cjs/patternAnalyzer/conflictDetector.js.map +1 -0
  191. package/dist/cjs/patternAnalyzer/index.js +40 -0
  192. package/dist/cjs/patternAnalyzer/index.js.map +1 -0
  193. package/dist/cjs/patternAnalyzer/markdownGenerator.js +347 -0
  194. package/dist/cjs/patternAnalyzer/markdownGenerator.js.map +1 -0
  195. package/dist/cjs/patternAnalyzer/mergeDetector.js +505 -0
  196. package/dist/cjs/patternAnalyzer/mergeDetector.js.map +1 -0
  197. package/dist/cjs/patternAnalyzer/parserValidator.js +56 -0
  198. package/dist/cjs/patternAnalyzer/parserValidator.js.map +1 -0
  199. package/dist/cjs/patternAnalyzer/patternWriter.js +106 -0
  200. package/dist/cjs/patternAnalyzer/patternWriter.js.map +1 -0
  201. package/dist/cjs/patternAnalyzer/run.js +140 -0
  202. package/dist/cjs/patternAnalyzer/run.js.map +1 -0
  203. package/dist/cjs/patternAnalyzer/types.js +4 -0
  204. package/dist/cjs/patternAnalyzer/types.js.map +1 -0
  205. package/dist/cjs/patternValidator/ERROR_MESSAGES.md +110 -0
  206. package/dist/cjs/patternValidator/README.md +757 -0
  207. package/dist/cjs/patternValidator/automaton.js +349 -0
  208. package/dist/cjs/patternValidator/automaton.js.map +1 -0
  209. package/dist/cjs/patternValidator/index.js +196 -0
  210. package/dist/cjs/patternValidator/index.js.map +1 -0
  211. package/dist/cjs/patternValidator/lexer.js +218 -0
  212. package/dist/cjs/patternValidator/lexer.js.map +1 -0
  213. package/dist/cjs/patternValidator/matcher.js +722 -0
  214. package/dist/cjs/patternValidator/matcher.js.map +1 -0
  215. package/dist/cjs/patternValidator/parser.js +533 -0
  216. package/dist/cjs/patternValidator/parser.js.map +1 -0
  217. package/dist/cjs/patternValidator/types.js +4 -0
  218. package/dist/cjs/patternValidator/types.js.map +1 -0
  219. package/dist/cjs/patternValidator/validator.test.js +1277 -0
  220. package/dist/cjs/patternValidator/validator.test.js.map +1 -0
  221. package/dist/cjs/registry/ComponentRegistry.js +438 -0
  222. package/dist/cjs/registry/ComponentRegistry.js.map +1 -0
  223. package/dist/cjs/registry/Intent.js +19 -0
  224. package/dist/cjs/registry/Intent.js.map +1 -0
  225. package/dist/cjs/registry/index.js +9 -0
  226. package/dist/cjs/registry/index.js.map +1 -0
  227. package/dist/cjs/registry/types.js +4 -0
  228. package/dist/cjs/registry/types.js.map +1 -0
  229. package/dist/cjs/services/cart/addToCart.js +147 -0
  230. package/dist/cjs/services/cart/addToCart.js.map +1 -0
  231. package/dist/cjs/services/cart/index.js +7 -0
  232. package/dist/cjs/services/cart/index.js.map +1 -0
  233. package/dist/cjs/services/searchspring/index.js +10 -0
  234. package/dist/cjs/services/searchspring/index.js.map +1 -0
  235. package/dist/cjs/services/searchspring/searchSpringClient.js +49 -0
  236. package/dist/cjs/services/searchspring/searchSpringClient.js.map +1 -0
  237. package/dist/cjs/services/searchspring/transformSSProduct.js +70 -0
  238. package/dist/cjs/services/searchspring/transformSSProduct.js.map +1 -0
  239. package/dist/cjs/services/searchspring/types.js +4 -0
  240. package/dist/cjs/services/searchspring/types.js.map +1 -0
  241. package/dist/cjs/services/shopify/globals.d.js +4 -0
  242. package/dist/cjs/services/shopify/globals.d.js.map +1 -0
  243. package/dist/cjs/services/shopify/index.js +22 -0
  244. package/dist/cjs/services/shopify/index.js.map +1 -0
  245. package/dist/cjs/services/shopify/queries.js +214 -0
  246. package/dist/cjs/services/shopify/queries.js.map +1 -0
  247. package/dist/cjs/services/shopify/resolveStoreDomain.js +28 -0
  248. package/dist/cjs/services/shopify/resolveStoreDomain.js.map +1 -0
  249. package/dist/cjs/services/shopify/shopifyEntityResolver.js +109 -0
  250. package/dist/cjs/services/shopify/shopifyEntityResolver.js.map +1 -0
  251. package/dist/cjs/services/shopify/shopifyStorefrontClient.js +58 -0
  252. package/dist/cjs/services/shopify/shopifyStorefrontClient.js.map +1 -0
  253. package/dist/cjs/services/shopify/transformShopifyEntity.js +137 -0
  254. package/dist/cjs/services/shopify/transformShopifyEntity.js.map +1 -0
  255. package/dist/cjs/services/shopify/types.js +4 -0
  256. package/dist/cjs/services/shopify/types.js.map +1 -0
  257. package/dist/cjs/styles/base-tokens.css +152 -0
  258. package/dist/cjs/styles/base-utilities.css +424 -0
  259. package/dist/cjs/styles/components.css +6 -0
  260. package/dist/cjs/styles/prompt-input-tokens.css +136 -0
  261. package/dist/cjs/styles/tailwind-theme.css +138 -0
  262. package/dist/cjs/test-types.d.js +2 -0
  263. package/dist/cjs/test-types.d.js.map +1 -0
  264. package/dist/cjs/testUtils.js +25 -0
  265. package/dist/cjs/testUtils.js.map +1 -0
  266. package/dist/cjs/types/answerUpdatedEvent.js +20 -0
  267. package/dist/cjs/types/answerUpdatedEvent.js.map +1 -0
  268. package/dist/cjs/types/blog.js +4 -0
  269. package/dist/cjs/types/blog.js.map +1 -0
  270. package/dist/cjs/types/callout.js +6 -0
  271. package/dist/cjs/types/callout.js.map +1 -0
  272. package/dist/cjs/types/dependencies.js +4 -0
  273. package/dist/cjs/types/dependencies.js.map +1 -0
  274. package/dist/cjs/types/entity.js +4 -0
  275. package/dist/cjs/types/entity.js.map +1 -0
  276. package/dist/cjs/types/link-types.js +62 -0
  277. package/dist/cjs/types/link-types.js.map +1 -0
  278. package/dist/cjs/types/page-section.js +4 -0
  279. package/dist/cjs/types/page-section.js.map +1 -0
  280. package/dist/cjs/types/placement.js +4 -0
  281. package/dist/cjs/types/placement.js.map +1 -0
  282. package/dist/cjs/types/redirectEvent.js +27 -0
  283. package/dist/cjs/types/redirectEvent.js.map +1 -0
  284. package/dist/cjs/types/userQueryEvent.js +19 -0
  285. package/dist/cjs/types/userQueryEvent.js.map +1 -0
  286. package/dist/cjs/utils/analyticsEvents.js +91 -0
  287. package/dist/cjs/utils/analyticsEvents.js.map +1 -0
  288. package/dist/cjs/utils/componentTracking.js +90 -0
  289. package/dist/cjs/utils/componentTracking.js.map +1 -0
  290. package/dist/cjs/utils/contentKeywordMatcher.js +56 -0
  291. package/dist/cjs/utils/contentKeywordMatcher.js.map +1 -0
  292. package/dist/cjs/utils/conversationApi.js +52 -0
  293. package/dist/cjs/utils/conversationApi.js.map +1 -0
  294. package/dist/cjs/utils/conversationMode.js +23 -0
  295. package/dist/cjs/utils/conversationMode.js.map +1 -0
  296. package/dist/cjs/utils/diagnosticsCollector.js +58 -0
  297. package/dist/cjs/utils/diagnosticsCollector.js.map +1 -0
  298. package/dist/cjs/utils/entityLinkParser.js +256 -0
  299. package/dist/cjs/utils/entityLinkParser.js.map +1 -0
  300. package/dist/cjs/utils/htmlCommentParser.js +122 -0
  301. package/dist/cjs/utils/htmlCommentParser.js.map +1 -0
  302. package/dist/cjs/utils/image-utils.js +49 -0
  303. package/dist/cjs/utils/image-utils.js.map +1 -0
  304. package/dist/cjs/utils/intentExtractor.js +47 -0
  305. package/dist/cjs/utils/intentExtractor.js.map +1 -0
  306. package/dist/cjs/utils/markdownPreprocessor.js +268 -0
  307. package/dist/cjs/utils/markdownPreprocessor.js.map +1 -0
  308. package/dist/cjs/utils/navigationStack.js +35 -0
  309. package/dist/cjs/utils/navigationStack.js.map +1 -0
  310. package/dist/cjs/utils/nodeMatchers.js +43 -0
  311. package/dist/cjs/utils/nodeMatchers.js.map +1 -0
  312. package/dist/cjs/utils/propsExtractor.js +66 -0
  313. package/dist/cjs/utils/propsExtractor.js.map +1 -0
  314. package/dist/cjs/utils/sessionManager.js +161 -0
  315. package/dist/cjs/utils/sessionManager.js.map +1 -0
  316. package/dist/cjs/utils/unifiedMarkdownParser.js +44 -0
  317. package/dist/cjs/utils/unifiedMarkdownParser.js.map +1 -0
  318. package/dist/cjs/utils/web5LinkValidator.js +56 -0
  319. package/dist/cjs/utils/web5LinkValidator.js.map +1 -0
  320. package/dist/cjs/utils/web5LinkValidator.test.js +115 -0
  321. package/dist/cjs/utils/web5LinkValidator.test.js.map +1 -0
  322. package/dist/esm/client/clientBundleOverride.js +43 -0
  323. package/dist/esm/client/clientBundleOverride.js.map +1 -0
  324. package/dist/esm/client/devEnvironment.js +2 -0
  325. package/dist/esm/client/devEnvironment.js.map +1 -0
  326. package/dist/esm/client/loadClientBundle.js +82 -0
  327. package/dist/esm/client/loadClientBundle.js.map +1 -0
  328. package/dist/esm/client/wixAuthFetch.js +68 -0
  329. package/dist/esm/client/wixAuthFetch.js.map +1 -0
  330. package/dist/esm/clients.js +11 -0
  331. package/dist/esm/clients.js.map +1 -0
  332. package/dist/esm/color/colorUtils.js +118 -0
  333. package/dist/esm/color/colorUtils.js.map +1 -0
  334. package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js +61 -0
  335. package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
  336. package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js +135 -0
  337. package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
  338. package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js +79 -0
  339. package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
  340. package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js +165 -0
  341. package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
  342. package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js +75 -0
  343. package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
  344. package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js +23 -0
  345. package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
  346. package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js +113 -0
  347. package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
  348. package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js +69 -0
  349. package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
  350. package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js +119 -0
  351. package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
  352. package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js +203 -0
  353. package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
  354. package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js +13 -0
  355. package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
  356. package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js +108 -0
  357. package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
  358. package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js +130 -0
  359. package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
  360. package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js +12 -0
  361. package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
  362. package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js +14 -0
  363. package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
  364. package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js +59 -0
  365. package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
  366. package/dist/esm/component/componentDefinitions/index.js +45 -0
  367. package/dist/esm/component/componentDefinitions/index.js.map +1 -0
  368. package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js +80 -0
  369. package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
  370. package/dist/esm/component/componentDefinitions/parse-utils.js +412 -0
  371. package/dist/esm/component/componentDefinitions/parse-utils.js.map +1 -0
  372. package/dist/esm/component/componentDefinitions/specHelpers.js +31 -0
  373. package/dist/esm/component/componentDefinitions/specHelpers.js.map +1 -0
  374. package/dist/esm/component/componentParser.js +358 -0
  375. package/dist/esm/component/componentParser.js.map +1 -0
  376. package/dist/esm/component/diagnosticTypes.js +26 -0
  377. package/dist/esm/component/diagnosticTypes.js.map +1 -0
  378. package/dist/esm/component/parser-types.js +2 -0
  379. package/dist/esm/component/parser-types.js.map +1 -0
  380. package/dist/esm/component/section-definition.js +2 -0
  381. package/dist/esm/component/section-definition.js.map +1 -0
  382. package/dist/esm/component/types.js +2 -0
  383. package/dist/esm/component/types.js.map +1 -0
  384. package/dist/esm/components/placement/PlacementPayloadContext.js +24 -0
  385. package/dist/esm/components/placement/PlacementPayloadContext.js.map +1 -0
  386. package/dist/esm/components/placement/PlacementResponseRenderer.css +269 -0
  387. package/dist/esm/components/placement/PlacementResponseRenderer.js +173 -0
  388. package/dist/esm/components/placement/PlacementResponseRenderer.js.map +1 -0
  389. package/dist/esm/components/placement/buildPlacementDependencies.js +212 -0
  390. package/dist/esm/components/placement/buildPlacementDependencies.js.map +1 -0
  391. package/dist/esm/components/ui/BottomContainer.js +14 -0
  392. package/dist/esm/components/ui/BottomContainer.js.map +1 -0
  393. package/dist/esm/components/ui/CalloutBlock.js +118 -0
  394. package/dist/esm/components/ui/CalloutBlock.js.map +1 -0
  395. package/dist/esm/components/ui/Disclaimer.css +35 -0
  396. package/dist/esm/components/ui/Disclaimer.js +32 -0
  397. package/dist/esm/components/ui/Disclaimer.js.map +1 -0
  398. package/dist/esm/components/ui/FeedbackBar.css +267 -0
  399. package/dist/esm/components/ui/FeedbackBar.js +221 -0
  400. package/dist/esm/components/ui/FeedbackBar.js.map +1 -0
  401. package/dist/esm/components/ui/Loader.js +43 -0
  402. package/dist/esm/components/ui/Loader.js.map +1 -0
  403. package/dist/esm/components/ui/MarkdownText.js +283 -0
  404. package/dist/esm/components/ui/MarkdownText.js.map +1 -0
  405. package/dist/esm/components/ui/OptimizedImage.js +354 -0
  406. package/dist/esm/components/ui/OptimizedImage.js.map +1 -0
  407. package/dist/esm/components/ui/PlacementLoader.css +101 -0
  408. package/dist/esm/components/ui/PlacementLoader.js +28 -0
  409. package/dist/esm/components/ui/PlacementLoader.js.map +1 -0
  410. package/dist/esm/components/ui/PromptEntryEmptyState.css +172 -0
  411. package/dist/esm/components/ui/PromptEntryEmptyState.js +36 -0
  412. package/dist/esm/components/ui/PromptEntryEmptyState.js.map +1 -0
  413. package/dist/esm/components/ui/SearchSection.css +538 -0
  414. package/dist/esm/components/ui/SearchSection.js +317 -0
  415. package/dist/esm/components/ui/SearchSection.js.map +1 -0
  416. package/dist/esm/components/ui/SectionSkeleton.css +109 -0
  417. package/dist/esm/components/ui/SectionSkeleton.js +100 -0
  418. package/dist/esm/components/ui/SectionSkeleton.js.map +1 -0
  419. package/dist/esm/components/ui/SmartIcon.js +91 -0
  420. package/dist/esm/components/ui/SmartIcon.js.map +1 -0
  421. package/dist/esm/components/ui/UnifiedLink.js +105 -0
  422. package/dist/esm/components/ui/UnifiedLink.js.map +1 -0
  423. package/dist/esm/components/ui/UserQuery.js +167 -0
  424. package/dist/esm/components/ui/UserQuery.js.map +1 -0
  425. package/dist/esm/components/ui/icons/ArrowTopRightIcon.js +17 -0
  426. package/dist/esm/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
  427. package/dist/esm/components/ui/icons/ArrowUpIcon.js +29 -0
  428. package/dist/esm/components/ui/icons/ArrowUpIcon.js.map +1 -0
  429. package/dist/esm/components/ui/icons/CheckIcon.js +17 -0
  430. package/dist/esm/components/ui/icons/CheckIcon.js.map +1 -0
  431. package/dist/esm/components/ui/icons/CommentIcon.js +15 -0
  432. package/dist/esm/components/ui/icons/CommentIcon.js.map +1 -0
  433. package/dist/esm/components/ui/icons/PlusIcon.js +25 -0
  434. package/dist/esm/components/ui/icons/PlusIcon.js.map +1 -0
  435. package/dist/esm/components/ui/icons/RedoIcon.js +25 -0
  436. package/dist/esm/components/ui/icons/RedoIcon.js.map +1 -0
  437. package/dist/esm/components/ui/icons/ShareIcon.js +37 -0
  438. package/dist/esm/components/ui/icons/ShareIcon.js.map +1 -0
  439. package/dist/esm/components/ui/icons/UndoIcon.js +25 -0
  440. package/dist/esm/components/ui/icons/UndoIcon.js.map +1 -0
  441. package/dist/esm/components/ui/table.js +92 -0
  442. package/dist/esm/components/ui/table.js.map +1 -0
  443. package/dist/esm/context/ChipsContext.js +7 -0
  444. package/dist/esm/context/ChipsContext.js.map +1 -0
  445. package/dist/esm/context/ComponentDependenciesContext.js +19 -0
  446. package/dist/esm/context/ComponentDependenciesContext.js.map +1 -0
  447. package/dist/esm/entity/defaultExtractor.js +111 -0
  448. package/dist/esm/entity/defaultExtractor.js.map +1 -0
  449. package/dist/esm/entity/enrichEntitiesFromPayload.js +35 -0
  450. package/dist/esm/entity/enrichEntitiesFromPayload.js.map +1 -0
  451. package/dist/esm/entity/fetchEntityListData.js +76 -0
  452. package/dist/esm/entity/fetchEntityListData.js.map +1 -0
  453. package/dist/esm/entity/index.js +29 -0
  454. package/dist/esm/entity/index.js.map +1 -0
  455. package/dist/esm/entity/types.js +2 -0
  456. package/dist/esm/entity/types.js.map +1 -0
  457. package/dist/esm/errors/conversationErrorTypes.js +50 -0
  458. package/dist/esm/errors/conversationErrorTypes.js.map +1 -0
  459. package/dist/esm/errors/errorTemplates.js +81 -0
  460. package/dist/esm/errors/errorTemplates.js.map +1 -0
  461. package/dist/esm/errors/index.js +3 -0
  462. package/dist/esm/errors/index.js.map +1 -0
  463. package/dist/esm/external-types.d.js +2 -0
  464. package/dist/esm/external-types.d.js.map +1 -0
  465. package/dist/esm/featureToggles/FeatureToggleContext.js +30 -0
  466. package/dist/esm/featureToggles/FeatureToggleContext.js.map +1 -0
  467. package/dist/esm/hooks/useConversation.js +6 -0
  468. package/dist/esm/hooks/useConversation.js.map +1 -0
  469. package/dist/esm/hooks/useDebugImageContext.js +6 -0
  470. package/dist/esm/hooks/useDebugImageContext.js.map +1 -0
  471. package/dist/esm/hooks/useEntityTransforms.js +6 -0
  472. package/dist/esm/hooks/useEntityTransforms.js.map +1 -0
  473. package/dist/esm/hooks/useMarkdownUtils.js +6 -0
  474. package/dist/esm/hooks/useMarkdownUtils.js.map +1 -0
  475. package/dist/esm/hooks/useResolveGenericEntityData.js +6 -0
  476. package/dist/esm/hooks/useResolveGenericEntityData.js.map +1 -0
  477. package/dist/esm/hooks/useResolveSearchSpringEntityData.js +146 -0
  478. package/dist/esm/hooks/useResolveSearchSpringEntityData.js.map +1 -0
  479. package/dist/esm/hooks/useResolveShopifyEntityData.js +191 -0
  480. package/dist/esm/hooks/useResolveShopifyEntityData.js.map +1 -0
  481. package/dist/esm/hooks/useResolvedImageSources.js +169 -0
  482. package/dist/esm/hooks/useResolvedImageSources.js.map +1 -0
  483. package/dist/esm/hooks/useWeb5Link.js +6 -0
  484. package/dist/esm/hooks/useWeb5Link.js.map +1 -0
  485. package/dist/esm/image/contextualImageTypes.js +2 -0
  486. package/dist/esm/image/contextualImageTypes.js.map +1 -0
  487. package/dist/esm/image/imageSearchFilterTypes.js +15 -0
  488. package/dist/esm/image/imageSearchFilterTypes.js.map +1 -0
  489. package/dist/esm/image/imageSearchFilters.js +18 -0
  490. package/dist/esm/image/imageSearchFilters.js.map +1 -0
  491. package/dist/esm/index.js +152 -0
  492. package/dist/esm/index.js.map +1 -0
  493. package/dist/esm/lib/utils.js +33 -0
  494. package/dist/esm/lib/utils.js.map +1 -0
  495. package/dist/esm/markdownBlocks.js +641 -0
  496. package/dist/esm/markdownBlocks.js.map +1 -0
  497. package/dist/esm/match/astToParts.js +371 -0
  498. package/dist/esm/match/astToParts.js.map +1 -0
  499. package/dist/esm/match/extractProps.js +634 -0
  500. package/dist/esm/match/extractProps.js.map +1 -0
  501. package/dist/esm/match/index.js +4 -0
  502. package/dist/esm/match/index.js.map +1 -0
  503. package/dist/esm/match/matchAllSections.js +31 -0
  504. package/dist/esm/match/matchAllSections.js.map +1 -0
  505. package/dist/esm/match/matchMarkdown.js +36 -0
  506. package/dist/esm/match/matchMarkdown.js.map +1 -0
  507. package/dist/esm/parts/parts.js +171 -0
  508. package/dist/esm/parts/parts.js.map +1 -0
  509. package/dist/esm/patternAnalyzer/conflictDetector.js +99 -0
  510. package/dist/esm/patternAnalyzer/conflictDetector.js.map +1 -0
  511. package/dist/esm/patternAnalyzer/index.js +36 -0
  512. package/dist/esm/patternAnalyzer/index.js.map +1 -0
  513. package/dist/esm/patternAnalyzer/markdownGenerator.js +344 -0
  514. package/dist/esm/patternAnalyzer/markdownGenerator.js.map +1 -0
  515. package/dist/esm/patternAnalyzer/mergeDetector.js +504 -0
  516. package/dist/esm/patternAnalyzer/mergeDetector.js.map +1 -0
  517. package/dist/esm/patternAnalyzer/parserValidator.js +52 -0
  518. package/dist/esm/patternAnalyzer/parserValidator.js.map +1 -0
  519. package/dist/esm/patternAnalyzer/patternWriter.js +102 -0
  520. package/dist/esm/patternAnalyzer/patternWriter.js.map +1 -0
  521. package/dist/esm/patternAnalyzer/run.js +138 -0
  522. package/dist/esm/patternAnalyzer/run.js.map +1 -0
  523. package/dist/esm/patternAnalyzer/types.js +2 -0
  524. package/dist/esm/patternAnalyzer/types.js.map +1 -0
  525. package/dist/esm/patternValidator/ERROR_MESSAGES.md +110 -0
  526. package/dist/esm/patternValidator/README.md +757 -0
  527. package/dist/esm/patternValidator/automaton.js +345 -0
  528. package/dist/esm/patternValidator/automaton.js.map +1 -0
  529. package/dist/esm/patternValidator/index.js +190 -0
  530. package/dist/esm/patternValidator/index.js.map +1 -0
  531. package/dist/esm/patternValidator/lexer.js +214 -0
  532. package/dist/esm/patternValidator/lexer.js.map +1 -0
  533. package/dist/esm/patternValidator/matcher.js +717 -0
  534. package/dist/esm/patternValidator/matcher.js.map +1 -0
  535. package/dist/esm/patternValidator/parser.js +531 -0
  536. package/dist/esm/patternValidator/parser.js.map +1 -0
  537. package/dist/esm/patternValidator/types.js +2 -0
  538. package/dist/esm/patternValidator/types.js.map +1 -0
  539. package/dist/esm/patternValidator/validator.test.js +1275 -0
  540. package/dist/esm/patternValidator/validator.test.js.map +1 -0
  541. package/dist/esm/registry/ComponentRegistry.js +435 -0
  542. package/dist/esm/registry/ComponentRegistry.js.map +1 -0
  543. package/dist/esm/registry/Intent.js +15 -0
  544. package/dist/esm/registry/Intent.js.map +1 -0
  545. package/dist/esm/registry/index.js +3 -0
  546. package/dist/esm/registry/index.js.map +1 -0
  547. package/dist/esm/registry/types.js +2 -0
  548. package/dist/esm/registry/types.js.map +1 -0
  549. package/dist/esm/services/cart/addToCart.js +146 -0
  550. package/dist/esm/services/cart/addToCart.js.map +1 -0
  551. package/dist/esm/services/cart/index.js +2 -0
  552. package/dist/esm/services/cart/index.js.map +1 -0
  553. package/dist/esm/services/searchspring/index.js +3 -0
  554. package/dist/esm/services/searchspring/index.js.map +1 -0
  555. package/dist/esm/services/searchspring/searchSpringClient.js +44 -0
  556. package/dist/esm/services/searchspring/searchSpringClient.js.map +1 -0
  557. package/dist/esm/services/searchspring/transformSSProduct.js +66 -0
  558. package/dist/esm/services/searchspring/transformSSProduct.js.map +1 -0
  559. package/dist/esm/services/searchspring/types.js +2 -0
  560. package/dist/esm/services/searchspring/types.js.map +1 -0
  561. package/dist/esm/services/shopify/globals.d.js +7 -0
  562. package/dist/esm/services/shopify/globals.d.js.map +1 -0
  563. package/dist/esm/services/shopify/index.js +6 -0
  564. package/dist/esm/services/shopify/index.js.map +1 -0
  565. package/dist/esm/services/shopify/queries.js +210 -0
  566. package/dist/esm/services/shopify/queries.js.map +1 -0
  567. package/dist/esm/services/shopify/resolveStoreDomain.js +25 -0
  568. package/dist/esm/services/shopify/resolveStoreDomain.js.map +1 -0
  569. package/dist/esm/services/shopify/shopifyEntityResolver.js +105 -0
  570. package/dist/esm/services/shopify/shopifyEntityResolver.js.map +1 -0
  571. package/dist/esm/services/shopify/shopifyStorefrontClient.js +52 -0
  572. package/dist/esm/services/shopify/shopifyStorefrontClient.js.map +1 -0
  573. package/dist/esm/services/shopify/transformShopifyEntity.js +130 -0
  574. package/dist/esm/services/shopify/transformShopifyEntity.js.map +1 -0
  575. package/dist/esm/services/shopify/types.js +2 -0
  576. package/dist/esm/services/shopify/types.js.map +1 -0
  577. package/dist/esm/styles/base-tokens.css +152 -0
  578. package/dist/esm/styles/base-utilities.css +424 -0
  579. package/dist/esm/styles/components.css +6 -0
  580. package/dist/esm/styles/prompt-input-tokens.css +136 -0
  581. package/dist/esm/styles/tailwind-theme.css +138 -0
  582. package/dist/esm/test-types.d.js +2 -0
  583. package/dist/esm/test-types.d.js.map +1 -0
  584. package/dist/esm/testUtils.js +20 -0
  585. package/dist/esm/testUtils.js.map +1 -0
  586. package/dist/esm/types/answerUpdatedEvent.js +16 -0
  587. package/dist/esm/types/answerUpdatedEvent.js.map +1 -0
  588. package/dist/esm/types/blog.js +2 -0
  589. package/dist/esm/types/blog.js.map +1 -0
  590. package/dist/esm/types/callout.js +2 -0
  591. package/dist/esm/types/callout.js.map +1 -0
  592. package/dist/esm/types/dependencies.js +2 -0
  593. package/dist/esm/types/dependencies.js.map +1 -0
  594. package/dist/esm/types/entity.js +2 -0
  595. package/dist/esm/types/entity.js.map +1 -0
  596. package/dist/esm/types/link-types.js +52 -0
  597. package/dist/esm/types/link-types.js.map +1 -0
  598. package/dist/esm/types/page-section.js +2 -0
  599. package/dist/esm/types/page-section.js.map +1 -0
  600. package/dist/esm/types/placement.js +2 -0
  601. package/dist/esm/types/placement.js.map +1 -0
  602. package/dist/esm/types/redirectEvent.js +23 -0
  603. package/dist/esm/types/redirectEvent.js.map +1 -0
  604. package/dist/esm/types/userQueryEvent.js +15 -0
  605. package/dist/esm/types/userQueryEvent.js.map +1 -0
  606. package/dist/esm/utils/analyticsEvents.js +84 -0
  607. package/dist/esm/utils/analyticsEvents.js.map +1 -0
  608. package/dist/esm/utils/componentTracking.js +84 -0
  609. package/dist/esm/utils/componentTracking.js.map +1 -0
  610. package/dist/esm/utils/contentKeywordMatcher.js +50 -0
  611. package/dist/esm/utils/contentKeywordMatcher.js.map +1 -0
  612. package/dist/esm/utils/conversationApi.js +45 -0
  613. package/dist/esm/utils/conversationApi.js.map +1 -0
  614. package/dist/esm/utils/conversationMode.js +18 -0
  615. package/dist/esm/utils/conversationMode.js.map +1 -0
  616. package/dist/esm/utils/diagnosticsCollector.js +52 -0
  617. package/dist/esm/utils/diagnosticsCollector.js.map +1 -0
  618. package/dist/esm/utils/entityLinkParser.js +246 -0
  619. package/dist/esm/utils/entityLinkParser.js.map +1 -0
  620. package/dist/esm/utils/htmlCommentParser.js +117 -0
  621. package/dist/esm/utils/htmlCommentParser.js.map +1 -0
  622. package/dist/esm/utils/image-utils.js +45 -0
  623. package/dist/esm/utils/image-utils.js.map +1 -0
  624. package/dist/esm/utils/intentExtractor.js +45 -0
  625. package/dist/esm/utils/intentExtractor.js.map +1 -0
  626. package/dist/esm/utils/markdownPreprocessor.js +257 -0
  627. package/dist/esm/utils/markdownPreprocessor.js.map +1 -0
  628. package/dist/esm/utils/navigationStack.js +27 -0
  629. package/dist/esm/utils/navigationStack.js.map +1 -0
  630. package/dist/esm/utils/nodeMatchers.js +38 -0
  631. package/dist/esm/utils/nodeMatchers.js.map +1 -0
  632. package/dist/esm/utils/propsExtractor.js +58 -0
  633. package/dist/esm/utils/propsExtractor.js.map +1 -0
  634. package/dist/esm/utils/sessionManager.js +151 -0
  635. package/dist/esm/utils/sessionManager.js.map +1 -0
  636. package/dist/esm/utils/unifiedMarkdownParser.js +36 -0
  637. package/dist/esm/utils/unifiedMarkdownParser.js.map +1 -0
  638. package/dist/esm/utils/web5LinkValidator.js +52 -0
  639. package/dist/esm/utils/web5LinkValidator.js.map +1 -0
  640. package/dist/esm/utils/web5LinkValidator.test.js +113 -0
  641. package/dist/esm/utils/web5LinkValidator.test.js.map +1 -0
  642. package/dist/types/client/clientBundleOverride.d.ts +26 -0
  643. package/dist/types/client/clientBundleOverride.d.ts.map +1 -0
  644. package/dist/types/client/devEnvironment.d.ts +24 -0
  645. package/dist/types/client/devEnvironment.d.ts.map +1 -0
  646. package/dist/types/client/loadClientBundle.d.ts +27 -0
  647. package/dist/types/client/loadClientBundle.d.ts.map +1 -0
  648. package/dist/types/client/wixAuthFetch.d.ts +12 -0
  649. package/dist/types/client/wixAuthFetch.d.ts.map +1 -0
  650. package/dist/types/clients.d.ts +10 -0
  651. package/dist/types/clients.d.ts.map +1 -0
  652. package/dist/types/color/colorUtils.d.ts +9 -0
  653. package/dist/types/color/colorUtils.d.ts.map +1 -0
  654. package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts +11 -0
  655. package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts.map +1 -0
  656. package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts +11 -0
  657. package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts.map +1 -0
  658. package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts +11 -0
  659. package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts.map +1 -0
  660. package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts +11 -0
  661. package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts.map +1 -0
  662. package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts +12 -0
  663. package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts.map +1 -0
  664. package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts +16 -0
  665. package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts.map +1 -0
  666. package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts +11 -0
  667. package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts.map +1 -0
  668. package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts +11 -0
  669. package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts.map +1 -0
  670. package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts +23 -0
  671. package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts.map +1 -0
  672. package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts +12 -0
  673. package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts.map +1 -0
  674. package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts +11 -0
  675. package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts.map +1 -0
  676. package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts +11 -0
  677. package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts.map +1 -0
  678. package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts +11 -0
  679. package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts.map +1 -0
  680. package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts +10 -0
  681. package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts.map +1 -0
  682. package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts +12 -0
  683. package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts.map +1 -0
  684. package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts +11 -0
  685. package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts.map +1 -0
  686. package/dist/types/component/componentDefinitions/index.d.ts +26 -0
  687. package/dist/types/component/componentDefinitions/index.d.ts.map +1 -0
  688. package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts +11 -0
  689. package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts.map +1 -0
  690. package/dist/types/component/componentDefinitions/parse-utils.d.ts +88 -0
  691. package/dist/types/component/componentDefinitions/parse-utils.d.ts.map +1 -0
  692. package/dist/types/component/componentDefinitions/specHelpers.d.ts +16 -0
  693. package/dist/types/component/componentDefinitions/specHelpers.d.ts.map +1 -0
  694. package/dist/types/component/componentParser.d.ts +63 -0
  695. package/dist/types/component/componentParser.d.ts.map +1 -0
  696. package/dist/types/component/diagnosticTypes.d.ts +23 -0
  697. package/dist/types/component/diagnosticTypes.d.ts.map +1 -0
  698. package/dist/types/component/parser-types.d.ts +71 -0
  699. package/dist/types/component/parser-types.d.ts.map +1 -0
  700. package/dist/types/component/section-definition.d.ts +32 -0
  701. package/dist/types/component/section-definition.d.ts.map +1 -0
  702. package/dist/types/component/types.d.ts +315 -0
  703. package/dist/types/component/types.d.ts.map +1 -0
  704. package/dist/types/components/placement/PlacementPayloadContext.d.ts +20 -0
  705. package/dist/types/components/placement/PlacementPayloadContext.d.ts.map +1 -0
  706. package/dist/types/components/placement/PlacementResponseRenderer.d.ts +106 -0
  707. package/dist/types/components/placement/PlacementResponseRenderer.d.ts.map +1 -0
  708. package/dist/types/components/placement/buildPlacementDependencies.d.ts +44 -0
  709. package/dist/types/components/placement/buildPlacementDependencies.d.ts.map +1 -0
  710. package/dist/types/components/ui/BottomContainer.d.ts +9 -0
  711. package/dist/types/components/ui/BottomContainer.d.ts.map +1 -0
  712. package/dist/types/components/ui/CalloutBlock.d.ts +9 -0
  713. package/dist/types/components/ui/CalloutBlock.d.ts.map +1 -0
  714. package/dist/types/components/ui/Disclaimer.d.ts +21 -0
  715. package/dist/types/components/ui/Disclaimer.d.ts.map +1 -0
  716. package/dist/types/components/ui/FeedbackBar.d.ts +41 -0
  717. package/dist/types/components/ui/FeedbackBar.d.ts.map +1 -0
  718. package/dist/types/components/ui/Loader.d.ts +9 -0
  719. package/dist/types/components/ui/Loader.d.ts.map +1 -0
  720. package/dist/types/components/ui/MarkdownText.d.ts +9 -0
  721. package/dist/types/components/ui/MarkdownText.d.ts.map +1 -0
  722. package/dist/types/components/ui/OptimizedImage.d.ts +59 -0
  723. package/dist/types/components/ui/OptimizedImage.d.ts.map +1 -0
  724. package/dist/types/components/ui/PlacementLoader.d.ts +15 -0
  725. package/dist/types/components/ui/PlacementLoader.d.ts.map +1 -0
  726. package/dist/types/components/ui/PromptEntryEmptyState.d.ts +21 -0
  727. package/dist/types/components/ui/PromptEntryEmptyState.d.ts.map +1 -0
  728. package/dist/types/components/ui/SearchSection.d.ts +37 -0
  729. package/dist/types/components/ui/SearchSection.d.ts.map +1 -0
  730. package/dist/types/components/ui/SectionSkeleton.d.ts +27 -0
  731. package/dist/types/components/ui/SectionSkeleton.d.ts.map +1 -0
  732. package/dist/types/components/ui/SmartIcon.d.ts +19 -0
  733. package/dist/types/components/ui/SmartIcon.d.ts.map +1 -0
  734. package/dist/types/components/ui/UnifiedLink.d.ts +22 -0
  735. package/dist/types/components/ui/UnifiedLink.d.ts.map +1 -0
  736. package/dist/types/components/ui/UserQuery.d.ts +33 -0
  737. package/dist/types/components/ui/UserQuery.d.ts.map +1 -0
  738. package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts +3 -0
  739. package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts.map +1 -0
  740. package/dist/types/components/ui/icons/ArrowUpIcon.d.ts +3 -0
  741. package/dist/types/components/ui/icons/ArrowUpIcon.d.ts.map +1 -0
  742. package/dist/types/components/ui/icons/CheckIcon.d.ts +3 -0
  743. package/dist/types/components/ui/icons/CheckIcon.d.ts.map +1 -0
  744. package/dist/types/components/ui/icons/CommentIcon.d.ts +3 -0
  745. package/dist/types/components/ui/icons/CommentIcon.d.ts.map +1 -0
  746. package/dist/types/components/ui/icons/PlusIcon.d.ts +3 -0
  747. package/dist/types/components/ui/icons/PlusIcon.d.ts.map +1 -0
  748. package/dist/types/components/ui/icons/RedoIcon.d.ts +3 -0
  749. package/dist/types/components/ui/icons/RedoIcon.d.ts.map +1 -0
  750. package/dist/types/components/ui/icons/ShareIcon.d.ts +3 -0
  751. package/dist/types/components/ui/icons/ShareIcon.d.ts.map +1 -0
  752. package/dist/types/components/ui/icons/UndoIcon.d.ts +3 -0
  753. package/dist/types/components/ui/icons/UndoIcon.d.ts.map +1 -0
  754. package/dist/types/components/ui/table.d.ts +11 -0
  755. package/dist/types/components/ui/table.d.ts.map +1 -0
  756. package/dist/types/context/ChipsContext.d.ts +8 -0
  757. package/dist/types/context/ChipsContext.d.ts.map +1 -0
  758. package/dist/types/context/ComponentDependenciesContext.d.ts +8 -0
  759. package/dist/types/context/ComponentDependenciesContext.d.ts.map +1 -0
  760. package/dist/types/entity/defaultExtractor.d.ts +14 -0
  761. package/dist/types/entity/defaultExtractor.d.ts.map +1 -0
  762. package/dist/types/entity/enrichEntitiesFromPayload.d.ts +27 -0
  763. package/dist/types/entity/enrichEntitiesFromPayload.d.ts.map +1 -0
  764. package/dist/types/entity/fetchEntityListData.d.ts +20 -0
  765. package/dist/types/entity/fetchEntityListData.d.ts.map +1 -0
  766. package/dist/types/entity/index.d.ts +16 -0
  767. package/dist/types/entity/index.d.ts.map +1 -0
  768. package/dist/types/entity/types.d.ts +13 -0
  769. package/dist/types/entity/types.d.ts.map +1 -0
  770. package/dist/types/errors/conversationErrorTypes.d.ts +20 -0
  771. package/dist/types/errors/conversationErrorTypes.d.ts.map +1 -0
  772. package/dist/types/errors/errorTemplates.d.ts +27 -0
  773. package/dist/types/errors/errorTemplates.d.ts.map +1 -0
  774. package/dist/types/errors/index.d.ts +3 -0
  775. package/dist/types/errors/index.d.ts.map +1 -0
  776. package/dist/types/featureToggles/FeatureToggleContext.d.ts +18 -0
  777. package/dist/types/featureToggles/FeatureToggleContext.d.ts.map +1 -0
  778. package/dist/types/hooks/useConversation.d.ts +3 -0
  779. package/dist/types/hooks/useConversation.d.ts.map +1 -0
  780. package/dist/types/hooks/useDebugImageContext.d.ts +2 -0
  781. package/dist/types/hooks/useDebugImageContext.d.ts.map +1 -0
  782. package/dist/types/hooks/useEntityTransforms.d.ts +3 -0
  783. package/dist/types/hooks/useEntityTransforms.d.ts.map +1 -0
  784. package/dist/types/hooks/useMarkdownUtils.d.ts +3 -0
  785. package/dist/types/hooks/useMarkdownUtils.d.ts.map +1 -0
  786. package/dist/types/hooks/useResolveGenericEntityData.d.ts +11 -0
  787. package/dist/types/hooks/useResolveGenericEntityData.d.ts.map +1 -0
  788. package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts +20 -0
  789. package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts.map +1 -0
  790. package/dist/types/hooks/useResolveShopifyEntityData.d.ts +21 -0
  791. package/dist/types/hooks/useResolveShopifyEntityData.d.ts.map +1 -0
  792. package/dist/types/hooks/useResolvedImageSources.d.ts +6 -0
  793. package/dist/types/hooks/useResolvedImageSources.d.ts.map +1 -0
  794. package/dist/types/hooks/useWeb5Link.d.ts +3 -0
  795. package/dist/types/hooks/useWeb5Link.d.ts.map +1 -0
  796. package/dist/types/image/contextualImageTypes.d.ts +17 -0
  797. package/dist/types/image/contextualImageTypes.d.ts.map +1 -0
  798. package/dist/types/image/imageSearchFilterTypes.d.ts +14 -0
  799. package/dist/types/image/imageSearchFilterTypes.d.ts.map +1 -0
  800. package/dist/types/image/imageSearchFilters.d.ts +16 -0
  801. package/dist/types/image/imageSearchFilters.d.ts.map +1 -0
  802. package/dist/types/index.d.ts +88 -0
  803. package/dist/types/index.d.ts.map +1 -0
  804. package/dist/types/lib/utils.d.ts +3 -0
  805. package/dist/types/lib/utils.d.ts.map +1 -0
  806. package/dist/types/markdownBlocks.d.ts +44 -0
  807. package/dist/types/markdownBlocks.d.ts.map +1 -0
  808. package/dist/types/match/astToParts.d.ts +15 -0
  809. package/dist/types/match/astToParts.d.ts.map +1 -0
  810. package/dist/types/match/extractProps.d.ts +207 -0
  811. package/dist/types/match/extractProps.d.ts.map +1 -0
  812. package/dist/types/match/index.d.ts +4 -0
  813. package/dist/types/match/index.d.ts.map +1 -0
  814. package/dist/types/match/matchAllSections.d.ts +15 -0
  815. package/dist/types/match/matchAllSections.d.ts.map +1 -0
  816. package/dist/types/match/matchMarkdown.d.ts +25 -0
  817. package/dist/types/match/matchMarkdown.d.ts.map +1 -0
  818. package/dist/types/parts/parts.d.ts +144 -0
  819. package/dist/types/parts/parts.d.ts.map +1 -0
  820. package/dist/types/patternAnalyzer/conflictDetector.d.ts +19 -0
  821. package/dist/types/patternAnalyzer/conflictDetector.d.ts.map +1 -0
  822. package/dist/types/patternAnalyzer/index.d.ts +10 -0
  823. package/dist/types/patternAnalyzer/index.d.ts.map +1 -0
  824. package/dist/types/patternAnalyzer/markdownGenerator.d.ts +9 -0
  825. package/dist/types/patternAnalyzer/markdownGenerator.d.ts.map +1 -0
  826. package/dist/types/patternAnalyzer/mergeDetector.d.ts +14 -0
  827. package/dist/types/patternAnalyzer/mergeDetector.d.ts.map +1 -0
  828. package/dist/types/patternAnalyzer/parserValidator.d.ts +13 -0
  829. package/dist/types/patternAnalyzer/parserValidator.d.ts.map +1 -0
  830. package/dist/types/patternAnalyzer/patternWriter.d.ts +8 -0
  831. package/dist/types/patternAnalyzer/patternWriter.d.ts.map +1 -0
  832. package/dist/types/patternAnalyzer/run.d.ts +2 -0
  833. package/dist/types/patternAnalyzer/run.d.ts.map +1 -0
  834. package/dist/types/patternAnalyzer/types.d.ts +59 -0
  835. package/dist/types/patternAnalyzer/types.d.ts.map +1 -0
  836. package/dist/types/patternValidator/automaton.d.ts +3 -0
  837. package/dist/types/patternValidator/automaton.d.ts.map +1 -0
  838. package/dist/types/patternValidator/index.d.ts +48 -0
  839. package/dist/types/patternValidator/index.d.ts.map +1 -0
  840. package/dist/types/patternValidator/lexer.d.ts +3 -0
  841. package/dist/types/patternValidator/lexer.d.ts.map +1 -0
  842. package/dist/types/patternValidator/matcher.d.ts +14 -0
  843. package/dist/types/patternValidator/matcher.d.ts.map +1 -0
  844. package/dist/types/patternValidator/parser.d.ts +14 -0
  845. package/dist/types/patternValidator/parser.d.ts.map +1 -0
  846. package/dist/types/patternValidator/types.d.ts +125 -0
  847. package/dist/types/patternValidator/types.d.ts.map +1 -0
  848. package/dist/types/patternValidator/validator.test.d.ts +2 -0
  849. package/dist/types/patternValidator/validator.test.d.ts.map +1 -0
  850. package/dist/types/registry/ComponentRegistry.d.ts +64 -0
  851. package/dist/types/registry/ComponentRegistry.d.ts.map +1 -0
  852. package/dist/types/registry/Intent.d.ts +12 -0
  853. package/dist/types/registry/Intent.d.ts.map +1 -0
  854. package/dist/types/registry/index.d.ts +4 -0
  855. package/dist/types/registry/index.d.ts.map +1 -0
  856. package/dist/types/registry/types.d.ts +99 -0
  857. package/dist/types/registry/types.d.ts.map +1 -0
  858. package/dist/types/services/cart/addToCart.d.ts +26 -0
  859. package/dist/types/services/cart/addToCart.d.ts.map +1 -0
  860. package/dist/types/services/cart/index.d.ts +2 -0
  861. package/dist/types/services/cart/index.d.ts.map +1 -0
  862. package/dist/types/services/searchspring/index.d.ts +4 -0
  863. package/dist/types/services/searchspring/index.d.ts.map +1 -0
  864. package/dist/types/services/searchspring/searchSpringClient.d.ts +13 -0
  865. package/dist/types/services/searchspring/searchSpringClient.d.ts.map +1 -0
  866. package/dist/types/services/searchspring/transformSSProduct.d.ts +7 -0
  867. package/dist/types/services/searchspring/transformSSProduct.d.ts.map +1 -0
  868. package/dist/types/services/searchspring/types.d.ts +48 -0
  869. package/dist/types/services/searchspring/types.d.ts.map +1 -0
  870. package/dist/types/services/shopify/index.d.ts +7 -0
  871. package/dist/types/services/shopify/index.d.ts.map +1 -0
  872. package/dist/types/services/shopify/queries.d.ts +13 -0
  873. package/dist/types/services/shopify/queries.d.ts.map +1 -0
  874. package/dist/types/services/shopify/resolveStoreDomain.d.ts +14 -0
  875. package/dist/types/services/shopify/resolveStoreDomain.d.ts.map +1 -0
  876. package/dist/types/services/shopify/shopifyEntityResolver.d.ts +21 -0
  877. package/dist/types/services/shopify/shopifyEntityResolver.d.ts.map +1 -0
  878. package/dist/types/services/shopify/shopifyStorefrontClient.d.ts +19 -0
  879. package/dist/types/services/shopify/shopifyStorefrontClient.d.ts.map +1 -0
  880. package/dist/types/services/shopify/transformShopifyEntity.d.ts +11 -0
  881. package/dist/types/services/shopify/transformShopifyEntity.d.ts.map +1 -0
  882. package/dist/types/services/shopify/types.d.ts +109 -0
  883. package/dist/types/services/shopify/types.d.ts.map +1 -0
  884. package/dist/types/testUtils.d.ts +7 -0
  885. package/dist/types/testUtils.d.ts.map +1 -0
  886. package/dist/types/types/answerUpdatedEvent.d.ts +29 -0
  887. package/dist/types/types/answerUpdatedEvent.d.ts.map +1 -0
  888. package/dist/types/types/blog.d.ts +22 -0
  889. package/dist/types/types/blog.d.ts.map +1 -0
  890. package/dist/types/types/callout.d.ts +7 -0
  891. package/dist/types/types/callout.d.ts.map +1 -0
  892. package/dist/types/types/dependencies.d.ts +191 -0
  893. package/dist/types/types/dependencies.d.ts.map +1 -0
  894. package/dist/types/types/entity.d.ts +38 -0
  895. package/dist/types/types/entity.d.ts.map +1 -0
  896. package/dist/types/types/link-types.d.ts +38 -0
  897. package/dist/types/types/link-types.d.ts.map +1 -0
  898. package/dist/types/types/page-section.d.ts +27 -0
  899. package/dist/types/types/page-section.d.ts.map +1 -0
  900. package/dist/types/types/placement.d.ts +94 -0
  901. package/dist/types/types/placement.d.ts.map +1 -0
  902. package/dist/types/types/redirectEvent.d.ts +42 -0
  903. package/dist/types/types/redirectEvent.d.ts.map +1 -0
  904. package/dist/types/types/userQueryEvent.d.ts +24 -0
  905. package/dist/types/types/userQueryEvent.d.ts.map +1 -0
  906. package/dist/types/utils/analyticsEvents.d.ts +24 -0
  907. package/dist/types/utils/analyticsEvents.d.ts.map +1 -0
  908. package/dist/types/utils/componentTracking.d.ts +55 -0
  909. package/dist/types/utils/componentTracking.d.ts.map +1 -0
  910. package/dist/types/utils/contentKeywordMatcher.d.ts +14 -0
  911. package/dist/types/utils/contentKeywordMatcher.d.ts.map +1 -0
  912. package/dist/types/utils/conversationApi.d.ts +26 -0
  913. package/dist/types/utils/conversationApi.d.ts.map +1 -0
  914. package/dist/types/utils/conversationMode.d.ts +16 -0
  915. package/dist/types/utils/conversationMode.d.ts.map +1 -0
  916. package/dist/types/utils/diagnosticsCollector.d.ts +33 -0
  917. package/dist/types/utils/diagnosticsCollector.d.ts.map +1 -0
  918. package/dist/types/utils/entityLinkParser.d.ts +97 -0
  919. package/dist/types/utils/entityLinkParser.d.ts.map +1 -0
  920. package/dist/types/utils/htmlCommentParser.d.ts +13 -0
  921. package/dist/types/utils/htmlCommentParser.d.ts.map +1 -0
  922. package/dist/types/utils/image-utils.d.ts +10 -0
  923. package/dist/types/utils/image-utils.d.ts.map +1 -0
  924. package/dist/types/utils/intentExtractor.d.ts +11 -0
  925. package/dist/types/utils/intentExtractor.d.ts.map +1 -0
  926. package/dist/types/utils/markdownPreprocessor.d.ts +95 -0
  927. package/dist/types/utils/markdownPreprocessor.d.ts.map +1 -0
  928. package/dist/types/utils/navigationStack.d.ts +6 -0
  929. package/dist/types/utils/navigationStack.d.ts.map +1 -0
  930. package/dist/types/utils/nodeMatchers.d.ts +10 -0
  931. package/dist/types/utils/nodeMatchers.d.ts.map +1 -0
  932. package/dist/types/utils/propsExtractor.d.ts +51 -0
  933. package/dist/types/utils/propsExtractor.d.ts.map +1 -0
  934. package/dist/types/utils/sessionManager.d.ts +57 -0
  935. package/dist/types/utils/sessionManager.d.ts.map +1 -0
  936. package/dist/types/utils/unifiedMarkdownParser.d.ts +9 -0
  937. package/dist/types/utils/unifiedMarkdownParser.d.ts.map +1 -0
  938. package/dist/types/utils/web5LinkValidator.d.ts +14 -0
  939. package/dist/types/utils/web5LinkValidator.d.ts.map +1 -0
  940. package/dist/types/utils/web5LinkValidator.test.d.ts +2 -0
  941. package/dist/types/utils/web5LinkValidator.test.d.ts.map +1 -0
  942. package/package.json +103 -0
  943. package/src/styles/base-tokens.css +152 -0
  944. package/src/styles/base-utilities.css +424 -0
  945. package/src/styles/components.css +6 -0
  946. package/src/styles/prompt-input-tokens.css +136 -0
  947. package/src/styles/tailwind-theme.css +138 -0
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.parseMarkdownToAst = parseMarkdownToAst;
6
+ var _unified = require("unified");
7
+ var _remarkParse = _interopRequireDefault(require("remark-parse"));
8
+ var _remarkGfm = _interopRequireDefault(require("remark-gfm"));
9
+ /**
10
+ * Test utility to parse markdown to AST
11
+ * This is used in tests to convert markdown strings to AST nodes
12
+ */
13
+ function parseMarkdownToAst(markdown) {
14
+ const processor = (0, _unified.unified)().use(_remarkParse.default).use(_remarkGfm.default);
15
+ try {
16
+ return processor.parse(markdown);
17
+ } catch (error) {
18
+ console.error('Test markdown parse error:', error);
19
+ return {
20
+ type: 'root',
21
+ children: []
22
+ };
23
+ }
24
+ }
25
+ //# sourceMappingURL=testUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_unified","require","_remarkParse","_interopRequireDefault","_remarkGfm","parseMarkdownToAst","markdown","processor","unified","use","remarkParse","remarkGfm","parse","error","console","type","children"],"sources":["../../src/testUtils.ts"],"sourcesContent":["import { unified } from 'unified';\nimport remarkParse from 'remark-parse';\nimport remarkGfm from 'remark-gfm';\nimport type { Root } from 'mdast';\n\n/**\n * Test utility to parse markdown to AST\n * This is used in tests to convert markdown strings to AST nodes\n */\nexport function parseMarkdownToAst(markdown: string): Root {\n const processor = unified().use(remarkParse).use(remarkGfm);\n try {\n return processor.parse(markdown) as Root;\n } catch (error) {\n console.error('Test markdown parse error:', error);\n return { type: 'root', children: [] };\n }\n}\n"],"mappings":";;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAD,sBAAA,CAAAF,OAAA;AAGA;AACA;AACA;AACA;AACO,SAASI,kBAAkBA,CAACC,QAAgB,EAAQ;EACzD,MAAMC,SAAS,GAAG,IAAAC,gBAAO,EAAC,CAAC,CAACC,GAAG,CAACC,oBAAW,CAAC,CAACD,GAAG,CAACE,kBAAS,CAAC;EAC3D,IAAI;IACF,OAAOJ,SAAS,CAACK,KAAK,CAACN,QAAQ,CAAC;EAClC,CAAC,CAAC,OAAOO,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC;IAClD,OAAO;MAAEE,IAAI,EAAE,MAAM;MAAEC,QAAQ,EAAE;IAAG,CAAC;EACvC;AACF","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.WEB5_ANSWER_UPDATED_EVENT = void 0;
5
+ /**
6
+ * Cross-bundle `web5:answer-updated` broadcast event (B2B-4121).
7
+ *
8
+ * An inline answer placement (e.g. `pdpConversation`) dispatches this on
9
+ * `window` once it finishes rendering an answer — the conversation has
10
+ * advanced, so any contextual chip generator listening on the page should
11
+ * regenerate its suggestions against the new context.
12
+ *
13
+ * Like `web5:user-query`, this is a plain (non-cancelable) broadcast — any
14
+ * number of consumers may handle it; there is no "claim". The placement
15
+ * bundle (`embed-placement`) dispatches it and the input widget listens, so
16
+ * both import the name + payload from here to keep one source of truth.
17
+ */
18
+
19
+ const WEB5_ANSWER_UPDATED_EVENT = exports.WEB5_ANSWER_UPDATED_EVENT = 'web5:answer-updated';
20
+ //# sourceMappingURL=answerUpdatedEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WEB5_ANSWER_UPDATED_EVENT","exports"],"sources":["../../../src/types/answerUpdatedEvent.ts"],"sourcesContent":["/**\n * Cross-bundle `web5:answer-updated` broadcast event (B2B-4121).\n *\n * An inline answer placement (e.g. `pdpConversation`) dispatches this on\n * `window` once it finishes rendering an answer — the conversation has\n * advanced, so any contextual chip generator listening on the page should\n * regenerate its suggestions against the new context.\n *\n * Like `web5:user-query`, this is a plain (non-cancelable) broadcast — any\n * number of consumers may handle it; there is no \"claim\". The placement\n * bundle (`embed-placement`) dispatches it and the input widget listens, so\n * both import the name + payload from here to keep one source of truth.\n */\n\nexport const WEB5_ANSWER_UPDATED_EVENT = 'web5:answer-updated';\n\nexport interface Web5AnswerUpdatedEventDetail {\n /**\n * The conversation trigger id this answer advanced from, when known — the\n * `web5_id` the answering turn ran under. Consumers can ignore it and read\n * the current `web5_id` off the page URL instead.\n */\n web5Id?: string;\n}\n\nexport type Web5AnswerUpdatedEvent = CustomEvent<Web5AnswerUpdatedEventDetail>;\n\ndeclare global {\n interface WindowEventMap {\n [WEB5_ANSWER_UPDATED_EVENT]: Web5AnswerUpdatedEvent;\n }\n}\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAG,qBAAqB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=blog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/types/blog.ts"],"sourcesContent":["/**\n * Shared types for blog section components\n */\n\nexport interface BlogPost {\n /** Unique identifier for the blog post */\n id: string;\n /** Post title (optional) */\n title?: string;\n /** Post description (required) */\n description: string;\n /** Post thumbnail image URL (required) */\n imageUrl: string;\n /** Optional action when post is clicked */\n onClick?: string;\n /** Publication date */\n date?: string;\n /** Post category */\n category?: string;\n /** Optional list items to display below the description */\n listItems?: string[];\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.CALLOUT_KINDS = void 0;
5
+ const CALLOUT_KINDS = exports.CALLOUT_KINDS = ['NOTE', 'TIP', 'IMPORTANT', 'WARNING', 'CAUTION', 'ECHO'];
6
+ //# sourceMappingURL=callout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CALLOUT_KINDS","exports"],"sources":["../../../src/types/callout.ts"],"sourcesContent":["export const CALLOUT_KINDS = [\n 'NOTE',\n 'TIP',\n 'IMPORTANT',\n 'WARNING',\n 'CAUTION',\n 'ECHO',\n] as const;\n\nexport type CalloutKind = (typeof CALLOUT_KINDS)[number];\n\nexport interface Callout {\n text: string;\n kind?: string;\n}\n"],"mappings":";;;;AAAO,MAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,CAC3B,MAAM,EACN,KAAK,EACL,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,CACE","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/types/dependencies.ts"],"sourcesContent":["import type React from 'react';\nimport type { ApiPayloadItem, EntityTypeConfig } from './entity';\nimport type {\n EntityItem,\n EntityItemData,\n SolutionEntityData,\n BlogEntityData,\n} from '../component/types';\nimport type { RGB } from '../color/colorUtils';\nimport type { DiagnosticType } from '../component/diagnosticTypes';\nimport type { ImageSearchFilterString } from '../image/imageSearchFilterTypes';\nimport type { ContextualImageAsset } from '../image/contextualImageTypes';\n\n/**\n * Return type of useWeb5Link hook.\n */\nexport interface Web5LinkApi {\n handleLinkClick: (\n e: React.MouseEvent<HTMLAnchorElement | HTMLButtonElement>,\n url: string | undefined,\n ) => void;\n sendWeb5Message: (url: string) => void;\n navigateToUrl: (url: string) => void;\n transformUrl: (url: string) => string | null;\n resolveUrl: (url: string | undefined) => string | undefined;\n isExternalUrl: (url: string) => boolean;\n isActionRegistered: (name: string) => boolean;\n executeAction: (\n name: string,\n params: Record<string, string>,\n ) => Promise<void>;\n}\n\n/**\n * Optional tracking parameters for sendMessage.\n * When provided, analytics events are automatically dispatched.\n */\nexport interface SendMessageTrackingOptions {\n /** Button/link text — fires web5_link_click with type 'web5' */\n source?: string;\n /** Prompt type — fires web5_prompt_submit instead of link_click */\n promptType?: 'text' | 'chip';\n}\n\nexport interface ComparisonSubmitPayload {\n intent: 'comparison';\n entityIds: string[];\n userPrompt?: string;\n selectedItems?: ComparisonSelectedProduct[];\n}\n\nexport interface SendMessageOptions extends SendMessageTrackingOptions {\n structuredPayload?: ComparisonSubmitPayload;\n}\n\n/**\n * Return type of useConversation hook.\n */\nexport interface ConversationApi {\n sendMessage: (\n message: string,\n options?: SendMessageOptions,\n ) => Promise<void>;\n loadConversationByTriggerId: (triggerId: string) => Promise<void>;\n}\n\nexport interface ComparisonSelectedProduct {\n entityId: string;\n entityType: string;\n title: string;\n description?: string;\n imageUrl?: string;\n url?: string;\n vendor?: string;\n price?: string;\n compareAtPrice?: string;\n sizes?: string[];\n variants?: EntityItemData['variants'];\n options?: EntityItemData['options'];\n}\n\nexport interface ProductComparisonSelectionState {\n sectionId: string | null;\n entityIds: string[];\n itemsById: Record<string, ComparisonSelectedProduct>;\n maxSelectable: number;\n submitting: boolean;\n}\n\nexport interface ProductComparisonApi {\n state: ProductComparisonSelectionState;\n maxSelectable: number;\n enterComparisonMode: (input: {\n sectionId: string;\n maxSelectable?: number;\n }) => void;\n exitComparisonMode: (sectionId?: string) => void;\n toggleComparisonProduct: (input: {\n sectionId: string;\n item: EntityItem;\n }) => void;\n removeComparisonProduct: (entityId: string) => void;\n clearComparisonSelection: () => void;\n setComparisonSubmitting: (submitting: boolean) => void;\n}\n\n/**\n * Entity transform functions provided by the host app.\n */\nexport interface EntityTransforms {\n /** @deprecated Use transformToGenericEntityData */\n transformToSolutionEntityData: (\n payloadItem: ApiPayloadItem,\n config: EntityTypeConfig,\n ) => SolutionEntityData;\n /** @deprecated Use transformToGenericEntityData */\n transformToBlogPostEntityData: (\n payloadItem: ApiPayloadItem,\n config: EntityTypeConfig,\n ) => BlogEntityData;\n transformToGenericEntityData: (\n payloadItem: ApiPayloadItem,\n config: EntityTypeConfig,\n ) => EntityItemData;\n}\n\n// SolutionEntityData, BlogEntityData, GenericEntityData are defined in component/types (single source of truth)\nexport type {\n GenericEntityData,\n SolutionEntityData,\n BlogEntityData,\n} from '../component/types';\n\n/**\n * Markdown utility functions provided by the host app.\n */\nexport interface MarkdownUtils {\n parseMarkdownToAst: (markdown: string) => any;\n extractLinks: (ast: any) => { url: string; text: string }[];\n extractText: (node: any) => string;\n}\n\n/**\n * Options for useResolveGenericEntityData hook.\n */\nexport interface ResolveGenericEntityDataOptions<TEntityData> {\n transform: (raw: ApiPayloadItem, config: EntityTypeConfig) => TEntityData;\n}\n\n/**\n * Contract for all dependencies that section components need from the host app.\n * The host app provides implementations via React context.\n *\n * Each field is a hook function reference — components call them to get the actual values.\n */\nexport interface ComponentDependencies {\n /** Hook returning Web5 link handling API */\n useWeb5Link: () => Web5LinkApi;\n\n /** Hook returning conversation API (sendMessage, loadConversationByTriggerId) */\n useConversation: () => ConversationApi;\n\n /** Hook returning product comparison selection API */\n useProductComparison?: () => ProductComparisonApi;\n\n /** Hook returning whether debug image mode is enabled */\n useDebugImageContext: () => boolean;\n\n /** Hook for resolving entity data (mixed entity types) */\n useResolveGenericEntityData: <\n TEntity extends {\n entityId: string;\n entityUrl: string;\n entityType: string;\n data?: TEntityData;\n },\n TEntityData,\n >(\n entities: TEntity[],\n options: ResolveGenericEntityDataOptions<TEntityData>,\n ) => { enrichedEntities: TEntity[]; loading: boolean };\n\n /** Entity transform functions */\n entityTransforms: EntityTransforms;\n\n /** Markdown utility functions */\n markdownUtils: MarkdownUtils;\n\n /** Image resolver for contextual images (image:// protocol) */\n resolveContextualImageUrl?: (\n client: any,\n imageKey: string,\n options?: {\n filter?: ImageSearchFilterString | null;\n },\n ) => Promise<string | null>;\n\n /** Rich contextual image resolver used by self-resolving image components */\n resolveContextualImageAsset?: (\n client: any,\n imageKey: string,\n options?: {\n filter?: ImageSearchFilterString | null;\n },\n ) => Promise<ContextualImageAsset | null>;\n\n /** Batch resolver for contextual image searches used by collage-style UIs */\n resolveContextualImageUrls?: (\n client: any,\n imageKey: string,\n options?: {\n count?: number;\n threshold?: number;\n filter?: ImageSearchFilterString | null;\n },\n ) => Promise<string[]>;\n\n /** App store client accessor (for OptimizedImage) */\n useAppClient?: () => any;\n\n /** Hook returning a ref to the scroll container element (for parallax effects) */\n useScrollContainerRef?: () => React.RefObject<HTMLElement | null>;\n\n /** Bulk icon resolution: hints → SVG URL map */\n resolveIcons?: (hints: string[]) => Promise<Record<string, string>>;\n\n /** Set the page-level mesh gradient palette colors */\n setMeshBackground?: (colors: RGB[]) => void;\n\n /** Get the current mesh gradient palette colors */\n getMeshBackground?: () => RGB[];\n\n /** Report a markdown diagnostic at render time (e.g. broken link, filtered card) */\n reportDiagnostic?: (\n diagnosticType: DiagnosticType,\n sectionType: string,\n details: string,\n ) => void;\n\n /** BI logger for contextual image events (event 914) */\n logContextualImage?: (params: {\n imageUrl: string;\n contextualTerm: string;\n imageEventType: string;\n isImageResolved: boolean;\n isFallbackImage: boolean;\n }) => void;\n\n /** Conversation context for BI tracking */\n useConversationContext?: () => {\n conversationId?: string;\n messageId?: string;\n sessionId?: string;\n };\n\n /** Fallback image URLs used when a contextual image search returns no results */\n fallbackImages?: string[];\n\n /** Client-provided loader component (replaces default CSS spinner) */\n LoaderComponent?: React.FC<{\n className?: string;\n size?: 'sm' | 'md' | 'lg';\n message?: string;\n showMessage?: boolean;\n }>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/types/entity.ts"],"sourcesContent":["export interface ApiPayloadItem {\n url: string;\n features: { feature: string; value: string }[];\n img?: string;\n id: string;\n title: string;\n type: string;\n update_ts?: string;\n publishDate?: string;\n published_at?: string;\n cms_item_id?: string;\n usage?: number;\n author?: string;\n authorName?: string;\n description?: string;\n excerpt?: string;\n labels?: string[];\n tags?: string[];\n categories?: string[];\n}\n\nexport interface EntityTypeConfig {\n payloadType: string;\n urlMatchProperty: string;\n urlMatchPattern?: 'endsWith' | 'contains' | 'equals';\n imageBaseUrl?: string;\n}\n\nexport interface EntityConfig {\n enabled: boolean;\n entityTypes: Record<string, EntityTypeConfig>;\n}\n\nexport interface EntityExtractionContext {\n payload?: ApiPayloadItem[];\n entityConfig?: EntityConfig;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.Web5UrlType = void 0;
5
+ exports.isLegacyUrl = isLegacyUrl;
6
+ exports.isNavigableUrl = isNavigableUrl;
7
+ exports.isValidLinkUrl = isValidLinkUrl;
8
+ exports.isWeb5ActionUrl = isWeb5ActionUrl;
9
+ exports.isWeb5AskUrl = isWeb5AskUrl;
10
+ exports.isWeb5EntityUrl = isWeb5EntityUrl;
11
+ exports.isWeb5IconUrl = isWeb5IconUrl;
12
+ exports.isWeb5ImageUrl = isWeb5ImageUrl;
13
+ exports.isWeb5SearchUrl = isWeb5SearchUrl;
14
+ exports.isWeb5Url = isWeb5Url;
15
+ // ── Web5 URL type enum ──────────────────────────────────
16
+ let Web5UrlType = exports.Web5UrlType = /*#__PURE__*/function (Web5UrlType) {
17
+ Web5UrlType["ASK"] = "ask";
18
+ Web5UrlType["ENTITY"] = "entity";
19
+ Web5UrlType["IMAGE"] = "image";
20
+ Web5UrlType["ICON"] = "icon";
21
+ Web5UrlType["ACTION"] = "action";
22
+ Web5UrlType["SEARCH"] = "search";
23
+ return Web5UrlType;
24
+ }({}); // ── Template literal types ──────────────────────────────
25
+ // ── Type guards ─────────────────────────────────────────
26
+
27
+ function isWeb5AskUrl(url) {
28
+ return url.startsWith('web5://ask/');
29
+ }
30
+ function isWeb5EntityUrl(url) {
31
+ return url.startsWith('web5://entity/');
32
+ }
33
+ function isWeb5ImageUrl(url) {
34
+ return url.startsWith('web5://image/');
35
+ }
36
+ function isWeb5IconUrl(url) {
37
+ return url.startsWith('web5://icon/');
38
+ }
39
+ function isWeb5ActionUrl(url) {
40
+ return url.startsWith('web5://action/');
41
+ }
42
+ function isWeb5SearchUrl(url) {
43
+ return url.startsWith('web5://search/');
44
+ }
45
+ function isWeb5Url(url) {
46
+ if (!url.startsWith('web5://')) {
47
+ return false;
48
+ }
49
+ const path = url.slice('web5://'.length);
50
+ return Object.values(Web5UrlType).some(prefix => path === prefix || path.startsWith(prefix + '/'));
51
+ }
52
+ function isNavigableUrl(url) {
53
+ return url.startsWith('https://') || url.startsWith('http://') || url.startsWith('mailto:') || url.startsWith('/');
54
+ }
55
+ function isValidLinkUrl(url) {
56
+ return isWeb5Url(url) || isNavigableUrl(url);
57
+ }
58
+ const LEGACY_PREFIXES = ['entity://', 'image://', 'action://', 'ask://'];
59
+ function isLegacyUrl(url) {
60
+ return LEGACY_PREFIXES.some(p => url.startsWith(p));
61
+ }
62
+ //# sourceMappingURL=link-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Web5UrlType","exports","isWeb5AskUrl","url","startsWith","isWeb5EntityUrl","isWeb5ImageUrl","isWeb5IconUrl","isWeb5ActionUrl","isWeb5SearchUrl","isWeb5Url","path","slice","length","Object","values","some","prefix","isNavigableUrl","isValidLinkUrl","LEGACY_PREFIXES","isLegacyUrl","p"],"sources":["../../../src/types/link-types.ts"],"sourcesContent":["// ── Web5 URL type enum ──────────────────────────────────\n\nexport enum Web5UrlType {\n ASK = 'ask',\n ENTITY = 'entity',\n IMAGE = 'image',\n ICON = 'icon',\n ACTION = 'action',\n SEARCH = 'search',\n}\n\n// ── Template literal types ──────────────────────────────\n\nexport type Web5AskUrl = `web5://ask/${string}`;\nexport type Web5EntityUrl = `web5://entity/${string}`;\nexport type Web5ImageUrl = `web5://image/${string}`;\nexport type Web5IconUrl = `web5://icon/${string}`;\nexport type Web5ActionUrl = `web5://action/${string}`;\nexport type Web5SearchUrl = `web5://search/${string}`;\nexport type Web5Url =\n | Web5AskUrl\n | Web5EntityUrl\n | Web5ImageUrl\n | Web5IconUrl\n | Web5ActionUrl\n | Web5SearchUrl;\n\nexport type HttpsUrl = `https://${string}`;\nexport type HttpUrl = `http://${string}`;\nexport type MailtoUrl = `mailto:${string}`;\nexport type RelativeUrl = `/${string}`;\nexport type NavigableUrl = HttpsUrl | HttpUrl | MailtoUrl | RelativeUrl;\n\nexport type LegacyEntityUrl = `entity://${string}`;\nexport type LegacyImageUrl = `image://${string}`;\nexport type LegacyActionUrl = `action://${string}`;\nexport type LegacyAskUrl = `ask://${string}`;\nexport type LegacyUrl =\n | LegacyEntityUrl\n | LegacyImageUrl\n | LegacyActionUrl\n | LegacyAskUrl;\n\nexport type ValidLinkUrl = Web5Url | NavigableUrl;\nexport type AnyKnownUrl = ValidLinkUrl | LegacyUrl;\n\n// ── Type guards ─────────────────────────────────────────\n\nexport function isWeb5AskUrl(url: string): url is Web5AskUrl {\n return url.startsWith('web5://ask/');\n}\n\nexport function isWeb5EntityUrl(url: string): url is Web5EntityUrl {\n return url.startsWith('web5://entity/');\n}\n\nexport function isWeb5ImageUrl(url: string): url is Web5ImageUrl {\n return url.startsWith('web5://image/');\n}\n\nexport function isWeb5IconUrl(url: string): url is Web5IconUrl {\n return url.startsWith('web5://icon/');\n}\n\nexport function isWeb5ActionUrl(url: string): url is Web5ActionUrl {\n return url.startsWith('web5://action/');\n}\n\nexport function isWeb5SearchUrl(url: string): url is Web5SearchUrl {\n return url.startsWith('web5://search/');\n}\n\nexport function isWeb5Url(url: string): url is Web5Url {\n if (!url.startsWith('web5://')) {\n return false;\n }\n const path = url.slice('web5://'.length);\n return Object.values(Web5UrlType).some(\n (prefix) => path === prefix || path.startsWith(prefix + '/'),\n );\n}\n\nexport function isNavigableUrl(url: string): url is NavigableUrl {\n return (\n url.startsWith('https://') ||\n url.startsWith('http://') ||\n url.startsWith('mailto:') ||\n url.startsWith('/')\n );\n}\n\nexport function isValidLinkUrl(url: string): url is ValidLinkUrl {\n return isWeb5Url(url) || isNavigableUrl(url);\n}\n\nconst LEGACY_PREFIXES = ['entity://', 'image://', 'action://', 'ask://'];\n\nexport function isLegacyUrl(url: string): url is LegacyUrl {\n return LEGACY_PREFIXES.some((p) => url.startsWith(p));\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA,IAEYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OASvB;AAmCA;;AAEO,SAASE,YAAYA,CAACC,GAAW,EAAqB;EAC3D,OAAOA,GAAG,CAACC,UAAU,CAAC,aAAa,CAAC;AACtC;AAEO,SAASC,eAAeA,CAACF,GAAW,EAAwB;EACjE,OAAOA,GAAG,CAACC,UAAU,CAAC,gBAAgB,CAAC;AACzC;AAEO,SAASE,cAAcA,CAACH,GAAW,EAAuB;EAC/D,OAAOA,GAAG,CAACC,UAAU,CAAC,eAAe,CAAC;AACxC;AAEO,SAASG,aAAaA,CAACJ,GAAW,EAAsB;EAC7D,OAAOA,GAAG,CAACC,UAAU,CAAC,cAAc,CAAC;AACvC;AAEO,SAASI,eAAeA,CAACL,GAAW,EAAwB;EACjE,OAAOA,GAAG,CAACC,UAAU,CAAC,gBAAgB,CAAC;AACzC;AAEO,SAASK,eAAeA,CAACN,GAAW,EAAwB;EACjE,OAAOA,GAAG,CAACC,UAAU,CAAC,gBAAgB,CAAC;AACzC;AAEO,SAASM,SAASA,CAACP,GAAW,EAAkB;EACrD,IAAI,CAACA,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,EAAE;IAC9B,OAAO,KAAK;EACd;EACA,MAAMO,IAAI,GAAGR,GAAG,CAACS,KAAK,CAAC,SAAS,CAACC,MAAM,CAAC;EACxC,OAAOC,MAAM,CAACC,MAAM,CAACf,WAAW,CAAC,CAACgB,IAAI,CACnCC,MAAM,IAAKN,IAAI,KAAKM,MAAM,IAAIN,IAAI,CAACP,UAAU,CAACa,MAAM,GAAG,GAAG,CAC7D,CAAC;AACH;AAEO,SAASC,cAAcA,CAACf,GAAW,EAAuB;EAC/D,OACEA,GAAG,CAACC,UAAU,CAAC,UAAU,CAAC,IAC1BD,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,IACzBD,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,IACzBD,GAAG,CAACC,UAAU,CAAC,GAAG,CAAC;AAEvB;AAEO,SAASe,cAAcA,CAAChB,GAAW,EAAuB;EAC/D,OAAOO,SAAS,CAACP,GAAG,CAAC,IAAIe,cAAc,CAACf,GAAG,CAAC;AAC9C;AAEA,MAAMiB,eAAe,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC;AAEjE,SAASC,WAAWA,CAAClB,GAAW,EAAoB;EACzD,OAAOiB,eAAe,CAACJ,IAAI,CAAEM,CAAC,IAAKnB,GAAG,CAACC,UAAU,CAACkB,CAAC,CAAC,CAAC;AACvD","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=page-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/types/page-section.ts"],"sourcesContent":["/**\n * `PageSection` — the data shape returned by `parseMarkdownToComponents`\n * (DL #088 B9.3). Lifted from `web50-server-ui/src/store/appStore.ts` so the\n * placement bundle and the full app can both consume it.\n */\nimport type { ReactElement } from 'react';\n\nexport interface PageSection {\n id: string;\n sectionType: string;\n componentName?: string;\n semantic?: string;\n componentOptions?: Record<string, any>;\n sourceMarkdown: string;\n component: ReactElement | null;\n /**\n * V3 prompt federation (DL #106): a declared-but-not-yet-streamed section.\n * The render layer resolves the skeleton component (client\n * `uiSlots.SectionSkeletonComponent` override, else the core `SectionSkeleton`\n * default) from `sectionType`/`semantic` — `component` stays null.\n */\n isSkeleton?: boolean;\n error?: string;\n warning?: string;\n /** Only present for debug introspection — never for production rendering. */\n debugProps?: any;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=placement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/types/placement.ts"],"sourcesContent":["/**\n * Placement configuration types (DL #088 D4, D15, DL #102).\n *\n * The placement bundle reads these from `ClientConfig.placementPrompts`,\n * keyed by **placement kind** — the value of `data-web5-placement=\"X\"` on\n * the slot DOM. Example: `<div data-web5-placement=\"pdpFraming\">` resolves\n * to `placementPrompts.pdpFraming`.\n *\n * An entry describes the placement's *behavior* (DL #102 — `conversational`,\n * `requiresWeb5Id`) and optionally its *content* (`prompt` XOR `markdown`,\n * DL #100). Behavior-only entries are valid: after DL #101 moves prompts to\n * the BE, a kind like `pdpFraming` keeps `{ requiresWeb5Id: true }` alone.\n */\n\n/**\n * Placement visual variant → `w5-placement--<variant>` CSS class (DL #106 D1).\n *\n * Free-form by design: core ships `informational` / `conversation` styles by\n * default (the two placement treatments — non-conversational vs conversational),\n * but a client may use any token and supply matching CSS via its UMD — no core\n * change is needed to add a new look. Kept open to match the open-ended\n * `PlacementPrompts` keys: design is as client-extensible as behavior.\n */\nexport type PlacementVariant = string;\n\n/**\n * Behavior declarations for a placement kind (DL #102).\n */\nexport interface PlacementBehaviorConfig {\n /**\n * Conversation placement (DL #102 D1): activated by `web5:user-query`\n * events instead of fetching on mount. Replaces the hardcoded kind-name →\n * activation map in embed-placement's `main.ts`. As of the DL #102\n * amendment (2026-06-21) this no longer implies the warm guard — a\n * conversational surface can activate on a cold page; set `requiresWeb5Id`\n * to gate it.\n */\n conversational?: boolean;\n /**\n * Warm guard (DL #102 D2, amended): when true, the slot stays hidden and\n * inert — no fetch, no render — unless the page URL carries `?web5_id=`.\n * This is the sole driver of the guard; it is independent of\n * `conversational` (e.g. `pdpFraming` sets it true, `pdpConversation`\n * leaves it unset).\n */\n requiresWeb5Id?: boolean;\n /**\n * Visual variant → `w5-placement--<variant>` CSS class (DL #106 D2). When\n * unset the host derives it from activation (`conversational` →\n * `'conversation'`, else `'informational'`) so existing kinds are unchanged.\n */\n variant?: PlacementVariant;\n /**\n * Eyebrow label shown with the accent star above the answer (DL #106 D2).\n * Defaults to `'FormAI'` when unset; an empty string hides the eyebrow.\n */\n eyebrow?: string;\n}\n\n/**\n * A placement kind driven by an LLM prompt. The BE composes `prompt` with the\n * entity context + user question (if any) into the final `/conversation` call.\n * Also passable inline via `additionalInfo.promptOverride` for one-off\n * experiments.\n */\nexport interface PlacementPromptConfig {\n prompt: string;\n /** Mutually exclusive with `prompt` — set one, never both. */\n markdown?: never;\n}\n\n/**\n * A placement kind with pre-authored, hardcoded markdown. When set, the\n * placement renders this markdown immediately on mount with no `/conversation`\n * fetch. Honored for auto-mode kinds (e.g. `pdpFraming`) only.\n */\nexport interface PlacementMarkdownConfig {\n markdown: string;\n /** Mutually exclusive with `markdown` — set one, never both. */\n prompt?: never;\n}\n\n/**\n * Single placement kind's configuration — behavior declarations plus, at\n * most, one content source (prompt-driven XOR static markdown). The\n * behavior-only arm carries neither (DL #102 Q5). Planned extensions per\n * DL #088 D4 + D8: `allowedComponents`, `excludedComponents`,\n * `maxComponents`, `fallback`.\n */\nexport type PlacementConfig =\n | (PlacementBehaviorConfig & PlacementPromptConfig)\n | (PlacementBehaviorConfig & PlacementMarkdownConfig)\n | (PlacementBehaviorConfig & { prompt?: never; markdown?: never });\n\n/**\n * Map of placement kind → `PlacementConfig`. Keyed by the `data-web5-placement`\n * attribute value on the slot DOM.\n */\nexport type PlacementPrompts = Record<string, PlacementConfig>;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.WEB5_REDIRECT_EVENT = void 0;
5
+ /**
6
+ * Cross-bundle `web5:redirect` broadcast event (DL #098).
7
+ *
8
+ * Any widget bundle that wants to bail out of its in-page surface and hand
9
+ * the visitor's question off to the full Web5 app dispatches this on `window`.
10
+ * The Unified Loader (embed-loader) is the consumer: it reads
11
+ * `searchRedirectUrl` from the event detail and navigates to
12
+ * `<searchRedirectUrl>?initialQuestion=<query>`. Mirrors the publisher /
13
+ * consumer shape of `web5:user-query` (DL #097 D2), just inverted — a widget
14
+ * signals intent, the loader performs the navigation.
15
+ *
16
+ * The publisher supplies the destination URL (read from its own client UMD's
17
+ * `clientConfig.linkConfig.searchRedirectUrl`) so the loader stays client-
18
+ * agnostic and the inline-bail and input-submit destinations are guaranteed
19
+ * to match.
20
+ *
21
+ * Today only `pdpConversation` dispatches it (when the LLM emits
22
+ * `<!-- redirect:context-changed -->` in the stream — DL #098 D1/D2),
23
+ * but the event is a general primitive and any future widget can use it.
24
+ */
25
+
26
+ const WEB5_REDIRECT_EVENT = exports.WEB5_REDIRECT_EVENT = 'web5:redirect';
27
+ //# sourceMappingURL=redirectEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WEB5_REDIRECT_EVENT","exports"],"sources":["../../../src/types/redirectEvent.ts"],"sourcesContent":["/**\n * Cross-bundle `web5:redirect` broadcast event (DL #098).\n *\n * Any widget bundle that wants to bail out of its in-page surface and hand\n * the visitor's question off to the full Web5 app dispatches this on `window`.\n * The Unified Loader (embed-loader) is the consumer: it reads\n * `searchRedirectUrl` from the event detail and navigates to\n * `<searchRedirectUrl>?initialQuestion=<query>`. Mirrors the publisher /\n * consumer shape of `web5:user-query` (DL #097 D2), just inverted — a widget\n * signals intent, the loader performs the navigation.\n *\n * The publisher supplies the destination URL (read from its own client UMD's\n * `clientConfig.linkConfig.searchRedirectUrl`) so the loader stays client-\n * agnostic and the inline-bail and input-submit destinations are guaranteed\n * to match.\n *\n * Today only `pdpConversation` dispatches it (when the LLM emits\n * `<!-- redirect:context-changed -->` in the stream — DL #098 D1/D2),\n * but the event is a general primitive and any future widget can use it.\n */\n\nexport const WEB5_REDIRECT_EVENT = 'web5:redirect';\n\nexport type Web5RedirectReason = 'context-changed';\n\nexport interface Web5RedirectEventDetail {\n /** The original visitor query to forward as `?initialQuestion=`. */\n query: string;\n /**\n * Destination URL to navigate to (e.g. `/pages/ai`). The publisher reads\n * it from the loaded client UMD's `clientConfig.linkConfig.searchRedirectUrl`\n * — the same value the `user-query` input widget already uses for its\n * non-product submits, so both paths land on the same page.\n */\n searchRedirectUrl: string;\n /** Coarse reason — extensible. Today: only `'context-changed'`. */\n reason: Web5RedirectReason;\n}\n\nexport type Web5RedirectEvent = CustomEvent<Web5RedirectEventDetail>;\n\ndeclare global {\n interface WindowEventMap {\n [WEB5_REDIRECT_EVENT]: Web5RedirectEvent;\n }\n}\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,eAAe","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.WEB5_USER_QUERY_EVENT = void 0;
5
+ /**
6
+ * Cross-bundle `web5:user-query` broadcast event (DL #097 D2).
7
+ *
8
+ * The `user-query` input widget dispatches this on `window` when configured
9
+ * `submitTarget: 'event'`; one or more placement bundles listen and render the
10
+ * answer inline. It is a plain (non-cancelable) broadcast — any number of
11
+ * consumers may handle it; there is no "claim".
12
+ *
13
+ * Both the input bundle (`@wix/w5-client-*`) and the placement bundle
14
+ * (`embed-placement`) import the name + payload from here so the contract has a
15
+ * single source of truth.
16
+ */
17
+
18
+ const WEB5_USER_QUERY_EVENT = exports.WEB5_USER_QUERY_EVENT = 'web5:user-query';
19
+ //# sourceMappingURL=userQueryEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WEB5_USER_QUERY_EVENT","exports"],"sources":["../../../src/types/userQueryEvent.ts"],"sourcesContent":["/**\n * Cross-bundle `web5:user-query` broadcast event (DL #097 D2).\n *\n * The `user-query` input widget dispatches this on `window` when configured\n * `submitTarget: 'event'`; one or more placement bundles listen and render the\n * answer inline. It is a plain (non-cancelable) broadcast — any number of\n * consumers may handle it; there is no \"claim\".\n *\n * Both the input bundle (`@wix/w5-client-*`) and the placement bundle\n * (`embed-placement`) import the name + payload from here so the contract has a\n * single source of truth.\n */\n\nexport const WEB5_USER_QUERY_EVENT = 'web5:user-query';\n\nexport interface Web5UserQueryEventDetail {\n /** The text the visitor submitted in the user-query input. */\n query: string;\n}\n\nexport type Web5UserQueryEvent = CustomEvent<Web5UserQueryEventDetail>;\n\ndeclare global {\n interface WindowEventMap {\n [WEB5_USER_QUERY_EVENT]: Web5UserQueryEvent;\n }\n}\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,iBAAiB","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.hasAnalyticsConsent = hasAnalyticsConsent;
5
+ exports.pushEntityFiltered = pushEntityFiltered;
6
+ exports.pushError = pushError;
7
+ exports.pushEvent = pushEvent;
8
+ exports.pushExit = pushExit;
9
+ exports.pushLinkClick = pushLinkClick;
10
+ exports.pushPromptSubmit = pushPromptSubmit;
11
+ const ANALYTICS_CATEGORY = 'C0002';
12
+ function hasAnalyticsConsent() {
13
+ if (typeof window === 'undefined') {
14
+ return false;
15
+ }
16
+ const groups = window.OnetrustActiveGroups;
17
+ if (typeof groups === 'string') {
18
+ return groups.includes(ANALYTICS_CATEGORY);
19
+ }
20
+
21
+ // No OneTrust on page — allow tracking (host is responsible for loading OneTrust)
22
+ return true;
23
+ }
24
+
25
+ /**
26
+ * Universal event dispatch: auto-detects GTM vs standalone gtag.js.
27
+ *
28
+ * GTM is checked first via `google_tag_manager` because when GTM has a GA4
29
+ * tag configured it also creates `window.gtag`. Using dataLayer.push()
30
+ * ensures GTM triggers/tags still process the event.
31
+ */
32
+ function pushEvent(eventName, params = {}) {
33
+ if (typeof window === 'undefined') {
34
+ return;
35
+ }
36
+ if (!hasAnalyticsConsent()) {
37
+ return;
38
+ }
39
+
40
+ // GTM mode
41
+ if (window.google_tag_manager && window.dataLayer) {
42
+ window.dataLayer.push({
43
+ event: eventName,
44
+ ...params
45
+ });
46
+ return;
47
+ }
48
+
49
+ // Standalone gtag.js mode
50
+ if (typeof window.gtag === 'function') {
51
+ window.gtag('event', eventName, params);
52
+ return;
53
+ }
54
+
55
+ // No analytics SDK loaded — no-op
56
+ }
57
+ function pushPromptSubmit(promptType, promptText) {
58
+ pushEvent('web5_prompt_submit', {
59
+ prompt_type: promptType,
60
+ prompt_text: promptText
61
+ });
62
+ }
63
+ function pushLinkClick(linkUrl, linkType, linkText) {
64
+ pushEvent('web5_link_click', {
65
+ link_url: linkUrl,
66
+ link_type: linkType,
67
+ link_text: linkText ?? ''
68
+ });
69
+ }
70
+ function pushError(errorType, statusCode, errorMessage) {
71
+ pushEvent('web5_error', {
72
+ error_type: errorType,
73
+ status_code: statusCode,
74
+ error_message: errorMessage ?? ''
75
+ });
76
+ }
77
+ function pushExit(exitUrl, linkText, exitType) {
78
+ pushEvent('web5_exit', {
79
+ exit_url: exitUrl,
80
+ link_text: linkText,
81
+ exit_type: exitType
82
+ });
83
+ }
84
+ function pushEntityFiltered(reason, entityType, entityId) {
85
+ pushEvent('web5_entity_filtered', {
86
+ reason,
87
+ entity_type: entityType,
88
+ entity_id: entityId
89
+ });
90
+ }
91
+ //# sourceMappingURL=analyticsEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ANALYTICS_CATEGORY","hasAnalyticsConsent","window","groups","OnetrustActiveGroups","includes","pushEvent","eventName","params","google_tag_manager","dataLayer","push","event","gtag","pushPromptSubmit","promptType","promptText","prompt_type","prompt_text","pushLinkClick","linkUrl","linkType","linkText","link_url","link_type","link_text","pushError","errorType","statusCode","errorMessage","error_type","status_code","error_message","pushExit","exitUrl","exitType","exit_url","exit_type","pushEntityFiltered","reason","entityType","entityId","entity_type","entity_id"],"sources":["../../../src/utils/analyticsEvents.ts"],"sourcesContent":["declare global {\n interface Window {\n dataLayer?: Record<string, unknown>[];\n gtag?: (...args: unknown[]) => void;\n google_tag_manager?: Record<string, unknown>;\n OnetrustActiveGroups?: string;\n }\n}\n\nconst ANALYTICS_CATEGORY = 'C0002';\n\nexport function hasAnalyticsConsent(): boolean {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const groups = window.OnetrustActiveGroups;\n if (typeof groups === 'string') {\n return groups.includes(ANALYTICS_CATEGORY);\n }\n\n // No OneTrust on page — allow tracking (host is responsible for loading OneTrust)\n return true;\n}\n\n/**\n * Universal event dispatch: auto-detects GTM vs standalone gtag.js.\n *\n * GTM is checked first via `google_tag_manager` because when GTM has a GA4\n * tag configured it also creates `window.gtag`. Using dataLayer.push()\n * ensures GTM triggers/tags still process the event.\n */\nexport function pushEvent(\n eventName: string,\n params: Record<string, unknown> = {},\n): void {\n if (typeof window === 'undefined') {\n return;\n }\n if (!hasAnalyticsConsent()) {\n return;\n }\n\n // GTM mode\n if (window.google_tag_manager && window.dataLayer) {\n window.dataLayer.push({ event: eventName, ...params });\n return;\n }\n\n // Standalone gtag.js mode\n if (typeof window.gtag === 'function') {\n window.gtag('event', eventName, params);\n return;\n }\n\n // No analytics SDK loaded — no-op\n}\n\nexport function pushPromptSubmit(\n promptType: 'text' | 'chip',\n promptText: string,\n): void {\n pushEvent('web5_prompt_submit', {\n prompt_type: promptType,\n prompt_text: promptText,\n });\n}\n\nexport function pushLinkClick(\n linkUrl: string,\n linkType: 'web5' | 'external' | 'internal',\n linkText?: string,\n): void {\n pushEvent('web5_link_click', {\n link_url: linkUrl,\n link_type: linkType,\n link_text: linkText ?? '',\n });\n}\n\nexport function pushError(\n errorType: string,\n statusCode: number,\n errorMessage?: string,\n): void {\n pushEvent('web5_error', {\n error_type: errorType,\n status_code: statusCode,\n error_message: errorMessage ?? '',\n });\n}\n\nexport function pushExit(\n exitUrl: string,\n linkText: string,\n exitType: 'external' | 'internal',\n): void {\n pushEvent('web5_exit', {\n exit_url: exitUrl,\n link_text: linkText,\n exit_type: exitType,\n });\n}\n\nexport type EntityFilteredReason = 'no_data' | 'no_url';\n\nexport function pushEntityFiltered(\n reason: EntityFilteredReason,\n entityType: string,\n entityId: string,\n): void {\n pushEvent('web5_entity_filtered', {\n reason,\n entity_type: entityType,\n entity_id: entityId,\n });\n}\n"],"mappings":";;;;;;;;;;AASA,MAAMA,kBAAkB,GAAG,OAAO;AAE3B,SAASC,mBAAmBA,CAAA,EAAY;EAC7C,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,OAAO,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGD,MAAM,CAACE,oBAAoB;EAC1C,IAAI,OAAOD,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOA,MAAM,CAACE,QAAQ,CAACL,kBAAkB,CAAC;EAC5C;;EAEA;EACA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,SAASA,CACvBC,SAAiB,EACjBC,MAA+B,GAAG,CAAC,CAAC,EAC9B;EACN,IAAI,OAAON,MAAM,KAAK,WAAW,EAAE;IACjC;EACF;EACA,IAAI,CAACD,mBAAmB,CAAC,CAAC,EAAE;IAC1B;EACF;;EAEA;EACA,IAAIC,MAAM,CAACO,kBAAkB,IAAIP,MAAM,CAACQ,SAAS,EAAE;IACjDR,MAAM,CAACQ,SAAS,CAACC,IAAI,CAAC;MAAEC,KAAK,EAAEL,SAAS;MAAE,GAAGC;IAAO,CAAC,CAAC;IACtD;EACF;;EAEA;EACA,IAAI,OAAON,MAAM,CAACW,IAAI,KAAK,UAAU,EAAE;IACrCX,MAAM,CAACW,IAAI,CAAC,OAAO,EAAEN,SAAS,EAAEC,MAAM,CAAC;IACvC;EACF;;EAEA;AACF;AAEO,SAASM,gBAAgBA,CAC9BC,UAA2B,EAC3BC,UAAkB,EACZ;EACNV,SAAS,CAAC,oBAAoB,EAAE;IAC9BW,WAAW,EAAEF,UAAU;IACvBG,WAAW,EAAEF;EACf,CAAC,CAAC;AACJ;AAEO,SAASG,aAAaA,CAC3BC,OAAe,EACfC,QAA0C,EAC1CC,QAAiB,EACX;EACNhB,SAAS,CAAC,iBAAiB,EAAE;IAC3BiB,QAAQ,EAAEH,OAAO;IACjBI,SAAS,EAAEH,QAAQ;IACnBI,SAAS,EAAEH,QAAQ,IAAI;EACzB,CAAC,CAAC;AACJ;AAEO,SAASI,SAASA,CACvBC,SAAiB,EACjBC,UAAkB,EAClBC,YAAqB,EACf;EACNvB,SAAS,CAAC,YAAY,EAAE;IACtBwB,UAAU,EAAEH,SAAS;IACrBI,WAAW,EAAEH,UAAU;IACvBI,aAAa,EAAEH,YAAY,IAAI;EACjC,CAAC,CAAC;AACJ;AAEO,SAASI,QAAQA,CACtBC,OAAe,EACfZ,QAAgB,EAChBa,QAAiC,EAC3B;EACN7B,SAAS,CAAC,WAAW,EAAE;IACrB8B,QAAQ,EAAEF,OAAO;IACjBT,SAAS,EAAEH,QAAQ;IACnBe,SAAS,EAAEF;EACb,CAAC,CAAC;AACJ;AAIO,SAASG,kBAAkBA,CAChCC,MAA4B,EAC5BC,UAAkB,EAClBC,QAAgB,EACV;EACNnC,SAAS,CAAC,sBAAsB,EAAE;IAChCiC,MAAM;IACNG,WAAW,EAAEF,UAAU;IACvBG,SAAS,EAAEF;EACb,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.ComponentTracking = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ /**
8
+ * Tracks which components handle which ranges of nodes during markdown parsing.
9
+ * This allows you to see which components handled which node ranges and how many times each component appears.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const sections = parseMarkdownToComponents(markdown);
14
+ * const tracking = getLastComponentTracking();
15
+ *
16
+ * // Get how many times a component appears
17
+ * const heroCount = tracking?.getComponentCount('HeroSection'); // e.g., 1
18
+ *
19
+ * // Get all ranges for a specific component
20
+ * const heroRanges = tracking?.getRangesForComponent('HeroSection');
21
+ * // Returns: [{ componentName: 'HeroSection', startIndex: 0, endIndex: 2, sectionIndex: 0 }]
22
+ *
23
+ * // Check if a node is already handled
24
+ * const isHandled = tracking?.isNodeHandled(5); // true/false
25
+ *
26
+ * // Get which component handles a specific node
27
+ * const handler = tracking?.getComponentForNode(5);
28
+ * // Returns: ComponentNodeRange | null
29
+ *
30
+ * // Get a summary of all components
31
+ * const summary = tracking?.getSummary();
32
+ * // Returns: [{ componentName: 'HeroSection', count: 1, ranges: [...] }, ...]
33
+ * ```
34
+ */
35
+ class ComponentTracking {
36
+ constructor() {
37
+ (0, _defineProperty2.default)(this, "ranges", []);
38
+ (0, _defineProperty2.default)(this, "componentCounts", new Map());
39
+ (0, _defineProperty2.default)(this, "usedImageKeywords", new Set());
40
+ (0, _defineProperty2.default)(this, "metadata", new Map());
41
+ }
42
+ addRange(componentName, startIndex, endIndex, sectionIndex) {
43
+ const range = {
44
+ componentName,
45
+ startIndex,
46
+ endIndex,
47
+ sectionIndex
48
+ };
49
+ this.ranges.push(range);
50
+ const currentCount = this.componentCounts.get(componentName) || 0;
51
+ this.componentCounts.set(componentName, currentCount + 1);
52
+ }
53
+ getRangesForComponent(componentName) {
54
+ return this.ranges.filter(r => r.componentName === componentName);
55
+ }
56
+ getComponentCount(componentName) {
57
+ return this.componentCounts.get(componentName) || 0;
58
+ }
59
+ isNodeHandled(nodeIndex) {
60
+ return this.ranges.some(r => nodeIndex >= r.startIndex && nodeIndex < r.endIndex);
61
+ }
62
+ getComponentForNode(nodeIndex) {
63
+ return this.ranges.find(r => nodeIndex >= r.startIndex && nodeIndex < r.endIndex) || null;
64
+ }
65
+ getSummary() {
66
+ const summary = [];
67
+ for (const [componentName, count] of this.componentCounts.entries()) {
68
+ summary.push({
69
+ componentName,
70
+ count,
71
+ ranges: this.getRangesForComponent(componentName)
72
+ });
73
+ }
74
+ return summary.sort((a, b) => b.count - a.count); // Sort by count descending
75
+ }
76
+ markImageKeywordUsed(keyword) {
77
+ this.usedImageKeywords.add(keyword.toLowerCase());
78
+ }
79
+ isImageKeywordUsed(keyword) {
80
+ return this.usedImageKeywords.has(keyword.toLowerCase());
81
+ }
82
+ setMeta(sectionType, key, value) {
83
+ this.metadata.set(`${sectionType}:${key}`, value);
84
+ }
85
+ getMeta(sectionType, key) {
86
+ return this.metadata.get(`${sectionType}:${key}`);
87
+ }
88
+ }
89
+ exports.ComponentTracking = ComponentTracking;
90
+ //# sourceMappingURL=componentTracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ComponentTracking","constructor","_defineProperty2","default","Map","Set","addRange","componentName","startIndex","endIndex","sectionIndex","range","ranges","push","currentCount","componentCounts","get","set","getRangesForComponent","filter","r","getComponentCount","isNodeHandled","nodeIndex","some","getComponentForNode","find","getSummary","summary","count","entries","sort","a","b","markImageKeywordUsed","keyword","usedImageKeywords","add","toLowerCase","isImageKeywordUsed","has","setMeta","sectionType","key","value","metadata","getMeta","exports"],"sources":["../../../src/utils/componentTracking.ts"],"sourcesContent":["export interface ComponentNodeRange {\n componentName: string;\n startIndex: number;\n endIndex: number; // exclusive\n sectionIndex: number; // position in the final sections array\n}\n\n/**\n * Tracks which components handle which ranges of nodes during markdown parsing.\n * This allows you to see which components handled which node ranges and how many times each component appears.\n *\n * @example\n * ```typescript\n * const sections = parseMarkdownToComponents(markdown);\n * const tracking = getLastComponentTracking();\n *\n * // Get how many times a component appears\n * const heroCount = tracking?.getComponentCount('HeroSection'); // e.g., 1\n *\n * // Get all ranges for a specific component\n * const heroRanges = tracking?.getRangesForComponent('HeroSection');\n * // Returns: [{ componentName: 'HeroSection', startIndex: 0, endIndex: 2, sectionIndex: 0 }]\n *\n * // Check if a node is already handled\n * const isHandled = tracking?.isNodeHandled(5); // true/false\n *\n * // Get which component handles a specific node\n * const handler = tracking?.getComponentForNode(5);\n * // Returns: ComponentNodeRange | null\n *\n * // Get a summary of all components\n * const summary = tracking?.getSummary();\n * // Returns: [{ componentName: 'HeroSection', count: 1, ranges: [...] }, ...]\n * ```\n */\nexport class ComponentTracking {\n ranges: ComponentNodeRange[] = [];\n componentCounts: Map<string, number> = new Map();\n usedImageKeywords: Set<string> = new Set();\n private metadata: Map<string, unknown> = new Map();\n\n addRange(\n componentName: string,\n startIndex: number,\n endIndex: number,\n sectionIndex: number,\n ): void {\n const range: ComponentNodeRange = {\n componentName,\n startIndex,\n endIndex,\n sectionIndex,\n };\n this.ranges.push(range);\n\n const currentCount = this.componentCounts.get(componentName) || 0;\n this.componentCounts.set(componentName, currentCount + 1);\n }\n\n getRangesForComponent(componentName: string): ComponentNodeRange[] {\n return this.ranges.filter((r) => r.componentName === componentName);\n }\n\n getComponentCount(componentName: string): number {\n return this.componentCounts.get(componentName) || 0;\n }\n\n isNodeHandled(nodeIndex: number): boolean {\n return this.ranges.some(\n (r) => nodeIndex >= r.startIndex && nodeIndex < r.endIndex,\n );\n }\n\n getComponentForNode(nodeIndex: number): ComponentNodeRange | null {\n return (\n this.ranges.find(\n (r) => nodeIndex >= r.startIndex && nodeIndex < r.endIndex,\n ) || null\n );\n }\n\n getSummary(): {\n componentName: string;\n count: number;\n ranges: ComponentNodeRange[];\n }[] {\n const summary: {\n componentName: string;\n count: number;\n ranges: ComponentNodeRange[];\n }[] = [];\n\n for (const [componentName, count] of this.componentCounts.entries()) {\n summary.push({\n componentName,\n count,\n ranges: this.getRangesForComponent(componentName),\n });\n }\n\n return summary.sort((a, b) => b.count - a.count); // Sort by count descending\n }\n\n markImageKeywordUsed(keyword: string): void {\n this.usedImageKeywords.add(keyword.toLowerCase());\n }\n\n isImageKeywordUsed(keyword: string): boolean {\n return this.usedImageKeywords.has(keyword.toLowerCase());\n }\n\n setMeta(sectionType: string, key: string, value: unknown): void {\n this.metadata.set(`${sectionType}:${key}`, value);\n }\n\n getMeta(sectionType: string, key: string): unknown {\n return this.metadata.get(`${sectionType}:${key}`);\n }\n}\n"],"mappings":";;;;;;AAOA;AACA;AACA;AACA;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,iBAAiB,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,kBACE,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,2BACM,IAAIC,GAAG,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,6BACf,IAAIE,GAAG,CAAC,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,oBACD,IAAIC,GAAG,CAAC,CAAC;EAAA;EAElDE,QAAQA,CACNC,aAAqB,EACrBC,UAAkB,EAClBC,QAAgB,EAChBC,YAAoB,EACd;IACN,MAAMC,KAAyB,GAAG;MAChCJ,aAAa;MACbC,UAAU;MACVC,QAAQ;MACRC;IACF,CAAC;IACD,IAAI,CAACE,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC;IAEvB,MAAMG,YAAY,GAAG,IAAI,CAACC,eAAe,CAACC,GAAG,CAACT,aAAa,CAAC,IAAI,CAAC;IACjE,IAAI,CAACQ,eAAe,CAACE,GAAG,CAACV,aAAa,EAAEO,YAAY,GAAG,CAAC,CAAC;EAC3D;EAEAI,qBAAqBA,CAACX,aAAqB,EAAwB;IACjE,OAAO,IAAI,CAACK,MAAM,CAACO,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACb,aAAa,KAAKA,aAAa,CAAC;EACrE;EAEAc,iBAAiBA,CAACd,aAAqB,EAAU;IAC/C,OAAO,IAAI,CAACQ,eAAe,CAACC,GAAG,CAACT,aAAa,CAAC,IAAI,CAAC;EACrD;EAEAe,aAAaA,CAACC,SAAiB,EAAW;IACxC,OAAO,IAAI,CAACX,MAAM,CAACY,IAAI,CACpBJ,CAAC,IAAKG,SAAS,IAAIH,CAAC,CAACZ,UAAU,IAAIe,SAAS,GAAGH,CAAC,CAACX,QACpD,CAAC;EACH;EAEAgB,mBAAmBA,CAACF,SAAiB,EAA6B;IAChE,OACE,IAAI,CAACX,MAAM,CAACc,IAAI,CACbN,CAAC,IAAKG,SAAS,IAAIH,CAAC,CAACZ,UAAU,IAAIe,SAAS,GAAGH,CAAC,CAACX,QACpD,CAAC,IAAI,IAAI;EAEb;EAEAkB,UAAUA,CAAA,EAIN;IACF,MAAMC,OAIH,GAAG,EAAE;IAER,KAAK,MAAM,CAACrB,aAAa,EAAEsB,KAAK,CAAC,IAAI,IAAI,CAACd,eAAe,CAACe,OAAO,CAAC,CAAC,EAAE;MACnEF,OAAO,CAACf,IAAI,CAAC;QACXN,aAAa;QACbsB,KAAK;QACLjB,MAAM,EAAE,IAAI,CAACM,qBAAqB,CAACX,aAAa;MAClD,CAAC,CAAC;IACJ;IAEA,OAAOqB,OAAO,CAACG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAACJ,KAAK,GAAGG,CAAC,CAACH,KAAK,CAAC,CAAC,CAAC;EACpD;EAEAK,oBAAoBA,CAACC,OAAe,EAAQ;IAC1C,IAAI,CAACC,iBAAiB,CAACC,GAAG,CAACF,OAAO,CAACG,WAAW,CAAC,CAAC,CAAC;EACnD;EAEAC,kBAAkBA,CAACJ,OAAe,EAAW;IAC3C,OAAO,IAAI,CAACC,iBAAiB,CAACI,GAAG,CAACL,OAAO,CAACG,WAAW,CAAC,CAAC,CAAC;EAC1D;EAEAG,OAAOA,CAACC,WAAmB,EAAEC,GAAW,EAAEC,KAAc,EAAQ;IAC9D,IAAI,CAACC,QAAQ,CAAC5B,GAAG,CAAC,GAAGyB,WAAW,IAAIC,GAAG,EAAE,EAAEC,KAAK,CAAC;EACnD;EAEAE,OAAOA,CAACJ,WAAmB,EAAEC,GAAW,EAAW;IACjD,OAAO,IAAI,CAACE,QAAQ,CAAC7B,GAAG,CAAC,GAAG0B,WAAW,IAAIC,GAAG,EAAE,CAAC;EACnD;AACF;AAACI,OAAA,CAAA/C,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.getContextualImageFilename = exports.findKeywordsInContent = void 0;
5
+ const escapeRegExp = value => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
6
+
7
+ /**
8
+ * Finds keywords from an allowed list that appear in the content.
9
+ * Returns keywords sorted by their first appearance position in the content.
10
+ */
11
+ const findKeywordsInContent = (contentParts, allowedKeywords) => {
12
+ const content = contentParts.filter(Boolean).join(' ').toLowerCase();
13
+ if (!content) {
14
+ return [];
15
+ }
16
+ const matches = [];
17
+ for (const keyword of allowedKeywords) {
18
+ const pattern = new RegExp(`\\b${escapeRegExp(keyword)}\\b`, 'i');
19
+ const matchIndex = content.search(pattern);
20
+ if (matchIndex >= 0) {
21
+ matches.push({
22
+ keyword,
23
+ index: matchIndex
24
+ });
25
+ }
26
+ }
27
+ return matches.sort((a, b) => a.index - b.index).map(match => match.keyword);
28
+ };
29
+
30
+ /**
31
+ * Gets a contextual image filename based on keywords found in content.
32
+ * Returns a web5://image/ URL if a keyword is found, otherwise the default image.
33
+ * When tracking is provided, skips keywords that have already been used on this page.
34
+ */
35
+ exports.findKeywordsInContent = findKeywordsInContent;
36
+ const getContextualImageFilename = (contentParts, allowedKeywords, defaultImage, tracking) => {
37
+ const matches = findKeywordsInContent(contentParts, allowedKeywords);
38
+
39
+ // Find first keyword not already used
40
+ const keyword = matches.find(kw => !tracking || !tracking.isImageKeywordUsed(kw));
41
+ if (keyword) {
42
+ tracking == null || tracking.markImageKeywordUsed(keyword);
43
+ return {
44
+ filename: `web5://image/${keyword}`,
45
+ alt: `${keyword} image`,
46
+ isFromText: true
47
+ };
48
+ }
49
+ return {
50
+ filename: defaultImage,
51
+ alt: '',
52
+ isFromText: false
53
+ };
54
+ };
55
+ exports.getContextualImageFilename = getContextualImageFilename;
56
+ //# sourceMappingURL=contentKeywordMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["escapeRegExp","value","replace","findKeywordsInContent","contentParts","allowedKeywords","content","filter","Boolean","join","toLowerCase","matches","keyword","pattern","RegExp","matchIndex","search","push","index","sort","a","b","map","match","exports","getContextualImageFilename","defaultImage","tracking","find","kw","isImageKeywordUsed","markImageKeywordUsed","filename","alt","isFromText"],"sources":["../../../src/utils/contentKeywordMatcher.ts"],"sourcesContent":["import type { ComponentTracking } from './componentTracking';\nimport type { ContextualImageResult } from '../component/section-definition';\n\nconst escapeRegExp = (value: string) =>\n value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n/**\n * Finds keywords from an allowed list that appear in the content.\n * Returns keywords sorted by their first appearance position in the content.\n */\nexport const findKeywordsInContent = (\n contentParts: (string | undefined | null)[],\n allowedKeywords: string[],\n): string[] => {\n const content = contentParts.filter(Boolean).join(' ').toLowerCase();\n if (!content) {\n return [];\n }\n\n const matches: { keyword: string; index: number }[] = [];\n for (const keyword of allowedKeywords) {\n const pattern = new RegExp(`\\\\b${escapeRegExp(keyword)}\\\\b`, 'i');\n const matchIndex = content.search(pattern);\n if (matchIndex >= 0) {\n matches.push({ keyword, index: matchIndex });\n }\n }\n\n return matches\n .sort((a, b) => a.index - b.index)\n .map((match) => match.keyword);\n};\n\n/**\n * Gets a contextual image filename based on keywords found in content.\n * Returns a web5://image/ URL if a keyword is found, otherwise the default image.\n * When tracking is provided, skips keywords that have already been used on this page.\n */\nexport const getContextualImageFilename = (\n contentParts: (string | undefined | null)[],\n allowedKeywords: string[],\n defaultImage: string,\n tracking?: ComponentTracking,\n): ContextualImageResult => {\n const matches = findKeywordsInContent(contentParts, allowedKeywords);\n\n // Find first keyword not already used\n const keyword = matches.find(\n (kw) => !tracking || !tracking.isImageKeywordUsed(kw),\n );\n\n if (keyword) {\n tracking?.markImageKeywordUsed(keyword);\n return {\n filename: `web5://image/${keyword}`,\n alt: `${keyword} image`,\n isFromText: true,\n };\n }\n\n return { filename: defaultImage, alt: '', isFromText: false };\n};\n"],"mappings":";;;;AAGA,MAAMA,YAAY,GAAIC,KAAa,IACjCA,KAAK,CAACC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;;AAE9C;AACA;AACA;AACA;AACO,MAAMC,qBAAqB,GAAGA,CACnCC,YAA2C,EAC3CC,eAAyB,KACZ;EACb,MAAMC,OAAO,GAAGF,YAAY,CAACG,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAACC,WAAW,CAAC,CAAC;EACpE,IAAI,CAACJ,OAAO,EAAE;IACZ,OAAO,EAAE;EACX;EAEA,MAAMK,OAA6C,GAAG,EAAE;EACxD,KAAK,MAAMC,OAAO,IAAIP,eAAe,EAAE;IACrC,MAAMQ,OAAO,GAAG,IAAIC,MAAM,CAAC,MAAMd,YAAY,CAACY,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;IACjE,MAAMG,UAAU,GAAGT,OAAO,CAACU,MAAM,CAACH,OAAO,CAAC;IAC1C,IAAIE,UAAU,IAAI,CAAC,EAAE;MACnBJ,OAAO,CAACM,IAAI,CAAC;QAAEL,OAAO;QAAEM,KAAK,EAAEH;MAAW,CAAC,CAAC;IAC9C;EACF;EAEA,OAAOJ,OAAO,CACXQ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACF,KAAK,GAAGG,CAAC,CAACH,KAAK,CAAC,CACjCI,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACX,OAAO,CAAC;AAClC,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAY,OAAA,CAAArB,qBAAA,GAAAA,qBAAA;AAKO,MAAMsB,0BAA0B,GAAGA,CACxCrB,YAA2C,EAC3CC,eAAyB,EACzBqB,YAAoB,EACpBC,QAA4B,KACF;EAC1B,MAAMhB,OAAO,GAAGR,qBAAqB,CAACC,YAAY,EAAEC,eAAe,CAAC;;EAEpE;EACA,MAAMO,OAAO,GAAGD,OAAO,CAACiB,IAAI,CACzBC,EAAE,IAAK,CAACF,QAAQ,IAAI,CAACA,QAAQ,CAACG,kBAAkB,CAACD,EAAE,CACtD,CAAC;EAED,IAAIjB,OAAO,EAAE;IACXe,QAAQ,YAARA,QAAQ,CAAEI,oBAAoB,CAACnB,OAAO,CAAC;IACvC,OAAO;MACLoB,QAAQ,EAAE,gBAAgBpB,OAAO,EAAE;MACnCqB,GAAG,EAAE,GAAGrB,OAAO,QAAQ;MACvBsB,UAAU,EAAE;IACd,CAAC;EACH;EAEA,OAAO;IAAEF,QAAQ,EAAEN,YAAY;IAAEO,GAAG,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAM,CAAC;AAC/D,CAAC;AAACV,OAAA,CAAAC,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.usesTurnApi = exports.setConversationApi = exports.getConversationApi = exports.DEFAULT_CONVERSATION_API = exports.CONVERSATION_API_KEY = void 0;
5
+ /**
6
+ * Conversation API selection (debug-only).
7
+ *
8
+ * Switches the conversation between the default `Conversation` RPC
9
+ * (`POST /v1/conversation`) and the parallel-safe `Turn` RPC
10
+ * (`POST /v1/turn`, DL #110). Persisted in
11
+ * `localStorage["web5_conversation_api"]`, read at request time. Default
12
+ * `conversation` (Turn is opt-in via the debug toggle for now).
13
+ *
14
+ * `Turn` returns a flat markdown stream (no sectioned page frames), so the
15
+ * sectioned-stream consumption path only runs on the `Conversation` API. Lives
16
+ * in web5-core so any surface can honor the same toggle.
17
+ */
18
+
19
+ const CONVERSATION_API_KEY = exports.CONVERSATION_API_KEY = 'web5_conversation_api';
20
+ const DEFAULT_CONVERSATION_API = exports.DEFAULT_CONVERSATION_API = 'conversation';
21
+
22
+ /**
23
+ * Read the selected conversation API from localStorage. Falls back to the
24
+ * default (`conversation`) when unset, invalid, or storage is unavailable.
25
+ */
26
+ const getConversationApi = () => {
27
+ try {
28
+ const value = localStorage.getItem(CONVERSATION_API_KEY);
29
+ if (value === 'turn' || value === 'conversation') {
30
+ return value;
31
+ }
32
+ } catch {
33
+ // localStorage can throw in privacy mode / non-DOM environments.
34
+ }
35
+ return DEFAULT_CONVERSATION_API;
36
+ };
37
+
38
+ /** Persist the selected conversation API to localStorage. */
39
+ exports.getConversationApi = getConversationApi;
40
+ const setConversationApi = api => {
41
+ try {
42
+ localStorage.setItem(CONVERSATION_API_KEY, api);
43
+ } catch {
44
+ // Ignore — selection simply won't persist across reloads.
45
+ }
46
+ };
47
+
48
+ /** Whether the conversation should use the Turn RPC (opt-in; default is Conversation). */
49
+ exports.setConversationApi = setConversationApi;
50
+ const usesTurnApi = () => getConversationApi() === 'turn';
51
+ exports.usesTurnApi = usesTurnApi;
52
+ //# sourceMappingURL=conversationApi.js.map