@bigbinary/neeto-molecules 1.1.78 → 1.2.0-beta1

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 (370) hide show
  1. package/README.md +66 -52
  2. package/dist/Breadcrumbs.js +16 -19
  3. package/dist/Breadcrumbs.js.map +1 -1
  4. package/dist/BrowserSupport.js +41 -138
  5. package/dist/BrowserSupport.js.map +1 -1
  6. package/dist/Builder.js +207 -364
  7. package/dist/Builder.js.map +1 -1
  8. package/dist/CalendarView.js +40 -288
  9. package/dist/CalendarView.js.map +1 -1
  10. package/dist/Chevron-c64ff676.js +190 -0
  11. package/dist/Chevron-c64ff676.js.map +1 -0
  12. package/dist/Codeblock.js +26 -209
  13. package/dist/Codeblock.js.map +1 -1
  14. package/dist/Columns.js +16 -240
  15. package/dist/Columns.js.map +1 -1
  16. package/dist/ConfigurePageSidebar.js +97 -0
  17. package/dist/ConfigurePageSidebar.js.map +1 -0
  18. package/dist/ConfirmationModal.js +10 -10
  19. package/dist/ConfirmationModal.js.map +1 -1
  20. package/dist/Container.js +5 -1187
  21. package/dist/Container.js.map +1 -1
  22. package/dist/CopyToClipboardButton.js +26 -155
  23. package/dist/CopyToClipboardButton.js.map +1 -1
  24. package/dist/Currency.js +912 -0
  25. package/dist/Currency.js.map +1 -0
  26. package/dist/CustomDomain.js +37 -633
  27. package/dist/CustomDomain.js.map +1 -1
  28. package/dist/CustomDomainDashboard.js +69 -2192
  29. package/dist/CustomDomainDashboard.js.map +1 -1
  30. package/dist/DateFormat.js +6 -20
  31. package/dist/DateFormat.js.map +1 -1
  32. package/dist/DateRangeFilter.js +19 -75
  33. package/dist/DateRangeFilter.js.map +1 -1
  34. package/dist/DeleteArchiveModal.js +86 -0
  35. package/dist/DeleteArchiveModal.js.map +1 -0
  36. package/dist/DocumentEditor.js +43 -133
  37. package/dist/DocumentEditor.js.map +1 -1
  38. package/dist/DownloadMobileAppCallout.js +4 -4
  39. package/dist/DownloadMobileAppCallout.js.map +1 -1
  40. package/dist/DynamicVariables.js +12 -95
  41. package/dist/DynamicVariables.js.map +1 -1
  42. package/dist/EmailForm.js +79 -1741
  43. package/dist/EmailForm.js.map +1 -1
  44. package/dist/EmailPreview.js +32 -1213
  45. package/dist/EmailPreview.js.map +1 -1
  46. package/dist/EmojiPicker.js +67 -0
  47. package/dist/EmojiPicker.js.map +1 -0
  48. package/dist/EmojiReactions.js +69 -0
  49. package/dist/EmojiReactions.js.map +1 -0
  50. package/dist/ErrorPage.js +17 -26
  51. package/dist/ErrorPage.js.map +1 -1
  52. package/dist/FloatingActionMenu.js +646 -0
  53. package/dist/FloatingActionMenu.js.map +1 -0
  54. package/dist/Header.js +45 -117
  55. package/dist/Header.js.map +1 -1
  56. package/dist/HelpPopover.js +73 -0
  57. package/dist/HelpPopover.js.map +1 -0
  58. package/dist/IconPicker.js +36 -129
  59. package/dist/IconPicker.js.map +1 -1
  60. package/dist/ImageWithFallback.js +8 -144
  61. package/dist/ImageWithFallback.js.map +1 -1
  62. package/dist/InlineInput.js +22 -526
  63. package/dist/InlineInput.js.map +1 -1
  64. package/dist/Insights.js +304 -0
  65. package/dist/Insights.js.map +1 -0
  66. package/dist/IntegrationCard.js +42 -226
  67. package/dist/IntegrationCard.js.map +1 -1
  68. package/dist/IntegrationDisconnectAlert.js +6 -48
  69. package/dist/IntegrationDisconnectAlert.js.map +1 -1
  70. package/dist/IntegrationWalkthroughModal.js +10 -10
  71. package/dist/IntegrationWalkthroughModal.js.map +1 -1
  72. package/dist/IpRestriction.js +74 -221
  73. package/dist/IpRestriction.js.map +1 -1
  74. package/dist/KeyboardShortcuts.js +38 -128
  75. package/dist/KeyboardShortcuts.js.map +1 -1
  76. package/dist/LoginPage.js +39 -459
  77. package/dist/LoginPage.js.map +1 -1
  78. package/dist/MadeWith.js +32 -0
  79. package/dist/MadeWith.js.map +1 -0
  80. package/dist/MenuBar.js +34 -1295
  81. package/dist/MenuBar.js.map +1 -1
  82. package/dist/Metadata.js +65 -86
  83. package/dist/Metadata.js.map +1 -1
  84. package/dist/MoreDropdown.js +48 -107
  85. package/dist/MoreDropdown.js.map +1 -1
  86. package/dist/NavigationHeader.js +51 -730
  87. package/dist/NavigationHeader.js.map +1 -1
  88. package/dist/NeetoWidget.js +148 -316
  89. package/dist/NeetoWidget.js.map +1 -1
  90. package/dist/Onboarding.js +343 -0
  91. package/dist/Onboarding.js.map +1 -0
  92. package/dist/OptionFields.js +507 -0
  93. package/dist/OptionFields.js.map +1 -0
  94. package/dist/PageLoader.js +5 -48
  95. package/dist/PageLoader.js.map +1 -1
  96. package/dist/PhoneNumber.js +122 -201
  97. package/dist/PhoneNumber.js.map +1 -1
  98. package/dist/ProductEmbed.js +767 -0
  99. package/dist/ProductEmbed.js.map +1 -0
  100. package/dist/PublishBlock.js +19 -60
  101. package/dist/PublishBlock.js.map +1 -1
  102. package/dist/PublishYourItem.js +52 -0
  103. package/dist/PublishYourItem.js.map +1 -0
  104. package/dist/Rename.js +127 -394
  105. package/dist/Rename.js.map +1 -1
  106. package/dist/ResponsiveDevicePicker.js +7 -143
  107. package/dist/ResponsiveDevicePicker.js.map +1 -1
  108. package/dist/Schedule.js +131 -365
  109. package/dist/Schedule.js.map +1 -1
  110. package/dist/Scrollable.js +6 -89
  111. package/dist/Scrollable.js.map +1 -1
  112. package/dist/Search.js +54 -157
  113. package/dist/Search.js.map +1 -1
  114. package/dist/Security.js +72 -1567
  115. package/dist/Security.js.map +1 -1
  116. package/dist/SendToFields.js +51 -133
  117. package/dist/SendToFields.js.map +1 -1
  118. package/dist/Settings.js +141 -412
  119. package/dist/Settings.js.map +1 -1
  120. package/dist/ShareRecordingPane.js +189 -0
  121. package/dist/ShareRecordingPane.js.map +1 -0
  122. package/dist/ShareViaEmail.js +126 -551
  123. package/dist/ShareViaEmail.js.map +1 -1
  124. package/dist/ShareViaLink.js +127 -345
  125. package/dist/ShareViaLink.js.map +1 -1
  126. package/dist/Sidebar.js +161 -758
  127. package/dist/Sidebar.js.map +1 -1
  128. package/dist/SubHeader.js +63 -108
  129. package/dist/SubHeader.js.map +1 -1
  130. package/dist/SuffixedInput.js +105 -0
  131. package/dist/SuffixedInput.js.map +1 -0
  132. package/dist/TableWrapper.js +8 -9
  133. package/dist/TableWrapper.js.map +1 -1
  134. package/dist/Taxonomy.js +112 -1774
  135. package/dist/Taxonomy.js.map +1 -1
  136. package/dist/ThemeSidebar.js +159 -776
  137. package/dist/ThemeSidebar.js.map +1 -1
  138. package/dist/TimeFormat.js +8 -44
  139. package/dist/TimeFormat.js.map +1 -1
  140. package/dist/TimezoneMismatchModal.js +49 -84
  141. package/dist/TimezoneMismatchModal.js.map +1 -1
  142. package/dist/ToggleFeatureCard.js +46 -169
  143. package/dist/ToggleFeatureCard.js.map +1 -1
  144. package/dist/cjs/Breadcrumbs.js +49 -0
  145. package/dist/cjs/Breadcrumbs.js.map +1 -0
  146. package/dist/cjs/BrowserSupport.js +329 -0
  147. package/dist/cjs/BrowserSupport.js.map +1 -0
  148. package/dist/cjs/Builder.js +556 -0
  149. package/dist/cjs/Builder.js.map +1 -0
  150. package/dist/cjs/CalendarView.js +299 -0
  151. package/dist/cjs/CalendarView.js.map +1 -0
  152. package/dist/cjs/Chevron-8a4ed9cd.js +203 -0
  153. package/dist/cjs/Chevron-8a4ed9cd.js.map +1 -0
  154. package/dist/cjs/Codeblock.js +58 -0
  155. package/dist/cjs/Codeblock.js.map +1 -0
  156. package/dist/cjs/Columns.js +31 -0
  157. package/dist/cjs/Columns.js.map +1 -0
  158. package/dist/cjs/ConfigurePageSidebar.js +104 -0
  159. package/dist/cjs/ConfigurePageSidebar.js.map +1 -0
  160. package/dist/cjs/ConfirmationModal.js +120 -0
  161. package/dist/cjs/ConfirmationModal.js.map +1 -0
  162. package/dist/cjs/Container.js +36 -0
  163. package/dist/cjs/Container.js.map +1 -0
  164. package/dist/cjs/CopyToClipboardButton.js +86 -0
  165. package/dist/cjs/CopyToClipboardButton.js.map +1 -0
  166. package/dist/cjs/Currency.js +921 -0
  167. package/dist/cjs/Currency.js.map +1 -0
  168. package/dist/cjs/CustomDomain.js +125 -0
  169. package/dist/cjs/CustomDomain.js.map +1 -0
  170. package/dist/cjs/CustomDomainDashboard.js +200 -0
  171. package/dist/cjs/CustomDomainDashboard.js.map +1 -0
  172. package/dist/cjs/DateFormat.js +40 -0
  173. package/dist/cjs/DateFormat.js.map +1 -0
  174. package/dist/cjs/DateRangeFilter.js +180 -0
  175. package/dist/cjs/DateRangeFilter.js.map +1 -0
  176. package/dist/cjs/DeleteArchiveModal.js +92 -0
  177. package/dist/cjs/DeleteArchiveModal.js.map +1 -0
  178. package/dist/cjs/DocumentEditor.js +194 -0
  179. package/dist/cjs/DocumentEditor.js.map +1 -0
  180. package/dist/cjs/DownloadMobileAppCallout.js +45 -0
  181. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
  182. package/dist/cjs/DynamicVariables.js +106 -0
  183. package/dist/cjs/DynamicVariables.js.map +1 -0
  184. package/dist/cjs/EmailForm.js +395 -0
  185. package/dist/cjs/EmailForm.js.map +1 -0
  186. package/dist/cjs/EmailPreview.js +139 -0
  187. package/dist/cjs/EmailPreview.js.map +1 -0
  188. package/dist/cjs/EmojiPicker.js +75 -0
  189. package/dist/cjs/EmojiPicker.js.map +1 -0
  190. package/dist/cjs/EmojiReactions.js +76 -0
  191. package/dist/cjs/EmojiReactions.js.map +1 -0
  192. package/dist/cjs/ErrorPage.js +179 -0
  193. package/dist/cjs/ErrorPage.js.map +1 -0
  194. package/dist/cjs/FloatingActionMenu.js +675 -0
  195. package/dist/cjs/FloatingActionMenu.js.map +1 -0
  196. package/dist/cjs/Header.js +104 -0
  197. package/dist/cjs/Header.js.map +1 -0
  198. package/dist/cjs/HelpPopover.js +80 -0
  199. package/dist/cjs/HelpPopover.js.map +1 -0
  200. package/dist/cjs/IconPicker.js +228 -0
  201. package/dist/cjs/IconPicker.js.map +1 -0
  202. package/dist/cjs/ImageWithFallback.js +52 -0
  203. package/dist/cjs/ImageWithFallback.js.map +1 -0
  204. package/dist/cjs/InlineInput.js +233 -0
  205. package/dist/cjs/InlineInput.js.map +1 -0
  206. package/dist/cjs/Insights.js +310 -0
  207. package/dist/cjs/Insights.js.map +1 -0
  208. package/dist/cjs/IntegrationCard.js +208 -0
  209. package/dist/cjs/IntegrationCard.js.map +1 -0
  210. package/dist/cjs/IntegrationDisconnectAlert.js +48 -0
  211. package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -0
  212. package/dist/cjs/IntegrationWalkthroughModal.js +51 -0
  213. package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -0
  214. package/dist/cjs/IpRestriction.js +525 -0
  215. package/dist/cjs/IpRestriction.js.map +1 -0
  216. package/dist/cjs/KeyboardShortcuts.js +282 -0
  217. package/dist/cjs/KeyboardShortcuts.js.map +1 -0
  218. package/dist/cjs/LoginPage.js +198 -0
  219. package/dist/cjs/LoginPage.js.map +1 -0
  220. package/dist/cjs/MadeWith.js +38 -0
  221. package/dist/cjs/MadeWith.js.map +1 -0
  222. package/dist/cjs/MenuBar.js +208 -0
  223. package/dist/cjs/MenuBar.js.map +1 -0
  224. package/dist/cjs/Metadata.js +195 -0
  225. package/dist/cjs/Metadata.js.map +1 -0
  226. package/dist/cjs/MoreDropdown.js +152 -0
  227. package/dist/cjs/MoreDropdown.js.map +1 -0
  228. package/dist/cjs/NavigationHeader.js +177 -0
  229. package/dist/cjs/NavigationHeader.js.map +1 -0
  230. package/dist/cjs/NeetoWidget.js +912 -0
  231. package/dist/cjs/NeetoWidget.js.map +1 -0
  232. package/dist/cjs/Onboarding.js +357 -0
  233. package/dist/cjs/Onboarding.js.map +1 -0
  234. package/dist/cjs/OptionFields.js +514 -0
  235. package/dist/cjs/OptionFields.js.map +1 -0
  236. package/dist/cjs/PageLoader.js +116 -0
  237. package/dist/cjs/PageLoader.js.map +1 -0
  238. package/dist/cjs/PhoneNumber.js +363 -0
  239. package/dist/cjs/PhoneNumber.js.map +1 -0
  240. package/dist/cjs/ProductEmbed.js +774 -0
  241. package/dist/cjs/ProductEmbed.js.map +1 -0
  242. package/dist/cjs/PublishBlock.js +125 -0
  243. package/dist/cjs/PublishBlock.js.map +1 -0
  244. package/dist/cjs/PublishYourItem.js +59 -0
  245. package/dist/cjs/PublishYourItem.js.map +1 -0
  246. package/dist/cjs/Rename.js +350 -0
  247. package/dist/cjs/Rename.js.map +1 -0
  248. package/dist/cjs/ResponsiveDevicePicker.js +64 -0
  249. package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
  250. package/dist/cjs/Schedule.js +889 -0
  251. package/dist/cjs/Schedule.js.map +1 -0
  252. package/dist/cjs/Scrollable.js +46 -0
  253. package/dist/cjs/Scrollable.js.map +1 -0
  254. package/dist/cjs/Search.js +117 -0
  255. package/dist/cjs/Search.js.map +1 -0
  256. package/dist/cjs/Security.js +376 -0
  257. package/dist/cjs/Security.js.map +1 -0
  258. package/dist/cjs/SendToFields.js +272 -0
  259. package/dist/cjs/SendToFields.js.map +1 -0
  260. package/dist/cjs/Settings.js +214 -0
  261. package/dist/cjs/Settings.js.map +1 -0
  262. package/dist/cjs/ShareRecordingPane.js +195 -0
  263. package/dist/cjs/ShareRecordingPane.js.map +1 -0
  264. package/dist/cjs/ShareViaEmail.js +348 -0
  265. package/dist/cjs/ShareViaEmail.js.map +1 -0
  266. package/dist/cjs/ShareViaLink.js +507 -0
  267. package/dist/cjs/ShareViaLink.js.map +1 -0
  268. package/dist/cjs/Sidebar.js +288 -0
  269. package/dist/cjs/Sidebar.js.map +1 -0
  270. package/dist/cjs/SubHeader.js +178 -0
  271. package/dist/cjs/SubHeader.js.map +1 -0
  272. package/dist/cjs/SuffixedInput.js +111 -0
  273. package/dist/cjs/SuffixedInput.js.map +1 -0
  274. package/dist/cjs/TableWrapper.js +32 -0
  275. package/dist/cjs/TableWrapper.js.map +1 -0
  276. package/dist/cjs/Taxonomy.js +442 -0
  277. package/dist/cjs/Taxonomy.js.map +1 -0
  278. package/dist/cjs/ThemeSidebar.js +1436 -0
  279. package/dist/cjs/ThemeSidebar.js.map +1 -0
  280. package/dist/cjs/TimeFormat.js +15 -0
  281. package/dist/cjs/TimeFormat.js.map +1 -0
  282. package/dist/cjs/TimezoneMismatchModal.js +143 -0
  283. package/dist/cjs/TimezoneMismatchModal.js.map +1 -0
  284. package/dist/cjs/ToggleFeatureCard.js +209 -0
  285. package/dist/cjs/ToggleFeatureCard.js.map +1 -0
  286. package/dist/cjs/defineProperty-886ed289.js +47 -0
  287. package/dist/cjs/defineProperty-886ed289.js.map +1 -0
  288. package/dist/cjs/extends-1b35a664.js +19 -0
  289. package/dist/cjs/extends-1b35a664.js.map +1 -0
  290. package/dist/cjs/index-00fdb8c2.js +542 -0
  291. package/dist/cjs/index-00fdb8c2.js.map +1 -0
  292. package/dist/cjs/index-248c4f4c.js +1186 -0
  293. package/dist/cjs/index-248c4f4c.js.map +1 -0
  294. package/dist/cjs/index-c55ad2bc.js +375 -0
  295. package/dist/cjs/index-c55ad2bc.js.map +1 -0
  296. package/dist/cjs/inject-css-80a5faa3.js +6 -0
  297. package/dist/cjs/inject-css-80a5faa3.js.map +1 -0
  298. package/dist/cjs/objectWithoutProperties-2fed2d7d.js +33 -0
  299. package/dist/cjs/objectWithoutProperties-2fed2d7d.js.map +1 -0
  300. package/dist/cjs/slicedToArray-f320d9e7.js +61 -0
  301. package/dist/cjs/slicedToArray-f320d9e7.js.map +1 -0
  302. package/dist/cjs/toConsumableArray-9abb3858.js +22 -0
  303. package/dist/cjs/toConsumableArray-9abb3858.js.map +1 -0
  304. package/dist/cjs/useColumns-a1c3668f.js +271 -0
  305. package/dist/cjs/useColumns-a1c3668f.js.map +1 -0
  306. package/dist/defineProperty-549061a7.js +43 -0
  307. package/dist/defineProperty-549061a7.js.map +1 -0
  308. package/dist/extends-093996c9.js +17 -0
  309. package/dist/extends-093996c9.js.map +1 -0
  310. package/dist/index-90c89467.js +509 -0
  311. package/dist/index-90c89467.js.map +1 -0
  312. package/dist/index-9720867c.js +372 -0
  313. package/dist/index-9720867c.js.map +1 -0
  314. package/dist/index-e5588516.js +1184 -0
  315. package/dist/index-e5588516.js.map +1 -0
  316. package/dist/inject-css-c86de496.js +4 -0
  317. package/dist/inject-css-c86de496.js.map +1 -0
  318. package/dist/objectWithoutProperties-a0edb288.js +31 -0
  319. package/dist/objectWithoutProperties-a0edb288.js.map +1 -0
  320. package/dist/slicedToArray-b4278ecd.js +57 -0
  321. package/dist/slicedToArray-b4278ecd.js.map +1 -0
  322. package/dist/toConsumableArray-1cc38429.js +20 -0
  323. package/dist/toConsumableArray-1cc38429.js.map +1 -0
  324. package/dist/useColumns-d17d1f72.js +258 -0
  325. package/dist/useColumns-d17d1f72.js.map +1 -0
  326. package/package.json +29 -17
  327. package/src/translations/de.json +7 -0
  328. package/src/translations/en.json +191 -31
  329. package/src/translations/es.json +7 -0
  330. package/src/translations/fr.json +7 -0
  331. package/src/translations/nl.json +7 -0
  332. package/src/translations/pl.json +7 -0
  333. package/src/translations/pt.json +7 -0
  334. package/types/Breadcrumbs.d.ts +1 -0
  335. package/types/Builder.d.ts +61 -12
  336. package/types/Columns.d.ts +112 -5
  337. package/types/ConfigurePageSidebar.d.ts +43 -0
  338. package/types/CopyToClipboardButton.d.ts +3 -0
  339. package/types/Currency.d.ts +48 -0
  340. package/types/CustomDomain.d.ts +2 -0
  341. package/types/CustomDomainDashboard.d.ts +14 -0
  342. package/types/DateRangeFilter.d.ts +2 -0
  343. package/types/DeleteArchiveModal.d.ts +60 -0
  344. package/types/EmailForm.d.ts +1 -1
  345. package/types/EmojiPicker.d.ts +33 -0
  346. package/types/EmojiReactions.d.ts +60 -0
  347. package/types/ErrorPage.d.ts +1 -0
  348. package/types/FloatingActionMenu.d.ts +56 -0
  349. package/types/Header.d.ts +2 -1
  350. package/types/HelpPopover.d.ts +42 -0
  351. package/types/Insights.d.ts +108 -0
  352. package/types/IntegrationCard.d.ts +2 -0
  353. package/types/KeyboardShortcuts.d.ts +2 -2
  354. package/types/MadeWith.d.ts +16 -0
  355. package/types/MoreDropdown.d.ts +4 -1
  356. package/types/NavigationHeader.d.ts +3 -1
  357. package/types/Onboarding.d.ts +63 -0
  358. package/types/OptionFields.d.ts +63 -0
  359. package/types/PhoneNumber.d.ts +6 -2
  360. package/types/ProductEmbed.d.ts +43 -0
  361. package/types/Rename.d.ts +4 -1
  362. package/types/Schedule.d.ts +2 -0
  363. package/types/Search.d.ts +2 -0
  364. package/types/Settings.d.ts +13 -10
  365. package/types/ShareRecordingPane.d.ts +50 -0
  366. package/types/ShareViaLink.d.ts +15 -4
  367. package/types/Sidebar.d.ts +16 -32
  368. package/types/SubHeader.d.ts +0 -1
  369. package/types/SuffixedInput.d.ts +43 -0
  370. package/types/ToggleFeatureCard.d.ts +8 -1
@@ -0,0 +1,767 @@
1
+ import { _ as _defineProperty } from './defineProperty-549061a7.js';
2
+ import { _ as _slicedToArray } from './slicedToArray-b4278ecd.js';
3
+ import React__default, { useState, useEffect } from 'react';
4
+ import classnames from 'classnames';
5
+ import { Code as Code$1, Eye, Delete, Plus, LeftArrow } from '@bigbinary/neeto-icons';
6
+ import { Label, Input, Button, Typography, Callout, Checkbox, Select, ColorPicker, Tab, Radio, Spinner } from '@bigbinary/neetoui';
7
+ import { mergeDeepLeft, toPairs, isEmpty, mergeLeft } from 'ramda';
8
+ import { useTranslation } from 'react-i18next';
9
+ import Codeblock from './Codeblock.js';
10
+ import { t } from 'i18next';
11
+ import { _ as _toConsumableArray } from './toConsumableArray-1cc38429.js';
12
+ import { n } from './inject-css-c86de496.js';
13
+ import './extends-093996c9.js';
14
+ import 'react-syntax-highlighter';
15
+ import 'react-syntax-highlighter/dist/esm/styles/prism';
16
+ import './CopyToClipboardButton.js';
17
+ import './objectWithoutProperties-a0edb288.js';
18
+ import '@bigbinary/neeto-commons-frontend/utils/general';
19
+
20
+ var Code = function Code(_ref) {
21
+ var code = _ref.code;
22
+ return /*#__PURE__*/React__default.createElement("div", {
23
+ className: "relative w-full overflow-y-auto",
24
+ "data-cy": "embed-code-block",
25
+ "data-testid": "embed-code-block"
26
+ }, /*#__PURE__*/React__default.createElement(Codeblock, {
27
+ code: code
28
+ }));
29
+ };
30
+
31
+ var TAB_KEYS = {
32
+ HTML: "html",
33
+ PREVIEW: "preview"
34
+ };
35
+ var TABS = [{
36
+ key: TAB_KEYS.HTML,
37
+ label: t("neetoMolecules.productEmbed.tab.html"),
38
+ icon: Code$1
39
+ }, {
40
+ key: TAB_KEYS.PREVIEW,
41
+ label: t("neetoMolecules.productEmbed.tab.preview"),
42
+ icon: Eye
43
+ }];
44
+ var EMBED_OPTIONS = {
45
+ INLINE: "inline",
46
+ FLOATING_POPUP: "floatingPopup",
47
+ ELEMENT_POPUP: "elementPopup"
48
+ };
49
+ var DEFAULT_CUSTOMIZATION = _defineProperty(_defineProperty(_defineProperty({}, EMBED_OPTIONS.INLINE, {
50
+ width: 100,
51
+ height: 100,
52
+ elementSelector: "inline-embed-container"
53
+ }), EMBED_OPTIONS.FLOATING_POPUP, {
54
+ showIcon: false,
55
+ btnText: "Open",
56
+ btnColor: "#6f14ed",
57
+ btnTextColor: "#fff",
58
+ btnPosition: "bottomRight"
59
+ }), EMBED_OPTIONS.ELEMENT_POPUP, {
60
+ elementSelector: "open-popup-button"
61
+ });
62
+ var SCRIPT_ID = "embed-script";
63
+
64
+ var FLOATING_BUTTON_POSITIONS = [{
65
+ label: t("neetoMolecules.productEmbed.customization.position.bottomLeft"),
66
+ value: "bottomLeft"
67
+ }, {
68
+ label: t("neetoMolecules.productEmbed.customization.position.bottomRight"),
69
+ value: "bottomRight"
70
+ }];
71
+ var INITIAL_QUERY_PARAM = {
72
+ name: "",
73
+ value: ""
74
+ };
75
+
76
+ var embedBaseScript = function embedBaseScript(embedScriptLink) {
77
+ return "<script>window.".concat(globalProps.appName, " = window.").concat(globalProps.appName, " || { embed: function(){(").concat(globalProps.appName, ".q=").concat(globalProps.appName, ".q||[]).push(arguments)} };</script>\n <script async\n src=\"").concat(embedScriptLink, "\">\n </script>");
78
+ };
79
+ var embedEnv = function embedEnv() {
80
+ return globalProps.railsEnv !== "production" ? "\n\t env: \"".concat(globalProps.railsEnv, "\",") : "";
81
+ };
82
+ var embedQueryParam = function embedQueryParam(queryParams) {
83
+ return queryParams ? "\n\t queryParams: ".concat(queryParams, ",") : "";
84
+ };
85
+ var parseExtraArgs = function parseExtraArgs(extraArgs) {
86
+ return toPairs(extraArgs).map(function (_ref) {
87
+ var _ref2 = _slicedToArray(_ref, 2),
88
+ key = _ref2[0],
89
+ value = _ref2[1];
90
+ return "\n\t ".concat(key, ": \"").concat(value, "\"");
91
+ });
92
+ };
93
+ var inlineEmbedCode = function inlineEmbedCode(_ref3) {
94
+ var customization = _ref3.customization,
95
+ id = _ref3.id,
96
+ embedScriptLink = _ref3.embedScriptLink,
97
+ extraArgs = _ref3.extraArgs;
98
+ var elementSelector = customization.elementSelector,
99
+ _customization$width = customization.width,
100
+ width = _customization$width === void 0 ? 100 : _customization$width,
101
+ _customization$height = customization.height,
102
+ height = _customization$height === void 0 ? 100 : _customization$height,
103
+ queryParams = customization.queryParams;
104
+ return "\n <!-- ".concat(globalProps.appName, " inline embed code begins -->\n <div style=\"min-width: 90vw; height: 90vh;\" id=\"").concat(elementSelector, "\">\n <!-- ").concat(globalProps.appName, " widget will be added here -->\n </div>\n ").concat(embedBaseScript(embedScriptLink), "\n <script>\n ").concat(globalProps.appName, ".embed({\n type: \"inline\",\n id: \"").concat(id, "\",\n organization: \"").concat(globalProps.organization.subdomain, "\",\n elementSelector: \"#").concat(elementSelector, "\",\n styles: { height: \"").concat(height, "%\", width: \"").concat(width, "%\"},").concat(embedQueryParam(queryParams)).concat(embedEnv()).concat(parseExtraArgs(extraArgs), "\n });\n </script>\n <!-- ").concat(globalProps.appName, " inline embed code ends -->");
105
+ };
106
+ var floatingPopupEmbedCode = function floatingPopupEmbedCode(_ref4) {
107
+ var customization = _ref4.customization,
108
+ id = _ref4.id,
109
+ embedScriptLink = _ref4.embedScriptLink,
110
+ extraArgs = _ref4.extraArgs;
111
+ var btnTextColor = customization.btnTextColor,
112
+ showIcon = customization.showIcon,
113
+ btnText = customization.btnText,
114
+ btnPosition = customization.btnPosition,
115
+ btnColor = customization.btnColor,
116
+ icon = customization.icon,
117
+ queryParams = customization.queryParams;
118
+ return "\n <!-- ".concat(globalProps.appName, " floating-popup embed code begins -->\n ").concat(embedBaseScript(embedScriptLink), "\n <script>\n ").concat(globalProps.appName, ".embed({\n type: \"floatingPopup\",\n id: \"").concat(id, "\",\n organization: \"").concat(globalProps.organization.subdomain, "\",\n styles: {\n btnTextColor: \"").concat(btnTextColor, "\",\n btnPosition: \"").concat(btnPosition, "\",\n btnColor: \"").concat(btnColor, "\",\n btnText: \"").concat(btnText, "\", ").concat(icon ? "\n\t\tshowIcon: ".concat(showIcon, ",") : "", "\n },").concat(embedQueryParam(queryParams)).concat(embedEnv()).concat(parseExtraArgs(extraArgs), "\n });\n </script>\n <!-- ").concat(globalProps.appName, " floating-popup embed code ends -->");
119
+ };
120
+ var elementPopupEmbedCode = function elementPopupEmbedCode(_ref5) {
121
+ var customization = _ref5.customization,
122
+ id = _ref5.id,
123
+ embedScriptLink = _ref5.embedScriptLink,
124
+ extraArgs = _ref5.extraArgs;
125
+ var elementSelector = customization.elementSelector,
126
+ queryParams = customization.queryParams;
127
+ return "\n <!-- ".concat(globalProps.appName, " element-click embed code begins -->\n ").concat(embedBaseScript(embedScriptLink), "\n <script>\n ").concat(globalProps.appName, ".embed({\n type: \"elementClick\",\n id: \"").concat(id, "\",\n organization: \"").concat(globalProps.organization.subdomain, "\",\n elementSelector: \"#").concat(elementSelector, "\",").concat(embedQueryParam(queryParams)).concat(embedEnv()).concat(parseExtraArgs(extraArgs), "\n });\n </script>\n <!-- ").concat(globalProps.appName, " element-click embed code ends -->");
128
+ };
129
+ var embedCode = function embedCode(_ref6) {
130
+ var type = _ref6.type,
131
+ customization = _ref6.customization,
132
+ id = _ref6.id,
133
+ embedScriptLink = _ref6.embedScriptLink,
134
+ _ref6$extraArgs = _ref6.extraArgs,
135
+ extraArgs = _ref6$extraArgs === void 0 ? {} : _ref6$extraArgs;
136
+ switch (type) {
137
+ case "inline":
138
+ return inlineEmbedCode({
139
+ customization: customization,
140
+ id: id,
141
+ embedScriptLink: embedScriptLink,
142
+ extraArgs: extraArgs
143
+ });
144
+ case "floatingPopup":
145
+ return floatingPopupEmbedCode({
146
+ customization: customization,
147
+ id: id,
148
+ embedScriptLink: embedScriptLink,
149
+ extraArgs: extraArgs
150
+ });
151
+ case "elementPopup":
152
+ return elementPopupEmbedCode({
153
+ customization: customization,
154
+ id: id,
155
+ embedScriptLink: embedScriptLink,
156
+ extraArgs: extraArgs
157
+ });
158
+ default:
159
+ return "";
160
+ }
161
+ };
162
+ var buildDefaultCustomization = function buildDefaultCustomization(defaultCustomizations) {
163
+ return mergeDeepLeft(defaultCustomizations, DEFAULT_CUSTOMIZATION);
164
+ };
165
+ var buildQueryParamsFromInputFields = function buildQueryParamsFromInputFields(inputFields) {
166
+ var filteredInputFields = inputFields.filter(function (_ref7) {
167
+ var name = _ref7.name,
168
+ value = _ref7.value;
169
+ return name && value;
170
+ });
171
+ var queryParams = filteredInputFields.reduce(function (queryParams, _ref8) {
172
+ var name = _ref8.name,
173
+ value = _ref8.value;
174
+ queryParams[name] = value;
175
+ return queryParams;
176
+ }, {});
177
+ if (isEmpty(queryParams)) return "";
178
+ var queryParamJsonString = JSON.stringify(queryParams, null, 2);
179
+ return queryParamJsonString.replace(/"([^"]+)":/g, "$1: ").replace(/\n/g, " ").replace(/\s\s+/g, " ");
180
+ };
181
+
182
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
183
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
184
+ var DynamicQueryParams = function DynamicQueryParams(_ref) {
185
+ var updateCustomization = _ref.updateCustomization;
186
+ var _useTranslation = useTranslation(),
187
+ t = _useTranslation.t;
188
+ var _useState = useState([INITIAL_QUERY_PARAM]),
189
+ _useState2 = _slicedToArray(_useState, 2),
190
+ queryParams = _useState2[0],
191
+ setQueryParams = _useState2[1];
192
+ var handleAddQueryParam = function handleAddQueryParam() {
193
+ setQueryParams([].concat(_toConsumableArray(queryParams), [INITIAL_QUERY_PARAM]));
194
+ };
195
+ var handleRemoveQueryParam = function handleRemoveQueryParam(index) {
196
+ var newQueryParams = queryParams.filter(function (_, i) {
197
+ return i !== index;
198
+ });
199
+ setQueryParams(newQueryParams);
200
+ };
201
+ var handleInputChange = function handleInputChange(index, field, value) {
202
+ var newQueryParams = queryParams.map(function (param, i) {
203
+ return i === index ? _objectSpread$1(_objectSpread$1({}, param), {}, _defineProperty({}, field, value)) : param;
204
+ });
205
+ setQueryParams(newQueryParams);
206
+ };
207
+ useEffect(function () {
208
+ updateCustomization({
209
+ queryParams: buildQueryParamsFromInputFields(queryParams)
210
+ });
211
+ }, [queryParams]);
212
+ return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Label, {
213
+ className: "mb-2",
214
+ "data-cy": "dynamic-query-params-label"
215
+ }, t("neetoMolecules.productEmbed.customization.queryParam.label")), queryParams.map(function (param, index) {
216
+ return /*#__PURE__*/React__default.createElement("div", {
217
+ className: "mb-1 flex gap-1",
218
+ key: index
219
+ }, /*#__PURE__*/React__default.createElement(Input, {
220
+ "data-cy": "dynamic-query-key-name-input",
221
+ "data-testid": "dynamic-query-key-name-input",
222
+ name: "queryParams.".concat(index, ".name"),
223
+ value: param.name,
224
+ placeholder: t("neetoMolecules.productEmbed.customization.queryParam.keyNamePlaceholder"),
225
+ onChange: function onChange(e) {
226
+ return handleInputChange(index, "name", e.target.value);
227
+ }
228
+ }), /*#__PURE__*/React__default.createElement(Input, {
229
+ "data-cy": "dynamic-query-key-value-input",
230
+ "data-testid": "dynamic-query-key-value-input",
231
+ name: "queryParams.".concat(index, ".value"),
232
+ value: param.value,
233
+ placeholder: t("neetoMolecules.productEmbed.customization.queryParam.keyValuePlaceholder"),
234
+ onChange: function onChange(e) {
235
+ return handleInputChange(index, "value", e.target.value);
236
+ }
237
+ }), /*#__PURE__*/React__default.createElement(Button, {
238
+ "data-cy": "dynamic-query-delete-button",
239
+ icon: Delete,
240
+ style: "text",
241
+ onClick: function onClick() {
242
+ return handleRemoveQueryParam(index);
243
+ }
244
+ }));
245
+ }), /*#__PURE__*/React__default.createElement(Button, {
246
+ className: "my-2",
247
+ "data-cy": "dynamic-query-add-new-button",
248
+ icon: Plus,
249
+ iconPosition: "left",
250
+ style: "link",
251
+ label: t("neetoMolecules.productEmbed.customization.queryParam.addQueryParam"),
252
+ onClick: handleAddQueryParam
253
+ }));
254
+ };
255
+
256
+ var ElementPopup$1 = function ElementPopup(_ref) {
257
+ var customization = _ref.customization,
258
+ updateCustomization = _ref.updateCustomization,
259
+ isQueryParamsEnabled = _ref.isQueryParamsEnabled;
260
+ var elementSelector = customization.elementSelector;
261
+ var _useTranslation = useTranslation(),
262
+ t = _useTranslation.t;
263
+ useEffect(function () {
264
+ if (isQueryParamsEnabled) return;
265
+ updateCustomization({
266
+ queryParams: undefined
267
+ });
268
+ }, []);
269
+ return /*#__PURE__*/React__default.createElement("div", {
270
+ className: "space-y-6"
271
+ }, /*#__PURE__*/React__default.createElement(Typography, {
272
+ "data-cy": "element-popup-header",
273
+ style: "h4"
274
+ }, t("neetoMolecules.productEmbed.customization.elementPopup.title")), /*#__PURE__*/React__default.createElement(Callout, {
275
+ "data-cy": "element-popup-description"
276
+ }, t("neetoMolecules.productEmbed.customization.elementPopup.description")), /*#__PURE__*/React__default.createElement(Input, {
277
+ className: "w-full",
278
+ "data-cy": "element-id-input-field",
279
+ "data-testid": "element-id-input-field",
280
+ value: elementSelector,
281
+ error: !elementSelector && t("neetoMolecules.productEmbed.customization.elementPopup.warning"),
282
+ label: t("neetoMolecules.productEmbed.customization.elementPopup.elementId"),
283
+ onChange: function onChange(e) {
284
+ return updateCustomization({
285
+ elementSelector: e.target.value
286
+ });
287
+ }
288
+ }), isQueryParamsEnabled && /*#__PURE__*/React__default.createElement(DynamicQueryParams, {
289
+ updateCustomization: updateCustomization
290
+ }));
291
+ };
292
+
293
+ var FloatingPopup$1 = function FloatingPopup(_ref) {
294
+ var customization = _ref.customization,
295
+ updateCustomization = _ref.updateCustomization,
296
+ isQueryParamsEnabled = _ref.isQueryParamsEnabled;
297
+ var _useTranslation = useTranslation(),
298
+ t = _useTranslation.t;
299
+ var btnTextColor = customization.btnTextColor,
300
+ showIcon = customization.showIcon,
301
+ btnText = customization.btnText,
302
+ btnPosition = customization.btnPosition,
303
+ btnColor = customization.btnColor,
304
+ icon = customization.icon;
305
+ useEffect(function () {
306
+ if (isQueryParamsEnabled) return;
307
+ updateCustomization({
308
+ queryParams: undefined
309
+ });
310
+ }, []);
311
+ return /*#__PURE__*/React__default.createElement("div", {
312
+ className: "space-y-6"
313
+ }, /*#__PURE__*/React__default.createElement(Typography, {
314
+ "data-cy": "popup-customization-header",
315
+ style: "h4"
316
+ }, t("neetoMolecules.productEmbed.customization.floatingPopup.title")), icon && /*#__PURE__*/React__default.createElement(Checkbox, {
317
+ checked: showIcon,
318
+ "data-cy": "show-icon-checkbox",
319
+ "data-testid": "show-icon-checkbox",
320
+ label: t("neetoMolecules.productEmbed.customization.floatingPopup.showCalIcon"),
321
+ onChange: function onChange(e) {
322
+ return updateCustomization({
323
+ showIcon: e.target.checked
324
+ });
325
+ }
326
+ }), /*#__PURE__*/React__default.createElement("div", {
327
+ className: "space-y-2"
328
+ }, /*#__PURE__*/React__default.createElement(Input, {
329
+ "data-cy": "button-text-input-field",
330
+ "data-testid": "button-text-input-field",
331
+ value: btnText,
332
+ label: t("neetoMolecules.productEmbed.customization.floatingPopup.button.text"),
333
+ onChange: function onChange(e) {
334
+ return updateCustomization({
335
+ btnText: e.target.value
336
+ });
337
+ }
338
+ })), /*#__PURE__*/React__default.createElement("div", {
339
+ className: "space-y-2"
340
+ }, /*#__PURE__*/React__default.createElement(Select, {
341
+ "data-cy": "button-position-select-field",
342
+ "data-testid": "button-position-select-field",
343
+ options: FLOATING_BUTTON_POSITIONS,
344
+ value: btnPosition,
345
+ getOptionValue: function getOptionValue(option) {
346
+ return typeof option === "string" ? option : option.value;
347
+ },
348
+ label: t("neetoMolecules.productEmbed.customization.floatingPopup.button.pos"),
349
+ onChange: function onChange(e) {
350
+ return updateCustomization({
351
+ btnPosition: e.value
352
+ });
353
+ }
354
+ })), /*#__PURE__*/React__default.createElement("div", {
355
+ className: "flex items-center justify-between gap-x-2",
356
+ "data-cy": "button-color-label"
357
+ }, /*#__PURE__*/React__default.createElement(Label, null, t("neetoMolecules.productEmbed.customization.floatingPopup.button.color")), /*#__PURE__*/React__default.createElement(ColorPicker, {
358
+ color: btnColor,
359
+ onChange: function onChange(e) {
360
+ return updateCustomization({
361
+ btnColor: e.hex
362
+ });
363
+ }
364
+ })), /*#__PURE__*/React__default.createElement("div", {
365
+ className: "flex items-center justify-between gap-x-2",
366
+ "data-cy": "button-text-color-label"
367
+ }, /*#__PURE__*/React__default.createElement(Label, null, t("neetoMolecules.productEmbed.customization.floatingPopup.button.textColor")), /*#__PURE__*/React__default.createElement(ColorPicker, {
368
+ color: btnTextColor,
369
+ onChange: function onChange(e) {
370
+ return updateCustomization({
371
+ btnTextColor: e.hex
372
+ });
373
+ }
374
+ })), isQueryParamsEnabled && /*#__PURE__*/React__default.createElement(DynamicQueryParams, {
375
+ updateCustomization: updateCustomization
376
+ }));
377
+ };
378
+
379
+ var Inline$1 = function Inline(_ref) {
380
+ var customization = _ref.customization,
381
+ updateCustomization = _ref.updateCustomization,
382
+ isQueryParamsEnabled = _ref.isQueryParamsEnabled;
383
+ var height = customization.height,
384
+ width = customization.width,
385
+ elementSelector = customization.elementSelector;
386
+ var _useTranslation = useTranslation(),
387
+ t = _useTranslation.t;
388
+ var handleInputChange = function handleInputChange(_ref2, attribute) {
389
+ var value = _ref2.target.value;
390
+ return updateCustomization(_defineProperty({}, attribute, value));
391
+ };
392
+ useEffect(function () {
393
+ if (isQueryParamsEnabled) return;
394
+ updateCustomization({
395
+ queryParams: undefined
396
+ });
397
+ }, []);
398
+ return /*#__PURE__*/React__default.createElement("div", {
399
+ className: "flex flex-col gap-y-6"
400
+ }, /*#__PURE__*/React__default.createElement(Typography, {
401
+ "data-cy": "customization-text",
402
+ style: "h4"
403
+ }, t("neetoMolecules.productEmbed.customization.inline.title")), /*#__PURE__*/React__default.createElement("div", {
404
+ className: "flex flex-col gap-2"
405
+ }, /*#__PURE__*/React__default.createElement(Label, {
406
+ "data-cy": "window-size-text"
407
+ }, t("neetoMolecules.productEmbed.customization.inline.sizeOfEmbedWindow")), /*#__PURE__*/React__default.createElement("div", {
408
+ className: "flex justify-between gap-x-2"
409
+ }, /*#__PURE__*/React__default.createElement(Input, {
410
+ className: "neeto-molecules-product-embed-size-input",
411
+ "data-cy": "inline-width-input-field",
412
+ "data-testid": "inline-width-input-field",
413
+ max: 100,
414
+ min: 0,
415
+ prefix: "W",
416
+ suffix: "%",
417
+ type: "number",
418
+ value: width,
419
+ onChange: function onChange(e) {
420
+ return handleInputChange(e, "width");
421
+ }
422
+ }), /*#__PURE__*/React__default.createElement(Input, {
423
+ className: "neeto-molecules-product-embed-size-input",
424
+ "data-cy": "inline-height-input-field",
425
+ "data-testid": "inline-height-input-field",
426
+ max: 100,
427
+ min: 0,
428
+ prefix: "H",
429
+ suffix: "%",
430
+ type: "number",
431
+ value: height,
432
+ onChange: function onChange(e) {
433
+ return handleInputChange(e, "height");
434
+ }
435
+ }))), /*#__PURE__*/React__default.createElement("div", {
436
+ className: "flex flex-col gap-2"
437
+ }, /*#__PURE__*/React__default.createElement(Label, {
438
+ "data-cy": "inline-element-id-input-label"
439
+ }, t("neetoMolecules.productEmbed.customization.inline.elementId")), /*#__PURE__*/React__default.createElement(Input, {
440
+ "data-cy": "inline-element-id-input-field",
441
+ "data-testid": "inline-element-id-input-field",
442
+ value: elementSelector,
443
+ onChange: function onChange(e) {
444
+ return handleInputChange(e, "elementSelector");
445
+ }
446
+ })), isQueryParamsEnabled && /*#__PURE__*/React__default.createElement(DynamicQueryParams, {
447
+ updateCustomization: updateCustomization
448
+ }));
449
+ };
450
+
451
+ var Customization = function Customization(_ref) {
452
+ var option = _ref.option,
453
+ customization = _ref.customization,
454
+ updateCustomization = _ref.updateCustomization,
455
+ isQueryParamsEnabled = _ref.isQueryParamsEnabled;
456
+ var type = _defineProperty(_defineProperty(_defineProperty({}, EMBED_OPTIONS.INLINE, Inline$1), EMBED_OPTIONS.FLOATING_POPUP, FloatingPopup$1), EMBED_OPTIONS.ELEMENT_POPUP, ElementPopup$1);
457
+ var Component = type[option];
458
+ return /*#__PURE__*/React__default.createElement(Component, {
459
+ customization: customization,
460
+ isQueryParamsEnabled: isQueryParamsEnabled,
461
+ updateCustomization: updateCustomization
462
+ });
463
+ };
464
+
465
+ var Header = function Header(_ref) {
466
+ var tab = _ref.tab,
467
+ setTab = _ref.setTab;
468
+ return /*#__PURE__*/React__default.createElement("div", {
469
+ className: "flex w-full pt-2"
470
+ }, /*#__PURE__*/React__default.createElement(Tab, {
471
+ noUnderline: true,
472
+ className: "neeto-molecules-product-embed-tab"
473
+ }, TABS.map(function (_ref2) {
474
+ var key = _ref2.key,
475
+ label = _ref2.label,
476
+ icon = _ref2.icon;
477
+ return /*#__PURE__*/React__default.createElement(Tab.Item, {
478
+ icon: icon,
479
+ active: tab === key,
480
+ "data-cy": "".concat(key, "-tab"),
481
+ "data-testid": "".concat(key, "-tab"),
482
+ key: key,
483
+ onClick: function onClick() {
484
+ return setTab(key);
485
+ }
486
+ }, label);
487
+ })));
488
+ };
489
+
490
+ var Options = function Options(_ref) {
491
+ var options = _ref.options,
492
+ selectedOption = _ref.selectedOption,
493
+ setSelectedOption = _ref.setSelectedOption;
494
+ return /*#__PURE__*/React__default.createElement(Radio, {
495
+ stacked: true,
496
+ containerClassName: "w-full flex flex-col gap-y-6",
497
+ name: "options"
498
+ }, Object.entries(options).map(function (_ref2) {
499
+ var _ref3 = _slicedToArray(_ref2, 2),
500
+ key = _ref3[0],
501
+ _ref3$ = _ref3[1],
502
+ label = _ref3$.label,
503
+ description = _ref3$.description;
504
+ return /*#__PURE__*/React__default.createElement("label", {
505
+ className: "neeto-ui-border-gray-300 neeto-ui-bg-white neeto-ui-rounded-lg w-full cursor-pointer border p-4",
506
+ "data-cy": "".concat(key, "-embed-option-label"),
507
+ "data-testid": "".concat(key, "-embed-option-label"),
508
+ htmlFor: key,
509
+ key: key
510
+ }, /*#__PURE__*/React__default.createElement("div", {
511
+ className: "flex items-center"
512
+ }, /*#__PURE__*/React__default.createElement(Radio.Item, {
513
+ label: label,
514
+ checked: key === selectedOption,
515
+ className: "mb-0",
516
+ "data-cy": "".concat(key, "-embed-radio-button"),
517
+ "data-testid": "".concat(key, "-embed-radio-button"),
518
+ id: key,
519
+ name: "options",
520
+ value: key,
521
+ onChange: function onChange(event) {
522
+ return setSelectedOption(event.target.value);
523
+ }
524
+ })), /*#__PURE__*/React__default.createElement(Typography, {
525
+ className: "w-full pl-6 pt-1",
526
+ "data-cy": "".concat(key, "-embed-option-description"),
527
+ style: "body2"
528
+ }, description));
529
+ }));
530
+ };
531
+
532
+ var BrowserIcon = function BrowserIcon() {
533
+ return /*#__PURE__*/React__default.createElement("svg", {
534
+ fill: "none",
535
+ height: "12",
536
+ viewBox: "0 0 52 12",
537
+ width: "52",
538
+ xmlns: "http://www.w3.org/2000/svg"
539
+ }, /*#__PURE__*/React__default.createElement("path", {
540
+ d: "M11.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
541
+ fill: "#FF5F57",
542
+ stroke: "#E14640"
543
+ }), /*#__PURE__*/React__default.createElement("path", {
544
+ d: "M31.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
545
+ fill: "#FFBD2E",
546
+ stroke: "#DFA123"
547
+ }), /*#__PURE__*/React__default.createElement("path", {
548
+ d: "M51.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
549
+ fill: "#28CA42",
550
+ stroke: "#1DAD2C"
551
+ }));
552
+ };
553
+
554
+ var ElementPopup = function ElementPopup(_ref) {
555
+ var iframeURL = _ref.iframeURL,
556
+ customization = _ref.customization;
557
+ var _useTranslation = useTranslation(),
558
+ t = _useTranslation.t;
559
+ var elementSelector = customization.elementSelector;
560
+ useEffect(function () {
561
+ var _window$globalProps$a;
562
+ var element = document.getElementById(elementSelector);
563
+ if (element) (_window$globalProps$a = window[globalProps.appName]) === null || _window$globalProps$a === void 0 ? void 0 : _window$globalProps$a.embed(element, iframeURL);
564
+ }, []);
565
+ return /*#__PURE__*/React__default.createElement("div", {
566
+ className: "relative flex h-full w-full items-center justify-center p-6"
567
+ }, /*#__PURE__*/React__default.createElement(Button, {
568
+ "data-cy": "preview-element-popup-button",
569
+ "data-testid": "preview-element-popup-button",
570
+ id: elementSelector,
571
+ size: "small",
572
+ label: t("neetoMolecules.productEmbed.customization.elementPopup.label")
573
+ }));
574
+ };
575
+
576
+ var FloatingPopup = function FloatingPopup(_ref) {
577
+ var iframeURL = _ref.iframeURL,
578
+ customization = _ref.customization;
579
+ var btnTextColor = customization.btnTextColor,
580
+ showIcon = customization.showIcon,
581
+ btnText = customization.btnText,
582
+ btnPosition = customization.btnPosition,
583
+ btnColor = customization.btnColor,
584
+ icon = customization.icon;
585
+ useEffect(function () {
586
+ var _window$globalProps$a;
587
+ var btn = document.getElementById("embedBtn");
588
+ (_window$globalProps$a = window[globalProps.appName]) === null || _window$globalProps$a === void 0 ? void 0 : _window$globalProps$a.embed(btn, iframeURL);
589
+ }, []);
590
+ useEffect(function () {
591
+ var btn = document.getElementById("embedBtn");
592
+ btn.style.backgroundColor = btnColor;
593
+ btn.style.color = btnTextColor;
594
+ }, [btnColor, btnTextColor]);
595
+ return /*#__PURE__*/React__default.createElement("div", {
596
+ className: "relative h-full w-full"
597
+ }, /*#__PURE__*/React__default.createElement(Button, {
598
+ "data-cy": "popup-preview-button",
599
+ icon: icon && showIcon ? icon : null,
600
+ iconPosition: "left",
601
+ id: "embedBtn",
602
+ label: btnText,
603
+ className: classnames("absolute bottom-0 m-16", {
604
+ "left-0": btnPosition === "bottomLeft",
605
+ "right-0": btnPosition === "bottomRight"
606
+ })
607
+ }));
608
+ };
609
+
610
+ var Inline = function Inline(_ref) {
611
+ var iframeURL = _ref.iframeURL,
612
+ customization = _ref.customization;
613
+ var height = customization.height,
614
+ width = customization.width;
615
+ return /*#__PURE__*/React__default.createElement("iframe", {
616
+ className: "m-auto",
617
+ height: "".concat(height, "%"),
618
+ src: iframeURL,
619
+ width: "".concat(width, "%")
620
+ });
621
+ };
622
+
623
+ var Preview = function Preview(_ref) {
624
+ var isScriptLoading = _ref.isScriptLoading,
625
+ selectedOption = _ref.selectedOption,
626
+ id = _ref.id,
627
+ customization = _ref.customization,
628
+ _ref$customPreviewIfr = _ref.customPreviewIframeUrl,
629
+ customPreviewIframeUrl = _ref$customPreviewIfr === void 0 ? "" : _ref$customPreviewIfr;
630
+ var preview = _defineProperty(_defineProperty(_defineProperty({}, EMBED_OPTIONS.INLINE, Inline), EMBED_OPTIONS.FLOATING_POPUP, FloatingPopup), EMBED_OPTIONS.ELEMENT_POPUP, ElementPopup);
631
+ var iframeURL = customPreviewIframeUrl || "".concat(location.origin, "/embed/").concat(id);
632
+ var Component = preview[selectedOption];
633
+ if (isScriptLoading) {
634
+ return /*#__PURE__*/React__default.createElement("div", {
635
+ className: "flex min-h-0 flex-grow items-center justify-center overflow-y-auto"
636
+ }, /*#__PURE__*/React__default.createElement(Spinner, null));
637
+ }
638
+ return /*#__PURE__*/React__default.createElement("div", {
639
+ className: "neeto-ui-rounded-lg neeto-ui-border-gray-300 neeto-ui-bg-white relative flex w-full flex-col overflow-hidden border"
640
+ }, /*#__PURE__*/React__default.createElement("div", {
641
+ className: "neeto-ui-border-gray-300 flex-shrink-0 border-b p-3"
642
+ }, /*#__PURE__*/React__default.createElement(BrowserIcon, null)), /*#__PURE__*/React__default.createElement("div", {
643
+ className: "flex min-h-0 flex-grow overflow-y-auto"
644
+ }, /*#__PURE__*/React__default.createElement(Component, {
645
+ customization: customization,
646
+ iframeURL: iframeURL
647
+ })));
648
+ };
649
+
650
+ var css = ".neeto-molecules-product-embed-size-input.neeto-ui-input__wrapper .neeto-ui-input__prefix{align-self:stretch;background-color:rgb(var(--neeto-ui-gray-200));margin-left:0!important;padding-left:12px;padding-right:12px}.neeto-molecules-product-embed-tab{gap:.5rem}.neeto-molecules-product-embed-tab .neeto-ui-tab{border-radius:var(--neeto-ui-btn-border-radius);color:rgb(var(--neeto-ui-gray-800))}.neeto-molecules-product-embed-tab .neeto-ui-tab:not(.active):hover{background-color:rgb(var(--neeto-ui-gray-100))}.neeto-molecules-product-embed-tab .neeto-ui-tab.active{background-color:rgb(var(--neeto-ui-gray-200))}.neeto-molecules-embed-left-sidebar{align-items:flex-start;display:flex;flex-direction:column;flex-shrink:0;max-width:28rem;overflow-y:auto;padding:1.5rem;width:100%}";
651
+ n(css,{});
652
+
653
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
654
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
655
+ var ProductEmbed = function ProductEmbed(_ref) {
656
+ var _ref$className = _ref.className,
657
+ className = _ref$className === void 0 ? "" : _ref$className,
658
+ _ref$customEmbedScrip = _ref.customEmbedScriptPath,
659
+ customEmbedScriptPath = _ref$customEmbedScrip === void 0 ? "" : _ref$customEmbedScrip,
660
+ _ref$customPreviewIfr = _ref.customPreviewIframeUrl,
661
+ customPreviewIframeUrl = _ref$customPreviewIfr === void 0 ? "" : _ref$customPreviewIfr,
662
+ _ref$goBackLink = _ref.goBackLink,
663
+ goBackLink = _ref$goBackLink === void 0 ? "" : _ref$goBackLink,
664
+ id = _ref.id,
665
+ _ref$isQueryParamsEna = _ref.isQueryParamsEnabled,
666
+ isQueryParamsEnabled = _ref$isQueryParamsEna === void 0 ? false : _ref$isQueryParamsEna,
667
+ _ref$options = _ref.options,
668
+ options = _ref$options === void 0 ? {} : _ref$options,
669
+ _ref$extraArgs = _ref.extraArgs,
670
+ extraArgs = _ref$extraArgs === void 0 ? {} : _ref$extraArgs;
671
+ var _useState = useState(true),
672
+ _useState2 = _slicedToArray(_useState, 2),
673
+ isScriptLoading = _useState2[0],
674
+ setIsScriptLoading = _useState2[1];
675
+ var _useState3 = useState(TAB_KEYS.HTML),
676
+ _useState4 = _slicedToArray(_useState3, 2),
677
+ tab = _useState4[0],
678
+ setTab = _useState4[1];
679
+ var _useState5 = useState(EMBED_OPTIONS.INLINE),
680
+ _useState6 = _slicedToArray(_useState5, 2),
681
+ selectedOption = _useState6[0],
682
+ setSelectedOption = _useState6[1];
683
+ var _useState7 = useState(function () {
684
+ return buildDefaultCustomization(options);
685
+ }),
686
+ _useState8 = _slicedToArray(_useState7, 2),
687
+ customizations = _useState8[0],
688
+ setCustomizations = _useState8[1];
689
+ var _useTranslation = useTranslation(),
690
+ t = _useTranslation.t;
691
+ var embedScriptLink = customEmbedScriptPath || "".concat(window.location.protocol, "//").concat(window.location.host, "/javascript/embed.js");
692
+ var code = embedCode({
693
+ id: id,
694
+ type: selectedOption,
695
+ customization: customizations[selectedOption],
696
+ embedScriptLink: embedScriptLink,
697
+ extraArgs: extraArgs
698
+ });
699
+ var loadScript = function loadScript() {
700
+ var script = document.createElement("script");
701
+ script.id = SCRIPT_ID;
702
+ script.src = embedScriptLink;
703
+ document.head.appendChild(script);
704
+ setIsScriptLoading(false);
705
+ };
706
+ var updateCustomization = function updateCustomization(props) {
707
+ return setCustomizations(function (prevState) {
708
+ return _objectSpread(_objectSpread({}, prevState), {}, _defineProperty({}, selectedOption, mergeLeft(props, prevState[selectedOption])));
709
+ });
710
+ };
711
+ useEffect(function () {
712
+ var isScriptLoaded = document.getElementById(SCRIPT_ID);
713
+ if (isScriptLoaded) setIsScriptLoading(false);else loadScript();
714
+ }, []);
715
+ return /*#__PURE__*/React__default.createElement("div", {
716
+ className: classnames("flex w-full flex-grow", className),
717
+ "data-testid": "embed-product"
718
+ }, /*#__PURE__*/React__default.createElement("div", {
719
+ className: "neeto-molecules-embed-left-sidebar border-r"
720
+ }, goBackLink && /*#__PURE__*/React__default.createElement(Button, {
721
+ className: "mb-4 px-0",
722
+ "data-cy": "back-button",
723
+ "data-testid": "back-button",
724
+ icon: LeftArrow,
725
+ iconPosition: "left",
726
+ label: t("neetoMolecules.productEmbed.backToShare"),
727
+ size: "small",
728
+ style: "icon",
729
+ to: goBackLink
730
+ }), /*#__PURE__*/React__default.createElement(Typography, {
731
+ "data-cy": "embed-options-header-title",
732
+ style: "h3"
733
+ }, t("neetoMolecules.productEmbed.embedOptions.title")), /*#__PURE__*/React__default.createElement(Typography, {
734
+ className: "mt-1",
735
+ "data-cy": "embed-options-header-description",
736
+ style: "body3"
737
+ }, t("neetoMolecules.productEmbed.embedOptions.description")), /*#__PURE__*/React__default.createElement("div", {
738
+ className: "mt-6 flex w-full flex-col gap-y-6 pb-10"
739
+ }, /*#__PURE__*/React__default.createElement(Options, {
740
+ options: options,
741
+ selectedOption: selectedOption,
742
+ setSelectedOption: setSelectedOption
743
+ }), /*#__PURE__*/React__default.createElement(Customization, {
744
+ isQueryParamsEnabled: isQueryParamsEnabled,
745
+ updateCustomization: updateCustomization,
746
+ customization: customizations[selectedOption],
747
+ option: selectedOption
748
+ }))), /*#__PURE__*/React__default.createElement("div", {
749
+ className: "neeto-ui-bg-white flex w-full min-w-0 flex-grow flex-col gap-4 p-6"
750
+ }, /*#__PURE__*/React__default.createElement(Header, {
751
+ setTab: setTab,
752
+ tab: tab
753
+ }), /*#__PURE__*/React__default.createElement("div", {
754
+ className: "flex flex-grow overflow-y-auto"
755
+ }, tab === TAB_KEYS.PREVIEW ? /*#__PURE__*/React__default.createElement(Preview, {
756
+ customPreviewIframeUrl: customPreviewIframeUrl,
757
+ id: id,
758
+ isScriptLoading: isScriptLoading,
759
+ selectedOption: selectedOption,
760
+ customization: customizations[selectedOption]
761
+ }) : /*#__PURE__*/React__default.createElement(Code, {
762
+ code: code
763
+ }))));
764
+ };
765
+
766
+ export { ProductEmbed as default };
767
+ //# sourceMappingURL=ProductEmbed.js.map