@automattic/onboarding 1.0.0
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/README.md +20 -0
- package/dist/cjs/action-buttons/index.js +50 -0
- package/dist/cjs/action-buttons/index.js.map +1 -0
- package/dist/cjs/action-buttons/style.scss +108 -0
- package/dist/cjs/cart/create-cart-manager-client.js +30 -0
- package/dist/cjs/cart/create-cart-manager-client.js.map +1 -0
- package/dist/cjs/cart/index.js +239 -0
- package/dist/cjs/cart/index.js.map +1 -0
- package/dist/cjs/confetti/index.js +8 -0
- package/dist/cjs/confetti/index.js.map +1 -0
- package/dist/cjs/feature-icon/index.js +19 -0
- package/dist/cjs/feature-icon/index.js.map +1 -0
- package/dist/cjs/flow-progress/index.js +14 -0
- package/dist/cjs/flow-progress/index.js.map +1 -0
- package/dist/cjs/flow-progress/style.scss +5 -0
- package/dist/cjs/flow-progress/use-flow-progress.js +92 -0
- package/dist/cjs/flow-progress/use-flow-progress.js.map +1 -0
- package/dist/cjs/hooray/index.js +12 -0
- package/dist/cjs/hooray/index.js.map +1 -0
- package/dist/cjs/hooray/style.scss +66 -0
- package/dist/cjs/index.js +54 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/intent-screen/index.js +11 -0
- package/dist/cjs/intent-screen/index.js.map +1 -0
- package/dist/cjs/mshots-image/index.js +234 -0
- package/dist/cjs/mshots-image/index.js.map +1 -0
- package/dist/cjs/mshots-image/style.scss +43 -0
- package/dist/cjs/navigator/hooks/index.js +6 -0
- package/dist/cjs/navigator/hooks/index.js.map +1 -0
- package/dist/cjs/navigator/hooks/use-navigator-listener.js +16 -0
- package/dist/cjs/navigator/hooks/use-navigator-listener.js.map +1 -0
- package/dist/cjs/navigator/index.js +18 -0
- package/dist/cjs/navigator/index.js.map +1 -0
- package/dist/cjs/navigator/navigator-buttons/index.js +23 -0
- package/dist/cjs/navigator/navigator-buttons/index.js.map +1 -0
- package/dist/cjs/navigator/navigator-buttons/style.scss +47 -0
- package/dist/cjs/navigator/navigator-header/index.js +13 -0
- package/dist/cjs/navigator/navigator-header/index.js.map +1 -0
- package/dist/cjs/navigator/navigator-header/style.scss +45 -0
- package/dist/cjs/navigator/navigator-item-group/index.js +10 -0
- package/dist/cjs/navigator/navigator-item-group/index.js.map +1 -0
- package/dist/cjs/navigator/navigator-item-group/style.scss +28 -0
- package/dist/cjs/navigator/navigator-listener/index.js +9 -0
- package/dist/cjs/navigator/navigator-listener/index.js.map +1 -0
- package/dist/cjs/navigator/navigator-screen/index.js +16 -0
- package/dist/cjs/navigator/navigator-screen/index.js.map +1 -0
- package/dist/cjs/navigator/navigator-screens/hooks/index.js +8 -0
- package/dist/cjs/navigator/navigator-screens/hooks/index.js.map +1 -0
- package/dist/cjs/navigator/navigator-screens/hooks/use-navigator-buttons.js +17 -0
- package/dist/cjs/navigator/navigator-screens/hooks/use-navigator-buttons.js.map +1 -0
- package/dist/cjs/navigator/navigator-screens/hooks/use-navigator-screens.js +14 -0
- package/dist/cjs/navigator/navigator-screens/hooks/use-navigator-screens.js.map +1 -0
- package/dist/cjs/navigator/navigator-screens/index.js +9 -0
- package/dist/cjs/navigator/navigator-screens/index.js.map +1 -0
- package/dist/cjs/navigator/navigator-screens/navigator-screens.js +18 -0
- package/dist/cjs/navigator/navigator-screens/navigator-screens.js.map +1 -0
- package/dist/cjs/navigator/navigator-screens/navigator-screens.scss +60 -0
- package/dist/cjs/navigator/navigator-screens/types.js +3 -0
- package/dist/cjs/navigator/navigator-screens/types.js.map +1 -0
- package/dist/cjs/notice/index.js +12 -0
- package/dist/cjs/notice/index.js.map +1 -0
- package/dist/cjs/notice/style.scss +19 -0
- package/dist/cjs/progress/index.js +11 -0
- package/dist/cjs/progress/index.js.map +1 -0
- package/dist/cjs/progress/style.scss +34 -0
- package/dist/cjs/select-card-checkbox/index.js +17 -0
- package/dist/cjs/select-card-checkbox/index.js.map +1 -0
- package/dist/cjs/select-card-checkbox/style.scss +30 -0
- package/dist/cjs/select-card-radio/index.js +21 -0
- package/dist/cjs/select-card-radio/index.js.map +1 -0
- package/dist/cjs/select-card-radio/style.scss +44 -0
- package/dist/cjs/select-items/index.js +13 -0
- package/dist/cjs/select-items/index.js.map +1 -0
- package/dist/cjs/select-items/style.scss +96 -0
- package/dist/cjs/select-items-alt/index.js +14 -0
- package/dist/cjs/select-items-alt/index.js.map +1 -0
- package/dist/cjs/select-items-alt/style.scss +72 -0
- package/dist/cjs/sensei-logo/index.js +8 -0
- package/dist/cjs/sensei-logo/index.js.map +1 -0
- package/dist/cjs/setup-tailored-site-after-creation.js +109 -0
- package/dist/cjs/setup-tailored-site-after-creation.js.map +1 -0
- package/dist/cjs/step-container/index.js +65 -0
- package/dist/cjs/step-container/index.js.map +1 -0
- package/dist/cjs/step-container/style.scss +304 -0
- package/dist/cjs/step-navigation-link/index.js +35 -0
- package/dist/cjs/step-navigation-link/index.js.map +1 -0
- package/dist/cjs/step-navigation-link/style.scss +42 -0
- package/dist/cjs/titles/index.js +13 -0
- package/dist/cjs/titles/index.js.map +1 -0
- package/dist/cjs/titles/styles.scss +29 -0
- package/dist/cjs/upload-and-set-site-logo.js +32 -0
- package/dist/cjs/upload-and-set-site-logo.js.map +1 -0
- package/dist/cjs/utils/contrastChecker.js +38 -0
- package/dist/cjs/utils/contrastChecker.js.map +1 -0
- package/dist/cjs/utils/domain-suggester.js +113 -0
- package/dist/cjs/utils/domain-suggester.js.map +1 -0
- package/dist/cjs/utils/flows.js +218 -0
- package/dist/cjs/utils/flows.js.map +1 -0
- package/dist/cjs/utils/index.js +13 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/is-domain.js +22 -0
- package/dist/cjs/utils/is-domain.js.map +1 -0
- package/dist/cjs/utils/use-data-loss-warning.js +20 -0
- package/dist/cjs/utils/use-data-loss-warning.js.map +1 -0
- package/dist/cjs/videopress-logo/index.js +8 -0
- package/dist/cjs/videopress-logo/index.js.map +1 -0
- package/dist/esm/action-buttons/index.js +42 -0
- package/dist/esm/action-buttons/index.js.map +1 -0
- package/dist/esm/action-buttons/style.scss +108 -0
- package/dist/esm/cart/create-cart-manager-client.js +27 -0
- package/dist/esm/cart/create-cart-manager-client.js.map +1 -0
- package/dist/esm/cart/index.js +229 -0
- package/dist/esm/cart/index.js.map +1 -0
- package/dist/esm/confetti/index.js +6 -0
- package/dist/esm/confetti/index.js.map +1 -0
- package/dist/esm/feature-icon/index.js +16 -0
- package/dist/esm/feature-icon/index.js.map +1 -0
- package/dist/esm/flow-progress/index.js +12 -0
- package/dist/esm/flow-progress/index.js.map +1 -0
- package/dist/esm/flow-progress/style.scss +5 -0
- package/dist/esm/flow-progress/use-flow-progress.js +88 -0
- package/dist/esm/flow-progress/use-flow-progress.js.map +1 -0
- package/dist/esm/hooray/index.js +9 -0
- package/dist/esm/hooray/index.js.map +1 -0
- package/dist/esm/hooray/style.scss +66 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/intent-screen/index.js +8 -0
- package/dist/esm/intent-screen/index.js.map +1 -0
- package/dist/esm/mshots-image/index.js +229 -0
- package/dist/esm/mshots-image/index.js.map +1 -0
- package/dist/esm/mshots-image/style.scss +43 -0
- package/dist/esm/navigator/hooks/index.js +2 -0
- package/dist/esm/navigator/hooks/index.js.map +1 -0
- package/dist/esm/navigator/hooks/use-navigator-listener.js +14 -0
- package/dist/esm/navigator/hooks/use-navigator-listener.js.map +1 -0
- package/dist/esm/navigator/index.js +8 -0
- package/dist/esm/navigator/index.js.map +1 -0
- package/dist/esm/navigator/navigator-buttons/index.js +17 -0
- package/dist/esm/navigator/navigator-buttons/index.js.map +1 -0
- package/dist/esm/navigator/navigator-buttons/style.scss +47 -0
- package/dist/esm/navigator/navigator-header/index.js +11 -0
- package/dist/esm/navigator/navigator-header/index.js.map +1 -0
- package/dist/esm/navigator/navigator-header/style.scss +45 -0
- package/dist/esm/navigator/navigator-item-group/index.js +8 -0
- package/dist/esm/navigator/navigator-item-group/index.js.map +1 -0
- package/dist/esm/navigator/navigator-item-group/style.scss +28 -0
- package/dist/esm/navigator/navigator-listener/index.js +7 -0
- package/dist/esm/navigator/navigator-listener/index.js.map +1 -0
- package/dist/esm/navigator/navigator-screen/index.js +14 -0
- package/dist/esm/navigator/navigator-screen/index.js.map +1 -0
- package/dist/esm/navigator/navigator-screens/hooks/index.js +3 -0
- package/dist/esm/navigator/navigator-screens/hooks/index.js.map +1 -0
- package/dist/esm/navigator/navigator-screens/hooks/use-navigator-buttons.js +14 -0
- package/dist/esm/navigator/navigator-screens/hooks/use-navigator-buttons.js.map +1 -0
- package/dist/esm/navigator/navigator-screens/hooks/use-navigator-screens.js +11 -0
- package/dist/esm/navigator/navigator-screens/hooks/use-navigator-screens.js.map +1 -0
- package/dist/esm/navigator/navigator-screens/index.js +4 -0
- package/dist/esm/navigator/navigator-screens/index.js.map +1 -0
- package/dist/esm/navigator/navigator-screens/navigator-screens.js +15 -0
- package/dist/esm/navigator/navigator-screens/navigator-screens.js.map +1 -0
- package/dist/esm/navigator/navigator-screens/navigator-screens.scss +60 -0
- package/dist/esm/navigator/navigator-screens/types.js +2 -0
- package/dist/esm/navigator/navigator-screens/types.js.map +1 -0
- package/dist/esm/notice/index.js +9 -0
- package/dist/esm/notice/index.js.map +1 -0
- package/dist/esm/notice/style.scss +19 -0
- package/dist/esm/progress/index.js +8 -0
- package/dist/esm/progress/index.js.map +1 -0
- package/dist/esm/progress/style.scss +34 -0
- package/dist/esm/select-card-checkbox/index.js +14 -0
- package/dist/esm/select-card-checkbox/index.js.map +1 -0
- package/dist/esm/select-card-checkbox/style.scss +30 -0
- package/dist/esm/select-card-radio/index.js +15 -0
- package/dist/esm/select-card-radio/index.js.map +1 -0
- package/dist/esm/select-card-radio/style.scss +44 -0
- package/dist/esm/select-items/index.js +10 -0
- package/dist/esm/select-items/index.js.map +1 -0
- package/dist/esm/select-items/style.scss +96 -0
- package/dist/esm/select-items-alt/index.js +11 -0
- package/dist/esm/select-items-alt/index.js.map +1 -0
- package/dist/esm/select-items-alt/style.scss +72 -0
- package/dist/esm/sensei-logo/index.js +6 -0
- package/dist/esm/sensei-logo/index.js.map +1 -0
- package/dist/esm/setup-tailored-site-after-creation.js +103 -0
- package/dist/esm/setup-tailored-site-after-creation.js.map +1 -0
- package/dist/esm/step-container/index.js +62 -0
- package/dist/esm/step-container/index.js.map +1 -0
- package/dist/esm/step-container/style.scss +304 -0
- package/dist/esm/step-navigation-link/index.js +32 -0
- package/dist/esm/step-navigation-link/index.js.map +1 -0
- package/dist/esm/step-navigation-link/style.scss +42 -0
- package/dist/esm/titles/index.js +7 -0
- package/dist/esm/titles/index.js.map +1 -0
- package/dist/esm/titles/styles.scss +29 -0
- package/dist/esm/upload-and-set-site-logo.js +27 -0
- package/dist/esm/upload-and-set-site-logo.js.map +1 -0
- package/dist/esm/utils/contrastChecker.js +33 -0
- package/dist/esm/utils/contrastChecker.js.map +1 -0
- package/dist/esm/utils/domain-suggester.js +108 -0
- package/dist/esm/utils/domain-suggester.js.map +1 -0
- package/dist/esm/utils/flows.js +179 -0
- package/dist/esm/utils/flows.js.map +1 -0
- package/dist/esm/utils/index.js +6 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/is-domain.js +18 -0
- package/dist/esm/utils/is-domain.js.map +1 -0
- package/dist/esm/utils/use-data-loss-warning.js +16 -0
- package/dist/esm/utils/use-data-loss-warning.js.map +1 -0
- package/dist/esm/videopress-logo/index.js +6 -0
- package/dist/esm/videopress-logo/index.js.map +1 -0
- package/dist/styles/base-styles.scss +7 -0
- package/dist/styles/mixins.scss +262 -0
- package/dist/styles/variables.scss +26 -0
- package/dist/styles/z-index.scss +41 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/action-buttons/index.d.ts +17 -0
- package/dist/types/action-buttons/index.d.ts.map +1 -0
- package/dist/types/cart/create-cart-manager-client.d.ts +3 -0
- package/dist/types/cart/create-cart-manager-client.d.ts.map +1 -0
- package/dist/types/cart/index.d.ts +47 -0
- package/dist/types/cart/index.d.ts.map +1 -0
- package/dist/types/confetti/index.d.ts +6 -0
- package/dist/types/confetti/index.d.ts.map +1 -0
- package/dist/types/feature-icon/index.d.ts +9 -0
- package/dist/types/feature-icon/index.d.ts.map +1 -0
- package/dist/types/flow-progress/index.d.ts +9 -0
- package/dist/types/flow-progress/index.d.ts.map +1 -0
- package/dist/types/flow-progress/use-flow-progress.d.ts +11 -0
- package/dist/types/flow-progress/use-flow-progress.d.ts.map +1 -0
- package/dist/types/hooray/index.d.ts +10 -0
- package/dist/types/hooray/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/intent-screen/index.d.ts +12 -0
- package/dist/types/intent-screen/index.d.ts.map +1 -0
- package/dist/types/mshots-image/index.d.ts +21 -0
- package/dist/types/mshots-image/index.d.ts.map +1 -0
- package/dist/types/navigator/hooks/index.d.ts +3 -0
- package/dist/types/navigator/hooks/index.d.ts.map +1 -0
- package/dist/types/navigator/hooks/use-navigator-listener.d.ts +4 -0
- package/dist/types/navigator/hooks/use-navigator-listener.d.ts.map +1 -0
- package/dist/types/navigator/index.d.ts +8 -0
- package/dist/types/navigator/index.d.ts.map +1 -0
- package/dist/types/navigator/navigator-buttons/index.d.ts +17 -0
- package/dist/types/navigator/navigator-buttons/index.d.ts.map +1 -0
- package/dist/types/navigator/navigator-header/index.d.ts +12 -0
- package/dist/types/navigator/navigator-header/index.d.ts.map +1 -0
- package/dist/types/navigator/navigator-item-group/index.d.ts +9 -0
- package/dist/types/navigator/navigator-item-group/index.d.ts.map +1 -0
- package/dist/types/navigator/navigator-listener/index.d.ts +7 -0
- package/dist/types/navigator/navigator-listener/index.d.ts.map +1 -0
- package/dist/types/navigator/navigator-screen/index.d.ts +11 -0
- package/dist/types/navigator/navigator-screen/index.d.ts.map +1 -0
- package/dist/types/navigator/navigator-screens/hooks/index.d.ts +3 -0
- package/dist/types/navigator/navigator-screens/hooks/index.d.ts.map +1 -0
- package/dist/types/navigator/navigator-screens/hooks/use-navigator-buttons.d.ts +4 -0
- package/dist/types/navigator/navigator-screens/hooks/use-navigator-buttons.d.ts.map +1 -0
- package/dist/types/navigator/navigator-screens/hooks/use-navigator-screens.d.ts +4 -0
- package/dist/types/navigator/navigator-screens/hooks/use-navigator-screens.d.ts.map +1 -0
- package/dist/types/navigator/navigator-screens/index.d.ts +4 -0
- package/dist/types/navigator/navigator-screens/index.d.ts.map +1 -0
- package/dist/types/navigator/navigator-screens/navigator-screens.d.ts +12 -0
- package/dist/types/navigator/navigator-screens/navigator-screens.d.ts.map +1 -0
- package/dist/types/navigator/navigator-screens/types.d.ts +17 -0
- package/dist/types/navigator/navigator-screens/types.d.ts.map +1 -0
- package/dist/types/notice/index.d.ts +7 -0
- package/dist/types/notice/index.d.ts.map +1 -0
- package/dist/types/progress/index.d.ts +10 -0
- package/dist/types/progress/index.d.ts.map +1 -0
- package/dist/types/select-card-checkbox/index.d.ts +11 -0
- package/dist/types/select-card-checkbox/index.d.ts.map +1 -0
- package/dist/types/select-card-radio/index.d.ts +22 -0
- package/dist/types/select-card-radio/index.d.ts.map +1 -0
- package/dist/types/select-items/index.d.ts +25 -0
- package/dist/types/select-items/index.d.ts.map +1 -0
- package/dist/types/select-items-alt/index.d.ts +19 -0
- package/dist/types/select-items-alt/index.d.ts.map +1 -0
- package/dist/types/sensei-logo/index.d.ts +8 -0
- package/dist/types/sensei-logo/index.d.ts.map +1 -0
- package/dist/types/setup-tailored-site-after-creation.d.ts +8 -0
- package/dist/types/setup-tailored-site-after-creation.d.ts.map +1 -0
- package/dist/types/step-container/index.d.ts +45 -0
- package/dist/types/step-container/index.d.ts.map +1 -0
- package/dist/types/step-navigation-link/index.d.ts +18 -0
- package/dist/types/step-navigation-link/index.d.ts.map +1 -0
- package/dist/types/titles/index.d.ts +12 -0
- package/dist/types/titles/index.d.ts.map +1 -0
- package/dist/types/upload-and-set-site-logo.d.ts +13 -0
- package/dist/types/upload-and-set-site-logo.d.ts.map +1 -0
- package/dist/types/utils/contrastChecker.d.ts +17 -0
- package/dist/types/utils/contrastChecker.d.ts.map +1 -0
- package/dist/types/utils/domain-suggester.d.ts +15 -0
- package/dist/types/utils/domain-suggester.d.ts.map +1 -0
- package/dist/types/utils/flows.d.ts +89 -0
- package/dist/types/utils/flows.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +6 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/is-domain.d.ts +2 -0
- package/dist/types/utils/is-domain.d.ts.map +1 -0
- package/dist/types/utils/use-data-loss-warning.d.ts +2 -0
- package/dist/types/utils/use-data-loss-warning.d.ts.map +1 -0
- package/dist/types/videopress-logo/index.d.ts +8 -0
- package/dist/types/videopress-logo/index.d.ts.map +1 -0
- package/jest.config.js +5 -0
- package/package.json +63 -0
- package/src/action-buttons/index.tsx +113 -0
- package/src/action-buttons/style.scss +108 -0
- package/src/cart/create-cart-manager-client.ts +34 -0
- package/src/cart/index.tsx +375 -0
- package/src/cart/test/index.ts +172 -0
- package/src/confetti/index.tsx +95 -0
- package/src/feature-icon/index.tsx +102 -0
- package/src/flow-progress/index.tsx +22 -0
- package/src/flow-progress/style.scss +5 -0
- package/src/flow-progress/use-flow-progress.ts +108 -0
- package/src/hooray/index.tsx +34 -0
- package/src/hooray/style.scss +66 -0
- package/src/index.ts +36 -0
- package/src/intent-screen/README.md +12 -0
- package/src/intent-screen/index.tsx +26 -0
- package/src/intent-screen/test/index.tsx +197 -0
- package/src/mshots-image/index.tsx +368 -0
- package/src/mshots-image/style.scss +43 -0
- package/src/mshots-image/test/mshots-image.tsx +5 -0
- package/src/navigator/hooks/index.tsx +2 -0
- package/src/navigator/hooks/use-navigator-listener.tsx +18 -0
- package/src/navigator/index.ts +7 -0
- package/src/navigator/navigator-buttons/index.tsx +58 -0
- package/src/navigator/navigator-buttons/style.scss +47 -0
- package/src/navigator/navigator-header/index.tsx +40 -0
- package/src/navigator/navigator-header/style.scss +45 -0
- package/src/navigator/navigator-item-group/index.tsx +23 -0
- package/src/navigator/navigator-item-group/style.scss +28 -0
- package/src/navigator/navigator-listener/index.tsx +12 -0
- package/src/navigator/navigator-screen/index.tsx +24 -0
- package/src/navigator/navigator-screens/hooks/index.tsx +2 -0
- package/src/navigator/navigator-screens/hooks/use-navigator-buttons.tsx +32 -0
- package/src/navigator/navigator-screens/hooks/use-navigator-screens.tsx +57 -0
- package/src/navigator/navigator-screens/index.ts +3 -0
- package/src/navigator/navigator-screens/navigator-screens.scss +60 -0
- package/src/navigator/navigator-screens/navigator-screens.tsx +41 -0
- package/src/navigator/navigator-screens/types.ts +15 -0
- package/src/notice/index.tsx +16 -0
- package/src/notice/style.scss +19 -0
- package/src/progress/index.tsx +23 -0
- package/src/progress/style.scss +34 -0
- package/src/select-card-checkbox/index.tsx +38 -0
- package/src/select-card-checkbox/style.scss +30 -0
- package/src/select-card-radio/index.tsx +64 -0
- package/src/select-card-radio/style.scss +44 -0
- package/src/select-card-radio/test/index.tsx +50 -0
- package/src/select-items/README.md +13 -0
- package/src/select-items/index.tsx +90 -0
- package/src/select-items/style.scss +96 -0
- package/src/select-items-alt/README.md +13 -0
- package/src/select-items-alt/index.tsx +61 -0
- package/src/select-items-alt/style.scss +72 -0
- package/src/sensei-logo/index.tsx +30 -0
- package/src/setup-tailored-site-after-creation.ts +149 -0
- package/src/step-container/index.tsx +251 -0
- package/src/step-container/style.scss +304 -0
- package/src/step-navigation-link/index.tsx +71 -0
- package/src/step-navigation-link/style.scss +42 -0
- package/src/titles/index.tsx +36 -0
- package/src/titles/styles.scss +29 -0
- package/src/types.d.ts +1 -0
- package/src/upload-and-set-site-logo.ts +38 -0
- package/src/utils/contrastChecker.ts +52 -0
- package/src/utils/domain-suggester.ts +126 -0
- package/src/utils/flows.ts +232 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/is-domain.ts +18 -0
- package/src/utils/test/domain-suggester.ts +87 -0
- package/src/utils/use-data-loss-warning.ts +17 -0
- package/src/videopress-logo/index.tsx +36 -0
- package/styles/base-styles.scss +7 -0
- package/styles/mixins.scss +262 -0
- package/styles/variables.scss +26 -0
- package/styles/z-index.scss +41 -0
- package/tsconfig-cjs.json +7 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
export const ACCOUNT_FLOW = 'account';
|
|
2
|
+
export const AI_ASSEMBLER_FLOW = 'ai-assembler';
|
|
3
|
+
export const NEWSLETTER_FLOW = 'newsletter';
|
|
4
|
+
export const NEWSLETTER_POST_SETUP_FLOW = 'newsletter-post-setup';
|
|
5
|
+
export const HOSTING_LP_FLOW = 'hosting-start';
|
|
6
|
+
export const NEW_HOSTED_SITE_FLOW = 'new-hosted-site';
|
|
7
|
+
export const NEW_HOSTED_SITE_FLOW_USER_INCLUDED = 'new-hosted-site-user-included';
|
|
8
|
+
export const TRANSFERRING_HOSTED_SITE_FLOW = 'transferring-hosted-site';
|
|
9
|
+
export const LINK_IN_BIO_FLOW = 'link-in-bio';
|
|
10
|
+
export const LINK_IN_BIO_TLD_FLOW = 'link-in-bio-tld';
|
|
11
|
+
export const LINK_IN_BIO_POST_SETUP_FLOW = 'link-in-bio-post-setup';
|
|
12
|
+
export const CONNECT_DOMAIN_FLOW = 'connect-domain';
|
|
13
|
+
export const VIDEOPRESS_FLOW = 'videopress';
|
|
14
|
+
export const VIDEOPRESS_ACCOUNT = 'videopress-account';
|
|
15
|
+
export const VIDEOPRESS_TV_FLOW = 'videopress-tv';
|
|
16
|
+
export const VIDEOPRESS_TV_PURCHASE_FLOW = 'videopress-tv-purchase';
|
|
17
|
+
export const IMPORT_FOCUSED_FLOW = 'import-focused';
|
|
18
|
+
export const IMPORT_HOSTED_SITE_FLOW = 'import-hosted-site';
|
|
19
|
+
export const SENSEI_FLOW = 'sensei';
|
|
20
|
+
export const ECOMMERCE_FLOW = 'ecommerce';
|
|
21
|
+
export const ENTREPRENEUR_FLOW = 'entrepreneur';
|
|
22
|
+
export const WOOEXPRESS_FLOW = 'wooexpress';
|
|
23
|
+
export const FREE_FLOW = 'free';
|
|
24
|
+
export const FREE_POST_SETUP_FLOW = 'free-post-setup';
|
|
25
|
+
export const MIGRATION_FLOW = 'import-focused';
|
|
26
|
+
export const SITE_MIGRATION_FLOW = 'site-migration';
|
|
27
|
+
export const MIGRATION_SIGNUP_FLOW = 'migration-signup';
|
|
28
|
+
export const HOSTED_SITE_MIGRATION_FLOW = 'hosted-site-migration';
|
|
29
|
+
export const COPY_SITE_FLOW = 'copy-site';
|
|
30
|
+
export const BUILD_FLOW = 'build';
|
|
31
|
+
export const WRITE_FLOW = 'write';
|
|
32
|
+
export const START_WRITING_FLOW = 'start-writing';
|
|
33
|
+
export const DESIGN_FIRST_FLOW = 'design-first';
|
|
34
|
+
export const SITE_SETUP_FLOW = 'site-setup';
|
|
35
|
+
export const WITH_THEME_FLOW = 'with-theme';
|
|
36
|
+
export const WITH_THEME_ASSEMBLER_FLOW = 'with-theme-assembler';
|
|
37
|
+
export const ASSEMBLER_FIRST_FLOW = 'assembler-first';
|
|
38
|
+
|
|
39
|
+
export const READYMADE_TEMPLATE_FLOW = 'readymade-template';
|
|
40
|
+
|
|
41
|
+
export const UPDATE_DESIGN_FLOW = 'update-design';
|
|
42
|
+
export const DOMAIN_UPSELL_FLOW = 'domain-upsell';
|
|
43
|
+
export const DOMAIN_TRANSFER = 'domain-transfer';
|
|
44
|
+
export const GOOGLE_TRANSFER = 'google-transfer';
|
|
45
|
+
export const HUNDRED_YEAR_PLAN_FLOW = 'hundred-year-plan';
|
|
46
|
+
export const REBLOGGING_FLOW = 'reblogging';
|
|
47
|
+
export const DOMAIN_FOR_GRAVATAR_FLOW = 'domain-for-gravatar';
|
|
48
|
+
export const ONBOARDING_GUIDED_FLOW = 'onboarding';
|
|
49
|
+
export const EMAIL_SUBSCRIPTION_FLOW = 'email-subscription';
|
|
50
|
+
|
|
51
|
+
export const isLinkInBioFlow = ( flowName: string | null | undefined ) => {
|
|
52
|
+
return Boolean(
|
|
53
|
+
flowName &&
|
|
54
|
+
[ LINK_IN_BIO_FLOW, LINK_IN_BIO_TLD_FLOW, LINK_IN_BIO_POST_SETUP_FLOW ].includes( flowName )
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const isNewsletterFlow = ( flowName: string | null ) => {
|
|
59
|
+
return Boolean(
|
|
60
|
+
flowName && [ NEWSLETTER_FLOW, NEWSLETTER_POST_SETUP_FLOW ].includes( flowName )
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export const isFreeFlow = ( flowName: string | null ) => {
|
|
65
|
+
return Boolean( flowName && [ FREE_FLOW, FREE_POST_SETUP_FLOW ].includes( flowName ) );
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export const isNewsletterOrLinkInBioFlow = ( flowName: string | null ) => {
|
|
69
|
+
return Boolean(
|
|
70
|
+
flowName &&
|
|
71
|
+
[
|
|
72
|
+
NEWSLETTER_FLOW,
|
|
73
|
+
NEWSLETTER_POST_SETUP_FLOW,
|
|
74
|
+
LINK_IN_BIO_FLOW,
|
|
75
|
+
LINK_IN_BIO_TLD_FLOW,
|
|
76
|
+
LINK_IN_BIO_POST_SETUP_FLOW,
|
|
77
|
+
].includes( flowName )
|
|
78
|
+
);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const isTailoredSignupFlow = ( flowName: string | null ) => {
|
|
82
|
+
return Boolean(
|
|
83
|
+
flowName &&
|
|
84
|
+
( isNewsletterOrLinkInBioFlow( flowName ) ||
|
|
85
|
+
VIDEOPRESS_FLOW === flowName ||
|
|
86
|
+
VIDEOPRESS_TV_FLOW === flowName ||
|
|
87
|
+
VIDEOPRESS_TV_PURCHASE_FLOW === flowName ||
|
|
88
|
+
ECOMMERCE_FLOW === flowName ||
|
|
89
|
+
FREE_FLOW === flowName )
|
|
90
|
+
);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const isEntrepreneurSignupFlow = ( flowName: string | null ) => {
|
|
94
|
+
return Boolean( flowName && ENTREPRENEUR_FLOW === flowName );
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const isHostingSignupFlow = ( flowName: string | null ) => {
|
|
98
|
+
return Boolean( flowName && HOSTING_LP_FLOW === flowName );
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export const isNewHostedSiteCreationFlow = ( flowName: string | null ) => {
|
|
102
|
+
return Boolean( flowName && NEW_HOSTED_SITE_FLOW === flowName );
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export const isTransferringHostedSiteCreationFlow = ( flowName: string | null ) => {
|
|
106
|
+
return Boolean( flowName && TRANSFERRING_HOSTED_SITE_FLOW === flowName );
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export const isAnyHostingFlow = ( flowName?: string | null ) => {
|
|
110
|
+
return Boolean(
|
|
111
|
+
flowName &&
|
|
112
|
+
[ HOSTING_LP_FLOW, NEW_HOSTED_SITE_FLOW, TRANSFERRING_HOSTED_SITE_FLOW ].includes( flowName )
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export const isAnyMigrationFlow = ( flowName?: string | null ) => {
|
|
117
|
+
return Boolean(
|
|
118
|
+
flowName &&
|
|
119
|
+
[ MIGRATION_FLOW, IMPORT_FOCUSED_FLOW, IMPORT_HOSTED_SITE_FLOW ].includes( flowName )
|
|
120
|
+
);
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export const isMigrationFlow = ( flowName: string | null ) => {
|
|
124
|
+
return Boolean( flowName && [ MIGRATION_FLOW ].includes( flowName ) );
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
export const isCopySiteFlow = ( flowName: string | null ) => {
|
|
128
|
+
return Boolean( flowName && [ COPY_SITE_FLOW ].includes( flowName ) );
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export const isEntrepreneurFlow = ( flowName: string | null ) => {
|
|
132
|
+
return Boolean( flowName && [ ENTREPRENEUR_FLOW ].includes( flowName ) );
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export const isWooExpressFlow = ( flowName: string | null ) => {
|
|
136
|
+
return Boolean( flowName && [ WOOEXPRESS_FLOW ].includes( flowName ) );
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
export const isNewSiteMigrationFlow = ( flowName: string | null ) => {
|
|
140
|
+
return Boolean( flowName && [ SITE_MIGRATION_FLOW ].includes( flowName ) );
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
export const isMigrationSignupFlow = ( flowName: string | null ) => {
|
|
144
|
+
return Boolean( flowName && [ MIGRATION_SIGNUP_FLOW ].includes( flowName ) );
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
export const isHostedSiteMigrationFlow = ( flowName: string | null ) => {
|
|
148
|
+
return Boolean( flowName && [ HOSTED_SITE_MIGRATION_FLOW ].includes( flowName ) );
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
export const isBuildFlow = ( flowName: string | null ) => {
|
|
152
|
+
return Boolean( flowName && [ BUILD_FLOW ].includes( flowName ) );
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export const isWriteFlow = ( flowName: string | null ) => {
|
|
156
|
+
return Boolean( flowName && [ WRITE_FLOW ].includes( flowName ) );
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
export const isUpdateDesignFlow = ( flowName: string | null ) => {
|
|
160
|
+
return Boolean( flowName && [ UPDATE_DESIGN_FLOW ].includes( flowName ) );
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export const isStartWritingFlow = ( flowName: string | null ) => {
|
|
164
|
+
return Boolean( flowName && [ START_WRITING_FLOW ].includes( flowName ) );
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export const isDesignFirstFlow = ( flowName: string | null ) => {
|
|
168
|
+
return Boolean( flowName && [ DESIGN_FIRST_FLOW ].includes( flowName ) );
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
export const isBlogOnboardingFlow = ( flowName: string | null ) => {
|
|
172
|
+
return Boolean( flowName && [ START_WRITING_FLOW, DESIGN_FIRST_FLOW ].includes( flowName ) );
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
export const isOnboardingGuidedFlow = ( flowName: string | null ) => {
|
|
176
|
+
return Boolean( flowName && [ ONBOARDING_GUIDED_FLOW ].includes( flowName ) );
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
export const isDomainUpsellFlow = ( flowName: string | null ) => {
|
|
180
|
+
return Boolean( flowName && [ DOMAIN_UPSELL_FLOW ].includes( flowName ) );
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
export const isSiteAssemblerFlow = ( flowName: string | null ) => {
|
|
184
|
+
const SITE_ASSEMBLER_FLOWS = [
|
|
185
|
+
WITH_THEME_ASSEMBLER_FLOW,
|
|
186
|
+
AI_ASSEMBLER_FLOW,
|
|
187
|
+
ASSEMBLER_FIRST_FLOW,
|
|
188
|
+
];
|
|
189
|
+
|
|
190
|
+
return !! flowName && SITE_ASSEMBLER_FLOWS.includes( flowName );
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
export const isReadymadeFlow = ( flowName: string | null ) => flowName === READYMADE_TEMPLATE_FLOW;
|
|
194
|
+
|
|
195
|
+
export const isWithThemeAssemblerFlow = ( flowName: string | null ) => {
|
|
196
|
+
return !! flowName && WITH_THEME_ASSEMBLER_FLOW === flowName;
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
export const isWithThemeFlow = ( flowName: string | null ) => {
|
|
200
|
+
const WITH_THEME_FLOWS = [ WITH_THEME_FLOW, WITH_THEME_ASSEMBLER_FLOW ];
|
|
201
|
+
|
|
202
|
+
return !! flowName && WITH_THEME_FLOWS.includes( flowName );
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
export const isSiteSetupFlow = ( flowName: string | null ) => {
|
|
206
|
+
return !! flowName && SITE_SETUP_FLOW === flowName;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
export const isSenseiFlow = ( flowName: string | null ) => {
|
|
210
|
+
return Boolean( flowName && SENSEI_FLOW === flowName );
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
export const ecommerceFlowRecurTypes = {
|
|
214
|
+
YEARLY: 'yearly',
|
|
215
|
+
MONTHLY: 'monthly',
|
|
216
|
+
'2Y': '2Y',
|
|
217
|
+
'3Y': '3Y',
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
export const isVideoPressFlow = ( flowName: string | null ) => {
|
|
221
|
+
return !! flowName && [ VIDEOPRESS_FLOW, VIDEOPRESS_ACCOUNT ].includes( flowName );
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
export const isVideoPressTVFlow = ( flowName: string | null | undefined ) => {
|
|
225
|
+
return Boolean(
|
|
226
|
+
flowName && [ VIDEOPRESS_TV_FLOW, VIDEOPRESS_TV_PURCHASE_FLOW ].includes( flowName )
|
|
227
|
+
);
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export const isDomainForGravatarFlow = ( flowName: string | null | undefined ) => {
|
|
231
|
+
return Boolean( flowName && [ DOMAIN_FOR_GRAVATAR_FLOW ].includes( flowName ) );
|
|
232
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function doesStringResembleDomain( domainOrProduct: string ): boolean {
|
|
2
|
+
try {
|
|
3
|
+
// Domain names should all contain a dot.
|
|
4
|
+
const hasDot = domainOrProduct.includes( '.' );
|
|
5
|
+
if ( ! hasDot ) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// Subdomain site slugs contain the install path after two colons.
|
|
10
|
+
const domainBeforeColons = domainOrProduct.split( '::' )[ 0 ];
|
|
11
|
+
|
|
12
|
+
// Domains should be able to become a valid URL.
|
|
13
|
+
// eslint-disable-next-line no-new
|
|
14
|
+
new URL( 'http://' + domainBeforeColons );
|
|
15
|
+
return true;
|
|
16
|
+
} catch {}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { suggestEmailCorrection } from '../domain-suggester';
|
|
2
|
+
|
|
3
|
+
describe( 'suggestEmailCorrection', () => {
|
|
4
|
+
test( 'should return correct result and ignores processing for a domain included in valid email domain list', () => {
|
|
5
|
+
const result = suggestEmailCorrection( 'example@gmail.com' );
|
|
6
|
+
expect( result ).toEqual( {
|
|
7
|
+
oldEmail: 'example@gmail.com',
|
|
8
|
+
oldDomain: 'gmail.com',
|
|
9
|
+
newDomain: null,
|
|
10
|
+
newEmail: null,
|
|
11
|
+
distance: Infinity,
|
|
12
|
+
wasCorrected: false,
|
|
13
|
+
} );
|
|
14
|
+
} );
|
|
15
|
+
|
|
16
|
+
test( 'should suggest a correction for an invalid email domain within the Levenshtein distance limit of 2', () => {
|
|
17
|
+
const result = suggestEmailCorrection( 'example@gnail.com' );
|
|
18
|
+
expect( result ).toEqual( {
|
|
19
|
+
oldEmail: 'example@gnail.com',
|
|
20
|
+
oldDomain: 'gnail.com',
|
|
21
|
+
newDomain: 'gmail.com',
|
|
22
|
+
newEmail: 'example@gmail.com',
|
|
23
|
+
distance: 1,
|
|
24
|
+
wasCorrected: true,
|
|
25
|
+
} );
|
|
26
|
+
} );
|
|
27
|
+
|
|
28
|
+
test( 'should not suggest a correction for an invalid email domain beyond the default Levenshtein distance limit of 2', () => {
|
|
29
|
+
const result = suggestEmailCorrection( 'example@ggggl.com' );
|
|
30
|
+
expect( result ).toEqual( {
|
|
31
|
+
oldEmail: 'example@ggggl.com',
|
|
32
|
+
oldDomain: 'ggggl.com',
|
|
33
|
+
newDomain: null,
|
|
34
|
+
newEmail: null,
|
|
35
|
+
distance: Infinity,
|
|
36
|
+
wasCorrected: false,
|
|
37
|
+
} );
|
|
38
|
+
} );
|
|
39
|
+
|
|
40
|
+
test( 'should suggest a correction for a captialized invalid email domain within the Levenshtein distance limit of 2', () => {
|
|
41
|
+
const result = suggestEmailCorrection( 'EXAMPLE@HOTMAAL.COM' );
|
|
42
|
+
expect( result ).toEqual( {
|
|
43
|
+
oldEmail: 'EXAMPLE@HOTMAAL.COM',
|
|
44
|
+
oldDomain: 'hotmaal.com',
|
|
45
|
+
newDomain: 'hotmail.com',
|
|
46
|
+
newEmail: 'example@hotmail.com',
|
|
47
|
+
distance: 1,
|
|
48
|
+
wasCorrected: true,
|
|
49
|
+
} );
|
|
50
|
+
} );
|
|
51
|
+
|
|
52
|
+
test( 'should not suggest a correction for a capitalized invalid email domain beyond the default Levenshtein distance limit of 2', () => {
|
|
53
|
+
const result = suggestEmailCorrection( 'EXAMPLE@ZZZZL.COM' );
|
|
54
|
+
expect( result ).toEqual( {
|
|
55
|
+
oldEmail: 'EXAMPLE@ZZZZL.COM',
|
|
56
|
+
oldDomain: 'zzzzl.com',
|
|
57
|
+
newDomain: null,
|
|
58
|
+
newEmail: null,
|
|
59
|
+
distance: Infinity,
|
|
60
|
+
wasCorrected: false,
|
|
61
|
+
} );
|
|
62
|
+
} );
|
|
63
|
+
|
|
64
|
+
test( 'should not suggest a correction for a domain included in the domain avoid list', () => {
|
|
65
|
+
const result = suggestEmailCorrection( 'example@mail.com' );
|
|
66
|
+
expect( result ).toEqual( {
|
|
67
|
+
oldEmail: 'example@mail.com',
|
|
68
|
+
oldDomain: 'mail.com',
|
|
69
|
+
newDomain: null,
|
|
70
|
+
newEmail: null,
|
|
71
|
+
distance: Infinity,
|
|
72
|
+
wasCorrected: false,
|
|
73
|
+
} );
|
|
74
|
+
} );
|
|
75
|
+
|
|
76
|
+
test( 'should not suggest a correction for a domain if user is still typing', () => {
|
|
77
|
+
const result = suggestEmailCorrection( 'example@gmail.co' );
|
|
78
|
+
expect( result ).toEqual( {
|
|
79
|
+
oldEmail: 'example@gmail.co',
|
|
80
|
+
oldDomain: 'gmail.co',
|
|
81
|
+
newDomain: null,
|
|
82
|
+
newEmail: null,
|
|
83
|
+
distance: Infinity,
|
|
84
|
+
wasCorrected: false,
|
|
85
|
+
} );
|
|
86
|
+
} );
|
|
87
|
+
} );
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
export function useDataLossWarning( enabled: boolean ) {
|
|
4
|
+
useEffect( () => {
|
|
5
|
+
const handleBeforeUnload = ( event: BeforeUnloadEvent ) => {
|
|
6
|
+
event.preventDefault();
|
|
7
|
+
event.returnValue = '';
|
|
8
|
+
};
|
|
9
|
+
if ( enabled ) {
|
|
10
|
+
window.addEventListener( 'beforeunload', handleBeforeUnload );
|
|
11
|
+
|
|
12
|
+
return () => {
|
|
13
|
+
window.removeEventListener( 'beforeunload', handleBeforeUnload );
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}, [ enabled ] );
|
|
17
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
type Props = {
|
|
2
|
+
className?: string;
|
|
3
|
+
size?: number;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
const VideoPressLogo: React.FunctionComponent< Props > = ( {
|
|
7
|
+
className = 'videopress-logo',
|
|
8
|
+
size = 24,
|
|
9
|
+
} ) => {
|
|
10
|
+
return (
|
|
11
|
+
<svg
|
|
12
|
+
className={ className }
|
|
13
|
+
height={ size }
|
|
14
|
+
width={ size }
|
|
15
|
+
viewBox="0 0 24 24"
|
|
16
|
+
fill="none"
|
|
17
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
18
|
+
>
|
|
19
|
+
<g clipPath="url(#clip0_817_8325)">
|
|
20
|
+
<path
|
|
21
|
+
fillRule="evenodd"
|
|
22
|
+
clipRule="evenodd"
|
|
23
|
+
d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24ZM7.13433 8.15456C6.93894 7.4713 6.3119 7 5.59826 7C4.51438 7 3.7453 8.05189 4.07851 9.07862L6.43154 16.3292C6.80857 17.4909 7.89509 18.2781 9.12151 18.2781C10.3479 18.2781 11.4344 17.4909 11.8115 16.3292L12.2319 15.0337H14.3959H16.0752C18.6214 15.0337 20.328 13.4995 20.328 11.0392C20.328 8.60674 18.665 7 16.1842 7H12.6448H11.3643L9.07552 14.929C9.07144 14.9236 9.06828 14.9173 9.06634 14.9104L7.13433 8.15456ZM15.4645 12.6236H13.014L14.0352 9.47706H15.4645C16.5277 9.47706 17.1656 10.0573 17.1656 11.0392C17.1656 12.0155 16.5277 12.6236 15.4645 12.6236Z"
|
|
24
|
+
fill="white"
|
|
25
|
+
/>
|
|
26
|
+
</g>
|
|
27
|
+
<defs>
|
|
28
|
+
<clipPath id="clip0_817_8325">
|
|
29
|
+
<rect width="24" height="24" fill="white" />
|
|
30
|
+
</clipPath>
|
|
31
|
+
</defs>
|
|
32
|
+
</svg>
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export default VideoPressLogo;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
@import "@wordpress/base-styles/z-index";
|
|
2
|
+
@import "@wordpress/base-styles/colors";
|
|
3
|
+
@import "@wordpress/base-styles/variables";
|
|
4
|
+
@import "@wordpress/base-styles/breakpoints";
|
|
5
|
+
@import "@wordpress/base-styles/mixins";
|
|
6
|
+
@import "@wordpress/base-styles/animations";
|
|
7
|
+
@import "@automattic/typography/styles/fonts";
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
@import "./base-styles";
|
|
2
|
+
@import "./variables";
|
|
3
|
+
|
|
4
|
+
@mixin onboarding-font-recoleta {
|
|
5
|
+
font-family: $brand-serif;
|
|
6
|
+
font-weight: 400;
|
|
7
|
+
letter-spacing: -0.4px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@mixin onboarding-heading-text {
|
|
11
|
+
@include onboarding-font-recoleta;
|
|
12
|
+
font-size: 42px; /* stylelint-disable-line declaration-property-unit-allowed-list */
|
|
13
|
+
line-height: 57px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@mixin onboarding-heading-text-tablet {
|
|
17
|
+
@include onboarding-font-recoleta;
|
|
18
|
+
font-size: 36px; /* stylelint-disable-line declaration-property-unit-allowed-list */
|
|
19
|
+
line-height: 40px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@mixin onboarding-heading-text-mobile {
|
|
23
|
+
@include onboarding-font-recoleta;
|
|
24
|
+
font-size: 32px; /* stylelint-disable-line declaration-property-unit-allowed-list */
|
|
25
|
+
line-height: 40px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@mixin onboarding-heading-title {
|
|
29
|
+
@include onboarding-heading-text-mobile;
|
|
30
|
+
color: var(--mainColor);
|
|
31
|
+
|
|
32
|
+
@include break-mobile {
|
|
33
|
+
@include onboarding-heading-text-tablet;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@include break-xlarge {
|
|
37
|
+
@include onboarding-heading-text;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@mixin onboarding-large-text {
|
|
42
|
+
font-size: 16px; /* stylelint-disable-line declaration-property-unit-allowed-list */
|
|
43
|
+
line-height: 24px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@mixin onboarding-medium-text {
|
|
47
|
+
font-size: $font-body-small;
|
|
48
|
+
line-height: 17px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@mixin onboarding-small-text {
|
|
52
|
+
font-size: $font-body-extra-small;
|
|
53
|
+
line-height: 14px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@mixin onboarding-x-small-text {
|
|
57
|
+
font-size: $font-body-extra-small;
|
|
58
|
+
line-height: 13px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@mixin onboarding-block-margin {
|
|
62
|
+
margin-left: $onboarding-block-margin-mobile;
|
|
63
|
+
margin-right: $onboarding-block-margin-mobile;
|
|
64
|
+
|
|
65
|
+
@include break-small {
|
|
66
|
+
margin-left: $onboarding-block-margin-small;
|
|
67
|
+
margin-right: $onboarding-block-margin-small;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@include break-medium {
|
|
71
|
+
margin-left: $onboarding-block-margin-medium;
|
|
72
|
+
margin-right: $onboarding-block-margin-medium;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@mixin onboarding-block-margin-wide {
|
|
77
|
+
@include break-medium {
|
|
78
|
+
margin-left: $onboarding-block-margin-small;
|
|
79
|
+
margin-right: $onboarding-block-margin-small;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@mixin onboarding-heading-padding {
|
|
84
|
+
margin: $onboarding-heading-margin-mobile;
|
|
85
|
+
|
|
86
|
+
@include break-small {
|
|
87
|
+
margin: $onboarding-heading-margin-small;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@include break-medium {
|
|
91
|
+
margin: $onboarding-heading-margin-medium;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@mixin onboarding-body-margin {
|
|
96
|
+
margin: $onboarding-body-margin-mobile;
|
|
97
|
+
|
|
98
|
+
@include break-small {
|
|
99
|
+
margin: $onboarding-body-margin-small;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@include break-medium {
|
|
103
|
+
margin: $onboarding-body-margin-medium;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* (2560x1440) 2K resolution */
|
|
108
|
+
@mixin onboarding-break-2k() {
|
|
109
|
+
@media (min-width: 2560px) {
|
|
110
|
+
@content;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* (1920x1080) Full HD Display */
|
|
115
|
+
@mixin onboarding-break-full-hd() {
|
|
116
|
+
@media (min-width: 1920px) {
|
|
117
|
+
@content;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@mixin onboarding-break-mobile-tall() {
|
|
122
|
+
@media (min-height: 750px) {
|
|
123
|
+
@content;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@mixin onboarding-break-mobile-landscape() {
|
|
128
|
+
// very narrow wide screens (mobile landscape)
|
|
129
|
+
@media screen and (max-height: 512px) {
|
|
130
|
+
@content;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@mixin onboarding-modal-overlay {
|
|
135
|
+
// Absolute positioning allows the modal
|
|
136
|
+
// to reuse the <body> element's scrollbar.
|
|
137
|
+
position: absolute;
|
|
138
|
+
|
|
139
|
+
// This positions the domain picker modal
|
|
140
|
+
// right below the gutenboarding header,
|
|
141
|
+
// keeping the header clickable.
|
|
142
|
+
top: $onboarding-header-height;
|
|
143
|
+
left: 0;
|
|
144
|
+
|
|
145
|
+
// Using min-height lets the overlay cover
|
|
146
|
+
// the entire viewport ensuring nothing behind
|
|
147
|
+
// it can be seen.
|
|
148
|
+
//
|
|
149
|
+
// When the domain picker's content is taller
|
|
150
|
+
// than the viewport height, it will expand taller
|
|
151
|
+
// than the provided min-height, triggering
|
|
152
|
+
// the appearance of the <body> element's scrollbar.
|
|
153
|
+
min-height: calc(100vh - #{$onboarding-header-height});
|
|
154
|
+
width: 100%;
|
|
155
|
+
|
|
156
|
+
background: var(--studio-white);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@mixin onboarding-block-edge2edge {
|
|
160
|
+
margin-left: #{$onboarding-block-margin-mobile * -1};
|
|
161
|
+
margin-right: #{$onboarding-block-margin-mobile * -1};
|
|
162
|
+
|
|
163
|
+
@include break-small {
|
|
164
|
+
margin-left: #{$onboarding-block-margin-small * -1};
|
|
165
|
+
margin-right: #{$onboarding-block-margin-small * -1};
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@include break-medium {
|
|
169
|
+
margin-left: #{$onboarding-block-margin-medium * -1};
|
|
170
|
+
margin-right: #{$onboarding-block-margin-medium * -1};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
@mixin onboarding-block-edge2edge-container {
|
|
175
|
+
@include onboarding-block-edge2edge;
|
|
176
|
+
|
|
177
|
+
width: auto;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@mixin onboarding-block-edge2edge-content {
|
|
181
|
+
border-left: $onboarding-block-margin-mobile solid transparent;
|
|
182
|
+
border-right: $onboarding-block-margin-mobile solid transparent;
|
|
183
|
+
|
|
184
|
+
@include break-small {
|
|
185
|
+
border-left: $onboarding-block-margin-small solid transparent;
|
|
186
|
+
border-right: $onboarding-block-margin-small solid transparent;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@include break-medium {
|
|
190
|
+
border-left: $onboarding-block-margin-medium solid transparent;
|
|
191
|
+
border-right: $onboarding-block-margin-medium solid transparent;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@mixin onboarding-block-edge2edge-columns {
|
|
196
|
+
&:first-child {
|
|
197
|
+
border-left: $onboarding-block-margin-mobile solid transparent;
|
|
198
|
+
}
|
|
199
|
+
&:last-child {
|
|
200
|
+
border-right: $onboarding-block-margin-mobile solid transparent;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@include break-small {
|
|
204
|
+
&:first-child {
|
|
205
|
+
border-left: $onboarding-block-margin-small solid transparent;
|
|
206
|
+
}
|
|
207
|
+
&:last-child {
|
|
208
|
+
border-right: $onboarding-block-margin-small solid transparent;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
@include break-medium {
|
|
213
|
+
&:first-child {
|
|
214
|
+
border-left: $onboarding-block-margin-medium solid transparent;
|
|
215
|
+
}
|
|
216
|
+
&:last-child {
|
|
217
|
+
border-right: $onboarding-block-margin-medium solid transparent;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// onaboarding-placeholder() mixin is a copy of 'client/assets/stylesheets/shared/mixins/placeholder'
|
|
223
|
+
|
|
224
|
+
@mixin onboarding-placeholder( $color-property: $gray-100 ) {
|
|
225
|
+
@include onboarding-loading( $color-property );
|
|
226
|
+
color: transparent;
|
|
227
|
+
|
|
228
|
+
&::after {
|
|
229
|
+
content: "\00a0";
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
@mixin onboarding-loading( $color-property: $gray-100 ) {
|
|
234
|
+
animation: onboarding-loading-pulse 1.6s ease-in-out infinite;
|
|
235
|
+
background: $color-property;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// a pulsing animation for placeholders
|
|
239
|
+
@keyframes onboarding-loading-pulse {
|
|
240
|
+
0% {
|
|
241
|
+
opacity: 0.5;
|
|
242
|
+
}
|
|
243
|
+
50% {
|
|
244
|
+
opacity: 1;
|
|
245
|
+
}
|
|
246
|
+
100% {
|
|
247
|
+
opacity: 0.5;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Hide visually without allowing screen reader access.
|
|
252
|
+
@mixin onboarding-screen-reader-text {
|
|
253
|
+
position: absolute;
|
|
254
|
+
width: 1px;
|
|
255
|
+
height: 1px;
|
|
256
|
+
padding: 0;
|
|
257
|
+
margin: -1px;
|
|
258
|
+
overflow: hidden;
|
|
259
|
+
clip: rect(0, 0, 0, 0);
|
|
260
|
+
white-space: nowrap;
|
|
261
|
+
border-width: 0;
|
|
262
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@import "./base-styles";
|
|
2
|
+
|
|
3
|
+
// Reusable style variables
|
|
4
|
+
$onboarding-header-height: $header-height;
|
|
5
|
+
$onboarding-footer-height: $header-height;
|
|
6
|
+
|
|
7
|
+
// Block margins increment by 2x
|
|
8
|
+
$onboarding-block-margin-mobile: 24px;
|
|
9
|
+
$onboarding-block-margin-small: 48px;
|
|
10
|
+
$onboarding-block-margin-medium: 96px;
|
|
11
|
+
|
|
12
|
+
// Heading margins increment by 16px
|
|
13
|
+
$onboarding-heading-margin-mobile: 48px 0 ( 48px * 0.8 );
|
|
14
|
+
$onboarding-heading-margin-small: 64px 0 ( 64px * 0.8 );
|
|
15
|
+
$onboarding-heading-margin-medium: 80px 0 ( 80px * 0.8 );
|
|
16
|
+
|
|
17
|
+
// Body margins increment by 16px
|
|
18
|
+
$onboarding-body-margin-mobile: 0 0 48px 0;
|
|
19
|
+
$onboarding-body-margin-small: 0 0 64px 0;
|
|
20
|
+
$onboarding-body-margin-medium: 0 0 80px 0;
|
|
21
|
+
|
|
22
|
+
// @TODO: refactor to common variable in onboarding
|
|
23
|
+
// see https://github.com/Automattic/wp-calypso/issues/47181
|
|
24
|
+
// the blue accent this is used as the primary color in focused-launch
|
|
25
|
+
$onboarding-accent-blue: #117ac9;
|
|
26
|
+
$onboarding-accent-blue-background: #fafcfe;
|