@designcrowd/fe-shared-lib 1.5.35 → 1.5.36
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.
- package/.eslintrc.js +36 -36
- package/.github/workflows/auto-merge.yml +52 -52
- package/.github/workflows/claude.yml +72 -72
- package/.prettierrc.js +7 -7
- package/.storybook/main.ts +36 -36
- package/.storybook/preview-head-master.html +4 -4
- package/.storybook/preview-head-publish-master.html +4 -4
- package/.storybook/preview-head-publish.html +9 -9
- package/.storybook/preview-head.html +9 -9
- package/.storybook/preview.js +53 -53
- package/.storybook-static/css/.keepme +0 -0
- package/CLAUDE.md +94 -94
- package/Dockerfile +43 -43
- package/README.md +103 -103
- package/buildspec.yml +47 -47
- package/dist/css/tailwind-brandCrowd.css +487 -559
- package/dist/css/tailwind-brandPage.css +409 -469
- package/dist/css/tailwind-crazyDomains.css +487 -559
- package/dist/css/tailwind-designCom.css +487 -559
- package/dist/css/tailwind-designCrowd.css +487 -559
- package/docs/plans/DY-957-plan-phase-2-fe-shared-lib.md +382 -382
- package/index.cjs +16 -16
- package/index.js +62 -62
- package/nodemon.translation.json +6 -6
- package/npmrc +0 -0
- package/package.json +115 -115
- package/postcss.config.js +5 -5
- package/public/css/.keepme +0 -0
- package/public/css/tailwind-brandCrowd.css +523 -548
- package/public/css/tailwind-brandPage.css +420 -461
- package/public/css/tailwind-crazyDomains.css +523 -548
- package/public/css/tailwind-designCom.css +523 -548
- package/public/css/tailwind-designCrowd.css +523 -548
- package/src/atoms/components/AiPoweredLoader/AiPoweredLoader.stories.js +364 -364
- package/src/atoms/components/AiPoweredLoader/AiPoweredLoader.vue +296 -296
- package/src/atoms/components/Button/Button.vue +341 -341
- package/src/atoms/components/Button/ButtonVariant.mixin.vue +126 -126
- package/src/atoms/components/Button/Buttons.stories.js +828 -828
- package/src/atoms/components/Button/ButtonsCrazyDomains.stories.js +117 -117
- package/src/atoms/components/Button/variants/ButtonAi.vue +63 -63
- package/src/atoms/components/Button/variants/ButtonDarkModePill.vue +52 -52
- package/src/atoms/components/Button/variants/ButtonFlat.vue +65 -65
- package/src/atoms/components/Button/variants/ButtonGray.vue +64 -64
- package/src/atoms/components/Button/variants/ButtonInfo.vue +51 -51
- package/src/atoms/components/Button/variants/ButtonInfoFilled.vue +63 -63
- package/src/atoms/components/Button/variants/ButtonNoBorder.vue +65 -65
- package/src/atoms/components/Button/variants/ButtonOutline.vue +62 -62
- package/src/atoms/components/Button/variants/ButtonOutlineNoHover.vue +62 -62
- package/src/atoms/components/Button/variants/ButtonOutlinePrimary.vue +53 -53
- package/src/atoms/components/Button/variants/ButtonOutlineSuccess.vue +54 -54
- package/src/atoms/components/Button/variants/ButtonPill.vue +52 -52
- package/src/atoms/components/Button/variants/ButtonPrimary.vue +69 -69
- package/src/atoms/components/Button/variants/ButtonPrimaryWithIcon.vue +68 -68
- package/src/atoms/components/Button/variants/ButtonSecondary.vue +51 -51
- package/src/atoms/components/Button/variants/ButtonSuccess.vue +55 -55
- package/src/atoms/components/Button/variants/ButtonWarning.vue +65 -65
- package/src/atoms/components/Button/variants/crazy-domains/ButtonCrazyDomainsOutline.vue +58 -58
- package/src/atoms/components/Button/variants/crazy-domains/ButtonCrazyDomainsPrimary.vue +38 -38
- package/src/atoms/components/ButtonGroup/ButtonGroup.stories.js +575 -575
- package/src/atoms/components/ButtonGroup/ButtonGroup.vue +200 -200
- package/src/atoms/components/Carousel/Carousel.fixtures.js +53 -53
- package/src/atoms/components/Carousel/Carousel.vue +352 -352
- package/src/atoms/components/Carousel/carousel.stories.js +530 -530
- package/src/atoms/components/Checkbox/Checkbox.mixin.js +57 -57
- package/src/atoms/components/Checkbox/Checkbox.stories.js +340 -340
- package/src/atoms/components/Checkbox/Checkbox.vue +84 -84
- package/src/atoms/components/Checktile/Checktile.stories.js +79 -79
- package/src/atoms/components/Checktile/Checktile.vue +73 -73
- package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.mixin.js +38 -38
- package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.stories.js +53 -53
- package/src/atoms/components/CollapsiblePanel/CollapsiblePanel.vue +33 -33
- package/src/atoms/components/ColorPicker/ColorPicker.stories.js +89 -89
- package/src/atoms/components/ColorPicker/ColorPicker.vue +95 -95
- package/src/atoms/components/CopyToClipboardText/CopyToClipboardText.stories.js +41 -41
- package/src/atoms/components/CopyToClipboardText/CopyToClipboardText.vue +71 -71
- package/src/atoms/components/Dropdown/Dropdown.stories.js +140 -140
- package/src/atoms/components/Dropdown/Dropdown.vue +123 -123
- package/src/atoms/components/Dropdown/DropdownItem.vue +33 -33
- package/src/atoms/components/FormControl/FormControl.mixin.js +136 -136
- package/src/atoms/components/HelloBar/HelloBar.stories.js +195 -195
- package/src/atoms/components/HelloBar/HelloBar.vue +156 -156
- package/src/atoms/components/Icon/Icon.stories.js +408 -408
- package/src/atoms/components/Icon/Icon.vue +928 -924
- package/src/atoms/components/Icon/icons/about.vue +0 -0
- package/src/atoms/components/Icon/icons/add-page.vue +6 -6
- package/src/atoms/components/Icon/icons/ai.vue +6 -6
- package/src/atoms/components/Icon/icons/annotate-heart.vue +7 -7
- package/src/atoms/components/Icon/icons/arrow-down.vue +6 -6
- package/src/atoms/components/Icon/icons/arrow-left.vue +7 -7
- package/src/atoms/components/Icon/icons/arrow-right.vue +7 -7
- package/src/atoms/components/Icon/icons/arrow-top-right.vue +6 -6
- package/src/atoms/components/Icon/icons/arrow-up-underline.vue +7 -7
- package/src/atoms/components/Icon/icons/arrow-up.vue +7 -7
- package/src/atoms/components/Icon/icons/attach.vue +6 -6
- package/src/atoms/components/Icon/icons/auth-facebook-white.vue +17 -17
- package/src/atoms/components/Icon/icons/auth-facebook.vue +24 -24
- package/src/atoms/components/Icon/icons/auth-google.vue +32 -32
- package/src/atoms/components/Icon/icons/award.vue +7 -7
- package/src/atoms/components/Icon/icons/background.vue +7 -7
- package/src/atoms/components/Icon/icons/badge.vue +7 -7
- package/src/atoms/components/Icon/icons/ban.vue +0 -0
- package/src/atoms/components/Icon/icons/banner-centered.vue +6 -6
- package/src/atoms/components/Icon/icons/banner-left.vue +6 -6
- package/src/atoms/components/Icon/icons/banner.vue +7 -7
- package/src/atoms/components/Icon/icons/bc-mast.vue +7 -7
- package/src/atoms/components/Icon/icons/bezier-curve-outline.vue +7 -7
- package/src/atoms/components/Icon/icons/bezier-curve.vue +7 -7
- package/src/atoms/components/Icon/icons/briefcase.vue +7 -7
- package/src/atoms/components/Icon/icons/browser.vue +7 -7
- package/src/atoms/components/Icon/icons/brush.vue +6 -6
- package/src/atoms/components/Icon/icons/business-card-filled.vue +5 -5
- package/src/atoms/components/Icon/icons/business.vue +6 -6
- package/src/atoms/components/Icon/icons/button-justified.vue +0 -0
- package/src/atoms/components/Icon/icons/button.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-arrow-left.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-arrow-right.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-arrow.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-brushstroke-left.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-brushstroke-right.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-brushstroke.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-dashed-oval.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-dashed-rectangle.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-dashed-rounded.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-doubleline-oval.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-doubleline-rectangle.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-doubleline-rounded.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-paper-bottom.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-paper-top.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-paper.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-softshadow-oval.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-softshadow-rectangle.vue +0 -0
- package/src/atoms/components/Icon/icons/buttons/button-softshadow-rounded.vue +0 -0
- package/src/atoms/components/Icon/icons/calculator.vue +3 -3
- package/src/atoms/components/Icon/icons/calendar.vue +5 -5
- package/src/atoms/components/Icon/icons/callout-error.vue +6 -6
- package/src/atoms/components/Icon/icons/callout-info.vue +6 -6
- package/src/atoms/components/Icon/icons/callout-success.vue +8 -8
- package/src/atoms/components/Icon/icons/callout-warning.vue +6 -6
- package/src/atoms/components/Icon/icons/cap.vue +22 -22
- package/src/atoms/components/Icon/icons/card-vertical.vue +7 -7
- package/src/atoms/components/Icon/icons/card.vue +9 -9
- package/src/atoms/components/Icon/icons/cart-empty.vue +9 -9
- package/src/atoms/components/Icon/icons/check-thin.vue +7 -7
- package/src/atoms/components/Icon/icons/check.vue +3 -3
- package/src/atoms/components/Icon/icons/chevron-down.vue +7 -7
- package/src/atoms/components/Icon/icons/chevron-left.vue +7 -7
- package/src/atoms/components/Icon/icons/chevron-right-wide.vue +3 -3
- package/src/atoms/components/Icon/icons/chevron-right.vue +3 -3
- package/src/atoms/components/Icon/icons/chevron-up.vue +7 -7
- package/src/atoms/components/Icon/icons/clipboard-check.vue +6 -6
- package/src/atoms/components/Icon/icons/close.vue +6 -6
- package/src/atoms/components/Icon/icons/column-1.vue +0 -0
- package/src/atoms/components/Icon/icons/column-2.vue +0 -0
- package/src/atoms/components/Icon/icons/column-3.vue +0 -0
- package/src/atoms/components/Icon/icons/column-4.vue +0 -0
- package/src/atoms/components/Icon/icons/community.vue +5 -5
- package/src/atoms/components/Icon/icons/contact-message.vue +10 -10
- package/src/atoms/components/Icon/icons/content.vue +7 -7
- package/src/atoms/components/Icon/icons/copy.vue +10 -10
- package/src/atoms/components/Icon/icons/crazy-domains/filter.vue +6 -6
- package/src/atoms/components/Icon/icons/crazy-domains/globe.vue +6 -6
- package/src/atoms/components/Icon/icons/crazy-domains/home.vue +6 -6
- package/src/atoms/components/Icon/icons/crazy-domains/social-facebook.vue +6 -6
- package/src/atoms/components/Icon/icons/crazy-domains/social-google.vue +6 -6
- package/src/atoms/components/Icon/icons/crazy-domains/social-instagram.vue +6 -6
- package/src/atoms/components/Icon/icons/crazy-domains/social-twitter.vue +6 -6
- package/src/atoms/components/Icon/icons/crazy-domains/social-youtube.vue +6 -6
- package/src/atoms/components/Icon/icons/crop.vue +6 -6
- package/src/atoms/components/Icon/icons/crown-alt.vue +5 -5
- package/src/atoms/components/Icon/icons/crown.vue +6 -6
- package/src/atoms/components/Icon/icons/delete.vue +8 -8
- package/src/atoms/components/Icon/icons/designs.vue +6 -6
- package/src/atoms/components/Icon/icons/desktop.vue +7 -7
- package/src/atoms/components/Icon/icons/digital-business-card-filled.vue +8 -8
- package/src/atoms/components/Icon/icons/divider-thick.vue +0 -0
- package/src/atoms/components/Icon/icons/divider-thin.vue +0 -0
- package/src/atoms/components/Icon/icons/divider.vue +0 -0
- package/src/atoms/components/Icon/icons/donate.vue +6 -6
- package/src/atoms/components/Icon/icons/download.vue +5 -5
- package/src/atoms/components/Icon/icons/duplicate.vue +6 -6
- package/src/atoms/components/Icon/icons/edit-line.vue +10 -10
- package/src/atoms/components/Icon/icons/edit.vue +6 -6
- package/src/atoms/components/Icon/icons/ellipsis.vue +6 -6
- package/src/atoms/components/Icon/icons/envelope-email.vue +9 -9
- package/src/atoms/components/Icon/icons/error.vue +8 -8
- package/src/atoms/components/Icon/icons/eye-crossed.vue +7 -7
- package/src/atoms/components/Icon/icons/eye-open.vue +11 -11
- package/src/atoms/components/Icon/icons/fees.vue +6 -6
- package/src/atoms/components/Icon/icons/file-empty.vue +7 -7
- package/src/atoms/components/Icon/icons/file.vue +7 -7
- package/src/atoms/components/Icon/icons/filter.vue +7 -7
- package/src/atoms/components/Icon/icons/filters.vue +6 -6
- package/src/atoms/components/Icon/icons/flag.vue +6 -6
- package/src/atoms/components/Icon/icons/flip-horizontal.vue +7 -7
- package/src/atoms/components/Icon/icons/flip-vertical.vue +7 -7
- package/src/atoms/components/Icon/icons/folder.vue +6 -6
- package/src/atoms/components/Icon/icons/font.vue +7 -7
- package/src/atoms/components/Icon/icons/footer-centered.vue +7 -7
- package/src/atoms/components/Icon/icons/footer-left.vue +7 -7
- package/src/atoms/components/Icon/icons/form-message.vue +6 -6
- package/src/atoms/components/Icon/icons/form.vue +5 -5
- package/src/atoms/components/Icon/icons/fullscreen-exit.vue +5 -5
- package/src/atoms/components/Icon/icons/fullscreen.vue +5 -5
- package/src/atoms/components/Icon/icons/globe.vue +6 -6
- package/src/atoms/components/Icon/icons/godaddy/logo.vue +5 -5
- package/src/atoms/components/Icon/icons/group.vue +6 -6
- package/src/atoms/components/Icon/icons/hamburger-1.vue +0 -0
- package/src/atoms/components/Icon/icons/hamburger-2.vue +0 -0
- package/src/atoms/components/Icon/icons/hamburger-3.vue +0 -0
- package/src/atoms/components/Icon/icons/hamburger-4.vue +0 -0
- package/src/atoms/components/Icon/icons/hamburger.vue +7 -7
- package/src/atoms/components/Icon/icons/headphones.vue +7 -7
- package/src/atoms/components/Icon/icons/history.vue +12 -0
- package/src/atoms/components/Icon/icons/home-outline.vue +6 -6
- package/src/atoms/components/Icon/icons/home.vue +7 -7
- package/src/atoms/components/Icon/icons/icon-style-circle-bg.vue +22 -22
- package/src/atoms/components/Icon/icons/icon-style-no-bg.vue +16 -16
- package/src/atoms/components/Icon/icons/icon-style-square-bg.vue +22 -22
- package/src/atoms/components/Icon/icons/image-gallery-carousel.vue +7 -7
- package/src/atoms/components/Icon/icons/image-gallery-grid.vue +7 -7
- package/src/atoms/components/Icon/icons/image-gallery-masonry.vue +6 -6
- package/src/atoms/components/Icon/icons/image.vue +7 -7
- package/src/atoms/components/Icon/icons/images-gallery.vue +5 -5
- package/src/atoms/components/Icon/icons/images.vue +7 -7
- package/src/atoms/components/Icon/icons/info.vue +9 -9
- package/src/atoms/components/Icon/icons/jobs.vue +8 -8
- package/src/atoms/components/Icon/icons/layer-bring-front.vue +6 -6
- package/src/atoms/components/Icon/icons/layer-send-back.vue +6 -6
- package/src/atoms/components/Icon/icons/layer.vue +6 -6
- package/src/atoms/components/Icon/icons/layout/display-style-about-1.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-about-2.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-about-3.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-about-4.vue +32 -32
- package/src/atoms/components/Icon/icons/layout/display-style-about-5.vue +27 -27
- package/src/atoms/components/Icon/icons/layout/display-style-about-6.vue +27 -27
- package/src/atoms/components/Icon/icons/layout/display-style-banner-1.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-banner-2.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-banner-3.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-banner-4.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-banner-5.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-banner-6.vue +27 -27
- package/src/atoms/components/Icon/icons/layout/display-style-banner-7.vue +27 -27
- package/src/atoms/components/Icon/icons/layout/display-style-banner-8.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-banner-9.vue +20 -20
- package/src/atoms/components/Icon/icons/layout/display-style-contact-1.vue +24 -24
- package/src/atoms/components/Icon/icons/layout/display-style-contact-2.vue +24 -24
- package/src/atoms/components/Icon/icons/layout/display-style-contact-4.vue +24 -24
- package/src/atoms/components/Icon/icons/layout/display-style-contact-5.vue +39 -39
- package/src/atoms/components/Icon/icons/layout/display-style-contact-6.vue +39 -39
- package/src/atoms/components/Icon/icons/layout/display-style-images-1.vue +0 -0
- package/src/atoms/components/Icon/icons/layout/display-style-images-2.vue +0 -0
- package/src/atoms/components/Icon/icons/layout/display-style-images-3.vue +0 -0
- package/src/atoms/components/Icon/icons/layout/display-style-images-4.vue +0 -0
- package/src/atoms/components/Icon/icons/layout/display-style-images-5.vue +0 -0
- package/src/atoms/components/Icon/icons/layout/display-style-images-6.vue +0 -0
- package/src/atoms/components/Icon/icons/layout/footer/display-style-1.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/footer/display-style-2.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/header/desktop-hamburger-display-style-1.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/desktop-hamburger-display-style-2.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-1.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-2.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-3.vue +13 -13
- package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-4.vue +13 -13
- package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-5.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/desktop-tab-display-style-6.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-1.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-2.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/header/hamburger-display-style-no-logo-3.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-1.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-2.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-3.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/mobile-hamburger-display-style-4.vue +21 -21
- package/src/atoms/components/Icon/icons/layout/header/mobile-tab-display-style-1.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/mobile-tab-display-style-2.vue +17 -17
- package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-1.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-2.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/header/tab-display-style-no-logo-3.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-normal-text-center-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-normal-text-center-small.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-bottom-small-text-center-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-bottom.vue +11 -11
- package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-circle.vue +10 -10
- package/src/atoms/components/Icon/icons/layout/layout-icon-center-normal-curved-text-top.vue +11 -11
- package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-center-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-justify-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-left-normal-text-left-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-left-small-text-left-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-center-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-justify-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-right-normal-text-right-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-right-small-text-right-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-center-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-center-small.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-top-normal-text-justify-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/layout-icon-top-small-text-center-normal.vue +7 -7
- package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-1.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-2.vue +10 -10
- package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-3.vue +10 -10
- package/src/atoms/components/Icon/icons/layout/nav/hamburger/display-style-4.vue +23 -23
- package/src/atoms/components/Icon/icons/layout/nav/tab/display-style-1.vue +16 -16
- package/src/atoms/components/Icon/icons/layout/nav/tab/display-style-2.vue +7 -7
- package/src/atoms/components/Icon/icons/letterhead-filled.vue +5 -5
- package/src/atoms/components/Icon/icons/lightning.vue +7 -7
- package/src/atoms/components/Icon/icons/link-in-bio-filled.vue +8 -8
- package/src/atoms/components/Icon/icons/link.vue +6 -6
- package/src/atoms/components/Icon/icons/location.vue +6 -6
- package/src/atoms/components/Icon/icons/lock.vue +6 -6
- package/src/atoms/components/Icon/icons/logo.vue +7 -7
- package/src/atoms/components/Icon/icons/mac-command.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/align-center.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/align-justify.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/align-left.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/align-right.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/animate.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/bold.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/custom-landscape.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/email-symbol.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/email.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/eraser.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/etsy.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/facebook.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/favicon.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/flyer.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/gift-certificate.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/globe.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/image.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/instagram.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/invitation.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/invoice.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/italic.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/link.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/linkedin.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/menu.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/pause.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/phone.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/pinterest.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/play.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/postcard.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/poster.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/profile.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/qrcode.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/snapchat.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/soundcloud.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/spacing.vue +18 -18
- package/src/atoms/components/Icon/icons/maker/strikethrough.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/t-shirt.vue +32 -32
- package/src/atoms/components/Icon/icons/maker/text-background-color.vue +12 -12
- package/src/atoms/components/Icon/icons/maker/text-color.vue +14 -14
- package/src/atoms/components/Icon/icons/maker/text.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/thankyou-card.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/tiktok.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/tumblr.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/twitch.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/twitter.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/underline.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/uppercase.vue +14 -14
- package/src/atoms/components/Icon/icons/maker/video.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/whatsapp.vue +7 -7
- package/src/atoms/components/Icon/icons/maker/youtube.vue +5 -5
- package/src/atoms/components/Icon/icons/maker/zoom.vue +5 -5
- package/src/atoms/components/Icon/icons/map.vue +6 -6
- package/src/atoms/components/Icon/icons/media.vue +3 -3
- package/src/atoms/components/Icon/icons/message.vue +6 -6
- package/src/atoms/components/Icon/icons/minus-circle-light.vue +7 -7
- package/src/atoms/components/Icon/icons/minus.vue +3 -3
- package/src/atoms/components/Icon/icons/mobile.vue +5 -5
- package/src/atoms/components/Icon/icons/mug.vue +29 -29
- package/src/atoms/components/Icon/icons/opacity.vue +6 -6
- package/src/atoms/components/Icon/icons/other.vue +7 -7
- package/src/atoms/components/Icon/icons/page-blank.vue +6 -6
- package/src/atoms/components/Icon/icons/page-buttons.vue +8 -8
- package/src/atoms/components/Icon/icons/page-hamburger.vue +9 -9
- package/src/atoms/components/Icon/icons/page-tabs.vue +9 -9
- package/src/atoms/components/Icon/icons/pages.vue +6 -6
- package/src/atoms/components/Icon/icons/palette-outline.vue +7 -7
- package/src/atoms/components/Icon/icons/palette.vue +6 -6
- package/src/atoms/components/Icon/icons/pause.vue +5 -5
- package/src/atoms/components/Icon/icons/payment.vue +8 -8
- package/src/atoms/components/Icon/icons/payments-featured.vue +6 -6
- package/src/atoms/components/Icon/icons/payments-textonly.vue +8 -8
- package/src/atoms/components/Icon/icons/payments-thumbnail.vue +9 -9
- package/src/atoms/components/Icon/icons/pen-outline.vue +7 -7
- package/src/atoms/components/Icon/icons/pen-sparkle.vue +17 -17
- package/src/atoms/components/Icon/icons/pen-tool.vue +7 -7
- package/src/atoms/components/Icon/icons/pen.vue +7 -7
- package/src/atoms/components/Icon/icons/phone.vue +6 -6
- package/src/atoms/components/Icon/icons/plus-circle-light.vue +8 -8
- package/src/atoms/components/Icon/icons/plus-circle.vue +7 -7
- package/src/atoms/components/Icon/icons/plus.vue +3 -3
- package/src/atoms/components/Icon/icons/poll.vue +3 -3
- package/src/atoms/components/Icon/icons/portfolio.vue +10 -10
- package/src/atoms/components/Icon/icons/premium-content.vue +8 -8
- package/src/atoms/components/Icon/icons/preview.vue +6 -6
- package/src/atoms/components/Icon/icons/printing.vue +6 -6
- package/src/atoms/components/Icon/icons/processing.vue +5 -5
- package/src/atoms/components/Icon/icons/question-alt.vue +20 -20
- package/src/atoms/components/Icon/icons/question.vue +11 -11
- package/src/atoms/components/Icon/icons/quote.vue +0 -0
- package/src/atoms/components/Icon/icons/ratio-1-1.vue +3 -3
- package/src/atoms/components/Icon/icons/ratio-16-9.vue +1 -1
- package/src/atoms/components/Icon/icons/ratio-2-3.vue +3 -3
- package/src/atoms/components/Icon/icons/ratio-3-2.vue +3 -3
- package/src/atoms/components/Icon/icons/ratio-3-4.vue +3 -3
- package/src/atoms/components/Icon/icons/ratio-4-3.vue +3 -3
- package/src/atoms/components/Icon/icons/ratio-9-16.vue +3 -3
- package/src/atoms/components/Icon/icons/ratio-circle.vue +8 -8
- package/src/atoms/components/Icon/icons/ratio-original.vue +11 -11
- package/src/atoms/components/Icon/icons/redo.vue +6 -6
- package/src/atoms/components/Icon/icons/reload.vue +6 -6
- package/src/atoms/components/Icon/icons/reorderable.vue +5 -5
- package/src/atoms/components/Icon/icons/request-payment.vue +6 -6
- package/src/atoms/components/Icon/icons/reset.vue +6 -6
- package/src/atoms/components/Icon/icons/resize.vue +6 -6
- package/src/atoms/components/Icon/icons/save.vue +6 -0
- package/src/atoms/components/Icon/icons/search.vue +11 -11
- package/src/atoms/components/Icon/icons/secure.vue +7 -7
- package/src/atoms/components/Icon/icons/send.vue +12 -12
- package/src/atoms/components/Icon/icons/services.vue +7 -7
- package/src/atoms/components/Icon/icons/settings.vue +7 -7
- package/src/atoms/components/Icon/icons/shape.vue +5 -5
- package/src/atoms/components/Icon/icons/share.vue +9 -9
- package/src/atoms/components/Icon/icons/shield-tick.vue +6 -6
- package/src/atoms/components/Icon/icons/shop.vue +5 -5
- package/src/atoms/components/Icon/icons/sms.vue +5 -5
- package/src/atoms/components/Icon/icons/social-facebook-color.vue +9 -9
- package/src/atoms/components/Icon/icons/social-facebook.vue +5 -5
- package/src/atoms/components/Icon/icons/social-google.vue +5 -5
- package/src/atoms/components/Icon/icons/social-instagram-color.vue +24 -24
- package/src/atoms/components/Icon/icons/social-linkedin-color.vue +9 -9
- package/src/atoms/components/Icon/icons/social-share.vue +7 -7
- package/src/atoms/components/Icon/icons/social-twitter-color.vue +9 -9
- package/src/atoms/components/Icon/icons/sparkle-square.vue +22 -22
- package/src/atoms/components/Icon/icons/star-filled.vue +6 -6
- package/src/atoms/components/Icon/icons/star-hollow.vue +6 -6
- package/src/atoms/components/Icon/icons/sticker.vue +28 -28
- package/src/atoms/components/Icon/icons/stop.vue +5 -5
- package/src/atoms/components/Icon/icons/styles.vue +5 -5
- package/src/atoms/components/Icon/icons/submit.vue +5 -5
- package/src/atoms/components/Icon/icons/templates.vue +7 -7
- package/src/atoms/components/Icon/icons/testimonial-big-image.vue +0 -0
- package/src/atoms/components/Icon/icons/testimonial-centered.vue +0 -0
- package/src/atoms/components/Icon/icons/testimonial-columns.vue +0 -0
- package/src/atoms/components/Icon/icons/text-image-center.vue +6 -6
- package/src/atoms/components/Icon/icons/text-image-justified.vue +7 -7
- package/src/atoms/components/Icon/icons/text-image-left.vue +9 -9
- package/src/atoms/components/Icon/icons/text-image-only.vue +5 -5
- package/src/atoms/components/Icon/icons/text-image-right.vue +9 -9
- package/src/atoms/components/Icon/icons/text-image.vue +13 -13
- package/src/atoms/components/Icon/icons/time.vue +8 -8
- package/src/atoms/components/Icon/icons/tooltip-bottom.vue +5 -5
- package/src/atoms/components/Icon/icons/tooltip-left.vue +5 -5
- package/src/atoms/components/Icon/icons/tooltip-right.vue +5 -5
- package/src/atoms/components/Icon/icons/tooltip-top.vue +5 -5
- package/src/atoms/components/Icon/icons/undo.vue +6 -6
- package/src/atoms/components/Icon/icons/upgrade-alt.vue +7 -7
- package/src/atoms/components/Icon/icons/upgrade.vue +9 -9
- package/src/atoms/components/Icon/icons/upload-arrow.vue +5 -5
- package/src/atoms/components/Icon/icons/upload.vue +5 -5
- package/src/atoms/components/Icon/icons/user-accounts.vue +5 -5
- package/src/atoms/components/Icon/icons/user-headset.vue +50 -50
- package/src/atoms/components/Icon/icons/volume-muted.vue +5 -5
- package/src/atoms/components/Icon/icons/volume.vue +5 -5
- package/src/atoms/components/Icon/icons/watchlist-filled.vue +14 -14
- package/src/atoms/components/Icon/icons/watchlist-hollow-alt.vue +14 -14
- package/src/atoms/components/Icon/icons/watchlist-hollow.vue +6 -6
- package/src/atoms/components/Icon/icons/website-filled.vue +5 -5
- package/src/atoms/components/Icon/icons/website.vue +6 -6
- package/src/atoms/components/Icon/icons/websites/upgrade-to-add-page.vue +50 -50
- package/src/atoms/components/Icon/icons/websites/upgrade-to-contact-form.vue +82 -82
- package/src/atoms/components/Icon/icons/websites/upgrade-to-google-ad.vue +92 -92
- package/src/atoms/components/Icon/icons/websites/upgrade-to-maps.vue +40 -40
- package/src/atoms/components/Icon/icons/websites/upgrade-to-publish.vue +107 -107
- package/src/atoms/components/Icon/icons/websites/upgrade-to-remove-watermark.vue +74 -74
- package/src/atoms/components/Icon/icons/websites/upgrade-to-videos.vue +16 -16
- package/src/atoms/components/Icon/icons/wholesale.vue +6 -6
- package/src/atoms/components/Icon/icons/zoom-in.vue +5 -5
- package/src/atoms/components/Icon/icons/zoom-out.vue +5 -5
- package/src/atoms/components/Icon/icons/zoom.vue +11 -11
- package/src/atoms/components/Loader/Loader.vue +15 -15
- package/src/atoms/components/Masonry/Masonry.stories.js +48 -48
- package/src/atoms/components/Masonry/Masonry.vue +48 -48
- package/src/atoms/components/Masonry/fixtures.js +589 -589
- package/src/atoms/components/Modal/HashRouteModal.stories.js +68 -68
- package/src/atoms/components/Modal/HashRouteModal.vue +120 -120
- package/src/atoms/components/Modal/Modal.stories.js +293 -293
- package/src/atoms/components/Modal/Modal.vue +263 -263
- package/src/atoms/components/Notice/Notice.stories.js +174 -174
- package/src/atoms/components/Notice/Notice.vue +71 -71
- package/src/atoms/components/NumberStepper/NumberStepper.stories.js +55 -55
- package/src/atoms/components/NumberStepper/NumberStepper.vue +340 -340
- package/src/atoms/components/Picture/Picture.stories.js +90 -90
- package/src/atoms/components/Picture/Picture.vue +84 -84
- package/src/atoms/components/Picture/picture.fixtures.js +35 -35
- package/src/atoms/components/Pill/Pill.stories.js +20 -20
- package/src/atoms/components/Pill/Pill.vue +8 -8
- package/src/atoms/components/PillBar/PillBar.fixtures.js +941 -941
- package/src/atoms/components/PillBar/PillBar.stories.js +39 -39
- package/src/atoms/components/PillBar/PillBar.vue +62 -62
- package/src/atoms/components/Price/Price.fixtures.js +85 -85
- package/src/atoms/components/Price/Price.stories.js +313 -313
- package/src/atoms/components/Price/Price.vue +135 -135
- package/src/atoms/components/Price/i18n/price.de-DE.json +5 -5
- package/src/atoms/components/Price/i18n/price.es-ES.json +5 -5
- package/src/atoms/components/Price/i18n/price.fr-CA.json +5 -5
- package/src/atoms/components/Price/i18n/price.fr-FR.json +5 -5
- package/src/atoms/components/Price/i18n/price.json +5 -5
- package/src/atoms/components/Price/i18n/price.pt-BR.json +5 -5
- package/src/atoms/components/Price/i18n/price.pt-PT.json +5 -5
- package/src/atoms/components/PromoCard/PromoCard.stories.ts +263 -263
- package/src/atoms/components/PromoCard/PromoCard.vue +83 -83
- package/src/atoms/components/SearchBar/SearchBar.stories.js +21 -21
- package/src/atoms/components/SearchBar/SearchBar.vue +51 -51
- package/src/atoms/components/Select/Select.stories.js +142 -142
- package/src/atoms/components/Select/Select.vue +619 -619
- package/src/atoms/components/Select/pointerMixin.js +99 -99
- package/src/atoms/components/Select/selectMixin.js +356 -356
- package/src/atoms/components/Slider/Slider.stories.js +0 -0
- package/src/atoms/components/Slider/Slider.vue +0 -0
- package/src/atoms/components/SparkleIcon/SparkleIcon.stories.js +386 -386
- package/src/atoms/components/SparkleIcon/SparkleIcon.vue +136 -136
- package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-01.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-02.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-03.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-04.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-05.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-06.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-07.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/sparkle/state-08.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-01.svg +5 -5
- package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-02.svg +14 -14
- package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-03.svg +14 -14
- package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-04.svg +14 -14
- package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-05.svg +14 -14
- package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-06.svg +14 -14
- package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-07.svg +14 -14
- package/src/atoms/components/SparkleIcon/assets/animations/spinner/state-08.svg +14 -14
- package/src/atoms/components/SparkleIcon/assets/sparkle.svg +3 -3
- package/src/atoms/components/SparkleIcon/index.ts +3 -3
- package/src/atoms/components/SparkleIcon/sparkle-paths.ts +54 -54
- package/src/atoms/components/SparkleIcon/sparkle-with-spinner-paths.ts +61 -61
- package/src/atoms/components/StarRating/StarRating.stories.js +50 -50
- package/src/atoms/components/StarRating/StarRating.vue +84 -84
- package/src/atoms/components/TabMenu/TabMenu.stories.js +54 -54
- package/src/atoms/components/TabMenu/TabMenu.vue +44 -44
- package/src/atoms/components/TextCopyField/TextCopyField.stories.js +68 -68
- package/src/atoms/components/TextCopyField/TextCopyField.vue +75 -75
- package/src/atoms/components/TextInput/TextInput.stories.js +232 -232
- package/src/atoms/components/TextInput/TextInput.vue +161 -161
- package/src/atoms/components/Textarea/Textarea.stories.js +209 -209
- package/src/atoms/components/Textarea/Textarea.vue +112 -112
- package/src/atoms/components/Toggle/Toggle.stories.js +176 -176
- package/src/atoms/components/Toggle/Toggle.vue +69 -69
- package/src/atoms/components/Tooltip/Tooltip.stories.js +493 -493
- package/src/atoms/components/Tooltip/Tooltip.vue +196 -196
- package/src/atoms/components/design-com/Icon/Icon.stories.js +94 -94
- package/src/atoms/components/design-com/Icon/Icon.vue +181 -181
- package/src/atoms/components/design-com/Icon/icons/ai.vue +5 -5
- package/src/atoms/components/design-com/Icon/icons/annotate-heart.vue +0 -0
- package/src/atoms/components/design-com/Icon/icons/award.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/badge.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/bezier-curve.vue +0 -0
- package/src/atoms/components/design-com/Icon/icons/briefcase.vue +6 -6
- package/src/atoms/components/design-com/Icon/icons/browser.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/bulb.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/card-vertical.vue +8 -8
- package/src/atoms/components/design-com/Icon/icons/card.vue +6 -6
- package/src/atoms/components/design-com/Icon/icons/check-circle-light.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/chevron-down.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/chevron-left.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/chevron-right.vue +3 -3
- package/src/atoms/components/design-com/Icon/icons/chevron-up.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/diamond.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/download.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/file-empty.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/file.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/filter.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/folder.vue +5 -5
- package/src/atoms/components/design-com/Icon/icons/font.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/headphones.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/heart.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/image.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/lightning.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/logo.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/minus-circle-light.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/palette.vue +0 -0
- package/src/atoms/components/design-com/Icon/icons/pen-outline.vue +0 -0
- package/src/atoms/components/design-com/Icon/icons/pen-sparkle.vue +0 -0
- package/src/atoms/components/design-com/Icon/icons/pen.vue +0 -0
- package/src/atoms/components/design-com/Icon/icons/plus-circle-light.vue +8 -8
- package/src/atoms/components/design-com/Icon/icons/printing.vue +5 -5
- package/src/atoms/components/design-com/Icon/icons/question-circle-filled.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/search.vue +7 -7
- package/src/atoms/components/design-com/Icon/icons/shield-tick.vue +5 -5
- package/src/atoms/components/design-com/Icon/icons/sparkle-square.vue +0 -0
- package/src/atoms/components/design-com/Icon/icons/star-filled.vue +6 -6
- package/src/atoms/components/design-com/Icon/icons/star-hollow.vue +6 -6
- package/src/atoms/components/design-com/Icon/icons/text.vue +0 -0
- package/src/atoms/components/design-com/Icon/icons/users.vue +7 -7
- package/src/atoms/constants/constants.ts +6 -6
- package/src/atoms/mixin/hash-router-mixin.js +68 -68
- package/src/atoms/thirdparty-components/VueMasonryWall/VueMasonryWall.vue +280 -280
- package/src/atoms/thirdparty-components/VueMasonryWall/maxBy.js +50 -50
- package/src/bundleTranslation.js +86 -86
- package/src/bundles/bundled-translations.de-DE.json +0 -0
- package/src/bundles/bundled-translations.es-ES.json +0 -0
- package/src/bundles/bundled-translations.fr-CA.json +0 -0
- package/src/bundles/bundled-translations.fr-FR.json +0 -0
- package/src/bundles/bundled-translations.json +0 -0
- package/src/bundles/bundled-translations.pt-BR.json +0 -0
- package/src/bundles/bundled-translations.pt-PT.json +0 -0
- package/src/css/tailwind.css +3 -3
- package/src/experiences/clients/brand-crowd-api.client.js +142 -142
- package/src/experiences/clients/brand-page-api.client.js +62 -62
- package/src/experiences/components/AuthFlow/Auth.fixtures.js +4 -4
- package/src/experiences/components/AuthFlow/Auth.stories.js +345 -345
- package/src/experiences/components/AuthFlow/AuthCrazyDomains.stories.js +60 -60
- package/src/experiences/components/AuthFlow/AuthLegal.vue +108 -108
- package/src/experiences/components/AuthFlow/AuthModal.vue +39 -39
- package/src/experiences/components/AuthFlow/ForgotPassword.vue +222 -222
- package/src/experiences/components/AuthFlow/ForgotPasswordModal.vue +68 -68
- package/src/experiences/components/AuthFlow/ResetPassword.vue +179 -179
- package/src/experiences/components/AuthFlow/ResetPasswordModal.vue +64 -64
- package/src/experiences/components/AuthFlow/ResetPasswordSuccessModal.vue +56 -56
- package/src/experiences/components/AuthFlow/SignIn.vue +472 -472
- package/src/experiences/components/AuthFlow/SignUp.vue +278 -278
- package/src/experiences/components/AuthFlow/SignUpModal.vue +90 -90
- package/src/experiences/components/AuthFlow/SocialSignIn.vue +177 -177
- package/src/experiences/components/AuthFlow/SocialSignInButton.vue +74 -74
- package/src/experiences/components/AuthFlow/SubmissionButton.vue +56 -56
- package/src/experiences/components/PaymentConfigList/PaymentConfig.mixin.js +118 -118
- package/src/experiences/components/PaymentConfigList/PaymentConfigDeleteConfigModal.vue +108 -108
- package/src/experiences/components/PaymentConfigList/PaymentConfigDropdown.vue +175 -175
- package/src/experiences/components/PaymentConfigList/PaymentConfigList.stories.js +234 -234
- package/src/experiences/components/PaymentConfigList/PaymentConfigList.vue +136 -136
- package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.de-DE.json +11 -11
- package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.es-ES.json +11 -11
- package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.fr-CA.json +11 -11
- package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.fr-FR.json +11 -11
- package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.json +11 -11
- package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.pt-BR.json +11 -11
- package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.pt-PT.json +11 -11
- package/src/experiences/components/PublishBrandPageModal/PublishBrandPageCard.vue +119 -119
- package/src/experiences/components/PublishBrandPageModal/PublishBrandPageModal.stories.js +262 -262
- package/src/experiences/components/PublishBrandPageModal/PublishBrandPageModal.vue +0 -0
- package/src/experiences/components/PublishBrandPageModal/__fixtures__/data.js +25 -25
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.de-DE.json +26 -26
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.es-ES.json +26 -26
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.fr-CA.json +26 -26
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.fr-FR.json +26 -26
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.json +26 -26
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-BR.json +26 -26
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-PT.json +26 -26
- package/src/experiences/components/PublishBrandPageModal/views/PublishWhenHasDomainsView.vue +0 -0
- package/src/experiences/components/PublishBrandPageModal/views/PublishWhenNoDomainsView.vue +0 -0
- package/src/experiences/components/PublishBrandPageModal/views/PublishedView.vue +0 -0
- package/src/experiences/components/PublishBrandPageModal/views/SetUrlView.vue +0 -0
- package/src/experiences/components/SellDomainNameList/SellDomainNameList.fixtures.js +32 -32
- package/src/experiences/components/SellDomainNameList/SellDomainNameList.vue +157 -157
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.de-DE.json +7 -7
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.es-ES.json +7 -7
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.fr-CA.json +7 -7
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.fr-FR.json +7 -7
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.json +7 -7
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.pt-BR.json +7 -7
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.pt-PT.json +7 -7
- package/src/experiences/components/SellDomainNameListModal/SellDomainNameListModal.stories.js +74 -74
- package/src/experiences/components/SellDomainNameListModal/SellDomainNameListModal.vue +128 -128
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.de-DE.json +5 -5
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.es-ES.json +5 -5
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.fr-CA.json +5 -5
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.fr-FR.json +5 -5
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.json +5 -5
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.pt-BR.json +5 -5
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.pt-PT.json +5 -5
- package/src/experiences/components/SellDomainNameModalApplication/SellDomainNameModalApplication.vue +222 -222
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.de-DE.json +5 -5
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.es-ES.json +5 -5
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.fr-CA.json +5 -5
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.fr-FR.json +5 -5
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.json +5 -5
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.pt-BR.json +5 -5
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.pt-PT.json +5 -5
- package/src/experiences/components/SellDomainNameSearch/SellDomainNameSearch.vue +0 -0
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.de-DE.json +7 -7
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.es-ES.json +7 -7
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.fr-CA.json +7 -7
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.fr-FR.json +7 -7
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.json +7 -7
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.pt-BR.json +7 -7
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.pt-PT.json +7 -7
- package/src/experiences/components/SellDomainNameSearchResult/SellDomainNameListSearchResult.vue +167 -167
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.de-DE.json +5 -5
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.es-ES.json +5 -5
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.fr-CA.json +5 -5
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.fr-FR.json +5 -5
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.json +5 -5
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.pt-BR.json +5 -5
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.pt-PT.json +5 -5
- package/src/experiences/components/SellDomainNameSearchWithResults/SellDomainNameSearchWithResults.stories.js +38 -38
- package/src/experiences/components/SellDomainNameSearchWithResults/SellDomainNameSearchWithResults.vue +223 -223
- package/src/experiences/components/SellDomainNameWidget/SellDomainNameWidget.stories.js +40 -40
- package/src/experiences/components/SellDomainNameWidget/SellDomainNameWidget.vue +155 -155
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.de-DE.json +7 -7
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.es-ES.json +7 -7
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.fr-CA.json +7 -7
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.fr-FR.json +7 -7
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.json +7 -7
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.pt-BR.json +7 -7
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.pt-PT.json +7 -7
- package/src/experiences/components/SideNavigationPanel/MenuCta.vue +62 -62
- package/src/experiences/components/SideNavigationPanel/MenuItem.vue +40 -40
- package/src/experiences/components/SideNavigationPanel/SideNavigationPanel.stories.js +219 -219
- package/src/experiences/components/SideNavigationPanel/SideNavigationPanel.vue +48 -48
- package/src/experiences/components/SideNavigationPanel/types.ts +7 -7
- package/src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.stories.js +254 -254
- package/src/experiences/components/UploadYourLogoApplication/UploadYourLogoApplication.vue +163 -163
- package/src/experiences/components/UploadYourLogoDropzone/UploadYourLogoDropzone.stories.js +59 -59
- package/src/experiences/components/UploadYourLogoDropzone/UploadYourLogoDropzone.vue +285 -285
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessBrandColours.stories.js +37 -37
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessBrandColours.vue +338 -338
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessText.vue +146 -146
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoCropper.vue +473 -473
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.stories.js +65 -65
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoKeywords.vue +156 -156
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoPreview.vue +103 -103
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadError.vue +75 -75
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadExitConfirmation.vue +55 -55
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadModal.vue +38 -38
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploader.vue +109 -109
- package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadingLoader.vue +39 -39
- package/src/experiences/components/UploadYourLogoOnBoarding/UploadYourLogoOnBoarding.vue +363 -363
- package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.de-DE.json +37 -37
- package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.es-ES.json +37 -37
- package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-CA.json +37 -37
- package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.fr-FR.json +37 -37
- package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.json +37 -37
- package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-BR.json +37 -37
- package/src/experiences/components/UploadYourLogoOnBoarding/i18n/upload-your-logo.pt-PT.json +37 -37
- package/src/experiences/components/UploadedLogoSearchResultCard/UploadedLogoSearchResultCard.stories.js +82 -82
- package/src/experiences/components/UploadedLogoSearchResultCard/UploadedLogoSearchResultCard.vue +211 -211
- package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.de-DE.json +8 -8
- package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.es-ES.json +8 -8
- package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.fr-CA.json +8 -8
- package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.fr-FR.json +8 -8
- package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.json +8 -8
- package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.pt-BR.json +8 -8
- package/src/experiences/components/UploadedLogoSearchResultCard/i18n/upload-logo-search-result-card.pt-PT.json +8 -8
- package/src/experiences/components/WebsitesContextualUpgradeModal/WebsiteContextualUpgradeModal.stories.js +181 -181
- package/src/experiences/components/WebsitesContextualUpgradeModal/WebsiteContextualUpgradeModal.vue +203 -203
- package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.de-DE.json +42 -42
- package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.es-ES.json +42 -42
- package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.fr-CA.json +42 -42
- package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.fr-FR.json +42 -42
- package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.json +42 -42
- package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.pt-BR.json +42 -42
- package/src/experiences/components/WebsitesContextualUpgradeModal/i18n/website-contextual-upgrade-modal.pt-PT.json +42 -42
- package/src/experiences/constants/api.js +9 -9
- package/src/experiences/constants/error-constants.js +5 -5
- package/src/experiences/constants/event-constants.js +18 -18
- package/src/experiences/constants/partner-dictionary-constants.js +27 -27
- package/src/experiences/constants/rego-source-constants.js +3 -3
- package/src/experiences/constants/sell-domain-name-constants.js +4 -4
- package/src/experiences/helpers/email-validator.js +5 -5
- package/src/experiences/helpers/hex-diff.js +116 -116
- package/src/experiences/helpers/tracking.js +5 -5
- package/src/experiences/mixins/mediaQueryMixin.js +31 -31
- package/src/experiences/mixins/themeMixin.js +22 -22
- package/src/experiences/models/websiteContextualModel.ts +11 -11
- package/src/themes/base.js +20 -20
- package/src/themes/bc.js +95 -95
- package/src/themes/bp.js +21 -21
- package/src/themes/cd.js +94 -94
- package/src/themes/dc.js +84 -84
- package/src/themes/dcom.js +106 -106
- package/src/themes/themes.js +16 -16
- package/src/useSharedLibTranslate.js +131 -131
- package/src/viewports.js +51 -51
- package/storybook-static/favicon.ico +0 -0
- package/stylelint.config.js +19 -19
- package/tailwind.build.js +83 -83
- package/tailwind.config.js +36 -36
- package/tailwind.themes.js +59 -59
- package/vite.config.ts +37 -37
- package/.claude/settings.local.json +0 -9
package/CLAUDE.md
CHANGED
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
-
|
|
5
|
-
## Project Overview
|
|
6
|
-
|
|
7
|
-
`@designcrowd/fe-shared-lib` is a shared Vue 3 component library and design system for DesignCrowd's frontend applications (BrandCrowd, Design.com, CrazyDomains, DesignCrowd, BrandPage). Published to NPM as a scoped package.
|
|
8
|
-
|
|
9
|
-
- **Default branch**: `master`
|
|
10
|
-
- **Node**: 20.x
|
|
11
|
-
- **Framework**: Vue 3 + Vite + Storybook 9
|
|
12
|
-
|
|
13
|
-
## Commands
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm start # Build Tailwind CSS + launch Storybook on port 6006
|
|
17
|
-
npm run build # Build production CSS (all themes)
|
|
18
|
-
npm run build:storybook # Build static Storybook for S3 deployment
|
|
19
|
-
npm run lint # ESLint check (src/ directory)
|
|
20
|
-
npm run lint:fix # ESLint auto-fix
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
**No test runner is configured.** Vue Test Utils (`@vue/test-utils`) is installed as a dev dependency but there is no Vitest/Jest setup and no `npm test` script. Do not attempt to run tests.
|
|
24
|
-
|
|
25
|
-
## Architecture
|
|
26
|
-
|
|
27
|
-
### Project Structure
|
|
28
|
-
- **`src/atoms/`** — Reusable UI components (Button, Modal, Icon, Dropdown, TextInput, etc.)
|
|
29
|
-
- **`src/experiences/`** — Complex business-specific components (AuthFlow, PaymentConfig, UploadLogo, etc.)
|
|
30
|
-
- **`src/themes/`** — Tailwind CSS theme configurations per brand
|
|
31
|
-
- **`src/css/`** — Global CSS and Tailwind entry point
|
|
32
|
-
- **`src/bundles/`** — Generated i18n translation bundles
|
|
33
|
-
|
|
34
|
-
### Theme System (5 brands)
|
|
35
|
-
Each brand has its own Tailwind theme extending a shared base:
|
|
36
|
-
- `bc.js` (BrandCrowd), `dcom.js` (Design.com), `dc.js` (DesignCrowd), `cd.js` (CrazyDomains), `bp.js` (BrandPage)
|
|
37
|
-
|
|
38
|
-
Themes are compiled into separate CSS files via `tailwind.build.js` → `dist/css/tailwind-[theme].css`
|
|
39
|
-
|
|
40
|
-
### Component Organization
|
|
41
|
-
- **Atoms**: Simple, reusable UI primitives with Storybook stories
|
|
42
|
-
- **Experiences**: Complex multi-atom components for specific workflows (auth, payments, uploads)
|
|
43
|
-
- **Icons**: Extensive icon library in `src/atoms/components/Icon/` with brand-specific variants
|
|
44
|
-
|
|
45
|
-
### Key Files
|
|
46
|
-
- `index.js` / `index.cjs` — Main exports (dual ESM/CJS)
|
|
47
|
-
- `tailwind.config.js` — Tailwind CSS configuration
|
|
48
|
-
- `tailwind.build.js` — CSS build script (multi-theme)
|
|
49
|
-
- `vite.config.ts` — Vite dev configuration
|
|
50
|
-
|
|
51
|
-
## Coding Standards
|
|
52
|
-
|
|
53
|
-
### Formatting (Prettier)
|
|
54
|
-
- Single quotes (`singleQuote: true`)
|
|
55
|
-
- Print width: 120 characters
|
|
56
|
-
- Trailing commas: all
|
|
57
|
-
- Arrow parens: always
|
|
58
|
-
|
|
59
|
-
### Linting (ESLint)
|
|
60
|
-
- Extends: `plugin:vue/recommended`, `@vue/airbnb`, `@vue/prettier`
|
|
61
|
-
- `no-console`: warn in production
|
|
62
|
-
- `import/prefer-default-export`: off
|
|
63
|
-
|
|
64
|
-
### Styling
|
|
65
|
-
- **Tailwind CSS** with `tw-` prefix for utility classes
|
|
66
|
-
- No SCSS — PostCSS only
|
|
67
|
-
- Theme-specific styles via the multi-brand theme system
|
|
68
|
-
|
|
69
|
-
### Vue Components
|
|
70
|
-
- Vue 3 Single File Components (`.vue`)
|
|
71
|
-
- Stories co-located with components (`.stories.js` files)
|
|
72
|
-
- Mixins in `src/atoms/mixin/` and `src/experiences/mixins/`
|
|
73
|
-
|
|
74
|
-
## Storybook
|
|
75
|
-
|
|
76
|
-
- Dev server: `npm start` → http://localhost:6006
|
|
77
|
-
- Live: https://brandcrowd-storybook.s3.amazonaws.com/fe-shared-lib/live/index.html
|
|
78
|
-
- Stories pattern: `src/**/components/**/*.stories.@(js|jsx|ts|tsx)`
|
|
79
|
-
- Supports theme switching (5 brands) and locale switching (8 languages)
|
|
80
|
-
|
|
81
|
-
## Local Development
|
|
82
|
-
|
|
83
|
-
Use `npm link` for local development with consumer projects:
|
|
84
|
-
```bash
|
|
85
|
-
npm link # in this directory
|
|
86
|
-
npm link @designcrowd/fe-shared-lib # in consumer project
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Publishing (UAT)
|
|
90
|
-
|
|
91
|
-
To test experimental versions without publishing to production:
|
|
92
|
-
1. Update `package.json` version to `[current]-[description]`
|
|
93
|
-
2. Run `docker build . --build-arg NPM_TOKEN=$NPM_TOKEN`
|
|
94
|
-
3. Update consumer package reference to the new version
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
`@designcrowd/fe-shared-lib` is a shared Vue 3 component library and design system for DesignCrowd's frontend applications (BrandCrowd, Design.com, CrazyDomains, DesignCrowd, BrandPage). Published to NPM as a scoped package.
|
|
8
|
+
|
|
9
|
+
- **Default branch**: `master`
|
|
10
|
+
- **Node**: 20.x
|
|
11
|
+
- **Framework**: Vue 3 + Vite + Storybook 9
|
|
12
|
+
|
|
13
|
+
## Commands
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm start # Build Tailwind CSS + launch Storybook on port 6006
|
|
17
|
+
npm run build # Build production CSS (all themes)
|
|
18
|
+
npm run build:storybook # Build static Storybook for S3 deployment
|
|
19
|
+
npm run lint # ESLint check (src/ directory)
|
|
20
|
+
npm run lint:fix # ESLint auto-fix
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**No test runner is configured.** Vue Test Utils (`@vue/test-utils`) is installed as a dev dependency but there is no Vitest/Jest setup and no `npm test` script. Do not attempt to run tests.
|
|
24
|
+
|
|
25
|
+
## Architecture
|
|
26
|
+
|
|
27
|
+
### Project Structure
|
|
28
|
+
- **`src/atoms/`** — Reusable UI components (Button, Modal, Icon, Dropdown, TextInput, etc.)
|
|
29
|
+
- **`src/experiences/`** — Complex business-specific components (AuthFlow, PaymentConfig, UploadLogo, etc.)
|
|
30
|
+
- **`src/themes/`** — Tailwind CSS theme configurations per brand
|
|
31
|
+
- **`src/css/`** — Global CSS and Tailwind entry point
|
|
32
|
+
- **`src/bundles/`** — Generated i18n translation bundles
|
|
33
|
+
|
|
34
|
+
### Theme System (5 brands)
|
|
35
|
+
Each brand has its own Tailwind theme extending a shared base:
|
|
36
|
+
- `bc.js` (BrandCrowd), `dcom.js` (Design.com), `dc.js` (DesignCrowd), `cd.js` (CrazyDomains), `bp.js` (BrandPage)
|
|
37
|
+
|
|
38
|
+
Themes are compiled into separate CSS files via `tailwind.build.js` → `dist/css/tailwind-[theme].css`
|
|
39
|
+
|
|
40
|
+
### Component Organization
|
|
41
|
+
- **Atoms**: Simple, reusable UI primitives with Storybook stories
|
|
42
|
+
- **Experiences**: Complex multi-atom components for specific workflows (auth, payments, uploads)
|
|
43
|
+
- **Icons**: Extensive icon library in `src/atoms/components/Icon/` with brand-specific variants
|
|
44
|
+
|
|
45
|
+
### Key Files
|
|
46
|
+
- `index.js` / `index.cjs` — Main exports (dual ESM/CJS)
|
|
47
|
+
- `tailwind.config.js` — Tailwind CSS configuration
|
|
48
|
+
- `tailwind.build.js` — CSS build script (multi-theme)
|
|
49
|
+
- `vite.config.ts` — Vite dev configuration
|
|
50
|
+
|
|
51
|
+
## Coding Standards
|
|
52
|
+
|
|
53
|
+
### Formatting (Prettier)
|
|
54
|
+
- Single quotes (`singleQuote: true`)
|
|
55
|
+
- Print width: 120 characters
|
|
56
|
+
- Trailing commas: all
|
|
57
|
+
- Arrow parens: always
|
|
58
|
+
|
|
59
|
+
### Linting (ESLint)
|
|
60
|
+
- Extends: `plugin:vue/recommended`, `@vue/airbnb`, `@vue/prettier`
|
|
61
|
+
- `no-console`: warn in production
|
|
62
|
+
- `import/prefer-default-export`: off
|
|
63
|
+
|
|
64
|
+
### Styling
|
|
65
|
+
- **Tailwind CSS** with `tw-` prefix for utility classes
|
|
66
|
+
- No SCSS — PostCSS only
|
|
67
|
+
- Theme-specific styles via the multi-brand theme system
|
|
68
|
+
|
|
69
|
+
### Vue Components
|
|
70
|
+
- Vue 3 Single File Components (`.vue`)
|
|
71
|
+
- Stories co-located with components (`.stories.js` files)
|
|
72
|
+
- Mixins in `src/atoms/mixin/` and `src/experiences/mixins/`
|
|
73
|
+
|
|
74
|
+
## Storybook
|
|
75
|
+
|
|
76
|
+
- Dev server: `npm start` → http://localhost:6006
|
|
77
|
+
- Live: https://brandcrowd-storybook.s3.amazonaws.com/fe-shared-lib/live/index.html
|
|
78
|
+
- Stories pattern: `src/**/components/**/*.stories.@(js|jsx|ts|tsx)`
|
|
79
|
+
- Supports theme switching (5 brands) and locale switching (8 languages)
|
|
80
|
+
|
|
81
|
+
## Local Development
|
|
82
|
+
|
|
83
|
+
Use `npm link` for local development with consumer projects:
|
|
84
|
+
```bash
|
|
85
|
+
npm link # in this directory
|
|
86
|
+
npm link @designcrowd/fe-shared-lib # in consumer project
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Publishing (UAT)
|
|
90
|
+
|
|
91
|
+
To test experimental versions without publishing to production:
|
|
92
|
+
1. Update `package.json` version to `[current]-[description]`
|
|
93
|
+
2. Run `docker build . --build-arg NPM_TOKEN=$NPM_TOKEN`
|
|
94
|
+
3. Update consumer package reference to the new version
|
package/Dockerfile
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
FROM node:20.11.0-slim
|
|
2
|
-
|
|
3
|
-
RUN npm i -g npm@10.7.0
|
|
4
|
-
|
|
5
|
-
RUN apt-get update \
|
|
6
|
-
&& apt-get install -qq build-essential python3
|
|
7
|
-
|
|
8
|
-
WORKDIR /app
|
|
9
|
-
|
|
10
|
-
# First we copy only the things needed by gulp to preload the resources
|
|
11
|
-
COPY package.json .
|
|
12
|
-
COPY package-lock.json .
|
|
13
|
-
|
|
14
|
-
# Import the token to access private npm packages
|
|
15
|
-
COPY npmrc .
|
|
16
|
-
|
|
17
|
-
# Copy the npmrc and rename it to .npmrc -- reason being if its present in the repository with the '.' then npm tries to use it.. ¯\_(ツ)_/¯
|
|
18
|
-
RUN mv npmrc .npmrc
|
|
19
|
-
|
|
20
|
-
ARG NPM_TOKEN
|
|
21
|
-
RUN echo $NPM_TOKEN
|
|
22
|
-
|
|
23
|
-
RUN npm i
|
|
24
|
-
|
|
25
|
-
COPY . .
|
|
26
|
-
|
|
27
|
-
COPY .npmignore ./
|
|
28
|
-
|
|
29
|
-
RUN npm run bundle-translation
|
|
30
|
-
|
|
31
|
-
RUN mkdir artifacts
|
|
32
|
-
RUN npm publish || (touch artifacts/npm_publish_failed && exit 1)
|
|
33
|
-
RUN cp package.json artifacts/
|
|
34
|
-
|
|
35
|
-
ENTRYPOINT ["/bin/echo", "Nothing to do."]
|
|
36
|
-
|
|
37
|
-
# Publish to NPM:
|
|
38
|
-
#
|
|
39
|
-
# Windows
|
|
40
|
-
# docker build . --build-arg NPM_TOKEN=%NPM_TOKEN%
|
|
41
|
-
#
|
|
42
|
-
# Linux
|
|
43
|
-
# docker build . --build-arg NPM_TOKEN=$NPM_TOKEN
|
|
1
|
+
FROM node:20.11.0-slim
|
|
2
|
+
|
|
3
|
+
RUN npm i -g npm@10.7.0
|
|
4
|
+
|
|
5
|
+
RUN apt-get update \
|
|
6
|
+
&& apt-get install -qq build-essential python3
|
|
7
|
+
|
|
8
|
+
WORKDIR /app
|
|
9
|
+
|
|
10
|
+
# First we copy only the things needed by gulp to preload the resources
|
|
11
|
+
COPY package.json .
|
|
12
|
+
COPY package-lock.json .
|
|
13
|
+
|
|
14
|
+
# Import the token to access private npm packages
|
|
15
|
+
COPY npmrc .
|
|
16
|
+
|
|
17
|
+
# Copy the npmrc and rename it to .npmrc -- reason being if its present in the repository with the '.' then npm tries to use it.. ¯\_(ツ)_/¯
|
|
18
|
+
RUN mv npmrc .npmrc
|
|
19
|
+
|
|
20
|
+
ARG NPM_TOKEN
|
|
21
|
+
RUN echo $NPM_TOKEN
|
|
22
|
+
|
|
23
|
+
RUN npm i
|
|
24
|
+
|
|
25
|
+
COPY . .
|
|
26
|
+
|
|
27
|
+
COPY .npmignore ./
|
|
28
|
+
|
|
29
|
+
RUN npm run bundle-translation
|
|
30
|
+
|
|
31
|
+
RUN mkdir artifacts
|
|
32
|
+
RUN npm publish || (touch artifacts/npm_publish_failed && exit 1)
|
|
33
|
+
RUN cp package.json artifacts/
|
|
34
|
+
|
|
35
|
+
ENTRYPOINT ["/bin/echo", "Nothing to do."]
|
|
36
|
+
|
|
37
|
+
# Publish to NPM:
|
|
38
|
+
#
|
|
39
|
+
# Windows
|
|
40
|
+
# docker build . --build-arg NPM_TOKEN=%NPM_TOKEN%
|
|
41
|
+
#
|
|
42
|
+
# Linux
|
|
43
|
+
# docker build . --build-arg NPM_TOKEN=$NPM_TOKEN
|
package/README.md
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
# fe-shared-lib
|
|
2
|
-
|
|
3
|
-
## Contents
|
|
4
|
-
|
|
5
|
-
- [Start](#start)
|
|
6
|
-
- [Local Development](#local-development)
|
|
7
|
-
- [Testing in a UAT](#testing-uat)
|
|
8
|
-
- [Storybook](#storybook)
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
npm install
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
### Start
|
|
15
|
-
|
|
16
|
-
This command will build all of the necessary Tailwind files for each theme and setup the configuration for Storybook. Once complete, Storybook will open and you can preview the shared components.
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
npm start
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
<a id="local-development"></a>
|
|
23
|
-
|
|
24
|
-
### Local Development
|
|
25
|
-
|
|
26
|
-
To edit the design system locally whilst being using in a consumer you need to run `npm link` in this directory and then `npm link @designcrowd/fe-shared-lib` in the consumer.
|
|
27
|
-
|
|
28
|
-
<a id="testing-uat"></a>
|
|
29
|
-
|
|
30
|
-
### Testing in a UAT
|
|
31
|
-
|
|
32
|
-
If you want to have an experimental version of your change, like have it in a uat env without publishing it to prod:
|
|
33
|
-
|
|
34
|
-
1. Update package.json with `"version": "[current]-[short description of your work]"`
|
|
35
|
-
2. Run npm i
|
|
36
|
-
3. run `docker build . --build-arg NPM_TOKEN=$NPM_TOKEN` in the project directory (make sure you have $NPM_TOKEN properly set in your local env)
|
|
37
|
-
4. Update package reference in the consumer to the version you have just built
|
|
38
|
-
|
|
39
|
-
### If you are making changes to components used into the BrandPage Tab in BC.NET
|
|
40
|
-
|
|
41
|
-
1. Get latest app.maker source code.
|
|
42
|
-
2. Update its reference to `@designcrowd/fe-shared-lib` with the one you just built
|
|
43
|
-
3. Bump its version (app.maker version)
|
|
44
|
-
4. Run `npm run docker:publish:bp`
|
|
45
|
-
5. IN BC.Net Update reference of `@designcrowd/library.brand-page` to use the version you just set in the app.maker
|
|
46
|
-
|
|
47
|
-
<a id="storybook"></a>
|
|
48
|
-
|
|
49
|
-
### Storybook
|
|
50
|
-
|
|
51
|
-
Storybook is published with each new commit to `master` and can be found here:
|
|
52
|
-
|
|
53
|
-
https://brandcrowd-storybook.s3.amazonaws.com/fe-shared-lib/live/index.html
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
# atoms (formerly shared-component-library)
|
|
59
|
-
|
|
60
|
-
This flow chart describes the workflow for the shared component library.
|
|
61
|
-
https://app.diagrams.net/#G1TtCW8-zgVQz7bacsfQpqL5ZYCzeCGnXu
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
## Project setup
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
npm i
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Start
|
|
71
|
-
|
|
72
|
-
This command will build all necessary Tailwind files for each theme and set up the configuration for Storybook. Once complete, Storybook will open and you can preview the shared components.
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
npm start
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Local Development
|
|
79
|
-
|
|
80
|
-
### Storybook
|
|
81
|
-
|
|
82
|
-
Update Storybook: `npx storybook@latest upgrade`
|
|
83
|
-
|
|
84
|
-
Writing stories:
|
|
85
|
-
|
|
86
|
-
* Storybook Vue 3 docs: https://storybook.js.org/docs/get-started/vue3-vite
|
|
87
|
-
* Official examples: https://github.com/storybookjs/storybook/blob/next/test-storybooks/portable-stories-kitchen-sink/vue3/stories/Button.stories.ts
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
# DesignCrowd Tailwind Configuration
|
|
92
|
-
The purpose of the `themes` directory is to build up a library of themes for our different products in a single place. These themes are then exported and consumed into each product using a local Tailwind CSS setup specific to that product. This provides us with a consistent approach for our colours, fonts, spacing etc whilst also being able to control the Tailwind CSS styles across all of our products.
|
|
93
|
-
|
|
94
|
-
TODO This repository is published as an NPM package and it's themes and helper functions are exposed in the `index.js` file.
|
|
95
|
-
|
|
96
|
-
## Adding new configuration styles
|
|
97
|
-
New configuration styles can be added to the `themes/base.js` file which will be shared by all child themes. If you want to add a new option only in a specific theme, then edit the `themes/xx.js` file. The format for the theme files follows the structure of the `tailwind.config.js` file. https://tailwindcss.com/docs/configuration
|
|
98
|
-
|
|
99
|
-
## Adding new themes
|
|
100
|
-
New themes can be added by creating a new xx.js file in the themes folder. Once the new theme has been configured, it will need to be made exportable in the `index.js` file.
|
|
101
|
-
|
|
102
|
-
## Versioning
|
|
103
|
-
Ensure to bump the version number in `package.json` followed by running `npm i` before each commit. And then run `npm run docker:publish` to publish the version to NPM.
|
|
1
|
+
# fe-shared-lib
|
|
2
|
+
|
|
3
|
+
## Contents
|
|
4
|
+
|
|
5
|
+
- [Start](#start)
|
|
6
|
+
- [Local Development](#local-development)
|
|
7
|
+
- [Testing in a UAT](#testing-uat)
|
|
8
|
+
- [Storybook](#storybook)
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
npm install
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Start
|
|
15
|
+
|
|
16
|
+
This command will build all of the necessary Tailwind files for each theme and setup the configuration for Storybook. Once complete, Storybook will open and you can preview the shared components.
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
npm start
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
<a id="local-development"></a>
|
|
23
|
+
|
|
24
|
+
### Local Development
|
|
25
|
+
|
|
26
|
+
To edit the design system locally whilst being using in a consumer you need to run `npm link` in this directory and then `npm link @designcrowd/fe-shared-lib` in the consumer.
|
|
27
|
+
|
|
28
|
+
<a id="testing-uat"></a>
|
|
29
|
+
|
|
30
|
+
### Testing in a UAT
|
|
31
|
+
|
|
32
|
+
If you want to have an experimental version of your change, like have it in a uat env without publishing it to prod:
|
|
33
|
+
|
|
34
|
+
1. Update package.json with `"version": "[current]-[short description of your work]"`
|
|
35
|
+
2. Run npm i
|
|
36
|
+
3. run `docker build . --build-arg NPM_TOKEN=$NPM_TOKEN` in the project directory (make sure you have $NPM_TOKEN properly set in your local env)
|
|
37
|
+
4. Update package reference in the consumer to the version you have just built
|
|
38
|
+
|
|
39
|
+
### If you are making changes to components used into the BrandPage Tab in BC.NET
|
|
40
|
+
|
|
41
|
+
1. Get latest app.maker source code.
|
|
42
|
+
2. Update its reference to `@designcrowd/fe-shared-lib` with the one you just built
|
|
43
|
+
3. Bump its version (app.maker version)
|
|
44
|
+
4. Run `npm run docker:publish:bp`
|
|
45
|
+
5. IN BC.Net Update reference of `@designcrowd/library.brand-page` to use the version you just set in the app.maker
|
|
46
|
+
|
|
47
|
+
<a id="storybook"></a>
|
|
48
|
+
|
|
49
|
+
### Storybook
|
|
50
|
+
|
|
51
|
+
Storybook is published with each new commit to `master` and can be found here:
|
|
52
|
+
|
|
53
|
+
https://brandcrowd-storybook.s3.amazonaws.com/fe-shared-lib/live/index.html
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
# atoms (formerly shared-component-library)
|
|
59
|
+
|
|
60
|
+
This flow chart describes the workflow for the shared component library.
|
|
61
|
+
https://app.diagrams.net/#G1TtCW8-zgVQz7bacsfQpqL5ZYCzeCGnXu
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## Project setup
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
npm i
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Start
|
|
71
|
+
|
|
72
|
+
This command will build all necessary Tailwind files for each theme and set up the configuration for Storybook. Once complete, Storybook will open and you can preview the shared components.
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
npm start
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Local Development
|
|
79
|
+
|
|
80
|
+
### Storybook
|
|
81
|
+
|
|
82
|
+
Update Storybook: `npx storybook@latest upgrade`
|
|
83
|
+
|
|
84
|
+
Writing stories:
|
|
85
|
+
|
|
86
|
+
* Storybook Vue 3 docs: https://storybook.js.org/docs/get-started/vue3-vite
|
|
87
|
+
* Official examples: https://github.com/storybookjs/storybook/blob/next/test-storybooks/portable-stories-kitchen-sink/vue3/stories/Button.stories.ts
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
# DesignCrowd Tailwind Configuration
|
|
92
|
+
The purpose of the `themes` directory is to build up a library of themes for our different products in a single place. These themes are then exported and consumed into each product using a local Tailwind CSS setup specific to that product. This provides us with a consistent approach for our colours, fonts, spacing etc whilst also being able to control the Tailwind CSS styles across all of our products.
|
|
93
|
+
|
|
94
|
+
TODO This repository is published as an NPM package and it's themes and helper functions are exposed in the `index.js` file.
|
|
95
|
+
|
|
96
|
+
## Adding new configuration styles
|
|
97
|
+
New configuration styles can be added to the `themes/base.js` file which will be shared by all child themes. If you want to add a new option only in a specific theme, then edit the `themes/xx.js` file. The format for the theme files follows the structure of the `tailwind.config.js` file. https://tailwindcss.com/docs/configuration
|
|
98
|
+
|
|
99
|
+
## Adding new themes
|
|
100
|
+
New themes can be added by creating a new xx.js file in the themes folder. Once the new theme has been configured, it will need to be made exportable in the `index.js` file.
|
|
101
|
+
|
|
102
|
+
## Versioning
|
|
103
|
+
Ensure to bump the version number in `package.json` followed by running `npm i` before each commit. And then run `npm run docker:publish` to publish the version to NPM.
|
package/buildspec.yml
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
version: 0.2
|
|
2
|
-
environment_variables:
|
|
3
|
-
plaintext:
|
|
4
|
-
S3_KEY_PREFIX: 'brandcrowd-storybook/fe-shared-lib'
|
|
5
|
-
STATIC_PATH: './.storybook-static'
|
|
6
|
-
env:
|
|
7
|
-
parameter-store:
|
|
8
|
-
NPM_TOKEN: 'publish-npm-designcrowd-token'
|
|
9
|
-
build_docker_username: 'build-docker-username'
|
|
10
|
-
build_docker_password: 'build-docker-password'
|
|
11
|
-
phases:
|
|
12
|
-
install:
|
|
13
|
-
runtime-versions:
|
|
14
|
-
nodejs: 20
|
|
15
|
-
commands:
|
|
16
|
-
- npm i -g npm@10.4.0
|
|
17
|
-
- cp npmrc .npmrc
|
|
18
|
-
- npm install
|
|
19
|
-
- echo Installing yarn...
|
|
20
|
-
- npm install -g yarn
|
|
21
|
-
pre_build:
|
|
22
|
-
commands:
|
|
23
|
-
- IMAGE_TAG=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
|
|
24
|
-
build:
|
|
25
|
-
commands:
|
|
26
|
-
- echo Build started on `date`
|
|
27
|
-
- echo Building the Docker image...
|
|
28
|
-
- docker login -u $build_docker_username -p $build_docker_password
|
|
29
|
-
- yarn build
|
|
30
|
-
- docker build -t $IMAGE_TAG --build-arg NPM_TOKEN=$NPM_TOKEN .
|
|
31
|
-
- echo Build started on `date`
|
|
32
|
-
- yarn bundle-translation
|
|
33
|
-
- yarn build:storybook
|
|
34
|
-
post_build:
|
|
35
|
-
commands:
|
|
36
|
-
- echo Build completed on `date`
|
|
37
|
-
- echo Extracting artifacts from Docker container...
|
|
38
|
-
- docker create --name "temp_library.fe-shared-lib_$IMAGE_TAG" $IMAGE_TAG
|
|
39
|
-
- docker cp temp_library.fe-shared-lib_$IMAGE_TAG:/app/artifacts .
|
|
40
|
-
- docker rm temp_library.fe-shared-lib_$IMAGE_TAG
|
|
41
|
-
- NPM_PUBLISH_FAILED=$(ls -1 ./artifacts/npm_publish_failed | wc -l)
|
|
42
|
-
- NPM_PUBLISH_VERSION=$(grep version ./artifacts/package.json | sed -En "s/\s+\"version\".\s+\"(.+)\",/\1/p")
|
|
43
|
-
- JSON="{\"npmPublishVersion\":{\"DataType\":\"String\",\"StringValue\":\"$NPM_PUBLISH_VERSION\"},\"npmPublishFailed\":{\"DataType\":\"String\",\"StringValue\":\"$NPM_PUBLISH_FAILED\"},\"gitRepoName\":{\"DataType\":\"String\",\"StringValue\":\"fe-shared-lib\"}, \"gitHash\":{\"DataType\":\"String\",\"StringValue\":\"${CODEBUILD_RESOLVED_SOURCE_VERSION}\"}, \"containerPath\":{\"DataType\":\"String\",\"StringValue\":\"${IMAGE_TAG}\"}}"
|
|
44
|
-
- aws sns publish --topic-arn "arn:aws:sns:us-east-1:104415087145:ci-libraryimagemaker-build" --message "Build Complete" --message-attributes "$JSON"
|
|
45
|
-
- aws s3 rm s3://${S3_KEY_PREFIX}/live --recursive
|
|
46
|
-
- aws s3 cp ${STATIC_PATH}/ s3://${S3_KEY_PREFIX}/live --recursive
|
|
47
|
-
- echo Build completed on `date`
|
|
1
|
+
version: 0.2
|
|
2
|
+
environment_variables:
|
|
3
|
+
plaintext:
|
|
4
|
+
S3_KEY_PREFIX: 'brandcrowd-storybook/fe-shared-lib'
|
|
5
|
+
STATIC_PATH: './.storybook-static'
|
|
6
|
+
env:
|
|
7
|
+
parameter-store:
|
|
8
|
+
NPM_TOKEN: 'publish-npm-designcrowd-token'
|
|
9
|
+
build_docker_username: 'build-docker-username'
|
|
10
|
+
build_docker_password: 'build-docker-password'
|
|
11
|
+
phases:
|
|
12
|
+
install:
|
|
13
|
+
runtime-versions:
|
|
14
|
+
nodejs: 20
|
|
15
|
+
commands:
|
|
16
|
+
- npm i -g npm@10.4.0
|
|
17
|
+
- cp npmrc .npmrc
|
|
18
|
+
- npm install
|
|
19
|
+
- echo Installing yarn...
|
|
20
|
+
- npm install -g yarn
|
|
21
|
+
pre_build:
|
|
22
|
+
commands:
|
|
23
|
+
- IMAGE_TAG=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
|
|
24
|
+
build:
|
|
25
|
+
commands:
|
|
26
|
+
- echo Build started on `date`
|
|
27
|
+
- echo Building the Docker image...
|
|
28
|
+
- docker login -u $build_docker_username -p $build_docker_password
|
|
29
|
+
- yarn build
|
|
30
|
+
- docker build -t $IMAGE_TAG --build-arg NPM_TOKEN=$NPM_TOKEN .
|
|
31
|
+
- echo Build started on `date`
|
|
32
|
+
- yarn bundle-translation
|
|
33
|
+
- yarn build:storybook
|
|
34
|
+
post_build:
|
|
35
|
+
commands:
|
|
36
|
+
- echo Build completed on `date`
|
|
37
|
+
- echo Extracting artifacts from Docker container...
|
|
38
|
+
- docker create --name "temp_library.fe-shared-lib_$IMAGE_TAG" $IMAGE_TAG
|
|
39
|
+
- docker cp temp_library.fe-shared-lib_$IMAGE_TAG:/app/artifacts .
|
|
40
|
+
- docker rm temp_library.fe-shared-lib_$IMAGE_TAG
|
|
41
|
+
- NPM_PUBLISH_FAILED=$(ls -1 ./artifacts/npm_publish_failed | wc -l)
|
|
42
|
+
- NPM_PUBLISH_VERSION=$(grep version ./artifacts/package.json | sed -En "s/\s+\"version\".\s+\"(.+)\",/\1/p")
|
|
43
|
+
- JSON="{\"npmPublishVersion\":{\"DataType\":\"String\",\"StringValue\":\"$NPM_PUBLISH_VERSION\"},\"npmPublishFailed\":{\"DataType\":\"String\",\"StringValue\":\"$NPM_PUBLISH_FAILED\"},\"gitRepoName\":{\"DataType\":\"String\",\"StringValue\":\"fe-shared-lib\"}, \"gitHash\":{\"DataType\":\"String\",\"StringValue\":\"${CODEBUILD_RESOLVED_SOURCE_VERSION}\"}, \"containerPath\":{\"DataType\":\"String\",\"StringValue\":\"${IMAGE_TAG}\"}}"
|
|
44
|
+
- aws sns publish --topic-arn "arn:aws:sns:us-east-1:104415087145:ci-libraryimagemaker-build" --message "Build Complete" --message-attributes "$JSON"
|
|
45
|
+
- aws s3 rm s3://${S3_KEY_PREFIX}/live --recursive
|
|
46
|
+
- aws s3 cp ${STATIC_PATH}/ s3://${S3_KEY_PREFIX}/live --recursive
|
|
47
|
+
- echo Build completed on `date`
|