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