@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,275 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import { fn } from 'storybook/test';
4
+
5
+ import {
6
+ ArrowIcon,
7
+ CheckIcon,
8
+ DeleteIcon,
9
+ InfoIcon,
10
+ PlayIcon,
11
+ PlusIcon,
12
+ RefreshIcon,
13
+ SaveIcon,
14
+ SearchIcon
15
+ } from '../../icons';
16
+ import Button from './Button.svelte';
17
+
18
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
19
+ const { Story } = defineMeta({
20
+ title: 'UI/Button',
21
+ component: Button,
22
+ tags: ['autodocs'],
23
+ argTypes: {
24
+ variant: {
25
+ control: { type: 'select' },
26
+ options: ['primary', 'secondary', 'danger', 'cms']
27
+ },
28
+
29
+ type: {
30
+ control: { type: 'select' },
31
+ options: ['button', 'submit', 'reset']
32
+ },
33
+ disabled: {
34
+ control: { type: 'boolean' }
35
+ },
36
+ loading: {
37
+ control: { type: 'boolean' }
38
+ },
39
+ fullWidth: {
40
+ control: { type: 'boolean' }
41
+ },
42
+ invalid: {
43
+ control: { type: 'boolean' }
44
+ },
45
+ text: {
46
+ control: { type: 'text' }
47
+ },
48
+ tooltip: {
49
+ control: { type: 'object' }
50
+ },
51
+ onclick: { action: 'clicked' }
52
+ },
53
+ args: {
54
+ onclick: fn()
55
+ }
56
+ });
57
+ </script>
58
+
59
+ <!-- Basic Variants -->
60
+ <Story
61
+ name="Primary"
62
+ args={{
63
+ variant: 'primary',
64
+ text: 'Primary Button'
65
+ }}
66
+ />
67
+
68
+ <Story
69
+ name="Secondary"
70
+ args={{
71
+ variant: 'secondary',
72
+ text: 'Secondary Button'
73
+ }}
74
+ />
75
+
76
+ <Story
77
+ name="Danger"
78
+ args={{
79
+ variant: 'danger',
80
+ text: 'Delete Item'
81
+ }}
82
+ />
83
+
84
+ <Story
85
+ name="CMS"
86
+ args={{
87
+ variant: 'cms',
88
+ text: 'CMS Action'
89
+ }}
90
+ />
91
+
92
+ <!-- States -->
93
+ <Story
94
+ name="Loading"
95
+ args={{
96
+ loading: true,
97
+ text: 'Save Changes',
98
+ loadingText: 'Saving...'
99
+ }}
100
+ />
101
+
102
+ <Story
103
+ name="Disabled"
104
+ args={{
105
+ disabled: true,
106
+ text: 'Disabled Button'
107
+ }}
108
+ />
109
+
110
+ <!-- Full Width -->
111
+ <Story
112
+ name="Full Width"
113
+ args={{
114
+ fullWidth: true,
115
+ text: 'Full Width Button'
116
+ }}
117
+ />
118
+
119
+ <!-- With Icons using Component Props -->
120
+ <Story
121
+ name="With Icon Left"
122
+ args={{
123
+ text: 'Save Changes',
124
+ icon: SaveIcon
125
+ }}
126
+ />
127
+
128
+ <Story
129
+ name="With Icon Right"
130
+ args={{
131
+ text: 'Next Step',
132
+ rightIcon: ArrowIcon
133
+ }}
134
+ />
135
+
136
+ <Story
137
+ name="Icon Only"
138
+ args={{
139
+ icon: PlusIcon,
140
+ ariaLabel: 'Add item'
141
+ }}
142
+ />
143
+
144
+ <!-- Common Use Cases -->
145
+ <Story
146
+ name="Play Button"
147
+ args={{
148
+ variant: 'primary',
149
+ text: 'Play Video',
150
+ icon: PlayIcon
151
+ }}
152
+ />
153
+
154
+ <Story
155
+ name="Search Button"
156
+ args={{
157
+ variant: 'secondary',
158
+ text: 'Search',
159
+ icon: SearchIcon
160
+ }}
161
+ />
162
+
163
+ <Story
164
+ name="Delete Button"
165
+ args={{
166
+ variant: 'danger',
167
+ text: 'Delete',
168
+ icon: DeleteIcon
169
+ }}
170
+ />
171
+
172
+ <Story
173
+ name="Success Button"
174
+ args={{
175
+ variant: 'primary',
176
+ text: 'Completed',
177
+ disabled: true,
178
+ icon: CheckIcon
179
+ }}
180
+ />
181
+
182
+ <Story
183
+ name="Refresh Button"
184
+ args={{
185
+ variant: 'secondary',
186
+ ariaLabel: 'Refresh data',
187
+ icon: RefreshIcon
188
+ }}
189
+ />
190
+
191
+ <!-- Loading States with Icons -->
192
+ <Story
193
+ name="Loading with Icon"
194
+ args={{
195
+ variant: 'primary',
196
+ text: 'Processing',
197
+ loading: true,
198
+ loadingText: 'Processing...',
199
+ icon: SaveIcon
200
+ }}
201
+ />
202
+
203
+ <!-- Invalid State (Disabled with Tooltip) -->
204
+ <Story
205
+ name="Invalid State"
206
+ args={{
207
+ variant: 'primary',
208
+ text: 'Submit Form',
209
+ invalid: true,
210
+ tooltip: {
211
+ message: 'Please fix the validation errors before submitting',
212
+ placement: 'top',
213
+ listener: 'hover',
214
+ listenerout: 'hover'
215
+ }
216
+ }}
217
+ />
218
+
219
+ <!-- Tooltip Examples -->
220
+ <Story
221
+ name="Basic Tooltip"
222
+ args={{
223
+ variant: 'primary',
224
+ text: 'Hover me',
225
+ tooltip: {
226
+ message: 'I am a basic tooltip',
227
+ placement: 'top'
228
+ }
229
+ }}
230
+ />
231
+
232
+ <Story
233
+ name="Click Tooltip"
234
+ args={{
235
+ variant: 'secondary',
236
+ text: 'Click me',
237
+ tooltip: {
238
+ message: 'This tooltip appears on click!',
239
+ placement: 'bottom',
240
+ listener: 'click',
241
+ listenerout: 'click'
242
+ }
243
+ }}
244
+ />
245
+
246
+ <Story
247
+ name="Tooltip with Icon"
248
+ args={{
249
+ variant: 'primary',
250
+ text: 'Info Button',
251
+ icon: InfoIcon,
252
+ tooltip: {
253
+ message: 'This is an informational tooltip with custom styling',
254
+ placement: 'right',
255
+ showArrow: true,
256
+ width: '200px',
257
+ fontColor: '#ffffff'
258
+ }
259
+ }}
260
+ />
261
+
262
+ <Story
263
+ name="Custom Tooltip Style"
264
+ args={{
265
+ variant: 'danger',
266
+ text: 'Warning',
267
+ tooltip: {
268
+ message: 'This is a warning message with custom width and padding',
269
+ placement: 'left',
270
+ width: '250px',
271
+ padding: '12px',
272
+ fontColor: '#ffcc00'
273
+ }
274
+ }}
275
+ />
@@ -0,0 +1,27 @@
1
+ export default Button;
2
+ type Button = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const Button: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ import Button from './Button.svelte';
15
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
16
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
17
+ $$bindings?: Bindings;
18
+ } & Exports;
19
+ (internal: unknown, props: {
20
+ $$events?: Events;
21
+ $$slots?: Slots;
22
+ }): Exports & {
23
+ $set?: any;
24
+ $on?: any;
25
+ };
26
+ z_$$bindings?: Bindings;
27
+ }
@@ -0,0 +1,389 @@
1
+ <script lang="ts">
2
+ import { type Component, type Snippet } from 'svelte';
3
+
4
+ import Loader from '../Loader.svelte';
5
+ import { Tooltip } from '../tooltip';
6
+ import type { TooltipProps } from '../tooltip/types.js';
7
+ import type { ButtonType, ButtonVariant } from './types.js';
8
+
9
+ interface Props {
10
+ /**
11
+ * Button type for form submission
12
+ */
13
+ type?: ButtonType;
14
+ /**
15
+ * Visual variant of the button
16
+ */
17
+ variant?: ButtonVariant;
18
+
19
+ /**
20
+ * Whether the button is disabled
21
+ */
22
+ disabled?: boolean;
23
+ /**
24
+ * Whether to show loading state
25
+ */
26
+ loading?: boolean;
27
+ /**
28
+ * Button text content
29
+ */
30
+ text?: string;
31
+ /**
32
+ * Left icon component
33
+ */
34
+ icon?: Component;
35
+ /**
36
+ * Right icon component
37
+ */
38
+ rightIcon?: Component;
39
+ /**
40
+ * Icon color (defaults to currentColor)
41
+ */
42
+ iconColor?: string;
43
+ /**
44
+ * Icon size
45
+ */
46
+ iconSize?: string;
47
+ /**
48
+ * Custom padding override
49
+ */
50
+ padding?: string;
51
+ /**
52
+ * Additional CSS classes
53
+ */
54
+ class?: string;
55
+ /**
56
+ * Loading text override
57
+ */
58
+ loadingText?: string;
59
+ /**
60
+ * Whether button should take full width
61
+ */
62
+ fullWidth?: boolean;
63
+ /**
64
+ * Tooltip configuration object with all tooltip props
65
+ */
66
+ tooltip?: Partial<TooltipProps>;
67
+ /**
68
+ * Whether button is in invalid state
69
+ */
70
+ invalid?: boolean;
71
+ /**
72
+ * Custom styles
73
+ */
74
+ style?: string;
75
+ /**
76
+ * ARIA label for accessibility
77
+ */
78
+ ariaLabel?: string;
79
+ /**
80
+ * Custom content snippet
81
+ */
82
+ children?: Snippet;
83
+ /**
84
+ * Click event handler
85
+ */
86
+ onclick?: (event: MouseEvent) => void;
87
+ }
88
+
89
+ let {
90
+ type = 'button',
91
+ variant = 'primary',
92
+ disabled = false,
93
+ loading = false,
94
+ text = '',
95
+ icon,
96
+ rightIcon,
97
+ iconColor = 'currentColor',
98
+ iconSize = '16px',
99
+ padding,
100
+ class: className = '',
101
+ loadingText = 'Please wait...',
102
+ fullWidth = false,
103
+ tooltip,
104
+ invalid = false,
105
+ style = '',
106
+ ariaLabel,
107
+ children,
108
+ onclick,
109
+ ...restProps
110
+ }: Props = $props();
111
+
112
+ // Assign to capitalized variables for component usage
113
+ let LeftIcon = $state(icon);
114
+ let RightIcon = $state(rightIcon);
115
+
116
+ // State for button element
117
+ let buttonElement = $state<HTMLButtonElement>();
118
+
119
+ // Computed properties using $derived
120
+ let isDisabled = $derived(disabled || loading || invalid);
121
+ let hasLeftIcon = $derived(!!icon);
122
+ let hasRightIcon = $derived(!!rightIcon);
123
+ let hasText = $derived(!!text);
124
+ let currentText = $derived(loading ? loadingText : text);
125
+ let shouldShowTooltip = $derived(!!tooltip?.message || !!tooltip?.tooltipContent);
126
+
127
+ // Default styling (no size variations)
128
+ let computedPadding = $derived(padding || '4px');
129
+ let computedIconSize = $derived(iconSize);
130
+
131
+ // Computed classes
132
+ let buttonClasses = $derived.by(() => {
133
+ const classes = ['button', `button--${variant}`];
134
+
135
+ if (fullWidth) classes.push('button--full-width');
136
+ if (loading) classes.push('button--loading');
137
+ if (className) classes.push(className);
138
+
139
+ return classes.join(' ');
140
+ });
141
+
142
+ // Computed styles
143
+ let buttonStyles = $derived.by(() => {
144
+ const styles = [`padding: ${computedPadding}`];
145
+ if (style) styles.push(style);
146
+ return styles.join('; ');
147
+ });
148
+ </script>
149
+
150
+ {#if shouldShowTooltip}
151
+ <Tooltip {...tooltip}>
152
+ {#snippet target()}
153
+ <button
154
+ bind:this={buttonElement}
155
+ {type}
156
+ disabled={isDisabled}
157
+ class={buttonClasses}
158
+ style={buttonStyles}
159
+ aria-label={ariaLabel}
160
+ aria-busy={loading}
161
+ {onclick}
162
+ {...restProps}
163
+ >
164
+ {#if children}
165
+ {@render children()}
166
+ {:else}
167
+ <!-- Loading state -->
168
+ {#if loading}
169
+ <div class="button__content">
170
+ <Loader size={parseInt(computedIconSize)} color="currentColor" />
171
+ {#if currentText}
172
+ <span class="button__text">{currentText}</span>
173
+ {/if}
174
+ </div>
175
+ {:else}
176
+ <!-- Normal state -->
177
+ <div class="button__content">
178
+ {#if hasLeftIcon}
179
+ <div
180
+ class="button__icon button__icon--left"
181
+ style:color={iconColor}
182
+ style:width={computedIconSize}
183
+ style:height={computedIconSize}
184
+ >
185
+ <LeftIcon />
186
+ </div>
187
+ {/if}
188
+
189
+ {#if hasText}
190
+ <span class="button__text">{currentText}</span>
191
+ {/if}
192
+
193
+ {#if hasRightIcon}
194
+ <div
195
+ class="button__icon button__icon--right"
196
+ style:color={iconColor}
197
+ style:width={computedIconSize}
198
+ style:height={computedIconSize}
199
+ >
200
+ <RightIcon />
201
+ </div>
202
+ {/if}
203
+ </div>
204
+ {/if}
205
+ {/if}
206
+ </button>
207
+ {/snippet}
208
+ </Tooltip>
209
+ {:else}
210
+ <button
211
+ bind:this={buttonElement}
212
+ {type}
213
+ disabled={isDisabled}
214
+ class={buttonClasses}
215
+ style={buttonStyles}
216
+ aria-label={ariaLabel}
217
+ aria-busy={loading}
218
+ {onclick}
219
+ {...restProps}
220
+ >
221
+ {#if children}
222
+ {@render children()}
223
+ {:else}
224
+ <!-- Loading state -->
225
+ {#if loading}
226
+ <div class="button__content">
227
+ <Loader size={parseInt(computedIconSize)} color="currentColor" />
228
+ {#if currentText}
229
+ <span class="button__text">{currentText}</span>
230
+ {/if}
231
+ </div>
232
+ {:else}
233
+ <!-- Normal state -->
234
+ <div class="button__content">
235
+ {#if hasLeftIcon}
236
+ <div
237
+ class="button__icon button__icon--left"
238
+ style:color={iconColor}
239
+ style:width={computedIconSize}
240
+ style:height={computedIconSize}
241
+ >
242
+ <LeftIcon />
243
+ </div>
244
+ {/if}
245
+
246
+ {#if hasText}
247
+ <span class="button__text">{currentText}</span>
248
+ {/if}
249
+
250
+ {#if hasRightIcon}
251
+ <div
252
+ class="button__icon button__icon--right"
253
+ style:color={iconColor}
254
+ style:width={computedIconSize}
255
+ style:height={computedIconSize}
256
+ >
257
+ <RightIcon />
258
+ </div>
259
+ {/if}
260
+ </div>
261
+ {/if}
262
+ {/if}
263
+ </button>
264
+ {/if}
265
+
266
+ <style>
267
+ .button {
268
+ /* Reset */
269
+ all: unset;
270
+ box-sizing: border-box;
271
+
272
+ /* Layout */
273
+ display: inline-flex;
274
+ align-items: center;
275
+ justify-content: center;
276
+ position: relative;
277
+
278
+ /* Styling */
279
+ border-radius: var(--border-radius, 4px);
280
+ font-family: var(--font-stack, Inter, sans-serif);
281
+ font-weight: var(--font-weight-normal, 400);
282
+ font-size: 11.5px;
283
+ min-height: 24px;
284
+ line-height: 16px;
285
+ letter-spacing: -0.115px;
286
+ text-align: center;
287
+ cursor: pointer;
288
+ user-select: none;
289
+ transition: all 0.2s ease;
290
+
291
+ /* Shadow */
292
+ box-shadow:
293
+ 0px 29px 23px -16px rgba(255, 255, 255, 0.04) inset,
294
+ 0px 0.5px 0.5px 0px rgba(255, 255, 255, 0.2) inset,
295
+ 0px 0.5px 1px 0px #000;
296
+ }
297
+
298
+ /* Variants */
299
+ .button--primary {
300
+ background-color: var(--actionPrimaryBackground, #006acc);
301
+ color: var(--actionPrimaryText, #ffffff);
302
+ }
303
+
304
+ .button--primary:hover:not(:disabled) {
305
+ background-color: var(--actionPrimaryBackgroundHover, #187cd9);
306
+ }
307
+
308
+ .button--secondary {
309
+ background: var(
310
+ --actionSecondaryBackground,
311
+ linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.1) 100%),
312
+ rgba(255, 255, 255, 0.08)
313
+ );
314
+ color: var(--actionSecondaryText, #e0e0e0);
315
+ }
316
+
317
+ .button--secondary:hover:not(:disabled) {
318
+ background: var(
319
+ --actionSecondaryBackgroundHover,
320
+ linear-gradient(180deg, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0.16) 100%)
321
+ );
322
+ }
323
+
324
+ .button--danger {
325
+ background-color: var(--redBackground, #cf313b);
326
+ color: var(--actionPrimaryText, #ffffff);
327
+ }
328
+
329
+ .button--danger:hover:not(:disabled) {
330
+ background-color: var(--redBackgroundHover, #cb3535);
331
+ }
332
+
333
+ .button--cms {
334
+ background-color: var(--purpleBackground, #734ce0);
335
+ color: var(--actionPrimaryText, #ffffff);
336
+ }
337
+
338
+ .button--cms:hover:not(:disabled) {
339
+ background-color: var(--purpleBackgroundHover, #815beb);
340
+ }
341
+
342
+ /* States */
343
+ .button:disabled {
344
+ cursor: not-allowed;
345
+ opacity: 0.4;
346
+ pointer-events: none;
347
+ }
348
+
349
+ .button--full-width {
350
+ width: 100%;
351
+ }
352
+
353
+ .button--loading {
354
+ cursor: wait;
355
+ }
356
+
357
+ /* Content layout */
358
+ .button__content {
359
+ display: flex;
360
+ align-items: center;
361
+ justify-content: center;
362
+ gap: 2px;
363
+ width: 100%;
364
+ }
365
+
366
+ .button__icon {
367
+ display: flex;
368
+ align-items: center;
369
+ justify-content: center;
370
+ flex-shrink: 0;
371
+ }
372
+
373
+ .button__text {
374
+ white-space: nowrap;
375
+ overflow: hidden;
376
+ text-overflow: ellipsis;
377
+ }
378
+
379
+ /* Loading state adjustments */
380
+ .button--loading .button__content {
381
+ gap: 2px;
382
+ }
383
+
384
+ /* Focus styles for accessibility */
385
+ .button:focus-visible {
386
+ outline: 2px solid var(--blueBorder, #007df0);
387
+ outline-offset: 2px;
388
+ }
389
+ </style>