@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.
- package/CHANGELOG.md +6 -0
- package/README.md +35 -0
- package/dist/cjs/badge/index.js +13 -0
- package/dist/cjs/badge/index.js.map +1 -0
- package/dist/cjs/badge/style.scss +50 -0
- package/dist/cjs/checklist/index.js +18 -0
- package/dist/cjs/checklist/index.js.map +1 -0
- package/dist/cjs/checklist/style.scss +9 -0
- package/dist/cjs/checklist-item/index.js +35 -0
- package/dist/cjs/checklist-item/index.js.map +1 -0
- package/dist/cjs/checklist-item/style.scss +214 -0
- package/dist/cjs/index.js +14 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/launchpad.js +19 -0
- package/dist/cjs/launchpad.js.map +1 -0
- package/dist/cjs/setup-actions.js +156 -0
- package/dist/cjs/setup-actions.js.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/badge/index.js +10 -0
- package/dist/esm/badge/index.js.map +1 -0
- package/dist/esm/badge/style.scss +50 -0
- package/dist/esm/checklist/index.js +15 -0
- package/dist/esm/checklist/index.js.map +1 -0
- package/dist/esm/checklist/style.scss +9 -0
- package/dist/esm/checklist-item/index.js +32 -0
- package/dist/esm/checklist-item/index.js.map +1 -0
- package/dist/esm/checklist-item/style.scss +214 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/launchpad.js +16 -0
- package/dist/esm/launchpad.js.map +1 -0
- package/dist/esm/setup-actions.js +151 -0
- package/dist/esm/setup-actions.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/badge/index.d.ts +10 -0
- package/dist/types/badge/index.d.ts.map +1 -0
- package/dist/types/checklist/index.d.ts +12 -0
- package/dist/types/checklist/index.d.ts.map +1 -0
- package/dist/types/checklist-item/index.d.ts +11 -0
- package/dist/types/checklist-item/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/launchpad.d.ts +12 -0
- package/dist/types/launchpad.d.ts.map +1 -0
- package/dist/types/setup-actions.d.ts +3 -0
- package/dist/types/setup-actions.d.ts.map +1 -0
- package/dist/types/types.d.ts +64 -0
- package/dist/types/types.d.ts.map +1 -0
- package/jest.config.js +5 -0
- package/package.json +59 -0
- package/src/badge/index.tsx +27 -0
- package/src/badge/style.scss +50 -0
- package/src/checklist/index.tsx +43 -0
- package/src/checklist/style.scss +9 -0
- package/src/checklist-item/index.tsx +94 -0
- package/src/checklist-item/style.scss +214 -0
- package/src/index.ts +5 -0
- package/src/launchpad.tsx +45 -0
- package/src/setup-actions.ts +168 -0
- package/src/test/badge.tsx +50 -0
- package/src/test/checklist-item.tsx +96 -0
- package/src/test/checklist.tsx +25 -0
- package/src/test/launchpad.tsx +49 -0
- package/src/test/lib/fixtures.ts +322 -0
- package/src/types.ts +70 -0
- package/tsconfig-cjs.json +7 -0
- package/tsconfig.json +11 -0
package/CHANGELOG.md
ADDED
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,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 @@
|
|
|
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"}
|