@automattic/launchpad 1.0.0 → 1.1.0-rc.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 +43 -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 +31 -15
  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 +41 -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 +30 -16
  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 +32 -17
  116. package/src/action-components/index.ts +1 -0
  117. package/src/action-components/share-site-modal/index.tsx +104 -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 +66 -27
  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
@@ -0,0 +1,2 @@
1
+ export { default as ShareSiteModal } from './share-site-modal';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/action-components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SiteDetails } from '@automattic/data-stores';
2
+ import './style.scss';
3
+ interface ShareSiteModalProps {
4
+ setModalIsOpen: (isOpen: boolean) => void;
5
+ site: SiteDetails | null;
6
+ }
7
+ declare const ShareSiteModal: ({ setModalIsOpen, site }: ShareSiteModalProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default ShareSiteModal;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/action-components/share-site-modal/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,cAAc,CAAC;AAEtB,UAAU,mBAAmB;IAC5B,cAAc,EAAE,CAAE,MAAM,EAAE,OAAO,KAAM,IAAI,CAAC;IAC5C,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CACzB;AAED,QAAA,MAAM,cAAc,6BAA+B,mBAAmB,4CAqFrE,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/badge/index.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EACF,SAAS,GACT,eAAe,GACf,SAAS,GACT,MAAM,GACN,WAAW,GACX,YAAY,GACZ,aAAa,GACb,OAAO,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAE,UAAU,CAM/C,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/badge/index.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EACF,SAAS,GACT,eAAe,GACf,SAAS,GACT,MAAM,GACN,WAAW,GACX,YAAY,GACZ,aAAa,GACb,OAAO,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAE,UAAU,CAI/C,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1,12 +1,11 @@
1
- import { Task } from '../types';
1
+ import { type FC, type ReactElement, type ComponentProps } from 'react';
2
+ import ChecklistItem from '../checklist-item';
2
3
  import './style.scss';
3
- interface ChecklistProps {
4
- tasks: Task[] | null;
4
+ interface Props {
5
5
  makeLastTaskPrimaryAction?: boolean;
6
+ children?: ReactElement<ComponentProps<typeof ChecklistItem>> | ReactElement<ComponentProps<typeof ChecklistItem>>[];
6
7
  }
7
- declare const Checklist: {
8
- ({ tasks, makeLastTaskPrimaryAction }: ChecklistProps): import("react/jsx-runtime").JSX.Element;
9
- Placeholder(): import("react/jsx-runtime").JSX.Element;
10
- };
8
+ declare const Checklist: FC<Props>;
9
+ export declare const Placeholder: () => import("react/jsx-runtime").JSX.Element;
11
10
  export default Checklist;
12
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checklist/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,cAAc,CAAC;AAEtB,UAAU,cAAc;IACvB,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACrB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,QAAA,MAAM,SAAS;2CAA2C,cAAc;;CAkBvE,CAAC;AAaF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checklist/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,EAAE,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,aAA0D,MAAM,mBAAmB,CAAC;AAC3F,OAAO,cAAc,CAAC;AAEtB,UAAU,KAAK;IACd,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,EACN,YAAY,CAAE,cAAc,CAAE,OAAO,aAAa,CAAE,CAAE,GACtD,YAAY,CAAE,cAAc,CAAE,OAAO,aAAa,CAAE,CAAE,EAAE,CAAC;CAC5D;AAED,QAAA,MAAM,SAAS,EAAE,EAAE,CAAE,KAAK,CAkBzB,CAAC;AAEF,eAAO,MAAM,WAAW,+CASvB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ import Checklist from './';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ declare const meta: Meta<typeof Checklist>;
4
+ type Story = StoryObj<typeof meta>;
5
+ export declare const Default: Story;
6
+ export declare const WithMakeLastTaskPrimaryAction: Story;
7
+ export default meta;
8
+ //# sourceMappingURL=index.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.stories.d.ts","sourceRoot":"","sources":["../../../src/checklist/index.stories.tsx"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,SAAS,CA6BjC,CAAC;AAEF,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,IAAI,CAAE,CAAC;AACrC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,6BAA6B,EAAE,KAI3C,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,11 +1,14 @@
1
- import { Task } from '../types';
1
+ import type { Task, Expandable } from '../types';
2
+ import type { FC, Key } from 'react';
2
3
  import './style.scss';
3
- declare const ChecklistItem: {
4
- ({ task, isPrimaryAction }: {
5
- task: Task;
6
- isPrimaryAction?: boolean | undefined;
7
- }): import("react/jsx-runtime").JSX.Element;
8
- Placeholder(): import("react/jsx-runtime").JSX.Element;
9
- };
4
+ interface Props {
5
+ key?: Key;
6
+ task: Task;
7
+ isPrimaryAction?: boolean;
8
+ expandable?: Expandable;
9
+ onClick?: () => void;
10
+ }
11
+ declare const ChecklistItem: FC<Props>;
12
+ export declare const Placeholder: FC;
10
13
  export default ChecklistItem;
11
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checklist-item/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,cAAc,CAAC;AAEtB,QAAA,MAAM,aAAa;;cAAwC,IAAI;;;;CA0E9D,CAAC;AAYF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checklist-item/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,cAAc,CAAC;AAEtB,UAAU,KAAK;IACd,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,aAAa,EAAE,EAAE,CAAE,KAAK,CAuG7B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAQzB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ import ChecklistItem from './';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ declare const meta: Meta<typeof ChecklistItem>;
4
+ type Story = StoryObj<typeof meta>;
5
+ export declare const Default: Story;
6
+ export declare const Completed: Story;
7
+ export declare const Disabled: Story;
8
+ export declare const WithBadgetText: Story;
9
+ export declare const WithTaskCounter: Story;
10
+ export declare const WithSubtitle: Story;
11
+ export declare const Expanded: Story;
12
+ export declare const ExpandedWithAction: Story;
13
+ export default meta;
14
+ //# sourceMappingURL=index.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.stories.d.ts","sourceRoot":"","sources":["../../../src/checklist-item/index.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,aAAa,CAYrC,CAAC;AAEF,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,IAAI,CAAE,CAAC;AAQrC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAK5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAK7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAYhC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,6 +1,9 @@
1
1
  export { default as Checklist } from './checklist';
2
2
  export { default as ChecklistItem } from './checklist-item';
3
+ export { default as LaunchpadInternal } from './launchpad-internal';
4
+ export { default as LaunchpadContainer } from './launchpad-container';
3
5
  export { default as Launchpad } from './launchpad';
4
6
  export { setUpActionsForTasks } from './setup-actions';
7
+ export * from './action-components';
5
8
  export * from './types';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import './style.scss';
3
+ export interface ContainerProps {
4
+ className?: string;
5
+ headerClassName?: string;
6
+ contentClassName?: string;
7
+ sidebarClassName?: string;
8
+ mainContentClassName?: string;
9
+ header?: React.ReactNode;
10
+ sidebar: React.ReactNode;
11
+ children: React.ReactNode;
12
+ }
13
+ declare const LaunchpadContainer: React.FunctionComponent<ContainerProps>;
14
+ export default LaunchpadContainer;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/launchpad-container/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,cAAc;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAE,cAAc,CA0BhE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type FC } from 'react';
2
+ import type { Task } from './types';
3
+ import type { SiteDetails, UseLaunchpadOptions } from '@automattic/data-stores';
4
+ interface Props {
5
+ site?: SiteDetails | null;
6
+ siteSlug: string | null;
7
+ checklistSlug: string | null;
8
+ makeLastTaskPrimaryAction?: boolean;
9
+ taskFilter?: (tasks: Task[]) => Task[];
10
+ useLaunchpadOptions?: UseLaunchpadOptions;
11
+ launchpadContext: string;
12
+ flow?: string;
13
+ }
14
+ /**
15
+ * Low-level launchpad component that should only be used in exceptional cases.
16
+ * Please use the main Launchpad component whenever possible.
17
+ */
18
+ declare const LaunchpadInternal: FC<Props>;
19
+ export default LaunchpadInternal;
20
+ //# sourceMappingURL=launchpad-internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad-internal.d.ts","sourceRoot":"","sources":["../../src/launchpad-internal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAW,MAAM,OAAO,CAAC;AAIzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEhF,UAAU,KAAK;IACd,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,UAAU,CAAC,EAAE,CAAE,KAAK,EAAE,IAAI,EAAE,KAAM,IAAI,EAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAE,KAAK,CA2DjC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import LaunchpadInternal from './launchpad-internal';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ declare const meta: Meta<typeof LaunchpadInternal>;
4
+ type Story = StoryObj<typeof meta>;
5
+ export declare const Default: Story;
6
+ export declare const Loading: Story;
7
+ export default meta;
8
+ //# sourceMappingURL=launchpad-internal.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad-internal.stories.d.ts","sourceRoot":"","sources":["../../src/launchpad-internal.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,iBAAiB,CA4BzC,CAAC;AAEF,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,IAAI,CAAE,CAAC;AACrC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AACjC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,12 +1,13 @@
1
- import type { Task } from './types';
2
- import type { UseLaunchpadOptions } from '@automattic/data-stores';
3
- export interface LaunchpadProps {
1
+ import type { EventHandlers, Task } from './types';
2
+ export declare const SITE_STORE: "automattic/site";
3
+ type LaunchpadProps = {
4
4
  siteSlug: string | null;
5
- checklistSlug?: string | 0 | null | undefined;
6
- makeLastTaskPrimaryAction?: boolean;
7
- taskFilter?: (tasks: Task[]) => Task[];
8
- useLaunchpadOptions?: UseLaunchpadOptions;
9
- }
10
- declare const Launchpad: ({ siteSlug, checklistSlug, taskFilter, makeLastTaskPrimaryAction, useLaunchpadOptions, }: LaunchpadProps) => import("react/jsx-runtime").JSX.Element;
5
+ checklistSlug: string;
6
+ launchpadContext: string;
7
+ onSiteLaunched?: () => void;
8
+ onTaskClick?: EventHandlers['onTaskClick'];
9
+ onPostFilterTasks?: (tasks: Task[]) => Task[];
10
+ };
11
+ declare const Launchpad: ({ siteSlug, checklistSlug, launchpadContext, onSiteLaunched, onTaskClick, onPostFilterTasks, }: LaunchpadProps) => import("react/jsx-runtime").JSX.Element;
11
12
  export default Launchpad;
12
13
  //# sourceMappingURL=launchpad.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"launchpad.d.ts","sourceRoot":"","sources":["../../src/launchpad.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,UAAU,CAAC,EAAE,CAAE,KAAK,EAAE,IAAI,EAAE,KAAM,IAAI,EAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED,QAAA,MAAM,SAAS,6FAMZ,cAAc,4CAsBhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"launchpad.d.ts","sourceRoot":"","sources":["../../src/launchpad.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,UAAU,mBAAwD,CAAC;AAEhF,KAAK,cAAc,GAAG;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,aAAa,CAAE,aAAa,CAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAE,KAAK,EAAE,IAAI,EAAE,KAAM,IAAI,EAAE,CAAC;CAChD,CAAC;AAEF,QAAA,MAAM,SAAS,mGAOZ,cAAc,4CA2DhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,35 @@
1
+ declare const _default: {
2
+ site_intent: string;
3
+ launchpad_screen: string;
4
+ checklist_statuses: {
5
+ setup_free: boolean;
6
+ setup_general: boolean;
7
+ design_completed: boolean;
8
+ site_theme_selected: boolean;
9
+ };
10
+ checklist: ({
11
+ id: string;
12
+ title: string;
13
+ completed: boolean;
14
+ disabled: boolean;
15
+ subtitle: string;
16
+ badge_text: string;
17
+ isLaunchTask: boolean;
18
+ calypso_path: string;
19
+ } | {
20
+ id: string;
21
+ title: string;
22
+ completed: boolean;
23
+ disabled: boolean;
24
+ subtitle: string;
25
+ badge_text: string;
26
+ isLaunchTask: boolean;
27
+ calypso_path?: undefined;
28
+ })[];
29
+ is_enabled: boolean;
30
+ is_dismissed: boolean;
31
+ is_dismissible: boolean;
32
+ title: string;
33
+ };
34
+ export default _default;
35
+ //# sourceMappingURL=link-in-bio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-in-bio.d.ts","sourceRoot":"","sources":["../../../src/msw/link-in-bio.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAiEE"}
@@ -0,0 +1,3 @@
1
+ import { HttpResponseResolver } from 'msw';
2
+ export declare const launchpadResolver: HttpResponseResolver;
3
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/msw/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,oBAAoB,EAAS,MAAM,KAAK,CAAC;AAIhE,eAAO,MAAM,iBAAiB,EAAE,oBAa/B,CAAC"}
@@ -0,0 +1,35 @@
1
+ declare const _default: {
2
+ site_intent: string;
3
+ launchpad_screen: string;
4
+ checklist_statuses: {
5
+ setup_free: boolean;
6
+ setup_general: boolean;
7
+ design_completed: boolean;
8
+ site_theme_selected: boolean;
9
+ };
10
+ checklist: ({
11
+ id: string;
12
+ title: string;
13
+ completed: boolean;
14
+ disabled: boolean;
15
+ subtitle: string;
16
+ badge_text: string;
17
+ isLaunchTask: boolean;
18
+ calypso_path: string;
19
+ } | {
20
+ id: string;
21
+ title: string;
22
+ completed: boolean;
23
+ disabled: boolean;
24
+ subtitle: string;
25
+ badge_text: string;
26
+ isLaunchTask: boolean;
27
+ calypso_path?: undefined;
28
+ })[];
29
+ is_enabled: boolean;
30
+ is_dismissed: boolean;
31
+ is_dismissible: boolean;
32
+ title: string;
33
+ };
34
+ export default _default;
35
+ //# sourceMappingURL=setup-free.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-free.d.ts","sourceRoot":"","sources":["../../../src/msw/setup-free.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAoFE"}
@@ -1,3 +1,3 @@
1
1
  import type { LaunchpadTaskActionsProps, Task } from './types';
2
- export declare const setUpActionsForTasks: ({ siteSlug, tasks, tracksData, extraActions, uiContext, }: LaunchpadTaskActionsProps) => Task[];
2
+ export declare const setUpActionsForTasks: ({ siteSlug, tasks, tracksData, extraActions, eventHandlers, uiContext, }: LaunchpadTaskActionsProps) => Task[];
3
3
  //# sourceMappingURL=setup-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-actions.d.ts","sourceRoot":"","sources":["../../src/setup-actions.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAW/D,eAAO,MAAM,oBAAoB,8DAM9B,yBAAyB,KAAI,IAAI,EAiJnC,CAAC"}
1
+ {"version":3,"file":"setup-actions.d.ts","sourceRoot":"","sources":["../../src/setup-actions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAe/D,eAAO,MAAM,oBAAoB,6EAO9B,yBAAyB,KAAI,IAAI,EAwJnC,CAAC"}
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { ReactNode } from 'react';
2
2
  export interface TaskExtraData {
3
3
  about_page_id?: number;
4
4
  }
@@ -6,9 +6,9 @@ export interface Task {
6
6
  id: string;
7
7
  completed: boolean;
8
8
  disabled: boolean;
9
- title?: string;
9
+ title?: ReactNode | string;
10
10
  subtitle?: string | React.ReactNode | null;
11
- badge_text?: string;
11
+ badge_text?: ReactNode | string;
12
12
  actionDispatch?: () => void;
13
13
  isLaunchTask?: boolean;
14
14
  extra_data?: TaskExtraData;
@@ -16,6 +16,17 @@ export interface Task {
16
16
  target_repetitions?: number;
17
17
  repetition_count?: number;
18
18
  order?: number;
19
+ useCalypsoPath?: boolean;
20
+ actionUrl?: string;
21
+ }
22
+ export interface ExpandableAction {
23
+ label: string;
24
+ onClick: () => void;
25
+ }
26
+ export interface Expandable {
27
+ isOpen: boolean;
28
+ content: JSX.Element;
29
+ action?: ExpandableAction;
19
30
  }
20
31
  export type LaunchpadChecklist = Task[];
21
32
  export type LaunchpadTracksData = {
@@ -44,21 +55,20 @@ export interface LaunchpadStatuses {
44
55
  plan_completed?: boolean;
45
56
  domain_upsell_deferred?: boolean;
46
57
  }
47
- export interface LaunchpadResponse {
48
- site_intent: string;
49
- launchpad_screen: boolean | string;
50
- checklist_statuses: LaunchpadStatuses[];
51
- }
52
58
  export interface PermittedActions {
53
59
  setShareSiteModalIsOpen?: (isOpen: boolean) => void;
54
- siteLaunched?: () => void;
55
60
  setActiveChecklist: (siteSlug: string, activeChecklistSlug: string) => void;
56
61
  }
62
+ export type EventHandlers = {
63
+ onSiteLaunched?: () => void;
64
+ onTaskClick?: (task: Task) => void;
65
+ };
57
66
  export interface LaunchpadTaskActionsProps {
58
67
  siteSlug: string | null;
59
68
  tasks: Task[];
60
69
  tracksData: LaunchpadTracksData;
61
70
  extraActions: PermittedActions;
62
71
  uiContext?: 'calypso';
72
+ eventHandlers?: EventHandlers;
63
73
  }
64
74
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,MAAM,WAAW,aAAa;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,IAAI;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,EAAE,CAAC;AAExC,MAAM,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,CAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAE,MAAM,EAAE,OAAO,CAAE,KAAM,IAAI,CAAC;IACpF,iBAAiB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACrC,CAAE,MAAM,EAAE,MAAM,GAAI,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAChC,uBAAuB,CAAC,EAAE,CAAE,MAAM,EAAE,OAAO,KAAM,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,kBAAkB,EAAE,CAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,KAAM,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,yBAAyB;IACzC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,mBAAmB,CAAC;IAChC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Task } from '../types';
2
+ import type { SiteDetails } from '@automattic/data-stores';
3
+ interface Params {
4
+ tasks: Task[];
5
+ checklistSlug: string | null;
6
+ context: string;
7
+ site: SiteDetails | null | undefined;
8
+ flow?: string;
9
+ }
10
+ export declare const useTracking: (params: Params) => {
11
+ trackTaskClick: (task: Task) => void;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/use-tracking/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,UAAU,MAAM;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAWD,eAAO,MAAM,WAAW,WAAa,MAAM;2BAiDX,IAAI;CAenC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@automattic/launchpad",
3
- "version": "1.0.0",
4
- "description": "Launchpad components",
3
+ "version": "1.1.0-rc.1",
4
+ "description": "Launchpad components.",
5
5
  "homepage": "https://github.com/Automattic/wp-calypso",
6
6
  "license": "GPL-2.0-or-later",
7
7
  "author": "Automattic Inc.",
@@ -26,34 +26,49 @@
26
26
  "clean": "tsc --build ./tsconfig.json ./tsconfig-cjs.json --clean && rm -rf dist",
27
27
  "build": "tsc --build ./tsconfig.json ./tsconfig-cjs.json && copy-assets",
28
28
  "prepack": "yarn run clean && yarn run build",
29
- "watch": "tsc --build ./tsconfig.json --watch"
29
+ "watch": "tsc --build ./tsconfig.json --watch",
30
+ "storybook": "sb dev"
30
31
  },
31
32
  "dependencies": {
32
- "@automattic/components": "^2.0.1",
33
- "@automattic/data-stores": "^3.0.1",
34
- "@automattic/i18n-utils": "^1.2.0",
35
- "classnames": "^2.3.1",
33
+ "@automattic/calypso-analytics": "^1.1.2",
34
+ "@automattic/components": "^2.1.1",
35
+ "@automattic/data-stores": "^3.1.0-rc.1",
36
+ "@automattic/i18n-utils": "^1.2.3",
37
+ "@automattic/typography": "^1.0.0",
38
+ "@automattic/viewport": "^1.1.0",
39
+ "@tanstack/react-query": "^5.15.5",
40
+ "@wordpress/base-styles": "^5.8.0",
41
+ "@wordpress/components": "^28.8.0",
42
+ "@wordpress/icons": "^10.8.0",
43
+ "@wordpress/url": "^4.8.0",
44
+ "clsx": "^2.1.1",
36
45
  "tslib": "^2.3.0",
37
46
  "utility-types": "^3.10.0",
38
- "wpcom-proxy-request": "^7.0.4"
47
+ "wpcom-proxy-request": "^7.0.5"
39
48
  },
40
49
  "devDependencies": {
41
50
  "@automattic/calypso-build": "^10.0.0",
51
+ "@automattic/calypso-storybook": "^1.0.0",
42
52
  "@automattic/calypso-typescript-config": "^1.0.0",
53
+ "@storybook/addon-a11y": "^7.6.19",
54
+ "@storybook/cli": "^7.6.19",
55
+ "@storybook/react": "^7.6.19",
56
+ "msw": "^2.1.7",
57
+ "msw-storybook-addon": "2.0.2",
43
58
  "postcss": "^8.4.5",
44
- "react": "^18.2.0",
45
- "react-dom": "^18.2.0",
59
+ "react": "^18.3.1",
60
+ "react-dom": "^18.3.1",
46
61
  "redux": "^4.2.1",
47
- "typescript": "^5.2.2",
48
- "webpack": "^5.68.0"
62
+ "typescript": "^5.3.3",
63
+ "webpack": "^5.94.0"
49
64
  },
50
65
  "peerDependencies": {
51
- "@wordpress/data": "^9.11.0",
52
- "@wordpress/element": "^5.18.0",
53
- "@wordpress/i18n": "^4.41.0",
66
+ "@wordpress/data": "^10.8.0",
67
+ "@wordpress/element": "^6.8.0",
68
+ "@wordpress/i18n": "^5.8.0",
54
69
  "debug": "^4.3.3",
55
- "react": "^18.2.0",
56
- "react-dom": "^18.2.0",
70
+ "react": "^18.3.1",
71
+ "react-dom": "^18.3.1",
57
72
  "redux": "^4.2.1"
58
73
  }
59
74
  }
@@ -0,0 +1 @@
1
+ export { default as ShareSiteModal } from './share-site-modal';
@@ -0,0 +1,104 @@
1
+ import { Popover } from '@automattic/components';
2
+ import { updateLaunchpadSettings } from '@automattic/data-stores';
3
+ import { useQueryClient } from '@tanstack/react-query';
4
+ import { Button, Modal } from '@wordpress/components';
5
+ import { __ } from '@wordpress/i18n';
6
+ import { Icon, link } from '@wordpress/icons';
7
+ import { useState, useRef } from 'react';
8
+ import type { SiteDetails } from '@automattic/data-stores';
9
+
10
+ import './style.scss';
11
+
12
+ interface ShareSiteModalProps {
13
+ setModalIsOpen: ( isOpen: boolean ) => void;
14
+ site: SiteDetails | null;
15
+ }
16
+
17
+ const ShareSiteModal = ( { setModalIsOpen, site }: ShareSiteModalProps ) => {
18
+ const queryClient = useQueryClient();
19
+ const getSiteSlug = ( site: SiteDetails | null ): string | null => {
20
+ if ( ! site ) {
21
+ return null;
22
+ }
23
+
24
+ if ( site.slug ) {
25
+ return site.slug;
26
+ }
27
+
28
+ if ( site.URL ) {
29
+ return new URL( site.URL ).host;
30
+ }
31
+ return null;
32
+ };
33
+ const siteSlug = getSiteSlug( site );
34
+
35
+ const [ clipboardCopied, setClipboardCopied ] = useState( false );
36
+ const clipboardTextEl = useRef( null );
37
+
38
+ const copyHandler = async () => {
39
+ navigator.clipboard.writeText( `https://${ siteSlug }` );
40
+ if ( siteSlug ) {
41
+ await updateLaunchpadSettings( siteSlug, {
42
+ checklist_statuses: { share_site: true },
43
+ } );
44
+ }
45
+ queryClient.invalidateQueries( { queryKey: [ 'launchpad' ] } );
46
+ setClipboardCopied( true );
47
+ setTimeout( () => setClipboardCopied( false ), 3000 );
48
+ };
49
+
50
+ return (
51
+ <>
52
+ <Modal
53
+ onRequestClose={ () => setModalIsOpen( false ) }
54
+ className="share-site-modal__modal"
55
+ title=""
56
+ >
57
+ <div className="share-site-modal__modal-content">
58
+ <div className="share-site-modal__modal-text">
59
+ <h1 className="share-site-modal__modal-heading">
60
+ { __( 'Share your site', 'launchpad' ) }
61
+ </h1>
62
+ <p className="share-site-modal__modal-body">
63
+ { __(
64
+ 'Now you can head over to your site and share it with the world.',
65
+ 'launchpad'
66
+ ) }
67
+ </p>
68
+ </div>
69
+ <div className="share-site-modal__modal-actions">
70
+ <div className="share-site-modal__modal-site">
71
+ <div className="share-site-modal__modal-domain">
72
+ <p className="share-site-modal__modal-domain-text" ref={ clipboardTextEl }>
73
+ { siteSlug }
74
+ </p>
75
+
76
+ <Popover
77
+ className="share-site-modal__popover"
78
+ isVisible={ clipboardCopied }
79
+ context={ clipboardTextEl.current }
80
+ position="top"
81
+ >
82
+ { __( 'Copied to clipboard!', 'launchpad' ) }
83
+ </Popover>
84
+ </div>
85
+
86
+ <Button
87
+ onClick={ copyHandler }
88
+ className="share-site-modal__modal-view-site"
89
+ disabled={ ! siteSlug }
90
+ >
91
+ <Icon icon={ link } size={ 22 } />
92
+ <span className="share-site-modal__modal-view-site-text">
93
+ { __( 'Copy', 'launchpad' ) }
94
+ </span>
95
+ </Button>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </Modal>
100
+ </>
101
+ );
102
+ };
103
+
104
+ export default ShareSiteModal;