@automattic/launchpad 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.
Files changed (71) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +35 -0
  3. package/dist/cjs/badge/index.js +13 -0
  4. package/dist/cjs/badge/index.js.map +1 -0
  5. package/dist/cjs/badge/style.scss +50 -0
  6. package/dist/cjs/checklist/index.js +18 -0
  7. package/dist/cjs/checklist/index.js.map +1 -0
  8. package/dist/cjs/checklist/style.scss +9 -0
  9. package/dist/cjs/checklist-item/index.js +35 -0
  10. package/dist/cjs/checklist-item/index.js.map +1 -0
  11. package/dist/cjs/checklist-item/style.scss +214 -0
  12. package/dist/cjs/index.js +14 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/launchpad.js +19 -0
  15. package/dist/cjs/launchpad.js.map +1 -0
  16. package/dist/cjs/setup-actions.js +156 -0
  17. package/dist/cjs/setup-actions.js.map +1 -0
  18. package/dist/cjs/types.js +3 -0
  19. package/dist/cjs/types.js.map +1 -0
  20. package/dist/esm/badge/index.js +10 -0
  21. package/dist/esm/badge/index.js.map +1 -0
  22. package/dist/esm/badge/style.scss +50 -0
  23. package/dist/esm/checklist/index.js +15 -0
  24. package/dist/esm/checklist/index.js.map +1 -0
  25. package/dist/esm/checklist/style.scss +9 -0
  26. package/dist/esm/checklist-item/index.js +32 -0
  27. package/dist/esm/checklist-item/index.js.map +1 -0
  28. package/dist/esm/checklist-item/style.scss +214 -0
  29. package/dist/esm/index.js +6 -0
  30. package/dist/esm/index.js.map +1 -0
  31. package/dist/esm/launchpad.js +16 -0
  32. package/dist/esm/launchpad.js.map +1 -0
  33. package/dist/esm/setup-actions.js +151 -0
  34. package/dist/esm/setup-actions.js.map +1 -0
  35. package/dist/esm/types.js +2 -0
  36. package/dist/esm/types.js.map +1 -0
  37. package/dist/tsconfig-cjs.tsbuildinfo +1 -0
  38. package/dist/tsconfig.tsbuildinfo +1 -0
  39. package/dist/types/badge/index.d.ts +10 -0
  40. package/dist/types/badge/index.d.ts.map +1 -0
  41. package/dist/types/checklist/index.d.ts +12 -0
  42. package/dist/types/checklist/index.d.ts.map +1 -0
  43. package/dist/types/checklist-item/index.d.ts +11 -0
  44. package/dist/types/checklist-item/index.d.ts.map +1 -0
  45. package/dist/types/index.d.ts +6 -0
  46. package/dist/types/index.d.ts.map +1 -0
  47. package/dist/types/launchpad.d.ts +12 -0
  48. package/dist/types/launchpad.d.ts.map +1 -0
  49. package/dist/types/setup-actions.d.ts +3 -0
  50. package/dist/types/setup-actions.d.ts.map +1 -0
  51. package/dist/types/types.d.ts +64 -0
  52. package/dist/types/types.d.ts.map +1 -0
  53. package/jest.config.js +5 -0
  54. package/package.json +59 -0
  55. package/src/badge/index.tsx +27 -0
  56. package/src/badge/style.scss +50 -0
  57. package/src/checklist/index.tsx +43 -0
  58. package/src/checklist/style.scss +9 -0
  59. package/src/checklist-item/index.tsx +94 -0
  60. package/src/checklist-item/style.scss +214 -0
  61. package/src/index.ts +5 -0
  62. package/src/launchpad.tsx +45 -0
  63. package/src/setup-actions.ts +168 -0
  64. package/src/test/badge.tsx +50 -0
  65. package/src/test/checklist-item.tsx +96 -0
  66. package/src/test/checklist.tsx +25 -0
  67. package/src/test/launchpad.tsx +49 -0
  68. package/src/test/lib/fixtures.ts +322 -0
  69. package/src/types.ts +70 -0
  70. package/tsconfig-cjs.json +7 -0
  71. package/tsconfig.json +11 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,6 @@
1
+
2
+ # Changelog
3
+
4
+ ## 1.0.0
5
+
6
+ - Initial release
package/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # Launchpad
2
+
3
+ Launchpad is the base component for displaying a checklist in the WordPress.com dashboard. It handles fetching the checklist data and displaying the checklist.
4
+
5
+ ## Usage
6
+
7
+ First, import the Launchpad component:
8
+
9
+ ```js
10
+ import { Launchpad } from '@automattic/launchpad'
11
+ ```
12
+
13
+ Then, use it in your code:
14
+
15
+ ```js
16
+ function App( { siteSlug, checklistSlug } ) {
17
+ return (
18
+ <Launchpad
19
+ siteSlug={ siteSlug }
20
+ checklistSlug={ checklistSlug } />
21
+ );
22
+ }
23
+ ```
24
+
25
+ ## Props
26
+
27
+ ### siteSlug
28
+
29
+ The site slug of the site to display the checklist for.
30
+
31
+ ### checklistSlug
32
+
33
+ Optional slug of the checklist to display. This is ID of the checklist defined on Jetpack's side. See [Jetpack checklist definitions](https://github.com/Automattic/jetpack/blob/2d37c444fe42eb852f34f1df6c285e94c37e9376/projects/packages/jetpack-mu-wpcom/src/features/launchpad/launchpad.php).
34
+
35
+ We use the `@automattic/data-stores` package to fetch the checklist data and cache it, through the `useLaunchpad` query.
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
6
+ require("./style.scss");
7
+ const Badge = (props) => {
8
+ const className = props.className;
9
+ const type = props.type || 'warning';
10
+ return ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(`badge badge--${type}`, className), children: props.children }));
11
+ };
12
+ exports.default = Badge;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/badge/index.tsx"],"names":[],"mappings":";;;;AAAA,oEAAoC;AAEpC,wBAAsB;AAgBtB,MAAM,KAAK,GAA0C,CAAE,KAAK,EAAG,EAAE;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;IACrC,OAAO,CACN,gCAAK,SAAS,EAAG,IAAA,oBAAU,EAAE,gBAAiB,IAAK,EAAE,EAAE,SAAS,CAAE,YAAK,KAAK,CAAC,QAAQ,GAAQ,CAC7F,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,KAAK,CAAC"}
@@ -0,0 +1,50 @@
1
+ .badge {
2
+ display: inline-block;
3
+ // A number large enough to exceed height of any badge to make it look like a pill
4
+ border-radius: 1000px; /* stylelint-disable-line scales/radii */
5
+ padding: $badge-padding-y $badge-padding-x;
6
+ font-size: $font-body-small;
7
+ line-height: 17px;
8
+ height: 18px;
9
+ }
10
+
11
+ .badge--warning-clear {
12
+ color: var(--color-warning);
13
+ border: 1px solid var(--color-warning);
14
+ border-radius: 12px; /* stylelint-disable-line scales/radii */
15
+ }
16
+
17
+ .badge--warning {
18
+ color: var(--color-warning-80);
19
+ background-color: var(--color-warning-20);
20
+ }
21
+
22
+ .badge--success {
23
+ color: var(--color-text-inverted);
24
+ background-color: var(--color-success);
25
+ }
26
+
27
+ .badge--info {
28
+ color: var(--color-neutral-70);
29
+ background-color: var(--color-neutral-5);
30
+ }
31
+
32
+ .badge--info-blue {
33
+ background-color: var(--studio-blue-50);
34
+ color: var(--color-text-inverted);
35
+ }
36
+
37
+ .badge--info-green {
38
+ color: var(--studio-green-80);
39
+ background-color: rgba(184, 230, 191, 0.64);
40
+ }
41
+
42
+ .badge--info-purple {
43
+ color: var(--studio-woocommerce-purple-80);
44
+ background-color: var(--studio-woocommerce-purple-5);
45
+ }
46
+
47
+ .badge--error {
48
+ background-color: var(--color-error);
49
+ color: var(--color-text-inverted);
50
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
6
+ const checklist_item_1 = tslib_1.__importDefault(require("../checklist-item"));
7
+ require("./style.scss");
8
+ const Checklist = ({ tasks, makeLastTaskPrimaryAction }) => {
9
+ return ((0, jsx_runtime_1.jsx)("ul", { className: (0, classnames_1.default)('checklist__tasks', {
10
+ 'checklist__has-primary-action': makeLastTaskPrimaryAction,
11
+ }), "aria-label": "Launchpad Checklist", children: tasks &&
12
+ tasks.map((task, index) => ((0, jsx_runtime_1.jsx)(checklist_item_1.default, { task: task, isPrimaryAction: makeLastTaskPrimaryAction && index === tasks.length - 1 }, task.id))) }));
13
+ };
14
+ Checklist.Placeholder = () => {
15
+ return ((0, jsx_runtime_1.jsxs)("ul", { className: "checklist__tasks", "aria-label": "Launchpad Checklist", children: [(0, jsx_runtime_1.jsx)(checklist_item_1.default.Placeholder, {}), (0, jsx_runtime_1.jsx)(checklist_item_1.default.Placeholder, {}), (0, jsx_runtime_1.jsx)(checklist_item_1.default.Placeholder, {}), (0, jsx_runtime_1.jsx)(checklist_item_1.default.Placeholder, {})] }));
16
+ };
17
+ exports.default = Checklist;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checklist/index.tsx"],"names":[],"mappings":";;;;AAAA,oEAAoC;AACpC,+EAA8C;AAG9C,wBAAsB;AAOtB,MAAM,SAAS,GAAG,CAAE,EAAE,KAAK,EAAE,yBAAyB,EAAkB,EAAG,EAAE;IAC5E,OAAO,CACN,+BACC,SAAS,EAAG,IAAA,oBAAU,EAAE,kBAAkB,EAAE;YAC3C,+BAA+B,EAAE,yBAAyB;SAC1D,CAAE,gBACQ,qBAAqB,YAE9B,KAAK;YACN,KAAK,CAAC,GAAG,CAAE,CAAE,IAAU,EAAE,KAAa,EAAG,EAAE,CAAC,CAC3C,uBAAC,wBAAa,IAEb,IAAI,EAAG,IAAI,EACX,eAAe,EAAG,yBAAyB,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,IAFnE,IAAI,CAAC,EAAE,CAGZ,CACF,CAAE,GACA,CACL,CAAC;AACH,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,GAAG,EAAE;IAC5B,OAAO,CACN,gCAAI,SAAS,EAAC,kBAAkB,gBAAY,qBAAqB,aAChE,uBAAC,wBAAa,CAAC,WAAW,KAAG,EAC7B,uBAAC,wBAAa,CAAC,WAAW,KAAG,EAC7B,uBAAC,wBAAa,CAAC,WAAW,KAAG,EAC7B,uBAAC,wBAAa,CAAC,WAAW,KAAG,IACzB,CACL,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ @import "@wordpress/base-styles/mixins";
2
+ @import "@wordpress/base-styles/breakpoints";
3
+ @import "@automattic/typography/styles/variables";
4
+
5
+ .checklist__tasks {
6
+ list-style: none;
7
+ margin: 0;
8
+ padding: 0;
9
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const components_1 = require("@automattic/components");
6
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
7
+ const i18n_calypso_1 = require("i18n-calypso");
8
+ require("./style.scss");
9
+ const ChecklistItem = ({ task, isPrimaryAction }) => {
10
+ const isRtl = (0, i18n_calypso_1.useRtl)();
11
+ const { id, completed, disabled, title, subtitle, actionDispatch } = task;
12
+ // Display chevron if task is incomplete. Don't display chevron and badge at the same time.
13
+ const shouldDisplayChevron = !completed && !disabled && !task.badge_text;
14
+ const handlePrimaryAction = () => {
15
+ localStorage.removeItem('launchpad_siteSlug');
16
+ actionDispatch && actionDispatch();
17
+ };
18
+ // Display task counter if task is incomplete and has the count properties;
19
+ const shouldDisplayTaskCounter = task.target_repetitions &&
20
+ null !== task.repetition_count &&
21
+ undefined !== task.repetition_count;
22
+ return ((0, jsx_runtime_1.jsx)("li", { className: (0, classnames_1.default)('checklist-item__task', {
23
+ completed: completed,
24
+ pending: !completed,
25
+ enabled: !disabled,
26
+ disabled: disabled,
27
+ }), children: isPrimaryAction ? ((0, jsx_runtime_1.jsx)(components_1.Button, { className: "checklist-item__checklist-primary-button", disabled: disabled, "data-task": id, onClick: handlePrimaryAction, children: title })) : ((0, jsx_runtime_1.jsxs)(components_1.Button, { className: "checklist-item__task-content", disabled: disabled, "data-task": id, onClick: actionDispatch, children: [completed && (
28
+ // show checkmark for completed tasks regardless if they are disabled or kept active
29
+ (0, jsx_runtime_1.jsx)("div", { className: "checklist-item__checkmark-container", children: (0, jsx_runtime_1.jsx)(components_1.Gridicon, { "aria-label": (0, i18n_calypso_1.translate)('Task complete'), className: "checklist-item__checkmark", icon: "checkmark", size: 18 }) })), (0, jsx_runtime_1.jsx)("span", { className: "checklist-item__text", children: title }), task.badge_text ? (0, jsx_runtime_1.jsx)(components_1.Badge, { type: "info-blue", children: task.badge_text }) : null, shouldDisplayTaskCounter && ((0, jsx_runtime_1.jsxs)("span", { className: "checklist-item__counter", children: [task.repetition_count, "/", task.target_repetitions] })), shouldDisplayChevron && ((0, jsx_runtime_1.jsx)(components_1.Gridicon, { "aria-label": (0, i18n_calypso_1.translate)('Task enabled'), className: "checklist-item__chevron", icon: `chevron-${isRtl ? 'left' : 'right'}`, size: 18 })), subtitle && (0, jsx_runtime_1.jsx)("p", { className: "checklist-item__subtext", children: subtitle })] })) }));
30
+ };
31
+ ChecklistItem.Placeholder = () => {
32
+ return ((0, jsx_runtime_1.jsx)("div", { className: "checklist-item__task-content is-placeholder", children: (0, jsx_runtime_1.jsx)("div", { className: "checklist-item__content", children: (0, jsx_runtime_1.jsx)("div", {}) }) }));
33
+ };
34
+ exports.default = ChecklistItem;
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checklist-item/index.tsx"],"names":[],"mappings":";;;;AAAA,uDAAiE;AACjE,oEAAoC;AACpC,+CAAiD;AAGjD,wBAAsB;AAEtB,MAAM,aAAa,GAAG,CAAE,EAAE,IAAI,EAAE,eAAe,EAA6C,EAAG,EAAE;IAChG,MAAM,KAAK,GAAG,IAAA,qBAAM,GAAE,CAAC;IACvB,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAE1E,2FAA2F;IAC3F,MAAM,oBAAoB,GAAG,CAAE,SAAS,IAAI,CAAE,QAAQ,IAAI,CAAE,IAAI,CAAC,UAAU,CAAC;IAE5E,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAChC,YAAY,CAAC,UAAU,CAAE,oBAAoB,CAAE,CAAC;QAChD,cAAc,IAAI,cAAc,EAAE,CAAC;IACpC,CAAC,CAAC;IAEF,2EAA2E;IAC3E,MAAM,wBAAwB,GAC7B,IAAI,CAAC,kBAAkB;QACvB,IAAI,KAAK,IAAI,CAAC,gBAAgB;QAC9B,SAAS,KAAK,IAAI,CAAC,gBAAgB,CAAC;IAErC,OAAO,CACN,+BACC,SAAS,EAAG,IAAA,oBAAU,EAAE,sBAAsB,EAAE;YAC/C,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,CAAE,SAAS;YACpB,OAAO,EAAE,CAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;SAClB,CAAE,YAED,eAAe,CAAC,CAAC,CAAC,CACnB,uBAAC,mBAAM,IACN,SAAS,EAAC,0CAA0C,EACpD,QAAQ,EAAG,QAAQ,eACP,EAAE,EACd,OAAO,EAAG,mBAAmB,YAE3B,KAAK,GACC,CACT,CAAC,CAAC,CAAC,CACH,wBAAC,mBAAM,IACN,SAAS,EAAC,8BAA8B,EACxC,QAAQ,EAAG,QAAQ,eACP,EAAE,EACd,OAAO,EAAG,cAAc,aAEtB,SAAS,IAAI;gBACd,oFAAoF;gBACpF,gCAAK,SAAS,EAAC,qCAAqC,YACnD,uBAAC,qBAAQ,kBACK,IAAA,wBAAS,EAAE,eAAe,CAAE,EACzC,SAAS,EAAC,2BAA2B,EACrC,IAAI,EAAC,WAAW,EAChB,IAAI,EAAG,EAAE,GACR,GACG,CACN,EACD,iCAAM,SAAS,EAAC,sBAAsB,YAAG,KAAK,GAAS,EACrD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAC,kBAAK,IAAC,IAAI,EAAC,WAAW,YAAG,IAAI,CAAC,UAAU,GAAU,CAAC,CAAC,CAAC,IAAI,EAC5E,wBAAwB,IAAI,CAC7B,kCAAM,SAAS,EAAC,yBAAyB,aACtC,IAAI,CAAC,gBAAgB,OAAK,IAAI,CAAC,kBAAkB,IAC7C,CACP,EACC,oBAAoB,IAAI,CACzB,uBAAC,qBAAQ,kBACK,IAAA,wBAAS,EAAE,cAAc,CAAE,EACxC,SAAS,EAAC,yBAAyB,EACnC,IAAI,EAAG,WAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAQ,EAAE,EAC9C,IAAI,EAAG,EAAE,GACR,CACF,EACC,QAAQ,IAAI,8BAAG,SAAS,EAAC,yBAAyB,YAAG,QAAQ,GAAM,IAC7D,CACT,GACG,CACL,CAAC;AACH,CAAC,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,GAAG,EAAE;IAChC,OAAO,CACN,gCAAK,SAAS,EAAC,6CAA6C,YAC3D,gCAAK,SAAS,EAAC,yBAAyB,YACvC,iCAAW,GACN,GACD,CACN,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,214 @@
1
+ @import "@wordpress/base-styles/mixins";
2
+ @import "@wordpress/base-styles/breakpoints";
3
+ @import "@automattic/typography/styles/variables";
4
+
5
+ .checklist-item__task-content {
6
+ align-items: flex-start;
7
+ background-color: transparent;
8
+ border-bottom: 1px solid var(--studio-gray-5);
9
+ border-left: none;
10
+ border-right: none;
11
+ border-top: none;
12
+ display: flex;
13
+ flex-wrap: wrap;
14
+ padding: 16px 0;
15
+ width: 100%;
16
+ margin: 0;
17
+ color: var(--color-neutral-100);
18
+
19
+ &.is-placeholder {
20
+ padding: 16px 0 16px 0;
21
+ }
22
+ }
23
+
24
+ .checklist-item__content {
25
+ width: 100%;
26
+
27
+ .is-placeholder & {
28
+ animation: loading-fade 1.6s ease-in-out infinite;
29
+ background-color: var(--color-neutral-light);
30
+ color: transparent;
31
+ min-height: 44px;
32
+ }
33
+
34
+ >div {
35
+ .is-placeholder & {
36
+ color: transparent;
37
+ }
38
+ }
39
+ }
40
+
41
+ .button.checklist-item__task-content:hover:not([disabled]),
42
+ .button.checklist-item__task-content:focus:not([disabled]) {
43
+ fill: var(--studio-blue-50);
44
+ color: var(--studio-blue-50);
45
+ border-bottom: 1px solid var(--studio-gray-5);
46
+ }
47
+
48
+ .checklist-item__task-content .badge {
49
+ margin-left: auto;
50
+ background-color: var(--studio-blue-5);
51
+ color: var(--studio-blue-80);
52
+ font-size: $font-body-extra-small;
53
+ }
54
+
55
+ .checklist-item__task-content[disabled],
56
+ .checklist-item__task-content[disabled]:focus {
57
+ background-color: transparent;
58
+ pointer-events: none;
59
+ }
60
+
61
+ .checklist-item__task-content[data-task="verify_email"] {
62
+ color: var(--color-text);
63
+ }
64
+
65
+ .checklist-item__task-content[data-task="set_up_payments"] .badge {
66
+ background-color: var(--studio-green-5);
67
+ cursor: default;
68
+ }
69
+
70
+ .checklist-item__checkmark-container {
71
+ margin-right: 8px;
72
+ width: 20px;
73
+
74
+ .checklist-item__checkmark {
75
+ top: 2px;
76
+ vertical-align: text-bottom;
77
+ }
78
+ }
79
+
80
+ // general styles
81
+ .checklist-item__text {
82
+ font-weight: 600;
83
+ flex-grow: 1;
84
+ text-align: left;
85
+ }
86
+
87
+ .checklist-item__subtext {
88
+ flex-basis: 100%;
89
+ margin-left: 28px;
90
+ margin-top: 8px;
91
+ text-align: left;
92
+ font-size: $font-body-small;
93
+ line-height: 20px;
94
+
95
+ a,
96
+ a:visited {
97
+ text-decoration: underline;
98
+ color: var(--color-neutral-100);
99
+
100
+ &:hover {
101
+ color: var(--studio-blue-50);
102
+ }
103
+ }
104
+ }
105
+
106
+ .checklist-item__task-content:hover .checklist-item__subtext {
107
+ color: var(--color-neutral-100);
108
+ }
109
+
110
+ .checklist__has-primary-action .checklist-item__task:nth-last-child(2) {
111
+
112
+ // remove bottom border for last checklist item before the primary button
113
+ .checklist-item__task-content,
114
+ .checklist-item__task-content:hover,
115
+ .checklist-item__task-content:focus {
116
+ border-bottom: none;
117
+ }
118
+ }
119
+
120
+ .checklist-item__task:last-child {
121
+ .checklist-item__task-content,
122
+ .checklist-item__task-content:hover,
123
+ .checklist-item__task-content:focus {
124
+ border-bottom: none;
125
+ }
126
+ }
127
+
128
+ // completed tasks (both enabled and disabled)
129
+ .checklist-item__task.completed.disabled,
130
+ .checklist-item__task.completed.enabled {
131
+ .checklist-item__text {
132
+ color: var(--color-neutral-40);
133
+ font-weight: 400;
134
+ }
135
+
136
+ .checklist-item__chevron,
137
+ .checklist-item__checkmark {
138
+ fill: var(--color-neutral-40);
139
+ }
140
+ .checklist-item__counter {
141
+ color: var(--color-neutral-40);
142
+ font-weight: 400;
143
+ margin-right: 0;
144
+ }
145
+ }
146
+
147
+ // pending tasks and completed enabled
148
+ .checklist-item__task.completed.enabled:hover,
149
+ .checklist-item__task.pending:hover,
150
+ .checklist-item__task.completed.enabled > a:focus,
151
+ .checklist-item__task.pending > a:focus {
152
+ .checklist-item__text {
153
+ color: var(--studio-blue-50);
154
+ }
155
+
156
+ .checklist-item__chevron,
157
+ .checklist-item__checkmark {
158
+ fill: var(--studio-blue-50);
159
+ }
160
+
161
+ // change badge color on hover (Choose a Plan step)
162
+ .badge {
163
+ background: var(--studio-blue-10);
164
+ }
165
+
166
+ .checklist-item__task-content[data-task="set_up_payments"] .badge {
167
+ background-color: var(--studio-green-5);
168
+ }
169
+ }
170
+
171
+ // pending disabled tasks
172
+ .checklist-item__task.pending.disabled {
173
+ .checklist-item__text {
174
+ color: inherit;
175
+ }
176
+ }
177
+
178
+ .checklist-item__chevron {
179
+ display: flex;
180
+ line-height: 20px;
181
+ width: 30px;
182
+ }
183
+
184
+ .gridicon.checklist-item__chevron {
185
+ top: 2px;
186
+ margin-top: 0;
187
+ }
188
+
189
+ .checklist-item__counter {
190
+ margin-right: 1em;
191
+ font-weight: 600;
192
+ }
193
+
194
+ .checklist-item__checklist-primary-button {
195
+ width: 100%;
196
+ font-weight: 500;
197
+ padding: 11px;
198
+ margin-top: 12px;
199
+ background-color: var(--color-primary);
200
+ border-color: var(--color-primary);
201
+ color: var(--color-text-inverted);
202
+
203
+ &:hover:not([disabled]) {
204
+ background-color: var(--color-primary-60);
205
+ border-color: var(--color-primary-60);
206
+ color: var(--color-text-inverted);
207
+ }
208
+
209
+ &[disabled] {
210
+ background-color: var(--color-primary-10);
211
+ border-color: var(--color-primary-10);
212
+ color: var(--color-text-inverted);
213
+ }
214
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setUpActionsForTasks = exports.Launchpad = exports.ChecklistItem = exports.Checklist = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var checklist_1 = require("./checklist");
6
+ Object.defineProperty(exports, "Checklist", { enumerable: true, get: function () { return tslib_1.__importDefault(checklist_1).default; } });
7
+ var checklist_item_1 = require("./checklist-item");
8
+ Object.defineProperty(exports, "ChecklistItem", { enumerable: true, get: function () { return tslib_1.__importDefault(checklist_item_1).default; } });
9
+ var launchpad_1 = require("./launchpad");
10
+ Object.defineProperty(exports, "Launchpad", { enumerable: true, get: function () { return tslib_1.__importDefault(launchpad_1).default; } });
11
+ var setup_actions_1 = require("./setup-actions");
12
+ Object.defineProperty(exports, "setUpActionsForTasks", { enumerable: true, get: function () { return setup_actions_1.setUpActionsForTasks; } });
13
+ tslib_1.__exportStar(require("./types"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,yCAAmD;AAA1C,+HAAA,OAAO,OAAa;AAC7B,mDAA4D;AAAnD,wIAAA,OAAO,OAAiB;AACjC,yCAAmD;AAA1C,+HAAA,OAAO,OAAa;AAC7B,iDAAuD;AAA9C,qHAAA,oBAAoB,OAAA;AAC7B,kDAAwB"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const data_stores_1 = require("@automattic/data-stores");
6
+ const react_1 = require("react");
7
+ const checklist_1 = tslib_1.__importDefault(require("./checklist"));
8
+ const Launchpad = ({ siteSlug, checklistSlug, taskFilter, makeLastTaskPrimaryAction, useLaunchpadOptions = {}, }) => {
9
+ const launchpadData = (0, data_stores_1.useLaunchpad)(siteSlug || '', checklistSlug, useLaunchpadOptions);
10
+ const { isFetchedAfterMount, data } = launchpadData;
11
+ const tasks = (0, react_1.useRef)([]);
12
+ (0, react_1.useMemo)(() => {
13
+ const originalTasks = data.checklist || [];
14
+ tasks.current = taskFilter ? taskFilter(originalTasks) : originalTasks;
15
+ }, [data, taskFilter]);
16
+ return ((0, jsx_runtime_1.jsx)("div", { className: "launchpad__checklist-wrapper", children: isFetchedAfterMount ? ((0, jsx_runtime_1.jsx)(checklist_1.default, { tasks: tasks.current, makeLastTaskPrimaryAction: makeLastTaskPrimaryAction })) : ((0, jsx_runtime_1.jsx)(checklist_1.default.Placeholder, {})) }));
17
+ };
18
+ exports.default = Launchpad;
19
+ //# sourceMappingURL=launchpad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad.js","sourceRoot":"","sources":["../../src/launchpad.tsx"],"names":[],"mappings":";;;;AAAA,yDAAuD;AACvD,iCAAwC;AACxC,oEAAoC;AAYpC,MAAM,SAAS,GAAG,CAAE,EACnB,QAAQ,EACR,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,mBAAmB,GAAG,EAAE,GACR,EAAG,EAAE;IACrB,MAAM,aAAa,GAAG,IAAA,0BAAY,EAAE,QAAQ,IAAI,EAAE,EAAE,aAAa,EAAE,mBAAmB,CAAE,CAAC;IACzF,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IACpD,MAAM,KAAK,GAAG,IAAA,cAAM,EAAY,EAAE,CAAE,CAAC;IAErC,IAAA,eAAO,EAAE,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QAC3C,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAE,aAAa,CAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC,EAAE,CAAE,IAAI,EAAE,UAAU,CAAE,CAAE,CAAC;IAE1B,OAAO,CACN,gCAAK,SAAS,EAAC,8BAA8B,YAC1C,mBAAmB,CAAC,CAAC,CAAC,CACvB,uBAAC,mBAAS,IACT,KAAK,EAAG,KAAK,CAAC,OAAO,EACrB,yBAAyB,EAAG,yBAAyB,GACpD,CACF,CAAC,CAAC,CAAC,CACH,uBAAC,mBAAS,CAAC,WAAW,KAAG,CACzB,GACI,CACN,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setUpActionsForTasks = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const calypso_config_1 = tslib_1.__importDefault(require("@automattic/calypso-config"));
6
+ const data_stores_1 = require("@automattic/data-stores");
7
+ const viewport_1 = require("@automattic/viewport");
8
+ const url_1 = require("@wordpress/url");
9
+ const wpcom_proxy_request_1 = tslib_1.__importDefault(require("wpcom-proxy-request"));
10
+ const TASKS_TO_COMPLETE_ON_CLICK = [
11
+ 'add_about_page',
12
+ 'manage_paid_newsletter_plan',
13
+ 'earn_money',
14
+ 'manage_subscribers',
15
+ 'connect_social_media',
16
+ 'drive_traffic',
17
+ ];
18
+ const setUpActionsForTasks = ({ siteSlug, tasks, tracksData, extraActions, uiContext = 'calypso', }) => {
19
+ const { recordTracksEvent, checklistSlug, tasklistCompleted, launchpadContext } = tracksData;
20
+ const { setShareSiteModalIsOpen, siteLaunched, setActiveChecklist } = extraActions;
21
+ //Record click events for tasks
22
+ const recordTaskClickTracksEvent = (task) => {
23
+ recordTracksEvent('calypso_launchpad_task_clicked', {
24
+ checklist_slug: checklistSlug,
25
+ checklist_completed: tasklistCompleted,
26
+ task_id: task.id,
27
+ is_completed: task.completed,
28
+ context: launchpadContext,
29
+ order: task.order,
30
+ });
31
+ };
32
+ // Add actions to the tasks.
33
+ return tasks.map((task) => {
34
+ let action;
35
+ let logMissingCalypsoPath = false;
36
+ if (uiContext === 'calypso' && task.calypso_path !== undefined) {
37
+ let targetPath = task.calypso_path;
38
+ if (task.id === 'drive_traffic' && !(0, viewport_1.isMobile)()) {
39
+ targetPath = (0, url_1.addQueryArgs)(targetPath, { tour: 'marketingConnectionsTour' });
40
+ }
41
+ // Enable task in 'calypso' context
42
+ if (task.id === 'setup_general') {
43
+ task.disabled = false;
44
+ }
45
+ action = () => {
46
+ if (siteSlug && TASKS_TO_COMPLETE_ON_CLICK.includes(task.id)) {
47
+ (0, data_stores_1.updateLaunchpadSettings)(siteSlug, {
48
+ checklist_statuses: { [task.id]: true },
49
+ });
50
+ }
51
+ window.location.assign(targetPath);
52
+ };
53
+ }
54
+ else {
55
+ switch (task.id) {
56
+ case 'share_site':
57
+ action = () => {
58
+ setShareSiteModalIsOpen?.(true);
59
+ };
60
+ break;
61
+ case 'site_title':
62
+ logMissingCalypsoPath = true;
63
+ action = () => {
64
+ window.location.assign(`/settings/general/${siteSlug}`);
65
+ };
66
+ break;
67
+ case 'domain_claim':
68
+ case 'domain_upsell':
69
+ case 'domain_customize':
70
+ logMissingCalypsoPath = true;
71
+ action = () => {
72
+ window.location.assign(`/domains/add/${siteSlug}`);
73
+ };
74
+ break;
75
+ case 'drive_traffic':
76
+ logMissingCalypsoPath = true;
77
+ action = () => {
78
+ const url = (0, viewport_1.isMobile)()
79
+ ? `/marketing/connections/${siteSlug}`
80
+ : `/marketing/connections/${siteSlug}?tour=marketingConnectionsTour`;
81
+ window.location.assign(url);
82
+ };
83
+ break;
84
+ case 'add_new_page':
85
+ logMissingCalypsoPath = true;
86
+ action = () => {
87
+ window.location.assign(`/page/${siteSlug}`);
88
+ };
89
+ break;
90
+ case 'edit_page':
91
+ logMissingCalypsoPath = true;
92
+ action = () => {
93
+ window.location.assign(`/pages/${siteSlug}`);
94
+ };
95
+ break;
96
+ case 'update_about_page':
97
+ logMissingCalypsoPath = true;
98
+ action = () => {
99
+ window.location.assign(`/page/${siteSlug}/${task?.extra_data?.about_page_id}`);
100
+ };
101
+ break;
102
+ case 'customize_welcome_message':
103
+ logMissingCalypsoPath = true;
104
+ action = () => {
105
+ if (calypso_config_1.default.isEnabled('settings/newsletter-settings-page')) {
106
+ window.location.assign(`/settings/newsletter/${siteSlug}`);
107
+ }
108
+ else {
109
+ window.location.assign(`/settings/reading/${siteSlug}#newsletter-settings`);
110
+ }
111
+ };
112
+ break;
113
+ case 'manage_subscribers':
114
+ logMissingCalypsoPath = true;
115
+ action = () => {
116
+ window.location.assign(`/subscribers/${siteSlug}`);
117
+ };
118
+ break;
119
+ case 'site_launched':
120
+ case 'blog_launched':
121
+ case 'videopress_launched':
122
+ case 'link_in_bio_launched':
123
+ action = async () => {
124
+ await (0, wpcom_proxy_request_1.default)({
125
+ path: `/sites/${siteSlug}/launch`,
126
+ apiVersion: '1.1',
127
+ method: 'post',
128
+ });
129
+ siteLaunched?.();
130
+ };
131
+ break;
132
+ default:
133
+ logMissingCalypsoPath = true;
134
+ break;
135
+ }
136
+ }
137
+ if (logMissingCalypsoPath) {
138
+ recordTracksEvent('calypso_launchpad_task_missing_calypso_path', {
139
+ checklist_slug: checklistSlug,
140
+ task_id: task.id,
141
+ is_completed: task.completed,
142
+ context: launchpadContext,
143
+ });
144
+ }
145
+ const actionDispatch = () => {
146
+ recordTaskClickTracksEvent(task);
147
+ if (siteSlug && setActiveChecklist) {
148
+ setActiveChecklist(siteSlug, checklistSlug);
149
+ }
150
+ action?.();
151
+ };
152
+ return { ...task, actionDispatch };
153
+ });
154
+ };
155
+ exports.setUpActionsForTasks = setUpActionsForTasks;
156
+ //# sourceMappingURL=setup-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-actions.js","sourceRoot":"","sources":["../../src/setup-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import './style.scss';
4
+ const Badge = (props) => {
5
+ const className = props.className;
6
+ const type = props.type || 'warning';
7
+ return (_jsx("div", { className: classNames(`badge badge--${type}`, className), children: props.children }));
8
+ };
9
+ export default Badge;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/badge/index.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,cAAc,CAAC;AAgBtB,MAAM,KAAK,GAA0C,CAAE,KAAK,EAAG,EAAE;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;IACrC,OAAO,CACN,cAAK,SAAS,EAAG,UAAU,CAAE,gBAAiB,IAAK,EAAE,EAAE,SAAS,CAAE,YAAK,KAAK,CAAC,QAAQ,GAAQ,CAC7F,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}