@finsweet/webflow-apps-utils 1.0.1

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 (509) hide show
  1. package/README.md +45 -0
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.js +5 -0
  4. package/dist/router/Link.svelte +166 -0
  5. package/dist/router/Link.svelte.d.ts +26 -0
  6. package/dist/router/README.md +397 -0
  7. package/dist/router/Route.svelte +82 -0
  8. package/dist/router/Route.svelte.d.ts +24 -0
  9. package/dist/router/Router.svelte +71 -0
  10. package/dist/router/Router.svelte.d.ts +20 -0
  11. package/dist/router/hooks.svelte.d.ts +77 -0
  12. package/dist/router/hooks.svelte.js +148 -0
  13. package/dist/router/index.svelte.d.ts +107 -0
  14. package/dist/router/index.svelte.js +400 -0
  15. package/dist/stores/breakpoints.d.ts +10 -0
  16. package/dist/stores/breakpoints.js +2 -0
  17. package/dist/stores/componentInjectErrors.d.ts +1 -0
  18. package/dist/stores/componentInjectErrors.js +2 -0
  19. package/dist/stores/forms.d.ts +110 -0
  20. package/dist/stores/forms.js +307 -0
  21. package/dist/stores/globalStore.d.ts +10 -0
  22. package/dist/stores/globalStore.js +10 -0
  23. package/dist/stores/index.d.ts +7 -0
  24. package/dist/stores/index.js +7 -0
  25. package/dist/stores/router.d.ts +4 -0
  26. package/dist/stores/router.js +5 -0
  27. package/dist/stores/showConfirmActionModal.d.ts +1 -0
  28. package/dist/stores/showConfirmActionModal.js +2 -0
  29. package/dist/stores/siteInfo.d.ts +13 -0
  30. package/dist/stores/siteInfo.js +2 -0
  31. package/dist/types/auth.d.ts +40 -0
  32. package/dist/types/auth.js +1 -0
  33. package/dist/types/customCode.d.ts +16 -0
  34. package/dist/types/customCode.js +1 -0
  35. package/dist/types/index.d.ts +5 -0
  36. package/dist/types/index.js +5 -0
  37. package/dist/types/license.d.ts +5 -0
  38. package/dist/types/license.js +1 -0
  39. package/dist/types/webflow.d.ts +125 -0
  40. package/dist/types/webflow.js +1 -0
  41. package/dist/types/window.d.ts +14 -0
  42. package/dist/types/window.js +1 -0
  43. package/dist/ui/components/ButtonGroup.svelte +106 -0
  44. package/dist/ui/components/ButtonGroup.svelte.d.ts +28 -0
  45. package/dist/ui/components/Checkbox.svelte +94 -0
  46. package/dist/ui/components/Checkbox.svelte.d.ts +36 -0
  47. package/dist/ui/components/Copy.svelte +329 -0
  48. package/dist/ui/components/Copy.svelte.d.ts +35 -0
  49. package/dist/ui/components/CustomModal.svelte +192 -0
  50. package/dist/ui/components/CustomModal.svelte.d.ts +45 -0
  51. package/dist/ui/components/DisableInEditMode.svelte +66 -0
  52. package/dist/ui/components/DisableInEditMode.svelte.d.ts +33 -0
  53. package/dist/ui/components/Divider.svelte +31 -0
  54. package/dist/ui/components/Divider.svelte.d.ts +31 -0
  55. package/dist/ui/components/Header.svelte +30 -0
  56. package/dist/ui/components/Header.svelte.d.ts +20 -0
  57. package/dist/ui/components/Iframe.svelte +89 -0
  58. package/dist/ui/components/Iframe.svelte.d.ts +40 -0
  59. package/dist/ui/components/ImageUpload.svelte +213 -0
  60. package/dist/ui/components/ImageUpload.svelte.d.ts +42 -0
  61. package/dist/ui/components/InjectComponent.svelte +297 -0
  62. package/dist/ui/components/InjectComponent.svelte.d.ts +27 -0
  63. package/dist/ui/components/Loader.svelte +68 -0
  64. package/dist/ui/components/Loader.svelte.d.ts +24 -0
  65. package/dist/ui/components/LoadingScreen.svelte +71 -0
  66. package/dist/ui/components/LoadingScreen.svelte.d.ts +26 -0
  67. package/dist/ui/components/Modal.svelte +139 -0
  68. package/dist/ui/components/Modal.svelte.d.ts +42 -0
  69. package/dist/ui/components/Navbar.svelte +132 -0
  70. package/dist/ui/components/Navbar.svelte.d.ts +29 -0
  71. package/dist/ui/components/NoSettingsNeeded.svelte +31 -0
  72. package/dist/ui/components/NoSettingsNeeded.svelte.d.ts +18 -0
  73. package/dist/ui/components/Notification.svelte +193 -0
  74. package/dist/ui/components/Notification.svelte.d.ts +64 -0
  75. package/dist/ui/components/PlusMinusButton.svelte +91 -0
  76. package/dist/ui/components/PlusMinusButton.svelte.d.ts +22 -0
  77. package/dist/ui/components/PreviewBar.svelte +40 -0
  78. package/dist/ui/components/PreviewBar.svelte.d.ts +20 -0
  79. package/dist/ui/components/ScrollableContent.svelte +18 -0
  80. package/dist/ui/components/ScrollableContent.svelte.d.ts +31 -0
  81. package/dist/ui/components/Section.svelte +97 -0
  82. package/dist/ui/components/Section.svelte.d.ts +50 -0
  83. package/dist/ui/components/SelectBodyOrDivBlock.svelte +26 -0
  84. package/dist/ui/components/SelectBodyOrDivBlock.svelte.d.ts +26 -0
  85. package/dist/ui/components/Spacer.svelte +9 -0
  86. package/dist/ui/components/Spacer.svelte.d.ts +22 -0
  87. package/dist/ui/components/SpinnerPlusMinus.svelte +75 -0
  88. package/dist/ui/components/SpinnerPlusMinus.svelte.d.ts +23 -0
  89. package/dist/ui/components/SpinnerUpDown.svelte +194 -0
  90. package/dist/ui/components/SpinnerUpDown.svelte.d.ts +31 -0
  91. package/dist/ui/components/Tabs.svelte +71 -0
  92. package/dist/ui/components/Tabs.svelte.d.ts +26 -0
  93. package/dist/ui/components/ToggleItem.svelte +29 -0
  94. package/dist/ui/components/ToggleItem.svelte.d.ts +28 -0
  95. package/dist/ui/components/ToggleList.svelte +57 -0
  96. package/dist/ui/components/ToggleList.svelte.d.ts +39 -0
  97. package/dist/ui/components/breakpoints/BreakpointItem.svelte +84 -0
  98. package/dist/ui/components/breakpoints/BreakpointItem.svelte.d.ts +37 -0
  99. package/dist/ui/components/breakpoints/breakpointOptions.d.ts +12 -0
  100. package/dist/ui/components/breakpoints/breakpointOptions.js +38 -0
  101. package/dist/ui/components/breakpoints/index.d.ts +3 -0
  102. package/dist/ui/components/breakpoints/index.js +3 -0
  103. package/dist/ui/components/button/Button.stories.svelte +275 -0
  104. package/dist/ui/components/button/Button.stories.svelte.d.ts +27 -0
  105. package/dist/ui/components/button/Button.svelte +389 -0
  106. package/dist/ui/components/button/Button.svelte.d.ts +84 -0
  107. package/dist/ui/components/button/index.d.ts +2 -0
  108. package/dist/ui/components/button/index.js +1 -0
  109. package/dist/ui/components/button/types.d.ts +23 -0
  110. package/dist/ui/components/button/types.js +1 -0
  111. package/dist/ui/components/buttons/FooterButton.svelte +277 -0
  112. package/dist/ui/components/buttons/FooterButton.svelte.d.ts +10 -0
  113. package/dist/ui/components/buttons/index.d.ts +5 -0
  114. package/dist/ui/components/buttons/index.js +5 -0
  115. package/dist/ui/components/buttons/types.d.ts +28 -0
  116. package/dist/ui/components/buttons/types.js +1 -0
  117. package/dist/ui/components/clickable/Clickable.stories.svelte +213 -0
  118. package/dist/ui/components/clickable/Clickable.stories.svelte.d.ts +27 -0
  119. package/dist/ui/components/clickable/Clickable.svelte +93 -0
  120. package/dist/ui/components/clickable/Clickable.svelte.d.ts +4 -0
  121. package/dist/ui/components/clickable/index.d.ts +2 -0
  122. package/dist/ui/components/clickable/index.js +1 -0
  123. package/dist/ui/components/clickable/types.d.ts +17 -0
  124. package/dist/ui/components/clickable/types.js +1 -0
  125. package/dist/ui/components/index.d.ts +46 -0
  126. package/dist/ui/components/index.js +46 -0
  127. package/dist/ui/components/input/Input.stories.d.ts +109 -0
  128. package/dist/ui/components/input/Input.stories.js +337 -0
  129. package/dist/ui/components/input/Input.svelte +422 -0
  130. package/dist/ui/components/input/Input.svelte.d.ts +4 -0
  131. package/dist/ui/components/input/index.d.ts +2 -0
  132. package/dist/ui/components/input/index.js +1 -0
  133. package/dist/ui/components/input/types.d.ts +109 -0
  134. package/dist/ui/components/input/types.js +1 -0
  135. package/dist/ui/components/layout/ExampleLayout.svelte +538 -0
  136. package/dist/ui/components/layout/ExampleLayout.svelte.d.ts +3 -0
  137. package/dist/ui/components/layout/Layout.stories.svelte +24 -0
  138. package/dist/ui/components/layout/Layout.stories.svelte.d.ts +18 -0
  139. package/dist/ui/components/layout/Layout.svelte +551 -0
  140. package/dist/ui/components/layout/Layout.svelte.d.ts +30 -0
  141. package/dist/ui/components/layout/common/EditModeMessage.svelte +59 -0
  142. package/dist/ui/components/layout/common/EditModeMessage.svelte.d.ts +3 -0
  143. package/dist/ui/components/layout/common/index.d.ts +1 -0
  144. package/dist/ui/components/layout/common/index.js +1 -0
  145. package/dist/ui/components/layout/index.d.ts +3 -0
  146. package/dist/ui/components/layout/index.js +2 -0
  147. package/dist/ui/components/layout/types.d.ts +59 -0
  148. package/dist/ui/components/layout/types.js +1 -0
  149. package/dist/ui/components/select/Select.stories.d.ts +94 -0
  150. package/dist/ui/components/select/Select.stories.js +396 -0
  151. package/dist/ui/components/select/Select.svelte +705 -0
  152. package/dist/ui/components/select/Select.svelte.d.ts +11 -0
  153. package/dist/ui/components/select/index.d.ts +2 -0
  154. package/dist/ui/components/select/index.js +1 -0
  155. package/dist/ui/components/select/types.d.ts +94 -0
  156. package/dist/ui/components/select/types.js +1 -0
  157. package/dist/ui/components/switch/Switch.stories.d.ts +58 -0
  158. package/dist/ui/components/switch/Switch.stories.js +198 -0
  159. package/dist/ui/components/switch/Switch.svelte +220 -0
  160. package/dist/ui/components/switch/Switch.svelte.d.ts +4 -0
  161. package/dist/ui/components/switch/index.d.ts +2 -0
  162. package/dist/ui/components/switch/index.js +1 -0
  163. package/dist/ui/components/switch/types.d.ts +47 -0
  164. package/dist/ui/components/switch/types.js +1 -0
  165. package/dist/ui/components/text/README.md +73 -0
  166. package/dist/ui/components/text/Text.stories.svelte +203 -0
  167. package/dist/ui/components/text/Text.stories.svelte.d.ts +27 -0
  168. package/dist/ui/components/text/Text.svelte +778 -0
  169. package/dist/ui/components/text/Text.svelte.d.ts +8 -0
  170. package/dist/ui/components/text/index.d.ts +3 -0
  171. package/dist/ui/components/text/index.js +2 -0
  172. package/dist/ui/components/text/types.d.ts +46 -0
  173. package/dist/ui/components/text/types.js +1 -0
  174. package/dist/ui/components/tooltip/Tooltip.stories.svelte +128 -0
  175. package/dist/ui/components/tooltip/Tooltip.stories.svelte.d.ts +27 -0
  176. package/dist/ui/components/tooltip/Tooltip.svelte +463 -0
  177. package/dist/ui/components/tooltip/Tooltip.svelte.d.ts +7 -0
  178. package/dist/ui/components/tooltip/index.d.ts +2 -0
  179. package/dist/ui/components/tooltip/index.js +1 -0
  180. package/dist/ui/components/tooltip/types.d.ts +114 -0
  181. package/dist/ui/components/tooltip/types.js +1 -0
  182. package/dist/ui/icons/AccordionDownArrow.svelte +8 -0
  183. package/dist/ui/icons/AccordionDownArrow.svelte.d.ts +26 -0
  184. package/dist/ui/icons/AccordionUpArrow.svelte +8 -0
  185. package/dist/ui/icons/AccordionUpArrow.svelte.d.ts +26 -0
  186. package/dist/ui/icons/AccountIcon.svelte +14 -0
  187. package/dist/ui/icons/AccountIcon.svelte.d.ts +26 -0
  188. package/dist/ui/icons/ArrowIcon.svelte +6 -0
  189. package/dist/ui/icons/ArrowIcon.svelte.d.ts +26 -0
  190. package/dist/ui/icons/BackIcon.svelte +8 -0
  191. package/dist/ui/icons/BackIcon.svelte.d.ts +26 -0
  192. package/dist/ui/icons/BodyIcon.svelte +8 -0
  193. package/dist/ui/icons/BodyIcon.svelte.d.ts +26 -0
  194. package/dist/ui/icons/BookmarkIcon.svelte +13 -0
  195. package/dist/ui/icons/BookmarkIcon.svelte.d.ts +26 -0
  196. package/dist/ui/icons/BoxAddIcon.svelte +8 -0
  197. package/dist/ui/icons/BoxAddIcon.svelte.d.ts +26 -0
  198. package/dist/ui/icons/BrushIcon.svelte +10 -0
  199. package/dist/ui/icons/BrushIcon.svelte.d.ts +26 -0
  200. package/dist/ui/icons/BuilderEditIcon.svelte +12 -0
  201. package/dist/ui/icons/BuilderEditIcon.svelte.d.ts +26 -0
  202. package/dist/ui/icons/BuilderIcon.svelte +14 -0
  203. package/dist/ui/icons/BuilderIcon.svelte.d.ts +26 -0
  204. package/dist/ui/icons/CMSIcon.svelte +8 -0
  205. package/dist/ui/icons/CMSIcon.svelte.d.ts +26 -0
  206. package/dist/ui/icons/CheckCircleIcon.svelte +8 -0
  207. package/dist/ui/icons/CheckCircleIcon.svelte.d.ts +26 -0
  208. package/dist/ui/icons/CheckCircleOutlinedIcon.svelte +15 -0
  209. package/dist/ui/icons/CheckCircleOutlinedIcon.svelte.d.ts +26 -0
  210. package/dist/ui/icons/CheckIcon.svelte +9 -0
  211. package/dist/ui/icons/CheckIcon.svelte.d.ts +26 -0
  212. package/dist/ui/icons/CheckboxCheckedIcon.svelte +15 -0
  213. package/dist/ui/icons/CheckboxCheckedIcon.svelte.d.ts +26 -0
  214. package/dist/ui/icons/ChevronIcon.svelte +8 -0
  215. package/dist/ui/icons/ChevronIcon.svelte.d.ts +26 -0
  216. package/dist/ui/icons/ChevronRightIcon.svelte +8 -0
  217. package/dist/ui/icons/ChevronRightIcon.svelte.d.ts +26 -0
  218. package/dist/ui/icons/CircleIcon.svelte +3 -0
  219. package/dist/ui/icons/CircleIcon.svelte.d.ts +26 -0
  220. package/dist/ui/icons/CloseCircleIcon.svelte +6 -0
  221. package/dist/ui/icons/CloseCircleIcon.svelte.d.ts +26 -0
  222. package/dist/ui/icons/CloseIcon.svelte +8 -0
  223. package/dist/ui/icons/CloseIcon.svelte.d.ts +26 -0
  224. package/dist/ui/icons/CodeIcon.svelte +8 -0
  225. package/dist/ui/icons/CodeIcon.svelte.d.ts +26 -0
  226. package/dist/ui/icons/ComponentsIcon.svelte +7 -0
  227. package/dist/ui/icons/ComponentsIcon.svelte.d.ts +26 -0
  228. package/dist/ui/icons/CookieIcon.svelte +15 -0
  229. package/dist/ui/icons/CookieIcon.svelte.d.ts +26 -0
  230. package/dist/ui/icons/CopyIcon.svelte +19 -0
  231. package/dist/ui/icons/CopyIcon.svelte.d.ts +20 -0
  232. package/dist/ui/icons/CrossIcon.svelte +4 -0
  233. package/dist/ui/icons/CrossIcon.svelte.d.ts +26 -0
  234. package/dist/ui/icons/DOMElement.svelte +19 -0
  235. package/dist/ui/icons/DOMElement.svelte.d.ts +28 -0
  236. package/dist/ui/icons/DeleteIcon.svelte +8 -0
  237. package/dist/ui/icons/DeleteIcon.svelte.d.ts +26 -0
  238. package/dist/ui/icons/DeleteOutlinedIcon.svelte +8 -0
  239. package/dist/ui/icons/DeleteOutlinedIcon.svelte.d.ts +26 -0
  240. package/dist/ui/icons/Desktop.svelte +19 -0
  241. package/dist/ui/icons/Desktop.svelte.d.ts +21 -0
  242. package/dist/ui/icons/DesktopWithStar.svelte +21 -0
  243. package/dist/ui/icons/DesktopWithStar.svelte.d.ts +21 -0
  244. package/dist/ui/icons/DivBlock.svelte +14 -0
  245. package/dist/ui/icons/DivBlock.svelte.d.ts +28 -0
  246. package/dist/ui/icons/EditIcon.svelte +15 -0
  247. package/dist/ui/icons/EditIcon.svelte.d.ts +26 -0
  248. package/dist/ui/icons/ExpertIcon.svelte +16 -0
  249. package/dist/ui/icons/ExpertIcon.svelte.d.ts +26 -0
  250. package/dist/ui/icons/EyeCancelIcon.svelte +12 -0
  251. package/dist/ui/icons/EyeCancelIcon.svelte.d.ts +26 -0
  252. package/dist/ui/icons/EyeIcon.svelte +12 -0
  253. package/dist/ui/icons/EyeIcon.svelte.d.ts +26 -0
  254. package/dist/ui/icons/FavouriteIcon.svelte +6 -0
  255. package/dist/ui/icons/FavouriteIcon.svelte.d.ts +26 -0
  256. package/dist/ui/icons/FileUploadIcon.svelte +18 -0
  257. package/dist/ui/icons/FileUploadIcon.svelte.d.ts +26 -0
  258. package/dist/ui/icons/FilterIcon.svelte +8 -0
  259. package/dist/ui/icons/FilterIcon.svelte.d.ts +26 -0
  260. package/dist/ui/icons/FinsweetLibraryIcon.svelte +21 -0
  261. package/dist/ui/icons/FinsweetLibraryIcon.svelte.d.ts +26 -0
  262. package/dist/ui/icons/FinsweetLogoIcon.svelte +20 -0
  263. package/dist/ui/icons/FinsweetLogoIcon.svelte.d.ts +26 -0
  264. package/dist/ui/icons/FolderIcon.svelte +6 -0
  265. package/dist/ui/icons/FolderIcon.svelte.d.ts +26 -0
  266. package/dist/ui/icons/FolderOutlinedIcon.svelte +8 -0
  267. package/dist/ui/icons/FolderOutlinedIcon.svelte.d.ts +26 -0
  268. package/dist/ui/icons/FolderPlusIcon.svelte +10 -0
  269. package/dist/ui/icons/FolderPlusIcon.svelte.d.ts +26 -0
  270. package/dist/ui/icons/FreeComponentIcon.svelte +8 -0
  271. package/dist/ui/icons/FreeComponentIcon.svelte.d.ts +26 -0
  272. package/dist/ui/icons/GlobeIcon.svelte +14 -0
  273. package/dist/ui/icons/GlobeIcon.svelte.d.ts +26 -0
  274. package/dist/ui/icons/HandPointUpIcon.svelte +9 -0
  275. package/dist/ui/icons/HandPointUpIcon.svelte.d.ts +26 -0
  276. package/dist/ui/icons/HeartIcon.svelte +8 -0
  277. package/dist/ui/icons/HeartIcon.svelte.d.ts +26 -0
  278. package/dist/ui/icons/HeartIconOutlined.svelte +8 -0
  279. package/dist/ui/icons/HeartIconOutlined.svelte.d.ts +26 -0
  280. package/dist/ui/icons/HelpAltIcon.svelte +23 -0
  281. package/dist/ui/icons/HelpAltIcon.svelte.d.ts +26 -0
  282. package/dist/ui/icons/HelpIcon.svelte +16 -0
  283. package/dist/ui/icons/HelpIcon.svelte.d.ts +26 -0
  284. package/dist/ui/icons/HomeIcon.svelte +8 -0
  285. package/dist/ui/icons/HomeIcon.svelte.d.ts +26 -0
  286. package/dist/ui/icons/InfoIcon.svelte +14 -0
  287. package/dist/ui/icons/InfoIcon.svelte.d.ts +26 -0
  288. package/dist/ui/icons/ListIcon.svelte +18 -0
  289. package/dist/ui/icons/ListIcon.svelte.d.ts +26 -0
  290. package/dist/ui/icons/LockIcon.svelte +13 -0
  291. package/dist/ui/icons/LockIcon.svelte.d.ts +26 -0
  292. package/dist/ui/icons/MessageIcon.svelte +10 -0
  293. package/dist/ui/icons/MessageIcon.svelte.d.ts +26 -0
  294. package/dist/ui/icons/MobileLandscape.svelte +20 -0
  295. package/dist/ui/icons/MobileLandscape.svelte.d.ts +21 -0
  296. package/dist/ui/icons/MobilePortrait.svelte +20 -0
  297. package/dist/ui/icons/MobilePortrait.svelte.d.ts +21 -0
  298. package/dist/ui/icons/NavigatorIcon.svelte +8 -0
  299. package/dist/ui/icons/NavigatorIcon.svelte.d.ts +26 -0
  300. package/dist/ui/icons/OpenBookIcon.svelte +8 -0
  301. package/dist/ui/icons/OpenBookIcon.svelte.d.ts +26 -0
  302. package/dist/ui/icons/PageDraftIcon.svelte +8 -0
  303. package/dist/ui/icons/PageDraftIcon.svelte.d.ts +26 -0
  304. package/dist/ui/icons/PageIcon.svelte +9 -0
  305. package/dist/ui/icons/PageIcon.svelte.d.ts +26 -0
  306. package/dist/ui/icons/PageLockedIcon.svelte +8 -0
  307. package/dist/ui/icons/PageLockedIcon.svelte.d.ts +26 -0
  308. package/dist/ui/icons/PageOutlinedIcon.svelte +8 -0
  309. package/dist/ui/icons/PageOutlinedIcon.svelte.d.ts +26 -0
  310. package/dist/ui/icons/PageSectionIcon.svelte +10 -0
  311. package/dist/ui/icons/PageSectionIcon.svelte.d.ts +26 -0
  312. package/dist/ui/icons/Pencil.svelte +12 -0
  313. package/dist/ui/icons/Pencil.svelte.d.ts +20 -0
  314. package/dist/ui/icons/PencilOutlinedIcon.svelte +15 -0
  315. package/dist/ui/icons/PencilOutlinedIcon.svelte.d.ts +26 -0
  316. package/dist/ui/icons/PinIcon.svelte +8 -0
  317. package/dist/ui/icons/PinIcon.svelte.d.ts +26 -0
  318. package/dist/ui/icons/PlayIcon.svelte +8 -0
  319. package/dist/ui/icons/PlayIcon.svelte.d.ts +26 -0
  320. package/dist/ui/icons/PlusIcon.svelte +8 -0
  321. package/dist/ui/icons/PlusIcon.svelte.d.ts +26 -0
  322. package/dist/ui/icons/PreviewEyeIcon.svelte +12 -0
  323. package/dist/ui/icons/PreviewEyeIcon.svelte.d.ts +26 -0
  324. package/dist/ui/icons/ProfileIcon.svelte +12 -0
  325. package/dist/ui/icons/ProfileIcon.svelte.d.ts +26 -0
  326. package/dist/ui/icons/PublishCancelIcon.svelte +8 -0
  327. package/dist/ui/icons/PublishCancelIcon.svelte.d.ts +26 -0
  328. package/dist/ui/icons/PublishIcon.svelte +12 -0
  329. package/dist/ui/icons/PublishIcon.svelte.d.ts +26 -0
  330. package/dist/ui/icons/RefreshIcon.svelte +10 -0
  331. package/dist/ui/icons/RefreshIcon.svelte.d.ts +26 -0
  332. package/dist/ui/icons/RepairIcon.svelte +10 -0
  333. package/dist/ui/icons/RepairIcon.svelte.d.ts +26 -0
  334. package/dist/ui/icons/SaveIcon.svelte +14 -0
  335. package/dist/ui/icons/SaveIcon.svelte.d.ts +26 -0
  336. package/dist/ui/icons/SearchIcon.svelte +8 -0
  337. package/dist/ui/icons/SearchIcon.svelte.d.ts +26 -0
  338. package/dist/ui/icons/SelectIcon.svelte +7 -0
  339. package/dist/ui/icons/SelectIcon.svelte.d.ts +26 -0
  340. package/dist/ui/icons/SettingsIcon.svelte +8 -0
  341. package/dist/ui/icons/SettingsIcon.svelte.d.ts +26 -0
  342. package/dist/ui/icons/SidebarToggleIcon.svelte +28 -0
  343. package/dist/ui/icons/SidebarToggleIcon.svelte.d.ts +26 -0
  344. package/dist/ui/icons/SliderAppIcon.svelte +14 -0
  345. package/dist/ui/icons/SliderAppIcon.svelte.d.ts +26 -0
  346. package/dist/ui/icons/SquareCheckIcon.svelte +3 -0
  347. package/dist/ui/icons/SquareCheckIcon.svelte.d.ts +26 -0
  348. package/dist/ui/icons/StarIcon.svelte +6 -0
  349. package/dist/ui/icons/StarIcon.svelte.d.ts +26 -0
  350. package/dist/ui/icons/StarOutlinedIcon.svelte +6 -0
  351. package/dist/ui/icons/StarOutlinedIcon.svelte.d.ts +26 -0
  352. package/dist/ui/icons/StaticContentIcon.svelte +8 -0
  353. package/dist/ui/icons/StaticContentIcon.svelte.d.ts +26 -0
  354. package/dist/ui/icons/SubtractIcon.svelte +9 -0
  355. package/dist/ui/icons/SubtractIcon.svelte.d.ts +26 -0
  356. package/dist/ui/icons/TabNewIcon.svelte +6 -0
  357. package/dist/ui/icons/TabNewIcon.svelte.d.ts +26 -0
  358. package/dist/ui/icons/TableAppIcon.svelte +19 -0
  359. package/dist/ui/icons/TableAppIcon.svelte.d.ts +26 -0
  360. package/dist/ui/icons/Tablet.svelte +20 -0
  361. package/dist/ui/icons/Tablet.svelte.d.ts +21 -0
  362. package/dist/ui/icons/TabletPreview.svelte +20 -0
  363. package/dist/ui/icons/TabletPreview.svelte.d.ts +21 -0
  364. package/dist/ui/icons/TabsIcon.svelte +17 -0
  365. package/dist/ui/icons/TabsIcon.svelte.d.ts +26 -0
  366. package/dist/ui/icons/ThreeDotsIcon.svelte +14 -0
  367. package/dist/ui/icons/ThreeDotsIcon.svelte.d.ts +26 -0
  368. package/dist/ui/icons/TimesIcon.svelte +4 -0
  369. package/dist/ui/icons/TimesIcon.svelte.d.ts +26 -0
  370. package/dist/ui/icons/ToolTipInfoCircleIcon.svelte +11 -0
  371. package/dist/ui/icons/ToolTipInfoCircleIcon.svelte.d.ts +26 -0
  372. package/dist/ui/icons/TooltipInfoCircleFilled.svelte +13 -0
  373. package/dist/ui/icons/TooltipInfoCircleFilled.svelte.d.ts +26 -0
  374. package/dist/ui/icons/TooltipInfoSquaredIcon.svelte +16 -0
  375. package/dist/ui/icons/TooltipInfoSquaredIcon.svelte.d.ts +26 -0
  376. package/dist/ui/icons/TriangleDownIcon.svelte +7 -0
  377. package/dist/ui/icons/TriangleDownIcon.svelte.d.ts +26 -0
  378. package/dist/ui/icons/TriangleDownIconToggle.svelte +21 -0
  379. package/dist/ui/icons/TriangleDownIconToggle.svelte.d.ts +20 -0
  380. package/dist/ui/icons/UndoIcon.svelte +6 -0
  381. package/dist/ui/icons/UndoIcon.svelte.d.ts +26 -0
  382. package/dist/ui/icons/UploadFileIcon.svelte +10 -0
  383. package/dist/ui/icons/UploadFileIcon.svelte.d.ts +26 -0
  384. package/dist/ui/icons/WarningCircleIcon.svelte +7 -0
  385. package/dist/ui/icons/WarningCircleIcon.svelte.d.ts +26 -0
  386. package/dist/ui/icons/WarningCircleOutlineIcon.svelte +14 -0
  387. package/dist/ui/icons/WarningCircleOutlineIcon.svelte.d.ts +26 -0
  388. package/dist/ui/icons/WarningTriangleIcon.svelte +6 -0
  389. package/dist/ui/icons/WarningTriangleIcon.svelte.d.ts +26 -0
  390. package/dist/ui/icons/WarningTriangleOutlineIcon.svelte +14 -0
  391. package/dist/ui/icons/WarningTriangleOutlineIcon.svelte.d.ts +26 -0
  392. package/dist/ui/icons/WebflowComponentIcon.svelte +14 -0
  393. package/dist/ui/icons/WebflowComponentIcon.svelte.d.ts +26 -0
  394. package/dist/ui/icons/WebflowComponentOutlinedIcon.svelte +10 -0
  395. package/dist/ui/icons/WebflowComponentOutlinedIcon.svelte.d.ts +26 -0
  396. package/dist/ui/icons/WebflowInsightsIcon.svelte +6 -0
  397. package/dist/ui/icons/WebflowInsightsIcon.svelte.d.ts +26 -0
  398. package/dist/ui/icons/WizedLogoIcon.svelte +39 -0
  399. package/dist/ui/icons/WizedLogoIcon.svelte.d.ts +26 -0
  400. package/dist/ui/icons/XL.svelte +19 -0
  401. package/dist/ui/icons/XL.svelte.d.ts +21 -0
  402. package/dist/ui/icons/XXL.svelte +19 -0
  403. package/dist/ui/icons/XXL.svelte.d.ts +21 -0
  404. package/dist/ui/icons/XXXL.svelte +19 -0
  405. package/dist/ui/icons/XXXL.svelte.d.ts +21 -0
  406. package/dist/ui/icons/apps/FsConsentIcon.svelte +22 -0
  407. package/dist/ui/icons/apps/FsConsentIcon.svelte.d.ts +26 -0
  408. package/dist/ui/icons/apps/FsCursorIcon.svelte +12 -0
  409. package/dist/ui/icons/apps/FsCursorIcon.svelte.d.ts +26 -0
  410. package/dist/ui/icons/apps/FsExampleIcon.svelte +10 -0
  411. package/dist/ui/icons/apps/FsExampleIcon.svelte.d.ts +26 -0
  412. package/dist/ui/icons/apps/FsInstagramFeedIcon.svelte +27 -0
  413. package/dist/ui/icons/apps/FsInstagramFeedIcon.svelte.d.ts +26 -0
  414. package/dist/ui/icons/apps/FsMarqueeIcon.svelte +13 -0
  415. package/dist/ui/icons/apps/FsMarqueeIcon.svelte.d.ts +26 -0
  416. package/dist/ui/icons/apps/FsNumberCountIcon.svelte +46 -0
  417. package/dist/ui/icons/apps/FsNumberCountIcon.svelte.d.ts +26 -0
  418. package/dist/ui/icons/apps/FsSliderIcon.svelte +13 -0
  419. package/dist/ui/icons/apps/FsSliderIcon.svelte.d.ts +26 -0
  420. package/dist/ui/icons/apps/FsTablesIcon.svelte +19 -0
  421. package/dist/ui/icons/apps/FsTablesIcon.svelte.d.ts +26 -0
  422. package/dist/ui/icons/apps/FsTabsIcon.svelte +24 -0
  423. package/dist/ui/icons/apps/FsTabsIcon.svelte.d.ts +26 -0
  424. package/dist/ui/icons/apps/FsTooltipIcon.svelte +12 -0
  425. package/dist/ui/icons/apps/FsTooltipIcon.svelte.d.ts +26 -0
  426. package/dist/ui/icons/apps/FsYouTubeFeedIcon.svelte +43 -0
  427. package/dist/ui/icons/apps/FsYouTubeFeedIcon.svelte.d.ts +26 -0
  428. package/dist/ui/icons/apps/index.d.ts +15 -0
  429. package/dist/ui/icons/apps/index.js +15 -0
  430. package/dist/ui/icons/index.d.ts +120 -0
  431. package/dist/ui/icons/index.js +120 -0
  432. package/dist/ui/index.css +494 -0
  433. package/dist/ui/index.d.ts +2 -0
  434. package/dist/ui/index.js +2 -0
  435. package/dist/utils/api/checkIfAppModeIsDesign.d.ts +5 -0
  436. package/dist/utils/api/checkIfAppModeIsDesign.js +20 -0
  437. package/dist/utils/api/clipboard/handlePaste.d.ts +46 -0
  438. package/dist/utils/api/clipboard/handlePaste.js +53 -0
  439. package/dist/utils/api/clipboard/index.d.ts +1 -0
  440. package/dist/utils/api/clipboard/index.js +1 -0
  441. package/dist/utils/api/copyPaste/index.d.ts +18 -0
  442. package/dist/utils/api/copyPaste/index.js +1 -0
  443. package/dist/utils/api/getAllAssets.d.ts +12 -0
  444. package/dist/utils/api/getAllAssets.js +21 -0
  445. package/dist/utils/api/getFinsweetComponentsEnvironment.d.ts +9 -0
  446. package/dist/utils/api/getFinsweetComponentsEnvironment.js +70 -0
  447. package/dist/utils/api/index.d.ts +6 -0
  448. package/dist/utils/api/index.js +6 -0
  449. package/dist/utils/api/insertWithXSCP.d.ts +5 -0
  450. package/dist/utils/api/insertWithXSCP.js +13 -0
  451. package/dist/utils/auth/crossWindowLogin.d.ts +2 -0
  452. package/dist/utils/auth/crossWindowLogin.js +49 -0
  453. package/dist/utils/auth/index.d.ts +61 -0
  454. package/dist/utils/auth/index.js +196 -0
  455. package/dist/utils/browser-storage/index.d.ts +2 -0
  456. package/dist/utils/browser-storage/index.js +2 -0
  457. package/dist/utils/browser-storage/localStorage.d.ts +24 -0
  458. package/dist/utils/browser-storage/localStorage.js +56 -0
  459. package/dist/utils/browser-storage/sessionStorage.d.ts +24 -0
  460. package/dist/utils/browser-storage/sessionStorage.js +56 -0
  461. package/dist/utils/constants.d.ts +61 -0
  462. package/dist/utils/constants.js +73 -0
  463. package/dist/utils/custom-code/api.d.ts +17 -0
  464. package/dist/utils/custom-code/api.js +41 -0
  465. package/dist/utils/custom-code/index.d.ts +1 -0
  466. package/dist/utils/custom-code/index.js +1 -0
  467. package/dist/utils/helpers/cleanupTooltipMessage.d.ts +5 -0
  468. package/dist/utils/helpers/cleanupTooltipMessage.js +25 -0
  469. package/dist/utils/helpers/goto.d.ts +7 -0
  470. package/dist/utils/helpers/goto.js +35 -0
  471. package/dist/utils/helpers/index.d.ts +5 -0
  472. package/dist/utils/helpers/index.js +5 -0
  473. package/dist/utils/helpers/noop.d.ts +4 -0
  474. package/dist/utils/helpers/noop.js +7 -0
  475. package/dist/utils/helpers/numbers.d.ts +27 -0
  476. package/dist/utils/helpers/numbers.js +61 -0
  477. package/dist/utils/helpers/objectsToModuleExports.d.ts +9 -0
  478. package/dist/utils/helpers/objectsToModuleExports.js +13 -0
  479. package/dist/utils/helpers/trimText.d.ts +15 -0
  480. package/dist/utils/helpers/trimText.js +33 -0
  481. package/dist/utils/index.d.ts +4 -0
  482. package/dist/utils/index.js +4 -0
  483. package/dist/utils/logger/index.d.ts +19 -0
  484. package/dist/utils/logger/index.js +41 -0
  485. package/dist/utils/webflow-canvas/attributes/getAllWebflowElementAttributes.d.ts +6 -0
  486. package/dist/utils/webflow-canvas/attributes/getAllWebflowElementAttributes.js +19 -0
  487. package/dist/utils/webflow-canvas/attributes/getInstanceNamesFromObject.d.ts +8 -0
  488. package/dist/utils/webflow-canvas/attributes/getInstanceNamesFromObject.js +21 -0
  489. package/dist/utils/webflow-canvas/attributes/getWebflowElementAttribute.d.ts +7 -0
  490. package/dist/utils/webflow-canvas/attributes/getWebflowElementAttribute.js +25 -0
  491. package/dist/utils/webflow-canvas/attributes/getWebflowElementTextContent.d.ts +6 -0
  492. package/dist/utils/webflow-canvas/attributes/getWebflowElementTextContent.js +26 -0
  493. package/dist/utils/webflow-canvas/attributes/index.d.ts +7 -0
  494. package/dist/utils/webflow-canvas/attributes/index.js +7 -0
  495. package/dist/utils/webflow-canvas/attributes/removeWebflowElementAttribute.d.ts +7 -0
  496. package/dist/utils/webflow-canvas/attributes/removeWebflowElementAttribute.js +37 -0
  497. package/dist/utils/webflow-canvas/attributes/setStyles.d.ts +10 -0
  498. package/dist/utils/webflow-canvas/attributes/setStyles.js +36 -0
  499. package/dist/utils/webflow-canvas/attributes/setWebflowElementAttribute.d.ts +11 -0
  500. package/dist/utils/webflow-canvas/attributes/setWebflowElementAttribute.js +61 -0
  501. package/dist/utils/webflow-canvas/findInstanceElement.d.ts +32 -0
  502. package/dist/utils/webflow-canvas/findInstanceElement.js +144 -0
  503. package/dist/utils/webflow-canvas/getAllPages.d.ts +29 -0
  504. package/dist/utils/webflow-canvas/getAllPages.js +93 -0
  505. package/dist/utils/webflow-canvas/getSiteStagingUrl.d.ts +7 -0
  506. package/dist/utils/webflow-canvas/getSiteStagingUrl.js +14 -0
  507. package/dist/utils/webflow-canvas/index.d.ts +3 -0
  508. package/dist/utils/webflow-canvas/index.js +3 -0
  509. package/package.json +107 -0
@@ -0,0 +1,70 @@
1
+ import { getLocalStorage } from '../browser-storage';
2
+ import { COMPONENTS_CORE_SCRIPT, COMPONENTS_CORE_SCRIPT_LOCAL, COMPONENTS_SERVER_DEV_ENDPOINT, COMPONENTS_SERVER_DEV_ENDPOINT_LOCAL, COMPONENTS_SERVER_PROD_ENDPOINT } from '../constants';
3
+ const DEV_MODE_KEY = 'fsComponentsDevMode';
4
+ const DEV_MODE_SCRIPT_KEY = 'fsComponentsDevModeScript';
5
+ const DEV_MODE_API_KEY = 'fsComponentsDevModeApi';
6
+ const URL_DEV_MODE_KEY = 'dev';
7
+ const URL_DEV_MODE_SCRIPT_KEY = 'script';
8
+ const URL_DEV_MODE_API_KEY = 'api';
9
+ let lastLogTime = 0;
10
+ const LOG_THROTTLE_MS = 3000;
11
+ /**
12
+ * Gets a parameter value from the URL search params
13
+ * @param key The key to search for in URL parameters
14
+ * @returns The value of the parameter or null if not found
15
+ */
16
+ const getUrlParam = (key) => {
17
+ if (typeof window === 'undefined')
18
+ return null;
19
+ try {
20
+ const urlParams = new URLSearchParams(window.location.search);
21
+ return urlParams.get(key);
22
+ }
23
+ catch (e) {
24
+ console.error('Error getting URL parameter:', e);
25
+ return null;
26
+ }
27
+ };
28
+ /**
29
+ * Simple throttled console log that only logs once within the throttle interval
30
+ */
31
+ const throttledLog = (message, data) => {
32
+ const now = Date.now();
33
+ if (now - lastLogTime >= LOG_THROTTLE_MS) {
34
+ console.log(message, data || '');
35
+ lastLogTime = now;
36
+ }
37
+ };
38
+ /**
39
+ * Get the Finsweet components environment.
40
+ * @returns
41
+ */
42
+ export const getFinsweetComponentsEnvironment = () => {
43
+ const devFromUrl = getUrlParam(URL_DEV_MODE_KEY);
44
+ const scriptFromUrl = getUrlParam(URL_DEV_MODE_SCRIPT_KEY);
45
+ const apiFromUrl = getUrlParam(URL_DEV_MODE_API_KEY);
46
+ const dev = devFromUrl !== null ? devFromUrl === 'true' : getLocalStorage(DEV_MODE_KEY) === 'true';
47
+ let script = scriptFromUrl || getLocalStorage(DEV_MODE_SCRIPT_KEY) || COMPONENTS_CORE_SCRIPT;
48
+ let api = dev
49
+ ? apiFromUrl || getLocalStorage(DEV_MODE_API_KEY) || COMPONENTS_SERVER_DEV_ENDPOINT
50
+ : COMPONENTS_SERVER_PROD_ENDPOINT;
51
+ const isBrowser = typeof window !== 'undefined';
52
+ const isLocalhost = isBrowser && window?.location?.hostname?.includes('localhost');
53
+ //if localhost then use local scripts
54
+ if (isLocalhost) {
55
+ script = COMPONENTS_CORE_SCRIPT_LOCAL;
56
+ api = COMPONENTS_SERVER_DEV_ENDPOINT_LOCAL;
57
+ }
58
+ const development = !!dev || isLocalhost;
59
+ if (development) {
60
+ throttledLog(`\n\nFinsweet Components Environment:
61
+ - API: ${api}
62
+ - Core script: ${script}
63
+ - Development mode: ${development ? 'Yes' : 'No'}\n\n`);
64
+ }
65
+ return {
66
+ development,
67
+ coreScript: script,
68
+ api
69
+ };
70
+ };
@@ -0,0 +1,6 @@
1
+ export * from './checkIfAppModeIsDesign';
2
+ export * from './clipboard';
3
+ export * from './copyPaste';
4
+ export * from './getAllAssets';
5
+ export * from './getFinsweetComponentsEnvironment';
6
+ export * from './insertWithXSCP';
@@ -0,0 +1,6 @@
1
+ export * from './checkIfAppModeIsDesign';
2
+ export * from './clipboard';
3
+ export * from './copyPaste';
4
+ export * from './getAllAssets';
5
+ export * from './getFinsweetComponentsEnvironment';
6
+ export * from './insertWithXSCP';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Insert a template into the Designer Canvas using XSCP APIs
3
+ * @param template - the template to insert, should be a string
4
+ */
5
+ export declare const insertWithXSCP: (template: string) => Promise<void>;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Insert a template into the Designer Canvas using XSCP APIs
3
+ * @param template - the template to insert, should be a string
4
+ */
5
+ export const insertWithXSCP = async (template) => {
6
+ try {
7
+ // @ts-expect-error - typings not available for xscp
8
+ await webflow._internal.xscp(template);
9
+ }
10
+ catch (error) {
11
+ throw new Error(`Failed to insert template with XSCP: ${error}`);
12
+ }
13
+ };
@@ -0,0 +1,2 @@
1
+ import type { FinsweetAuth } from '../../types';
2
+ export declare const crossWindowLogin: () => Promise<FinsweetAuth>;
@@ -0,0 +1,49 @@
1
+ import { AUTH0_AUDIENCE, AUTH0_CLIENT_ID, AUTH0_LOGIN_URL, AUTH0_REDIRECT_URL, AUTH0_SCOPE, PROD_FINSWEEET_ACCOUNTS_ORIGIN } from '../constants';
2
+ export const crossWindowLogin = () => {
3
+ return new Promise((resolve, reject) => {
4
+ const timeout = setTimeout(() => {
5
+ window.removeEventListener('message', handleMessage);
6
+ reject(new Error('Login timed out'));
7
+ }, 30000);
8
+ const handleMessage = (e) => {
9
+ if (e.origin !== PROD_FINSWEEET_ACCOUNTS_ORIGIN) {
10
+ return;
11
+ }
12
+ clearTimeout(timeout);
13
+ window.removeEventListener('message', handleMessage);
14
+ if (e.data && e.data.access_token) {
15
+ resolve(e.data);
16
+ }
17
+ else {
18
+ reject(new Error('Invalid data received'));
19
+ }
20
+ };
21
+ window.addEventListener('message', handleMessage);
22
+ // Open popup
23
+ const { outerWidth, outerHeight, screenX, screenY } = window;
24
+ const width = 512;
25
+ const height = outerHeight / 2;
26
+ const left = screenX + (outerWidth - width) / 2;
27
+ const top = screenY + (outerHeight - height) / 2;
28
+ const finsweetUrl = new URL(AUTH0_LOGIN_URL);
29
+ finsweetUrl.searchParams.set('response_type', 'code');
30
+ finsweetUrl.searchParams.set('client_id', AUTH0_CLIENT_ID);
31
+ finsweetUrl.searchParams.set('redirect_uri', AUTH0_REDIRECT_URL);
32
+ finsweetUrl.searchParams.set('scope', AUTH0_SCOPE);
33
+ finsweetUrl.searchParams.set('audience', AUTH0_AUDIENCE);
34
+ const popup = window.open(finsweetUrl.toString(), 'Finsweet Account', `width=${width},height=${height},left=${left},top=${top}`);
35
+ if (!popup) {
36
+ clearTimeout(timeout);
37
+ reject(new Error('Failed to open popup'));
38
+ }
39
+ // Check if popup is closed
40
+ const checkPopupClosed = setInterval(() => {
41
+ if (popup?.closed) {
42
+ clearInterval(checkPopupClosed);
43
+ clearTimeout(timeout);
44
+ window.removeEventListener('message', handleMessage);
45
+ reject(new Error('Login popup was closed'));
46
+ }
47
+ }, 1000);
48
+ });
49
+ };
@@ -0,0 +1,61 @@
1
+ import type { FinsweetAuth } from '../../types';
2
+ /**
3
+ * Store for the Finsweet user data.
4
+ */
5
+ export declare const finsweetUser: import("svelte/store").Writable<FinsweetAuth | null>;
6
+ export declare const isLoggingIn: import("svelte/store").Writable<boolean>;
7
+ /**
8
+ * Fetches subscriptions from the server.
9
+ * @param token
10
+ * @returns
11
+ */
12
+ export declare const getSubscriptions: (token: string) => Promise<any>;
13
+ /**
14
+ * Fetches user data from the server.
15
+ * @param token
16
+ * @returns
17
+ */
18
+ export declare const getUser: (token: string) => Promise<FinsweetAuth["user"]>;
19
+ /**
20
+ * Handles login
21
+ * @returns void
22
+ */
23
+ export declare const handleLogin: () => Promise<void>;
24
+ /**
25
+ * Handles logout
26
+ */
27
+ export declare const handleLogout: () => Promise<void>;
28
+ /**
29
+ * Checks if the user is logged in by checking the cookie for a valid token.
30
+ */
31
+ export declare const checkInitialLoginState: () => Promise<void>;
32
+ /**
33
+ * Sets a cookie
34
+ * @param {string} name - Name of the cookie
35
+ * @param {string} value - Value of the cookie
36
+ * @param {Object} options - Options for the cookie (expires, path, etc.)
37
+ */
38
+ export declare const setCookie: (name: string, value: string, options?: {}) => void;
39
+ /**
40
+ * Gets a cookie
41
+ * @param {string} name - Name of the cookie to retrieve
42
+ * @returns {string | undefined} - Value of the cookie, if found
43
+ */
44
+ export declare const getCookie: (name: string) => string | undefined;
45
+ /**
46
+ * Deletes a cookie
47
+ * @param {string} name - Name of the cookie to delete
48
+ * @param {Object} options - Options for the cookie (path, etc.)
49
+ */
50
+ export declare const deleteCookie: (name: string, options?: {}) => void;
51
+ /**
52
+ * Checks if the user has access to a feature
53
+ * @param loggedIn
54
+ * @param access
55
+ * @param required
56
+ * @returns
57
+ */
58
+ export declare const canAccessFeature: (loggedIn: boolean, access: FinsweetAuth["user"]["libraryAccess"] | null | undefined, required: FinsweetAuth["user"]["libraryAccess"]) => {
59
+ granted: boolean;
60
+ message: string;
61
+ };
@@ -0,0 +1,196 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import Cookies from 'js-cookie';
3
+ import { get, writable } from 'svelte/store';
4
+ import { getFinsweetComponentsEnvironment } from '../api';
5
+ import { getLocalStorage, removeLocalStorage, setLocalStorage } from '../browser-storage';
6
+ import { FINSWEET_SUBSCRIPTIONS_ENDPOINT, FINSWEET_SUBSCRIPTIONS_ENDPOINT_STAGING } from '../constants';
7
+ import { getLogger } from '../logger';
8
+ import { crossWindowLogin } from './crossWindowLogin';
9
+ const logger = getLogger('webflow-apps-ui-utils');
10
+ /**
11
+ * Store for the Finsweet user data.
12
+ */
13
+ export const finsweetUser = writable();
14
+ export const isLoggingIn = writable();
15
+ const checkLibraryAccess = (user, subscriptions) => {
16
+ // const fullAccess: FinsweetAuth['user']['libraryAccess'] = ['canFavourite', 'canManageLibrary'];
17
+ // if (user.admin || user.role === 'agency') {
18
+ // return fullAccess;
19
+ // }
20
+ // // cutoff date timestamp for June 5, 2024 00:00:00 UTC
21
+ // const JUNE_5_2025 = 1749081600000;
22
+ // if (subscriptions && subscriptions.length > 0) {
23
+ // const hasFullAccess = subscriptions.some((subscription) => {
24
+ // return (
25
+ // subscription.status === 'active' &&
26
+ // subscription.current_period_start &&
27
+ // // subscription started must be before June 5, 2025 for full access
28
+ // subscription.current_period_start * 1000 < JUNE_5_2025
29
+ // );
30
+ // });
31
+ // if (hasFullAccess) return fullAccess;
32
+ // }
33
+ //TODO: Enable when RBAC is ready
34
+ return ['canFavourite'];
35
+ };
36
+ /**
37
+ * Fetches subscriptions from the server.
38
+ * @param token
39
+ * @returns
40
+ */
41
+ export const getSubscriptions = async (token) => {
42
+ try {
43
+ const { development } = getFinsweetComponentsEnvironment();
44
+ const endpoint = development
45
+ ? FINSWEET_SUBSCRIPTIONS_ENDPOINT_STAGING
46
+ : FINSWEET_SUBSCRIPTIONS_ENDPOINT;
47
+ const response = await fetch(endpoint, {
48
+ headers: {
49
+ Authorization: `Bearer ${token}`
50
+ }
51
+ });
52
+ const data = await response.json();
53
+ return data;
54
+ }
55
+ catch (error) {
56
+ logger.error({}, 'Failed to fetch subscriptions', error);
57
+ return [];
58
+ }
59
+ };
60
+ /**
61
+ * Fetches user data from the server.
62
+ * @param token
63
+ * @returns
64
+ */
65
+ export const getUser = async (token) => {
66
+ const response = await fetch('/auth0/verify', {
67
+ headers: {
68
+ Authorization: `Bearer ${token}`,
69
+ 'Content-Type': 'application/json'
70
+ }
71
+ });
72
+ const data = await response.json();
73
+ return data;
74
+ };
75
+ /**
76
+ * Handles login
77
+ * @returns void
78
+ */
79
+ export const handleLogin = async () => {
80
+ if (get(isLoggingIn))
81
+ return;
82
+ try {
83
+ isLoggingIn.set(true);
84
+ const response = await crossWindowLogin();
85
+ const [user, subscriptions] = await Promise.all([
86
+ getUser(response.access_token),
87
+ getSubscriptions(response.access_token)
88
+ ]);
89
+ if (user?.userId) {
90
+ const libraryAccess = checkLibraryAccess(user, subscriptions);
91
+ finsweetUser.set({ ...response, user: { ...user, libraryAccess }, subscriptions });
92
+ setLocalStorage('finsweetComponentsAuth', JSON.stringify(response));
93
+ setLocalStorage('finsweetComponentsAuthToken', response.access_token);
94
+ //dispatch login event
95
+ const event = new CustomEvent('finsweetLoginUpdate', { detail: { user } });
96
+ document.dispatchEvent(event);
97
+ return;
98
+ }
99
+ throw new Error('User data is invalid');
100
+ }
101
+ catch (error) {
102
+ const err = error;
103
+ logger.error({}, 'Login failed:', err.message);
104
+ finsweetUser.set(null);
105
+ webflow.notify({
106
+ type: 'Error',
107
+ message: 'Login failed. Please try again or contact support.'
108
+ });
109
+ }
110
+ finally {
111
+ isLoggingIn.set(false);
112
+ }
113
+ };
114
+ /**
115
+ * Handles logout
116
+ */
117
+ export const handleLogout = async () => {
118
+ removeLocalStorage('finsweetComponentsAuth');
119
+ removeLocalStorage('finsweetComponentsAuthToken');
120
+ finsweetUser.set(null);
121
+ //dispatch login event
122
+ const event = new CustomEvent('finsweetLogoutUpdate', { detail: { user: null } });
123
+ document.dispatchEvent(event);
124
+ await new Promise((resolve) => setTimeout(resolve, 1000));
125
+ };
126
+ /**
127
+ * Checks if the user is logged in by checking the cookie for a valid token.
128
+ */
129
+ export const checkInitialLoginState = async () => {
130
+ const session = getLocalStorage('finsweetComponentsAuth');
131
+ if (session) {
132
+ const parsedSession = JSON.parse(session);
133
+ // Check if the current time is greater than the expiration time
134
+ if (Date.now() > parsedSession.expires) {
135
+ await handleLogout();
136
+ return;
137
+ }
138
+ const [user, subscriptions] = await Promise.all([
139
+ getUser(parsedSession.access_token),
140
+ getSubscriptions(parsedSession.access_token)
141
+ ]);
142
+ if (user?.userId) {
143
+ const libraryAccess = checkLibraryAccess(user, subscriptions);
144
+ finsweetUser.set({ ...parsedSession, user: { ...user, libraryAccess }, subscriptions });
145
+ return;
146
+ }
147
+ await handleLogout();
148
+ return;
149
+ }
150
+ await handleLogout();
151
+ };
152
+ /**
153
+ * Sets a cookie
154
+ * @param {string} name - Name of the cookie
155
+ * @param {string} value - Value of the cookie
156
+ * @param {Object} options - Options for the cookie (expires, path, etc.)
157
+ */
158
+ export const setCookie = (name, value, options = {}) => {
159
+ Cookies.set(name, value, { sameSite: 'None', secure: true, ...options });
160
+ };
161
+ /**
162
+ * Gets a cookie
163
+ * @param {string} name - Name of the cookie to retrieve
164
+ * @returns {string | undefined} - Value of the cookie, if found
165
+ */
166
+ export const getCookie = (name) => {
167
+ return Cookies.get(name);
168
+ };
169
+ /**
170
+ * Deletes a cookie
171
+ * @param {string} name - Name of the cookie to delete
172
+ * @param {Object} options - Options for the cookie (path, etc.)
173
+ */
174
+ export const deleteCookie = (name, options = {}) => {
175
+ Cookies.remove(name, options);
176
+ };
177
+ /**
178
+ * Checks if the user has access to a feature
179
+ * @param loggedIn
180
+ * @param access
181
+ * @param required
182
+ * @returns
183
+ */
184
+ export const canAccessFeature = (loggedIn, access, required) => {
185
+ if (!loggedIn) {
186
+ return {
187
+ granted: false,
188
+ message: "This feature is available only when you're logged in."
189
+ };
190
+ }
191
+ if (required && required.every((r) => access?.includes(r))) {
192
+ return { granted: true, message: '' };
193
+ }
194
+ // no message for logged in users, so tooltips are not shown
195
+ return { granted: false, message: '' };
196
+ };
@@ -0,0 +1,2 @@
1
+ export * from './localStorage';
2
+ export * from './sessionStorage';
@@ -0,0 +1,2 @@
1
+ export * from './localStorage';
2
+ export * from './sessionStorage';
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Check if localStorage is available in the current environment.
3
+ * @returns {boolean} True if localStorage is accessible, false otherwise.
4
+ */
5
+ export declare const isLocalStorageAvailable: () => boolean;
6
+ /**
7
+ * A utility function for getting a value from localStorage.
8
+ * @param {string} key - The key to retrieve the value for.
9
+ * @returns {string | null} The value associated with the key, or null if not found or localStorage is not available.
10
+ */
11
+ export declare const getLocalStorage: (key: string) => string | null;
12
+ /**
13
+ * A utility function for setting a value in localStorage.
14
+ * @param {string} key - The key to set the value for.
15
+ * @param {string} value - The value to be stored.
16
+ * @returns {boolean} True if the operation succeeded, false otherwise (or if localStorage is not available).
17
+ */
18
+ export declare const setLocalStorage: (key: string, value: string) => boolean;
19
+ /**
20
+ * A utility function for removing a value from localStorage.
21
+ * @param key - The key to remove the value for.
22
+ * @returns {boolean} True if the operation succeeded, false otherwise (or if localStorage is not available).
23
+ */
24
+ export declare const removeLocalStorage: (key: string) => boolean;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Check if localStorage is available in the current environment.
3
+ * @returns {boolean} True if localStorage is accessible, false otherwise.
4
+ */
5
+ export const isLocalStorageAvailable = () => {
6
+ if (typeof window === 'undefined')
7
+ return false;
8
+ try {
9
+ // Attempt to access localStorage
10
+ const testKey = '__localStorage_test__';
11
+ localStorage.setItem(testKey, '1');
12
+ localStorage.removeItem(testKey);
13
+ return true;
14
+ }
15
+ catch (e) {
16
+ console.error('Error! window.localStorage is not available in this browser setting, please check if you have disabled third party cookies and/or site data.', e);
17
+ return false;
18
+ }
19
+ };
20
+ /**
21
+ * A utility function for getting a value from localStorage.
22
+ * @param {string} key - The key to retrieve the value for.
23
+ * @returns {string | null} The value associated with the key, or null if not found or localStorage is not available.
24
+ */
25
+ export const getLocalStorage = (key) => {
26
+ if (isLocalStorageAvailable()) {
27
+ const value = localStorage.getItem(key);
28
+ return value !== null ? value : null;
29
+ }
30
+ return null;
31
+ };
32
+ /**
33
+ * A utility function for setting a value in localStorage.
34
+ * @param {string} key - The key to set the value for.
35
+ * @param {string} value - The value to be stored.
36
+ * @returns {boolean} True if the operation succeeded, false otherwise (or if localStorage is not available).
37
+ */
38
+ export const setLocalStorage = (key, value) => {
39
+ if (isLocalStorageAvailable()) {
40
+ localStorage.setItem(key, value);
41
+ return true;
42
+ }
43
+ return false;
44
+ };
45
+ /**
46
+ * A utility function for removing a value from localStorage.
47
+ * @param key - The key to remove the value for.
48
+ * @returns {boolean} True if the operation succeeded, false otherwise (or if localStorage is not available).
49
+ */
50
+ export const removeLocalStorage = (key) => {
51
+ if (isLocalStorageAvailable()) {
52
+ localStorage.removeItem(key);
53
+ return true;
54
+ }
55
+ return false;
56
+ };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Check if sessionStorage is available in the current environment.
3
+ * @returns {boolean} True if sessionStorage is accessible, false otherwise.
4
+ */
5
+ export declare const isSessionStorageAvailable: () => boolean;
6
+ /**
7
+ * A utility function for getting a value from sessionStorage.
8
+ * @param {string} key - The key to retrieve the value for.
9
+ * @returns {string | null} The value associated with the key, or null if not found or sessionStorage is not available.
10
+ */
11
+ export declare const getSessionStorage: (key: string) => string | null;
12
+ /**
13
+ * A utility function for setting a value in sessionStorage.
14
+ * @param {string} key - The key to set the value for.
15
+ * @param {string} value - The value to be stored.
16
+ * @returns {boolean} True if the operation succeeded, false otherwise (or if sessionStorage is not available).
17
+ */
18
+ export declare const setSessionStorage: (key: string, value: string) => boolean;
19
+ /**
20
+ * A utility function for removing a value from sessionStorage.
21
+ * @param key - The key to remove the value for.
22
+ * @returns {boolean} True if the operation succeeded, false otherwise (or if sessionStorage is not available).
23
+ */
24
+ export declare const removeSessionStorage: (key: string) => boolean;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Check if sessionStorage is available in the current environment.
3
+ * @returns {boolean} True if sessionStorage is accessible, false otherwise.
4
+ */
5
+ import { getLogger } from '../logger';
6
+ const logger = getLogger('webflow-apps-ui-utils');
7
+ export const isSessionStorageAvailable = () => {
8
+ try {
9
+ // Attempt to access sessionStorage
10
+ const testKey = '__sessionStorage_test__';
11
+ sessionStorage.setItem(testKey, '1');
12
+ sessionStorage.removeItem(testKey);
13
+ return true;
14
+ }
15
+ catch (e) {
16
+ logger.error({}, 'Error! window.sessionStorage is not available your browser setting, please check if you have disabled third party cookies and/or site data.', e);
17
+ return false;
18
+ }
19
+ };
20
+ /**
21
+ * A utility function for getting a value from sessionStorage.
22
+ * @param {string} key - The key to retrieve the value for.
23
+ * @returns {string | null} The value associated with the key, or null if not found or sessionStorage is not available.
24
+ */
25
+ export const getSessionStorage = (key) => {
26
+ if (isSessionStorageAvailable()) {
27
+ const value = sessionStorage.getItem(key);
28
+ return value !== null ? value : null;
29
+ }
30
+ return null;
31
+ };
32
+ /**
33
+ * A utility function for setting a value in sessionStorage.
34
+ * @param {string} key - The key to set the value for.
35
+ * @param {string} value - The value to be stored.
36
+ * @returns {boolean} True if the operation succeeded, false otherwise (or if sessionStorage is not available).
37
+ */
38
+ export const setSessionStorage = (key, value) => {
39
+ if (isSessionStorageAvailable()) {
40
+ sessionStorage.setItem(key, value);
41
+ return true;
42
+ }
43
+ return false;
44
+ };
45
+ /**
46
+ * A utility function for removing a value from sessionStorage.
47
+ * @param key - The key to remove the value for.
48
+ * @returns {boolean} True if the operation succeeded, false otherwise (or if sessionStorage is not available).
49
+ */
50
+ export const removeSessionStorage = (key) => {
51
+ if (isSessionStorageAvailable()) {
52
+ sessionStorage.removeItem(key);
53
+ return true;
54
+ }
55
+ return false;
56
+ };
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Wized
3
+ */
4
+ export declare const WIZED = "wized";
5
+ export declare const WIZED_LEGACY = "w-el";
6
+ export declare const WIZED_ELEMENTS_SITEMAPS = "wized-elements-sitemaps";
7
+ export declare const WIZED_ATTRIBUTES_ENDPOINT = "https://server.wized.com/v2/site/attributes";
8
+ export declare const WIZED_ATTRIBUTES_ENDPOINT_STAGING = "https://ss.wized.com/v2/site/attributes";
9
+ export declare const WIZED_REVERSE_PROXY_URL = "https://server.wized.com/v2/page/proxy?url=";
10
+ export declare const FINSWEET_REVERSE_PROXY_URL = "https://api.finsweet.com/cors?url=";
11
+ export declare const WIZED_V2_SITE_CONFIGURATION_ENDPOINT = "https://server.wized.com/v2/extensions/configuration";
12
+ export declare const WIZED_V2_SITE_CONFIGURATION_ENDPOINT_STAGING = "https://ss.wized.com/v2/extensions/configuration";
13
+ export declare const FINSWEET_SUBSCRIPTIONS_ENDPOINT = "https://accounts.finsweet.com/v1/subscriptions";
14
+ export declare const FINSWEET_SUBSCRIPTIONS_ENDPOINT_STAGING = "https://test-accounts.finsweet.com/v1/subscriptions";
15
+ export declare const WIZED_PROD_SUBSCRIPTIONS_API = "http://accounts.finsweet.com";
16
+ export declare const WIZED_DEV_SUBSCRIPTIONS_API = "http://test-accounts.finsweet.com";
17
+ export declare const WIZED_PROD_SUBSCRIPTION_PAGE_URL = "https://my.finsweet.com/subscriptions/create?product=finsweet-community";
18
+ export declare const WIZED_APP_CONFIGURATOR_STAGING = "https://sa.wized.com/configurator";
19
+ export declare const WIZED_APP_CONFIGURATOR_PROD = "https://app.wized.com/configurator";
20
+ /**
21
+ * Finsweet Components
22
+ */
23
+ export declare const ACCOUNTS_API_PRODUCTION = "https://accounts.finsweet.com/v1/components/verify?";
24
+ export declare const ACCOUNTS_API_DEV = "https://test-accounts.finsweet.com/v1/components/verify?";
25
+ export declare const COMPONENTS_SUBSCRIPTIONS_ENDPOINT_DEV = "https://test-my.finsweet.com/subscriptions/create";
26
+ export declare const COMPONENTS_SUBSCRIPTIONS_ENDPOINT_PROD = "https://my.finsweet.com/subscriptions/create";
27
+ export declare const PROD_FINSWEEET_ACCOUNTS_ORIGIN = "https://accounts.finsweet.com";
28
+ export declare const AUTH0_DOMAIN = "finsweet.auth0.com";
29
+ export declare const AUTH0_CLIENT_ID = "5xTAnXb3mwUby3YGJRKJpVaNCMWqXtb1";
30
+ export declare const AUTH0_REDIRECT_URL = "https://accounts.finsweet.com/v1/auth0/oauth2/fs-components";
31
+ export declare const AUTH0_SCOPE = "openid profile email offline_access";
32
+ export declare const AUTH0_AUDIENCE = "https://sso.finsweet.com";
33
+ export declare const AUTH0_LOGIN_URL = "https://sso.finsweet.com/authorize";
34
+ /**
35
+ * Finsweet Components Server
36
+ */
37
+ export declare const COMPONENTS_SERVER_DEV_ENDPOINT = "https://fs-components-api-dev.finsweet.workers.dev/v1/";
38
+ export declare const COMPONENTS_SERVER_PROD_ENDPOINT = "https://fs-components-api-prod.finsweet.workers.dev/v1/";
39
+ export declare const COMPONENTS_CORE_SCRIPT = "https://cdn.jsdelivr.net/npm/@finsweet/fs-components@2/fs-components.js";
40
+ /**
41
+ * Finsweet Components Local
42
+ */
43
+ export declare const COMPONENTS_SERVER_DEV_ENDPOINT_LOCAL = "http://localhost:8787/v1/";
44
+ export declare const COMPONENTS_CORE_SCRIPT_LOCAL = "http://localhost:3000/fs-components.js";
45
+ /**
46
+ * Finsweet Components Brand
47
+ */
48
+ export declare const BRAND: {
49
+ FINSWEET: string;
50
+ COMPONENT: string;
51
+ COMPONENTS: string;
52
+ FULL: {
53
+ SINGULAR: string;
54
+ PLURAL: string;
55
+ };
56
+ };
57
+ /**
58
+ * Webflow App Origins
59
+ */
60
+ export declare const FINSWEET_COMPONENTS_WEBFLOW_APP_ORIGINS: string[];
61
+ export declare const ACCEPTED_WEBFLOW_ELEMENTS_FOR_INSERTION: string[];