@designcrowd/fe-shared-lib 1.6.10-voiceText-1 → 1.7.0-eng-4159

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 (878) hide show
  1. package/.eslintrc.js +36 -36
  2. package/.github/workflows/auto-merge.yml +52 -52
  3. package/.github/workflows/claude.yml +72 -72
  4. package/.prettierrc.js +7 -7
  5. package/.storybook/main.ts +36 -36
  6. package/.storybook/preview-head-master.html +4 -4
  7. package/.storybook/preview-head-publish-master.html +4 -4
  8. package/.storybook/preview-head-publish.html +4 -4
  9. package/.storybook/preview-head.html +4 -4
  10. package/.storybook/preview.js +53 -53
  11. package/CLAUDE.md +94 -129
  12. package/Dockerfile +43 -43
  13. package/README.md +103 -103
  14. package/buildspec.yml +47 -47
  15. package/dist/css/tailwind-brandCrowd.css +523 -493
  16. package/dist/css/tailwind-brandPage.css +435 -413
  17. package/dist/css/tailwind-crazyDomains.css +523 -493
  18. package/dist/css/tailwind-designCom.css +523 -493
  19. package/dist/css/tailwind-designCrowd.css +523 -493
  20. package/docs/plans/DY-957-plan-phase-2-fe-shared-lib.md +382 -382
  21. package/index.cjs +16 -16
  22. package/index.js +62 -64
  23. package/nodemon.translation.json +6 -6
  24. package/package.json +115 -117
  25. package/postcss.config.js +5 -5
  26. package/public/css/tailwind-brandCrowd.css +499 -565
  27. package/public/css/tailwind-brandPage.css +417 -451
  28. package/public/css/tailwind-crazyDomains.css +499 -565
  29. package/public/css/tailwind-designCom.css +499 -565
  30. package/public/css/tailwind-designCrowd.css +499 -565
  31. package/src/atoms/components/AiPoweredLoader/AiPoweredLoader.stories.js +90 -90
  32. package/src/atoms/components/AiPoweredLoader/AiPoweredLoader.vue +120 -120
  33. package/src/atoms/components/Button/Button.vue +341 -341
  34. package/src/atoms/components/Button/ButtonVariant.mixin.vue +126 -126
  35. package/src/atoms/components/Button/Buttons.stories.js +828 -828
  36. package/src/atoms/components/Button/ButtonsCrazyDomains.stories.js +117 -117
  37. package/src/atoms/components/Button/variants/ButtonAi.vue +63 -63
  38. package/src/atoms/components/Button/variants/ButtonDarkModePill.vue +52 -52
  39. package/src/atoms/components/Button/variants/ButtonFlat.vue +65 -65
  40. package/src/atoms/components/Button/variants/ButtonGray.vue +64 -64
  41. package/src/atoms/components/Button/variants/ButtonInfo.vue +51 -51
  42. package/src/atoms/components/Button/variants/ButtonInfoFilled.vue +63 -63
  43. package/src/atoms/components/Button/variants/ButtonNoBorder.vue +65 -65
  44. package/src/atoms/components/Button/variants/ButtonOutline.vue +62 -62
  45. package/src/atoms/components/Button/variants/ButtonOutlineNoHover.vue +62 -62
  46. package/src/atoms/components/Button/variants/ButtonOutlinePrimary.vue +53 -53
  47. package/src/atoms/components/Button/variants/ButtonOutlineSuccess.vue +54 -54
  48. package/src/atoms/components/Button/variants/ButtonPill.vue +52 -52
  49. package/src/atoms/components/Button/variants/ButtonPrimary.vue +69 -69
  50. package/src/atoms/components/Button/variants/ButtonPrimaryWithIcon.vue +68 -68
  51. package/src/atoms/components/Button/variants/ButtonSecondary.vue +51 -51
  52. package/src/atoms/components/Button/variants/ButtonSuccess.vue +55 -55
  53. package/src/atoms/components/Button/variants/ButtonWarning.vue +65 -65
  54. package/src/atoms/components/Button/variants/crazy-domains/ButtonCrazyDomainsOutline.vue +58 -58
  55. package/src/atoms/components/Button/variants/crazy-domains/ButtonCrazyDomainsPrimary.vue +38 -38
  56. package/src/atoms/components/ButtonGroup/ButtonGroup.stories.js +575 -575
  57. package/src/atoms/components/ButtonGroup/ButtonGroup.vue +200 -200
  58. package/src/atoms/components/Carousel/Carousel.fixtures.js +53 -53
  59. package/src/atoms/components/Carousel/Carousel.vue +363 -363
  60. package/src/atoms/components/Carousel/carousel.stories.js +530 -530
  61. package/src/atoms/components/Checkbox/Checkbox.mixin.js +57 -57
  62. package/src/atoms/components/Checkbox/Checkbox.stories.js +340 -340
  63. package/src/atoms/components/Checkbox/Checkbox.vue +84 -84
  64. package/src/atoms/components/Checktile/Checktile.stories.js +79 -79
  65. package/src/atoms/components/Checktile/Checktile.vue +73 -73
  66. package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.mixin.js +38 -38
  67. package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.stories.js +53 -53
  68. package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.vue +33 -33
  69. package/src/atoms/components/ColorPicker/ColorPicker.stories.js +89 -89
  70. package/src/atoms/components/ColorPicker/ColorPicker.vue +95 -95
  71. package/src/atoms/components/CopyToClipboardText/CopyToClipboardText.stories.js +41 -41
  72. package/src/atoms/components/CopyToClipboardText/CopyToClipboardText.vue +71 -71
  73. package/src/atoms/components/Dropdown/Dropdown.stories.js +140 -140
  74. package/src/atoms/components/Dropdown/Dropdown.vue +123 -123
  75. package/src/atoms/components/Dropdown/DropdownItem.vue +33 -33
  76. package/src/atoms/components/FormControl/FormControl.mixin.js +136 -136
  77. package/src/atoms/components/HelloBar/HelloBar.stories.js +195 -195
  78. package/src/atoms/components/HelloBar/HelloBar.vue +156 -156
  79. package/src/atoms/components/Icon/Icon.stories.js +410 -409
  80. package/src/atoms/components/Icon/Icon.vue +932 -932
  81. package/src/atoms/components/Icon/icons/add-page.vue +6 -6
  82. package/src/atoms/components/Icon/icons/ai.vue +6 -6
  83. package/src/atoms/components/Icon/icons/annotate-heart.vue +7 -7
  84. package/src/atoms/components/Icon/icons/arrow-down.vue +6 -6
  85. package/src/atoms/components/Icon/icons/arrow-left.vue +7 -7
  86. package/src/atoms/components/Icon/icons/arrow-right.vue +7 -7
  87. package/src/atoms/components/Icon/icons/arrow-top-right.vue +6 -6
  88. package/src/atoms/components/Icon/icons/arrow-up-underline.vue +7 -7
  89. package/src/atoms/components/Icon/icons/arrow-up.vue +7 -7
  90. package/src/atoms/components/Icon/icons/attach.vue +6 -6
  91. package/src/atoms/components/Icon/icons/auth-facebook-white.vue +17 -17
  92. package/src/atoms/components/Icon/icons/auth-facebook.vue +24 -24
  93. package/src/atoms/components/Icon/icons/auth-google.vue +32 -32
  94. package/src/atoms/components/Icon/icons/award.vue +7 -7
  95. package/src/atoms/components/Icon/icons/background.vue +7 -7
  96. package/src/atoms/components/Icon/icons/badge.vue +7 -7
  97. package/src/atoms/components/Icon/icons/banner-centered.vue +6 -6
  98. package/src/atoms/components/Icon/icons/banner-left.vue +6 -6
  99. package/src/atoms/components/Icon/icons/banner.vue +7 -7
  100. package/src/atoms/components/Icon/icons/bc-mast.vue +7 -7
  101. package/src/atoms/components/Icon/icons/bezier-curve-outline.vue +7 -7
  102. package/src/atoms/components/Icon/icons/bezier-curve.vue +7 -7
  103. package/src/atoms/components/Icon/icons/briefcase.vue +7 -7
  104. package/src/atoms/components/Icon/icons/browser.vue +7 -7
  105. package/src/atoms/components/Icon/icons/brush.vue +6 -6
  106. package/src/atoms/components/Icon/icons/business-card-filled.vue +5 -5
  107. package/src/atoms/components/Icon/icons/business.vue +6 -6
  108. package/src/atoms/components/Icon/icons/calculator.vue +3 -3
  109. package/src/atoms/components/Icon/icons/calendar.vue +5 -5
  110. package/src/atoms/components/Icon/icons/callout-error.vue +6 -6
  111. package/src/atoms/components/Icon/icons/callout-info.vue +6 -6
  112. package/src/atoms/components/Icon/icons/callout-success.vue +8 -8
  113. package/src/atoms/components/Icon/icons/callout-warning.vue +6 -6
  114. package/src/atoms/components/Icon/icons/cap.vue +22 -22
  115. package/src/atoms/components/Icon/icons/card-vertical.vue +7 -7
  116. package/src/atoms/components/Icon/icons/card.vue +9 -9
  117. package/src/atoms/components/Icon/icons/cart-empty.vue +9 -9
  118. package/src/atoms/components/Icon/icons/check-thin.vue +7 -7
  119. package/src/atoms/components/Icon/icons/check.vue +3 -3
  120. package/src/atoms/components/Icon/icons/chevron-down.vue +7 -7
  121. package/src/atoms/components/Icon/icons/chevron-left.vue +7 -7
  122. package/src/atoms/components/Icon/icons/chevron-right-wide.vue +3 -3
  123. package/src/atoms/components/Icon/icons/chevron-right.vue +3 -3
  124. package/src/atoms/components/Icon/icons/chevron-up.vue +7 -7
  125. package/src/atoms/components/Icon/icons/clipboard-check.vue +6 -6
  126. package/src/atoms/components/Icon/icons/close.vue +6 -6
  127. package/src/atoms/components/Icon/icons/community.vue +5 -5
  128. package/src/atoms/components/Icon/icons/contact-message.vue +10 -10
  129. package/src/atoms/components/Icon/icons/content.vue +7 -7
  130. package/src/atoms/components/Icon/icons/copy.vue +10 -10
  131. package/src/atoms/components/Icon/icons/crazy-domains/filter.vue +6 -6
  132. package/src/atoms/components/Icon/icons/crazy-domains/globe.vue +6 -6
  133. package/src/atoms/components/Icon/icons/crazy-domains/home.vue +6 -6
  134. package/src/atoms/components/Icon/icons/crazy-domains/social-facebook.vue +6 -6
  135. package/src/atoms/components/Icon/icons/crazy-domains/social-google.vue +6 -6
  136. package/src/atoms/components/Icon/icons/crazy-domains/social-instagram.vue +6 -6
  137. package/src/atoms/components/Icon/icons/crazy-domains/social-twitter.vue +6 -6
  138. package/src/atoms/components/Icon/icons/crazy-domains/social-youtube.vue +6 -6
  139. package/src/atoms/components/Icon/icons/crop.vue +6 -6
  140. package/src/atoms/components/Icon/icons/crown-alt.vue +5 -5
  141. package/src/atoms/components/Icon/icons/crown.vue +6 -6
  142. package/src/atoms/components/Icon/icons/delete.vue +8 -8
  143. package/src/atoms/components/Icon/icons/designs.vue +6 -6
  144. package/src/atoms/components/Icon/icons/desktop.vue +7 -7
  145. package/src/atoms/components/Icon/icons/digital-business-card-filled.vue +8 -8
  146. package/src/atoms/components/Icon/icons/donate.vue +6 -6
  147. package/src/atoms/components/Icon/icons/download.vue +5 -5
  148. package/src/atoms/components/Icon/icons/duplicate.vue +6 -6
  149. package/src/atoms/components/Icon/icons/edit-line.vue +10 -10
  150. package/src/atoms/components/Icon/icons/edit.vue +6 -6
  151. package/src/atoms/components/Icon/icons/ellipsis.vue +6 -6
  152. package/src/atoms/components/Icon/icons/envelope-email.vue +9 -9
  153. package/src/atoms/components/Icon/icons/error.vue +8 -8
  154. package/src/atoms/components/Icon/icons/eye-crossed.vue +7 -7
  155. package/src/atoms/components/Icon/icons/eye-open.vue +11 -11
  156. package/src/atoms/components/Icon/icons/fees.vue +6 -6
  157. package/src/atoms/components/Icon/icons/file-box.vue +3 -3
  158. package/src/atoms/components/Icon/icons/file-empty.vue +7 -7
  159. package/src/atoms/components/Icon/icons/file.vue +7 -7
  160. package/src/atoms/components/Icon/icons/filter.vue +7 -7
  161. package/src/atoms/components/Icon/icons/filters.vue +6 -6
  162. package/src/atoms/components/Icon/icons/flag.vue +6 -6
  163. package/src/atoms/components/Icon/icons/flip-horizontal.vue +7 -7
  164. package/src/atoms/components/Icon/icons/flip-vertical.vue +7 -7
  165. package/src/atoms/components/Icon/icons/folder.vue +6 -6
  166. package/src/atoms/components/Icon/icons/font.vue +7 -7
  167. package/src/atoms/components/Icon/icons/footer-centered.vue +7 -7
  168. package/src/atoms/components/Icon/icons/footer-left.vue +7 -7
  169. package/src/atoms/components/Icon/icons/form-message.vue +6 -6
  170. package/src/atoms/components/Icon/icons/form.vue +5 -5
  171. package/src/atoms/components/Icon/icons/fullscreen-exit.vue +5 -5
  172. package/src/atoms/components/Icon/icons/fullscreen.vue +5 -5
  173. package/src/atoms/components/Icon/icons/globe.vue +6 -6
  174. package/src/atoms/components/Icon/icons/godaddy/logo.vue +5 -5
  175. package/src/atoms/components/Icon/icons/group.vue +6 -6
  176. package/src/atoms/components/Icon/icons/hamburger.vue +7 -7
  177. package/src/atoms/components/Icon/icons/headphones.vue +7 -7
  178. package/src/atoms/components/Icon/icons/history.vue +12 -12
  179. package/src/atoms/components/Icon/icons/home-outline.vue +6 -6
  180. package/src/atoms/components/Icon/icons/home.vue +7 -7
  181. package/src/atoms/components/Icon/icons/icon-style-circle-bg.vue +22 -22
  182. package/src/atoms/components/Icon/icons/icon-style-no-bg.vue +16 -16
  183. package/src/atoms/components/Icon/icons/icon-style-square-bg.vue +22 -22
  184. package/src/atoms/components/Icon/icons/image-gallery-carousel.vue +7 -7
  185. package/src/atoms/components/Icon/icons/image-gallery-grid.vue +7 -7
  186. package/src/atoms/components/Icon/icons/image-gallery-masonry.vue +6 -6
  187. package/src/atoms/components/Icon/icons/image.vue +7 -7
  188. package/src/atoms/components/Icon/icons/images-gallery.vue +5 -5
  189. package/src/atoms/components/Icon/icons/images.vue +7 -7
  190. package/src/atoms/components/Icon/icons/info.vue +9 -9
  191. package/src/atoms/components/Icon/icons/jobs.vue +8 -8
  192. package/src/atoms/components/Icon/icons/layer-bring-front.vue +6 -6
  193. package/src/atoms/components/Icon/icons/layer-send-back.vue +6 -6
  194. package/src/atoms/components/Icon/icons/layer.vue +6 -6
  195. package/src/atoms/components/Icon/icons/layout/display-style-about-1.vue +20 -20
  196. package/src/atoms/components/Icon/icons/layout/display-style-about-2.vue +20 -20
  197. package/src/atoms/components/Icon/icons/layout/display-style-about-3.vue +20 -20
  198. package/src/atoms/components/Icon/icons/layout/display-style-about-4.vue +32 -32
  199. package/src/atoms/components/Icon/icons/layout/display-style-about-5.vue +27 -27
  200. package/src/atoms/components/Icon/icons/layout/display-style-about-6.vue +27 -27
  201. package/src/atoms/components/Icon/icons/layout/display-style-banner-1.vue +20 -20
  202. package/src/atoms/components/Icon/icons/layout/display-style-banner-2.vue +20 -20
  203. package/src/atoms/components/Icon/icons/layout/display-style-banner-3.vue +20 -20
  204. package/src/atoms/components/Icon/icons/layout/display-style-banner-4.vue +20 -20
  205. package/src/atoms/components/Icon/icons/layout/display-style-banner-5.vue +20 -20
  206. package/src/atoms/components/Icon/icons/layout/display-style-banner-6.vue +27 -27
  207. package/src/atoms/components/Icon/icons/layout/display-style-banner-7.vue +27 -27
  208. package/src/atoms/components/Icon/icons/layout/display-style-banner-8.vue +20 -20
  209. package/src/atoms/components/Icon/icons/layout/display-style-banner-9.vue +20 -20
  210. package/src/atoms/components/Icon/icons/layout/display-style-contact-1.vue +24 -24
  211. package/src/atoms/components/Icon/icons/layout/display-style-contact-2.vue +24 -24
  212. package/src/atoms/components/Icon/icons/layout/display-style-contact-4.vue +24 -24
  213. package/src/atoms/components/Icon/icons/layout/display-style-contact-5.vue +39 -39
  214. package/src/atoms/components/Icon/icons/layout/display-style-contact-6.vue +39 -39
  215. package/src/atoms/components/Icon/icons/layout/footer/display-style-1.vue +7 -7
  216. package/src/atoms/components/Icon/icons/layout/footer/display-style-2.vue +16 -16
  217. package/src/atoms/components/Icon/icons/layout/header/desktop-hamburger-display-style-1.vue +17 -17
  218. package/src/atoms/components/Icon/icons/layout/header/desktop-hamburger-display-style-2.vue +17 -17
  219. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-1.vue +17 -17
  220. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-2.vue +17 -17
  221. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-3.vue +13 -13
  222. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-4.vue +13 -13
  223. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-5.vue +17 -17
  224. package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-6.vue +17 -17
  225. package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-1.vue +16 -16
  226. package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-2.vue +16 -16
  227. package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-3.vue +16 -16
  228. package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-1.vue +17 -17
  229. package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-2.vue +17 -17
  230. package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-3.vue +17 -17
  231. package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-4.vue +21 -21
  232. package/src/atoms/components/Icon/icons/layout/header/mobile-tab-display-style-1.vue +17 -17
  233. package/src/atoms/components/Icon/icons/layout/header/mobile-tab-display-style-2.vue +17 -17
  234. package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-1.vue +16 -16
  235. package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-2.vue +16 -16
  236. package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-3.vue +16 -16
  237. package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-normal-text-center-normal.vue +7 -7
  238. package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-normal-text-center-small.vue +7 -7
  239. package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-small-text-center-normal.vue +7 -7
  240. package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-bottom.vue +11 -11
  241. package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-circle.vue +10 -10
  242. package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-top.vue +11 -11
  243. package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-center-normal.vue +7 -7
  244. package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-justify-normal.vue +7 -7
  245. package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-left-normal.vue +7 -7
  246. package/src/atoms/components/Icon/icons/layout/layout-icon-left-small-text-left-normal.vue +7 -7
  247. package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-center-normal.vue +7 -7
  248. package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-justify-normal.vue +7 -7
  249. package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-right-normal.vue +7 -7
  250. package/src/atoms/components/Icon/icons/layout/layout-icon-right-small-text-right-normal.vue +7 -7
  251. package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-center-normal.vue +7 -7
  252. package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-center-small.vue +7 -7
  253. package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-justify-normal.vue +7 -7
  254. package/src/atoms/components/Icon/icons/layout/layout-icon-top-small-text-center-normal.vue +7 -7
  255. package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-1.vue +16 -16
  256. package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-2.vue +10 -10
  257. package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-3.vue +10 -10
  258. package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-4.vue +23 -23
  259. package/src/atoms/components/Icon/icons/layout/nav/tab/display-style-1.vue +16 -16
  260. package/src/atoms/components/Icon/icons/layout/nav/tab/display-style-2.vue +7 -7
  261. package/src/atoms/components/Icon/icons/letterhead-filled.vue +5 -5
  262. package/src/atoms/components/Icon/icons/lightning.vue +7 -7
  263. package/src/atoms/components/Icon/icons/link-in-bio-filled.vue +8 -8
  264. package/src/atoms/components/Icon/icons/link.vue +6 -6
  265. package/src/atoms/components/Icon/icons/location.vue +6 -6
  266. package/src/atoms/components/Icon/icons/lock.vue +6 -6
  267. package/src/atoms/components/Icon/icons/logo.vue +7 -7
  268. package/src/atoms/components/Icon/icons/mac-command.vue +7 -7
  269. package/src/atoms/components/Icon/icons/maker/align-center.vue +7 -7
  270. package/src/atoms/components/Icon/icons/maker/align-justify.vue +7 -7
  271. package/src/atoms/components/Icon/icons/maker/align-left.vue +7 -7
  272. package/src/atoms/components/Icon/icons/maker/align-right.vue +7 -7
  273. package/src/atoms/components/Icon/icons/maker/animate.vue +7 -7
  274. package/src/atoms/components/Icon/icons/maker/bold.vue +7 -7
  275. package/src/atoms/components/Icon/icons/maker/custom-landscape.vue +5 -5
  276. package/src/atoms/components/Icon/icons/maker/email-symbol.vue +5 -5
  277. package/src/atoms/components/Icon/icons/maker/email.vue +5 -5
  278. package/src/atoms/components/Icon/icons/maker/eraser.vue +5 -5
  279. package/src/atoms/components/Icon/icons/maker/etsy.vue +5 -5
  280. package/src/atoms/components/Icon/icons/maker/facebook.vue +5 -5
  281. package/src/atoms/components/Icon/icons/maker/favicon.vue +7 -7
  282. package/src/atoms/components/Icon/icons/maker/flyer.vue +7 -7
  283. package/src/atoms/components/Icon/icons/maker/gift-certificate.vue +5 -5
  284. package/src/atoms/components/Icon/icons/maker/globe.vue +5 -5
  285. package/src/atoms/components/Icon/icons/maker/image.vue +7 -7
  286. package/src/atoms/components/Icon/icons/maker/instagram.vue +7 -7
  287. package/src/atoms/components/Icon/icons/maker/invitation.vue +5 -5
  288. package/src/atoms/components/Icon/icons/maker/invoice.vue +5 -5
  289. package/src/atoms/components/Icon/icons/maker/italic.vue +7 -7
  290. package/src/atoms/components/Icon/icons/maker/link.vue +7 -7
  291. package/src/atoms/components/Icon/icons/maker/linkedin.vue +7 -7
  292. package/src/atoms/components/Icon/icons/maker/menu.vue +5 -5
  293. package/src/atoms/components/Icon/icons/maker/pause.vue +5 -5
  294. package/src/atoms/components/Icon/icons/maker/phone.vue +5 -5
  295. package/src/atoms/components/Icon/icons/maker/pinterest.vue +5 -5
  296. package/src/atoms/components/Icon/icons/maker/play.vue +5 -5
  297. package/src/atoms/components/Icon/icons/maker/postcard.vue +5 -5
  298. package/src/atoms/components/Icon/icons/maker/poster.vue +7 -7
  299. package/src/atoms/components/Icon/icons/maker/profile.vue +5 -5
  300. package/src/atoms/components/Icon/icons/maker/qrcode.vue +5 -5
  301. package/src/atoms/components/Icon/icons/maker/snapchat.vue +5 -5
  302. package/src/atoms/components/Icon/icons/maker/soundcloud.vue +7 -7
  303. package/src/atoms/components/Icon/icons/maker/spacing.vue +18 -18
  304. package/src/atoms/components/Icon/icons/maker/strikethrough.vue +7 -7
  305. package/src/atoms/components/Icon/icons/maker/t-shirt.vue +32 -32
  306. package/src/atoms/components/Icon/icons/maker/text-background-color.vue +12 -12
  307. package/src/atoms/components/Icon/icons/maker/text-color.vue +14 -14
  308. package/src/atoms/components/Icon/icons/maker/text.vue +7 -7
  309. package/src/atoms/components/Icon/icons/maker/thankyou-card.vue +5 -5
  310. package/src/atoms/components/Icon/icons/maker/tiktok.vue +5 -5
  311. package/src/atoms/components/Icon/icons/maker/tumblr.vue +5 -5
  312. package/src/atoms/components/Icon/icons/maker/twitch.vue +7 -7
  313. package/src/atoms/components/Icon/icons/maker/twitter.vue +5 -5
  314. package/src/atoms/components/Icon/icons/maker/underline.vue +7 -7
  315. package/src/atoms/components/Icon/icons/maker/uppercase.vue +14 -14
  316. package/src/atoms/components/Icon/icons/maker/video.vue +5 -5
  317. package/src/atoms/components/Icon/icons/maker/whatsapp.vue +7 -7
  318. package/src/atoms/components/Icon/icons/maker/youtube.vue +5 -5
  319. package/src/atoms/components/Icon/icons/maker/zoom.vue +5 -5
  320. package/src/atoms/components/Icon/icons/map.vue +6 -6
  321. package/src/atoms/components/Icon/icons/media.vue +3 -3
  322. package/src/atoms/components/Icon/icons/message.vue +6 -6
  323. package/src/atoms/components/Icon/icons/minus-circle-light.vue +7 -7
  324. package/src/atoms/components/Icon/icons/minus.vue +3 -3
  325. package/src/atoms/components/Icon/icons/mobile.vue +5 -5
  326. package/src/atoms/components/Icon/icons/mug.vue +29 -29
  327. package/src/atoms/components/Icon/icons/opacity.vue +6 -6
  328. package/src/atoms/components/Icon/icons/other.vue +7 -7
  329. package/src/atoms/components/Icon/icons/page-blank.vue +6 -6
  330. package/src/atoms/components/Icon/icons/page-buttons.vue +8 -8
  331. package/src/atoms/components/Icon/icons/page-hamburger.vue +9 -9
  332. package/src/atoms/components/Icon/icons/page-tabs.vue +9 -9
  333. package/src/atoms/components/Icon/icons/pages.vue +6 -6
  334. package/src/atoms/components/Icon/icons/palette-outline.vue +7 -7
  335. package/src/atoms/components/Icon/icons/palette.vue +6 -6
  336. package/src/atoms/components/Icon/icons/pause.vue +5 -5
  337. package/src/atoms/components/Icon/icons/payment.vue +8 -8
  338. package/src/atoms/components/Icon/icons/payments-featured.vue +6 -6
  339. package/src/atoms/components/Icon/icons/payments-textonly.vue +8 -8
  340. package/src/atoms/components/Icon/icons/payments-thumbnail.vue +9 -9
  341. package/src/atoms/components/Icon/icons/pen-outline.vue +7 -7
  342. package/src/atoms/components/Icon/icons/pen-sparkle.vue +17 -17
  343. package/src/atoms/components/Icon/icons/pen-tool.vue +7 -7
  344. package/src/atoms/components/Icon/icons/pen.vue +7 -7
  345. package/src/atoms/components/Icon/icons/phone.vue +6 -6
  346. package/src/atoms/components/Icon/icons/plus-circle-light.vue +8 -8
  347. package/src/atoms/components/Icon/icons/plus-circle.vue +7 -7
  348. package/src/atoms/components/Icon/icons/plus.vue +3 -3
  349. package/src/atoms/components/Icon/icons/poll.vue +3 -3
  350. package/src/atoms/components/Icon/icons/portfolio.vue +10 -10
  351. package/src/atoms/components/Icon/icons/premium-content.vue +8 -8
  352. package/src/atoms/components/Icon/icons/preview.vue +6 -6
  353. package/src/atoms/components/Icon/icons/printing.vue +6 -6
  354. package/src/atoms/components/Icon/icons/processing.vue +5 -5
  355. package/src/atoms/components/Icon/icons/question-alt.vue +20 -20
  356. package/src/atoms/components/Icon/icons/question.vue +11 -11
  357. package/src/atoms/components/Icon/icons/ratio-1-1.vue +3 -3
  358. package/src/atoms/components/Icon/icons/ratio-16-9.vue +1 -1
  359. package/src/atoms/components/Icon/icons/ratio-2-3.vue +3 -3
  360. package/src/atoms/components/Icon/icons/ratio-3-2.vue +3 -3
  361. package/src/atoms/components/Icon/icons/ratio-3-4.vue +3 -3
  362. package/src/atoms/components/Icon/icons/ratio-4-3.vue +3 -3
  363. package/src/atoms/components/Icon/icons/ratio-9-16.vue +3 -3
  364. package/src/atoms/components/Icon/icons/ratio-circle.vue +8 -8
  365. package/src/atoms/components/Icon/icons/ratio-original.vue +11 -11
  366. package/src/atoms/components/Icon/icons/redo.vue +6 -6
  367. package/src/atoms/components/Icon/icons/reload.vue +6 -6
  368. package/src/atoms/components/Icon/icons/reorderable.vue +5 -5
  369. package/src/atoms/components/Icon/icons/request-payment.vue +6 -6
  370. package/src/atoms/components/Icon/icons/reset.vue +6 -6
  371. package/src/atoms/components/Icon/icons/resize.vue +6 -6
  372. package/src/atoms/components/Icon/icons/save.vue +6 -6
  373. package/src/atoms/components/Icon/icons/search.vue +11 -11
  374. package/src/atoms/components/Icon/icons/secure.vue +7 -7
  375. package/src/atoms/components/Icon/icons/send.vue +12 -12
  376. package/src/atoms/components/Icon/icons/services.vue +7 -7
  377. package/src/atoms/components/Icon/icons/settings.vue +7 -7
  378. package/src/atoms/components/Icon/icons/shape.vue +5 -5
  379. package/src/atoms/components/Icon/icons/share.vue +9 -9
  380. package/src/atoms/components/Icon/icons/shield-tick.vue +6 -6
  381. package/src/atoms/components/Icon/icons/shop.vue +5 -5
  382. package/src/atoms/components/Icon/icons/sms.vue +5 -5
  383. package/src/atoms/components/Icon/icons/social-facebook-color.vue +9 -9
  384. package/src/atoms/components/Icon/icons/social-facebook.vue +5 -5
  385. package/src/atoms/components/Icon/icons/social-google.vue +5 -5
  386. package/src/atoms/components/Icon/icons/social-instagram-color.vue +24 -24
  387. package/src/atoms/components/Icon/icons/social-linkedin-color.vue +9 -9
  388. package/src/atoms/components/Icon/icons/social-share.vue +7 -7
  389. package/src/atoms/components/Icon/icons/social-twitter-color.vue +9 -9
  390. package/src/atoms/components/Icon/icons/sparkle-square.vue +22 -22
  391. package/src/atoms/components/Icon/icons/star-filled.vue +6 -6
  392. package/src/atoms/components/Icon/icons/star-hollow.vue +6 -6
  393. package/src/atoms/components/Icon/icons/sticker.vue +28 -28
  394. package/src/atoms/components/Icon/icons/stop.vue +5 -5
  395. package/src/atoms/components/Icon/icons/styles.vue +5 -5
  396. package/src/atoms/components/Icon/icons/submit.vue +5 -5
  397. package/src/atoms/components/Icon/icons/templates.vue +7 -7
  398. package/src/atoms/components/Icon/icons/text-image-center.vue +6 -6
  399. package/src/atoms/components/Icon/icons/text-image-justified.vue +7 -7
  400. package/src/atoms/components/Icon/icons/text-image-left.vue +9 -9
  401. package/src/atoms/components/Icon/icons/text-image-only.vue +5 -5
  402. package/src/atoms/components/Icon/icons/text-image-right.vue +9 -9
  403. package/src/atoms/components/Icon/icons/text-image.vue +13 -13
  404. package/src/atoms/components/Icon/icons/time.vue +8 -8
  405. package/src/atoms/components/Icon/icons/tooltip-bottom.vue +5 -5
  406. package/src/atoms/components/Icon/icons/tooltip-left.vue +5 -5
  407. package/src/atoms/components/Icon/icons/tooltip-right.vue +5 -5
  408. package/src/atoms/components/Icon/icons/tooltip-top.vue +5 -5
  409. package/src/atoms/components/Icon/icons/undo.vue +6 -6
  410. package/src/atoms/components/Icon/icons/upgrade-alt.vue +7 -7
  411. package/src/atoms/components/Icon/icons/upgrade.vue +9 -9
  412. package/src/atoms/components/Icon/icons/upload-arrow.vue +5 -5
  413. package/src/atoms/components/Icon/icons/upload.vue +5 -5
  414. package/src/atoms/components/Icon/icons/user-accounts.vue +5 -5
  415. package/src/atoms/components/Icon/icons/user-headset.vue +50 -50
  416. package/src/atoms/components/Icon/icons/users-2.vue +5 -0
  417. package/src/atoms/components/Icon/icons/volume-muted.vue +5 -5
  418. package/src/atoms/components/Icon/icons/volume.vue +5 -5
  419. package/src/atoms/components/Icon/icons/watchlist-filled.vue +14 -14
  420. package/src/atoms/components/Icon/icons/watchlist-hollow-alt.vue +14 -14
  421. package/src/atoms/components/Icon/icons/watchlist-hollow.vue +6 -6
  422. package/src/atoms/components/Icon/icons/website-filled.vue +5 -5
  423. package/src/atoms/components/Icon/icons/website.vue +6 -6
  424. package/src/atoms/components/Icon/icons/websites/upgrade-to-add-page.vue +50 -50
  425. package/src/atoms/components/Icon/icons/websites/upgrade-to-contact-form.vue +82 -82
  426. package/src/atoms/components/Icon/icons/websites/upgrade-to-google-ad.vue +92 -92
  427. package/src/atoms/components/Icon/icons/websites/upgrade-to-maps.vue +40 -40
  428. package/src/atoms/components/Icon/icons/websites/upgrade-to-publish.vue +107 -107
  429. package/src/atoms/components/Icon/icons/websites/upgrade-to-remove-watermark.vue +74 -74
  430. package/src/atoms/components/Icon/icons/websites/upgrade-to-videos.vue +16 -16
  431. package/src/atoms/components/Icon/icons/wholesale.vue +6 -6
  432. package/src/atoms/components/Icon/icons/zoom-in.vue +5 -5
  433. package/src/atoms/components/Icon/icons/zoom-out.vue +5 -5
  434. package/src/atoms/components/Icon/icons/zoom.vue +11 -11
  435. package/src/atoms/components/Loader/Loader.vue +15 -15
  436. package/src/atoms/components/Masonry/Masonry.stories.js +48 -48
  437. package/src/atoms/components/Masonry/Masonry.vue +48 -48
  438. package/src/atoms/components/Masonry/fixtures.js +589 -589
  439. package/src/atoms/components/Modal/HashRouteModal.stories.js +68 -68
  440. package/src/atoms/components/Modal/HashRouteModal.vue +120 -120
  441. package/src/atoms/components/Modal/Modal.stories.js +293 -293
  442. package/src/atoms/components/Modal/Modal.vue +272 -272
  443. package/src/atoms/components/Notice/Notice.stories.js +174 -174
  444. package/src/atoms/components/Notice/Notice.vue +71 -71
  445. package/src/atoms/components/NumberStepper/NumberStepper.stories.js +55 -55
  446. package/src/atoms/components/NumberStepper/NumberStepper.vue +340 -340
  447. package/src/atoms/components/Picture/Picture.stories.js +90 -90
  448. package/src/atoms/components/Picture/Picture.vue +84 -84
  449. package/src/atoms/components/Picture/picture.fixtures.js +35 -35
  450. package/src/atoms/components/Pill/Pill.stories.js +20 -20
  451. package/src/atoms/components/Pill/Pill.vue +8 -8
  452. package/src/atoms/components/PillBar/PillBar.fixtures.js +941 -941
  453. package/src/atoms/components/PillBar/PillBar.stories.js +39 -39
  454. package/src/atoms/components/PillBar/PillBar.vue +62 -62
  455. package/src/atoms/components/Price/Price.fixtures.js +85 -85
  456. package/src/atoms/components/Price/Price.stories.js +313 -313
  457. package/src/atoms/components/Price/Price.vue +135 -135
  458. package/src/atoms/components/Price/i18n/price.de-DE.json +5 -5
  459. package/src/atoms/components/Price/i18n/price.es-ES.json +5 -5
  460. package/src/atoms/components/Price/i18n/price.fr-CA.json +5 -5
  461. package/src/atoms/components/Price/i18n/price.fr-FR.json +5 -5
  462. package/src/atoms/components/Price/i18n/price.json +5 -5
  463. package/src/atoms/components/Price/i18n/price.pt-BR.json +5 -5
  464. package/src/atoms/components/Price/i18n/price.pt-PT.json +5 -5
  465. package/src/atoms/components/PromoCard/PromoCard.stories.ts +263 -263
  466. package/src/atoms/components/PromoCard/PromoCard.vue +83 -83
  467. package/src/atoms/components/SearchBar/SearchBar.stories.js +21 -21
  468. package/src/atoms/components/SearchBar/SearchBar.vue +51 -51
  469. package/src/atoms/components/Select/Select.stories.js +142 -142
  470. package/src/atoms/components/Select/Select.vue +619 -619
  471. package/src/atoms/components/Select/pointerMixin.js +99 -99
  472. package/src/atoms/components/Select/selectMixin.js +356 -356
  473. package/src/atoms/components/SparkleIcon/SparkleIcon.stories.js +386 -386
  474. package/src/atoms/components/SparkleIcon/SparkleIcon.vue +136 -136
  475. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-01.svg +5 -5
  476. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-02.svg +5 -5
  477. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-03.svg +5 -5
  478. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-04.svg +5 -5
  479. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-05.svg +5 -5
  480. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-06.svg +5 -5
  481. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-07.svg +5 -5
  482. package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-08.svg +5 -5
  483. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-01.svg +5 -5
  484. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-02.svg +14 -14
  485. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-03.svg +14 -14
  486. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-04.svg +14 -14
  487. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-05.svg +14 -14
  488. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-06.svg +14 -14
  489. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-07.svg +14 -14
  490. package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-08.svg +14 -14
  491. package/src/atoms/components/SparkleIcon/assets/sparkle.svg +3 -3
  492. package/src/atoms/components/SparkleIcon/index.ts +3 -3
  493. package/src/atoms/components/SparkleIcon/sparkle-paths.ts +54 -54
  494. package/src/atoms/components/SparkleIcon/sparkle-with-spinner-paths.ts +61 -61
  495. package/src/atoms/components/StarRating/StarRating.stories.js +50 -50
  496. package/src/atoms/components/StarRating/StarRating.vue +84 -84
  497. package/src/atoms/components/TabMenu/TabMenu.stories.js +54 -54
  498. package/src/atoms/components/TabMenu/TabMenu.vue +44 -44
  499. package/src/atoms/components/TextCopyField/TextCopyField.stories.js +68 -68
  500. package/src/atoms/components/TextCopyField/TextCopyField.vue +75 -75
  501. package/src/atoms/components/TextInput/TextInput.stories.js +232 -232
  502. package/src/atoms/components/TextInput/TextInput.vue +161 -161
  503. package/src/atoms/components/Textarea/Textarea.stories.js +209 -209
  504. package/src/atoms/components/Textarea/Textarea.vue +112 -112
  505. package/src/atoms/components/Toggle/Toggle.stories.js +176 -176
  506. package/src/atoms/components/Toggle/Toggle.vue +69 -69
  507. package/src/atoms/components/Tooltip/Tooltip.stories.js +493 -493
  508. package/src/atoms/components/Tooltip/Tooltip.vue +196 -196
  509. package/src/atoms/components/design-com/Icon/Icon.stories.js +94 -94
  510. package/src/atoms/components/design-com/Icon/Icon.vue +181 -181
  511. package/src/atoms/components/design-com/Icon/icons/ai.vue +5 -5
  512. package/src/atoms/components/design-com/Icon/icons/award.vue +7 -7
  513. package/src/atoms/components/design-com/Icon/icons/badge.vue +7 -7
  514. package/src/atoms/components/design-com/Icon/icons/briefcase.vue +6 -6
  515. package/src/atoms/components/design-com/Icon/icons/browser.vue +7 -7
  516. package/src/atoms/components/design-com/Icon/icons/bulb.vue +7 -7
  517. package/src/atoms/components/design-com/Icon/icons/card-vertical.vue +8 -8
  518. package/src/atoms/components/design-com/Icon/icons/card.vue +6 -6
  519. package/src/atoms/components/design-com/Icon/icons/check-circle-light.vue +7 -7
  520. package/src/atoms/components/design-com/Icon/icons/chevron-down.vue +7 -7
  521. package/src/atoms/components/design-com/Icon/icons/chevron-left.vue +7 -7
  522. package/src/atoms/components/design-com/Icon/icons/chevron-right.vue +3 -3
  523. package/src/atoms/components/design-com/Icon/icons/chevron-up.vue +7 -7
  524. package/src/atoms/components/design-com/Icon/icons/diamond.vue +7 -7
  525. package/src/atoms/components/design-com/Icon/icons/download.vue +7 -7
  526. package/src/atoms/components/design-com/Icon/icons/file-empty.vue +7 -7
  527. package/src/atoms/components/design-com/Icon/icons/file.vue +7 -7
  528. package/src/atoms/components/design-com/Icon/icons/filter.vue +7 -7
  529. package/src/atoms/components/design-com/Icon/icons/folder.vue +5 -5
  530. package/src/atoms/components/design-com/Icon/icons/font.vue +7 -7
  531. package/src/atoms/components/design-com/Icon/icons/headphones.vue +7 -7
  532. package/src/atoms/components/design-com/Icon/icons/heart.vue +7 -7
  533. package/src/atoms/components/design-com/Icon/icons/image.vue +7 -7
  534. package/src/atoms/components/design-com/Icon/icons/lightning.vue +7 -7
  535. package/src/atoms/components/design-com/Icon/icons/logo.vue +7 -7
  536. package/src/atoms/components/design-com/Icon/icons/minus-circle-light.vue +7 -7
  537. package/src/atoms/components/design-com/Icon/icons/plus-circle-light.vue +8 -8
  538. package/src/atoms/components/design-com/Icon/icons/printing.vue +5 -5
  539. package/src/atoms/components/design-com/Icon/icons/question-circle-filled.vue +7 -7
  540. package/src/atoms/components/design-com/Icon/icons/search.vue +7 -7
  541. package/src/atoms/components/design-com/Icon/icons/shield-tick.vue +5 -5
  542. package/src/atoms/components/design-com/Icon/icons/star-filled.vue +6 -6
  543. package/src/atoms/components/design-com/Icon/icons/star-hollow.vue +6 -6
  544. package/src/atoms/components/design-com/Icon/icons/users.vue +7 -7
  545. package/src/atoms/constants/constants.ts +6 -6
  546. package/src/atoms/mixin/hash-router-mixin.js +68 -68
  547. package/src/atoms/thirdparty-components/VueMasonryWall/VueMasonryWall.vue +280 -280
  548. package/src/atoms/thirdparty-components/VueMasonryWall/maxBy.js +50 -50
  549. package/src/bundleTranslation.js +86 -86
  550. package/src/bundles/bundled-translations.de-DE.json +8 -53
  551. package/src/bundles/bundled-translations.es-ES.json +8 -53
  552. package/src/bundles/bundled-translations.fr-CA.json +8 -53
  553. package/src/bundles/bundled-translations.fr-FR.json +8 -53
  554. package/src/bundles/bundled-translations.json +8 -53
  555. package/src/bundles/bundled-translations.pt-BR.json +8 -53
  556. package/src/bundles/bundled-translations.pt-PT.json +8 -53
  557. package/src/css/tailwind.css +3 -3
  558. package/src/experiences/clients/brand-crowd-api.client.js +142 -142
  559. package/src/experiences/clients/brand-page-api.client.js +62 -62
  560. package/src/experiences/components/AuthFlow/Auth.fixtures.js +4 -4
  561. package/src/experiences/components/AuthFlow/Auth.stories.js +345 -345
  562. package/src/experiences/components/AuthFlow/AuthCrazyDomains.stories.js +60 -60
  563. package/src/experiences/components/AuthFlow/AuthLegal.vue +108 -108
  564. package/src/experiences/components/AuthFlow/AuthModal.vue +39 -39
  565. package/src/experiences/components/AuthFlow/ForgotPassword.vue +222 -222
  566. package/src/experiences/components/AuthFlow/ForgotPasswordModal.vue +68 -68
  567. package/src/experiences/components/AuthFlow/ResetPassword.vue +179 -179
  568. package/src/experiences/components/AuthFlow/ResetPasswordModal.vue +64 -64
  569. package/src/experiences/components/AuthFlow/ResetPasswordSuccessModal.vue +56 -56
  570. package/src/experiences/components/AuthFlow/SignIn.vue +472 -472
  571. package/src/experiences/components/AuthFlow/SignUp.vue +278 -278
  572. package/src/experiences/components/AuthFlow/SignUpModal.vue +90 -90
  573. package/src/experiences/components/AuthFlow/SocialSignIn.vue +177 -177
  574. package/src/experiences/components/AuthFlow/SocialSignInButton.vue +74 -74
  575. package/src/experiences/components/AuthFlow/SubmissionButton.vue +56 -56
  576. package/src/experiences/components/PaymentConfigList/PaymentConfig.mixin.js +118 -118
  577. package/src/experiences/components/PaymentConfigList/PaymentConfigDeleteConfigModal.vue +108 -108
  578. package/src/experiences/components/PaymentConfigList/PaymentConfigDropdown.vue +175 -175
  579. package/src/experiences/components/PaymentConfigList/PaymentConfigList.stories.js +234 -234
  580. package/src/experiences/components/PaymentConfigList/PaymentConfigList.vue +136 -136
  581. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.de-DE.json +11 -11
  582. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.es-ES.json +11 -11
  583. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.fr-CA.json +11 -11
  584. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.fr-FR.json +11 -11
  585. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.json +11 -11
  586. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.pt-BR.json +11 -11
  587. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.pt-PT.json +11 -11
  588. package/src/experiences/components/PublishBrandPageModal/PublishBrandPageCard.vue +119 -119
  589. package/src/experiences/components/PublishBrandPageModal/PublishBrandPageModal.stories.js +262 -262
  590. package/src/experiences/components/PublishBrandPageModal/__fixtures__/data.js +25 -25
  591. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.de-DE.json +27 -27
  592. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.es-ES.json +27 -27
  593. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.fr-CA.json +27 -27
  594. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.fr-FR.json +27 -27
  595. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.json +27 -27
  596. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-BR.json +27 -27
  597. package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-PT.json +27 -27
  598. package/src/experiences/components/SellDomainNameList/SellDomainNameList.fixtures.js +32 -32
  599. package/src/experiences/components/SellDomainNameList/SellDomainNameList.vue +157 -157
  600. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.de-DE.json +7 -7
  601. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.es-ES.json +7 -7
  602. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.fr-CA.json +7 -7
  603. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.fr-FR.json +7 -7
  604. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.json +7 -7
  605. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.pt-BR.json +7 -7
  606. package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.pt-PT.json +7 -7
  607. package/src/experiences/components/SellDomainNameListModal/SellDomainNameListModal.stories.js +74 -74
  608. package/src/experiences/components/SellDomainNameListModal/SellDomainNameListModal.vue +128 -128
  609. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.de-DE.json +5 -5
  610. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.es-ES.json +5 -5
  611. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.fr-CA.json +5 -5
  612. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.fr-FR.json +5 -5
  613. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.json +5 -5
  614. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.pt-BR.json +5 -5
  615. package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.pt-PT.json +5 -5
  616. package/src/experiences/components/SellDomainNameModalApplication/SellDomainNameModalApplication.vue +222 -222
  617. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.de-DE.json +5 -5
  618. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.es-ES.json +5 -5
  619. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.fr-CA.json +5 -5
  620. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.fr-FR.json +5 -5
  621. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.json +5 -5
  622. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.pt-BR.json +5 -5
  623. package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.pt-PT.json +5 -5
  624. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.de-DE.json +7 -7
  625. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.es-ES.json +7 -7
  626. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.fr-CA.json +7 -7
  627. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.fr-FR.json +7 -7
  628. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.json +7 -7
  629. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.pt-BR.json +7 -7
  630. package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.pt-PT.json +7 -7
  631. package/src/experiences/components/SellDomainNameSearchResult/SellDomainNameListSearchResult.vue +167 -167
  632. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.de-DE.json +5 -5
  633. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.es-ES.json +5 -5
  634. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.fr-CA.json +5 -5
  635. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.fr-FR.json +5 -5
  636. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.json +5 -5
  637. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.pt-BR.json +5 -5
  638. package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.pt-PT.json +5 -5
  639. package/src/experiences/components/SellDomainNameSearchWithResults/SellDomainNameSearchWithResults.stories.js +38 -38
  640. package/src/experiences/components/SellDomainNameSearchWithResults/SellDomainNameSearchWithResults.vue +223 -223
  641. package/src/experiences/components/SellDomainNameWidget/SellDomainNameWidget.stories.js +40 -40
  642. package/src/experiences/components/SellDomainNameWidget/SellDomainNameWidget.vue +155 -155
  643. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.de-DE.json +7 -7
  644. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.es-ES.json +7 -7
  645. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.fr-CA.json +7 -7
  646. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.fr-FR.json +7 -7
  647. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.json +7 -7
  648. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.pt-BR.json +7 -7
  649. package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.pt-PT.json +7 -7
  650. package/src/experiences/components/SideNavigationPanel/MenuCta.vue +62 -62
  651. package/src/experiences/components/SideNavigationPanel/MenuItem.vue +40 -40
  652. package/src/experiences/components/SideNavigationPanel/SideNavigationPanel.stories.js +219 -219
  653. package/src/experiences/components/SideNavigationPanel/SideNavigationPanel.vue +82 -82
  654. package/src/experiences/components/SideNavigationPanel/types.ts +7 -7
  655. package/src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.stories.js +254 -254
  656. package/src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.vue +163 -163
  657. package/src/experiences/components/UploadYourLogoDropzone/UploadYourLogoDropzone.stories.js +59 -59
  658. package/src/experiences/components/UploadYourLogoDropzone/UploadYourLogoDropzone.vue +285 -285
  659. package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessBrandColours.stories.js +37 -37
  660. package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessBrandColours.vue +338 -338
  661. package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessText.vue +146 -146
  662. package/src/experiences/components/UploadYourLogoOnBoarding/LogoCropper.vue +473 -473
  663. package/src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.stories.js +65 -65
  664. package/src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.vue +156 -156
  665. package/src/experiences/components/UploadYourLogoOnBoarding/LogoPreview.vue +103 -103
  666. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadError.vue +75 -75
  667. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadExitConfirmation.vue +55 -55
  668. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadModal.vue +38 -38
  669. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploader.vue +109 -109
  670. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadingLoader.vue +39 -39
  671. package/src/experiences/components/UploadYourLogoOnBoarding/UploadYourLogoOnBoarding.vue +363 -363
  672. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.de-DE.json +37 -37
  673. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.es-ES.json +37 -37
  674. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-CA.json +37 -37
  675. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-FR.json +37 -37
  676. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.json +37 -37
  677. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-BR.json +37 -37
  678. package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-PT.json +37 -37
  679. package/src/experiences/components/UploadedLogoSearchResultCard/UploadedLogoSearchResultCard.stories.js +82 -82
  680. package/src/experiences/components/UploadedLogoSearchResultCard/UploadedLogoSearchResultCard.vue +211 -211
  681. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.de-DE.json +8 -8
  682. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.es-ES.json +8 -8
  683. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.fr-CA.json +8 -8
  684. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.fr-FR.json +8 -8
  685. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.json +8 -8
  686. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.pt-BR.json +8 -8
  687. package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.pt-PT.json +8 -8
  688. package/src/experiences/components/WebsitesContextualUpgradeModal/WebsiteContextualUpgradeModal.stories.js +181 -181
  689. package/src/experiences/components/WebsitesContextualUpgradeModal/WebsiteContextualUpgradeModal.vue +203 -203
  690. package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.de-DE.json +42 -42
  691. package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.es-ES.json +42 -42
  692. package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.fr-CA.json +42 -42
  693. package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.fr-FR.json +42 -42
  694. package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.json +42 -42
  695. package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.pt-BR.json +42 -42
  696. package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.pt-PT.json +42 -42
  697. package/src/experiences/constants/api.js +9 -9
  698. package/src/experiences/constants/error-constants.js +5 -5
  699. package/src/experiences/constants/event-constants.js +18 -18
  700. package/src/experiences/constants/partner-dictionary-constants.js +27 -27
  701. package/src/experiences/constants/rego-source-constants.js +3 -3
  702. package/src/experiences/constants/sell-domain-name-constants.js +4 -4
  703. package/src/experiences/helpers/email-validator.js +5 -5
  704. package/src/experiences/helpers/hex-diff.js +116 -116
  705. package/src/experiences/helpers/tracking.js +5 -5
  706. package/src/experiences/mixins/mediaQueryMixin.js +31 -31
  707. package/src/experiences/mixins/themeMixin.js +22 -22
  708. package/src/experiences/models/websiteContextualModel.ts +11 -11
  709. package/src/themes/base.js +20 -20
  710. package/src/themes/bc.js +95 -95
  711. package/src/themes/bp.js +21 -21
  712. package/src/themes/cd.js +94 -94
  713. package/src/themes/dc.js +84 -84
  714. package/src/themes/dcom.js +106 -106
  715. package/src/themes/themes.js +16 -16
  716. package/src/useSharedLibTranslate.js +131 -131
  717. package/src/viewports.js +51 -51
  718. package/stylelint.config.js +19 -19
  719. package/tailwind.build.js +83 -83
  720. package/tailwind.config.js +36 -36
  721. package/tailwind.themes.js +59 -59
  722. package/vite.config.ts +37 -37
  723. package/.claude/settings.local.json +0 -59
  724. package/.claude/skills/playwright-cli/SKILL.md +0 -278
  725. package/.claude/skills/playwright-cli/references/request-mocking.md +0 -87
  726. package/.claude/skills/playwright-cli/references/running-code.md +0 -232
  727. package/.claude/skills/playwright-cli/references/session-management.md +0 -169
  728. package/.claude/skills/playwright-cli/references/storage-state.md +0 -275
  729. package/.claude/skills/playwright-cli/references/test-generation.md +0 -88
  730. package/.claude/skills/playwright-cli/references/tracing.md +0 -139
  731. package/.claude/skills/playwright-cli/references/video-recording.md +0 -43
  732. package/.playwright-cli/page-2026-04-13T02-23-08-374Z.yml +0 -68
  733. package/.playwright-cli/page-2026-04-13T02-23-13-730Z.yml +0 -421
  734. package/.storybook-static/assets/Auth-DT64t5h-.css +0 -1
  735. package/.storybook-static/assets/Auth.stories-C6eXcTSu.js +0 -490
  736. package/.storybook-static/assets/AuthCrazyDomains.stories-DGvEoWCa.js +0 -73
  737. package/.storybook-static/assets/Button-5UzSGUF6.css +0 -1
  738. package/.storybook-static/assets/Button-DKdQT6Fq.js +0 -1
  739. package/.storybook-static/assets/ButtonGroup-DDPXuhxR.css +0 -1
  740. package/.storybook-static/assets/ButtonGroup.stories-DlrYMRSk.js +0 -504
  741. package/.storybook-static/assets/ButtonPrimary-Bu6bXb_c.css +0 -1
  742. package/.storybook-static/assets/ButtonPrimary-BvWW6Duz.js +0 -1
  743. package/.storybook-static/assets/Buttons.stories-CKmd6hkZ.js +0 -761
  744. package/.storybook-static/assets/ButtonsCrazyDomains.stories-DdEuOUrn.js +0 -199
  745. package/.storybook-static/assets/Checkbox.mixin-DkHpdvGa.js +0 -1
  746. package/.storybook-static/assets/Checkbox.stories-DPBUC2Mx.js +0 -246
  747. package/.storybook-static/assets/Checktile.stories-ByaFwplD.js +0 -88
  748. package/.storybook-static/assets/CollapsiblePanel.stories-Y6q3gP9j.js +0 -56
  749. package/.storybook-static/assets/ColorPicker.stories-DdxPUB_R.js +0 -73
  750. package/.storybook-static/assets/CopyToClipboardText.stories-J9qndWxd.js +0 -32
  751. package/.storybook-static/assets/Dropdown.stories-1zKPATii.js +0 -159
  752. package/.storybook-static/assets/DropdownItem-BV-BdThU.css +0 -1
  753. package/.storybook-static/assets/DropdownItem-DA6TdpDb.js +0 -1
  754. package/.storybook-static/assets/FormControl.mixin-DcEBwrV3.js +0 -1
  755. package/.storybook-static/assets/HashRouteModal.stories-BGxvqE22.js +0 -60
  756. package/.storybook-static/assets/HelloBar-CYEZR2kQ.js +0 -1
  757. package/.storybook-static/assets/HelloBar.stories-597Kxj0W.js +0 -342
  758. package/.storybook-static/assets/Icon-C17LFvsP.js +0 -145
  759. package/.storybook-static/assets/Icon.stories-B9iAmcTU.js +0 -151
  760. package/.storybook-static/assets/Icon.stories-CR5vT9H7.js +0 -791
  761. package/.storybook-static/assets/Loader-BWGoT_xC.js +0 -1
  762. package/.storybook-static/assets/LogoBusinessBrandColours-CExzox1Z.js +0 -1
  763. package/.storybook-static/assets/LogoBusinessBrandColours-CeAaMKke.css +0 -1
  764. package/.storybook-static/assets/LogoBusinessBrandColours.stories-kuxAH8B8.js +0 -36
  765. package/.storybook-static/assets/Masonry-C2MNiGg0.css +0 -1
  766. package/.storybook-static/assets/Masonry.stories-CTXJLQ_i.js +0 -71
  767. package/.storybook-static/assets/Modal-CGwEIF5R.css +0 -1
  768. package/.storybook-static/assets/Modal-CydTNprT.js +0 -1
  769. package/.storybook-static/assets/Modal.stories-DZiG5NGM.js +0 -345
  770. package/.storybook-static/assets/Notice.stories-ChOj8CWm.js +0 -222
  771. package/.storybook-static/assets/NumberStepper-Blffv09R.css +0 -1
  772. package/.storybook-static/assets/NumberStepper.stories-CVbKJ_oJ.js +0 -64
  773. package/.storybook-static/assets/PaymentConfigList-BpUMV6cp.css +0 -1
  774. package/.storybook-static/assets/PaymentConfigList.stories-DUD7OZBS.js +0 -130
  775. package/.storybook-static/assets/Picture-B8m1I9xN.js +0 -1
  776. package/.storybook-static/assets/Picture.stories-MMzybhJ6.js +0 -119
  777. package/.storybook-static/assets/Pill-DLXZ_TL8.js +0 -1
  778. package/.storybook-static/assets/Pill.stories-DCP7szJm.js +0 -18
  779. package/.storybook-static/assets/PillBar-os4mJV3M.css +0 -1
  780. package/.storybook-static/assets/PillBar.stories-Bry-zQ6f.js +0 -41
  781. package/.storybook-static/assets/Price-C4GZbDSa.js +0 -1
  782. package/.storybook-static/assets/Price.stories-CMHly9V0.js +0 -337
  783. package/.storybook-static/assets/PromoCard.stories-xsbFtADE.js +0 -299
  784. package/.storybook-static/assets/PublishBrandPageModal-Q9-mNG1q.css +0 -1
  785. package/.storybook-static/assets/PublishBrandPageModal.stories-C9XzW_1m.js +0 -324
  786. package/.storybook-static/assets/SearchBar.stories-DaIneOSz.js +0 -12
  787. package/.storybook-static/assets/Select-DnioWQmi.css +0 -1
  788. package/.storybook-static/assets/Select.stories-BmGYB4pw.js +0 -108
  789. package/.storybook-static/assets/SellDomainNameList.fixtures-LC6fjr_b.js +0 -1
  790. package/.storybook-static/assets/SellDomainNameListModal-DH6khE10.css +0 -1
  791. package/.storybook-static/assets/SellDomainNameListModal-ymtVclFP.js +0 -1
  792. package/.storybook-static/assets/SellDomainNameListModal.stories-DvGvylgx.js +0 -71
  793. package/.storybook-static/assets/SellDomainNameListSearchResult-Cpxq0jDA.css +0 -1
  794. package/.storybook-static/assets/SellDomainNameListSearchResult-D-1CrQyf.js +0 -1
  795. package/.storybook-static/assets/SellDomainNameSearchWithResults-bX--zu97.js +0 -1
  796. package/.storybook-static/assets/SellDomainNameSearchWithResults.stories-DRUJjSdH.js +0 -37
  797. package/.storybook-static/assets/SellDomainNameWidget.stories-CC3LX10s.js +0 -36
  798. package/.storybook-static/assets/SignIn-CPjf8_2O.css +0 -1
  799. package/.storybook-static/assets/SignIn-DI0DSDFe.js +0 -1
  800. package/.storybook-static/assets/Slider-Cog2FFdj.css +0 -1
  801. package/.storybook-static/assets/Slider.stories-B2KGwnJy.js +0 -141
  802. package/.storybook-static/assets/SparkleIcon.stories-Dk904hVE.js +0 -547
  803. package/.storybook-static/assets/StarRating-BtKh7pzm.css +0 -1
  804. package/.storybook-static/assets/StarRating.stories-d2mgOuo2.js +0 -45
  805. package/.storybook-static/assets/TabMenu.stories-Cg2yenqj.js +0 -47
  806. package/.storybook-static/assets/TextCopyField-B66NKTk_.js +0 -1
  807. package/.storybook-static/assets/TextCopyField.stories-B4_ZlfLU.js +0 -47
  808. package/.storybook-static/assets/TextInput-CMoUjT_5.js +0 -1
  809. package/.storybook-static/assets/TextInput.stories-oyyxxf3j.js +0 -233
  810. package/.storybook-static/assets/Textarea.stories-BvhZR6K2.js +0 -207
  811. package/.storybook-static/assets/Toggle.stories-yT5-rL2k.js +0 -161
  812. package/.storybook-static/assets/Tooltip-DyXIgFQH.css +0 -1
  813. package/.storybook-static/assets/Tooltip-ZukyujG5.js +0 -1
  814. package/.storybook-static/assets/Tooltip.stories-sJFylRS_.js +0 -953
  815. package/.storybook-static/assets/UploadYourLogoApplication-Dmw8QcH3.css +0 -1
  816. package/.storybook-static/assets/UploadYourLogoApplication.stories-C9AvzHO_.js +0 -186
  817. package/.storybook-static/assets/UploadYourLogoDropzone-B1ffcicv.js +0 -24
  818. package/.storybook-static/assets/UploadYourLogoDropzone-DQqACf-e.css +0 -1
  819. package/.storybook-static/assets/UploadYourLogoDropzone.stories-D1Dt2ord.js +0 -55
  820. package/.storybook-static/assets/UploadedLogoSearchResultCard.stories-D8oF1Yrx.js +0 -79
  821. package/.storybook-static/assets/WebsiteContextualUpgradeModal-8u1zOZrW.css +0 -1
  822. package/.storybook-static/assets/WebsiteContextualUpgradeModal.stories-mtcvWOAg.js +0 -211
  823. package/.storybook-static/assets/_commonjsHelpers-CE1G-McA.js +0 -1
  824. package/.storybook-static/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
  825. package/.storybook-static/assets/api-lSJGRrF2.js +0 -1
  826. package/.storybook-static/assets/axe-DrS73Vi2.js +0 -20
  827. package/.storybook-static/assets/brand-crowd-api.client-D45NKshX.js +0 -1
  828. package/.storybook-static/assets/bundled-translations-BoWhEDU_.js +0 -1
  829. package/.storybook-static/assets/bundled-translations.de-DE-C4lqla4O.js +0 -1
  830. package/.storybook-static/assets/bundled-translations.es-ES-BxMIllUH.js +0 -1
  831. package/.storybook-static/assets/bundled-translations.fr-CA-MxZpyz0w.js +0 -1
  832. package/.storybook-static/assets/bundled-translations.fr-FR-N7UPCZVr.js +0 -1
  833. package/.storybook-static/assets/bundled-translations.pt-BR-C8tscYuG.js +0 -1
  834. package/.storybook-static/assets/bundled-translations.pt-PT-Dszj5Xfa.js +0 -1
  835. package/.storybook-static/assets/carousel-BelyIYOK.css +0 -1
  836. package/.storybook-static/assets/carousel.stories-CJw3-Iy6.js +0 -668
  837. package/.storybook-static/assets/event-constants-CMO9VQVu.js +0 -1
  838. package/.storybook-static/assets/iframe-B3A6OXQU.js +0 -1104
  839. package/.storybook-static/assets/index-B-eiLVzF.js +0 -7
  840. package/.storybook-static/assets/index-QquxUozE.js +0 -6
  841. package/.storybook-static/assets/matchers-5TDFFDYO-HJu_DfWo.js +0 -14
  842. package/.storybook-static/assets/mediaQueryMixin-CISNqd93.js +0 -1
  843. package/.storybook-static/assets/preload-helper-PPVm8Dsz.js +0 -1
  844. package/.storybook-static/assets/tracking-ATsLLehC.js +0 -1
  845. package/.storybook-static/css/tailwind-brandCrowd.css +0 -2508
  846. package/.storybook-static/css/tailwind-brandPage.css +0 -2188
  847. package/.storybook-static/css/tailwind-crazyDomains.css +0 -2508
  848. package/.storybook-static/css/tailwind-designCom.css +0 -2508
  849. package/.storybook-static/css/tailwind-designCrowd.css +0 -2508
  850. package/.storybook-static/favicon-wrapper.svg +0 -46
  851. package/.storybook-static/favicon.svg +0 -1
  852. package/.storybook-static/iframe.html +0 -713
  853. package/.storybook-static/index.html +0 -148
  854. package/.storybook-static/index.json +0 -1
  855. package/.storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  856. package/.storybook-static/nunito-sans-bold.woff2 +0 -0
  857. package/.storybook-static/nunito-sans-italic.woff2 +0 -0
  858. package/.storybook-static/nunito-sans-regular.woff2 +0 -0
  859. package/.storybook-static/project.json +0 -1
  860. package/.storybook-static/sb-addons/a11y-1/manager-bundle.js +0 -57
  861. package/.storybook-static/sb-addons/links-2/manager-bundle.js +0 -3
  862. package/.storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +0 -628
  863. package/.storybook-static/sb-addons/themes-3/manager-bundle.js +0 -3
  864. package/.storybook-static/sb-common-assets/favicon-wrapper.svg +0 -46
  865. package/.storybook-static/sb-common-assets/favicon.svg +0 -1
  866. package/.storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  867. package/.storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  868. package/.storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  869. package/.storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  870. package/.storybook-static/sb-manager/globals-runtime.js +0 -77935
  871. package/.storybook-static/sb-manager/globals.js +0 -24
  872. package/.storybook-static/sb-manager/manager-stores.js +0 -23
  873. package/.storybook-static/sb-manager/runtime.js +0 -20404
  874. package/.storybook-static/vite-inject-mocker-entry.js +0 -2
  875. package/src/atoms/components/Icon/icons/microphone.vue +0 -5
  876. package/src/atoms/components/VoiceToTextButton/VoiceToTextButton.stories.js +0 -105
  877. package/src/atoms/components/VoiceToTextButton/VoiceToTextButton.vue +0 -121
  878. package/src/useVoiceToText.js +0 -174
@@ -1,382 +1,382 @@
1
- # DY-957 Phase 2: fe-shared-lib Wizard Changes
2
-
3
- ## Goal
4
-
5
- Add an optional keywords step to the BYO upload wizard in `@designcrowd/fe-shared-lib`. The step fetches AI keyword suggestions, displays them in an editable textbox, and emits the keywords for the consumer to use. The step is opt-in via a `showKeywordsStep` prop (default `false`).
6
-
7
- ## Repo
8
-
9
- `fe-shared-lib`
10
-
11
- ## Prerequisites
12
-
13
- - Phase 1 backend endpoint deployed (needed for integration testing, not for Storybook development)
14
-
15
- ## Implementation Decisions (Confirmed)
16
-
17
- - The keyword suggestions endpoint path is `/api/ai-keyword-suggestion` (this is intentionally **not** maker-prefixed).
18
- - `templateType` is required end-to-end; consumers must pass a non-null default value.
19
- - Continue action in the keywords step must be disabled while suggestions are loading.
20
- - Storybook coverage for `LogoKeywords` is required for this task (not optional).
21
- - Publishing/version bump and final validation are human-owned follow-up steps, not coding-agent scope.
22
-
23
- ---
24
-
25
- ## Tasks
26
-
27
- ### 1. Add API constant
28
-
29
- **File**: `src/experiences/constants/api.js`
30
-
31
- Add one line to the exported object:
32
-
33
- ```js
34
- KEYWORD_SUGGESTIONS_API_URL: '/api/ai-keyword-suggestion',
35
- ```
36
-
37
- ### 2. Add `getKeywordSuggestionsAsync` to API client
38
-
39
- **File**: `src/experiences/clients/brand-crowd-api.client.js`
40
-
41
- Add a new async method following the `searchDomainNamesByKeywordAsync` pattern (lines 71-117):
42
-
43
- ```js
44
- const getKeywordSuggestionsAsync = async ({ businessName, templateType }) => {
45
- try {
46
- const url = `${API.KEYWORD_SUGGESTIONS_API_URL}?businessName=${encodeURIComponent(businessName)}&templateType=${encodeURIComponent(templateType)}`;
47
- const response = await getAxios()({
48
- method: 'get',
49
- url,
50
- });
51
- return response.data;
52
- } catch (error) {
53
- return false;
54
- }
55
- };
56
- ```
57
-
58
- Behavior note: if `businessName` is empty, still call the endpoint with `businessName=` and continue normally (expected to return empty suggestions).
59
-
60
- Add `getKeywordSuggestionsAsync` to the default export object (lines 119-124).
61
-
62
- ### 3. Create `LogoKeywords.vue` component
63
-
64
- **File**: Create `src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.vue`
65
-
66
- Clone the structure from `LogoBusinessText.vue` (same directory). The component should:
67
-
68
- **Props:**
69
- - `progressLabel` (String, required) — "Step X of Y"
70
- - `eventCategory` (String, required) — for analytics tracking
71
- - `savedKeywords` (String, optional, default: `null`) — restored keywords if user navigated back then forward
72
- - `businessName` (String, optional, default: `''`) — from previous step (may be empty)
73
- - `templateType` (String, required) — e.g. "business card"
74
-
75
- Behavior note: keep current wizard behavior where empty business name is allowed; do not block navigation if no business name is entered.
76
-
77
- **Data:**
78
- - `keywordsText: ''` — the editable comma-separated keywords string
79
- - `isLoading: false`
80
-
81
- **Mounted lifecycle:**
82
- ```js
83
- async mounted() {
84
- if (this.savedKeywords !== null) {
85
- this.keywordsText = this.savedKeywords;
86
- return;
87
- }
88
- this.isLoading = true;
89
- try {
90
- const result = await brandCrowdClient.getKeywordSuggestionsAsync({
91
- businessName: this.businessName,
92
- templateType: this.templateType,
93
- });
94
- if (result && result.keywords && result.keywords.length > 0) {
95
- this.keywordsText = result.keywords.join(', ');
96
- }
97
- } catch {
98
- // leave keywordsText as empty string
99
- } finally {
100
- this.isLoading = false;
101
- }
102
- },
103
- ```
104
-
105
- **Methods:**
106
- - `back()` — emits `on-go-back`
107
- - `save()` — no-op if `isLoading` is true; otherwise tracks event with `eventAction: 'keywords'`, `eventLabel: 'Clicked_Continue'`, then emits `on-save` with `{ keywords: this.keywordsText }`
108
- - `onKeywordsKeyUp(e)` — if `e.key === 'Enter'` and `!isLoading`, call `this.save()`
109
-
110
- **Template:** Mirror `LogoBusinessText.vue` layout:
111
- - Progress label header: `{{ progressLabel }}`
112
- - Heading: `{{ uploadYourLogoTr('keywords') }}`
113
- - Description: `{{ uploadYourLogoTr('keywordsDescription') }}`
114
- - Single `<input>` or `<textarea>` bound to `keywordsText`, disabled while `isLoading`, with `@keyup="onKeywordsKeyUp"`
115
- - Show a loading indicator (spinner or skeleton) when `isLoading` is true
116
- - Footer with Back button (emits `on-go-back`) and Continue button (calls `save()`)
117
- - Continue button must be disabled while `isLoading` is `true`
118
-
119
- **i18n:** Use the `uploadYourLogoTr` mixin (same as `LogoBusinessText.vue`).
120
-
121
- ### 4. Add i18n translation keys
122
-
123
- **Files**: All 7 locale files in `src/experiences/components/UploadYourLogoOnBoarding/i18n/`
124
-
125
- Add two new keys inside the `"uploadYourLogo"` object in **every** locale file, using the **English text** in all of them:
126
-
127
- ```json
128
- "keywords": "Keywords",
129
- "keywordsDescription": "Add keywords related to your business and logo"
130
- ```
131
-
132
- Add this identical English text to:
133
- - `upload-your-logo.json` (English)
134
- - `upload-your-logo.de-DE.json`
135
- - `upload-your-logo.es-ES.json`
136
- - `upload-your-logo.fr-CA.json`
137
- - `upload-your-logo.fr-FR.json`
138
- - `upload-your-logo.pt-BR.json`
139
- - `upload-your-logo.pt-PT.json`
140
-
141
- **Do not translate** — a separate process will sweep the codebase and replace the English placeholders with proper translations.
142
-
143
- After editing all files, run `npm run bundle-translation` to regenerate bundled translation files.
144
-
145
- ### 5. Update `UploadYourLogoOnBoarding.vue` orchestrator
146
-
147
- **File**: `src/experiences/components/UploadYourLogoOnBoarding/UploadYourLogoOnBoarding.vue`
148
-
149
- #### 5a. Add new props (after existing props at lines 115-136)
150
-
151
- ```js
152
- showKeywordsStep: {
153
- type: Boolean,
154
- required: false,
155
- default: false,
156
- },
157
- templateType: {
158
- type: String,
159
- required: true,
160
- },
161
- ```
162
-
163
- Note: `templateType` must be provided by the consumer (fallback/defaulting happens in consumer app config, not in this component).
164
-
165
- #### 5b. Update `data()` (lines 142-154)
166
-
167
- Change `totalNumSteps` to be dynamic:
168
- ```js
169
- totalNumSteps: this.useDropzone
170
- ? (this.showKeywordsStep ? 6 : 5)
171
- : (this.showKeywordsStep ? 5 : 4),
172
- ```
173
-
174
- Add new data property:
175
- ```js
176
- savedKeywords: null,
177
- ```
178
-
179
- #### 5c. Add computed property for brand colours step number
180
-
181
- ```js
182
- brandColoursStep() {
183
- return this.showKeywordsStep ? 5 : 4;
184
- },
185
- ```
186
-
187
- #### 5d. Update `currentStepProgressLabel` (lines 157-163)
188
-
189
- Replace hard-coded totals with `this.totalNumSteps`:
190
- ```js
191
- currentStepProgressLabel() {
192
- if (this.includeDropzoneInModal) {
193
- const currentStepDisplay = this.currentStep === 0 ? 1 : this.currentStep;
194
- return this.uploadYourLogoTr('stepOf', { CURRENT: currentStepDisplay, TOTAL: this.totalNumSteps });
195
- }
196
- return this.uploadYourLogoTr('stepOf', { CURRENT: this.currentStep - 1, TOTAL: this.totalNumSteps });
197
- },
198
- ```
199
-
200
- #### 5e. Update `currentStepTrackingLabel` (lines 170-176)
201
-
202
- Make it keyword-step aware:
203
- ```js
204
- currentStepTrackingLabel() {
205
- const stepTwoLabel = this.currentStep === 2 && !this.canCropImage ? 'previewLogo' : 'cropLogo';
206
- const steps = this.showKeywordsStep
207
- ? ['logoUploader', stepTwoLabel, 'businessName', 'keywords', 'brandColors']
208
- : ['logoUploader', stepTwoLabel, 'businessName', 'brandColors'];
209
- return steps[this.currentStep - 1];
210
- },
211
- ```
212
-
213
- #### 5f. Import LogoKeywords component
214
-
215
- Add import at top of script:
216
- ```js
217
- import LogoKeywords from './LogoKeywords.vue';
218
- ```
219
-
220
- Register in `components: { ... }`.
221
-
222
- #### 5g. Update `onSaveBusinessText` method (lines 251-255)
223
-
224
- No change needed — it already sets `currentStep = 4`. When `showKeywordsStep` is true, step 4 shows LogoKeywords. When false, step 4 shows LogoBusinessBrandColours (via `brandColoursStep` computed).
225
-
226
- #### 5h. Add `onSaveKeywords` method
227
-
228
- ```js
229
- onSaveKeywords(payload) {
230
- this.$emit('on-save-keywords', { keywords: payload.keywords });
231
- this.savedKeywords = payload.keywords;
232
- this.currentStep = this.brandColoursStep;
233
- },
234
- ```
235
-
236
- #### 5i. Add `onGoBackFromBrandColours` method (or rename existing `onGoBackToBusinessText` usage on brand colours)
237
-
238
- ```js
239
- onGoBackFromBrandColours() {
240
- this.$emit('on-back', { currentStepTrackingLabel: this.currentStepTrackingLabel });
241
- this.currentStep = this.showKeywordsStep ? 4 : 3;
242
- },
243
- ```
244
-
245
- **Important**: The brand colours component currently uses `@on-go-back="onGoBackToBusinessText"` (which sets `currentStep = 3`). Change this to `@on-go-back="onGoBackFromBrandColours"` so it goes back to keywords (step 4) when the keywords step is enabled.
246
-
247
- #### 5j. Update template — add LogoKeywords between BusinessText and BrandColours
248
-
249
- Add after the LogoBusinessText block and before LogoBusinessBrandColours:
250
-
251
- ```vue
252
- <LogoKeywords
253
- v-if="showKeywordsStep && !isAttemptingToExit && currentStep === 4 && uploadedLogoData"
254
- :progress-label="currentStepProgressLabel"
255
- :event-category="eventCategory"
256
- :saved-keywords="savedKeywords"
257
- :business-name="(savedBusinessText && savedBusinessText.businessText) || ''"
258
- :template-type="templateType"
259
- @on-go-back="onGoBackToBusinessText"
260
- @on-save="onSaveKeywords"
261
- />
262
- ```
263
-
264
- #### 5k. Update template — change BrandColours step condition
265
-
266
- Change `currentStep === 4` to `currentStep === brandColoursStep`:
267
-
268
- ```vue
269
- <LogoBusinessBrandColours
270
- v-if="!isAttemptingToExit && currentStep === brandColoursStep && uploadedLogoData && !isCurrentlySaving"
271
- ...
272
- @on-go-back="onGoBackFromBrandColours"
273
- ...
274
- />
275
- ```
276
-
277
- #### 5l. Update `reset()` method (lines 290-299)
278
-
279
- Add:
280
- ```js
281
- this.savedKeywords = null;
282
- ```
283
-
284
- ### 6. Update `UploadYourLogoApplication.vue` wrapper
285
-
286
- **File**: `src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.vue`
287
-
288
- #### 6a. Add pass-through props (after existing props at lines 29-45)
289
-
290
- ```js
291
- showKeywordsStep: {
292
- type: Boolean,
293
- required: false,
294
- default: false,
295
- },
296
- templateType: {
297
- type: String,
298
- required: true,
299
- },
300
- ```
301
-
302
- Note: `templateType` must be provided by the consumer (fallback/defaulting happens in consumer app config, not in this component).
303
-
304
- #### 6b. Pass props to `UploadYourLogoOnBoarding` in template
305
-
306
- Add to the existing `<UploadYourLogoOnBoarding>` tag:
307
- ```vue
308
- :show-keywords-step="showKeywordsStep"
309
- :template-type="templateType"
310
- @on-save-keywords="onSaveKeywords"
311
- ```
312
-
313
- #### 6c. Add event handler method
314
-
315
- ```js
316
- onSaveKeywords(payload) {
317
- this.$emit('on-save-keywords', payload);
318
- },
319
- ```
320
-
321
- ### 7. Add Storybook story (required)
322
-
323
- **File**: Create `src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.stories.js`
324
-
325
- Create a story following standard Storybook patterns covering:
326
- - Loading state (mock delayed API)
327
- - Populated state (mock successful response with keywords)
328
- - Empty state (mock failed response)
329
- - Pre-populated state (savedKeywords prop set)
330
-
331
- ### 8. Publish package
332
-
333
- After all changes are verified (human release process; **not** a coding-agent task):
334
- 1. Bump package version in `package.json`
335
- 2. Run `npm run bundle-translation` to regenerate i18n bundles
336
- 3. Perform manual validation in Storybook/integration context (no automated test runner in this repo)
337
- 4. Publish the new version of `@designcrowd/fe-shared-lib`
338
-
339
- ---
340
-
341
- ## Step Number Reference Table
342
-
343
- ### When `showKeywordsStep = false` (default, unchanged):
344
-
345
- | currentStep | Component | Progress Display |
346
- |---|---|---|
347
- | 1 | LogoUploader | Step 0 of 4 |
348
- | 2 | LogoCropper/Preview | Step 1 of 4 |
349
- | 3 | LogoBusinessText | Step 2 of 4 |
350
- | 4 | LogoBusinessBrandColours | Step 3 of 4 |
351
-
352
- ### When `showKeywordsStep = true`:
353
-
354
- | currentStep | Component | Progress Display |
355
- |---|---|---|
356
- | 1 | LogoUploader | Step 0 of 5 |
357
- | 2 | LogoCropper/Preview | Step 1 of 5 |
358
- | 3 | LogoBusinessText | Step 2 of 5 |
359
- | **4** | **LogoKeywords (NEW)** | **Step 3 of 5** |
360
- | 5 | LogoBusinessBrandColours | Step 4 of 5 |
361
-
362
- Note: The `useDropzone` variant adds step 0 (dropzone) and shifts totals by +1. The same logic applies — `totalNumSteps` handles this via the ternary in `data()`.
363
-
364
- ---
365
-
366
- ## Files Changed
367
-
368
- | File | Change |
369
- |---|---|
370
- | `src/experiences/constants/api.js` | Add `KEYWORD_SUGGESTIONS_API_URL` |
371
- | `src/experiences/clients/brand-crowd-api.client.js` | Add `getKeywordSuggestionsAsync` method + export |
372
- | `src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.vue` | **New file** — keywords step component |
373
- | `src/experiences/components/UploadYourLogoOnBoarding/UploadYourLogoOnBoarding.vue` | New props, step routing, computed properties, methods, template |
374
- | `src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.vue` | Pass-through props + event |
375
- | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.json` | Add `keywords`, `keywordsDescription` |
376
- | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.de-DE.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
377
- | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.es-ES.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
378
- | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-CA.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
379
- | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-FR.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
380
- | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-BR.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
381
- | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-PT.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
382
- | `src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.stories.js` | **New file** (required) |
1
+ # DY-957 Phase 2: fe-shared-lib Wizard Changes
2
+
3
+ ## Goal
4
+
5
+ Add an optional keywords step to the BYO upload wizard in `@designcrowd/fe-shared-lib`. The step fetches AI keyword suggestions, displays them in an editable textbox, and emits the keywords for the consumer to use. The step is opt-in via a `showKeywordsStep` prop (default `false`).
6
+
7
+ ## Repo
8
+
9
+ `fe-shared-lib`
10
+
11
+ ## Prerequisites
12
+
13
+ - Phase 1 backend endpoint deployed (needed for integration testing, not for Storybook development)
14
+
15
+ ## Implementation Decisions (Confirmed)
16
+
17
+ - The keyword suggestions endpoint path is `/api/ai-keyword-suggestion` (this is intentionally **not** maker-prefixed).
18
+ - `templateType` is required end-to-end; consumers must pass a non-null default value.
19
+ - Continue action in the keywords step must be disabled while suggestions are loading.
20
+ - Storybook coverage for `LogoKeywords` is required for this task (not optional).
21
+ - Publishing/version bump and final validation are human-owned follow-up steps, not coding-agent scope.
22
+
23
+ ---
24
+
25
+ ## Tasks
26
+
27
+ ### 1. Add API constant
28
+
29
+ **File**: `src/experiences/constants/api.js`
30
+
31
+ Add one line to the exported object:
32
+
33
+ ```js
34
+ KEYWORD_SUGGESTIONS_API_URL: '/api/ai-keyword-suggestion',
35
+ ```
36
+
37
+ ### 2. Add `getKeywordSuggestionsAsync` to API client
38
+
39
+ **File**: `src/experiences/clients/brand-crowd-api.client.js`
40
+
41
+ Add a new async method following the `searchDomainNamesByKeywordAsync` pattern (lines 71-117):
42
+
43
+ ```js
44
+ const getKeywordSuggestionsAsync = async ({ businessName, templateType }) => {
45
+ try {
46
+ const url = `${API.KEYWORD_SUGGESTIONS_API_URL}?businessName=${encodeURIComponent(businessName)}&templateType=${encodeURIComponent(templateType)}`;
47
+ const response = await getAxios()({
48
+ method: 'get',
49
+ url,
50
+ });
51
+ return response.data;
52
+ } catch (error) {
53
+ return false;
54
+ }
55
+ };
56
+ ```
57
+
58
+ Behavior note: if `businessName` is empty, still call the endpoint with `businessName=` and continue normally (expected to return empty suggestions).
59
+
60
+ Add `getKeywordSuggestionsAsync` to the default export object (lines 119-124).
61
+
62
+ ### 3. Create `LogoKeywords.vue` component
63
+
64
+ **File**: Create `src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.vue`
65
+
66
+ Clone the structure from `LogoBusinessText.vue` (same directory). The component should:
67
+
68
+ **Props:**
69
+ - `progressLabel` (String, required) — "Step X of Y"
70
+ - `eventCategory` (String, required) — for analytics tracking
71
+ - `savedKeywords` (String, optional, default: `null`) — restored keywords if user navigated back then forward
72
+ - `businessName` (String, optional, default: `''`) — from previous step (may be empty)
73
+ - `templateType` (String, required) — e.g. "business card"
74
+
75
+ Behavior note: keep current wizard behavior where empty business name is allowed; do not block navigation if no business name is entered.
76
+
77
+ **Data:**
78
+ - `keywordsText: ''` — the editable comma-separated keywords string
79
+ - `isLoading: false`
80
+
81
+ **Mounted lifecycle:**
82
+ ```js
83
+ async mounted() {
84
+ if (this.savedKeywords !== null) {
85
+ this.keywordsText = this.savedKeywords;
86
+ return;
87
+ }
88
+ this.isLoading = true;
89
+ try {
90
+ const result = await brandCrowdClient.getKeywordSuggestionsAsync({
91
+ businessName: this.businessName,
92
+ templateType: this.templateType,
93
+ });
94
+ if (result && result.keywords && result.keywords.length > 0) {
95
+ this.keywordsText = result.keywords.join(', ');
96
+ }
97
+ } catch {
98
+ // leave keywordsText as empty string
99
+ } finally {
100
+ this.isLoading = false;
101
+ }
102
+ },
103
+ ```
104
+
105
+ **Methods:**
106
+ - `back()` — emits `on-go-back`
107
+ - `save()` — no-op if `isLoading` is true; otherwise tracks event with `eventAction: 'keywords'`, `eventLabel: 'Clicked_Continue'`, then emits `on-save` with `{ keywords: this.keywordsText }`
108
+ - `onKeywordsKeyUp(e)` — if `e.key === 'Enter'` and `!isLoading`, call `this.save()`
109
+
110
+ **Template:** Mirror `LogoBusinessText.vue` layout:
111
+ - Progress label header: `{{ progressLabel }}`
112
+ - Heading: `{{ uploadYourLogoTr('keywords') }}`
113
+ - Description: `{{ uploadYourLogoTr('keywordsDescription') }}`
114
+ - Single `<input>` or `<textarea>` bound to `keywordsText`, disabled while `isLoading`, with `@keyup="onKeywordsKeyUp"`
115
+ - Show a loading indicator (spinner or skeleton) when `isLoading` is true
116
+ - Footer with Back button (emits `on-go-back`) and Continue button (calls `save()`)
117
+ - Continue button must be disabled while `isLoading` is `true`
118
+
119
+ **i18n:** Use the `uploadYourLogoTr` mixin (same as `LogoBusinessText.vue`).
120
+
121
+ ### 4. Add i18n translation keys
122
+
123
+ **Files**: All 7 locale files in `src/experiences/components/UploadYourLogoOnBoarding/i18n/`
124
+
125
+ Add two new keys inside the `"uploadYourLogo"` object in **every** locale file, using the **English text** in all of them:
126
+
127
+ ```json
128
+ "keywords": "Keywords",
129
+ "keywordsDescription": "Add keywords related to your business and logo"
130
+ ```
131
+
132
+ Add this identical English text to:
133
+ - `upload-your-logo.json` (English)
134
+ - `upload-your-logo.de-DE.json`
135
+ - `upload-your-logo.es-ES.json`
136
+ - `upload-your-logo.fr-CA.json`
137
+ - `upload-your-logo.fr-FR.json`
138
+ - `upload-your-logo.pt-BR.json`
139
+ - `upload-your-logo.pt-PT.json`
140
+
141
+ **Do not translate** — a separate process will sweep the codebase and replace the English placeholders with proper translations.
142
+
143
+ After editing all files, run `npm run bundle-translation` to regenerate bundled translation files.
144
+
145
+ ### 5. Update `UploadYourLogoOnBoarding.vue` orchestrator
146
+
147
+ **File**: `src/experiences/components/UploadYourLogoOnBoarding/UploadYourLogoOnBoarding.vue`
148
+
149
+ #### 5a. Add new props (after existing props at lines 115-136)
150
+
151
+ ```js
152
+ showKeywordsStep: {
153
+ type: Boolean,
154
+ required: false,
155
+ default: false,
156
+ },
157
+ templateType: {
158
+ type: String,
159
+ required: true,
160
+ },
161
+ ```
162
+
163
+ Note: `templateType` must be provided by the consumer (fallback/defaulting happens in consumer app config, not in this component).
164
+
165
+ #### 5b. Update `data()` (lines 142-154)
166
+
167
+ Change `totalNumSteps` to be dynamic:
168
+ ```js
169
+ totalNumSteps: this.useDropzone
170
+ ? (this.showKeywordsStep ? 6 : 5)
171
+ : (this.showKeywordsStep ? 5 : 4),
172
+ ```
173
+
174
+ Add new data property:
175
+ ```js
176
+ savedKeywords: null,
177
+ ```
178
+
179
+ #### 5c. Add computed property for brand colours step number
180
+
181
+ ```js
182
+ brandColoursStep() {
183
+ return this.showKeywordsStep ? 5 : 4;
184
+ },
185
+ ```
186
+
187
+ #### 5d. Update `currentStepProgressLabel` (lines 157-163)
188
+
189
+ Replace hard-coded totals with `this.totalNumSteps`:
190
+ ```js
191
+ currentStepProgressLabel() {
192
+ if (this.includeDropzoneInModal) {
193
+ const currentStepDisplay = this.currentStep === 0 ? 1 : this.currentStep;
194
+ return this.uploadYourLogoTr('stepOf', { CURRENT: currentStepDisplay, TOTAL: this.totalNumSteps });
195
+ }
196
+ return this.uploadYourLogoTr('stepOf', { CURRENT: this.currentStep - 1, TOTAL: this.totalNumSteps });
197
+ },
198
+ ```
199
+
200
+ #### 5e. Update `currentStepTrackingLabel` (lines 170-176)
201
+
202
+ Make it keyword-step aware:
203
+ ```js
204
+ currentStepTrackingLabel() {
205
+ const stepTwoLabel = this.currentStep === 2 && !this.canCropImage ? 'previewLogo' : 'cropLogo';
206
+ const steps = this.showKeywordsStep
207
+ ? ['logoUploader', stepTwoLabel, 'businessName', 'keywords', 'brandColors']
208
+ : ['logoUploader', stepTwoLabel, 'businessName', 'brandColors'];
209
+ return steps[this.currentStep - 1];
210
+ },
211
+ ```
212
+
213
+ #### 5f. Import LogoKeywords component
214
+
215
+ Add import at top of script:
216
+ ```js
217
+ import LogoKeywords from './LogoKeywords.vue';
218
+ ```
219
+
220
+ Register in `components: { ... }`.
221
+
222
+ #### 5g. Update `onSaveBusinessText` method (lines 251-255)
223
+
224
+ No change needed — it already sets `currentStep = 4`. When `showKeywordsStep` is true, step 4 shows LogoKeywords. When false, step 4 shows LogoBusinessBrandColours (via `brandColoursStep` computed).
225
+
226
+ #### 5h. Add `onSaveKeywords` method
227
+
228
+ ```js
229
+ onSaveKeywords(payload) {
230
+ this.$emit('on-save-keywords', { keywords: payload.keywords });
231
+ this.savedKeywords = payload.keywords;
232
+ this.currentStep = this.brandColoursStep;
233
+ },
234
+ ```
235
+
236
+ #### 5i. Add `onGoBackFromBrandColours` method (or rename existing `onGoBackToBusinessText` usage on brand colours)
237
+
238
+ ```js
239
+ onGoBackFromBrandColours() {
240
+ this.$emit('on-back', { currentStepTrackingLabel: this.currentStepTrackingLabel });
241
+ this.currentStep = this.showKeywordsStep ? 4 : 3;
242
+ },
243
+ ```
244
+
245
+ **Important**: The brand colours component currently uses `@on-go-back="onGoBackToBusinessText"` (which sets `currentStep = 3`). Change this to `@on-go-back="onGoBackFromBrandColours"` so it goes back to keywords (step 4) when the keywords step is enabled.
246
+
247
+ #### 5j. Update template — add LogoKeywords between BusinessText and BrandColours
248
+
249
+ Add after the LogoBusinessText block and before LogoBusinessBrandColours:
250
+
251
+ ```vue
252
+ <LogoKeywords
253
+ v-if="showKeywordsStep && !isAttemptingToExit && currentStep === 4 && uploadedLogoData"
254
+ :progress-label="currentStepProgressLabel"
255
+ :event-category="eventCategory"
256
+ :saved-keywords="savedKeywords"
257
+ :business-name="(savedBusinessText && savedBusinessText.businessText) || ''"
258
+ :template-type="templateType"
259
+ @on-go-back="onGoBackToBusinessText"
260
+ @on-save="onSaveKeywords"
261
+ />
262
+ ```
263
+
264
+ #### 5k. Update template — change BrandColours step condition
265
+
266
+ Change `currentStep === 4` to `currentStep === brandColoursStep`:
267
+
268
+ ```vue
269
+ <LogoBusinessBrandColours
270
+ v-if="!isAttemptingToExit && currentStep === brandColoursStep && uploadedLogoData && !isCurrentlySaving"
271
+ ...
272
+ @on-go-back="onGoBackFromBrandColours"
273
+ ...
274
+ />
275
+ ```
276
+
277
+ #### 5l. Update `reset()` method (lines 290-299)
278
+
279
+ Add:
280
+ ```js
281
+ this.savedKeywords = null;
282
+ ```
283
+
284
+ ### 6. Update `UploadYourLogoApplication.vue` wrapper
285
+
286
+ **File**: `src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.vue`
287
+
288
+ #### 6a. Add pass-through props (after existing props at lines 29-45)
289
+
290
+ ```js
291
+ showKeywordsStep: {
292
+ type: Boolean,
293
+ required: false,
294
+ default: false,
295
+ },
296
+ templateType: {
297
+ type: String,
298
+ required: true,
299
+ },
300
+ ```
301
+
302
+ Note: `templateType` must be provided by the consumer (fallback/defaulting happens in consumer app config, not in this component).
303
+
304
+ #### 6b. Pass props to `UploadYourLogoOnBoarding` in template
305
+
306
+ Add to the existing `<UploadYourLogoOnBoarding>` tag:
307
+ ```vue
308
+ :show-keywords-step="showKeywordsStep"
309
+ :template-type="templateType"
310
+ @on-save-keywords="onSaveKeywords"
311
+ ```
312
+
313
+ #### 6c. Add event handler method
314
+
315
+ ```js
316
+ onSaveKeywords(payload) {
317
+ this.$emit('on-save-keywords', payload);
318
+ },
319
+ ```
320
+
321
+ ### 7. Add Storybook story (required)
322
+
323
+ **File**: Create `src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.stories.js`
324
+
325
+ Create a story following standard Storybook patterns covering:
326
+ - Loading state (mock delayed API)
327
+ - Populated state (mock successful response with keywords)
328
+ - Empty state (mock failed response)
329
+ - Pre-populated state (savedKeywords prop set)
330
+
331
+ ### 8. Publish package
332
+
333
+ After all changes are verified (human release process; **not** a coding-agent task):
334
+ 1. Bump package version in `package.json`
335
+ 2. Run `npm run bundle-translation` to regenerate i18n bundles
336
+ 3. Perform manual validation in Storybook/integration context (no automated test runner in this repo)
337
+ 4. Publish the new version of `@designcrowd/fe-shared-lib`
338
+
339
+ ---
340
+
341
+ ## Step Number Reference Table
342
+
343
+ ### When `showKeywordsStep = false` (default, unchanged):
344
+
345
+ | currentStep | Component | Progress Display |
346
+ |---|---|---|
347
+ | 1 | LogoUploader | Step 0 of 4 |
348
+ | 2 | LogoCropper/Preview | Step 1 of 4 |
349
+ | 3 | LogoBusinessText | Step 2 of 4 |
350
+ | 4 | LogoBusinessBrandColours | Step 3 of 4 |
351
+
352
+ ### When `showKeywordsStep = true`:
353
+
354
+ | currentStep | Component | Progress Display |
355
+ |---|---|---|
356
+ | 1 | LogoUploader | Step 0 of 5 |
357
+ | 2 | LogoCropper/Preview | Step 1 of 5 |
358
+ | 3 | LogoBusinessText | Step 2 of 5 |
359
+ | **4** | **LogoKeywords (NEW)** | **Step 3 of 5** |
360
+ | 5 | LogoBusinessBrandColours | Step 4 of 5 |
361
+
362
+ Note: The `useDropzone` variant adds step 0 (dropzone) and shifts totals by +1. The same logic applies — `totalNumSteps` handles this via the ternary in `data()`.
363
+
364
+ ---
365
+
366
+ ## Files Changed
367
+
368
+ | File | Change |
369
+ |---|---|
370
+ | `src/experiences/constants/api.js` | Add `KEYWORD_SUGGESTIONS_API_URL` |
371
+ | `src/experiences/clients/brand-crowd-api.client.js` | Add `getKeywordSuggestionsAsync` method + export |
372
+ | `src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.vue` | **New file** — keywords step component |
373
+ | `src/experiences/components/UploadYourLogoOnBoarding/UploadYourLogoOnBoarding.vue` | New props, step routing, computed properties, methods, template |
374
+ | `src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.vue` | Pass-through props + event |
375
+ | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.json` | Add `keywords`, `keywordsDescription` |
376
+ | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.de-DE.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
377
+ | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.es-ES.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
378
+ | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-CA.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
379
+ | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-FR.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
380
+ | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-BR.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
381
+ | `src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-PT.json` | Add `keywords`, `keywordsDescription` (English placeholder) |
382
+ | `src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.stories.js` | **New file** (required) |