@designcrowd/fe-shared-lib 1.5.6 → 1.5.7-eng-3522-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 (650) hide show
  1. package/.eslintrc.js +36 -36
  2. package/.github/workflows/auto-merge.yml +52 -52
  3. package/.prettierrc.js +7 -7
  4. package/.storybook/main.ts +36 -36
  5. package/.storybook/preview-head-master.html +4 -4
  6. package/.storybook/preview-head-publish-master.html +4 -4
  7. package/.storybook/preview-head-publish.html +9 -9
  8. package/.storybook/preview-head.html +9 -9
  9. package/.storybook/preview.js +53 -53
  10. package/CLAUDE.md +70 -70
  11. package/Dockerfile +43 -43
  12. package/README.md +103 -103
  13. package/buildspec.yml +47 -47
  14. package/index.cjs +16 -16
  15. package/index.js +58 -58
  16. package/nodemon.translation.json +6 -6
  17. package/package.json +115 -115
  18. package/postcss.config.js +5 -5
  19. package/{dist → public}/css/tailwind-brandCrowd.css +949 -1132
  20. package/{dist → public}/css/tailwind-brandPage.css +818 -976
  21. package/{dist → public}/css/tailwind-crazyDomains.css +949 -1132
  22. package/{dist → public}/css/tailwind-designCom.css +949 -1132
  23. package/{dist → public}/css/tailwind-designCrowd.css +949 -1132
  24. package/src/atoms/components/Button/Button.vue +341 -341
  25. package/src/atoms/components/Button/ButtonVariant.mixin.vue +126 -126
  26. package/src/atoms/components/Button/Buttons.stories.js +828 -828
  27. package/src/atoms/components/Button/ButtonsCrazyDomains.stories.js +117 -117
  28. package/src/atoms/components/Button/variants/ButtonAi.vue +63 -63
  29. package/src/atoms/components/Button/variants/ButtonDarkModePill.vue +52 -52
  30. package/src/atoms/components/Button/variants/ButtonFlat.vue +65 -65
  31. package/src/atoms/components/Button/variants/ButtonGray.vue +64 -64
  32. package/src/atoms/components/Button/variants/ButtonInfo.vue +51 -51
  33. package/src/atoms/components/Button/variants/ButtonInfoFilled.vue +63 -63
  34. package/src/atoms/components/Button/variants/ButtonNoBorder.vue +65 -65
  35. package/src/atoms/components/Button/variants/ButtonOutline.vue +62 -62
  36. package/src/atoms/components/Button/variants/ButtonOutlineNoHover.vue +62 -62
  37. package/src/atoms/components/Button/variants/ButtonOutlinePrimary.vue +53 -53
  38. package/src/atoms/components/Button/variants/ButtonOutlineSuccess.vue +54 -54
  39. package/src/atoms/components/Button/variants/ButtonPill.vue +52 -52
  40. package/src/atoms/components/Button/variants/ButtonPrimary.vue +69 -69
  41. package/src/atoms/components/Button/variants/ButtonPrimaryWithIcon.vue +68 -68
  42. package/src/atoms/components/Button/variants/ButtonSecondary.vue +51 -51
  43. package/src/atoms/components/Button/variants/ButtonSuccess.vue +55 -55
  44. package/src/atoms/components/Button/variants/ButtonWarning.vue +65 -65
  45. package/src/atoms/components/Button/variants/crazy-domains/ButtonCrazyDomainsOutline.vue +58 -58
  46. package/src/atoms/components/Button/variants/crazy-domains/ButtonCrazyDomainsPrimary.vue +38 -38
  47. package/src/atoms/components/ButtonGroup/ButtonGroup.stories.js +575 -575
  48. package/src/atoms/components/ButtonGroup/ButtonGroup.vue +200 -200
  49. package/src/atoms/components/Carousel/Carousel.fixtures.js +53 -53
  50. package/src/atoms/components/Carousel/Carousel.vue +352 -352
  51. package/src/atoms/components/Carousel/carousel.stories.js +530 -530
  52. package/src/atoms/components/Checkbox/Checkbox.mixin.js +57 -57
  53. package/src/atoms/components/Checkbox/Checkbox.stories.js +340 -340
  54. package/src/atoms/components/Checkbox/Checkbox.vue +84 -84
  55. package/src/atoms/components/Checktile/Checktile.stories.js +79 -79
  56. package/src/atoms/components/Checktile/Checktile.vue +73 -73
  57. package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.mixin.js +38 -38
  58. package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.stories.js +53 -53
  59. package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.vue +33 -33
  60. package/src/atoms/components/ColorPicker/ColorPicker.stories.js +89 -89
  61. package/src/atoms/components/ColorPicker/ColorPicker.vue +95 -95
  62. package/src/atoms/components/CopyToClipboardText/CopyToClipboardText.stories.js +41 -41
  63. package/src/atoms/components/CopyToClipboardText/CopyToClipboardText.vue +71 -71
  64. package/src/atoms/components/Dropdown/Dropdown.stories.js +140 -140
  65. package/src/atoms/components/Dropdown/Dropdown.vue +118 -118
  66. package/src/atoms/components/Dropdown/DropdownItem.vue +33 -33
  67. package/src/atoms/components/FormControl/FormControl.mixin.js +136 -136
  68. package/src/atoms/components/HelloBar/HelloBar.stories.js +195 -195
  69. package/src/atoms/components/HelloBar/HelloBar.vue +156 -156
  70. package/src/atoms/components/Icon/Icon.stories.js +401 -400
  71. package/src/atoms/components/Icon/Icon.vue +850 -848
  72. package/src/atoms/components/Icon/icons/add-page.vue +6 -6
  73. package/src/atoms/components/Icon/icons/ai.vue +6 -6
  74. package/src/atoms/components/Icon/icons/arrow-down.vue +6 -6
  75. package/src/atoms/components/Icon/icons/arrow-left.vue +7 -7
  76. package/src/atoms/components/Icon/icons/arrow-right.vue +7 -7
  77. package/src/atoms/components/Icon/icons/arrow-top-right.vue +6 -6
  78. package/src/atoms/components/Icon/icons/arrow-up-underline.vue +7 -7
  79. package/src/atoms/components/Icon/icons/arrow-up.vue +7 -7
  80. package/src/atoms/components/Icon/icons/attach.vue +6 -6
  81. package/src/atoms/components/Icon/icons/auth-facebook-white.vue +17 -17
  82. package/src/atoms/components/Icon/icons/auth-facebook.vue +24 -24
  83. package/src/atoms/components/Icon/icons/auth-google.vue +32 -32
  84. package/src/atoms/components/Icon/icons/background.vue +7 -7
  85. package/src/atoms/components/Icon/icons/badge.vue +7 -7
  86. package/src/atoms/components/Icon/icons/banner-centered.vue +6 -6
  87. package/src/atoms/components/Icon/icons/banner-left.vue +6 -6
  88. package/src/atoms/components/Icon/icons/banner.vue +7 -7
  89. package/src/atoms/components/Icon/icons/bc-mast.vue +7 -7
  90. package/src/atoms/components/Icon/icons/briefcase.vue +7 -7
  91. package/src/atoms/components/Icon/icons/brush.vue +6 -6
  92. package/src/atoms/components/Icon/icons/business-card-filled.vue +5 -5
  93. package/src/atoms/components/Icon/icons/business.vue +6 -6
  94. package/src/atoms/components/Icon/icons/calculator.vue +3 -3
  95. package/src/atoms/components/Icon/icons/calendar.vue +5 -5
  96. package/src/atoms/components/Icon/icons/callout-error.vue +6 -6
  97. package/src/atoms/components/Icon/icons/callout-info.vue +6 -6
  98. package/src/atoms/components/Icon/icons/callout-success.vue +8 -8
  99. package/src/atoms/components/Icon/icons/callout-warning.vue +6 -6
  100. package/src/atoms/components/Icon/icons/cap.vue +22 -22
  101. package/src/atoms/components/Icon/icons/card.vue +9 -9
  102. package/src/atoms/components/Icon/icons/cart-empty.vue +9 -9
  103. package/src/atoms/components/Icon/icons/check-thin.vue +7 -7
  104. package/src/atoms/components/Icon/icons/check.vue +3 -3
  105. package/src/atoms/components/Icon/icons/chevron-down.vue +7 -7
  106. package/src/atoms/components/Icon/icons/chevron-left.vue +7 -7
  107. package/src/atoms/components/Icon/icons/chevron-right-wide.vue +3 -3
  108. package/src/atoms/components/Icon/icons/chevron-right.vue +3 -3
  109. package/src/atoms/components/Icon/icons/chevron-up.vue +7 -7
  110. package/src/atoms/components/Icon/icons/clipboard-check.vue +6 -6
  111. package/src/atoms/components/Icon/icons/close.vue +6 -6
  112. package/src/atoms/components/Icon/icons/community.vue +5 -5
  113. package/src/atoms/components/Icon/icons/contact-message.vue +10 -10
  114. package/src/atoms/components/Icon/icons/content.vue +7 -7
  115. package/src/atoms/components/Icon/icons/copy.vue +10 -10
  116. package/src/atoms/components/Icon/icons/crazy-domains/filter.vue +6 -6
  117. package/src/atoms/components/Icon/icons/crazy-domains/globe.vue +6 -6
  118. package/src/atoms/components/Icon/icons/crazy-domains/home.vue +6 -6
  119. package/src/atoms/components/Icon/icons/crazy-domains/social-facebook.vue +6 -6
  120. package/src/atoms/components/Icon/icons/crazy-domains/social-google.vue +6 -6
  121. package/src/atoms/components/Icon/icons/crazy-domains/social-instagram.vue +6 -6
  122. package/src/atoms/components/Icon/icons/crazy-domains/social-twitter.vue +6 -6
  123. package/src/atoms/components/Icon/icons/crazy-domains/social-youtube.vue +6 -6
  124. package/src/atoms/components/Icon/icons/crop.vue +6 -6
  125. package/src/atoms/components/Icon/icons/delete.vue +8 -8
  126. package/src/atoms/components/Icon/icons/designs.vue +6 -6
  127. package/src/atoms/components/Icon/icons/desktop.vue +7 -7
  128. package/src/atoms/components/Icon/icons/donate.vue +6 -6
  129. package/src/atoms/components/Icon/icons/download.vue +5 -5
  130. package/src/atoms/components/Icon/icons/duplicate.vue +6 -6
  131. package/src/atoms/components/Icon/icons/edit-line.vue +10 -10
  132. package/src/atoms/components/Icon/icons/edit.vue +6 -6
  133. package/src/atoms/components/Icon/icons/ellipsis.vue +6 -6
  134. package/src/atoms/components/Icon/icons/envelope-email.vue +9 -9
  135. package/src/atoms/components/Icon/icons/error.vue +8 -8
  136. package/src/atoms/components/Icon/icons/eye-crossed.vue +7 -7
  137. package/src/atoms/components/Icon/icons/eye-open.vue +11 -11
  138. package/src/atoms/components/Icon/icons/fees.vue +6 -6
  139. package/src/atoms/components/Icon/icons/file.vue +7 -7
  140. package/src/atoms/components/Icon/icons/filter.vue +7 -7
  141. package/src/atoms/components/Icon/icons/filters.vue +6 -6
  142. package/src/atoms/components/Icon/icons/flag.vue +6 -6
  143. package/src/atoms/components/Icon/icons/flip-horizontal.vue +7 -7
  144. package/src/atoms/components/Icon/icons/flip-vertical.vue +7 -7
  145. package/src/atoms/components/Icon/icons/folder.vue +6 -6
  146. package/src/atoms/components/Icon/icons/footer-centered.vue +7 -7
  147. package/src/atoms/components/Icon/icons/footer-left.vue +7 -7
  148. package/src/atoms/components/Icon/icons/form-message.vue +6 -6
  149. package/src/atoms/components/Icon/icons/form.vue +5 -5
  150. package/src/atoms/components/Icon/icons/fullscreen-exit.vue +5 -5
  151. package/src/atoms/components/Icon/icons/fullscreen.vue +5 -5
  152. package/src/atoms/components/Icon/icons/globe.vue +6 -6
  153. package/src/atoms/components/Icon/icons/godaddy/logo.vue +5 -5
  154. package/src/atoms/components/Icon/icons/hamburger.vue +7 -7
  155. package/src/atoms/components/Icon/icons/home.vue +7 -7
  156. package/src/atoms/components/Icon/icons/icon-style-circle-bg.vue +22 -22
  157. package/src/atoms/components/Icon/icons/icon-style-no-bg.vue +16 -16
  158. package/src/atoms/components/Icon/icons/icon-style-square-bg.vue +22 -22
  159. package/src/atoms/components/Icon/icons/image-gallery-carousel.vue +7 -7
  160. package/src/atoms/components/Icon/icons/image-gallery-grid.vue +7 -7
  161. package/src/atoms/components/Icon/icons/image-gallery-masonry.vue +6 -6
  162. package/src/atoms/components/Icon/icons/images-gallery.vue +5 -5
  163. package/src/atoms/components/Icon/icons/images.vue +7 -7
  164. package/src/atoms/components/Icon/icons/info.vue +9 -9
  165. package/src/atoms/components/Icon/icons/jobs.vue +8 -8
  166. package/src/atoms/components/Icon/icons/layer-bring-front.vue +6 -6
  167. package/src/atoms/components/Icon/icons/layer-send-back.vue +6 -6
  168. package/src/atoms/components/Icon/icons/layer.vue +6 -6
  169. package/src/atoms/components/Icon/icons/layout/display-style-about-1.vue +20 -20
  170. package/src/atoms/components/Icon/icons/layout/display-style-about-2.vue +20 -20
  171. package/src/atoms/components/Icon/icons/layout/display-style-about-3.vue +20 -20
  172. package/src/atoms/components/Icon/icons/layout/display-style-about-4.vue +32 -32
  173. package/src/atoms/components/Icon/icons/layout/display-style-about-5.vue +27 -27
  174. package/src/atoms/components/Icon/icons/layout/display-style-about-6.vue +27 -27
  175. package/src/atoms/components/Icon/icons/layout/display-style-banner-1.vue +20 -20
  176. package/src/atoms/components/Icon/icons/layout/display-style-banner-2.vue +20 -20
  177. package/src/atoms/components/Icon/icons/layout/display-style-banner-3.vue +20 -20
  178. package/src/atoms/components/Icon/icons/layout/display-style-banner-4.vue +20 -20
  179. package/src/atoms/components/Icon/icons/layout/display-style-banner-5.vue +20 -20
  180. package/src/atoms/components/Icon/icons/layout/display-style-banner-6.vue +27 -27
  181. package/src/atoms/components/Icon/icons/layout/display-style-banner-7.vue +27 -27
  182. package/src/atoms/components/Icon/icons/layout/display-style-banner-8.vue +20 -20
  183. package/src/atoms/components/Icon/icons/layout/display-style-banner-9.vue +20 -20
  184. package/src/atoms/components/Icon/icons/layout/display-style-contact-1.vue +24 -24
  185. package/src/atoms/components/Icon/icons/layout/display-style-contact-2.vue +24 -24
  186. package/src/atoms/components/Icon/icons/layout/display-style-contact-4.vue +24 -24
  187. package/src/atoms/components/Icon/icons/layout/display-style-contact-5.vue +39 -39
  188. package/src/atoms/components/Icon/icons/layout/display-style-contact-6.vue +39 -39
  189. package/src/atoms/components/Icon/icons/layout/footer/display-style-1.vue +7 -7
  190. package/src/atoms/components/Icon/icons/layout/footer/display-style-2.vue +16 -16
  191. package/src/atoms/components/Icon/icons/layout/header/desktop-hamburger-display-style-1.vue +17 -17
  192. package/src/atoms/components/Icon/icons/layout/header/desktop-hamburger-display-style-2.vue +17 -17
  193. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-1.vue +17 -17
  194. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-2.vue +17 -17
  195. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-3.vue +13 -13
  196. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-4.vue +13 -13
  197. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-5.vue +17 -17
  198. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-6.vue +17 -17
  199. package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-1.vue +16 -16
  200. package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-2.vue +16 -16
  201. package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-3.vue +16 -16
  202. package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-1.vue +17 -17
  203. package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-2.vue +17 -17
  204. package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-3.vue +17 -17
  205. package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-4.vue +21 -21
  206. package/src/atoms/components/Icon/icons/layout/header/mobile-tab-display-style-1.vue +17 -17
  207. package/src/atoms/components/Icon/icons/layout/header/mobile-tab-display-style-2.vue +17 -17
  208. package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-1.vue +16 -16
  209. package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-2.vue +16 -16
  210. package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-3.vue +16 -16
  211. package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-normal-text-center-normal.vue +7 -7
  212. package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-normal-text-center-small.vue +7 -7
  213. package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-small-text-center-normal.vue +7 -7
  214. package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-bottom.vue +11 -11
  215. package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-circle.vue +10 -10
  216. package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-top.vue +11 -11
  217. package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-center-normal.vue +7 -7
  218. package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-justify-normal.vue +7 -7
  219. package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-left-normal.vue +7 -7
  220. package/src/atoms/components/Icon/icons/layout/layout-icon-left-small-text-left-normal.vue +7 -7
  221. package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-center-normal.vue +7 -7
  222. package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-justify-normal.vue +7 -7
  223. package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-right-normal.vue +7 -7
  224. package/src/atoms/components/Icon/icons/layout/layout-icon-right-small-text-right-normal.vue +7 -7
  225. package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-center-normal.vue +7 -7
  226. package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-center-small.vue +7 -7
  227. package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-justify-normal.vue +7 -7
  228. package/src/atoms/components/Icon/icons/layout/layout-icon-top-small-text-center-normal.vue +7 -7
  229. package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-1.vue +16 -16
  230. package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-2.vue +10 -10
  231. package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-3.vue +10 -10
  232. package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-4.vue +23 -23
  233. package/src/atoms/components/Icon/icons/layout/nav/tab/display-style-1.vue +16 -16
  234. package/src/atoms/components/Icon/icons/layout/nav/tab/display-style-2.vue +7 -7
  235. package/src/atoms/components/Icon/icons/letterhead-filled.vue +5 -5
  236. package/src/atoms/components/Icon/icons/link.vue +6 -6
  237. package/src/atoms/components/Icon/icons/location.vue +6 -6
  238. package/src/atoms/components/Icon/icons/lock.vue +6 -6
  239. package/src/atoms/components/Icon/icons/mac-command.vue +7 -7
  240. package/src/atoms/components/Icon/icons/maker/align-center.vue +7 -7
  241. package/src/atoms/components/Icon/icons/maker/align-justify.vue +7 -7
  242. package/src/atoms/components/Icon/icons/maker/align-left.vue +7 -7
  243. package/src/atoms/components/Icon/icons/maker/align-right.vue +7 -7
  244. package/src/atoms/components/Icon/icons/maker/animate.vue +7 -7
  245. package/src/atoms/components/Icon/icons/maker/bold.vue +7 -7
  246. package/src/atoms/components/Icon/icons/maker/custom-landscape.vue +5 -5
  247. package/src/atoms/components/Icon/icons/maker/email-symbol.vue +5 -5
  248. package/src/atoms/components/Icon/icons/maker/email.vue +5 -5
  249. package/src/atoms/components/Icon/icons/maker/eraser.vue +5 -5
  250. package/src/atoms/components/Icon/icons/maker/etsy.vue +5 -5
  251. package/src/atoms/components/Icon/icons/maker/facebook.vue +5 -5
  252. package/src/atoms/components/Icon/icons/maker/favicon.vue +7 -7
  253. package/src/atoms/components/Icon/icons/maker/flyer.vue +7 -7
  254. package/src/atoms/components/Icon/icons/maker/gift-certificate.vue +5 -5
  255. package/src/atoms/components/Icon/icons/maker/globe.vue +5 -5
  256. package/src/atoms/components/Icon/icons/maker/image.vue +7 -7
  257. package/src/atoms/components/Icon/icons/maker/instagram.vue +7 -7
  258. package/src/atoms/components/Icon/icons/maker/invitation.vue +5 -5
  259. package/src/atoms/components/Icon/icons/maker/invoice.vue +5 -5
  260. package/src/atoms/components/Icon/icons/maker/italic.vue +7 -7
  261. package/src/atoms/components/Icon/icons/maker/link.vue +7 -7
  262. package/src/atoms/components/Icon/icons/maker/linkedin.vue +7 -7
  263. package/src/atoms/components/Icon/icons/maker/menu.vue +5 -5
  264. package/src/atoms/components/Icon/icons/maker/pause.vue +5 -5
  265. package/src/atoms/components/Icon/icons/maker/phone.vue +5 -5
  266. package/src/atoms/components/Icon/icons/maker/pinterest.vue +5 -5
  267. package/src/atoms/components/Icon/icons/maker/play.vue +5 -5
  268. package/src/atoms/components/Icon/icons/maker/postcard.vue +5 -5
  269. package/src/atoms/components/Icon/icons/maker/poster.vue +7 -7
  270. package/src/atoms/components/Icon/icons/maker/profile.vue +5 -5
  271. package/src/atoms/components/Icon/icons/maker/qrcode.vue +5 -5
  272. package/src/atoms/components/Icon/icons/maker/snapchat.vue +5 -5
  273. package/src/atoms/components/Icon/icons/maker/soundcloud.vue +7 -7
  274. package/src/atoms/components/Icon/icons/maker/spacing.vue +18 -18
  275. package/src/atoms/components/Icon/icons/maker/strikethrough.vue +7 -7
  276. package/src/atoms/components/Icon/icons/maker/t-shirt.vue +32 -32
  277. package/src/atoms/components/Icon/icons/maker/text-background-color.vue +12 -12
  278. package/src/atoms/components/Icon/icons/maker/text-color.vue +14 -14
  279. package/src/atoms/components/Icon/icons/maker/text.vue +7 -7
  280. package/src/atoms/components/Icon/icons/maker/thankyou-card.vue +5 -5
  281. package/src/atoms/components/Icon/icons/maker/tiktok.vue +5 -5
  282. package/src/atoms/components/Icon/icons/maker/tumblr.vue +5 -5
  283. package/src/atoms/components/Icon/icons/maker/twitch.vue +7 -7
  284. package/src/atoms/components/Icon/icons/maker/twitter.vue +5 -5
  285. package/src/atoms/components/Icon/icons/maker/underline.vue +7 -7
  286. package/src/atoms/components/Icon/icons/maker/uppercase.vue +14 -14
  287. package/src/atoms/components/Icon/icons/maker/video.vue +5 -5
  288. package/src/atoms/components/Icon/icons/maker/whatsapp.vue +7 -7
  289. package/src/atoms/components/Icon/icons/maker/youtube.vue +5 -5
  290. package/src/atoms/components/Icon/icons/maker/zoom.vue +5 -5
  291. package/src/atoms/components/Icon/icons/map.vue +6 -6
  292. package/src/atoms/components/Icon/icons/media.vue +3 -3
  293. package/src/atoms/components/Icon/icons/message.vue +6 -6
  294. package/src/atoms/components/Icon/icons/minus-circle-light.vue +7 -7
  295. package/src/atoms/components/Icon/icons/minus.vue +3 -3
  296. package/src/atoms/components/Icon/icons/mobile.vue +5 -5
  297. package/src/atoms/components/Icon/icons/mug.vue +29 -29
  298. package/src/atoms/components/Icon/icons/opacity.vue +6 -6
  299. package/src/atoms/components/Icon/icons/other.vue +7 -7
  300. package/src/atoms/components/Icon/icons/page-buttons.vue +8 -8
  301. package/src/atoms/components/Icon/icons/page-hamburger.vue +9 -9
  302. package/src/atoms/components/Icon/icons/page-tabs.vue +9 -9
  303. package/src/atoms/components/Icon/icons/pages.vue +6 -6
  304. package/src/atoms/components/Icon/icons/palette.vue +6 -6
  305. package/src/atoms/components/Icon/icons/pause.vue +5 -5
  306. package/src/atoms/components/Icon/icons/payment.vue +8 -8
  307. package/src/atoms/components/Icon/icons/payments-featured.vue +6 -6
  308. package/src/atoms/components/Icon/icons/payments-textonly.vue +8 -8
  309. package/src/atoms/components/Icon/icons/payments-thumbnail.vue +9 -9
  310. package/src/atoms/components/Icon/icons/pen-tool.vue +7 -7
  311. package/src/atoms/components/Icon/icons/phone.vue +6 -6
  312. package/src/atoms/components/Icon/icons/plus-circle-light.vue +8 -8
  313. package/src/atoms/components/Icon/icons/plus-circle.vue +7 -7
  314. package/src/atoms/components/Icon/icons/plus.vue +3 -3
  315. package/src/atoms/components/Icon/icons/poll.vue +3 -3
  316. package/src/atoms/components/Icon/icons/portfolio.vue +10 -10
  317. package/src/atoms/components/Icon/icons/preview.vue +6 -6
  318. package/src/atoms/components/Icon/icons/printing.vue +6 -6
  319. package/src/atoms/components/Icon/icons/processing.vue +5 -5
  320. package/src/atoms/components/Icon/icons/question.vue +11 -11
  321. package/src/atoms/components/Icon/icons/ratio-1-1.vue +3 -3
  322. package/src/atoms/components/Icon/icons/ratio-16-9.vue +1 -1
  323. package/src/atoms/components/Icon/icons/ratio-2-3.vue +3 -3
  324. package/src/atoms/components/Icon/icons/ratio-3-2.vue +3 -3
  325. package/src/atoms/components/Icon/icons/ratio-3-4.vue +3 -3
  326. package/src/atoms/components/Icon/icons/ratio-4-3.vue +3 -3
  327. package/src/atoms/components/Icon/icons/ratio-9-16.vue +3 -3
  328. package/src/atoms/components/Icon/icons/ratio-circle.vue +8 -8
  329. package/src/atoms/components/Icon/icons/ratio-original.vue +11 -11
  330. package/src/atoms/components/Icon/icons/redo.vue +6 -6
  331. package/src/atoms/components/Icon/icons/reload.vue +6 -6
  332. package/src/atoms/components/Icon/icons/reorderable.vue +5 -5
  333. package/src/atoms/components/Icon/icons/request-payment.vue +6 -6
  334. package/src/atoms/components/Icon/icons/reset.vue +6 -6
  335. package/src/atoms/components/Icon/icons/resize.vue +6 -6
  336. package/src/atoms/components/Icon/icons/search.vue +11 -11
  337. package/src/atoms/components/Icon/icons/secure.vue +7 -7
  338. package/src/atoms/components/Icon/icons/send.vue +12 -12
  339. package/src/atoms/components/Icon/icons/services.vue +7 -7
  340. package/src/atoms/components/Icon/icons/settings.vue +7 -7
  341. package/src/atoms/components/Icon/icons/shape.vue +5 -5
  342. package/src/atoms/components/Icon/icons/share.vue +8 -8
  343. package/src/atoms/components/Icon/icons/shield-tick.vue +6 -0
  344. package/src/atoms/components/Icon/icons/shop.vue +5 -5
  345. package/src/atoms/components/Icon/icons/sms.vue +5 -5
  346. package/src/atoms/components/Icon/icons/social-facebook-color.vue +9 -9
  347. package/src/atoms/components/Icon/icons/social-facebook.vue +5 -5
  348. package/src/atoms/components/Icon/icons/social-google.vue +5 -5
  349. package/src/atoms/components/Icon/icons/social-instagram-color.vue +24 -24
  350. package/src/atoms/components/Icon/icons/social-linkedin-color.vue +9 -9
  351. package/src/atoms/components/Icon/icons/social-share.vue +7 -7
  352. package/src/atoms/components/Icon/icons/social-twitter-color.vue +9 -9
  353. package/src/atoms/components/Icon/icons/star-filled.vue +6 -6
  354. package/src/atoms/components/Icon/icons/star-hollow.vue +6 -6
  355. package/src/atoms/components/Icon/icons/sticker.vue +28 -28
  356. package/src/atoms/components/Icon/icons/stop.vue +5 -5
  357. package/src/atoms/components/Icon/icons/styles.vue +5 -5
  358. package/src/atoms/components/Icon/icons/submit.vue +5 -5
  359. package/src/atoms/components/Icon/icons/templates.vue +7 -7
  360. package/src/atoms/components/Icon/icons/text-image-center.vue +6 -6
  361. package/src/atoms/components/Icon/icons/text-image-justified.vue +7 -7
  362. package/src/atoms/components/Icon/icons/text-image-left.vue +9 -9
  363. package/src/atoms/components/Icon/icons/text-image-only.vue +5 -5
  364. package/src/atoms/components/Icon/icons/text-image-right.vue +9 -9
  365. package/src/atoms/components/Icon/icons/text-image.vue +13 -13
  366. package/src/atoms/components/Icon/icons/time.vue +8 -8
  367. package/src/atoms/components/Icon/icons/tooltip-bottom.vue +5 -5
  368. package/src/atoms/components/Icon/icons/tooltip-left.vue +5 -5
  369. package/src/atoms/components/Icon/icons/tooltip-right.vue +5 -5
  370. package/src/atoms/components/Icon/icons/tooltip-top.vue +5 -5
  371. package/src/atoms/components/Icon/icons/undo.vue +6 -6
  372. package/src/atoms/components/Icon/icons/upgrade-alt.vue +7 -7
  373. package/src/atoms/components/Icon/icons/upgrade.vue +9 -9
  374. package/src/atoms/components/Icon/icons/upload-arrow.vue +5 -5
  375. package/src/atoms/components/Icon/icons/upload.vue +5 -5
  376. package/src/atoms/components/Icon/icons/user-accounts.vue +5 -5
  377. package/src/atoms/components/Icon/icons/user-headset.vue +50 -50
  378. package/src/atoms/components/Icon/icons/volume-muted.vue +5 -5
  379. package/src/atoms/components/Icon/icons/volume.vue +5 -5
  380. package/src/atoms/components/Icon/icons/watchlist-filled.vue +14 -14
  381. package/src/atoms/components/Icon/icons/watchlist-hollow-alt.vue +14 -14
  382. package/src/atoms/components/Icon/icons/watchlist-hollow.vue +6 -6
  383. package/src/atoms/components/Icon/icons/website-filled.vue +5 -5
  384. package/src/atoms/components/Icon/icons/website.vue +6 -6
  385. package/src/atoms/components/Icon/icons/wholesale.vue +6 -6
  386. package/src/atoms/components/Icon/icons/zoom-in.vue +5 -5
  387. package/src/atoms/components/Icon/icons/zoom-out.vue +5 -5
  388. package/src/atoms/components/Icon/icons/zoom.vue +11 -11
  389. package/src/atoms/components/Loader/Loader.vue +15 -15
  390. package/src/atoms/components/Masonry/Masonry.stories.js +48 -48
  391. package/src/atoms/components/Masonry/Masonry.vue +48 -48
  392. package/src/atoms/components/Masonry/fixtures.js +589 -589
  393. package/src/atoms/components/Modal/HashRouteModal.stories.js +68 -68
  394. package/src/atoms/components/Modal/HashRouteModal.vue +120 -120
  395. package/src/atoms/components/Modal/Modal.stories.js +293 -293
  396. package/src/atoms/components/Modal/Modal.vue +263 -263
  397. package/src/atoms/components/Notice/Notice.stories.js +174 -174
  398. package/src/atoms/components/Notice/Notice.vue +71 -71
  399. package/src/atoms/components/NumberStepper/NumberStepper.stories.js +55 -55
  400. package/src/atoms/components/NumberStepper/NumberStepper.vue +340 -340
  401. package/src/atoms/components/Picture/Picture.stories.js +90 -90
  402. package/src/atoms/components/Picture/Picture.vue +84 -84
  403. package/src/atoms/components/Picture/picture.fixtures.js +35 -35
  404. package/src/atoms/components/Pill/Pill.stories.js +20 -20
  405. package/src/atoms/components/Pill/Pill.vue +8 -8
  406. package/src/atoms/components/PillBar/PillBar.fixtures.js +941 -941
  407. package/src/atoms/components/PillBar/PillBar.stories.js +39 -39
  408. package/src/atoms/components/PillBar/PillBar.vue +62 -62
  409. package/src/atoms/components/Price/Price.fixtures.js +85 -85
  410. package/src/atoms/components/Price/Price.stories.js +291 -291
  411. package/src/atoms/components/Price/Price.vue +135 -135
  412. package/src/atoms/components/Price/i18n/price.de-DE.json +5 -5
  413. package/src/atoms/components/Price/i18n/price.es-ES.json +5 -5
  414. package/src/atoms/components/Price/i18n/price.fr-CA.json +5 -5
  415. package/src/atoms/components/Price/i18n/price.fr-FR.json +5 -5
  416. package/src/atoms/components/Price/i18n/price.json +5 -5
  417. package/src/atoms/components/Price/i18n/price.pt-BR.json +5 -5
  418. package/src/atoms/components/Price/i18n/price.pt-PT.json +5 -5
  419. package/src/atoms/components/PromoCard/PromoCard.stories.ts +263 -263
  420. package/src/atoms/components/PromoCard/PromoCard.vue +83 -83
  421. package/src/atoms/components/SearchBar/SearchBar.stories.js +21 -21
  422. package/src/atoms/components/SearchBar/SearchBar.vue +51 -51
  423. package/src/atoms/components/Select/Select.stories.js +142 -142
  424. package/src/atoms/components/Select/Select.vue +619 -619
  425. package/src/atoms/components/Select/pointerMixin.js +99 -99
  426. package/src/atoms/components/Select/selectMixin.js +356 -356
  427. package/src/atoms/components/SparkleIcon/SparkleIcon.stories.js +386 -386
  428. package/src/atoms/components/SparkleIcon/SparkleIcon.vue +136 -136
  429. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-01.svg +5 -5
  430. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-02.svg +5 -5
  431. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-03.svg +5 -5
  432. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-04.svg +5 -5
  433. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-05.svg +5 -5
  434. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-06.svg +5 -5
  435. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-07.svg +5 -5
  436. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-08.svg +5 -5
  437. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-01.svg +5 -5
  438. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-02.svg +14 -14
  439. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-03.svg +14 -14
  440. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-04.svg +14 -14
  441. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-05.svg +14 -14
  442. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-06.svg +14 -14
  443. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-07.svg +14 -14
  444. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-08.svg +14 -14
  445. package/src/atoms/components/SparkleIcon/assets/sparkle.svg +3 -3
  446. package/src/atoms/components/SparkleIcon/index.ts +3 -3
  447. package/src/atoms/components/SparkleIcon/sparkle-paths.ts +54 -54
  448. package/src/atoms/components/SparkleIcon/sparkle-with-spinner-paths.ts +61 -61
  449. package/src/atoms/components/StarRating/StarRating.stories.js +50 -50
  450. package/src/atoms/components/StarRating/StarRating.vue +84 -84
  451. package/src/atoms/components/TabMenu/TabMenu.stories.js +54 -54
  452. package/src/atoms/components/TabMenu/TabMenu.vue +44 -44
  453. package/src/atoms/components/TextCopyField/TextCopyField.stories.js +68 -68
  454. package/src/atoms/components/TextCopyField/TextCopyField.vue +75 -75
  455. package/src/atoms/components/TextInput/TextInput.stories.js +232 -232
  456. package/src/atoms/components/TextInput/TextInput.vue +161 -161
  457. package/src/atoms/components/Textarea/Textarea.stories.js +209 -209
  458. package/src/atoms/components/Textarea/Textarea.vue +112 -112
  459. package/src/atoms/components/Toggle/Toggle.stories.js +176 -176
  460. package/src/atoms/components/Toggle/Toggle.vue +69 -69
  461. package/src/atoms/components/Tooltip/Tooltip.stories.js +493 -493
  462. package/src/atoms/components/Tooltip/Tooltip.vue +196 -196
  463. package/src/atoms/components/design-com/Icon/Icon.stories.js +82 -82
  464. package/src/atoms/components/design-com/Icon/Icon.vue +157 -157
  465. package/src/atoms/components/design-com/Icon/icons/award.vue +7 -7
  466. package/src/atoms/components/design-com/Icon/icons/bulb.vue +7 -7
  467. package/src/atoms/components/design-com/Icon/icons/card.vue +7 -7
  468. package/src/atoms/components/design-com/Icon/icons/check-circle-light.vue +7 -7
  469. package/src/atoms/components/design-com/Icon/icons/chevron-down.vue +7 -7
  470. package/src/atoms/components/design-com/Icon/icons/chevron-left.vue +7 -7
  471. package/src/atoms/components/design-com/Icon/icons/chevron-right.vue +3 -3
  472. package/src/atoms/components/design-com/Icon/icons/chevron-up.vue +7 -7
  473. package/src/atoms/components/design-com/Icon/icons/diamond.vue +7 -7
  474. package/src/atoms/components/design-com/Icon/icons/download.vue +7 -7
  475. package/src/atoms/components/design-com/Icon/icons/file-empty.vue +7 -7
  476. package/src/atoms/components/design-com/Icon/icons/file.vue +7 -7
  477. package/src/atoms/components/design-com/Icon/icons/filter.vue +7 -7
  478. package/src/atoms/components/design-com/Icon/icons/font.vue +7 -7
  479. package/src/atoms/components/design-com/Icon/icons/headphones.vue +7 -7
  480. package/src/atoms/components/design-com/Icon/icons/heart.vue +7 -7
  481. package/src/atoms/components/design-com/Icon/icons/image.vue +7 -7
  482. package/src/atoms/components/design-com/Icon/icons/logo.vue +7 -7
  483. package/src/atoms/components/design-com/Icon/icons/minus-circle-light.vue +7 -7
  484. package/src/atoms/components/design-com/Icon/icons/plus-circle-light.vue +8 -8
  485. package/src/atoms/components/design-com/Icon/icons/question-circle-filled.vue +7 -7
  486. package/src/atoms/components/design-com/Icon/icons/search.vue +7 -7
  487. package/src/atoms/components/design-com/Icon/icons/star-filled.vue +6 -6
  488. package/src/atoms/components/design-com/Icon/icons/star-hollow.vue +6 -6
  489. package/src/atoms/components/design-com/Icon/icons/users.vue +7 -7
  490. package/src/atoms/constants/constants.ts +6 -6
  491. package/src/atoms/mixin/hash-router-mixin.js +68 -68
  492. package/src/atoms/thirdparty-components/VueMasonryWall/VueMasonryWall.vue +280 -280
  493. package/src/atoms/thirdparty-components/VueMasonryWall/maxBy.js +50 -50
  494. package/src/bundleTranslation.js +86 -86
  495. package/src/bundles/bundled-translations.de-DE.json +6 -6
  496. package/src/bundles/bundled-translations.es-ES.json +6 -6
  497. package/src/bundles/bundled-translations.fr-CA.json +6 -6
  498. package/src/bundles/bundled-translations.fr-FR.json +6 -6
  499. package/src/bundles/bundled-translations.json +6 -6
  500. package/src/bundles/bundled-translations.pt-BR.json +6 -6
  501. package/src/bundles/bundled-translations.pt-PT.json +6 -6
  502. package/src/css/tailwind.css +3 -3
  503. package/src/experiences/clients/brand-crowd-api.client.js +119 -119
  504. package/src/experiences/clients/brand-page-api.client.js +62 -62
  505. package/src/experiences/components/AuthFlow/Auth.fixtures.js +4 -4
  506. package/src/experiences/components/AuthFlow/Auth.stories.js +345 -345
  507. package/src/experiences/components/AuthFlow/AuthCrazyDomains.stories.js +60 -60
  508. package/src/experiences/components/AuthFlow/AuthLegal.vue +108 -108
  509. package/src/experiences/components/AuthFlow/AuthModal.vue +39 -39
  510. package/src/experiences/components/AuthFlow/ForgotPassword.vue +222 -222
  511. package/src/experiences/components/AuthFlow/ForgotPasswordModal.vue +68 -68
  512. package/src/experiences/components/AuthFlow/ResetPassword.vue +179 -179
  513. package/src/experiences/components/AuthFlow/ResetPasswordModal.vue +64 -64
  514. package/src/experiences/components/AuthFlow/ResetPasswordSuccessModal.vue +56 -56
  515. package/src/experiences/components/AuthFlow/SignIn.vue +465 -465
  516. package/src/experiences/components/AuthFlow/SignUp.vue +278 -278
  517. package/src/experiences/components/AuthFlow/SignUpModal.vue +90 -90
  518. package/src/experiences/components/AuthFlow/SocialSignIn.vue +177 -177
  519. package/src/experiences/components/AuthFlow/SocialSignInButton.vue +74 -74
  520. package/src/experiences/components/AuthFlow/SubmissionButton.vue +56 -56
  521. package/src/experiences/components/PaymentConfigList/PaymentConfig.mixin.js +118 -118
  522. package/src/experiences/components/PaymentConfigList/PaymentConfigDeleteConfigModal.vue +108 -108
  523. package/src/experiences/components/PaymentConfigList/PaymentConfigDropdown.vue +175 -175
  524. package/src/experiences/components/PaymentConfigList/PaymentConfigList.stories.js +234 -234
  525. package/src/experiences/components/PaymentConfigList/PaymentConfigList.vue +136 -136
  526. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.de-DE.json +11 -11
  527. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.es-ES.json +11 -11
  528. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.fr-CA.json +11 -11
  529. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.fr-FR.json +11 -11
  530. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.json +11 -11
  531. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.pt-BR.json +11 -11
  532. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.pt-PT.json +11 -11
  533. package/src/experiences/components/PublishBrandPageModal/PublishBrandPageCard.vue +119 -119
  534. package/src/experiences/components/PublishBrandPageModal/PublishBrandPageModal.stories.js +262 -262
  535. package/src/experiences/components/PublishBrandPageModal/__fixtures__/data.js +25 -25
  536. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.de-DE.json +24 -24
  537. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.es-ES.json +24 -24
  538. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.fr-CA.json +24 -24
  539. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.fr-FR.json +24 -24
  540. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.json +24 -24
  541. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-BR.json +24 -24
  542. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-PT.json +24 -24
  543. package/src/experiences/components/SellDomainNameList/SellDomainNameList.fixtures.js +32 -32
  544. package/src/experiences/components/SellDomainNameList/SellDomainNameList.vue +157 -157
  545. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.de-DE.json +7 -7
  546. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.es-ES.json +7 -7
  547. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.fr-CA.json +7 -7
  548. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.fr-FR.json +7 -7
  549. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.json +7 -7
  550. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.pt-BR.json +7 -7
  551. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.pt-PT.json +7 -7
  552. package/src/experiences/components/SellDomainNameListModal/SellDomainNameListModal.stories.js +74 -74
  553. package/src/experiences/components/SellDomainNameListModal/SellDomainNameListModal.vue +128 -128
  554. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.de-DE.json +5 -5
  555. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.es-ES.json +5 -5
  556. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.fr-CA.json +5 -5
  557. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.fr-FR.json +5 -5
  558. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.json +5 -5
  559. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.pt-BR.json +5 -5
  560. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.pt-PT.json +5 -5
  561. package/src/experiences/components/SellDomainNameModalApplication/SellDomainNameModalApplication.vue +209 -209
  562. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.de-DE.json +5 -5
  563. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.es-ES.json +5 -5
  564. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.fr-CA.json +5 -5
  565. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.fr-FR.json +5 -5
  566. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.json +5 -5
  567. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.pt-BR.json +5 -5
  568. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.pt-PT.json +5 -5
  569. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.de-DE.json +7 -7
  570. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.es-ES.json +7 -7
  571. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.fr-CA.json +7 -7
  572. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.fr-FR.json +7 -7
  573. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.json +7 -7
  574. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.pt-BR.json +7 -7
  575. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.pt-PT.json +7 -7
  576. package/src/experiences/components/SellDomainNameSearchResult/SellDomainNameListSearchResult.vue +167 -167
  577. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.de-DE.json +5 -5
  578. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.es-ES.json +5 -5
  579. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.fr-CA.json +5 -5
  580. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.fr-FR.json +5 -5
  581. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.json +5 -5
  582. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.pt-BR.json +5 -5
  583. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.pt-PT.json +5 -5
  584. package/src/experiences/components/SellDomainNameSearchWithResults/SellDomainNameSearchWithResults.stories.js +38 -38
  585. package/src/experiences/components/SellDomainNameSearchWithResults/SellDomainNameSearchWithResults.vue +214 -214
  586. package/src/experiences/components/SellDomainNameWidget/SellDomainNameWidget.stories.js +40 -40
  587. package/src/experiences/components/SellDomainNameWidget/SellDomainNameWidget.vue +155 -155
  588. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.de-DE.json +7 -7
  589. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.es-ES.json +7 -7
  590. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.fr-CA.json +7 -7
  591. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.fr-FR.json +7 -7
  592. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.json +7 -7
  593. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.pt-BR.json +7 -7
  594. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.pt-PT.json +7 -7
  595. package/src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.stories.js +205 -205
  596. package/src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.vue +133 -133
  597. package/src/experiences/components/UploadYourLogoDropzone/UploadYourLogoDropzone.stories.js +59 -59
  598. package/src/experiences/components/UploadYourLogoDropzone/UploadYourLogoDropzone.vue +285 -285
  599. package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessBrandColours.stories.js +37 -37
  600. package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessBrandColours.vue +338 -338
  601. package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessText.vue +146 -146
  602. package/src/experiences/components/UploadYourLogoOnBoarding/LogoCropper.vue +473 -473
  603. package/src/experiences/components/UploadYourLogoOnBoarding/LogoPreview.vue +103 -103
  604. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadError.vue +75 -75
  605. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadExitConfirmation.vue +55 -55
  606. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadModal.vue +38 -38
  607. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploader.vue +102 -102
  608. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadingLoader.vue +22 -22
  609. package/src/experiences/components/UploadYourLogoOnBoarding/UploadYourLogoOnBoarding.vue +302 -302
  610. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.de-DE.json +34 -34
  611. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.es-ES.json +34 -34
  612. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-CA.json +34 -34
  613. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-FR.json +34 -34
  614. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.json +35 -35
  615. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-BR.json +34 -34
  616. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-PT.json +34 -34
  617. package/src/experiences/components/UploadedLogoSearchResultCard/UploadedLogoSearchResultCard.stories.js +82 -82
  618. package/src/experiences/components/UploadedLogoSearchResultCard/UploadedLogoSearchResultCard.vue +211 -211
  619. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.de-DE.json +8 -8
  620. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.es-ES.json +8 -8
  621. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.fr-CA.json +8 -8
  622. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.fr-FR.json +8 -8
  623. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.json +8 -8
  624. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.pt-BR.json +8 -8
  625. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.pt-PT.json +8 -8
  626. package/src/experiences/constants/api.js +8 -8
  627. package/src/experiences/constants/error-constants.js +5 -5
  628. package/src/experiences/constants/event-constants.js +18 -18
  629. package/src/experiences/constants/partner-dictionary-constants.js +27 -27
  630. package/src/experiences/constants/rego-source-constants.js +3 -3
  631. package/src/experiences/constants/sell-domain-name-constants.js +4 -4
  632. package/src/experiences/helpers/email-validator.js +5 -5
  633. package/src/experiences/helpers/hex-diff.js +116 -116
  634. package/src/experiences/helpers/tracking.js +5 -5
  635. package/src/experiences/mixins/mediaQueryMixin.js +31 -31
  636. package/src/experiences/mixins/themeMixin.js +22 -22
  637. package/src/themes/base.js +20 -20
  638. package/src/themes/bc.js +95 -95
  639. package/src/themes/bp.js +21 -21
  640. package/src/themes/cd.js +94 -94
  641. package/src/themes/dc.js +84 -84
  642. package/src/themes/dcom.js +106 -106
  643. package/src/themes/themes.js +16 -16
  644. package/src/useSharedLibTranslate.js +127 -127
  645. package/src/viewports.js +51 -51
  646. package/stylelint.config.js +19 -19
  647. package/tailwind.build.js +83 -83
  648. package/tailwind.config.js +36 -36
  649. package/tailwind.themes.js +59 -59
  650. package/vite.config.ts +37 -37
@@ -1,530 +1,530 @@
1
- import Icon from '../Icon/Icon.vue';
2
- import { cards } from './Carousel.fixtures';
3
- import Carousel from './Carousel.vue';
4
-
5
- export default {
6
- title: 'Components/Carousel',
7
- component: Carousel,
8
- tags: ['autodocs'],
9
- argTypes: {
10
- cards: {
11
- control: 'object',
12
- description: 'Array of card data to display in the carousel',
13
- table: {
14
- type: { summary: 'Array<Object>' },
15
- defaultValue: { summary: '[]' },
16
- },
17
- },
18
- showControls: {
19
- control: 'boolean',
20
- description: 'Show/hide navigation arrows',
21
- table: {
22
- type: { summary: 'boolean' },
23
- defaultValue: { summary: 'true' },
24
- },
25
- },
26
- showBullets: {
27
- control: 'boolean',
28
- description: 'Show/hide pagination bullets',
29
- table: {
30
- type: { summary: 'boolean' },
31
- defaultValue: { summary: 'true' },
32
- },
33
- },
34
- hideBulletsOnMobile: {
35
- control: 'boolean',
36
- description: 'Hide pagination bullets on mobile devices',
37
- table: {
38
- type: { summary: 'boolean' },
39
- defaultValue: { summary: 'true' },
40
- },
41
- },
42
- navCarousel: {
43
- control: 'boolean',
44
- description: 'Use alternative navigation styling',
45
- table: {
46
- type: { summary: 'boolean' },
47
- defaultValue: { summary: 'false' },
48
- },
49
- },
50
- disableRightClick: {
51
- control: 'boolean',
52
- description: 'Disable right-click context menu',
53
- table: {
54
- type: { summary: 'boolean' },
55
- defaultValue: { summary: 'false' },
56
- },
57
- },
58
- options: {
59
- control: 'object',
60
- description: 'Swiper options object for customization',
61
- table: {
62
- type: { summary: 'Object' },
63
- defaultValue: { summary: '{}' },
64
- },
65
- },
66
- },
67
- parameters: {
68
- docs: {
69
- description: {
70
- component:
71
- 'A flexible carousel component built with Swiper.js. Supports multiple slides, custom navigation, pagination, and various display options.',
72
- },
73
- },
74
- },
75
- };
76
-
77
- // Default story with interactive controls
78
- export const Default = {
79
- args: {
80
- cards,
81
- showControls: true,
82
- showBullets: true,
83
- hideBulletsOnMobile: false,
84
- navCarousel: false,
85
- options: {
86
- loop: true,
87
- spaceBetween: 20,
88
- slidesPerView: 1,
89
- breakpoints: {
90
- 640: {
91
- slidesPerView: 2,
92
- slidesPerGroup: 2,
93
- },
94
- 1024: {
95
- slidesPerView: 3,
96
- slidesPerGroup: 3,
97
- },
98
- },
99
- },
100
- },
101
- render: (args) => ({
102
- components: { Carousel },
103
- setup() {
104
- return { args };
105
- },
106
- template: `
107
- <div class="tw-p-8">
108
- <Carousel
109
- :cards="args.cards"
110
- :show-controls="args.showControls"
111
- :show-bullets="args.showBullets"
112
- :hide-bullets-on-mobile="args.hideBulletsOnMobile"
113
- :nav-carousel="args.navCarousel"
114
- :options="args.options"
115
- >
116
- <template #slide="{ slide }">
117
- <div class="tw-flex tw-flex-col tw-items-center tw-cursor-pointer tw-p-4 tw-bg-gray-50 tw-rounded-lg tw-h-full">
118
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-48 tw-object-contain tw-mb-4" />
119
- <span class="tw-text-lg tw-font-semibold tw-text-center">{{ slide.name }}</span>
120
- </div>
121
- </template>
122
- </Carousel>
123
- </div>
124
- `,
125
- }),
126
- };
127
-
128
- // Single slide view
129
- export const SingleSlide = {
130
- args: {
131
- cards,
132
- showControls: true,
133
- showBullets: true,
134
- options: {
135
- loop: false,
136
- slidesPerView: 1,
137
- slidesPerGroup: 1,
138
- },
139
- },
140
- render: (args) => ({
141
- components: { Carousel },
142
- setup() {
143
- return { args };
144
- },
145
- template: `
146
- <div class="tw-p-8 tw-max-w-md tw-mx-auto">
147
- <Carousel
148
- :cards="args.cards"
149
- :show-controls="args.showControls"
150
- :show-bullets="args.showBullets"
151
- :options="args.options"
152
- >
153
- <template #slide="{ slide }">
154
- <div class="tw-flex tw-flex-col tw-items-center tw-p-6 tw-bg-white tw-rounded-xl tw-shadow-lg">
155
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-64 tw-object-contain tw-mb-4" />
156
- <h3 class="tw-text-xl tw-font-bold tw-text-center">{{ slide.name }}</h3>
157
- <p class="tw-text-gray-600 tw-text-center tw-mt-2">Click to learn more</p>
158
- </div>
159
- </template>
160
- </Carousel>
161
- </div>
162
- `,
163
- }),
164
- parameters: {
165
- docs: {
166
- description: {
167
- story: 'Display one slide at a time with navigation controls.',
168
- },
169
- },
170
- },
171
- };
172
-
173
- // Without navigation controls
174
- export const WithoutControls = {
175
- args: {
176
- cards,
177
- showControls: false,
178
- showBullets: true,
179
- options: {
180
- loop: true,
181
- autoplay: {
182
- delay: 3000,
183
- disableOnInteraction: false,
184
- },
185
- },
186
- },
187
- render: (args) => ({
188
- components: { Carousel },
189
- setup() {
190
- return { args };
191
- },
192
- template: `
193
- <div class="tw-p-8">
194
- <Carousel
195
- :cards="args.cards"
196
- :show-controls="args.showControls"
197
- :show-bullets="args.showBullets"
198
- :options="args.options"
199
- >
200
- <template #slide="{ slide }">
201
- <div class="tw-flex tw-flex-col tw-items-center tw-p-4">
202
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-40 tw-object-contain tw-mb-2" />
203
- <span class="tw-text-center tw-font-medium">{{ slide.name }}</span>
204
- </div>
205
- </template>
206
- </Carousel>
207
- </div>
208
- `,
209
- }),
210
- parameters: {
211
- docs: {
212
- description: {
213
- story: 'Auto-playing carousel without navigation arrows. Uses only pagination bullets for navigation.',
214
- },
215
- },
216
- },
217
- };
218
-
219
- // Without bullets
220
- export const WithoutBullets = {
221
- args: {
222
- cards,
223
- showControls: true,
224
- showBullets: false,
225
- options: {
226
- loop: true,
227
- slidesPerView: 2,
228
- spaceBetween: 20,
229
- },
230
- },
231
- render: (args) => ({
232
- components: { Carousel },
233
- setup() {
234
- return { args };
235
- },
236
- template: `
237
- <div class="tw-p-8">
238
- <Carousel
239
- :cards="args.cards"
240
- :show-controls="args.showControls"
241
- :show-bullets="args.showBullets"
242
- :options="args.options"
243
- >
244
- <template #slide="{ slide }">
245
- <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-gray-100 tw-rounded">
246
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-32 tw-object-contain tw-mb-2" />
247
- <span class="tw-text-center">{{ slide.name }}</span>
248
- </div>
249
- </template>
250
- </Carousel>
251
- </div>
252
- `,
253
- }),
254
- parameters: {
255
- docs: {
256
- description: {
257
- story: 'Carousel with arrow controls only, no pagination bullets.',
258
- },
259
- },
260
- },
261
- };
262
-
263
- // Custom arrow styling
264
- export const CustomArrows = {
265
- args: {
266
- cards,
267
- },
268
- render: (args) => ({
269
- components: { Carousel, Icon },
270
- setup() {
271
- return { args };
272
- },
273
- template: `
274
- <div class="tw-p-8">
275
- <Carousel :cards="args.cards" :options="{ loop: true }">
276
- <template #arrow-left>
277
- <div class="tw-bg-blue-500 tw-text-white tw-rounded-full tw-p-3 tw-cursor-pointer hover:tw-bg-blue-600 tw-transition tw-shadow-lg">
278
- <Icon classes="tw-transform tw-rotate-180" name="chevron-right" size="lg" color="white" />
279
- </div>
280
- </template>
281
- <template #slide="{ slide }">
282
- <div class="tw-flex tw-flex-col tw-items-center tw-p-4">
283
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-40 tw-object-contain tw-mb-2" />
284
- <span class="tw-text-center tw-font-medium">{{ slide.name }}</span>
285
- </div>
286
- </template>
287
- <template #arrow-right>
288
- <div class="tw-bg-blue-500 tw-text-white tw-rounded-full tw-p-3 tw-cursor-pointer hover:tw-bg-blue-600 tw-transition tw-shadow-lg">
289
- <Icon name="chevron-right" size="lg" color="white" />
290
- </div>
291
- </template>
292
- </Carousel>
293
- </div>
294
- `,
295
- }),
296
- parameters: {
297
- docs: {
298
- description: {
299
- story: 'Carousel with custom-styled navigation arrows using the arrow slots.',
300
- },
301
- },
302
- },
303
- };
304
-
305
- // Free mode (continuous scroll)
306
- export const FreeMode = {
307
- args: {
308
- cards: [...cards, ...cards, ...cards],
309
- },
310
- render: (args) => ({
311
- components: { Carousel },
312
- setup() {
313
- return { args };
314
- },
315
- template: `
316
- <div class="tw-p-8">
317
- <Carousel
318
- :cards="args.cards"
319
- :options="{
320
- loop: false,
321
- spaceBetween: 20,
322
- freeMode: true,
323
- slidesPerView: 'auto',
324
- }"
325
- >
326
- <template #slide="{ slide }">
327
- <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-white tw-rounded-lg tw-shadow" style="width: 200px;">
328
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-32 tw-object-contain tw-mb-2" />
329
- <span class="tw-text-center tw-text-sm tw-font-medium">{{ slide.name }}</span>
330
- </div>
331
- </template>
332
- </Carousel>
333
- </div>
334
- `,
335
- }),
336
- parameters: {
337
- docs: {
338
- description: {
339
- story: 'Free scrolling mode where users can drag freely without snapping to slides.',
340
- },
341
- },
342
- },
343
- };
344
-
345
- // Centered slides
346
- export const CenteredSlides = {
347
- args: {
348
- cards: [...cards, ...cards],
349
- },
350
- render: (args) => ({
351
- components: { Carousel },
352
- setup() {
353
- return { args };
354
- },
355
- template: `
356
- <div class="tw-p-8">
357
- <Carousel
358
- :cards="args.cards"
359
- :options="{
360
- loop: true,
361
- centeredSlides: true,
362
- slidesPerView: 1.5,
363
- spaceBetween: 30,
364
- }"
365
- >
366
- <template #slide="{ slide }">
367
- <div class="tw-flex tw-flex-col tw-items-center tw-p-6 tw-bg-gradient-to-br tw-from-purple-100 tw-to-blue-100 tw-rounded-xl">
368
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-48 tw-object-contain tw-mb-4" />
369
- <span class="tw-text-center tw-text-lg tw-font-semibold">{{ slide.name }}</span>
370
- </div>
371
- </template>
372
- </Carousel>
373
- </div>
374
- `,
375
- }),
376
- parameters: {
377
- docs: {
378
- description: {
379
- story: 'Carousel with centered active slide and partial view of adjacent slides.',
380
- },
381
- },
382
- },
383
- };
384
-
385
- // Multiple carousels on same page
386
- export const MultipleCarousels = {
387
- render: () => ({
388
- components: { Carousel },
389
- setup() {
390
- return {
391
- cards,
392
- swiperOne: {
393
- options: {
394
- loop: true,
395
- navigation: {
396
- prevEl: '.carousel__button-prev--1',
397
- nextEl: '.carousel__button-next--1',
398
- },
399
- pagination: {
400
- el: '.pagination--1',
401
- },
402
- },
403
- navigationUniqueIndexer: '1',
404
- },
405
- swiperTwo: {
406
- options: {
407
- loop: true,
408
- navigation: {
409
- prevEl: '.carousel__button-prev--2',
410
- nextEl: '.carousel__button-next--2',
411
- },
412
- pagination: {
413
- el: '.pagination--2',
414
- },
415
- },
416
- navigationUniqueIndexer: '2',
417
- },
418
- };
419
- },
420
- template: `
421
- <div class="tw-p-8 tw-space-y-12">
422
- <div>
423
- <h3 class="tw-text-xl tw-font-bold tw-mb-4 tw-text-center">First Carousel</h3>
424
- <div class="tw-max-w-md tw-mx-auto">
425
- <Carousel
426
- :cards="cards"
427
- :show-bullets="true"
428
- :swiper-ref="swiperOne.navigationUniqueIndexer"
429
- :navigation-unique-indexer="swiperOne.navigationUniqueIndexer"
430
- :options="swiperOne.options"
431
- >
432
- <template #slide="{ slide }">
433
- <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-blue-50 tw-rounded-lg">
434
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-40 tw-object-contain tw-mb-2" />
435
- <span class="tw-text-center tw-font-medium">{{ slide.name }}</span>
436
- </div>
437
- </template>
438
- </Carousel>
439
- </div>
440
- </div>
441
-
442
- <div>
443
- <h3 class="tw-text-xl tw-font-bold tw-mb-4 tw-text-center">Second Carousel</h3>
444
- <div class="tw-max-w-md tw-mx-auto">
445
- <Carousel
446
- :cards="cards"
447
- :show-bullets="true"
448
- :swiper-ref="swiperTwo.navigationUniqueIndexer"
449
- :navigation-unique-indexer="swiperTwo.navigationUniqueIndexer"
450
- :options="swiperTwo.options"
451
- >
452
- <template #slide="{ slide }">
453
- <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-green-50 tw-rounded-lg">
454
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-40 tw-object-contain tw-mb-2" />
455
- <span class="tw-text-center tw-font-medium">{{ slide.name }}</span>
456
- </div>
457
- </template>
458
- </Carousel>
459
- </div>
460
- </div>
461
- </div>
462
- `,
463
- }),
464
- parameters: {
465
- docs: {
466
- description: {
467
- story:
468
- 'Example of multiple independent carousels on the same page. Each requires unique navigationUniqueIndexer.',
469
- },
470
- },
471
- },
472
- };
473
-
474
- // Responsive breakpoints demo
475
- export const ResponsiveBreakpoints = {
476
- args: {
477
- cards: [...cards, ...cards],
478
- },
479
- render: (args) => ({
480
- components: { Carousel },
481
- setup() {
482
- return { args };
483
- },
484
- template: `
485
- <div class="tw-p-8">
486
- <div class="tw-mb-4 tw-p-4 tw-bg-blue-50 tw-rounded-lg">
487
- <p class="tw-text-sm tw-font-semibold tw-mb-2">Responsive behavior:</p>
488
- <ul class="tw-text-sm tw-space-y-1">
489
- <li>• Mobile (< 640px): 1 slide</li>
490
- <li>• Tablet (640px - 1023px): 2 slides</li>
491
- <li>• Desktop (≥ 1024px): 4 slides</li>
492
- </ul>
493
- </div>
494
- <Carousel
495
- :cards="args.cards"
496
- :options="{
497
- loop: true,
498
- spaceBetween: 20,
499
- slidesPerView: 1,
500
- slidesPerGroup: 1,
501
- breakpoints: {
502
- 640: {
503
- slidesPerView: 2,
504
- slidesPerGroup: 2,
505
- },
506
- 1024: {
507
- slidesPerView: 4,
508
- slidesPerGroup: 4,
509
- },
510
- },
511
- }"
512
- >
513
- <template #slide="{ slide }">
514
- <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-white tw-border tw-border-gray-200 tw-rounded-lg">
515
- <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-32 tw-object-contain tw-mb-2" />
516
- <span class="tw-text-center tw-text-sm tw-font-medium">{{ slide.name }}</span>
517
- </div>
518
- </template>
519
- </Carousel>
520
- </div>
521
- `,
522
- }),
523
- parameters: {
524
- docs: {
525
- description: {
526
- story: 'Demonstrates responsive behavior with different numbers of slides at different screen sizes.',
527
- },
528
- },
529
- },
530
- };
1
+ import Icon from '../Icon/Icon.vue';
2
+ import { cards } from './Carousel.fixtures';
3
+ import Carousel from './Carousel.vue';
4
+
5
+ export default {
6
+ title: 'Components/Carousel',
7
+ component: Carousel,
8
+ tags: ['autodocs'],
9
+ argTypes: {
10
+ cards: {
11
+ control: 'object',
12
+ description: 'Array of card data to display in the carousel',
13
+ table: {
14
+ type: { summary: 'Array<Object>' },
15
+ defaultValue: { summary: '[]' },
16
+ },
17
+ },
18
+ showControls: {
19
+ control: 'boolean',
20
+ description: 'Show/hide navigation arrows',
21
+ table: {
22
+ type: { summary: 'boolean' },
23
+ defaultValue: { summary: 'true' },
24
+ },
25
+ },
26
+ showBullets: {
27
+ control: 'boolean',
28
+ description: 'Show/hide pagination bullets',
29
+ table: {
30
+ type: { summary: 'boolean' },
31
+ defaultValue: { summary: 'true' },
32
+ },
33
+ },
34
+ hideBulletsOnMobile: {
35
+ control: 'boolean',
36
+ description: 'Hide pagination bullets on mobile devices',
37
+ table: {
38
+ type: { summary: 'boolean' },
39
+ defaultValue: { summary: 'true' },
40
+ },
41
+ },
42
+ navCarousel: {
43
+ control: 'boolean',
44
+ description: 'Use alternative navigation styling',
45
+ table: {
46
+ type: { summary: 'boolean' },
47
+ defaultValue: { summary: 'false' },
48
+ },
49
+ },
50
+ disableRightClick: {
51
+ control: 'boolean',
52
+ description: 'Disable right-click context menu',
53
+ table: {
54
+ type: { summary: 'boolean' },
55
+ defaultValue: { summary: 'false' },
56
+ },
57
+ },
58
+ options: {
59
+ control: 'object',
60
+ description: 'Swiper options object for customization',
61
+ table: {
62
+ type: { summary: 'Object' },
63
+ defaultValue: { summary: '{}' },
64
+ },
65
+ },
66
+ },
67
+ parameters: {
68
+ docs: {
69
+ description: {
70
+ component:
71
+ 'A flexible carousel component built with Swiper.js. Supports multiple slides, custom navigation, pagination, and various display options.',
72
+ },
73
+ },
74
+ },
75
+ };
76
+
77
+ // Default story with interactive controls
78
+ export const Default = {
79
+ args: {
80
+ cards,
81
+ showControls: true,
82
+ showBullets: true,
83
+ hideBulletsOnMobile: false,
84
+ navCarousel: false,
85
+ options: {
86
+ loop: true,
87
+ spaceBetween: 20,
88
+ slidesPerView: 1,
89
+ breakpoints: {
90
+ 640: {
91
+ slidesPerView: 2,
92
+ slidesPerGroup: 2,
93
+ },
94
+ 1024: {
95
+ slidesPerView: 3,
96
+ slidesPerGroup: 3,
97
+ },
98
+ },
99
+ },
100
+ },
101
+ render: (args) => ({
102
+ components: { Carousel },
103
+ setup() {
104
+ return { args };
105
+ },
106
+ template: `
107
+ <div class="tw-p-8">
108
+ <Carousel
109
+ :cards="args.cards"
110
+ :show-controls="args.showControls"
111
+ :show-bullets="args.showBullets"
112
+ :hide-bullets-on-mobile="args.hideBulletsOnMobile"
113
+ :nav-carousel="args.navCarousel"
114
+ :options="args.options"
115
+ >
116
+ <template #slide="{ slide }">
117
+ <div class="tw-flex tw-flex-col tw-items-center tw-cursor-pointer tw-p-4 tw-bg-gray-50 tw-rounded-lg tw-h-full">
118
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-48 tw-object-contain tw-mb-4" />
119
+ <span class="tw-text-lg tw-font-semibold tw-text-center">{{ slide.name }}</span>
120
+ </div>
121
+ </template>
122
+ </Carousel>
123
+ </div>
124
+ `,
125
+ }),
126
+ };
127
+
128
+ // Single slide view
129
+ export const SingleSlide = {
130
+ args: {
131
+ cards,
132
+ showControls: true,
133
+ showBullets: true,
134
+ options: {
135
+ loop: false,
136
+ slidesPerView: 1,
137
+ slidesPerGroup: 1,
138
+ },
139
+ },
140
+ render: (args) => ({
141
+ components: { Carousel },
142
+ setup() {
143
+ return { args };
144
+ },
145
+ template: `
146
+ <div class="tw-p-8 tw-max-w-md tw-mx-auto">
147
+ <Carousel
148
+ :cards="args.cards"
149
+ :show-controls="args.showControls"
150
+ :show-bullets="args.showBullets"
151
+ :options="args.options"
152
+ >
153
+ <template #slide="{ slide }">
154
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-6 tw-bg-white tw-rounded-xl tw-shadow-lg">
155
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-64 tw-object-contain tw-mb-4" />
156
+ <h3 class="tw-text-xl tw-font-bold tw-text-center">{{ slide.name }}</h3>
157
+ <p class="tw-text-gray-600 tw-text-center tw-mt-2">Click to learn more</p>
158
+ </div>
159
+ </template>
160
+ </Carousel>
161
+ </div>
162
+ `,
163
+ }),
164
+ parameters: {
165
+ docs: {
166
+ description: {
167
+ story: 'Display one slide at a time with navigation controls.',
168
+ },
169
+ },
170
+ },
171
+ };
172
+
173
+ // Without navigation controls
174
+ export const WithoutControls = {
175
+ args: {
176
+ cards,
177
+ showControls: false,
178
+ showBullets: true,
179
+ options: {
180
+ loop: true,
181
+ autoplay: {
182
+ delay: 3000,
183
+ disableOnInteraction: false,
184
+ },
185
+ },
186
+ },
187
+ render: (args) => ({
188
+ components: { Carousel },
189
+ setup() {
190
+ return { args };
191
+ },
192
+ template: `
193
+ <div class="tw-p-8">
194
+ <Carousel
195
+ :cards="args.cards"
196
+ :show-controls="args.showControls"
197
+ :show-bullets="args.showBullets"
198
+ :options="args.options"
199
+ >
200
+ <template #slide="{ slide }">
201
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4">
202
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-40 tw-object-contain tw-mb-2" />
203
+ <span class="tw-text-center tw-font-medium">{{ slide.name }}</span>
204
+ </div>
205
+ </template>
206
+ </Carousel>
207
+ </div>
208
+ `,
209
+ }),
210
+ parameters: {
211
+ docs: {
212
+ description: {
213
+ story: 'Auto-playing carousel without navigation arrows. Uses only pagination bullets for navigation.',
214
+ },
215
+ },
216
+ },
217
+ };
218
+
219
+ // Without bullets
220
+ export const WithoutBullets = {
221
+ args: {
222
+ cards,
223
+ showControls: true,
224
+ showBullets: false,
225
+ options: {
226
+ loop: true,
227
+ slidesPerView: 2,
228
+ spaceBetween: 20,
229
+ },
230
+ },
231
+ render: (args) => ({
232
+ components: { Carousel },
233
+ setup() {
234
+ return { args };
235
+ },
236
+ template: `
237
+ <div class="tw-p-8">
238
+ <Carousel
239
+ :cards="args.cards"
240
+ :show-controls="args.showControls"
241
+ :show-bullets="args.showBullets"
242
+ :options="args.options"
243
+ >
244
+ <template #slide="{ slide }">
245
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-gray-100 tw-rounded">
246
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-32 tw-object-contain tw-mb-2" />
247
+ <span class="tw-text-center">{{ slide.name }}</span>
248
+ </div>
249
+ </template>
250
+ </Carousel>
251
+ </div>
252
+ `,
253
+ }),
254
+ parameters: {
255
+ docs: {
256
+ description: {
257
+ story: 'Carousel with arrow controls only, no pagination bullets.',
258
+ },
259
+ },
260
+ },
261
+ };
262
+
263
+ // Custom arrow styling
264
+ export const CustomArrows = {
265
+ args: {
266
+ cards,
267
+ },
268
+ render: (args) => ({
269
+ components: { Carousel, Icon },
270
+ setup() {
271
+ return { args };
272
+ },
273
+ template: `
274
+ <div class="tw-p-8">
275
+ <Carousel :cards="args.cards" :options="{ loop: true }">
276
+ <template #arrow-left>
277
+ <div class="tw-bg-blue-500 tw-text-white tw-rounded-full tw-p-3 tw-cursor-pointer hover:tw-bg-blue-600 tw-transition tw-shadow-lg">
278
+ <Icon classes="tw-transform tw-rotate-180" name="chevron-right" size="lg" color="white" />
279
+ </div>
280
+ </template>
281
+ <template #slide="{ slide }">
282
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4">
283
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-40 tw-object-contain tw-mb-2" />
284
+ <span class="tw-text-center tw-font-medium">{{ slide.name }}</span>
285
+ </div>
286
+ </template>
287
+ <template #arrow-right>
288
+ <div class="tw-bg-blue-500 tw-text-white tw-rounded-full tw-p-3 tw-cursor-pointer hover:tw-bg-blue-600 tw-transition tw-shadow-lg">
289
+ <Icon name="chevron-right" size="lg" color="white" />
290
+ </div>
291
+ </template>
292
+ </Carousel>
293
+ </div>
294
+ `,
295
+ }),
296
+ parameters: {
297
+ docs: {
298
+ description: {
299
+ story: 'Carousel with custom-styled navigation arrows using the arrow slots.',
300
+ },
301
+ },
302
+ },
303
+ };
304
+
305
+ // Free mode (continuous scroll)
306
+ export const FreeMode = {
307
+ args: {
308
+ cards: [...cards, ...cards, ...cards],
309
+ },
310
+ render: (args) => ({
311
+ components: { Carousel },
312
+ setup() {
313
+ return { args };
314
+ },
315
+ template: `
316
+ <div class="tw-p-8">
317
+ <Carousel
318
+ :cards="args.cards"
319
+ :options="{
320
+ loop: false,
321
+ spaceBetween: 20,
322
+ freeMode: true,
323
+ slidesPerView: 'auto',
324
+ }"
325
+ >
326
+ <template #slide="{ slide }">
327
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-white tw-rounded-lg tw-shadow" style="width: 200px;">
328
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-32 tw-object-contain tw-mb-2" />
329
+ <span class="tw-text-center tw-text-sm tw-font-medium">{{ slide.name }}</span>
330
+ </div>
331
+ </template>
332
+ </Carousel>
333
+ </div>
334
+ `,
335
+ }),
336
+ parameters: {
337
+ docs: {
338
+ description: {
339
+ story: 'Free scrolling mode where users can drag freely without snapping to slides.',
340
+ },
341
+ },
342
+ },
343
+ };
344
+
345
+ // Centered slides
346
+ export const CenteredSlides = {
347
+ args: {
348
+ cards: [...cards, ...cards],
349
+ },
350
+ render: (args) => ({
351
+ components: { Carousel },
352
+ setup() {
353
+ return { args };
354
+ },
355
+ template: `
356
+ <div class="tw-p-8">
357
+ <Carousel
358
+ :cards="args.cards"
359
+ :options="{
360
+ loop: true,
361
+ centeredSlides: true,
362
+ slidesPerView: 1.5,
363
+ spaceBetween: 30,
364
+ }"
365
+ >
366
+ <template #slide="{ slide }">
367
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-6 tw-bg-gradient-to-br tw-from-purple-100 tw-to-blue-100 tw-rounded-xl">
368
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-48 tw-object-contain tw-mb-4" />
369
+ <span class="tw-text-center tw-text-lg tw-font-semibold">{{ slide.name }}</span>
370
+ </div>
371
+ </template>
372
+ </Carousel>
373
+ </div>
374
+ `,
375
+ }),
376
+ parameters: {
377
+ docs: {
378
+ description: {
379
+ story: 'Carousel with centered active slide and partial view of adjacent slides.',
380
+ },
381
+ },
382
+ },
383
+ };
384
+
385
+ // Multiple carousels on same page
386
+ export const MultipleCarousels = {
387
+ render: () => ({
388
+ components: { Carousel },
389
+ setup() {
390
+ return {
391
+ cards,
392
+ swiperOne: {
393
+ options: {
394
+ loop: true,
395
+ navigation: {
396
+ prevEl: '.carousel__button-prev--1',
397
+ nextEl: '.carousel__button-next--1',
398
+ },
399
+ pagination: {
400
+ el: '.pagination--1',
401
+ },
402
+ },
403
+ navigationUniqueIndexer: '1',
404
+ },
405
+ swiperTwo: {
406
+ options: {
407
+ loop: true,
408
+ navigation: {
409
+ prevEl: '.carousel__button-prev--2',
410
+ nextEl: '.carousel__button-next--2',
411
+ },
412
+ pagination: {
413
+ el: '.pagination--2',
414
+ },
415
+ },
416
+ navigationUniqueIndexer: '2',
417
+ },
418
+ };
419
+ },
420
+ template: `
421
+ <div class="tw-p-8 tw-space-y-12">
422
+ <div>
423
+ <h3 class="tw-text-xl tw-font-bold tw-mb-4 tw-text-center">First Carousel</h3>
424
+ <div class="tw-max-w-md tw-mx-auto">
425
+ <Carousel
426
+ :cards="cards"
427
+ :show-bullets="true"
428
+ :swiper-ref="swiperOne.navigationUniqueIndexer"
429
+ :navigation-unique-indexer="swiperOne.navigationUniqueIndexer"
430
+ :options="swiperOne.options"
431
+ >
432
+ <template #slide="{ slide }">
433
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-blue-50 tw-rounded-lg">
434
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-40 tw-object-contain tw-mb-2" />
435
+ <span class="tw-text-center tw-font-medium">{{ slide.name }}</span>
436
+ </div>
437
+ </template>
438
+ </Carousel>
439
+ </div>
440
+ </div>
441
+
442
+ <div>
443
+ <h3 class="tw-text-xl tw-font-bold tw-mb-4 tw-text-center">Second Carousel</h3>
444
+ <div class="tw-max-w-md tw-mx-auto">
445
+ <Carousel
446
+ :cards="cards"
447
+ :show-bullets="true"
448
+ :swiper-ref="swiperTwo.navigationUniqueIndexer"
449
+ :navigation-unique-indexer="swiperTwo.navigationUniqueIndexer"
450
+ :options="swiperTwo.options"
451
+ >
452
+ <template #slide="{ slide }">
453
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-green-50 tw-rounded-lg">
454
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-40 tw-object-contain tw-mb-2" />
455
+ <span class="tw-text-center tw-font-medium">{{ slide.name }}</span>
456
+ </div>
457
+ </template>
458
+ </Carousel>
459
+ </div>
460
+ </div>
461
+ </div>
462
+ `,
463
+ }),
464
+ parameters: {
465
+ docs: {
466
+ description: {
467
+ story:
468
+ 'Example of multiple independent carousels on the same page. Each requires unique navigationUniqueIndexer.',
469
+ },
470
+ },
471
+ },
472
+ };
473
+
474
+ // Responsive breakpoints demo
475
+ export const ResponsiveBreakpoints = {
476
+ args: {
477
+ cards: [...cards, ...cards],
478
+ },
479
+ render: (args) => ({
480
+ components: { Carousel },
481
+ setup() {
482
+ return { args };
483
+ },
484
+ template: `
485
+ <div class="tw-p-8">
486
+ <div class="tw-mb-4 tw-p-4 tw-bg-blue-50 tw-rounded-lg">
487
+ <p class="tw-text-sm tw-font-semibold tw-mb-2">Responsive behavior:</p>
488
+ <ul class="tw-text-sm tw-space-y-1">
489
+ <li>• Mobile (< 640px): 1 slide</li>
490
+ <li>• Tablet (640px - 1023px): 2 slides</li>
491
+ <li>• Desktop (≥ 1024px): 4 slides</li>
492
+ </ul>
493
+ </div>
494
+ <Carousel
495
+ :cards="args.cards"
496
+ :options="{
497
+ loop: true,
498
+ spaceBetween: 20,
499
+ slidesPerView: 1,
500
+ slidesPerGroup: 1,
501
+ breakpoints: {
502
+ 640: {
503
+ slidesPerView: 2,
504
+ slidesPerGroup: 2,
505
+ },
506
+ 1024: {
507
+ slidesPerView: 4,
508
+ slidesPerGroup: 4,
509
+ },
510
+ },
511
+ }"
512
+ >
513
+ <template #slide="{ slide }">
514
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-bg-white tw-border tw-border-gray-200 tw-rounded-lg">
515
+ <img :src="slide.imageUrl" :alt="slide.name" class="tw-w-full tw-h-32 tw-object-contain tw-mb-2" />
516
+ <span class="tw-text-center tw-text-sm tw-font-medium">{{ slide.name }}</span>
517
+ </div>
518
+ </template>
519
+ </Carousel>
520
+ </div>
521
+ `,
522
+ }),
523
+ parameters: {
524
+ docs: {
525
+ description: {
526
+ story: 'Demonstrates responsive behavior with different numbers of slides at different screen sizes.',
527
+ },
528
+ },
529
+ },
530
+ };