@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
package/dist/server.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { isRouteTemplatePath, pagePathFromCatchAllSegments, isCanonicalTemplateP
|
|
|
3
3
|
export { buildRemoteDatasourceRegistry } from "./data/remote-datasources/remote-datasource-registry.js";
|
|
4
4
|
export type { RemoteDatasourceDefinition, RemoteDatasourceFieldDoc } from "./data/remote-datasources/remote-datasource-registry.js";
|
|
5
5
|
export type { RouteRow, RouteKind } from "./data/page-store.js";
|
|
6
|
-
export {
|
|
6
|
+
export { isSemanticPatchEntry, isOverrideEntry } from "./data/page-store.js";
|
|
7
7
|
export type { RemoteDatasourceScope } from "./data/remote-datasources/user-remote-datasource-types.js";
|
|
8
8
|
export { resolveCrossPageTemplates } from "./data/cross-reference-resolve.js";
|
|
9
9
|
export { resolveStringTemplates, resolveDataTemplates, } from "./data/resolve-data-templates.js";
|
|
@@ -19,5 +19,4 @@ export { runWithAuthToken } from "./data/dal/request-auth.js";
|
|
|
19
19
|
export { createStaticPage, createCollectionTemplate, deletePageAtPath, resolvePageData, resolveCanonicalForPatchBase, persistPublishedPage, listRoutes, listRouteTemplateKeysFromDatabase, createCollectionOverride, listOverridePathsForBase, } from "./data/page-store.js";
|
|
20
20
|
export type { HttpJsonRemoteDatasourceDefinition, RemoteDatasourceFieldDocInput, } from "./data/remote-datasources/user-remote-datasource-types.js";
|
|
21
21
|
export { normalizeRemoteDatasourceDefinition, listGlobalRemoteDatasources, upsertGlobalRemoteDatasource, deleteGlobalRemoteDatasource, listPageRemoteDatasources, upsertPageRemoteDatasource, deletePageRemoteDatasource, listRemoteDatasourcesForPage, idConflictsForRemoteDatasourceScope, } from "./data/remote-datasources/user-remote-datasource-store.js";
|
|
22
|
-
export { default as StructurePage } from "./p1/pages/structure-page.js";
|
|
23
22
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,iCAAiC,EACjC,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,yDAAyD,CAAC;AACxG,YAAY,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AACpI,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,iCAAiC,EACjC,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,yDAAyD,CAAC;AACxG,YAAY,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AACpI,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAGvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,+BAA+B,GACrC,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,oBAAoB,EACpB,UAAU,EACV,iCAAiC,EACjC,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,kCAAkC,EAClC,6BAA6B,GAC9B,MAAM,2DAA2D,CAAC;AAEnE,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,2DAA2D,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
export { normalizePath, stripTrailingSlash, isReservedPath, PATH_REGEX } from "./data/paths.js";
|
|
6
6
|
export { isRouteTemplatePath, pagePathFromCatchAllSegments, isCanonicalTemplatePath, templatePathParamNames, defaultInstancePathFromTemplate, editorPathHref, publicPagePathHref, listRouteTemplateKeys, matchConcretePathToTemplateParams, pathSegments, } from "./data/route-templates.js";
|
|
7
7
|
export { buildRemoteDatasourceRegistry } from "./data/remote-datasources/remote-datasource-registry.js";
|
|
8
|
-
export {
|
|
8
|
+
export { isSemanticPatchEntry, isOverrideEntry } from "./data/page-store.js";
|
|
9
9
|
// --- Server-only lib exports ---
|
|
10
10
|
export { resolveCrossPageTemplates } from "./data/cross-reference-resolve.js";
|
|
11
11
|
export { resolveStringTemplates, resolveDataTemplates, } from "./data/resolve-data-templates.js";
|
|
@@ -19,6 +19,4 @@ export { ensureInitialized } from "./data/dal/init.js";
|
|
|
19
19
|
export { runWithAuthToken } from "./data/dal/request-auth.js";
|
|
20
20
|
export { createStaticPage, createCollectionTemplate, deletePageAtPath, resolvePageData, resolveCanonicalForPatchBase, persistPublishedPage, listRoutes, listRouteTemplateKeysFromDatabase, createCollectionOverride, listOverridePathsForBase, } from "./data/page-store.js";
|
|
21
21
|
export { normalizeRemoteDatasourceDefinition, listGlobalRemoteDatasources, upsertGlobalRemoteDatasource, deleteGlobalRemoteDatasource, listPageRemoteDatasources, upsertPageRemoteDatasource, deletePageRemoteDatasource, listRemoteDatasourcesForPage, idConflictsForRemoteDatasourceScope, } from "./data/remote-datasources/user-remote-datasource-store.js";
|
|
22
|
-
// --- Server page component exports ---
|
|
23
|
-
export { default as StructurePage } from "./p1/pages/structure-page.js";
|
|
24
22
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,yDAAyD;AAEzD,kFAAkF;AAClF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,iCAAiC,EACjC,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,yDAAyD,CAAC;AAGxG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,yDAAyD;AAEzD,kFAAkF;AAClF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,iCAAiC,EACjC,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,yDAAyD,CAAC;AAGxG,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG7E,kCAAkC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAK/B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAGL,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EACL,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,oBAAoB,EACpB,UAAU,EACV,iCAAiC,EACjC,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,2DAA2D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pantheon-systems/puck-css",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Puck editor integration with Collaborative State System",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -75,8 +75,9 @@
|
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"fast-json-patch": "^3.1.1",
|
|
77
77
|
"jsep": "^1.4.0",
|
|
78
|
+
"lodash.isequal": "^4.5.0",
|
|
78
79
|
"yjs": "^13.6.29",
|
|
79
|
-
"@pantheon-systems/css-client": "0.
|
|
80
|
+
"@pantheon-systems/css-client": "0.5.0"
|
|
80
81
|
},
|
|
81
82
|
"devDependencies": {
|
|
82
83
|
"@floating-ui/react": "^0.27.19",
|
|
@@ -85,6 +86,7 @@
|
|
|
85
86
|
"@testing-library/dom": "^10.4.1",
|
|
86
87
|
"@testing-library/jest-dom": "^6.9.1",
|
|
87
88
|
"@testing-library/react": "^16.3.2",
|
|
89
|
+
"@types/lodash.isequal": "^4.5.8",
|
|
88
90
|
"@types/react": "^19.2.14",
|
|
89
91
|
"@types/react-dom": "^19.2.3",
|
|
90
92
|
"@vitejs/plugin-react": "^4.7.0",
|
|
@@ -44,7 +44,9 @@
|
|
|
44
44
|
--puck-color-grey-01: var(--pds-color-fg-default);
|
|
45
45
|
/* grey-02/04: required by tests — map to near-dark fallbacks */
|
|
46
46
|
--puck-color-grey-02: oklch(0.96 0 0);
|
|
47
|
-
|
|
47
|
+
/* grey-03: outline sidebar item text (unselected). Secondary foreground gives
|
|
48
|
+
legible mid-grey in light mode while keeping visual hierarchy vs selected. */
|
|
49
|
+
--puck-color-grey-03: var(--pds-color-fg-default-secondary);
|
|
48
50
|
--puck-color-grey-04: oklch(0.88 0 0);
|
|
49
51
|
/* grey-05 (section header text, array labels, disabled text)
|
|
50
52
|
Puck uses #767676 by default — map to PDSv2 secondary foreground.
|
|
@@ -53,10 +53,11 @@ describe('PuckEditorTheme.css', () => {
|
|
|
53
53
|
expect(css).toContain('var(--pds-color-bg-default-secondary)');
|
|
54
54
|
});
|
|
55
55
|
|
|
56
|
-
it('maps --puck-color-grey-03 to PDS
|
|
56
|
+
it('maps --puck-color-grey-03 to PDS secondary foreground', () => {
|
|
57
57
|
const css = readThemeCSS();
|
|
58
|
-
expect(css).
|
|
59
|
-
|
|
58
|
+
expect(css).toMatch(
|
|
59
|
+
/--puck-color-grey-03:\s*var\(--pds-color-fg-default-secondary\)/,
|
|
60
|
+
);
|
|
60
61
|
});
|
|
61
62
|
|
|
62
63
|
it('maps --puck-color-grey-05 to PDS input border', () => {
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useTemplateEditor Hook
|
|
3
|
-
*
|
|
4
|
-
* Hook for editing templates.
|
|
5
|
-
*/
|
|
6
|
-
import type { Template, UpdateTemplateParams } from '../types.js';
|
|
7
|
-
import type { TemplateStore } from '../stores/template-store.js';
|
|
8
|
-
export interface UseTemplateEditorReturn {
|
|
9
|
-
template: Template | undefined;
|
|
10
|
-
loading: boolean;
|
|
11
|
-
saving: boolean;
|
|
12
|
-
error: Error | null;
|
|
13
|
-
save: (params: UpdateTemplateParams) => Promise<void>;
|
|
14
|
-
reload: () => Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Hook for editing a template.
|
|
18
|
-
*/
|
|
19
|
-
export declare function useTemplateEditor(templateId: string, store: TemplateStore): UseTemplateEditorReturn;
|
|
20
|
-
//# sourceMappingURL=useTemplateEditor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTemplateEditor.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/editor/useTemplateEditor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,GACnB,uBAAuB,CAuDzB"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useTemplateEditor Hook
|
|
3
|
-
*
|
|
4
|
-
* Hook for editing templates.
|
|
5
|
-
*/
|
|
6
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
7
|
-
/**
|
|
8
|
-
* Hook for editing a template.
|
|
9
|
-
*/
|
|
10
|
-
export function useTemplateEditor(templateId, store) {
|
|
11
|
-
const [template, setTemplate] = useState();
|
|
12
|
-
const [loading, setLoading] = useState(true);
|
|
13
|
-
const [saving, setSaving] = useState(false);
|
|
14
|
-
const [error, setError] = useState(null);
|
|
15
|
-
const load = useCallback(async (signal) => {
|
|
16
|
-
setLoading(true);
|
|
17
|
-
setError(null);
|
|
18
|
-
try {
|
|
19
|
-
const loaded = await store.get(templateId);
|
|
20
|
-
if (!signal?.aborted) {
|
|
21
|
-
setTemplate(loaded);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
catch (err) {
|
|
25
|
-
if (!signal?.aborted) {
|
|
26
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
if (!signal?.aborted) {
|
|
31
|
-
setLoading(false);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}, [templateId, store]);
|
|
35
|
-
useEffect(() => {
|
|
36
|
-
const controller = new AbortController();
|
|
37
|
-
void load(controller.signal);
|
|
38
|
-
return () => controller.abort();
|
|
39
|
-
}, [load]);
|
|
40
|
-
const save = useCallback(async (params) => {
|
|
41
|
-
try {
|
|
42
|
-
setSaving(true);
|
|
43
|
-
const updated = await store.update(templateId, params);
|
|
44
|
-
setTemplate(updated);
|
|
45
|
-
setSaving(false);
|
|
46
|
-
}
|
|
47
|
-
catch (err) {
|
|
48
|
-
setSaving(false);
|
|
49
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
50
|
-
throw err;
|
|
51
|
-
}
|
|
52
|
-
}, [templateId, store]);
|
|
53
|
-
return {
|
|
54
|
-
template,
|
|
55
|
-
loading,
|
|
56
|
-
saving,
|
|
57
|
-
error,
|
|
58
|
-
save,
|
|
59
|
-
reload: load,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=useTemplateEditor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTemplateEditor.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/editor/useTemplateEditor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAazD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,KAAoB;IAEpB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAwB,CAAC;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,MAAoB,EAAE,EAAE;QACtD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,WAAW,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,IAAI,GAAG,WAAW,CACtB,KAAK,EAAE,MAA4B,EAAE,EAAE;QACrC,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACvD,WAAW,CAAC,OAAO,CAAC,CAAC;YACrB,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EACD,CAAC,UAAU,EAAE,KAAK,CAAC,CACpB,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TemplateManagerOverlay
|
|
3
|
-
*
|
|
4
|
-
* Full-screen overlay for managing content type templates.
|
|
5
|
-
* Provides a list view of templates and a Puck-based editor for
|
|
6
|
-
* creating and editing templates.
|
|
7
|
-
*/
|
|
8
|
-
import React from 'react';
|
|
9
|
-
import type { P1Client } from '@pantheon-systems/css-client';
|
|
10
|
-
export interface TemplateManagerOverlayProps {
|
|
11
|
-
client: P1Client;
|
|
12
|
-
siteId: string;
|
|
13
|
-
branchId: string;
|
|
14
|
-
puckConfig: unknown;
|
|
15
|
-
onClose: () => void;
|
|
16
|
-
}
|
|
17
|
-
export declare function TemplateManagerOverlay({ client, siteId, branchId, puckConfig, onClose, }: TemplateManagerOverlayProps): React.ReactElement;
|
|
18
|
-
//# sourceMappingURL=TemplateManagerOverlay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateManagerOverlay.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateManagerOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAQ7D,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAUD,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,OAAO,GACR,EAAE,2BAA2B,GAAG,KAAK,CAAC,YAAY,CAkSlD"}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* TemplateManagerOverlay
|
|
4
|
-
*
|
|
5
|
-
* Full-screen overlay for managing content type templates.
|
|
6
|
-
* Provides a list view of templates and a Puck-based editor for
|
|
7
|
-
* creating and editing templates.
|
|
8
|
-
*/
|
|
9
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
10
|
-
import { createPortal } from 'react-dom';
|
|
11
|
-
import { useTemplateList } from '../hooks/useTemplateList.js';
|
|
12
|
-
import { scaffoldFromTemplate } from '../editor/useTemplateScaffold.js';
|
|
13
|
-
import { TemplatePinPanel } from './TemplatePinPanel.js';
|
|
14
|
-
import { dataToCreateParams, dataToUpdateParams } from './dataToTemplate.js';
|
|
15
|
-
export function TemplateManagerOverlay({ client, siteId, branchId, puckConfig, onClose, }) {
|
|
16
|
-
const { templates, loading, refresh } = useTemplateList(client, siteId, branchId);
|
|
17
|
-
const [mode, setMode] = useState('list');
|
|
18
|
-
const [editingTemplate, setEditingTemplate] = useState(null);
|
|
19
|
-
const [saving, setSaving] = useState(false);
|
|
20
|
-
const [error, setError] = useState(null);
|
|
21
|
-
// Editor state
|
|
22
|
-
const [editorData, setEditorData] = useState({
|
|
23
|
-
content: [],
|
|
24
|
-
root: { props: {} },
|
|
25
|
-
});
|
|
26
|
-
const [pinMap, setPinMap] = useState(new Map());
|
|
27
|
-
const [metadata, setMetadata] = useState({
|
|
28
|
-
name: '',
|
|
29
|
-
label: '',
|
|
30
|
-
description: '',
|
|
31
|
-
});
|
|
32
|
-
const handleCreate = useCallback(() => {
|
|
33
|
-
setMode('create');
|
|
34
|
-
setEditingTemplate(null);
|
|
35
|
-
setEditorData({ content: [], root: { props: {} } });
|
|
36
|
-
setPinMap(new Map());
|
|
37
|
-
setMetadata({ name: '', label: '', description: '' });
|
|
38
|
-
setError(null);
|
|
39
|
-
}, []);
|
|
40
|
-
const handleEdit = useCallback((template) => {
|
|
41
|
-
setMode('edit');
|
|
42
|
-
setEditingTemplate(template);
|
|
43
|
-
const data = scaffoldFromTemplate(template);
|
|
44
|
-
setEditorData(data);
|
|
45
|
-
const newPinMap = new Map();
|
|
46
|
-
data.content.forEach((comp, idx) => {
|
|
47
|
-
const compId = comp.props.id;
|
|
48
|
-
newPinMap.set(compId, (template.components ?? [])[idx]?.pinned ?? false);
|
|
49
|
-
});
|
|
50
|
-
setPinMap(newPinMap);
|
|
51
|
-
setMetadata({
|
|
52
|
-
name: template.name,
|
|
53
|
-
label: template.label,
|
|
54
|
-
description: template.description ?? '',
|
|
55
|
-
defaultUrlPattern: template.defaultUrlPattern ?? '',
|
|
56
|
-
});
|
|
57
|
-
setError(null);
|
|
58
|
-
}, []);
|
|
59
|
-
const handleDelete = useCallback(async (templateId) => {
|
|
60
|
-
if (!window.confirm('Delete this template? Documents using it will not be affected.'))
|
|
61
|
-
return;
|
|
62
|
-
try {
|
|
63
|
-
await client.templates.delete(siteId, branchId, templateId);
|
|
64
|
-
await refresh();
|
|
65
|
-
}
|
|
66
|
-
catch (err) {
|
|
67
|
-
setError(err instanceof Error ? err.message : 'Failed to delete template');
|
|
68
|
-
}
|
|
69
|
-
}, [client, siteId, branchId, refresh]);
|
|
70
|
-
const handleSave = useCallback(async () => {
|
|
71
|
-
if (!metadata.name.trim() || !metadata.label.trim()) {
|
|
72
|
-
setError('Name and label are required');
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
const pattern = metadata.defaultUrlPattern?.trim() ?? '';
|
|
76
|
-
if (pattern && !pattern.startsWith('/')) {
|
|
77
|
-
setError('URL pattern must start with /');
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
if (pattern && /[?#]/.test(pattern)) {
|
|
81
|
-
setError('URL pattern must not contain ? or #');
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
if (saving)
|
|
85
|
-
return;
|
|
86
|
-
setSaving(true);
|
|
87
|
-
setError(null);
|
|
88
|
-
try {
|
|
89
|
-
if (mode === 'create') {
|
|
90
|
-
const params = dataToCreateParams(editorData, pinMap, metadata);
|
|
91
|
-
await client.templates.create(siteId, branchId, params);
|
|
92
|
-
}
|
|
93
|
-
else if (editingTemplate) {
|
|
94
|
-
const params = dataToUpdateParams(editorData, pinMap, metadata);
|
|
95
|
-
await client.templates.update(siteId, branchId, editingTemplate.id, params);
|
|
96
|
-
}
|
|
97
|
-
await refresh();
|
|
98
|
-
setMode('list');
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
setError(err instanceof Error ? err.message : 'Failed to save template');
|
|
102
|
-
}
|
|
103
|
-
finally {
|
|
104
|
-
setSaving(false);
|
|
105
|
-
}
|
|
106
|
-
}, [mode, editingTemplate, editorData, pinMap, metadata, client, siteId, branchId, refresh]);
|
|
107
|
-
const handleCancel = useCallback(() => {
|
|
108
|
-
setMode('list');
|
|
109
|
-
setEditingTemplate(null);
|
|
110
|
-
setError(null);
|
|
111
|
-
}, []);
|
|
112
|
-
const handleTogglePin = useCallback((componentId, pinned) => {
|
|
113
|
-
setPinMap((prev) => {
|
|
114
|
-
const next = new Map(prev);
|
|
115
|
-
next.set(componentId, pinned);
|
|
116
|
-
return next;
|
|
117
|
-
});
|
|
118
|
-
}, []);
|
|
119
|
-
const handlePuckChange = useCallback((data) => {
|
|
120
|
-
const d = data;
|
|
121
|
-
setEditorData(d);
|
|
122
|
-
// Preserve pin state for existing components, default new ones to unpinned
|
|
123
|
-
setPinMap((prev) => {
|
|
124
|
-
const next = new Map();
|
|
125
|
-
for (const comp of d.content) {
|
|
126
|
-
const id = comp.props.id;
|
|
127
|
-
next.set(id, prev.get(id) ?? false);
|
|
128
|
-
}
|
|
129
|
-
return next;
|
|
130
|
-
});
|
|
131
|
-
}, []);
|
|
132
|
-
// Close on Escape
|
|
133
|
-
useEffect(() => {
|
|
134
|
-
const handler = (e) => {
|
|
135
|
-
if (e.key === 'Escape') {
|
|
136
|
-
if (mode === 'list')
|
|
137
|
-
onClose();
|
|
138
|
-
else
|
|
139
|
-
handleCancel();
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
window.addEventListener('keydown', handler);
|
|
143
|
-
return () => window.removeEventListener('keydown', handler);
|
|
144
|
-
}, [mode, onClose, handleCancel]);
|
|
145
|
-
const components = editorData.content.map((c) => ({
|
|
146
|
-
id: c.props.id,
|
|
147
|
-
type: c.type,
|
|
148
|
-
}));
|
|
149
|
-
const overlay = (_jsxs("div", { className: "template-manager-overlay", role: "dialog", "aria-label": "Template Manager", children: [_jsxs("div", { className: "template-manager-overlay__header", children: [_jsx("h2", { className: "template-manager-overlay__title", children: mode === 'list' ? 'Manage Templates' : mode === 'create' ? 'New Template' : `Edit: ${editingTemplate?.label}` }), _jsx("button", { type: "button", className: "template-manager-overlay__close", onClick: mode === 'list' ? onClose : handleCancel, "aria-label": "Close template manager", children: mode === 'list' ? '×' : '← Back' })] }), error && (_jsx("div", { role: "alert", className: "template-manager-overlay__error", children: error })), mode === 'list' ? (_jsxs("div", { className: "template-manager-overlay__list", children: [_jsx("button", { type: "button", className: "pds-button pds-button--primary", onClick: handleCreate, children: "+ New Template" }), loading ? (_jsx("div", { className: "template-manager-overlay__loading", children: "Loading templates..." })) : templates.length === 0 ? (_jsx("div", { className: "template-manager-overlay__empty", children: "No templates yet. Create one to get started." })) : (_jsx("ul", { className: "template-manager-overlay__template-list", children: templates.map((t) => (_jsxs("li", { className: "template-manager-overlay__template-item", children: [_jsxs("div", { className: "template-manager-overlay__template-info", children: [_jsx("span", { className: "template-manager-overlay__template-label", children: t.label || t.name }), _jsxs("span", { className: "template-manager-overlay__template-meta", children: [(t.components ?? []).length, " component", (t.components ?? []).length !== 1 ? 's' : '', " \u00B7 v", t.version] })] }), _jsxs("div", { className: "template-manager-overlay__template-actions", children: [_jsx("button", { type: "button", className: "pds-button pds-button--secondary pds-button--sm", onClick: () => handleEdit(t), children: "Edit" }), _jsx("button", { type: "button", className: "pds-button pds-button--critical-secondary pds-button--sm", onClick: () => handleDelete(t.id), "aria-label": `Delete ${t.label}`, children: "Delete" })] })] }, t.id))) }))] })) : (_jsxs("div", { className: "template-manager-overlay__editor", children: [_jsxs("div", { className: "template-manager-overlay__editor-sidebar", children: [_jsxs("div", { className: "template-manager-overlay__metadata", children: [_jsxs("label", { className: "template-manager-overlay__field", children: [_jsx("span", { className: "template-manager-overlay__field-label", children: "Name" }), _jsx("input", { type: "text", value: metadata.name, onChange: (e) => setMetadata((m) => ({ ...m, name: e.target.value })), placeholder: "blog-post", disabled: mode === 'edit', className: "template-manager-overlay__input" })] }), _jsxs("label", { className: "template-manager-overlay__field", children: [_jsx("span", { className: "template-manager-overlay__field-label", children: "Label" }), _jsx("input", { type: "text", value: metadata.label, onChange: (e) => setMetadata((m) => ({ ...m, label: e.target.value })), placeholder: "Blog Post", className: "template-manager-overlay__input" })] }), _jsxs("label", { className: "template-manager-overlay__field", children: [_jsx("span", { className: "template-manager-overlay__field-label", children: "Description" }), _jsx("textarea", { value: metadata.description, onChange: (e) => setMetadata((m) => ({ ...m, description: e.target.value })), placeholder: "Optional description", rows: 2, className: "template-manager-overlay__textarea" })] }), _jsxs("label", { className: "template-manager-overlay__field", children: [_jsx("span", { className: "template-manager-overlay__field-label", children: "Default URL pattern" }), _jsx("input", { type: "text", value: metadata.defaultUrlPattern ?? '', onChange: (e) => setMetadata((m) => ({ ...m, defaultUrlPattern: e.target.value })), placeholder: "/blog/:year/:month/:slug", className: "template-manager-overlay__input" })] })] }), _jsx(TemplatePinPanel, { components: components, pinMap: pinMap, onTogglePin: handleTogglePin }), _jsxs("div", { className: "template-manager-overlay__save-actions", children: [_jsx("button", { type: "button", className: "pds-button pds-button--primary", onClick: handleSave, disabled: saving, children: saving ? 'Saving...' : mode === 'create' ? 'Create Template' : 'Save Changes' }), _jsx("button", { type: "button", className: "pds-button pds-button--secondary", onClick: handleCancel, children: "Cancel" })] })] }), _jsx("div", { className: "template-manager-overlay__editor-canvas", children: _jsx(PuckEditor, { config: puckConfig, data: editorData, onChange: handlePuckChange }) })] }))] }));
|
|
150
|
-
return createPortal(overlay, document.body);
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Wrapper that lazily loads and renders Puck for template editing.
|
|
154
|
-
*/
|
|
155
|
-
function PuckEditor({ config, data, onChange, }) {
|
|
156
|
-
const [Puck, setPuck] = useState(null);
|
|
157
|
-
useEffect(() => {
|
|
158
|
-
import('@puckeditor/core').then((mod) => {
|
|
159
|
-
setPuck(() => mod.Puck);
|
|
160
|
-
});
|
|
161
|
-
}, []);
|
|
162
|
-
if (!Puck) {
|
|
163
|
-
return _jsx("div", { className: "template-manager-overlay__puck-loading", children: "Loading editor..." });
|
|
164
|
-
}
|
|
165
|
-
return _jsx(Puck, { config: config, data: data, onChange: onChange });
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=TemplateManagerOverlay.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateManagerOverlay.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplateManagerOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TemplatePinPanel
|
|
3
|
-
*
|
|
4
|
-
* Displays a list of components in the template editor with pin toggles.
|
|
5
|
-
* Admins use this to mark which components are "pinned" (locked in position).
|
|
6
|
-
*/
|
|
7
|
-
import React from 'react';
|
|
8
|
-
export interface TemplatePinPanelComponent {
|
|
9
|
-
id: string;
|
|
10
|
-
type: string;
|
|
11
|
-
}
|
|
12
|
-
export interface TemplatePinPanelProps {
|
|
13
|
-
components: TemplatePinPanelComponent[];
|
|
14
|
-
pinMap: Map<string, boolean>;
|
|
15
|
-
onTogglePin: (componentId: string, pinned: boolean) => void;
|
|
16
|
-
}
|
|
17
|
-
export declare function TemplatePinPanel({ components, pinMap, onTogglePin, }: TemplatePinPanelProps): React.ReactElement;
|
|
18
|
-
//# sourceMappingURL=TemplatePinPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplatePinPanel.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplatePinPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7D;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,MAAM,EACN,WAAW,GACZ,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAgC5C"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export function TemplatePinPanel({ components, pinMap, onTogglePin, }) {
|
|
3
|
-
if (components.length === 0) {
|
|
4
|
-
return (_jsx("div", { className: "template-pin-panel template-pin-panel--empty", children: _jsx("p", { children: "No components added yet. Drag components into the canvas to build your template." }) }));
|
|
5
|
-
}
|
|
6
|
-
return (_jsxs("div", { className: "template-pin-panel", children: [_jsx("div", { className: "template-pin-panel__header", children: "Components" }), _jsx("ul", { className: "template-pin-panel__list", children: components.map((comp) => {
|
|
7
|
-
const isPinned = pinMap.get(comp.id) ?? false;
|
|
8
|
-
return (_jsxs("li", { className: "template-pin-panel__item", children: [_jsx("span", { className: "template-pin-panel__type", children: comp.type }), _jsxs("label", { className: "template-pin-panel__pin-label", children: [_jsx("input", { type: "checkbox", checked: isPinned, onChange: (e) => onTogglePin(comp.id, e.target.checked) }), "Pinned"] })] }, comp.id));
|
|
9
|
-
}) })] }));
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=TemplatePinPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplatePinPanel.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/TemplatePinPanel.tsx"],"names":[],"mappings":";AAoBA,MAAM,UAAU,gBAAgB,CAAC,EAC/B,UAAU,EACV,MAAM,EACN,WAAW,GACW;IACtB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CACL,cAAK,SAAS,EAAC,8CAA8C,YAC3D,2GAAuF,GACnF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,oBAAoB,aACjC,cAAK,SAAS,EAAC,4BAA4B,2BAAiB,EAC5D,aAAI,SAAS,EAAC,0BAA0B,YACrC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;oBAC9C,OAAO,CACL,cAAkB,SAAS,EAAC,0BAA0B,aACpD,eAAM,SAAS,EAAC,0BAA0B,YAAE,IAAI,CAAC,IAAI,GAAQ,EAC7D,iBAAO,SAAS,EAAC,+BAA+B,aAC9C,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GACvD,cAEI,KATD,IAAI,CAAC,EAAE,CAUX,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,IACD,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert Puck data + pin map to template creation/update params.
|
|
3
|
-
*/
|
|
4
|
-
import type { CreateTemplateParams, UpdateTemplateParams } from '../types.js';
|
|
5
|
-
interface PuckComponent {
|
|
6
|
-
type: string;
|
|
7
|
-
props: Record<string, unknown>;
|
|
8
|
-
}
|
|
9
|
-
interface PuckDataShape {
|
|
10
|
-
content: PuckComponent[];
|
|
11
|
-
root: {
|
|
12
|
-
props: Record<string, unknown>;
|
|
13
|
-
};
|
|
14
|
-
zones?: Record<string, PuckComponent[]>;
|
|
15
|
-
}
|
|
16
|
-
export interface TemplateMetadataInput {
|
|
17
|
-
name: string;
|
|
18
|
-
label: string;
|
|
19
|
-
description?: string;
|
|
20
|
-
defaultUrlPattern?: string;
|
|
21
|
-
}
|
|
22
|
-
export declare function dataToCreateParams(data: PuckDataShape, pinMap: Map<string, boolean>, metadata: TemplateMetadataInput): CreateTemplateParams;
|
|
23
|
-
export declare function dataToUpdateParams(data: PuckDataShape, pinMap: Map<string, boolean>, metadata: Partial<TemplateMetadataInput>): UpdateTemplateParams;
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=dataToTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataToTemplate.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/dataToTemplate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAqB,MAAM,aAAa,CAAC;AAEjG,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,qBAAqB,GAC9B,oBAAoB,CAiBtB;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACvC,oBAAoB,CAgBtB"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert Puck data + pin map to template creation/update params.
|
|
3
|
-
*/
|
|
4
|
-
export function dataToCreateParams(data, pinMap, metadata) {
|
|
5
|
-
const components = data.content.map((comp) => {
|
|
6
|
-
const { id: _id, ...defaultProps } = comp.props;
|
|
7
|
-
return {
|
|
8
|
-
type: comp.type,
|
|
9
|
-
pinned: pinMap.get(comp.props.id) ?? false,
|
|
10
|
-
defaultProps,
|
|
11
|
-
};
|
|
12
|
-
});
|
|
13
|
-
return {
|
|
14
|
-
name: metadata.name,
|
|
15
|
-
label: metadata.label,
|
|
16
|
-
description: metadata.description,
|
|
17
|
-
defaultUrlPattern: metadata.defaultUrlPattern,
|
|
18
|
-
components,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export function dataToUpdateParams(data, pinMap, metadata) {
|
|
22
|
-
const components = data.content.map((comp) => {
|
|
23
|
-
const { id: _id, ...defaultProps } = comp.props;
|
|
24
|
-
return {
|
|
25
|
-
type: comp.type,
|
|
26
|
-
pinned: pinMap.get(comp.props.id) ?? false,
|
|
27
|
-
defaultProps,
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
return {
|
|
31
|
-
label: metadata.label,
|
|
32
|
-
description: metadata.description,
|
|
33
|
-
defaultUrlPattern: metadata.defaultUrlPattern,
|
|
34
|
-
components,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=dataToTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataToTemplate.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/dataToTemplate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,MAAM,UAAU,kBAAkB,CAChC,IAAmB,EACnB,MAA4B,EAC5B,QAA+B;IAE/B,MAAM,UAAU,GAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAY,CAAC,IAAI,KAAK;YACpD,YAAY;SACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAmB,EACnB,MAA4B,EAC5B,QAAwC;IAExC,MAAM,UAAU,GAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAY,CAAC,IAAI,KAAK;YACpD,YAAY;SACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-tree.d.ts","sourceRoot":"","sources":["../../../src/p1/editor/json-tree.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAkJvB,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,2CAmBnD"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { mono, muted } from "../../data/styles";
|
|
4
|
-
export { mono, muted };
|
|
5
|
-
const stringColor = "var(--puck-color-rose-04, #be123c)";
|
|
6
|
-
const numberColor = "var(--puck-color-azure-04, #2563eb)";
|
|
7
|
-
const boolColor = "var(--puck-color-violet-04, #6d28d9)";
|
|
8
|
-
function JsonPrimitive({ value }) {
|
|
9
|
-
if (value === null) {
|
|
10
|
-
return _jsx("span", { style: { ...muted, fontStyle: "italic" }, children: "null" });
|
|
11
|
-
}
|
|
12
|
-
if (typeof value === "string") {
|
|
13
|
-
return _jsx("span", { style: { color: stringColor }, children: JSON.stringify(value) });
|
|
14
|
-
}
|
|
15
|
-
if (typeof value === "number") {
|
|
16
|
-
return _jsx("span", { style: { color: numberColor }, children: value });
|
|
17
|
-
}
|
|
18
|
-
return _jsx("span", { style: { color: boolColor }, children: String(value) });
|
|
19
|
-
}
|
|
20
|
-
function JsonTreeValue({ name, value, depth, }) {
|
|
21
|
-
const pad = depth * 12;
|
|
22
|
-
if (value === null || value === undefined) {
|
|
23
|
-
return (_jsxs("div", { style: { paddingLeft: pad, ...mono, fontSize: 11, marginBottom: 2 }, children: [name != null && (_jsxs(_Fragment, { children: [_jsx("span", { style: { color: "var(--puck-color-grey-05, #4b5563)" }, children: name }), _jsx("span", { style: muted, children: ": " })] })), value === null ? (_jsx(JsonPrimitive, { value: null })) : (_jsx("span", { style: { ...muted, fontStyle: "italic" }, children: "undefined" }))] }));
|
|
24
|
-
}
|
|
25
|
-
if (typeof value !== "object") {
|
|
26
|
-
return (_jsxs("div", { style: { paddingLeft: pad, ...mono, fontSize: 11, marginBottom: 2 }, children: [name != null && (_jsxs(_Fragment, { children: [_jsx("span", { style: { color: "var(--puck-color-grey-05, #4b5563)" }, children: name }), _jsx("span", { style: muted, children: ": " })] })), _jsx(JsonPrimitive, { value: value })] }));
|
|
27
|
-
}
|
|
28
|
-
if (Array.isArray(value)) {
|
|
29
|
-
if (value.length === 0) {
|
|
30
|
-
return (_jsxs("div", { style: { paddingLeft: pad, ...mono, fontSize: 11, marginBottom: 2 }, children: [name != null && (_jsxs(_Fragment, { children: [_jsx("span", { style: { color: "var(--puck-color-grey-05, #4b5563)" }, children: name }), _jsx("span", { style: muted, children: ": " })] })), _jsx("span", { style: muted, children: "[]" })] }));
|
|
31
|
-
}
|
|
32
|
-
return (_jsxs("details", { open: depth < 1, style: { marginBottom: 2 }, children: [_jsxs("summary", { style: {
|
|
33
|
-
paddingLeft: pad,
|
|
34
|
-
cursor: "pointer",
|
|
35
|
-
...mono,
|
|
36
|
-
fontSize: 11,
|
|
37
|
-
}, children: [name != null && (_jsxs("span", { style: { color: "var(--puck-color-grey-05, #4b5563)" }, children: [name, ": "] })), _jsxs("span", { style: muted, children: ["[", value.length, "]"] })] }), _jsx("div", { style: { borderLeft: "1px solid var(--puck-color-grey-09, #e5e7eb)", marginLeft: pad + 4 }, children: value.map((item, i) => (_jsx(JsonTreeValue, { name: `${i}`, value: item, depth: depth + 1 }, i))) })] }));
|
|
38
|
-
}
|
|
39
|
-
const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
|
|
40
|
-
if (entries.length === 0) {
|
|
41
|
-
return (_jsxs("div", { style: { paddingLeft: pad, ...mono, fontSize: 11, marginBottom: 2 }, children: [name != null && (_jsxs(_Fragment, { children: [_jsx("span", { style: { color: "var(--puck-color-grey-05, #4b5563)" }, children: name }), _jsx("span", { style: muted, children: ": " })] })), _jsx("span", { style: muted, children: `{}` })] }));
|
|
42
|
-
}
|
|
43
|
-
return (_jsxs("details", { open: depth < 2, style: { marginBottom: 2 }, children: [_jsxs("summary", { style: {
|
|
44
|
-
paddingLeft: pad,
|
|
45
|
-
cursor: "pointer",
|
|
46
|
-
...mono,
|
|
47
|
-
fontSize: 11,
|
|
48
|
-
}, children: [name != null && (_jsxs("span", { style: { color: "var(--puck-color-grey-05, #4b5563)" }, children: [name, ": "] })), _jsx("span", { style: muted, children: `{${entries.length} keys}` })] }), _jsx("div", { style: { borderLeft: "1px solid var(--puck-color-grey-09, #e5e7eb)", marginLeft: pad + 4 }, children: entries.map(([k, v]) => (_jsx(JsonTreeValue, { name: k, value: v, depth: depth + 1 }, k))) })] }));
|
|
49
|
-
}
|
|
50
|
-
export function JsonTree({ data }) {
|
|
51
|
-
if (data === null || data === undefined) {
|
|
52
|
-
return _jsx("p", { style: { ...muted, margin: 0 }, children: "\u2014" });
|
|
53
|
-
}
|
|
54
|
-
return (_jsx("div", { style: {
|
|
55
|
-
marginTop: 8,
|
|
56
|
-
padding: 8,
|
|
57
|
-
background: "var(--puck-color-white, #fff)",
|
|
58
|
-
borderRadius: 4,
|
|
59
|
-
border: "1px solid var(--puck-color-grey-09, #e5e7eb)",
|
|
60
|
-
maxHeight: 320,
|
|
61
|
-
overflow: "auto",
|
|
62
|
-
}, children: _jsx(JsonTreeValue, { name: null, value: data, depth: 0 }) }));
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=json-tree.js.map
|