@shipfox/client-onboarding 24.0.0 → 25.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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-type.log +0 -1
- package/CHANGELOG.md +18 -0
- package/README.md +26 -7
- package/dist/components/setup-checklist-body.d.ts +3 -0
- package/dist/components/setup-checklist-body.d.ts.map +1 -0
- package/dist/components/setup-checklist-body.js +25 -0
- package/dist/components/setup-checklist-body.js.map +1 -0
- package/dist/components/setup-checklist-completion.d.ts +6 -0
- package/dist/components/setup-checklist-completion.d.ts.map +1 -0
- package/dist/components/setup-checklist-completion.js +156 -0
- package/dist/components/setup-checklist-completion.js.map +1 -0
- package/dist/components/setup-checklist-confetti.d.ts +13 -0
- package/dist/components/setup-checklist-confetti.d.ts.map +1 -0
- package/dist/components/setup-checklist-confetti.js +24 -0
- package/dist/components/setup-checklist-confetti.js.map +1 -0
- package/dist/components/setup-checklist-host-primitives.d.ts +11 -0
- package/dist/components/setup-checklist-host-primitives.d.ts.map +1 -0
- package/dist/components/setup-checklist-host-primitives.js +71 -0
- package/dist/components/setup-checklist-host-primitives.js.map +1 -0
- package/dist/components/setup-checklist-row.d.ts +7 -0
- package/dist/components/setup-checklist-row.d.ts.map +1 -0
- package/dist/components/setup-checklist-row.js +177 -0
- package/dist/components/setup-checklist-row.js.map +1 -0
- package/dist/components/setup-checklist-types.d.ts +19 -0
- package/dist/components/setup-checklist-types.d.ts.map +1 -0
- package/dist/components/setup-checklist-types.js +3 -0
- package/dist/components/setup-checklist-types.js.map +1 -0
- package/dist/components/setup-checklist.d.ts +5 -0
- package/dist/components/setup-checklist.d.ts.map +1 -0
- package/dist/components/setup-checklist.js +5 -0
- package/dist/components/setup-checklist.js.map +1 -0
- package/dist/components/setup-checklist.stories.d.ts +19 -0
- package/dist/components/setup-checklist.stories.d.ts.map +1 -0
- package/dist/components/setup-checklist.stories.js +305 -0
- package/dist/components/setup-checklist.stories.js.map +1 -0
- package/dist/components/workspace-setup-checklist.d.ts +3 -0
- package/dist/components/workspace-setup-checklist.d.ts.map +1 -0
- package/dist/components/workspace-setup-checklist.js +80 -0
- package/dist/components/workspace-setup-checklist.js.map +1 -0
- package/dist/components/workspace-setup-indicator.d.ts +3 -0
- package/dist/components/workspace-setup-indicator.d.ts.map +1 -0
- package/dist/components/workspace-setup-indicator.js +133 -0
- package/dist/components/workspace-setup-indicator.js.map +1 -0
- package/dist/core/setup-checklist.d.ts +2 -0
- package/dist/core/setup-checklist.d.ts.map +1 -1
- package/dist/core/setup-checklist.js +11 -6
- package/dist/core/setup-checklist.js.map +1 -1
- package/dist/feature.d.ts +6 -0
- package/dist/feature.d.ts.map +1 -0
- package/dist/feature.js +19 -0
- package/dist/feature.js.map +1 -0
- package/dist/hooks/api/setup-checklist.d.ts +13 -0
- package/dist/hooks/api/setup-checklist.d.ts.map +1 -0
- package/dist/hooks/api/setup-checklist.js +103 -0
- package/dist/hooks/api/setup-checklist.js.map +1 -0
- package/dist/hooks/use-checklist-analytics.d.ts +6 -0
- package/dist/hooks/use-checklist-analytics.d.ts.map +1 -0
- package/dist/hooks/use-checklist-analytics.js +51 -0
- package/dist/hooks/use-checklist-analytics.js.map +1 -0
- package/dist/hooks/use-checklist-dismissal.d.ts +5 -0
- package/dist/hooks/use-checklist-dismissal.d.ts.map +1 -0
- package/dist/hooks/use-checklist-dismissal.js +31 -0
- package/dist/hooks/use-checklist-dismissal.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +12 -5
- package/src/components/setup-checklist-body.tsx +35 -0
- package/src/components/setup-checklist-completion.test.tsx +124 -0
- package/src/components/setup-checklist-completion.tsx +165 -0
- package/src/components/setup-checklist-confetti.test.ts +19 -0
- package/src/components/setup-checklist-confetti.ts +39 -0
- package/src/components/setup-checklist-host-primitives.tsx +65 -0
- package/src/components/setup-checklist-row.tsx +189 -0
- package/src/components/setup-checklist-types.ts +21 -0
- package/src/components/setup-checklist.stories.tsx +281 -0
- package/src/components/setup-checklist.test.tsx +564 -0
- package/src/components/setup-checklist.tsx +8 -0
- package/src/components/workspace-setup-checklist.tsx +91 -0
- package/src/components/workspace-setup-indicator.tsx +126 -0
- package/src/core/setup-checklist.test.ts +2 -2
- package/src/core/setup-checklist.ts +19 -10
- package/src/feature.ts +16 -0
- package/src/hooks/api/setup-checklist.ts +144 -0
- package/src/hooks/use-checklist-analytics.ts +60 -0
- package/src/hooks/use-checklist-dismissal.ts +30 -0
- package/src/index.ts +8 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/vitest.config.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-checklist-analytics.ts"],"sourcesContent":["import {useClientAnalytics} from '@shipfox/client-shell/runtime';\nimport {useEffect, useRef, useState} from 'react';\nimport type {ChecklistQueryState} from '#hooks/api/setup-checklist.js';\n\ntype ChecklistHost = 'panel' | 'popover';\n\nexport function useCompletionTransition(\n queryState: ChecklistQueryState,\n host: ChecklistHost,\n onCompleted?: (completed: boolean) => void,\n) {\n const analytics = useClientAnalytics();\n const observedIncomplete = useRef(false);\n const completionHandled = useRef(false);\n const [showCompletion, setShowCompletion] = useState(false);\n\n useEffect(() => {\n if (\n queryState.baseSettled &&\n !queryState.checklist.complete &&\n queryState.checklist.openCount > 0\n ) {\n observedIncomplete.current = true;\n }\n\n if (!queryState.completionReady) return;\n\n if (!queryState.checklist.complete) {\n setShowCompletion(false);\n return;\n }\n\n if (!observedIncomplete.current || completionHandled.current) return;\n completionHandled.current = true;\n setShowCompletion(true);\n onCompleted?.(true);\n analytics.capture('onboarding_checklist_completed', {host});\n }, [\n analytics,\n host,\n onCompleted,\n queryState.baseSettled,\n queryState.checklist.complete,\n queryState.checklist.openCount,\n queryState.completionReady,\n ]);\n\n return showCompletion;\n}\n\nexport function useShownAnalytics(host: ChecklistHost, visible: boolean) {\n const analytics = useClientAnalytics();\n const shown = useRef(false);\n\n useEffect(() => {\n if (!visible || shown.current) return;\n shown.current = true;\n analytics.capture('onboarding_checklist_shown', {host});\n }, [analytics, host, visible]);\n}\n"],"names":["useClientAnalytics","useEffect","useRef","useState","useCompletionTransition","queryState","host","onCompleted","analytics","observedIncomplete","completionHandled","showCompletion","setShowCompletion","baseSettled","checklist","complete","openCount","current","completionReady","capture","useShownAnalytics","visible","shown"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAO,QAAQ;AAKlD,OAAO,SAASC,wBACdC,UAA+B,EAC/BC,IAAmB,EACnBC,WAA0C;IAE1C,MAAMC,YAAYR;IAClB,MAAMS,qBAAqBP,OAAO;IAClC,MAAMQ,oBAAoBR,OAAO;IACjC,MAAM,CAACS,gBAAgBC,kBAAkB,GAAGT,SAAS;IAErDF,UAAU;QACR,IACEI,WAAWQ,WAAW,IACtB,CAACR,WAAWS,SAAS,CAACC,QAAQ,IAC9BV,WAAWS,SAAS,CAACE,SAAS,GAAG,GACjC;YACAP,mBAAmBQ,OAAO,GAAG;QAC/B;QAEA,IAAI,CAACZ,WAAWa,eAAe,EAAE;QAEjC,IAAI,CAACb,WAAWS,SAAS,CAACC,QAAQ,EAAE;YAClCH,kBAAkB;YAClB;QACF;QAEA,IAAI,CAACH,mBAAmBQ,OAAO,IAAIP,kBAAkBO,OAAO,EAAE;QAC9DP,kBAAkBO,OAAO,GAAG;QAC5BL,kBAAkB;QAClBL,cAAc;QACdC,UAAUW,OAAO,CAAC,kCAAkC;YAACb;QAAI;IAC3D,GAAG;QACDE;QACAF;QACAC;QACAF,WAAWQ,WAAW;QACtBR,WAAWS,SAAS,CAACC,QAAQ;QAC7BV,WAAWS,SAAS,CAACE,SAAS;QAC9BX,WAAWa,eAAe;KAC3B;IAED,OAAOP;AACT;AAEA,OAAO,SAASS,kBAAkBd,IAAmB,EAAEe,OAAgB;IACrE,MAAMb,YAAYR;IAClB,MAAMsB,QAAQpB,OAAO;IAErBD,UAAU;QACR,IAAI,CAACoB,WAAWC,MAAML,OAAO,EAAE;QAC/BK,MAAML,OAAO,GAAG;QAChBT,UAAUW,OAAO,CAAC,8BAA8B;YAACb;QAAI;IACvD,GAAG;QAACE;QAAWF;QAAMe;KAAQ;AAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-checklist-dismissal.d.ts","sourceRoot":"","sources":["../../src/hooks/use-checklist-dismissal.ts"],"names":[],"mappings":"AAOA,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM;;;EAsBxD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { dismissWorkspaceSetupChecklist, isWorkspaceSetupChecklistDismissed, WORKSPACE_SETUP_CHECKLIST_DISMISSAL_EVENT } from '@shipfox/client-shell/runtime';
|
|
2
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
3
|
+
export function useChecklistDismissal(workspaceId) {
|
|
4
|
+
const [dismissed, setDismissed] = useState(()=>isWorkspaceSetupChecklistDismissed(workspaceId));
|
|
5
|
+
useEffect(()=>{
|
|
6
|
+
const refresh = ()=>setDismissed(isWorkspaceSetupChecklistDismissed(workspaceId));
|
|
7
|
+
refresh();
|
|
8
|
+
window.addEventListener('storage', refresh);
|
|
9
|
+
window.addEventListener('focus', refresh);
|
|
10
|
+
window.addEventListener(WORKSPACE_SETUP_CHECKLIST_DISMISSAL_EVENT, refresh);
|
|
11
|
+
return ()=>{
|
|
12
|
+
window.removeEventListener('storage', refresh);
|
|
13
|
+
window.removeEventListener('focus', refresh);
|
|
14
|
+
window.removeEventListener(WORKSPACE_SETUP_CHECKLIST_DISMISSAL_EVENT, refresh);
|
|
15
|
+
};
|
|
16
|
+
}, [
|
|
17
|
+
workspaceId
|
|
18
|
+
]);
|
|
19
|
+
const dismiss = useCallback(()=>{
|
|
20
|
+
dismissWorkspaceSetupChecklist(workspaceId);
|
|
21
|
+
setDismissed(true);
|
|
22
|
+
}, [
|
|
23
|
+
workspaceId
|
|
24
|
+
]);
|
|
25
|
+
return {
|
|
26
|
+
dismissed,
|
|
27
|
+
dismiss
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=use-checklist-dismissal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-checklist-dismissal.ts"],"sourcesContent":["import {\n dismissWorkspaceSetupChecklist,\n isWorkspaceSetupChecklistDismissed,\n WORKSPACE_SETUP_CHECKLIST_DISMISSAL_EVENT,\n} from '@shipfox/client-shell/runtime';\nimport {useCallback, useEffect, useState} from 'react';\n\nexport function useChecklistDismissal(workspaceId: string) {\n const [dismissed, setDismissed] = useState(() => isWorkspaceSetupChecklistDismissed(workspaceId));\n\n useEffect(() => {\n const refresh = () => setDismissed(isWorkspaceSetupChecklistDismissed(workspaceId));\n refresh();\n window.addEventListener('storage', refresh);\n window.addEventListener('focus', refresh);\n window.addEventListener(WORKSPACE_SETUP_CHECKLIST_DISMISSAL_EVENT, refresh);\n return () => {\n window.removeEventListener('storage', refresh);\n window.removeEventListener('focus', refresh);\n window.removeEventListener(WORKSPACE_SETUP_CHECKLIST_DISMISSAL_EVENT, refresh);\n };\n }, [workspaceId]);\n\n const dismiss = useCallback(() => {\n dismissWorkspaceSetupChecklist(workspaceId);\n setDismissed(true);\n }, [workspaceId]);\n\n return {dismissed, dismiss};\n}\n"],"names":["dismissWorkspaceSetupChecklist","isWorkspaceSetupChecklistDismissed","WORKSPACE_SETUP_CHECKLIST_DISMISSAL_EVENT","useCallback","useEffect","useState","useChecklistDismissal","workspaceId","dismissed","setDismissed","refresh","window","addEventListener","removeEventListener","dismiss"],"mappings":"AAAA,SACEA,8BAA8B,EAC9BC,kCAAkC,EAClCC,yCAAyC,QACpC,gCAAgC;AACvC,SAAQC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAO,QAAQ;AAEvD,OAAO,SAASC,sBAAsBC,WAAmB;IACvD,MAAM,CAACC,WAAWC,aAAa,GAAGJ,SAAS,IAAMJ,mCAAmCM;IAEpFH,UAAU;QACR,MAAMM,UAAU,IAAMD,aAAaR,mCAAmCM;QACtEG;QACAC,OAAOC,gBAAgB,CAAC,WAAWF;QACnCC,OAAOC,gBAAgB,CAAC,SAASF;QACjCC,OAAOC,gBAAgB,CAACV,2CAA2CQ;QACnE,OAAO;YACLC,OAAOE,mBAAmB,CAAC,WAAWH;YACtCC,OAAOE,mBAAmB,CAAC,SAASH;YACpCC,OAAOE,mBAAmB,CAACX,2CAA2CQ;QACxE;IACF,GAAG;QAACH;KAAY;IAEhB,MAAMO,UAAUX,YAAY;QAC1BH,+BAA+BO;QAC/BE,aAAa;IACf,GAAG;QAACF;KAAY;IAEhB,OAAO;QAACC;QAAWM;IAAO;AAC5B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { deriveIntegrationReadiness, type IntegrationProviderReadiness, type IntegrationReadinessInput, type WorkspaceIntegrationReadiness, } from '#core/integration-readiness.js';
|
|
2
2
|
export { deriveSetupChecklist, type SetupChecklist, type SetupChecklistAction, type SetupChecklistInput, type SetupChecklistItem, type SetupChecklistItemId, type SetupChecklistItemStatus, } from '#core/setup-checklist.js';
|
|
3
|
+
export { SetupChecklistBody, type SetupChecklistBodyProps, type WorkspaceReference, WorkspaceSetupChecklist, type WorkspaceSetupHostProps, WorkspaceSetupIndicator, } from './components/setup-checklist.js';
|
|
3
4
|
export { loadWorkspaceSetupRoute, type WorkspaceSetupRouteOptions, } from './workspace-setup-route.js';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,GACnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,GACnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { deriveIntegrationReadiness } from '#core/integration-readiness.js';
|
|
2
2
|
export { deriveSetupChecklist } from '#core/setup-checklist.js';
|
|
3
|
+
export { SetupChecklistBody, WorkspaceSetupChecklist, WorkspaceSetupIndicator } from './components/setup-checklist.js';
|
|
3
4
|
export { loadWorkspaceSetupRoute } from './workspace-setup-route.js';
|
|
4
5
|
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n deriveIntegrationReadiness,\n type IntegrationProviderReadiness,\n type IntegrationReadinessInput,\n type WorkspaceIntegrationReadiness,\n} from '#core/integration-readiness.js';\nexport {\n deriveSetupChecklist,\n type SetupChecklist,\n type SetupChecklistAction,\n type SetupChecklistInput,\n type SetupChecklistItem,\n type SetupChecklistItemId,\n type SetupChecklistItemStatus,\n} from '#core/setup-checklist.js';\nexport {\n loadWorkspaceSetupRoute,\n type WorkspaceSetupRouteOptions,\n} from './workspace-setup-route.js';\n"],"names":["deriveIntegrationReadiness","deriveSetupChecklist","loadWorkspaceSetupRoute"],"mappings":"AAAA,SACEA,0BAA0B,QAIrB,iCAAiC;AACxC,SACEC,oBAAoB,QAOf,2BAA2B;AAClC,SACEC,uBAAuB,QAElB,6BAA6B"}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n deriveIntegrationReadiness,\n type IntegrationProviderReadiness,\n type IntegrationReadinessInput,\n type WorkspaceIntegrationReadiness,\n} from '#core/integration-readiness.js';\nexport {\n deriveSetupChecklist,\n type SetupChecklist,\n type SetupChecklistAction,\n type SetupChecklistInput,\n type SetupChecklistItem,\n type SetupChecklistItemId,\n type SetupChecklistItemStatus,\n} from '#core/setup-checklist.js';\nexport {\n SetupChecklistBody,\n type SetupChecklistBodyProps,\n type WorkspaceReference,\n WorkspaceSetupChecklist,\n type WorkspaceSetupHostProps,\n WorkspaceSetupIndicator,\n} from './components/setup-checklist.js';\nexport {\n loadWorkspaceSetupRoute,\n type WorkspaceSetupRouteOptions,\n} from './workspace-setup-route.js';\n"],"names":["deriveIntegrationReadiness","deriveSetupChecklist","SetupChecklistBody","WorkspaceSetupChecklist","WorkspaceSetupIndicator","loadWorkspaceSetupRoute"],"mappings":"AAAA,SACEA,0BAA0B,QAIrB,iCAAiC;AACxC,SACEC,oBAAoB,QAOf,2BAA2B;AAClC,SACEC,kBAAkB,EAGlBC,uBAAuB,EAEvBC,uBAAuB,QAClB,kCAAkC;AACzC,SACEC,uBAAuB,QAElB,6BAA6B"}
|