@pantheon-systems/puck-css 0.4.3 → 0.5.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/dist/auth/P1AuthProvider.d.ts +1 -0
- package/dist/auth/P1AuthProvider.d.ts.map +1 -1
- package/dist/auth/P1AuthProvider.js +9 -0
- package/dist/auth/P1AuthProvider.js.map +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/core/types.d.ts +31 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/data/dal/init.d.ts +7 -0
- package/dist/data/dal/init.d.ts.map +1 -1
- package/dist/data/dal/init.js +32 -0
- package/dist/data/dal/init.js.map +1 -1
- package/dist/data/dal/p1-store.d.ts +2 -0
- package/dist/data/dal/p1-store.d.ts.map +1 -1
- package/dist/data/dal/p1-store.js +14 -10
- package/dist/data/dal/p1-store.js.map +1 -1
- package/dist/data/page-store.d.ts +4 -3
- package/dist/data/page-store.d.ts.map +1 -1
- package/dist/data/page-store.js +6 -6
- package/dist/data/page-store.js.map +1 -1
- package/dist/data/paths.js +1 -1
- package/dist/data/paths.js.map +1 -1
- package/dist/data/route-templates.js +1 -1
- package/dist/data/route-templates.js.map +1 -1
- package/dist/editor/P1PuckProvider.d.ts.map +1 -1
- package/dist/editor/P1PuckProvider.js +102 -17
- package/dist/editor/P1PuckProvider.js.map +1 -1
- package/dist/editor/plugin/P1Plugin.d.ts +12 -2
- package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
- package/dist/editor/plugin/P1Plugin.js +30 -9
- package/dist/editor/plugin/P1Plugin.js.map +1 -1
- package/dist/editor/plugin/createP1Overrides.d.ts +7 -0
- package/dist/editor/plugin/createP1Overrides.d.ts.map +1 -1
- package/dist/editor/plugin/createP1Overrides.js +72 -2
- package/dist/editor/plugin/createP1Overrides.js.map +1 -1
- package/dist/editor/useDocuments.d.ts +1 -0
- package/dist/editor/useDocuments.d.ts.map +1 -1
- package/dist/editor/useDocuments.js +15 -2
- package/dist/editor/useDocuments.js.map +1 -1
- package/dist/editor/useP1Editor.d.ts.map +1 -1
- package/dist/editor/useP1Editor.js +41 -23
- package/dist/editor/useP1Editor.js.map +1 -1
- package/dist/editor/useP1Plugin.d.ts +3 -1
- package/dist/editor/useP1Plugin.d.ts.map +1 -1
- package/dist/editor/useP1Plugin.js +2 -0
- package/dist/editor/useP1Plugin.js.map +1 -1
- package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts +3 -7
- package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts.map +1 -1
- package/dist/features/content-type-templates/editor/useTemplateScaffold.js +6 -14
- package/dist/features/content-type-templates/editor/useTemplateScaffold.js.map +1 -1
- package/dist/features/content-type-templates/hooks/useTemplateList.d.ts +3 -3
- package/dist/features/content-type-templates/hooks/useTemplateList.d.ts.map +1 -1
- package/dist/features/content-type-templates/hooks/useTemplateList.js +5 -3
- package/dist/features/content-type-templates/hooks/useTemplateList.js.map +1 -1
- package/dist/features/content-type-templates/index.d.ts +1 -1
- package/dist/features/content-type-templates/index.d.ts.map +1 -1
- package/dist/features/content-type-templates/index.js.map +1 -1
- package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts +8 -3
- package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts.map +1 -1
- package/dist/features/content-type-templates/permissions/createPuckPermissions.js +18 -27
- package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -1
- package/dist/features/content-type-templates/stores/template-store.d.ts +4 -4
- package/dist/features/content-type-templates/stores/template-store.d.ts.map +1 -1
- package/dist/features/content-type-templates/stores/template-store.js +33 -10
- package/dist/features/content-type-templates/stores/template-store.js.map +1 -1
- package/dist/features/content-type-templates/types.d.ts +1 -88
- package/dist/features/content-type-templates/types.d.ts.map +1 -1
- package/dist/features/content-type-templates/ui/ActionBarPinButton.d.ts.map +1 -1
- package/dist/features/content-type-templates/ui/ActionBarPinButton.js +16 -34
- package/dist/features/content-type-templates/ui/ActionBarPinButton.js.map +1 -1
- package/dist/features/content-type-templates/ui/TemplateDetailsPanel.d.ts +24 -0
- package/dist/features/content-type-templates/ui/TemplateDetailsPanel.d.ts.map +1 -0
- package/dist/features/content-type-templates/ui/TemplateDetailsPanel.js +124 -0
- package/dist/features/content-type-templates/ui/TemplateDetailsPanel.js.map +1 -0
- package/dist/features/content-type-templates/ui/TemplateSelector.d.ts +2 -2
- package/dist/features/content-type-templates/ui/TemplateSelector.d.ts.map +1 -1
- package/dist/features/content-type-templates/validation/structural-validation.d.ts.map +1 -1
- package/dist/features/content-type-templates/validation/structural-validation.js +7 -4
- package/dist/features/content-type-templates/validation/structural-validation.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/p1/editor/connect/connect-field-modal.d.ts.map +1 -1
- package/dist/p1/editor/connect/connect-field-modal.js +1 -1
- package/dist/p1/editor/connect/connect-field-modal.js.map +1 -1
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.d.ts.map +1 -1
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js +91 -29
- package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js.map +1 -1
- package/dist/p1/pages/index.d.ts +0 -10
- package/dist/p1/pages/index.d.ts.map +1 -1
- package/dist/p1/pages/index.js +0 -10
- package/dist/p1/pages/index.js.map +1 -1
- package/dist/pds/components/CreatePageModal.d.ts +109 -0
- package/dist/pds/components/CreatePageModal.d.ts.map +1 -0
- package/dist/pds/components/CreatePageModal.js +527 -0
- package/dist/pds/components/CreatePageModal.js.map +1 -0
- package/dist/pds/components/CreatePageModal.module.css +745 -0
- package/dist/pds/components/DocStateBadge.js +1 -1
- package/dist/pds/components/DocStateBadge.js.map +1 -1
- package/dist/pds/components/P1EditorHeader.d.ts +17 -5
- package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
- package/dist/pds/components/P1EditorHeader.js +32 -6
- package/dist/pds/components/P1EditorHeader.js.map +1 -1
- package/dist/pds/components/P1EditorSubheader.d.ts +7 -1
- package/dist/pds/components/P1EditorSubheader.d.ts.map +1 -1
- package/dist/pds/components/P1EditorSubheader.js +2 -2
- package/dist/pds/components/P1EditorSubheader.js.map +1 -1
- package/dist/pds/components/PageNavigator.d.ts +15 -4
- package/dist/pds/components/PageNavigator.d.ts.map +1 -1
- package/dist/pds/components/PageNavigator.js +23 -5
- package/dist/pds/components/PageNavigator.js.map +1 -1
- package/dist/pds/components/PageNavigator.module.css +29 -0
- package/dist/pds/components/WizardQuestion.d.ts +29 -0
- package/dist/pds/components/WizardQuestion.d.ts.map +1 -0
- package/dist/pds/components/WizardQuestion.js +57 -0
- package/dist/pds/components/WizardQuestion.js.map +1 -0
- package/dist/pds/utils/deriveLiveDocState.d.ts +18 -0
- package/dist/pds/utils/deriveLiveDocState.d.ts.map +1 -0
- package/dist/pds/utils/deriveLiveDocState.js +20 -0
- package/dist/pds/utils/deriveLiveDocState.js.map +1 -0
- package/dist/server.d.ts +1 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -3
- package/dist/server.js.map +1 -1
- package/package.json +4 -2
- package/src/pds/theme/PuckEditorTheme.css +3 -1
- package/src/pds/theme/PuckEditorTheme.test.ts +4 -3
- package/dist/features/content-type-templates/editor/useTemplateEditor.d.ts +0 -20
- package/dist/features/content-type-templates/editor/useTemplateEditor.d.ts.map +0 -1
- package/dist/features/content-type-templates/editor/useTemplateEditor.js +0 -62
- package/dist/features/content-type-templates/editor/useTemplateEditor.js.map +0 -1
- package/dist/features/content-type-templates/ui/TemplateManagerOverlay.d.ts +0 -18
- package/dist/features/content-type-templates/ui/TemplateManagerOverlay.d.ts.map +0 -1
- package/dist/features/content-type-templates/ui/TemplateManagerOverlay.js +0 -167
- package/dist/features/content-type-templates/ui/TemplateManagerOverlay.js.map +0 -1
- package/dist/features/content-type-templates/ui/TemplatePinPanel.d.ts +0 -18
- package/dist/features/content-type-templates/ui/TemplatePinPanel.d.ts.map +0 -1
- package/dist/features/content-type-templates/ui/TemplatePinPanel.js +0 -11
- package/dist/features/content-type-templates/ui/TemplatePinPanel.js.map +0 -1
- package/dist/features/content-type-templates/ui/dataToTemplate.d.ts +0 -25
- package/dist/features/content-type-templates/ui/dataToTemplate.d.ts.map +0 -1
- package/dist/features/content-type-templates/ui/dataToTemplate.js +0 -37
- package/dist/features/content-type-templates/ui/dataToTemplate.js.map +0 -1
- package/dist/p1/editor/json-tree.d.ts +0 -6
- package/dist/p1/editor/json-tree.d.ts.map +0 -1
- package/dist/p1/editor/json-tree.js +0 -64
- package/dist/p1/editor/json-tree.js.map +0 -1
- package/dist/p1/pages/add-override-for-template.d.ts +0 -4
- package/dist/p1/pages/add-override-for-template.d.ts.map +0 -1
- package/dist/p1/pages/add-override-for-template.js +0 -47
- package/dist/p1/pages/add-override-for-template.js.map +0 -1
- package/dist/p1/pages/conflict-resolution-panel.d.ts +0 -17
- package/dist/p1/pages/conflict-resolution-panel.d.ts.map +0 -1
- package/dist/p1/pages/conflict-resolution-panel.js +0 -74
- package/dist/p1/pages/conflict-resolution-panel.js.map +0 -1
- package/dist/p1/pages/content-type-template-list.d.ts +0 -7
- package/dist/p1/pages/content-type-template-list.d.ts.map +0 -1
- package/dist/p1/pages/content-type-template-list.js +0 -108
- package/dist/p1/pages/content-type-template-list.js.map +0 -1
- package/dist/p1/pages/create-content-type-form.d.ts +0 -7
- package/dist/p1/pages/create-content-type-form.d.ts.map +0 -1
- package/dist/p1/pages/create-content-type-form.js +0 -102
- package/dist/p1/pages/create-content-type-form.js.map +0 -1
- package/dist/p1/pages/create-page-form.d.ts +0 -9
- package/dist/p1/pages/create-page-form.d.ts.map +0 -1
- package/dist/p1/pages/create-page-form.js +0 -87
- package/dist/p1/pages/create-page-form.js.map +0 -1
- package/dist/p1/pages/create-template-form.d.ts +0 -7
- package/dist/p1/pages/create-template-form.d.ts.map +0 -1
- package/dist/p1/pages/create-template-form.js +0 -82
- package/dist/p1/pages/create-template-form.js.map +0 -1
- package/dist/p1/pages/delete-row-button.d.ts +0 -7
- package/dist/p1/pages/delete-row-button.d.ts.map +0 -1
- package/dist/p1/pages/delete-row-button.js +0 -23
- package/dist/p1/pages/delete-row-button.js.map +0 -1
- package/dist/p1/pages/hooks.d.ts +0 -10
- package/dist/p1/pages/hooks.d.ts.map +0 -1
- package/dist/p1/pages/hooks.js +0 -66
- package/dist/p1/pages/hooks.js.map +0 -1
- package/dist/p1/pages/migration-conflict-queue.d.ts +0 -8
- package/dist/p1/pages/migration-conflict-queue.d.ts.map +0 -1
- package/dist/p1/pages/migration-conflict-queue.js +0 -62
- package/dist/p1/pages/migration-conflict-queue.js.map +0 -1
- package/dist/p1/pages/migration-preview-panel.d.ts +0 -12
- package/dist/p1/pages/migration-preview-panel.d.ts.map +0 -1
- package/dist/p1/pages/migration-preview-panel.js +0 -157
- package/dist/p1/pages/migration-preview-panel.js.map +0 -1
- package/dist/p1/pages/migration-status-panel.d.ts +0 -7
- package/dist/p1/pages/migration-status-panel.d.ts.map +0 -1
- package/dist/p1/pages/migration-status-panel.js +0 -198
- package/dist/p1/pages/migration-status-panel.js.map +0 -1
- package/dist/p1/pages/structure-page.d.ts +0 -2
- package/dist/p1/pages/structure-page.d.ts.map +0 -1
- package/dist/p1/pages/structure-page.js +0 -103
- package/dist/p1/pages/structure-page.js.map +0 -1
- package/dist/p1/pages/structure-tabs.d.ts +0 -11
- package/dist/p1/pages/structure-tabs.d.ts.map +0 -1
- package/dist/p1/pages/structure-tabs.js +0 -45
- package/dist/p1/pages/structure-tabs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocStateBadge.js","sourceRoot":"","sources":["../../../src/pds/components/DocStateBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAQ5E,MAAM,WAAW,GAAqD;IACpE,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,UAAU,GAA6B;IAC3C,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"DocStateBadge.js","sourceRoot":"","sources":["../../../src/pds/components/DocStateBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAQ5E,MAAM,WAAW,GAAqD;IACpE,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,UAAU,GAA6B;IAC3C,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,4BAA4B;IACzC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,WAAW;CACtB,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjE,MAAM,aAAa,GAAsC;IACvD,QAAQ,EACN,2FAA2F;IAC7F,QAAQ,EACN,yHAAyH;CAC5H,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAsB;IAC9E,MAAM,SAAS,GAAG,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEzD,OAAO,CACL,gBAAM,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,aAC3E,KAAC,eAAe,IACd,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,EAC3B,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC3B,IAAI,EAAC,IAAI,GACT,EACD,SAAS,IAAI,CACZ,8BACc,eAAe,EAC3B,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,YAEzE,KAAC,IAAI,IAAC,QAAQ,EAAC,qBAAqB,EAAC,QAAQ,EAAC,GAAG,GAAG,GAC/C,CACR,IACI,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import type { PageNavigatorDocument } from './PageNavigator.js';
|
|
11
|
-
import type { Template } from '../../features/content-type-templates/types.js';
|
|
11
|
+
import type { Template, TemplateSummary } from '../../features/content-type-templates/types.js';
|
|
12
12
|
export type { PageNavigatorDocument };
|
|
13
13
|
export interface CurrentUser {
|
|
14
14
|
id: string;
|
|
@@ -30,11 +30,23 @@ export interface P1EditorHeaderProps {
|
|
|
30
30
|
siteId?: string;
|
|
31
31
|
dashboardUrl?: string;
|
|
32
32
|
onSelectDocument: (doc: PageNavigatorDocument) => void;
|
|
33
|
-
onCreateDocument?: (path: string, template?:
|
|
33
|
+
onCreateDocument?: (path: string, template?: TemplateSummary | null, title?: string) => Promise<void>;
|
|
34
34
|
onLogout: () => void;
|
|
35
|
-
templates?:
|
|
35
|
+
templates?: TemplateSummary[];
|
|
36
36
|
templatesLoading?: boolean;
|
|
37
|
-
|
|
37
|
+
/** Data sources (built-in + user) for the modal's collection builder. */
|
|
38
|
+
datasources?: {
|
|
39
|
+
id: string;
|
|
40
|
+
label: string;
|
|
41
|
+
inputs?: string[];
|
|
42
|
+
}[];
|
|
43
|
+
/** Create a new template from the modal's "New template" flow. */
|
|
44
|
+
onCreateTemplate?: (params: {
|
|
45
|
+
name: string;
|
|
46
|
+
label: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
defaultUrlPattern?: string;
|
|
49
|
+
}) => Promise<Template>;
|
|
38
50
|
}
|
|
39
|
-
export declare function P1EditorHeader({ documents, currentDocument, selectedDocumentPath, currentUser, siteName, siteId, dashboardUrl, onSelectDocument, onCreateDocument, onLogout, templates, templatesLoading,
|
|
51
|
+
export declare function P1EditorHeader({ documents, currentDocument, selectedDocumentPath, currentUser, siteName, siteId, dashboardUrl, onSelectDocument, onCreateDocument, onLogout, templates, templatesLoading, onCreateTemplate, datasources, }: P1EditorHeaderProps): React.ReactElement;
|
|
40
52
|
//# sourceMappingURL=P1EditorHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"P1EditorHeader.d.ts","sourceRoot":"","sources":["../../../src/pds/components/P1EditorHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"P1EditorHeader.d.ts","sourceRoot":"","sources":["../../../src/pds/components/P1EditorHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAIhG,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACvD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtG,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yEAAyE;IACzE,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACjE,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,GACZ,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAgT1C"}
|
|
@@ -12,9 +12,14 @@ import { createPortal } from 'react-dom';
|
|
|
12
12
|
import { Icon, Avatar, PantheonLogo } from '@pantheon-systems/pds-toolkit-react';
|
|
13
13
|
import { getAvatarStyleOverride } from '../../collaboration/utils/avatarColor.js';
|
|
14
14
|
import { PageNavigator } from './PageNavigator.js';
|
|
15
|
+
import { CreatePageModal } from './CreatePageModal.js';
|
|
15
16
|
import styles from './P1EditorHeader.module.css';
|
|
16
|
-
export function P1EditorHeader({ documents, currentDocument, selectedDocumentPath, currentUser, siteName, siteId, dashboardUrl, onSelectDocument, onCreateDocument, onLogout, templates, templatesLoading,
|
|
17
|
+
export function P1EditorHeader({ documents, currentDocument, selectedDocumentPath, currentUser, siteName, siteId, dashboardUrl, onSelectDocument, onCreateDocument, onLogout, templates, templatesLoading, onCreateTemplate, datasources, }) {
|
|
17
18
|
const [pageNavigatorOpen, setPageNavigatorOpen] = useState(false);
|
|
19
|
+
// The Create Page modal, opened from the page navigator's "+ New page" /
|
|
20
|
+
// "+ New template". `createModalMode` selects which screen it opens on.
|
|
21
|
+
const [createModalOpen, setCreateModalOpen] = useState(false);
|
|
22
|
+
const [createModalMode, setCreateModalMode] = useState('page');
|
|
18
23
|
const [navigatorPortalStyle, setNavigatorPortalStyle] = useState();
|
|
19
24
|
const pageSelectorRef = useRef(null);
|
|
20
25
|
const [userMenuOpen, setUserMenuOpen] = useState(false);
|
|
@@ -82,6 +87,19 @@ export function P1EditorHeader({ documents, currentDocument, selectedDocumentPat
|
|
|
82
87
|
onSelectDocument(doc);
|
|
83
88
|
setPageNavigatorOpen(false);
|
|
84
89
|
}
|
|
90
|
+
// CreatePageModal emits a bare path + title (+ a content-type template id when
|
|
91
|
+
// creating from a "Page type template"). Normalize to a leading slash and
|
|
92
|
+
// resolve the template id to its list entry so the provider scaffolds from
|
|
93
|
+
// the template and binds templateId/version.
|
|
94
|
+
const handleModalCreateDocument = useCallback(async (path, title, templateId) => {
|
|
95
|
+
if (!onCreateDocument)
|
|
96
|
+
return;
|
|
97
|
+
const normalizedPath = path.startsWith('/') ? path : `/${path}`;
|
|
98
|
+
const template = templateId
|
|
99
|
+
? (templates?.find((t) => t.id === templateId) ?? null)
|
|
100
|
+
: undefined;
|
|
101
|
+
await onCreateDocument(normalizedPath, template, title);
|
|
102
|
+
}, [onCreateDocument, templates]);
|
|
85
103
|
// Build dashboard URL if siteId is provided
|
|
86
104
|
const dashboardHref = React.useMemo(() => {
|
|
87
105
|
if (!siteId)
|
|
@@ -94,11 +112,19 @@ export function P1EditorHeader({ documents, currentDocument, selectedDocumentPat
|
|
|
94
112
|
// Show button if there's a path and it's not empty/root
|
|
95
113
|
const shouldShow = pagePath && pagePath !== '/' && pagePath !== '';
|
|
96
114
|
return shouldShow ? (_jsx("a", { href: pagePath, target: "_blank", rel: "noopener noreferrer", className: styles.externalLinkButton, title: "Open page in new tab", "data-testid": "open-external", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }), _jsx("polyline", { points: "15 3 21 3 21 9" }), _jsx("line", { x1: "10", x2: "21", y1: "14", y2: "3" })] }) })) : null;
|
|
97
|
-
})()] }), _jsx(PageNavigator, { open: pageNavigatorOpen, documents: documents, currentDocument: currentDocument, isMainBranch: true, onSelect: handleSelectDocument, onCreateDocument: onCreateDocument,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
115
|
+
})()] }), _jsx(PageNavigator, { open: pageNavigatorOpen, documents: documents, currentDocument: currentDocument, isMainBranch: true, onSelect: handleSelectDocument, onCreateDocument: onCreateDocument, onCreatePage: () => {
|
|
116
|
+
setPageNavigatorOpen(false);
|
|
117
|
+
setCreateModalMode('page');
|
|
118
|
+
setCreateModalOpen(true);
|
|
119
|
+
}, onCreateTemplate: () => {
|
|
120
|
+
setPageNavigatorOpen(false);
|
|
121
|
+
setCreateModalMode('new-template');
|
|
122
|
+
setCreateModalOpen(true);
|
|
123
|
+
}, templates: templates, templatesLoading: templatesLoading, onClose: () => setPageNavigatorOpen(false), portalStyle: navigatorPortalStyle }), _jsx(CreatePageModal, { open: createModalOpen, initialMode: createModalMode, onClose: () => setCreateModalOpen(false), onCreateDocument: handleModalCreateDocument, templates: templates, onCreateTemplate: onCreateTemplate, datasources: datasources, onNavigate: (path) => {
|
|
124
|
+
const normalizedPath = path.startsWith('/') ? path : `/${path}`;
|
|
125
|
+
onSelectDocument({ id: normalizedPath, path: normalizedPath, archived: false });
|
|
126
|
+
} }), _jsx("div", { className: styles.spacer }), _jsx("button", { ref: userMenuTriggerRef, "data-testid": "user-menu-trigger", type: "button", className: styles.userAvatar, onClick: handleUserMenuClick, "aria-haspopup": "menu", "aria-expanded": userMenuOpen, "aria-label": "Account menu", style: currentUser ? getAvatarStyleOverride(currentUser.id) : undefined, children: currentUser?.avatar ? (_jsx("div", { className: "pds-avatar pds-avatar--md pds-avatar--image", children: _jsx("span", { className: "pds-avatar__content", children: _jsx("img", { alt: "", className: "pds-avatar__image", src: currentUser.avatar, referrerPolicy: "no-referrer", crossOrigin: "anonymous" }) }) })) : (_jsx(Avatar, { uniqueId: currentUser?.id, hasUserFallback: true, size: "m" })) }), userMenuOpen &&
|
|
127
|
+
createPortal(_jsxs("div", { ref: userMenuRef, "data-testid": "user-menu", className: styles.dropdownMenu, role: "menu", style: userMenuStyle, children: [currentUser?.name && (_jsx("div", { className: styles.dropdownUserInfo, role: "presentation", children: currentUser.name })), _jsxs("button", { type: "button", role: "menuitem", "data-testid": "user-menu-logout", className: styles.dropdownMenuItem, onClick: () => {
|
|
102
128
|
setUserMenuOpen(false);
|
|
103
129
|
onLogout();
|
|
104
130
|
}, children: [_jsx(Icon, { iconName: "bracketRight", iconSize: "s", "aria-hidden": "true" }), "Log out"] })] }), document.body)] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"P1EditorHeader.js","sourceRoot":"","sources":["../../../src/pds/components/P1EditorHeader.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,MAAM,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"P1EditorHeader.js","sourceRoot":"","sources":["../../../src/pds/components/P1EditorHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,12 @@ export interface SubheaderActor {
|
|
|
24
24
|
export interface P1EditorSubheaderProps {
|
|
25
25
|
puckActions: React.ReactNode;
|
|
26
26
|
docState: DocState;
|
|
27
|
+
/**
|
|
28
|
+
* State for the publish *badge*. When undefined the badge is hidden (e.g. off
|
|
29
|
+
* the Live branch, or while the published status is unknown). Distinct from
|
|
30
|
+
* `docState`, which always drives the publish button/actions.
|
|
31
|
+
*/
|
|
32
|
+
badgeDocState?: DocState;
|
|
27
33
|
hasDrift?: boolean;
|
|
28
34
|
context: 'branch' | 'main';
|
|
29
35
|
agents: SubheaderActor[];
|
|
@@ -50,5 +56,5 @@ export interface P1EditorSubheaderProps {
|
|
|
50
56
|
onCompareWithLive: () => void;
|
|
51
57
|
onCreateBranch?: (name: string) => Promise<void>;
|
|
52
58
|
}
|
|
53
|
-
export declare function P1EditorSubheader({ puckActions, docState, hasDrift, context, agents, humanActors, onStopAgent, onPublish, onReviewAndPublish, onReviewWorkstream, onCreateWorkstream, onDeleteDocument, hasPast, hasFuture, onUndo, onRedo, leftPanelVisible, rightPanelVisible, pluginRailVisible, onToggleLeftPanel, onToggleRightPanel, onTogglePluginRail, branches, currentBranch, onSwitchBranch, onCompareWithLive, onCreateBranch, }: P1EditorSubheaderProps): React.ReactElement;
|
|
59
|
+
export declare function P1EditorSubheader({ puckActions, docState, badgeDocState, hasDrift, context, agents, humanActors, onStopAgent, onPublish, onReviewAndPublish, onReviewWorkstream, onCreateWorkstream, onDeleteDocument, hasPast, hasFuture, onUndo, onRedo, leftPanelVisible, rightPanelVisible, pluginRailVisible, onToggleLeftPanel, onToggleRightPanel, onTogglePluginRail, branches, currentBranch, onSwitchBranch, onCompareWithLive, onCreateBranch, }: P1EditorSubheaderProps): React.ReactElement;
|
|
54
60
|
//# sourceMappingURL=P1EditorSubheader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"P1EditorSubheader.d.ts","sourceRoot":"","sources":["../../../src/pds/components/P1EditorSubheader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEhC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"P1EditorSubheader.d.ts","sourceRoot":"","sources":["../../../src/pds/components/P1EditorSubheader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEhC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAiJ7C"}
|
|
@@ -5,7 +5,7 @@ import { PresenceStack } from './PresenceStack.js';
|
|
|
5
5
|
import { PublishControl } from './PublishControl.js';
|
|
6
6
|
import { WorkstreamSwitcher } from './WorkstreamSwitcher.js';
|
|
7
7
|
import styles from './P1EditorSubheader.module.css';
|
|
8
|
-
export function P1EditorSubheader({ puckActions, docState, hasDrift, context, agents, humanActors, onStopAgent, onPublish, onReviewAndPublish, onReviewWorkstream, onCreateWorkstream, onDeleteDocument, hasPast, hasFuture, onUndo, onRedo, leftPanelVisible, rightPanelVisible, pluginRailVisible, onToggleLeftPanel, onToggleRightPanel, onTogglePluginRail, branches, currentBranch, onSwitchBranch, onCompareWithLive, onCreateBranch, }) {
|
|
8
|
+
export function P1EditorSubheader({ puckActions, docState, badgeDocState, hasDrift, context, agents, humanActors, onStopAgent, onPublish, onReviewAndPublish, onReviewWorkstream, onCreateWorkstream, onDeleteDocument, hasPast, hasFuture, onUndo, onRedo, leftPanelVisible, rightPanelVisible, pluginRailVisible, onToggleLeftPanel, onToggleRightPanel, onTogglePluginRail, branches, currentBranch, onSwitchBranch, onCompareWithLive, onCreateBranch, }) {
|
|
9
9
|
return (_jsxs("div", { "data-testid": "p1-editor-subheader", className: styles.subheader, children: [_jsxs("div", { "data-testid": "panel-toggles", className: styles.panelToggles, children: [_jsx(IconButton, { ariaLabel: "Toggle plugin rail", iconName: pluginRailVisible ? "angleRight" : "angleLeft", size: "s", hasTooltip: false, hasBorder: false, "aria-pressed": pluginRailVisible, onClick: onTogglePluginRail }), _jsx(IconButton, { ariaLabel: "Toggle left panel", iconName: "tableRows", size: "s", hasTooltip: false, hasBorder: false, "aria-pressed": leftPanelVisible, onClick: onToggleLeftPanel }), _jsx(IconButton, { ariaLabel: "Toggle right panel", iconName: "tableRows", size: "s", hasTooltip: false, hasBorder: false, "aria-pressed": rightPanelVisible, onClick: onToggleRightPanel, className: styles.rightPanelToggle })] }), puckActions, _jsxs("div", { "data-testid": "device-selector", className: styles.historyGroup, children: [_jsx(IconButton, { "data-testid": "undo-btn", ariaLabel: "Undo", iconName: "rotateLeft", size: "s", disabled: !hasPast, onClick: onUndo, hasTooltip: false, hasBorder: false }), _jsx(IconButton, { "data-testid": "redo-btn", ariaLabel: "Redo", iconName: "rotateRight", size: "s", disabled: !hasFuture, onClick: onRedo, hasTooltip: false, hasBorder: false })] }), _jsx("div", { className: styles.spacer }), _jsxs("div", { className: styles.actorsArea, children: [agents.map((actor) => (_jsx(AgentChip, { id: actor.id, agent: {
|
|
10
10
|
id: actor.id,
|
|
11
11
|
name: actor.name,
|
|
@@ -24,6 +24,6 @@ export function P1EditorSubheader({ puckActions, docState, hasDrift, context, ag
|
|
|
24
24
|
state: 'active',
|
|
25
25
|
lastActivityAt: new Date().toISOString(),
|
|
26
26
|
joinedAt: new Date().toISOString(),
|
|
27
|
-
})), maxVisible: 3 }))] }), _jsx(PublishControl, { docState:
|
|
27
|
+
})), maxVisible: 3 }))] }), badgeDocState && (_jsx(PublishControl, { docState: badgeDocState, hasDrift: hasDrift, context: context, onPublish: onPublish, onReviewAndPublish: onReviewAndPublish, onReviewWorkstream: onReviewWorkstream, onCreateWorkstream: onCreateWorkstream, onDeleteDocument: onDeleteDocument, renderBadgeOnly: true })), _jsxs("div", { className: styles.workstreamPublishGroup, children: [_jsx(WorkstreamSwitcher, { branches: branches, currentBranch: currentBranch, onSwitch: onSwitchBranch, onCompareWithLive: onCompareWithLive, hideCompareButton: true, onCreateBranch: onCreateBranch }), _jsx(PublishControl, { docState: docState, hasDrift: hasDrift, context: context, onPublish: onPublish, onReviewAndPublish: onReviewAndPublish, onReviewWorkstream: onReviewWorkstream, onCreateWorkstream: onCreateWorkstream, onDeleteDocument: onDeleteDocument, renderButtonOnly: true })] })] }));
|
|
28
28
|
}
|
|
29
29
|
//# sourceMappingURL=P1EditorSubheader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"P1EditorSubheader.js","sourceRoot":"","sources":["../../../src/pds/components/P1EditorSubheader.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,MAAM,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"P1EditorSubheader.js","sourceRoot":"","sources":["../../../src/pds/components/P1EditorSubheader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* flash where the portal appears at y=0 before being repositioned.
|
|
11
11
|
*/
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import type {
|
|
13
|
+
import type { TemplateSummary } from '../../features/content-type-templates/types.js';
|
|
14
14
|
export interface PageNavigatorDocument {
|
|
15
15
|
id: string;
|
|
16
16
|
path: string;
|
|
@@ -27,9 +27,20 @@ export interface PageNavigatorProps {
|
|
|
27
27
|
/** Whether the current branch is main/live. Inherited docs are dimmed when false. */
|
|
28
28
|
isMainBranch?: boolean;
|
|
29
29
|
/** Called when the user creates a new page. If omitted, the "+ New page" button has no effect. */
|
|
30
|
-
onCreateDocument?: (path: string, template?:
|
|
30
|
+
onCreateDocument?: (path: string, template?: TemplateSummary | null) => Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Called when "+ New page" is clicked. When provided, it takes over the button
|
|
33
|
+
* (e.g. to open the Create Page modal) instead of the inline create form.
|
|
34
|
+
*/
|
|
35
|
+
onCreatePage?: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Called when "+ New template" is clicked on the Templates tab (e.g. to open
|
|
38
|
+
* the Create Page modal directly on the New-template form). When omitted, the
|
|
39
|
+
* button is not shown.
|
|
40
|
+
*/
|
|
41
|
+
onCreateTemplate?: () => void;
|
|
31
42
|
/** Available templates for document creation. When non-empty, a template selector step is shown. */
|
|
32
|
-
templates?:
|
|
43
|
+
templates?: TemplateSummary[];
|
|
33
44
|
/** Whether templates are still loading. */
|
|
34
45
|
templatesLoading?: boolean;
|
|
35
46
|
/**
|
|
@@ -39,5 +50,5 @@ export interface PageNavigatorProps {
|
|
|
39
50
|
*/
|
|
40
51
|
portalStyle?: React.CSSProperties;
|
|
41
52
|
}
|
|
42
|
-
export declare function PageNavigator({ documents, currentDocument, onSelect, onClose, open, isMainBranch, onCreateDocument, templates, templatesLoading, portalStyle, }: PageNavigatorProps): React.JSX.Element | null;
|
|
53
|
+
export declare function PageNavigator({ documents, currentDocument, onSelect, onClose, open, isMainBranch, onCreateDocument, onCreatePage, onCreateTemplate, templates, templatesLoading, portalStyle, }: PageNavigatorProps): React.JSX.Element | null;
|
|
43
54
|
//# sourceMappingURL=PageNavigator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageNavigator.d.ts","sourceRoot":"","sources":["../../../src/pds/components/PageNavigator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PageNavigator.d.ts","sourceRoot":"","sources":["../../../src/pds/components/PageNavigator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAEtF,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C,QAAQ,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,qFAAqF;IACrF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,oGAAoG;IACpG,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACnC;AAID,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,eAAe,EACf,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,WAAW,GACZ,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA6S/C"}
|
|
@@ -13,8 +13,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
13
13
|
import { useState, useCallback } from 'react';
|
|
14
14
|
import { createPortal } from 'react-dom';
|
|
15
15
|
import styles from './PageNavigator.module.css';
|
|
16
|
-
export function PageNavigator({ documents, currentDocument, onSelect, onClose, open, isMainBranch, onCreateDocument, templates, templatesLoading, portalStyle, }) {
|
|
16
|
+
export function PageNavigator({ documents, currentDocument, onSelect, onClose, open, isMainBranch, onCreateDocument, onCreatePage, onCreateTemplate, templates, templatesLoading, portalStyle, }) {
|
|
17
17
|
const [query, setQuery] = useState('');
|
|
18
|
+
const [activeTab, setActiveTab] = useState('pages');
|
|
18
19
|
const [creationStep, setCreationStep] = useState('idle');
|
|
19
20
|
const [selectedTemplate, setSelectedTemplate] = useState(null);
|
|
20
21
|
const [newPath, setNewPath] = useState('');
|
|
@@ -34,9 +35,13 @@ export function PageNavigator({ documents, currentDocument, onSelect, onClose, o
|
|
|
34
35
|
}, []);
|
|
35
36
|
const handleCreate = useCallback(async (e) => {
|
|
36
37
|
e.preventDefault();
|
|
37
|
-
if (!
|
|
38
|
+
if (!onCreateDocument)
|
|
38
39
|
return;
|
|
39
|
-
const
|
|
40
|
+
const trimmedPath = newPath.trim();
|
|
41
|
+
if (!trimmedPath)
|
|
42
|
+
return;
|
|
43
|
+
// Special case: "/" is a valid path for the homepage
|
|
44
|
+
const path = trimmedPath === '/' ? '/' : (trimmedPath.startsWith('/') ? trimmedPath.slice(1) : trimmedPath);
|
|
40
45
|
const normalizedPath = path.startsWith('/') ? path : `/${path}`;
|
|
41
46
|
setCreateError(null);
|
|
42
47
|
try {
|
|
@@ -71,11 +76,24 @@ export function PageNavigator({ documents, currentDocument, onSelect, onClose, o
|
|
|
71
76
|
const filtered = query
|
|
72
77
|
? visible.filter((doc) => doc.path.toLowerCase().includes(query.toLowerCase()))
|
|
73
78
|
: visible;
|
|
74
|
-
|
|
79
|
+
// Templates tab: browse existing templates and open them for editing.
|
|
80
|
+
const templateList = templates ?? [];
|
|
81
|
+
const filteredTemplates = query
|
|
82
|
+
? templateList.filter((t) => (t.label || t.name).toLowerCase().includes(query.toLowerCase()))
|
|
83
|
+
: templateList;
|
|
84
|
+
const showTemplatesTab = activeTab === 'templates';
|
|
85
|
+
const content = (_jsxs("div", { className: styles.root, role: "dialog", "aria-label": "Page navigator", style: portalStyle, children: [_jsxs("div", { className: styles.header, children: [_jsx("input", { autoFocus: true, type: "text", "data-testid": "page-navigator-search", className: styles.search, placeholder: showTemplatesTab ? 'Search templates…' : 'Search pages…', value: query, onChange: (e) => setQuery(e.target.value) }), _jsx("button", { type: "button", className: styles.closeButton, onClick: onClose, "aria-label": "Close", children: "\u00D7" })] }), hasTemplates && (_jsxs("div", { className: styles.tabs, role: "tablist", "aria-label": "Pages and templates", children: [_jsx("button", { type: "button", role: "tab", "data-testid": "page-navigator-tab-pages", "aria-selected": !showTemplatesTab, className: `${styles.tab}${!showTemplatesTab ? ` ${styles.tabActive}` : ''}`, onClick: () => setActiveTab('pages'), children: "Pages" }), _jsx("button", { type: "button", role: "tab", "data-testid": "page-navigator-tab-templates", "aria-selected": showTemplatesTab, className: `${styles.tab}${showTemplatesTab ? ` ${styles.tabActive}` : ''}`, onClick: () => setActiveTab('templates'), children: "Templates" })] })), showTemplatesTab ? (_jsxs("ul", { className: styles.list, children: [filteredTemplates.map((t) => {
|
|
86
|
+
const path = `_registry/templates/${t.name}`;
|
|
87
|
+
const isCurrent = currentDocument?.path === path;
|
|
88
|
+
return (_jsx("li", { children: _jsx("button", { type: "button", "data-testid": "page-navigator-template-item", className: `${styles.item}${isCurrent ? ` ${styles.itemCurrent}` : ''}`, onClick: () => {
|
|
89
|
+
onSelect({ id: path, path, archived: false });
|
|
90
|
+
setQuery('');
|
|
91
|
+
}, "aria-current": isCurrent ? 'page' : undefined, children: t.label || t.name }) }, t.id));
|
|
92
|
+
}), filteredTemplates.length === 0 && (_jsx("li", { className: styles.empty, children: "No templates found" }))] })) : (_jsxs("ul", { className: styles.list, children: [filtered.map((doc) => {
|
|
75
93
|
const isCurrent = currentDocument !== null && doc.id === currentDocument.id;
|
|
76
94
|
const isLiveOnly = isMainBranch === false && doc.inherited === true;
|
|
77
95
|
return (_jsx("li", { children: _jsx("button", { type: "button", "data-testid": "page-navigator-item", "data-inherited": isLiveOnly ? 'true' : undefined, className: `${styles.item}${isCurrent ? ` ${styles.itemCurrent}` : ''}${isLiveOnly ? ` ${styles.itemInherited}` : ''}`, onClick: () => { onSelect(doc); setQuery(''); }, "aria-current": isCurrent ? 'page' : undefined, children: doc.path }) }, doc.id));
|
|
78
|
-
}), filtered.length === 0 && (_jsx("li", { className: styles.empty, children: "No pages found" }))] }), _jsx("div", { className: styles.footer, children: creationStep === 'template' ? (_jsx("div", { "data-testid": "template-selector", className: styles.templateSelector, children: templatesLoading ? (_jsx("div", { "data-testid": "template-selector-loading", className: styles.templateSelectorLoading, children: "Loading templates..." })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.templateSelectorHeader, children: "Choose a template" }), _jsxs("div", { className: styles.templateSelectorGrid, children: [_jsxs("button", { type: "button", className: styles.templateOption, onClick: () => handleTemplateSelect(null), children: [_jsx("span", { className: styles.templateOptionLabel, children: "Blank Page" }), _jsx("span", { className: styles.templateOptionDesc, children: "Start from scratch" })] }), (templates ?? []).map((t) => (_jsxs("button", { type: "button", className: styles.templateOption, onClick: () => handleTemplateSelect(t), children: [_jsx("span", { className: styles.templateOptionLabel, children: t.label || t.name }), t.description && (_jsx("span", { className: styles.templateOptionDesc, children: t.description }))] }, t.id)))] }), _jsx("button", { type: "button", className: styles.createCancel, onClick: handleCancel, children: "Cancel" })] })) })) : creationStep === 'path' ? (_jsxs("form", { "data-testid": "page-navigator-create-form", className: styles.createForm, onSubmit: handleCreate, children: [selectedTemplate && (_jsxs("div", { className: styles.selectedTemplateBadge, children: ["Template: ", selectedTemplate.label || selectedTemplate.name] })), _jsx("input", { autoFocus: true, type: "text", "data-testid": "page-navigator-create-input", className: styles.createInput, placeholder: "page-path", value: newPath, onChange: (e) => setNewPath(e.target.value) }), _jsxs("div", { className: styles.createActions, children: [_jsx("button", { type: "submit", className: styles.createSubmit, children: "Create" }), _jsx("button", { type: "button", "data-testid": "page-navigator-create-cancel", className: styles.createCancel, onClick: handleCancel, children: "Cancel" })] }), createError && (_jsx("div", { "data-testid": "page-navigator-create-error", className: styles.createError, children: createError }))] })) : (_jsx("button", { type: "button", "data-testid": "page-navigator-new", className: styles.newButton, onClick: onCreateDocument ? handleNewPageClick : undefined, children: "+ New page" })) })] }));
|
|
96
|
+
}), filtered.length === 0 && (_jsx("li", { className: styles.empty, children: "No pages found" }))] })), showTemplatesTab && onCreateTemplate && (_jsx("div", { className: styles.footer, children: _jsx("button", { type: "button", "data-testid": "page-navigator-new-template", className: styles.newButton, onClick: onCreateTemplate, children: "+ New template" }) })), !showTemplatesTab && (_jsx("div", { className: styles.footer, children: creationStep === 'template' ? (_jsx("div", { "data-testid": "template-selector", className: styles.templateSelector, children: templatesLoading ? (_jsx("div", { "data-testid": "template-selector-loading", className: styles.templateSelectorLoading, children: "Loading templates..." })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.templateSelectorHeader, children: "Choose a template" }), _jsxs("div", { className: styles.templateSelectorGrid, children: [_jsxs("button", { type: "button", className: styles.templateOption, onClick: () => handleTemplateSelect(null), children: [_jsx("span", { className: styles.templateOptionLabel, children: "Blank Page" }), _jsx("span", { className: styles.templateOptionDesc, children: "Start from scratch" })] }), (templates ?? []).map((t) => (_jsxs("button", { type: "button", className: styles.templateOption, onClick: () => handleTemplateSelect(t), children: [_jsx("span", { className: styles.templateOptionLabel, children: t.label || t.name }), t.description && (_jsx("span", { className: styles.templateOptionDesc, children: t.description }))] }, t.id)))] }), _jsx("button", { type: "button", className: styles.createCancel, onClick: handleCancel, children: "Cancel" })] })) })) : creationStep === 'path' ? (_jsxs("form", { "data-testid": "page-navigator-create-form", className: styles.createForm, onSubmit: handleCreate, children: [selectedTemplate && (_jsxs("div", { className: styles.selectedTemplateBadge, children: ["Template: ", selectedTemplate.label || selectedTemplate.name] })), _jsx("input", { autoFocus: true, type: "text", "data-testid": "page-navigator-create-input", className: styles.createInput, placeholder: "page-path", value: newPath, onChange: (e) => setNewPath(e.target.value) }), _jsxs("div", { className: styles.createActions, children: [_jsx("button", { type: "submit", className: styles.createSubmit, children: "Create" }), _jsx("button", { type: "button", "data-testid": "page-navigator-create-cancel", className: styles.createCancel, onClick: handleCancel, children: "Cancel" })] }), createError && (_jsx("div", { "data-testid": "page-navigator-create-error", className: styles.createError, children: createError }))] })) : (_jsx("button", { type: "button", "data-testid": "page-navigator-new", className: styles.newButton, onClick: onCreatePage ?? (onCreateDocument ? handleNewPageClick : undefined), children: "+ New page" })) }))] }));
|
|
79
97
|
return portalStyle ? createPortal(content, document.body) : content;
|
|
80
98
|
}
|
|
81
99
|
//# sourceMappingURL=PageNavigator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageNavigator.js","sourceRoot":"","sources":["../../../src/pds/components/PageNavigator.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"PageNavigator.js","sourceRoot":"","sources":["../../../src/pds/components/PageNavigator.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,4BAA4B,CAAC;AA8ChD,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,EACT,eAAe,EACf,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,WAAW,GACQ;IACnB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAwB,OAAO,CAAC,CAAC;IAC3E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAe,MAAM,CAAC,CAAC;IACvE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAyB,IAAI,CAAC,CAAC;IACvF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAEvD,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,IAAI,YAAY,EAAE,CAAC;YACjB,eAAe,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,QAAgC,EAAE,EAAE;QAC5E,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9B,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,CAAkB,EAAE,EAAE;QAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAE9B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,qDAAqD;QACrD,MAAM,IAAI,GAAG,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC5G,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAChE,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC/C,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,eAAe,CAAC,MAAM,CAAC,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,qCAAqC;YACrC,QAAQ,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,CACjE,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,qFAAqF;IACrF,8EAA8E;IAC9E,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/E,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACrB,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACrD;QACH,CAAC,CAAC,OAAO,CAAC;IAEZ,sEAAsE;IACtE,MAAM,YAAY,GAAG,SAAS,IAAI,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAG,KAAK;QAC7B,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAChE;QACH,CAAC,CAAC,YAAY,CAAC;IACjB,MAAM,gBAAgB,GAAG,SAAS,KAAK,WAAW,CAAC;IAEnD,MAAM,OAAO,GAAG,CACd,eACE,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,IAAI,EAAC,QAAQ,gBACF,gBAAgB,EAC3B,KAAK,EAAE,WAAW,aAElB,eAAK,SAAS,EAAE,MAAM,CAAC,MAAM,aAC3B,gBACE,SAAS,QACT,IAAI,EAAC,MAAM,iBACC,uBAAuB,EACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,EACrE,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACzC,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,WAAW,EAC7B,OAAO,EAAE,OAAO,gBACL,OAAO,uBAGX,IACL,EAEL,YAAY,IAAI,CACf,eAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAC,SAAS,gBAAY,qBAAqB,aAC1E,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,iBACE,0BAA0B,mBACvB,CAAC,gBAAgB,EAChC,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAC5E,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,sBAG7B,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,iBACE,8BAA8B,mBAC3B,gBAAgB,EAC/B,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAC3E,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,0BAGjC,IACL,CACP,EAEA,gBAAgB,CAAC,CAAC,CAAC,CAClB,cAAI,SAAS,EAAE,MAAM,CAAC,IAAI,aACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC3B,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC7C,MAAM,SAAS,GAAG,eAAe,EAAE,IAAI,KAAK,IAAI,CAAC;wBACjD,OAAO,CACL,uBACE,iBACE,IAAI,EAAC,QAAQ,iBACD,8BAA8B,EAC1C,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACvE,OAAO,EAAE,GAAG,EAAE;oCACZ,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;oCAC9C,QAAQ,CAAC,EAAE,CAAC,CAAC;gCACf,CAAC,kBACa,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YAE3C,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,GACX,IAZF,CAAC,CAAC,EAAE,CAaR,CACN,CAAC;oBACJ,CAAC,CAAC,EACD,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,CACjC,aAAI,SAAS,EAAE,MAAM,CAAC,KAAK,mCAAyB,CACrD,IACE,CACN,CAAC,CAAC,CAAC,CACF,cAAI,SAAS,EAAE,MAAM,CAAC,IAAI,aACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACpB,MAAM,SAAS,GACb,eAAe,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC;wBAC5D,MAAM,UAAU,GAAG,YAAY,KAAK,KAAK,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC;wBACpE,OAAO,CACL,uBACE,iBACE,IAAI,EAAC,QAAQ,iBACD,qBAAqB,oBACjB,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC/C,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACtH,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBACjC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YAE3C,GAAG,CAAC,IAAI,GACF,IAVF,GAAG,CAAC,EAAE,CAWV,CACN,CAAC;oBACJ,CAAC,CAAC,EACD,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CACxB,aAAI,SAAS,EAAE,MAAM,CAAC,KAAK,+BAAqB,CACjD,IACE,CACN,EAEA,gBAAgB,IAAI,gBAAgB,IAAI,CACvC,cAAK,SAAS,EAAE,MAAM,CAAC,MAAM,YAC3B,iBACE,IAAI,EAAC,QAAQ,iBACD,6BAA6B,EACzC,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,gBAAgB,+BAGlB,GACL,CACP,EAEA,CAAC,gBAAgB,IAAI,CACtB,cAAK,SAAS,EAAE,MAAM,CAAC,MAAM,YAC1B,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,CAC7B,6BAAiB,mBAAmB,EAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,YACpE,gBAAgB,CAAC,CAAC,CAAC,CAClB,6BAAiB,2BAA2B,EAAC,SAAS,EAAE,MAAM,CAAC,uBAAuB,qCAEhF,CACP,CAAC,CAAC,CAAC,CACF,8BACE,cAAK,SAAS,EAAE,MAAM,CAAC,sBAAsB,kCAAyB,EACtE,eAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB,aACzC,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,cAAc,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAEzC,eAAM,SAAS,EAAE,MAAM,CAAC,mBAAmB,2BAAmB,EAC9D,eAAM,SAAS,EAAE,MAAM,CAAC,kBAAkB,mCAA2B,IAC9D,EACR,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC5B,kBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,cAAc,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAEtC,eAAM,SAAS,EAAE,MAAM,CAAC,mBAAmB,YAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,GAAQ,EACtE,CAAC,CAAC,WAAW,IAAI,CAChB,eAAM,SAAS,EAAE,MAAM,CAAC,kBAAkB,YAAG,CAAC,CAAC,WAAW,GAAQ,CACnE,KARI,CAAC,CAAC,EAAE,CASF,CACV,CAAC,IACE,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,YAAY,EAC9B,OAAO,EAAE,YAAY,uBAGd,IACR,CACJ,GACG,CACP,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,CAC5B,+BACc,4BAA4B,EACxC,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,QAAQ,EAAE,YAAY,aAErB,gBAAgB,IAAI,CACnB,eAAK,SAAS,EAAE,MAAM,CAAC,qBAAqB,2BAC/B,gBAAgB,CAAC,KAAK,IAAI,gBAAgB,CAAC,IAAI,IACtD,CACP,EACD,gBACE,SAAS,QACT,IAAI,EAAC,MAAM,iBACC,6BAA6B,EACzC,SAAS,EAAE,MAAM,CAAC,WAAW,EAC7B,WAAW,EAAC,WAAW,EACvB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC3C,EACF,eAAK,SAAS,EAAE,MAAM,CAAC,aAAa,aAClC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,MAAM,CAAC,YAAY,uBAE3C,EACT,iBACE,IAAI,EAAC,QAAQ,iBACD,8BAA8B,EAC1C,SAAS,EAAE,MAAM,CAAC,YAAY,EAC9B,OAAO,EAAE,YAAY,uBAGd,IACL,EACL,WAAW,IAAI,CACd,6BAAiB,6BAA6B,EAAC,SAAS,EAAE,MAAM,CAAC,WAAW,YACzE,WAAW,GACR,CACP,IACI,CACR,CAAC,CAAC,CAAC,CACF,iBACE,IAAI,EAAC,QAAQ,iBACD,oBAAoB,EAChC,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,OAAO,EACL,YAAY,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,2BAI9D,CACV,GACG,CACL,IACG,CACP,CAAC;IAEF,OAAO,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACtE,CAAC"}
|
|
@@ -103,6 +103,35 @@
|
|
|
103
103
|
/* ── List item button ──────────────────────────────────────────────────── */
|
|
104
104
|
/* Prototype: fontSize t.sizeS = 0.875rem, border-radius default */
|
|
105
105
|
|
|
106
|
+
.tabs {
|
|
107
|
+
display: flex;
|
|
108
|
+
gap: 0.25rem;
|
|
109
|
+
padding: 0 var(--pds-spacing-xs, 0.625rem);
|
|
110
|
+
border-bottom: 1px solid oklch(0.96 0 0);
|
|
111
|
+
background: var(--pds-color-bg-default-secondary, oklch(0.9702 0 0));
|
|
112
|
+
}
|
|
113
|
+
.tab {
|
|
114
|
+
appearance: none;
|
|
115
|
+
background: none;
|
|
116
|
+
border: none;
|
|
117
|
+
border-bottom: 2px solid transparent;
|
|
118
|
+
margin-bottom: -1px;
|
|
119
|
+
padding: 0.5rem 0.5rem;
|
|
120
|
+
cursor: pointer;
|
|
121
|
+
font-family: var(--pds-typography-ff-default, 'Inter', sans-serif);
|
|
122
|
+
font-size: var(--pds-typography-size-s, 0.875rem);
|
|
123
|
+
color: var(--pds-color-fg-default-secondary, oklch(0.45 0 0));
|
|
124
|
+
line-height: 1.5;
|
|
125
|
+
}
|
|
126
|
+
.tab:hover {
|
|
127
|
+
color: var(--pds-color-fg-default, oklch(0.2046 0 0));
|
|
128
|
+
}
|
|
129
|
+
.tabActive {
|
|
130
|
+
color: var(--pds-color-fg-default, oklch(0.2046 0 0));
|
|
131
|
+
font-weight: 600;
|
|
132
|
+
border-bottom-color: var(--pds-color-fg-default, oklch(0.2046 0 0));
|
|
133
|
+
}
|
|
134
|
+
|
|
106
135
|
.item {
|
|
107
136
|
display: block;
|
|
108
137
|
width: 100%;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WizardQuestion
|
|
3
|
+
*
|
|
4
|
+
* Reusable guided-flow question primitive used by the "Plug external data"
|
|
5
|
+
* flow. Renders a heading (+ optional hint) and a row of selectable option
|
|
6
|
+
* pills — single-select or multi-select — plus an optional free-text "Other"
|
|
7
|
+
* entry. Modeled on the Claude clarifying-questions pattern.
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
export interface WizardOption {
|
|
11
|
+
value: string;
|
|
12
|
+
label: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface WizardQuestionProps {
|
|
16
|
+
/** The question heading. */
|
|
17
|
+
question: string;
|
|
18
|
+
/** Optional sublabel (e.g. "Select all that apply"). */
|
|
19
|
+
hint?: string;
|
|
20
|
+
options: WizardOption[];
|
|
21
|
+
/** Allow selecting multiple options (value is then a string[]). */
|
|
22
|
+
multiple?: boolean;
|
|
23
|
+
value: string | string[];
|
|
24
|
+
onChange: (value: string | string[]) => void;
|
|
25
|
+
/** Show a free-text "Other…" entry. */
|
|
26
|
+
allowOther?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare function WizardQuestion({ question, hint, options, multiple, value, onChange, allowOther, }: WizardQuestionProps): React.JSX.Element;
|
|
29
|
+
//# sourceMappingURL=WizardQuestion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WizardQuestion.d.ts","sourceRoot":"","sources":["../../../src/pds/components/WizardQuestion.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7C,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAyCD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,QAAgB,EAChB,KAAK,EACL,QAAQ,EACR,UAAkB,GACnB,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0DzC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const headingStyle = {
|
|
3
|
+
fontSize: 'var(--pds-font-size-text-default, 15px)',
|
|
4
|
+
fontWeight: 600,
|
|
5
|
+
color: 'var(--pds-color-text-default, #1a1a1a)',
|
|
6
|
+
};
|
|
7
|
+
const hintStyle = {
|
|
8
|
+
fontSize: 'var(--pds-font-size-text-small, 13px)',
|
|
9
|
+
color: 'var(--pds-color-text-subtle, #6b6b6b)',
|
|
10
|
+
marginTop: 2,
|
|
11
|
+
};
|
|
12
|
+
const pillRowStyle = {
|
|
13
|
+
display: 'flex',
|
|
14
|
+
flexWrap: 'wrap',
|
|
15
|
+
gap: 'var(--pds-spacing-2xs, 8px)',
|
|
16
|
+
marginTop: 'var(--pds-spacing-xs, 10px)',
|
|
17
|
+
};
|
|
18
|
+
function pillStyle(selected) {
|
|
19
|
+
return {
|
|
20
|
+
display: 'inline-flex',
|
|
21
|
+
alignItems: 'center',
|
|
22
|
+
gap: 6,
|
|
23
|
+
padding: '7px 14px',
|
|
24
|
+
borderRadius: 999,
|
|
25
|
+
border: `1px solid ${selected
|
|
26
|
+
? 'var(--pds-color-border-strong, #1a1a1a)'
|
|
27
|
+
: 'var(--pds-color-border-default, #d4d4d4)'}`,
|
|
28
|
+
background: selected ? 'var(--pds-color-bg-subtle, #f1f1f1)' : '#fff',
|
|
29
|
+
color: 'var(--pds-color-text-default, #1a1a1a)',
|
|
30
|
+
fontSize: 'var(--pds-font-size-text-small, 13px)',
|
|
31
|
+
fontWeight: selected ? 600 : 400,
|
|
32
|
+
fontFamily: 'inherit',
|
|
33
|
+
cursor: 'pointer',
|
|
34
|
+
lineHeight: 1.4,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function WizardQuestion({ question, hint, options, multiple = false, value, onChange, allowOther = false, }) {
|
|
38
|
+
const selected = Array.isArray(value) ? value : value ? [value] : [];
|
|
39
|
+
const isSelected = (v) => selected.includes(v);
|
|
40
|
+
const handleClick = (v) => {
|
|
41
|
+
if (multiple) {
|
|
42
|
+
onChange(isSelected(v) ? selected.filter((x) => x !== v) : [...selected, v]);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
onChange(v);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return (_jsxs("div", { "data-testid": "wizard-question", children: [_jsx("div", { style: headingStyle, children: question }), hint && _jsx("div", { style: hintStyle, children: hint }), _jsxs("div", { style: pillRowStyle, children: [options.map((o) => {
|
|
49
|
+
const on = isSelected(o.value);
|
|
50
|
+
return (_jsxs("button", { type: "button", "data-testid": `wizard-option-${o.value}`, "aria-pressed": on, title: o.description, onClick: () => handleClick(o.value), style: pillStyle(on), children: [multiple && (_jsx("span", { "aria-hidden": "true", style: { fontSize: 11 }, children: on ? '☑' : '☐' })), o.label] }, o.value));
|
|
51
|
+
}), allowOther && (_jsx("input", { type: "text", "data-testid": "wizard-other-input", placeholder: "Other\u2026", onChange: (e) => onChange(multiple ? [...selected, e.target.value] : e.target.value), style: {
|
|
52
|
+
...pillStyle(false),
|
|
53
|
+
cursor: 'text',
|
|
54
|
+
minWidth: 120,
|
|
55
|
+
} }))] })] }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=WizardQuestion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WizardQuestion.js","sourceRoot":"","sources":["../../../src/pds/components/WizardQuestion.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DocState } from '../types.js';
|
|
2
|
+
type PublishedStatus = 'published' | 'unpublished-changes' | 'draft';
|
|
3
|
+
/**
|
|
4
|
+
* Maps the publish state to a badge DocState — but ONLY on the Live (main)
|
|
5
|
+
* branch. On any other branch, or while the published status is still unknown,
|
|
6
|
+
* returns `undefined` so the badge is hidden (we never show a guessed state).
|
|
7
|
+
*
|
|
8
|
+
* On Live:
|
|
9
|
+
* 'published' → 'live' ("Live")
|
|
10
|
+
* 'unpublished-changes' → 'unpublished' ("Changes pending publishing")
|
|
11
|
+
* 'draft' → 'unpublished' ("Changes pending publishing")
|
|
12
|
+
*
|
|
13
|
+
* @param publishedStatus - The published status from useP1Editor (or undefined while loading).
|
|
14
|
+
* @param isOnMain - Whether the editor is on the Live (main) branch.
|
|
15
|
+
*/
|
|
16
|
+
export declare function deriveLiveDocState(publishedStatus: PublishedStatus | undefined, isOnMain: boolean): DocState | undefined;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=deriveLiveDocState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deriveLiveDocState.d.ts","sourceRoot":"","sources":["../../../src/pds/utils/deriveLiveDocState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,eAAe,GAAG,WAAW,GAAG,qBAAqB,GAAG,OAAO,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,eAAe,GAAG,SAAS,EAC5C,QAAQ,EAAE,OAAO,GAChB,QAAQ,GAAG,SAAS,CAKtB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps the publish state to a badge DocState — but ONLY on the Live (main)
|
|
3
|
+
* branch. On any other branch, or while the published status is still unknown,
|
|
4
|
+
* returns `undefined` so the badge is hidden (we never show a guessed state).
|
|
5
|
+
*
|
|
6
|
+
* On Live:
|
|
7
|
+
* 'published' → 'live' ("Live")
|
|
8
|
+
* 'unpublished-changes' → 'unpublished' ("Changes pending publishing")
|
|
9
|
+
* 'draft' → 'unpublished' ("Changes pending publishing")
|
|
10
|
+
*
|
|
11
|
+
* @param publishedStatus - The published status from useP1Editor (or undefined while loading).
|
|
12
|
+
* @param isOnMain - Whether the editor is on the Live (main) branch.
|
|
13
|
+
*/
|
|
14
|
+
export function deriveLiveDocState(publishedStatus, isOnMain) {
|
|
15
|
+
if (!isOnMain || !publishedStatus) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
return publishedStatus === 'published' ? 'live' : 'unpublished';
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=deriveLiveDocState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deriveLiveDocState.js","sourceRoot":"","sources":["../../../src/pds/utils/deriveLiveDocState.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAChC,eAA4C,EAC5C,QAAiB;IAEjB,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,eAAe,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;AAClE,CAAC"}
|