@pantheon-systems/puck-css 0.4.4 → 0.6.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.
Files changed (205) hide show
  1. package/dist/auth/P1AuthProvider.d.ts +1 -0
  2. package/dist/auth/P1AuthProvider.d.ts.map +1 -1
  3. package/dist/auth/P1AuthProvider.js +9 -0
  4. package/dist/auth/P1AuthProvider.js.map +1 -1
  5. package/dist/auth/index.d.ts +1 -1
  6. package/dist/auth/index.d.ts.map +1 -1
  7. package/dist/auth/index.js +1 -1
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/core/types.d.ts +31 -4
  10. package/dist/core/types.d.ts.map +1 -1
  11. package/dist/data/dal/init.d.ts +7 -0
  12. package/dist/data/dal/init.d.ts.map +1 -1
  13. package/dist/data/dal/init.js +32 -0
  14. package/dist/data/dal/init.js.map +1 -1
  15. package/dist/data/dal/p1-store.d.ts +2 -0
  16. package/dist/data/dal/p1-store.d.ts.map +1 -1
  17. package/dist/data/dal/p1-store.js +14 -10
  18. package/dist/data/dal/p1-store.js.map +1 -1
  19. package/dist/data/fields.d.ts +12 -0
  20. package/dist/data/fields.d.ts.map +1 -0
  21. package/dist/data/fields.js +40 -0
  22. package/dist/data/fields.js.map +1 -0
  23. package/dist/data/page-store.d.ts +4 -3
  24. package/dist/data/page-store.d.ts.map +1 -1
  25. package/dist/data/page-store.js +6 -6
  26. package/dist/data/page-store.js.map +1 -1
  27. package/dist/data/paths.js +1 -1
  28. package/dist/data/paths.js.map +1 -1
  29. package/dist/editor/P1PuckProvider.d.ts.map +1 -1
  30. package/dist/editor/P1PuckProvider.js +102 -17
  31. package/dist/editor/P1PuckProvider.js.map +1 -1
  32. package/dist/editor/plugin/P1Plugin.d.ts +14 -2
  33. package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
  34. package/dist/editor/plugin/P1Plugin.js +31 -10
  35. package/dist/editor/plugin/P1Plugin.js.map +1 -1
  36. package/dist/editor/plugin/createP1Overrides.d.ts +7 -0
  37. package/dist/editor/plugin/createP1Overrides.d.ts.map +1 -1
  38. package/dist/editor/plugin/createP1Overrides.js +72 -2
  39. package/dist/editor/plugin/createP1Overrides.js.map +1 -1
  40. package/dist/editor/useDocuments.d.ts +1 -0
  41. package/dist/editor/useDocuments.d.ts.map +1 -1
  42. package/dist/editor/useDocuments.js +15 -2
  43. package/dist/editor/useDocuments.js.map +1 -1
  44. package/dist/editor/useP1Editor.d.ts.map +1 -1
  45. package/dist/editor/useP1Editor.js +41 -23
  46. package/dist/editor/useP1Editor.js.map +1 -1
  47. package/dist/editor/useP1Plugin.d.ts +5 -1
  48. package/dist/editor/useP1Plugin.d.ts.map +1 -1
  49. package/dist/editor/useP1Plugin.js +3 -0
  50. package/dist/editor/useP1Plugin.js.map +1 -1
  51. package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts +3 -7
  52. package/dist/features/content-type-templates/editor/useTemplateScaffold.d.ts.map +1 -1
  53. package/dist/features/content-type-templates/editor/useTemplateScaffold.js +6 -14
  54. package/dist/features/content-type-templates/editor/useTemplateScaffold.js.map +1 -1
  55. package/dist/features/content-type-templates/hooks/useTemplateList.d.ts +3 -3
  56. package/dist/features/content-type-templates/hooks/useTemplateList.d.ts.map +1 -1
  57. package/dist/features/content-type-templates/hooks/useTemplateList.js +5 -3
  58. package/dist/features/content-type-templates/hooks/useTemplateList.js.map +1 -1
  59. package/dist/features/content-type-templates/index.d.ts +1 -1
  60. package/dist/features/content-type-templates/index.d.ts.map +1 -1
  61. package/dist/features/content-type-templates/index.js.map +1 -1
  62. package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts +8 -3
  63. package/dist/features/content-type-templates/permissions/createPuckPermissions.d.ts.map +1 -1
  64. package/dist/features/content-type-templates/permissions/createPuckPermissions.js +18 -27
  65. package/dist/features/content-type-templates/permissions/createPuckPermissions.js.map +1 -1
  66. package/dist/features/content-type-templates/stores/template-store.d.ts +4 -4
  67. package/dist/features/content-type-templates/stores/template-store.d.ts.map +1 -1
  68. package/dist/features/content-type-templates/stores/template-store.js +33 -10
  69. package/dist/features/content-type-templates/stores/template-store.js.map +1 -1
  70. package/dist/features/content-type-templates/types.d.ts +1 -88
  71. package/dist/features/content-type-templates/types.d.ts.map +1 -1
  72. package/dist/features/content-type-templates/ui/ActionBarPinButton.d.ts.map +1 -1
  73. package/dist/features/content-type-templates/ui/ActionBarPinButton.js +16 -34
  74. package/dist/features/content-type-templates/ui/ActionBarPinButton.js.map +1 -1
  75. package/dist/features/content-type-templates/ui/TemplateDetailsPanel.d.ts +24 -0
  76. package/dist/features/content-type-templates/ui/TemplateDetailsPanel.d.ts.map +1 -0
  77. package/dist/features/content-type-templates/ui/TemplateDetailsPanel.js +124 -0
  78. package/dist/features/content-type-templates/ui/TemplateDetailsPanel.js.map +1 -0
  79. package/dist/features/content-type-templates/ui/TemplateSelector.d.ts +2 -2
  80. package/dist/features/content-type-templates/ui/TemplateSelector.d.ts.map +1 -1
  81. package/dist/features/content-type-templates/validation/structural-validation.d.ts.map +1 -1
  82. package/dist/features/content-type-templates/validation/structural-validation.js +7 -4
  83. package/dist/features/content-type-templates/validation/structural-validation.js.map +1 -1
  84. package/dist/index.d.ts +3 -4
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +2 -3
  87. package/dist/index.js.map +1 -1
  88. package/dist/p1/editor/connect/connect-field-modal.d.ts.map +1 -1
  89. package/dist/p1/editor/connect/connect-field-modal.js +1 -1
  90. package/dist/p1/editor/connect/connect-field-modal.js.map +1 -1
  91. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.d.ts.map +1 -1
  92. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js +91 -29
  93. package/dist/p1/editor/remote-datasources/remote-datasource-explorer-plugin.js.map +1 -1
  94. package/dist/p1/pages/index.d.ts +0 -10
  95. package/dist/p1/pages/index.d.ts.map +1 -1
  96. package/dist/p1/pages/index.js +0 -10
  97. package/dist/p1/pages/index.js.map +1 -1
  98. package/dist/pds/components/CreatePageModal.d.ts +109 -0
  99. package/dist/pds/components/CreatePageModal.d.ts.map +1 -0
  100. package/dist/pds/components/CreatePageModal.js +527 -0
  101. package/dist/pds/components/CreatePageModal.js.map +1 -0
  102. package/dist/pds/components/CreatePageModal.module.css +745 -0
  103. package/dist/pds/components/DocStateBadge.js +1 -1
  104. package/dist/pds/components/DocStateBadge.js.map +1 -1
  105. package/dist/pds/components/P1EditorHeader.d.ts +22 -5
  106. package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
  107. package/dist/pds/components/P1EditorHeader.js +103 -9
  108. package/dist/pds/components/P1EditorHeader.js.map +1 -1
  109. package/dist/pds/components/P1EditorHeader.module.css +21 -1
  110. package/dist/pds/components/P1EditorSubheader.d.ts +7 -1
  111. package/dist/pds/components/P1EditorSubheader.d.ts.map +1 -1
  112. package/dist/pds/components/P1EditorSubheader.js +2 -2
  113. package/dist/pds/components/P1EditorSubheader.js.map +1 -1
  114. package/dist/pds/components/PageNavigator.d.ts +15 -4
  115. package/dist/pds/components/PageNavigator.d.ts.map +1 -1
  116. package/dist/pds/components/PageNavigator.js +23 -5
  117. package/dist/pds/components/PageNavigator.js.map +1 -1
  118. package/dist/pds/components/PageNavigator.module.css +29 -0
  119. package/dist/pds/components/WizardQuestion.d.ts +29 -0
  120. package/dist/pds/components/WizardQuestion.d.ts.map +1 -0
  121. package/dist/pds/components/WizardQuestion.js +57 -0
  122. package/dist/pds/components/WizardQuestion.js.map +1 -0
  123. package/dist/pds/utils/deriveLiveDocState.d.ts +18 -0
  124. package/dist/pds/utils/deriveLiveDocState.d.ts.map +1 -0
  125. package/dist/pds/utils/deriveLiveDocState.js +20 -0
  126. package/dist/pds/utils/deriveLiveDocState.js.map +1 -0
  127. package/dist/server.d.ts +1 -2
  128. package/dist/server.d.ts.map +1 -1
  129. package/dist/server.js +1 -3
  130. package/dist/server.js.map +1 -1
  131. package/package.json +13 -3
  132. package/src/pds/theme/PuckEditorTheme.css +3 -1
  133. package/src/pds/theme/PuckEditorTheme.test.ts +4 -3
  134. package/dist/features/content-type-templates/editor/useTemplateEditor.d.ts +0 -20
  135. package/dist/features/content-type-templates/editor/useTemplateEditor.d.ts.map +0 -1
  136. package/dist/features/content-type-templates/editor/useTemplateEditor.js +0 -62
  137. package/dist/features/content-type-templates/editor/useTemplateEditor.js.map +0 -1
  138. package/dist/features/content-type-templates/ui/TemplateManagerOverlay.d.ts +0 -18
  139. package/dist/features/content-type-templates/ui/TemplateManagerOverlay.d.ts.map +0 -1
  140. package/dist/features/content-type-templates/ui/TemplateManagerOverlay.js +0 -167
  141. package/dist/features/content-type-templates/ui/TemplateManagerOverlay.js.map +0 -1
  142. package/dist/features/content-type-templates/ui/TemplatePinPanel.d.ts +0 -18
  143. package/dist/features/content-type-templates/ui/TemplatePinPanel.d.ts.map +0 -1
  144. package/dist/features/content-type-templates/ui/TemplatePinPanel.js +0 -11
  145. package/dist/features/content-type-templates/ui/TemplatePinPanel.js.map +0 -1
  146. package/dist/features/content-type-templates/ui/dataToTemplate.d.ts +0 -25
  147. package/dist/features/content-type-templates/ui/dataToTemplate.d.ts.map +0 -1
  148. package/dist/features/content-type-templates/ui/dataToTemplate.js +0 -37
  149. package/dist/features/content-type-templates/ui/dataToTemplate.js.map +0 -1
  150. package/dist/p1/editor/json-tree.d.ts +0 -6
  151. package/dist/p1/editor/json-tree.d.ts.map +0 -1
  152. package/dist/p1/editor/json-tree.js +0 -64
  153. package/dist/p1/editor/json-tree.js.map +0 -1
  154. package/dist/p1/pages/add-override-for-template.d.ts +0 -4
  155. package/dist/p1/pages/add-override-for-template.d.ts.map +0 -1
  156. package/dist/p1/pages/add-override-for-template.js +0 -47
  157. package/dist/p1/pages/add-override-for-template.js.map +0 -1
  158. package/dist/p1/pages/conflict-resolution-panel.d.ts +0 -17
  159. package/dist/p1/pages/conflict-resolution-panel.d.ts.map +0 -1
  160. package/dist/p1/pages/conflict-resolution-panel.js +0 -74
  161. package/dist/p1/pages/conflict-resolution-panel.js.map +0 -1
  162. package/dist/p1/pages/content-type-template-list.d.ts +0 -7
  163. package/dist/p1/pages/content-type-template-list.d.ts.map +0 -1
  164. package/dist/p1/pages/content-type-template-list.js +0 -108
  165. package/dist/p1/pages/content-type-template-list.js.map +0 -1
  166. package/dist/p1/pages/create-content-type-form.d.ts +0 -7
  167. package/dist/p1/pages/create-content-type-form.d.ts.map +0 -1
  168. package/dist/p1/pages/create-content-type-form.js +0 -102
  169. package/dist/p1/pages/create-content-type-form.js.map +0 -1
  170. package/dist/p1/pages/create-page-form.d.ts +0 -9
  171. package/dist/p1/pages/create-page-form.d.ts.map +0 -1
  172. package/dist/p1/pages/create-page-form.js +0 -87
  173. package/dist/p1/pages/create-page-form.js.map +0 -1
  174. package/dist/p1/pages/create-template-form.d.ts +0 -7
  175. package/dist/p1/pages/create-template-form.d.ts.map +0 -1
  176. package/dist/p1/pages/create-template-form.js +0 -82
  177. package/dist/p1/pages/create-template-form.js.map +0 -1
  178. package/dist/p1/pages/delete-row-button.d.ts +0 -7
  179. package/dist/p1/pages/delete-row-button.d.ts.map +0 -1
  180. package/dist/p1/pages/delete-row-button.js +0 -23
  181. package/dist/p1/pages/delete-row-button.js.map +0 -1
  182. package/dist/p1/pages/hooks.d.ts +0 -10
  183. package/dist/p1/pages/hooks.d.ts.map +0 -1
  184. package/dist/p1/pages/hooks.js +0 -66
  185. package/dist/p1/pages/hooks.js.map +0 -1
  186. package/dist/p1/pages/migration-conflict-queue.d.ts +0 -8
  187. package/dist/p1/pages/migration-conflict-queue.d.ts.map +0 -1
  188. package/dist/p1/pages/migration-conflict-queue.js +0 -62
  189. package/dist/p1/pages/migration-conflict-queue.js.map +0 -1
  190. package/dist/p1/pages/migration-preview-panel.d.ts +0 -12
  191. package/dist/p1/pages/migration-preview-panel.d.ts.map +0 -1
  192. package/dist/p1/pages/migration-preview-panel.js +0 -157
  193. package/dist/p1/pages/migration-preview-panel.js.map +0 -1
  194. package/dist/p1/pages/migration-status-panel.d.ts +0 -7
  195. package/dist/p1/pages/migration-status-panel.d.ts.map +0 -1
  196. package/dist/p1/pages/migration-status-panel.js +0 -198
  197. package/dist/p1/pages/migration-status-panel.js.map +0 -1
  198. package/dist/p1/pages/structure-page.d.ts +0 -2
  199. package/dist/p1/pages/structure-page.d.ts.map +0 -1
  200. package/dist/p1/pages/structure-page.js +0 -103
  201. package/dist/p1/pages/structure-page.js.map +0 -1
  202. package/dist/p1/pages/structure-tabs.d.ts +0 -11
  203. package/dist/p1/pages/structure-tabs.d.ts.map +0 -1
  204. package/dist/p1/pages/structure-tabs.js +0 -45
  205. package/dist/p1/pages/structure-tabs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useP1Plugin.d.ts","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useP1Plugin.d.ts","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
@@ -59,11 +59,13 @@ export function useP1Plugin(options = {}) {
59
59
  ? (options.onDocumentCreate ?? css.createDocument) : undefined,
60
60
  templates: css.templates,
61
61
  templatesLoading: css.templatesLoading,
62
+ onCreateTemplate: css.createTemplate,
62
63
  onDocumentDelete: fc.enableDocumentBrowser
63
64
  ? (options.onDocumentDelete ?? css.deleteDocument) : undefined,
64
65
  documentsLoading: css.documentsLoading,
65
66
  versions: fc.enableVersionHistory ? options.versions : undefined,
66
67
  versionsLoading: fc.enableVersionHistory ? options.versionsLoading : false,
68
+ publishedStatus: options.publishedStatus,
67
69
  selectedVersionId: fc.enableVersionHistory ? options.selectedVersionId : undefined,
68
70
  onVersionSelect: fc.enableVersionHistory ? options.onVersionSelect : undefined,
69
71
  // Context-based sync is the default — no need for getter or legacy sync
@@ -93,6 +95,7 @@ export function useP1Plugin(options = {}) {
93
95
  siteMenuItems: options.siteMenuItems,
94
96
  siteId: options.siteId,
95
97
  dashboardUrl: options.dashboardUrl,
98
+ logoUrl: options.logoUrl,
96
99
  currentUser: options.currentUser,
97
100
  onLogout: options.onLogout,
98
101
  onPublish: fc.enablePublishButton ? options.onPublish : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"useP1Plugin.js","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useP1Plugin.js","sourceRoot":"","sources":["../../src/editor/useP1Plugin.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,8 @@ import type { Template } from '../types.js';
8
8
  /**
9
9
  * Create Puck data from a template.
10
10
  *
11
- * Deep-clones the template component skeleton with unique IDs.
11
+ * Copies each content item with a shallow spread of its props and a fresh
12
+ * component ID (durable ids across template-to-page are PCC-3358).
12
13
  */
13
- export declare function scaffoldFromTemplate(template: Template & {
14
- content?: Array<{
15
- type: string;
16
- props: Record<string, unknown>;
17
- }>;
18
- }): Data;
14
+ export declare function scaffoldFromTemplate(template: Pick<Template, 'content'>): Data;
19
15
  //# sourceMappingURL=useTemplateScaffold.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTemplateScaffold.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/editor/useTemplateScaffold.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAS5C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAqBrI"}
1
+ {"version":3,"file":"useTemplateScaffold.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/editor/useTemplateScaffold.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAS5C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAW9E"}
@@ -12,22 +12,14 @@ function generateComponentId() {
12
12
  /**
13
13
  * Create Puck data from a template.
14
14
  *
15
- * Deep-clones the template component skeleton with unique IDs.
15
+ * Copies each content item with a shallow spread of its props and a fresh
16
+ * component ID (durable ids across template-to-page are PCC-3358).
16
17
  */
17
18
  export function scaffoldFromTemplate(template) {
18
- // Prefer the Puck content array (from the template's snapshot) which has
19
- // full component data. Fall back to the components metadata array.
20
- const sourceContent = template.content ?? [];
21
- const sourceComponents = template.components ?? [];
22
- const content = sourceContent.length > 0
23
- ? sourceContent.map((item) => ({
24
- type: item.type,
25
- props: { ...item.props, id: generateComponentId() },
26
- }))
27
- : sourceComponents.map((component) => ({
28
- type: component.type,
29
- props: { ...component.defaultProps, id: generateComponentId() },
30
- }));
19
+ const content = (template.content ?? []).map((item) => ({
20
+ type: item.type,
21
+ props: { ...item.props, id: generateComponentId() },
22
+ }));
31
23
  return {
32
24
  root: { props: {} },
33
25
  content,
@@ -1 +1 @@
1
- {"version":3,"file":"useTemplateScaffold.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/editor/useTemplateScaffold.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,SAAS,mBAAmB;IAC1B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA0F;IAC7H,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,aAAa,GAAI,QAAkF,CAAC,OAAO,IAAI,EAAE,CAAC;IACxH,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAEnD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QACtC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE;SACpD,CAAC,CAAC;QACL,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE;SAChE,CAAC,CAAC,CAAC;IAER,OAAO;QACL,IAAI,EAAE,EAAE,KAAK,EAAE,EAA6B,EAAE;QAC9C,OAAO;QACP,KAAK,EAAE,EAAE;KACF,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"useTemplateScaffold.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/editor/useTemplateScaffold.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,SAAS,mBAAmB;IAC1B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAmC;IACtE,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE;KACpD,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,IAAI,EAAE,EAAE,KAAK,EAAE,EAA6B,EAAE;QAC9C,OAAO;QACP,KAAK,EAAE,EAAE;KACF,CAAC;AACZ,CAAC"}
@@ -4,10 +4,10 @@
4
4
  * Fetches and manages the list of templates for a site/branch.
5
5
  */
6
6
  import type { P1Client } from '@pantheon-systems/css-client';
7
- import type { Template } from '../types.js';
7
+ import type { TemplateSummary } from '../types.js';
8
8
  export interface UseTemplateListReturn {
9
- /** List of templates */
10
- templates: Template[];
9
+ /** List of templates (metadata summaries; no component data) */
10
+ templates: TemplateSummary[];
11
11
  /** Whether templates are currently being fetched */
12
12
  loading: boolean;
13
13
  /** Error that occurred during fetch, if any */
@@ -1 +1 @@
1
- {"version":3,"file":"useTemplateList.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/hooks/useTemplateList.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,qBAAqB,CA4CvB"}
1
+ {"version":3,"file":"useTemplateList.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/hooks/useTemplateList.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,qBAAqB,CA8CvB"}
@@ -31,12 +31,14 @@ export function useTemplateList(client, siteId, branchId) {
31
31
  const [loading, setLoading] = useState(true);
32
32
  const [error, setError] = useState(null);
33
33
  const fetchTemplates = useCallback(async (signal) => {
34
+ if (!client.templates) {
35
+ setTemplates([]);
36
+ setLoading(false);
37
+ return;
38
+ }
34
39
  try {
35
40
  setLoading(true);
36
41
  setError(null);
37
- if (!client.templates) {
38
- throw new Error('Templates endpoint not available on client');
39
- }
40
42
  const result = await client.templates.list(siteId, branchId);
41
43
  if (!signal?.aborted) {
42
44
  setTemplates(result);
@@ -1 +1 @@
1
- {"version":3,"file":"useTemplateList.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/hooks/useTemplateList.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAezD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAgB,EAChB,MAAc,EACd,QAAgB;IAEhB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,MAAoB,EAAE,EAAE;QAChE,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,YAAY,CAAC,MAAM,CAAC,CAAC;YACvB,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,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,0BAA0B;IAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useTemplateList.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/hooks/useTemplateList.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAezD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAgB,EAChB,MAAc,EACd,QAAgB;IAEhB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,MAAoB,EAAE,EAAE;QAChE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,YAAY,CAAC,MAAM,CAAC,CAAC;YACvB,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,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,0BAA0B;IAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Feature-gated via enableContentTypeTemplates flag (default: true).
8
8
  */
9
- export type { ContentRole, TemplateMetadata, TemplateComponent, Template, TemplateBinding, CreateTemplateParams, UpdateTemplateParams, TemplateDocument, } from './types.js';
9
+ export type { ContentRole, TemplateMetadata, TemplateContentItem, TemplateRootProps, Template, TemplateSummary, TemplateBinding, CreateTemplateParams, UpdateTemplateParams, } from './types.js';
10
10
  export type { TemplateStore } from './stores/index.js';
11
11
  export { createInMemoryTemplateStore, createApiTemplateStore } from './stores/index.js';
12
12
  export type { ComponentPermissions } from './permissions/role-permissions.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/content-type-templates/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAExF,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,YAAY,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/content-type-templates/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAExF,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,YAAY,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/content-type-templates/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGxF,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/content-type-templates/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGxF,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Creates a resolvePermissions function for Puck that enforces template constraints.
5
5
  */
6
- import type { Template, ContentRole } from '../types.js';
6
+ import type { Template, TemplateSummary, ContentRole } from '../types.js';
7
7
  /**
8
8
  * Puck permission flags for a component.
9
9
  */
@@ -38,6 +38,10 @@ export type PuckPermissionResolver = (item: PuckItem, appState: PuckAppState) =>
38
38
  /**
39
39
  * Create a Puck permissions resolver based on template and user role.
40
40
  *
41
+ * A component type counts as pinned when the template's content has an
42
+ * instance whose id maps to `true` in `root.props._pinMap`. Pages correlate
43
+ * to the template by component type (durable per-instance ids are PCC-3358).
44
+ *
41
45
  * Permission logic:
42
46
  * - **Pinned components**: drag=false, delete=false for all roles
43
47
  * - **Non-pinned components**:
@@ -48,7 +52,8 @@ export type PuckPermissionResolver = (item: PuckItem, appState: PuckAppState) =>
48
52
  * - Junior Editor: no structural permissions
49
53
  * - **Historical versions**: all structural permissions false for all roles
50
54
  *
51
- * @param template - Template this document is bound to (null for blank pages)
55
+ * @param template - Template this document is bound to (null for blank pages;
56
+ * a metadata-only summary carries no pins)
52
57
  * @param role - User's content role
53
58
  * @param isHistoricalVersion - Whether viewing a historical version (read-only)
54
59
  * @returns Permission resolver function for Puck
@@ -64,5 +69,5 @@ export type PuckPermissionResolver = (item: PuckItem, appState: PuckAppState) =>
64
69
  * />
65
70
  * ```
66
71
  */
67
- export declare function createPuckPermissions(template: Template | null, role: ContentRole, isHistoricalVersion: boolean): PuckPermissionResolver;
72
+ export declare function createPuckPermissions(template: Template | TemplateSummary | null, role: ContentRole, isHistoricalVersion: boolean): PuckPermissionResolver;
68
73
  //# sourceMappingURL=createPuckPermissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPuckPermissions.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/permissions/createPuckPermissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,2BAA2B;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAE3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,KACnB,eAAe,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,IAAI,EAAE,WAAW,EACjB,mBAAmB,EAAE,OAAO,GAC3B,sBAAsB,CA4DxB"}
1
+ {"version":3,"file":"createPuckPermissions.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/permissions/createPuckPermissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,2BAA2B;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAE3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,KACnB,eAAe,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,EAC3C,IAAI,EAAE,WAAW,EACjB,mBAAmB,EAAE,OAAO,GAC3B,sBAAsB,CA4CxB"}
@@ -6,6 +6,10 @@
6
6
  /**
7
7
  * Create a Puck permissions resolver based on template and user role.
8
8
  *
9
+ * A component type counts as pinned when the template's content has an
10
+ * instance whose id maps to `true` in `root.props._pinMap`. Pages correlate
11
+ * to the template by component type (durable per-instance ids are PCC-3358).
12
+ *
9
13
  * Permission logic:
10
14
  * - **Pinned components**: drag=false, delete=false for all roles
11
15
  * - **Non-pinned components**:
@@ -16,7 +20,8 @@
16
20
  * - Junior Editor: no structural permissions
17
21
  * - **Historical versions**: all structural permissions false for all roles
18
22
  *
19
- * @param template - Template this document is bound to (null for blank pages)
23
+ * @param template - Template this document is bound to (null for blank pages;
24
+ * a metadata-only summary carries no pins)
20
25
  * @param role - User's content role
21
26
  * @param isHistoricalVersion - Whether viewing a historical version (read-only)
22
27
  * @returns Permission resolver function for Puck
@@ -33,6 +38,15 @@
33
38
  * ```
34
39
  */
35
40
  export function createPuckPermissions(template, role, isHistoricalVersion) {
41
+ const pinnedTypes = new Set();
42
+ if (template && 'content' in template) {
43
+ const pinMap = template.root?.props?._pinMap ?? {};
44
+ for (const item of template.content ?? []) {
45
+ if (pinMap[item.props.id] === true) {
46
+ pinnedTypes.add(item.type);
47
+ }
48
+ }
49
+ }
36
50
  return (item) => {
37
51
  // Historical versions: all structural permissions false
38
52
  if (isHistoricalVersion) {
@@ -45,39 +59,16 @@ export function createPuckPermissions(template, role, isHistoricalVersion) {
45
59
  };
46
60
  }
47
61
  const juniorEditorRestricted = role === 'junior-editor';
48
- // No template or template without components
49
- if (!template || !template.components) {
50
- return {
51
- edit: true,
52
- drag: !juniorEditorRestricted,
53
- delete: !juniorEditorRestricted,
54
- insert: !juniorEditorRestricted,
55
- duplicate: !juniorEditorRestricted,
56
- };
57
- }
58
- // Find component in template
59
- const templateComponent = template.components.find((c) => c.type === item.type);
60
- // Component not in template (user added it)
61
- if (!templateComponent) {
62
- return {
63
- edit: true,
64
- drag: !juniorEditorRestricted,
65
- delete: !juniorEditorRestricted,
66
- insert: !juniorEditorRestricted,
67
- duplicate: !juniorEditorRestricted,
68
- };
69
- }
70
62
  // Pinned component: locked for all roles
71
- if (templateComponent.pinned) {
63
+ if (pinnedTypes.has(item.type)) {
72
64
  return {
73
65
  edit: true,
74
66
  drag: false,
75
67
  delete: false,
76
- insert: juniorEditorRestricted ? false : true,
77
- duplicate: juniorEditorRestricted ? false : true,
68
+ insert: !juniorEditorRestricted,
69
+ duplicate: !juniorEditorRestricted,
78
70
  };
79
71
  }
80
- // Non-pinned component in template
81
72
  return {
82
73
  edit: true,
83
74
  drag: !juniorEditorRestricted,
@@ -1 +1 @@
1
- {"version":3,"file":"createPuckPermissions.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/permissions/createPuckPermissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2CH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAyB,EACzB,IAAiB,EACjB,mBAA4B;IAE5B,OAAO,CAAC,IAAc,EAAmB,EAAE;QACzC,wDAAwD;QACxD,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,yCAAyC;gBACrD,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAI,KAAK,eAAe,CAAC;QAExD,6CAA6C;QAC7C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,CAAC,sBAAsB;gBAC7B,MAAM,EAAE,CAAC,sBAAsB;gBAC/B,MAAM,EAAE,CAAC,sBAAsB;gBAC/B,SAAS,EAAE,CAAC,sBAAsB;aACnC,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhF,4CAA4C;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,CAAC,sBAAsB;gBAC7B,MAAM,EAAE,CAAC,sBAAsB;gBAC/B,MAAM,EAAE,CAAC,sBAAsB;gBAC/B,SAAS,EAAE,CAAC,sBAAsB;aACnC,CAAC;QACJ,CAAC;QAED,yCAAyC;QACzC,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBAC7C,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;aACjD,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,CAAC,sBAAsB;YAC7B,MAAM,EAAE,CAAC,sBAAsB;YAC/B,MAAM,EAAE,CAAC,sBAAsB;YAC/B,SAAS,EAAE,CAAC,sBAAsB;SACnC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"createPuckPermissions.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/permissions/createPuckPermissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2CH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA2C,EAC3C,IAAiB,EACjB,mBAA4B;IAE5B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBACnC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAc,EAAmB,EAAE;QACzC,wDAAwD;QACxD,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,yCAAyC;gBACrD,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAI,KAAK,eAAe,CAAC;QAExD,yCAAyC;QACzC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,CAAC,sBAAsB;gBAC/B,SAAS,EAAE,CAAC,sBAAsB;aACnC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,CAAC,sBAAsB;YAC7B,MAAM,EAAE,CAAC,sBAAsB;YAC/B,MAAM,EAAE,CAAC,sBAAsB;YAC/B,SAAS,EAAE,CAAC,sBAAsB;SACnC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Defines the contract for template storage and retrieval.
5
5
  * Implementations can use localStorage, CSS documents, or backend API.
6
6
  */
7
- import type { Template, TemplateBinding, CreateTemplateParams, UpdateTemplateParams } from '../types.js';
7
+ import type { Template, TemplateSummary, TemplateBinding, CreateTemplateParams, UpdateTemplateParams } from '../types.js';
8
8
  /**
9
9
  * Template store interface for CRUD operations and bindings.
10
10
  */
@@ -18,11 +18,11 @@ export interface TemplateStore {
18
18
  */
19
19
  get(id: string): Promise<Template | undefined>;
20
20
  /**
21
- * List all templates.
21
+ * List all templates as metadata summaries.
22
22
  */
23
- list(): Promise<Template[]>;
23
+ list(): Promise<TemplateSummary[]>;
24
24
  /**
25
- * Update an existing template.
25
+ * Update a template's metadata.
26
26
  * Increments the version number.
27
27
  */
28
28
  update(id: string, params: UpdateTemplateParams): Promise<Template>;
@@ -1 +1 @@
1
- {"version":3,"file":"template-store.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/template-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExD;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAE/C;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE5B;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAErE;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3F;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE7D;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AASD;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,aAAa,CA+E3D"}
1
+ {"version":3,"file":"template-store.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/template-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExD;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAE/C;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEnC;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAErE;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3F;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE7D;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AASD;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,aAAa,CAsG3D"}
@@ -22,13 +22,21 @@ export function createInMemoryTemplateStore() {
22
22
  const template = {
23
23
  id: generateId(),
24
24
  name: params.name,
25
- label: params.label,
26
- description: params.description,
27
- defaultUrlPattern: params.defaultUrlPattern,
28
25
  version: 1,
29
- components: params.components,
30
- createdAt: now,
31
26
  updatedAt: now,
27
+ content: [],
28
+ root: {
29
+ props: {
30
+ _template: {
31
+ label: params.label,
32
+ description: params.description,
33
+ defaultUrlPattern: params.defaultUrlPattern,
34
+ deprecated: false,
35
+ },
36
+ _pinMap: {},
37
+ },
38
+ },
39
+ zones: {},
32
40
  };
33
41
  templates.set(template.id, template);
34
42
  return template;
@@ -37,19 +45,34 @@ export function createInMemoryTemplateStore() {
37
45
  return templates.get(id);
38
46
  },
39
47
  async list() {
40
- return Array.from(templates.values());
48
+ return Array.from(templates.values()).map((t) => ({
49
+ id: t.id,
50
+ name: t.name,
51
+ version: t.version,
52
+ updatedAt: t.updatedAt,
53
+ ...t.root.props._template,
54
+ }));
41
55
  },
42
56
  async update(id, params) {
43
57
  const existing = templates.get(id);
44
58
  if (!existing) {
45
59
  throw new Error('Template not found');
46
60
  }
61
+ const meta = existing.root.props._template;
47
62
  const updated = {
48
63
  ...existing,
49
- label: params.label ?? existing.label,
50
- description: params.description ?? existing.description,
51
- defaultUrlPattern: params.defaultUrlPattern ?? existing.defaultUrlPattern,
52
- components: params.components ?? existing.components,
64
+ root: {
65
+ ...existing.root,
66
+ props: {
67
+ ...existing.root.props,
68
+ _template: {
69
+ label: params.label ?? meta.label,
70
+ description: params.description ?? meta.description,
71
+ defaultUrlPattern: params.defaultUrlPattern ?? meta.defaultUrlPattern,
72
+ deprecated: params.deprecated ?? meta.deprecated,
73
+ },
74
+ },
75
+ },
53
76
  version: existing.version + 1,
54
77
  updatedAt: new Date().toISOString(),
55
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"template-store.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/template-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-store.js","sourceRoot":"","sources":["../../../../src/features/content-type-templates/stores/template-store.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * TypeScript types and interfaces for the content type templates feature.
5
5
  */
6
- import type { Data } from '@puckeditor/core';
7
6
  /**
8
7
  * User role for content editing.
9
8
  *
@@ -12,57 +11,7 @@ import type { Data } from '@puckeditor/core';
12
11
  * - junior-editor: View/edit props only, no structural changes
13
12
  */
14
13
  export type ContentRole = 'admin' | 'editor' | 'junior-editor';
15
- /**
16
- * Template metadata stored in root.props._templateMeta.
17
- */
18
- export interface TemplateMetadata {
19
- /** Unique template name (kebab-case identifier) */
20
- name: string;
21
- /** Human-readable label */
22
- label: string;
23
- /** Optional description */
24
- description?: string;
25
- /** Optional default URL pattern for documents created from this template */
26
- defaultUrlPattern?: string;
27
- /** Template version number (incremented on each save) */
28
- version: number;
29
- }
30
- /**
31
- * A component in the template skeleton with pinned status.
32
- */
33
- export interface TemplateComponent {
34
- /** Component type (e.g., "HeadingBlock", "TextBlock") */
35
- type: string;
36
- /** Whether this component is pinned (locked position) */
37
- pinned: boolean;
38
- /** Default props for this component */
39
- defaultProps: Record<string, unknown>;
40
- }
41
- /**
42
- * A complete template definition.
43
- */
44
- export interface Template {
45
- /** Unique template ID */
46
- id: string;
47
- /** Template name (kebab-case identifier) */
48
- name: string;
49
- /** Human-readable label */
50
- label: string;
51
- /** Optional description */
52
- description?: string;
53
- /** Optional default URL pattern */
54
- defaultUrlPattern?: string;
55
- /** Template version number */
56
- version: number;
57
- /** Whether this template is deprecated */
58
- deprecated?: boolean;
59
- /** Component skeleton */
60
- components: TemplateComponent[];
61
- /** Creation timestamp (not returned by all endpoints) */
62
- createdAt?: string;
63
- /** Last update timestamp */
64
- updatedAt: string;
65
- }
14
+ export type { Template, TemplateSummary, TemplateMetadata, TemplateContentItem, TemplateRootProps, CreateTemplateParams, UpdateTemplateParams, } from '@pantheon-systems/css-client';
66
15
  /**
67
16
  * Document-to-template binding.
68
17
  * Stored in documents table columns (template_id, template_version).
@@ -75,40 +24,4 @@ export interface TemplateBinding {
75
24
  /** Template version this document was created from or migrated to */
76
25
  templateVersion: number;
77
26
  }
78
- /**
79
- * Parameters for creating a template.
80
- */
81
- export interface CreateTemplateParams {
82
- /** Template name (kebab-case identifier) */
83
- name: string;
84
- /** Human-readable label */
85
- label: string;
86
- /** Optional description */
87
- description?: string;
88
- /** Optional default URL pattern */
89
- defaultUrlPattern?: string;
90
- /** Initial component skeleton */
91
- components: TemplateComponent[];
92
- }
93
- /**
94
- * Parameters for updating a template.
95
- */
96
- export interface UpdateTemplateParams {
97
- /** Updated label */
98
- label?: string;
99
- /** Updated description */
100
- description?: string;
101
- /** Updated default URL pattern */
102
- defaultUrlPattern?: string;
103
- /** Updated component skeleton */
104
- components?: TemplateComponent[];
105
- }
106
- /**
107
- * Template with full Puck data for editing.
108
- * Used when editing a template document in the editor.
109
- */
110
- export interface TemplateDocument extends Template {
111
- /** Full Puck data structure */
112
- data: Data;
113
- }
114
27
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/content-type-templates/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IAEb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IAEb,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAEhB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IAEX,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IAEb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,yBAAyB;IACzB,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAEhC,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IAEnB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IAEb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,iCAAiC;IACjC,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,iCAAiC;IACjC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,+BAA+B;IAC/B,IAAI,EAAE,IAAI,CAAC;CACZ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/content-type-templates/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE/D,YAAY,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IAEnB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;CACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBarPinButton.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/ActionBarPinButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAiCrD,wBAAgB,kBAAkB,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAqF9D"}
1
+ {"version":3,"file":"ActionBarPinButton.d.ts","sourceRoot":"","sources":["../../../../src/features/content-type-templates/ui/ActionBarPinButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAmC3C,wBAAgB,kBAAkB,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CA2D9D"}