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