@bigbinary/neeto-molecules 1.1.10 → 1.1.12

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 (477) hide show
  1. package/dist/AutoSaveInput/autosaveinput.scss +15 -0
  2. package/dist/AutoSaveInput/constants.js +13 -0
  3. package/dist/AutoSaveInput/index.js +124 -0
  4. package/dist/AutoSaveInput/utils.js +10 -0
  5. package/dist/Breadcrumbs/breadcrumbs.scss +33 -0
  6. package/dist/Breadcrumbs/index.js +31 -0
  7. package/dist/BrowserSupport/Callout.js +15 -0
  8. package/dist/BrowserSupport/ContactUs.js +21 -0
  9. package/dist/BrowserSupport/DownloadLink.js +17 -0
  10. package/dist/BrowserSupport/PartialSupportedBrowserVersion.js +17 -0
  11. package/dist/BrowserSupport/UnknownBrowser.js +13 -0
  12. package/dist/BrowserSupport/UnsupportedBrowser.js +24 -0
  13. package/dist/BrowserSupport/UnsupportedBrowserMessage.js +22 -0
  14. package/dist/BrowserSupport/UnsupportedBrowserVersion.js +27 -0
  15. package/dist/BrowserSupport/UnsupportedVersionMessage.js +30 -0
  16. package/dist/BrowserSupport/browsersupport.scss +71 -0
  17. package/dist/BrowserSupport/constants.js +63 -0
  18. package/dist/BrowserSupport/index.js +58 -0
  19. package/dist/BrowserSupport/utils.js +32 -0
  20. package/dist/CalendarView/CustomDatePicker.js +87 -0
  21. package/dist/CalendarView/Header.js +53 -0
  22. package/dist/CalendarView/constants.js +19 -0
  23. package/dist/CalendarView/index.js +83 -0
  24. package/dist/CalendarView/utils.js +50 -0
  25. package/dist/Codeblock/index.js +30 -0
  26. package/dist/{Columns.js → Columns/index.js} +13 -130
  27. package/dist/Columns/utils.js +20 -0
  28. package/dist/ConfirmationModal/constants.js +3 -0
  29. package/dist/{ConfirmationModal.js → ConfirmationModal/index.js} +7 -23
  30. package/dist/ConfirmationModal/utils.js +10 -0
  31. package/dist/Container/container.scss +21 -0
  32. package/dist/Container/index.js +23 -0
  33. package/dist/CopyToClipboardButton/constants.js +13 -0
  34. package/dist/CopyToClipboardButton/copyToClipboard.scss +22 -0
  35. package/dist/CopyToClipboardButton/index.js +59 -0
  36. package/dist/CustomDomain/index.js +98 -0
  37. package/dist/CustomDomainDashboard/DeleteAlert.js +28 -0
  38. package/dist/CustomDomainDashboard/Header.js +32 -0
  39. package/dist/CustomDomainDashboard/Manage/Record.js +42 -0
  40. package/dist/CustomDomainDashboard/Manage/StatusInfo.js +21 -0
  41. package/dist/CustomDomainDashboard/Manage/TagBlock.js +36 -0
  42. package/dist/CustomDomainDashboard/Manage/constants.js +4 -0
  43. package/dist/CustomDomainDashboard/Manage/index.js +124 -0
  44. package/dist/CustomDomainDashboard/Manage/utils.js +8 -0
  45. package/dist/CustomDomainDashboard/api.js +35 -0
  46. package/dist/CustomDomainDashboard/constants.js +2 -0
  47. package/dist/CustomDomainDashboard/index.js +118 -0
  48. package/dist/CustomDomainDashboard/useCustomDomainApi.js +71 -0
  49. package/dist/CustomDomainDashboard/utils.js +84 -0
  50. package/dist/{DateFormat.js → DateFormat/index.js} +8 -25
  51. package/dist/DateRangeFilter/index.js +60 -0
  52. package/dist/DateRangeFilter/utils.js +113 -0
  53. package/dist/DynamicVariables/dynamic-variables.scss +34 -0
  54. package/dist/DynamicVariables/index.js +59 -0
  55. package/dist/DynamicVariables/utils.js +37 -0
  56. package/dist/EmailForm/EmailForm.js +97 -0
  57. package/dist/EmailForm/EmailFormProvider.js +45 -0
  58. package/dist/EmailForm/EmailPreview.js +129 -0
  59. package/dist/EmailForm/ReplyToField.js +55 -0
  60. package/dist/EmailForm/SendToField.js +27 -0
  61. package/dist/EmailForm/SubjectField.js +64 -0
  62. package/dist/EmailForm/constants.js +33 -0
  63. package/dist/EmailForm/contexts/EmailForm.js +7 -0
  64. package/dist/EmailForm/index.js +4 -0
  65. package/dist/EmailForm/utils.js +10 -0
  66. package/dist/EmailPreview/index.js +2 -0
  67. package/dist/{ErrorPage.js → ErrorPage/constants.js} +36 -175
  68. package/dist/ErrorPage/index.js +78 -0
  69. package/dist/Header/Breadcrumbs.js +31 -0
  70. package/dist/Header/Dropdown.js +12 -0
  71. package/dist/Header/constants.js +6 -0
  72. package/dist/Header/header.scss +121 -0
  73. package/dist/Header/index.js +61 -0
  74. package/dist/IconPicker/Icon.js +34 -0
  75. package/dist/IconPicker/NoResults.js +12 -0
  76. package/dist/IconPicker/constants.js +8 -0
  77. package/dist/IconPicker/icon-picker.scss +1 -0
  78. package/dist/IconPicker/index.js +164 -0
  79. package/dist/ImageWithFallback/ImagePlaceholder.js +16 -0
  80. package/dist/ImageWithFallback/index.js +31 -0
  81. package/dist/IntegrationCard/Dropdown.js +45 -0
  82. package/dist/IntegrationCard/Status.js +25 -0
  83. package/dist/IntegrationCard/index.js +128 -0
  84. package/dist/IntegrationDisconnectAlert/index.js +36 -0
  85. package/dist/{IntegrationWalkthroughModal.js → IntegrationWalkthroughModal/index.js} +6 -8
  86. package/dist/IpRestriction/AllowedIpRanges.js +75 -0
  87. package/dist/IpRestriction/CurrentIp.js +26 -0
  88. package/dist/IpRestriction/FormRow.js +84 -0
  89. package/dist/IpRestriction/Row.js +91 -0
  90. package/dist/IpRestriction/apis/allowed_ip_ranges.js +28 -0
  91. package/dist/IpRestriction/apis/current_ip.js +11 -0
  92. package/dist/IpRestriction/apis/ip_restriction.js +16 -0
  93. package/dist/IpRestriction/constants.js +20 -0
  94. package/dist/IpRestriction/hooks/reactQuery/useAllowedIpRanges.js +34 -0
  95. package/dist/IpRestriction/hooks/reactQuery/useCurrentIp.js +10 -0
  96. package/dist/IpRestriction/hooks/reactQuery/useIpRestrictions.js +18 -0
  97. package/dist/IpRestriction/index.js +102 -0
  98. package/dist/IpRestriction/utils.js +85 -0
  99. package/dist/KeyboardShortcuts/Pane/HotKey.js +44 -0
  100. package/dist/KeyboardShortcuts/Pane/HotKeyList.js +42 -0
  101. package/dist/KeyboardShortcuts/Pane/constants.js +25 -0
  102. package/dist/KeyboardShortcuts/Pane/index.js +61 -0
  103. package/dist/KeyboardShortcuts/Pane/keyboard-shortcuts.scss +5 -0
  104. package/dist/KeyboardShortcuts/Pane/utils.js +66 -0
  105. package/dist/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js +31 -0
  106. package/dist/KeyboardShortcuts/index.js +9 -0
  107. package/dist/LoginPage/Form.js +57 -0
  108. package/dist/LoginPage/constants.js +12 -0
  109. package/dist/LoginPage/index.js +103 -0
  110. package/dist/MenuBar/AddNew.js +25 -0
  111. package/dist/MenuBar/Block.js +60 -0
  112. package/dist/MenuBar/Item.js +32 -0
  113. package/dist/MenuBar/Search.js +39 -0
  114. package/dist/MenuBar/SubTitle.js +23 -0
  115. package/dist/MenuBar/index.js +46 -0
  116. package/dist/MenuBar/menubar.scss +154 -0
  117. package/dist/Metadata/Block.js +30 -0
  118. package/dist/Metadata/DetailsBlock.js +86 -0
  119. package/dist/Metadata/constants.js +9 -0
  120. package/dist/Metadata/index.js +29 -0
  121. package/dist/Metadata/metadata.scss +15 -0
  122. package/dist/MoreDropdown/constants.js +25 -0
  123. package/dist/{MoreDropdown.js → MoreDropdown/index.js} +9 -102
  124. package/dist/NavigationHeader/LeftBlock.js +32 -0
  125. package/dist/NavigationHeader/Navigation.js +24 -0
  126. package/dist/NavigationHeader/RightBlock.js +68 -0
  127. package/dist/NavigationHeader/constants.js +11 -0
  128. package/dist/NavigationHeader/index.js +19 -0
  129. package/dist/NavigationHeader/navigation-header.scss +3 -0
  130. package/dist/NeetoWidget/CodeBlock.js +57 -0
  131. package/dist/NeetoWidget/CodeSnippet.js +119 -0
  132. package/dist/NeetoWidget/EmbedCode.js +281 -0
  133. package/dist/NeetoWidget/Main.js +19 -0
  134. package/dist/NeetoWidget/SelectionSwitches/TooltipSwitch.js +25 -0
  135. package/dist/NeetoWidget/SelectionSwitches/index.js +44 -0
  136. package/dist/NeetoWidget/SyntaxHighlighter.js +17 -0
  137. package/dist/NeetoWidget/api.js +20 -0
  138. package/dist/NeetoWidget/constants.js +62 -0
  139. package/dist/NeetoWidget/hooks/useForceUpdate.js +14 -0
  140. package/dist/NeetoWidget/index.js +7 -0
  141. package/dist/NeetoWidget/mutations.js +9 -0
  142. package/dist/NeetoWidget/queries.js +32 -0
  143. package/dist/NeetoWidget/utils.js +83 -0
  144. package/dist/PageLoader/index.js +81 -0
  145. package/dist/PageLoader/page-loader.scss +95 -0
  146. package/dist/PhoneNumber/CountryPicker/SingleValue.js +21 -0
  147. package/dist/PhoneNumber/CountryPicker/constants.js +26 -0
  148. package/dist/PhoneNumber/CountryPicker/index.js +59 -0
  149. package/dist/PhoneNumber/FormikPhoneNumberInput.js +21 -0
  150. package/dist/PhoneNumber/PhoneNumber.js +30 -0
  151. package/dist/PhoneNumber/PhoneNumberInput.js +79 -0
  152. package/dist/PhoneNumber/index.js +5 -0
  153. package/dist/PhoneNumber/utils.js +55 -0
  154. package/dist/PublishBlock/AlertBlock.js +14 -0
  155. package/dist/PublishBlock/index.js +100 -0
  156. package/dist/PublishBlock/publish-block.scss +25 -0
  157. package/dist/Rename/DummySpan.js +21 -0
  158. package/dist/Rename/constants.js +1 -0
  159. package/dist/Rename/index.js +191 -0
  160. package/dist/Rename/rename.scss +69 -0
  161. package/dist/Rename/utils.js +10 -0
  162. package/dist/ResponsiveDevicePicker/constants.js +19 -0
  163. package/dist/ResponsiveDevicePicker/index.js +36 -0
  164. package/dist/Schedule/DisplayAvailability.js +58 -0
  165. package/dist/Schedule/Fields.js +43 -0
  166. package/dist/Schedule/Form/ScheduleRow.js +125 -0
  167. package/dist/Schedule/Form/constants.js +20 -0
  168. package/dist/Schedule/Form/index.js +144 -0
  169. package/dist/Schedule/Form/utils.js +63 -0
  170. package/dist/Schedule/Header.js +76 -0
  171. package/dist/Schedule/ScheduleContext.js +8 -0
  172. package/dist/Schedule/constants.js +8 -0
  173. package/dist/Schedule/dayjsExtended/constants.js +1 -0
  174. package/dist/Schedule/dayjsExtended/index.js +14 -0
  175. package/dist/Schedule/dayjsExtended/range.js +73 -0
  176. package/dist/Schedule/index.js +80 -0
  177. package/dist/Schedule/utils.js +152 -0
  178. package/dist/Scrollable/constants.js +8 -0
  179. package/dist/Scrollable/index.js +26 -0
  180. package/dist/Scrollable/scrollable.scss +32 -0
  181. package/dist/Search/index.js +52 -0
  182. package/dist/Security/AllowedKeywords/Add.js +38 -0
  183. package/dist/Security/AllowedKeywords/index.js +38 -0
  184. package/dist/Security/PasswordBlock.js +31 -0
  185. package/dist/Security/RadioBlock.js +38 -0
  186. package/dist/Security/api.js +12 -0
  187. package/dist/Security/constants.js +58 -0
  188. package/dist/Security/index.js +68 -0
  189. package/dist/Security/useSecurityApi.js +22 -0
  190. package/dist/Security/utils.js +31 -0
  191. package/dist/SendToFields/FilePicker.js +34 -0
  192. package/dist/SendToFields/constants.js +6 -0
  193. package/dist/SendToFields/index.js +102 -0
  194. package/dist/SendToFields/utils.js +54 -0
  195. package/dist/Settings/Category.js +30 -0
  196. package/dist/Settings/Item.js +38 -0
  197. package/dist/Settings/index.js +37 -0
  198. package/dist/Settings/utils.js +4 -0
  199. package/dist/ShareViaEmail/EmailBodyEditor.js +22 -0
  200. package/dist/ShareViaEmail/FilePicker.js +43 -0
  201. package/dist/ShareViaEmail/Form.js +101 -0
  202. package/dist/ShareViaEmail/FormikDatePicker.js +24 -0
  203. package/dist/ShareViaEmail/constants.js +14 -0
  204. package/dist/ShareViaEmail/index.js +89 -0
  205. package/dist/ShareViaEmail/utils.js +72 -0
  206. package/dist/ShareViaLink/EditURL.js +74 -0
  207. package/dist/ShareViaLink/Link.js +105 -0
  208. package/dist/ShareViaLink/QRCode.js +41 -0
  209. package/dist/ShareViaLink/RegenerateURL.js +47 -0
  210. package/dist/ShareViaLink/SocialMedia.js +52 -0
  211. package/dist/ShareViaLink/constants.js +25 -0
  212. package/dist/ShareViaLink/edit-url.scss +8 -0
  213. package/dist/ShareViaLink/index.js +46 -0
  214. package/dist/ShareViaLink/utils.js +47 -0
  215. package/dist/Sidebar/AppSwitcher/AppLink.js +45 -0
  216. package/dist/Sidebar/AppSwitcher/Backdrop.js +13 -0
  217. package/dist/Sidebar/AppSwitcher/Body.js +65 -0
  218. package/dist/Sidebar/AppSwitcher/Portal.js +27 -0
  219. package/dist/Sidebar/AppSwitcher/appswitcher.scss +164 -0
  220. package/dist/Sidebar/AppSwitcher/index.js +47 -0
  221. package/dist/Sidebar/AppSwitcher/utils.js +25 -0
  222. package/dist/Sidebar/Chevron.js +14 -0
  223. package/dist/Sidebar/FeaturedTooltip.js +19 -0
  224. package/dist/Sidebar/Footer/AppSwitcherButton.js +48 -0
  225. package/dist/Sidebar/Footer/ProfileButton.js +30 -0
  226. package/dist/Sidebar/Footer/index.js +56 -0
  227. package/dist/Sidebar/Footer/utils.js +39 -0
  228. package/dist/Sidebar/Header.js +33 -0
  229. package/dist/Sidebar/HelpSection/HelpSectionMenu.js +52 -0
  230. package/dist/Sidebar/HelpSection/index.js +32 -0
  231. package/dist/Sidebar/Links.js +112 -0
  232. package/dist/Sidebar/NavIconWrapper.js +20 -0
  233. package/dist/Sidebar/ProfileSection/LinkSection.js +36 -0
  234. package/dist/Sidebar/ProfileSection/ProfileMenu.js +48 -0
  235. package/dist/Sidebar/ProfileSection/index.js +42 -0
  236. package/dist/Sidebar/constants.js +40 -0
  237. package/dist/Sidebar/index.js +94 -0
  238. package/dist/Sidebar/sidebar.scss +379 -0
  239. package/dist/Sidebar/utils.js +18 -0
  240. package/dist/SubHeader/RightBlock/Columns.js +35 -0
  241. package/dist/SubHeader/RightBlock/Download.js +28 -0
  242. package/dist/SubHeader/RightBlock/Filter.js +31 -0
  243. package/dist/SubHeader/RightBlock/index.js +21 -0
  244. package/dist/SubHeader/RightBlock/utils.js +13 -0
  245. package/dist/SubHeader/index.js +28 -0
  246. package/dist/SubHeader/subheader.scss +78 -0
  247. package/dist/TableWrapper/index.js +18 -0
  248. package/dist/ThemeSidebar/Customize/Logo.js +39 -0
  249. package/dist/ThemeSidebar/Customize/Properties.js +170 -0
  250. package/dist/ThemeSidebar/Customize/index.js +66 -0
  251. package/dist/ThemeSidebar/Themes/ThemeCard.js +135 -0
  252. package/dist/ThemeSidebar/Themes/index.js +110 -0
  253. package/dist/ThemeSidebar/TitleBar.js +62 -0
  254. package/dist/ThemeSidebar/constants.js +127 -0
  255. package/dist/ThemeSidebar/fields/AlignmentBlock.js +50 -0
  256. package/dist/ThemeSidebar/fields/Card.js +19 -0
  257. package/dist/ThemeSidebar/fields/ColorBlock.js +19 -0
  258. package/dist/ThemeSidebar/fields/FontPickerBlock.js +35 -0
  259. package/dist/ThemeSidebar/fields/ImageBlock/ImageUploader.js +67 -0
  260. package/dist/ThemeSidebar/fields/ImageBlock/ProgressBar.js +22 -0
  261. package/dist/ThemeSidebar/fields/ImageBlock/index.js +55 -0
  262. package/dist/ThemeSidebar/fields/SelectBlock.js +24 -0
  263. package/dist/ThemeSidebar/fields/SliderBlock.js +30 -0
  264. package/dist/ThemeSidebar/fields/SwitchBlock.js +17 -0
  265. package/dist/ThemeSidebar/fields/TextBlock.js +13 -0
  266. package/dist/ThemeSidebar/fields/slider.scss +199 -0
  267. package/dist/ThemeSidebar/hooks/useDirectUploadDropzone.js +149 -0
  268. package/dist/ThemeSidebar/index.js +118 -0
  269. package/dist/ThemeSidebar/themeSidebar.scss +45 -0
  270. package/dist/ThemeSidebar/utils.js +169 -0
  271. package/dist/TimeFormat/index.js +3 -0
  272. package/dist/TimezoneMismatchModal/apis/time_zone.js +9 -0
  273. package/dist/TimezoneMismatchModal/index.js +83 -0
  274. package/dist/TimezoneMismatchModal/useTimeZoneApi.js +10 -0
  275. package/dist/TimezoneMismatchModal/utils.js +12 -0
  276. package/dist/ToggleFeatureCard/ToolTipSwitch.js +31 -0
  277. package/dist/ToggleFeatureCard/constants.js +5 -0
  278. package/dist/ToggleFeatureCard/hooks/useScrollIntoView.js +11 -0
  279. package/dist/ToggleFeatureCard/index.js +148 -0
  280. package/dist/ToggleFeatureCard/toggleFeatureCard.scss +4 -0
  281. package/package.json +28 -34
  282. package/src/translations/en.json +5 -1
  283. package/types/Search.d.ts +19 -0
  284. package/dist/AutoSaveInput.cjs.js +0 -724
  285. package/dist/AutoSaveInput.cjs.js.map +0 -1
  286. package/dist/AutoSaveInput.js +0 -718
  287. package/dist/AutoSaveInput.js.map +0 -1
  288. package/dist/Breadcrumbs.cjs.js +0 -44
  289. package/dist/Breadcrumbs.cjs.js.map +0 -1
  290. package/dist/Breadcrumbs.js +0 -38
  291. package/dist/Breadcrumbs.js.map +0 -1
  292. package/dist/BrowserSupport.cjs.js +0 -1731
  293. package/dist/BrowserSupport.cjs.js.map +0 -1
  294. package/dist/BrowserSupport.js +0 -1725
  295. package/dist/BrowserSupport.js.map +0 -1
  296. package/dist/CalendarView.cjs.js +0 -610
  297. package/dist/CalendarView.cjs.js.map +0 -1
  298. package/dist/CalendarView.js +0 -598
  299. package/dist/CalendarView.js.map +0 -1
  300. package/dist/Codeblock.cjs.js +0 -302
  301. package/dist/Codeblock.cjs.js.map +0 -1
  302. package/dist/Codeblock.js +0 -296
  303. package/dist/Codeblock.js.map +0 -1
  304. package/dist/Columns.cjs.js +0 -248
  305. package/dist/Columns.cjs.js.map +0 -1
  306. package/dist/Columns.js.map +0 -1
  307. package/dist/ConfirmationModal.cjs.js +0 -87
  308. package/dist/ConfirmationModal.cjs.js.map +0 -1
  309. package/dist/ConfirmationModal.js.map +0 -1
  310. package/dist/Container.cjs.js +0 -1277
  311. package/dist/Container.cjs.js.map +0 -1
  312. package/dist/Container.js +0 -1271
  313. package/dist/Container.js.map +0 -1
  314. package/dist/CopyToClipboardButton.cjs.js +0 -275
  315. package/dist/CopyToClipboardButton.cjs.js.map +0 -1
  316. package/dist/CopyToClipboardButton.js +0 -269
  317. package/dist/CopyToClipboardButton.js.map +0 -1
  318. package/dist/CustomDomain.cjs.js +0 -774
  319. package/dist/CustomDomain.cjs.js.map +0 -1
  320. package/dist/CustomDomain.js +0 -747
  321. package/dist/CustomDomain.js.map +0 -1
  322. package/dist/CustomDomainDashboard.cjs.js +0 -2370
  323. package/dist/CustomDomainDashboard.cjs.js.map +0 -1
  324. package/dist/CustomDomainDashboard.js +0 -2342
  325. package/dist/CustomDomainDashboard.js.map +0 -1
  326. package/dist/DateFormat.cjs.js +0 -51
  327. package/dist/DateFormat.cjs.js.map +0 -1
  328. package/dist/DateFormat.js.map +0 -1
  329. package/dist/DateRangeFilter.cjs.js +0 -236
  330. package/dist/DateRangeFilter.cjs.js.map +0 -1
  331. package/dist/DateRangeFilter.js +0 -229
  332. package/dist/DateRangeFilter.js.map +0 -1
  333. package/dist/DynamicVariables.cjs.js +0 -189
  334. package/dist/DynamicVariables.cjs.js.map +0 -1
  335. package/dist/DynamicVariables.js +0 -183
  336. package/dist/DynamicVariables.js.map +0 -1
  337. package/dist/EmailForm.cjs.js +0 -4295
  338. package/dist/EmailForm.cjs.js.map +0 -1
  339. package/dist/EmailForm.js +0 -4265
  340. package/dist/EmailForm.js.map +0 -1
  341. package/dist/EmailPreview.cjs.js +0 -1419
  342. package/dist/EmailPreview.cjs.js.map +0 -1
  343. package/dist/EmailPreview.js +0 -1413
  344. package/dist/EmailPreview.js.map +0 -1
  345. package/dist/ErrorPage.cjs.js +0 -226
  346. package/dist/ErrorPage.cjs.js.map +0 -1
  347. package/dist/ErrorPage.js.map +0 -1
  348. package/dist/Header.cjs.js +0 -188
  349. package/dist/Header.cjs.js.map +0 -1
  350. package/dist/Header.js +0 -182
  351. package/dist/Header.js.map +0 -1
  352. package/dist/IconPicker.cjs.js +0 -1308
  353. package/dist/IconPicker.cjs.js.map +0 -1
  354. package/dist/IconPicker.js +0 -1302
  355. package/dist/IconPicker.js.map +0 -1
  356. package/dist/ImageWithFallback.cjs.js +0 -247
  357. package/dist/ImageWithFallback.cjs.js.map +0 -1
  358. package/dist/ImageWithFallback.js +0 -241
  359. package/dist/ImageWithFallback.js.map +0 -1
  360. package/dist/IntegrationCard.cjs.js +0 -409
  361. package/dist/IntegrationCard.cjs.js.map +0 -1
  362. package/dist/IntegrationCard.js +0 -403
  363. package/dist/IntegrationCard.js.map +0 -1
  364. package/dist/IntegrationDisconnectAlert.cjs.js +0 -89
  365. package/dist/IntegrationDisconnectAlert.cjs.js.map +0 -1
  366. package/dist/IntegrationDisconnectAlert.js +0 -80
  367. package/dist/IntegrationDisconnectAlert.js.map +0 -1
  368. package/dist/IntegrationWalkthroughModal.cjs.js +0 -50
  369. package/dist/IntegrationWalkthroughModal.cjs.js.map +0 -1
  370. package/dist/IntegrationWalkthroughModal.js.map +0 -1
  371. package/dist/IpRestriction.cjs.js +0 -3931
  372. package/dist/IpRestriction.cjs.js.map +0 -1
  373. package/dist/IpRestriction.js +0 -3905
  374. package/dist/IpRestriction.js.map +0 -1
  375. package/dist/KeyboardShortcuts.cjs.js +0 -2263
  376. package/dist/KeyboardShortcuts.cjs.js.map +0 -1
  377. package/dist/KeyboardShortcuts.js +0 -2256
  378. package/dist/KeyboardShortcuts.js.map +0 -1
  379. package/dist/LoginPage.cjs.js +0 -618
  380. package/dist/LoginPage.cjs.js.map +0 -1
  381. package/dist/LoginPage.js +0 -593
  382. package/dist/LoginPage.js.map +0 -1
  383. package/dist/MenuBar.cjs.js +0 -34273
  384. package/dist/MenuBar.cjs.js.map +0 -1
  385. package/dist/MenuBar.js +0 -34267
  386. package/dist/MenuBar.js.map +0 -1
  387. package/dist/Metadata.cjs.js +0 -272
  388. package/dist/Metadata.cjs.js.map +0 -1
  389. package/dist/Metadata.js +0 -266
  390. package/dist/Metadata.js.map +0 -1
  391. package/dist/MoreDropdown.cjs.js +0 -168
  392. package/dist/MoreDropdown.cjs.js.map +0 -1
  393. package/dist/MoreDropdown.js.map +0 -1
  394. package/dist/NavigationHeader.cjs.js +0 -756
  395. package/dist/NavigationHeader.cjs.js.map +0 -1
  396. package/dist/NavigationHeader.js +0 -750
  397. package/dist/NavigationHeader.js.map +0 -1
  398. package/dist/NeetoWidget.cjs.js +0 -3375
  399. package/dist/NeetoWidget.cjs.js.map +0 -1
  400. package/dist/NeetoWidget.js +0 -3348
  401. package/dist/NeetoWidget.js.map +0 -1
  402. package/dist/PageLoader.cjs.js +0 -158
  403. package/dist/PageLoader.cjs.js.map +0 -1
  404. package/dist/PageLoader.js +0 -134
  405. package/dist/PageLoader.js.map +0 -1
  406. package/dist/PhoneNumber.cjs.js +0 -7021
  407. package/dist/PhoneNumber.cjs.js.map +0 -1
  408. package/dist/PhoneNumber.js +0 -6989
  409. package/dist/PhoneNumber.js.map +0 -1
  410. package/dist/PublishBlock.cjs.js +0 -224
  411. package/dist/PublishBlock.cjs.js.map +0 -1
  412. package/dist/PublishBlock.js +0 -218
  413. package/dist/PublishBlock.js.map +0 -1
  414. package/dist/Rename.cjs.js +0 -516
  415. package/dist/Rename.cjs.js.map +0 -1
  416. package/dist/Rename.js +0 -510
  417. package/dist/Rename.js.map +0 -1
  418. package/dist/ResponsiveDevicePicker.cjs.js +0 -260
  419. package/dist/ResponsiveDevicePicker.cjs.js.map +0 -1
  420. package/dist/ResponsiveDevicePicker.js +0 -254
  421. package/dist/ResponsiveDevicePicker.js.map +0 -1
  422. package/dist/Schedule.cjs.js +0 -1077
  423. package/dist/Schedule.cjs.js.map +0 -1
  424. package/dist/Schedule.js +0 -1046
  425. package/dist/Schedule.js.map +0 -1
  426. package/dist/Scrollable.cjs.js +0 -188
  427. package/dist/Scrollable.cjs.js.map +0 -1
  428. package/dist/Scrollable.js +0 -182
  429. package/dist/Scrollable.js.map +0 -1
  430. package/dist/Security.cjs.js +0 -1921
  431. package/dist/Security.cjs.js.map +0 -1
  432. package/dist/Security.js +0 -1895
  433. package/dist/Security.js.map +0 -1
  434. package/dist/SendToFields.cjs.js +0 -2524
  435. package/dist/SendToFields.cjs.js.map +0 -1
  436. package/dist/SendToFields.js +0 -2517
  437. package/dist/SendToFields.js.map +0 -1
  438. package/dist/Settings.cjs.js +0 -501
  439. package/dist/Settings.cjs.js.map +0 -1
  440. package/dist/Settings.js +0 -495
  441. package/dist/Settings.js.map +0 -1
  442. package/dist/ShareViaEmail.cjs.js +0 -4272
  443. package/dist/ShareViaEmail.cjs.js.map +0 -1
  444. package/dist/ShareViaEmail.js +0 -4246
  445. package/dist/ShareViaEmail.js.map +0 -1
  446. package/dist/ShareViaLink.cjs.js +0 -1512
  447. package/dist/ShareViaLink.cjs.js.map +0 -1
  448. package/dist/ShareViaLink.js +0 -1486
  449. package/dist/ShareViaLink.js.map +0 -1
  450. package/dist/Sidebar.cjs.js +0 -34985
  451. package/dist/Sidebar.cjs.js.map +0 -1
  452. package/dist/Sidebar.js +0 -34959
  453. package/dist/Sidebar.js.map +0 -1
  454. package/dist/SubHeader.cjs.js +0 -283
  455. package/dist/SubHeader.cjs.js.map +0 -1
  456. package/dist/SubHeader.js +0 -276
  457. package/dist/SubHeader.js.map +0 -1
  458. package/dist/TableWrapper.cjs.js +0 -87
  459. package/dist/TableWrapper.cjs.js.map +0 -1
  460. package/dist/TableWrapper.js +0 -81
  461. package/dist/TableWrapper.js.map +0 -1
  462. package/dist/ThemeSidebar.cjs.js +0 -13705
  463. package/dist/ThemeSidebar.cjs.js.map +0 -1
  464. package/dist/ThemeSidebar.js +0 -13680
  465. package/dist/ThemeSidebar.js.map +0 -1
  466. package/dist/TimeFormat.cjs.js +0 -53
  467. package/dist/TimeFormat.cjs.js.map +0 -1
  468. package/dist/TimeFormat.js +0 -47
  469. package/dist/TimeFormat.js.map +0 -1
  470. package/dist/TimezoneMismatchModal.cjs.js +0 -176
  471. package/dist/TimezoneMismatchModal.cjs.js.map +0 -1
  472. package/dist/TimezoneMismatchModal.js +0 -168
  473. package/dist/TimezoneMismatchModal.js.map +0 -1
  474. package/dist/ToggleFeatureCard.cjs.js +0 -389
  475. package/dist/ToggleFeatureCard.cjs.js.map +0 -1
  476. package/dist/ToggleFeatureCard.js +0 -383
  477. package/dist/ToggleFeatureCard.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["label", "description", "icon", "path", "dataCy", "className"];
4
+ import React, { memo } from "react";
5
+ import classnames from "classnames";
6
+ import { joinHyphenCase } from "@bigbinary/neeto-commons-frontend/utils";
7
+ import { Typography } from "@bigbinary/neetoui";
8
+ import { withRouter, Link } from "react-router-dom";
9
+ var Item = function Item(_ref) {
10
+ var label = _ref.label,
11
+ description = _ref.description,
12
+ _ref$icon = _ref.icon,
13
+ Icon = _ref$icon === void 0 ? null : _ref$icon,
14
+ path = _ref.path,
15
+ dataCy = _ref.dataCy,
16
+ _ref$className = _ref.className,
17
+ className = _ref$className === void 0 ? "" : _ref$className,
18
+ otherProps = _objectWithoutProperties(_ref, _excluded);
19
+ return /*#__PURE__*/React.createElement(Link, _extends({
20
+ "data-cy": dataCy,
21
+ to: path,
22
+ className: classnames("outline-none neeto-ui-border-gray-300 neeto-ui-shadow-xs hover:neeto-ui-border-gray-500 focus:neeto-ui-border-gray-500 neeto-ui-rounded-lg flex cursor-pointer flex-col border p-6 no-underline transition-colors", className)
23
+ }, otherProps), /*#__PURE__*/React.createElement("div", {
24
+ "data-testid": "settings-item-".concat(joinHyphenCase(label))
25
+ }, Icon && /*#__PURE__*/React.createElement(Icon, {
26
+ className: "neeto-ui-text-gray-600 mb-4",
27
+ size: 32
28
+ }), /*#__PURE__*/React.createElement(Typography, {
29
+ className: "mb-2",
30
+ "data-cy": "settings-item-heading",
31
+ style: "h4",
32
+ weight: "semibold"
33
+ }, label), /*#__PURE__*/React.createElement(Typography, {
34
+ "data-cy": "settings-item-description",
35
+ style: "body2"
36
+ }, description)));
37
+ };
38
+ export default /*#__PURE__*/memo(withRouter(Item));
@@ -0,0 +1,37 @@
1
+ import React, { useEffect } from "react";
2
+ import { getQueryParams } from "@bigbinary/neeto-commons-frontend/utils";
3
+ import { NoData } from "@bigbinary/neetoui";
4
+ import { isEmpty } from "ramda";
5
+ import { useTranslation } from "react-i18next";
6
+ import Category from "./Category";
7
+ import { scrollIntoSettingCategory } from "./utils";
8
+ var Settings = function Settings(_ref) {
9
+ var _ref$categories = _ref.categories,
10
+ categories = _ref$categories === void 0 ? [] : _ref$categories;
11
+ var _useTranslation = useTranslation(),
12
+ t = _useTranslation.t;
13
+ var _getQueryParams = getQueryParams(),
14
+ categoryParam = _getQueryParams.category;
15
+ useEffect(function () {
16
+ scrollIntoSettingCategory(categoryParam === null || categoryParam === void 0 ? void 0 : categoryParam.toUpperCase());
17
+ }, [categoryParam]);
18
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isEmpty(categories) ? /*#__PURE__*/React.createElement("div", {
19
+ className: "flex h-full w-full flex-grow items-center justify-center",
20
+ "data-testid": "settings-no-data"
21
+ }, /*#__PURE__*/React.createElement(NoData, {
22
+ title: t("neetoMolecules.settingsPage.noData")
23
+ })) : categories.map(function (_ref2) {
24
+ var id = _ref2.id,
25
+ label = _ref2.label,
26
+ items = _ref2.items,
27
+ isIntegration = _ref2.isIntegration;
28
+ return /*#__PURE__*/React.createElement(Category, {
29
+ id: id,
30
+ isIntegration: isIntegration,
31
+ items: items,
32
+ label: label,
33
+ key: id
34
+ });
35
+ }));
36
+ };
37
+ export default Settings;
@@ -0,0 +1,4 @@
1
+ export var scrollIntoSettingCategory = function scrollIntoSettingCategory(activeCategory) {
2
+ var _document$getElementB;
3
+ (_document$getElementB = document.getElementById(activeCategory)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView();
4
+ };
@@ -0,0 +1,22 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import React, { forwardRef } from "react";
3
+ import { FormikEditor } from "@bigbinary/neeto-editor";
4
+ import { useTranslation } from "react-i18next";
5
+ import { EDITOR_ADDONS } from "./constants";
6
+ var EmailBody = function EmailBody(_ref, ref) {
7
+ var id = _ref.id,
8
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
9
+ var _useTranslation = useTranslation(),
10
+ t = _useTranslation.t;
11
+ return /*#__PURE__*/React.createElement(FormikEditor, {
12
+ required: true,
13
+ className: "mb-6",
14
+ "data-cy": "email-body",
15
+ id: id,
16
+ label: t("neetoMolecules.shareViaEmail.emailBody"),
17
+ name: "emailBody",
18
+ ref: ref,
19
+ addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray(EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
20
+ });
21
+ };
22
+ export default /*#__PURE__*/forwardRef(EmailBody);
@@ -0,0 +1,43 @@
1
+ import React, { useRef } from "react";
2
+ import { Upload } from "@bigbinary/neeto-icons";
3
+ import { Button } from "@bigbinary/neetoui";
4
+ import { useTranslation } from "react-i18next";
5
+ var FilePicker = function FilePicker(_ref) {
6
+ var _ref$types = _ref.types,
7
+ types = _ref$types === void 0 ? [] : _ref$types,
8
+ onChange = _ref.onChange;
9
+ var _useTranslation = useTranslation(),
10
+ t = _useTranslation.t;
11
+ var inputRef = useRef();
12
+ var accept = types.join(", ");
13
+ var handleInputChange = function handleInputChange(_ref2) {
14
+ var target = _ref2.target;
15
+ if (!target.files) return;
16
+ onChange(target.files);
17
+
18
+ // This will trigger handleClick when same file is uploaded again.
19
+ inputRef.current.value = "";
20
+ handleClick();
21
+ };
22
+ var handleClick = function handleClick() {
23
+ if (!inputRef.current) return;
24
+ inputRef.current.click();
25
+ };
26
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
27
+ icon: Upload,
28
+ label: t("neetoMolecules.shareViaEmail.uploadCsv"),
29
+ size: "small",
30
+ style: "link",
31
+ tooltipProps: {
32
+ content: t("neetoMolecules.shareViaEmail.uploadCsvTooltip")
33
+ },
34
+ onClick: handleClick
35
+ }), /*#__PURE__*/React.createElement("input", {
36
+ accept: accept,
37
+ className: "hidden",
38
+ ref: inputRef,
39
+ type: "file",
40
+ onChange: handleInputChange
41
+ }));
42
+ };
43
+ export default /*#__PURE__*/React.memo(FilePicker);
@@ -0,0 +1,101 @@
1
+ import React, { useRef } from "react";
2
+ import classnames from "classnames";
3
+ import { useFormikContext } from "formik";
4
+ import { Typography, Label } from "@bigbinary/neetoui";
5
+ import { Input, Switch, ActionBlock } from "@bigbinary/neetoui/formik";
6
+ import { useTranslation } from "react-i18next";
7
+ import SendToFields from "../SendToFields";
8
+ import EmailBody from "./EmailBodyEditor";
9
+ import FormikDatePicker from "./FormikDatePicker";
10
+ import { isPastDate } from "./utils";
11
+ var Form = function Form(_ref) {
12
+ var disableReplyTo = _ref.disableReplyTo,
13
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
14
+ children = _ref.children;
15
+ var _useFormikContext = useFormikContext(),
16
+ values = _useFormikContext.values,
17
+ initialValues = _useFormikContext.initialValues;
18
+ var editorRef = useRef();
19
+ var _useTranslation = useTranslation(),
20
+ t = _useTranslation.t;
21
+ var handleReset = function handleReset() {
22
+ return editorRef.current.editor.commands.setContent(initialValues.emailBody);
23
+ };
24
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
25
+ className: "space-y-4"
26
+ }, /*#__PURE__*/React.createElement(SendToFields, {
27
+ showUploadCsvButton: true,
28
+ emailInputProps: {
29
+ label: t("neetoMolecules.shareViaEmail.sendTo"),
30
+ name: "notifyEmails"
31
+ }
32
+ }), /*#__PURE__*/React.createElement(Input, {
33
+ required: true,
34
+ className: "col-span-1",
35
+ label: t("neetoMolecules.shareViaEmail.subject"),
36
+ name: "emailSubject"
37
+ }), /*#__PURE__*/React.createElement(EmailBody, {
38
+ id: "emailBody",
39
+ ref: editorRef,
40
+ showVideoEmbedInEditor: showVideoEmbedInEditor
41
+ }), /*#__PURE__*/React.createElement("div", {
42
+ ref: editorRef
43
+ }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Label, {
44
+ className: "flex items-center gap-2"
45
+ }, /*#__PURE__*/React.createElement(Switch, {
46
+ "data-cy": "send-later-switch",
47
+ "data-testid": "send-later-switch",
48
+ name: "isSendLaterEnabled"
49
+ }), /*#__PURE__*/React.createElement(Typography, {
50
+ component: "span",
51
+ "data-cy": "send-later-label",
52
+ lineHeight: "normal",
53
+ style: "h4",
54
+ weight: "semibold"
55
+ }, t("neetoMolecules.shareViaEmail.sendLater")))), values.isSendLaterEnabled && /*#__PURE__*/React.createElement(FormikDatePicker, {
56
+ autoFocus: true,
57
+ showTime: true,
58
+ "data-cy": "email-share-date-input",
59
+ "data-testid": "formik-date-picker",
60
+ disabledDate: isPastDate,
61
+ name: "sendEmailDatetime",
62
+ picker: "date",
63
+ size: "large",
64
+ type: "date"
65
+ }), /*#__PURE__*/React.createElement(Input, {
66
+ required: true,
67
+ label: t("neetoMolecules.shareViaEmail.startButtonText"),
68
+ name: "actionButtonText"
69
+ }), /*#__PURE__*/React.createElement("div", {
70
+ className: classnames({
71
+ "grid grid-cols-2 gap-6": !disableReplyTo
72
+ })
73
+ }, /*#__PURE__*/React.createElement(Input, {
74
+ required: true,
75
+ className: "col-auto",
76
+ label: t("neetoMolecules.shareViaEmail.sendFrom"),
77
+ name: "sendFromEmail"
78
+ }), !disableReplyTo && /*#__PURE__*/React.createElement(Input, {
79
+ required: true,
80
+ className: "col-auto",
81
+ "data-testid": "replyTo-field",
82
+ label: t("neetoMolecules.shareViaEmail.replyTo"),
83
+ name: "replyToEmail"
84
+ }))), children && /*#__PURE__*/React.createElement("div", {
85
+ className: "neeto-ui-border-gray-300 mt-4 border-t py-4"
86
+ }, /*#__PURE__*/React.createElement("h3", {
87
+ className: "mb-4"
88
+ }, t("neetoMolecules.shareViaEmail.additionalOptions")), children), /*#__PURE__*/React.createElement("div", {
89
+ className: "mt-6"
90
+ }, /*#__PURE__*/React.createElement(ActionBlock, {
91
+ cancelButtonProps: {
92
+ label: t("neetoMolecules.shareViaEmail.reset"),
93
+ type: "reset",
94
+ onClick: handleReset
95
+ },
96
+ submitButtonProps: {
97
+ label: t("neetoMolecules.shareViaEmail.sendEmail")
98
+ }
99
+ })));
100
+ };
101
+ export default Form;
@@ -0,0 +1,24 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["name"];
5
+ import React from "react";
6
+ import { useField } from "formik";
7
+ import { DatePicker } from "@bigbinary/neetoui";
8
+ var FormikDatePicker = function FormikDatePicker(_ref) {
9
+ var name = _ref.name,
10
+ props = _objectWithoutProperties(_ref, _excluded);
11
+ var _useField = useField(name),
12
+ _useField2 = _slicedToArray(_useField, 3),
13
+ field = _useField2[0],
14
+ meta = _useField2[1],
15
+ setValue = _useField2[2].setValue;
16
+ return /*#__PURE__*/React.createElement(DatePicker, _extends({}, field, meta, {
17
+ onChange: function onChange(date) {
18
+ return setValue(date || undefined);
19
+ }
20
+ }, props, {
21
+ "data-cy": "email-share-date-input"
22
+ }));
23
+ };
24
+ export default FormikDatePicker;
@@ -0,0 +1,14 @@
1
+ export var ONE_MEGABYTE = 1048576;
2
+ export var INITIAL_VALUES = {
3
+ sendFromEmail: "",
4
+ replyToEmail: "",
5
+ notifyEmails: [],
6
+ emailSubject: "",
7
+ emailBody: "",
8
+ isSendLaterEnabled: false,
9
+ sendEmailDatetime: undefined,
10
+ category: "email_share",
11
+ actionButtonText: ""
12
+ };
13
+ export var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
14
+ export var ALLOWED_FILE_PICKER_TYPES = [".csv"];
@@ -0,0 +1,89 @@
1
+ import React from "react";
2
+ import { LeftArrow } from "@bigbinary/neeto-icons";
3
+ import { Button, Typography } from "@bigbinary/neetoui";
4
+ import { Form } from "@bigbinary/neetoui/formik";
5
+ import { useTranslation } from "react-i18next";
6
+ import EmailPreview from "../EmailPreview";
7
+ import EmailForm from "./Form";
8
+ import { emailFormValidationSchema, generateInitialValues } from "./utils";
9
+ var ShareViaEmail = function ShareViaEmail(_ref) {
10
+ var backToUrl = _ref.backToUrl,
11
+ handleSubmit = _ref.handleSubmit,
12
+ children = _ref.children,
13
+ description = _ref.description,
14
+ defaultValues = _ref.defaultValues,
15
+ disableReplyTo = _ref.disableReplyTo,
16
+ productName = _ref.productName,
17
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
18
+ _ref$title = _ref.title,
19
+ title = _ref$title === void 0 ? "" : _ref$title;
20
+ var _useTranslation = useTranslation(),
21
+ t = _useTranslation.t;
22
+ var shareViaEmailTitle = title || t("neetoMolecules.shareViaEmail.title");
23
+ var sendToEmails = function sendToEmails(notifyEmails) {
24
+ return notifyEmails.map(function (email) {
25
+ return email === null || email === void 0 ? void 0 : email.value;
26
+ });
27
+ };
28
+ return /*#__PURE__*/React.createElement("div", {
29
+ className: "neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-8"
30
+ }, /*#__PURE__*/React.createElement("div", {
31
+ className: "mx-auto flex w-full max-w-7xl flex-col"
32
+ }, /*#__PURE__*/React.createElement(Form, {
33
+ scrollToErrorField: true,
34
+ formProps: {
35
+ noValidate: true
36
+ },
37
+ formikProps: {
38
+ enableReinitialize: true,
39
+ validateOnMount: true,
40
+ initialValues: generateInitialValues(defaultValues),
41
+ validationSchema: emailFormValidationSchema(disableReplyTo),
42
+ onSubmit: handleSubmit
43
+ }
44
+ }, function (_ref2) {
45
+ var values = _ref2.values;
46
+ return /*#__PURE__*/React.createElement("div", {
47
+ className: "grid grid-cols-12 gap-8"
48
+ }, /*#__PURE__*/React.createElement("div", {
49
+ className: "col-span-5"
50
+ }, backToUrl && /*#__PURE__*/React.createElement(Button, {
51
+ className: "mb-4",
52
+ "data-testid": "back-to-url-button",
53
+ icon: LeftArrow,
54
+ iconPosition: "left",
55
+ label: t("neetoMolecules.shareViaEmail.backToShare"),
56
+ size: "small",
57
+ style: "link",
58
+ to: backToUrl
59
+ }), /*#__PURE__*/React.createElement("div", {
60
+ className: "mb-6"
61
+ }, /*#__PURE__*/React.createElement(Typography, {
62
+ className: "mb-0.5 break-words",
63
+ "data-cy": "share-via-email-heading",
64
+ lineHeight: "normal",
65
+ style: "h2",
66
+ weight: "semibold"
67
+ }, shareViaEmailTitle), description && /*#__PURE__*/React.createElement(Typography, {
68
+ className: "neeto-ui-text-gray-700",
69
+ "data-cy": "share-via-email-sub-heading",
70
+ lineHeight: "normal",
71
+ style: "body2"
72
+ }, description)), /*#__PURE__*/React.createElement(EmailForm, {
73
+ disableReplyTo: disableReplyTo,
74
+ showVideoEmbedInEditor: showVideoEmbedInEditor
75
+ }, children)), /*#__PURE__*/React.createElement("div", {
76
+ className: "col-span-7"
77
+ }, /*#__PURE__*/React.createElement("div", {
78
+ className: "sticky top-10 pt-10"
79
+ }, /*#__PURE__*/React.createElement(EmailPreview, {
80
+ actionButtonText: values.actionButtonText,
81
+ body: values.emailBody,
82
+ from: values.sendFromEmail,
83
+ productName: productName,
84
+ subject: values.emailSubject,
85
+ to: sendToEmails(values.notifyEmails)
86
+ }))));
87
+ })));
88
+ };
89
+ export default ShareViaEmail;
@@ -0,0 +1,72 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ 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; }
3
+ 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; }
4
+ import dayjs from "dayjs";
5
+ import { t } from "i18next";
6
+ import { isNot } from "@bigbinary/neeto-commons-frontend/pure";
7
+ import { isEditorEmpty } from "@bigbinary/neeto-editor";
8
+ import Papa from "papaparse";
9
+ import { prop } from "ramda";
10
+ import { string } from "yup";
11
+ import * as yup from "yup";
12
+ import { INITIAL_VALUES } from "./constants";
13
+ var isValidEmail = function isValidEmail(email) {
14
+ return string().email().isValidSync(email);
15
+ };
16
+ export var isPastDate = function isPastDate(date) {
17
+ return dayjs(date).isBefore(dayjs().subtract(1, "days"));
18
+ };
19
+ export var createEmailOptions = function createEmailOptions() {
20
+ var emails = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
21
+ return emails.map(function (email) {
22
+ return {
23
+ label: email,
24
+ value: email,
25
+ valid: isValidEmail(email)
26
+ };
27
+ });
28
+ };
29
+ export var parseCsvEmails = function parseCsvEmails(file) {
30
+ return new Promise(function (resolve) {
31
+ Papa.parse(file, {
32
+ header: true,
33
+ skipEmptyLines: true,
34
+ transformHeader: function transformHeader(h) {
35
+ return h.toLowerCase().replace(/\W/g, "");
36
+ },
37
+ complete: function complete(results) {
38
+ var _results$meta$fields;
39
+ var isEmailFieldPresent = (_results$meta$fields = results.meta.fields) === null || _results$meta$fields === void 0 ? void 0 : _results$meta$fields.includes("email");
40
+ if (!isEmailFieldPresent) return resolve([]);
41
+ var emails = results.data.map(function (item) {
42
+ var _item$email;
43
+ return (_item$email = item.email) === null || _item$email === void 0 ? void 0 : _item$email.trim();
44
+ }).filter(isNot(undefined));
45
+ return resolve(createEmailOptions(emails));
46
+ }
47
+ });
48
+ });
49
+ };
50
+ export var generateInitialValues = function generateInitialValues(defaultValues) {
51
+ return _objectSpread(_objectSpread({}, INITIAL_VALUES), defaultValues);
52
+ };
53
+ export var emailFormValidationSchema = function emailFormValidationSchema(disableReplyTo) {
54
+ return yup.object().shape({
55
+ emailSubject: yup.string().required(t("neetoMolecules.shareViaEmail.validations.requiredField.subject")),
56
+ emailBody: yup.string().test("emailBody", t("neetoMolecules.shareViaEmail.validations.requiredField.emailBody"), function (value) {
57
+ return !isEditorEmpty(value);
58
+ }),
59
+ sendFromEmail: yup.string().trim().email(t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress")).required(t("neetoMolecules.shareViaEmail.validations.requiredField.sendFrom")),
60
+ replyToEmail: !disableReplyTo && yup.string().trim().email(t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress")).required(t("neetoMolecules.shareViaEmail.validations.requiredField.replyTo")),
61
+ notifyEmails: yup.array().min(1, t("neetoMolecules.shareViaEmail.validations.atleastOneIsRequired.emailAddress")).test("are-all-emails-valid", t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress"), function (emails) {
62
+ return emails.every(prop("valid"));
63
+ }),
64
+ isSendLaterEnabled: yup["boolean"](),
65
+ sendEmailDatetime: yup.date().when("isSendLaterEnabled", {
66
+ is: true,
67
+ then: yup.date().required(t("neetoMolecules.shareViaEmail.validations.requiredField.sendLater"))
68
+ }),
69
+ name: yup.string(),
70
+ actionButtonText: yup.string().required(t("neetoMolecules.shareViaEmail.validations.requiredField.startButtonText"))
71
+ });
72
+ };
@@ -0,0 +1,74 @@
1
+ import React, { useRef } from "react";
2
+ import { Form, Formik } from "formik";
3
+ import { Typography, Modal } from "@bigbinary/neetoui";
4
+ import { Input, Button } from "@bigbinary/neetoui/formik";
5
+ import { useTranslation } from "react-i18next";
6
+ import { PATH_VALIDATION_SCHEMA } from "./constants";
7
+ import "./edit-url.scss";
8
+ import { getPathname, getPrefixFromUrl, truncatePrefix } from "./utils";
9
+ var EditURL = function EditURL(_ref) {
10
+ var editUrlProps = _ref.editUrlProps,
11
+ isOpen = _ref.isOpen,
12
+ onClose = _ref.onClose,
13
+ url = _ref.url,
14
+ isLoading = _ref.isLoading,
15
+ handleEdit = _ref.handleEdit;
16
+ var _useTranslation = useTranslation(),
17
+ t = _useTranslation.t;
18
+ var focusRef = useRef(null);
19
+ var handleSubmit = function handleSubmit(values) {
20
+ handleEdit(values.path);
21
+ onClose();
22
+ };
23
+ return /*#__PURE__*/React.createElement(Modal, {
24
+ "data-testid": "edit-url-modal",
25
+ initialFocusRef: focusRef,
26
+ isOpen: isOpen,
27
+ onClose: onClose
28
+ }, /*#__PURE__*/React.createElement(Modal.Header, null, /*#__PURE__*/React.createElement(Typography, {
29
+ lineHeight: "normal",
30
+ style: "h2",
31
+ weight: "semibold"
32
+ }, t("neetoMolecules.shareViaLink.editUrl.title"))), /*#__PURE__*/React.createElement(Formik, {
33
+ enableReinitialize: true,
34
+ initialValues: {
35
+ path: (editUrlProps === null || editUrlProps === void 0 ? void 0 : editUrlProps.editablePath) || getPathname(url)
36
+ },
37
+ validationSchema: PATH_VALIDATION_SCHEMA,
38
+ onSubmit: handleSubmit
39
+ }, function (_ref2) {
40
+ var isSubmitting = _ref2.isSubmitting,
41
+ dirty = _ref2.dirty;
42
+ return /*#__PURE__*/React.createElement(Form, null, /*#__PURE__*/React.createElement(Modal.Body, {
43
+ className: "w-full space-y-6"
44
+ }, /*#__PURE__*/React.createElement(Input, {
45
+ className: "no-padding",
46
+ "data-testid": "edit-url-input",
47
+ label: t("neetoMolecules.shareViaLink.editUrl.inputLabel"),
48
+ maxLength: editUrlProps === null || editUrlProps === void 0 ? void 0 : editUrlProps.maxLength,
49
+ name: "path",
50
+ ref: focusRef,
51
+ prefix: truncatePrefix((editUrlProps === null || editUrlProps === void 0 ? void 0 : editUrlProps.prefix) || getPrefixFromUrl(url))
52
+ }), /*#__PURE__*/React.createElement(Typography, {
53
+ className: "neeto-ui-text-gray-700",
54
+ lineHeight: "normal",
55
+ style: "body2"
56
+ }, t("neetoMolecules.shareViaLink.editUrl.description"))), /*#__PURE__*/React.createElement(Modal.Footer, {
57
+ className: "space-x-2"
58
+ }, /*#__PURE__*/React.createElement(Button, {
59
+ "data-testid": "edit-url-confirm-button",
60
+ disabled: isSubmitting || !dirty,
61
+ loading: isLoading,
62
+ type: "submit",
63
+ label: t("neetoMolecules.shareViaLink.editUrl.submitButtonLabel")
64
+ }), /*#__PURE__*/React.createElement(Button, {
65
+ "data-testid": "edit-url-cancel-button",
66
+ disabled: isSubmitting,
67
+ style: "text",
68
+ type: "reset",
69
+ label: t("neetoMolecules.shareViaLink.editUrl.cancelButtonLabel"),
70
+ onClick: onClose
71
+ })));
72
+ }));
73
+ };
74
+ export default EditURL;
@@ -0,0 +1,105 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useState } from "react";
3
+ import { ExternalLink } from "@bigbinary/neeto-icons";
4
+ import { Typography, Input, Button } from "@bigbinary/neetoui";
5
+ import { useTranslation } from "react-i18next";
6
+ import CopyToClipboardButton from "../CopyToClipboardButton";
7
+ import MoreDropdown from "../MoreDropdown";
8
+ import EditURL from "./EditURL";
9
+ import RegenerateURL from "./RegenerateURL";
10
+ var Link = function Link(_ref) {
11
+ var editUrlProps = _ref.editUrlProps,
12
+ enabledOptions = _ref.enabledOptions,
13
+ entityName = _ref.entityName,
14
+ handleEdit = _ref.handleEdit,
15
+ handleRegenerate = _ref.handleRegenerate,
16
+ isLoading = _ref.isLoading,
17
+ previewUrl = _ref.previewUrl,
18
+ url = _ref.url;
19
+ var _useState = useState(false),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ isRegenerateURLModalOpen = _useState2[0],
22
+ setIsRegenerateURLModalOpen = _useState2[1];
23
+ var _useState3 = useState(false),
24
+ _useState4 = _slicedToArray(_useState3, 2),
25
+ isEditURLModalOpen = _useState4[0],
26
+ setIsEditURLModalOpen = _useState4[1];
27
+ var _useTranslation = useTranslation(),
28
+ t = _useTranslation.t;
29
+ var isDropdownEnabled = enabledOptions.regenerate || enabledOptions.edit;
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ className: "space-y-4",
32
+ "data-testid": "link-block"
33
+ }, /*#__PURE__*/React.createElement("div", {
34
+ className: "space-y-0.5"
35
+ }, /*#__PURE__*/React.createElement(Typography, {
36
+ "data-testid": "link-title",
37
+ lineHeight: "normal",
38
+ style: "h3",
39
+ weight: "semibold"
40
+ }, t("neetoMolecules.shareViaLink.title")), /*#__PURE__*/React.createElement(Typography, {
41
+ className: "neeto-ui-text-gray-700",
42
+ "data-testid": "link-description",
43
+ lineHeight: "normal",
44
+ style: "body2"
45
+ }, t("neetoMolecules.shareViaLink.description", {
46
+ entity: entityName
47
+ }))), /*#__PURE__*/React.createElement("div", {
48
+ className: "flex items-center gap-1"
49
+ }, /*#__PURE__*/React.createElement(Input, {
50
+ readOnly: true,
51
+ value: url
52
+ }), /*#__PURE__*/React.createElement(CopyToClipboardButton, {
53
+ "data-testid": "link-copy-button",
54
+ label: t("neetoMolecules.shareViaLink.copyLink"),
55
+ value: url
56
+ }), /*#__PURE__*/React.createElement(Button, {
57
+ "data-testid": "preview-button",
58
+ href: previewUrl || url,
59
+ icon: ExternalLink,
60
+ style: "secondary",
61
+ target: "_blank",
62
+ tooltipProps: {
63
+ content: t("neetoMolecules.shareViaLink.open", {
64
+ entity: entityName
65
+ }),
66
+ position: "top"
67
+ }
68
+ }), isDropdownEnabled && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MoreDropdown, {
69
+ menuItems: [{
70
+ isVisible: enabledOptions.regenerate,
71
+ "data-testid": "regenerate-url-button",
72
+ onClick: function onClick() {
73
+ return setIsRegenerateURLModalOpen(true);
74
+ },
75
+ label: t("neetoMolecules.shareViaLink.regenerateUrl.title"),
76
+ key: "regenerate-url-option"
77
+ }, {
78
+ isVisible: enabledOptions.edit,
79
+ "data-testid": "edit-url-button",
80
+ onClick: function onClick() {
81
+ return setIsEditURLModalOpen(true);
82
+ },
83
+ label: t("neetoMolecules.shareViaLink.editUrl.title"),
84
+ key: "edit-url-option"
85
+ }]
86
+ }), /*#__PURE__*/React.createElement(RegenerateURL, {
87
+ handleRegenerate: handleRegenerate,
88
+ isLoading: isLoading,
89
+ url: url,
90
+ isOpen: isRegenerateURLModalOpen,
91
+ onClose: function onClose() {
92
+ return setIsRegenerateURLModalOpen(false);
93
+ }
94
+ }), /*#__PURE__*/React.createElement(EditURL, {
95
+ editUrlProps: editUrlProps,
96
+ handleEdit: handleEdit,
97
+ isLoading: isLoading,
98
+ url: url,
99
+ isOpen: isEditURLModalOpen,
100
+ onClose: function onClose() {
101
+ return setIsEditURLModalOpen(false);
102
+ }
103
+ }))));
104
+ };
105
+ export default Link;