@athoscommerce/snap-preact 1.2.3-beta.2 → 1.3.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 (291) hide show
  1. package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts +1 -1
  2. package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  3. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts +0 -1
  4. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  5. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +13 -30
  6. package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts +0 -21
  7. package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  8. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +0 -21
  9. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts +3 -3
  10. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
  11. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +7 -8
  12. package/dist/cjs/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +2 -2
  13. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +2 -2
  14. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts +3 -3
  15. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  16. package/dist/cjs/components/src/components/Molecules/Result/Result.js +4 -4
  17. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -2
  18. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  19. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +2 -19
  20. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  21. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +12 -30
  22. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/AbstractedControls.js +5 -5
  23. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/Control.d.ts.map +1 -1
  24. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/Control.js +31 -31
  25. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
  26. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +22 -36
  27. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  28. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  29. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +0 -2
  30. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  31. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +0 -2
  32. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  33. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +0 -2
  34. package/dist/cjs/components/src/hooks/useMediaQuery.d.ts.map +1 -1
  35. package/dist/cjs/components/src/hooks/useMediaQuery.js +3 -1
  36. package/dist/cjs/components/src/index.d.ts +0 -1
  37. package/dist/cjs/components/src/index.d.ts.map +1 -1
  38. package/dist/cjs/components/src/index.js +0 -1
  39. package/dist/cjs/components/src/providers/withTracking.d.ts +2 -2
  40. package/dist/cjs/components/src/providers/withTracking.d.ts.map +1 -1
  41. package/dist/cjs/components/src/themes/base/base.js +3 -3
  42. package/dist/cjs/src/Snap.d.ts +1 -2
  43. package/dist/cjs/src/Snap.d.ts.map +1 -1
  44. package/dist/cjs/src/Snap.js +24 -124
  45. package/dist/cjs/src/SnapHybrid.d.ts.map +1 -1
  46. package/dist/cjs/src/Templates/SnapTemplates.d.ts +13 -73
  47. package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
  48. package/dist/cjs/src/Templates/SnapTemplates.js +100 -117
  49. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts +0 -4
  50. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  51. package/dist/cjs/src/Templates/Stores/LibraryStore.js +0 -19
  52. package/dist/cjs/src/Templates/Stores/TargetStore.d.ts +7 -6
  53. package/dist/cjs/src/Templates/Stores/TargetStore.d.ts.map +1 -1
  54. package/dist/cjs/src/Templates/Stores/TargetStore.js +14 -8
  55. package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts +56 -7
  56. package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts.map +1 -1
  57. package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.js +465 -94
  58. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts +1 -0
  59. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts.map +1 -1
  60. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.js +123 -70
  61. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.d.ts.map +1 -1
  62. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.js +9 -3
  63. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts +1 -0
  64. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts.map +1 -1
  65. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.js +86 -1
  66. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.d.ts.map +1 -1
  67. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.js +33 -14
  68. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +80 -33
  69. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  70. package/dist/cjs/src/Templates/Stores/TemplateStore.js +28 -37
  71. package/dist/cjs/src/Templates/Stores/ThemeStore.d.ts +2 -8
  72. package/dist/cjs/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
  73. package/dist/cjs/src/Templates/Stores/ThemeStore.js +3 -28
  74. package/dist/cjs/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  75. package/dist/cjs/src/Templates/Stores/library/languages/es.js +0 -5
  76. package/dist/cjs/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  77. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +0 -5
  78. package/dist/cjs/src/Templates/index.d.ts +1 -1
  79. package/dist/cjs/src/Templates/index.d.ts.map +1 -1
  80. package/dist/cjs/src/index.d.ts +1 -0
  81. package/dist/cjs/src/index.d.ts.map +1 -1
  82. package/dist/cjs/src/setupEvents.d.ts.map +1 -1
  83. package/dist/cjs/src/setupEvents.js +0 -39
  84. package/dist/cjs/src/types.d.ts +6 -16
  85. package/dist/cjs/src/types.d.ts.map +1 -1
  86. package/dist/cjs/src/utils/combineMerge.d.ts +2 -0
  87. package/dist/cjs/src/utils/combineMerge.d.ts.map +1 -0
  88. package/dist/cjs/src/utils/combineMerge.js +22 -0
  89. package/dist/cjs/src/utils/index.d.ts +1 -0
  90. package/dist/cjs/src/utils/index.d.ts.map +1 -1
  91. package/dist/cjs/src/utils/index.js +3 -1
  92. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -1
  93. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  94. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +0 -1
  95. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  96. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +9 -33
  97. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +0 -21
  98. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  99. package/dist/esm/components/src/components/Atoms/Icon/paths.js +0 -21
  100. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts +3 -3
  101. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
  102. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +7 -8
  103. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +1 -1
  104. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
  105. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -3
  106. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  107. package/dist/esm/components/src/components/Molecules/Result/Result.js +2 -2
  108. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -2
  109. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  110. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +2 -35
  111. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  112. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +12 -30
  113. package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/AbstractedControls.js +5 -5
  114. package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/Control.d.ts.map +1 -1
  115. package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/Control.js +29 -29
  116. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
  117. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +22 -35
  118. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  119. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  120. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +0 -3
  121. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  122. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +0 -3
  123. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  124. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +0 -3
  125. package/dist/esm/components/src/hooks/useMediaQuery.d.ts.map +1 -1
  126. package/dist/esm/components/src/hooks/useMediaQuery.js +3 -1
  127. package/dist/esm/components/src/index.d.ts +0 -1
  128. package/dist/esm/components/src/index.d.ts.map +1 -1
  129. package/dist/esm/components/src/index.js +0 -1
  130. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  131. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  132. package/dist/esm/components/src/themes/base/base.js +3 -3
  133. package/dist/esm/src/Snap.d.ts +1 -2
  134. package/dist/esm/src/Snap.d.ts.map +1 -1
  135. package/dist/esm/src/Snap.js +0 -59
  136. package/dist/esm/src/SnapHybrid.d.ts.map +1 -1
  137. package/dist/esm/src/Templates/SnapTemplates.d.ts +13 -73
  138. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  139. package/dist/esm/src/Templates/SnapTemplates.js +108 -112
  140. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +0 -4
  141. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  142. package/dist/esm/src/Templates/Stores/LibraryStore.js +0 -6
  143. package/dist/esm/src/Templates/Stores/TargetStore.d.ts +7 -6
  144. package/dist/esm/src/Templates/Stores/TargetStore.d.ts.map +1 -1
  145. package/dist/esm/src/Templates/Stores/TargetStore.js +14 -8
  146. package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts +56 -7
  147. package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts.map +1 -1
  148. package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.js +446 -88
  149. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts +1 -0
  150. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts.map +1 -1
  151. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.js +118 -66
  152. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.d.ts.map +1 -1
  153. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.js +9 -3
  154. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts +1 -0
  155. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts.map +1 -1
  156. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.js +82 -1
  157. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.d.ts.map +1 -1
  158. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.js +27 -8
  159. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +80 -33
  160. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  161. package/dist/esm/src/Templates/Stores/TemplateStore.js +27 -37
  162. package/dist/esm/src/Templates/Stores/ThemeStore.d.ts +2 -8
  163. package/dist/esm/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
  164. package/dist/esm/src/Templates/Stores/ThemeStore.js +3 -26
  165. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  166. package/dist/esm/src/Templates/Stores/library/languages/es.js +0 -5
  167. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  168. package/dist/esm/src/Templates/Stores/library/languages/fr.js +0 -5
  169. package/dist/esm/src/Templates/index.d.ts +1 -1
  170. package/dist/esm/src/Templates/index.d.ts.map +1 -1
  171. package/dist/esm/src/index.d.ts +1 -0
  172. package/dist/esm/src/index.d.ts.map +1 -1
  173. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  174. package/dist/esm/src/setupEvents.js +0 -23
  175. package/dist/esm/src/types.d.ts +6 -16
  176. package/dist/esm/src/types.d.ts.map +1 -1
  177. package/dist/esm/src/utils/combineMerge.d.ts +2 -0
  178. package/dist/esm/src/utils/combineMerge.d.ts.map +1 -0
  179. package/dist/esm/src/utils/combineMerge.js +16 -0
  180. package/dist/esm/src/utils/index.d.ts +1 -0
  181. package/dist/esm/src/utils/index.d.ts.map +1 -1
  182. package/dist/esm/src/utils/index.js +1 -0
  183. package/package.json +12 -13
  184. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -7
  185. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
  186. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -85
  187. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
  188. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
  189. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -17
  190. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -18
  191. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
  192. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -115
  193. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
  194. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
  195. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -17
  196. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -17
  197. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
  198. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -106
  199. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
  200. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
  201. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -17
  202. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +0 -23
  203. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +0 -1
  204. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -445
  205. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +0 -2
  206. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +0 -1
  207. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -17
  208. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +0 -14
  209. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
  210. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +0 -1619
  211. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts +0 -19
  212. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts.map +0 -1
  213. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.js +0 -22
  214. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.d.ts +0 -12
  215. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.d.ts.map +0 -1
  216. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.js +0 -158
  217. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts +0 -13
  218. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts.map +0 -1
  219. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.js +0 -170
  220. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts +0 -11
  221. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts.map +0 -1
  222. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.js +0 -192
  223. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +0 -11
  224. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +0 -1
  225. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.js +0 -86
  226. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts +0 -12
  227. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts.map +0 -1
  228. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.js +0 -73
  229. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts +0 -2
  230. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
  231. package/dist/cjs/components/src/components/Organisms/Chat/index.js +0 -17
  232. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts +0 -2
  233. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
  234. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +0 -5
  235. package/dist/cjs/src/create/createChatController.d.ts +0 -5
  236. package/dist/cjs/src/create/createChatController.d.ts.map +0 -1
  237. package/dist/cjs/src/create/createChatController.js +0 -43
  238. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -7
  239. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
  240. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -67
  241. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
  242. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
  243. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -1
  244. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -18
  245. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
  246. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -109
  247. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
  248. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
  249. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -1
  250. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -17
  251. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
  252. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -85
  253. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
  254. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
  255. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -1
  256. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +0 -23
  257. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +0 -1
  258. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -421
  259. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +0 -2
  260. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +0 -1
  261. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -1
  262. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +0 -14
  263. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
  264. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +0 -1560
  265. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts +0 -19
  266. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts.map +0 -1
  267. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.js +0 -16
  268. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.d.ts +0 -12
  269. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.d.ts.map +0 -1
  270. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.js +0 -143
  271. package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts +0 -13
  272. package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts.map +0 -1
  273. package/dist/esm/components/src/components/Organisms/Chat/MessageText.js +0 -152
  274. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts +0 -11
  275. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts.map +0 -1
  276. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.js +0 -164
  277. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +0 -11
  278. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +0 -1
  279. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.js +0 -70
  280. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts +0 -12
  281. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts.map +0 -1
  282. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.js +0 -58
  283. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +0 -2
  284. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
  285. package/dist/esm/components/src/components/Organisms/Chat/index.js +0 -1
  286. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +0 -2
  287. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
  288. package/dist/esm/src/Templates/Stores/library/components/Chat.js +0 -1
  289. package/dist/esm/src/create/createChatController.d.ts +0 -5
  290. package/dist/esm/src/create/createChatController.d.ts.map +0 -1
  291. package/dist/esm/src/create/createChatController.js +0 -29
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
14
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
15
  if (ar || !(i in from)) {
@@ -19,6 +30,7 @@ var color_1 = __importDefault(require("color"));
19
30
  var deepmerge_1 = __importDefault(require("deepmerge"));
20
31
  var TemplateStore_1 = require("../TemplateStore");
21
32
  var uiAbstractions_1 = require("./uiAbstractions");
33
+ var utils_1 = require("../../../utils");
22
34
  var THEME_VARIABLE_DEFAULTS = {
23
35
  breakpoints: {
24
36
  mobile: 600,
@@ -36,21 +48,32 @@ var TemplateEditorStore = /** @class */ (function () {
36
48
  function TemplateEditorStore(_a) {
37
49
  var templatesStore = _a.templatesStore;
38
50
  var _this = this;
39
- var _b;
40
- this.state = {
51
+ var _b, _c, _d, _e, _f, _g, _h, _j;
52
+ this.storedState = {
41
53
  hidden: false,
42
54
  activeTab: 'configuration',
43
55
  };
56
+ this.state = {
57
+ activeDomSelector: '',
58
+ };
44
59
  this.overrides = {
45
60
  config: {},
46
61
  controller: {},
47
62
  theme: {},
63
+ targets: {
64
+ search: [],
65
+ autocomplete: [],
66
+ },
48
67
  };
49
68
  this.initial = {
50
69
  config: {
51
70
  language: 'en',
52
71
  currency: 'usd',
53
72
  },
73
+ targets: {
74
+ search: [],
75
+ autocomplete: [],
76
+ },
54
77
  controller: {},
55
78
  theme: {
56
79
  extends: 'base',
@@ -67,6 +90,10 @@ var TemplateEditorStore = /** @class */ (function () {
67
90
  search: (0, uiAbstractions_1.searchControllerUI)(this),
68
91
  autocomplete: (0, uiAbstractions_1.autocompleteControllerUI)(this),
69
92
  },
93
+ targets: {
94
+ search: (0, uiAbstractions_1.searchTargetUI)(this),
95
+ autocomplete: (0, uiAbstractions_1.autocompleteTargetUI)(this),
96
+ },
70
97
  };
71
98
  this.setThemeOverride = function (obj) {
72
99
  var path = obj.path, value = obj.value;
@@ -75,40 +102,157 @@ var TemplateEditorStore = /** @class */ (function () {
75
102
  return acc && acc[key];
76
103
  }, _this.initial.theme);
77
104
  var themeConfigOverrides = generateObject(path, value == initialValue ? undefined : value);
78
- _this.overrides.theme = removeEmptyObjects((0, deepmerge_1.default)(_this.overrides.theme || {}, themeConfigOverrides));
105
+ _this.overrides.theme = removeEmptyObjects((0, deepmerge_1.default)(_this.overrides.theme || {}, themeConfigOverrides || {}));
79
106
  _this.storage.set('overrides.theme', _this.overrides.theme);
80
107
  var mergedOverrides = (0, deepmerge_1.default)(_this.initial.theme || {}, _this.overrides.theme || {});
108
+ var transformedMergedOverrides = transformThemeComponentOverrides(mergedOverrides);
81
109
  // update all themes with the new overrides
82
110
  Object.keys(_this.templatesStore.themes.library).forEach(function (themeName) {
83
111
  var themeStore = _this.templatesStore.themes.library[themeName];
84
- themeStore.setEditorOverrides({ variables: mergedOverrides.variables || {} });
112
+ themeStore.setEditorOverrides(transformedMergedOverrides);
85
113
  });
86
114
  };
115
+ // ['variables', 'colors', 'primary']
116
+ // store.setThemeOverride({ path: ['variables', 'breakpoints', 'mobile'], value });
117
+ // ['search', '[0]', 'selector']
118
+ // store.setTargetOverride({ path: ['search', '[0]'], value });
119
+ // store.setTargetOverride({ path: ['search', '[0]', 'selector'], value });
120
+ // store.setTargetOverride({ path: ['search', '[0]'], value }); --- value = {...}
121
+ this.setTargetOverride = function (obj) {
122
+ var path = obj.path;
123
+ var value = obj.value;
124
+ /*
125
+ this.initial.targets = {
126
+ search: [
127
+ {...},
128
+ {...},
129
+ ]
130
+ }
131
+ */
132
+ var targetFeature = path[0];
133
+ // const lastPath = path[path.length - 1];
134
+ var targetIndex = -1;
135
+ // grab the initial config value using the path provided
136
+ var initialValue = path.reduce(function (acc, key) {
137
+ // handle array index access
138
+ // e.g., [0], [1], etc.
139
+ // if the key is in the format of [index], convert it to a number and access the array
140
+ // otherwise, access the object property as usual
141
+ try {
142
+ var keyIndex = Number(key.replace(/^\[(\d+)\]$/, '$1'));
143
+ if (Number.isNaN(keyIndex)) {
144
+ // not an index position
145
+ return acc && acc[key];
146
+ }
147
+ else {
148
+ // we have a string key - use it to set the accumulator
149
+ targetIndex = keyIndex;
150
+ return acc && acc[keyIndex];
151
+ }
152
+ }
153
+ catch (error) {
154
+ // handle error
155
+ console.error('Error accessing path in initial targets:', error);
156
+ return undefined;
157
+ }
158
+ }, _this.initial.targets);
159
+ var targetOverrides = generateObject(path, value == initialValue ? undefined : value);
160
+ var merged = (0, deepmerge_1.default)((0, mobx_1.toJS)(_this.overrides.targets) || {}, (0, mobx_1.toJS)(targetOverrides) || {}, { arrayMerge: utils_1.combineMerge });
161
+ _this.overrides.targets = removeEmptyObjects(merged);
162
+ _this.storage.set('overrides.targets', _this.overrides.targets);
163
+ // const plainInitial = convertObservableToPlain(this.initial.targets);
164
+ // const plainOverrides = convertObservableToPlain(this.overrides.targets);
165
+ var mergedOverrides = (0, deepmerge_1.default)((0, mobx_1.toJS)(_this.initial.targets) || {}, (0, mobx_1.toJS)(_this.overrides.targets) || {}, {
166
+ arrayMerge: utils_1.combineMerge,
167
+ });
168
+ var finalPath = path[path.length - 1];
169
+ if (finalPath == 'selector' && targetIndex > -1) {
170
+ // if reset button was clicked value will be undefined
171
+ if (typeof value == 'undefined') {
172
+ value = initialValue;
173
+ }
174
+ // needs to have a value and some actual elem to find
175
+ if (typeof value == 'string' && value.length > 1 && document.querySelector(value)) {
176
+ var activeTargeterKey = Object.keys(window.athos.controller[targetFeature].targeters)[targetIndex];
177
+ if (activeTargeterKey) {
178
+ var oldSelector = window.athos.controller[targetFeature].targeters[activeTargeterKey].targets[0].selector;
179
+ var elem = document.querySelector(oldSelector || '');
180
+ if (targetFeature == 'search' && elem) {
181
+ //create clone of elem with all attributes
182
+ var clonedElement = elem.cloneNode(true);
183
+ clonedElement.innerHTML = '';
184
+ //inject clone right after elem
185
+ elem.insertAdjacentElement('afterend', clonedElement);
186
+ //delete elem so targeter can retarget an element thats already been targeted
187
+ elem.remove();
188
+ }
189
+ window.athos.controller[targetFeature].targeters[activeTargeterKey].targets[0].selector = value;
190
+ /*
191
+ selector
192
+ inputSelector
193
+
194
+ targetSelector -> selector
195
+ inputSelector (optional) -> inputSelector
196
+ DomTargeter
197
+ * selector = selector
198
+ * props.input = inputSelector (optional)
199
+ */
200
+ window.athos.controller[targetFeature].retarget();
201
+ }
202
+ }
203
+ }
204
+ else if (finalPath == 'inputSelector' && targetIndex > -1) {
205
+ var activeTargeterKey = Object.keys(window.athos.controller[targetFeature].targeters)[targetIndex];
206
+ window.athos.controller[targetFeature].targeters[activeTargeterKey].targets[0].props.input = value;
207
+ window.athos.controller[targetFeature].retarget();
208
+ }
209
+ // if the component changed we need to tell the targetStore about it via:
210
+ var targetFeatureSet = _this.templatesStore.targets[targetFeature];
211
+ if (targetFeatureSet && targetIndex != -1) {
212
+ var target_1 = targetFeatureSet[targetIndex];
213
+ // if (target && lastPath) {
214
+ // const finalValue = mergedOverrides[targetFeature][targetIndex]?.selector;
215
+ // finalValue && target.setValue(lastPath, finalValue);
216
+ // }
217
+ // update values in target
218
+ var mergedTarget_1 = mergedOverrides[targetFeature][targetIndex];
219
+ Object.keys(mergedTarget_1).forEach(function (key) {
220
+ var value = mergedTarget_1[key];
221
+ target_1.setValue(key, value);
222
+ });
223
+ }
224
+ // target.setComponent
225
+ };
87
226
  this.templatesStore = templatesStore;
88
227
  this.storage = new snap_store_mobx_1.StorageStore({ type: snap_store_mobx_1.StorageType.local, key: TemplateStore_1.TEMPLATE_STORE_KEY });
89
- this.state = this.storage.get('editor') || this.state;
90
- this.overrides = this.storage.get('overrides') || this.overrides;
91
- // prevent empty objects in overrides
92
- this.overrides.config = this.overrides.config || {};
93
- this.overrides.controller = this.overrides.controller || {};
94
- this.overrides.theme = this.overrides.theme || {};
228
+ this.storedState = this.storage.get('editor') || this.storedState;
95
229
  this.initial.config = (0, deepmerge_1.default)(this.initial.config, templatesStore.config.config);
96
230
  this.initial.controller = {}; // set when registering controllers
231
+ // set initial targets
232
+ if ((_b = templatesStore.config.search) === null || _b === void 0 ? void 0 : _b.targets)
233
+ this.initial.targets.search = (_c = templatesStore.config.search) === null || _c === void 0 ? void 0 : _c.targets;
234
+ if ((_d = templatesStore.config.autocomplete) === null || _d === void 0 ? void 0 : _d.targets)
235
+ this.initial.targets.autocomplete = (_e = templatesStore.config.autocomplete) === null || _e === void 0 ? void 0 : _e.targets;
97
236
  var themeConfig = JSON.parse(JSON.stringify(templatesStore.config.theme || {}));
98
237
  delete themeConfig.style;
99
- delete themeConfig.overrides;
100
238
  this.initial.theme = (0, deepmerge_1.default)(this.initial.theme, themeConfig);
101
- // normalize all colors to hexadecimal format using the Color library
102
- Object.keys(this.initial.theme.variables.colors).forEach(function (key) {
103
- var color = _this.initial.theme.variables.colors[key];
104
- _this.initial.theme.variables.colors[key] = (0, color_1.default)(color).hex();
239
+ // apply stored overrides (normalizes, persists, and triggers theme changes)
240
+ var storedOverrides = this.storage.get('overrides') || {};
241
+ this.setOverrides({
242
+ config: storedOverrides.config,
243
+ theme: storedOverrides.theme,
244
+ search: {
245
+ targets: (_f = storedOverrides.targets) === null || _f === void 0 ? void 0 : _f.search,
246
+ settings: (_g = storedOverrides.controller) === null || _g === void 0 ? void 0 : _g.search,
247
+ },
248
+ autocomplete: {
249
+ targets: (_h = storedOverrides.targets) === null || _h === void 0 ? void 0 : _h.autocomplete,
250
+ settings: (_j = storedOverrides.controller) === null || _j === void 0 ? void 0 : _j.autocomplete,
251
+ },
105
252
  });
106
- // switch to the theme set in the initial config if no override is set
107
- this.setTheme((_b = this.overrides.theme.extends) !== null && _b !== void 0 ? _b : this.initial.theme.extends);
108
- // initialize themes with overrides
109
- this.setThemeOverride({ path: [], value: undefined });
110
253
  this.storage.set('initial', this.initial);
111
254
  (0, mobx_1.makeObservable)(this, {
255
+ storedState: mobx_1.observable,
112
256
  state: mobx_1.observable,
113
257
  overrides: mobx_1.observable,
114
258
  initial: mobx_1.observable,
@@ -120,12 +264,80 @@ var TemplateEditorStore = /** @class */ (function () {
120
264
  // });
121
265
  }
122
266
  TemplateEditorStore.prototype.switchTabs = function (tab) {
123
- this.state.activeTab = tab;
124
- this.storage.set('editor', this.state);
267
+ this.storedState.activeTab = tab;
268
+ this.storage.set('editor', this.storedState);
125
269
  };
126
270
  TemplateEditorStore.prototype.toggleHide = function (hide) {
127
- this.state.hidden = hide;
128
- this.storage.set('editor', this.state);
271
+ this.storedState.hidden = hide;
272
+ this.storage.set('editor', this.storedState);
273
+ };
274
+ TemplateEditorStore.prototype.setOverrides = function (overrides) {
275
+ var _this = this;
276
+ var _a, _b, _c, _d, _e;
277
+ // normalize and set overrides, preventing empty objects
278
+ this.overrides.config = overrides.config || {};
279
+ this.overrides.controller = {
280
+ search: (_a = overrides.search) === null || _a === void 0 ? void 0 : _a.settings,
281
+ autocomplete: (_b = overrides.autocomplete) === null || _b === void 0 ? void 0 : _b.settings,
282
+ };
283
+ this.overrides.theme = overrides.theme || {};
284
+ this.overrides.targets = {
285
+ search: ((_c = overrides.search) === null || _c === void 0 ? void 0 : _c.targets) || [],
286
+ autocomplete: ((_d = overrides.autocomplete) === null || _d === void 0 ? void 0 : _d.targets) || [],
287
+ };
288
+ // persist each section to storage
289
+ this.storage.set('overrides.config', this.overrides.config);
290
+ this.storage.set('overrides.controller', this.overrides.controller);
291
+ this.storage.set('overrides.targets', this.overrides.targets);
292
+ // apply language/currency overrides to the templates store
293
+ var language = (this.overrides.config.language || this.initial.config.language);
294
+ var currency = (this.overrides.config.currency || this.initial.config.currency);
295
+ this.templatesStore.setLanguage(language);
296
+ this.templatesStore.setCurrency(currency);
297
+ // re-apply controller configs with merged overrides
298
+ // (skip if initial.controller hasn't been populated yet — registerController handles that case)
299
+ ['search', 'autocomplete'].forEach(function (type) {
300
+ var _a, _b;
301
+ var controller = (_b = (_a = window.athos) === null || _a === void 0 ? void 0 : _a.controller) === null || _b === void 0 ? void 0 : _b[type];
302
+ if (controller && _this.initial.controller[type]) {
303
+ // reset settings to initial values first, then merge overrides on top
304
+ // (controller.config.settings already has old overrides baked in, so we can't use it as a base)
305
+ var cleanConfig = __assign(__assign({}, controller.config), { settings: JSON.parse(JSON.stringify(_this.initial.controller[type])) });
306
+ var mergedConfig = (0, deepmerge_1.default)(cleanConfig, {
307
+ settings: _this.overrides.controller[type] || {},
308
+ });
309
+ controller.setConfig(mergedConfig);
310
+ }
311
+ });
312
+ // re-apply target overrides (component, selector, etc.)
313
+ ['search', 'autocomplete'].forEach(function (feature) {
314
+ var targetFeatureSet = _this.templatesStore.targets[feature];
315
+ var mergedTargets = (0, deepmerge_1.default)((0, mobx_1.toJS)(_this.initial.targets[feature]) || [], (0, mobx_1.toJS)(_this.overrides.targets[feature]) || [], { arrayMerge: utils_1.combineMerge });
316
+ targetFeatureSet.forEach(function (target, index) {
317
+ var mergedTarget = mergedTargets[index];
318
+ if (mergedTarget) {
319
+ Object.keys(mergedTarget).forEach(function (key) {
320
+ target.setValue(key, mergedTarget[key]);
321
+ });
322
+ }
323
+ });
324
+ });
325
+ // apply theme changes (also persists overrides.theme)
326
+ this.setTheme((_e = this.overrides.theme.extends) !== null && _e !== void 0 ? _e : this.initial.theme.extends);
327
+ };
328
+ TemplateEditorStore.prototype.resetOverrides = function () {
329
+ this.storage.set('overrides', undefined);
330
+ this.setOverrides({});
331
+ };
332
+ TemplateEditorStore.prototype.setActiveDomSelector = function (selectorId) {
333
+ if (selectorId === null || selectorId === void 0 ? void 0 : selectorId.length) {
334
+ this.state.activeDomSelector = selectorId;
335
+ this.toggleHide(true);
336
+ }
337
+ else {
338
+ this.state.activeDomSelector = '';
339
+ this.toggleHide(false);
340
+ }
129
341
  };
130
342
  TemplateEditorStore.prototype.setConfigOverride = function (obj) {
131
343
  var _this = this;
@@ -138,7 +350,6 @@ var TemplateEditorStore = /** @class */ (function () {
138
350
  var updatedOverrides = removeEmptyObjects((0, deepmerge_1.default)(this.overrides.config || {}, configOverrides));
139
351
  this.overrides.config = updatedOverrides;
140
352
  this.storage.set('overrides.config', updatedOverrides);
141
- // TODO: handle setting language and currency separately
142
353
  if (path[0] === 'language') {
143
354
  this.templatesStore.setLanguage((value || initialValue)).then(function () {
144
355
  _this.storage.set('overrides.config', updatedOverrides);
@@ -158,24 +369,42 @@ var TemplateEditorStore = /** @class */ (function () {
158
369
  }
159
370
  this.overrides.theme = (0, deepmerge_1.default)(this.overrides.theme, updatedConfig);
160
371
  this.storage.set('overrides.theme', this.overrides.theme);
372
+ // update initial variables from the newly selected theme's raw definition
373
+ var themeDefinition = this.templatesStore.library.themes[themeName];
374
+ if (themeDefinition) {
375
+ var themeConfig = JSON.parse(JSON.stringify(this.templatesStore.config.theme || {}));
376
+ delete themeConfig.style;
377
+ this.initial.theme.variables = (0, deepmerge_1.default)(themeDefinition.variables || {}, themeConfig.variables || {});
378
+ // normalize colors to hexadecimal format
379
+ Object.keys(this.initial.theme.variables.colors).forEach(function (key) {
380
+ var color = _this.initial.theme.variables.colors[key];
381
+ _this.initial.theme.variables.colors[key] = (0, color_1.default)(color).hex();
382
+ });
383
+ this.storage.set('initial', this.initial);
384
+ }
385
+ // update all library themes with recomputed editor overrides based on the new theme's variables
386
+ var mergedOverrides = (0, deepmerge_1.default)(this.initial.theme || {}, this.overrides.theme || {});
387
+ var transformedMergedOverrides = transformThemeComponentOverrides(mergedOverrides);
388
+ Object.keys(this.templatesStore.themes.library).forEach(function (libThemeName) {
389
+ var themeStore = _this.templatesStore.themes.library[libThemeName];
390
+ themeStore.setEditorOverrides(transformedMergedOverrides);
391
+ });
161
392
  // loop through all targets in templateStore and call setTheme on them all
162
393
  Object.keys(this.templatesStore.targets).forEach(function (feature) {
163
394
  // loop through all the features (search, autocomplete, recommendations)
164
395
  if (feature == 'recommendation') {
165
- var recommendationObj_1 = _this.templatesStore.targets[feature];
166
- Object.keys(recommendationObj_1).forEach(function (recType) {
167
- var targetMap = recommendationObj_1[recType];
168
- Object.keys(targetMap).forEach(function (target) {
169
- var targetStore = targetMap[target];
170
- targetStore.setTheme(themeName, 'library');
396
+ var recommendationTargetObject_1 = _this.templatesStore.targets.recommendation;
397
+ Object.keys(recommendationTargetObject_1).forEach(function (recType) {
398
+ var featureTargets = recommendationTargetObject_1[recType];
399
+ featureTargets.forEach(function (target) {
400
+ target.setTheme(themeName, 'library');
171
401
  });
172
402
  });
173
403
  }
174
404
  else {
175
- var targetMap_1 = _this.templatesStore.targets[feature];
176
- Object.keys(targetMap_1).forEach(function (target) {
177
- var targetStore = targetMap_1[target];
178
- targetStore.setTheme(themeName, 'library');
405
+ var featureTargets = _this.templatesStore.targets[feature];
406
+ featureTargets.forEach(function (target) {
407
+ target.setTheme(themeName, 'library');
179
408
  });
180
409
  }
181
410
  });
@@ -223,81 +452,165 @@ var TemplateEditorStore = /** @class */ (function () {
223
452
  };
224
453
  TemplateEditorStore.prototype.getTargets = function () {
225
454
  var storeTargets = this.templatesStore.targets;
226
- var searchTargets = Object.keys(storeTargets.search || {}).map(function (target) { return ({
455
+ var searchTargets = storeTargets.search.map(function (target) { return ({
227
456
  type: 'search',
228
457
  target: target,
229
- template: storeTargets.search[target],
230
- selector: storeTargets.search[target].selector,
458
+ template: target.component,
459
+ selector: target.selector,
231
460
  }); });
232
- var autocompleteTargets = Object.keys(storeTargets.autocomplete || {}).map(function (target) { return ({
461
+ var autocompleteTargets = storeTargets.autocomplete.map(function (target) { return ({
233
462
  type: 'autocomplete',
234
463
  target: target,
235
- template: storeTargets.autocomplete[target],
236
- selector: storeTargets.autocomplete[target].selector,
464
+ template: target.component,
465
+ selector: target.selector,
237
466
  }); });
238
- var recommendationBundleTargets = Object.keys(storeTargets.recommendation.bundle || {}).map(function (target) { return ({
467
+ var recommendationBundleTargets = storeTargets.recommendation.bundle.map(function (target) { return ({
239
468
  type: 'recommendation/bundle',
240
469
  target: target,
241
- template: storeTargets.recommendation.bundle[target],
242
- selector: storeTargets.recommendation.bundle[target].selector,
470
+ template: target.component,
471
+ selector: target.selector,
243
472
  }); });
244
- var recommendationDefaultTargets = Object.keys(storeTargets.recommendation.default || {}).map(function (target) { return ({
473
+ var recommendationDefaultTargets = storeTargets.recommendation.default.map(function (target) { return ({
245
474
  type: 'recommendation/default',
246
475
  target: target,
247
- template: storeTargets.recommendation.default[target],
248
- selector: storeTargets.recommendation.default[target].selector,
476
+ template: target.component,
477
+ selector: target.selector,
249
478
  }); });
250
- var recommendationEmailTargets = Object.keys(storeTargets.recommendation.email || {}).map(function (target) { return ({
479
+ var recommendationEmailTargets = storeTargets.recommendation.email.map(function (target) { return ({
251
480
  type: 'recommendation/email',
252
481
  target: target,
253
- template: storeTargets.recommendation.email[target],
254
- selector: storeTargets.recommendation.email[target].selector,
482
+ template: target.component,
483
+ selector: target.selector,
255
484
  }); });
256
485
  var targets = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], searchTargets, true), autocompleteTargets, true), recommendationBundleTargets, true), recommendationDefaultTargets, true), recommendationEmailTargets, true);
257
486
  return targets;
258
487
  };
259
- TemplateEditorStore.prototype.generateTemplatesConfig = function () {
488
+ TemplateEditorStore.prototype.generateTemplatesConfig = function (options) {
489
+ var resolveSource = function (opt) {
490
+ var _a, _b;
491
+ if (opt === undefined || opt === true)
492
+ return { initial: true, overrides: true };
493
+ if (opt === false)
494
+ return { initial: false, overrides: false };
495
+ return { initial: (_a = opt.initial) !== null && _a !== void 0 ? _a : true, overrides: (_b = opt.overrides) !== null && _b !== void 0 ? _b : true };
496
+ };
497
+ var configOpt = resolveSource(options === null || options === void 0 ? void 0 : options.config);
498
+ var themeExtendsOpt;
499
+ var themeVariablesOpt;
500
+ var themeOverridesOpt;
501
+ if ((options === null || options === void 0 ? void 0 : options.theme) === undefined || (options === null || options === void 0 ? void 0 : options.theme) === true) {
502
+ themeExtendsOpt = { initial: true, overrides: true };
503
+ themeVariablesOpt = { initial: true, overrides: true };
504
+ themeOverridesOpt = { initial: true, overrides: true };
505
+ }
506
+ else if ((options === null || options === void 0 ? void 0 : options.theme) === false) {
507
+ themeExtendsOpt = { initial: false, overrides: false };
508
+ themeVariablesOpt = { initial: false, overrides: false };
509
+ themeOverridesOpt = { initial: false, overrides: false };
510
+ }
511
+ else {
512
+ themeExtendsOpt = resolveSource(options.theme.extends);
513
+ themeVariablesOpt = resolveSource(options.theme.variables);
514
+ themeOverridesOpt = resolveSource(options.theme.overrides);
515
+ }
516
+ var includeTheme = themeExtendsOpt.initial ||
517
+ themeExtendsOpt.overrides ||
518
+ themeVariablesOpt.initial ||
519
+ themeVariablesOpt.overrides ||
520
+ themeOverridesOpt.initial ||
521
+ themeOverridesOpt.overrides;
260
522
  var originalConfig = JSON.parse(JSON.stringify(this.templatesStore.config));
261
523
  delete originalConfig.search;
262
524
  delete originalConfig.autocomplete;
263
525
  delete originalConfig.recommendation;
264
526
  delete originalConfig.components;
265
- var storageConfigData = (this.storage.get('overrides.config') || {});
266
- var themeConfigData = (this.storage.get('overrides.theme') || {});
267
- var overrideConfig = { config: storageConfigData, theme: themeConfigData };
527
+ // selectively strip initial config
528
+ if (!configOpt.initial) {
529
+ delete originalConfig.config;
530
+ }
531
+ // selectively strip initial theme fields
532
+ if (!includeTheme) {
533
+ delete originalConfig.theme;
534
+ }
535
+ else if (originalConfig.theme) {
536
+ if (!themeExtendsOpt.initial)
537
+ delete originalConfig.theme.extends;
538
+ if (!themeVariablesOpt.initial)
539
+ delete originalConfig.theme.variables;
540
+ if (!themeOverridesOpt.initial)
541
+ delete originalConfig.theme.overrides;
542
+ }
543
+ var overrideConfig = {};
544
+ if (configOpt.overrides) {
545
+ overrideConfig.config = (this.storage.get('overrides.config') || {});
546
+ }
547
+ if (includeTheme) {
548
+ var themeOverrideData = (this.storage.get('overrides.theme') || {});
549
+ var filteredTheme = {};
550
+ if (themeExtendsOpt.overrides && themeOverrideData.extends !== undefined)
551
+ filteredTheme.extends = themeOverrideData.extends;
552
+ if (themeVariablesOpt.overrides && themeOverrideData.variables !== undefined)
553
+ filteredTheme.variables = themeOverrideData.variables;
554
+ if (themeOverridesOpt.overrides && themeOverrideData.overrides !== undefined)
555
+ filteredTheme.overrides = themeOverrideData.overrides;
556
+ if (Object.keys(filteredTheme).length) {
557
+ overrideConfig.theme = filteredTheme;
558
+ }
559
+ }
268
560
  var targets = this.getTargets();
269
- var searchTargets = targets
270
- .filter(function (target) { return target.type === 'search'; })
271
- .map(function (target) {
272
- return ({
273
- selector: target.selector,
274
- component: target.template.component,
275
- });
276
- });
277
- var autocompleteTargets = targets
278
- .filter(function (target) { return target.type === 'autocomplete'; })
279
- .map(function (target) {
280
- return ({
281
- selector: target.selector,
282
- component: target.template.component,
561
+ if ((options === null || options === void 0 ? void 0 : options.search) !== false) {
562
+ var searchTargets = targets
563
+ .filter(function (target) { return target.type === 'search'; })
564
+ .map(function (target) {
565
+ return ({
566
+ selector: target.selector,
567
+ component: target.target.component,
568
+ });
283
569
  });
284
- });
285
- // add search controller settings
286
- if (searchTargets.length) {
287
- overrideConfig.search = {
288
- targets: searchTargets,
289
- settings: this.overrides.controller.search || {},
290
- };
570
+ if (searchTargets.length) {
571
+ overrideConfig.search = {
572
+ targets: searchTargets,
573
+ settings: this.overrides.controller.search || {},
574
+ };
575
+ }
291
576
  }
292
- // add autocomplete controller settings
293
- if (autocompleteTargets.length) {
294
- overrideConfig.autocomplete = {
295
- targets: autocompleteTargets,
296
- settings: this.overrides.controller.autocomplete || {},
297
- };
577
+ if ((options === null || options === void 0 ? void 0 : options.autocomplete) !== false) {
578
+ var autocompleteTargets = targets
579
+ .filter(function (target) { return target.type === 'autocomplete'; })
580
+ .map(function (target) {
581
+ return ({
582
+ selector: target.selector,
583
+ component: target.target.component,
584
+ });
585
+ });
586
+ if (autocompleteTargets.length) {
587
+ overrideConfig.autocomplete = {
588
+ targets: autocompleteTargets,
589
+ settings: this.overrides.controller.autocomplete || {},
590
+ };
591
+ }
298
592
  }
299
593
  var config = (0, deepmerge_1.default)(originalConfig, overrideConfig);
300
- return config;
594
+ var cleaned = removeEmptyObjects(config);
595
+ if (!(options === null || options === void 0 ? void 0 : options.unlocked)) {
596
+ delete cleaned.unlocked;
597
+ }
598
+ // reorder keys: unlocked, config, theme, search, autocomplete, then everything else
599
+ var orderedKeys = ['unlocked', 'config', 'theme', 'search', 'autocomplete'];
600
+ var ordered = {};
601
+ for (var _i = 0, orderedKeys_1 = orderedKeys; _i < orderedKeys_1.length; _i++) {
602
+ var key = orderedKeys_1[_i];
603
+ if (key in cleaned) {
604
+ ordered[key] = cleaned[key];
605
+ }
606
+ }
607
+ for (var _a = 0, _b = Object.keys(cleaned); _a < _b.length; _a++) {
608
+ var key = _b[_a];
609
+ if (!(key in ordered)) {
610
+ ordered[key] = cleaned[key];
611
+ }
612
+ }
613
+ return ordered;
301
614
  };
302
615
  return TemplateEditorStore;
303
616
  }());
@@ -308,6 +621,23 @@ function removeEmptyObjects(object) {
308
621
  if (obj === null || typeof obj !== 'object') {
309
622
  return obj;
310
623
  }
624
+ // Handle arrays differently from objects
625
+ if (Array.isArray(obj)) {
626
+ return obj
627
+ .map(function (item) { return cleanObj(item); })
628
+ .filter(function (item) {
629
+ // Keep non-null/undefined items
630
+ if (item === null || item === undefined)
631
+ return false;
632
+ // Keep non-empty objects/arrays
633
+ if (typeof item === 'object') {
634
+ return Array.isArray(item) ? item.length > 0 : Object.keys(item).length > 0;
635
+ }
636
+ // Keep primitive values
637
+ return true;
638
+ });
639
+ }
640
+ // Handle regular objects
311
641
  var result = {};
312
642
  Object.entries(obj).forEach(function (_a) {
313
643
  var key = _a[0], value = _a[1];
@@ -315,10 +645,10 @@ function removeEmptyObjects(object) {
315
645
  if (value === undefined)
316
646
  return;
317
647
  if (value !== null && typeof value === 'object') {
318
- // Recursively clean nested objects
648
+ // Recursively clean nested objects/arrays
319
649
  var cleanedValue = cleanObj(value);
320
- // Only add non-empty objects
321
- if (Object.keys(cleanedValue).length > 0) {
650
+ // Only add non-empty objects/arrays
651
+ if (Array.isArray(cleanedValue) ? cleanedValue.length > 0 : Object.keys(cleanedValue).length > 0) {
322
652
  result[key] = cleanedValue;
323
653
  }
324
654
  }
@@ -333,18 +663,59 @@ function removeEmptyObjects(object) {
333
663
  return cleanObj(object);
334
664
  }
335
665
  function generateObject(path, value) {
666
+ // modify this function to handle array index access
667
+ // e.g., [0], [1], etc.
668
+ // if the key is in the format of [index], convert it to a number and create an array
669
+ // otherwise, create an object property as usual
670
+ // Example:
671
+ // path = ['search', '[0]', 'selector'], value = '#new-selector'
672
+ // returns { search: [ { selector: '#new-selector' } ] }
673
+ // Example:
674
+ // path = ['search', '[0]'], value = { selector: '#new-selector', component: 'Search' }
675
+ // returns { search: [ { selector: '#new-selector', component: 'Search' } ] }
676
+ // Example:
677
+ // path = ['search', 'stuff', 'thing'], value = 'whatever'
678
+ // returns { search: { stuff: { thing: 'whatever' } } }
679
+ // Example:
680
+ // path = ['[0]'], value = { selector: '#new-selector', component: 'Search' }
681
+ // returns [ { selector: '#new-selector', component: 'Search' } ]
682
+ // if (typeof value == 'undefined') return {} as T;
336
683
  return path
337
684
  .slice()
338
685
  .reverse()
339
- .reduce(function (res, key, index) {
340
- var _a, _b;
341
- if (index === 0) {
342
- return _a = {},
343
- _a[key] = value,
344
- _a;
686
+ .reduce(function (res, key) {
687
+ var _a;
688
+ // Check if key is array index notation like [0], [1], etc.
689
+ var arrayIndexMatch = key.match(/^\[(\d+)\]$/);
690
+ if (arrayIndexMatch) {
691
+ // Extract the index number
692
+ var index = parseInt(arrayIndexMatch[1], 10);
693
+ // Create an array with the element at the specified index
694
+ var arr = [];
695
+ arr[index] = res;
696
+ return arr;
345
697
  }
346
- return _b = {},
347
- _b[key] = res,
348
- _b;
349
- }, {});
698
+ // Regular object property
699
+ return _a = {},
700
+ _a[key] = res,
701
+ _a;
702
+ }, value);
703
+ }
704
+ function transformThemeComponentOverrides(theme) {
705
+ var overrides = theme.overrides, variables = theme.variables;
706
+ var result = {};
707
+ if (variables) {
708
+ result.variables = variables;
709
+ }
710
+ if (overrides === null || overrides === void 0 ? void 0 : overrides.default) {
711
+ result.components = overrides.default;
712
+ }
713
+ if ((overrides === null || overrides === void 0 ? void 0 : overrides.mobile) || (overrides === null || overrides === void 0 ? void 0 : overrides.tablet) || (overrides === null || overrides === void 0 ? void 0 : overrides.desktop)) {
714
+ result.responsive = {
715
+ mobile: overrides === null || overrides === void 0 ? void 0 : overrides.mobile,
716
+ tablet: overrides === null || overrides === void 0 ? void 0 : overrides.tablet,
717
+ desktop: overrides === null || overrides === void 0 ? void 0 : overrides.desktop,
718
+ };
719
+ }
720
+ return result;
350
721
  }