@momentumcms/admin 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/fesm2022/{momentumcms-admin-array-field.component-CLV4Ny9t.mjs → momentumcms-admin-array-field.component-pqA3_nC8.mjs} +5 -5
  2. package/fesm2022/{momentumcms-admin-array-field.component-CLV4Ny9t.mjs.map → momentumcms-admin-array-field.component-pqA3_nC8.mjs.map} +1 -1
  3. package/fesm2022/{momentumcms-admin-blocks-field.component-hHiTfUf9.mjs → momentumcms-admin-blocks-field.component-88TEhVm4.mjs} +5 -5
  4. package/fesm2022/{momentumcms-admin-blocks-field.component-hHiTfUf9.mjs.map → momentumcms-admin-blocks-field.component-88TEhVm4.mjs.map} +1 -1
  5. package/fesm2022/{momentumcms-admin-collapsible-field.component-BeskwGvi.mjs → momentumcms-admin-collapsible-field.component-D5Jc8h2Q.mjs} +5 -5
  6. package/fesm2022/{momentumcms-admin-collapsible-field.component-BeskwGvi.mjs.map → momentumcms-admin-collapsible-field.component-D5Jc8h2Q.mjs.map} +1 -1
  7. package/fesm2022/{momentumcms-admin-global-edit.page-D_ebIITz.mjs → momentumcms-admin-global-edit.page-D4QNE5AM.mjs} +5 -5
  8. package/fesm2022/{momentumcms-admin-global-edit.page-D_ebIITz.mjs.map → momentumcms-admin-global-edit.page-D4QNE5AM.mjs.map} +1 -1
  9. package/fesm2022/{momentumcms-admin-group-field.component-ffsgbC6o.mjs → momentumcms-admin-group-field.component-Cenc5zMW.mjs} +5 -5
  10. package/fesm2022/{momentumcms-admin-group-field.component-ffsgbC6o.mjs.map → momentumcms-admin-group-field.component-Cenc5zMW.mjs.map} +1 -1
  11. package/fesm2022/{momentumcms-admin-momentumcms-admin-De5FLr2L.mjs → momentumcms-admin-momentumcms-admin-5WigESOC.mjs} +262 -185
  12. package/fesm2022/momentumcms-admin-momentumcms-admin-5WigESOC.mjs.map +1 -0
  13. package/fesm2022/{momentumcms-admin-relationship-field.component-DO0kyAkE.mjs → momentumcms-admin-relationship-field.component-DlCdpcRy.mjs} +5 -5
  14. package/fesm2022/{momentumcms-admin-relationship-field.component-DO0kyAkE.mjs.map → momentumcms-admin-relationship-field.component-DlCdpcRy.mjs.map} +1 -1
  15. package/fesm2022/{momentumcms-admin-rich-text-field.component-BvpufJs3.mjs → momentumcms-admin-rich-text-field.component-BUziCgyn.mjs} +5 -5
  16. package/fesm2022/{momentumcms-admin-rich-text-field.component-BvpufJs3.mjs.map → momentumcms-admin-rich-text-field.component-BUziCgyn.mjs.map} +1 -1
  17. package/fesm2022/{momentumcms-admin-row-field.component-C8ZsdA2w.mjs → momentumcms-admin-row-field.component-fFTcYU-P.mjs} +5 -5
  18. package/fesm2022/{momentumcms-admin-row-field.component-C8ZsdA2w.mjs.map → momentumcms-admin-row-field.component-fFTcYU-P.mjs.map} +1 -1
  19. package/fesm2022/{momentumcms-admin-tabs-field.component-Uatoyjg8.mjs → momentumcms-admin-tabs-field.component-D_T_JZej.mjs} +5 -5
  20. package/fesm2022/{momentumcms-admin-tabs-field.component-Uatoyjg8.mjs.map → momentumcms-admin-tabs-field.component-D_T_JZej.mjs.map} +1 -1
  21. package/fesm2022/momentumcms-admin.mjs +1 -1
  22. package/package.json +1 -1
  23. package/types/momentumcms-admin.d.ts +13 -6
  24. package/fesm2022/momentumcms-admin-momentumcms-admin-De5FLr2L.mjs.map +0 -1
@@ -339,10 +339,10 @@ class MomentumAuthService {
339
339
  'message' in error.error &&
340
340
  typeof error.error.message === 'string');
341
341
  }
342
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MomentumAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
343
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MomentumAuthService, providedIn: 'root' });
342
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MomentumAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
343
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MomentumAuthService, providedIn: 'root' });
344
344
  }
345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MomentumAuthService, decorators: [{
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MomentumAuthService, decorators: [{
346
346
  type: Injectable,
347
347
  args: [{ providedIn: 'root' }]
348
348
  }] });
@@ -669,10 +669,10 @@ class CollectionAccessService {
669
669
  getPermissions(slug) {
670
670
  return this._permissions().find((p) => p.slug === slug);
671
671
  }
672
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionAccessService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
673
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionAccessService, providedIn: 'root' });
672
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionAccessService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
673
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionAccessService, providedIn: 'root' });
674
674
  }
675
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionAccessService, decorators: [{
675
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionAccessService, decorators: [{
676
676
  type: Injectable,
677
677
  args: [{ providedIn: 'root' }]
678
678
  }] });
@@ -937,10 +937,10 @@ class FeedbackService {
937
937
  icon: config.variant === 'destructive' ? 'danger' : 'question',
938
938
  });
939
939
  }
940
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FeedbackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
941
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FeedbackService, providedIn: 'root' });
940
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FeedbackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
941
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FeedbackService, providedIn: 'root' });
942
942
  }
943
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FeedbackService, decorators: [{
943
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FeedbackService, decorators: [{
944
944
  type: Injectable,
945
945
  args: [{ providedIn: 'root' }]
946
946
  }] });
@@ -1134,7 +1134,7 @@ function momentumAdminRoutes(configOrOptions) {
1134
1134
  // Global edit
1135
1135
  {
1136
1136
  path: 'globals/:slug',
1137
- loadComponent: () => import('./momentumcms-admin-global-edit.page-D_ebIITz.mjs').then((m) => m.GlobalEditPage),
1137
+ loadComponent: () => import('./momentumcms-admin-global-edit.page-D4QNE5AM.mjs').then((m) => m.GlobalEditPage),
1138
1138
  canDeactivate: [unsavedChangesGuard],
1139
1139
  },
1140
1140
  // Plugin-registered routes
@@ -1412,10 +1412,10 @@ class MomentumApiService {
1412
1412
  .delete(`${this.baseUrl}/${collection}/${id}`)
1413
1413
  .pipe(map((response) => response.deleted ?? false));
1414
1414
  }
1415
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MomentumApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1416
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MomentumApiService, providedIn: 'root' });
1415
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MomentumApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1416
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MomentumApiService, providedIn: 'root' });
1417
1417
  }
1418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MomentumApiService, decorators: [{
1418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MomentumApiService, decorators: [{
1419
1419
  type: Injectable,
1420
1420
  args: [{ providedIn: 'root' }]
1421
1421
  }] });
@@ -1656,10 +1656,10 @@ class UploadService {
1656
1656
  uploads.set(file, progress);
1657
1657
  this.activeUploadsSignal.set(uploads);
1658
1658
  }
1659
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: UploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1660
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: UploadService, providedIn: 'root' });
1659
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: UploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1660
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: UploadService, providedIn: 'root' });
1661
1661
  }
1662
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: UploadService, decorators: [{
1662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: UploadService, decorators: [{
1663
1663
  type: Injectable,
1664
1664
  args: [{ providedIn: 'root' }]
1665
1665
  }] });
@@ -2520,10 +2520,10 @@ class EntitySheetService {
2520
2520
  return callbackParam;
2521
2521
  return null;
2522
2522
  }
2523
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntitySheetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2524
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntitySheetService, providedIn: 'root' });
2523
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntitySheetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2524
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntitySheetService, providedIn: 'root' });
2525
2525
  }
2526
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntitySheetService, decorators: [{
2526
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntitySheetService, decorators: [{
2527
2527
  type: Injectable,
2528
2528
  args: [{ providedIn: 'root' }]
2529
2529
  }] });
@@ -2712,10 +2712,10 @@ class VersionService {
2712
2712
  }
2713
2713
  return params;
2714
2714
  }
2715
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VersionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2716
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VersionService, providedIn: 'root' });
2715
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VersionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2716
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VersionService, providedIn: 'root' });
2717
2717
  }
2718
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VersionService, decorators: [{
2718
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VersionService, decorators: [{
2719
2719
  type: Injectable,
2720
2720
  args: [{ providedIn: 'root' }]
2721
2721
  }] });
@@ -2882,10 +2882,10 @@ class McmsThemeService {
2882
2882
  mediaQuery.removeEventListener('change', handleChange);
2883
2883
  });
2884
2884
  }
2885
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: McmsThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2886
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: McmsThemeService, providedIn: 'root' });
2885
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: McmsThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2886
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: McmsThemeService, providedIn: 'root' });
2887
2887
  }
2888
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: McmsThemeService, decorators: [{
2888
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: McmsThemeService, decorators: [{
2889
2889
  type: Injectable,
2890
2890
  args: [{ providedIn: 'root' }]
2891
2891
  }], ctorParameters: () => [] });
@@ -3552,10 +3552,10 @@ class FieldRendererRegistry {
3552
3552
  has(type) {
3553
3553
  return this.renderers.has(type);
3554
3554
  }
3555
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FieldRendererRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3556
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FieldRendererRegistry, providedIn: 'root' });
3555
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FieldRendererRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3556
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FieldRendererRegistry, providedIn: 'root' });
3557
3557
  }
3558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FieldRendererRegistry, decorators: [{
3558
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FieldRendererRegistry, decorators: [{
3559
3559
  type: Injectable,
3560
3560
  args: [{ providedIn: 'root' }]
3561
3561
  }] });
@@ -3585,12 +3585,18 @@ class FieldRenderer {
3585
3585
  resolvedComponent = signal(null, ...(ngDevMode ? [{ debugName: "resolvedComponent" }] : []));
3586
3586
  /** Error from lazy loading failure */
3587
3587
  loadError = signal(null, ...(ngDevMode ? [{ debugName: "loadError" }] : []));
3588
- /** Registry key: 'blocks-visual' when blocks field has visual editor, otherwise field.type */
3588
+ /** Registry key: maps field type + editor config to renderer registry keys */
3589
3589
  registryKey = computed(() => {
3590
3590
  const f = this.field();
3591
3591
  if (f.type === 'blocks' && f.admin?.editor === 'visual') {
3592
3592
  return 'blocks-visual';
3593
3593
  }
3594
+ if (f.type === 'json' && f.admin?.editor === 'email-builder') {
3595
+ return 'json-email-builder';
3596
+ }
3597
+ if (f.type === 'json' && f.admin?.editor === 'form-builder') {
3598
+ return 'json-form-builder';
3599
+ }
3594
3600
  return f.type;
3595
3601
  }, ...(ngDevMode ? [{ debugName: "registryKey" }] : []));
3596
3602
  /** Inputs to pass to the dynamically loaded component via NgComponentOutlet */
@@ -3615,8 +3621,8 @@ class FieldRenderer {
3615
3621
  }
3616
3622
  });
3617
3623
  }
3618
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
3619
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: FieldRenderer, isStandalone: true, selector: "mcms-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, formTree: { classPropertyName: "formTree", publicName: "formTree", isSignal: true, isRequired: false, transformFunction: null }, formModel: { classPropertyName: "formModel", publicName: "formModel", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "block" }, ngImport: i0, template: `
3624
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
3625
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: FieldRenderer, isStandalone: true, selector: "mcms-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, formTree: { classPropertyName: "formTree", publicName: "formTree", isSignal: true, isRequired: false, transformFunction: null }, formModel: { classPropertyName: "formModel", publicName: "formModel", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "block" }, ngImport: i0, template: `
3620
3626
  @if (resolvedComponent()) {
3621
3627
  <ng-container *ngComponentOutlet="resolvedComponent(); inputs: rendererInputs()" />
3622
3628
  } @else if (loadError()) {
@@ -3635,7 +3641,7 @@ class FieldRenderer {
3635
3641
  }
3636
3642
  `, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3637
3643
  }
3638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FieldRenderer, decorators: [{
3644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FieldRenderer, decorators: [{
3639
3645
  type: Component,
3640
3646
  args: [{
3641
3647
  selector: 'mcms-field-renderer',
@@ -3697,8 +3703,8 @@ class VersionDiffDialogComponent {
3697
3703
  return String(value);
3698
3704
  return JSON.stringify(value, null, 2);
3699
3705
  }
3700
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VersionDiffDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3701
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: VersionDiffDialogComponent, isStandalone: true, selector: "mcms-version-diff-dialog", ngImport: i0, template: `
3706
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VersionDiffDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3707
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: VersionDiffDialogComponent, isStandalone: true, selector: "mcms-version-diff-dialog", ngImport: i0, template: `
3702
3708
  <mcms-dialog>
3703
3709
  <mcms-dialog-header>
3704
3710
  <mcms-dialog-title>Compare Versions</mcms-dialog-title>
@@ -3772,7 +3778,7 @@ class VersionDiffDialogComponent {
3772
3778
  </mcms-dialog>
3773
3779
  `, isInline: true, dependencies: [{ kind: "component", type: Dialog, selector: "mcms-dialog", inputs: ["class"] }, { kind: "component", type: DialogHeader, selector: "mcms-dialog-header" }, { kind: "component", type: DialogTitle, selector: "mcms-dialog-title", inputs: ["id"] }, { kind: "component", type: DialogContent, selector: "mcms-dialog-content" }, { kind: "component", type: DialogFooter, selector: "mcms-dialog-footer" }, { kind: "directive", type: DialogClose, selector: "[mcmsDialogClose]", inputs: ["mcmsDialogClose"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Badge, selector: "mcms-badge", inputs: ["variant", "class", "role", "ariaLabel"] }, { kind: "component", type: Skeleton, selector: "mcms-skeleton", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3774
3780
  }
3775
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VersionDiffDialogComponent, decorators: [{
3781
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VersionDiffDialogComponent, decorators: [{
3776
3782
  type: Component,
3777
3783
  args: [{
3778
3784
  selector: 'mcms-version-diff-dialog',
@@ -4012,8 +4018,8 @@ class VersionHistoryWidget {
4012
4018
  getStatusVariant(status) {
4013
4019
  return status === 'published' ? 'default' : 'secondary';
4014
4020
  }
4015
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VersionHistoryWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
4016
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: VersionHistoryWidget, isStandalone: true, selector: "mcms-version-history", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, documentId: { classPropertyName: "documentId", publicName: "documentId", isSignal: true, isRequired: true, transformFunction: null }, documentLabel: { classPropertyName: "documentLabel", publicName: "documentLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { restored: "restored" }, host: { classAttribute: "block" }, ngImport: i0, template: `
4021
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VersionHistoryWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
4022
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: VersionHistoryWidget, isStandalone: true, selector: "mcms-version-history", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, documentId: { classPropertyName: "documentId", publicName: "documentId", isSignal: true, isRequired: true, transformFunction: null }, documentLabel: { classPropertyName: "documentLabel", publicName: "documentLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { restored: "restored" }, host: { classAttribute: "block" }, ngImport: i0, template: `
4017
4023
  <mcms-card>
4018
4024
  <mcms-card-header>
4019
4025
  <div class="flex items-center justify-between">
@@ -4113,7 +4119,7 @@ class VersionHistoryWidget {
4113
4119
  </mcms-card>
4114
4120
  `, isInline: true, dependencies: [{ kind: "component", type: Badge, selector: "mcms-badge", inputs: ["variant", "class", "role", "ariaLabel"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Skeleton, selector: "mcms-skeleton", inputs: ["class"] }, { kind: "component", type: Card, selector: "mcms-card" }, { kind: "component", type: CardHeader, selector: "mcms-card-header" }, { kind: "component", type: CardContent, selector: "mcms-card-content" }, { kind: "component", type: Separator, selector: "mcms-separator", inputs: ["orientation", "decorative", "class"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4115
4121
  }
4116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VersionHistoryWidget, decorators: [{
4122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VersionHistoryWidget, decorators: [{
4117
4123
  type: Component,
4118
4124
  args: [{
4119
4125
  selector: 'mcms-version-history',
@@ -4316,8 +4322,8 @@ class MediaPreviewComponent {
4316
4322
  }
4317
4323
  return heroDocument;
4318
4324
  }, ...(ngDevMode ? [{ debugName: "iconName" }] : []));
4319
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MediaPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4320
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: MediaPreviewComponent, isStandalone: true, selector: "mcms-media-preview", inputs: { media: { classPropertyName: "media", publicName: "media", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
4325
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MediaPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4326
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: MediaPreviewComponent, isStandalone: true, selector: "mcms-media-preview", inputs: { media: { classPropertyName: "media", publicName: "media", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
4321
4327
  @if (isImage()) {
4322
4328
  <img
4323
4329
  [src]="imageUrl()"
@@ -4331,7 +4337,7 @@ class MediaPreviewComponent {
4331
4337
  }
4332
4338
  `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4333
4339
  }
4334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MediaPreviewComponent, decorators: [{
4340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MediaPreviewComponent, decorators: [{
4335
4341
  type: Component,
4336
4342
  args: [{
4337
4343
  selector: 'mcms-media-preview',
@@ -4369,7 +4375,6 @@ function getStringProp$1(obj, key) {
4369
4375
  return undefined;
4370
4376
  if (!(key in obj))
4371
4377
  return undefined;
4372
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
4373
4378
  const value = obj[key]; // eslint-disable-line @typescript-eslint/consistent-type-assertions
4374
4379
  return typeof value === 'string' ? value : undefined;
4375
4380
  }
@@ -4576,8 +4581,8 @@ class CollectionUploadZoneComponent {
4576
4581
  removeFile() {
4577
4582
  this.fileRemoved.emit();
4578
4583
  }
4579
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionUploadZoneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4580
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: CollectionUploadZoneComponent, isStandalone: true, selector: "mcms-collection-upload-zone", inputs: { uploadConfig: { classPropertyName: "uploadConfig", publicName: "uploadConfig", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, pendingFile: { classPropertyName: "pendingFile", publicName: "pendingFile", isSignal: true, isRequired: false, transformFunction: null }, isUploading: { classPropertyName: "isUploading", publicName: "isUploading", isSignal: true, isRequired: false, transformFunction: null }, uploadProgress: { classPropertyName: "uploadProgress", publicName: "uploadProgress", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, existingMedia: { classPropertyName: "existingMedia", publicName: "existingMedia", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileSelected: "fileSelected", fileRemoved: "fileRemoved" }, host: { classAttribute: "block mb-6" }, viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
4584
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionUploadZoneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4585
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CollectionUploadZoneComponent, isStandalone: true, selector: "mcms-collection-upload-zone", inputs: { uploadConfig: { classPropertyName: "uploadConfig", publicName: "uploadConfig", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, pendingFile: { classPropertyName: "pendingFile", publicName: "pendingFile", isSignal: true, isRequired: false, transformFunction: null }, isUploading: { classPropertyName: "isUploading", publicName: "isUploading", isSignal: true, isRequired: false, transformFunction: null }, uploadProgress: { classPropertyName: "uploadProgress", publicName: "uploadProgress", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, existingMedia: { classPropertyName: "existingMedia", publicName: "existingMedia", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileSelected: "fileSelected", fileRemoved: "fileRemoved" }, host: { classAttribute: "block mb-6" }, viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
4581
4586
  @if (pendingFile()) {
4582
4587
  <!-- File selected preview -->
4583
4588
  <div class="rounded-lg border border-mcms-border bg-mcms-card p-4">
@@ -4700,7 +4705,7 @@ class CollectionUploadZoneComponent {
4700
4705
  }
4701
4706
  `, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Progress, selector: "mcms-progress", inputs: ["value", "max", "ariaLabel", "class"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: MediaPreviewComponent, selector: "mcms-media-preview", inputs: ["media", "size", "class", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4702
4707
  }
4703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionUploadZoneComponent, decorators: [{
4708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionUploadZoneComponent, decorators: [{
4704
4709
  type: Component,
4705
4710
  args: [{
4706
4711
  selector: 'mcms-collection-upload-zone',
@@ -5327,8 +5332,8 @@ class EntityFormWidget {
5327
5332
  this.isSavingDraft.set(false);
5328
5333
  }
5329
5334
  }
5330
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntityFormWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
5331
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: EntityFormWidget, isStandalone: true, selector: "mcms-entity-form", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, entityId: { classPropertyName: "entityId", publicName: "entityId", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumbs: { classPropertyName: "showBreadcrumbs", publicName: "showBreadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, suppressNavigation: { classPropertyName: "suppressNavigation", publicName: "suppressNavigation", isSignal: true, isRequired: false, transformFunction: null }, isGlobal: { classPropertyName: "isGlobal", publicName: "isGlobal", isSignal: true, isRequired: false, transformFunction: null }, globalSlug: { classPropertyName: "globalSlug", publicName: "globalSlug", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { saved: "saved", cancelled: "cancelled", saveError: "saveError", modeChange: "modeChange", draftSaved: "draftSaved" }, host: { classAttribute: "block" }, ngImport: i0, template: `
5335
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntityFormWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
5336
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: EntityFormWidget, isStandalone: true, selector: "mcms-entity-form", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, entityId: { classPropertyName: "entityId", publicName: "entityId", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumbs: { classPropertyName: "showBreadcrumbs", publicName: "showBreadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, suppressNavigation: { classPropertyName: "suppressNavigation", publicName: "suppressNavigation", isSignal: true, isRequired: false, transformFunction: null }, isGlobal: { classPropertyName: "isGlobal", publicName: "isGlobal", isSignal: true, isRequired: false, transformFunction: null }, globalSlug: { classPropertyName: "globalSlug", publicName: "globalSlug", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { saved: "saved", cancelled: "cancelled", saveError: "saveError", modeChange: "modeChange", draftSaved: "draftSaved" }, host: { classAttribute: "block" }, ngImport: i0, template: `
5332
5337
  <div class="max-w-3xl">
5333
5338
  @if (showBreadcrumbs()) {
5334
5339
  <mcms-breadcrumbs class="mb-6">
@@ -5470,7 +5475,7 @@ class EntityFormWidget {
5470
5475
  </div>
5471
5476
  `, isInline: true, dependencies: [{ kind: "component", type: Card, selector: "mcms-card" }, { kind: "component", type: CardContent, selector: "mcms-card-content" }, { kind: "component", type: CardFooter, selector: "mcms-card-footer" }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Spinner, selector: "mcms-spinner", inputs: ["size", "label", "class"] }, { kind: "component", type: Alert, selector: "mcms-alert", inputs: ["variant", "class"] }, { kind: "component", type: FieldRenderer, selector: "mcms-field-renderer", inputs: ["field", "formNode", "formTree", "formModel", "mode", "path"] }, { kind: "component", type: Breadcrumbs, selector: "mcms-breadcrumbs", inputs: ["class"] }, { kind: "component", type: BreadcrumbItem, selector: "mcms-breadcrumb-item", inputs: ["href", "current", "class"] }, { kind: "component", type: BreadcrumbSeparator, selector: "mcms-breadcrumb-separator", inputs: ["class"] }, { kind: "component", type: VersionHistoryWidget, selector: "mcms-version-history", inputs: ["collection", "documentId", "documentLabel"], outputs: ["restored"] }, { kind: "component", type: CollectionUploadZoneComponent, selector: "mcms-collection-upload-zone", inputs: ["uploadConfig", "disabled", "pendingFile", "isUploading", "uploadProgress", "error", "existingMedia"], outputs: ["fileSelected", "fileRemoved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5472
5477
  }
5473
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntityFormWidget, decorators: [{
5478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntityFormWidget, decorators: [{
5474
5479
  type: Component,
5475
5480
  args: [{
5476
5481
  selector: 'mcms-entity-form',
@@ -5748,8 +5753,8 @@ class PublishControlsWidget {
5748
5753
  this.isUpdating.set(false);
5749
5754
  }
5750
5755
  }
5751
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PublishControlsWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
5752
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: PublishControlsWidget, isStandalone: true, selector: "mcms-publish-controls", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, documentId: { classPropertyName: "documentId", publicName: "documentId", isSignal: true, isRequired: true, transformFunction: null }, documentLabel: { classPropertyName: "documentLabel", publicName: "documentLabel", isSignal: true, isRequired: false, transformFunction: null }, initialStatus: { classPropertyName: "initialStatus", publicName: "initialStatus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { statusChanged: "statusChanged" }, host: { classAttribute: "inline-flex items-center gap-3" }, ngImport: i0, template: `
5756
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: PublishControlsWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
5757
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: PublishControlsWidget, isStandalone: true, selector: "mcms-publish-controls", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, documentId: { classPropertyName: "documentId", publicName: "documentId", isSignal: true, isRequired: true, transformFunction: null }, documentLabel: { classPropertyName: "documentLabel", publicName: "documentLabel", isSignal: true, isRequired: false, transformFunction: null }, initialStatus: { classPropertyName: "initialStatus", publicName: "initialStatus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { statusChanged: "statusChanged" }, host: { classAttribute: "inline-flex items-center gap-3" }, ngImport: i0, template: `
5753
5758
  <mcms-badge [variant]="statusVariant()">
5754
5759
  {{ statusLabel() }}
5755
5760
  </mcms-badge>
@@ -5785,7 +5790,7 @@ class PublishControlsWidget {
5785
5790
  }
5786
5791
  `, isInline: true, dependencies: [{ kind: "component", type: Badge, selector: "mcms-badge", inputs: ["variant", "class", "role", "ariaLabel"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5787
5792
  }
5788
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PublishControlsWidget, decorators: [{
5793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: PublishControlsWidget, decorators: [{
5789
5794
  type: Component,
5790
5795
  args: [{
5791
5796
  selector: 'mcms-publish-controls',
@@ -6294,8 +6299,8 @@ class EntityViewWidget {
6294
6299
  });
6295
6300
  }
6296
6301
  }
6297
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntityViewWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
6298
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: EntityViewWidget, isStandalone: true, selector: "mcms-entity-view", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, entityId: { classPropertyName: "entityId", publicName: "entityId", isSignal: true, isRequired: true, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumbs: { classPropertyName: "showBreadcrumbs", publicName: "showBreadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, fieldConfigs: { classPropertyName: "fieldConfigs", publicName: "fieldConfigs", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, showVersionHistory: { classPropertyName: "showVersionHistory", publicName: "showVersionHistory", isSignal: true, isRequired: false, transformFunction: null }, suppressNavigation: { classPropertyName: "suppressNavigation", publicName: "suppressNavigation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { edit: "edit", statusChanged: "statusChanged", delete_: "delete_", actionClick: "actionClick" }, host: { classAttribute: "block" }, ngImport: i0, template: `
6302
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntityViewWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
6303
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: EntityViewWidget, isStandalone: true, selector: "mcms-entity-view", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, entityId: { classPropertyName: "entityId", publicName: "entityId", isSignal: true, isRequired: true, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumbs: { classPropertyName: "showBreadcrumbs", publicName: "showBreadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, fieldConfigs: { classPropertyName: "fieldConfigs", publicName: "fieldConfigs", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, showVersionHistory: { classPropertyName: "showVersionHistory", publicName: "showVersionHistory", isSignal: true, isRequired: false, transformFunction: null }, suppressNavigation: { classPropertyName: "suppressNavigation", publicName: "suppressNavigation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { edit: "edit", statusChanged: "statusChanged", delete_: "delete_", actionClick: "actionClick" }, host: { classAttribute: "block" }, ngImport: i0, template: `
6299
6304
  <div class="max-w-4xl">
6300
6305
  @if (showBreadcrumbs()) {
6301
6306
  <mcms-breadcrumbs class="mb-6">
@@ -6445,7 +6450,7 @@ class EntityViewWidget {
6445
6450
  </div>
6446
6451
  `, isInline: true, dependencies: [{ kind: "component", type: Card, selector: "mcms-card" }, { kind: "component", type: CardContent, selector: "mcms-card-content" }, { kind: "component", type: CardFooter, selector: "mcms-card-footer" }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Alert, selector: "mcms-alert", inputs: ["variant", "class"] }, { kind: "component", type: Skeleton, selector: "mcms-skeleton", inputs: ["class"] }, { kind: "component", type: FieldDisplay, selector: "mcms-field-display", inputs: ["value", "type", "label", "format", "emptyText", "badgeConfig", "openInNewTab", "maxItems", "class", "fieldMeta", "numberFormat", "dateFormat"] }, { kind: "component", type: Breadcrumbs, selector: "mcms-breadcrumbs", inputs: ["class"] }, { kind: "component", type: BreadcrumbItem, selector: "mcms-breadcrumb-item", inputs: ["href", "current", "class"] }, { kind: "component", type: BreadcrumbSeparator, selector: "mcms-breadcrumb-separator", inputs: ["class"] }, { kind: "component", type: VersionHistoryWidget, selector: "mcms-version-history", inputs: ["collection", "documentId", "documentLabel"], outputs: ["restored"] }, { kind: "component", type: PublishControlsWidget, selector: "mcms-publish-controls", inputs: ["collection", "documentId", "documentLabel", "initialStatus"], outputs: ["statusChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6447
6452
  }
6448
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntityViewWidget, decorators: [{
6453
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntityViewWidget, decorators: [{
6449
6454
  type: Component,
6450
6455
  args: [{
6451
6456
  selector: 'mcms-entity-view',
@@ -6711,8 +6716,8 @@ class EntitySheetContentComponent {
6711
6716
  queryParamsHandling: 'merge',
6712
6717
  });
6713
6718
  }
6714
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntitySheetContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6715
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: EntitySheetContentComponent, isStandalone: true, selector: "mcms-entity-sheet-content", host: { classAttribute: "flex flex-col h-full" }, providers: [provideIcons({ heroXMark })], ngImport: i0, template: `
6719
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntitySheetContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6720
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: EntitySheetContentComponent, isStandalone: true, selector: "mcms-entity-sheet-content", host: { classAttribute: "flex flex-col h-full" }, providers: [provideIcons({ heroXMark })], ngImport: i0, template: `
6716
6721
  <!-- Header -->
6717
6722
  <header
6718
6723
  class="flex items-center justify-between gap-4 border-b border-border bg-card px-6 py-4 shrink-0"
@@ -6757,7 +6762,7 @@ class EntitySheetContentComponent {
6757
6762
  </div>
6758
6763
  `, isInline: true, dependencies: [{ kind: "component", type: EntityFormWidget, selector: "mcms-entity-form", inputs: ["collection", "entityId", "mode", "basePath", "showBreadcrumbs", "suppressNavigation", "isGlobal", "globalSlug"], outputs: ["saved", "cancelled", "saveError", "modeChange", "draftSaved"] }, { kind: "component", type: EntityViewWidget, selector: "mcms-entity-view", inputs: ["collection", "entityId", "basePath", "showBreadcrumbs", "fieldConfigs", "actions", "showVersionHistory", "suppressNavigation"], outputs: ["edit", "statusChanged", "delete_", "actionClick"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6759
6764
  }
6760
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntitySheetContentComponent, decorators: [{
6765
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntitySheetContentComponent, decorators: [{
6761
6766
  type: Component,
6762
6767
  args: [{
6763
6768
  selector: 'mcms-entity-sheet-content',
@@ -6994,8 +6999,8 @@ class AdminSidebarWidget {
6994
6999
  onSignOutClick() {
6995
7000
  this.signOut.emit();
6996
7001
  }
6997
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AdminSidebarWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
6998
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: AdminSidebarWidget, isStandalone: true, selector: "mcms-admin-sidebar", inputs: { branding: { classPropertyName: "branding", publicName: "branding", isSignal: true, isRequired: false, transformFunction: null }, collections: { classPropertyName: "collections", publicName: "collections", isSignal: true, isRequired: false, transformFunction: null }, globals: { classPropertyName: "globals", publicName: "globals", isSignal: true, isRequired: false, transformFunction: null }, pluginRoutes: { classPropertyName: "pluginRoutes", publicName: "pluginRoutes", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { signOut: "signOut" }, host: { classAttribute: "shrink-0" }, providers: [
7002
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AdminSidebarWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
7003
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: AdminSidebarWidget, isStandalone: true, selector: "mcms-admin-sidebar", inputs: { branding: { classPropertyName: "branding", publicName: "branding", isSignal: true, isRequired: false, transformFunction: null }, collections: { classPropertyName: "collections", publicName: "collections", isSignal: true, isRequired: false, transformFunction: null }, globals: { classPropertyName: "globals", publicName: "globals", isSignal: true, isRequired: false, transformFunction: null }, pluginRoutes: { classPropertyName: "pluginRoutes", publicName: "pluginRoutes", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { signOut: "signOut" }, host: { classAttribute: "shrink-0" }, providers: [
6999
7004
  provideIcons({
7000
7005
  heroSquares2x2,
7001
7006
  heroNewspaper,
@@ -7147,7 +7152,7 @@ class AdminSidebarWidget {
7147
7152
  </mcms-sidebar>
7148
7153
  `, isInline: true, dependencies: [{ kind: "component", type: Sidebar, selector: "mcms-sidebar", inputs: ["width", "collapsedWidth", "collapsed", "class"] }, { kind: "component", type: SidebarNav, selector: "mcms-sidebar-nav", inputs: ["ariaLabel", "class"] }, { kind: "component", type: SidebarNavItem, selector: "mcms-sidebar-nav-item", inputs: ["label", "href", "icon", "badge", "active", "disabled", "exact", "class"], outputs: ["clicked"] }, { kind: "component", type: SidebarSection, selector: "mcms-sidebar-section", inputs: ["title", "collapsible", "expanded", "class"], outputs: ["expandedChange"] }, { kind: "component", type: Avatar, selector: "mcms-avatar", inputs: ["size", "class", "ariaLabel"] }, { kind: "component", type: AvatarFallback, selector: "mcms-avatar-fallback", inputs: ["delayMs", "class"] }, { kind: "component", type: DropdownMenu, selector: "mcms-dropdown-menu", inputs: ["disabled", "wrap", "typeaheadDelay", "class"], outputs: ["itemSelected"] }, { kind: "component", type: DropdownMenuItem, selector: "button[mcms-dropdown-item], a[mcms-dropdown-item]", inputs: ["value", "disabled", "shortcut", "class"], outputs: ["selected"] }, { kind: "component", type: DropdownSeparator, selector: "mcms-dropdown-separator" }, { kind: "component", type: DropdownLabel, selector: "mcms-dropdown-label" }, { kind: "directive", type: DropdownTrigger, selector: "[mcmsDropdownTrigger]", inputs: ["mcmsDropdownTrigger", "dropdownSide", "dropdownAlign", "dropdownOffset", "dropdownDisabled"], outputs: ["opened", "closed"], exportAs: ["mcmsDropdownTrigger"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7149
7154
  }
7150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AdminSidebarWidget, decorators: [{
7155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AdminSidebarWidget, decorators: [{
7151
7156
  type: Component,
7152
7157
  args: [{
7153
7158
  selector: 'mcms-admin-sidebar',
@@ -7437,8 +7442,8 @@ class AdminShellComponent {
7437
7442
  await this.auth.signOut();
7438
7443
  await this.router.navigate(['/admin/login']);
7439
7444
  }
7440
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AdminShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7441
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: AdminShellComponent, isStandalone: true, selector: "mcms-admin-shell", host: { listeners: { "document:keydown.escape": "onEscapeKey()" }, classAttribute: "flex h-screen overflow-hidden bg-background" }, ngImport: i0, template: `
7445
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AdminShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7446
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: AdminShellComponent, isStandalone: true, selector: "mcms-admin-shell", host: { listeners: { "document:keydown.escape": "onEscapeKey()" }, classAttribute: "flex h-screen overflow-hidden bg-background" }, ngImport: i0, template: `
7442
7447
  <!-- Skip navigation link for keyboard users -->
7443
7448
  <a
7444
7449
  href="#mcms-main-content"
@@ -7468,7 +7473,7 @@ class AdminShellComponent {
7468
7473
  <!-- Main Content (with top padding on mobile for header, normal padding at md+) -->
7469
7474
  <main id="mcms-main-content" class="flex-1 p-8 overflow-y-auto overflow-x-hidden pt-20 md:pt-8">
7470
7475
  @defer (hydrate on immediate) {
7471
- <router-outlet></router-outlet>
7476
+ <router-outlet />
7472
7477
  }
7473
7478
  </main>
7474
7479
 
@@ -7506,7 +7511,7 @@ class AdminShellComponent {
7506
7511
  }
7507
7512
  `, isInline: true, styles: ["@keyframes mcms-fade-in{0%{opacity:0}to{opacity:1}}@keyframes mcms-fade-out{0%{opacity:1}to{opacity:0}}@keyframes mcms-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes mcms-slide-out-right{0%{transform:translate(0)}to{transform:translate(100%)}}.sheet-backdrop{animation:mcms-fade-in .15s ease-out}.sheet-backdrop-closing{animation:mcms-fade-out .15s ease-in forwards}.sheet-panel{animation:mcms-slide-in-right .2s ease-out}.sheet-panel-closing{animation:mcms-slide-out-right .2s ease-in forwards}\n"], dependencies: [{ kind: "component", type: AdminSidebarWidget, selector: "mcms-admin-sidebar", inputs: ["branding", "collections", "globals", "pluginRoutes", "user", "basePath", "collapsed", "width"], outputs: ["signOut"] }, { kind: "component", type: SidebarTrigger, selector: "mcms-sidebar-trigger", inputs: ["class"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: EntitySheetContentComponent, selector: "mcms-entity-sheet-content" }, { kind: "component", type: ToastContainer, selector: "mcms-toast-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [RouterOutlet]] });
7508
7513
  }
7509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AdminShellComponent, decorators: [{
7514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AdminShellComponent, decorators: [{
7510
7515
  type: Component,
7511
7516
  args: [{ selector: 'mcms-admin-shell', imports: [
7512
7517
  RouterOutlet,
@@ -7548,7 +7553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
7548
7553
  <!-- Main Content (with top padding on mobile for header, normal padding at md+) -->
7549
7554
  <main id="mcms-main-content" class="flex-1 p-8 overflow-y-auto overflow-x-hidden pt-20 md:pt-8">
7550
7555
  @defer (hydrate on immediate) {
7551
- <router-outlet></router-outlet>
7556
+ <router-outlet />
7552
7557
  }
7553
7558
  </main>
7554
7559
 
@@ -7668,8 +7673,8 @@ class ForgotPasswordFormComponent {
7668
7673
  onBackToLogin() {
7669
7674
  this.backToLogin.emit();
7670
7675
  }
7671
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ForgotPasswordFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7672
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: ForgotPasswordFormComponent, isStandalone: true, selector: "mcms-forgot-password-form", outputs: { resetRequested: "resetRequested", backToLogin: "backToLogin" }, ngImport: i0, template: `
7676
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ForgotPasswordFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7677
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ForgotPasswordFormComponent, isStandalone: true, selector: "mcms-forgot-password-form", outputs: { resetRequested: "resetRequested", backToLogin: "backToLogin" }, ngImport: i0, template: `
7673
7678
  <form (submit)="onSubmit($event)" class="space-y-4">
7674
7679
  @if (submitted() && !error()) {
7675
7680
  <div
@@ -7733,12 +7738,12 @@ class ForgotPasswordFormComponent {
7733
7738
  r="10"
7734
7739
  stroke="currentColor"
7735
7740
  stroke-width="4"
7736
- ></circle>
7741
+ />
7737
7742
  <path
7738
7743
  class="opacity-75"
7739
7744
  fill="currentColor"
7740
7745
  d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
7741
- ></path>
7746
+ />
7742
7747
  </svg>
7743
7748
  Sending...
7744
7749
  } @else {
@@ -7759,7 +7764,7 @@ class ForgotPasswordFormComponent {
7759
7764
  </form>
7760
7765
  `, isInline: true, dependencies: [{ kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7761
7766
  }
7762
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ForgotPasswordFormComponent, decorators: [{
7767
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ForgotPasswordFormComponent, decorators: [{
7763
7768
  type: Component,
7764
7769
  args: [{
7765
7770
  selector: 'mcms-forgot-password-form',
@@ -7829,12 +7834,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
7829
7834
  r="10"
7830
7835
  stroke="currentColor"
7831
7836
  stroke-width="4"
7832
- ></circle>
7837
+ />
7833
7838
  <path
7834
7839
  class="opacity-75"
7835
7840
  fill="currentColor"
7836
7841
  d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
7837
- ></path>
7842
+ />
7838
7843
  </svg>
7839
7844
  Sending...
7840
7845
  } @else {
@@ -7962,8 +7967,8 @@ class ResetPasswordFormComponent {
7962
7967
  onGoToForgotPassword() {
7963
7968
  this.goToForgotPassword.emit();
7964
7969
  }
7965
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ResetPasswordFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7966
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: ResetPasswordFormComponent, isStandalone: true, selector: "mcms-reset-password-form", inputs: { token: { classPropertyName: "token", publicName: "token", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resetComplete: "resetComplete", resetFailed: "resetFailed", goToLogin: "goToLogin", goToForgotPassword: "goToForgotPassword" }, ngImport: i0, template: `
7970
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ResetPasswordFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7971
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ResetPasswordFormComponent, isStandalone: true, selector: "mcms-reset-password-form", inputs: { token: { classPropertyName: "token", publicName: "token", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resetComplete: "resetComplete", resetFailed: "resetFailed", goToLogin: "goToLogin", goToForgotPassword: "goToForgotPassword" }, ngImport: i0, template: `
7967
7972
  <form (submit)="onSubmit($event)" class="space-y-4">
7968
7973
  @if (resetSuccess()) {
7969
7974
  <div
@@ -8053,12 +8058,12 @@ class ResetPasswordFormComponent {
8053
8058
  r="10"
8054
8059
  stroke="currentColor"
8055
8060
  stroke-width="4"
8056
- ></circle>
8061
+ />
8057
8062
  <path
8058
8063
  class="opacity-75"
8059
8064
  fill="currentColor"
8060
8065
  d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
8061
- ></path>
8066
+ />
8062
8067
  </svg>
8063
8068
  Resetting...
8064
8069
  } @else {
@@ -8070,7 +8075,7 @@ class ResetPasswordFormComponent {
8070
8075
  </form>
8071
8076
  `, isInline: true, dependencies: [{ kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8072
8077
  }
8073
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ResetPasswordFormComponent, decorators: [{
8078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ResetPasswordFormComponent, decorators: [{
8074
8079
  type: Component,
8075
8080
  args: [{
8076
8081
  selector: 'mcms-reset-password-form',
@@ -8166,12 +8171,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
8166
8171
  r="10"
8167
8172
  stroke="currentColor"
8168
8173
  stroke-width="4"
8169
- ></circle>
8174
+ />
8170
8175
  <path
8171
8176
  class="opacity-75"
8172
8177
  fill="currentColor"
8173
8178
  d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
8174
- ></path>
8179
+ />
8175
8180
  </svg>
8176
8181
  Resetting...
8177
8182
  } @else {
@@ -8266,8 +8271,8 @@ class CollectionCardWidget {
8266
8271
  this.loading.set(false);
8267
8272
  }
8268
8273
  }
8269
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionCardWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
8270
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: CollectionCardWidget, isStandalone: true, selector: "mcms-collection-card", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, showDocumentCount: { classPropertyName: "showDocumentCount", publicName: "showDocumentCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { viewAll: "viewAll" }, host: { classAttribute: "block" }, ngImport: i0, template: `
8274
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionCardWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
8275
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CollectionCardWidget, isStandalone: true, selector: "mcms-collection-card", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, showDocumentCount: { classPropertyName: "showDocumentCount", publicName: "showDocumentCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { viewAll: "viewAll" }, host: { classAttribute: "block" }, ngImport: i0, template: `
8271
8276
  <mcms-card>
8272
8277
  <mcms-card-header>
8273
8278
  <div class="flex items-center justify-between">
@@ -8301,7 +8306,7 @@ class CollectionCardWidget {
8301
8306
  </mcms-card>
8302
8307
  `, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: Card, selector: "mcms-card" }, { kind: "component", type: CardHeader, selector: "mcms-card-header" }, { kind: "component", type: CardContent, selector: "mcms-card-content" }, { kind: "component", type: CardFooter, selector: "mcms-card-footer" }, { kind: "component", type: Badge, selector: "mcms-badge", inputs: ["variant", "class", "role", "ariaLabel"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Skeleton, selector: "mcms-skeleton", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8303
8308
  }
8304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionCardWidget, decorators: [{
8309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionCardWidget, decorators: [{
8305
8310
  type: Component,
8306
8311
  args: [{
8307
8312
  selector: 'mcms-collection-card',
@@ -8370,8 +8375,8 @@ class DashboardPage {
8370
8375
  }, ...(ngDevMode ? [{ debugName: "collections" }] : []));
8371
8376
  /** Visible collections grouped by admin.group. Named groups first, default last. */
8372
8377
  collectionGroups = computed(() => groupCollections(this.collections()), ...(ngDevMode ? [{ debugName: "collectionGroups" }] : []));
8373
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: DashboardPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
8374
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: DashboardPage, isStandalone: true, selector: "mcms-dashboard", host: { classAttribute: "block max-w-6xl" }, ngImport: i0, template: `
8378
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DashboardPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
8379
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DashboardPage, isStandalone: true, selector: "mcms-dashboard", host: { classAttribute: "block max-w-6xl" }, ngImport: i0, template: `
8375
8380
  <header class="mb-10">
8376
8381
  <h1 class="text-4xl font-bold tracking-tight text-foreground">Dashboard</h1>
8377
8382
  <p class="text-muted-foreground mt-3 text-lg">Manage your content and collections</p>
@@ -8423,7 +8428,7 @@ class DashboardPage {
8423
8428
  }
8424
8429
  `, isInline: true, dependencies: [{ kind: "component", type: CollectionCardWidget, selector: "mcms-collection-card", inputs: ["collection", "basePath", "showDocumentCount"], outputs: ["viewAll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8425
8430
  }
8426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: DashboardPage, decorators: [{
8431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DashboardPage, decorators: [{
8427
8432
  type: Component,
8428
8433
  args: [{
8429
8434
  selector: 'mcms-dashboard',
@@ -8537,8 +8542,8 @@ class DataPreviewDialog {
8537
8542
  close() {
8538
8543
  this.dialogRef.close();
8539
8544
  }
8540
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: DataPreviewDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
8541
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.2", type: DataPreviewDialog, isStandalone: true, selector: "mcms-data-preview-dialog", host: { styleAttribute: "display: block; width: 100%" }, ngImport: i0, template: `
8545
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DataPreviewDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
8546
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: DataPreviewDialog, isStandalone: true, selector: "mcms-data-preview-dialog", host: { styleAttribute: "display: block; width: 100%" }, ngImport: i0, template: `
8542
8547
  <mcms-dialog>
8543
8548
  <mcms-dialog-header>
8544
8549
  <mcms-dialog-title>{{ data.title }}</mcms-dialog-title>
@@ -8561,7 +8566,7 @@ class DataPreviewDialog {
8561
8566
  </mcms-dialog>
8562
8567
  `, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Dialog, selector: "mcms-dialog", inputs: ["class"] }, { kind: "component", type: DialogHeader, selector: "mcms-dialog-header" }, { kind: "component", type: DialogTitle, selector: "mcms-dialog-title", inputs: ["id"] }, { kind: "component", type: DialogContent, selector: "mcms-dialog-content" }, { kind: "component", type: DialogFooter, selector: "mcms-dialog-footer" }, { kind: "directive", type: DialogClose, selector: "[mcmsDialogClose]", inputs: ["mcmsDialogClose"] }, { kind: "component", type: FieldDisplay, selector: "mcms-field-display", inputs: ["value", "type", "label", "format", "emptyText", "badgeConfig", "openInNewTab", "maxItems", "class", "fieldMeta", "numberFormat", "dateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8563
8568
  }
8564
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: DataPreviewDialog, decorators: [{
8569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DataPreviewDialog, decorators: [{
8565
8570
  type: Component,
8566
8571
  args: [{
8567
8572
  selector: 'mcms-data-preview-dialog',
@@ -9164,8 +9169,8 @@ class EntityListWidget {
9164
9169
  const path = `${this.basePath()}/${this.collection().slug}/new`;
9165
9170
  this.router.navigate([path]);
9166
9171
  }
9167
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntityListWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
9168
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: EntityListWidget, isStandalone: true, selector: "mcms-entity-list", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumbs: { classPropertyName: "showBreadcrumbs", publicName: "showBreadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, bulkActions: { classPropertyName: "bulkActions", publicName: "bulkActions", isSignal: true, isRequired: false, transformFunction: null }, headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, searchFields: { classPropertyName: "searchFields", publicName: "searchFields", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, searchQuery: { classPropertyName: "searchQuery", publicName: "searchQuery", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { headerActionClick: "headerActionClick", entityClick: "entityClick", entityAction: "entityAction", bulkAction: "bulkAction", dataLoaded: "dataLoaded", searchQuery: "searchQueryChange" }, host: { classAttribute: "block" }, providers: [provideIcons({ heroEye })], viewQueries: [{ propertyName: "complexCellTemplate", first: true, predicate: ["complexCell"], descendants: true, isSignal: true }], ngImport: i0, template: `
9172
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntityListWidget, deps: [], target: i0.ɵɵFactoryTarget.Component });
9173
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: EntityListWidget, isStandalone: true, selector: "mcms-entity-list", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, basePath: { classPropertyName: "basePath", publicName: "basePath", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumbs: { classPropertyName: "showBreadcrumbs", publicName: "showBreadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, bulkActions: { classPropertyName: "bulkActions", publicName: "bulkActions", isSignal: true, isRequired: false, transformFunction: null }, headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, searchFields: { classPropertyName: "searchFields", publicName: "searchFields", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, searchQuery: { classPropertyName: "searchQuery", publicName: "searchQuery", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { headerActionClick: "headerActionClick", entityClick: "entityClick", entityAction: "entityAction", bulkAction: "bulkAction", dataLoaded: "dataLoaded", searchQuery: "searchQueryChange" }, host: { classAttribute: "block" }, providers: [provideIcons({ heroEye })], viewQueries: [{ propertyName: "complexCellTemplate", first: true, predicate: ["complexCell"], descendants: true, isSignal: true }], ngImport: i0, template: `
9169
9174
  @if (showHeader()) {
9170
9175
  @if (showBreadcrumbs()) {
9171
9176
  <mcms-breadcrumbs class="mb-6">
@@ -9281,7 +9286,7 @@ class EntityListWidget {
9281
9286
  </ng-template>
9282
9287
  `, isInline: true, dependencies: [{ kind: "component", type: DataTable, selector: "mcms-data-table", inputs: ["data", "columns", "loading", "searchable", "searchPlaceholder", "searchFields", "sortable", "sort", "selectable", "selectedItems", "paginated", "pageSize", "pageSizeOptions", "currentPage", "totalItems", "emptyTitle", "emptyDescription", "clickableRows", "rowActions", "trackByFn", "class", "searchQuery"], outputs: ["sortChange", "selectedItemsChange", "currentPageChange", "searchChange", "selectionChange", "pageChange", "pageSizeChange", "rowClick", "rowAction", "searchQueryChange"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Badge, selector: "mcms-badge", inputs: ["variant", "class", "role", "ariaLabel"] }, { kind: "component", type: Breadcrumbs, selector: "mcms-breadcrumbs", inputs: ["class"] }, { kind: "component", type: BreadcrumbItem, selector: "mcms-breadcrumb-item", inputs: ["href", "current", "class"] }, { kind: "component", type: BreadcrumbSeparator, selector: "mcms-breadcrumb-separator", inputs: ["class"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9283
9288
  }
9284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: EntityListWidget, decorators: [{
9289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntityListWidget, decorators: [{
9285
9290
  type: Component,
9286
9291
  args: [{
9287
9292
  selector: 'mcms-entity-list',
@@ -9474,8 +9479,8 @@ class GenerateApiKeyDialog {
9474
9479
  // Clipboard API not available, user can manually copy
9475
9480
  }
9476
9481
  }
9477
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: GenerateApiKeyDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
9478
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: GenerateApiKeyDialog, isStandalone: true, selector: "mcms-generate-api-key-dialog", host: { styleAttribute: "display: block; width: 100%" }, ngImport: i0, template: `
9482
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: GenerateApiKeyDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
9483
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: GenerateApiKeyDialog, isStandalone: true, selector: "mcms-generate-api-key-dialog", host: { styleAttribute: "display: block; width: 100%" }, ngImport: i0, template: `
9479
9484
  <mcms-dialog>
9480
9485
  <mcms-dialog-header>
9481
9486
  <mcms-dialog-title>Generate API Key</mcms-dialog-title>
@@ -9588,7 +9593,7 @@ class GenerateApiKeyDialog {
9588
9593
  </mcms-dialog>
9589
9594
  `, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Dialog, selector: "mcms-dialog", inputs: ["class"] }, { kind: "component", type: DialogHeader, selector: "mcms-dialog-header" }, { kind: "component", type: DialogTitle, selector: "mcms-dialog-title", inputs: ["id"] }, { kind: "component", type: DialogContent, selector: "mcms-dialog-content" }, { kind: "component", type: DialogFooter, selector: "mcms-dialog-footer" }, { kind: "directive", type: DialogClose, selector: "[mcmsDialogClose]", inputs: ["mcmsDialogClose"] }, { kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }, { kind: "component", type: Label, selector: "mcms-label", inputs: ["for", "required", "disabled", "class"] }, { kind: "component", type: Select, selector: "mcms-select", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "id", "name", "placeholder", "options", "describedBy", "ariaLabel"], outputs: ["valueChange", "blurred"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9590
9595
  }
9591
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: GenerateApiKeyDialog, decorators: [{
9596
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: GenerateApiKeyDialog, decorators: [{
9592
9597
  type: Component,
9593
9598
  args: [{
9594
9599
  selector: 'mcms-generate-api-key-dialog',
@@ -9789,8 +9794,8 @@ class CollectionListPage {
9789
9794
  }
9790
9795
  }
9791
9796
  }
9792
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionListPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
9793
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: CollectionListPage, isStandalone: true, selector: "mcms-collection-list", host: { classAttribute: "block" }, viewQueries: [{ propertyName: "entityList", first: true, predicate: ["entityList"], descendants: true, isSignal: true }], ngImport: i0, template: `
9797
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionListPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
9798
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CollectionListPage, isStandalone: true, selector: "mcms-collection-list", host: { classAttribute: "block" }, viewQueries: [{ propertyName: "entityList", first: true, predicate: ["entityList"], descendants: true, isSignal: true }], ngImport: i0, template: `
9794
9799
  @if (collection(); as col) {
9795
9800
  <mcms-entity-list
9796
9801
  #entityList
@@ -9808,7 +9813,7 @@ class CollectionListPage {
9808
9813
  }
9809
9814
  `, isInline: true, dependencies: [{ kind: "component", type: EntityListWidget, selector: "mcms-entity-list", inputs: ["collection", "basePath", "showHeader", "showBreadcrumbs", "columns", "rowActions", "bulkActions", "headerActions", "searchable", "searchPlaceholder", "searchFields", "sortable", "selectable", "paginated", "pageSize", "emptyTitle", "emptyDescription", "searchQuery"], outputs: ["headerActionClick", "entityClick", "entityAction", "bulkAction", "dataLoaded", "searchQueryChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9810
9815
  }
9811
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionListPage, decorators: [{
9816
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionListPage, decorators: [{
9812
9817
  type: Component,
9813
9818
  args: [{
9814
9819
  selector: 'mcms-collection-list',
@@ -9874,8 +9879,8 @@ class CollectionViewPage {
9874
9879
  onDelete(_entity) {
9875
9880
  // Navigation is handled by EntityViewWidget
9876
9881
  }
9877
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionViewPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
9878
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: CollectionViewPage, isStandalone: true, selector: "mcms-collection-view", host: { classAttribute: "block" }, ngImport: i0, template: `
9882
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionViewPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
9883
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CollectionViewPage, isStandalone: true, selector: "mcms-collection-view", host: { classAttribute: "block" }, ngImport: i0, template: `
9879
9884
  @if (collection(); as col) {
9880
9885
  @if (entityId(); as id) {
9881
9886
  <mcms-entity-view
@@ -9893,7 +9898,7 @@ class CollectionViewPage {
9893
9898
  }
9894
9899
  `, isInline: true, dependencies: [{ kind: "component", type: EntityViewWidget, selector: "mcms-entity-view", inputs: ["collection", "entityId", "basePath", "showBreadcrumbs", "fieldConfigs", "actions", "showVersionHistory", "suppressNavigation"], outputs: ["edit", "statusChanged", "delete_", "actionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9895
9900
  }
9896
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionViewPage, decorators: [{
9901
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionViewPage, decorators: [{
9897
9902
  type: Component,
9898
9903
  args: [{
9899
9904
  selector: 'mcms-collection-view',
@@ -9931,8 +9936,9 @@ var collectionView_page = /*#__PURE__*/Object.freeze({
9931
9936
  * Displays an iframe that shows a live preview of the document being edited.
9932
9937
  *
9933
9938
  * Two modes based on preview config type:
9934
- * - `preview: true` (server-rendered HTML): iframe loads API endpoint with scripts enabled
9935
- * for postMessage live updates.
9939
+ * - `preview: true` (server-rendered HTML): initial GET loads from database, then
9940
+ * subsequent form changes are POSTed to the same endpoint with the current form data
9941
+ * for realtime preview updates (no page reload needed).
9936
9942
  * - `preview: string/function` (URL-based): iframe loads the page URL with scripts DISABLED.
9937
9943
  * This prevents loading a second Angular app instance (with Vite HMR, SSR hydration, etc.)
9938
9944
  * which causes tab crashes in dev mode. The SSR-rendered HTML displays correctly without JS.
@@ -9960,6 +9966,8 @@ class LivePreviewComponent {
9960
9966
  refreshCounter = signal(0, ...(ngDevMode ? [{ debugName: "refreshCounter" }] : []));
9961
9967
  /** Reference to the static iframe element (available when previewUrl is non-null) */
9962
9968
  previewIframe = viewChild('previewIframe', ...(ngDevMode ? [{ debugName: "previewIframe" }] : []));
9969
+ /** Whether the initial iframe load from GET is complete */
9970
+ initialLoadDone = false;
9963
9971
  /** Compute the raw preview URL */
9964
9972
  previewUrl = computed(() => {
9965
9973
  // Force recomputation on refresh
@@ -10016,8 +10024,10 @@ class LivePreviewComponent {
10016
10024
  // URL-based preview: no scripts to prevent full Angular app from loading
10017
10025
  return 'allow-same-origin allow-popups allow-forms';
10018
10026
  }, ...(ngDevMode ? [{ debugName: "sandboxValue" }] : []));
10019
- /** Debounce timer for postMessage updates */
10027
+ /** Debounce timer for live preview updates */
10020
10028
  debounceTimer = undefined;
10029
+ /** AbortController for in-flight POST requests */
10030
+ fetchAbort = undefined;
10021
10031
  constructor() {
10022
10032
  // Effect 1: Set iframe src and sandbox when URL or sandbox config changes.
10023
10033
  // Uses untracked() for iframeWidth so device size toggles don't trigger a reload.
@@ -10029,10 +10039,17 @@ class LivePreviewComponent {
10029
10039
  const url = this.previewUrl();
10030
10040
  if (!url)
10031
10041
  return;
10042
+ this.initialLoadDone = false;
10032
10043
  iframe.setAttribute('sandbox', this.sandboxValue());
10033
10044
  iframe.src = url;
10034
10045
  // Set initial width without tracking the signal
10035
10046
  iframe.style.width = untracked(() => this.iframeWidth());
10047
+ // Mark initial load as done once the iframe finishes loading
10048
+ const onLoad = () => {
10049
+ this.initialLoadDone = true;
10050
+ iframe.removeEventListener('load', onLoad);
10051
+ };
10052
+ iframe.addEventListener('load', onLoad);
10036
10053
  });
10037
10054
  // Effect 2: Update iframe width only (no reload).
10038
10055
  // Changing CSS width on an iframe does not trigger navigation.
@@ -10042,25 +10059,43 @@ class LivePreviewComponent {
10042
10059
  return;
10043
10060
  iframeRef.nativeElement.style.width = this.iframeWidth();
10044
10061
  });
10045
- // Send form data to iframe via postMessage whenever data changes.
10046
- // Only effective for server-rendered previews (preview: true) where
10047
- // allow-scripts is enabled. URL-based previews have scripts disabled
10048
- // so the postMessage is a no-op (which is fine).
10062
+ // Effect 3: Live preview updates via POST (for preview: true mode).
10063
+ // When form data changes, POST it to the preview endpoint and write the
10064
+ // response HTML directly to the iframe. This works for all collection types
10065
+ // including email templates where postMessage isn't sufficient.
10049
10066
  effect(() => {
10050
10067
  const data = this.documentData();
10051
- const iframeRef = this.previewIframe();
10052
- if (!iframeRef?.nativeElement.contentWindow)
10068
+ const previewConfig = this.preview();
10069
+ // Only use POST-based updates for server-rendered previews (preview: true)
10070
+ if (previewConfig !== true) {
10071
+ // For URL-based previews, use postMessage as before
10072
+ const iframeRef = this.previewIframe();
10073
+ if (!iframeRef?.nativeElement.contentWindow)
10074
+ return;
10075
+ if (this.debounceTimer) {
10076
+ clearTimeout(this.debounceTimer);
10077
+ }
10078
+ this.debounceTimer = this.document.defaultView?.setTimeout(() => {
10079
+ const iframeWindow = iframeRef.nativeElement.contentWindow;
10080
+ if (iframeWindow) {
10081
+ const targetOrigin = this.document.defaultView?.location?.origin ?? '';
10082
+ iframeWindow.postMessage({ type: 'momentum-preview-update', data }, targetOrigin);
10083
+ }
10084
+ }, 300);
10085
+ return;
10086
+ }
10087
+ // For preview: true, POST form data to the server preview endpoint
10088
+ const url = untracked(() => this.previewUrl());
10089
+ if (!url)
10090
+ return;
10091
+ // Skip the first emission (initial load is handled by iframe src)
10092
+ if (!this.initialLoadDone)
10053
10093
  return;
10054
- // Debounce to avoid thrashing
10055
10094
  if (this.debounceTimer) {
10056
10095
  clearTimeout(this.debounceTimer);
10057
10096
  }
10058
10097
  this.debounceTimer = this.document.defaultView?.setTimeout(() => {
10059
- const iframeWindow = iframeRef.nativeElement.contentWindow;
10060
- if (iframeWindow) {
10061
- const targetOrigin = this.document.defaultView?.location?.origin ?? '';
10062
- iframeWindow.postMessage({ type: 'momentum-preview-update', data }, targetOrigin);
10063
- }
10098
+ this.fetchPreviewHtml(url, data);
10064
10099
  }, 300);
10065
10100
  });
10066
10101
  // Listen for edit block requests from preview iframe
@@ -10079,20 +10114,62 @@ class LivePreviewComponent {
10079
10114
  win.addEventListener('message', editHandler);
10080
10115
  this.destroyRef.onDestroy(() => win.removeEventListener('message', editHandler));
10081
10116
  }
10082
- // Clean up debounce timer on destroy
10117
+ // Clean up on destroy
10083
10118
  this.destroyRef.onDestroy(() => {
10084
10119
  if (this.debounceTimer) {
10085
10120
  clearTimeout(this.debounceTimer);
10086
10121
  this.debounceTimer = undefined;
10087
10122
  }
10123
+ this.fetchAbort?.abort();
10088
10124
  });
10089
10125
  }
10090
- /** Force iframe to reload */
10126
+ /** Force iframe to reload from server (GET) */
10091
10127
  refreshPreview() {
10092
10128
  this.refreshCounter.update((c) => c + 1);
10093
10129
  }
10094
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: LivePreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10095
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: LivePreviewComponent, isStandalone: true, selector: "mcms-live-preview", inputs: { preview: { classPropertyName: "preview", publicName: "preview", isSignal: true, isRequired: true, transformFunction: null }, documentData: { classPropertyName: "documentData", publicName: "documentData", isSignal: true, isRequired: true, transformFunction: null }, collectionSlug: { classPropertyName: "collectionSlug", publicName: "collectionSlug", isSignal: true, isRequired: true, transformFunction: null }, entityId: { classPropertyName: "entityId", publicName: "entityId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editBlockRequest: "editBlockRequest" }, host: { classAttribute: "flex flex-col h-full border-l border-border" }, viewQueries: [{ propertyName: "previewIframe", first: true, predicate: ["previewIframe"], descendants: true, isSignal: true }], ngImport: i0, template: `
10130
+ /** POST form data to the preview endpoint and write the HTML response to the iframe. */
10131
+ fetchPreviewHtml(url, data) {
10132
+ // Cancel any in-flight request
10133
+ this.fetchAbort?.abort();
10134
+ this.fetchAbort = new AbortController();
10135
+ const win = this.document.defaultView;
10136
+ if (!win)
10137
+ return;
10138
+ win
10139
+ .fetch(url, {
10140
+ method: 'POST',
10141
+ headers: { 'Content-Type': 'application/json' },
10142
+ body: JSON.stringify({ data }),
10143
+ credentials: 'include',
10144
+ signal: this.fetchAbort.signal,
10145
+ })
10146
+ .then((response) => {
10147
+ if (!response.ok)
10148
+ return null;
10149
+ return response.text();
10150
+ })
10151
+ .then((html) => {
10152
+ if (!html)
10153
+ return;
10154
+ const iframeRef = this.previewIframe();
10155
+ if (!iframeRef)
10156
+ return;
10157
+ const doc = iframeRef.nativeElement.contentDocument;
10158
+ if (doc) {
10159
+ doc.open();
10160
+ doc.write(html);
10161
+ doc.close();
10162
+ }
10163
+ })
10164
+ .catch((err) => {
10165
+ // Ignore abort errors (expected when a new request supersedes)
10166
+ if (err instanceof DOMException && err.name === 'AbortError')
10167
+ return;
10168
+ console.warn('[momentum:live-preview] Preview fetch failed:', err);
10169
+ });
10170
+ }
10171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LivePreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: LivePreviewComponent, isStandalone: true, selector: "mcms-live-preview", inputs: { preview: { classPropertyName: "preview", publicName: "preview", isSignal: true, isRequired: true, transformFunction: null }, documentData: { classPropertyName: "documentData", publicName: "documentData", isSignal: true, isRequired: true, transformFunction: null }, collectionSlug: { classPropertyName: "collectionSlug", publicName: "collectionSlug", isSignal: true, isRequired: true, transformFunction: null }, entityId: { classPropertyName: "entityId", publicName: "entityId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editBlockRequest: "editBlockRequest" }, host: { classAttribute: "flex flex-col h-full border-l border-border" }, viewQueries: [{ propertyName: "previewIframe", first: true, predicate: ["previewIframe"], descendants: true, isSignal: true }], ngImport: i0, template: `
10096
10173
  <!-- Preview toolbar -->
10097
10174
  <div class="flex items-center gap-2 px-4 py-2 border-b border-border bg-muted/50">
10098
10175
  <span class="text-sm font-medium text-foreground">Preview</span>
@@ -10177,7 +10254,7 @@ class LivePreviewComponent {
10177
10254
  </div>
10178
10255
  `, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10179
10256
  }
10180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: LivePreviewComponent, decorators: [{
10257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LivePreviewComponent, decorators: [{
10181
10258
  type: Component,
10182
10259
  args: [{
10183
10260
  selector: 'mcms-live-preview',
@@ -10290,15 +10367,15 @@ class BlockEditDialog {
10290
10367
  getFieldPath(fieldName) {
10291
10368
  return `${this.data.path}.${this.data.blockIndex}.${fieldName}`;
10292
10369
  }
10293
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: BlockEditDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
10294
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: BlockEditDialog, isStandalone: true, selector: "mcms-block-edit-dialog", host: { styleAttribute: "display: block; width: 100%" }, ngImport: i0, template: `
10370
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: BlockEditDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
10371
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: BlockEditDialog, isStandalone: true, selector: "mcms-block-edit-dialog", host: { styleAttribute: "display: block; width: 100%" }, ngImport: i0, template: `
10295
10372
  <mcms-dialog>
10296
10373
  <mcms-dialog-header>
10297
10374
  <mcms-dialog-title>Edit {{ blockLabel }}</mcms-dialog-title>
10298
10375
  </mcms-dialog-header>
10299
10376
 
10300
10377
  <mcms-dialog-content>
10301
- <div class="space-y-4 max-h-[60vh] overflow-y-auto py-1">
10378
+ <div class="space-y-4 max-h-[60vh] overflow-y-auto p-1">
10302
10379
  @for (field of visibleFields; track field.name) {
10303
10380
  <mcms-field-renderer
10304
10381
  [field]="field"
@@ -10318,7 +10395,7 @@ class BlockEditDialog {
10318
10395
  </mcms-dialog>
10319
10396
  `, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Dialog, selector: "mcms-dialog", inputs: ["class"] }, { kind: "component", type: DialogHeader, selector: "mcms-dialog-header" }, { kind: "component", type: DialogTitle, selector: "mcms-dialog-title", inputs: ["id"] }, { kind: "component", type: DialogContent, selector: "mcms-dialog-content" }, { kind: "component", type: DialogFooter, selector: "mcms-dialog-footer" }, { kind: "directive", type: DialogClose, selector: "[mcmsDialogClose]", inputs: ["mcmsDialogClose"] }, { kind: "component", type: FieldRenderer, selector: "mcms-field-renderer", inputs: ["field", "formNode", "formTree", "formModel", "mode", "path"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10320
10397
  }
10321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: BlockEditDialog, decorators: [{
10398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: BlockEditDialog, decorators: [{
10322
10399
  type: Component,
10323
10400
  args: [{
10324
10401
  selector: 'mcms-block-edit-dialog',
@@ -10341,7 +10418,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
10341
10418
  </mcms-dialog-header>
10342
10419
 
10343
10420
  <mcms-dialog-content>
10344
- <div class="space-y-4 max-h-[60vh] overflow-y-auto py-1">
10421
+ <div class="space-y-4 max-h-[60vh] overflow-y-auto p-1">
10345
10422
  @for (field of visibleFields; track field.name) {
10346
10423
  <mcms-field-renderer
10347
10424
  [field]="field"
@@ -10452,8 +10529,8 @@ class CollectionEditPage {
10452
10529
  },
10453
10530
  });
10454
10531
  }
10455
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionEditPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
10456
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: CollectionEditPage, isStandalone: true, selector: "mcms-collection-edit", host: { classAttribute: "block" }, viewQueries: [{ propertyName: "entityFormRef", first: true, predicate: ["entityForm"], descendants: true, isSignal: true }], ngImport: i0, template: `
10532
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionEditPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
10533
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CollectionEditPage, isStandalone: true, selector: "mcms-collection-edit", host: { classAttribute: "block" }, viewQueries: [{ propertyName: "entityFormRef", first: true, predicate: ["entityForm"], descendants: true, isSignal: true }], ngImport: i0, template: `
10457
10534
  @if (collection(); as col) {
10458
10535
  @if (previewConfig(); as preview) {
10459
10536
  @if (showPreview()) {
@@ -10527,7 +10604,7 @@ class CollectionEditPage {
10527
10604
  }
10528
10605
  `, isInline: true, dependencies: [{ kind: "component", type: EntityFormWidget, selector: "mcms-entity-form", inputs: ["collection", "entityId", "mode", "basePath", "showBreadcrumbs", "suppressNavigation", "isGlobal", "globalSlug"], outputs: ["saved", "cancelled", "saveError", "modeChange", "draftSaved"] }, { kind: "component", type: LivePreviewComponent, selector: "mcms-live-preview", inputs: ["preview", "documentData", "collectionSlug", "entityId"], outputs: ["editBlockRequest"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10529
10606
  }
10530
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CollectionEditPage, decorators: [{
10607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollectionEditPage, decorators: [{
10531
10608
  type: Component,
10532
10609
  args: [{
10533
10610
  selector: 'mcms-collection-edit',
@@ -10692,8 +10769,8 @@ class LoginPage {
10692
10769
  this.isSubmitting.set(false);
10693
10770
  }
10694
10771
  }
10695
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: LoginPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
10696
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: LoginPage, isStandalone: true, selector: "mcms-login-page", host: { classAttribute: "flex min-h-screen items-center justify-center bg-background p-4" }, ngImport: i0, template: `
10772
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LoginPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
10773
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: LoginPage, isStandalone: true, selector: "mcms-login-page", host: { classAttribute: "flex min-h-screen items-center justify-center bg-background p-4" }, ngImport: i0, template: `
10697
10774
  <main>
10698
10775
  <mcms-card class="w-full max-w-md">
10699
10776
  <mcms-card-header class="text-center">
@@ -10835,7 +10912,7 @@ class LoginPage {
10835
10912
  </main>
10836
10913
  `, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }, { kind: "component", type: Card, selector: "mcms-card" }, { kind: "component", type: CardHeader, selector: "mcms-card-header" }, { kind: "component", type: CardTitle, selector: "mcms-card-title", inputs: ["level"] }, { kind: "component", type: CardDescription, selector: "mcms-card-description" }, { kind: "component", type: CardContent, selector: "mcms-card-content" }, { kind: "component", type: CardFooter, selector: "mcms-card-footer" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10837
10914
  }
10838
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: LoginPage, decorators: [{
10915
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LoginPage, decorators: [{
10839
10916
  type: Component,
10840
10917
  args: [{
10841
10918
  selector: 'mcms-login-page',
@@ -11113,8 +11190,8 @@ class SetupPage {
11113
11190
  this.isSubmitting.set(false);
11114
11191
  }
11115
11192
  }
11116
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SetupPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
11117
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: SetupPage, isStandalone: true, selector: "mcms-setup-page", host: { classAttribute: "flex min-h-screen items-center justify-center bg-background p-4" }, ngImport: i0, template: `
11193
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SetupPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
11194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SetupPage, isStandalone: true, selector: "mcms-setup-page", host: { classAttribute: "flex min-h-screen items-center justify-center bg-background p-4" }, ngImport: i0, template: `
11118
11195
  <main>
11119
11196
  <mcms-card class="w-full max-w-md">
11120
11197
  <mcms-card-header class="text-center">
@@ -11213,7 +11290,7 @@ class SetupPage {
11213
11290
  </main>
11214
11291
  `, isInline: true, dependencies: [{ kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }, { kind: "component", type: Card, selector: "mcms-card" }, { kind: "component", type: CardHeader, selector: "mcms-card-header" }, { kind: "component", type: CardTitle, selector: "mcms-card-title", inputs: ["level"] }, { kind: "component", type: CardDescription, selector: "mcms-card-description" }, { kind: "component", type: CardContent, selector: "mcms-card-content" }, { kind: "component", type: CardFooter, selector: "mcms-card-footer" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11215
11292
  }
11216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SetupPage, decorators: [{
11293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SetupPage, decorators: [{
11217
11294
  type: Component,
11218
11295
  args: [{
11219
11296
  selector: 'mcms-setup-page',
@@ -11408,8 +11485,8 @@ class MediaEditDialog {
11408
11485
  this.isSaving.set(false);
11409
11486
  }
11410
11487
  }
11411
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MediaEditDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
11412
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: MediaEditDialog, isStandalone: true, selector: "mcms-media-edit-dialog", host: { styleAttribute: "display: block; width: 100%" }, ngImport: i0, template: `
11488
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MediaEditDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
11489
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: MediaEditDialog, isStandalone: true, selector: "mcms-media-edit-dialog", host: { styleAttribute: "display: block; width: 100%" }, ngImport: i0, template: `
11413
11490
  <mcms-dialog>
11414
11491
  <mcms-dialog-header>
11415
11492
  <mcms-dialog-title>Edit Media</mcms-dialog-title>
@@ -11469,7 +11546,7 @@ class MediaEditDialog {
11469
11546
  </mcms-dialog>
11470
11547
  `, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Dialog, selector: "mcms-dialog", inputs: ["class"] }, { kind: "component", type: DialogHeader, selector: "mcms-dialog-header" }, { kind: "component", type: DialogTitle, selector: "mcms-dialog-title", inputs: ["id"] }, { kind: "component", type: DialogContent, selector: "mcms-dialog-content" }, { kind: "component", type: DialogFooter, selector: "mcms-dialog-footer" }, { kind: "directive", type: DialogClose, selector: "[mcmsDialogClose]", inputs: ["mcmsDialogClose"] }, { kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }, { kind: "component", type: Textarea, selector: "mcms-textarea", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "id", "name", "placeholder", "rows", "ariaLabel", "describedBy"], outputs: ["valueChange", "blurred"] }, { kind: "component", type: Label, selector: "mcms-label", inputs: ["for", "required", "disabled", "class"] }, { kind: "component", type: Spinner, selector: "mcms-spinner", inputs: ["size", "label", "class"] }, { kind: "component", type: Alert, selector: "mcms-alert", inputs: ["variant", "class"] }, { kind: "component", type: MediaPreviewComponent, selector: "mcms-media-preview", inputs: ["media", "size", "class", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11471
11548
  }
11472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MediaEditDialog, decorators: [{
11549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MediaEditDialog, decorators: [{
11473
11550
  type: Component,
11474
11551
  args: [{
11475
11552
  selector: 'mcms-media-edit-dialog',
@@ -11819,8 +11896,8 @@ class MediaLibraryPage {
11819
11896
  }
11820
11897
  return `${bytes} bytes`;
11821
11898
  }
11822
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MediaLibraryPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
11823
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: MediaLibraryPage, isStandalone: true, selector: "mcms-media-library", host: { classAttribute: "block" }, providers: [
11899
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MediaLibraryPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
11900
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: MediaLibraryPage, isStandalone: true, selector: "mcms-media-library", host: { classAttribute: "block" }, providers: [
11824
11901
  provideIcons({ heroCloudArrowUp, heroTrash, heroArrowDownTray, heroEye, heroPencilSquare }),
11825
11902
  ], ngImport: i0, template: `
11826
11903
  <div class="space-y-6">
@@ -12035,7 +12112,7 @@ class MediaLibraryPage {
12035
12112
  </div>
12036
12113
  `, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Spinner, selector: "mcms-spinner", inputs: ["size", "label", "class"] }, { kind: "component", type: Pagination, selector: "mcms-pagination", inputs: ["currentPage", "totalPages", "siblingCount", "class"], outputs: ["pageChange"] }, { kind: "component", type: SearchInput, selector: "mcms-search-input", inputs: ["value", "placeholder", "debounce", "disabled", "ariaLabel", "class"], outputs: ["valueChange", "searchChange", "clear"] }, { kind: "component", type: Badge, selector: "mcms-badge", inputs: ["variant", "class", "role", "ariaLabel"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: MediaPreviewComponent, selector: "mcms-media-preview", inputs: ["media", "size", "class", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12037
12114
  }
12038
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MediaLibraryPage, decorators: [{
12115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MediaLibraryPage, decorators: [{
12039
12116
  type: Component,
12040
12117
  args: [{
12041
12118
  selector: 'mcms-media-library',
@@ -12276,8 +12353,8 @@ class ForgotPasswordPage {
12276
12353
  navigateToLogin() {
12277
12354
  void this.router.navigate(['/admin/login']);
12278
12355
  }
12279
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ForgotPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
12280
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.2", type: ForgotPasswordPage, isStandalone: true, selector: "mcms-forgot-password-page", host: { classAttribute: "flex min-h-screen items-center justify-center bg-background p-4" }, ngImport: i0, template: `
12356
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ForgotPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
12357
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: ForgotPasswordPage, isStandalone: true, selector: "mcms-forgot-password-page", host: { classAttribute: "flex min-h-screen items-center justify-center bg-background p-4" }, ngImport: i0, template: `
12281
12358
  <main>
12282
12359
  <mcms-card class="w-full max-w-md">
12283
12360
  <mcms-card-header class="text-center">
@@ -12298,7 +12375,7 @@ class ForgotPasswordPage {
12298
12375
  </main>
12299
12376
  `, isInline: true, dependencies: [{ kind: "component", type: Card, selector: "mcms-card" }, { kind: "component", type: CardHeader, selector: "mcms-card-header" }, { kind: "component", type: CardTitle, selector: "mcms-card-title", inputs: ["level"] }, { kind: "component", type: CardDescription, selector: "mcms-card-description" }, { kind: "component", type: CardContent, selector: "mcms-card-content" }, { kind: "component", type: CardFooter, selector: "mcms-card-footer" }, { kind: "component", type: ForgotPasswordFormComponent, selector: "mcms-forgot-password-form", outputs: ["resetRequested", "backToLogin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12300
12377
  }
12301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ForgotPasswordPage, decorators: [{
12378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ForgotPasswordPage, decorators: [{
12302
12379
  type: Component,
12303
12380
  args: [{
12304
12381
  selector: 'mcms-forgot-password-page',
@@ -12366,8 +12443,8 @@ class ResetPasswordPage {
12366
12443
  navigateToForgotPassword() {
12367
12444
  void this.router.navigate(['/admin/forgot-password']);
12368
12445
  }
12369
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ResetPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
12370
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.2", type: ResetPasswordPage, isStandalone: true, selector: "mcms-reset-password-page", host: { classAttribute: "flex min-h-screen items-center justify-center bg-background p-4" }, ngImport: i0, template: `
12446
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ResetPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
12447
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: ResetPasswordPage, isStandalone: true, selector: "mcms-reset-password-page", host: { classAttribute: "flex min-h-screen items-center justify-center bg-background p-4" }, ngImport: i0, template: `
12371
12448
  <main>
12372
12449
  <mcms-card class="w-full max-w-md">
12373
12450
  <mcms-card-header class="text-center">
@@ -12390,7 +12467,7 @@ class ResetPasswordPage {
12390
12467
  </main>
12391
12468
  `, isInline: true, dependencies: [{ kind: "component", type: Card, selector: "mcms-card" }, { kind: "component", type: CardHeader, selector: "mcms-card-header" }, { kind: "component", type: CardTitle, selector: "mcms-card-title", inputs: ["level"] }, { kind: "component", type: CardDescription, selector: "mcms-card-description" }, { kind: "component", type: CardContent, selector: "mcms-card-content" }, { kind: "component", type: CardFooter, selector: "mcms-card-footer" }, { kind: "component", type: ResetPasswordFormComponent, selector: "mcms-reset-password-form", inputs: ["token"], outputs: ["resetComplete", "resetFailed", "goToLogin", "goToForgotPassword"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12392
12469
  }
12393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ResetPasswordPage, decorators: [{
12470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ResetPasswordPage, decorators: [{
12394
12471
  type: Component,
12395
12472
  args: [{
12396
12473
  selector: 'mcms-reset-password-page',
@@ -12508,8 +12585,8 @@ class BlockWrapperComponent {
12508
12585
  getBlockSubFieldPath(fieldName) {
12509
12586
  return `${this.path()}.${this.blockIndex()}.${fieldName}`;
12510
12587
  }
12511
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: BlockWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12512
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: BlockWrapperComponent, isStandalone: true, selector: "mcms-block-wrapper", inputs: { block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: true, transformFunction: null }, blockIndex: { classPropertyName: "blockIndex", publicName: "blockIndex", isSignal: true, isRequired: true, transformFunction: null }, blockConfig: { classPropertyName: "blockConfig", publicName: "blockConfig", isSignal: true, isRequired: true, transformFunction: null }, blockLabel: { classPropertyName: "blockLabel", publicName: "blockLabel", isSignal: true, isRequired: true, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null }, isHovered: { classPropertyName: "isHovered", publicName: "isHovered", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, canMoveUp: { classPropertyName: "canMoveUp", publicName: "canMoveUp", isSignal: true, isRequired: false, transformFunction: null }, canMoveDown: { classPropertyName: "canMoveDown", publicName: "canMoveDown", isSignal: true, isRequired: false, transformFunction: null }, canDelete: { classPropertyName: "canDelete", publicName: "canDelete", isSignal: true, isRequired: false, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, formTree: { classPropertyName: "formTree", publicName: "formTree", isSignal: true, isRequired: false, transformFunction: null }, formModel: { classPropertyName: "formModel", publicName: "formModel", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", hoverStart: "hoverStart", hoverEnd: "hoverEnd", moveUp: "moveUp", moveDown: "moveDown", deleteBlock: "deleteBlock", toggleCollapse: "toggleCollapse" }, host: { listeners: { "click": "selected.emit()", "mouseenter": "hoverStart.emit()", "mouseleave": "hoverEnd.emit()", "focus": "selected.emit()" }, properties: { "class.border-primary": "isSelected()", "class.border-border": "!isSelected()", "attr.data-testid": "\"block-wrapper\"", "attr.data-block-index": "blockIndex()", "attr.data-block-type": "block().blockType", "attr.role": "\"listitem\"", "attr.tabindex": "\"0\"", "attr.aria-label": "blockAriaLabel()" }, classAttribute: "block relative rounded-lg border transition-colors overflow-hidden" }, providers: [provideIcons({ heroChevronUp, heroChevronDown, heroChevronRight, heroTrash })], ngImport: i0, template: `
12588
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: BlockWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12589
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: BlockWrapperComponent, isStandalone: true, selector: "mcms-block-wrapper", inputs: { block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: true, transformFunction: null }, blockIndex: { classPropertyName: "blockIndex", publicName: "blockIndex", isSignal: true, isRequired: true, transformFunction: null }, blockConfig: { classPropertyName: "blockConfig", publicName: "blockConfig", isSignal: true, isRequired: true, transformFunction: null }, blockLabel: { classPropertyName: "blockLabel", publicName: "blockLabel", isSignal: true, isRequired: true, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null }, isHovered: { classPropertyName: "isHovered", publicName: "isHovered", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, canMoveUp: { classPropertyName: "canMoveUp", publicName: "canMoveUp", isSignal: true, isRequired: false, transformFunction: null }, canMoveDown: { classPropertyName: "canMoveDown", publicName: "canMoveDown", isSignal: true, isRequired: false, transformFunction: null }, canDelete: { classPropertyName: "canDelete", publicName: "canDelete", isSignal: true, isRequired: false, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, formTree: { classPropertyName: "formTree", publicName: "formTree", isSignal: true, isRequired: false, transformFunction: null }, formModel: { classPropertyName: "formModel", publicName: "formModel", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", hoverStart: "hoverStart", hoverEnd: "hoverEnd", moveUp: "moveUp", moveDown: "moveDown", deleteBlock: "deleteBlock", toggleCollapse: "toggleCollapse" }, host: { listeners: { "click": "selected.emit()", "mouseenter": "hoverStart.emit()", "mouseleave": "hoverEnd.emit()", "focus": "selected.emit()" }, properties: { "class.border-primary": "isSelected()", "class.border-border": "!isSelected()", "attr.data-testid": "\"block-wrapper\"", "attr.data-block-index": "blockIndex()", "attr.data-block-type": "block().blockType", "attr.role": "\"listitem\"", "attr.tabindex": "\"0\"", "attr.aria-label": "blockAriaLabel()" }, classAttribute: "block relative rounded-lg border transition-colors overflow-hidden" }, providers: [provideIcons({ heroChevronUp, heroChevronDown, heroChevronRight, heroTrash })], ngImport: i0, template: `
12513
12590
  <!-- Header: always visible -->
12514
12591
  <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->
12515
12592
  <div
@@ -12601,7 +12678,7 @@ class BlockWrapperComponent {
12601
12678
  }
12602
12679
  `, isInline: true, dependencies: [{ kind: "component", type: FieldRenderer, selector: "mcms-field-renderer", inputs: ["field", "formNode", "formTree", "formModel", "mode", "path"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: Badge, selector: "mcms-badge", inputs: ["variant", "class", "role", "ariaLabel"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12603
12680
  }
12604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: BlockWrapperComponent, decorators: [{
12681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: BlockWrapperComponent, decorators: [{
12605
12682
  type: Component,
12606
12683
  args: [{
12607
12684
  selector: 'mcms-block-wrapper',
@@ -12754,8 +12831,8 @@ class BlockInserterComponent {
12754
12831
  onPopoverClosed() {
12755
12832
  this.searchQuery.set('');
12756
12833
  }
12757
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: BlockInserterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12758
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: BlockInserterComponent, isStandalone: true, selector: "mcms-block-inserter", inputs: { insertIndex: { classPropertyName: "insertIndex", publicName: "insertIndex", isSignal: true, isRequired: true, transformFunction: null }, blockDefinitions: { classPropertyName: "blockDefinitions", publicName: "blockDefinitions", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { blockTypeSelected: "blockTypeSelected" }, host: { properties: { "attr.data-testid": "\"block-inserter\"", "attr.data-insert-index": "insertIndex()" }, classAttribute: "group relative flex items-center justify-center py-1" }, providers: [provideIcons({ heroPlus })], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }], ngImport: i0, template: `
12834
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: BlockInserterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12835
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: BlockInserterComponent, isStandalone: true, selector: "mcms-block-inserter", inputs: { insertIndex: { classPropertyName: "insertIndex", publicName: "insertIndex", isSignal: true, isRequired: true, transformFunction: null }, blockDefinitions: { classPropertyName: "blockDefinitions", publicName: "blockDefinitions", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { blockTypeSelected: "blockTypeSelected" }, host: { properties: { "attr.data-testid": "\"block-inserter\"", "attr.data-insert-index": "insertIndex()" }, classAttribute: "group relative flex items-center justify-center py-1" }, providers: [provideIcons({ heroPlus })], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }], ngImport: i0, template: `
12759
12836
  <!-- Horizontal line -->
12760
12837
  <div
12761
12838
  class="absolute inset-x-0 top-1/2 h-px bg-border opacity-0 transition-opacity group-hover:opacity-100"
@@ -12804,7 +12881,7 @@ class BlockInserterComponent {
12804
12881
  </ng-template>
12805
12882
  `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: PopoverTrigger, selector: "[mcmsPopoverTrigger]", inputs: ["mcmsPopoverTrigger", "popoverSide", "popoverAlign", "popoverOffset", "popoverDisabled"], outputs: ["opened", "closed"], exportAs: ["mcmsPopoverTrigger"] }, { kind: "component", type: PopoverContent, selector: "mcms-popover-content" }, { kind: "component", type: Command, selector: "mcms-command", inputs: ["filterMode", "disabled", "alwaysExpanded", "class"] }, { kind: "component", type: CommandInput, selector: "mcms-command-input", inputs: ["placeholder", "value", "disabled", "autofocus", "ariaControls", "ariaExpanded", "ariaLabel", "class"], outputs: ["valueChange"] }, { kind: "component", type: CommandList, selector: "mcms-command-list", inputs: ["maxHeight", "class"] }, { kind: "component", type: CommandGroup, selector: "mcms-command-group", inputs: ["label", "class"] }, { kind: "component", type: CommandItem, selector: "mcms-command-item", inputs: ["value", "label", "disabled", "selected", "class"], outputs: ["itemSelect"] }, { kind: "component", type: CommandEmpty, selector: "mcms-command-empty", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12806
12883
  }
12807
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: BlockInserterComponent, decorators: [{
12884
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: BlockInserterComponent, decorators: [{
12808
12885
  type: Component,
12809
12886
  args: [{
12810
12887
  selector: 'mcms-block-inserter',
@@ -13133,8 +13210,8 @@ class VisualBlockEditorComponent {
13133
13210
  break;
13134
13211
  }
13135
13212
  }
13136
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VisualBlockEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13137
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: VisualBlockEditorComponent, isStandalone: true, selector: "mcms-visual-block-editor", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, formTree: { classPropertyName: "formTree", publicName: "formTree", isSignal: true, isRequired: false, transformFunction: null }, formModel: { classPropertyName: "formModel", publicName: "formModel", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.data-testid": "\"visual-block-editor\"" }, classAttribute: "block" }, ngImport: i0, template: `
13213
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VisualBlockEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13214
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: VisualBlockEditorComponent, isStandalone: true, selector: "mcms-visual-block-editor", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, formTree: { classPropertyName: "formTree", publicName: "formTree", isSignal: true, isRequired: false, transformFunction: null }, formModel: { classPropertyName: "formModel", publicName: "formModel", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.data-testid": "\"visual-block-editor\"" }, classAttribute: "block" }, ngImport: i0, template: `
13138
13215
  <!-- Header -->
13139
13216
  <div class="mb-4">
13140
13217
  <h3 class="text-sm font-medium text-foreground">{{ label() }}</h3>
@@ -13228,7 +13305,7 @@ class VisualBlockEditorComponent {
13228
13305
  </div>
13229
13306
  `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => CdkDropList), selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i0.forwardRef(() => CdkDrag), selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i0.forwardRef(() => CdkDragPlaceholder), selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i0.forwardRef(() => BlockWrapperComponent), selector: "mcms-block-wrapper", inputs: ["block", "blockIndex", "blockConfig", "blockLabel", "isSelected", "isHovered", "isDisabled", "isCollapsed", "canMoveUp", "canMoveDown", "canDelete", "formNode", "formTree", "formModel", "mode", "path"], outputs: ["selected", "hoverStart", "hoverEnd", "moveUp", "moveDown", "deleteBlock", "toggleCollapse"] }, { kind: "component", type: i0.forwardRef(() => BlockInserterComponent), selector: "mcms-block-inserter", inputs: ["insertIndex", "blockDefinitions", "disabled"], outputs: ["blockTypeSelected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13230
13307
  }
13231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: VisualBlockEditorComponent, decorators: [{
13308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VisualBlockEditorComponent, decorators: [{
13232
13309
  type: Component,
13233
13310
  args: [{
13234
13311
  selector: 'mcms-visual-block-editor',
@@ -13377,18 +13454,18 @@ function provideMomentumFieldRenderers() {
13377
13454
  registry.register('checkbox', () => Promise.resolve().then(function () { return checkboxField_component; }).then((m) => m.CheckboxFieldRenderer));
13378
13455
  registry.register('date', () => Promise.resolve().then(function () { return dateField_component; }).then((m) => m.DateFieldRenderer));
13379
13456
  registry.register('upload', () => Promise.resolve().then(function () { return uploadField_component; }).then((m) => m.UploadFieldRenderer));
13380
- registry.register('richText', () => import('./momentumcms-admin-rich-text-field.component-BvpufJs3.mjs').then((m) => m.RichTextFieldRenderer));
13457
+ registry.register('richText', () => import('./momentumcms-admin-rich-text-field.component-BUziCgyn.mjs').then((m) => m.RichTextFieldRenderer));
13381
13458
  // Layout field renderers (support nested field rendering)
13382
- registry.register('group', () => import('./momentumcms-admin-group-field.component-ffsgbC6o.mjs').then((m) => m.GroupFieldRenderer));
13383
- registry.register('array', () => import('./momentumcms-admin-array-field.component-CLV4Ny9t.mjs').then((m) => m.ArrayFieldRenderer));
13384
- registry.register('blocks', () => import('./momentumcms-admin-blocks-field.component-hHiTfUf9.mjs').then((m) => m.BlocksFieldRenderer));
13459
+ registry.register('group', () => import('./momentumcms-admin-group-field.component-Cenc5zMW.mjs').then((m) => m.GroupFieldRenderer));
13460
+ registry.register('array', () => import('./momentumcms-admin-array-field.component-pqA3_nC8.mjs').then((m) => m.ArrayFieldRenderer));
13461
+ registry.register('blocks', () => import('./momentumcms-admin-blocks-field.component-88TEhVm4.mjs').then((m) => m.BlocksFieldRenderer));
13385
13462
  // Visual block editor variant (blocks field with admin.editor === 'visual')
13386
13463
  registry.register('blocks-visual', () => Promise.resolve().then(function () { return visualBlockEditor_component; }).then((m) => m.VisualBlockEditorComponent));
13387
- registry.register('relationship', () => import('./momentumcms-admin-relationship-field.component-DO0kyAkE.mjs').then((m) => m.RelationshipFieldRenderer));
13464
+ registry.register('relationship', () => import('./momentumcms-admin-relationship-field.component-DlCdpcRy.mjs').then((m) => m.RelationshipFieldRenderer));
13388
13465
  // Layout-only renderers (tabs, collapsible, row)
13389
- registry.register('tabs', () => import('./momentumcms-admin-tabs-field.component-Uatoyjg8.mjs').then((m) => m.TabsFieldRenderer));
13390
- registry.register('collapsible', () => import('./momentumcms-admin-collapsible-field.component-BeskwGvi.mjs').then((m) => m.CollapsibleFieldRenderer));
13391
- registry.register('row', () => import('./momentumcms-admin-row-field.component-C8ZsdA2w.mjs').then((m) => m.RowFieldRenderer));
13466
+ registry.register('tabs', () => import('./momentumcms-admin-tabs-field.component-D_T_JZej.mjs').then((m) => m.TabsFieldRenderer));
13467
+ registry.register('collapsible', () => import('./momentumcms-admin-collapsible-field.component-D5Jc8h2Q.mjs').then((m) => m.CollapsibleFieldRenderer));
13468
+ registry.register('row', () => import('./momentumcms-admin-row-field.component-fFTcYU-P.mjs').then((m) => m.RowFieldRenderer));
13392
13469
  };
13393
13470
  },
13394
13471
  },
@@ -13515,8 +13592,8 @@ class TextFieldRenderer {
13515
13592
  if (state)
13516
13593
  state.markAsTouched();
13517
13594
  }
13518
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TextFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
13519
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: TextFieldRenderer, isStandalone: true, selector: "mcms-text-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
13595
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TextFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
13596
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: TextFieldRenderer, isStandalone: true, selector: "mcms-text-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
13520
13597
  <mcms-form-field
13521
13598
  [id]="fieldId()"
13522
13599
  [required]="required()"
@@ -13570,7 +13647,7 @@ class TextFieldRenderer {
13570
13647
  </mcms-form-field>
13571
13648
  `, isInline: true, dependencies: [{ kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }, { kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }, { kind: "component", type: Textarea, selector: "mcms-textarea", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "id", "name", "placeholder", "rows", "ariaLabel", "describedBy"], outputs: ["valueChange", "blurred"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13572
13649
  }
13573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TextFieldRenderer, decorators: [{
13650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TextFieldRenderer, decorators: [{
13574
13651
  type: Component,
13575
13652
  args: [{
13576
13653
  selector: 'mcms-text-field-renderer',
@@ -13741,8 +13818,8 @@ class NumberFieldRenderer {
13741
13818
  if (state)
13742
13819
  state.markAsTouched();
13743
13820
  }
13744
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NumberFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
13745
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: NumberFieldRenderer, isStandalone: true, selector: "mcms-number-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
13821
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NumberFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
13822
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: NumberFieldRenderer, isStandalone: true, selector: "mcms-number-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
13746
13823
  <mcms-form-field
13747
13824
  [id]="fieldId()"
13748
13825
  [required]="required()"
@@ -13769,7 +13846,7 @@ class NumberFieldRenderer {
13769
13846
  </mcms-form-field>
13770
13847
  `, isInline: true, dependencies: [{ kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }, { kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13771
13848
  }
13772
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NumberFieldRenderer, decorators: [{
13849
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NumberFieldRenderer, decorators: [{
13773
13850
  type: Component,
13774
13851
  args: [{
13775
13852
  selector: 'mcms-number-field-renderer',
@@ -13875,8 +13952,8 @@ class SelectFieldRenderer {
13875
13952
  state.value.set(value || null);
13876
13953
  state.markAsTouched();
13877
13954
  }
13878
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SelectFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
13879
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.2", type: SelectFieldRenderer, isStandalone: true, selector: "mcms-select-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
13955
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SelectFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
13956
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: SelectFieldRenderer, isStandalone: true, selector: "mcms-select-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
13880
13957
  <mcms-form-field
13881
13958
  [id]="fieldId()"
13882
13959
  [required]="required()"
@@ -13896,7 +13973,7 @@ class SelectFieldRenderer {
13896
13973
  </mcms-form-field>
13897
13974
  `, isInline: true, dependencies: [{ kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }, { kind: "component", type: Select, selector: "mcms-select", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "id", "name", "placeholder", "options", "describedBy", "ariaLabel"], outputs: ["valueChange", "blurred"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13898
13975
  }
13899
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SelectFieldRenderer, decorators: [{
13976
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SelectFieldRenderer, decorators: [{
13900
13977
  type: Component,
13901
13978
  args: [{
13902
13979
  selector: 'mcms-select-field-renderer',
@@ -13984,8 +14061,8 @@ class CheckboxFieldRenderer {
13984
14061
  state.value.set(value);
13985
14062
  state.markAsTouched();
13986
14063
  }
13987
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CheckboxFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
13988
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: CheckboxFieldRenderer, isStandalone: true, selector: "mcms-checkbox-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
14064
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CheckboxFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
14065
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CheckboxFieldRenderer, isStandalone: true, selector: "mcms-checkbox-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
13989
14066
  <mcms-form-field [id]="fieldId()" [hasLabel]="false" [errors]="touchedErrors()">
13990
14067
  <mcms-checkbox
13991
14068
  [id]="fieldId()"
@@ -14005,7 +14082,7 @@ class CheckboxFieldRenderer {
14005
14082
  </mcms-form-field>
14006
14083
  `, isInline: true, dependencies: [{ kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }, { kind: "component", type: Checkbox, selector: "mcms-checkbox", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "id", "describedBy", "indeterminate", "ariaLabel"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14007
14084
  }
14008
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: CheckboxFieldRenderer, decorators: [{
14085
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CheckboxFieldRenderer, decorators: [{
14009
14086
  type: Component,
14010
14087
  args: [{
14011
14088
  selector: 'mcms-checkbox-field-renderer',
@@ -14129,8 +14206,8 @@ class DateFieldRenderer {
14129
14206
  if (state)
14130
14207
  state.markAsTouched();
14131
14208
  }
14132
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: DateFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
14133
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.2", type: DateFieldRenderer, isStandalone: true, selector: "mcms-date-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
14209
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DateFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
14210
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: DateFieldRenderer, isStandalone: true, selector: "mcms-date-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
14134
14211
  <mcms-form-field
14135
14212
  [id]="fieldId()"
14136
14213
  [required]="required()"
@@ -14151,7 +14228,7 @@ class DateFieldRenderer {
14151
14228
  </mcms-form-field>
14152
14229
  `, isInline: true, dependencies: [{ kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }, { kind: "component", type: Input, selector: "mcms-input", inputs: ["value", "disabled", "errors", "touched", "invalid", "readonly", "required", "type", "id", "name", "placeholder", "autocomplete", "ariaLabel", "describedBy", "min", "max", "step"], outputs: ["valueChange", "blurred"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14153
14230
  }
14154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: DateFieldRenderer, decorators: [{
14231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DateFieldRenderer, decorators: [{
14155
14232
  type: Component,
14156
14233
  args: [{
14157
14234
  selector: 'mcms-date-field-renderer',
@@ -14317,8 +14394,8 @@ class MediaPickerDialog {
14317
14394
  this.dialogRef.close({ media: selected });
14318
14395
  }
14319
14396
  }
14320
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MediaPickerDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
14321
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: MediaPickerDialog, isStandalone: true, selector: "mcms-media-picker-dialog", ngImport: i0, template: `
14397
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MediaPickerDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
14398
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: MediaPickerDialog, isStandalone: true, selector: "mcms-media-picker-dialog", ngImport: i0, template: `
14322
14399
  <mcms-dialog>
14323
14400
  <mcms-dialog-header>
14324
14401
  <mcms-dialog-title>Select Media</mcms-dialog-title>
@@ -14403,7 +14480,7 @@ class MediaPickerDialog {
14403
14480
  </mcms-dialog>
14404
14481
  `, isInline: true, dependencies: [{ kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Dialog, selector: "mcms-dialog", inputs: ["class"] }, { kind: "component", type: DialogHeader, selector: "mcms-dialog-header" }, { kind: "component", type: DialogTitle, selector: "mcms-dialog-title", inputs: ["id"] }, { kind: "component", type: DialogContent, selector: "mcms-dialog-content" }, { kind: "component", type: DialogFooter, selector: "mcms-dialog-footer" }, { kind: "directive", type: DialogClose, selector: "[mcmsDialogClose]", inputs: ["mcmsDialogClose"] }, { kind: "component", type: Spinner, selector: "mcms-spinner", inputs: ["size", "label", "class"] }, { kind: "component", type: Pagination, selector: "mcms-pagination", inputs: ["currentPage", "totalPages", "siblingCount", "class"], outputs: ["pageChange"] }, { kind: "component", type: MediaPreviewComponent, selector: "mcms-media-preview", inputs: ["media", "size", "class", "rounded"] }, { kind: "component", type: SearchInput, selector: "mcms-search-input", inputs: ["value", "placeholder", "debounce", "disabled", "ariaLabel", "class"], outputs: ["valueChange", "searchChange", "clear"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14405
14482
  }
14406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: MediaPickerDialog, decorators: [{
14483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MediaPickerDialog, decorators: [{
14407
14484
  type: Component,
14408
14485
  args: [{
14409
14486
  selector: 'mcms-media-picker-dialog',
@@ -14880,8 +14957,8 @@ class UploadFieldRenderer {
14880
14957
  state.value.set(null);
14881
14958
  }
14882
14959
  }
14883
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: UploadFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
14884
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: UploadFieldRenderer, isStandalone: true, selector: "mcms-upload-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "block" }, viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
14960
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: UploadFieldRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
14961
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: UploadFieldRenderer, isStandalone: true, selector: "mcms-upload-field-renderer", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formNode: { classPropertyName: "formNode", publicName: "formNode", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "block" }, viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
14885
14962
  <mcms-form-field
14886
14963
  [id]="fieldId()"
14887
14964
  [required]="required()"
@@ -15014,7 +15091,7 @@ class UploadFieldRenderer {
15014
15091
  </mcms-form-field>
15015
15092
  `, isInline: true, dependencies: [{ kind: "component", type: McmsFormField, selector: "mcms-form-field", inputs: ["id", "required", "disabled", "errors", "hint", "hasLabel"] }, { kind: "component", type: Button, selector: "button[mcms-button], a[mcms-button]", inputs: ["variant", "size", "disabled", "loading", "ariaLabel", "class"] }, { kind: "component", type: Progress, selector: "mcms-progress", inputs: ["value", "max", "ariaLabel", "class"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: MediaPreviewComponent, selector: "mcms-media-preview", inputs: ["media", "size", "class", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15016
15093
  }
15017
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: UploadFieldRenderer, decorators: [{
15094
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: UploadFieldRenderer, decorators: [{
15018
15095
  type: Component,
15019
15096
  args: [{
15020
15097
  selector: 'mcms-upload-field-renderer',
@@ -15168,4 +15245,4 @@ var uploadField_component = /*#__PURE__*/Object.freeze({
15168
15245
  */
15169
15246
 
15170
15247
  export { adminGuard as $, AdminShellComponent as A, BlockEditDialog as B, CheckboxFieldRenderer as C, DashboardPage as D, EntityFormWidget as E, FieldRenderer as F, MediaLibraryPage as G, MediaPickerDialog as H, MediaPreviewComponent as I, MomentumApiService as J, MomentumAuthService as K, LivePreviewComponent as L, MOMENTUM_API as M, NumberFieldRenderer as N, ResetPasswordPage as O, PublishControlsWidget as P, SKIP_AUTO_TOAST as Q, ResetPasswordFormComponent as R, SHEET_QUERY_PARAMS as S, SelectFieldRenderer as T, SetupPage as U, TextFieldRenderer as V, UploadFieldRenderer as W, UploadService as X, VersionHistoryWidget as Y, VersionService as Z, VisualBlockEditorComponent as _, getFieldNodeState as a, authGuard as a0, collectionAccessGuard as a1, crudToastInterceptor as a2, guestGuard as a3, injectHasAnyRole as a4, injectHasRole as a5, injectIsAdmin as a6, injectIsAuthenticated as a7, injectMomentumAPI as a8, injectTypedMomentumAPI as a9, injectUser as aa, injectUserRole as ab, injectVersionService as ac, momentumAdminRoutes as ad, provideFieldRenderer as ae, provideMomentumAPI as af, provideMomentumFieldRenderers as ag, setupGuard as ah, unsavedChangesGuard as ai, getSubNode as b, getFieldDefaultValue as c, EntitySheetService as d, getTitleField as e, AdminSidebarWidget as f, getGlobalsFromRouteData as g, BlockInserterComponent as h, isRecord as i, BlockWrapperComponent as j, CollectionAccessService as k, CollectionCardWidget as l, CollectionEditPage as m, normalizeBlockDefaults as n, CollectionListPage as o, CollectionViewPage as p, DateFieldRenderer as q, EntityListWidget as r, EntityViewWidget as s, FeedbackService as t, FieldRendererRegistry as u, ForgotPasswordFormComponent as v, ForgotPasswordPage as w, LoginPage as x, MOMENTUM_API_CONTEXT as y, McmsThemeService as z };
15171
- //# sourceMappingURL=momentumcms-admin-momentumcms-admin-De5FLr2L.mjs.map
15248
+ //# sourceMappingURL=momentumcms-admin-momentumcms-admin-5WigESOC.mjs.map