@automattic/launchpad 1.0.0 → 1.0.1

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 (145) hide show
  1. package/.storybook/main.ts +16 -0
  2. package/.storybook/preview.ts +6 -0
  3. package/README.md +11 -2
  4. package/dist/cjs/action-components/index.js +6 -0
  5. package/dist/cjs/action-components/index.js.map +1 -0
  6. package/dist/cjs/action-components/share-site-modal/index.js +44 -0
  7. package/dist/cjs/action-components/share-site-modal/index.js.map +1 -0
  8. package/dist/cjs/action-components/share-site-modal/style.scss +159 -0
  9. package/dist/cjs/badge/index.js +2 -2
  10. package/dist/cjs/badge/index.js.map +1 -1
  11. package/dist/cjs/checklist/index.js +16 -8
  12. package/dist/cjs/checklist/index.js.map +1 -1
  13. package/dist/cjs/checklist/index.stories.js +29 -0
  14. package/dist/cjs/checklist/index.stories.js.map +1 -0
  15. package/dist/cjs/checklist-item/index.js +30 -13
  16. package/dist/cjs/checklist-item/index.js.map +1 -1
  17. package/dist/cjs/checklist-item/index.stories.js +79 -0
  18. package/dist/cjs/checklist-item/index.stories.js.map +1 -0
  19. package/dist/cjs/checklist-item/style.scss +142 -22
  20. package/dist/cjs/index.js +6 -1
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/launchpad-container/index.js +11 -0
  23. package/dist/cjs/launchpad-container/index.js.map +1 -0
  24. package/dist/cjs/launchpad-container/style.scss +59 -0
  25. package/dist/cjs/launchpad-internal.js +40 -0
  26. package/dist/cjs/launchpad-internal.js.map +1 -0
  27. package/dist/cjs/launchpad-internal.stories.js +45 -0
  28. package/dist/cjs/launchpad-internal.stories.js.map +1 -0
  29. package/dist/cjs/launchpad.js +39 -10
  30. package/dist/cjs/launchpad.js.map +1 -1
  31. package/dist/cjs/msw/link-in-bio.js +68 -0
  32. package/dist/cjs/msw/link-in-bio.js.map +1 -0
  33. package/dist/cjs/msw/resolver.js +19 -0
  34. package/dist/cjs/msw/resolver.js.map +1 -0
  35. package/dist/cjs/msw/setup-free.js +88 -0
  36. package/dist/cjs/msw/setup-free.js.map +1 -0
  37. package/dist/cjs/setup-actions.js +51 -54
  38. package/dist/cjs/setup-actions.js.map +1 -1
  39. package/dist/cjs/use-tracking/index.js +72 -0
  40. package/dist/cjs/use-tracking/index.js.map +1 -0
  41. package/dist/esm/action-components/index.js +2 -0
  42. package/dist/esm/action-components/index.js.map +1 -0
  43. package/dist/esm/action-components/share-site-modal/index.js +42 -0
  44. package/dist/esm/action-components/share-site-modal/index.js.map +1 -0
  45. package/dist/esm/action-components/share-site-modal/style.scss +159 -0
  46. package/dist/esm/badge/index.js +2 -2
  47. package/dist/esm/badge/index.js.map +1 -1
  48. package/dist/esm/checklist/index.js +14 -8
  49. package/dist/esm/checklist/index.js.map +1 -1
  50. package/dist/esm/checklist/index.stories.js +25 -0
  51. package/dist/esm/checklist/index.stories.js.map +1 -0
  52. package/dist/esm/checklist-item/index.js +29 -14
  53. package/dist/esm/checklist-item/index.js.map +1 -1
  54. package/dist/esm/checklist-item/index.stories.js +75 -0
  55. package/dist/esm/checklist-item/index.stories.js.map +1 -0
  56. package/dist/esm/checklist-item/style.scss +142 -22
  57. package/dist/esm/index.js +3 -0
  58. package/dist/esm/index.js.map +1 -1
  59. package/dist/esm/launchpad-container/index.js +8 -0
  60. package/dist/esm/launchpad-container/index.js.map +1 -0
  61. package/dist/esm/launchpad-container/style.scss +59 -0
  62. package/dist/esm/launchpad-internal.js +37 -0
  63. package/dist/esm/launchpad-internal.js.map +1 -0
  64. package/dist/esm/launchpad-internal.stories.js +41 -0
  65. package/dist/esm/launchpad-internal.stories.js.map +1 -0
  66. package/dist/esm/launchpad.js +41 -13
  67. package/dist/esm/launchpad.js.map +1 -1
  68. package/dist/esm/msw/link-in-bio.js +66 -0
  69. package/dist/esm/msw/link-in-bio.js.map +1 -0
  70. package/dist/esm/msw/resolver.js +14 -0
  71. package/dist/esm/msw/resolver.js.map +1 -0
  72. package/dist/esm/msw/setup-free.js +86 -0
  73. package/dist/esm/msw/setup-free.js.map +1 -0
  74. package/dist/esm/setup-actions.js +51 -54
  75. package/dist/esm/setup-actions.js.map +1 -1
  76. package/dist/esm/use-tracking/index.js +68 -0
  77. package/dist/esm/use-tracking/index.js.map +1 -0
  78. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/dist/types/action-components/index.d.ts +2 -0
  81. package/dist/types/action-components/index.d.ts.map +1 -0
  82. package/dist/types/action-components/share-site-modal/index.d.ts +9 -0
  83. package/dist/types/action-components/share-site-modal/index.d.ts.map +1 -0
  84. package/dist/types/badge/index.d.ts.map +1 -1
  85. package/dist/types/checklist/index.d.ts +6 -7
  86. package/dist/types/checklist/index.d.ts.map +1 -1
  87. package/dist/types/checklist/index.stories.d.ts +8 -0
  88. package/dist/types/checklist/index.stories.d.ts.map +1 -0
  89. package/dist/types/checklist-item/index.d.ts +11 -8
  90. package/dist/types/checklist-item/index.d.ts.map +1 -1
  91. package/dist/types/checklist-item/index.stories.d.ts +14 -0
  92. package/dist/types/checklist-item/index.stories.d.ts.map +1 -0
  93. package/dist/types/index.d.ts +3 -0
  94. package/dist/types/index.d.ts.map +1 -1
  95. package/dist/types/launchpad-container/index.d.ts +15 -0
  96. package/dist/types/launchpad-container/index.d.ts.map +1 -0
  97. package/dist/types/launchpad-internal.d.ts +20 -0
  98. package/dist/types/launchpad-internal.d.ts.map +1 -0
  99. package/dist/types/launchpad-internal.stories.d.ts +8 -0
  100. package/dist/types/launchpad-internal.stories.d.ts.map +1 -0
  101. package/dist/types/launchpad.d.ts +10 -9
  102. package/dist/types/launchpad.d.ts.map +1 -1
  103. package/dist/types/msw/link-in-bio.d.ts +35 -0
  104. package/dist/types/msw/link-in-bio.d.ts.map +1 -0
  105. package/dist/types/msw/resolver.d.ts +3 -0
  106. package/dist/types/msw/resolver.d.ts.map +1 -0
  107. package/dist/types/msw/setup-free.d.ts +35 -0
  108. package/dist/types/msw/setup-free.d.ts.map +1 -0
  109. package/dist/types/setup-actions.d.ts +1 -1
  110. package/dist/types/setup-actions.d.ts.map +1 -1
  111. package/dist/types/types.d.ts +19 -9
  112. package/dist/types/types.d.ts.map +1 -1
  113. package/dist/types/use-tracking/index.d.ts +14 -0
  114. package/dist/types/use-tracking/index.d.ts.map +1 -0
  115. package/package.json +24 -16
  116. package/src/action-components/index.ts +1 -0
  117. package/src/action-components/share-site-modal/index.tsx +100 -0
  118. package/src/action-components/share-site-modal/style.scss +159 -0
  119. package/src/badge/index.tsx +2 -4
  120. package/src/checklist/index.stories.tsx +45 -0
  121. package/src/checklist/index.tsx +22 -21
  122. package/src/checklist/test/index.tsx +26 -0
  123. package/src/checklist-item/index.stories.tsx +92 -0
  124. package/src/checklist-item/index.tsx +62 -22
  125. package/src/checklist-item/style.scss +142 -22
  126. package/src/checklist-item/test/index.tsx +232 -0
  127. package/src/index.ts +3 -0
  128. package/src/launchpad-container/index.tsx +45 -0
  129. package/src/launchpad-container/style.scss +59 -0
  130. package/src/launchpad-container/test/index.tsx +72 -0
  131. package/src/launchpad-internal.stories.tsx +49 -0
  132. package/src/launchpad-internal.tsx +85 -0
  133. package/src/launchpad.tsx +80 -30
  134. package/src/msw/link-in-bio.ts +66 -0
  135. package/src/msw/resolver.ts +18 -0
  136. package/src/msw/setup-free.ts +85 -0
  137. package/src/setup-actions.ts +67 -54
  138. package/src/test/launchpad.tsx +51 -24
  139. package/src/test/lib/fixtures.ts +7 -2
  140. package/src/types.ts +24 -9
  141. package/src/use-tracking/index.tsx +87 -0
  142. package/src/use-tracking/test/index.tsx +116 -0
  143. package/static/mockServiceWorker.js +287 -0
  144. package/src/test/checklist-item.tsx +0 -96
  145. package/src/test/checklist.tsx +0 -25
@@ -2,8 +2,8 @@
2
2
  @import "@wordpress/base-styles/breakpoints";
3
3
  @import "@automattic/typography/styles/variables";
4
4
 
5
- .checklist-item__task-content {
6
- align-items: flex-start;
5
+ .checklist-item__task-content.components-button {
6
+ align-items: center;
7
7
  background-color: transparent;
8
8
  border-bottom: 1px solid var(--studio-gray-5);
9
9
  border-left: none;
@@ -15,10 +15,51 @@
15
15
  width: 100%;
16
16
  margin: 0;
17
17
  color: var(--color-neutral-100);
18
+ height: auto;
19
+ font-family: $sans;
20
+ font-size: $font-body-small;
21
+ line-height: 22px;
22
+ outline: 0;
23
+ overflow: hidden;
24
+ text-decoration: none;
25
+ padding-left: 2px;
26
+
27
+ &:is(button, a) {
28
+ cursor: pointer;
29
+ }
30
+
31
+ &:is(div) {
32
+ cursor: default;
33
+ }
34
+
35
+ &:visited {
36
+ color: var(--color-neutral-100);
37
+ }
38
+
39
+ &:disabled {
40
+ opacity: 1;
41
+ color: var(--color-neutral-20);
42
+ }
18
43
 
19
44
  &.is-placeholder {
20
45
  padding: 16px 0 16px 0;
21
46
  }
47
+
48
+ &:focus-visible {
49
+ outline: var(--color-primary);
50
+ box-shadow: 0 0 0 2px var(--color-primary-light);
51
+ }
52
+
53
+ .badge {
54
+ margin-left: auto;
55
+ background-color: var(--studio-blue-5);
56
+ color: var(--studio-blue-80);
57
+ font-size: $font-body-extra-small;
58
+ }
59
+
60
+ .checklist-item__chevron {
61
+ width: auto;
62
+ }
22
63
  }
23
64
 
24
65
  .checklist-item__content {
@@ -38,27 +79,28 @@
38
79
  }
39
80
  }
40
81
 
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);
82
+ .checklist-item__task-content {
83
+ &.is-placeholder {
84
+ padding: 5px 0 5px 0;
85
+ }
46
86
  }
47
87
 
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;
88
+ .checklist-item__task-content.components-button:hover:not([disabled]),
89
+ .checklist-item__task-content.components-button:focus:not([disabled]) {
90
+ &:is(button, a) {
91
+ fill: var(--studio-blue-50);
92
+ color: var(--studio-blue-50);
93
+ }
94
+ border-bottom: 1px solid var(--studio-gray-5);
53
95
  }
54
96
 
55
- .checklist-item__task-content[disabled],
56
- .checklist-item__task-content[disabled]:focus {
97
+ .checklist-item__task-content.components-button[disabled],
98
+ .checklist-item__task-content.components-button[disabled]:focus {
57
99
  background-color: transparent;
58
100
  pointer-events: none;
59
101
  }
60
102
 
61
- .checklist-item__task-content[data-task="verify_email"] {
103
+ .checklist-item__task-content.components-button[data-task="verify_email"] {
62
104
  color: var(--color-text);
63
105
  }
64
106
 
@@ -68,11 +110,13 @@
68
110
  }
69
111
 
70
112
  .checklist-item__checkmark-container {
71
- margin-right: 8px;
113
+ margin-right: 7px;
72
114
  width: 20px;
115
+ display: flex;
116
+ margin-left: 1px;
117
+ margin-bottom: -2px;
73
118
 
74
119
  .checklist-item__checkmark {
75
- top: 2px;
76
120
  vertical-align: text-bottom;
77
121
  }
78
122
  }
@@ -103,7 +147,7 @@
103
147
  }
104
148
  }
105
149
 
106
- .checklist-item__task-content:hover .checklist-item__subtext {
150
+ .checklist-item__task-content.components-button:hover .checklist-item__subtext {
107
151
  color: var(--color-neutral-100);
108
152
  }
109
153
 
@@ -125,6 +169,18 @@
125
169
  }
126
170
  }
127
171
 
172
+ .checklist-item__task.expanded {
173
+ .checklist-item__task-content,
174
+ .checklist-item__task-content:hover,
175
+ .checklist-item__task-content:focus {
176
+ border-bottom: none;
177
+ }
178
+
179
+ .checklist-item__task-content {
180
+ padding-bottom: 0;
181
+ }
182
+ }
183
+
128
184
  // completed tasks (both enabled and disabled)
129
185
  .checklist-item__task.completed.disabled,
130
186
  .checklist-item__task.completed.enabled {
@@ -145,8 +201,10 @@
145
201
  }
146
202
 
147
203
  // pending tasks and completed enabled
148
- .checklist-item__task.completed.enabled:hover,
149
- .checklist-item__task.pending:hover,
204
+ .checklist-item__task.completed.enabled > button:hover,
205
+ .checklist-item__task.pending > button:hover,
206
+ .checklist-item__task.completed.enabled > a:hover,
207
+ .checklist-item__task.pending > a:hover,
150
208
  .checklist-item__task.completed.enabled > a:focus,
151
209
  .checklist-item__task.pending > a:focus {
152
210
  .checklist-item__text {
@@ -171,7 +229,7 @@
171
229
  // pending disabled tasks
172
230
  .checklist-item__task.pending.disabled {
173
231
  .checklist-item__text {
174
- color: inherit;
232
+ color: var(--color-neutral-20);
175
233
  }
176
234
  }
177
235
 
@@ -191,14 +249,20 @@
191
249
  font-weight: 600;
192
250
  }
193
251
 
194
- .checklist-item__checklist-primary-button {
252
+ .checklist-item__checklist-expanded-action-button.components-button,
253
+ .checklist-item__checklist-primary-button.components-button {
195
254
  width: 100%;
196
255
  font-weight: 500;
197
256
  padding: 11px;
198
257
  margin-top: 12px;
199
258
  background-color: var(--color-primary);
200
259
  border-color: var(--color-primary);
260
+ border-radius: 4px;
201
261
  color: var(--color-text-inverted);
262
+ justify-content: center;
263
+ font-size: $font-body-small;
264
+ height: auto;
265
+ line-height: 22px;
202
266
 
203
267
  &:hover:not([disabled]) {
204
268
  background-color: var(--color-primary-60);
@@ -211,4 +275,60 @@
211
275
  border-color: var(--color-primary-10);
212
276
  color: var(--color-text-inverted);
213
277
  }
278
+
279
+ &:disabled {
280
+ opacity: 1;
281
+ &:hover {
282
+ color: var(--color-text-inverted);
283
+ }
284
+ }
285
+ }
286
+
287
+ .checklist-item__checklist-expanded-action-button.components-button {
288
+ display: block;
289
+ margin: 16px 0;
290
+ }
291
+
292
+ .checklist-item__expanded-content {
293
+ padding-left: 2px;
294
+ font-family: $sans;
295
+ font-size: $font-body-small;
296
+
297
+ p {
298
+ margin: 12px 0;
299
+ }
300
+ }
301
+
302
+ .checklist-item__checklist-secondary-button.components-button {
303
+ width: 100%;
304
+ font-weight: 500;
305
+ padding: 11px;
306
+ margin-top: 12px;
307
+ background-color: var(--studio-white);
308
+ border: 1px solid var(--studio-gray-100);
309
+ border-radius: 4px;
310
+ color: var(--color-text);
311
+ justify-content: center;
312
+ font-size: $font-body-small;
313
+ height: auto;
314
+ line-height: 22px;
315
+
316
+ &:hover:not([disabled]) {
317
+ background-color: var(--studio-gray-0);
318
+ border-color: var(--color-neutral-40);
319
+ color: var(--color-text);
320
+ }
321
+
322
+ &[disabled] {
323
+ background-color: var(--studio-gray-0);
324
+ border: none;
325
+ color: var(--color-neutral-40);
326
+ }
327
+
328
+ &:disabled {
329
+ opacity: 1;
330
+ &:hover {
331
+ color: var(--color-neutral-40);
332
+ }
333
+ }
214
334
  }
package/dist/cjs/index.js CHANGED
@@ -1,14 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setUpActionsForTasks = exports.Launchpad = exports.ChecklistItem = exports.Checklist = void 0;
3
+ exports.setUpActionsForTasks = exports.Launchpad = exports.LaunchpadContainer = exports.LaunchpadInternal = exports.ChecklistItem = exports.Checklist = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  var checklist_1 = require("./checklist");
6
6
  Object.defineProperty(exports, "Checklist", { enumerable: true, get: function () { return tslib_1.__importDefault(checklist_1).default; } });
7
7
  var checklist_item_1 = require("./checklist-item");
8
8
  Object.defineProperty(exports, "ChecklistItem", { enumerable: true, get: function () { return tslib_1.__importDefault(checklist_item_1).default; } });
9
+ var launchpad_internal_1 = require("./launchpad-internal");
10
+ Object.defineProperty(exports, "LaunchpadInternal", { enumerable: true, get: function () { return tslib_1.__importDefault(launchpad_internal_1).default; } });
11
+ var launchpad_container_1 = require("./launchpad-container");
12
+ Object.defineProperty(exports, "LaunchpadContainer", { enumerable: true, get: function () { return tslib_1.__importDefault(launchpad_container_1).default; } });
9
13
  var launchpad_1 = require("./launchpad");
10
14
  Object.defineProperty(exports, "Launchpad", { enumerable: true, get: function () { return tslib_1.__importDefault(launchpad_1).default; } });
11
15
  var setup_actions_1 = require("./setup-actions");
12
16
  Object.defineProperty(exports, "setUpActionsForTasks", { enumerable: true, get: function () { return setup_actions_1.setUpActionsForTasks; } });
17
+ tslib_1.__exportStar(require("./action-components"), exports);
13
18
  tslib_1.__exportStar(require("./types"), exports);
14
19
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
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,2DAAoE;AAA3D,gJAAA,OAAO,OAAqB;AACrC,6DAAsE;AAA7D,kJAAA,OAAO,OAAsB;AACtC,yCAAmD;AAA1C,+HAAA,OAAO,OAAa;AAC7B,iDAAuD;AAA9C,qHAAA,oBAAoB,OAAA;AAC7B,8DAAoC;AACpC,kDAAwB"}
@@ -0,0 +1,11 @@
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 clsx_1 = tslib_1.__importDefault(require("clsx"));
6
+ require("./style.scss");
7
+ const LaunchpadContainer = ({ className, headerClassName, contentClassName, sidebarClassName, mainContentClassName, header, sidebar, children, }) => {
8
+ return ((0, jsx_runtime_1.jsxs)("main", { className: (0, clsx_1.default)('launchpad-container', className), children: [header && ((0, jsx_runtime_1.jsx)("div", { className: (0, clsx_1.default)('launchpad-container__header', headerClassName), children: header })), (0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.default)('launchpad-container__content', contentClassName), children: [(0, jsx_runtime_1.jsx)("div", { className: (0, clsx_1.default)('launchpad-container__sidebar', sidebarClassName), children: sidebar }), (0, jsx_runtime_1.jsx)("div", { className: (0, clsx_1.default)('launchpad-container__main-content', mainContentClassName), children: children })] })] }));
9
+ };
10
+ exports.default = LaunchpadContainer;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/launchpad-container/index.tsx"],"names":[],"mappings":";;;;AAAA,wDAAwB;AAGxB,wBAAsB;AAatB,MAAM,kBAAkB,GAA8C,CAAE,EACvE,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,EACN,OAAO,EACP,QAAQ,GACR,EAAG,EAAE;IACL,OAAO,CACN,kCAAM,SAAS,EAAG,IAAA,cAAI,EAAE,qBAAqB,EAAE,SAAS,CAAE,aACvD,MAAM,IAAI,CACX,gCAAK,SAAS,EAAG,IAAA,cAAI,EAAE,6BAA6B,EAAE,eAAe,CAAE,YAAK,MAAM,GAAQ,CAC1F,EAED,iCAAK,SAAS,EAAG,IAAA,cAAI,EAAE,8BAA8B,EAAE,gBAAgB,CAAE,aACxE,gCAAK,SAAS,EAAG,IAAA,cAAI,EAAE,8BAA8B,EAAE,gBAAgB,CAAE,YACtE,OAAO,GACJ,EACN,gCAAK,SAAS,EAAG,IAAA,cAAI,EAAE,mCAAmC,EAAE,oBAAoB,CAAE,YAC/E,QAAQ,GACL,IACD,IACA,CACP,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,59 @@
1
+ @import "@wordpress/base-styles/mixins";
2
+ @import "@wordpress/base-styles/breakpoints";
3
+
4
+ .launchpad-container {
5
+ height: 100%;
6
+ display: flex;
7
+ flex-direction: column;
8
+ }
9
+
10
+ // Launchpad Content.
11
+ .launchpad-container__content {
12
+ display: flex;
13
+ flex-direction: column;
14
+
15
+ @include break-large {
16
+ height: 100%;
17
+ min-height: calc(100vh - 60px); // Discount margin-top from `.step-route`.
18
+ flex-direction: row;
19
+ }
20
+ }
21
+
22
+ // Launchpad Sidebar.
23
+ .launchpad-container__sidebar {
24
+ display: flex;
25
+ flex-direction: column;
26
+ max-width: 100%;
27
+
28
+ @include break-large {
29
+ max-width: 360px;
30
+ }
31
+
32
+ // TODO: Migrate to the checklist components. The checklist could receive a special className as prop that would be responsible for this.
33
+ .launchpad-container .checklist__tasks .checklist-item__task-content.is-placeholder .checklist-item__content {
34
+ /* Override default placeholder colours to align with other elements on the page. */
35
+ background-color: var(--color-neutral-5);
36
+ }
37
+ }
38
+
39
+ // Main content.
40
+ .launchpad-container__main-content {
41
+ flex-grow: 1;
42
+ display: flex;
43
+ flex-direction: column;
44
+ }
45
+
46
+ // Container spacings.
47
+ .launchpad-container__sidebar,
48
+ .launchpad-container__main-content {
49
+ padding: 16px;
50
+
51
+ @include break-large {
52
+ padding: 40px;
53
+
54
+ // Exception for the sidebar.
55
+ &.launchpad-container__sidebar {
56
+ padding-right: 32px;
57
+ }
58
+ }
59
+ }
@@ -0,0 +1,40 @@
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.__importStar(require("./checklist"));
8
+ const checklist_item_1 = tslib_1.__importDefault(require("./checklist-item"));
9
+ const use_tracking_1 = require("./use-tracking");
10
+ /**
11
+ * Low-level launchpad component that should only be used in exceptional cases.
12
+ * Please use the main Launchpad component whenever possible.
13
+ */
14
+ const LaunchpadInternal = ({ flow, site, siteSlug, checklistSlug, taskFilter, makeLastTaskPrimaryAction, useLaunchpadOptions = {}, launchpadContext, }) => {
15
+ const launchpadData = (0, data_stores_1.useLaunchpad)(siteSlug || '', checklistSlug, useLaunchpadOptions, launchpadContext);
16
+ const { isFetchedAfterMount, data } = launchpadData;
17
+ const { checklist } = data;
18
+ const tasks = (0, react_1.useMemo)(() => {
19
+ if (!checklist) {
20
+ return [];
21
+ }
22
+ return taskFilter ? taskFilter(checklist) : checklist;
23
+ // Array of tasks requires deep comparison
24
+ // eslint-disable-next-line react-hooks/exhaustive-deps
25
+ }, [JSON.stringify(checklist), taskFilter]);
26
+ const { trackTaskClick } = (0, use_tracking_1.useTracking)({
27
+ tasks,
28
+ checklistSlug,
29
+ site,
30
+ context: launchpadContext,
31
+ flow,
32
+ });
33
+ const itemClickHandler = (task) => {
34
+ trackTaskClick(task);
35
+ task?.actionDispatch?.();
36
+ };
37
+ return ((0, jsx_runtime_1.jsx)("div", { className: "launchpad__checklist-wrapper", children: isFetchedAfterMount ? ((0, jsx_runtime_1.jsx)(checklist_1.default, { makeLastTaskPrimaryAction: makeLastTaskPrimaryAction, children: tasks.map((task) => ((0, jsx_runtime_1.jsx)(checklist_item_1.default, { task: task, onClick: () => itemClickHandler(task) }, task.id))) })) : ((0, jsx_runtime_1.jsx)(checklist_1.Placeholder, {})) }));
38
+ };
39
+ exports.default = LaunchpadInternal;
40
+ //# sourceMappingURL=launchpad-internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad-internal.js","sourceRoot":"","sources":["../../src/launchpad-internal.tsx"],"names":[],"mappings":";;;;AAAA,yDAAuD;AACvD,iCAAyC;AACzC,iEAA6E;AAC7E,8EAA6C;AAC7C,iDAA6C;AAe7C;;;GAGG;AACH,MAAM,iBAAiB,GAAgB,CAAE,EACxC,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,mBAAmB,GAAG,EAAE,EACxB,gBAAgB,GAChB,EAAG,EAAE;IACL,MAAM,aAAa,GAAG,IAAA,0BAAY,EACjC,QAAQ,IAAI,EAAE,EACd,aAAa,EACb,mBAAmB,EACnB,gBAAgB,CAChB,CAAC;IAEF,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAE3B,MAAM,KAAK,GAAG,IAAA,eAAO,EAAE,GAAG,EAAE;QAC3B,IAAK,CAAE,SAAS,EAAG,CAAC;YACnB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAE,SAAS,CAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,0CAA0C;QAC1C,uDAAuD;IACxD,CAAC,EAAE,CAAE,IAAI,CAAC,SAAS,CAAE,SAAS,CAAE,EAAE,UAAU,CAAE,CAAE,CAAC;IAEjD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,0BAAW,EAAE;QACvC,KAAK;QACL,aAAa;QACb,IAAI;QACJ,OAAO,EAAE,gBAAgB;QACzB,IAAI;KACJ,CAAE,CAAC;IAEJ,MAAM,gBAAgB,GAAG,CAAE,IAAU,EAAG,EAAE;QACzC,cAAc,CAAE,IAAI,CAAE,CAAC;QACvB,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CACN,gCAAK,SAAS,EAAC,8BAA8B,YAC1C,mBAAmB,CAAC,CAAC,CAAC,CACvB,uBAAC,mBAAS,IAAC,yBAAyB,EAAG,yBAAyB,YAC7D,KAAK,CAAC,GAAG,CAAE,CAAE,IAAI,EAAG,EAAE,CAAC,CACxB,uBAAC,wBAAa,IACb,IAAI,EAAG,IAAI,EAEX,OAAO,EAAG,GAAG,EAAE,CAAC,gBAAgB,CAAE,IAAI,CAAE,IADlC,IAAI,CAAC,EAAE,CAEZ,CACF,CAAE,GACQ,CACZ,CAAC,CAAC,CAAC,CACH,uBAAC,uBAAoB,KAAG,CACxB,GACI,CACN,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Loading = exports.Default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_query_1 = require("@tanstack/react-query");
7
+ const msw_1 = require("msw");
8
+ const launchpad_internal_1 = tslib_1.__importDefault(require("./launchpad-internal"));
9
+ const resolver_1 = require("./msw/resolver");
10
+ const queryClient = new react_query_1.QueryClient();
11
+ const meta = {
12
+ title: 'Launchpad/LaunchpadInternal',
13
+ component: launchpad_internal_1.default,
14
+ decorators: [
15
+ (Story) => ((0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(Story, {}) })),
16
+ ],
17
+ parameters: {
18
+ msw: {
19
+ handlers: [msw_1.http.get('/wpcom/v2/sites/*/launchpad', resolver_1.launchpadResolver)],
20
+ },
21
+ },
22
+ args: {
23
+ site: null,
24
+ siteSlug: 'example.wordpress.com',
25
+ launchpadContext: 'fullscreen',
26
+ checklistSlug: 'free',
27
+ },
28
+ argTypes: {
29
+ checklistSlug: {
30
+ defaultValue: 'free',
31
+ options: ['free', 'link-in-bio'],
32
+ control: { type: 'select' },
33
+ },
34
+ },
35
+ };
36
+ exports.Default = {};
37
+ exports.Loading = {
38
+ parameters: {
39
+ msw: {
40
+ delay: 1000,
41
+ },
42
+ },
43
+ };
44
+ exports.default = meta;
45
+ //# sourceMappingURL=launchpad-internal.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad-internal.stories.js","sourceRoot":"","sources":["../../src/launchpad-internal.stories.tsx"],"names":[],"mappings":";;;;;AAAA,uDAAyE;AACzE,6BAA2B;AAC3B,sFAAqD;AACrD,6CAAmD;AAGnD,MAAM,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;AAEtC,MAAM,IAAI,GAAqC;IAC9C,KAAK,EAAE,6BAA6B;IACpC,SAAS,EAAE,4BAAiB;IAC5B,UAAU,EAAE;QACX,CAAE,KAAK,EAAG,EAAE,CAAC,CACZ,uBAAC,iCAAmB,IAAC,MAAM,EAAG,WAAW,YACxC,uBAAC,KAAK,KAAG,GACY,CACtB;KACD;IACD,UAAU,EAAE;QACX,GAAG,EAAE;YACJ,QAAQ,EAAE,CAAE,UAAI,CAAC,GAAG,CAAE,6BAA6B,EAAE,4BAAiB,CAAE,CAAE;SAC1E;KACD;IACD,IAAI,EAAE;QACL,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,uBAAuB;QACjC,gBAAgB,EAAE,YAAY;QAC9B,aAAa,EAAE,MAAM;KACrB;IACD,QAAQ,EAAE;QACT,aAAa,EAAE;YACd,YAAY,EAAE,MAAM;YACpB,OAAO,EAAE,CAAE,MAAM,EAAE,aAAa,CAAE;YAClC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACD;CACD,CAAC;AAGW,QAAA,OAAO,GAAU,EAAE,CAAC;AACpB,QAAA,OAAO,GAAU;IAC7B,UAAU,EAAE;QACX,GAAG,EAAE;YACJ,KAAK,EAAE,IAAI;SACX;KACD;CACD,CAAC;AAEF,kBAAe,IAAI,CAAC"}
@@ -1,19 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SITE_STORE = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const calypso_analytics_1 = require("@automattic/calypso-analytics");
5
7
  const data_stores_1 = require("@automattic/data-stores");
8
+ const data_1 = require("@wordpress/data");
6
9
  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, {})) }));
10
+ const action_components_1 = require("./action-components");
11
+ const launchpad_internal_1 = tslib_1.__importDefault(require("./launchpad-internal"));
12
+ const setup_actions_1 = require("./setup-actions");
13
+ exports.SITE_STORE = data_stores_1.Site.register({ client_id: '', client_secret: '' });
14
+ const Launchpad = ({ siteSlug, checklistSlug, launchpadContext, onSiteLaunched, onTaskClick, onPostFilterTasks, }) => {
15
+ const { data: { checklist }, } = (0, data_stores_1.useSortedLaunchpadTasks)(siteSlug, checklistSlug, launchpadContext);
16
+ const { setActiveChecklist } = (0, data_1.useDispatch)(data_stores_1.LaunchpadNavigator.store);
17
+ const tasklistCompleted = checklist?.every((task) => task.completed) || false;
18
+ const tracksData = { recordTracksEvent: calypso_analytics_1.recordTracksEvent, checklistSlug, tasklistCompleted, launchpadContext };
19
+ const site = (0, data_1.useSelect)((select) => {
20
+ return siteSlug ? select(exports.SITE_STORE).getSite(siteSlug) : null;
21
+ }, [siteSlug]);
22
+ const [shareSiteModalIsOpen, setShareSiteModalIsOpen] = (0, react_1.useState)(false);
23
+ const taskFilter = (tasks) => {
24
+ const baseTasks = (0, setup_actions_1.setUpActionsForTasks)({
25
+ tasks,
26
+ siteSlug,
27
+ tracksData,
28
+ extraActions: {
29
+ setActiveChecklist,
30
+ setShareSiteModalIsOpen,
31
+ },
32
+ eventHandlers: {
33
+ onSiteLaunched,
34
+ onTaskClick,
35
+ },
36
+ });
37
+ if (onPostFilterTasks) {
38
+ return onPostFilterTasks(baseTasks);
39
+ }
40
+ return baseTasks;
41
+ };
42
+ const launchpadOptions = {
43
+ onSuccess: data_stores_1.sortLaunchpadTasksByCompletionStatus,
44
+ };
45
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [shareSiteModalIsOpen && site && ((0, jsx_runtime_1.jsx)(action_components_1.ShareSiteModal, { setModalIsOpen: setShareSiteModalIsOpen, site: site })), (0, jsx_runtime_1.jsx)(launchpad_internal_1.default, { site: site, siteSlug: siteSlug, checklistSlug: checklistSlug, taskFilter: taskFilter, useLaunchpadOptions: launchpadOptions, launchpadContext: launchpadContext })] }));
17
46
  };
18
47
  exports.default = Launchpad;
19
48
  //# sourceMappingURL=launchpad.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"launchpad.js","sourceRoot":"","sources":["../../src/launchpad.tsx"],"names":[],"mappings":";;;;;AAAA,qEAAkE;AAClE,yDAMiC;AACjC,0CAAyD;AACzD,iCAAiC;AACjC,2DAAqD;AACrD,sFAAqD;AACrD,mDAAuD;AAG1C,QAAA,UAAU,GAAG,kBAAI,CAAC,QAAQ,CAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAE,CAAC;AAWhF,MAAM,SAAS,GAAG,CAAE,EACnB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,iBAAiB,GACD,EAAG,EAAE;IACrB,MAAM,EACL,IAAI,EAAE,EAAE,SAAS,EAAE,GACnB,GAAG,IAAA,qCAAuB,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,CAAE,CAAC;IACzE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAA,kBAAW,EAAE,gCAAkB,CAAC,KAAK,CAAE,CAAC;IAEvE,MAAM,iBAAiB,GAAG,SAAS,EAAE,KAAK,CAAE,CAAE,IAAU,EAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,KAAK,CAAC;IAExF,MAAM,UAAU,GAAG,EAAE,iBAAiB,EAAjB,qCAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAE7F,MAAM,IAAI,GAAG,IAAA,gBAAS,EACrB,CAAE,MAAM,EAAG,EAAE;QACZ,OAAO,QAAQ,CAAC,CAAC,CAAG,MAAM,CAAE,kBAAU,CAAkB,CAAC,OAAO,CAAE,QAAQ,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,CAAC,EACD,CAAE,QAAQ,CAAE,CACZ,CAAC;IACF,MAAM,CAAE,oBAAoB,EAAE,uBAAuB,CAAE,GAAG,IAAA,gBAAQ,EAAE,KAAK,CAAE,CAAC;IAE5E,MAAM,UAAU,GAAG,CAAE,KAAa,EAAG,EAAE;QACtC,MAAM,SAAS,GAAG,IAAA,oCAAoB,EAAE;YACvC,KAAK;YACL,QAAQ;YACR,UAAU;YACV,YAAY,EAAE;gBACb,kBAAkB;gBAClB,uBAAuB;aACvB;YACD,aAAa,EAAE;gBACd,cAAc;gBACd,WAAW;aACX;SACD,CAAE,CAAC;QAEJ,IAAK,iBAAiB,EAAG,CAAC;YACzB,OAAO,iBAAiB,CAAE,SAAS,CAAE,CAAC;QACvC,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACxB,SAAS,EAAE,kDAAoC;KAC/C,CAAC;IAEF,OAAO,CACN,6DACG,oBAAoB,IAAI,IAAI,IAAI,CACjC,uBAAC,kCAAc,IAAC,cAAc,EAAG,uBAAuB,EAAG,IAAI,EAAG,IAAI,GAAK,CAC3E,EACD,uBAAC,4BAAiB,IACjB,IAAI,EAAG,IAAI,EACX,QAAQ,EAAG,QAAQ,EACnB,aAAa,EAAG,aAAa,EAC7B,UAAU,EAAG,UAAU,EACvB,mBAAmB,EAAG,gBAAgB,EACtC,gBAAgB,EAAG,gBAAgB,GAClC,IACA,CACH,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ site_intent: 'free',
5
+ launchpad_screen: 'full',
6
+ checklist_statuses: {
7
+ setup_free: true,
8
+ setup_general: true,
9
+ design_completed: true,
10
+ site_theme_selected: true,
11
+ },
12
+ checklist: [
13
+ {
14
+ id: 'design_selected',
15
+ title: 'Select a design',
16
+ completed: true,
17
+ disabled: false,
18
+ subtitle: '',
19
+ badge_text: '',
20
+ isLaunchTask: false,
21
+ calypso_path: '/setup/update-design/designSetup?siteSlug=site62798.wordpress.com',
22
+ },
23
+ {
24
+ id: 'setup_link_in_bio',
25
+ title: 'Personalize Link in Bio',
26
+ completed: true,
27
+ disabled: false,
28
+ subtitle: '',
29
+ badge_text: '',
30
+ isLaunchTask: false,
31
+ calypso_path: '/setup/link-in-bio-post-setup/linkInBioPostSetup?siteSlug=site62798.wordpress.com',
32
+ },
33
+ {
34
+ id: 'plan_selected',
35
+ title: 'Choose a plan',
36
+ completed: true,
37
+ disabled: false,
38
+ subtitle: '',
39
+ badge_text: '',
40
+ isLaunchTask: false,
41
+ calypso_path: '/plans/site62798.wordpress.com',
42
+ },
43
+ {
44
+ id: 'links_added',
45
+ title: 'Add links',
46
+ completed: false,
47
+ disabled: false,
48
+ subtitle: '',
49
+ badge_text: '',
50
+ isLaunchTask: false,
51
+ calypso_path: '/site-editor/site62798.wordpress.com',
52
+ },
53
+ {
54
+ id: 'link_in_bio_launched',
55
+ title: 'Launch your site',
56
+ completed: false,
57
+ disabled: true,
58
+ subtitle: '',
59
+ badge_text: '',
60
+ isLaunchTask: false,
61
+ },
62
+ ],
63
+ is_enabled: true,
64
+ is_dismissed: false,
65
+ is_dismissible: false,
66
+ title: 'Next steps for your site',
67
+ };
68
+ //# sourceMappingURL=link-in-bio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-in-bio.js","sourceRoot":"","sources":["../../../src/msw/link-in-bio.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACd,WAAW,EAAE,MAAM;IACnB,gBAAgB,EAAE,MAAM;IACxB,kBAAkB,EAAE;QACnB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;KACzB;IACD,SAAS,EAAE;QACV;YACC,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,mEAAmE;SACjF;QACD;YACC,EAAE,EAAE,mBAAmB;YACvB,KAAK,EAAE,yBAAyB;YAChC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EACX,mFAAmF;SACpF;QACD;YACC,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,gCAAgC;SAC9C;QACD;YACC,EAAE,EAAE,aAAa;YACjB,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,sCAAsC;SACpD;QACD;YACC,EAAE,EAAE,sBAAsB;YAC1B,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;SACnB;KACD;IACD,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,0BAA0B;CACjC,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.launchpadResolver = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const msw_1 = require("msw");
6
+ const link_in_bio_1 = tslib_1.__importDefault(require("./link-in-bio"));
7
+ const setup_free_1 = tslib_1.__importDefault(require("./setup-free"));
8
+ const launchpadResolver = async ({ request }) => {
9
+ const searchParams = new URL(request.url).searchParams;
10
+ const checklistSlug = searchParams.get('checklist_slug');
11
+ // Random delay to make the UI feel more realistic
12
+ await (0, msw_1.delay)();
13
+ if (checklistSlug === 'link-in-bio') {
14
+ return msw_1.HttpResponse.json(link_in_bio_1.default);
15
+ }
16
+ return msw_1.HttpResponse.json(setup_free_1.default);
17
+ };
18
+ exports.launchpadResolver = launchpadResolver;
19
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/msw/resolver.ts"],"names":[],"mappings":";;;;AAAA,6BAAgE;AAChE,wEAAsC;AACtC,sEAAgC;AAEzB,MAAM,iBAAiB,GAAyB,KAAK,EAAG,EAAE,OAAO,EAAE,EAAG,EAAE;IAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAE,OAAO,CAAC,GAAG,CAAE,CAAC,YAAY,CAAC;IACzD,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAE,gBAAgB,CAAE,CAAC;IAE3D,kDAAkD;IAElD,MAAM,IAAA,WAAK,GAAE,CAAC;IAEd,IAAK,aAAa,KAAK,aAAa,EAAG,CAAC;QACvC,OAAO,kBAAY,CAAC,IAAI,CAAE,qBAAS,CAAE,CAAC;IACvC,CAAC;IAED,OAAO,kBAAY,CAAC,IAAI,CAAE,oBAAI,CAAE,CAAC;AAClC,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B"}