@bigbinary/neeto-molecules 1.1.16 → 1.1.18

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 (392) hide show
  1. package/dist/AutoSaveInput.js +658 -0
  2. package/dist/AutoSaveInput.js.map +1 -0
  3. package/dist/Breadcrumbs.js +38 -0
  4. package/dist/Breadcrumbs.js.map +1 -0
  5. package/dist/BrowserSupport.js +418 -0
  6. package/dist/BrowserSupport.js.map +1 -0
  7. package/dist/Builder.js +662 -0
  8. package/dist/Builder.js.map +1 -0
  9. package/dist/CalendarView.js +538 -0
  10. package/dist/CalendarView.js.map +1 -0
  11. package/dist/Codeblock.js +236 -0
  12. package/dist/Codeblock.js.map +1 -0
  13. package/dist/{Columns/index.js → Columns.js} +130 -13
  14. package/dist/Columns.js.map +1 -0
  15. package/dist/{ConfirmationModal/index.js → ConfirmationModal.js} +20 -8
  16. package/dist/ConfirmationModal.js.map +1 -0
  17. package/dist/Container.js +1211 -0
  18. package/dist/Container.js.map +1 -0
  19. package/dist/CopyToClipboardButton.js +209 -0
  20. package/dist/CopyToClipboardButton.js.map +1 -0
  21. package/dist/CustomDomain.js +688 -0
  22. package/dist/CustomDomain.js.map +1 -0
  23. package/dist/CustomDomainDashboard.js +2283 -0
  24. package/dist/CustomDomainDashboard.js.map +1 -0
  25. package/dist/{DateFormat/index.js → DateFormat.js} +25 -8
  26. package/dist/DateFormat.js.map +1 -0
  27. package/dist/DateRangeFilter.js +229 -0
  28. package/dist/DateRangeFilter.js.map +1 -0
  29. package/dist/DynamicVariables.js +183 -0
  30. package/dist/DynamicVariables.js.map +1 -0
  31. package/dist/EmailForm.js +2292 -0
  32. package/dist/EmailForm.js.map +1 -0
  33. package/dist/EmailPreview.js +1353 -0
  34. package/dist/EmailPreview.js.map +1 -0
  35. package/dist/{ErrorPage/constants.js → ErrorPage.js} +137 -36
  36. package/dist/ErrorPage.js.map +1 -0
  37. package/dist/Header.js +122 -0
  38. package/dist/Header.js.map +1 -0
  39. package/dist/IconPicker.js +313 -0
  40. package/dist/IconPicker.js.map +1 -0
  41. package/dist/ImageWithFallback.js +181 -0
  42. package/dist/ImageWithFallback.js.map +1 -0
  43. package/dist/IntegrationCard.js +343 -0
  44. package/dist/IntegrationCard.js.map +1 -0
  45. package/dist/IntegrationDisconnectAlert.js +80 -0
  46. package/dist/IntegrationDisconnectAlert.js.map +1 -0
  47. package/dist/{IntegrationWalkthroughModal/index.js → IntegrationWalkthroughModal.js} +8 -6
  48. package/dist/IntegrationWalkthroughModal.js.map +1 -0
  49. package/dist/IpRestriction.js +857 -0
  50. package/dist/IpRestriction.js.map +1 -0
  51. package/dist/KeyboardShortcuts.js +359 -0
  52. package/dist/KeyboardShortcuts.js.map +1 -0
  53. package/dist/LoginPage.js +593 -0
  54. package/dist/LoginPage.js.map +1 -0
  55. package/dist/MenuBar.js +1461 -0
  56. package/dist/MenuBar.js.map +1 -0
  57. package/dist/Metadata.js +206 -0
  58. package/dist/Metadata.js.map +1 -0
  59. package/dist/{MoreDropdown/index.js → MoreDropdown.js} +102 -9
  60. package/dist/MoreDropdown.js.map +1 -0
  61. package/dist/NavigationHeader.js +690 -0
  62. package/dist/NavigationHeader.js.map +1 -0
  63. package/dist/NeetoWidget.js +1333 -0
  64. package/dist/NeetoWidget.js.map +1 -0
  65. package/dist/PageLoader.js +134 -0
  66. package/dist/PageLoader.js.map +1 -0
  67. package/dist/PhoneNumber.js +365 -0
  68. package/dist/PhoneNumber.js.map +1 -0
  69. package/dist/PublishBlock.js +158 -0
  70. package/dist/PublishBlock.js.map +1 -0
  71. package/dist/Rename.js +450 -0
  72. package/dist/Rename.js.map +1 -0
  73. package/dist/ResponsiveDevicePicker.js +194 -0
  74. package/dist/ResponsiveDevicePicker.js.map +1 -0
  75. package/dist/Schedule.js +1046 -0
  76. package/dist/Schedule.js.map +1 -0
  77. package/dist/Scrollable.js +122 -0
  78. package/dist/Scrollable.js.map +1 -0
  79. package/dist/Search.js +151 -0
  80. package/dist/Search.js.map +1 -0
  81. package/dist/Security.js +1835 -0
  82. package/dist/Security.js.map +1 -0
  83. package/dist/SendToFields.js +601 -0
  84. package/dist/SendToFields.js.map +1 -0
  85. package/dist/Settings.js +435 -0
  86. package/dist/Settings.js.map +1 -0
  87. package/dist/ShareViaEmail.js +2277 -0
  88. package/dist/ShareViaEmail.js.map +1 -0
  89. package/dist/ShareViaLink.js +628 -0
  90. package/dist/ShareViaLink.js.map +1 -0
  91. package/dist/Sidebar.js +972 -0
  92. package/dist/Sidebar.js.map +1 -0
  93. package/dist/SubHeader.js +216 -0
  94. package/dist/SubHeader.js.map +1 -0
  95. package/dist/{TableWrapper/index.js → TableWrapper.js} +6 -3
  96. package/dist/TableWrapper.js.map +1 -0
  97. package/dist/ThemeSidebar.js +1984 -0
  98. package/dist/ThemeSidebar.js.map +1 -0
  99. package/dist/TimeFormat.js +47 -0
  100. package/dist/TimeFormat.js.map +1 -0
  101. package/dist/TimezoneMismatchModal.js +168 -0
  102. package/dist/TimezoneMismatchModal.js.map +1 -0
  103. package/dist/ToggleFeatureCard.js +323 -0
  104. package/dist/ToggleFeatureCard.js.map +1 -0
  105. package/package.json +22 -13
  106. package/dist/AutoSaveInput/autosaveinput.scss +0 -15
  107. package/dist/AutoSaveInput/constants.js +0 -13
  108. package/dist/AutoSaveInput/index.js +0 -124
  109. package/dist/AutoSaveInput/utils.js +0 -10
  110. package/dist/Breadcrumbs/breadcrumbs.scss +0 -33
  111. package/dist/Breadcrumbs/index.js +0 -31
  112. package/dist/BrowserSupport/Callout.js +0 -15
  113. package/dist/BrowserSupport/ContactUs.js +0 -21
  114. package/dist/BrowserSupport/DownloadLink.js +0 -17
  115. package/dist/BrowserSupport/PartialSupportedBrowserVersion.js +0 -17
  116. package/dist/BrowserSupport/UnknownBrowser.js +0 -13
  117. package/dist/BrowserSupport/UnsupportedBrowser.js +0 -24
  118. package/dist/BrowserSupport/UnsupportedBrowserMessage.js +0 -22
  119. package/dist/BrowserSupport/UnsupportedBrowserVersion.js +0 -27
  120. package/dist/BrowserSupport/UnsupportedVersionMessage.js +0 -30
  121. package/dist/BrowserSupport/browsersupport.scss +0 -71
  122. package/dist/BrowserSupport/constants.js +0 -63
  123. package/dist/BrowserSupport/index.js +0 -58
  124. package/dist/BrowserSupport/utils.js +0 -32
  125. package/dist/Builder/Body.js +0 -9
  126. package/dist/Builder/ElementsPanel/ElementsList/Element.js +0 -27
  127. package/dist/Builder/ElementsPanel/ElementsList/Section.js +0 -28
  128. package/dist/Builder/ElementsPanel/ElementsList/TitleBar.js +0 -28
  129. package/dist/Builder/ElementsPanel/ElementsList/index.js +0 -63
  130. package/dist/Builder/ElementsPanel/SelectedElementsList/SelectedElement.js +0 -73
  131. package/dist/Builder/ElementsPanel/SelectedElementsList/TitleBar.js +0 -50
  132. package/dist/Builder/ElementsPanel/SelectedElementsList/index.js +0 -91
  133. package/dist/Builder/ElementsPanel/index.js +0 -70
  134. package/dist/Builder/PropertiesPanel/EmptyProperty.js +0 -21
  135. package/dist/Builder/PropertiesPanel/Skeleton.js +0 -24
  136. package/dist/Builder/PropertiesPanel/index.js +0 -12
  137. package/dist/Builder/index.js +0 -3
  138. package/dist/Builder/styles.scss +0 -84
  139. package/dist/CalendarView/CustomDatePicker.js +0 -87
  140. package/dist/CalendarView/Header.js +0 -53
  141. package/dist/CalendarView/constants.js +0 -19
  142. package/dist/CalendarView/index.js +0 -83
  143. package/dist/CalendarView/utils.js +0 -50
  144. package/dist/Codeblock/index.js +0 -30
  145. package/dist/Columns/utils.js +0 -20
  146. package/dist/ConfirmationModal/constants.js +0 -3
  147. package/dist/ConfirmationModal/utils.js +0 -6
  148. package/dist/Container/container.scss +0 -21
  149. package/dist/Container/index.js +0 -23
  150. package/dist/CopyToClipboardButton/constants.js +0 -13
  151. package/dist/CopyToClipboardButton/copyToClipboard.scss +0 -22
  152. package/dist/CopyToClipboardButton/index.js +0 -59
  153. package/dist/CustomDomain/index.js +0 -98
  154. package/dist/CustomDomainDashboard/DeleteAlert.js +0 -28
  155. package/dist/CustomDomainDashboard/Header.js +0 -32
  156. package/dist/CustomDomainDashboard/Manage/Record.js +0 -42
  157. package/dist/CustomDomainDashboard/Manage/StatusInfo.js +0 -21
  158. package/dist/CustomDomainDashboard/Manage/TagBlock.js +0 -36
  159. package/dist/CustomDomainDashboard/Manage/constants.js +0 -4
  160. package/dist/CustomDomainDashboard/Manage/index.js +0 -125
  161. package/dist/CustomDomainDashboard/Manage/utils.js +0 -8
  162. package/dist/CustomDomainDashboard/api.js +0 -35
  163. package/dist/CustomDomainDashboard/constants.js +0 -2
  164. package/dist/CustomDomainDashboard/index.js +0 -118
  165. package/dist/CustomDomainDashboard/useCustomDomainApi.js +0 -71
  166. package/dist/CustomDomainDashboard/utils.js +0 -84
  167. package/dist/DateRangeFilter/index.js +0 -60
  168. package/dist/DateRangeFilter/utils.js +0 -113
  169. package/dist/DynamicVariables/dynamic-variables.scss +0 -34
  170. package/dist/DynamicVariables/index.js +0 -59
  171. package/dist/DynamicVariables/utils.js +0 -37
  172. package/dist/EmailForm/EmailForm.js +0 -98
  173. package/dist/EmailForm/EmailFormProvider.js +0 -45
  174. package/dist/EmailForm/EmailPreview.js +0 -129
  175. package/dist/EmailForm/ReplyToField.js +0 -55
  176. package/dist/EmailForm/SendToField.js +0 -28
  177. package/dist/EmailForm/SubjectField.js +0 -64
  178. package/dist/EmailForm/constants.js +0 -33
  179. package/dist/EmailForm/contexts/EmailForm.js +0 -7
  180. package/dist/EmailForm/index.js +0 -4
  181. package/dist/EmailForm/utils.js +0 -10
  182. package/dist/EmailPreview/index.js +0 -2
  183. package/dist/ErrorPage/index.js +0 -78
  184. package/dist/Header/Breadcrumbs.js +0 -31
  185. package/dist/Header/Dropdown.js +0 -12
  186. package/dist/Header/constants.js +0 -6
  187. package/dist/Header/header.scss +0 -121
  188. package/dist/Header/index.js +0 -61
  189. package/dist/IconPicker/Icon.js +0 -34
  190. package/dist/IconPicker/NoResults.js +0 -12
  191. package/dist/IconPicker/constants.js +0 -8
  192. package/dist/IconPicker/icon-picker.scss +0 -1
  193. package/dist/IconPicker/index.js +0 -164
  194. package/dist/ImageWithFallback/ImagePlaceholder.js +0 -16
  195. package/dist/ImageWithFallback/index.js +0 -31
  196. package/dist/IntegrationCard/Dropdown.js +0 -45
  197. package/dist/IntegrationCard/Status.js +0 -25
  198. package/dist/IntegrationCard/index.js +0 -128
  199. package/dist/IntegrationDisconnectAlert/index.js +0 -36
  200. package/dist/IpRestriction/AllowedIpRanges.js +0 -75
  201. package/dist/IpRestriction/CurrentIp.js +0 -26
  202. package/dist/IpRestriction/FormRow.js +0 -84
  203. package/dist/IpRestriction/Row.js +0 -91
  204. package/dist/IpRestriction/apis/allowed_ip_ranges.js +0 -28
  205. package/dist/IpRestriction/apis/current_ip.js +0 -11
  206. package/dist/IpRestriction/apis/ip_restriction.js +0 -16
  207. package/dist/IpRestriction/constants.js +0 -20
  208. package/dist/IpRestriction/hooks/reactQuery/useAllowedIpRanges.js +0 -34
  209. package/dist/IpRestriction/hooks/reactQuery/useCurrentIp.js +0 -10
  210. package/dist/IpRestriction/hooks/reactQuery/useIpRestrictions.js +0 -18
  211. package/dist/IpRestriction/index.js +0 -102
  212. package/dist/IpRestriction/utils.js +0 -85
  213. package/dist/KeyboardShortcuts/Pane/HotKey.js +0 -44
  214. package/dist/KeyboardShortcuts/Pane/HotKeyList.js +0 -42
  215. package/dist/KeyboardShortcuts/Pane/constants.js +0 -25
  216. package/dist/KeyboardShortcuts/Pane/index.js +0 -61
  217. package/dist/KeyboardShortcuts/Pane/keyboard-shortcuts.scss +0 -5
  218. package/dist/KeyboardShortcuts/Pane/utils.js +0 -66
  219. package/dist/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js +0 -31
  220. package/dist/KeyboardShortcuts/index.js +0 -9
  221. package/dist/LoginPage/Form.js +0 -57
  222. package/dist/LoginPage/constants.js +0 -12
  223. package/dist/LoginPage/index.js +0 -103
  224. package/dist/MenuBar/AddNew.js +0 -25
  225. package/dist/MenuBar/Block.js +0 -60
  226. package/dist/MenuBar/Item.js +0 -32
  227. package/dist/MenuBar/Search.js +0 -39
  228. package/dist/MenuBar/SubTitle.js +0 -23
  229. package/dist/MenuBar/index.js +0 -46
  230. package/dist/MenuBar/menubar.scss +0 -154
  231. package/dist/Metadata/Block.js +0 -30
  232. package/dist/Metadata/DetailsBlock.js +0 -86
  233. package/dist/Metadata/constants.js +0 -9
  234. package/dist/Metadata/index.js +0 -29
  235. package/dist/Metadata/metadata.scss +0 -15
  236. package/dist/MoreDropdown/constants.js +0 -25
  237. package/dist/NavigationHeader/LeftBlock.js +0 -32
  238. package/dist/NavigationHeader/Navigation.js +0 -24
  239. package/dist/NavigationHeader/RightBlock.js +0 -68
  240. package/dist/NavigationHeader/constants.js +0 -11
  241. package/dist/NavigationHeader/index.js +0 -19
  242. package/dist/NavigationHeader/navigation-header.scss +0 -3
  243. package/dist/NeetoWidget/CodeBlock.js +0 -57
  244. package/dist/NeetoWidget/CodeSnippet.js +0 -119
  245. package/dist/NeetoWidget/EmbedCode.js +0 -281
  246. package/dist/NeetoWidget/Main.js +0 -19
  247. package/dist/NeetoWidget/SelectionSwitches/TooltipSwitch.js +0 -25
  248. package/dist/NeetoWidget/SelectionSwitches/index.js +0 -44
  249. package/dist/NeetoWidget/SyntaxHighlighter.js +0 -17
  250. package/dist/NeetoWidget/api.js +0 -20
  251. package/dist/NeetoWidget/constants.js +0 -62
  252. package/dist/NeetoWidget/hooks/useForceUpdate.js +0 -14
  253. package/dist/NeetoWidget/index.js +0 -7
  254. package/dist/NeetoWidget/mutations.js +0 -9
  255. package/dist/NeetoWidget/queries.js +0 -32
  256. package/dist/NeetoWidget/utils.js +0 -83
  257. package/dist/PageLoader/index.js +0 -81
  258. package/dist/PageLoader/page-loader.scss +0 -95
  259. package/dist/PhoneNumber/CountryPicker/SingleValue.js +0 -21
  260. package/dist/PhoneNumber/CountryPicker/constants.js +0 -26
  261. package/dist/PhoneNumber/CountryPicker/index.js +0 -59
  262. package/dist/PhoneNumber/FormikPhoneNumberInput.js +0 -21
  263. package/dist/PhoneNumber/PhoneNumber.js +0 -30
  264. package/dist/PhoneNumber/PhoneNumberInput.js +0 -79
  265. package/dist/PhoneNumber/index.js +0 -5
  266. package/dist/PhoneNumber/utils.js +0 -55
  267. package/dist/PublishBlock/AlertBlock.js +0 -14
  268. package/dist/PublishBlock/index.js +0 -100
  269. package/dist/PublishBlock/publish-block.scss +0 -25
  270. package/dist/Rename/DummySpan.js +0 -21
  271. package/dist/Rename/constants.js +0 -1
  272. package/dist/Rename/index.js +0 -191
  273. package/dist/Rename/rename.scss +0 -69
  274. package/dist/Rename/utils.js +0 -10
  275. package/dist/ResponsiveDevicePicker/constants.js +0 -19
  276. package/dist/ResponsiveDevicePicker/index.js +0 -36
  277. package/dist/Schedule/DisplayAvailability.js +0 -58
  278. package/dist/Schedule/Fields.js +0 -43
  279. package/dist/Schedule/Form/ScheduleRow.js +0 -125
  280. package/dist/Schedule/Form/constants.js +0 -20
  281. package/dist/Schedule/Form/index.js +0 -144
  282. package/dist/Schedule/Form/utils.js +0 -63
  283. package/dist/Schedule/Header.js +0 -76
  284. package/dist/Schedule/ScheduleContext.js +0 -8
  285. package/dist/Schedule/constants.js +0 -8
  286. package/dist/Schedule/dayjsExtended/constants.js +0 -1
  287. package/dist/Schedule/dayjsExtended/index.js +0 -14
  288. package/dist/Schedule/dayjsExtended/range.js +0 -73
  289. package/dist/Schedule/index.js +0 -80
  290. package/dist/Schedule/utils.js +0 -152
  291. package/dist/Scrollable/constants.js +0 -8
  292. package/dist/Scrollable/index.js +0 -26
  293. package/dist/Scrollable/scrollable.scss +0 -32
  294. package/dist/Search/index.js +0 -52
  295. package/dist/Security/AllowedKeywords/Add.js +0 -38
  296. package/dist/Security/AllowedKeywords/index.js +0 -38
  297. package/dist/Security/PasswordBlock.js +0 -31
  298. package/dist/Security/RadioBlock.js +0 -38
  299. package/dist/Security/api.js +0 -12
  300. package/dist/Security/constants.js +0 -58
  301. package/dist/Security/index.js +0 -68
  302. package/dist/Security/useSecurityApi.js +0 -22
  303. package/dist/Security/utils.js +0 -31
  304. package/dist/SendToFields/FilePicker.js +0 -34
  305. package/dist/SendToFields/constants.js +0 -6
  306. package/dist/SendToFields/index.js +0 -102
  307. package/dist/SendToFields/utils.js +0 -54
  308. package/dist/Settings/Category.js +0 -30
  309. package/dist/Settings/Item.js +0 -38
  310. package/dist/Settings/index.js +0 -37
  311. package/dist/Settings/utils.js +0 -4
  312. package/dist/ShareViaEmail/EmailBodyEditor.js +0 -22
  313. package/dist/ShareViaEmail/FilePicker.js +0 -43
  314. package/dist/ShareViaEmail/Form.js +0 -105
  315. package/dist/ShareViaEmail/FormikDatePicker.js +0 -24
  316. package/dist/ShareViaEmail/constants.js +0 -14
  317. package/dist/ShareViaEmail/index.js +0 -92
  318. package/dist/ShareViaEmail/utils.js +0 -72
  319. package/dist/ShareViaLink/EditURL.js +0 -74
  320. package/dist/ShareViaLink/Link.js +0 -105
  321. package/dist/ShareViaLink/QRCode.js +0 -41
  322. package/dist/ShareViaLink/RegenerateURL.js +0 -47
  323. package/dist/ShareViaLink/SocialMedia.js +0 -52
  324. package/dist/ShareViaLink/constants.js +0 -25
  325. package/dist/ShareViaLink/edit-url.scss +0 -8
  326. package/dist/ShareViaLink/index.js +0 -46
  327. package/dist/ShareViaLink/utils.js +0 -47
  328. package/dist/Sidebar/AppSwitcher/AppLink.js +0 -45
  329. package/dist/Sidebar/AppSwitcher/Backdrop.js +0 -13
  330. package/dist/Sidebar/AppSwitcher/Body.js +0 -65
  331. package/dist/Sidebar/AppSwitcher/Portal.js +0 -27
  332. package/dist/Sidebar/AppSwitcher/appswitcher.scss +0 -164
  333. package/dist/Sidebar/AppSwitcher/index.js +0 -47
  334. package/dist/Sidebar/AppSwitcher/utils.js +0 -25
  335. package/dist/Sidebar/Chevron.js +0 -14
  336. package/dist/Sidebar/FeaturedTooltip.js +0 -19
  337. package/dist/Sidebar/Footer/AppSwitcherButton.js +0 -48
  338. package/dist/Sidebar/Footer/ProfileButton.js +0 -30
  339. package/dist/Sidebar/Footer/index.js +0 -56
  340. package/dist/Sidebar/Footer/utils.js +0 -39
  341. package/dist/Sidebar/Header.js +0 -33
  342. package/dist/Sidebar/HelpSection/HelpSectionMenu.js +0 -52
  343. package/dist/Sidebar/HelpSection/index.js +0 -32
  344. package/dist/Sidebar/Links.js +0 -112
  345. package/dist/Sidebar/NavIconWrapper.js +0 -20
  346. package/dist/Sidebar/ProfileSection/LinkSection.js +0 -36
  347. package/dist/Sidebar/ProfileSection/ProfileMenu.js +0 -48
  348. package/dist/Sidebar/ProfileSection/index.js +0 -42
  349. package/dist/Sidebar/constants.js +0 -40
  350. package/dist/Sidebar/index.js +0 -94
  351. package/dist/Sidebar/sidebar.scss +0 -379
  352. package/dist/Sidebar/utils.js +0 -18
  353. package/dist/SubHeader/RightBlock/Columns.js +0 -35
  354. package/dist/SubHeader/RightBlock/Download.js +0 -28
  355. package/dist/SubHeader/RightBlock/Filter.js +0 -31
  356. package/dist/SubHeader/RightBlock/index.js +0 -21
  357. package/dist/SubHeader/RightBlock/utils.js +0 -13
  358. package/dist/SubHeader/index.js +0 -28
  359. package/dist/SubHeader/subheader.scss +0 -78
  360. package/dist/ThemeSidebar/Customize/Logo.js +0 -39
  361. package/dist/ThemeSidebar/Customize/Properties.js +0 -170
  362. package/dist/ThemeSidebar/Customize/index.js +0 -66
  363. package/dist/ThemeSidebar/Themes/ThemeCard.js +0 -135
  364. package/dist/ThemeSidebar/Themes/index.js +0 -110
  365. package/dist/ThemeSidebar/TitleBar.js +0 -62
  366. package/dist/ThemeSidebar/constants.js +0 -127
  367. package/dist/ThemeSidebar/fields/AlignmentBlock.js +0 -50
  368. package/dist/ThemeSidebar/fields/Card.js +0 -19
  369. package/dist/ThemeSidebar/fields/ColorBlock.js +0 -19
  370. package/dist/ThemeSidebar/fields/FontPickerBlock.js +0 -35
  371. package/dist/ThemeSidebar/fields/ImageBlock/ImageUploader.js +0 -67
  372. package/dist/ThemeSidebar/fields/ImageBlock/ProgressBar.js +0 -22
  373. package/dist/ThemeSidebar/fields/ImageBlock/index.js +0 -55
  374. package/dist/ThemeSidebar/fields/SelectBlock.js +0 -24
  375. package/dist/ThemeSidebar/fields/SliderBlock.js +0 -30
  376. package/dist/ThemeSidebar/fields/SwitchBlock.js +0 -17
  377. package/dist/ThemeSidebar/fields/TextBlock.js +0 -13
  378. package/dist/ThemeSidebar/fields/slider.scss +0 -199
  379. package/dist/ThemeSidebar/hooks/useDirectUploadDropzone.js +0 -149
  380. package/dist/ThemeSidebar/index.js +0 -118
  381. package/dist/ThemeSidebar/themeSidebar.scss +0 -45
  382. package/dist/ThemeSidebar/utils.js +0 -169
  383. package/dist/TimeFormat/index.js +0 -3
  384. package/dist/TimezoneMismatchModal/apis/time_zone.js +0 -9
  385. package/dist/TimezoneMismatchModal/index.js +0 -83
  386. package/dist/TimezoneMismatchModal/useTimeZoneApi.js +0 -10
  387. package/dist/TimezoneMismatchModal/utils.js +0 -12
  388. package/dist/ToggleFeatureCard/ToolTipSwitch.js +0 -31
  389. package/dist/ToggleFeatureCard/constants.js +0 -5
  390. package/dist/ToggleFeatureCard/hooks/useScrollIntoView.js +0 -11
  391. package/dist/ToggleFeatureCard/index.js +0 -148
  392. package/dist/ToggleFeatureCard/toggleFeatureCard.scss +0 -4
@@ -0,0 +1,1984 @@
1
+ import React, { useState, useEffect, useRef } from 'react';
2
+ import { Typography, Toastr, Button, Select, ColorPicker, Dropdown, Tooltip, Tag, Input as Input$1, Spinner } from '@bigbinary/neetoui';
3
+ import { useTranslation, Trans } from 'react-i18next';
4
+ import * as yup from 'yup';
5
+ import { Switch, Input, Form } from '@bigbinary/neetoui/formik';
6
+ import { isNotEmpty, findBy, noop, isPresent, capitalize } from '@bigbinary/neeto-commons-frontend/pure';
7
+ import { isEmpty, mergeLeft, mergeRight, path } from 'ramda';
8
+ import classnames from 'classnames';
9
+ import { ImageUpload, LeftAlign, CenterAlign, MenuVertical, MenuHorizontal, Search, LeftArrow, Plus } from '@bigbinary/neeto-icons';
10
+ import { motion } from 'framer-motion';
11
+ import { DirectUpload } from '@rails/activestorage';
12
+ import { useDropzone } from 'react-dropzone';
13
+ import { Field } from 'formik';
14
+ import { Slider } from 'antd';
15
+
16
+ function _typeof$1(obj) {
17
+ "@babel/helpers - typeof";
18
+
19
+ return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
20
+ return typeof obj;
21
+ } : function (obj) {
22
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
23
+ }, _typeof$1(obj);
24
+ }
25
+
26
+ function _toPrimitive(input, hint) {
27
+ if (_typeof$1(input) !== "object" || input === null) return input;
28
+ var prim = input[Symbol.toPrimitive];
29
+ if (prim !== undefined) {
30
+ var res = prim.call(input, hint || "default");
31
+ if (_typeof$1(res) !== "object") return res;
32
+ throw new TypeError("@@toPrimitive must return a primitive value.");
33
+ }
34
+ return (hint === "string" ? String : Number)(input);
35
+ }
36
+
37
+ function _toPropertyKey(arg) {
38
+ var key = _toPrimitive(arg, "string");
39
+ return _typeof$1(key) === "symbol" ? key : String(key);
40
+ }
41
+
42
+ function _defineProperty(obj, key, value) {
43
+ key = _toPropertyKey(key);
44
+ if (key in obj) {
45
+ Object.defineProperty(obj, key, {
46
+ value: value,
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true
50
+ });
51
+ } else {
52
+ obj[key] = value;
53
+ }
54
+ return obj;
55
+ }
56
+
57
+ function _arrayWithHoles(arr) {
58
+ if (Array.isArray(arr)) return arr;
59
+ }
60
+
61
+ function _iterableToArrayLimit(arr, i) {
62
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
63
+ if (null != _i) {
64
+ var _s,
65
+ _e,
66
+ _x,
67
+ _r,
68
+ _arr = [],
69
+ _n = !0,
70
+ _d = !1;
71
+ try {
72
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
73
+ if (Object(_i) !== _i) return;
74
+ _n = !1;
75
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
76
+ } catch (err) {
77
+ _d = !0, _e = err;
78
+ } finally {
79
+ try {
80
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
81
+ } finally {
82
+ if (_d) throw _e;
83
+ }
84
+ }
85
+ return _arr;
86
+ }
87
+ }
88
+
89
+ function _arrayLikeToArray(arr, len) {
90
+ if (len == null || len > arr.length) len = arr.length;
91
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
92
+ return arr2;
93
+ }
94
+
95
+ function _unsupportedIterableToArray(o, minLen) {
96
+ if (!o) return;
97
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
98
+ var n = Object.prototype.toString.call(o).slice(8, -1);
99
+ if (n === "Object" && o.constructor) n = o.constructor.name;
100
+ if (n === "Map" || n === "Set") return Array.from(o);
101
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
102
+ }
103
+
104
+ function _nonIterableRest() {
105
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
106
+ }
107
+
108
+ function _slicedToArray(arr, i) {
109
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
110
+ }
111
+
112
+ var DIRECT_UPLOAD_URL = "/api/direct_uploads";
113
+ var DESIGN_SCREENS = {
114
+ THEMES: "Themes",
115
+ CUSTOMIZE: "Customize",
116
+ LOADING: "Loading"
117
+ };
118
+ var INITIAL_STATE = {
119
+ name: "",
120
+ backgroundColor: "#ffffff",
121
+ backgroundOverlayColor: "#000000",
122
+ backgroundOverlayOpacity: 0,
123
+ isDominantBackgroundColorEnabled: false,
124
+ questionColor: "#000000",
125
+ buttonBackgroundColor: "#2D36D4",
126
+ buttonTextColor: "#ffffff",
127
+ answerColor: "#2D36D4",
128
+ answerTextColor: "#ffffff",
129
+ logo: {},
130
+ buttonBorderRadius: 10,
131
+ isContentBackgroundEnabled: false,
132
+ welcomeTextAlignment: "left",
133
+ thankYouTextAlignment: "center",
134
+ questionsTextAlignment: "left",
135
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
136
+ };
137
+ var THEME_VALIDATION_SCHEMA = yup.object().shape({
138
+ name: yup.string().required("Name is required")
139
+ });
140
+ var FIVE_MEGABYTES = 5242880;
141
+ var POSITION_OPTIONS = [{
142
+ label: "Left",
143
+ value: "left"
144
+ }, {
145
+ label: "Right",
146
+ value: "right"
147
+ }];
148
+ var BACKGROUND_POSITION_OPTIONS = [{
149
+ label: "Center",
150
+ value: "center"
151
+ }, {
152
+ label: "Top left",
153
+ value: "top left"
154
+ }, {
155
+ label: "Top center",
156
+ value: "top center"
157
+ }, {
158
+ label: "Top right",
159
+ value: "top right"
160
+ }, {
161
+ label: "Center left",
162
+ value: "center left"
163
+ }, {
164
+ label: "Center right",
165
+ value: "center right"
166
+ }, {
167
+ label: "Bottom left",
168
+ value: "bottom left"
169
+ }, {
170
+ label: "Bottom right",
171
+ value: "bottom right"
172
+ }, {
173
+ label: "Bottom center",
174
+ value: "bottom center"
175
+ }];
176
+ var FONT_OPTIONS = [{
177
+ label: "System UI",
178
+ value: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
179
+ }, {
180
+ label: "Cedarville Cursive",
181
+ value: "'Cedarville Cursive', cursive"
182
+ }, {
183
+ label: "Poppins",
184
+ value: "Poppins, sans-serif"
185
+ }, {
186
+ label: "Roboto",
187
+ value: "Roboto, sans-serif"
188
+ }, {
189
+ label: "Open Sans",
190
+ value: "Open Sans, sans-serif"
191
+ }, {
192
+ label: "Montserrat",
193
+ value: "Montserrat, sans-serif"
194
+ }, {
195
+ label: "Raleway",
196
+ value: "Raleway, sans-serif"
197
+ }, {
198
+ label: "Quicksand",
199
+ value: "Quicksand, sans-serif"
200
+ }, {
201
+ label: "Inter",
202
+ value: "Inter, sans-serif"
203
+ }, {
204
+ label: "Satoshi",
205
+ value: "Satoshi, sans-serif"
206
+ }, {
207
+ label: "Chillax",
208
+ value: "Chillax, sans-serif"
209
+ }, {
210
+ label: "Clash Display",
211
+ value: "Clash Display, sans-serif"
212
+ }, {
213
+ label: "General Sans",
214
+ value: "General Sans, sans-serif"
215
+ }, {
216
+ label: "Cabinet Grotesk",
217
+ value: "Cabinet Grotesk, sans-serif"
218
+ }, {
219
+ label: "Lora",
220
+ value: "Lora, serif"
221
+ }, {
222
+ label: "Merriweather",
223
+ value: "Merriweather, serif"
224
+ }, {
225
+ label: "Boska",
226
+ value: "Boska, serif"
227
+ }, {
228
+ label: "Playfair Display",
229
+ value: "Playfair Display, serif"
230
+ }, {
231
+ label: "Roboto Slab",
232
+ value: "Roboto Slab, serif"
233
+ }, {
234
+ label: "Dancing Script",
235
+ value: "Dancing Script, cursive"
236
+ }];
237
+
238
+ var Card = function Card(_ref) {
239
+ var title = _ref.title,
240
+ children = _ref.children;
241
+ return /*#__PURE__*/React.createElement("div", {
242
+ className: "neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-ui-bg-white space-y-3 border p-4"
243
+ }, title && /*#__PURE__*/React.createElement("div", {
244
+ className: "flex items-center justify-between"
245
+ }, /*#__PURE__*/React.createElement(Typography, {
246
+ "data-cy": "edit-theme-properties",
247
+ lineHeight: "normal",
248
+ style: "h4",
249
+ weight: "semibold"
250
+ }, title)), children && /*#__PURE__*/React.createElement("div", {
251
+ className: "space-y-4"
252
+ }, children));
253
+ };
254
+
255
+ function _extends() {
256
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
257
+ for (var i = 1; i < arguments.length; i++) {
258
+ var source = arguments[i];
259
+ for (var key in source) {
260
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
261
+ target[key] = source[key];
262
+ }
263
+ }
264
+ }
265
+ return target;
266
+ };
267
+ return _extends.apply(this, arguments);
268
+ }
269
+
270
+ var ProgressBar = function ProgressBar(_ref) {
271
+ var progressPercentage = _ref.progressPercentage,
272
+ progressValue = _ref.progressValue;
273
+ return /*#__PURE__*/React.createElement("div", {
274
+ className: "neeto-ui-bg-gray-200 neeto-ui-rounded-full w-full overflow-hidden"
275
+ }, /*#__PURE__*/React.createElement(motion.div, {
276
+ animate: {
277
+ width: "".concat(progressPercentage, "%")
278
+ },
279
+ 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",
280
+ initial: {
281
+ width: 0
282
+ },
283
+ transition: {
284
+ duration: 0.5,
285
+ ease: "easeInOut"
286
+ }
287
+ }, progressValue));
288
+ };
289
+
290
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
291
+ try {
292
+ var info = gen[key](arg);
293
+ var value = info.value;
294
+ } catch (error) {
295
+ reject(error);
296
+ return;
297
+ }
298
+ if (info.done) {
299
+ resolve(value);
300
+ } else {
301
+ Promise.resolve(value).then(_next, _throw);
302
+ }
303
+ }
304
+ function _asyncToGenerator(fn) {
305
+ return function () {
306
+ var self = this,
307
+ args = arguments;
308
+ return new Promise(function (resolve, reject) {
309
+ var gen = fn.apply(self, args);
310
+ function _next(value) {
311
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
312
+ }
313
+ function _throw(err) {
314
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
315
+ }
316
+ _next(undefined);
317
+ });
318
+ };
319
+ }
320
+
321
+ var regeneratorRuntime$1 = {exports: {}};
322
+
323
+ var _typeof = {exports: {}};
324
+
325
+ (function (module) {
326
+ function _typeof(obj) {
327
+ "@babel/helpers - typeof";
328
+
329
+ return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
330
+ return typeof obj;
331
+ } : function (obj) {
332
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
333
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
334
+ }
335
+ module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
336
+ } (_typeof));
337
+
338
+ (function (module) {
339
+ var _typeof$1 = _typeof.exports["default"];
340
+ function _regeneratorRuntime() {
341
+ module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
342
+ return exports;
343
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports;
344
+ var exports = {},
345
+ Op = Object.prototype,
346
+ hasOwn = Op.hasOwnProperty,
347
+ defineProperty = Object.defineProperty || function (obj, key, desc) {
348
+ obj[key] = desc.value;
349
+ },
350
+ $Symbol = "function" == typeof Symbol ? Symbol : {},
351
+ iteratorSymbol = $Symbol.iterator || "@@iterator",
352
+ asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
353
+ toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
354
+ function define(obj, key, value) {
355
+ return Object.defineProperty(obj, key, {
356
+ value: value,
357
+ enumerable: !0,
358
+ configurable: !0,
359
+ writable: !0
360
+ }), obj[key];
361
+ }
362
+ try {
363
+ define({}, "");
364
+ } catch (err) {
365
+ define = function define(obj, key, value) {
366
+ return obj[key] = value;
367
+ };
368
+ }
369
+ function wrap(innerFn, outerFn, self, tryLocsList) {
370
+ var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
371
+ generator = Object.create(protoGenerator.prototype),
372
+ context = new Context(tryLocsList || []);
373
+ return defineProperty(generator, "_invoke", {
374
+ value: makeInvokeMethod(innerFn, self, context)
375
+ }), generator;
376
+ }
377
+ function tryCatch(fn, obj, arg) {
378
+ try {
379
+ return {
380
+ type: "normal",
381
+ arg: fn.call(obj, arg)
382
+ };
383
+ } catch (err) {
384
+ return {
385
+ type: "throw",
386
+ arg: err
387
+ };
388
+ }
389
+ }
390
+ exports.wrap = wrap;
391
+ var ContinueSentinel = {};
392
+ function Generator() {}
393
+ function GeneratorFunction() {}
394
+ function GeneratorFunctionPrototype() {}
395
+ var IteratorPrototype = {};
396
+ define(IteratorPrototype, iteratorSymbol, function () {
397
+ return this;
398
+ });
399
+ var getProto = Object.getPrototypeOf,
400
+ NativeIteratorPrototype = getProto && getProto(getProto(values([])));
401
+ NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
402
+ var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
403
+ function defineIteratorMethods(prototype) {
404
+ ["next", "throw", "return"].forEach(function (method) {
405
+ define(prototype, method, function (arg) {
406
+ return this._invoke(method, arg);
407
+ });
408
+ });
409
+ }
410
+ function AsyncIterator(generator, PromiseImpl) {
411
+ function invoke(method, arg, resolve, reject) {
412
+ var record = tryCatch(generator[method], generator, arg);
413
+ if ("throw" !== record.type) {
414
+ var result = record.arg,
415
+ value = result.value;
416
+ return value && "object" == _typeof$1(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
417
+ invoke("next", value, resolve, reject);
418
+ }, function (err) {
419
+ invoke("throw", err, resolve, reject);
420
+ }) : PromiseImpl.resolve(value).then(function (unwrapped) {
421
+ result.value = unwrapped, resolve(result);
422
+ }, function (error) {
423
+ return invoke("throw", error, resolve, reject);
424
+ });
425
+ }
426
+ reject(record.arg);
427
+ }
428
+ var previousPromise;
429
+ defineProperty(this, "_invoke", {
430
+ value: function value(method, arg) {
431
+ function callInvokeWithMethodAndArg() {
432
+ return new PromiseImpl(function (resolve, reject) {
433
+ invoke(method, arg, resolve, reject);
434
+ });
435
+ }
436
+ return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
437
+ }
438
+ });
439
+ }
440
+ function makeInvokeMethod(innerFn, self, context) {
441
+ var state = "suspendedStart";
442
+ return function (method, arg) {
443
+ if ("executing" === state) throw new Error("Generator is already running");
444
+ if ("completed" === state) {
445
+ if ("throw" === method) throw arg;
446
+ return doneResult();
447
+ }
448
+ for (context.method = method, context.arg = arg;;) {
449
+ var delegate = context.delegate;
450
+ if (delegate) {
451
+ var delegateResult = maybeInvokeDelegate(delegate, context);
452
+ if (delegateResult) {
453
+ if (delegateResult === ContinueSentinel) continue;
454
+ return delegateResult;
455
+ }
456
+ }
457
+ if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
458
+ if ("suspendedStart" === state) throw state = "completed", context.arg;
459
+ context.dispatchException(context.arg);
460
+ } else "return" === context.method && context.abrupt("return", context.arg);
461
+ state = "executing";
462
+ var record = tryCatch(innerFn, self, context);
463
+ if ("normal" === record.type) {
464
+ if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
465
+ return {
466
+ value: record.arg,
467
+ done: context.done
468
+ };
469
+ }
470
+ "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
471
+ }
472
+ };
473
+ }
474
+ function maybeInvokeDelegate(delegate, context) {
475
+ var methodName = context.method,
476
+ method = delegate.iterator[methodName];
477
+ if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
478
+ var record = tryCatch(method, delegate.iterator, context.arg);
479
+ if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
480
+ var info = record.arg;
481
+ return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
482
+ }
483
+ function pushTryEntry(locs) {
484
+ var entry = {
485
+ tryLoc: locs[0]
486
+ };
487
+ 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
488
+ }
489
+ function resetTryEntry(entry) {
490
+ var record = entry.completion || {};
491
+ record.type = "normal", delete record.arg, entry.completion = record;
492
+ }
493
+ function Context(tryLocsList) {
494
+ this.tryEntries = [{
495
+ tryLoc: "root"
496
+ }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
497
+ }
498
+ function values(iterable) {
499
+ if (iterable) {
500
+ var iteratorMethod = iterable[iteratorSymbol];
501
+ if (iteratorMethod) return iteratorMethod.call(iterable);
502
+ if ("function" == typeof iterable.next) return iterable;
503
+ if (!isNaN(iterable.length)) {
504
+ var i = -1,
505
+ next = function next() {
506
+ for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
507
+ return next.value = undefined, next.done = !0, next;
508
+ };
509
+ return next.next = next;
510
+ }
511
+ }
512
+ return {
513
+ next: doneResult
514
+ };
515
+ }
516
+ function doneResult() {
517
+ return {
518
+ value: undefined,
519
+ done: !0
520
+ };
521
+ }
522
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
523
+ value: GeneratorFunctionPrototype,
524
+ configurable: !0
525
+ }), defineProperty(GeneratorFunctionPrototype, "constructor", {
526
+ value: GeneratorFunction,
527
+ configurable: !0
528
+ }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
529
+ var ctor = "function" == typeof genFun && genFun.constructor;
530
+ return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
531
+ }, exports.mark = function (genFun) {
532
+ return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
533
+ }, exports.awrap = function (arg) {
534
+ return {
535
+ __await: arg
536
+ };
537
+ }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
538
+ return this;
539
+ }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
540
+ void 0 === PromiseImpl && (PromiseImpl = Promise);
541
+ var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
542
+ return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
543
+ return result.done ? result.value : iter.next();
544
+ });
545
+ }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
546
+ return this;
547
+ }), define(Gp, "toString", function () {
548
+ return "[object Generator]";
549
+ }), exports.keys = function (val) {
550
+ var object = Object(val),
551
+ keys = [];
552
+ for (var key in object) keys.push(key);
553
+ return keys.reverse(), function next() {
554
+ for (; keys.length;) {
555
+ var key = keys.pop();
556
+ if (key in object) return next.value = key, next.done = !1, next;
557
+ }
558
+ return next.done = !0, next;
559
+ };
560
+ }, exports.values = values, Context.prototype = {
561
+ constructor: Context,
562
+ reset: function reset(skipTempReset) {
563
+ if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
564
+ },
565
+ stop: function stop() {
566
+ this.done = !0;
567
+ var rootRecord = this.tryEntries[0].completion;
568
+ if ("throw" === rootRecord.type) throw rootRecord.arg;
569
+ return this.rval;
570
+ },
571
+ dispatchException: function dispatchException(exception) {
572
+ if (this.done) throw exception;
573
+ var context = this;
574
+ function handle(loc, caught) {
575
+ return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
576
+ }
577
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
578
+ var entry = this.tryEntries[i],
579
+ record = entry.completion;
580
+ if ("root" === entry.tryLoc) return handle("end");
581
+ if (entry.tryLoc <= this.prev) {
582
+ var hasCatch = hasOwn.call(entry, "catchLoc"),
583
+ hasFinally = hasOwn.call(entry, "finallyLoc");
584
+ if (hasCatch && hasFinally) {
585
+ if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
586
+ if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
587
+ } else if (hasCatch) {
588
+ if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
589
+ } else {
590
+ if (!hasFinally) throw new Error("try statement without catch or finally");
591
+ if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
592
+ }
593
+ }
594
+ }
595
+ },
596
+ abrupt: function abrupt(type, arg) {
597
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
598
+ var entry = this.tryEntries[i];
599
+ if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
600
+ var finallyEntry = entry;
601
+ break;
602
+ }
603
+ }
604
+ finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
605
+ var record = finallyEntry ? finallyEntry.completion : {};
606
+ return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
607
+ },
608
+ complete: function complete(record, afterLoc) {
609
+ if ("throw" === record.type) throw record.arg;
610
+ return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
611
+ },
612
+ finish: function finish(finallyLoc) {
613
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
614
+ var entry = this.tryEntries[i];
615
+ if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
616
+ }
617
+ },
618
+ "catch": function _catch(tryLoc) {
619
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
620
+ var entry = this.tryEntries[i];
621
+ if (entry.tryLoc === tryLoc) {
622
+ var record = entry.completion;
623
+ if ("throw" === record.type) {
624
+ var thrown = record.arg;
625
+ resetTryEntry(entry);
626
+ }
627
+ return thrown;
628
+ }
629
+ }
630
+ throw new Error("illegal catch attempt");
631
+ },
632
+ delegateYield: function delegateYield(iterable, resultName, nextLoc) {
633
+ return this.delegate = {
634
+ iterator: values(iterable),
635
+ resultName: resultName,
636
+ nextLoc: nextLoc
637
+ }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
638
+ }
639
+ }, exports;
640
+ }
641
+ module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
642
+ } (regeneratorRuntime$1));
643
+
644
+ // TODO(Babel 8): Remove this file.
645
+
646
+ var runtime = regeneratorRuntime$1.exports();
647
+ var regenerator = runtime;
648
+
649
+ // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
650
+ try {
651
+ regeneratorRuntime = runtime;
652
+ } catch (accidentalStrictMode) {
653
+ if (typeof globalThis === "object") {
654
+ globalThis.regeneratorRuntime = runtime;
655
+ } else {
656
+ Function("r", "regeneratorRuntime = r")(runtime);
657
+ }
658
+ }
659
+
660
+ function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
661
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
662
+ var readFile = function readFile(file) {
663
+ return new Promise(function (resolve) {
664
+ var reader = new FileReader();
665
+ reader.onload = function () {
666
+ resolve(reader.result);
667
+ };
668
+ reader.readAsDataURL(file);
669
+ });
670
+ };
671
+ var getImage = /*#__PURE__*/function () {
672
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(file) {
673
+ var image;
674
+ return regenerator.wrap(function _callee$(_context) {
675
+ while (1) switch (_context.prev = _context.next) {
676
+ case 0:
677
+ image = new Image();
678
+ _context.next = 3;
679
+ return readFile(file);
680
+ case 3:
681
+ image.src = _context.sent;
682
+ return _context.abrupt("return", new Promise(function (resolve) {
683
+ image.onload = function () {
684
+ resolve(image);
685
+ };
686
+ }));
687
+ case 5:
688
+ case "end":
689
+ return _context.stop();
690
+ }
691
+ }, _callee);
692
+ }));
693
+ return function getImage(_x) {
694
+ return _ref.apply(this, arguments);
695
+ };
696
+ }();
697
+ var transformTheme = function transformTheme(values) {
698
+ return {
699
+ name: values.name,
700
+ colorScheme: {
701
+ backgroundColor: values.backgroundColor,
702
+ questionColor: values.questionColor,
703
+ buttonBackgroundColor: values.buttonBackgroundColor,
704
+ buttonTextColor: values.buttonTextColor,
705
+ answerColor: values.answerColor,
706
+ answerTextColor: values.answerTextColor
707
+ },
708
+ backgroundImage: _objectSpread$3(_objectSpread$3({}, values.backgroundImage), {}, {
709
+ backgroundColor: values.backgroundColor,
710
+ backgroundOverlayOpacity: values.backgroundOverlayOpacity,
711
+ isDominantBackgroundColorEnabled: values.isDominantBackgroundColorEnabled,
712
+ backgroundPosition: values.backgroundImage.backgroundPosition
713
+ }),
714
+ fontOptions: {
715
+ fontFamily: values.fontFamily
716
+ },
717
+ buttonOptions: {
718
+ buttonBorderRadius: values.buttonBorderRadius
719
+ },
720
+ layout: {
721
+ isContentBackgroundEnabled: values.isContentBackgroundEnabled,
722
+ contentBackgroundColor: values.contentBackgroundColor,
723
+ welcomeTextAlignment: values.welcomeTextAlignment,
724
+ thankYouTextAlignment: values.thankYouTextAlignment,
725
+ questionsTextAlignment: values.questionsTextAlignment,
726
+ logo: values.logo
727
+ }
728
+ };
729
+ };
730
+ var parseTheme = function parseTheme(theme) {
731
+ var _theme$layout$logo;
732
+ return {
733
+ name: theme.name,
734
+ backgroundColor: theme.colorScheme.backgroundColor,
735
+ questionColor: theme.colorScheme.questionColor,
736
+ buttonBackgroundColor: theme.colorScheme.buttonBackgroundColor,
737
+ buttonTextColor: theme.colorScheme.buttonTextColor,
738
+ answerColor: theme.colorScheme.answerColor,
739
+ answerTextColor: theme.colorScheme.answerTextColor,
740
+ backgroundImage: theme.backgroundImage,
741
+ backgroundOverlayOpacity: theme.backgroundImage.backgroundOverlayOpacity,
742
+ fontFamily: theme.fontOptions.fontFamily,
743
+ buttonBorderRadius: theme.buttonOptions.buttonBorderRadius,
744
+ isDominantBackgroundColorEnabled: theme.backgroundImage.isDominantBackgroundColorEnabled,
745
+ isContentBackgroundEnabled: theme.layout.isContentBackgroundEnabled,
746
+ contentBackgroundColor: theme.layout.contentBackgroundColor,
747
+ welcomeTextAlignment: theme.layout.welcomeTextAlignment,
748
+ thankYouTextAlignment: theme.layout.thankYouTextAlignment,
749
+ questionsTextAlignment: theme.layout.questionsTextAlignment,
750
+ logo: (_theme$layout$logo = theme.layout.logo) !== null && _theme$layout$logo !== void 0 ? _theme$layout$logo : {}
751
+ };
752
+ };
753
+ var getContrast = function getContrast(hexcolor) {
754
+ // If a leading # is provided, remove it
755
+ if (hexcolor.slice(0, 1) === "#") {
756
+ hexcolor = hexcolor.slice(1);
757
+ }
758
+
759
+ // If a three-character hexcode, make six-character
760
+ if (hexcolor.length === 3) {
761
+ hexcolor = hexcolor.split("").map(function (hex) {
762
+ return hex + hex;
763
+ }).join("");
764
+ }
765
+
766
+ // Convert to RGB value
767
+ var r = parseInt(hexcolor.substr(0, 2), 16);
768
+ var g = parseInt(hexcolor.substr(2, 2), 16);
769
+ var b = parseInt(hexcolor.substr(4, 2), 16);
770
+
771
+ // Get YIQ ratio
772
+ var yiq = (r * 299 + g * 587 + b * 114) / 1000;
773
+
774
+ // Check contrast
775
+ return yiq >= 128 ? "#000000" : "#ffffff";
776
+ };
777
+ var hexToRgb = function hexToRgb(hex) {
778
+ var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex.padEnd(7, "0"));
779
+ return result ? "".concat(parseInt(result[1], 16), ", ").concat(parseInt(result[2], 16), ", ").concat(parseInt(result[3], 16)) : null;
780
+ };
781
+ var getDominantColor = /*#__PURE__*/function () {
782
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(file) {
783
+ var image, context, c, hex;
784
+ return regenerator.wrap(function _callee2$(_context2) {
785
+ while (1) switch (_context2.prev = _context2.next) {
786
+ case 0:
787
+ _context2.next = 2;
788
+ return getImage(file);
789
+ case 2:
790
+ image = _context2.sent;
791
+ context = document.createElement("canvas").getContext("2d");
792
+ context === null || context === void 0 ? void 0 : context.drawImage(image, 0, 0, 1, 1);
793
+ c = context === null || context === void 0 ? void 0 : context.getImageData(0, 0, 1, 1).data;
794
+ if (!c) {
795
+ _context2.next = 9;
796
+ break;
797
+ }
798
+ hex = "#".concat(((1 << 24) + (c[0] << 16) + (c[1] << 8) + c[2]).toString(16).slice(1));
799
+ return _context2.abrupt("return", hex);
800
+ case 9:
801
+ return _context2.abrupt("return", null);
802
+ case 10:
803
+ case "end":
804
+ return _context2.stop();
805
+ }
806
+ }, _callee2);
807
+ }));
808
+ return function getDominantColor(_x2) {
809
+ return _ref2.apply(this, arguments);
810
+ };
811
+ }();
812
+ var bytesToSize = function bytesToSize(bytes) {
813
+ var sizes = ["Bytes", "KB", "MB", "GB", "TB"];
814
+ if (bytes === 0) return "n/a";
815
+ var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10);
816
+ if (i === 0) return "".concat(bytes, " ").concat(sizes[i], ")");
817
+ return "".concat((bytes / Math.pow(1024, i)).toFixed(1), " ").concat(sizes[i]);
818
+ };
819
+ var scrollElementIntoView = function scrollElementIntoView(elementId) {
820
+ var _elementToScroll$scro;
821
+ var elementToScroll = document.getElementById(elementId);
822
+ elementToScroll === null || elementToScroll === void 0 ? void 0 : (_elementToScroll$scro = elementToScroll.scrollIntoView) === null || _elementToScroll$scro === void 0 ? void 0 : _elementToScroll$scro.call(elementToScroll, {
823
+ behavior: "smooth"
824
+ });
825
+ };
826
+
827
+ var useDropzoneWithValidation = function useDropzoneWithValidation(_ref) {
828
+ var maxSize = _ref.maxSize,
829
+ acceptedTypes = _ref.acceptedTypes,
830
+ handleAcceptedFile = _ref.handleAcceptedFile,
831
+ _ref$isDominantColorE = _ref.isDominantColorEnabled,
832
+ isDominantColorEnabled = _ref$isDominantColorE === void 0 ? false : _ref$isDominantColorE;
833
+ var _useState = useState([]),
834
+ _useState2 = _slicedToArray(_useState, 2),
835
+ files = _useState2[0],
836
+ setFiles = _useState2[1];
837
+ var _useState3 = useState(false),
838
+ _useState4 = _slicedToArray(_useState3, 2),
839
+ error = _useState4[0],
840
+ setError = _useState4[1];
841
+ var _useState5 = useState(0),
842
+ _useState6 = _slicedToArray(_useState5, 2),
843
+ uploadProgress = _useState6[0],
844
+ setUploadProgress = _useState6[1];
845
+ var maxSizeInReadableUnits = bytesToSize(maxSize);
846
+ var _useTranslation = useTranslation(),
847
+ t = _useTranslation.t;
848
+ var fileErrors = {
849
+ "file-invalid-type": t("neetoMolecules.themeSidebar.error.fileTypeError", {
850
+ acceptedTypes: acceptedTypes
851
+ }),
852
+ "file-too-large": t("neetoMolecules.themeSidebar.error.fileSizeLimitExceeded", {
853
+ maxSizeInReadableUnits: maxSizeInReadableUnits
854
+ })
855
+ };
856
+ var _useDropzone = useDropzone({
857
+ accept: acceptedTypes,
858
+ onDrop: function () {
859
+ var _onDrop = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(acceptedFiles) {
860
+ var newFiles;
861
+ return regenerator.wrap(function _callee2$(_context2) {
862
+ while (1) switch (_context2.prev = _context2.next) {
863
+ case 0:
864
+ _context2.next = 2;
865
+ return new Promise(function (resolve) {
866
+ var files = [];
867
+ acceptedFiles.forEach(function (file) {
868
+ var upload = new DirectUpload(file, DIRECT_UPLOAD_URL, {
869
+ directUploadWillStoreFileWithXHR: function directUploadWillStoreFileWithXHR(xhr) {
870
+ xhr.upload.addEventListener("progress", function (event) {
871
+ var percentComplete = Math.round(event.loaded / event.total * 100);
872
+ setUploadProgress(percentComplete);
873
+ });
874
+ }
875
+ });
876
+ upload.create( /*#__PURE__*/function () {
877
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(error, blob) {
878
+ var resolvedFile, dominantColor;
879
+ return regenerator.wrap(function _callee$(_context) {
880
+ while (1) switch (_context.prev = _context.next) {
881
+ case 0:
882
+ if (!error) {
883
+ _context.next = 2;
884
+ break;
885
+ }
886
+ return _context.abrupt("return", Toastr.error(error));
887
+ case 2:
888
+ resolvedFile = {
889
+ url: blob.blob_url,
890
+ name: blob.filename,
891
+ signed_id: blob.signed_id,
892
+ type: blob.content_type,
893
+ size: blob.byte_size
894
+ };
895
+ if (!isDominantColorEnabled) {
896
+ _context.next = 8;
897
+ break;
898
+ }
899
+ _context.next = 6;
900
+ return getDominantColor(file);
901
+ case 6:
902
+ dominantColor = _context.sent;
903
+ resolvedFile.dominantColor = dominantColor;
904
+ case 8:
905
+ files.push(resolvedFile);
906
+ return _context.abrupt("return", resolve(files));
907
+ case 10:
908
+ case "end":
909
+ return _context.stop();
910
+ }
911
+ }, _callee);
912
+ }));
913
+ return function (_x2, _x3) {
914
+ return _ref2.apply(this, arguments);
915
+ };
916
+ }());
917
+ });
918
+ return files;
919
+ });
920
+ case 2:
921
+ newFiles = _context2.sent;
922
+ setFiles(newFiles.map(function (file) {
923
+ return handleAcceptedFile(file);
924
+ }));
925
+ case 4:
926
+ case "end":
927
+ return _context2.stop();
928
+ }
929
+ }, _callee2);
930
+ }));
931
+ function onDrop(_x) {
932
+ return _onDrop.apply(this, arguments);
933
+ }
934
+ return onDrop;
935
+ }(),
936
+ maxSize: maxSize,
937
+ onDropRejected: function onDropRejected(fileRejections) {
938
+ fileRejections.map(function (_ref3) {
939
+ var errors = _ref3.errors;
940
+ return errors.map(function (_ref4) {
941
+ var code = _ref4.code;
942
+ return Toastr.error(fileErrors[code] || t("neetoMolecules.common.somethingWentWrong"));
943
+ });
944
+ });
945
+ }
946
+ }),
947
+ getRootProps = _useDropzone.getRootProps,
948
+ getInputProps = _useDropzone.getInputProps,
949
+ isDragActive = _useDropzone.isDragActive,
950
+ fileRejections = _useDropzone.fileRejections;
951
+ useEffect(function () {
952
+ setError(isNotEmpty(fileRejections));
953
+ }, [fileRejections]);
954
+ return {
955
+ files: files,
956
+ getRootProps: getRootProps,
957
+ getInputProps: getInputProps,
958
+ isDragActive: isDragActive,
959
+ fileRejections: fileRejections,
960
+ error: error,
961
+ uploadProgress: uploadProgress
962
+ };
963
+ };
964
+
965
+ var ImageUploader = function ImageUploader(_ref) {
966
+ var onChange = _ref.onChange,
967
+ name = _ref.name,
968
+ _ref$isDominantColorE = _ref.isDominantColorEnabled,
969
+ isDominantColorEnabled = _ref$isDominantColorE === void 0 ? false : _ref$isDominantColorE;
970
+ var _useTranslation = useTranslation(),
971
+ t = _useTranslation.t;
972
+ var _useDropzoneWithValid = useDropzoneWithValidation({
973
+ maxSize: FIVE_MEGABYTES,
974
+ acceptedTypes: "image/*",
975
+ handleAcceptedFile: onChange,
976
+ isDominantColorEnabled: isDominantColorEnabled
977
+ }),
978
+ getInputProps = _useDropzoneWithValid.getInputProps,
979
+ getRootProps = _useDropzoneWithValid.getRootProps,
980
+ isDragActive = _useDropzoneWithValid.isDragActive,
981
+ uploadProgress = _useDropzoneWithValid.uploadProgress;
982
+ var shouldShowProgress = !!(uploadProgress && uploadProgress !== 1);
983
+ return /*#__PURE__*/React.createElement("div", {
984
+ className: "space-y-2"
985
+ }, /*#__PURE__*/React.createElement("div", _extends({}, getRootProps(), {
986
+ "data-cy": "image-browse-button",
987
+ className: classnames("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", {
988
+ "neeto-ui-border-gray-300": !isDragActive,
989
+ "neeto-ui-border-gray-700": isDragActive
990
+ })
991
+ }), shouldShowProgress ? /*#__PURE__*/React.createElement("div", {
992
+ className: "flex h-24 w-full items-center"
993
+ }, /*#__PURE__*/React.createElement(ProgressBar, {
994
+ progressPercentage: uploadProgress * 100,
995
+ progressValue: "".concat(uploadProgress, "%")
996
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ImageUpload, {
997
+ className: "neeto-ui-text-primary-500",
998
+ size: 24
999
+ }), /*#__PURE__*/React.createElement("div", {
1000
+ className: "flex flex-col space-y-1"
1001
+ }, /*#__PURE__*/React.createElement(Typography, {
1002
+ className: "neeto-ui-text-gray-800 text-center leading-4",
1003
+ style: "body2"
1004
+ }, /*#__PURE__*/React.createElement(Trans, {
1005
+ i18nKey: "neetoMolecules.themeSidebar.editTheme.imageUpload",
1006
+ components: {
1007
+ span: /*#__PURE__*/React.createElement("span", {
1008
+ className: "neeto-ui-text-primary-500"
1009
+ })
1010
+ }
1011
+ })), /*#__PURE__*/React.createElement("input", _extends({}, getInputProps(), {
1012
+ name: name
1013
+ })), /*#__PURE__*/React.createElement(Typography, {
1014
+ className: "neeto-ui-text-gray-700 text-center",
1015
+ "data-cy": "supported-files-text",
1016
+ lineHeight: "snug",
1017
+ style: "nano"
1018
+ }, t("neetoMolecules.themeSidebar.fileRequirements", {
1019
+ maxSize: FIVE_MEGABYTES
1020
+ }))))));
1021
+ };
1022
+
1023
+ var ImageBlock = function ImageBlock(_ref) {
1024
+ var label = _ref.label,
1025
+ name = _ref.name,
1026
+ _ref$imageData = _ref.imageData,
1027
+ imageData = _ref$imageData === void 0 ? {} : _ref$imageData,
1028
+ _onChange = _ref.onChange;
1029
+ var url = imageData.url,
1030
+ size = imageData.size;
1031
+ var fileName = imageData.name;
1032
+ if (url && !fileName) {
1033
+ var urlParts = url.split("/");
1034
+ fileName = urlParts[urlParts.length - 1];
1035
+ }
1036
+ return /*#__PURE__*/React.createElement("div", {
1037
+ className: "space-y-3 py-3 first:pt-0 last:pb-0"
1038
+ }, label && /*#__PURE__*/React.createElement("div", {
1039
+ className: "flex items-center justify-between"
1040
+ }, /*#__PURE__*/React.createElement(Typography, {
1041
+ "data-cy": "style-fields-labels",
1042
+ style: "body2"
1043
+ }, label)), url ? /*#__PURE__*/React.createElement("div", {
1044
+ className: "flex items-center justify-between gap-2"
1045
+ }, /*#__PURE__*/React.createElement("div", {
1046
+ className: "flex min-w-0 flex-grow items-center gap-2"
1047
+ }, /*#__PURE__*/React.createElement("img", {
1048
+ className: "h-10 w-10 object-cover",
1049
+ src: url
1050
+ }), /*#__PURE__*/React.createElement("div", {
1051
+ className: "flex min-w-0 flex-grow flex-col gap-1"
1052
+ }, /*#__PURE__*/React.createElement(Typography, {
1053
+ className: "neeto-ui-text-gray-700 break-words",
1054
+ style: "nano"
1055
+ }, fileName), size ? /*#__PURE__*/React.createElement(Typography, {
1056
+ className: "neeto-ui-text-gray-500",
1057
+ style: "nano"
1058
+ }, size / 1000, "KB") : null)), /*#__PURE__*/React.createElement("div", {
1059
+ className: "flex items-center gap-1"
1060
+ }, /*#__PURE__*/React.createElement(Button, {
1061
+ label: "Remove",
1062
+ size: "small",
1063
+ style: "danger-text",
1064
+ onClick: function onClick() {
1065
+ return _onChange(name, {}, "");
1066
+ }
1067
+ }))) : /*#__PURE__*/React.createElement(ImageUploader, {
1068
+ isDominantColorEnabled: true,
1069
+ onChange: function onChange(value) {
1070
+ return _onChange(name, value, "url(".concat(value.url, ")"));
1071
+ }
1072
+ }));
1073
+ };
1074
+
1075
+ var SelectBlock = function SelectBlock(_ref) {
1076
+ var label = _ref.label,
1077
+ _ref$placeholder = _ref.placeholder,
1078
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
1079
+ value = _ref.value,
1080
+ options = _ref.options,
1081
+ onChange = _ref.onChange;
1082
+ return /*#__PURE__*/React.createElement("div", {
1083
+ className: "flex items-center justify-between py-3 first:pt-0 last:pb-0"
1084
+ }, /*#__PURE__*/React.createElement(Typography, {
1085
+ "data-cy": "logo-field-labels",
1086
+ style: "body2"
1087
+ }, label), /*#__PURE__*/React.createElement("div", {
1088
+ className: "w-40"
1089
+ }, /*#__PURE__*/React.createElement(Select, {
1090
+ options: options,
1091
+ placeholder: placeholder,
1092
+ value: value,
1093
+ onChange: onChange
1094
+ })));
1095
+ };
1096
+
1097
+ var Logo = function Logo(_ref) {
1098
+ var logo = _ref.logo,
1099
+ _onChange = _ref.onChange;
1100
+ var _useTranslation = useTranslation(),
1101
+ t = _useTranslation.t;
1102
+ return /*#__PURE__*/React.createElement(Card, {
1103
+ title: t("neetoMolecules.themeSidebar.logo")
1104
+ }, /*#__PURE__*/React.createElement("div", {
1105
+ className: "divide-y divide-gray-200"
1106
+ }, /*#__PURE__*/React.createElement(ImageBlock, {
1107
+ imageData: logo,
1108
+ name: "logo",
1109
+ onChange: function onChange(name, value) {
1110
+ return _onChange(name, isEmpty(value) ? {
1111
+ position: logo.position
1112
+ } : mergeLeft(value, logo));
1113
+ }
1114
+ }), logo.url && /*#__PURE__*/React.createElement(SelectBlock, {
1115
+ label: t("neetoMolecules.themeSidebar.logoPosition"),
1116
+ options: POSITION_OPTIONS,
1117
+ placeholder: t("neetoMolecules.themeSidebar.left"),
1118
+ value: findBy({
1119
+ value: logo.position || "left"
1120
+ }, POSITION_OPTIONS),
1121
+ onChange: function onChange(_ref2) {
1122
+ var value = _ref2.value;
1123
+ return _onChange("logo.position", value);
1124
+ }
1125
+ })));
1126
+ };
1127
+ var Logo$1 = /*#__PURE__*/React.memo(Logo);
1128
+
1129
+ var AlignmentBlock = function AlignmentBlock(_ref) {
1130
+ var label = _ref.label,
1131
+ name = _ref.name;
1132
+ var _useTranslation = useTranslation(),
1133
+ t = _useTranslation.t;
1134
+ return /*#__PURE__*/React.createElement("div", {
1135
+ className: "flex items-center justify-between gap-2 py-3 first:pt-0 last:pb-0"
1136
+ }, /*#__PURE__*/React.createElement(Typography, {
1137
+ "data-cy": "style-fields-labels",
1138
+ style: "body2"
1139
+ }, label), /*#__PURE__*/React.createElement(Field, {
1140
+ name: name
1141
+ }, function (_ref2) {
1142
+ var value = _ref2.field.value,
1143
+ setFieldValue = _ref2.form.setFieldValue;
1144
+ return /*#__PURE__*/React.createElement("div", {
1145
+ className: "flex items-center gap-3"
1146
+ }, /*#__PURE__*/React.createElement(Button, {
1147
+ "data-cy": "alignment-left",
1148
+ icon: LeftAlign,
1149
+ size: "large",
1150
+ style: value === "left" ? "primary" : "text",
1151
+ tooltipProps: {
1152
+ content: t("neetoMolecules.themeSidebar.alignmentOptions.left"),
1153
+ position: "bottom"
1154
+ },
1155
+ onClick: function onClick() {
1156
+ return setFieldValue(name, "left");
1157
+ }
1158
+ }), /*#__PURE__*/React.createElement(Button, {
1159
+ "data-cy": "alignment-center",
1160
+ icon: CenterAlign,
1161
+ size: "large",
1162
+ style: value === "center" ? "primary" : "text",
1163
+ tooltipProps: {
1164
+ content: t("neetoMolecules.themeSidebar.alignmentOptions.center"),
1165
+ position: "bottom"
1166
+ },
1167
+ onClick: function onClick() {
1168
+ return setFieldValue(name, "center");
1169
+ }
1170
+ }));
1171
+ }));
1172
+ };
1173
+
1174
+ var ColorBlock = function ColorBlock(_ref) {
1175
+ var label = _ref.label,
1176
+ _ref$color = _ref.color,
1177
+ color = _ref$color === void 0 ? "#FFFFFF" : _ref$color,
1178
+ onChange = _ref.onChange;
1179
+ return /*#__PURE__*/React.createElement("div", {
1180
+ className: "flex items-center justify-between py-3 first:pt-0 last:pb-0"
1181
+ }, /*#__PURE__*/React.createElement(Typography, {
1182
+ "data-cy": "style-fields-labels",
1183
+ style: "body2"
1184
+ }, label), /*#__PURE__*/React.createElement(ColorPicker, {
1185
+ showEyeDropper: true,
1186
+ color: color,
1187
+ onChange: onChange
1188
+ }));
1189
+ };
1190
+
1191
+ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1192
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1193
+ var FontPickerBlock = function FontPickerBlock(_ref) {
1194
+ var label = _ref.label,
1195
+ _ref$placeholder = _ref.placeholder,
1196
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
1197
+ value = _ref.value,
1198
+ options = _ref.options,
1199
+ onChange = _ref.onChange;
1200
+ return /*#__PURE__*/React.createElement("div", {
1201
+ className: "flex items-center justify-between py-3 first:pt-0 last:pb-0"
1202
+ }, /*#__PURE__*/React.createElement(Typography, {
1203
+ "data-cy": "style-fields-labels",
1204
+ style: "body2"
1205
+ }, label), /*#__PURE__*/React.createElement("div", {
1206
+ className: "w-40"
1207
+ }, /*#__PURE__*/React.createElement(Select, {
1208
+ options: options,
1209
+ placeholder: placeholder,
1210
+ value: value,
1211
+ styles: {
1212
+ option: function option(styles, _ref2) {
1213
+ var data = _ref2.data;
1214
+ return _objectSpread$2(_objectSpread$2({}, styles), {}, {
1215
+ fontFamily: data.value
1216
+ });
1217
+ }
1218
+ },
1219
+ onChange: onChange
1220
+ })));
1221
+ };
1222
+
1223
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
1224
+
1225
+ 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}";
1226
+ n(css$1,{});
1227
+
1228
+ var SliderBlock = function SliderBlock(_ref) {
1229
+ var label = _ref.label,
1230
+ onChange = _ref.onChange,
1231
+ defaultValue = _ref.defaultValue,
1232
+ min = _ref.min,
1233
+ max = _ref.max,
1234
+ marks = _ref.marks;
1235
+ return /*#__PURE__*/React.createElement("div", {
1236
+ className: "flex items-center justify-between gap-3 py-3 first:pt-0 last:pb-0"
1237
+ }, /*#__PURE__*/React.createElement(Typography, {
1238
+ "data-cy": "style-fields-labels",
1239
+ style: "body2"
1240
+ }, label), /*#__PURE__*/React.createElement(Slider, {
1241
+ className: "my-2 w-20",
1242
+ defaultValue: defaultValue,
1243
+ marks: marks,
1244
+ max: max,
1245
+ min: min,
1246
+ onChange: onChange,
1247
+ tooltip: {
1248
+ formatter: noop
1249
+ }
1250
+ }));
1251
+ };
1252
+
1253
+ var SwitchBlock = function SwitchBlock(_ref) {
1254
+ var label = _ref.label,
1255
+ name = _ref.name;
1256
+ return /*#__PURE__*/React.createElement("div", {
1257
+ className: "flex items-center justify-between py-3 first:pt-0 last:pb-0"
1258
+ }, /*#__PURE__*/React.createElement(Typography, {
1259
+ "data-cy": "style-fields-labels",
1260
+ style: "body2"
1261
+ }, label), /*#__PURE__*/React.createElement(Switch, {
1262
+ "data-cy": "enable-background-color-toggle",
1263
+ name: name
1264
+ }));
1265
+ };
1266
+
1267
+ var Properties = function Properties(_ref) {
1268
+ var handleChange = _ref.handleChange,
1269
+ values = _ref.values;
1270
+ var _useTranslation = useTranslation(),
1271
+ t = _useTranslation.t;
1272
+ var backgroundColor = values.backgroundColor,
1273
+ questionColor = values.questionColor,
1274
+ buttonBackgroundColor = values.buttonBackgroundColor,
1275
+ buttonTextColor = values.buttonTextColor,
1276
+ answerColor = values.answerColor,
1277
+ backgroundImage = values.backgroundImage,
1278
+ isContentBackgroundEnabled = values.isContentBackgroundEnabled,
1279
+ contentBackgroundColor = values.contentBackgroundColor,
1280
+ isDominantBackgroundColorEnabled = values.isDominantBackgroundColorEnabled,
1281
+ backgroundOverlayOpacity = values.backgroundOverlayOpacity,
1282
+ buttonBorderRadius = values.buttonBorderRadius;
1283
+ var handleOverlayChange = function handleOverlayChange(value) {
1284
+ handleChange("backgroundOverlayOpacity", value, Math.abs(value / 100));
1285
+ if (value < 0) {
1286
+ handleChange("backgroundOverlayColor", "#000000");
1287
+ } else if (value > 0) {
1288
+ handleChange("backgroundOverlayColor", "#ffffff");
1289
+ }
1290
+ };
1291
+ useEffect(function () {
1292
+ if (isContentBackgroundEnabled) {
1293
+ var color = contentBackgroundColor || backgroundColor;
1294
+ handleChange("contentBackgroundColor", color);
1295
+ } else {
1296
+ handleChange("contentBackgroundColor", contentBackgroundColor);
1297
+ }
1298
+ }, [isContentBackgroundEnabled]);
1299
+ useEffect(function () {
1300
+ if (isDominantBackgroundColorEnabled && backgroundImage !== null && backgroundImage !== void 0 && backgroundImage.dominantColor) {
1301
+ handleChange("backgroundColor", backgroundImage.dominantColor, backgroundImage.dominantColor ? hexToRgb(backgroundImage.dominantColor) : "initial");
1302
+ }
1303
+ }, [isDominantBackgroundColorEnabled, backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.dominantColor]);
1304
+ var handleColorChange = function handleColorChange(name) {
1305
+ return function (_ref2) {
1306
+ var hex = _ref2.hex,
1307
+ rgb = _ref2.rgb;
1308
+ handleChange(name, hex, "".concat(rgb.r, ", ").concat(rgb.g, ", ").concat(rgb.b));
1309
+ };
1310
+ };
1311
+ var handleAnswerColorChange = function handleAnswerColorChange(_ref3) {
1312
+ var hex = _ref3.hex,
1313
+ rgb = _ref3.rgb;
1314
+ handleColorChange("answerColor")({
1315
+ hex: hex,
1316
+ rgb: rgb
1317
+ });
1318
+ var contrastColor = getContrast(hex);
1319
+ handleColorChange("answerTextColor")({
1320
+ hex: contrastColor,
1321
+ rgb: hexToRgb(contrastColor)
1322
+ });
1323
+ };
1324
+ return /*#__PURE__*/React.createElement(Card, {
1325
+ title: t("neetoMolecules.themeSidebar.style")
1326
+ }, /*#__PURE__*/React.createElement("div", {
1327
+ className: "divide-y divide-gray-200"
1328
+ }, /*#__PURE__*/React.createElement(FontPickerBlock, {
1329
+ label: t("neetoMolecules.themeSidebar.font"),
1330
+ options: FONT_OPTIONS,
1331
+ value: findBy({
1332
+ value: values.fontFamily
1333
+ }, FONT_OPTIONS) || null,
1334
+ onChange: function onChange(_ref4) {
1335
+ var value = _ref4.value;
1336
+ return handleChange("fontFamily", value);
1337
+ }
1338
+ }), /*#__PURE__*/React.createElement(ColorBlock, {
1339
+ color: questionColor,
1340
+ label: t("neetoMolecules.themeSidebar.questions"),
1341
+ onChange: handleColorChange("questionColor")
1342
+ }), /*#__PURE__*/React.createElement(ColorBlock, {
1343
+ color: answerColor,
1344
+ label: t("neetoMolecules.themeSidebar.answerColor"),
1345
+ onChange: handleAnswerColorChange
1346
+ }), /*#__PURE__*/React.createElement(ColorBlock, {
1347
+ color: buttonBackgroundColor,
1348
+ label: t("neetoMolecules.themeSidebar.buttons"),
1349
+ onChange: handleColorChange("buttonBackgroundColor")
1350
+ }), /*#__PURE__*/React.createElement(ColorBlock, {
1351
+ color: buttonTextColor,
1352
+ label: t("neetoMolecules.themeSidebar.buttonText"),
1353
+ onChange: handleColorChange("buttonTextColor")
1354
+ }), /*#__PURE__*/React.createElement(SliderBlock, {
1355
+ defaultValue: buttonBorderRadius,
1356
+ label: t("neetoMolecules.themeSidebar.buttonBorderRadius"),
1357
+ max: 50,
1358
+ min: 0,
1359
+ onChange: function onChange(borderRadius) {
1360
+ return handleChange("buttonBorderRadius", borderRadius, "".concat(borderRadius, "px"));
1361
+ }
1362
+ }), /*#__PURE__*/React.createElement(ColorBlock, {
1363
+ color: backgroundColor,
1364
+ label: t("neetoMolecules.themeSidebar.backgroundColor"),
1365
+ onChange: function onChange(_ref5) {
1366
+ var hex = _ref5.hex,
1367
+ rgb = _ref5.rgb;
1368
+ handleColorChange("backgroundColor")({
1369
+ hex: hex,
1370
+ rgb: rgb
1371
+ });
1372
+ handleChange("isDominantBackgroundColorEnabled", false);
1373
+ }
1374
+ }), /*#__PURE__*/React.createElement(SwitchBlock, {
1375
+ label: t("neetoMolecules.themeSidebar.enableContentBackground"),
1376
+ name: "isContentBackgroundEnabled"
1377
+ }), isContentBackgroundEnabled && /*#__PURE__*/React.createElement(ColorBlock, {
1378
+ color: contentBackgroundColor,
1379
+ label: t("neetoMolecules.themeSidebar.formBackgroundColor"),
1380
+ onChange: handleColorChange("contentBackgroundColor")
1381
+ }), /*#__PURE__*/React.createElement(ImageBlock, {
1382
+ imageData: backgroundImage,
1383
+ label: t("neetoMolecules.themeSidebar.backgroundImage"),
1384
+ name: "backgroundImage",
1385
+ onChange: function onChange(name, value, variableValue) {
1386
+ handleChange(name, value, variableValue);
1387
+ handleChange("backgroundOverlayOpacity", 0);
1388
+ }
1389
+ }), (backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.url) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SliderBlock, {
1390
+ defaultValue: backgroundOverlayOpacity,
1391
+ label: t("neetoMolecules.themeSidebar.backgroundOverlay"),
1392
+ marks: {
1393
+ 0: " "
1394
+ },
1395
+ max: 100,
1396
+ min: -100,
1397
+ onChange: handleOverlayChange
1398
+ }), /*#__PURE__*/React.createElement(SwitchBlock, {
1399
+ name: "isDominantBackgroundColorEnabled",
1400
+ label: t("neetoMolecules.themeSidebar.enableDominantBackgroundColor")
1401
+ }), /*#__PURE__*/React.createElement(SelectBlock, {
1402
+ label: t("neetoMolecules.themeSidebar.backgroundPosition"),
1403
+ options: BACKGROUND_POSITION_OPTIONS,
1404
+ placeholder: t("neetoMolecules.themeSidebar.left"),
1405
+ value: findBy({
1406
+ value: backgroundImage.backgroundPosition || "center"
1407
+ }, BACKGROUND_POSITION_OPTIONS),
1408
+ onChange: function onChange(_ref6) {
1409
+ var value = _ref6.value;
1410
+ return handleChange("backgroundImage.backgroundPosition", value);
1411
+ }
1412
+ })), /*#__PURE__*/React.createElement(AlignmentBlock, {
1413
+ label: t("neetoMolecules.themeSidebar.thankYouTextAlignment"),
1414
+ name: "thankYouTextAlignment"
1415
+ }), /*#__PURE__*/React.createElement(AlignmentBlock, {
1416
+ label: t("neetoMolecules.themeSidebar.welcomeTextAlignment"),
1417
+ name: "welcomeTextAlignment"
1418
+ }), /*#__PURE__*/React.createElement(AlignmentBlock, {
1419
+ label: t("neetoMolecules.themeSidebar.questionsTextAlignment"),
1420
+ name: "questionsTextAlignment"
1421
+ })));
1422
+ };
1423
+
1424
+ var TextBlock = function TextBlock(_ref) {
1425
+ var name = _ref.name,
1426
+ _ref$autoFocus = _ref.autoFocus,
1427
+ autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus;
1428
+ return /*#__PURE__*/React.createElement(Input, {
1429
+ autoFocus: autoFocus,
1430
+ "data-cy": "text-block-input",
1431
+ name: name
1432
+ });
1433
+ };
1434
+
1435
+ var Customize = function Customize(_ref) {
1436
+ var theme = _ref.theme,
1437
+ handleFormSubmit = _ref.handleFormSubmit;
1438
+ var _useTranslation = useTranslation(),
1439
+ t = _useTranslation.t;
1440
+ var getInitialValues = function getInitialValues() {
1441
+ return theme ? parseTheme(theme) : INITIAL_STATE;
1442
+ };
1443
+ return /*#__PURE__*/React.createElement(Form, {
1444
+ formikProps: {
1445
+ enableReinitialize: true,
1446
+ initialValues: getInitialValues(),
1447
+ onSubmit: handleFormSubmit,
1448
+ validationSchema: THEME_VALIDATION_SCHEMA,
1449
+ validateOnBlur: true,
1450
+ validateOnChange: true
1451
+ }
1452
+ }, function (_ref2) {
1453
+ var values = _ref2.values,
1454
+ dirty = _ref2.dirty,
1455
+ isSubmitting = _ref2.isSubmitting,
1456
+ setFieldValue = _ref2.setFieldValue;
1457
+ return /*#__PURE__*/React.createElement("div", {
1458
+ className: "neeto-molecules-theme-design-sidebar__scroll"
1459
+ }, /*#__PURE__*/React.createElement("div", {
1460
+ className: "flex flex-col gap-6 p-4"
1461
+ }, /*#__PURE__*/React.createElement(Card, {
1462
+ title: t("neetoMolecules.themeSidebar.name")
1463
+ }, /*#__PURE__*/React.createElement(TextBlock, {
1464
+ autoFocus: true,
1465
+ name: "name"
1466
+ })), /*#__PURE__*/React.createElement(Properties, {
1467
+ handleChange: setFieldValue,
1468
+ values: values
1469
+ }), /*#__PURE__*/React.createElement(Logo$1, {
1470
+ logo: values.logo,
1471
+ onChange: setFieldValue
1472
+ })), /*#__PURE__*/React.createElement("div", {
1473
+ className: "neeto-ui-bg-white neeto-ui-shadow-s sticky bottom-0 left-0 right-0 py-6 px-4"
1474
+ }, /*#__PURE__*/React.createElement(Button, {
1475
+ "data-cy": "save-changes-button",
1476
+ disabled: !dirty && theme.id,
1477
+ label: t("neetoMolecules.common.actions.save"),
1478
+ loading: isSubmitting,
1479
+ type: "submit"
1480
+ }), /*#__PURE__*/React.createElement(Button, {
1481
+ className: "ml-2",
1482
+ "data-cy": "reset-button",
1483
+ disabled: !dirty,
1484
+ label: t("neetoMolecules.common.actions.reset"),
1485
+ style: "text",
1486
+ type: "reset"
1487
+ })));
1488
+ });
1489
+ };
1490
+
1491
+ function _objectWithoutPropertiesLoose(source, excluded) {
1492
+ if (source == null) return {};
1493
+ var target = {};
1494
+ var sourceKeys = Object.keys(source);
1495
+ var key, i;
1496
+ for (i = 0; i < sourceKeys.length; i++) {
1497
+ key = sourceKeys[i];
1498
+ if (excluded.indexOf(key) >= 0) continue;
1499
+ target[key] = source[key];
1500
+ }
1501
+ return target;
1502
+ }
1503
+
1504
+ function _objectWithoutProperties(source, excluded) {
1505
+ if (source == null) return {};
1506
+ var target = _objectWithoutPropertiesLoose(source, excluded);
1507
+ var key, i;
1508
+ if (Object.getOwnPropertySymbols) {
1509
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
1510
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
1511
+ key = sourceSymbolKeys[i];
1512
+ if (excluded.indexOf(key) >= 0) continue;
1513
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
1514
+ target[key] = source[key];
1515
+ }
1516
+ }
1517
+ return target;
1518
+ }
1519
+
1520
+ var MENU_ITEM_TYPES = {
1521
+ menuItem: "menuItem",
1522
+ divider: "divider"
1523
+ };
1524
+ var DEFAULT_TOOLTIP_PROPS = {
1525
+ disabled: true,
1526
+ position: "bottom"
1527
+ };
1528
+
1529
+ var _excluded$1 = ["key", "onClick", "label", "type", "isVisible"];
1530
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1531
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1532
+ var Menu = Dropdown.Menu,
1533
+ MenuItem = Dropdown.MenuItem,
1534
+ Divider = Dropdown.Divider;
1535
+ var MoreDropdown = function MoreDropdown(_ref) {
1536
+ var _ref$dropdownButtonPr = _ref.dropdownButtonProps,
1537
+ dropdownButtonProps = _ref$dropdownButtonPr === void 0 ? {} : _ref$dropdownButtonPr,
1538
+ _ref$isVertical = _ref.isVertical,
1539
+ isVertical = _ref$isVertical === void 0 ? false : _ref$isVertical,
1540
+ _ref$isDisabled = _ref.isDisabled,
1541
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
1542
+ _ref$dropdownProps = _ref.dropdownProps,
1543
+ dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
1544
+ menuTopChildren = _ref.menuTopChildren,
1545
+ menuBottomChildren = _ref.menuBottomChildren,
1546
+ _ref$menuItems = _ref.menuItems,
1547
+ menuItems = _ref$menuItems === void 0 ? [] : _ref$menuItems;
1548
+ var tooltipProps = mergeRight(DEFAULT_TOOLTIP_PROPS, dropdownButtonProps.tooltipProps);
1549
+ var targetIcon = isVertical ? MenuVertical : MenuHorizontal;
1550
+ var isDropdownDisabled = isDisabled || dropdownProps.disabled;
1551
+ if (isDropdownDisabled && !tooltipProps.disabled) {
1552
+ return /*#__PURE__*/React.createElement(Tooltip, tooltipProps, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Button, _extends({
1553
+ disabled: true,
1554
+ "data-testid": "nui-dropdown-button",
1555
+ icon: targetIcon,
1556
+ iconPosition: "right",
1557
+ size: "medium",
1558
+ style: "text"
1559
+ }, dropdownButtonProps))));
1560
+ }
1561
+ return /*#__PURE__*/React.createElement(Dropdown, _extends({
1562
+ autoWidth: true,
1563
+ className: "flex",
1564
+ disabled: isDisabled,
1565
+ icon: targetIcon,
1566
+ buttonProps: _objectSpread$1({
1567
+ className: "min-h-0 flex-shrink-0",
1568
+ style: "text"
1569
+ }, dropdownButtonProps)
1570
+ }, dropdownProps), /*#__PURE__*/React.createElement(Menu, null, menuTopChildren, menuItems.map(function (_ref2) {
1571
+ var key = _ref2.key,
1572
+ onClick = _ref2.onClick,
1573
+ label = _ref2.label,
1574
+ _ref2$type = _ref2.type,
1575
+ type = _ref2$type === void 0 ? MENU_ITEM_TYPES.menuItem : _ref2$type,
1576
+ _ref2$isVisible = _ref2.isVisible,
1577
+ isVisible = _ref2$isVisible === void 0 ? true : _ref2$isVisible,
1578
+ menuItemProps = _objectWithoutProperties(_ref2, _excluded$1);
1579
+ if (!isVisible) return null;
1580
+ return type === MENU_ITEM_TYPES.menuItem ? /*#__PURE__*/React.createElement(MenuItem.Button, _extends({
1581
+ key: key
1582
+ }, _objectSpread$1({
1583
+ onClick: onClick
1584
+ }, menuItemProps)), label) : /*#__PURE__*/React.createElement(Divider, {
1585
+ key: key
1586
+ });
1587
+ }), menuBottomChildren));
1588
+ };
1589
+
1590
+ var _excluded = ["name"];
1591
+ var ThemeCard = function ThemeCard(_ref) {
1592
+ var _ref$active = _ref.active,
1593
+ active = _ref$active === void 0 ? false : _ref$active,
1594
+ isPreviewing = _ref.isPreviewing,
1595
+ onSetPreviewTheme = _ref.onSetPreviewTheme,
1596
+ onDeleteTheme = _ref.onDeleteTheme,
1597
+ onEditTheme = _ref.onEditTheme,
1598
+ onApplyTheme = _ref.onApplyTheme,
1599
+ onCloneTheme = _ref.onCloneTheme,
1600
+ theme = _ref.theme,
1601
+ isHighLightedTheme = _ref.isHighLightedTheme,
1602
+ isApplyingTheme = _ref.isApplyingTheme;
1603
+ var _useTranslation = useTranslation(),
1604
+ t = _useTranslation.t;
1605
+ var name = theme.name,
1606
+ styles = _objectWithoutProperties(theme, _excluded);
1607
+ var handleApplyTheme = function handleApplyTheme() {
1608
+ if (isApplyingTheme) return;
1609
+ onApplyTheme(theme);
1610
+ };
1611
+ var moreMenuItems = [{
1612
+ "data-cy": "theme-edit-button",
1613
+ key: "theme-edit-button",
1614
+ onClick: function onClick() {
1615
+ return onEditTheme(theme);
1616
+ },
1617
+ label: t("neetoMolecules.common.actions.edit"),
1618
+ isVisible: isPresent(onEditTheme)
1619
+ }, {
1620
+ isVisible: isPresent(onCloneTheme),
1621
+ "data-cy": "theme-clone-button",
1622
+ key: "theme-clone-button",
1623
+ onClick: function onClick() {
1624
+ return onCloneTheme(theme);
1625
+ },
1626
+ label: t("neetoMolecules.themeSidebar.themeOptions.clone")
1627
+ }, {
1628
+ isVisible: isPresent(onDeleteTheme),
1629
+ type: "divider",
1630
+ key: "divider"
1631
+ }, {
1632
+ isVisible: isPresent(onDeleteTheme),
1633
+ "data-cy": "theme-delete-button",
1634
+ key: "theme-delete-button",
1635
+ onClick: function onClick() {
1636
+ return onDeleteTheme(theme);
1637
+ },
1638
+ label: t("neetoMolecules.themeSidebar.themeOptions.delete")
1639
+ }];
1640
+ return /*#__PURE__*/React.createElement("div", {
1641
+ className: "group space-y-2",
1642
+ "data-cy": active ? "active-theme-card" : "theme-card",
1643
+ id: theme.id
1644
+ }, /*#__PURE__*/React.createElement("div", {
1645
+ className: classnames("neeto-molecules-theme-thumbnail neeto-ui-rounded-lg border transition-all duration-300 ease-in-out", {
1646
+ "neeto-ui-border-gray-400": !active,
1647
+ "neeto-ui-border-gray-800 neeto-molecules-theme-thumbnail--active": active,
1648
+ "neeto-molecules-theme-thumbnail--preview-active": isPreviewing,
1649
+ "neeto-molecules-theme-thumbnail--highlight-active": isHighLightedTheme
1650
+ }),
1651
+ style: {
1652
+ backgroundColor: path(["colorScheme", "backgroundColor"], styles),
1653
+ backgroundImage: path(["backgroundImage", "url"], styles) ? "url(".concat(path(["backgroundImage", "url"], styles), ")") : "initial",
1654
+ backgroundSize: "cover"
1655
+ },
1656
+ onClick: function onClick() {
1657
+ return onSetPreviewTheme(theme);
1658
+ }
1659
+ }, /*#__PURE__*/React.createElement("div", {
1660
+ className: "group-hover:opacity-85 neeto-ui-rounded-lg cursor-pointer p-6 transition-all duration-300 ease-in-out"
1661
+ }, /*#__PURE__*/React.createElement("div", {
1662
+ className: "mb-3"
1663
+ }, /*#__PURE__*/React.createElement(Typography, {
1664
+ style: "h3",
1665
+ weight: "semibold"
1666
+ }, /*#__PURE__*/React.createElement("span", {
1667
+ style: {
1668
+ color: path(["colorScheme", "questionColor"], styles)
1669
+ }
1670
+ }, t("neetoMolecules.themeSidebar.themeCard.question"))), /*#__PURE__*/React.createElement(Typography, {
1671
+ className: "neeto-ui-text-gray-600",
1672
+ style: "body2"
1673
+ }, /*#__PURE__*/React.createElement("span", {
1674
+ style: {
1675
+ color: path(["colorScheme", "answerColor"], styles)
1676
+ }
1677
+ }, t("neetoMolecules.themeSidebar.themeCard.answer")))), /*#__PURE__*/React.createElement("div", {
1678
+ className: "neeto-ui-rounded-lg h-5 w-12",
1679
+ style: {
1680
+ backgroundColor: path(["colorScheme", "buttonBackgroundColor"], styles)
1681
+ }
1682
+ }))), /*#__PURE__*/React.createElement("div", {
1683
+ className: "flex items-start justify-between gap-1"
1684
+ }, /*#__PURE__*/React.createElement(Typography, {
1685
+ className: "min-w-0 flex-grow break-words pt-1 line-clamp-2",
1686
+ "data-cy": "theme-name",
1687
+ lineHeight: "snug",
1688
+ style: "body2"
1689
+ }, name), /*#__PURE__*/React.createElement("div", {
1690
+ className: "flex items-center gap-2"
1691
+ }, active ? /*#__PURE__*/React.createElement(Tag, {
1692
+ className: "flex-shrink-0",
1693
+ "data-cy": "active-theme-label",
1694
+ label: t("neetoMolecules.themeSidebar.active"),
1695
+ style: "success"
1696
+ }) : /*#__PURE__*/React.createElement(Button, {
1697
+ className: "flex-shrink-0",
1698
+ "data-cy": "apply-theme-button",
1699
+ disabled: isApplyingTheme,
1700
+ label: t("neetoMolecules.common.actions.apply"),
1701
+ loading: isApplyingTheme,
1702
+ size: "small",
1703
+ style: "link",
1704
+ onClick: handleApplyTheme
1705
+ }), /*#__PURE__*/React.createElement(MoreDropdown, {
1706
+ buttonProps: {
1707
+ buttonSize: "small"
1708
+ },
1709
+ menuItems: moreMenuItems,
1710
+ dropdownButtonProps: {
1711
+ "data-cy": "theme-card-options",
1712
+ strategy: "fixed"
1713
+ }
1714
+ }))));
1715
+ };
1716
+
1717
+ var Themes = function Themes(_ref) {
1718
+ var currentTheme = _ref.currentTheme,
1719
+ onCloneTheme = _ref.onCloneTheme,
1720
+ _ref$customThemes = _ref.customThemes,
1721
+ customThemes = _ref$customThemes === void 0 ? [] : _ref$customThemes,
1722
+ _ref$defaultThemes = _ref.defaultThemes,
1723
+ defaultThemes = _ref$defaultThemes === void 0 ? [] : _ref$defaultThemes,
1724
+ onDeleteTheme = _ref.onDeleteTheme,
1725
+ onEditTheme = _ref.onEditTheme,
1726
+ onApplyTheme = _ref.onApplyTheme,
1727
+ previewingTheme = _ref.previewingTheme,
1728
+ setPreviewingTheme = _ref.setPreviewingTheme,
1729
+ themeToHighlight = _ref.themeToHighlight,
1730
+ didScrollActiveThemeIntoView = _ref.didScrollActiveThemeIntoView,
1731
+ applyingThemeId = _ref.applyingThemeId;
1732
+ var _useTranslation = useTranslation(),
1733
+ t = _useTranslation.t;
1734
+ var _useState = useState(""),
1735
+ _useState2 = _slicedToArray(_useState, 2),
1736
+ searchQuery = _useState2[0],
1737
+ setSearchQuery = _useState2[1];
1738
+ var filteredDefaultThemes = defaultThemes.filter(function (theme) {
1739
+ return theme.name.toLowerCase().includes(searchQuery.toLowerCase());
1740
+ });
1741
+ var filteredThemes = customThemes.filter(function (theme) {
1742
+ return theme.name.toLowerCase().includes(searchQuery.toLowerCase());
1743
+ });
1744
+ var isSearchFieldVisible = (customThemes === null || customThemes === void 0 ? void 0 : customThemes.length) + (defaultThemes === null || defaultThemes === void 0 ? void 0 : defaultThemes.length) > 10;
1745
+ useEffect(function () {
1746
+ if (didScrollActiveThemeIntoView.current || !(currentTheme !== null && currentTheme !== void 0 && currentTheme.id)) return;
1747
+ didScrollActiveThemeIntoView.current = true;
1748
+ setTimeout(function () {
1749
+ scrollElementIntoView(currentTheme.id);
1750
+ }, 200);
1751
+ }, [didScrollActiveThemeIntoView, currentTheme === null || currentTheme === void 0 ? void 0 : currentTheme.id]);
1752
+ return /*#__PURE__*/React.createElement("div", {
1753
+ className: "neeto-molecules-theme-design-sidebar__scroll"
1754
+ }, /*#__PURE__*/React.createElement("div", {
1755
+ className: "mb-6 space-y-3"
1756
+ }, isSearchFieldVisible && /*#__PURE__*/React.createElement(Input$1, {
1757
+ autoFocus: true,
1758
+ autoComplete: "off",
1759
+ className: "mb-4 mt-1 px-6",
1760
+ placeholder: t("neetoMolecules.themeSidebar.searchThemes"),
1761
+ prefix: /*#__PURE__*/React.createElement(Search, null),
1762
+ type: "search",
1763
+ value: searchQuery,
1764
+ onChange: function onChange(e) {
1765
+ return setSearchQuery(e.target.value);
1766
+ }
1767
+ }), isEmpty(filteredThemes) && isEmpty(filteredDefaultThemes) && /*#__PURE__*/React.createElement(Typography, {
1768
+ className: "text-center",
1769
+ style: "body2"
1770
+ }, t("neetoMolecules.common.notFound.title", {
1771
+ entity: t("neetoMolecules.themeSidebar.theme", {
1772
+ count: 2
1773
+ })
1774
+ })), isNotEmpty(filteredDefaultThemes) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Typography, {
1775
+ className: "my-4 px-6 uppercase",
1776
+ "data-cy": "system-themes-header",
1777
+ style: "h6",
1778
+ weight: "semibold"
1779
+ }, t("neetoMolecules.themeSidebar.systemThemes")), /*#__PURE__*/React.createElement("div", {
1780
+ className: "flex flex-col gap-4 px-6"
1781
+ }, filteredDefaultThemes.map(function (theme) {
1782
+ return /*#__PURE__*/React.createElement(ThemeCard, {
1783
+ active: (currentTheme === null || currentTheme === void 0 ? void 0 : currentTheme.id) === theme.id,
1784
+ isApplyingTheme: applyingThemeId === theme.id,
1785
+ isPreviewing: (previewingTheme === null || previewingTheme === void 0 ? void 0 : previewingTheme.id) === theme.id,
1786
+ key: theme.id,
1787
+ onApplyTheme: onApplyTheme,
1788
+ onCloneTheme: onCloneTheme,
1789
+ theme: theme,
1790
+ onSetPreviewTheme: setPreviewingTheme
1791
+ });
1792
+ })))), isNotEmpty(filteredThemes) && /*#__PURE__*/React.createElement("div", {
1793
+ className: "mb-6 space-y-3"
1794
+ }, /*#__PURE__*/React.createElement(Typography, {
1795
+ className: "my-4 px-6 uppercase",
1796
+ "data-cy": "custom-themes-header",
1797
+ style: "h6",
1798
+ weight: "semibold"
1799
+ }, t("neetoMolecules.themeSidebar.customThemes")), /*#__PURE__*/React.createElement("div", {
1800
+ className: "flex flex-col gap-4 px-6"
1801
+ }, filteredThemes.map(function (theme) {
1802
+ var isActive = (currentTheme === null || currentTheme === void 0 ? void 0 : currentTheme.id) === theme.id;
1803
+ return /*#__PURE__*/React.createElement(ThemeCard, {
1804
+ active: isActive,
1805
+ isHighLightedTheme: theme.id === themeToHighlight,
1806
+ isPreviewing: (previewingTheme === null || previewingTheme === void 0 ? void 0 : previewingTheme.id) === theme.id,
1807
+ key: theme.id,
1808
+ onApplyTheme: onApplyTheme,
1809
+ onCloneTheme: onCloneTheme,
1810
+ onEditTheme: onEditTheme,
1811
+ theme: theme,
1812
+ onDeleteTheme: !isActive ? onDeleteTheme : null,
1813
+ onSetPreviewTheme: setPreviewingTheme
1814
+ });
1815
+ }))));
1816
+ };
1817
+
1818
+ 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}.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}";
1819
+ n(css,{});
1820
+
1821
+ var TitleBar = function TitleBar(_ref) {
1822
+ var currentScreen = _ref.currentScreen,
1823
+ handleBackPress = _ref.handleBackPress,
1824
+ handleCreateNewTheme = _ref.handleCreateNewTheme,
1825
+ isNewTheme = _ref.isNewTheme;
1826
+ var _useTranslation = useTranslation(),
1827
+ t = _useTranslation.t;
1828
+ if (currentScreen === DESIGN_SCREENS.CUSTOMIZE) {
1829
+ return /*#__PURE__*/React.createElement("div", {
1830
+ className: classnames("neeto-molecules-theme-design-sidebar__header px-4")
1831
+ }, /*#__PURE__*/React.createElement("div", {
1832
+ className: "flex items-center justify-start space-x-2"
1833
+ }, /*#__PURE__*/React.createElement(Button, {
1834
+ "data-cy": "customise-themes-back-button",
1835
+ icon: LeftArrow,
1836
+ iconPosition: "left",
1837
+ style: "text",
1838
+ tooltipProps: {
1839
+ content: t("neetoMolecules.themeSidebar.backToThemes"),
1840
+ position: "top"
1841
+ },
1842
+ onClick: handleBackPress
1843
+ }), /*#__PURE__*/React.createElement(Typography, {
1844
+ "data-cy": "themes-header",
1845
+ lineHeight: "normal",
1846
+ style: "h3",
1847
+ weight: "semibold"
1848
+ }, isNewTheme ? t("neetoMolecules.themeSidebar.createTheme.title") : t("neetoMolecules.themeSidebar.editTheme.title"))));
1849
+ }
1850
+ return /*#__PURE__*/React.createElement("div", {
1851
+ className: classnames("neeto-molecules-theme-design-sidebar__header px-6")
1852
+ }, /*#__PURE__*/React.createElement("div", {
1853
+ className: "flex items-center justify-between space-x-2"
1854
+ }, /*#__PURE__*/React.createElement(Typography, {
1855
+ "data-cy": "themes-header",
1856
+ lineHeight: "normal",
1857
+ style: "h3",
1858
+ weight: "semibold"
1859
+ }, capitalize(t("neetoMolecules.themeSidebar.theme", {
1860
+ count: 2
1861
+ }))), /*#__PURE__*/React.createElement("div", {
1862
+ className: "self-end"
1863
+ }, /*#__PURE__*/React.createElement(Button, {
1864
+ "data-cy": "customise-themes-add-theme-button",
1865
+ icon: Plus,
1866
+ iconPosition: "left",
1867
+ style: "text",
1868
+ tooltipProps: {
1869
+ content: t("neetoMolecules.themeSidebar.addNewTheme"),
1870
+ position: "top"
1871
+ },
1872
+ onClick: handleCreateNewTheme
1873
+ }))));
1874
+ };
1875
+
1876
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1877
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1878
+ var ThemeSidebar = function ThemeSidebar(_ref) {
1879
+ var defaultThemes = _ref.defaultThemes,
1880
+ customThemes = _ref.customThemes,
1881
+ createTheme = _ref.createTheme,
1882
+ deleteTheme = _ref.deleteTheme,
1883
+ editTheme = _ref.editTheme,
1884
+ applyTheme = _ref.applyTheme,
1885
+ currentTheme = _ref.currentTheme,
1886
+ isLoadingThemes = _ref.isLoadingThemes,
1887
+ applyingThemeId = _ref.applyingThemeId;
1888
+ var _useTranslation = useTranslation(),
1889
+ t = _useTranslation.t;
1890
+ var _useState = useState(DESIGN_SCREENS.THEMES),
1891
+ _useState2 = _slicedToArray(_useState, 2),
1892
+ currentScreen = _useState2[0],
1893
+ setCurrentScreen = _useState2[1];
1894
+ var _useState3 = useState(null),
1895
+ _useState4 = _slicedToArray(_useState3, 2),
1896
+ previewingTheme = _useState4[0],
1897
+ setPreviewingTheme = _useState4[1];
1898
+ var _useState5 = useState(null),
1899
+ _useState6 = _slicedToArray(_useState5, 2),
1900
+ themeToHighlight = _useState6[0],
1901
+ setThemeToHighlight = _useState6[1];
1902
+ var didScrollActiveThemeIntoView = useRef(null);
1903
+ useEffect(function () {
1904
+ isLoadingThemes && setCurrentScreen(DESIGN_SCREENS.LOADING);
1905
+ }, [isLoadingThemes]);
1906
+ useEffect(function () {
1907
+ !previewingTheme && setCurrentScreen(DESIGN_SCREENS.THEMES);
1908
+ }, [previewingTheme]);
1909
+ var handleEditTheme = function handleEditTheme(theme) {
1910
+ setPreviewingTheme(theme);
1911
+ setCurrentScreen(DESIGN_SCREENS.CUSTOMIZE);
1912
+ };
1913
+ var handleBackPress = function handleBackPress() {
1914
+ setCurrentScreen(DESIGN_SCREENS.THEMES);
1915
+ setPreviewingTheme(null);
1916
+ };
1917
+ var handleCreateNewTheme = function handleCreateNewTheme() {
1918
+ setPreviewingTheme(_objectSpread(_objectSpread({}, defaultThemes[0]), {}, {
1919
+ id: null,
1920
+ name: t("neetoMolecules.themeSidebar.defaultThemeName")
1921
+ }));
1922
+ setCurrentScreen(DESIGN_SCREENS.CUSTOMIZE);
1923
+ };
1924
+ var highlightTheme = function highlightTheme(themeToHighlight) {
1925
+ setTimeout(function () {
1926
+ scrollElementIntoView(themeToHighlight.id);
1927
+ }, 1500);
1928
+ setTimeout(function () {
1929
+ setThemeToHighlight(null);
1930
+ }, 4000);
1931
+ setThemeToHighlight(themeToHighlight.id);
1932
+ };
1933
+ var createThemeCallback = function createThemeCallback(createdTheme) {
1934
+ setCurrentScreen(DESIGN_SCREENS.THEMES);
1935
+ setPreviewingTheme(createdTheme.id);
1936
+ highlightTheme(createdTheme);
1937
+ };
1938
+ var handleCloneTheme = function handleCloneTheme(data) {
1939
+ var themeToClone = _objectSpread(_objectSpread({}, data), {}, {
1940
+ name: "".concat(data.name, " - clone")
1941
+ });
1942
+ createTheme(themeToClone, createThemeCallback);
1943
+ };
1944
+ var handleFormSubmit = function handleFormSubmit(values) {
1945
+ var formattedValues = transformTheme(values);
1946
+ if (!(previewingTheme !== null && previewingTheme !== void 0 && previewingTheme.id)) {
1947
+ createTheme(formattedValues, createThemeCallback);
1948
+ } else {
1949
+ editTheme(_objectSpread(_objectSpread({}, formattedValues), {}, {
1950
+ id: previewingTheme.id
1951
+ }));
1952
+ }
1953
+ };
1954
+ return /*#__PURE__*/React.createElement("div", {
1955
+ className: "neeto-molecules-theme-design-sidebar neeto-ui-border-gray-200 border-r"
1956
+ }, /*#__PURE__*/React.createElement(TitleBar, {
1957
+ currentScreen: currentScreen,
1958
+ handleBackPress: handleBackPress,
1959
+ handleCreateNewTheme: handleCreateNewTheme,
1960
+ isNewTheme: !(previewingTheme !== null && previewingTheme !== void 0 && previewingTheme.id)
1961
+ }), currentScreen === DESIGN_SCREENS.LOADING && /*#__PURE__*/React.createElement("div", {
1962
+ className: "flex h-full w-full items-center justify-center"
1963
+ }, /*#__PURE__*/React.createElement(Spinner, null)), currentScreen === DESIGN_SCREENS.THEMES && /*#__PURE__*/React.createElement(Themes, {
1964
+ applyingThemeId: applyingThemeId,
1965
+ currentTheme: currentTheme,
1966
+ customThemes: customThemes,
1967
+ defaultThemes: defaultThemes,
1968
+ didScrollActiveThemeIntoView: didScrollActiveThemeIntoView,
1969
+ highlightTheme: highlightTheme,
1970
+ previewingTheme: previewingTheme,
1971
+ setPreviewingTheme: setPreviewingTheme,
1972
+ themeToHighlight: themeToHighlight,
1973
+ onApplyTheme: applyTheme,
1974
+ onCloneTheme: handleCloneTheme,
1975
+ onDeleteTheme: deleteTheme,
1976
+ onEditTheme: handleEditTheme
1977
+ }), currentScreen === DESIGN_SCREENS.CUSTOMIZE && /*#__PURE__*/React.createElement(Customize, {
1978
+ handleFormSubmit: handleFormSubmit,
1979
+ theme: previewingTheme
1980
+ }));
1981
+ };
1982
+
1983
+ export { ThemeSidebar as default };
1984
+ //# sourceMappingURL=ThemeSidebar.js.map