@bigbinary/neeto-molecules 1.1.77 → 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 +192 -32
  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,1436 @@
1
+ 'use strict';
2
+
3
+ var defineProperty = require('./defineProperty-886ed289.js');
4
+ var slicedToArray = require('./slicedToArray-f320d9e7.js');
5
+ var React = require('react');
6
+ var neetoui = require('@bigbinary/neetoui');
7
+ var reactI18next = require('react-i18next');
8
+ var yup = require('yup');
9
+ var formik$1 = require('@bigbinary/neetoui/formik');
10
+ var neetoCist = require('@bigbinary/neeto-cist');
11
+ var withT = require('@bigbinary/neeto-commons-frontend/react-utils/withT');
12
+ var ramda = require('ramda');
13
+ var _extends = require('./extends-1b35a664.js');
14
+ var classnames = require('classnames');
15
+ var neetoIcons = require('@bigbinary/neeto-icons');
16
+ var framerMotion = require('framer-motion');
17
+ var index = require('./index-c55ad2bc.js');
18
+ var activestorage = require('@rails/activestorage');
19
+ var reactDropzone = require('react-dropzone');
20
+ var formik = require('formik');
21
+ var antd = require('antd');
22
+ var injectCss = require('./inject-css-80a5faa3.js');
23
+ var objectWithoutProperties = require('./objectWithoutProperties-2fed2d7d.js');
24
+ var MoreDropdown = require('./MoreDropdown.js');
25
+
26
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
+
28
+ function _interopNamespace(e) {
29
+ if (e && e.__esModule) return e;
30
+ var n = Object.create(null);
31
+ if (e) {
32
+ Object.keys(e).forEach(function (k) {
33
+ if (k !== 'default') {
34
+ var d = Object.getOwnPropertyDescriptor(e, k);
35
+ Object.defineProperty(n, k, d.get ? d : {
36
+ enumerable: true,
37
+ get: function () { return e[k]; }
38
+ });
39
+ }
40
+ });
41
+ }
42
+ n["default"] = e;
43
+ return Object.freeze(n);
44
+ }
45
+
46
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
47
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
48
+ var withT__default = /*#__PURE__*/_interopDefaultLegacy(withT);
49
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
50
+
51
+ var DIRECT_UPLOAD_URL = "/api/direct_uploads";
52
+ var DESIGN_SCREENS = {
53
+ THEMES: "Themes",
54
+ CUSTOMIZE: "Customize",
55
+ LOADING: "Loading"
56
+ };
57
+ var INITIAL_STATE = {
58
+ name: "",
59
+ backgroundColor: "#ffffff",
60
+ backgroundOverlayColor: "#000000",
61
+ backgroundOverlayOpacity: 0,
62
+ isDominantBackgroundColorEnabled: false,
63
+ questionColor: "#000000",
64
+ buttonBackgroundColor: "#2D36D4",
65
+ buttonTextColor: "#ffffff",
66
+ answerColor: "#2D36D4",
67
+ answerTextColor: "#ffffff",
68
+ logo: {},
69
+ buttonBorderRadius: 10,
70
+ isContentBackgroundEnabled: false,
71
+ welcomeTextAlignment: "left",
72
+ thankYouTextAlignment: "center",
73
+ questionsTextAlignment: "left",
74
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
75
+ };
76
+ var THEME_VALIDATION_SCHEMA = yup__namespace.object().shape({
77
+ name: yup__namespace.string().required("Name is required")
78
+ });
79
+ var FIVE_MEGABYTES = 5242880;
80
+ var POSITION_OPTIONS = [{
81
+ label: "Left",
82
+ value: "left"
83
+ }, {
84
+ label: "Right",
85
+ value: "right"
86
+ }];
87
+ var BACKGROUND_POSITION_OPTIONS = [{
88
+ label: "Center",
89
+ value: "center"
90
+ }, {
91
+ label: "Top left",
92
+ value: "top left"
93
+ }, {
94
+ label: "Top center",
95
+ value: "top center"
96
+ }, {
97
+ label: "Top right",
98
+ value: "top right"
99
+ }, {
100
+ label: "Center left",
101
+ value: "center left"
102
+ }, {
103
+ label: "Center right",
104
+ value: "center right"
105
+ }, {
106
+ label: "Bottom left",
107
+ value: "bottom left"
108
+ }, {
109
+ label: "Bottom right",
110
+ value: "bottom right"
111
+ }, {
112
+ label: "Bottom center",
113
+ value: "bottom center"
114
+ }];
115
+ var FONT_OPTIONS = [{
116
+ label: "System UI",
117
+ value: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
118
+ }, {
119
+ label: "Cedarville Cursive",
120
+ value: "'Cedarville Cursive', cursive"
121
+ }, {
122
+ label: "Poppins",
123
+ value: "Poppins, sans-serif"
124
+ }, {
125
+ label: "Roboto",
126
+ value: "Roboto, sans-serif"
127
+ }, {
128
+ label: "Open Sans",
129
+ value: "Open Sans, sans-serif"
130
+ }, {
131
+ label: "Montserrat",
132
+ value: "Montserrat, sans-serif"
133
+ }, {
134
+ label: "Raleway",
135
+ value: "Raleway, sans-serif"
136
+ }, {
137
+ label: "Quicksand",
138
+ value: "Quicksand, sans-serif"
139
+ }, {
140
+ label: "Inter",
141
+ value: "Inter, sans-serif"
142
+ }, {
143
+ label: "Satoshi",
144
+ value: "Satoshi, sans-serif"
145
+ }, {
146
+ label: "Chillax",
147
+ value: "Chillax, sans-serif"
148
+ }, {
149
+ label: "Clash Display",
150
+ value: "Clash Display, sans-serif"
151
+ }, {
152
+ label: "General Sans",
153
+ value: "General Sans, sans-serif"
154
+ }, {
155
+ label: "Cabinet Grotesk",
156
+ value: "Cabinet Grotesk, sans-serif"
157
+ }, {
158
+ label: "Lora",
159
+ value: "Lora, serif"
160
+ }, {
161
+ label: "Merriweather",
162
+ value: "Merriweather, serif"
163
+ }, {
164
+ label: "Boska",
165
+ value: "Boska, serif"
166
+ }, {
167
+ label: "Playfair Display",
168
+ value: "Playfair Display, serif"
169
+ }, {
170
+ label: "Roboto Slab",
171
+ value: "Roboto Slab, serif"
172
+ }, {
173
+ label: "Dancing Script",
174
+ value: "Dancing Script, cursive"
175
+ }];
176
+
177
+ var Card = function Card(_ref) {
178
+ var title = _ref.title,
179
+ children = _ref.children;
180
+ return /*#__PURE__*/React__default["default"].createElement("div", {
181
+ className: "neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-ui-bg-white space-y-3 border p-4"
182
+ }, title && /*#__PURE__*/React__default["default"].createElement("div", {
183
+ className: "flex items-center justify-between"
184
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
185
+ "data-cy": "edit-theme-properties",
186
+ lineHeight: "normal",
187
+ style: "h4",
188
+ weight: "semibold"
189
+ }, title)), children && /*#__PURE__*/React__default["default"].createElement("div", {
190
+ className: "space-y-4"
191
+ }, children));
192
+ };
193
+
194
+ var ProgressBar = function ProgressBar(_ref) {
195
+ var progressPercentage = _ref.progressPercentage,
196
+ progressValue = _ref.progressValue;
197
+ return /*#__PURE__*/React__default["default"].createElement("div", {
198
+ className: "neeto-ui-bg-gray-200 neeto-ui-rounded-full w-full overflow-hidden"
199
+ }, /*#__PURE__*/React__default["default"].createElement(framerMotion.motion.div, {
200
+ animate: {
201
+ width: "".concat(progressPercentage, "%")
202
+ },
203
+ className: "neeto-ui-bg-primary-600 neeto-ui-text-primary-100 text-2xs neeto-ui-rounded-full flex h-3 animate-pulse items-center justify-center font-medium leading-none",
204
+ initial: {
205
+ width: 0
206
+ },
207
+ transition: {
208
+ duration: 0.5,
209
+ ease: "easeInOut"
210
+ }
211
+ }, progressValue));
212
+ };
213
+
214
+ function ownKeys$2(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; }
215
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
216
+ var readFile = function readFile(file) {
217
+ return new Promise(function (resolve) {
218
+ var reader = new FileReader();
219
+ reader.onload = function () {
220
+ resolve(reader.result);
221
+ };
222
+ reader.readAsDataURL(file);
223
+ });
224
+ };
225
+ var getImage = /*#__PURE__*/function () {
226
+ var _ref = index._asyncToGenerator( /*#__PURE__*/index.regenerator.mark(function _callee(file) {
227
+ var image;
228
+ return index.regenerator.wrap(function _callee$(_context) {
229
+ while (1) switch (_context.prev = _context.next) {
230
+ case 0:
231
+ image = new Image();
232
+ _context.next = 3;
233
+ return readFile(file);
234
+ case 3:
235
+ image.src = _context.sent;
236
+ return _context.abrupt("return", new Promise(function (resolve) {
237
+ image.onload = function () {
238
+ resolve(image);
239
+ };
240
+ }));
241
+ case 5:
242
+ case "end":
243
+ return _context.stop();
244
+ }
245
+ }, _callee);
246
+ }));
247
+ return function getImage(_x) {
248
+ return _ref.apply(this, arguments);
249
+ };
250
+ }();
251
+ var transformTheme = function transformTheme(values) {
252
+ return {
253
+ name: values.name,
254
+ colorScheme: {
255
+ backgroundColor: values.backgroundColor,
256
+ questionColor: values.questionColor,
257
+ buttonBackgroundColor: values.buttonBackgroundColor,
258
+ buttonTextColor: values.buttonTextColor,
259
+ answerColor: values.answerColor,
260
+ answerTextColor: values.answerTextColor
261
+ },
262
+ backgroundImage: _objectSpread$2(_objectSpread$2({}, values.backgroundImage), {}, {
263
+ backgroundColor: values.backgroundColor,
264
+ backgroundOverlayOpacity: values.backgroundOverlayOpacity,
265
+ isDominantBackgroundColorEnabled: values.isDominantBackgroundColorEnabled,
266
+ backgroundPosition: values.backgroundImage.backgroundPosition
267
+ }),
268
+ fontOptions: {
269
+ fontFamily: values.fontFamily
270
+ },
271
+ buttonOptions: {
272
+ buttonBorderRadius: values.buttonBorderRadius
273
+ },
274
+ layout: {
275
+ isContentBackgroundEnabled: values.isContentBackgroundEnabled,
276
+ contentBackgroundColor: values.contentBackgroundColor,
277
+ welcomeTextAlignment: values.welcomeTextAlignment,
278
+ thankYouTextAlignment: values.thankYouTextAlignment,
279
+ questionsTextAlignment: values.questionsTextAlignment,
280
+ logo: values.logo
281
+ }
282
+ };
283
+ };
284
+ var parseTheme = function parseTheme(theme) {
285
+ var _theme$layout$logo;
286
+ return {
287
+ name: theme.name,
288
+ backgroundColor: theme.colorScheme.backgroundColor,
289
+ questionColor: theme.colorScheme.questionColor,
290
+ buttonBackgroundColor: theme.colorScheme.buttonBackgroundColor,
291
+ buttonTextColor: theme.colorScheme.buttonTextColor,
292
+ answerColor: theme.colorScheme.answerColor,
293
+ answerTextColor: theme.colorScheme.answerTextColor,
294
+ backgroundImage: theme.backgroundImage,
295
+ backgroundOverlayOpacity: theme.backgroundImage.backgroundOverlayOpacity,
296
+ fontFamily: theme.fontOptions.fontFamily,
297
+ buttonBorderRadius: theme.buttonOptions.buttonBorderRadius,
298
+ isDominantBackgroundColorEnabled: theme.backgroundImage.isDominantBackgroundColorEnabled,
299
+ isContentBackgroundEnabled: theme.layout.isContentBackgroundEnabled,
300
+ contentBackgroundColor: theme.layout.contentBackgroundColor,
301
+ welcomeTextAlignment: theme.layout.welcomeTextAlignment,
302
+ thankYouTextAlignment: theme.layout.thankYouTextAlignment,
303
+ questionsTextAlignment: theme.layout.questionsTextAlignment,
304
+ logo: (_theme$layout$logo = theme.layout.logo) !== null && _theme$layout$logo !== void 0 ? _theme$layout$logo : {}
305
+ };
306
+ };
307
+ var getContrast = function getContrast(hexcolor) {
308
+ // If a leading # is provided, remove it
309
+ if (hexcolor.slice(0, 1) === "#") {
310
+ hexcolor = hexcolor.slice(1);
311
+ }
312
+
313
+ // If a three-character hexcode, make six-character
314
+ if (hexcolor.length === 3) {
315
+ hexcolor = hexcolor.split("").map(function (hex) {
316
+ return hex + hex;
317
+ }).join("");
318
+ }
319
+
320
+ // Convert to RGB value
321
+ var r = parseInt(hexcolor.substr(0, 2), 16);
322
+ var g = parseInt(hexcolor.substr(2, 2), 16);
323
+ var b = parseInt(hexcolor.substr(4, 2), 16);
324
+
325
+ // Get YIQ ratio
326
+ var yiq = (r * 299 + g * 587 + b * 114) / 1000;
327
+
328
+ // Check contrast
329
+ return yiq >= 128 ? "#000000" : "#ffffff";
330
+ };
331
+ var hexToRgb = function hexToRgb(hex) {
332
+ var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex.padEnd(7, "0"));
333
+ return result ? "".concat(parseInt(result[1], 16), ", ").concat(parseInt(result[2], 16), ", ").concat(parseInt(result[3], 16)) : null;
334
+ };
335
+ var getDominantColor = /*#__PURE__*/function () {
336
+ var _ref2 = index._asyncToGenerator( /*#__PURE__*/index.regenerator.mark(function _callee2(file) {
337
+ var image, context, c, hex;
338
+ return index.regenerator.wrap(function _callee2$(_context2) {
339
+ while (1) switch (_context2.prev = _context2.next) {
340
+ case 0:
341
+ _context2.next = 2;
342
+ return getImage(file);
343
+ case 2:
344
+ image = _context2.sent;
345
+ context = document.createElement("canvas").getContext("2d");
346
+ context === null || context === void 0 ? void 0 : context.drawImage(image, 0, 0, 1, 1);
347
+ c = context === null || context === void 0 ? void 0 : context.getImageData(0, 0, 1, 1).data;
348
+ if (!c) {
349
+ _context2.next = 9;
350
+ break;
351
+ }
352
+ hex = "#".concat(((1 << 24) + (c[0] << 16) + (c[1] << 8) + c[2]).toString(16).slice(1));
353
+ return _context2.abrupt("return", hex);
354
+ case 9:
355
+ return _context2.abrupt("return", null);
356
+ case 10:
357
+ case "end":
358
+ return _context2.stop();
359
+ }
360
+ }, _callee2);
361
+ }));
362
+ return function getDominantColor(_x2) {
363
+ return _ref2.apply(this, arguments);
364
+ };
365
+ }();
366
+ var bytesToSize = function bytesToSize(bytes) {
367
+ var sizes = ["Bytes", "KB", "MB", "GB", "TB"];
368
+ if (bytes === 0) return "n/a";
369
+ var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10);
370
+ if (i === 0) return "".concat(bytes, " ").concat(sizes[i], ")");
371
+ return "".concat((bytes / Math.pow(1024, i)).toFixed(1), " ").concat(sizes[i]);
372
+ };
373
+ var scrollElementIntoView = function scrollElementIntoView(elementId) {
374
+ var _elementToScroll$scro;
375
+ var elementToScroll = document.getElementById(elementId);
376
+ elementToScroll === null || elementToScroll === void 0 ? void 0 : (_elementToScroll$scro = elementToScroll.scrollIntoView) === null || _elementToScroll$scro === void 0 ? void 0 : _elementToScroll$scro.call(elementToScroll, {
377
+ behavior: "smooth"
378
+ });
379
+ };
380
+
381
+ var useDropzoneWithValidation = function useDropzoneWithValidation(_ref) {
382
+ var maxSize = _ref.maxSize,
383
+ acceptedTypes = _ref.acceptedTypes,
384
+ handleAcceptedFile = _ref.handleAcceptedFile,
385
+ _ref$isDominantColorE = _ref.isDominantColorEnabled,
386
+ isDominantColorEnabled = _ref$isDominantColorE === void 0 ? false : _ref$isDominantColorE;
387
+ var _useState = React.useState([]),
388
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
389
+ files = _useState2[0],
390
+ setFiles = _useState2[1];
391
+ var _useState3 = React.useState(false),
392
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
393
+ error = _useState4[0],
394
+ setError = _useState4[1];
395
+ var _useState5 = React.useState(0),
396
+ _useState6 = slicedToArray._slicedToArray(_useState5, 2),
397
+ uploadProgress = _useState6[0],
398
+ setUploadProgress = _useState6[1];
399
+ var maxSizeInReadableUnits = bytesToSize(maxSize);
400
+ var _useTranslation = reactI18next.useTranslation(),
401
+ t = _useTranslation.t;
402
+ var fileErrors = {
403
+ "file-invalid-type": t("neetoMolecules.themeSidebar.error.fileTypeError", {
404
+ acceptedTypes: acceptedTypes
405
+ }),
406
+ "file-too-large": t("neetoMolecules.themeSidebar.error.fileSizeLimitExceeded", {
407
+ maxSizeInReadableUnits: maxSizeInReadableUnits
408
+ })
409
+ };
410
+ var _useDropzone = reactDropzone.useDropzone({
411
+ accept: acceptedTypes,
412
+ onDrop: function () {
413
+ var _onDrop = index._asyncToGenerator( /*#__PURE__*/index.regenerator.mark(function _callee2(acceptedFiles) {
414
+ var newFiles;
415
+ return index.regenerator.wrap(function _callee2$(_context2) {
416
+ while (1) switch (_context2.prev = _context2.next) {
417
+ case 0:
418
+ _context2.next = 2;
419
+ return new Promise(function (resolve) {
420
+ var files = [];
421
+ acceptedFiles.forEach(function (file) {
422
+ var upload = new activestorage.DirectUpload(file, DIRECT_UPLOAD_URL, {
423
+ directUploadWillStoreFileWithXHR: function directUploadWillStoreFileWithXHR(xhr) {
424
+ xhr.upload.addEventListener("progress", function (event) {
425
+ var percentComplete = Math.round(event.loaded / event.total * 100);
426
+ setUploadProgress(percentComplete);
427
+ });
428
+ }
429
+ });
430
+ upload.create( /*#__PURE__*/function () {
431
+ var _ref2 = index._asyncToGenerator( /*#__PURE__*/index.regenerator.mark(function _callee(error, blob) {
432
+ var resolvedFile, dominantColor;
433
+ return index.regenerator.wrap(function _callee$(_context) {
434
+ while (1) switch (_context.prev = _context.next) {
435
+ case 0:
436
+ if (!error) {
437
+ _context.next = 2;
438
+ break;
439
+ }
440
+ return _context.abrupt("return", neetoui.Toastr.error(error));
441
+ case 2:
442
+ resolvedFile = {
443
+ url: blob.blob_url,
444
+ name: blob.filename,
445
+ signed_id: blob.signed_id,
446
+ type: blob.content_type,
447
+ size: blob.byte_size
448
+ };
449
+ if (!isDominantColorEnabled) {
450
+ _context.next = 8;
451
+ break;
452
+ }
453
+ _context.next = 6;
454
+ return getDominantColor(file);
455
+ case 6:
456
+ dominantColor = _context.sent;
457
+ resolvedFile.dominantColor = dominantColor;
458
+ case 8:
459
+ files.push(resolvedFile);
460
+ return _context.abrupt("return", resolve(files));
461
+ case 10:
462
+ case "end":
463
+ return _context.stop();
464
+ }
465
+ }, _callee);
466
+ }));
467
+ return function (_x2, _x3) {
468
+ return _ref2.apply(this, arguments);
469
+ };
470
+ }());
471
+ });
472
+ return files;
473
+ });
474
+ case 2:
475
+ newFiles = _context2.sent;
476
+ setFiles(newFiles.map(function (file) {
477
+ return handleAcceptedFile(file);
478
+ }));
479
+ case 4:
480
+ case "end":
481
+ return _context2.stop();
482
+ }
483
+ }, _callee2);
484
+ }));
485
+ function onDrop(_x) {
486
+ return _onDrop.apply(this, arguments);
487
+ }
488
+ return onDrop;
489
+ }(),
490
+ maxSize: maxSize,
491
+ onDropRejected: function onDropRejected(fileRejections) {
492
+ fileRejections.map(function (_ref3) {
493
+ var errors = _ref3.errors;
494
+ return errors.map(function (_ref4) {
495
+ var code = _ref4.code;
496
+ return neetoui.Toastr.error(fileErrors[code] || t("neetoMolecules.common.somethingWentWrong"));
497
+ });
498
+ });
499
+ }
500
+ }),
501
+ getRootProps = _useDropzone.getRootProps,
502
+ getInputProps = _useDropzone.getInputProps,
503
+ isDragActive = _useDropzone.isDragActive,
504
+ fileRejections = _useDropzone.fileRejections;
505
+ React.useEffect(function () {
506
+ setError(neetoCist.isNotEmpty(fileRejections));
507
+ }, [fileRejections]);
508
+ return {
509
+ files: files,
510
+ getRootProps: getRootProps,
511
+ getInputProps: getInputProps,
512
+ isDragActive: isDragActive,
513
+ fileRejections: fileRejections,
514
+ error: error,
515
+ uploadProgress: uploadProgress
516
+ };
517
+ };
518
+
519
+ var ImageUploader = function ImageUploader(_ref) {
520
+ var onChange = _ref.onChange,
521
+ name = _ref.name,
522
+ _ref$isDominantColorE = _ref.isDominantColorEnabled,
523
+ isDominantColorEnabled = _ref$isDominantColorE === void 0 ? false : _ref$isDominantColorE;
524
+ var _useTranslation = reactI18next.useTranslation(),
525
+ t = _useTranslation.t;
526
+ var _useDropzoneWithValid = useDropzoneWithValidation({
527
+ maxSize: FIVE_MEGABYTES,
528
+ acceptedTypes: "image/*",
529
+ handleAcceptedFile: onChange,
530
+ isDominantColorEnabled: isDominantColorEnabled
531
+ }),
532
+ getInputProps = _useDropzoneWithValid.getInputProps,
533
+ getRootProps = _useDropzoneWithValid.getRootProps,
534
+ isDragActive = _useDropzoneWithValid.isDragActive,
535
+ uploadProgress = _useDropzoneWithValid.uploadProgress;
536
+ var shouldShowProgress = !!(uploadProgress && uploadProgress !== 1);
537
+ return /*#__PURE__*/React__default["default"].createElement("div", {
538
+ className: "space-y-2"
539
+ }, /*#__PURE__*/React__default["default"].createElement("div", _extends._extends({}, getRootProps(), {
540
+ "data-cy": "image-browse-button",
541
+ className: classnames__default["default"]("neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex cursor-pointer flex-col items-center justify-center gap-3 border border-dashed p-5 px-4 transition-all duration-300 ease-in-out", {
542
+ "neeto-ui-border-gray-300": !isDragActive,
543
+ "neeto-ui-border-gray-700": isDragActive
544
+ })
545
+ }), shouldShowProgress ? /*#__PURE__*/React__default["default"].createElement("div", {
546
+ className: "flex h-24 w-full items-center"
547
+ }, /*#__PURE__*/React__default["default"].createElement(ProgressBar, {
548
+ progressPercentage: uploadProgress * 100,
549
+ progressValue: "".concat(uploadProgress, "%")
550
+ })) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoIcons.ImageUpload, {
551
+ className: "neeto-ui-text-primary-500",
552
+ size: 24
553
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
554
+ className: "flex flex-col space-y-1"
555
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
556
+ className: "neeto-ui-text-gray-800 text-center leading-4",
557
+ style: "body2"
558
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
559
+ i18nKey: "neetoMolecules.themeSidebar.editTheme.imageUpload",
560
+ components: {
561
+ span: /*#__PURE__*/React__default["default"].createElement("span", {
562
+ className: "neeto-ui-text-primary-500"
563
+ })
564
+ }
565
+ })), /*#__PURE__*/React__default["default"].createElement("input", _extends._extends({}, getInputProps(), {
566
+ name: name
567
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
568
+ className: "neeto-ui-text-gray-700 text-center",
569
+ "data-cy": "supported-files-text",
570
+ lineHeight: "snug",
571
+ style: "nano"
572
+ }, t("neetoMolecules.themeSidebar.fileRequirements", {
573
+ maxSize: FIVE_MEGABYTES
574
+ }))))));
575
+ };
576
+
577
+ var ImageBlock = function ImageBlock(_ref) {
578
+ var label = _ref.label,
579
+ name = _ref.name,
580
+ _ref$imageData = _ref.imageData,
581
+ imageData = _ref$imageData === void 0 ? {} : _ref$imageData,
582
+ _onChange = _ref.onChange;
583
+ var url = imageData.url,
584
+ size = imageData.size;
585
+ var fileName = imageData.name;
586
+ if (url && !fileName) {
587
+ var urlParts = url.split("/");
588
+ fileName = urlParts[urlParts.length - 1];
589
+ }
590
+ return /*#__PURE__*/React__default["default"].createElement("div", {
591
+ className: "space-y-3 py-3 first:pt-0 last:pb-0"
592
+ }, label && /*#__PURE__*/React__default["default"].createElement("div", {
593
+ className: "flex items-center justify-between"
594
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
595
+ "data-cy": "style-fields-labels",
596
+ style: "body2"
597
+ }, label)), url ? /*#__PURE__*/React__default["default"].createElement("div", {
598
+ className: "flex items-center justify-between gap-2"
599
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
600
+ className: "flex min-w-0 flex-grow items-center gap-2"
601
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
602
+ className: "h-10 w-10 object-cover",
603
+ src: url
604
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
605
+ className: "flex min-w-0 flex-grow flex-col gap-1"
606
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
607
+ className: "neeto-ui-text-gray-700 break-words",
608
+ style: "nano"
609
+ }, fileName), size ? /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
610
+ className: "neeto-ui-text-gray-500",
611
+ style: "nano"
612
+ }, size / 1000, "KB") : null)), /*#__PURE__*/React__default["default"].createElement("div", {
613
+ className: "flex items-center gap-1"
614
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
615
+ label: "Remove",
616
+ size: "small",
617
+ style: "danger-text",
618
+ onClick: function onClick() {
619
+ return _onChange(name, {}, "");
620
+ }
621
+ }))) : /*#__PURE__*/React__default["default"].createElement(ImageUploader, {
622
+ isDominantColorEnabled: true,
623
+ onChange: function onChange(value) {
624
+ return _onChange(name, value, "url(".concat(value.url, ")"));
625
+ }
626
+ }));
627
+ };
628
+
629
+ var SelectBlock = function SelectBlock(_ref) {
630
+ var label = _ref.label,
631
+ _ref$placeholder = _ref.placeholder,
632
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
633
+ value = _ref.value,
634
+ options = _ref.options,
635
+ onChange = _ref.onChange;
636
+ return /*#__PURE__*/React__default["default"].createElement("div", {
637
+ className: "flex items-center justify-between py-3 first:pt-0 last:pb-0"
638
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
639
+ "data-cy": "logo-field-labels",
640
+ style: "body2"
641
+ }, label), /*#__PURE__*/React__default["default"].createElement("div", {
642
+ className: "w-40"
643
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Select, {
644
+ options: options,
645
+ placeholder: placeholder,
646
+ value: value,
647
+ onChange: onChange
648
+ })));
649
+ };
650
+
651
+ var Logo = withT__default["default"](function (_ref) {
652
+ var t = _ref.t,
653
+ logo = _ref.logo,
654
+ _onChange = _ref.onChange;
655
+ return /*#__PURE__*/React__default["default"].createElement(Card, {
656
+ title: t("neetoMolecules.themeSidebar.logo")
657
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
658
+ className: "divide-y divide-gray-200"
659
+ }, /*#__PURE__*/React__default["default"].createElement(ImageBlock, {
660
+ imageData: logo,
661
+ name: "logo",
662
+ onChange: function onChange(name, value) {
663
+ return _onChange(name, ramda.isEmpty(value) ? {
664
+ position: logo.position
665
+ } : ramda.mergeLeft(value, logo));
666
+ }
667
+ }), logo.url && /*#__PURE__*/React__default["default"].createElement(SelectBlock, {
668
+ label: t("neetoMolecules.themeSidebar.logoPosition"),
669
+ options: POSITION_OPTIONS,
670
+ placeholder: t("neetoMolecules.themeSidebar.left"),
671
+ value: neetoCist.findBy({
672
+ value: logo.position || "left"
673
+ }, POSITION_OPTIONS),
674
+ onChange: function onChange(_ref2) {
675
+ var value = _ref2.value;
676
+ return _onChange("logo.position", value);
677
+ }
678
+ })));
679
+ });
680
+ var Logo$1 = /*#__PURE__*/React__default["default"].memo(Logo);
681
+
682
+ var AlignmentBlock = function AlignmentBlock(_ref) {
683
+ var label = _ref.label,
684
+ name = _ref.name;
685
+ var _useTranslation = reactI18next.useTranslation(),
686
+ t = _useTranslation.t;
687
+ return /*#__PURE__*/React__default["default"].createElement("div", {
688
+ className: "flex items-center justify-between gap-2 py-3 first:pt-0 last:pb-0"
689
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
690
+ "data-cy": "style-fields-labels",
691
+ style: "body2"
692
+ }, label), /*#__PURE__*/React__default["default"].createElement(formik.Field, {
693
+ name: name
694
+ }, function (_ref2) {
695
+ var value = _ref2.field.value,
696
+ setFieldValue = _ref2.form.setFieldValue;
697
+ return /*#__PURE__*/React__default["default"].createElement("div", {
698
+ className: "flex items-center gap-3"
699
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
700
+ "data-cy": "alignment-left",
701
+ icon: neetoIcons.LeftAlign,
702
+ size: "large",
703
+ style: value === "left" ? "primary" : "text",
704
+ tooltipProps: {
705
+ content: t("neetoMolecules.themeSidebar.alignmentOptions.left"),
706
+ position: "bottom"
707
+ },
708
+ onClick: function onClick() {
709
+ return setFieldValue(name, "left");
710
+ }
711
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
712
+ "data-cy": "alignment-center",
713
+ icon: neetoIcons.CenterAlign,
714
+ size: "large",
715
+ style: value === "center" ? "primary" : "text",
716
+ tooltipProps: {
717
+ content: t("neetoMolecules.themeSidebar.alignmentOptions.center"),
718
+ position: "bottom"
719
+ },
720
+ onClick: function onClick() {
721
+ return setFieldValue(name, "center");
722
+ }
723
+ }));
724
+ }));
725
+ };
726
+
727
+ var ColorBlock = function ColorBlock(_ref) {
728
+ var label = _ref.label,
729
+ _ref$color = _ref.color,
730
+ color = _ref$color === void 0 ? "#FFFFFF" : _ref$color,
731
+ onChange = _ref.onChange;
732
+ return /*#__PURE__*/React__default["default"].createElement("div", {
733
+ className: "flex items-center justify-between py-3 first:pt-0 last:pb-0"
734
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
735
+ "data-cy": "style-fields-labels",
736
+ style: "body2"
737
+ }, label), /*#__PURE__*/React__default["default"].createElement(neetoui.ColorPicker, {
738
+ showEyeDropper: true,
739
+ color: color,
740
+ onChange: onChange
741
+ }));
742
+ };
743
+
744
+ 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; }
745
+ 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._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; }
746
+ var FontPickerBlock = function FontPickerBlock(_ref) {
747
+ var label = _ref.label,
748
+ _ref$placeholder = _ref.placeholder,
749
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
750
+ value = _ref.value,
751
+ options = _ref.options,
752
+ onChange = _ref.onChange;
753
+ return /*#__PURE__*/React__default["default"].createElement("div", {
754
+ className: "flex items-center justify-between py-3 first:pt-0 last:pb-0"
755
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
756
+ "data-cy": "style-fields-labels",
757
+ style: "body2"
758
+ }, label), /*#__PURE__*/React__default["default"].createElement("div", {
759
+ className: "w-40"
760
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Select, {
761
+ options: options,
762
+ placeholder: placeholder,
763
+ value: value,
764
+ styles: {
765
+ option: function option(styles, _ref2) {
766
+ var data = _ref2.data;
767
+ return _objectSpread$1(_objectSpread$1({}, styles), {}, {
768
+ fontFamily: data.value
769
+ });
770
+ }
771
+ },
772
+ onChange: onChange
773
+ })));
774
+ };
775
+
776
+ var css$1 = ".ant-slider{font-feature-settings:\"tnum\";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;height:12px;line-height:1.5715;list-style:none;margin:10px 6px;padding:4px 0;position:relative;touch-action:none}.ant-slider-vertical{height:100%;margin:6px 10px;padding:0 4px;width:12px}.ant-slider-vertical .ant-slider-rail{height:100%;width:4px}.ant-slider-vertical .ant-slider-track{width:4px}.ant-slider-vertical .ant-slider-handle{margin-left:-5px;margin-top:-6px}.ant-slider-vertical .ant-slider-mark{height:100%;left:12px;top:0;width:18px}.ant-slider-vertical .ant-slider-mark-text{left:4px;white-space:nowrap}.ant-slider-vertical .ant-slider-step{height:100%;width:4px}.ant-slider-vertical .ant-slider-dot{margin-left:-2px;top:auto}.ant-slider-tooltip .ant-tooltip-inner{min-width:0;min-width:auto}.ant-slider-rtl.ant-slider-vertical .ant-slider-handle{margin-left:0;margin-right:-5px}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark{left:auto;right:12px}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text{left:auto;right:4px}.ant-slider-rtl.ant-slider-vertical .ant-slider-dot{left:auto;right:2px}.ant-slider-with-marks{margin-bottom:28px}.ant-slider-rail{background-color:#f5f5f5;width:100%}.ant-slider-rail,.ant-slider-track{border-radius:2px;height:4px;position:absolute;transition:background-color .3s}.ant-slider-track{background-color:#91d5ff}.ant-slider-handle{background-color:#fff;border:2px solid #91d5ff;border-radius:50%;box-shadow:0;cursor:pointer;height:14px;margin-top:-5px;position:absolute;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28);width:14px}.ant-slider-handle-dragging{z-index:1}.ant-slider-handle:focus{border-color:#46a6ff;box-shadow:0 0 0 5px rgba(24,144,255,.12);outline:none}.ant-slider-handle.ant-tooltip-open{border-color:#1890ff}.ant-slider-handle:after{bottom:-6px;content:\"\";left:-6px;position:absolute;right:-6px;top:-6px}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#69c0ff}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#69c0ff}.ant-slider-mark{font-size:14px;left:0;position:absolute;top:14px;width:100%}.ant-slider-mark-text{color:rgba(0,0,0,.45);cursor:pointer;display:inline-block;position:absolute;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;word-break:keep-all}.ant-slider-mark-text-active{color:rgba(0,0,0,.85)}.ant-slider-step{background:transparent;height:4px;pointer-events:none;position:absolute;width:100%}.ant-slider-dot{background-color:#fff;border:2px solid #f0f0f0;border-radius:50%;cursor:pointer;height:8px;position:absolute;top:-2px;width:8px}.ant-slider-dot-active{border-color:#8cc8ff}.ant-slider-disabled{cursor:not-allowed}.ant-slider-disabled .ant-slider-rail{background-color:#f5f5f5!important}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,.25)!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#fff;border-color:rgba(0,0,0,.25)!important;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-slider-rtl{direction:rtl}.ant-slider-rtl .ant-slider-mark{left:auto;right:0}";
777
+ injectCss.n(css$1,{});
778
+
779
+ var SliderBlock = function SliderBlock(_ref) {
780
+ var label = _ref.label,
781
+ onChange = _ref.onChange,
782
+ defaultValue = _ref.defaultValue,
783
+ min = _ref.min,
784
+ max = _ref.max,
785
+ marks = _ref.marks;
786
+ return /*#__PURE__*/React__default["default"].createElement("div", {
787
+ className: "flex items-center justify-between gap-3 py-3 first:pt-0 last:pb-0"
788
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
789
+ "data-cy": "style-fields-labels",
790
+ style: "body2"
791
+ }, label), /*#__PURE__*/React__default["default"].createElement(antd.Slider, {
792
+ className: "my-2 w-20",
793
+ defaultValue: defaultValue,
794
+ marks: marks,
795
+ max: max,
796
+ min: min,
797
+ onChange: onChange,
798
+ tooltip: {
799
+ formatter: neetoCist.noop
800
+ }
801
+ }));
802
+ };
803
+
804
+ var SwitchBlock = function SwitchBlock(_ref) {
805
+ var label = _ref.label,
806
+ name = _ref.name;
807
+ return /*#__PURE__*/React__default["default"].createElement("div", {
808
+ className: "flex items-center justify-between py-3 first:pt-0 last:pb-0"
809
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
810
+ "data-cy": "style-fields-labels",
811
+ style: "body2"
812
+ }, label), /*#__PURE__*/React__default["default"].createElement(formik$1.Switch, {
813
+ "data-cy": "enable-background-color-toggle",
814
+ name: name
815
+ }));
816
+ };
817
+
818
+ var Properties = function Properties(_ref) {
819
+ var handleChange = _ref.handleChange,
820
+ values = _ref.values;
821
+ var _useTranslation = reactI18next.useTranslation(),
822
+ t = _useTranslation.t;
823
+ var backgroundColor = values.backgroundColor,
824
+ questionColor = values.questionColor,
825
+ buttonBackgroundColor = values.buttonBackgroundColor,
826
+ buttonTextColor = values.buttonTextColor,
827
+ answerColor = values.answerColor,
828
+ backgroundImage = values.backgroundImage,
829
+ isContentBackgroundEnabled = values.isContentBackgroundEnabled,
830
+ contentBackgroundColor = values.contentBackgroundColor,
831
+ isDominantBackgroundColorEnabled = values.isDominantBackgroundColorEnabled,
832
+ backgroundOverlayOpacity = values.backgroundOverlayOpacity,
833
+ buttonBorderRadius = values.buttonBorderRadius;
834
+ var handleOverlayChange = function handleOverlayChange(value) {
835
+ handleChange("backgroundOverlayOpacity", value, Math.abs(value / 100));
836
+ if (value < 0) {
837
+ handleChange("backgroundOverlayColor", "#000000");
838
+ } else if (value > 0) {
839
+ handleChange("backgroundOverlayColor", "#ffffff");
840
+ }
841
+ };
842
+ React.useEffect(function () {
843
+ if (isContentBackgroundEnabled) {
844
+ var color = contentBackgroundColor || backgroundColor;
845
+ handleChange("contentBackgroundColor", color);
846
+ } else {
847
+ handleChange("contentBackgroundColor", contentBackgroundColor);
848
+ }
849
+ }, [isContentBackgroundEnabled]);
850
+ React.useEffect(function () {
851
+ if (isDominantBackgroundColorEnabled && backgroundImage !== null && backgroundImage !== void 0 && backgroundImage.dominantColor) {
852
+ handleChange("backgroundColor", backgroundImage.dominantColor, backgroundImage.dominantColor ? hexToRgb(backgroundImage.dominantColor) : "initial");
853
+ }
854
+ }, [isDominantBackgroundColorEnabled, backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.dominantColor]);
855
+ var handleColorChange = function handleColorChange(name) {
856
+ return function (_ref2) {
857
+ var hex = _ref2.hex,
858
+ rgb = _ref2.rgb;
859
+ handleChange(name, hex, "".concat(rgb.r, ", ").concat(rgb.g, ", ").concat(rgb.b));
860
+ };
861
+ };
862
+ var handleAnswerColorChange = function handleAnswerColorChange(_ref3) {
863
+ var hex = _ref3.hex,
864
+ rgb = _ref3.rgb;
865
+ handleColorChange("answerColor")({
866
+ hex: hex,
867
+ rgb: rgb
868
+ });
869
+ var contrastColor = getContrast(hex);
870
+ handleColorChange("answerTextColor")({
871
+ hex: contrastColor,
872
+ rgb: hexToRgb(contrastColor)
873
+ });
874
+ };
875
+ return /*#__PURE__*/React__default["default"].createElement(Card, {
876
+ title: t("neetoMolecules.themeSidebar.style")
877
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
878
+ className: "divide-y divide-gray-200"
879
+ }, /*#__PURE__*/React__default["default"].createElement(FontPickerBlock, {
880
+ label: t("neetoMolecules.themeSidebar.font"),
881
+ options: FONT_OPTIONS,
882
+ value: neetoCist.findBy({
883
+ value: values.fontFamily
884
+ }, FONT_OPTIONS) || null,
885
+ onChange: function onChange(_ref4) {
886
+ var value = _ref4.value;
887
+ return handleChange("fontFamily", value);
888
+ }
889
+ }), /*#__PURE__*/React__default["default"].createElement(ColorBlock, {
890
+ color: questionColor,
891
+ label: t("neetoMolecules.themeSidebar.questions"),
892
+ onChange: handleColorChange("questionColor")
893
+ }), /*#__PURE__*/React__default["default"].createElement(ColorBlock, {
894
+ color: answerColor,
895
+ label: t("neetoMolecules.themeSidebar.answerColor"),
896
+ onChange: handleAnswerColorChange
897
+ }), /*#__PURE__*/React__default["default"].createElement(ColorBlock, {
898
+ color: buttonBackgroundColor,
899
+ label: t("neetoMolecules.themeSidebar.buttons"),
900
+ onChange: handleColorChange("buttonBackgroundColor")
901
+ }), /*#__PURE__*/React__default["default"].createElement(ColorBlock, {
902
+ color: buttonTextColor,
903
+ label: t("neetoMolecules.themeSidebar.buttonText"),
904
+ onChange: handleColorChange("buttonTextColor")
905
+ }), /*#__PURE__*/React__default["default"].createElement(SliderBlock, {
906
+ defaultValue: buttonBorderRadius,
907
+ label: t("neetoMolecules.themeSidebar.buttonBorderRadius"),
908
+ max: 50,
909
+ min: 0,
910
+ onChange: function onChange(borderRadius) {
911
+ return handleChange("buttonBorderRadius", borderRadius, "".concat(borderRadius, "px"));
912
+ }
913
+ }), /*#__PURE__*/React__default["default"].createElement(ColorBlock, {
914
+ color: backgroundColor,
915
+ label: t("neetoMolecules.themeSidebar.backgroundColor"),
916
+ onChange: function onChange(_ref5) {
917
+ var hex = _ref5.hex,
918
+ rgb = _ref5.rgb;
919
+ handleColorChange("backgroundColor")({
920
+ hex: hex,
921
+ rgb: rgb
922
+ });
923
+ handleChange("isDominantBackgroundColorEnabled", false);
924
+ }
925
+ }), /*#__PURE__*/React__default["default"].createElement(SwitchBlock, {
926
+ label: t("neetoMolecules.themeSidebar.enableContentBackground"),
927
+ name: "isContentBackgroundEnabled"
928
+ }), isContentBackgroundEnabled && /*#__PURE__*/React__default["default"].createElement(ColorBlock, {
929
+ color: contentBackgroundColor,
930
+ label: t("neetoMolecules.themeSidebar.formBackgroundColor"),
931
+ onChange: handleColorChange("contentBackgroundColor")
932
+ }), /*#__PURE__*/React__default["default"].createElement(ImageBlock, {
933
+ imageData: backgroundImage,
934
+ label: t("neetoMolecules.themeSidebar.backgroundImage"),
935
+ name: "backgroundImage",
936
+ onChange: function onChange(name, value, variableValue) {
937
+ handleChange(name, value, variableValue);
938
+ handleChange("backgroundOverlayOpacity", 0);
939
+ }
940
+ }), (backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.url) && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(SliderBlock, {
941
+ defaultValue: backgroundOverlayOpacity,
942
+ label: t("neetoMolecules.themeSidebar.backgroundOverlay"),
943
+ marks: {
944
+ 0: " "
945
+ },
946
+ max: 100,
947
+ min: -100,
948
+ onChange: handleOverlayChange
949
+ }), /*#__PURE__*/React__default["default"].createElement(SwitchBlock, {
950
+ name: "isDominantBackgroundColorEnabled",
951
+ label: t("neetoMolecules.themeSidebar.enableDominantBackgroundColor")
952
+ }), /*#__PURE__*/React__default["default"].createElement(SelectBlock, {
953
+ label: t("neetoMolecules.themeSidebar.backgroundPosition"),
954
+ options: BACKGROUND_POSITION_OPTIONS,
955
+ placeholder: t("neetoMolecules.themeSidebar.left"),
956
+ value: neetoCist.findBy({
957
+ value: backgroundImage.backgroundPosition || "center"
958
+ }, BACKGROUND_POSITION_OPTIONS),
959
+ onChange: function onChange(_ref6) {
960
+ var value = _ref6.value;
961
+ return handleChange("backgroundImage.backgroundPosition", value);
962
+ }
963
+ })), /*#__PURE__*/React__default["default"].createElement(AlignmentBlock, {
964
+ label: t("neetoMolecules.themeSidebar.thankYouTextAlignment"),
965
+ name: "thankYouTextAlignment"
966
+ }), /*#__PURE__*/React__default["default"].createElement(AlignmentBlock, {
967
+ label: t("neetoMolecules.themeSidebar.welcomeTextAlignment"),
968
+ name: "welcomeTextAlignment"
969
+ }), /*#__PURE__*/React__default["default"].createElement(AlignmentBlock, {
970
+ label: t("neetoMolecules.themeSidebar.questionsTextAlignment"),
971
+ name: "questionsTextAlignment"
972
+ })));
973
+ };
974
+
975
+ var TextBlock = function TextBlock(_ref) {
976
+ var name = _ref.name,
977
+ _ref$autoFocus = _ref.autoFocus,
978
+ autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus;
979
+ return /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
980
+ autoFocus: autoFocus,
981
+ "data-cy": "text-block-input",
982
+ name: name
983
+ });
984
+ };
985
+
986
+ var Customize = function Customize(_ref) {
987
+ var theme = _ref.theme,
988
+ handleFormSubmit = _ref.handleFormSubmit;
989
+ var _useTranslation = reactI18next.useTranslation(),
990
+ t = _useTranslation.t;
991
+ var getInitialValues = function getInitialValues() {
992
+ return theme ? parseTheme(theme) : INITIAL_STATE;
993
+ };
994
+ return /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
995
+ formikProps: {
996
+ enableReinitialize: true,
997
+ initialValues: getInitialValues(),
998
+ onSubmit: handleFormSubmit,
999
+ validationSchema: THEME_VALIDATION_SCHEMA,
1000
+ validateOnBlur: true,
1001
+ validateOnChange: true
1002
+ }
1003
+ }, function (_ref2) {
1004
+ var values = _ref2.values,
1005
+ dirty = _ref2.dirty,
1006
+ isSubmitting = _ref2.isSubmitting,
1007
+ setFieldValue = _ref2.setFieldValue;
1008
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1009
+ className: "neeto-molecules-theme-design-sidebar__scroll"
1010
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1011
+ className: "flex flex-col gap-6 p-4"
1012
+ }, /*#__PURE__*/React__default["default"].createElement(Card, {
1013
+ title: t("neetoMolecules.themeSidebar.name")
1014
+ }, /*#__PURE__*/React__default["default"].createElement(TextBlock, {
1015
+ autoFocus: true,
1016
+ name: "name"
1017
+ })), /*#__PURE__*/React__default["default"].createElement(Properties, {
1018
+ handleChange: setFieldValue,
1019
+ values: values
1020
+ }), /*#__PURE__*/React__default["default"].createElement(Logo$1, {
1021
+ logo: values.logo,
1022
+ onChange: setFieldValue
1023
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
1024
+ className: "neeto-ui-bg-white neeto-ui-shadow-s sticky bottom-0 left-0 right-0 py-6 px-4"
1025
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
1026
+ "data-cy": "save-changes-button",
1027
+ disabled: !dirty && theme.id,
1028
+ label: t("neetoMolecules.common.actions.save"),
1029
+ loading: isSubmitting,
1030
+ type: "submit"
1031
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
1032
+ className: "ml-2",
1033
+ "data-cy": "reset-button",
1034
+ disabled: !dirty,
1035
+ label: t("neetoMolecules.common.actions.reset"),
1036
+ style: "text",
1037
+ type: "reset"
1038
+ })));
1039
+ });
1040
+ };
1041
+
1042
+ var _excluded = ["name"];
1043
+ var ThemeCard = function ThemeCard(_ref) {
1044
+ var _ref$active = _ref.active,
1045
+ active = _ref$active === void 0 ? false : _ref$active,
1046
+ isPreviewing = _ref.isPreviewing,
1047
+ onSetPreviewTheme = _ref.onSetPreviewTheme,
1048
+ onDeleteTheme = _ref.onDeleteTheme,
1049
+ onEditTheme = _ref.onEditTheme,
1050
+ onApplyTheme = _ref.onApplyTheme,
1051
+ onCloneTheme = _ref.onCloneTheme,
1052
+ theme = _ref.theme,
1053
+ isHighLightedTheme = _ref.isHighLightedTheme,
1054
+ isApplyingTheme = _ref.isApplyingTheme;
1055
+ var _useTranslation = reactI18next.useTranslation(),
1056
+ t = _useTranslation.t;
1057
+ var name = theme.name,
1058
+ styles = objectWithoutProperties._objectWithoutProperties(theme, _excluded);
1059
+ var handleApplyTheme = function handleApplyTheme() {
1060
+ if (isApplyingTheme) return;
1061
+ onApplyTheme(theme);
1062
+ };
1063
+ var moreMenuItems = [{
1064
+ "data-cy": "theme-edit-button",
1065
+ key: "theme-edit-button",
1066
+ onClick: function onClick() {
1067
+ return onEditTheme(theme);
1068
+ },
1069
+ label: t("neetoMolecules.common.actions.edit"),
1070
+ isVisible: neetoCist.isPresent(onEditTheme)
1071
+ }, {
1072
+ isVisible: neetoCist.isPresent(onCloneTheme),
1073
+ "data-cy": "theme-clone-button",
1074
+ key: "theme-clone-button",
1075
+ onClick: function onClick() {
1076
+ return onCloneTheme(theme);
1077
+ },
1078
+ label: t("neetoMolecules.themeSidebar.themeOptions.clone")
1079
+ }, {
1080
+ isVisible: neetoCist.isPresent(onDeleteTheme),
1081
+ type: "divider",
1082
+ key: "divider"
1083
+ }, {
1084
+ isVisible: neetoCist.isPresent(onDeleteTheme),
1085
+ "data-cy": "theme-delete-button",
1086
+ key: "theme-delete-button",
1087
+ onClick: function onClick() {
1088
+ return onDeleteTheme(theme);
1089
+ },
1090
+ label: t("neetoMolecules.themeSidebar.themeOptions.delete")
1091
+ }];
1092
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1093
+ className: "group space-y-2",
1094
+ "data-cy": active ? "active-theme-card" : "theme-card",
1095
+ id: theme.id
1096
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1097
+ className: classnames__default["default"]("neeto-molecules-theme-thumbnail neeto-ui-rounded-lg border transition-all duration-300 ease-in-out", {
1098
+ "neeto-ui-border-gray-400": !active,
1099
+ "neeto-ui-border-gray-800 neeto-molecules-theme-thumbnail--active": active,
1100
+ "neeto-molecules-theme-thumbnail--preview-active": isPreviewing,
1101
+ "neeto-molecules-theme-thumbnail--highlight-active": isHighLightedTheme
1102
+ }),
1103
+ style: {
1104
+ backgroundColor: ramda.path(["colorScheme", "backgroundColor"], styles),
1105
+ backgroundImage: ramda.path(["backgroundImage", "url"], styles) ? "url(".concat(ramda.path(["backgroundImage", "url"], styles), ")") : "initial",
1106
+ backgroundSize: "cover"
1107
+ },
1108
+ onClick: function onClick() {
1109
+ return onSetPreviewTheme(theme);
1110
+ }
1111
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1112
+ className: "group-hover:opacity-85 neeto-ui-rounded-lg cursor-pointer p-6 transition-all duration-300 ease-in-out"
1113
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1114
+ className: "mb-3"
1115
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
1116
+ style: "h3",
1117
+ weight: "semibold"
1118
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
1119
+ style: {
1120
+ color: ramda.path(["colorScheme", "questionColor"], styles)
1121
+ }
1122
+ }, t("neetoMolecules.themeSidebar.themeCard.question"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
1123
+ className: "neeto-ui-text-gray-600",
1124
+ style: "body2"
1125
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
1126
+ style: {
1127
+ color: ramda.path(["colorScheme", "answerColor"], styles)
1128
+ }
1129
+ }, t("neetoMolecules.themeSidebar.themeCard.answer")))), /*#__PURE__*/React__default["default"].createElement("div", {
1130
+ className: "neeto-ui-rounded-lg h-5 w-12",
1131
+ style: {
1132
+ backgroundColor: ramda.path(["colorScheme", "buttonBackgroundColor"], styles)
1133
+ }
1134
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
1135
+ className: "flex items-start justify-between gap-1"
1136
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
1137
+ className: "min-w-0 flex-grow break-words pt-1 line-clamp-2",
1138
+ "data-cy": "theme-name",
1139
+ lineHeight: "snug",
1140
+ style: "body2"
1141
+ }, name), /*#__PURE__*/React__default["default"].createElement("div", {
1142
+ className: "flex items-center gap-2"
1143
+ }, active ? /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, {
1144
+ className: "flex-shrink-0",
1145
+ "data-cy": "active-theme-label",
1146
+ label: t("neetoMolecules.themeSidebar.active"),
1147
+ style: "success"
1148
+ }) : /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
1149
+ className: "flex-shrink-0",
1150
+ "data-cy": "apply-theme-button",
1151
+ disabled: isApplyingTheme,
1152
+ label: t("neetoMolecules.common.actions.apply"),
1153
+ loading: isApplyingTheme,
1154
+ size: "small",
1155
+ style: "link",
1156
+ onClick: handleApplyTheme
1157
+ }), /*#__PURE__*/React__default["default"].createElement(MoreDropdown, {
1158
+ buttonProps: {
1159
+ buttonSize: "small"
1160
+ },
1161
+ menuItems: moreMenuItems,
1162
+ dropdownButtonProps: {
1163
+ "data-cy": "theme-card-options",
1164
+ strategy: "fixed"
1165
+ }
1166
+ }))));
1167
+ };
1168
+
1169
+ var Themes = function Themes(_ref) {
1170
+ var currentTheme = _ref.currentTheme,
1171
+ onCloneTheme = _ref.onCloneTheme,
1172
+ _ref$customThemes = _ref.customThemes,
1173
+ customThemes = _ref$customThemes === void 0 ? [] : _ref$customThemes,
1174
+ _ref$defaultThemes = _ref.defaultThemes,
1175
+ defaultThemes = _ref$defaultThemes === void 0 ? [] : _ref$defaultThemes,
1176
+ onDeleteTheme = _ref.onDeleteTheme,
1177
+ onEditTheme = _ref.onEditTheme,
1178
+ onApplyTheme = _ref.onApplyTheme,
1179
+ previewingTheme = _ref.previewingTheme,
1180
+ setPreviewingTheme = _ref.setPreviewingTheme,
1181
+ themeToHighlight = _ref.themeToHighlight,
1182
+ didScrollActiveThemeIntoView = _ref.didScrollActiveThemeIntoView,
1183
+ applyingThemeId = _ref.applyingThemeId;
1184
+ var _useTranslation = reactI18next.useTranslation(),
1185
+ t = _useTranslation.t;
1186
+ var _useState = React.useState(""),
1187
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
1188
+ searchQuery = _useState2[0],
1189
+ setSearchQuery = _useState2[1];
1190
+ var filteredDefaultThemes = defaultThemes.filter(function (theme) {
1191
+ return theme.name.toLowerCase().includes(searchQuery.toLowerCase());
1192
+ });
1193
+ var filteredThemes = customThemes.filter(function (theme) {
1194
+ return theme.name.toLowerCase().includes(searchQuery.toLowerCase());
1195
+ });
1196
+ var isSearchFieldVisible = (customThemes === null || customThemes === void 0 ? void 0 : customThemes.length) + (defaultThemes === null || defaultThemes === void 0 ? void 0 : defaultThemes.length) > 10;
1197
+ React.useEffect(function () {
1198
+ if (didScrollActiveThemeIntoView.current || !(currentTheme !== null && currentTheme !== void 0 && currentTheme.id)) return;
1199
+ didScrollActiveThemeIntoView.current = true;
1200
+ setTimeout(function () {
1201
+ scrollElementIntoView(currentTheme.id);
1202
+ }, 200);
1203
+ }, [didScrollActiveThemeIntoView, currentTheme === null || currentTheme === void 0 ? void 0 : currentTheme.id]);
1204
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1205
+ className: "neeto-molecules-theme-design-sidebar__scroll"
1206
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1207
+ className: "mb-6 space-y-3"
1208
+ }, isSearchFieldVisible && /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
1209
+ autoFocus: true,
1210
+ autoComplete: "off",
1211
+ className: "mt-1 mb-4 px-6",
1212
+ placeholder: t("neetoMolecules.themeSidebar.searchThemes"),
1213
+ prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null),
1214
+ type: "search",
1215
+ value: searchQuery,
1216
+ onChange: function onChange(e) {
1217
+ return setSearchQuery(e.target.value);
1218
+ }
1219
+ }), ramda.isEmpty(filteredThemes) && ramda.isEmpty(filteredDefaultThemes) && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
1220
+ className: "text-center",
1221
+ style: "body2"
1222
+ }, t("neetoMolecules.common.notFound.title", {
1223
+ entity: t("neetoMolecules.themeSidebar.theme", {
1224
+ count: 2
1225
+ })
1226
+ })), neetoCist.isNotEmpty(filteredDefaultThemes) && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
1227
+ className: "my-4 px-4 uppercase md:px-5 lg:px-6",
1228
+ "data-cy": "system-themes-header",
1229
+ style: "h6",
1230
+ weight: "semibold"
1231
+ }, t("neetoMolecules.themeSidebar.systemThemes")), /*#__PURE__*/React__default["default"].createElement("div", {
1232
+ className: "flex flex-col gap-4 px-4 md:px-5 lg:px-6"
1233
+ }, filteredDefaultThemes.map(function (theme) {
1234
+ return /*#__PURE__*/React__default["default"].createElement(ThemeCard, {
1235
+ onApplyTheme: onApplyTheme,
1236
+ onCloneTheme: onCloneTheme,
1237
+ theme: theme,
1238
+ active: (currentTheme === null || currentTheme === void 0 ? void 0 : currentTheme.id) === theme.id,
1239
+ isApplyingTheme: applyingThemeId === theme.id,
1240
+ isPreviewing: (previewingTheme === null || previewingTheme === void 0 ? void 0 : previewingTheme.id) === theme.id,
1241
+ key: theme.id,
1242
+ onSetPreviewTheme: setPreviewingTheme
1243
+ });
1244
+ })))), neetoCist.isNotEmpty(filteredThemes) && /*#__PURE__*/React__default["default"].createElement("div", {
1245
+ className: "mb-6 space-y-3"
1246
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
1247
+ className: "my-4 px-4 uppercase md:px-5 lg:px-6",
1248
+ "data-cy": "custom-themes-header",
1249
+ style: "h6",
1250
+ weight: "semibold"
1251
+ }, t("neetoMolecules.themeSidebar.customThemes")), /*#__PURE__*/React__default["default"].createElement("div", {
1252
+ className: "flex flex-col gap-4 px-4 md:px-5 lg:px-6"
1253
+ }, filteredThemes.map(function (theme) {
1254
+ var isActive = (currentTheme === null || currentTheme === void 0 ? void 0 : currentTheme.id) === theme.id;
1255
+ return /*#__PURE__*/React__default["default"].createElement(ThemeCard, {
1256
+ onApplyTheme: onApplyTheme,
1257
+ onCloneTheme: onCloneTheme,
1258
+ onEditTheme: onEditTheme,
1259
+ theme: theme,
1260
+ active: isActive,
1261
+ isHighLightedTheme: theme.id === themeToHighlight,
1262
+ isPreviewing: (previewingTheme === null || previewingTheme === void 0 ? void 0 : previewingTheme.id) === theme.id,
1263
+ key: theme.id,
1264
+ onDeleteTheme: !isActive ? onDeleteTheme : null,
1265
+ onSetPreviewTheme: setPreviewingTheme
1266
+ });
1267
+ }))));
1268
+ };
1269
+
1270
+ var css = ".neeto-molecules-theme-design-sidebar{background-color:rgb(var(--neeto-ui-white));box-shadow:var(--neeto-ui-shadow-s);height:100%;width:320px}@media screen and (max-width:1024px){.neeto-molecules-theme-design-sidebar{width:280px}}@media screen and (max-width:768px){.neeto-molecules-theme-design-sidebar{width:240px}}.neeto-molecules-theme-design-sidebar .neeto-molecules-theme-design-sidebar__header{padding-bottom:8px;padding-top:16px}.neeto-molecules-theme-design-sidebar .neeto-molecules-theme-design-sidebar__scroll{height:94%;overflow-y:auto}.neeto-molecules-theme-design-sidebar .neeto-molecules-theme-design-sidebar__scroll .neeto-ui-colorpicker__target .neeto-ui-colorpicker-target__code{display:none}.neeto-molecules-theme-design-preview__wrapper{background-color:rgb(var(--neeto-ui-gray-100));flex-grow:1;height:100%;position:relative}.neeto-molecules-theme-thumbnail--active{border-color:rgb(var(--neeto-ui-primary-500))!important;box-shadow:0 0 0 1px rgb(var(--neeto-ui-primary-500))!important}.neeto-molecules-theme-thumbnail--preview-active{border-color:rgb(var(--neeto-ui-gray-700));box-shadow:0 0 0 1px rgb(var(--neeto-ui-gray-700))}.neeto-molecules-theme-thumbnail--highlight-active{border-color:rgb(var(--neeto-ui-success-500));box-shadow:0 0 0 1px rgb(var(--neeto-ui-success-500));transition:border-color box-shadow .1s .1s}";
1271
+ injectCss.n(css,{});
1272
+
1273
+ var TitleBar = function TitleBar(_ref) {
1274
+ var currentScreen = _ref.currentScreen,
1275
+ handleBackPress = _ref.handleBackPress,
1276
+ handleCreateNewTheme = _ref.handleCreateNewTheme,
1277
+ isNewTheme = _ref.isNewTheme;
1278
+ var _useTranslation = reactI18next.useTranslation(),
1279
+ t = _useTranslation.t;
1280
+ if (currentScreen === DESIGN_SCREENS.CUSTOMIZE) {
1281
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1282
+ className: classnames__default["default"]("neeto-molecules-theme-design-sidebar__header px-4")
1283
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1284
+ className: "flex items-center justify-start space-x-2"
1285
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
1286
+ "data-cy": "customise-themes-back-button",
1287
+ icon: neetoIcons.LeftArrow,
1288
+ iconPosition: "left",
1289
+ style: "text",
1290
+ tooltipProps: {
1291
+ content: t("neetoMolecules.themeSidebar.backToThemes"),
1292
+ position: "top"
1293
+ },
1294
+ onClick: handleBackPress
1295
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
1296
+ "data-cy": "themes-header",
1297
+ lineHeight: "normal",
1298
+ style: "h3",
1299
+ weight: "semibold"
1300
+ }, isNewTheme ? t("neetoMolecules.themeSidebar.createTheme.title") : t("neetoMolecules.themeSidebar.editTheme.title"))));
1301
+ }
1302
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1303
+ className: classnames__default["default"]("neeto-molecules-theme-design-sidebar__header px-4 md:px-5 lg:px-6")
1304
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1305
+ className: "flex items-center justify-between space-x-2"
1306
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
1307
+ "data-cy": "themes-header",
1308
+ lineHeight: "normal",
1309
+ style: "h3",
1310
+ weight: "semibold"
1311
+ }, neetoCist.capitalize(t("neetoMolecules.themeSidebar.theme", {
1312
+ count: 2
1313
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
1314
+ className: "self-end"
1315
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
1316
+ "data-cy": "customise-themes-add-theme-button",
1317
+ icon: neetoIcons.Plus,
1318
+ iconPosition: "left",
1319
+ style: "text",
1320
+ tooltipProps: {
1321
+ content: t("neetoMolecules.themeSidebar.addNewTheme"),
1322
+ position: "top"
1323
+ },
1324
+ onClick: handleCreateNewTheme
1325
+ }))));
1326
+ };
1327
+
1328
+ 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; }
1329
+ 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._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; }
1330
+ var ThemeSidebar = function ThemeSidebar(_ref) {
1331
+ var defaultThemes = _ref.defaultThemes,
1332
+ customThemes = _ref.customThemes,
1333
+ createTheme = _ref.createTheme,
1334
+ deleteTheme = _ref.deleteTheme,
1335
+ editTheme = _ref.editTheme,
1336
+ applyTheme = _ref.applyTheme,
1337
+ currentTheme = _ref.currentTheme,
1338
+ isLoadingThemes = _ref.isLoadingThemes,
1339
+ applyingThemeId = _ref.applyingThemeId;
1340
+ var _useTranslation = reactI18next.useTranslation(),
1341
+ t = _useTranslation.t;
1342
+ var _useState = React.useState(DESIGN_SCREENS.THEMES),
1343
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
1344
+ currentScreen = _useState2[0],
1345
+ setCurrentScreen = _useState2[1];
1346
+ var _useState3 = React.useState(null),
1347
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
1348
+ previewingTheme = _useState4[0],
1349
+ setPreviewingTheme = _useState4[1];
1350
+ var _useState5 = React.useState(null),
1351
+ _useState6 = slicedToArray._slicedToArray(_useState5, 2),
1352
+ themeToHighlight = _useState6[0],
1353
+ setThemeToHighlight = _useState6[1];
1354
+ var didScrollActiveThemeIntoView = React.useRef(null);
1355
+ React.useEffect(function () {
1356
+ isLoadingThemes && setCurrentScreen(DESIGN_SCREENS.LOADING);
1357
+ }, [isLoadingThemes]);
1358
+ React.useEffect(function () {
1359
+ !previewingTheme && setCurrentScreen(DESIGN_SCREENS.THEMES);
1360
+ }, [previewingTheme]);
1361
+ var handleEditTheme = function handleEditTheme(theme) {
1362
+ setPreviewingTheme(theme);
1363
+ setCurrentScreen(DESIGN_SCREENS.CUSTOMIZE);
1364
+ };
1365
+ var handleBackPress = function handleBackPress() {
1366
+ setCurrentScreen(DESIGN_SCREENS.THEMES);
1367
+ setPreviewingTheme(null);
1368
+ };
1369
+ var handleCreateNewTheme = function handleCreateNewTheme() {
1370
+ setPreviewingTheme(_objectSpread(_objectSpread({}, defaultThemes[0]), {}, {
1371
+ id: null,
1372
+ name: t("neetoMolecules.themeSidebar.defaultThemeName")
1373
+ }));
1374
+ setCurrentScreen(DESIGN_SCREENS.CUSTOMIZE);
1375
+ };
1376
+ var highlightTheme = function highlightTheme(themeToHighlight) {
1377
+ setTimeout(function () {
1378
+ scrollElementIntoView(themeToHighlight.id);
1379
+ }, 1500);
1380
+ setTimeout(function () {
1381
+ setThemeToHighlight(null);
1382
+ }, 4000);
1383
+ setThemeToHighlight(themeToHighlight.id);
1384
+ };
1385
+ var createThemeCallback = function createThemeCallback(createdTheme) {
1386
+ setCurrentScreen(DESIGN_SCREENS.THEMES);
1387
+ setPreviewingTheme(createdTheme.id);
1388
+ highlightTheme(createdTheme);
1389
+ };
1390
+ var handleCloneTheme = function handleCloneTheme(data) {
1391
+ var themeToClone = _objectSpread(_objectSpread({}, data), {}, {
1392
+ name: "".concat(data.name, " - clone")
1393
+ });
1394
+ createTheme(themeToClone, createThemeCallback);
1395
+ };
1396
+ var handleFormSubmit = function handleFormSubmit(values) {
1397
+ var formattedValues = transformTheme(values);
1398
+ if (!(previewingTheme !== null && previewingTheme !== void 0 && previewingTheme.id)) {
1399
+ createTheme(formattedValues, createThemeCallback);
1400
+ } else {
1401
+ editTheme(_objectSpread(_objectSpread({}, formattedValues), {}, {
1402
+ id: previewingTheme.id
1403
+ }));
1404
+ }
1405
+ };
1406
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1407
+ className: "neeto-molecules-theme-design-sidebar neeto-ui-border-gray-200 border-r"
1408
+ }, /*#__PURE__*/React__default["default"].createElement(TitleBar, {
1409
+ currentScreen: currentScreen,
1410
+ handleBackPress: handleBackPress,
1411
+ handleCreateNewTheme: handleCreateNewTheme,
1412
+ isNewTheme: !(previewingTheme !== null && previewingTheme !== void 0 && previewingTheme.id)
1413
+ }), currentScreen === DESIGN_SCREENS.LOADING && /*#__PURE__*/React__default["default"].createElement("div", {
1414
+ className: "flex h-full w-full items-center justify-center"
1415
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)), currentScreen === DESIGN_SCREENS.THEMES && /*#__PURE__*/React__default["default"].createElement(Themes, {
1416
+ applyingThemeId: applyingThemeId,
1417
+ currentTheme: currentTheme,
1418
+ customThemes: customThemes,
1419
+ defaultThemes: defaultThemes,
1420
+ didScrollActiveThemeIntoView: didScrollActiveThemeIntoView,
1421
+ highlightTheme: highlightTheme,
1422
+ previewingTheme: previewingTheme,
1423
+ setPreviewingTheme: setPreviewingTheme,
1424
+ themeToHighlight: themeToHighlight,
1425
+ onApplyTheme: applyTheme,
1426
+ onCloneTheme: handleCloneTheme,
1427
+ onDeleteTheme: deleteTheme,
1428
+ onEditTheme: handleEditTheme
1429
+ }), currentScreen === DESIGN_SCREENS.CUSTOMIZE && /*#__PURE__*/React__default["default"].createElement(Customize, {
1430
+ handleFormSubmit: handleFormSubmit,
1431
+ theme: previewingTheme
1432
+ }));
1433
+ };
1434
+
1435
+ module.exports = ThemeSidebar;
1436
+ //# sourceMappingURL=ThemeSidebar.js.map