@magmonium/one 0.1.19 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2587,6 +2587,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2587
2587
  }]
2588
2588
  }] });
2589
2589
 
2590
+ const GRID_BREAKPOINTS = {
2591
+ xs: 0,
2592
+ sm: 576,
2593
+ md: 768,
2594
+ lg: 992,
2595
+ xl: 1200,
2596
+ xxl: 1400,
2597
+ };
2598
+
2590
2599
  const loadingSignal = signal({
2591
2600
  requestCount: 0,
2592
2601
  }, ...(ngDevMode ? [{ debugName: "loadingSignal" }] : /* istanbul ignore next */ []));
@@ -4332,7 +4341,9 @@ function isOneIcon(element, config) {
4332
4341
  return tagName === 'M-ONE-ICON';
4333
4342
  }
4334
4343
  function textToSvg(str = MAGMONIUM, color) {
4335
- return str.includes('#color') ? str.replace(/#color/g, color) : str;
4344
+ if (typeof str !== 'string')
4345
+ return str;
4346
+ return str.replace(/#color/g, color).replace(/currentColor/g, color);
4336
4347
  }
4337
4348
  function svgElementFromString(str, color) {
4338
4349
  const parser = new DOMParser();
@@ -4569,13 +4580,13 @@ class IconComponent {
4569
4580
  element.prepend(svg);
4570
4581
  };
4571
4582
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4572
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: IconComponent, isStandalone: true, selector: "m-icon, m-one-icon", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, one: { classPropertyName: "one", publicName: "one", isSignal: true, isRequired: false, transformFunction: null }, baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, remote: { classPropertyName: "remote", publicName: "remote", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange" }, host: { properties: { "class.has-color": "resolvedConfig()?.color" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:inline-flex;align-items:center;justify-content:center;height:var(--m-icon-size, 1em);width:var(--m-icon-size, 1em);overflow:hidden}:host svg{width:var(--m-icon-size, 1em);height:var(--m-icon-size, 1em);flex-shrink:0;overflow:visible}:host svg path,:host svg circle,:host svg rect,:host svg line,:host svg polyline,:host svg polygon,:host svg ellipse{fill:var(--m-icon-fill, inherit);stroke:var(--m-icon-stroke, inherit);stroke-width:2px;vector-effect:non-scaling-stroke}:host.has-color{color:var(--m-icon-color, inherit)}:host:has(>:not(svg)){width:auto;gap:.25rem;justify-content:flex-start;overflow:visible}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4583
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: IconComponent, isStandalone: true, selector: "m-icon, m-one-icon", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, one: { classPropertyName: "one", publicName: "one", isSignal: true, isRequired: false, transformFunction: null }, baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, remote: { classPropertyName: "remote", publicName: "remote", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange" }, host: { properties: { "class.has-color": "resolvedConfig()?.color" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:inline-flex;align-items:center;justify-content:center;height:var(--m-icon-size, 1em);width:var(--m-icon-size, 1em);overflow:hidden}:host svg{width:var(--m-icon-size, 1em);height:var(--m-icon-size, 1em);flex-shrink:0;overflow:visible;fill:var(--m-icon-fill, currentColor);stroke:var(--m-icon-stroke, currentColor)}:host svg path,:host svg circle,:host svg rect,:host svg line,:host svg polyline,:host svg polygon,:host svg ellipse{stroke-width:2px;vector-effect:non-scaling-stroke}:host.has-color{color:var(--m-icon-color, inherit)}:host:has(>:not(svg)){width:auto;gap:.25rem;justify-content:flex-start;overflow:visible}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4573
4584
  }
4574
4585
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IconComponent, decorators: [{
4575
4586
  type: Component,
4576
4587
  args: [{ selector: 'm-icon, m-one-icon', template: `<ng-content></ng-content>`, host: {
4577
4588
  '[class.has-color]': 'resolvedConfig()?.color',
4578
- }, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:inline-flex;align-items:center;justify-content:center;height:var(--m-icon-size, 1em);width:var(--m-icon-size, 1em);overflow:hidden}:host svg{width:var(--m-icon-size, 1em);height:var(--m-icon-size, 1em);flex-shrink:0;overflow:visible}:host svg path,:host svg circle,:host svg rect,:host svg line,:host svg polyline,:host svg polygon,:host svg ellipse{fill:var(--m-icon-fill, inherit);stroke:var(--m-icon-stroke, inherit);stroke-width:2px;vector-effect:non-scaling-stroke}:host.has-color{color:var(--m-icon-color, inherit)}:host:has(>:not(svg)){width:auto;gap:.25rem;justify-content:flex-start;overflow:visible}\n"] }]
4589
+ }, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:inline-flex;align-items:center;justify-content:center;height:var(--m-icon-size, 1em);width:var(--m-icon-size, 1em);overflow:hidden}:host svg{width:var(--m-icon-size, 1em);height:var(--m-icon-size, 1em);flex-shrink:0;overflow:visible;fill:var(--m-icon-fill, currentColor);stroke:var(--m-icon-stroke, currentColor)}:host svg path,:host svg circle,:host svg rect,:host svg line,:host svg polyline,:host svg polygon,:host svg ellipse{stroke-width:2px;vector-effect:non-scaling-stroke}:host.has-color{color:var(--m-icon-color, inherit)}:host:has(>:not(svg)){width:auto;gap:.25rem;justify-content:flex-start;overflow:visible}\n"] }]
4579
4590
  }], ctorParameters: () => [], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }, { type: i0.Output, args: ["configChange"] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], one: [{ type: i0.Input, args: [{ isSignal: true, alias: "one", required: false }] }], baseUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseUrl", required: false }] }], remote: [{ type: i0.Input, args: [{ isSignal: true, alias: "remote", required: false }] }] } });
4580
4591
 
4581
4592
  function genColor(colors, color) {
@@ -6499,7 +6510,7 @@ class SectionFormItemComponent extends ConfigComponent {
6499
6510
  break;
6500
6511
  }
6501
6512
  case InputType.TOGGLE: {
6502
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-BYujoexg.mjs');
6513
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-BtYehjqq.mjs');
6503
6514
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
6504
6515
  break;
6505
6516
  }
@@ -6511,12 +6522,12 @@ class SectionFormItemComponent extends ConfigComponent {
6511
6522
  break;
6512
6523
  }
6513
6524
  case InputType.PASSWORD: {
6514
- const { PasswordInputComponent } = await import('./magmonium-one-password-ChSqmvi4.mjs');
6525
+ const { PasswordInputComponent } = await import('./magmonium-one-password-DycxDKu7.mjs');
6515
6526
  this.createDynamicComponent(seq, PasswordInputComponent);
6516
6527
  break;
6517
6528
  }
6518
6529
  case InputType.OTP: {
6519
- const { OtpInputComponent } = await import('./magmonium-one-otp-Dt96oQ44.mjs');
6530
+ const { OtpInputComponent } = await import('./magmonium-one-otp-CpFj9WdC.mjs');
6520
6531
  this.createDynamicComponent(seq, OtpInputComponent);
6521
6532
  break;
6522
6533
  }
@@ -8784,9 +8795,172 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
8784
8795
  ], styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}m-button-group .button-group:not(.is-context),m-one-button-group .button-group:not(.is-context){display:flex;flex-wrap:wrap;align-items:stretch;gap:.375em}m-button-group .button-group:not(.is-context).vertical,m-one-button-group .button-group:not(.is-context).vertical{flex-direction:column;align-items:center}m-button-group .button-group:not(.is-context).horizontal,m-one-button-group .button-group:not(.is-context).horizontal{flex-direction:row;align-items:center}m-button-group .button-group:not(.is-context).align-right,m-one-button-group .button-group:not(.is-context).align-right{justify-content:flex-end}m-button-group .button-group:not(.is-context).align-center,m-button-group .button-group:not(.is-context).center,m-one-button-group .button-group:not(.is-context).align-center,m-one-button-group .button-group:not(.is-context).center{justify-content:center}m-button-group .button-group:not(.is-context).align-left,m-one-button-group .button-group:not(.is-context).align-left{justify-content:flex-start}m-button-group .button-group.is-context,m-one-button-group .button-group.is-context{--m-grp-height: var(--m-button-group-height, 2.75em);--m-grp-radius: var(--m-button-group-radius, .875em);display:inline-flex;align-items:stretch;height:var(--m-grp-height);border-radius:var(--m-grp-radius);background:transparent;overflow:visible;position:relative;gap:.375em;will-change:transform;transition:transform .4s cubic-bezier(.16,1,.3,1)}m-button-group .button-group.is-context.is-primary,m-one-button-group .button-group.is-context.is-primary{background:var(--m-button-group-color-opposite, var(--m-one-button-group-color-opposite, var(--m-mm-dark)));--m-button-color-contrast: var(--m-inverse-text);--m-button-hover-background: rgba(0, 0, 0, .12)}m-button-group .button-group.is-context.is-primary m-button,m-button-group .button-group.is-context.is-primary m-one-button,m-button-group .button-group.is-context.is-primary .m-button,m-button-group .button-group.is-context.is-primary .m-one-button,m-one-button-group .button-group.is-context.is-primary m-button,m-one-button-group .button-group.is-context.is-primary m-one-button,m-one-button-group .button-group.is-context.is-primary .m-button,m-one-button-group .button-group.is-context.is-primary .m-one-button{--m-button-hover-background: rgba(0, 0, 0, .1)}m-button-group .button-group.is-context.is-primary m-context-menu,m-button-group .button-group.is-context.is-primary m-one-context-menu,m-button-group .button-group.is-context.is-primary .m-context-menu,m-one-button-group .button-group.is-context.is-primary m-context-menu,m-one-button-group .button-group.is-context.is-primary m-one-context-menu,m-one-button-group .button-group.is-context.is-primary .m-context-menu{--m-action-dots-hover-icon-color: var(--m-inverse-text)}m-button-group .button-group.is-context.is-primary m-context-menu:hover,m-button-group .button-group.is-context.is-primary m-one-context-menu:hover,m-button-group .button-group.is-context.is-primary .m-context-menu:hover,m-one-button-group .button-group.is-context.is-primary m-context-menu:hover,m-one-button-group .button-group.is-context.is-primary m-one-context-menu:hover,m-one-button-group .button-group.is-context.is-primary .m-context-menu:hover{background:#00000026}m-button-group .button-group.is-context:hover,m-one-button-group .button-group.is-context:hover{transform:scale(1.02);box-shadow:0 8px 24px #0000001a}m-button-group .button-group.is-context:active,m-one-button-group .button-group.is-context:active{transform:scale(.98)}m-button-group .button-group.is-context m-button,m-button-group .button-group.is-context m-one-button,m-button-group .button-group.is-context .m-button,m-button-group .button-group.is-context .m-one-button,m-one-button-group .button-group.is-context m-button,m-one-button-group .button-group.is-context m-one-button,m-one-button-group .button-group.is-context .m-button,m-one-button-group .button-group.is-context .m-one-button{flex:1;z-index:2;height:100%;--m-button-border: none;--m-button-radius: 0;--m-button-padding: 0 1.25rem;--m-button-background: transparent;--m-button-hover-background: rgba(0, 0, 0, .05);transition:all .3s cubic-bezier(.16,1,.3,1)}m-button-group .button-group.is-context m-button button,m-button-group .button-group.is-context m-one-button button,m-button-group .button-group.is-context .m-button button,m-button-group .button-group.is-context .m-one-button button,m-one-button-group .button-group.is-context m-button button,m-one-button-group .button-group.is-context m-one-button button,m-one-button-group .button-group.is-context .m-button button,m-one-button-group .button-group.is-context .m-one-button button{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-top-left-radius:var(--m-grp-radius)!important;border-bottom-left-radius:var(--m-grp-radius)!important}m-button-group .button-group.is-context m-button button:hover,m-button-group .button-group.is-context m-one-button button:hover,m-button-group .button-group.is-context .m-button button:hover,m-button-group .button-group.is-context .m-one-button button:hover,m-one-button-group .button-group.is-context m-button button:hover,m-one-button-group .button-group.is-context m-one-button button:hover,m-one-button-group .button-group.is-context .m-button button:hover,m-one-button-group .button-group.is-context .m-one-button button:hover{transform:none!important;box-shadow:none!important}m-button-group .button-group.is-context m-button button:active,m-button-group .button-group.is-context m-one-button button:active,m-button-group .button-group.is-context .m-button button:active,m-button-group .button-group.is-context .m-one-button button:active,m-one-button-group .button-group.is-context m-button button:active,m-one-button-group .button-group.is-context m-one-button button:active,m-one-button-group .button-group.is-context .m-button button:active,m-one-button-group .button-group.is-context .m-one-button button:active{transform:none!important}m-button-group .button-group.is-context m-button,m-button-group .button-group.is-context m-one-button,m-button-group .button-group.is-context .m-button,m-button-group .button-group.is-context .m-one-button,m-one-button-group .button-group.is-context m-button,m-one-button-group .button-group.is-context m-one-button,m-one-button-group .button-group.is-context .m-button,m-one-button-group .button-group.is-context .m-one-button{--m-button-radius: var(--m-grp-radius)}m-button-group .button-group.is-context m-button button,m-button-group .button-group.is-context m-one-button button,m-button-group .button-group.is-context .m-button button,m-button-group .button-group.is-context .m-one-button button,m-one-button-group .button-group.is-context m-button button,m-one-button-group .button-group.is-context m-one-button button,m-one-button-group .button-group.is-context .m-button button,m-one-button-group .button-group.is-context .m-one-button button{border-radius:var(--m-grp-radius)!important}m-button-group .button-group.is-context m-context-menu,m-button-group .button-group.is-context m-one-context-menu,m-button-group .button-group.is-context .m-context-menu,m-one-button-group .button-group.is-context m-context-menu,m-one-button-group .button-group.is-context m-one-context-menu,m-one-button-group .button-group.is-context .m-context-menu{display:flex;align-items:center;justify-content:center;width:var(--m-grp-height);height:100%;z-index:2;transition:all .4s cubic-bezier(.16,1,.3,1);border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--m-grp-radius)!important;border-bottom-right-radius:var(--m-grp-radius)!important;overflow:hidden;--m-action-dots-padding: 0;--m-action-dots-width: 100%;--m-action-dots-height: 100%;--m-action-dots-icon-color: var(--m-text-secondary);--m-action-dots-icon-opacity: .7;--m-action-dots-hover-icon-color: var(--m-mm);--m-action-dots-hover-icon-opacity: 1;--m-action-dots-hover-icon-transform: scale(1.1)}m-button-group .button-group.is-context m-context-menu .action-dots,m-button-group .button-group.is-context m-one-context-menu .action-dots,m-button-group .button-group.is-context .m-context-menu .action-dots,m-one-button-group .button-group.is-context m-context-menu .action-dots,m-one-button-group .button-group.is-context m-one-context-menu .action-dots,m-one-button-group .button-group.is-context .m-context-menu .action-dots{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--m-grp-radius)!important;border-bottom-right-radius:var(--m-grp-radius)!important}m-button-group .button-group.is-context m-context-menu:hover,m-button-group .button-group.is-context m-one-context-menu:hover,m-button-group .button-group.is-context .m-context-menu:hover,m-one-button-group .button-group.is-context m-context-menu:hover,m-one-button-group .button-group.is-context m-one-context-menu:hover,m-one-button-group .button-group.is-context .m-context-menu:hover{background:#0000000f}\n"] }]
8785
8796
  }], ctorParameters: () => [], propDecorators: { buttons: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttons", required: false }] }], names: [{ type: i0.Input, args: [{ isSignal: true, alias: "names", required: false }] }], exclude: [{ type: i0.Input, args: [{ isSignal: true, alias: "exclude", required: false }] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
8786
8797
 
8798
+ // Narrowest first: the first declared breakpoint the bar has fallen under is
8799
+ // the mode it takes, so `{md: icon, sm: menu}` reads as menu at 400px rather
8800
+ // than icon.
8801
+ const BREAKPOINTS$2 = [
8802
+ 'xs',
8803
+ 'sm',
8804
+ 'md',
8805
+ 'lg',
8806
+ 'xl',
8807
+ 'xxl',
8808
+ ];
8787
8809
  class ActionComponent extends ButtonGroupComponent {
8788
8810
  sticky = input(false, ...(ngDevMode ? [{ debugName: "sticky" }] : /* istanbul ignore next */ []));
8789
8811
  isStuck = signal(false, ...(ngDevMode ? [{ debugName: "isStuck" }] : /* istanbul ignore next */ []));
8812
+ // 'toggle' turns the bar into a segmented control. Declarable on the tag as
8813
+ // well as in the asset because a folded bar has no asset: the Design editor
8814
+ // consumes the Buttons dropped on a SectionAction into `[buttons]` and writes
8815
+ // every other setting as an attribute (ADR 0010).
8816
+ variant = input(...(ngDevMode ? [undefined, { debugName: "variant" }] : /* istanbul ignore next */ []));
8817
+ // Design-mode only: Button name -> the id of the Control it was folded from.
8818
+ // The Canvas draws a folded Button through this bar rather than as a tag of
8819
+ // its own, so the `render-id` its ControlLayer measures has nowhere else to
8820
+ // ride. Keyed by name rather than by position because a bar may render a
8821
+ // named asset's Buttons ahead of the dropped ones, which shifts every index.
8822
+ renderIds = input(...(ngDevMode ? [undefined, { debugName: "renderIds" }] : /* istanbul ignore next */ []));
8823
+ resolvedVariant = computed(() => this.variant() ?? this.config()?.variant, ...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
8824
+ // What the User last pressed. Undefined until then, which is what makes the
8825
+ // default the *first* Button rather than a name written anywhere: a toggle
8826
+ // opens on its first option, and `primary` still speaks for a bar that is a
8827
+ // row of commands.
8828
+ pressed = signal(undefined, ...(ngDevMode ? [{ debugName: "pressed" }] : /* istanbul ignore next */ []));
8829
+ selected = computed(() => {
8830
+ const buttons = this.actionButtons();
8831
+ if (this.resolvedVariant() !== 'toggle')
8832
+ return this.config()?.primary;
8833
+ const pressed = this.pressed();
8834
+ if (pressed && buttons.some((b) => b.name === pressed))
8835
+ return pressed;
8836
+ return buttons[0]?.name;
8837
+ }, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
8838
+ // One step of squeeze, declarable on the tag — which is what the Design
8839
+ // editor writes, and what a bar with no `button_groups/<name>.yml` behind it
8840
+ // has: an object is not an attribute, so the asset's map cannot ride there
8841
+ // (ADR 0010). The two are read together, the attribute's step winning on the
8842
+ // breakpoint it names, so an asset that steps `icon` then `menu` can still
8843
+ // be re-pointed from the tag.
8844
+ squeezeAt = input(...(ngDevMode ? [undefined, { debugName: "squeezeAt" }] : /* istanbul ignore next */ []));
8845
+ squeezeMode = input(...(ngDevMode ? [undefined, { debugName: "squeezeMode" }] : /* istanbul ignore next */ []));
8846
+ squeeze = computed(() => {
8847
+ const fromAsset = this.config()?.squeeze;
8848
+ const at = this.squeezeAt();
8849
+ const mode = this.squeezeMode();
8850
+ if (!at || !mode)
8851
+ return fromAsset;
8852
+ return { ...fromAsset, [at]: mode };
8853
+ }, ...(ngDevMode ? [{ debugName: "squeeze" }] : /* istanbul ignore next */ []));
8854
+ // The bar's own width, measured rather than queried: a `@media` reports the
8855
+ // window, and this bar is routinely the width of a docked panel (ADR 0001).
8856
+ barWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "barWidth" }] : /* istanbul ignore next */ []));
8857
+ activeSqueeze = computed(() => {
8858
+ const squeeze = this.squeeze();
8859
+ const width = this.barWidth();
8860
+ if (!squeeze || width === undefined)
8861
+ return undefined;
8862
+ for (const bp of BREAKPOINTS$2) {
8863
+ const mode = squeeze[bp];
8864
+ if (mode && width < GRID_BREAKPOINTS[bp])
8865
+ return mode;
8866
+ }
8867
+ return undefined;
8868
+ }, ...(ngDevMode ? [{ debugName: "activeSqueeze" }] : /* istanbul ignore next */ []));
8869
+ // Only where the icon can carry the Button on its own — a label dropped off
8870
+ // a Button with no glyph behind it leaves an empty box to press.
8871
+ isLabelHidden(button) {
8872
+ return this.activeSqueeze() === 'icon' && !!button.icon;
8873
+ }
8874
+ // Folded: the Button that speaks for the bar stays out, the rest go in the
8875
+ // menu. Below two Buttons there is nothing to fold, so the bar is left alone.
8876
+ visibleButtons = computed(() => {
8877
+ const buttons = this.actionButtons();
8878
+ if (this.activeSqueeze() !== 'menu' || buttons.length < 2)
8879
+ return buttons;
8880
+ const selected = this.selected();
8881
+ return [buttons.find((b) => b.name === selected) ?? buttons[0]];
8882
+ }, ...(ngDevMode ? [{ debugName: "visibleButtons" }] : /* istanbul ignore next */ []));
8883
+ menuButtons = computed(() => {
8884
+ const visible = this.visibleButtons();
8885
+ if (visible.length === this.actionButtons().length)
8886
+ return [];
8887
+ return this.actionButtons().filter((b) => b !== visible[0]);
8888
+ }, ...(ngDevMode ? [{ debugName: "menuButtons" }] : /* istanbul ignore next */ []));
8889
+ squeezeMenu = computed(() => ({
8890
+ align: 'right',
8891
+ icon: { name: this.config()?.contextMenuIcon ?? 'ellipsis-vertical' },
8892
+ remote: this.remote() ?? this.config()?.remote,
8893
+ options: [
8894
+ this.menuButtons().map((button) => ({
8895
+ id: button.name ?? '',
8896
+ label: button.label ?? button.name ?? '',
8897
+ icon: button.icon,
8898
+ disabled: this.isDisabled(button.name) || undefined,
8899
+ })),
8900
+ ],
8901
+ }), ...(ngDevMode ? [{ debugName: "squeezeMenu" }] : /* istanbul ignore next */ []));
8902
+ onMenuAction(item) {
8903
+ const button = this.actionButtons().find((b) => b.name === item.id);
8904
+ if (button)
8905
+ this.select(button);
8906
+ }
8907
+ // The bar's own colour, for the one thing that has no Button behind it: the
8908
+ // inversion of a selected segment whose Button declared no colour of its own.
8909
+ actionPallet = computed(() => this.pallet() ?? resolvePallet('mm', this.themeStore.color()), ...(ngDevMode ? [{ debugName: "actionPallet" }] : /* istanbul ignore next */ []));
8910
+ // Each Button's `color` decides how that Button is drawn; the bar's is only
8911
+ // the fallback under it. Same precedence m-button applies to itself
8912
+ // (button.ts `colorInput`) — a bar that painted over it would be an m-action
8913
+ // choosing a Button's colour, which is the one thing it must not do.
8914
+ // Undefined when neither declares one, which leaves the `--m-button-color`
8915
+ // preference chain in action.sass standing.
8916
+ buttonPallet(button) {
8917
+ const color = button.color ?? this.config()?.color;
8918
+ return color ? resolvePallet(color, this.themeStore.color()) : undefined;
8919
+ }
8920
+ // A folded bar shows one Button, and one Button lit is not a choice being
8921
+ // shown — it is a primary command that was never asked for. So nothing is
8922
+ // marked for as long as the menu holds the rest.
8923
+ isActive(button) {
8924
+ if (this.activeSqueeze() === 'menu' && this.menuButtons().length)
8925
+ return false;
8926
+ return button.name === this.selected();
8927
+ }
8928
+ // The filled reading of `active`, which only a segmented control has.
8929
+ isSelected(button) {
8930
+ return this.resolvedVariant() === 'toggle' && this.isActive(button);
8931
+ }
8932
+ // Fill and its inverse, written onto the element so one Button's colour
8933
+ // cannot reach the one beside it.
8934
+ fillColor(button) {
8935
+ return this.buttonPallet(button)?.color;
8936
+ }
8937
+ contrastColor(button) {
8938
+ return this.buttonPallet(button)?.contrastColor;
8939
+ }
8940
+ // The resting label. Neutral unless a colour was declared — a command bar is
8941
+ // a row of dark labels, not a row of tinted ones.
8942
+ labelColor(button) {
8943
+ return this.isSelected(button) ? undefined : this.fillColor(button);
8944
+ }
8945
+ // m-icon paints the SVG with a resolved colour rather than leaving
8946
+ // `currentColor` in it (lib-icon substitutes every occurrence), so neither
8947
+ // the Button's colour nor the selected segment's inversion can ride the
8948
+ // <button>'s `color` — both have to be handed to the Icon.
8949
+ iconColor(button) {
8950
+ if (this.isSelected(button)) {
8951
+ return (this.buttonPallet(button) ?? this.actionPallet()).contrastColor;
8952
+ }
8953
+ return this.fillColor(button);
8954
+ }
8955
+ // A toggle keeps the selection it was clicked into; a command bar keeps none.
8956
+ // `clicked` emits either way — which one is lit and what pressing it does are
8957
+ // separate questions.
8958
+ select(button) {
8959
+ if (this.resolvedVariant() === 'toggle') {
8960
+ this.pressed.set(button.name);
8961
+ }
8962
+ this.clicked.emit(button);
8963
+ }
8790
8964
  el = inject((ElementRef));
8791
8965
  destroyRef = inject(DestroyRef);
8792
8966
  // Unlike m-button-group (which renders <m-button> that self-resolves each
@@ -8815,6 +8989,16 @@ class ActionComponent extends ButtonGroupComponent {
8815
8989
  actionButtons = computed(() => this.actionButtonsResource.value() ?? this.mergedButtons(), ...(ngDevMode ? [{ debugName: "actionButtons" }] : /* istanbul ignore next */ []));
8816
8990
  constructor() {
8817
8991
  super();
8992
+ afterNextRender(() => {
8993
+ // No squeeze without a measurement, and no measurement without the
8994
+ // observer — a bar rendered where there is none (SSR, jsdom) stays the
8995
+ // full row it was authored as rather than guessing a width.
8996
+ if (typeof ResizeObserver === 'undefined')
8997
+ return;
8998
+ const observer = new ResizeObserver(([entry]) => this.barWidth.set(entry.contentRect.width));
8999
+ observer.observe(this.el.nativeElement);
9000
+ this.destroyRef.onDestroy(() => observer.disconnect());
9001
+ });
8818
9002
  afterNextRender(() => {
8819
9003
  if (!this.sticky())
8820
9004
  return;
@@ -8826,7 +9010,7 @@ class ActionComponent extends ButtonGroupComponent {
8826
9010
  });
8827
9011
  }
8828
9012
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8829
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ActionComponent, isStandalone: true, selector: "m-action, m-one-action", inputs: { sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.m-action--host-sticky": "sticky()" } }, usesInheritance: true, ngImport: i0, template: "@if (config(); as group) {\n <div class=\"m-action\" [class.m-action--stuck]=\"isStuck()\">\n @for (button of actionButtons(); track button.name || button.label) {\n <button\n type=\"button\"\n class=\"m-action__btn\"\n [attr.data-testid]=\"(button.name || '') + '-btn'\"\n [class.active]=\"button.name === group.primary\"\n [disabled]=\"isDisabled(button.name)\"\n (click)=\"clicked.emit(button)\"\n >\n @if (button.icon) {\n <m-icon [name]=\"button.icon\" [remote]=\"group.remote\" />\n }\n @if (button.label) {\n <span class=\"m-action__label\">{{ button.label | translate }}</span>\n }\n </button>\n }\n </div>\n}\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}m-action,m-one-action{display:block;grid-column:1/-1}m-action.m-action--host-sticky,m-one-action.m-action--host-sticky{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-action{display:flex;flex-wrap:nowrap;background:transparent;width:100%;border-bottom:1px solid #f1f5f9}.m-action--stuck{border-bottom-color:#00000014;box-shadow:0 2px 10px #0000000f}.m-action__btn{flex:1;min-width:0;padding:1rem 2rem;border:none;background:transparent;color:#1e293b;font-weight:300;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:.6rem;white-space:nowrap;overflow:hidden;cursor:pointer;border-right:1px solid #f1f5f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.m-action__btn:last-child{border-right:none}.m-action__btn:hover{background:#f8fafc;color:#3b82f6}.m-action__btn .m-icon{transition:transform .2s ease}.m-action__btn:hover .m-icon{transform:scale(1.1)}.m-action__btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.m-action__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@container mag-grid (max-width: 767.98px){.m-action__btn{padding:1rem .75rem;gap:.4rem}}@container mag-grid (max-width: 575.98px){.m-action__btn{padding:.85rem .4rem;font-size:.8rem}}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "component", type: i0.forwardRef(() => IconComponent), selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: i0.forwardRef(() => TranslatePipe), name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
9013
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ActionComponent, isStandalone: true, selector: "m-action, m-one-action", inputs: { sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, renderIds: { classPropertyName: "renderIds", publicName: "renderIds", isSignal: true, isRequired: false, transformFunction: null }, squeezeAt: { classPropertyName: "squeezeAt", publicName: "squeezeAt", isSignal: true, isRequired: false, transformFunction: null }, squeezeMode: { classPropertyName: "squeezeMode", publicName: "squeezeMode", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.m-action--host-sticky": "sticky()" } }, usesInheritance: true, ngImport: i0, template: "@let buttons = actionButtons();\n<!-- No `config()` guard: a bar the Design editor folded its Buttons into has no\n `button_groups/<name>.yml` behind it \u2014 they ride on `[buttons]` instead\n (ADR 0009, ADR 0010) \u2014 so what decides whether the row exists is whether\n there are Buttons in it. Empty, it draws only on the Canvas, where it is\n the drop space a Button lands on. -->\n@if (buttons.length || isDesignMode) {\n <div\n class=\"m-action\"\n [class.m-action--stuck]=\"isStuck()\"\n [class.m-action--toggle]=\"resolvedVariant() === 'toggle'\"\n [class.m-action--icon-only]=\"activeSqueeze() === 'icon'\"\n >\n @for (button of visibleButtons(); track $index) {\n <button\n type=\"button\"\n class=\"m-action__btn\"\n [attr.data-testid]=\"(button.name || '') + '-btn'\"\n [attr.render-id]=\"renderIds()?.[button.name ?? '']\"\n [class.active]=\"isActive(button)\"\n [style.--m-action-color]=\"fillColor(button)\"\n [style.--m-action-color-contrast]=\"contrastColor(button)\"\n [style.--m-action-label]=\"labelColor(button)\"\n [disabled]=\"isDisabled(button.name)\"\n (click)=\"select(button)\"\n >\n @if (button.icon) {\n <m-icon\n [name]=\"button.icon\"\n [color]=\"iconColor(button)\"\n [remote]=\"remote() ?? config()?.remote\"\n />\n }\n @if (button.label && !isLabelHidden(button)) {\n <span class=\"m-action__label\">{{ button.label | translate }}</span>\n }\n </button>\n }\n @if (menuButtons().length) {\n <!-- The Buttons the bar could not fit. Squeezed rather than dropped:\n an action the User can still reach behind one press beats an action\n that silently stopped existing at 400px. -->\n <m-context-menu\n class=\"m-action__overflow\"\n [config]=\"squeezeMenu()\"\n [remote]=\"remote() ?? config()?.remote\"\n (action)=\"onMenuAction($event)\"\n />\n }\n @if (!buttons.length) {\n <!-- A bar with nothing in it has no box, and a slot with no box is a slot\n nothing can be dropped on \u2014 the same rect an empty projected Card is\n given (m-one-ui `.card-drop-space`). -->\n <span class=\"m-action__drop\"></span>\n }\n </div>\n}\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}m-action,m-one-action{display:block;width:100%;grid-column:1/-1}m-action.m-action--host-sticky,m-one-action.m-action--host-sticky{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-action{display:flex;flex-wrap:nowrap;background:transparent;width:100%;border-bottom:1px solid #f1f5f9;--m-action-color: var(--m-button-color, var(--m-one-button-color, var(--m-mm)));--m-action-color-contrast: var(--m-button-color-contrast, var(--m-one-button-color-contrast, #ffffff))}.m-action--stuck{border-bottom-color:#00000014;box-shadow:0 2px 10px #0000000f}.m-action__btn{flex:1;min-width:0;padding:1rem 2rem;border:none;background:transparent;color:var(--m-action-label, #1e293b);font-weight:300;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:.6rem;white-space:nowrap;overflow:hidden;cursor:pointer;border-right:1px solid #f1f5f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.m-action__btn:last-child{border-right:none}.m-action__btn:hover{background:#f8fafc;color:var(--m-action-color)}.m-action__btn .m-icon{transition:transform .2s ease}.m-action__btn:hover .m-icon{transform:scale(1.1)}.m-action__btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.m-action__btn.active{color:var(--m-action-color);font-weight:500}.m-action--toggle .m-action__btn{position:relative}.m-action--toggle .m-action__btn.active{background:var(--m-action-color);color:var(--m-action-color-contrast)}.m-action--toggle .m-action__btn.active:hover:not(:disabled){background:color-mix(in srgb,var(--m-action-color) 88%,black);color:var(--m-action-color-contrast)}.m-action--icon-only .m-action__btn{padding:1rem .5rem;gap:0}.m-action__overflow{display:flex;align-items:center;padding:0 .5rem;flex:0 0 auto}.m-action__drop{display:block;flex:1;min-height:3.5rem;margin:.5rem;border:1px dashed currentColor;border-radius:.25rem;opacity:.4;pointer-events:none}.m-action__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@container mag-grid (max-width: 767.98px){.m-action__btn{padding:1rem .75rem;gap:.4rem}}@container mag-grid (max-width: 575.98px){.m-action__btn{padding:.85rem .4rem;font-size:.8rem}}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "component", type: i0.forwardRef(() => IconComponent), selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: i0.forwardRef(() => ContextMenuComponent), selector: "m-context-menu, m-one-context-menu", inputs: ["toggle", "remote", "exclude", "visibilityRule", "disableRule", "extraData", "inverted"], outputs: ["toggleChange", "action"] }, { kind: "pipe", type: i0.forwardRef(() => TranslatePipe), name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
8830
9014
  }
8831
9015
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionComponent, decorators: [{
8832
9016
  type: Component,
@@ -8834,10 +9018,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
8834
9018
  CommonModule,
8835
9019
  forwardRef(() => IconComponent),
8836
9020
  forwardRef(() => TranslatePipe),
9021
+ forwardRef(() => ContextMenuComponent),
8837
9022
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
8838
9023
  '[class.m-action--host-sticky]': 'sticky()',
8839
- }, template: "@if (config(); as group) {\n <div class=\"m-action\" [class.m-action--stuck]=\"isStuck()\">\n @for (button of actionButtons(); track button.name || button.label) {\n <button\n type=\"button\"\n class=\"m-action__btn\"\n [attr.data-testid]=\"(button.name || '') + '-btn'\"\n [class.active]=\"button.name === group.primary\"\n [disabled]=\"isDisabled(button.name)\"\n (click)=\"clicked.emit(button)\"\n >\n @if (button.icon) {\n <m-icon [name]=\"button.icon\" [remote]=\"group.remote\" />\n }\n @if (button.label) {\n <span class=\"m-action__label\">{{ button.label | translate }}</span>\n }\n </button>\n }\n </div>\n}\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}m-action,m-one-action{display:block;grid-column:1/-1}m-action.m-action--host-sticky,m-one-action.m-action--host-sticky{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-action{display:flex;flex-wrap:nowrap;background:transparent;width:100%;border-bottom:1px solid #f1f5f9}.m-action--stuck{border-bottom-color:#00000014;box-shadow:0 2px 10px #0000000f}.m-action__btn{flex:1;min-width:0;padding:1rem 2rem;border:none;background:transparent;color:#1e293b;font-weight:300;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:.6rem;white-space:nowrap;overflow:hidden;cursor:pointer;border-right:1px solid #f1f5f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.m-action__btn:last-child{border-right:none}.m-action__btn:hover{background:#f8fafc;color:#3b82f6}.m-action__btn .m-icon{transition:transform .2s ease}.m-action__btn:hover .m-icon{transform:scale(1.1)}.m-action__btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.m-action__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@container mag-grid (max-width: 767.98px){.m-action__btn{padding:1rem .75rem;gap:.4rem}}@container mag-grid (max-width: 575.98px){.m-action__btn{padding:.85rem .4rem;font-size:.8rem}}\n"] }]
8840
- }], ctorParameters: () => [], propDecorators: { sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }] } });
9024
+ }, template: "@let buttons = actionButtons();\n<!-- No `config()` guard: a bar the Design editor folded its Buttons into has no\n `button_groups/<name>.yml` behind it \u2014 they ride on `[buttons]` instead\n (ADR 0009, ADR 0010) \u2014 so what decides whether the row exists is whether\n there are Buttons in it. Empty, it draws only on the Canvas, where it is\n the drop space a Button lands on. -->\n@if (buttons.length || isDesignMode) {\n <div\n class=\"m-action\"\n [class.m-action--stuck]=\"isStuck()\"\n [class.m-action--toggle]=\"resolvedVariant() === 'toggle'\"\n [class.m-action--icon-only]=\"activeSqueeze() === 'icon'\"\n >\n @for (button of visibleButtons(); track $index) {\n <button\n type=\"button\"\n class=\"m-action__btn\"\n [attr.data-testid]=\"(button.name || '') + '-btn'\"\n [attr.render-id]=\"renderIds()?.[button.name ?? '']\"\n [class.active]=\"isActive(button)\"\n [style.--m-action-color]=\"fillColor(button)\"\n [style.--m-action-color-contrast]=\"contrastColor(button)\"\n [style.--m-action-label]=\"labelColor(button)\"\n [disabled]=\"isDisabled(button.name)\"\n (click)=\"select(button)\"\n >\n @if (button.icon) {\n <m-icon\n [name]=\"button.icon\"\n [color]=\"iconColor(button)\"\n [remote]=\"remote() ?? config()?.remote\"\n />\n }\n @if (button.label && !isLabelHidden(button)) {\n <span class=\"m-action__label\">{{ button.label | translate }}</span>\n }\n </button>\n }\n @if (menuButtons().length) {\n <!-- The Buttons the bar could not fit. Squeezed rather than dropped:\n an action the User can still reach behind one press beats an action\n that silently stopped existing at 400px. -->\n <m-context-menu\n class=\"m-action__overflow\"\n [config]=\"squeezeMenu()\"\n [remote]=\"remote() ?? config()?.remote\"\n (action)=\"onMenuAction($event)\"\n />\n }\n @if (!buttons.length) {\n <!-- A bar with nothing in it has no box, and a slot with no box is a slot\n nothing can be dropped on \u2014 the same rect an empty projected Card is\n given (m-one-ui `.card-drop-space`). -->\n <span class=\"m-action__drop\"></span>\n }\n </div>\n}\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}m-action,m-one-action{display:block;width:100%;grid-column:1/-1}m-action.m-action--host-sticky,m-one-action.m-action--host-sticky{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-action{display:flex;flex-wrap:nowrap;background:transparent;width:100%;border-bottom:1px solid #f1f5f9;--m-action-color: var(--m-button-color, var(--m-one-button-color, var(--m-mm)));--m-action-color-contrast: var(--m-button-color-contrast, var(--m-one-button-color-contrast, #ffffff))}.m-action--stuck{border-bottom-color:#00000014;box-shadow:0 2px 10px #0000000f}.m-action__btn{flex:1;min-width:0;padding:1rem 2rem;border:none;background:transparent;color:var(--m-action-label, #1e293b);font-weight:300;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:.6rem;white-space:nowrap;overflow:hidden;cursor:pointer;border-right:1px solid #f1f5f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.m-action__btn:last-child{border-right:none}.m-action__btn:hover{background:#f8fafc;color:var(--m-action-color)}.m-action__btn .m-icon{transition:transform .2s ease}.m-action__btn:hover .m-icon{transform:scale(1.1)}.m-action__btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.m-action__btn.active{color:var(--m-action-color);font-weight:500}.m-action--toggle .m-action__btn{position:relative}.m-action--toggle .m-action__btn.active{background:var(--m-action-color);color:var(--m-action-color-contrast)}.m-action--toggle .m-action__btn.active:hover:not(:disabled){background:color-mix(in srgb,var(--m-action-color) 88%,black);color:var(--m-action-color-contrast)}.m-action--icon-only .m-action__btn{padding:1rem .5rem;gap:0}.m-action__overflow{display:flex;align-items:center;padding:0 .5rem;flex:0 0 auto}.m-action__drop{display:block;flex:1;min-height:3.5rem;margin:.5rem;border:1px dashed currentColor;border-radius:.25rem;opacity:.4;pointer-events:none}.m-action__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@container mag-grid (max-width: 767.98px){.m-action__btn{padding:1rem .75rem;gap:.4rem}}@container mag-grid (max-width: 575.98px){.m-action__btn{padding:.85rem .4rem;font-size:.8rem}}\n"] }]
9025
+ }], ctorParameters: () => [], propDecorators: { sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], renderIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderIds", required: false }] }], squeezeAt: [{ type: i0.Input, args: [{ isSignal: true, alias: "squeezeAt", required: false }] }], squeezeMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "squeezeMode", required: false }] }] } });
8841
9026
 
8842
9027
  class BaseInputComponent {
8843
9028
  focused = input(false, ...(ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []));
@@ -9264,14 +9449,23 @@ class SectionSearchComponent extends BaseTextInputComponent {
9264
9449
  </div>
9265
9450
  } @else {
9266
9451
  <div class="section-search__bar">
9267
- <m-header [level]="3" [label]="resolvedLabel()" />
9452
+ <!-- The heading slot, the shape a SectionHeader's title slot is: the
9453
+ design Canvas projects a span here, and the written label below is
9454
+ what a bar with no slot Control still draws. Drawn beside the slot
9455
+ rather than as its fallback — the Canvas always projects the span,
9456
+ empty until a Control lands in it, so a fallback would blank the
9457
+ label the bar is still configured with. -->
9458
+ <ng-content />
9459
+ @if (resolvedLabel(); as headerLabel) {
9460
+ <m-header [level]="3" [label]="headerLabel" />
9461
+ }
9268
9462
  <div class="section-search__toggle">
9269
9463
  <!-- asset: buttons/search_toggle.yml -->
9270
9464
  <m-one-button name="search_toggle" (clicked)="open()" />
9271
9465
  </div>
9272
9466
  </div>
9273
9467
  }
9274
- `, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:flex;align-items:center;width:100%;grid-column:1/-1;box-sizing:border-box;min-height:var(--section-header-min-height, calc(var(--section-header-py, 1rem) * 2 + 1.375rem));border-bottom:1px solid var(--m-section-search-border, var(--m-backdrop-border));padding:var(--section-header-py, .75rem) var(--section-px, 1rem);--m-header-size: 1rem}:host.has-sidepanel{padding-right:50px}:host(.no-border){border-bottom:none}:host(.is-sticky-enabled){position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.section-search__bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.section-search__bar m-header{flex:1;min-width:0;font-size:1rem}.section-search__bar .section-search__toggle{flex-shrink:0;--m-button-size: 1rem !important}.section-search__field{display:flex;align-items:center;width:100%}.section-search__field m-input-clear{width:100%}\n"], dependencies: [{ kind: "component", type: ClearableInputComponent, selector: "m-input-clear", inputs: ["value", "config", "required", "disabled", "readonly", "invalid", "focused", "touched", "errors", "icon", "placeholder", "type", "inputId"], outputs: ["valueChange", "touchedChange"] }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9468
+ `, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:flex;align-items:center;width:100%;grid-column:1/-1;box-sizing:border-box;min-height:var(--section-header-min-height, calc(var(--section-header-py, 1rem) * 2 + 1.375rem));border-bottom:1px solid var(--m-section-search-border, var(--m-backdrop-border));padding:var(--section-header-py, .75rem) var(--section-px, 1rem);--m-header-size: 1rem}:host.has-sidepanel{padding-right:50px}:host(.no-border){border-bottom:none}:host(.is-sticky-enabled){position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.section-search__bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.section-search__bar>*:not(.section-search__toggle){flex:1;min-width:0}.section-search__bar m-header{font-size:1rem}.section-search__bar .section-search__toggle{flex-shrink:0;margin-inline-start:auto;--m-button-size: 1rem !important}.section-search__field{display:flex;align-items:center;width:100%}.section-search__field m-input-clear{width:100%}\n"], dependencies: [{ kind: "component", type: ClearableInputComponent, selector: "m-input-clear", inputs: ["value", "config", "required", "disabled", "readonly", "invalid", "focused", "touched", "errors", "icon", "placeholder", "type", "inputId"], outputs: ["valueChange", "touchedChange"] }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9275
9469
  }
9276
9470
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionSearchComponent, decorators: [{
9277
9471
  type: Component,
@@ -9288,7 +9482,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9288
9482
  </div>
9289
9483
  } @else {
9290
9484
  <div class="section-search__bar">
9291
- <m-header [level]="3" [label]="resolvedLabel()" />
9485
+ <!-- The heading slot, the shape a SectionHeader's title slot is: the
9486
+ design Canvas projects a span here, and the written label below is
9487
+ what a bar with no slot Control still draws. Drawn beside the slot
9488
+ rather than as its fallback — the Canvas always projects the span,
9489
+ empty until a Control lands in it, so a fallback would blank the
9490
+ label the bar is still configured with. -->
9491
+ <ng-content />
9492
+ @if (resolvedLabel(); as headerLabel) {
9493
+ <m-header [level]="3" [label]="headerLabel" />
9494
+ }
9292
9495
  <div class="section-search__toggle">
9293
9496
  <!-- asset: buttons/search_toggle.yml -->
9294
9497
  <m-one-button name="search_toggle" (clicked)="open()" />
@@ -9301,7 +9504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9301
9504
  '[class.is-sticky]': 'isSticky()',
9302
9505
  '[class.has-sidepanel]': 'sidepanel()',
9303
9506
  '[class.no-border]': 'noBorder()',
9304
- }, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:flex;align-items:center;width:100%;grid-column:1/-1;box-sizing:border-box;min-height:var(--section-header-min-height, calc(var(--section-header-py, 1rem) * 2 + 1.375rem));border-bottom:1px solid var(--m-section-search-border, var(--m-backdrop-border));padding:var(--section-header-py, .75rem) var(--section-px, 1rem);--m-header-size: 1rem}:host.has-sidepanel{padding-right:50px}:host(.no-border){border-bottom:none}:host(.is-sticky-enabled){position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.section-search__bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.section-search__bar m-header{flex:1;min-width:0;font-size:1rem}.section-search__bar .section-search__toggle{flex-shrink:0;--m-button-size: 1rem !important}.section-search__field{display:flex;align-items:center;width:100%}.section-search__field m-input-clear{width:100%}\n"] }]
9507
+ }, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:flex;align-items:center;width:100%;grid-column:1/-1;box-sizing:border-box;min-height:var(--section-header-min-height, calc(var(--section-header-py, 1rem) * 2 + 1.375rem));border-bottom:1px solid var(--m-section-search-border, var(--m-backdrop-border));padding:var(--section-header-py, .75rem) var(--section-px, 1rem);--m-header-size: 1rem}:host.has-sidepanel{padding-right:50px}:host(.no-border){border-bottom:none}:host(.is-sticky-enabled){position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.section-search__bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.section-search__bar>*:not(.section-search__toggle){flex:1;min-width:0}.section-search__bar m-header{font-size:1rem}.section-search__bar .section-search__toggle{flex-shrink:0;margin-inline-start:auto;--m-button-size: 1rem !important}.section-search__field{display:flex;align-items:center;width:100%}.section-search__field m-input-clear{width:100%}\n"] }]
9305
9508
  }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], debounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounce", required: false }] }], startOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "startOpen", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], searchChange: [{ type: i0.Output, args: ["searchChange"] }] } });
9306
9509
 
9307
9510
  function isWithinBoundary(value, draggable, axis) {
@@ -10225,15 +10428,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
10225
10428
  }, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;border-bottom:1px solid var(--m-section-filter-border, var(--m-backdrop-border))}:host(.no-border){border-bottom:none}.section-filter__bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, 1rem) * 2 + 1.375rem));padding:var(--section-header-py, .75rem) var(--section-px, 1rem)}.section-filter__bar m-header{flex:1;min-width:0;font-size:1rem}.section-filter__bar .section-filter__toggle{flex-shrink:0;--m-button-size: 1rem !important}.section-filter__bar .section-filter__toggle.is-active{--m-button-color: var(--m-mm) !important}.section-filter__badges{display:flex;flex-wrap:wrap;gap:.375rem;flex:1;min-width:0;align-items:center}.section-filter__badges m-badge{--m-badge-size: .6rem}.section-filter__badges m-badge m-button{--m-button-size: .6em;--m-button-color: var(--m-mm);opacity:.7}.section-filter__badges m-badge m-button:hover{opacity:1}.section-filter__dropdown{flex-shrink:0}\n"] }]
10226
10429
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], optionsAsset: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsAsset", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], dropdownRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SelectorDirective), { isSignal: true }] }] } });
10227
10430
 
10228
- const GRID_BREAKPOINTS = {
10229
- xs: 0,
10230
- sm: 576,
10231
- md: 768,
10232
- lg: 992,
10233
- xl: 1200,
10234
- xxl: 1400,
10235
- };
10236
-
10237
10431
  const BREAKPOINTS$1 = [
10238
10432
  'xs',
10239
10433
  'sm',
@@ -17683,7 +17877,7 @@ class WrapperInputComponent extends ConfigComponent {
17683
17877
  break;
17684
17878
  }
17685
17879
  case InputType.TOGGLE: {
17686
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-BYujoexg.mjs');
17880
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-BtYehjqq.mjs');
17687
17881
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
17688
17882
  break;
17689
17883
  }
@@ -17695,12 +17889,12 @@ class WrapperInputComponent extends ConfigComponent {
17695
17889
  break;
17696
17890
  }
17697
17891
  case InputType.PASSWORD: {
17698
- const { PasswordInputComponent } = await import('./magmonium-one-password-ChSqmvi4.mjs');
17892
+ const { PasswordInputComponent } = await import('./magmonium-one-password-DycxDKu7.mjs');
17699
17893
  this.createDynamicComponent(seq, PasswordInputComponent);
17700
17894
  break;
17701
17895
  }
17702
17896
  case InputType.OTP: {
17703
- const { OtpInputComponent } = await import('./magmonium-one-otp-Dt96oQ44.mjs');
17897
+ const { OtpInputComponent } = await import('./magmonium-one-otp-CpFj9WdC.mjs');
17704
17898
  this.createDynamicComponent(seq, OtpInputComponent);
17705
17899
  break;
17706
17900
  }
@@ -20458,6 +20652,17 @@ function getClassList$1(config) {
20458
20652
  if (config?.interactive) {
20459
20653
  classList.push('interactive');
20460
20654
  }
20655
+ // `true`/`false` retain compatibility with existing cards while new cards
20656
+ // select one explicit edge set from the design dropdown.
20657
+ if (config?.padding === true) {
20658
+ classList.push('padding-all');
20659
+ }
20660
+ else if (config?.padding === false) {
20661
+ classList.push('padding-none');
20662
+ }
20663
+ else if (config?.padding) {
20664
+ classList.push(`padding-${config.padding}`);
20665
+ }
20461
20666
  // Responsive size classes
20462
20667
  if (config?.responsive) {
20463
20668
  Object.entries(config.responsive).forEach(([breakpoint, size]) => {
@@ -20474,26 +20679,39 @@ class CardComponent extends ConfigComponent {
20474
20679
  variant = input(...(ngDevMode ? [undefined, { debugName: "variant" }] : /* istanbul ignore next */ []));
20475
20680
  spacing = input(...(ngDevMode ? [undefined, { debugName: "spacing" }] : /* istanbul ignore next */ []));
20476
20681
  fullHeight = input(...(ngDevMode ? [undefined, { debugName: "fullHeight" }] : /* istanbul ignore next */ []));
20682
+ padding = input(...(ngDevMode ? [undefined, { debugName: "padding" }] : /* istanbul ignore next */ []));
20683
+ href = input(...(ngDevMode ? [undefined, { debugName: "href" }] : /* istanbul ignore next */ []));
20684
+ clicked = output();
20477
20685
  effectiveConfig = computed(() => ({
20478
20686
  ...this.config(),
20479
20687
  variant: this.variant() ?? this.config()?.variant,
20480
20688
  spacing: this.spacing() ?? this.config()?.spacing,
20689
+ padding: this.padding() ?? this.config()?.padding,
20481
20690
  fullHeight: (this.fullHeight() ?? this.config()?.fullHeight) ||
20482
20691
  (this.variant() ?? this.config()?.variant) === 'dashboard'
20483
20692
  ? true
20484
20693
  : undefined,
20485
20694
  }), ...(ngDevMode ? [{ debugName: "effectiveConfig" }] : /* istanbul ignore next */ []));
20486
20695
  classNames = computed(() => getClassList$1(this.effectiveConfig()), ...(ngDevMode ? [{ debugName: "classNames" }] : /* istanbul ignore next */ []));
20696
+ onCardClick = (event) => {
20697
+ // A canvas click selects the drawn control; it must never navigate the
20698
+ // editor away from the composition being edited.
20699
+ if (this.isDesignMode)
20700
+ event.preventDefault();
20701
+ if (this.href() || this.variant() !== 'clickable')
20702
+ return;
20703
+ this.clicked.emit();
20704
+ };
20487
20705
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
20488
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: CardComponent, isStandalone: true, selector: "m-card,m-one-card", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, fullHeight: { classPropertyName: "fullHeight", publicName: "fullHeight", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.full-height": "fullHeight() || config()?.fullHeight || variant() === \"dashboard\"", "class.dashboard": "variant() === \"dashboard\"" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"{{ classNames() }}\">\n <header>\n <ng-content select=\"[slot=header]\"></ng-content>\n </header>\n\n <main>\n <ng-content select=\"[slot=content]\"></ng-content>\n <ng-content></ng-content>\n </main>\n\n <footer>\n <ng-content select=\"[slot=footer]\"></ng-content>\n </footer>\n</div>\n", styles: [":host{display:block;width:100%}:host.full-height,:host.dashboard{height:100%}.card{display:flex;flex-direction:column;border-radius:1em;overflow:hidden;box-sizing:border-box;transition:all .2s ease-in-out;width:100%;min-height:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background-color:var(--m-backdrop-standard);border:1px solid var(--m-backdrop-border)}.card header,.card main,.card footer{padding:1rem 1.5rem}.card header{color:var(--m-card-color);border-bottom:1px solid var(--m-card-color)}.card header:empty{display:none}.card header h1,.card header h2,.card header h3,.card header h4,.card header h5,.card header h6{margin:0 0 .25rem;font-weight:600;color:#333;line-height:1.3}.card header p{margin:0;color:#666;font-size:.875rem;line-height:1.4}.card main{flex:1}.card main:empty:not(:only-child){display:none}.card main p{margin:0 0 1rem;line-height:1.5;color:#333}.card main p:last-child{margin-bottom:0}.card footer{border-top:1px solid var(--m-card-color);font-size:.75rem;color:#666}.card footer:empty{display:none}@media(min-width:0){.card.xs-size-xs{max-width:240px;min-height:120px}}@media(min-width:0){.card.xs-size-sm{max-width:320px;min-height:160px}}@media(min-width:0){.card.xs-size-md{max-width:480px;min-height:240px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-sm{max-width:320px;min-height:160px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-md{max-width:480px;min-height:240px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-lg{max-width:640px;min-height:320px}}@media(min-width:768px){.card.md-size-md{max-width:480px;min-height:240px}}@media(min-width:768px){.card.md-size-lg{max-width:640px;min-height:320px}}@media(min-width:768px){.card.md-size-xl{max-width:800px;min-height:400px}}@media(min-width:768px){.card.md-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.md-size-jumbo header{padding:3rem 1rem;text-align:center}.card.md-size-jumbo header h1,.card.md-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.md-size-jumbo header h3,.card.md-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.md-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.md-size-jumbo main{padding:3rem 1rem;text-align:center}.card.md-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.md-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:992px){.card.lg-size-lg{max-width:640px;min-height:320px}}@media(min-width:992px){.card.lg-size-xl{max-width:800px;min-height:400px}}@media(min-width:992px){.card.lg-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.lg-size-jumbo header{padding:3rem 1rem;text-align:center}.card.lg-size-jumbo header h1,.card.lg-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.lg-size-jumbo header h3,.card.lg-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.lg-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.lg-size-jumbo main{padding:3rem 1rem;text-align:center}.card.lg-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.lg-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:1200px){.card.xl-size-xl{max-width:800px;min-height:400px}}@media(min-width:1200px){.card.xl-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.xl-size-jumbo header{padding:3rem 1rem;text-align:center}.card.xl-size-jumbo header h1,.card.xl-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.xl-size-jumbo header h3,.card.xl-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.xl-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.xl-size-jumbo main{padding:3rem 1rem;text-align:center}.card.xl-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.xl-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:1400px){.card.xxl-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.xxl-size-jumbo header{padding:3rem 1rem;text-align:center}.card.xxl-size-jumbo header h1,.card.xxl-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.xxl-size-jumbo header h3,.card.xxl-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.xxl-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.xxl-size-jumbo main{padding:3rem 1rem;text-align:center}.card.xxl-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.xxl-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(max-width:991.98px){.card.xs-size-full-width,.card.sm-size-full-width,.card.md-size-full-width{width:100%;max-width:none;margin:0;border-radius:0}}@media(max-width:991.98px)and (min-width:992px){.card.xs-size-full-width,.card.sm-size-full-width,.card.md-size-full-width{border-radius:8px;margin:0 1rem}}@media(max-width:767.98px){.card header,.card main,.card footer{padding-left:1rem;padding-right:1rem}.card header h1,.card header h2,.card header h3,.card header h4,.card header h5,.card header h6{font-size:1.1rem}.card header p{font-size:.8rem}.card main p{font-size:.9rem}.card footer{font-size:.7rem}}@media(min-width:768px)and (max-width:991.98px){.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:2rem}.card.size-jumbo header p{font-size:1.1rem}.card.size-jumbo main p{font-size:1rem}}@media(max-width:575.98px){.card.size-jumbo header{padding:1.5rem 1rem}.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:1.8rem}.card.size-jumbo header p{font-size:1rem}.card.size-jumbo main{padding:1.5rem 1rem}.card.size-jumbo main p{font-size:.95rem}.card.size-jumbo footer{padding:1rem}}.card.flat,.card.outlined{border:1px solid var(--m-card-color);box-shadow:none}.card.glass{backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);background-color:var(--m-backdrop-glass);border:1px solid var(--m-backdrop-border);border:1px solid var(--m-border)}.card.glass header{border-bottom:1px solid var(--m-border)}.card.glass footer{border-top:1px solid var(--m-border)}.card.beautiful{background:var(--surface-hover);border:1px solid var(--border);box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.card.beautiful header{border-bottom:1px solid var(--border);background:rgba(var(--primary-rgb),.03)}.card.beautiful footer{border-top:1px solid var(--border);background:rgba(var(--primary-rgb),.02)}.card.professional{background:#fff;border:1px solid #e2e8f0;border-radius:0;box-shadow:none}.card.professional header{padding:1.5rem 2rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.card.professional main{padding:2rem}.card.professional footer{padding:1.5rem 2rem;background:#fff;border-top:1px solid #f1f5f9}.card.subtle{background:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;box-shadow:none}.card.subtle header,.card.subtle main,.card.subtle footer{padding:1rem}.card.no-border{background:var(--m-backdrop-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:none;border-radius:1.5rem;box-shadow:0 4px 24px -4px #00000014,0 1px 4px #0000000a;position:relative}.card.no-border header{position:relative;border-bottom:none;background:linear-gradient(180deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:1.5rem 1.5rem 0 0}.card.no-border header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center bottom,center bottom;background-repeat:no-repeat;transform:translateY(3px)}.card.no-border footer{position:relative;border-top:none;background:linear-gradient(0deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:0 0 1.5rem 1.5rem}.card.no-border footer:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center top,center top;background-repeat:no-repeat;transform:translateY(-3px)}.card.dashboard{background:var(--m-backdrop-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:none;border-radius:1.5rem;box-shadow:0 4px 24px -4px #00000014,0 1px 4px #0000000a;position:relative}.card.dashboard header{position:relative;border-bottom:none;background:linear-gradient(180deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:1.5rem 1.5rem 0 0}.card.dashboard header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center bottom,center bottom;background-repeat:no-repeat;transform:translateY(3px)}.card.dashboard footer{position:relative;border-top:none;background:linear-gradient(0deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:0 0 1.5rem 1.5rem}.card.dashboard footer:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center top,center top;background-repeat:no-repeat;transform:translateY(-3px)}.card.dashboard{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.card.dashboard header{flex-shrink:0;position:sticky;top:0;z-index:10}.card.dashboard main{flex:1;overflow-y:auto;min-height:0}.card.dashboard footer{flex-shrink:0;position:sticky;bottom:0;z-index:10}.card.dashboard{border:var(--m-card-border, 1px solid var(--m-backdrop-border));border-radius:var(--m-card-border-radius, 1.5rem);background:var(--m-card-background, var(--m-backdrop-glass));box-shadow:0 8px 32px -4px #0000000a,0 1px 4px #00000005}.card.dashboard header{background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,transparent 100%);border-bottom:1px solid color-mix(in srgb,var(--m-border) 25%,transparent)}.card.dashboard footer{background:linear-gradient(0deg,rgba(255,255,255,.03) 0%,transparent 100%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-top:auto;border-top:1px solid color-mix(in srgb,var(--m-border) 25%,transparent)}.card.compact{border-radius:.5rem}.card.compact header,.card.compact main,.card.compact footer{padding:.5rem 1rem}.card.spacious{border-radius:1.5rem}.card.spacious header,.card.spacious main,.card.spacious footer{padding:1.5rem 3rem}.card.separated header{border-bottom-width:2px;border-bottom-color:var(--m-card-color)}.card.separated footer{border-top-width:2px;border-top-color:var(--m-card-color)}.card.size-xs{max-width:240px;min-height:120px}.card.size-sm{max-width:320px;min-height:160px}.card.size-md{max-width:480px;min-height:240px}.card.size-lg{max-width:640px;min-height:320px}.card.size-xl{max-width:800px;min-height:400px}.card.size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.size-jumbo header{padding:3rem 1rem;text-align:center}.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.size-jumbo header h3,.card.size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.size-jumbo main{padding:3rem 1rem;text-align:center}.card.size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.size-jumbo footer{padding:1.5rem 1rem;text-align:center}.card.size-full-width{width:100%;max-width:none;margin:0;border-radius:0}@media(min-width:992px){.card.size-full-width{border-radius:8px;margin:0 1rem}}.card.full-width{width:100vw;margin-left:50%;transform:translate(-50%);max-width:none;border-radius:0}@media(min-width:1200px){.card.full-width{width:100%;margin-left:0;transform:none;border-radius:8px}}.card.interactive{cursor:pointer}.card.interactive:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a,0 8px 24px #00000014}.card.interactive:active{transform:translateY(0);transition:transform .1s ease-out}.card.elevated{box-shadow:15px 15px 30px #bebebe,-15px -15px 30px #fff;border:none}.card.full-height{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.card.full-height header{flex-shrink:0;position:sticky;top:0;z-index:10}.card.full-height main{flex:1;overflow-y:auto;min-height:0}.card.full-height footer{flex-shrink:0;position:sticky;bottom:0;z-index:10}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20706
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: CardComponent, isStandalone: true, selector: "m-card,m-one-card", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, fullHeight: { classPropertyName: "fullHeight", publicName: "fullHeight", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "class.full-height": "fullHeight() || config()?.fullHeight || variant() === \"dashboard\"", "class.dashboard": "variant() === \"dashboard\"" } }, usesInheritance: true, ngImport: i0, template: "<ng-template #body>\n <header>\n <ng-content select=\"[slot=header]\"></ng-content>\n </header>\n\n <main>\n <ng-content select=\"[slot=content]\"></ng-content>\n <ng-content></ng-content>\n </main>\n\n <footer>\n <ng-content select=\"[slot=footer]\"></ng-content>\n </footer>\n</ng-template>\n\n@if (href()) {\n <a [class]=\"classNames()\" [href]=\"href()\" (click)=\"onCardClick($event)\">\n <ng-container *ngTemplateOutlet=\"body\" />\n </a>\n} @else {\n <div\n [class]=\"classNames()\"\n [class.interactive]=\"variant() === 'clickable'\"\n [attr.role]=\"variant() === 'clickable' ? 'button' : null\"\n [attr.tabindex]=\"variant() === 'clickable' ? 0 : null\"\n (click)=\"onCardClick($event)\"\n (keydown.enter)=\"variant() === 'clickable' && onCardClick($event)\"\n (keydown.space)=\"$event.preventDefault(); variant() === 'clickable' && onCardClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"body\" />\n </div>\n}\n", styles: [":host{display:block;width:100%}:host.full-height,:host.dashboard{height:100%}.card{display:flex;flex-direction:column;border-radius:1em;overflow:hidden;box-sizing:border-box;transition:all .2s ease-in-out;width:100%;min-height:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background-color:var(--m-backdrop-standard);border:1px solid var(--m-backdrop-border)}.card header,.card main,.card footer{padding:1rem 1.5rem}.card header{color:var(--m-card-color);border-bottom:1px solid var(--m-card-color)}.card header:empty{display:none}.card header h1,.card header h2,.card header h3,.card header h4,.card header h5,.card header h6{margin:0 0 .25rem;font-weight:600;color:#333;line-height:1.3}.card header p{margin:0;color:#666;font-size:.875rem;line-height:1.4}.card main{flex:1}.card main:empty:not(:only-child){display:none}.card main p{margin:0 0 1rem;line-height:1.5;color:#333}.card main p:last-child{margin-bottom:0}.card footer{border-top:1px solid var(--m-card-color);font-size:.75rem;color:#666}.card footer:empty{display:none}@media(min-width:0){.card.xs-size-xs{max-width:240px;min-height:120px}}@media(min-width:0){.card.xs-size-sm{max-width:320px;min-height:160px}}@media(min-width:0){.card.xs-size-md{max-width:480px;min-height:240px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-sm{max-width:320px;min-height:160px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-md{max-width:480px;min-height:240px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-lg{max-width:640px;min-height:320px}}@media(min-width:768px){.card.md-size-md{max-width:480px;min-height:240px}}@media(min-width:768px){.card.md-size-lg{max-width:640px;min-height:320px}}@media(min-width:768px){.card.md-size-xl{max-width:800px;min-height:400px}}@media(min-width:768px){.card.md-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.md-size-jumbo header{padding:3rem 1rem;text-align:center}.card.md-size-jumbo header h1,.card.md-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.md-size-jumbo header h3,.card.md-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.md-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.md-size-jumbo main{padding:3rem 1rem;text-align:center}.card.md-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.md-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:992px){.card.lg-size-lg{max-width:640px;min-height:320px}}@media(min-width:992px){.card.lg-size-xl{max-width:800px;min-height:400px}}@media(min-width:992px){.card.lg-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.lg-size-jumbo header{padding:3rem 1rem;text-align:center}.card.lg-size-jumbo header h1,.card.lg-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.lg-size-jumbo header h3,.card.lg-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.lg-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.lg-size-jumbo main{padding:3rem 1rem;text-align:center}.card.lg-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.lg-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:1200px){.card.xl-size-xl{max-width:800px;min-height:400px}}@media(min-width:1200px){.card.xl-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.xl-size-jumbo header{padding:3rem 1rem;text-align:center}.card.xl-size-jumbo header h1,.card.xl-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.xl-size-jumbo header h3,.card.xl-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.xl-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.xl-size-jumbo main{padding:3rem 1rem;text-align:center}.card.xl-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.xl-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:1400px){.card.xxl-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.xxl-size-jumbo header{padding:3rem 1rem;text-align:center}.card.xxl-size-jumbo header h1,.card.xxl-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.xxl-size-jumbo header h3,.card.xxl-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.xxl-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.xxl-size-jumbo main{padding:3rem 1rem;text-align:center}.card.xxl-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.xxl-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(max-width:991.98px){.card.xs-size-full-width,.card.sm-size-full-width,.card.md-size-full-width{width:100%;max-width:none;margin:0;border-radius:0}}@media(max-width:991.98px)and (min-width:992px){.card.xs-size-full-width,.card.sm-size-full-width,.card.md-size-full-width{border-radius:8px;margin:0 1rem}}@media(max-width:767.98px){.card header,.card main,.card footer{padding-left:1rem;padding-right:1rem}.card header h1,.card header h2,.card header h3,.card header h4,.card header h5,.card header h6{font-size:1.1rem}.card header p{font-size:.8rem}.card main p{font-size:.9rem}.card footer{font-size:.7rem}}@media(min-width:768px)and (max-width:991.98px){.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:2rem}.card.size-jumbo header p{font-size:1.1rem}.card.size-jumbo main p{font-size:1rem}}@media(max-width:575.98px){.card.size-jumbo header{padding:1.5rem 1rem}.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:1.8rem}.card.size-jumbo header p{font-size:1rem}.card.size-jumbo main{padding:1.5rem 1rem}.card.size-jumbo main p{font-size:.95rem}.card.size-jumbo footer{padding:1rem}}.card.flat,.card.outlined{border:1px solid var(--m-card-color);box-shadow:none}.card.glass{backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);background-color:var(--m-backdrop-glass);border:1px solid var(--m-backdrop-border);border:1px solid var(--m-border)}.card.glass header{border-bottom:1px solid var(--m-border)}.card.glass footer{border-top:1px solid var(--m-border)}.card.beautiful{background:var(--surface-hover);border:1px solid var(--border);box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.card.beautiful header{border-bottom:1px solid var(--border);background:rgba(var(--primary-rgb),.03)}.card.beautiful footer{border-top:1px solid var(--border);background:rgba(var(--primary-rgb),.02)}.card.professional{background:#fff;border:1px solid #e2e8f0;border-radius:0;box-shadow:none}.card.professional header{padding:1.5rem 2rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.card.professional main{padding:2rem}.card.professional footer{padding:1.5rem 2rem;background:#fff;border-top:1px solid #f1f5f9}.card.subtle{background:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;box-shadow:none}.card.subtle header,.card.subtle main,.card.subtle footer{padding:1rem}.card.no-border{background:var(--m-backdrop-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:none;border-radius:1.5rem;box-shadow:0 4px 24px -4px #00000014,0 1px 4px #0000000a;position:relative}.card.no-border header{position:relative;border-bottom:none;background:linear-gradient(180deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:1.5rem 1.5rem 0 0}.card.no-border header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center bottom,center bottom;background-repeat:no-repeat;transform:translateY(3px)}.card.no-border footer{position:relative;border-top:none;background:linear-gradient(0deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:0 0 1.5rem 1.5rem}.card.no-border footer:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center top,center top;background-repeat:no-repeat;transform:translateY(-3px)}.card.dashboard{background:var(--m-backdrop-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:none;border-radius:1.5rem;box-shadow:0 4px 24px -4px #00000014,0 1px 4px #0000000a;position:relative}.card.dashboard header{position:relative;border-bottom:none;background:linear-gradient(180deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:1.5rem 1.5rem 0 0}.card.dashboard header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center bottom,center bottom;background-repeat:no-repeat;transform:translateY(3px)}.card.dashboard footer{position:relative;border-top:none;background:linear-gradient(0deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:0 0 1.5rem 1.5rem}.card.dashboard footer:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center top,center top;background-repeat:no-repeat;transform:translateY(-3px)}.card.dashboard{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.card.dashboard header{flex-shrink:0;position:sticky;top:0;z-index:10}.card.dashboard main{flex:1;overflow-y:auto;min-height:0}.card.dashboard footer{flex-shrink:0;position:sticky;bottom:0;z-index:10}.card.dashboard{border:var(--m-card-border, 1px solid var(--m-backdrop-border));border-radius:var(--m-card-border-radius, 1.5rem);background:var(--m-card-background, var(--m-backdrop-glass));box-shadow:0 8px 32px -4px #0000000a,0 1px 4px #00000005}.card.dashboard header{background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,transparent 100%);border-bottom:1px solid color-mix(in srgb,var(--m-border) 25%,transparent)}.card.dashboard footer{background:linear-gradient(0deg,rgba(255,255,255,.03) 0%,transparent 100%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-top:auto;border-top:1px solid color-mix(in srgb,var(--m-border) 25%,transparent)}.card.roundedBorder{border:2px solid var(--border, var(--m-border));border-radius:4px;box-shadow:none}.card.highlighted{border:2px solid var(--mm-color, var(--m-mm));border-radius:4px;background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 5%,var(--background, var(--m-background)) 95%);box-shadow:0 0 0 1px var(--mm-color, var(--m-mm))}.card.clickable{border:2px solid var(--border, var(--m-border));border-radius:4px;cursor:pointer}.card.clickable:hover{border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px color-mix(in srgb,var(--mm-color, var(--m-mm)) 20%,transparent 80%)}.card.padding-none header,.card.padding-none main,.card.padding-none footer{padding:0}.card.padding-x header,.card.padding-x main,.card.padding-x footer{padding-block:0}.card.padding-y header,.card.padding-y main,.card.padding-y footer{padding-inline:0}.card.padding-left header,.card.padding-left main,.card.padding-left footer{padding-top:0;padding-right:0;padding-bottom:0}.card.padding-right header,.card.padding-right main,.card.padding-right footer{padding-top:0;padding-bottom:0;padding-left:0}.card.padding-up header,.card.padding-up main,.card.padding-up footer{padding-right:0;padding-bottom:0;padding-left:0}.card.padding-down header,.card.padding-down main,.card.padding-down footer{padding-top:0;padding-right:0;padding-left:0}.card.compact{border-radius:.5rem}.card.compact header,.card.compact main,.card.compact footer{padding:.5rem 1rem}.card.spacious{border-radius:1.5rem}.card.spacious header,.card.spacious main,.card.spacious footer{padding:1.5rem 3rem}.card.separated header{border-bottom-width:2px;border-bottom-color:var(--m-card-color)}.card.separated footer{border-top-width:2px;border-top-color:var(--m-card-color)}.card.size-xs{max-width:240px;min-height:120px}.card.size-sm{max-width:320px;min-height:160px}.card.size-md{max-width:480px;min-height:240px}.card.size-lg{max-width:640px;min-height:320px}.card.size-xl{max-width:800px;min-height:400px}.card.size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.size-jumbo header{padding:3rem 1rem;text-align:center}.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.size-jumbo header h3,.card.size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.size-jumbo main{padding:3rem 1rem;text-align:center}.card.size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.size-jumbo footer{padding:1.5rem 1rem;text-align:center}.card.size-full-width{width:100%;max-width:none;margin:0;border-radius:0}@media(min-width:992px){.card.size-full-width{border-radius:8px;margin:0 1rem}}.card.full-width{width:100vw;margin-left:50%;transform:translate(-50%);max-width:none;border-radius:0}@media(min-width:1200px){.card.full-width{width:100%;margin-left:0;transform:none;border-radius:8px}}.card.interactive{cursor:pointer}.card.interactive:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a,0 8px 24px #00000014}.card.interactive:active{transform:translateY(0);transition:transform .1s ease-out}a.card{color:inherit;text-decoration:none}.card.elevated{box-shadow:15px 15px 30px #bebebe,-15px -15px 30px #fff;border:none}.card.full-height{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.card.full-height header{flex-shrink:0;position:sticky;top:0;z-index:10}.card.full-height main{flex:1;overflow-y:auto;min-height:0}.card.full-height footer{flex-shrink:0;position:sticky;bottom:0;z-index:10}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20489
20707
  }
20490
20708
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CardComponent, decorators: [{
20491
20709
  type: Component,
20492
- args: [{ selector: 'm-card,m-one-card', host: {
20710
+ args: [{ selector: 'm-card,m-one-card', imports: [NgTemplateOutlet], host: {
20493
20711
  '[class.full-height]': 'fullHeight() || config()?.fullHeight || variant() === "dashboard"',
20494
20712
  '[class.dashboard]': 'variant() === "dashboard"',
20495
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"{{ classNames() }}\">\n <header>\n <ng-content select=\"[slot=header]\"></ng-content>\n </header>\n\n <main>\n <ng-content select=\"[slot=content]\"></ng-content>\n <ng-content></ng-content>\n </main>\n\n <footer>\n <ng-content select=\"[slot=footer]\"></ng-content>\n </footer>\n</div>\n", styles: [":host{display:block;width:100%}:host.full-height,:host.dashboard{height:100%}.card{display:flex;flex-direction:column;border-radius:1em;overflow:hidden;box-sizing:border-box;transition:all .2s ease-in-out;width:100%;min-height:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background-color:var(--m-backdrop-standard);border:1px solid var(--m-backdrop-border)}.card header,.card main,.card footer{padding:1rem 1.5rem}.card header{color:var(--m-card-color);border-bottom:1px solid var(--m-card-color)}.card header:empty{display:none}.card header h1,.card header h2,.card header h3,.card header h4,.card header h5,.card header h6{margin:0 0 .25rem;font-weight:600;color:#333;line-height:1.3}.card header p{margin:0;color:#666;font-size:.875rem;line-height:1.4}.card main{flex:1}.card main:empty:not(:only-child){display:none}.card main p{margin:0 0 1rem;line-height:1.5;color:#333}.card main p:last-child{margin-bottom:0}.card footer{border-top:1px solid var(--m-card-color);font-size:.75rem;color:#666}.card footer:empty{display:none}@media(min-width:0){.card.xs-size-xs{max-width:240px;min-height:120px}}@media(min-width:0){.card.xs-size-sm{max-width:320px;min-height:160px}}@media(min-width:0){.card.xs-size-md{max-width:480px;min-height:240px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-sm{max-width:320px;min-height:160px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-md{max-width:480px;min-height:240px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-lg{max-width:640px;min-height:320px}}@media(min-width:768px){.card.md-size-md{max-width:480px;min-height:240px}}@media(min-width:768px){.card.md-size-lg{max-width:640px;min-height:320px}}@media(min-width:768px){.card.md-size-xl{max-width:800px;min-height:400px}}@media(min-width:768px){.card.md-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.md-size-jumbo header{padding:3rem 1rem;text-align:center}.card.md-size-jumbo header h1,.card.md-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.md-size-jumbo header h3,.card.md-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.md-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.md-size-jumbo main{padding:3rem 1rem;text-align:center}.card.md-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.md-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:992px){.card.lg-size-lg{max-width:640px;min-height:320px}}@media(min-width:992px){.card.lg-size-xl{max-width:800px;min-height:400px}}@media(min-width:992px){.card.lg-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.lg-size-jumbo header{padding:3rem 1rem;text-align:center}.card.lg-size-jumbo header h1,.card.lg-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.lg-size-jumbo header h3,.card.lg-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.lg-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.lg-size-jumbo main{padding:3rem 1rem;text-align:center}.card.lg-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.lg-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:1200px){.card.xl-size-xl{max-width:800px;min-height:400px}}@media(min-width:1200px){.card.xl-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.xl-size-jumbo header{padding:3rem 1rem;text-align:center}.card.xl-size-jumbo header h1,.card.xl-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.xl-size-jumbo header h3,.card.xl-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.xl-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.xl-size-jumbo main{padding:3rem 1rem;text-align:center}.card.xl-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.xl-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:1400px){.card.xxl-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.xxl-size-jumbo header{padding:3rem 1rem;text-align:center}.card.xxl-size-jumbo header h1,.card.xxl-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.xxl-size-jumbo header h3,.card.xxl-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.xxl-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.xxl-size-jumbo main{padding:3rem 1rem;text-align:center}.card.xxl-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.xxl-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(max-width:991.98px){.card.xs-size-full-width,.card.sm-size-full-width,.card.md-size-full-width{width:100%;max-width:none;margin:0;border-radius:0}}@media(max-width:991.98px)and (min-width:992px){.card.xs-size-full-width,.card.sm-size-full-width,.card.md-size-full-width{border-radius:8px;margin:0 1rem}}@media(max-width:767.98px){.card header,.card main,.card footer{padding-left:1rem;padding-right:1rem}.card header h1,.card header h2,.card header h3,.card header h4,.card header h5,.card header h6{font-size:1.1rem}.card header p{font-size:.8rem}.card main p{font-size:.9rem}.card footer{font-size:.7rem}}@media(min-width:768px)and (max-width:991.98px){.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:2rem}.card.size-jumbo header p{font-size:1.1rem}.card.size-jumbo main p{font-size:1rem}}@media(max-width:575.98px){.card.size-jumbo header{padding:1.5rem 1rem}.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:1.8rem}.card.size-jumbo header p{font-size:1rem}.card.size-jumbo main{padding:1.5rem 1rem}.card.size-jumbo main p{font-size:.95rem}.card.size-jumbo footer{padding:1rem}}.card.flat,.card.outlined{border:1px solid var(--m-card-color);box-shadow:none}.card.glass{backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);background-color:var(--m-backdrop-glass);border:1px solid var(--m-backdrop-border);border:1px solid var(--m-border)}.card.glass header{border-bottom:1px solid var(--m-border)}.card.glass footer{border-top:1px solid var(--m-border)}.card.beautiful{background:var(--surface-hover);border:1px solid var(--border);box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.card.beautiful header{border-bottom:1px solid var(--border);background:rgba(var(--primary-rgb),.03)}.card.beautiful footer{border-top:1px solid var(--border);background:rgba(var(--primary-rgb),.02)}.card.professional{background:#fff;border:1px solid #e2e8f0;border-radius:0;box-shadow:none}.card.professional header{padding:1.5rem 2rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.card.professional main{padding:2rem}.card.professional footer{padding:1.5rem 2rem;background:#fff;border-top:1px solid #f1f5f9}.card.subtle{background:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;box-shadow:none}.card.subtle header,.card.subtle main,.card.subtle footer{padding:1rem}.card.no-border{background:var(--m-backdrop-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:none;border-radius:1.5rem;box-shadow:0 4px 24px -4px #00000014,0 1px 4px #0000000a;position:relative}.card.no-border header{position:relative;border-bottom:none;background:linear-gradient(180deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:1.5rem 1.5rem 0 0}.card.no-border header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center bottom,center bottom;background-repeat:no-repeat;transform:translateY(3px)}.card.no-border footer{position:relative;border-top:none;background:linear-gradient(0deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:0 0 1.5rem 1.5rem}.card.no-border footer:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center top,center top;background-repeat:no-repeat;transform:translateY(-3px)}.card.dashboard{background:var(--m-backdrop-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:none;border-radius:1.5rem;box-shadow:0 4px 24px -4px #00000014,0 1px 4px #0000000a;position:relative}.card.dashboard header{position:relative;border-bottom:none;background:linear-gradient(180deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:1.5rem 1.5rem 0 0}.card.dashboard header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center bottom,center bottom;background-repeat:no-repeat;transform:translateY(3px)}.card.dashboard footer{position:relative;border-top:none;background:linear-gradient(0deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:0 0 1.5rem 1.5rem}.card.dashboard footer:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center top,center top;background-repeat:no-repeat;transform:translateY(-3px)}.card.dashboard{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.card.dashboard header{flex-shrink:0;position:sticky;top:0;z-index:10}.card.dashboard main{flex:1;overflow-y:auto;min-height:0}.card.dashboard footer{flex-shrink:0;position:sticky;bottom:0;z-index:10}.card.dashboard{border:var(--m-card-border, 1px solid var(--m-backdrop-border));border-radius:var(--m-card-border-radius, 1.5rem);background:var(--m-card-background, var(--m-backdrop-glass));box-shadow:0 8px 32px -4px #0000000a,0 1px 4px #00000005}.card.dashboard header{background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,transparent 100%);border-bottom:1px solid color-mix(in srgb,var(--m-border) 25%,transparent)}.card.dashboard footer{background:linear-gradient(0deg,rgba(255,255,255,.03) 0%,transparent 100%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-top:auto;border-top:1px solid color-mix(in srgb,var(--m-border) 25%,transparent)}.card.compact{border-radius:.5rem}.card.compact header,.card.compact main,.card.compact footer{padding:.5rem 1rem}.card.spacious{border-radius:1.5rem}.card.spacious header,.card.spacious main,.card.spacious footer{padding:1.5rem 3rem}.card.separated header{border-bottom-width:2px;border-bottom-color:var(--m-card-color)}.card.separated footer{border-top-width:2px;border-top-color:var(--m-card-color)}.card.size-xs{max-width:240px;min-height:120px}.card.size-sm{max-width:320px;min-height:160px}.card.size-md{max-width:480px;min-height:240px}.card.size-lg{max-width:640px;min-height:320px}.card.size-xl{max-width:800px;min-height:400px}.card.size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.size-jumbo header{padding:3rem 1rem;text-align:center}.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.size-jumbo header h3,.card.size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.size-jumbo main{padding:3rem 1rem;text-align:center}.card.size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.size-jumbo footer{padding:1.5rem 1rem;text-align:center}.card.size-full-width{width:100%;max-width:none;margin:0;border-radius:0}@media(min-width:992px){.card.size-full-width{border-radius:8px;margin:0 1rem}}.card.full-width{width:100vw;margin-left:50%;transform:translate(-50%);max-width:none;border-radius:0}@media(min-width:1200px){.card.full-width{width:100%;margin-left:0;transform:none;border-radius:8px}}.card.interactive{cursor:pointer}.card.interactive:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a,0 8px 24px #00000014}.card.interactive:active{transform:translateY(0);transition:transform .1s ease-out}.card.elevated{box-shadow:15px 15px 30px #bebebe,-15px -15px 30px #fff;border:none}.card.full-height{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.card.full-height header{flex-shrink:0;position:sticky;top:0;z-index:10}.card.full-height main{flex:1;overflow-y:auto;min-height:0}.card.full-height footer{flex-shrink:0;position:sticky;bottom:0;z-index:10}\n"] }]
20496
- }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], spacing: [{ type: i0.Input, args: [{ isSignal: true, alias: "spacing", required: false }] }], fullHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullHeight", required: false }] }] } });
20713
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #body>\n <header>\n <ng-content select=\"[slot=header]\"></ng-content>\n </header>\n\n <main>\n <ng-content select=\"[slot=content]\"></ng-content>\n <ng-content></ng-content>\n </main>\n\n <footer>\n <ng-content select=\"[slot=footer]\"></ng-content>\n </footer>\n</ng-template>\n\n@if (href()) {\n <a [class]=\"classNames()\" [href]=\"href()\" (click)=\"onCardClick($event)\">\n <ng-container *ngTemplateOutlet=\"body\" />\n </a>\n} @else {\n <div\n [class]=\"classNames()\"\n [class.interactive]=\"variant() === 'clickable'\"\n [attr.role]=\"variant() === 'clickable' ? 'button' : null\"\n [attr.tabindex]=\"variant() === 'clickable' ? 0 : null\"\n (click)=\"onCardClick($event)\"\n (keydown.enter)=\"variant() === 'clickable' && onCardClick($event)\"\n (keydown.space)=\"$event.preventDefault(); variant() === 'clickable' && onCardClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"body\" />\n </div>\n}\n", styles: [":host{display:block;width:100%}:host.full-height,:host.dashboard{height:100%}.card{display:flex;flex-direction:column;border-radius:1em;overflow:hidden;box-sizing:border-box;transition:all .2s ease-in-out;width:100%;min-height:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background-color:var(--m-backdrop-standard);border:1px solid var(--m-backdrop-border)}.card header,.card main,.card footer{padding:1rem 1.5rem}.card header{color:var(--m-card-color);border-bottom:1px solid var(--m-card-color)}.card header:empty{display:none}.card header h1,.card header h2,.card header h3,.card header h4,.card header h5,.card header h6{margin:0 0 .25rem;font-weight:600;color:#333;line-height:1.3}.card header p{margin:0;color:#666;font-size:.875rem;line-height:1.4}.card main{flex:1}.card main:empty:not(:only-child){display:none}.card main p{margin:0 0 1rem;line-height:1.5;color:#333}.card main p:last-child{margin-bottom:0}.card footer{border-top:1px solid var(--m-card-color);font-size:.75rem;color:#666}.card footer:empty{display:none}@media(min-width:0){.card.xs-size-xs{max-width:240px;min-height:120px}}@media(min-width:0){.card.xs-size-sm{max-width:320px;min-height:160px}}@media(min-width:0){.card.xs-size-md{max-width:480px;min-height:240px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-sm{max-width:320px;min-height:160px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-md{max-width:480px;min-height:240px}}@media(min-width:576px)and (max-width:767.98px){.card.sm-size-lg{max-width:640px;min-height:320px}}@media(min-width:768px){.card.md-size-md{max-width:480px;min-height:240px}}@media(min-width:768px){.card.md-size-lg{max-width:640px;min-height:320px}}@media(min-width:768px){.card.md-size-xl{max-width:800px;min-height:400px}}@media(min-width:768px){.card.md-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.md-size-jumbo header{padding:3rem 1rem;text-align:center}.card.md-size-jumbo header h1,.card.md-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.md-size-jumbo header h3,.card.md-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.md-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.md-size-jumbo main{padding:3rem 1rem;text-align:center}.card.md-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.md-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:992px){.card.lg-size-lg{max-width:640px;min-height:320px}}@media(min-width:992px){.card.lg-size-xl{max-width:800px;min-height:400px}}@media(min-width:992px){.card.lg-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.lg-size-jumbo header{padding:3rem 1rem;text-align:center}.card.lg-size-jumbo header h1,.card.lg-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.lg-size-jumbo header h3,.card.lg-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.lg-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.lg-size-jumbo main{padding:3rem 1rem;text-align:center}.card.lg-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.lg-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:1200px){.card.xl-size-xl{max-width:800px;min-height:400px}}@media(min-width:1200px){.card.xl-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.xl-size-jumbo header{padding:3rem 1rem;text-align:center}.card.xl-size-jumbo header h1,.card.xl-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.xl-size-jumbo header h3,.card.xl-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.xl-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.xl-size-jumbo main{padding:3rem 1rem;text-align:center}.card.xl-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.xl-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(min-width:1400px){.card.xxl-size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.xxl-size-jumbo header{padding:3rem 1rem;text-align:center}.card.xxl-size-jumbo header h1,.card.xxl-size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.xxl-size-jumbo header h3,.card.xxl-size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.xxl-size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.xxl-size-jumbo main{padding:3rem 1rem;text-align:center}.card.xxl-size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.xxl-size-jumbo footer{padding:1.5rem 1rem;text-align:center}}@media(max-width:991.98px){.card.xs-size-full-width,.card.sm-size-full-width,.card.md-size-full-width{width:100%;max-width:none;margin:0;border-radius:0}}@media(max-width:991.98px)and (min-width:992px){.card.xs-size-full-width,.card.sm-size-full-width,.card.md-size-full-width{border-radius:8px;margin:0 1rem}}@media(max-width:767.98px){.card header,.card main,.card footer{padding-left:1rem;padding-right:1rem}.card header h1,.card header h2,.card header h3,.card header h4,.card header h5,.card header h6{font-size:1.1rem}.card header p{font-size:.8rem}.card main p{font-size:.9rem}.card footer{font-size:.7rem}}@media(min-width:768px)and (max-width:991.98px){.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:2rem}.card.size-jumbo header p{font-size:1.1rem}.card.size-jumbo main p{font-size:1rem}}@media(max-width:575.98px){.card.size-jumbo header{padding:1.5rem 1rem}.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:1.8rem}.card.size-jumbo header p{font-size:1rem}.card.size-jumbo main{padding:1.5rem 1rem}.card.size-jumbo main p{font-size:.95rem}.card.size-jumbo footer{padding:1rem}}.card.flat,.card.outlined{border:1px solid var(--m-card-color);box-shadow:none}.card.glass{backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);background-color:var(--m-backdrop-glass);border:1px solid var(--m-backdrop-border);border:1px solid var(--m-border)}.card.glass header{border-bottom:1px solid var(--m-border)}.card.glass footer{border-top:1px solid var(--m-border)}.card.beautiful{background:var(--surface-hover);border:1px solid var(--border);box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.card.beautiful header{border-bottom:1px solid var(--border);background:rgba(var(--primary-rgb),.03)}.card.beautiful footer{border-top:1px solid var(--border);background:rgba(var(--primary-rgb),.02)}.card.professional{background:#fff;border:1px solid #e2e8f0;border-radius:0;box-shadow:none}.card.professional header{padding:1.5rem 2rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.card.professional main{padding:2rem}.card.professional footer{padding:1.5rem 2rem;background:#fff;border-top:1px solid #f1f5f9}.card.subtle{background:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;box-shadow:none}.card.subtle header,.card.subtle main,.card.subtle footer{padding:1rem}.card.no-border{background:var(--m-backdrop-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:none;border-radius:1.5rem;box-shadow:0 4px 24px -4px #00000014,0 1px 4px #0000000a;position:relative}.card.no-border header{position:relative;border-bottom:none;background:linear-gradient(180deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:1.5rem 1.5rem 0 0}.card.no-border header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center bottom,center bottom;background-repeat:no-repeat;transform:translateY(3px)}.card.no-border footer{position:relative;border-top:none;background:linear-gradient(0deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:0 0 1.5rem 1.5rem}.card.no-border footer:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center top,center top;background-repeat:no-repeat;transform:translateY(-3px)}.card.dashboard{background:var(--m-backdrop-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:none;border-radius:1.5rem;box-shadow:0 4px 24px -4px #00000014,0 1px 4px #0000000a;position:relative}.card.dashboard header{position:relative;border-bottom:none;background:linear-gradient(180deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:1.5rem 1.5rem 0 0}.card.dashboard header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center bottom,center bottom;background-repeat:no-repeat;transform:translateY(3px)}.card.dashboard footer{position:relative;border-top:none;background:linear-gradient(0deg,var(--m-backdrop-frosted) 0%,transparent 100%);border-radius:0 0 1.5rem 1.5rem}.card.dashboard footer:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:radial-gradient(circle,rgba(0,0,0,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 50%,transparent 100%);background-size:6px 6px,100% 1px;background-position:center top,center top;background-repeat:no-repeat;transform:translateY(-3px)}.card.dashboard{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.card.dashboard header{flex-shrink:0;position:sticky;top:0;z-index:10}.card.dashboard main{flex:1;overflow-y:auto;min-height:0}.card.dashboard footer{flex-shrink:0;position:sticky;bottom:0;z-index:10}.card.dashboard{border:var(--m-card-border, 1px solid var(--m-backdrop-border));border-radius:var(--m-card-border-radius, 1.5rem);background:var(--m-card-background, var(--m-backdrop-glass));box-shadow:0 8px 32px -4px #0000000a,0 1px 4px #00000005}.card.dashboard header{background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,transparent 100%);border-bottom:1px solid color-mix(in srgb,var(--m-border) 25%,transparent)}.card.dashboard footer{background:linear-gradient(0deg,rgba(255,255,255,.03) 0%,transparent 100%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-top:auto;border-top:1px solid color-mix(in srgb,var(--m-border) 25%,transparent)}.card.roundedBorder{border:2px solid var(--border, var(--m-border));border-radius:4px;box-shadow:none}.card.highlighted{border:2px solid var(--mm-color, var(--m-mm));border-radius:4px;background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 5%,var(--background, var(--m-background)) 95%);box-shadow:0 0 0 1px var(--mm-color, var(--m-mm))}.card.clickable{border:2px solid var(--border, var(--m-border));border-radius:4px;cursor:pointer}.card.clickable:hover{border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px color-mix(in srgb,var(--mm-color, var(--m-mm)) 20%,transparent 80%)}.card.padding-none header,.card.padding-none main,.card.padding-none footer{padding:0}.card.padding-x header,.card.padding-x main,.card.padding-x footer{padding-block:0}.card.padding-y header,.card.padding-y main,.card.padding-y footer{padding-inline:0}.card.padding-left header,.card.padding-left main,.card.padding-left footer{padding-top:0;padding-right:0;padding-bottom:0}.card.padding-right header,.card.padding-right main,.card.padding-right footer{padding-top:0;padding-bottom:0;padding-left:0}.card.padding-up header,.card.padding-up main,.card.padding-up footer{padding-right:0;padding-bottom:0;padding-left:0}.card.padding-down header,.card.padding-down main,.card.padding-down footer{padding-top:0;padding-right:0;padding-left:0}.card.compact{border-radius:.5rem}.card.compact header,.card.compact main,.card.compact footer{padding:.5rem 1rem}.card.spacious{border-radius:1.5rem}.card.spacious header,.card.spacious main,.card.spacious footer{padding:1.5rem 3rem}.card.separated header{border-bottom-width:2px;border-bottom-color:var(--m-card-color)}.card.separated footer{border-top-width:2px;border-top-color:var(--m-card-color)}.card.size-xs{max-width:240px;min-height:120px}.card.size-sm{max-width:320px;min-height:160px}.card.size-md{max-width:480px;min-height:240px}.card.size-lg{max-width:640px;min-height:320px}.card.size-xl{max-width:800px;min-height:400px}.card.size-jumbo{max-width:1200px;min-height:500px;margin:0 auto}.card.size-jumbo header{padding:3rem 1rem;text-align:center}.card.size-jumbo header h1,.card.size-jumbo header h2{font-size:2.5rem;margin-bottom:1rem;font-weight:700}.card.size-jumbo header h3,.card.size-jumbo header h4{font-size:1.8rem;margin-bottom:.5rem}.card.size-jumbo header p{font-size:1.2rem;max-width:600px;margin:0 auto;line-height:1.6}.card.size-jumbo main{padding:3rem 1rem;text-align:center}.card.size-jumbo main p{font-size:1.1rem;max-width:800px;margin:0 auto 1.5rem}.card.size-jumbo footer{padding:1.5rem 1rem;text-align:center}.card.size-full-width{width:100%;max-width:none;margin:0;border-radius:0}@media(min-width:992px){.card.size-full-width{border-radius:8px;margin:0 1rem}}.card.full-width{width:100vw;margin-left:50%;transform:translate(-50%);max-width:none;border-radius:0}@media(min-width:1200px){.card.full-width{width:100%;margin-left:0;transform:none;border-radius:8px}}.card.interactive{cursor:pointer}.card.interactive:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a,0 8px 24px #00000014}.card.interactive:active{transform:translateY(0);transition:transform .1s ease-out}a.card{color:inherit;text-decoration:none}.card.elevated{box-shadow:15px 15px 30px #bebebe,-15px -15px 30px #fff;border:none}.card.full-height{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.card.full-height header{flex-shrink:0;position:sticky;top:0;z-index:10}.card.full-height main{flex:1;overflow-y:auto;min-height:0}.card.full-height footer{flex-shrink:0;position:sticky;bottom:0;z-index:10}\n"] }]
20714
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], spacing: [{ type: i0.Input, args: [{ isSignal: true, alias: "spacing", required: false }] }], fullHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullHeight", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
20497
20715
 
20498
20716
  class CardWrapperComponent {
20499
20717
  variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
@@ -20526,7 +20744,7 @@ class DashboardCardComponent {
20526
20744
  this.hasFooter.set(hasFooterSlot);
20527
20745
  }
20528
20746
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DashboardCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20529
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DashboardCardComponent, isStandalone: true, selector: "m-dashboard-card, m-one-dashboard-card", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, buttonGroup: { classPropertyName: "buttonGroup", publicName: "buttonGroup", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.no-footer": "!hasFooter()" } }, ngImport: i0, template: "<m-card variant=\"dashboard\">\n @if (title() || icon() || buttonGroup()) {\n <div slot=\"header\" class=\"m-dashboard-card__header\">\n <div class=\"m-dashboard-card__header-left\">\n @if (icon()) {\n <m-icon [name]=\"icon()!\" color=\"mm\" />\n }\n @if (title()) {\n <m-header [level]=\"4\" color=\"textSecondary\">{{ title()! | translate }}</m-header>\n }\n <ng-content select=\"[slot=header]\"></ng-content>\n </div>\n\n @if (buttonGroup()) {\n <div class=\"m-dashboard-card__header-right\">\n <m-button-group [name]=\"buttonGroup()!\" [config]=\"{ isContext: true }\" />\n </div>\n }\n </div>\n }\n\n <div slot=\"content\" class=\"m-dashboard-card__body\">\n <ng-content select=\"[slot=content]\"></ng-content>\n <ng-content></ng-content>\n </div>\n\n @if (hasFooter()) {\n <div slot=\"footer\" class=\"m-dashboard-card__footer\">\n <ng-content select=\"[slot=footer]\"></ng-content>\n </div>\n }\n</m-card>\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%}.m-dashboard-card__header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.m-dashboard-card__header-left{display:flex;flex-direction:row;align-items:center;gap:1rem}.m-dashboard-card__header-left m-header,.m-dashboard-card__header-left h1,.m-dashboard-card__header-left h2,.m-dashboard-card__header-left h3,.m-dashboard-card__header-left h4,.m-dashboard-card__header-left h5,.m-dashboard-card__header-left h6{margin:0;padding:0;display:inline-flex;align-items:center}.m-dashboard-card__header-left m-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--m-background-lite);color:var(--m-mm);border:1px solid var(--m-border);box-shadow:0 4px 10px #00000008}.m-dashboard-card__header-right{display:flex;align-items:center;margin-left:auto}.m-dashboard-card__body,.m-dashboard-card__footer{width:100%;display:block}:host.no-footer .m-dashboard-card__body{padding-bottom:.75rem}\n"], dependencies: [{ kind: "component", type: CardComponent, selector: "m-card,m-one-card", inputs: ["variant", "spacing", "fullHeight"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "component", type: ButtonGroupComponent, selector: "m-button-group, m-one-button-group", inputs: ["buttons", "names", "exclude", "vertical", "size"], outputs: ["clicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20747
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DashboardCardComponent, isStandalone: true, selector: "m-dashboard-card, m-one-dashboard-card", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, buttonGroup: { classPropertyName: "buttonGroup", publicName: "buttonGroup", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.no-footer": "!hasFooter()" } }, ngImport: i0, template: "<m-card variant=\"dashboard\">\n @if (title() || icon() || buttonGroup()) {\n <div slot=\"header\" class=\"m-dashboard-card__header\">\n <div class=\"m-dashboard-card__header-left\">\n @if (icon()) {\n <m-icon [name]=\"icon()!\" color=\"mm\" />\n }\n @if (title()) {\n <m-header [level]=\"4\" color=\"textSecondary\">{{ title()! | translate }}</m-header>\n }\n <ng-content select=\"[slot=header]\"></ng-content>\n </div>\n\n @if (buttonGroup()) {\n <div class=\"m-dashboard-card__header-right\">\n <m-button-group [name]=\"buttonGroup()!\" [config]=\"{ isContext: true }\" />\n </div>\n }\n </div>\n }\n\n <div slot=\"content\" class=\"m-dashboard-card__body\">\n <ng-content select=\"[slot=content]\"></ng-content>\n <ng-content></ng-content>\n </div>\n\n @if (hasFooter()) {\n <div slot=\"footer\" class=\"m-dashboard-card__footer\">\n <ng-content select=\"[slot=footer]\"></ng-content>\n </div>\n }\n</m-card>\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%}.m-dashboard-card__header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.m-dashboard-card__header-left{display:flex;flex-direction:row;align-items:center;gap:1rem}.m-dashboard-card__header-left m-header,.m-dashboard-card__header-left h1,.m-dashboard-card__header-left h2,.m-dashboard-card__header-left h3,.m-dashboard-card__header-left h4,.m-dashboard-card__header-left h5,.m-dashboard-card__header-left h6{margin:0;padding:0;display:inline-flex;align-items:center}.m-dashboard-card__header-left m-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--m-background-lite);color:var(--m-mm);border:1px solid var(--m-border);box-shadow:0 4px 10px #00000008}.m-dashboard-card__header-right{display:flex;align-items:center;margin-left:auto}.m-dashboard-card__body,.m-dashboard-card__footer{width:100%;display:block}:host.no-footer .m-dashboard-card__body{padding-bottom:.75rem}\n"], dependencies: [{ kind: "component", type: CardComponent, selector: "m-card,m-one-card", inputs: ["variant", "spacing", "fullHeight", "padding", "href"], outputs: ["clicked"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "component", type: ButtonGroupComponent, selector: "m-button-group, m-one-button-group", inputs: ["buttons", "names", "exclude", "vertical", "size"], outputs: ["clicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20530
20748
  }
20531
20749
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DashboardCardComponent, decorators: [{
20532
20750
  type: Component,
@@ -24237,7 +24455,7 @@ class SummaryComponent extends ConfigComponent {
24237
24455
  return typeof value === 'string' ? parseFloat(value) : value;
24238
24456
  }
24239
24457
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SummaryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24240
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SummaryComponent, isStandalone: true, selector: "m-summary, m-one-summary", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClicked: "actionClicked" }, usesInheritance: true, ngImport: i0, template: "@if (effectiveData(); as d) {\n <div class=\"m-summary\">\n <m-one-card variant=\"dashboard\" spacing=\"compact\">\n <div slot=\"header\" class=\"m-summary__header\">\n @if (d.badges?.length) {\n <div class=\"m-summary__badges\">\n @for (badge of d.badges; track $index) {\n <span class=\"m-summary__badge\">{{ badge | translate }}</span>\n }\n </div>\n }\n <div class=\"m-summary__header-text\">\n <div class=\"m-summary__title-group\">\n @if (d.icon) {\n <div class=\"m-summary__icon\">\n <m-icon [name]=\"d.icon\" [remote]=\"remote() ?? config()?.remote\" />\n </div>\n }\n <m-header [level]=\"2\">{{ d.title | translate }}</m-header>\n </div>\n @if (d.subtitle) {\n <p class=\"m-summary__subtitle\">{{ d.subtitle | translate }}</p>\n }\n </div>\n </div>\n\n <div slot=\"content\" class=\"m-summary__content\">\n @if (d.rows?.length) {\n <div class=\"m-summary__rows\">\n @for (row of d.rows; track $index) {\n <div\n class=\"m-summary__row {{ row.class || '' }}\"\n [class.m-summary__row--type-percentage]=\"row.type === 'percentage'\"\n >\n <div class=\"m-summary__row-accent\"></div>\n <div class=\"m-summary__row-content\">\n <span class=\"m-summary__row-label\">{{ row.label | translate }}</span>\n <span class=\"m-summary__row-value\">\n @switch (row.type) {\n @case ('money') {\n {{ asNumber(row.value) | money }}\n }\n @case ('percentage') {\n {{ asNumber(row.value) | number: '1.2-2' }}%\n }\n @case ('number') {\n {{ asNumber(row.value) | number }}\n }\n @default {\n {{ row.value }}\n }\n }\n </span>\n </div>\n </div>\n }\n </div>\n }\n </div>\n\n <div slot=\"footer\" class=\"m-summary__actions\">\n @for (action of d.actions; track $index) {\n @if (action.isGroup) {\n <m-button-group\n [name]=\"action.name\"\n [one]=\"false\"\n [remote]=\"remote() ?? config()?.remote\"\n (clicked)=\"onActionClick({ ...action, name: $event?.name ?? '' })\"\n />\n } @else {\n <m-button\n [name]=\"action.name\"\n [nav]=\"action.nav\"\n [navParams]=\"action.navParams\"\n [variant]=\"action.variant\"\n [remote]=\"remote() ?? config()?.remote\"\n (clicked)=\"onActionClick(action)\"\n />\n }\n }\n </div>\n </m-one-card>\n </div>\n}\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}@keyframes summary-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;flex:1;--summary-accent: var(--m-mm);--summary-bg: var(--m-background-lite);--summary-border: var(--m-border);--summary-text: var(--m-text);--summary-text-muted: var(--m-text-secondary)}.m-summary{width:100%;height:100%;flex:1;position:relative;border-radius:12px;animation:summary-fade-in .4s ease-out;box-shadow:none}.m-summary__header{display:flex;flex-direction:column;gap:.5rem;position:relative;z-index:1}.m-summary__badges{display:flex;flex-wrap:wrap;gap:.4rem}.m-summary__badge{display:inline-flex;align-items:center;padding:.2rem .6rem;background:color-mix(in srgb,var(--m-mm) 10%,transparent);color:var(--m-mm);border-radius:4px;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border:1px solid color-mix(in srgb,var(--m-mm) 20%,transparent)}.m-summary__header-text{display:flex;flex-direction:column}.m-summary__title-group{display:flex;align-items:center;gap:.75rem}.m-summary__icon{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--m-mm) 10%,transparent);color:var(--m-mm);border-radius:8px;padding:.4rem;border:1px solid color-mix(in srgb,var(--m-mm) 20%,transparent)}.m-summary__title{font-size:1.25rem;font-weight:700;margin:0;letter-spacing:-.02em;line-height:1.2;color:var(--summary-text)}.m-summary__subtitle{font-size:.85rem;font-weight:400;color:var(--summary-text-muted);margin:.15rem 0 0}.m-summary__content{position:relative;display:flex;flex-direction:column;flex:1;padding:1rem 0}.m-summary__rows{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--summary-border);border:1px solid var(--summary-border);border-radius:8px;overflow:hidden}@media(max-width:480px){.m-summary__rows{grid-template-columns:1fr}}.m-summary__row{position:relative;background:var(--summary-bg);transition:background .2s ease;display:flex;cursor:default}.m-summary__row:hover{background:color-mix(in srgb,var(--m-mm) 4%,transparent)}.m-summary__row:hover .m-summary__row-accent{opacity:1}.m-summary__row.pos .m-summary__row-value{color:var(--m-success)}.m-summary__row.neg .m-summary__row-value{color:var(--m-error)}.m-summary__row-accent{width:4px;background:var(--summary-accent);opacity:0;transition:opacity .2s ease;position:absolute;left:0;top:0;bottom:0}.m-summary__row-content{padding:1rem;display:flex;flex-direction:column;gap:.2rem;flex:1}.m-summary__row-label{font-size:.65rem;font-weight:600;color:var(--summary-text-muted);text-transform:uppercase;letter-spacing:.05em}.m-summary__row-value{font-size:1.2rem;font-weight:700;color:var(--summary-text);font-feature-settings:\"tnum\";line-height:1}.m-summary__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;width:100%;padding-top:1rem}@media(max-width:480px){.m-summary__actions{flex-direction:column}}.m-summary__actions .m-button,.m-summary__actions .m-button-group{flex:0 1 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: CardComponent, selector: "m-card,m-one-card", inputs: ["variant", "spacing", "fullHeight"] }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: ButtonGroupComponent, selector: "m-button-group, m-one-button-group", inputs: ["buttons", "names", "exclude", "vertical", "size"], outputs: ["clicked"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: MoneyPipe, name: "money" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24458
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SummaryComponent, isStandalone: true, selector: "m-summary, m-one-summary", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClicked: "actionClicked" }, usesInheritance: true, ngImport: i0, template: "@if (effectiveData(); as d) {\n <div class=\"m-summary\">\n <m-one-card variant=\"dashboard\" spacing=\"compact\">\n <div slot=\"header\" class=\"m-summary__header\">\n @if (d.badges?.length) {\n <div class=\"m-summary__badges\">\n @for (badge of d.badges; track $index) {\n <span class=\"m-summary__badge\">{{ badge | translate }}</span>\n }\n </div>\n }\n <div class=\"m-summary__header-text\">\n <div class=\"m-summary__title-group\">\n @if (d.icon) {\n <div class=\"m-summary__icon\">\n <m-icon [name]=\"d.icon\" [remote]=\"remote() ?? config()?.remote\" />\n </div>\n }\n <m-header [level]=\"2\">{{ d.title | translate }}</m-header>\n </div>\n @if (d.subtitle) {\n <p class=\"m-summary__subtitle\">{{ d.subtitle | translate }}</p>\n }\n </div>\n </div>\n\n <div slot=\"content\" class=\"m-summary__content\">\n @if (d.rows?.length) {\n <div class=\"m-summary__rows\">\n @for (row of d.rows; track $index) {\n <div\n class=\"m-summary__row {{ row.class || '' }}\"\n [class.m-summary__row--type-percentage]=\"row.type === 'percentage'\"\n >\n <div class=\"m-summary__row-accent\"></div>\n <div class=\"m-summary__row-content\">\n <span class=\"m-summary__row-label\">{{ row.label | translate }}</span>\n <span class=\"m-summary__row-value\">\n @switch (row.type) {\n @case ('money') {\n {{ asNumber(row.value) | money }}\n }\n @case ('percentage') {\n {{ asNumber(row.value) | number: '1.2-2' }}%\n }\n @case ('number') {\n {{ asNumber(row.value) | number }}\n }\n @default {\n {{ row.value }}\n }\n }\n </span>\n </div>\n </div>\n }\n </div>\n }\n </div>\n\n <div slot=\"footer\" class=\"m-summary__actions\">\n @for (action of d.actions; track $index) {\n @if (action.isGroup) {\n <m-button-group\n [name]=\"action.name\"\n [one]=\"false\"\n [remote]=\"remote() ?? config()?.remote\"\n (clicked)=\"onActionClick({ ...action, name: $event?.name ?? '' })\"\n />\n } @else {\n <m-button\n [name]=\"action.name\"\n [nav]=\"action.nav\"\n [navParams]=\"action.navParams\"\n [variant]=\"action.variant\"\n [remote]=\"remote() ?? config()?.remote\"\n (clicked)=\"onActionClick(action)\"\n />\n }\n }\n </div>\n </m-one-card>\n </div>\n}\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}@keyframes summary-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;flex:1;--summary-accent: var(--m-mm);--summary-bg: var(--m-background-lite);--summary-border: var(--m-border);--summary-text: var(--m-text);--summary-text-muted: var(--m-text-secondary)}.m-summary{width:100%;height:100%;flex:1;position:relative;border-radius:12px;animation:summary-fade-in .4s ease-out;box-shadow:none}.m-summary__header{display:flex;flex-direction:column;gap:.5rem;position:relative;z-index:1}.m-summary__badges{display:flex;flex-wrap:wrap;gap:.4rem}.m-summary__badge{display:inline-flex;align-items:center;padding:.2rem .6rem;background:color-mix(in srgb,var(--m-mm) 10%,transparent);color:var(--m-mm);border-radius:4px;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border:1px solid color-mix(in srgb,var(--m-mm) 20%,transparent)}.m-summary__header-text{display:flex;flex-direction:column}.m-summary__title-group{display:flex;align-items:center;gap:.75rem}.m-summary__icon{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--m-mm) 10%,transparent);color:var(--m-mm);border-radius:8px;padding:.4rem;border:1px solid color-mix(in srgb,var(--m-mm) 20%,transparent)}.m-summary__title{font-size:1.25rem;font-weight:700;margin:0;letter-spacing:-.02em;line-height:1.2;color:var(--summary-text)}.m-summary__subtitle{font-size:.85rem;font-weight:400;color:var(--summary-text-muted);margin:.15rem 0 0}.m-summary__content{position:relative;display:flex;flex-direction:column;flex:1;padding:1rem 0}.m-summary__rows{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--summary-border);border:1px solid var(--summary-border);border-radius:8px;overflow:hidden}@media(max-width:480px){.m-summary__rows{grid-template-columns:1fr}}.m-summary__row{position:relative;background:var(--summary-bg);transition:background .2s ease;display:flex;cursor:default}.m-summary__row:hover{background:color-mix(in srgb,var(--m-mm) 4%,transparent)}.m-summary__row:hover .m-summary__row-accent{opacity:1}.m-summary__row.pos .m-summary__row-value{color:var(--m-success)}.m-summary__row.neg .m-summary__row-value{color:var(--m-error)}.m-summary__row-accent{width:4px;background:var(--summary-accent);opacity:0;transition:opacity .2s ease;position:absolute;left:0;top:0;bottom:0}.m-summary__row-content{padding:1rem;display:flex;flex-direction:column;gap:.2rem;flex:1}.m-summary__row-label{font-size:.65rem;font-weight:600;color:var(--summary-text-muted);text-transform:uppercase;letter-spacing:.05em}.m-summary__row-value{font-size:1.2rem;font-weight:700;color:var(--summary-text);font-feature-settings:\"tnum\";line-height:1}.m-summary__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;width:100%;padding-top:1rem}@media(max-width:480px){.m-summary__actions{flex-direction:column}}.m-summary__actions .m-button,.m-summary__actions .m-button-group{flex:0 1 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: CardComponent, selector: "m-card,m-one-card", inputs: ["variant", "spacing", "fullHeight", "padding", "href"], outputs: ["clicked"] }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: ButtonGroupComponent, selector: "m-button-group, m-one-button-group", inputs: ["buttons", "names", "exclude", "vertical", "size"], outputs: ["clicked"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: MoneyPipe, name: "money" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24241
24459
  }
24242
24460
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SummaryComponent, decorators: [{
24243
24461
  type: Component,
@@ -31639,4 +31857,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
31639
31857
  */
31640
31858
 
31641
31859
  export { DateInputComponent as $, ACCESS_DOMAINS as A, BaseInputComponent as B, COMPONENT_INPUT_REGISTRY as C, CardComponent as D, CardWrapperComponent as E, CarouselComponent as F, ChartComponent as G, CheckboxInputComponent as H, IS_DESIGN_MODE as I, ClearableInputComponent as J, ColComponent as K, LabelComponent as L, ColorPickerInputComponent as M, CommentItemComponent as N, CommentsApiService as O, CommentsComponent as P, CommentsStore as Q, ComponentInputComponent as R, ComponentStepperComponent as S, TranslatePipe as T, ConfigComponent as U, ConfirmComponent as V, ContextMenuComponent as W, CustomIconClass as X, CustomIconEditComponent as Y, DEFAULT_SIZE as Z, DashboardCardComponent as _, BaseTextInputComponent as a, NavComponent as a$, DatePickerComponent as a0, DeviceService as a1, DomService as a2, Domain as a3, DotGridComponent as a4, DragListDirective as a5, DragListItemDirective as a6, DraggableDirective as a7, DropdownInputComponent as a8, FLEX_VARIANTS as a9, LOGIN_STORE as aA, LanguageComponent as aB, LogoComponent as aC, MAG_SOCKET_EVENT as aD, MHeroColorDirective as aE, MHeroComponent as aF, MODAL_REF as aG, MODAL_STORE_REF as aH, MRefDirective as aI, MStepComponent as aJ, MURL_PARAM as aK, MURL_SEP as aL, ManifestEnrichmentService as aM, MenuComponent as aN, ModalDirective as aO, ModalRef as aP, ModalStore as aQ, MoneyPipe as aR, MultiRangeInputComponent as aS, MurlUrlSerializer as aT, NAV_DEFAULT_MURL as aU, NAV_ID_SEP as aV, NAV_MAIN_BUTTONS as aW, NAV_SEGMENT_RE as aX, NAV_STORE_REF as aY, NAV_WC_COMPONENTS as aZ, NAV_WIDGET_MAP as a_, FOLDER_PICK_LISTENER as aa, FORM_ASSET_FOLDER as ab, FileService as ac, FileUploadDirective as ad, FileUploadInputComponent as ae, FlexComponent as af, FlexItemComponent as ag, FormGroupComponent as ah, FrameComponent as ai, FreezeService as aj, GRID_BREAKPOINTS as ak, GetNavService as al, HeaderComponent$1 as am, HighlightDirective as an, HttpService as ao, ICON_SOURCE as ap, IS_SIDE_PANEL as aq, IconComponent as ar, ImgComponent as as, InputType as at, InstrumentScoreComponent as au, InterceptorObservables as av, JumbotronComponent as aw, KeyValueComponent as ax, LAYOUT_ASSET_FOLDER as ay, LOGIN_COMPONENT as az, TextOutputComponent as b, SectionFormComponent as b$, NavDetailsComponent as b0, NavHeaderComponent as b1, NavMenuComponent as b2, NavStore as b3, NavTrailComponent as b4, NothingComponent as b5, NotificationElementComponent as b6, NotificationGroupComponent as b7, NotificationPopupComponent as b8, NotificationService as b9, ReactiveElementComponent as bA, RemoteComponent as bB, RemoteLoaderService as bC, ResizeElementComponent as bD, RouteContainer as bE, RowComponent as bF, SEARCH_QUERY as bG, SEARCH_RESULTS_EVENT as bH, SECTION_ACCORDION_GROUP as bI, SECTION_FORM_CONTEXT as bJ, SHARED_ICONS as bK, SIZE_CONTEXT as bL, ScoreComponent as bM, ScrollComponent as bN, ScrollService as bO, SearchPanelComponent as bP, SearchStore as bQ, SearchUserPanelComponent as bR, SectionAccordionDirective as bS, SectionAccordionGroupDirective as bT, SectionBackComponent as bU, SectionBadgesComponent as bV, SectionButtonGroupComponent as bW, SectionCardComponent as bX, SectionComponent as bY, SectionFilterComponent as bZ, SectionFooterComponent as b_, NotificationStore as ba, NotificationType as bb, NotificationWidgetComponent as bc, ONE_ASSET_BASE_URL as bd, OPTIONS_SOURCE as be, OVERLAY_WIDGETS as bf, OneApp as bg, OptionsSourceDirective as bh, OverlayBodyComponent as bi, OverlayRef as bj, OverlayService as bk, PLATFORM_BUTTON_NAV_IDS as bl, PLATFORM_EXTENSIBLE_NAV_IDS as bm, PLATFORM_NAV_MAP as bn, PLATFORM_ROOT_CHILDREN as bo, PaginationComponent as bp, PanelComponent as bq, PercentagePipe as br, PlaygroundComponent as bs, PositionDirective as bt, PwaInstallComponent as bu, ROOT_NAV$1 as bv, RadioGroupComponent as bw, RadioInputComponent as bx, RangeInputComponent as by, RatingInputComponent as bz, ButtonComponent as c, WatermarkComponent as c$, SectionFormItemComponent as c0, SectionHeaderComponent as c1, SectionHeroComponent as c2, SectionSearchComponent as c3, SectionStepperComponent as c4, SectionTabsComponent as c5, SectionToggleComponent as c6, SectionToggleItemDirective as c7, SelectableCardInputComponent as c8, SelectorDirective as c9, ThemeDataService as cA, ThemeService as cB, ThemeStore as cC, TimeAgoPipe as cD, TimelineComponent as cE, ToggleButtonComponent as cF, ToggleInputComponent as cG, ToggleRadioInputComponent as cH, ToolTipDirective as cI, TooltipComponent as cJ, TranslateService as cK, TreeGridComponent as cL, URL_SEP as cM, USER_STORE_REF as cN, USER_TAB_MAP as cO, UlComponent as cP, UniverseComponent as cQ, UserApiService as cR, UserAvatarComponent as cS, UserComponent as cT, UserNavComponent as cU, UserSettingsComponent as cV, UserStore as cW, WC_ROUTE_CHANGED_EVENT as cX, WC_SEARCH_GROUPS as cY, WIN_USER_TAB_HOOK as cZ, WIN_USER_TAB_KEY as c_, SettingsSearchBarComponent as ca, SettingsSearchService as cb, ShapeComponent as cc, SharedStoreRegistry as cd, SidePanelDirective as ce, Size as cf, SocketStore as cg, SortComponent as ch, StatComponent as ci, StepComponent as cj, StepperComponent as ck, StepsComponent as cl, StorageService as cm, StrokeLinecap as cn, StrokeLinejoin as co, SummaryComponent as cp, SvgGeneratorComponent as cq, SvgGeneratorService as cr, SvgService as cs, TOTAL_COLUMNS as ct, TRANSLATION_SOURCE as cu, TableComponent as cv, TechnicalMeterComponent as cw, TextInputComponent as cx, TextareaInputComponent as cy, ThemeComponent as cz, APP_CONTEXT_REF as d, linkToNav as d$, WcRouterStore as d0, WrapperInputComponent as d1, anchorNavId as d2, applyColorsToElement as d3, bootstrapMagApp as d4, bootstrapPwaInstall as d5, buildWcBaseUrl as d6, calculateLuminance as d7, calculateRanks as d8, cellText as d9, getUniqueId as dA, getValue as dB, hasErrorComputed as dC, hexToRgb as dD, hslToRgb$1 as dE, initMagmoniumApp as dF, initialNotificationState as dG, initialState$2 as dH, initials as dI, injectAuthenticate as dJ, injectInstallApp as dK, injectParentSize as dL, injectScrollSticky as dM, isButtonName as dN, isCancelledComputed as dO, isExtensiblePlatformNavId as dP, isJson as dQ, isLoadingComputed as dR, isLocalhost as dS, isPlatformNavId as dT, isSize as dU, isTierPreview as dV, isUrlLocalhost as dW, isValidNavId as dX, isValidNavSegment as dY, isWebComponent as dZ, linkToId as d_, checkFilterCondition as da, childNavId as db, classListSignal as dc, coerceSize as dd, cornerEdge as de, cornerSide as df, createMap as dg, createPlatformNavMap as dh, deriveAvatarGradient as di, deriveContrastColor as dj, deriveOppositeColor as dk, derivePropertyName as dl, emailValidation as dm, evaluate as dn, evaluateBool as dp, flattenTreeGridRows as dq, formatBadgeCount as dr, fullName as ds, generateClipPath as dt, generateTransform as du, getClassList as dv, getProperty as dw, getScrollParent as dx, getTierFromPreviewPath as dy, getTreeGridRow as dz, ASSET_BASE_URL as e, toCssLength as e$, loadingActions as e0, mInterceptor as e1, manualValidation as e2, matchFieldValidation as e3, maxLengthValidation as e4, maxValidation as e5, mergePlatformNav as e6, mergeUnique as e7, mergeUniqueBy as e8, mergeUniqueWith as e9, provideOverlayWidgets as eA, providePlatformNavWidgets as eB, provideSearch as eC, provideSizeContext as eD, provideUserTabs as eE, publicGuard as eF, readFieldPatterns as eG, renderAddress as eH, requiredValidation as eI, resolveConfigAsset as eJ, resolveIconSize as eK, resolvePallet as eL, resolvePatternRules as eM, resolveSize as eN, rgbToHex as eO, rgbToHsl as eP, rowHasChildren as eQ, samePatterns as eR, segmentsToNavId as eS, setProperty as eT, setTreeGridChildren as eU, settingsWidgets as eV, shouldShowBadge as eW, splitNavId as eX, stringToColor as eY, toAttrBool as eZ, toAttrNumber as e_, minAgeValidation as ea, minLengthValidation as eb, minValidation as ec, miniMarkToHtml as ed, navIdChain as ee, navIdFor as ef, navIdSegment as eg, navIdToRoutePath as eh, navIdToSegments as ei, navToId as ej, parentNavId as ek, parseAddress as el, parseColor as em, parsePatternNames as en, patternValidation as eo, patternsValidation as ep, platformNavWidgets as eq, privateGuard as er, processImageToSvg as es, provideAppContext as et, provideMagAppConfig as eu, provideMagWcConfig as ev, provideMagWcRoutes as ew, provideModalComponents as ex, provideMurlUrlSerializer as ey, provideNavWidgets as ez, AccordionBodyDirective as f, toHostNavId as f0, toLength$1 as f1, toLocalNavId as f2, toggleTreeGridRow as f3, unfetchedPlatformNav as f4, urlValidation as f5, AccordionComponent as g, AccordionGroupComponent as h, ActionComponent as i, AnimatedGraphsComponent as j, AppCardComponent as k, AppRelationType as l, AppTileComponent as m, AssetStore as n, AssetUrlPipe as o, Assets as p, AuthActivityPageComponent as q, AuthApiService as r, AuthStore as s, AutosizeDirective as t, BadgeComponent as u, BandingComponent as v, BaseArrayInputComponent as w, BaseRootWebComponent as x, BaseWebComponent as y, ButtonGroupComponent as z };
31642
- //# sourceMappingURL=magmonium-one-magmonium-one-BSbTn-74.mjs.map
31860
+ //# sourceMappingURL=magmonium-one-magmonium-one-D4kWNQoT.mjs.map