@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 @@
1
+ {"version":3,"names":["_parts","require","str","p","_p$content","content","trim","firstImage","parts","_img$meta","img","getImages","getPartByRole","meta","src","listItemParts","lists","getPartsByType","items","lp","item","_lp$meta","push","cardParts","allLinks","top","getLinks","length","nested","_item$meta","type","extractHeroSection1Props","_trailingListPart$con","links","trailingListPart","h1","getHeading","headings","nonH1","find","h","level","headline","badge","buttons","map","l","i","_l$content","_l$meta","id","String","text","variant","onClick","href","undefined","image","trailingList","extractFeatureSection1Props","title","_l$content2","_l$meta2","extractFeatureWithImageProps","listItems","_item$meta2","_link$content","_link$meta","link","x","linkUrl","_l$content3","_l$meta3","extractFeatureSection9PlusProps","_blockquotePart$conte","features","_item$meta3","heading","role","textParts","filter","description","_heading$content","_textParts$","_item$content","_link$content2","t","_t$content","Boolean","join","_textParts$2","slice","_t$content2","_textParts$3","_item$content2","blockquotePart","blockquote","layoutType","extractFeatureSection15Props","_item$meta4","_textParts$4","_textParts$5","_item$content3","titleText","descText","parseKpiText","segments","split","isValueLike","s","test","timeframe","value","extractKpiSectionProps","kpiParts","_p$meta","_p$meta2","_p$meta3","_p$meta4","label","trend","_item$meta5","raw","_p$content2","parsed","tp","cardsOrFallbackPosts","max","cards","sliced","_p$meta5","_p$meta6","_p$meta7","_p$meta8","_p$meta9","_p$meta0","imageUrl","date","category","hasStructured","some","_item$meta6","_item$meta7","_titleSource$content","_item$content4","_img$meta2","_link$meta2","texts","titleSource","descTexts","_t$content3","images","posts","allParts","linkIdx","_p$content3","_meta","last","_meta2","_p$content4","extractBlogSectionProps","_getLinks$","postUrls","Set","sectionImages","_i$meta","u","has","buttonText","extractBlogSection1Props","exports","extractBlogSection3Props","extractBlogSection4Props","extractFeature8Blog4SectionProps","extractComparisonSection1Props","_links$","_links$2","_tipPart$content","tablePart","rawRows","rows","r","Array","isArray","feature","values","v","columnLabels","columns","tipPart","tagline","featureColumnLabel","ctaText","ctaHref","tip","extractFeatureCardsSectionProps","_item$meta8","_heading$content2","_textPart$content","_item$content5","textPart","current","_p$content5","_p$content6","_p$content7","calloutText","extractNextStepsSectionProps","steps","_item$meta9","_itemLinks$","itemLinks","_itemLinks$2","_l$content4","_l$meta4","extractCalloutSectionProps","blockquotes","callouts","_p$content8","relatedLinks","_l$content5","_l$meta5","url","extractGeneralTextSectionProps","markdown","extractErrorSectionProps","subtitle","_l$content6","extractPersonalizedNarrativeSectionProps","extractHeroSection6Props","_l$content7","_l$meta6","backgroundImage","SECTION_EXTRACTORS","HeroCircana1","HeroSection1","HeroSection6","FeatureSection","FeatureSection1","FeatureSection9Plus","FeatureSection15","KpiSection","BlogSection","BlogSection1","BlogSection1TwoItems","BlogSection1FourToEight","BlogSection3","BlogSection4","Feature8Blog4Section","Feature8Blog4CircanaSection","ComparisonSection1","FeatureCardsSection","NextStepsSection","CalloutSection","GeneralTextSection","ErrorSection","PersonalizedNarrativeSection","GenericEntitySection","extractPropsForSection","componentName","fn","console","warn","props","log","JSON","stringify"],"sources":["../../../src/match/extractProps.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Per-section extraction functions: Part[] → component props\n//\n// Each function maps the semantic Parts produced by matchMarkdown into the\n// exact props shape that the corresponding Section component expects.\n// ---------------------------------------------------------------------------\n\nimport {\n type Part,\n type HeadingPart,\n type ImagePart,\n type LinkPart,\n type ListPart,\n type ListItemPart,\n type KpiItemPart,\n type CardPart,\n getPartsByType,\n getPartByRole,\n getHeading,\n getImages,\n getLinks,\n} from '../parts/parts';\n\n// ---------------------------------------------------------------------------\n// Shared helpers\n// ---------------------------------------------------------------------------\n\nfunction str(p: Part | undefined): string {\n return p?.content?.trim() ?? '';\n}\n\nfunction firstImage(parts: Part[]): string {\n const img =\n getImages(parts)[0] ?? getPartByRole<ImagePart>(parts, 'hero-image');\n return img?.meta?.src ?? '';\n}\n\nfunction listItemParts(parts: Part[]): ListItemPart[] {\n const lists = getPartsByType<ListPart>(parts, 'list');\n const items: ListItemPart[] = [];\n for (const lp of lists) {\n for (const item of lp.meta?.items ?? []) {\n items.push(item);\n }\n }\n return items;\n}\n\nfunction cardParts(parts: Part[]): CardPart[] {\n return getPartsByType<CardPart>(parts, 'card');\n}\n\n/** Collect links from top-level parts AND nested inside list items. */\nfunction allLinks(parts: Part[]): LinkPart[] {\n const top = getLinks(parts);\n if (top.length > 0) {\n return top;\n }\n const nested: LinkPart[] = [];\n for (const item of listItemParts(parts)) {\n for (const p of item.meta?.parts ?? []) {\n if (p.type === 'link') {\n nested.push(p as LinkPart);\n }\n }\n }\n return nested;\n}\n\n// ---------------------------------------------------------------------------\n// Prop types (plain objects, no React)\n// ---------------------------------------------------------------------------\n\nexport interface HeroSection1Props {\n headline: string;\n badge?: string;\n content?: string;\n buttons?: {\n id: string;\n text: string;\n variant: 'primary' | 'secondary';\n onClick?: string;\n }[];\n image?: string;\n trailingList?: string;\n}\n\nexport interface FeatureSection1Props {\n title: string;\n content: string;\n image: string;\n buttons?: { text: string; onClick?: string }[];\n}\n\nexport interface FeatureWithImageProps {\n title: string;\n content: string;\n image: string;\n buttons?: { text: string; onClick?: string }[];\n listItems?: { content: string; linkUrl?: string }[];\n}\n\nexport interface FeatureSection9PlusProps {\n title: string;\n description?: string;\n features: {\n title?: string;\n description: string;\n titleIcon?: { url?: string; emoji?: string };\n }[];\n blockquote?: string;\n layoutType?: 'horizontal' | 'grid';\n}\n\nexport interface FeatureSection15Props {\n title: string;\n description?: string;\n features: { title: string; description: string }[];\n image: string;\n}\n\nexport interface KpiSectionProps {\n title: string;\n items: {\n value?: string;\n description: string;\n timeframe?: string;\n trend?: 'up' | 'down' | 'neutral';\n }[];\n}\n\nexport interface BlogSectionProps {\n title?: string;\n description?: string;\n posts: {\n id: string;\n title?: string;\n description: string;\n imageUrl: string;\n date?: string;\n category?: string;\n onClick?: string;\n }[];\n buttonText?: string;\n imageUrl?: string;\n}\n\n/** @deprecated Use BlogSectionProps */\nexport type BlogSection1Props = BlogSectionProps;\n/** @deprecated Use BlogSectionProps */\nexport type BlogSection3Props = BlogSectionProps;\n/** @deprecated Use BlogSectionProps */\nexport type BlogSection4Props = BlogSectionProps;\n/** @deprecated Use BlogSectionProps */\nexport type Feature8Blog4SectionProps = BlogSectionProps;\n\nexport interface ComparisonSection1Props {\n title: string;\n tagline?: string;\n description?: string;\n rows: { feature: string; values: (boolean | string)[] }[];\n columnLabels: string[];\n featureColumnLabel?: string;\n ctaText?: string;\n ctaHref?: string;\n tip?: string;\n}\n\nexport interface FeatureCardsSectionProps {\n cards: { title: string; description: string; calloutText?: string }[];\n}\n\nexport interface NextStepsSectionProps {\n title: string;\n steps: {\n content: string;\n href?: string;\n links?: { text: string; href: string }[];\n }[];\n}\n\nexport interface CalloutSectionProps {\n callouts: string[];\n title?: string;\n relatedLinks?: { text: string; url: string }[];\n}\n\nexport interface GeneralTextSectionProps {\n markdown: string;\n}\n\nexport interface ErrorSectionProps {\n title: string;\n subtitle?: string;\n buttons?: { text: string; variant: 'primary' | 'secondary' }[];\n}\n\nexport interface PersonalizedNarrativeSectionProps {\n title: string;\n content?: string;\n}\n\nexport interface HeroSection6Props {\n headline: string;\n tagline?: string;\n content?: string;\n buttons?: { id: string; text: string; onClick?: string }[];\n backgroundImage?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Extraction functions\n// ---------------------------------------------------------------------------\n\nexport function extractHeroSection1Props(parts: Part[]): HeroSection1Props {\n const links = allLinks(parts);\n const trailingListPart = getPartsByType<ListPart>(parts, 'list')[0];\n\n // Hero: prefer h1 for headline, use smaller heading as badge\n const h1 = getHeading(parts, 1);\n const headings = getPartsByType<HeadingPart>(parts, 'heading');\n const nonH1 = headings.find((h) => h.meta.level !== 1);\n const headline = h1 ?? getPartByRole(parts, 'title');\n const badge = h1 ? nonH1 : getPartByRole(parts, 'subtitle');\n\n const buttons =\n links.length > 0\n ? links.map((l, i) => ({\n id: String(i),\n text: l.content?.trim() || 'Learn more',\n variant: (i === 0 ? 'primary' : 'secondary') as\n | 'primary'\n | 'secondary',\n onClick: l.meta?.href,\n }))\n : undefined;\n\n return {\n headline: str(headline),\n badge: str(badge) || undefined,\n content: str(getPartByRole(parts, 'description')) || undefined,\n buttons,\n image: firstImage(parts) || undefined,\n trailingList: trailingListPart?.content?.trim() || undefined,\n };\n}\n\nexport function extractFeatureSection1Props(\n parts: Part[],\n): FeatureSection1Props {\n return {\n title: str(getPartByRole(parts, 'title')),\n content: str(getPartByRole(parts, 'description')),\n image: firstImage(parts),\n buttons:\n getLinks(parts).length > 0\n ? getLinks(parts).map((l) => ({\n text: l.content?.trim() || 'Learn more',\n onClick: l.meta?.href,\n }))\n : undefined,\n };\n}\n\nexport function extractFeatureWithImageProps(\n parts: Part[],\n): FeatureWithImageProps {\n const items = listItemParts(parts);\n const listItems: FeatureWithImageProps['listItems'] =\n items.length > 0\n ? items.map((item) => {\n const nested = item.meta?.parts ?? [];\n const link = nested.find((x) => x.type === 'link') as\n | LinkPart\n | undefined;\n const text = nested.find((x) => x.type === 'text');\n return {\n content:\n (text?.content ?? item.content ?? '').trim() ||\n link?.content?.trim() ||\n '',\n linkUrl: link?.meta?.href,\n };\n })\n : undefined;\n\n return {\n title: str(getPartByRole(parts, 'title')),\n content: str(getPartByRole(parts, 'description')),\n image: firstImage(parts),\n buttons:\n getLinks(parts).length > 0\n ? getLinks(parts).map((l) => ({\n text: l.content?.trim() || 'Learn more',\n onClick: l.meta?.href,\n }))\n : undefined,\n listItems,\n };\n}\n\nexport function extractFeatureSection9PlusProps(\n parts: Part[],\n): FeatureSection9PlusProps {\n const items = listItemParts(parts);\n const features: FeatureSection9PlusProps['features'] = [];\n\n for (const item of items) {\n const nested = item.meta?.parts ?? [];\n const heading = nested.find(\n (x) => x.type === 'heading' || x.role === 'title',\n );\n const link = nested.find((x) => x.type === 'link') as LinkPart | undefined;\n const textParts = nested.filter((x) => x.type === 'text');\n\n let title: string | undefined;\n let description: string;\n\n if (heading) {\n title = heading.content?.trim();\n description = textParts[0]?.content?.trim() ?? item.content?.trim() ?? '';\n } else if (link && textParts.length > 0) {\n title = link.content?.trim();\n description = textParts\n .map((t) => t.content?.trim())\n .filter(Boolean)\n .join(' ');\n } else if (textParts.length > 1) {\n title = textParts[0]?.content?.trim();\n description = textParts\n .slice(1)\n .map((t) => t.content?.trim())\n .filter(Boolean)\n .join(' ');\n } else {\n description = textParts[0]?.content?.trim() ?? item.content?.trim() ?? '';\n }\n\n if (description) {\n features.push({ title, description });\n }\n }\n\n const blockquotePart =\n getPartByRole(parts, 'callout') ?? getPartsByType(parts, 'blockquote')[0];\n return {\n title: str(getPartByRole(parts, 'title')),\n description: str(getPartByRole(parts, 'description')) || undefined,\n features,\n blockquote: blockquotePart?.content?.trim() || undefined,\n layoutType: 'grid',\n };\n}\n\nexport function extractFeatureSection15Props(\n parts: Part[],\n): FeatureSection15Props {\n const items = listItemParts(parts);\n const features: FeatureSection15Props['features'] = [];\n\n for (const item of items) {\n const nested = item.meta?.parts ?? [];\n const textParts = nested.filter((x) => x.type === 'text');\n const titleText = textParts[0]?.content?.trim() ?? '';\n const descText =\n textParts.length > 1\n ? textParts[1]?.content?.trim() ?? ''\n : item.content?.trim() ?? '';\n\n if (titleText || descText) {\n features.push({ title: titleText, description: descText || titleText });\n }\n }\n\n return {\n title: str(getPartByRole(parts, 'title')),\n description: str(getPartByRole(parts, 'description')) || undefined,\n features,\n image: firstImage(parts),\n };\n}\n\n/**\n * Parse a colon-separated KPI text line like \"52 weeks: +7.3%: description\"\n * or \"48.8%: description\" into structured KPI fields.\n */\nfunction parseKpiText(\n text: string,\n): { value: string; description: string; timeframe?: string } | null {\n const segments = text.split(/:\\s*/);\n if (segments.length < 2) {\n return null;\n }\n const isValueLike = (s: string) => /[0-9%+\\-.]/.test(s);\n\n if (segments.length >= 3 && isValueLike(segments[1])) {\n return {\n timeframe: segments[0].trim(),\n value: segments[1].trim(),\n description: segments.slice(2).join(': ').trim(),\n };\n }\n if (isValueLike(segments[0])) {\n return {\n value: segments[0].trim(),\n description: segments.slice(1).join(': ').trim(),\n };\n }\n return null;\n}\n\nexport function extractKpiSectionProps(parts: Part[]): KpiSectionProps {\n const kpiParts = getPartsByType<KpiItemPart>(parts, 'kpiItem');\n\n if (kpiParts.length > 0) {\n return {\n title: str(getPartByRole(parts, 'title')),\n items: kpiParts\n .map((p) => ({\n value: (p.meta?.value as string) ?? '',\n description: (p.meta?.label as string) ?? p.content ?? '',\n timeframe: (p.meta?.timeframe as string) || undefined,\n trend: ((p.meta?.trend as string) ?? 'neutral') as\n | 'up'\n | 'down'\n | 'neutral',\n }))\n .filter((i) => i.value || i.description),\n };\n }\n\n // Fallback: parse KPI values from list items or text parts\n type KpiItem = KpiSectionProps['items'][number];\n const items: KpiItem[] = [];\n\n const listItems = listItemParts(parts);\n if (listItems.length > 0) {\n for (const item of listItems) {\n const nested = item.meta?.parts ?? [];\n const raw = nested\n .map((p) => p.content?.trim())\n .filter(Boolean)\n .join(': ');\n const parsed = parseKpiText(raw || item.content || '');\n if (parsed) {\n items.push({ ...parsed, trend: 'neutral' });\n }\n }\n } else {\n const textParts = parts.filter(\n (p) => p.type === 'text' && p.role !== 'title' && p.role !== 'subtitle',\n );\n for (const tp of textParts) {\n const parsed = parseKpiText(tp.content || '');\n if (parsed) {\n items.push({ ...parsed, trend: 'neutral' });\n }\n }\n }\n\n return { title: str(getPartByRole(parts, 'title')), items };\n}\n\ninterface PostProps {\n id: string;\n title: string;\n description: string;\n imageUrl: string;\n date: string;\n category: string;\n onClick?: string;\n}\n\nfunction cardsOrFallbackPosts(parts: Part[], max?: number): PostProps[] {\n const cards = cardParts(parts);\n if (cards.length > 0) {\n const sliced = max ? cards.slice(0, max) : cards;\n return sliced.map((p, i) => ({\n id: String(i),\n title: (p.meta?.title as string) ?? p.content ?? '',\n description: (p.meta?.description as string) ?? '',\n imageUrl: (p.meta?.imageUrl as string) ?? '',\n date: (p.meta?.date as string) ?? '',\n category: (p.meta?.category as string) ?? '',\n onClick: (p.meta?.link as string) || undefined,\n }));\n }\n\n // Fallback 1: derive posts from list items that contain structured content\n const items = listItemParts(parts);\n const hasStructured = items.some((item) => {\n const nested = item.meta?.parts ?? [];\n return nested.some(\n (x) => x.type === 'heading' || x.type === 'link' || x.type === 'image',\n );\n });\n if (items.length > 0 && hasStructured) {\n const sliced = max ? items.slice(0, max) : items;\n return sliced.map((item, i) => {\n const nested = item.meta?.parts ?? [];\n const heading = nested.find((x) => x.type === 'heading');\n const link = nested.find((x) => x.type === 'link') as\n | LinkPart\n | undefined;\n const img = nested.find((x) => x.type === 'image') as\n | ImagePart\n | undefined;\n const texts = nested.filter((x) => x.type === 'text');\n const titleSource = heading ?? link;\n const descTexts = heading ? texts : texts.slice(link ? 0 : 0);\n return {\n id: String(i),\n title: titleSource?.content?.trim() ?? item.content?.trim() ?? '',\n description:\n descTexts\n .map((t) => t.content?.trim())\n .filter(Boolean)\n .join(' ') || '',\n imageUrl: (img?.meta?.src as string) ?? '',\n date: '',\n category: '',\n onClick: link?.meta?.href || undefined,\n };\n });\n }\n\n // Fallback 2: group sequential link+image+text flat parts into posts\n // (common for blogSection1 where each post is link paragraph + image paragraph + text paragraph)\n const links = getLinks(parts);\n const images = getImages(parts);\n if (links.length >= 2 && images.length >= 2) {\n const posts: PostProps[] = [];\n const allParts = parts.filter(\n (p) => p.type !== 'heading' && p.type !== 'htmlComment',\n );\n let linkIdx = 0;\n for (const p of allParts) {\n if (p.type === 'link') {\n posts.push({\n id: String(linkIdx++),\n title: p.content?.trim() ?? '',\n description: '',\n imageUrl: '',\n date: '',\n category: '',\n onClick: (p as LinkPart).meta?.href || undefined,\n });\n } else if (posts.length > 0) {\n const last = posts[posts.length - 1];\n if (p.type === 'image' && !last.imageUrl) {\n last.imageUrl = ((p as ImagePart).meta?.src as string) ?? '';\n } else if (p.type === 'text' && !last.description) {\n last.description = p.content?.trim() ?? '';\n }\n }\n }\n const sliced = max ? posts.slice(0, max) : posts;\n return sliced;\n }\n\n return [];\n}\n\nexport function extractBlogSectionProps(parts: Part[]) {\n const posts = cardsOrFallbackPosts(parts);\n const postUrls = new Set(posts.map((p) => p.imageUrl).filter(Boolean));\n const sectionImages = getImages(parts)\n .map((i) => i.meta?.src ?? '')\n .filter((u) => u && !postUrls.has(u));\n return {\n title: str(getPartByRole(parts, 'title')) || undefined,\n description: str(getPartByRole(parts, 'description')) || undefined,\n posts,\n imageUrl: sectionImages[0] || firstImage(parts) || undefined,\n ...(sectionImages.length > 1 && { images: sectionImages }),\n buttonText: getLinks(parts)[0]?.content?.trim() || undefined,\n };\n}\n\n/** @deprecated Use extractBlogSectionProps */\nexport const extractBlogSection1Props = extractBlogSectionProps;\n/** @deprecated Use extractBlogSectionProps */\nexport const extractBlogSection3Props = extractBlogSectionProps;\n/** @deprecated Use extractBlogSectionProps */\nexport const extractBlogSection4Props = extractBlogSectionProps;\n\n/** @deprecated Use extractBlogSectionProps */\nexport const extractFeature8Blog4SectionProps = extractBlogSectionProps;\n\nexport function extractComparisonSection1Props(\n parts: Part[],\n): ComparisonSection1Props {\n const tablePart =\n getPartByRole(parts, 'table') ?? getPartsByType(parts, 'table')[0];\n const meta = tablePart?.meta ?? {};\n\n const rawRows = (meta.rows ?? []) as Record<string, unknown>[];\n const rows = rawRows.map((r) => {\n if (Array.isArray(r)) {\n return {\n feature: String(r[0] ?? ''),\n values: (r as unknown[])\n .slice(1)\n .map((v) => (typeof v === 'boolean' ? v : String(v ?? ''))),\n };\n }\n return {\n feature: String((r as { feature?: string }).feature ?? ''),\n values: ((r as { values?: unknown[] }).values ?? []).map((v) =>\n typeof v === 'boolean' ? v : String(v ?? ''),\n ),\n };\n });\n\n const columnLabels = (meta.columnLabels ?? meta.columns ?? []) as string[];\n const links = getLinks(parts);\n const tipPart =\n getPartByRole(parts, 'callout') ?? getPartsByType(parts, 'blockquote')[0];\n\n return {\n title: str(getPartByRole(parts, 'title')),\n tagline: str(getPartByRole(parts, 'subtitle')) || undefined,\n description: str(getPartByRole(parts, 'description')) || undefined,\n rows,\n columnLabels,\n featureColumnLabel: (meta.featureColumnLabel as string) || undefined,\n ctaText: links[0]?.content?.trim() || undefined,\n ctaHref: links[0]?.meta?.href || undefined,\n tip: tipPart?.content?.trim() || undefined,\n };\n}\n\nexport function extractFeatureCardsSectionProps(\n parts: Part[],\n): FeatureCardsSectionProps {\n const items = listItemParts(parts);\n const cards: FeatureCardsSectionProps['cards'] = [];\n\n if (items.length > 0) {\n for (const item of items) {\n const nested = item.meta?.parts ?? [];\n const heading = nested.find((x) => x.type === 'heading');\n const textPart = nested.find((x) => x.type === 'text');\n const title = heading?.content?.trim() ?? '';\n const description =\n textPart?.content?.trim() ?? item.content?.trim() ?? '';\n if (title || description) {\n cards.push({ title, description });\n }\n }\n return { cards };\n }\n\n // Fallback: group parts by heading boundaries (for repeating h2 > t > blockquote patterns)\n let current: {\n title: string;\n description: string;\n calloutText?: string;\n } | null = null;\n for (const p of parts) {\n if (p.type === 'heading') {\n if (current) {\n cards.push(current);\n }\n current = { title: p.content?.trim() ?? '', description: '' };\n } else if (current) {\n if (p.type === 'text' || p.type === 'richText') {\n current.description +=\n (current.description ? ' ' : '') + (p.content?.trim() ?? '');\n } else if (p.type === 'blockquote') {\n current.calloutText = p.content?.trim();\n }\n }\n }\n if (current) {\n cards.push(current);\n }\n\n return { cards };\n}\n\nexport function extractNextStepsSectionProps(\n parts: Part[],\n): NextStepsSectionProps {\n const items = listItemParts(parts);\n const steps: NextStepsSectionProps['steps'] = [];\n\n for (const item of items) {\n const nested = item.meta?.parts ?? [];\n const itemLinks = nested.filter((x) => x.type === 'link') as LinkPart[];\n const text = nested.find((x) => x.type === 'text');\n const content = (\n text?.content ||\n item.content ||\n itemLinks[0]?.content ||\n ''\n ).trim();\n if (content) {\n steps.push({\n content,\n href: itemLinks[0]?.meta?.href,\n links:\n itemLinks.length > 0\n ? itemLinks.map((l) => ({\n text: l.content?.trim() || '',\n href: l.meta?.href ?? '',\n }))\n : undefined,\n });\n }\n }\n\n return {\n title: str(getPartByRole(parts, 'title')) || 'Next steps',\n steps,\n };\n}\n\nexport function extractCalloutSectionProps(\n parts: Part[],\n): CalloutSectionProps {\n const blockquotes = getPartsByType(parts, 'blockquote');\n const callouts = blockquotes\n .map((p) => p.content?.trim())\n .filter(Boolean) as string[];\n const links = getLinks(parts);\n\n return {\n callouts,\n relatedLinks:\n links.length > 0\n ? links.map((l) => ({\n text: l.content?.trim() || 'Learn more',\n url: l.meta?.href ?? '#',\n }))\n : undefined,\n };\n}\n\nexport function extractGeneralTextSectionProps(\n parts: Part[],\n): GeneralTextSectionProps {\n const texts = parts\n .filter(\n (p) => p.type === 'text' || p.type === 'heading' || p.type === 'richText',\n )\n .map((p) => p.content)\n .filter(Boolean);\n return { markdown: texts.join('\\n\\n') };\n}\n\nexport function extractErrorSectionProps(parts: Part[]): ErrorSectionProps {\n const links = getLinks(parts);\n return {\n title: str(getPartByRole(parts, 'title')) || 'Something went wrong',\n subtitle: str(getPartByRole(parts, 'description')) || undefined,\n buttons:\n links.length > 0\n ? links.map((l, i) => ({\n text: l.content?.trim() || 'Try again',\n variant: (i === 0 ? 'primary' : 'secondary') as\n | 'primary'\n | 'secondary',\n }))\n : undefined,\n };\n}\n\nexport function extractPersonalizedNarrativeSectionProps(\n parts: Part[],\n): PersonalizedNarrativeSectionProps {\n return {\n title: str(getPartByRole(parts, 'title')),\n content: str(getPartByRole(parts, 'description')) || undefined,\n };\n}\n\nexport function extractHeroSection6Props(parts: Part[]): HeroSection6Props {\n const links = getLinks(parts);\n return {\n headline: str(getPartByRole(parts, 'title')),\n tagline: str(getPartByRole(parts, 'subtitle')) || undefined,\n content: str(getPartByRole(parts, 'description')) || undefined,\n buttons:\n links.length > 0\n ? links.map((l, i) => ({\n id: String(i),\n text: l.content?.trim() || 'Learn more',\n onClick: l.meta?.href,\n }))\n : undefined,\n backgroundImage: firstImage(parts) || undefined,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Registry: componentName → extractor\n// ---------------------------------------------------------------------------\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ExtractorFn = (parts: Part[]) => any;\n\nexport const SECTION_EXTRACTORS: Record<string, ExtractorFn> = {\n HeroCircana1: extractHeroSection1Props,\n HeroSection1: extractHeroSection1Props,\n HeroSection6: extractHeroSection6Props,\n FeatureSection: extractFeatureWithImageProps,\n FeatureSection1: extractFeatureSection1Props,\n FeatureSection9Plus: extractFeatureSection9PlusProps,\n FeatureSection15: extractFeatureSection15Props,\n KpiSection: extractKpiSectionProps,\n BlogSection: extractBlogSectionProps,\n BlogSection1: extractBlogSectionProps,\n BlogSection1TwoItems: extractBlogSectionProps,\n BlogSection1FourToEight: extractBlogSectionProps,\n BlogSection3: extractBlogSectionProps,\n BlogSection4: extractBlogSectionProps,\n Feature8Blog4Section: extractBlogSectionProps,\n Feature8Blog4CircanaSection: extractBlogSectionProps,\n ComparisonSection1: extractComparisonSection1Props,\n FeatureCardsSection: extractFeatureCardsSectionProps,\n NextStepsSection: extractNextStepsSectionProps,\n CalloutSection: extractCalloutSectionProps,\n GeneralTextSection: extractGeneralTextSectionProps,\n ErrorSection: extractErrorSectionProps,\n PersonalizedNarrativeSection: extractPersonalizedNarrativeSectionProps,\n GenericEntitySection: extractFeatureWithImageProps,\n};\n\n/**\n * Given a componentName (from parserConfig) and a Part[], returns the typed\n * props object the corresponding Section component expects.\n *\n * Returns undefined if no extractor is registered for the given name.\n */\nexport function extractPropsForSection(\n componentName: string,\n parts: Part[],\n): Record<string, unknown> | undefined {\n const fn = SECTION_EXTRACTORS[componentName];\n if (!fn) {\n console.warn('[Preview Pipeline] No extractor for \"%s\"', componentName);\n return undefined;\n }\n const props = fn(parts);\n console.log(\n '[Preview Pipeline] extractProps(%s) — %d parts → %s',\n componentName,\n parts.length,\n JSON.stringify(props, null, 2),\n );\n return props;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.nodesToParts = exports.matchMarkdown = exports.matchAllSections = void 0;
5
+ var _matchMarkdown = require("./matchMarkdown");
6
+ exports.matchMarkdown = _matchMarkdown.matchMarkdown;
7
+ var _matchAllSections = require("./matchAllSections");
8
+ exports.matchAllSections = _matchAllSections.matchAllSections;
9
+ var _astToParts = require("./astToParts");
10
+ exports.nodesToParts = _astToParts.nodesToParts;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_matchMarkdown","require","exports","matchMarkdown","_matchAllSections","matchAllSections","_astToParts","nodesToParts"],"sources":["../../../src/match/index.ts"],"sourcesContent":["export { matchMarkdown, type MarkdownMatchResult } from './matchMarkdown';\n\nexport {\n matchAllSections,\n type MatchAllSectionsResult,\n} from './matchAllSections';\n\nexport { nodesToParts } from './astToParts';\n"],"mappings":";;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAA0EC,OAAA,CAAAC,aAAA,GAAAH,cAAA,CAAAG,aAAA;AAE1E,IAAAC,iBAAA,GAAAH,OAAA;AAG4BC,OAAA,CAAAG,gBAAA,GAAAD,iBAAA,CAAAC,gBAAA;AAE5B,IAAAC,WAAA,GAAAL,OAAA;AAA4CC,OAAA,CAAAK,YAAA,GAAAD,WAAA,CAAAC,YAAA","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.matchAllSections = matchAllSections;
5
+ var _matchMarkdown = require("./matchMarkdown");
6
+ /**
7
+ * Result of matching an entire markdown document into sections.
8
+ * Each entry is one matched section, in document order.
9
+ */
10
+
11
+ function matchAllSections(nodes,
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ sections) {
14
+ const matchedSections = [];
15
+ const unmatchedNodes = [];
16
+ let remaining = nodes;
17
+ while (remaining.length > 0) {
18
+ const result = (0, _matchMarkdown.matchMarkdown)(remaining, sections);
19
+ if (result && result.consumedNodeCount > 0) {
20
+ matchedSections.push(result);
21
+ remaining = remaining.slice(result.consumedNodeCount);
22
+ } else {
23
+ // No pattern matched from the current position —
24
+ // skip the first node and try again
25
+ unmatchedNodes.push(remaining[0]);
26
+ remaining = remaining.slice(1);
27
+ }
28
+ }
29
+ return {
30
+ sections: matchedSections,
31
+ unmatchedNodes
32
+ };
33
+ }
34
+ //# sourceMappingURL=matchAllSections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_matchMarkdown","require","matchAllSections","nodes","sections","matchedSections","unmatchedNodes","remaining","length","result","matchMarkdown","consumedNodeCount","push","slice"],"sources":["../../../src/match/matchAllSections.ts"],"sourcesContent":["import type { RootContent } from 'mdast';\nimport { matchMarkdown, type MarkdownMatchResult } from './matchMarkdown';\nimport type { SectionDefinition } from '../component/section-definition';\n\n/**\n * Result of matching an entire markdown document into sections.\n * Each entry is one matched section, in document order.\n */\nexport interface MatchAllSectionsResult {\n /** Ordered list of matched sections */\n sections: MarkdownMatchResult[];\n /** AST nodes that were not consumed by any pattern */\n unmatchedNodes: RootContent[];\n}\n\nexport function matchAllSections(\n nodes: RootContent[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sections: readonly SectionDefinition[],\n): MatchAllSectionsResult {\n const matchedSections: MarkdownMatchResult[] = [];\n const unmatchedNodes: RootContent[] = [];\n\n let remaining = nodes;\n\n while (remaining.length > 0) {\n const result = matchMarkdown(remaining, sections);\n\n if (result && result.consumedNodeCount > 0) {\n matchedSections.push(result);\n remaining = remaining.slice(result.consumedNodeCount);\n } else {\n // No pattern matched from the current position —\n // skip the first node and try again\n unmatchedNodes.push(remaining[0]);\n remaining = remaining.slice(1);\n }\n }\n\n return { sections: matchedSections, unmatchedNodes };\n}\n"],"mappings":";;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;;AAQO,SAASC,gBAAgBA,CAC9BC,KAAoB;AACpB;AACAC,QAAsC,EACd;EACxB,MAAMC,eAAsC,GAAG,EAAE;EACjD,MAAMC,cAA6B,GAAG,EAAE;EAExC,IAAIC,SAAS,GAAGJ,KAAK;EAErB,OAAOI,SAAS,CAACC,MAAM,GAAG,CAAC,EAAE;IAC3B,MAAMC,MAAM,GAAG,IAAAC,4BAAa,EAACH,SAAS,EAAEH,QAAQ,CAAC;IAEjD,IAAIK,MAAM,IAAIA,MAAM,CAACE,iBAAiB,GAAG,CAAC,EAAE;MAC1CN,eAAe,CAACO,IAAI,CAACH,MAAM,CAAC;MAC5BF,SAAS,GAAGA,SAAS,CAACM,KAAK,CAACJ,MAAM,CAACE,iBAAiB,CAAC;IACvD,CAAC,MAAM;MACL;MACA;MACAL,cAAc,CAACM,IAAI,CAACL,SAAS,CAAC,CAAC,CAAC,CAAC;MACjCA,SAAS,GAAGA,SAAS,CAACM,KAAK,CAAC,CAAC,CAAC;IAChC;EACF;EAEA,OAAO;IAAET,QAAQ,EAAEC,eAAe;IAAEC;EAAe,CAAC;AACtD","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.matchMarkdown = matchMarkdown;
5
+ var _patternValidator = require("../patternValidator");
6
+ var _astToParts = require("./astToParts");
7
+ // ---------------------------------------------------------------------------
8
+ // MatchResult – what matchMarkdown returns
9
+ // ---------------------------------------------------------------------------
10
+
11
+ /**
12
+ * The result of matching markdown against all known section patterns.
13
+ */
14
+
15
+ function matchMarkdown(nodes, sections) {
16
+ if (!nodes || nodes.length === 0) {
17
+ return null;
18
+ }
19
+ for (const section of sections) {
20
+ for (const pattern of section.patterns) {
21
+ const result = (0, _patternValidator.validatePattern)(nodes, pattern);
22
+ if (result.valid) {
23
+ const consumedNodeCount = result.astEndIndex + 1;
24
+ const matchedNodes = nodes.slice(result.astStartIndex, result.astEndIndex + 1);
25
+ return {
26
+ matched: true,
27
+ matchedPattern: pattern,
28
+ sectionDefinition: section,
29
+ sectionType: section.sectionType,
30
+ consumedNodeCount,
31
+ parts: (0, _astToParts.nodesToParts)(matchedNodes),
32
+ validationResult: result
33
+ };
34
+ }
35
+ }
36
+ }
37
+ return null;
38
+ }
39
+ //# sourceMappingURL=matchMarkdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_patternValidator","require","_astToParts","matchMarkdown","nodes","sections","length","section","pattern","patterns","result","validatePattern","valid","consumedNodeCount","astEndIndex","matchedNodes","slice","astStartIndex","matched","matchedPattern","sectionDefinition","sectionType","parts","nodesToParts","validationResult"],"sources":["../../../src/match/matchMarkdown.ts"],"sourcesContent":["import type { RootContent } from 'mdast';\nimport {\n validatePattern,\n type PatternValidationResult,\n} from '../patternValidator';\nimport type { Part } from '../parts/parts';\nimport type { SectionDefinition } from '../component/section-definition';\nimport { nodesToParts } from './astToParts';\n\n// ---------------------------------------------------------------------------\n// MatchResult – what matchMarkdown returns\n// ---------------------------------------------------------------------------\n\n/**\n * The result of matching markdown against all known section patterns.\n */\nexport interface MarkdownMatchResult {\n /** Whether any section pattern matched */\n matched: boolean;\n /** The pattern string that matched */\n matchedPattern: string;\n /** The section definition that produced the match */\n sectionDefinition: SectionDefinition;\n /** The section type (e.g. 'hero', 'kpi', 'feature') — shorthand for sectionDefinition.sectionType */\n sectionType: string;\n /** How many AST nodes the match consumed (from the start) */\n consumedNodeCount: number;\n /** The individual parts extracted from the matched region */\n parts: Part[];\n /** The original validation result from the pattern validator */\n validationResult: PatternValidationResult;\n}\n\nexport function matchMarkdown(\n nodes: RootContent[],\n sections: readonly SectionDefinition[],\n): MarkdownMatchResult | null {\n if (!nodes || nodes.length === 0) {\n return null;\n }\n\n for (const section of sections) {\n for (const pattern of section.patterns) {\n const result = validatePattern(nodes, pattern);\n\n if (result.valid) {\n const consumedNodeCount = result.astEndIndex + 1;\n const matchedNodes = nodes.slice(\n result.astStartIndex,\n result.astEndIndex + 1,\n );\n\n return {\n matched: true,\n matchedPattern: pattern,\n sectionDefinition: section,\n sectionType: section.sectionType,\n consumedNodeCount,\n parts: nodesToParts(matchedNodes),\n validationResult: result,\n };\n }\n }\n }\n\n return null;\n}\n"],"mappings":";;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAMA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAkBO,SAASE,aAAaA,CAC3BC,KAAoB,EACpBC,QAAsC,EACV;EAC5B,IAAI,CAACD,KAAK,IAAIA,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE;IAChC,OAAO,IAAI;EACb;EAEA,KAAK,MAAMC,OAAO,IAAIF,QAAQ,EAAE;IAC9B,KAAK,MAAMG,OAAO,IAAID,OAAO,CAACE,QAAQ,EAAE;MACtC,MAAMC,MAAM,GAAG,IAAAC,iCAAe,EAACP,KAAK,EAAEI,OAAO,CAAC;MAE9C,IAAIE,MAAM,CAACE,KAAK,EAAE;QAChB,MAAMC,iBAAiB,GAAGH,MAAM,CAACI,WAAW,GAAG,CAAC;QAChD,MAAMC,YAAY,GAAGX,KAAK,CAACY,KAAK,CAC9BN,MAAM,CAACO,aAAa,EACpBP,MAAM,CAACI,WAAW,GAAG,CACvB,CAAC;QAED,OAAO;UACLI,OAAO,EAAE,IAAI;UACbC,cAAc,EAAEX,OAAO;UACvBY,iBAAiB,EAAEb,OAAO;UAC1Bc,WAAW,EAAEd,OAAO,CAACc,WAAW;UAChCR,iBAAiB;UACjBS,KAAK,EAAE,IAAAC,wBAAY,EAACR,YAAY,CAAC;UACjCS,gBAAgB,EAAEd;QACpB,CAAC;MACH;IACF;EACF;EAEA,OAAO,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.deriveRole = deriveRole;
5
+ exports.extractContent = extractContent;
6
+ exports.extractContentMarkdown = extractContentMarkdown;
7
+ exports.getAllByRole = getAllByRole;
8
+ exports.getHeading = getHeading;
9
+ exports.getImages = getImages;
10
+ exports.getLinks = getLinks;
11
+ exports.getPartByRole = getPartByRole;
12
+ exports.getPartsByType = getPartsByType;
13
+ // ---------------------------------------------------------------------------
14
+ // Part types – the rich, component-agnostic data envelope extracted from
15
+ // matched markdown sections.
16
+ // ---------------------------------------------------------------------------
17
+
18
+ /**
19
+ * All semantic part types that can be extracted from markdown.
20
+ */
21
+
22
+ // ---------------------------------------------------------------------------
23
+ // Base Part interface
24
+ // ---------------------------------------------------------------------------
25
+
26
+ /**
27
+ * A single extracted piece of data from a matched markdown section.
28
+ *
29
+ * Every `Part` carries a semantic `type`, a `role` that describes its purpose
30
+ * within the section (e.g. "title", "subtitle", "cta-primary"), the raw
31
+ * `content` string, and optional structured `meta` depending on type.
32
+ */
33
+
34
+ // ---------------------------------------------------------------------------
35
+ // Specific Part subtypes
36
+ // ---------------------------------------------------------------------------
37
+
38
+ /** Heading part – carries the heading level in meta */
39
+
40
+ /** Image part */
41
+
42
+ /**
43
+ * Link part.
44
+ *
45
+ * `meta.href` is guaranteed non-empty: links with missing or whitespace-only
46
+ * hrefs are dropped upstream by `markdownBlocks.ts` and never produce a
47
+ * `LinkPart`. See `INVALID_LINK_FORMAT` diagnostic for parser-level
48
+ * observability of dropped links.
49
+ */
50
+
51
+ /** List part – contains nested items */
52
+
53
+ /** Single list item — carries its decomposed inline content as nested parts */
54
+
55
+ /** KPI metric item */
56
+
57
+ /** Card part (blog post, feature, info card) */
58
+
59
+ /** Icon part – reference to an icon via icon:// protocol */
60
+
61
+ /** Callout part – blockquote with optional GFM callout kind */
62
+
63
+ /** Entity part – reference to external entity data */
64
+
65
+ // ---------------------------------------------------------------------------
66
+ // Helper utilities
67
+ // ---------------------------------------------------------------------------
68
+
69
+ /** Get all parts matching a given type */
70
+ function getPartsByType(parts, type) {
71
+ return parts.filter(p => p.type === type);
72
+ }
73
+
74
+ /** Get the first part matching a given role */
75
+ function getPartByRole(parts, role) {
76
+ return parts.find(p => p.role === role);
77
+ }
78
+
79
+ /** Get all parts matching a given role (for repeated roles like "cta") */
80
+ function getAllByRole(parts, role) {
81
+ return parts.filter(p => p.role === role);
82
+ }
83
+
84
+ /** Get the first heading, optionally filtered by level */
85
+ function getHeading(parts, level) {
86
+ return parts.find(p => p.type === 'heading' && (level === undefined || p.meta.level === level));
87
+ }
88
+
89
+ /** Get all images */
90
+ function getImages(parts) {
91
+ return getPartsByType(parts, 'image');
92
+ }
93
+
94
+ /** Get all links */
95
+ function getLinks(parts) {
96
+ return getPartsByType(parts, 'link');
97
+ }
98
+
99
+ // ---------------------------------------------------------------------------
100
+ // AST helper utilities
101
+ // ---------------------------------------------------------------------------
102
+
103
+ /**
104
+ * Lightweight inline AST-to-markdown serializer.
105
+ * Converts inline AST nodes (text, strong, emphasis, link, etc.) back into
106
+ * markdown syntax so that list item content preserves formatting.
107
+ */
108
+ function extractContentMarkdown(node) {
109
+ if (!node) {
110
+ return '';
111
+ }
112
+ switch (node.type) {
113
+ case 'text':
114
+ return node.value || '';
115
+ case 'strong':
116
+ return `**${(node.children || []).map(extractContentMarkdown).join('')}**`;
117
+ case 'emphasis':
118
+ return `*${(node.children || []).map(extractContentMarkdown).join('')}*`;
119
+ case 'inlineCode':
120
+ return `\`${node.value || ''}\``;
121
+ case 'link':
122
+ return `[${(node.children || []).map(extractContentMarkdown).join('')}](${node.url || ''})`;
123
+ case 'image':
124
+ return `![${node.alt || ''}](${node.url || ''})`;
125
+ case 'delete':
126
+ return `~~${(node.children || []).map(extractContentMarkdown).join('')}~~`;
127
+ case 'break':
128
+ return '\n';
129
+ default:
130
+ if (Array.isArray(node.children)) {
131
+ return node.children.map(extractContentMarkdown).join('');
132
+ }
133
+ return node.value || '';
134
+ }
135
+ }
136
+
137
+ /** Recursively extract text content from any AST node */
138
+ function extractContent(node) {
139
+ if (!node) {
140
+ return '';
141
+ }
142
+ if (node.type === 'image') {
143
+ return node.alt || '';
144
+ }
145
+ if (typeof node.value === 'string') {
146
+ return node.value;
147
+ }
148
+ if (Array.isArray(node.children)) {
149
+ return node.children.map(c => extractContent(c)).join('');
150
+ }
151
+ return '';
152
+ }
153
+
154
+ /** Assign a semantic role based on part type and occurrence count within a section */
155
+ function deriveRole(type, count) {
156
+ switch (type) {
157
+ case 'heading':
158
+ return count === 1 ? 'title' : 'subtitle';
159
+ case 'text':
160
+ return count === 1 ? 'description' : 'body';
161
+ case 'link':
162
+ return count === 1 ? 'cta-primary' : 'cta';
163
+ case 'image':
164
+ return count === 1 ? 'hero-image' : 'image';
165
+ case 'list':
166
+ return 'list';
167
+ case 'table':
168
+ return 'table';
169
+ case 'blockquote':
170
+ return 'callout';
171
+ case 'callout':
172
+ return 'callout';
173
+ case 'icon':
174
+ return 'icon';
175
+ case 'htmlComment':
176
+ return 'annotation';
177
+ case 'thematicBreak':
178
+ return 'divider';
179
+ default:
180
+ return type;
181
+ }
182
+ }
183
+ //# sourceMappingURL=parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getPartsByType","parts","type","filter","p","getPartByRole","role","find","getAllByRole","getHeading","level","undefined","meta","getImages","getLinks","extractContentMarkdown","node","value","children","map","join","url","alt","Array","isArray","extractContent","c","deriveRole","count"],"sources":["../../../src/parts/parts.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Part types – the rich, component-agnostic data envelope extracted from\n// matched markdown sections.\n// ---------------------------------------------------------------------------\n\n/**\n * All semantic part types that can be extracted from markdown.\n */\nexport type PartType =\n | 'heading'\n | 'text'\n | 'richText'\n | 'image'\n | 'icon'\n | 'link'\n | 'list'\n | 'listItem'\n | 'kpiItem'\n | 'card'\n | 'badge'\n | 'blockquote'\n | 'callout'\n | 'codeBlock'\n | 'table'\n | 'thematicBreak'\n | 'htmlComment'\n | 'entity'\n | 'custom';\n\n// ---------------------------------------------------------------------------\n// Base Part interface\n// ---------------------------------------------------------------------------\n\n/**\n * A single extracted piece of data from a matched markdown section.\n *\n * Every `Part` carries a semantic `type`, a `role` that describes its purpose\n * within the section (e.g. \"title\", \"subtitle\", \"cta-primary\"), the raw\n * `content` string, and optional structured `meta` depending on type.\n */\nexport interface Part {\n /** Semantic type of this part */\n type: PartType;\n /**\n * Semantic role within the section (e.g., \"title\", \"subtitle\", \"description\",\n * \"hero-image\", \"cta-primary\"). Allows components to pick parts by role\n * rather than positional index.\n */\n role: string;\n /** The raw text / markdown content */\n content: string;\n /** Structured metadata depending on type */\n meta?: Record<string, unknown>;\n}\n\n// ---------------------------------------------------------------------------\n// Specific Part subtypes\n// ---------------------------------------------------------------------------\n\n/** Heading part – carries the heading level in meta */\nexport interface HeadingPart extends Part {\n type: 'heading';\n meta: { level: 1 | 2 | 3 | 4 | 5 | 6 };\n}\n\n/** Image part */\nexport interface ImagePart extends Part {\n type: 'image';\n meta: { src: string; alt?: string; width?: number; height?: number };\n}\n\n/**\n * Link part.\n *\n * `meta.href` is guaranteed non-empty: links with missing or whitespace-only\n * hrefs are dropped upstream by `markdownBlocks.ts` and never produce a\n * `LinkPart`. See `INVALID_LINK_FORMAT` diagnostic for parser-level\n * observability of dropped links.\n */\nexport interface LinkPart extends Part {\n type: 'link';\n meta: {\n href: string;\n title?: string;\n isEntity?: boolean;\n entityType?: string;\n };\n}\n\n/** List part – contains nested items */\nexport interface ListPart extends Part {\n type: 'list';\n meta: { ordered: boolean; items: ListItemPart[] };\n}\n\n/** Single list item — carries its decomposed inline content as nested parts */\nexport interface ListItemPart extends Part {\n type: 'listItem';\n meta?: { parts: Part[]; markdown?: string };\n}\n\n/** KPI metric item */\nexport interface KpiItemPart extends Part {\n type: 'kpiItem';\n meta: {\n label: string;\n value: string;\n trend?: 'up' | 'down' | 'neutral';\n timeframe?: string;\n };\n}\n\n/** Card part (blog post, feature, info card) */\nexport interface CardPart extends Part {\n type: 'card';\n meta: {\n title?: string;\n description?: string;\n imageUrl?: string;\n date?: string;\n category?: string;\n link?: string;\n tags?: string[];\n };\n}\n\n/** Icon part – reference to an icon via icon:// protocol */\nexport interface IconPart extends Part {\n type: 'icon';\n meta: { iconHint: string };\n}\n\n/** Callout part – blockquote with optional GFM callout kind */\nexport interface CalloutPart extends Part {\n type: 'callout';\n meta: { kind?: string };\n}\n\n/** Entity part – reference to external entity data */\nexport interface EntityPart extends Part {\n type: 'entity';\n meta: { entityType: string; entityId: string; url: string };\n}\n\n// ---------------------------------------------------------------------------\n// Helper utilities\n// ---------------------------------------------------------------------------\n\n/** Get all parts matching a given type */\nexport function getPartsByType<T extends Part>(\n parts: Part[],\n type: PartType,\n): T[] {\n return parts.filter((p) => p.type === type) as T[];\n}\n\n/** Get the first part matching a given role */\nexport function getPartByRole<T extends Part>(\n parts: Part[],\n role: string,\n): T | undefined {\n return parts.find((p) => p.role === role) as T | undefined;\n}\n\n/** Get all parts matching a given role (for repeated roles like \"cta\") */\nexport function getAllByRole<T extends Part>(parts: Part[], role: string): T[] {\n return parts.filter((p) => p.role === role) as T[];\n}\n\n/** Get the first heading, optionally filtered by level */\nexport function getHeading(\n parts: Part[],\n level?: number,\n): HeadingPart | undefined {\n return parts.find(\n (p) =>\n p.type === 'heading' &&\n (level === undefined || (p as HeadingPart).meta.level === level),\n ) as HeadingPart | undefined;\n}\n\n/** Get all images */\nexport function getImages(parts: Part[]): ImagePart[] {\n return getPartsByType<ImagePart>(parts, 'image');\n}\n\n/** Get all links */\nexport function getLinks(parts: Part[]): LinkPart[] {\n return getPartsByType<LinkPart>(parts, 'link');\n}\n\n// ---------------------------------------------------------------------------\n// AST helper utilities\n// ---------------------------------------------------------------------------\n\n/**\n * Lightweight inline AST-to-markdown serializer.\n * Converts inline AST nodes (text, strong, emphasis, link, etc.) back into\n * markdown syntax so that list item content preserves formatting.\n */\nexport function extractContentMarkdown(node: any): string {\n if (!node) {\n return '';\n }\n switch (node.type) {\n case 'text':\n return node.value || '';\n case 'strong':\n return `**${(node.children || [])\n .map(extractContentMarkdown)\n .join('')}**`;\n case 'emphasis':\n return `*${(node.children || []).map(extractContentMarkdown).join('')}*`;\n case 'inlineCode':\n return `\\`${node.value || ''}\\``;\n case 'link':\n return `[${(node.children || []).map(extractContentMarkdown).join('')}](${\n node.url || ''\n })`;\n case 'image':\n return `![${node.alt || ''}](${node.url || ''})`;\n case 'delete':\n return `~~${(node.children || [])\n .map(extractContentMarkdown)\n .join('')}~~`;\n case 'break':\n return '\\n';\n default:\n if (Array.isArray(node.children)) {\n return node.children.map(extractContentMarkdown).join('');\n }\n return node.value || '';\n }\n}\n\n/** Recursively extract text content from any AST node */\nexport function extractContent(node: any): string {\n if (!node) {\n return '';\n }\n if (node.type === 'image') {\n return node.alt || '';\n }\n if (typeof node.value === 'string') {\n return node.value;\n }\n if (Array.isArray(node.children)) {\n return node.children.map((c: any) => extractContent(c)).join('');\n }\n return '';\n}\n\n/** Assign a semantic role based on part type and occurrence count within a section */\nexport function deriveRole(type: PartType, count: number): string {\n switch (type) {\n case 'heading':\n return count === 1 ? 'title' : 'subtitle';\n case 'text':\n return count === 1 ? 'description' : 'body';\n case 'link':\n return count === 1 ? 'cta-primary' : 'cta';\n case 'image':\n return count === 1 ? 'hero-image' : 'image';\n case 'list':\n return 'list';\n case 'table':\n return 'table';\n case 'blockquote':\n return 'callout';\n case 'callout':\n return 'callout';\n case 'icon':\n return 'icon';\n case 'htmlComment':\n return 'annotation';\n case 'thematicBreak':\n return 'divider';\n default:\n return type;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.detectConflicts = detectConflicts;
5
+ var _patternValidator = require("../patternValidator");
6
+ var _testUtils = require("../testUtils");
7
+ var _markdownGenerator = require("./markdownGenerator");
8
+ /**
9
+ * These definitions are intentional catch-alls. Conflicts where one of these
10
+ * is the shadowing definition are expected by design and not reported.
11
+ */
12
+ const SKIP_AS_SHADOWERS = new Set(['fallback', 'htmlComment']);
13
+
14
+ /**
15
+ * Detect cross-definition conflicts: patterns that will never be matched because
16
+ * a higher-priority definition captures the same markdown.
17
+ *
18
+ * Algorithm (sample-based, not exhaustive):
19
+ * 1. For each definition D_i (at priority i), for each pattern P:
20
+ * a. Generate markdown variants from P
21
+ * b. For each variant, run through all higher-priority definitions D_j (j < i)
22
+ * c. If any D_j pattern validates the markdown, that's a conflict
23
+ * 2. severity:'full' means ALL generated samples were stolen (pattern likely unreachable)
24
+ * severity:'partial' means only SOME were stolen (pattern may still be reachable)
25
+ *
26
+ * Note: This is advisory only. The generator produces a bounded sample set, not
27
+ * an exhaustive language enumeration. Conflicts may be intentional (e.g. the
28
+ * definition relies on parse() returning null to differentiate from the shadower).
29
+ */
30
+ function detectConflicts(definitions) {
31
+ const reports = [];
32
+ for (let i = 1; i < definitions.length; i++) {
33
+ const victim = definitions[i];
34
+ for (const victimPattern of victim.definition.patterns) {
35
+ const samples = (0, _markdownGenerator.generateMarkdownVariants)(victimPattern);
36
+ if (samples.length === 0) {
37
+ continue;
38
+ }
39
+
40
+ // Track which samples were stolen by any shadower (for severity calculation)
41
+ let stolenCount = 0;
42
+
43
+ // Group conflict cases by (shadower sectionType :: shadower pattern)
44
+ const conflictMap = new Map();
45
+ for (const markdown of samples) {
46
+ const ast = (0, _testUtils.parseMarkdownToAst)(markdown);
47
+ const nodes = ast.children;
48
+ let stolen = false;
49
+ for (let j = 0; j < i; j++) {
50
+ const shadower = definitions[j];
51
+ if (SKIP_AS_SHADOWERS.has(shadower.sectionType)) {
52
+ continue;
53
+ }
54
+ for (const shadowerPattern of shadower.definition.patterns) {
55
+ const result = (0, _patternValidator.validatePattern)(nodes, shadowerPattern);
56
+ if (result.valid) {
57
+ stolen = true;
58
+ const key = `${shadower.sectionType}::${shadowerPattern}`;
59
+ if (!conflictMap.has(key)) {
60
+ conflictMap.set(key, {
61
+ sectionType: shadower.sectionType,
62
+ pattern: shadowerPattern,
63
+ cases: []
64
+ });
65
+ }
66
+ conflictMap.get(key).cases.push({
67
+ markdown,
68
+ generatedFrom: victimPattern
69
+ });
70
+ break; // first winning shadower pattern is the one that matters
71
+ }
72
+ }
73
+ if (stolen) {
74
+ break;
75
+ } // stop checking further shadowers for this sample
76
+ }
77
+ if (stolen) {
78
+ stolenCount++;
79
+ }
80
+ }
81
+ for (const {
82
+ sectionType,
83
+ pattern,
84
+ cases
85
+ } of conflictMap.values()) {
86
+ const shadower = definitions.find(d => d.sectionType === sectionType);
87
+ reports.push({
88
+ shadowedDefinition: victim.sectionType,
89
+ shadowedPriority: victim.priority,
90
+ shadowedPattern: victimPattern,
91
+ shadowingDefinition: sectionType,
92
+ shadowingPriority: shadower.priority,
93
+ shadowingPattern: pattern,
94
+ samples: cases,
95
+ // severity reflects global stolen count, not just by this specific shadower
96
+ severity: stolenCount === samples.length ? 'full' : 'partial'
97
+ });
98
+ }
99
+ }
100
+ }
101
+ return reports;
102
+ }
103
+ //# sourceMappingURL=conflictDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_patternValidator","require","_testUtils","_markdownGenerator","SKIP_AS_SHADOWERS","Set","detectConflicts","definitions","reports","i","length","victim","victimPattern","definition","patterns","samples","generateMarkdownVariants","stolenCount","conflictMap","Map","markdown","ast","parseMarkdownToAst","nodes","children","stolen","j","shadower","has","sectionType","shadowerPattern","result","validatePattern","valid","key","set","pattern","cases","get","push","generatedFrom","values","find","d","shadowedDefinition","shadowedPriority","priority","shadowedPattern","shadowingDefinition","shadowingPriority","shadowingPattern","severity"],"sources":["../../../src/patternAnalyzer/conflictDetector.ts"],"sourcesContent":["import { validatePattern } from '../patternValidator';\nimport { parseMarkdownToAst } from '../testUtils';\nimport { generateMarkdownVariants } from './markdownGenerator';\nimport type { DefinitionEntry, ConflictReport, ConflictCase } from './types';\nimport type { RootContent } from 'mdast';\n\n/**\n * These definitions are intentional catch-alls. Conflicts where one of these\n * is the shadowing definition are expected by design and not reported.\n */\nconst SKIP_AS_SHADOWERS = new Set(['fallback', 'htmlComment']);\n\n/**\n * Detect cross-definition conflicts: patterns that will never be matched because\n * a higher-priority definition captures the same markdown.\n *\n * Algorithm (sample-based, not exhaustive):\n * 1. For each definition D_i (at priority i), for each pattern P:\n * a. Generate markdown variants from P\n * b. For each variant, run through all higher-priority definitions D_j (j < i)\n * c. If any D_j pattern validates the markdown, that's a conflict\n * 2. severity:'full' means ALL generated samples were stolen (pattern likely unreachable)\n * severity:'partial' means only SOME were stolen (pattern may still be reachable)\n *\n * Note: This is advisory only. The generator produces a bounded sample set, not\n * an exhaustive language enumeration. Conflicts may be intentional (e.g. the\n * definition relies on parse() returning null to differentiate from the shadower).\n */\nexport function detectConflicts(\n definitions: DefinitionEntry[],\n): ConflictReport[] {\n const reports: ConflictReport[] = [];\n\n for (let i = 1; i < definitions.length; i++) {\n const victim = definitions[i];\n\n for (const victimPattern of victim.definition.patterns) {\n const samples = generateMarkdownVariants(victimPattern);\n if (samples.length === 0) {\n continue;\n }\n\n // Track which samples were stolen by any shadower (for severity calculation)\n let stolenCount = 0;\n\n // Group conflict cases by (shadower sectionType :: shadower pattern)\n const conflictMap = new Map<\n string,\n { sectionType: string; pattern: string; cases: ConflictCase[] }\n >();\n\n for (const markdown of samples) {\n const ast = parseMarkdownToAst(markdown);\n const nodes = ast.children as RootContent[];\n\n let stolen = false;\n\n for (let j = 0; j < i; j++) {\n const shadower = definitions[j];\n if (SKIP_AS_SHADOWERS.has(shadower.sectionType)) {\n continue;\n }\n\n for (const shadowerPattern of shadower.definition.patterns) {\n const result = validatePattern(nodes, shadowerPattern);\n if (result.valid) {\n stolen = true;\n const key = `${shadower.sectionType}::${shadowerPattern}`;\n if (!conflictMap.has(key)) {\n conflictMap.set(key, {\n sectionType: shadower.sectionType,\n pattern: shadowerPattern,\n cases: [],\n });\n }\n conflictMap.get(key)!.cases.push({\n markdown,\n generatedFrom: victimPattern,\n });\n break; // first winning shadower pattern is the one that matters\n }\n }\n\n if (stolen) {\n break;\n } // stop checking further shadowers for this sample\n }\n\n if (stolen) {\n stolenCount++;\n }\n }\n\n for (const { sectionType, pattern, cases } of conflictMap.values()) {\n const shadower = definitions.find(\n (d) => d.sectionType === sectionType,\n )!;\n reports.push({\n shadowedDefinition: victim.sectionType,\n shadowedPriority: victim.priority,\n shadowedPattern: victimPattern,\n shadowingDefinition: sectionType,\n shadowingPriority: shadower.priority,\n shadowingPattern: pattern,\n samples: cases,\n // severity reflects global stolen count, not just by this specific shadower\n severity: stolenCount === samples.length ? 'full' : 'partial',\n });\n }\n }\n }\n\n return reports;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.runAnalysis = runAnalysis;
5
+ var _componentDefinitions = require("../component/componentDefinitions");
6
+ var _markdownGenerator = require("./markdownGenerator");
7
+ var _conflictDetector = require("./conflictDetector");
8
+ var _mergeDetector = require("./mergeDetector");
9
+ var _parserValidator = require("./parserValidator");
10
+ /**
11
+ * Run all three analyses across all registered section definitions:
12
+ * 1. Conflict detection — cross-definition pattern shadowing
13
+ * 2. Parser validation — parse() handles all pattern-matched markdown
14
+ * 3. Merge opportunities — intra-definition pattern simplification
15
+ */
16
+ function runAnalysis() {
17
+ const registry = (0, _componentDefinitions.createSdkRegistry)();
18
+ const allDefs = registry.getAllDefinitions();
19
+ const definitions = allDefs.map((d, i) => ({
20
+ priority: i,
21
+ sectionType: d.sectionType,
22
+ definition: d.definition
23
+ }));
24
+ const totalPatterns = definitions.reduce((sum, d) => sum + d.definition.patterns.length, 0);
25
+ return {
26
+ generatedAt: new Date().toISOString(),
27
+ totalDefinitions: definitions.length,
28
+ totalPatterns,
29
+ definitions: definitions.map(d => ({
30
+ sectionType: d.sectionType,
31
+ priority: d.priority,
32
+ patterns: d.definition.patterns,
33
+ samplesGenerated: d.definition.patterns.reduce((sum, p) => sum + (0, _markdownGenerator.generateMarkdownVariants)(p).length, 0)
34
+ })),
35
+ conflicts: (0, _conflictDetector.detectConflicts)(definitions),
36
+ parserValidation: (0, _parserValidator.validateAllParsers)(definitions),
37
+ mergeOpportunities: (0, _mergeDetector.detectMergeOpportunities)(definitions)
38
+ };
39
+ }
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_componentDefinitions","require","_markdownGenerator","_conflictDetector","_mergeDetector","_parserValidator","runAnalysis","registry","createSdkRegistry","allDefs","getAllDefinitions","definitions","map","d","i","priority","sectionType","definition","totalPatterns","reduce","sum","patterns","length","generatedAt","Date","toISOString","totalDefinitions","samplesGenerated","p","generateMarkdownVariants","conflicts","detectConflicts","parserValidation","validateAllParsers","mergeOpportunities","detectMergeOpportunities"],"sources":["../../../src/patternAnalyzer/index.ts"],"sourcesContent":["import { createSdkRegistry } from '../component/componentDefinitions';\nimport { generateMarkdownVariants } from './markdownGenerator';\nimport { detectConflicts } from './conflictDetector';\nimport { detectMergeOpportunities } from './mergeDetector';\nimport { validateAllParsers } from './parserValidator';\nimport type { AnalysisReport, DefinitionEntry } from './types';\n\n/**\n * Run all three analyses across all registered section definitions:\n * 1. Conflict detection — cross-definition pattern shadowing\n * 2. Parser validation — parse() handles all pattern-matched markdown\n * 3. Merge opportunities — intra-definition pattern simplification\n */\nexport function runAnalysis(): AnalysisReport {\n const registry = createSdkRegistry();\n const allDefs = registry.getAllDefinitions();\n\n const definitions: DefinitionEntry[] = allDefs.map((d, i) => ({\n priority: i,\n sectionType: d.sectionType,\n definition: d.definition,\n }));\n\n const totalPatterns = definitions.reduce(\n (sum, d) => sum + d.definition.patterns.length,\n 0,\n );\n\n return {\n generatedAt: new Date().toISOString(),\n totalDefinitions: definitions.length,\n totalPatterns,\n definitions: definitions.map((d) => ({\n sectionType: d.sectionType,\n priority: d.priority,\n patterns: d.definition.patterns,\n samplesGenerated: d.definition.patterns.reduce(\n (sum, p) => sum + generateMarkdownVariants(p).length,\n 0,\n ),\n })),\n conflicts: detectConflicts(definitions),\n parserValidation: validateAllParsers(definitions),\n mergeOpportunities: detectMergeOpportunities(definitions),\n };\n}\n\nexport type {\n AnalysisReport,\n ConflictReport,\n ParserValidationReport,\n MergeOpportunity,\n} from './types';\n"],"mappings":";;;;AAAA,IAAAA,qBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,WAAWA,CAAA,EAAmB;EAC5C,MAAMC,QAAQ,GAAG,IAAAC,uCAAiB,EAAC,CAAC;EACpC,MAAMC,OAAO,GAAGF,QAAQ,CAACG,iBAAiB,CAAC,CAAC;EAE5C,MAAMC,WAA8B,GAAGF,OAAO,CAACG,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,MAAM;IAC5DC,QAAQ,EAAED,CAAC;IACXE,WAAW,EAAEH,CAAC,CAACG,WAAW;IAC1BC,UAAU,EAAEJ,CAAC,CAACI;EAChB,CAAC,CAAC,CAAC;EAEH,MAAMC,aAAa,GAAGP,WAAW,CAACQ,MAAM,CACtC,CAACC,GAAG,EAAEP,CAAC,KAAKO,GAAG,GAAGP,CAAC,CAACI,UAAU,CAACI,QAAQ,CAACC,MAAM,EAC9C,CACF,CAAC;EAED,OAAO;IACLC,WAAW,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IACrCC,gBAAgB,EAAEf,WAAW,CAACW,MAAM;IACpCJ,aAAa;IACbP,WAAW,EAAEA,WAAW,CAACC,GAAG,CAAEC,CAAC,KAAM;MACnCG,WAAW,EAAEH,CAAC,CAACG,WAAW;MAC1BD,QAAQ,EAAEF,CAAC,CAACE,QAAQ;MACpBM,QAAQ,EAAER,CAAC,CAACI,UAAU,CAACI,QAAQ;MAC/BM,gBAAgB,EAAEd,CAAC,CAACI,UAAU,CAACI,QAAQ,CAACF,MAAM,CAC5C,CAACC,GAAG,EAAEQ,CAAC,KAAKR,GAAG,GAAG,IAAAS,2CAAwB,EAACD,CAAC,CAAC,CAACN,MAAM,EACpD,CACF;IACF,CAAC,CAAC,CAAC;IACHQ,SAAS,EAAE,IAAAC,iCAAe,EAACpB,WAAW,CAAC;IACvCqB,gBAAgB,EAAE,IAAAC,mCAAkB,EAACtB,WAAW,CAAC;IACjDuB,kBAAkB,EAAE,IAAAC,uCAAwB,EAACxB,WAAW;EAC1D,CAAC;AACH","ignoreList":[]}