@magmonium/one 0.2.16 → 0.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/assets/i18n/af.json +1 -0
  2. package/assets/i18n/am.json +1 -0
  3. package/assets/i18n/ar.json +1 -0
  4. package/assets/i18n/as.json +1 -0
  5. package/assets/i18n/az.json +1 -0
  6. package/assets/i18n/ba.json +1 -0
  7. package/assets/i18n/be.json +1 -0
  8. package/assets/i18n/bg.json +1 -0
  9. package/assets/i18n/bn.json +1 -0
  10. package/assets/i18n/br.json +1 -0
  11. package/assets/i18n/brx.json +1 -0
  12. package/assets/i18n/bs.json +1 -0
  13. package/assets/i18n/ca.json +1 -0
  14. package/assets/i18n/ceb.json +1 -0
  15. package/assets/i18n/cnr.json +1 -0
  16. package/assets/i18n/co.json +1 -0
  17. package/assets/i18n/cs.json +1 -0
  18. package/assets/i18n/cy.json +1 -0
  19. package/assets/i18n/da.json +1 -0
  20. package/assets/i18n/de.json +1 -0
  21. package/assets/i18n/doi.json +1 -0
  22. package/assets/i18n/el.json +1 -0
  23. package/assets/i18n/en.json +1 -0
  24. package/assets/i18n/eo.json +1 -0
  25. package/assets/i18n/es.json +1 -0
  26. package/assets/i18n/et.json +1 -0
  27. package/assets/i18n/eu.json +1 -0
  28. package/assets/i18n/fa.json +1 -0
  29. package/assets/i18n/fi.json +1 -0
  30. package/assets/i18n/fr.json +1 -0
  31. package/assets/i18n/fy.json +1 -0
  32. package/assets/i18n/ga.json +1 -0
  33. package/assets/i18n/gd.json +1 -0
  34. package/assets/i18n/gl.json +1 -0
  35. package/assets/i18n/gu.json +1 -0
  36. package/assets/i18n/ha.json +1 -0
  37. package/assets/i18n/haw.json +1 -0
  38. package/assets/i18n/he.json +1 -0
  39. package/assets/i18n/hi.json +1 -0
  40. package/assets/i18n/hmn.json +1 -0
  41. package/assets/i18n/hr.json +1 -0
  42. package/assets/i18n/hu.json +1 -0
  43. package/assets/i18n/hy.json +1 -0
  44. package/assets/i18n/id.json +1 -0
  45. package/assets/i18n/ie.json +1 -0
  46. package/assets/i18n/ig.json +1 -0
  47. package/assets/i18n/ilo.json +1 -0
  48. package/assets/i18n/is.json +1 -0
  49. package/assets/i18n/it.json +1 -0
  50. package/assets/i18n/iw.json +1 -0
  51. package/assets/i18n/ja.json +1 -0
  52. package/assets/i18n/jw.json +1 -0
  53. package/assets/i18n/ka.json +1 -0
  54. package/assets/i18n/kk.json +1 -0
  55. package/assets/i18n/km.json +1 -0
  56. package/assets/i18n/kn.json +1 -0
  57. package/assets/i18n/ko.json +1 -0
  58. package/assets/i18n/kok.json +1 -0
  59. package/assets/i18n/ks.json +1 -0
  60. package/assets/i18n/ku.json +1 -0
  61. package/assets/i18n/ky.json +1 -0
  62. package/assets/i18n/la.json +1 -0
  63. package/assets/i18n/lb.json +1 -0
  64. package/assets/i18n/lo.json +1 -0
  65. package/assets/i18n/lt.json +1 -0
  66. package/assets/i18n/lv.json +1 -0
  67. package/assets/i18n/ma.json +1 -0
  68. package/assets/i18n/mai.json +1 -0
  69. package/assets/i18n/me.json +1 -0
  70. package/assets/i18n/mg.json +1 -0
  71. package/assets/i18n/mi.json +1 -0
  72. package/assets/i18n/mk.json +1 -0
  73. package/assets/i18n/ml.json +1 -0
  74. package/assets/i18n/mn.json +1 -0
  75. package/assets/i18n/mni.json +1 -0
  76. package/assets/i18n/mr.json +1 -0
  77. package/assets/i18n/ms.json +1 -0
  78. package/assets/i18n/mt.json +1 -0
  79. package/assets/i18n/my.json +1 -0
  80. package/assets/i18n/ne.json +1 -0
  81. package/assets/i18n/nl.json +1 -0
  82. package/assets/i18n/no.json +1 -0
  83. package/assets/i18n/ny.json +1 -0
  84. package/assets/i18n/or.json +1 -0
  85. package/assets/i18n/pa.json +1 -0
  86. package/assets/i18n/pl.json +1 -0
  87. package/assets/i18n/ps.json +1 -0
  88. package/assets/i18n/pt.json +1 -0
  89. package/assets/i18n/rm.json +1 -0
  90. package/assets/i18n/ro.json +1 -0
  91. package/assets/i18n/ru.json +1 -0
  92. package/assets/i18n/sa.json +1 -0
  93. package/assets/i18n/sat.json +1 -0
  94. package/assets/i18n/sc.json +1 -0
  95. package/assets/i18n/sd.json +1 -0
  96. package/assets/i18n/si.json +1 -0
  97. package/assets/i18n/sk.json +1 -0
  98. package/assets/i18n/sl.json +1 -0
  99. package/assets/i18n/sm.json +1 -0
  100. package/assets/i18n/sn.json +1 -0
  101. package/assets/i18n/so.json +1 -0
  102. package/assets/i18n/sq.json +1 -0
  103. package/assets/i18n/sr.json +1 -0
  104. package/assets/i18n/st.json +1 -0
  105. package/assets/i18n/su.json +1 -0
  106. package/assets/i18n/sv.json +1 -0
  107. package/assets/i18n/sw.json +1 -0
  108. package/assets/i18n/ta.json +1 -0
  109. package/assets/i18n/te.json +1 -0
  110. package/assets/i18n/tg.json +1 -0
  111. package/assets/i18n/th.json +1 -0
  112. package/assets/i18n/tl.json +1 -0
  113. package/assets/i18n/tr.json +1 -0
  114. package/assets/i18n/uk.json +1 -0
  115. package/assets/i18n/ur.json +1 -0
  116. package/assets/i18n/uz.json +1 -0
  117. package/assets/i18n/vi.json +1 -0
  118. package/assets/i18n/xh.json +1 -0
  119. package/assets/i18n/yi.json +1 -0
  120. package/assets/i18n/yo.json +1 -0
  121. package/assets/i18n/zh.json +1 -0
  122. package/assets/i18n/zu.json +1 -0
  123. package/fesm2022/{magmonium-one-magmonium-one-CD8ioDZO.mjs → magmonium-one-magmonium-one-Df7XDosn.mjs} +734 -50
  124. package/fesm2022/magmonium-one-magmonium-one-Df7XDosn.mjs.map +1 -0
  125. package/fesm2022/{magmonium-one-otp-BZAX_j5g.mjs → magmonium-one-otp-DbKeX4tp.mjs} +2 -2
  126. package/fesm2022/{magmonium-one-otp-BZAX_j5g.mjs.map → magmonium-one-otp-DbKeX4tp.mjs.map} +1 -1
  127. package/fesm2022/{magmonium-one-password-CvTU1Qx-.mjs → magmonium-one-password-CQgCBVXn.mjs} +2 -2
  128. package/fesm2022/{magmonium-one-password-CvTU1Qx-.mjs.map → magmonium-one-password-CQgCBVXn.mjs.map} +1 -1
  129. package/fesm2022/{magmonium-one-toggle-C-FB-Gcs.mjs → magmonium-one-toggle-BOM0YIYl.mjs} +2 -2
  130. package/fesm2022/{magmonium-one-toggle-C-FB-Gcs.mjs.map → magmonium-one-toggle-BOM0YIYl.mjs.map} +1 -1
  131. package/fesm2022/magmonium-one.mjs +1 -1
  132. package/package.json +1 -1
  133. package/types/magmonium-one.d.ts +329 -21
  134. package/fesm2022/magmonium-one-magmonium-one-CD8ioDZO.mjs.map +0 -1
@@ -5825,7 +5825,7 @@ const toBool$1 = (value) => value === true || value + '' === 'true';
5825
5825
  // `toLength` only appends `em` to real numbers — a numeric string comes back
5826
5826
  // bare, yielding `gap: 2`. Design-editor text fields and YAML both hand over
5827
5827
  // strings, so narrow before converting.
5828
- const toGapValue = (value) => {
5828
+ const toSpacingValue = (value) => {
5829
5829
  if (typeof value !== 'string')
5830
5830
  return value;
5831
5831
  const trimmed = value.trim();
@@ -5833,6 +5833,11 @@ const toGapValue = (value) => {
5833
5833
  return value;
5834
5834
  return Number(trimmed);
5835
5835
  };
5836
+ // Spacing on the em scale, or nothing at all: an unset value drops the style
5837
+ // binding rather than writing `toLength`'s `0` over what CSS would have done.
5838
+ const resolveSpacing = (value) => value === undefined || value === null || value === ''
5839
+ ? undefined
5840
+ : toLength$1(toSpacingValue(value));
5836
5841
  class FlexComponent extends ConfigComponent {
5837
5842
  subFolder = LAYOUT_ASSET_FOLDER.flex;
5838
5843
  direction = input(...(ngDevMode ? [undefined, { debugName: "direction" }] : /* istanbul ignore next */ []));
@@ -5840,6 +5845,9 @@ class FlexComponent extends ConfigComponent {
5840
5845
  alignItems = input(...(ngDevMode ? [undefined, { debugName: "alignItems" }] : /* istanbul ignore next */ []));
5841
5846
  variant = input(...(ngDevMode ? [undefined, { debugName: "variant" }] : /* istanbul ignore next */ []));
5842
5847
  gap = input(...(ngDevMode ? [undefined, { debugName: "gap" }] : /* istanbul ignore next */ []));
5848
+ padding = input(...(ngDevMode ? [undefined, { debugName: "padding" }] : /* istanbul ignore next */ []));
5849
+ paddingX = input(...(ngDevMode ? [undefined, { debugName: "paddingX" }] : /* istanbul ignore next */ []));
5850
+ paddingY = input(...(ngDevMode ? [undefined, { debugName: "paddingY" }] : /* istanbul ignore next */ []));
5843
5851
  wrap = input(undefined, ...(ngDevMode ? [{ debugName: "wrap" }] : /* istanbul ignore next */ []));
5844
5852
  inline = input(undefined, ...(ngDevMode ? [{ debugName: "inline" }] : /* istanbul ignore next */ []));
5845
5853
  fullHeight = input(undefined, ...(ngDevMode ? [{ debugName: "fullHeight" }] : /* istanbul ignore next */ []));
@@ -5872,12 +5880,14 @@ class FlexComponent extends ConfigComponent {
5872
5880
  resolvedMaxWidth = computed(() => toCssLength(this.maxWidth() ?? this.config()?.maxWidth), ...(ngDevMode ? [{ debugName: "resolvedMaxWidth" }] : /* istanbul ignore next */ []));
5873
5881
  // A gap is spacing, not a Size — it goes through `toLength` and never touches
5874
5882
  // the Size enum, which is what stopped the two from sharing a scale (ADR 0008).
5875
- resolvedGap = computed(() => {
5876
- const gap = this.gap() ?? this.config()?.gap;
5877
- return gap === undefined || gap === null
5878
- ? undefined
5879
- : toLength$1(toGapValue(gap));
5880
- }, ...(ngDevMode ? [{ debugName: "resolvedGap" }] : /* istanbul ignore next */ []));
5883
+ resolvedGap = computed(() => resolveSpacing(this.gap() ?? this.config()?.gap), ...(ngDevMode ? [{ debugName: "resolvedGap" }] : /* istanbul ignore next */ []));
5884
+ // Padding is spacing, so it rides the same em scale as `gap`. The axis
5885
+ // inputs win over the shorthand on their own axis; both compile to
5886
+ // `padding-inline` / `padding-block` rather than the `padding` shorthand, so
5887
+ // the two bindings never race to overwrite each other.
5888
+ resolvedPadding = computed(() => this.padding() ?? this.config()?.padding, ...(ngDevMode ? [{ debugName: "resolvedPadding" }] : /* istanbul ignore next */ []));
5889
+ resolvedPaddingInline = computed(() => resolveSpacing(this.paddingX() ?? this.config()?.paddingX ?? this.resolvedPadding()), ...(ngDevMode ? [{ debugName: "resolvedPaddingInline" }] : /* istanbul ignore next */ []));
5890
+ resolvedPaddingBlock = computed(() => resolveSpacing(this.paddingY() ?? this.config()?.paddingY ?? this.resolvedPadding()), ...(ngDevMode ? [{ debugName: "resolvedPaddingBlock" }] : /* istanbul ignore next */ []));
5881
5891
  classes = computed(() => {
5882
5892
  const list = ['m-flex', `direction-${this.resolvedDirection()}`];
5883
5893
  const justify = this.resolvedJustify();
@@ -5895,7 +5905,7 @@ class FlexComponent extends ConfigComponent {
5895
5905
  return list.join(' ');
5896
5906
  }, ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
5897
5907
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FlexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5898
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: FlexComponent, isStandalone: true, selector: "m-flex", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, alignItems: { classPropertyName: "alignItems", publicName: "alignItems", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, fullHeight: { classPropertyName: "fullHeight", publicName: "fullHeight", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "class.is-design-mode": "isDesignMode", "style.gap": "resolvedGap()", "style.min-height": "resolvedMinHeight()", "style.min-width": "resolvedMinWidth()", "style.max-height": "resolvedMaxHeight()", "style.max-width": "resolvedMaxWidth()" }, classAttribute: "m-flex" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:flex;box-sizing:border-box;width:100%}:host(.is-inline){display:inline-flex;width:auto}:host(.is-full-height){height:100%}:host(.is-wrap){flex-wrap:wrap}:host(.is-design-mode){min-width:4em;min-height:4em}:host(.direction-row){flex-direction:row}:host(.direction-column){flex-direction:column}:host(.direction-row-reverse){flex-direction:row-reverse}:host(.direction-column-reverse){flex-direction:column-reverse}:host(.justify-start){justify-content:flex-start}:host(.justify-end){justify-content:flex-end}:host(.justify-center){justify-content:center}:host(.justify-between){justify-content:space-between}:host(.justify-around){justify-content:space-around}:host(.justify-evenly){justify-content:space-evenly}:host(.align-items-start){align-items:flex-start}:host(.align-items-end){align-items:flex-end}:host(.align-items-center){align-items:center}:host(.align-items-stretch){align-items:stretch}:host(.align-items-baseline){align-items:baseline}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5908
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: FlexComponent, isStandalone: true, selector: "m-flex", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, alignItems: { classPropertyName: "alignItems", publicName: "alignItems", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, paddingX: { classPropertyName: "paddingX", publicName: "paddingX", isSignal: true, isRequired: false, transformFunction: null }, paddingY: { classPropertyName: "paddingY", publicName: "paddingY", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, fullHeight: { classPropertyName: "fullHeight", publicName: "fullHeight", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "class.is-design-mode": "isDesignMode", "style.gap": "resolvedGap()", "style.padding-inline": "resolvedPaddingInline()", "style.padding-block": "resolvedPaddingBlock()", "style.min-height": "resolvedMinHeight()", "style.min-width": "resolvedMinWidth()", "style.max-height": "resolvedMaxHeight()", "style.max-width": "resolvedMaxWidth()" }, classAttribute: "m-flex" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:flex;box-sizing:border-box;width:100%}:host(.is-inline){display:inline-flex;width:auto}:host(.is-full-height){height:100%}:host(.is-wrap){flex-wrap:wrap}:host(.is-design-mode){min-width:4em;min-height:4em}:host(.direction-row){flex-direction:row}:host(.direction-column){flex-direction:column}:host(.direction-row-reverse){flex-direction:row-reverse}:host(.direction-column-reverse){flex-direction:column-reverse}:host(.justify-start){justify-content:flex-start}:host(.justify-end){justify-content:flex-end}:host(.justify-center){justify-content:center}:host(.justify-between){justify-content:space-between}:host(.justify-around){justify-content:space-around}:host(.justify-evenly){justify-content:space-evenly}:host(.align-items-start){align-items:flex-start}:host(.align-items-end){align-items:flex-end}:host(.align-items-center){align-items:center}:host(.align-items-stretch){align-items:stretch}:host(.align-items-baseline){align-items:baseline}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5899
5909
  }
5900
5910
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FlexComponent, decorators: [{
5901
5911
  type: Component,
@@ -5904,12 +5914,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
5904
5914
  '[class]': 'classes()',
5905
5915
  '[class.is-design-mode]': 'isDesignMode',
5906
5916
  '[style.gap]': 'resolvedGap()',
5917
+ '[style.padding-inline]': 'resolvedPaddingInline()',
5918
+ '[style.padding-block]': 'resolvedPaddingBlock()',
5907
5919
  '[style.min-height]': 'resolvedMinHeight()',
5908
5920
  '[style.min-width]': 'resolvedMinWidth()',
5909
5921
  '[style.max-height]': 'resolvedMaxHeight()',
5910
5922
  '[style.max-width]': 'resolvedMaxWidth()',
5911
5923
  }, styles: [":host{display:flex;box-sizing:border-box;width:100%}:host(.is-inline){display:inline-flex;width:auto}:host(.is-full-height){height:100%}:host(.is-wrap){flex-wrap:wrap}:host(.is-design-mode){min-width:4em;min-height:4em}:host(.direction-row){flex-direction:row}:host(.direction-column){flex-direction:column}:host(.direction-row-reverse){flex-direction:row-reverse}:host(.direction-column-reverse){flex-direction:column-reverse}:host(.justify-start){justify-content:flex-start}:host(.justify-end){justify-content:flex-end}:host(.justify-center){justify-content:center}:host(.justify-between){justify-content:space-between}:host(.justify-around){justify-content:space-around}:host(.justify-evenly){justify-content:space-evenly}:host(.align-items-start){align-items:flex-start}:host(.align-items-end){align-items:flex-end}:host(.align-items-center){align-items:center}:host(.align-items-stretch){align-items:stretch}:host(.align-items-baseline){align-items:baseline}\n"] }]
5912
- }], propDecorators: { direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], alignItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignItems", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], fullHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullHeight", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }] } });
5924
+ }], propDecorators: { direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], alignItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignItems", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], paddingX: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingX", required: false }] }], paddingY: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingY", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], fullHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullHeight", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }] } });
5913
5925
 
5914
5926
  /**
5915
5927
  * Names the AssetOptions list a Field chooses from (CONTEXT.md OptionsSource).
@@ -6435,7 +6447,7 @@ class SectionFormItemComponent extends ConfigComponent {
6435
6447
  break;
6436
6448
  }
6437
6449
  case InputType.TOGGLE: {
6438
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-C-FB-Gcs.mjs');
6450
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-BOM0YIYl.mjs');
6439
6451
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
6440
6452
  break;
6441
6453
  }
@@ -6447,12 +6459,12 @@ class SectionFormItemComponent extends ConfigComponent {
6447
6459
  break;
6448
6460
  }
6449
6461
  case InputType.PASSWORD: {
6450
- const { PasswordInputComponent } = await import('./magmonium-one-password-CvTU1Qx-.mjs');
6462
+ const { PasswordInputComponent } = await import('./magmonium-one-password-CQgCBVXn.mjs');
6451
6463
  this.createDynamicComponent(seq, PasswordInputComponent);
6452
6464
  break;
6453
6465
  }
6454
6466
  case InputType.OTP: {
6455
- const { OtpInputComponent } = await import('./magmonium-one-otp-BZAX_j5g.mjs');
6467
+ const { OtpInputComponent } = await import('./magmonium-one-otp-DbKeX4tp.mjs');
6456
6468
  this.createDynamicComponent(seq, OtpInputComponent);
6457
6469
  break;
6458
6470
  }
@@ -8332,7 +8344,7 @@ class SectionHeaderComponent {
8332
8344
  this.accordion()?.toggle();
8333
8345
  }
8334
8346
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8335
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionHeaderComponent, isStandalone: true, selector: "m-section-header", inputs: { sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, subLabel: { classPropertyName: "subLabel", publicName: "subLabel", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: false, transformFunction: null }, menuName: { classPropertyName: "menuName", publicName: "menuName", isSignal: true, isRequired: false, transformFunction: null }, visibilityRule: { classPropertyName: "visibilityRule", publicName: "visibilityRule", isSignal: true, isRequired: false, transformFunction: null }, disableRule: { classPropertyName: "disableRule", publicName: "disableRule", isSignal: true, isRequired: false, transformFunction: null }, extraData: { classPropertyName: "extraData", publicName: "extraData", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null }, actionButton: { classPropertyName: "actionButton", publicName: "actionButton", isSignal: true, isRequired: false, transformFunction: null }, actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClick: "actionClick", action: "action", back: "back" }, host: { properties: { "class.is-sticky-enabled": "sticky()", "class.is-sticky": "isSticky()", "class.has-menu": "hasMenu()", "class.align-left": "alignment() === \"left\"", "class.align-center": "alignment() === \"center\"", "class.align-right": "alignment() === \"right\"", "class.has-sidepanel": "sidepanel()", "class.no-border": "noBorder()", "class.spacing": "spacing()" }, classAttribute: "m-section-header" }, ngImport: i0, template: "<!-- One declaration of the row, rendered by whichever branch `spacing` picks.\n Hoisted into a template rather than written twice: an `<ng-content>` may\n appear once per selector in a component, so the duplicated copy caught\n nothing and a header projecting a title rendered it in the `spacing`\n branch alone. -->\n<ng-template #body>\n @if (accordion(); as accordionRef) {\n <div\n class=\"section-header__toggle\"\n [class.section-header__toggle--rotate]=\"toggleRotates()\"\n [class.section-header__toggle--open]=\"accordionRef.isOpen()\"\n [id]=\"accordionRef.headerId\"\n [attr.aria-expanded]=\"accordionRef.isOpen()\"\n [attr.aria-controls]=\"accordionRef.bodyId\"\n >\n <m-button\n [config]=\"{ icon: toggleIconName(), iconOnly: true, variant: 'ghost' }\"\n (clicked)=\"onToggleClick()\" />\n </div>\n }\n @if (showBack()) {\n <div class=\"section-header__back\">\n <m-button\n [config]=\"{ icon: 'arrow_back', iconOnly: true }\"\n (clicked)=\"back.emit()\" />\n </div>\n } @else if (icon(); as iconName) {\n <m-icon [name]=\"iconName\" />\n }\n <div\n class=\"section-header__title\"\n [class.section-header__title--reverse]=\"reverse()\"\n >\n <!-- The title slot is the catch-all rather than a `[label]` one: every\n header already projecting a heading writes it unselected, and a\n selector here would drop that content on the floor. What the design\n page emits \u2014 `<span label>` \u2014 is caught by it too, nothing else\n claiming the node. -->\n <ng-content />\n <!-- The written label, drawn beside the slot rather than as its\n `ng-content` fallback. A fallback renders only while *nothing* is\n projected, and the design Canvas always projects the slot span \u2014\n empty until a Control is dropped in it \u2014 so a fallback there would\n blank the label a header is still configured with. `label` answers\n instead, which no header projecting a title sets. -->\n @if (label()) {\n <m-header\n [level]=\"level()\"\n [label]=\"label()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\n }\n <ng-content select=\"[sub]\" />\n @if (subText(); as sub) {\n <span class=\"section-header__sub\">{{ sub }}</span>\n }\n </div>\n @if (actionConfig(); as action) {\n <div class=\"section-header__action\">\n <m-button [config]=\"action\" (clicked)=\"actionClick.emit()\" />\n </div>\n }\n @if (hasMenu()) {\n <div class=\"section-header__menu\">\n <m-context-menu\n [config]=\"menu()\"\n [name]=\"menuName()\"\n [visibilityRule]=\"visibilityRule()\"\n [disableRule]=\"disableRule()\"\n [extraData]=\"extraData()\"\n (action)=\"action.emit($event)\"\n />\n </div>\n }\n</ng-template>\n\n@if (spacing()) {\n <div class=\"section-header__container\" [style.max-width]=\"maxWidth()\">\n <div class=\"section-header__inner\">\n <ng-container [ngTemplateOutlet]=\"body\" />\n </div>\n </div>\n} @else {\n <ng-container [ngTemplateOutlet]=\"body\" />\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)}}:host{display:flex;align-items:center;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));border-bottom:1px solid var(--m-backdrop-border);padding:var(--section-header-py, .85rem) var(--section-px, 1rem);width:100%;grid-column:1/-1}:host(.no-border){border-bottom:none}:host(.spacing){padding:0;width:100%}.section-header__container{width:100%;margin:0 auto}.section-header__inner{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.5rem}.section-header__inner .section-header__title{flex:1;min-width:0;gap:.5rem}:host(.has-sidepanel){padding-right:50px}:host(.has-sidepanel.has-menu){padding-right:50px}:host(.spacing.has-sidepanel) .section-header__inner{padding-right:calc(1.5rem + 50px)}:host(.is-sticky-enabled){position:sticky;top:0;z-index:10}:host(.is-sticky-enabled){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.section-header__toggle{display:flex;flex-shrink:0}.section-header__toggle.section-header__toggle--rotate m-button{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.section-header__toggle.section-header__toggle--rotate.section-header__toggle--open m-button{transform:rotate(180deg)}.section-header__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}m-header{min-width:0}.section-header__title--reverse{flex-direction:column-reverse}.section-header__sub{font-size:.8rem;color:var(--m-text-secondary);line-height:1.2}:host(.align-center){--m-header-justify: center}:host(.align-right){--m-header-justify: flex-end}:host(.has-menu){padding-right:0}:host(.spacing.has-menu) .section-header__inner{padding-right:0}.section-header__back{display:flex;align-items:center;flex-shrink:0}.section-header__menu,.section-header__action{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.section-header__action+.section-header__menu{margin-left:0}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ContextMenuComponent, selector: "m-context-menu, m-one-context-menu", inputs: ["toggle", "remote", "exclude", "visibilityRule", "disableRule", "extraData", "inverted"], outputs: ["toggleChange", "action"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate", "params"], outputs: ["actionClick"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8347
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionHeaderComponent, isStandalone: true, selector: "m-section-header", inputs: { sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, subLabel: { classPropertyName: "subLabel", publicName: "subLabel", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: false, transformFunction: null }, menuName: { classPropertyName: "menuName", publicName: "menuName", isSignal: true, isRequired: false, transformFunction: null }, visibilityRule: { classPropertyName: "visibilityRule", publicName: "visibilityRule", isSignal: true, isRequired: false, transformFunction: null }, disableRule: { classPropertyName: "disableRule", publicName: "disableRule", isSignal: true, isRequired: false, transformFunction: null }, extraData: { classPropertyName: "extraData", publicName: "extraData", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null }, actionButton: { classPropertyName: "actionButton", publicName: "actionButton", isSignal: true, isRequired: false, transformFunction: null }, actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClick: "actionClick", action: "action", back: "back" }, host: { properties: { "class.is-sticky-enabled": "sticky()", "class.is-sticky": "isSticky()", "class.has-menu": "hasMenu()", "class.align-left": "alignment() === \"left\"", "class.align-center": "alignment() === \"center\"", "class.align-right": "alignment() === \"right\"", "class.has-sidepanel": "sidepanel()", "class.no-border": "noBorder()", "class.spacing": "spacing()" }, classAttribute: "m-section-header" }, ngImport: i0, template: "<!-- One declaration of the row, rendered by whichever branch `spacing` picks.\n Hoisted into a template rather than written twice: an `<ng-content>` may\n appear once per selector in a component, so the duplicated copy caught\n nothing and a header projecting a title rendered it in the `spacing`\n branch alone. -->\n<ng-template #body>\n @if (accordion(); as accordionRef) {\n <div\n class=\"section-header__toggle\"\n [class.section-header__toggle--rotate]=\"toggleRotates()\"\n [class.section-header__toggle--open]=\"accordionRef.isOpen()\"\n [id]=\"accordionRef.headerId\"\n [attr.aria-expanded]=\"accordionRef.isOpen()\"\n [attr.aria-controls]=\"accordionRef.bodyId\"\n >\n <m-button\n [config]=\"{ icon: toggleIconName(), iconOnly: true, variant: 'ghost' }\"\n (clicked)=\"onToggleClick()\" />\n </div>\n }\n @if (showBack()) {\n <div class=\"section-header__back\">\n <m-button\n [config]=\"{ icon: 'arrow_back', iconOnly: true }\"\n (clicked)=\"back.emit()\" />\n </div>\n } @else if (icon(); as iconName) {\n <m-icon [name]=\"iconName\" />\n }\n <div\n class=\"section-header__title\"\n [class.section-header__title--reverse]=\"reverse()\"\n >\n <!-- The title slot is the catch-all rather than a `[label]` one: every\n header already projecting a heading writes it unselected, and a\n selector here would drop that content on the floor. What the design\n page emits \u2014 `<span label>` \u2014 is caught by it too, nothing else\n claiming the node. -->\n <ng-content />\n <!-- The written label, drawn beside the slot rather than as its\n `ng-content` fallback. A fallback renders only while *nothing* is\n projected, and the design Canvas always projects the slot span \u2014\n empty until a Control is dropped in it \u2014 so a fallback there would\n blank the label a header is still configured with. `label` answers\n instead, which no header projecting a title sets. -->\n @if (label()) {\n <m-header\n [level]=\"level()\"\n [label]=\"label()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\n }\n <ng-content select=\"[sub]\" />\n @if (subText(); as sub) {\n <span class=\"section-header__sub\">{{ sub }}</span>\n }\n </div>\n <!-- A FilterGroup projected into the header row, selected by tag rather than\n by an attribute \u2014 the same shape a Section catches its `m-action` with.\n A header has room for one icon and not for a row, so a group landing\n here is squeezed by placement (ADR 0025); nothing here enforces that,\n the caller binding `[squeeze]` on the tag it projects. -->\n <div class=\"section-header__filters\">\n <ng-content select=\"m-section-filter-group\" />\n </div>\n @if (actionConfig(); as action) {\n <div class=\"section-header__action\">\n <m-button [config]=\"action\" (clicked)=\"actionClick.emit()\" />\n </div>\n }\n @if (hasMenu()) {\n <div class=\"section-header__menu\">\n <m-context-menu\n [config]=\"menu()\"\n [name]=\"menuName()\"\n [visibilityRule]=\"visibilityRule()\"\n [disableRule]=\"disableRule()\"\n [extraData]=\"extraData()\"\n (action)=\"action.emit($event)\"\n />\n </div>\n }\n</ng-template>\n\n@if (spacing()) {\n <div class=\"section-header__container\" [style.max-width]=\"maxWidth()\">\n <div class=\"section-header__inner\">\n <ng-container [ngTemplateOutlet]=\"body\" />\n </div>\n </div>\n} @else {\n <ng-container [ngTemplateOutlet]=\"body\" />\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)}}:host{display:flex;align-items:center;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));border-bottom:1px solid var(--m-backdrop-border);padding:var(--section-header-py, .85rem) var(--section-px, 1rem);width:100%;grid-column:1/-1}:host(.no-border){border-bottom:none}:host(.spacing){padding:0;width:100%}.section-header__container{width:100%;margin:0 auto}.section-header__inner{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.5rem}.section-header__inner .section-header__title{flex:1;min-width:0;gap:.5rem}:host(.has-sidepanel){padding-right:50px}:host(.has-sidepanel.has-menu){padding-right:50px}:host(.spacing.has-sidepanel) .section-header__inner{padding-right:calc(1.5rem + 50px)}:host(.is-sticky-enabled){position:sticky;top:0;z-index:10}:host(.is-sticky-enabled){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.section-header__toggle{display:flex;flex-shrink:0}.section-header__toggle.section-header__toggle--rotate m-button{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.section-header__toggle.section-header__toggle--rotate.section-header__toggle--open m-button{transform:rotate(180deg)}.section-header__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}m-header{min-width:0}.section-header__title--reverse{flex-direction:column-reverse}.section-header__sub{font-size:.8rem;color:var(--m-text-secondary);line-height:1.2}:host(.align-center){--m-header-justify: center}:host(.align-right){--m-header-justify: flex-end}:host(.has-menu){padding-right:0}:host(.spacing.has-menu) .section-header__inner{padding-right:0}.section-header__filters{display:contents}.section-header__filters m-section-filter-group{width:auto;flex-shrink:0;border-bottom:none}.section-header__back{display:flex;align-items:center;flex-shrink:0}.section-header__menu,.section-header__action{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.section-header__action+.section-header__menu{margin-left:0}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ContextMenuComponent, selector: "m-context-menu, m-one-context-menu", inputs: ["toggle", "remote", "exclude", "visibilityRule", "disableRule", "extraData", "inverted"], outputs: ["toggleChange", "action"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate", "params"], outputs: ["actionClick"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8336
8348
  }
8337
8349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionHeaderComponent, decorators: [{
8338
8350
  type: Component,
@@ -8353,7 +8365,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
8353
8365
  '[class.has-sidepanel]': 'sidepanel()',
8354
8366
  '[class.no-border]': 'noBorder()',
8355
8367
  '[class.spacing]': 'spacing()',
8356
- }, template: "<!-- One declaration of the row, rendered by whichever branch `spacing` picks.\n Hoisted into a template rather than written twice: an `<ng-content>` may\n appear once per selector in a component, so the duplicated copy caught\n nothing and a header projecting a title rendered it in the `spacing`\n branch alone. -->\n<ng-template #body>\n @if (accordion(); as accordionRef) {\n <div\n class=\"section-header__toggle\"\n [class.section-header__toggle--rotate]=\"toggleRotates()\"\n [class.section-header__toggle--open]=\"accordionRef.isOpen()\"\n [id]=\"accordionRef.headerId\"\n [attr.aria-expanded]=\"accordionRef.isOpen()\"\n [attr.aria-controls]=\"accordionRef.bodyId\"\n >\n <m-button\n [config]=\"{ icon: toggleIconName(), iconOnly: true, variant: 'ghost' }\"\n (clicked)=\"onToggleClick()\" />\n </div>\n }\n @if (showBack()) {\n <div class=\"section-header__back\">\n <m-button\n [config]=\"{ icon: 'arrow_back', iconOnly: true }\"\n (clicked)=\"back.emit()\" />\n </div>\n } @else if (icon(); as iconName) {\n <m-icon [name]=\"iconName\" />\n }\n <div\n class=\"section-header__title\"\n [class.section-header__title--reverse]=\"reverse()\"\n >\n <!-- The title slot is the catch-all rather than a `[label]` one: every\n header already projecting a heading writes it unselected, and a\n selector here would drop that content on the floor. What the design\n page emits \u2014 `<span label>` \u2014 is caught by it too, nothing else\n claiming the node. -->\n <ng-content />\n <!-- The written label, drawn beside the slot rather than as its\n `ng-content` fallback. A fallback renders only while *nothing* is\n projected, and the design Canvas always projects the slot span \u2014\n empty until a Control is dropped in it \u2014 so a fallback there would\n blank the label a header is still configured with. `label` answers\n instead, which no header projecting a title sets. -->\n @if (label()) {\n <m-header\n [level]=\"level()\"\n [label]=\"label()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\n }\n <ng-content select=\"[sub]\" />\n @if (subText(); as sub) {\n <span class=\"section-header__sub\">{{ sub }}</span>\n }\n </div>\n @if (actionConfig(); as action) {\n <div class=\"section-header__action\">\n <m-button [config]=\"action\" (clicked)=\"actionClick.emit()\" />\n </div>\n }\n @if (hasMenu()) {\n <div class=\"section-header__menu\">\n <m-context-menu\n [config]=\"menu()\"\n [name]=\"menuName()\"\n [visibilityRule]=\"visibilityRule()\"\n [disableRule]=\"disableRule()\"\n [extraData]=\"extraData()\"\n (action)=\"action.emit($event)\"\n />\n </div>\n }\n</ng-template>\n\n@if (spacing()) {\n <div class=\"section-header__container\" [style.max-width]=\"maxWidth()\">\n <div class=\"section-header__inner\">\n <ng-container [ngTemplateOutlet]=\"body\" />\n </div>\n </div>\n} @else {\n <ng-container [ngTemplateOutlet]=\"body\" />\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)}}:host{display:flex;align-items:center;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));border-bottom:1px solid var(--m-backdrop-border);padding:var(--section-header-py, .85rem) var(--section-px, 1rem);width:100%;grid-column:1/-1}:host(.no-border){border-bottom:none}:host(.spacing){padding:0;width:100%}.section-header__container{width:100%;margin:0 auto}.section-header__inner{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.5rem}.section-header__inner .section-header__title{flex:1;min-width:0;gap:.5rem}:host(.has-sidepanel){padding-right:50px}:host(.has-sidepanel.has-menu){padding-right:50px}:host(.spacing.has-sidepanel) .section-header__inner{padding-right:calc(1.5rem + 50px)}:host(.is-sticky-enabled){position:sticky;top:0;z-index:10}:host(.is-sticky-enabled){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.section-header__toggle{display:flex;flex-shrink:0}.section-header__toggle.section-header__toggle--rotate m-button{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.section-header__toggle.section-header__toggle--rotate.section-header__toggle--open m-button{transform:rotate(180deg)}.section-header__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}m-header{min-width:0}.section-header__title--reverse{flex-direction:column-reverse}.section-header__sub{font-size:.8rem;color:var(--m-text-secondary);line-height:1.2}:host(.align-center){--m-header-justify: center}:host(.align-right){--m-header-justify: flex-end}:host(.has-menu){padding-right:0}:host(.spacing.has-menu) .section-header__inner{padding-right:0}.section-header__back{display:flex;align-items:center;flex-shrink:0}.section-header__menu,.section-header__action{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.section-header__action+.section-header__menu{margin-left:0}\n"] }]
8368
+ }, template: "<!-- One declaration of the row, rendered by whichever branch `spacing` picks.\n Hoisted into a template rather than written twice: an `<ng-content>` may\n appear once per selector in a component, so the duplicated copy caught\n nothing and a header projecting a title rendered it in the `spacing`\n branch alone. -->\n<ng-template #body>\n @if (accordion(); as accordionRef) {\n <div\n class=\"section-header__toggle\"\n [class.section-header__toggle--rotate]=\"toggleRotates()\"\n [class.section-header__toggle--open]=\"accordionRef.isOpen()\"\n [id]=\"accordionRef.headerId\"\n [attr.aria-expanded]=\"accordionRef.isOpen()\"\n [attr.aria-controls]=\"accordionRef.bodyId\"\n >\n <m-button\n [config]=\"{ icon: toggleIconName(), iconOnly: true, variant: 'ghost' }\"\n (clicked)=\"onToggleClick()\" />\n </div>\n }\n @if (showBack()) {\n <div class=\"section-header__back\">\n <m-button\n [config]=\"{ icon: 'arrow_back', iconOnly: true }\"\n (clicked)=\"back.emit()\" />\n </div>\n } @else if (icon(); as iconName) {\n <m-icon [name]=\"iconName\" />\n }\n <div\n class=\"section-header__title\"\n [class.section-header__title--reverse]=\"reverse()\"\n >\n <!-- The title slot is the catch-all rather than a `[label]` one: every\n header already projecting a heading writes it unselected, and a\n selector here would drop that content on the floor. What the design\n page emits \u2014 `<span label>` \u2014 is caught by it too, nothing else\n claiming the node. -->\n <ng-content />\n <!-- The written label, drawn beside the slot rather than as its\n `ng-content` fallback. A fallback renders only while *nothing* is\n projected, and the design Canvas always projects the slot span \u2014\n empty until a Control is dropped in it \u2014 so a fallback there would\n blank the label a header is still configured with. `label` answers\n instead, which no header projecting a title sets. -->\n @if (label()) {\n <m-header\n [level]=\"level()\"\n [label]=\"label()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\n }\n <ng-content select=\"[sub]\" />\n @if (subText(); as sub) {\n <span class=\"section-header__sub\">{{ sub }}</span>\n }\n </div>\n <!-- A FilterGroup projected into the header row, selected by tag rather than\n by an attribute \u2014 the same shape a Section catches its `m-action` with.\n A header has room for one icon and not for a row, so a group landing\n here is squeezed by placement (ADR 0025); nothing here enforces that,\n the caller binding `[squeeze]` on the tag it projects. -->\n <div class=\"section-header__filters\">\n <ng-content select=\"m-section-filter-group\" />\n </div>\n @if (actionConfig(); as action) {\n <div class=\"section-header__action\">\n <m-button [config]=\"action\" (clicked)=\"actionClick.emit()\" />\n </div>\n }\n @if (hasMenu()) {\n <div class=\"section-header__menu\">\n <m-context-menu\n [config]=\"menu()\"\n [name]=\"menuName()\"\n [visibilityRule]=\"visibilityRule()\"\n [disableRule]=\"disableRule()\"\n [extraData]=\"extraData()\"\n (action)=\"action.emit($event)\"\n />\n </div>\n }\n</ng-template>\n\n@if (spacing()) {\n <div class=\"section-header__container\" [style.max-width]=\"maxWidth()\">\n <div class=\"section-header__inner\">\n <ng-container [ngTemplateOutlet]=\"body\" />\n </div>\n </div>\n} @else {\n <ng-container [ngTemplateOutlet]=\"body\" />\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)}}:host{display:flex;align-items:center;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));border-bottom:1px solid var(--m-backdrop-border);padding:var(--section-header-py, .85rem) var(--section-px, 1rem);width:100%;grid-column:1/-1}:host(.no-border){border-bottom:none}:host(.spacing){padding:0;width:100%}.section-header__container{width:100%;margin:0 auto}.section-header__inner{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.5rem}.section-header__inner .section-header__title{flex:1;min-width:0;gap:.5rem}:host(.has-sidepanel){padding-right:50px}:host(.has-sidepanel.has-menu){padding-right:50px}:host(.spacing.has-sidepanel) .section-header__inner{padding-right:calc(1.5rem + 50px)}:host(.is-sticky-enabled){position:sticky;top:0;z-index:10}:host(.is-sticky-enabled){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.section-header__toggle{display:flex;flex-shrink:0}.section-header__toggle.section-header__toggle--rotate m-button{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.section-header__toggle.section-header__toggle--rotate.section-header__toggle--open m-button{transform:rotate(180deg)}.section-header__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}m-header{min-width:0}.section-header__title--reverse{flex-direction:column-reverse}.section-header__sub{font-size:.8rem;color:var(--m-text-secondary);line-height:1.2}:host(.align-center){--m-header-justify: center}:host(.align-right){--m-header-justify: flex-end}:host(.has-menu){padding-right:0}:host(.spacing.has-menu) .section-header__inner{padding-right:0}.section-header__filters{display:contents}.section-header__filters m-section-filter-group{width:auto;flex-shrink:0;border-bottom:none}.section-header__back{display:flex;align-items:center;flex-shrink:0}.section-header__menu,.section-header__action{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.section-header__action+.section-header__menu{margin-left:0}\n"] }]
8357
8369
  }], propDecorators: { sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], subLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "subLabel", required: false }] }], noTranslate: [{ type: i0.Input, args: [{ isSignal: true, alias: "noTranslate", required: false }] }], params: [{ type: i0.Input, args: [{ isSignal: true, alias: "params", required: false }] }], reverse: [{ type: i0.Input, args: [{ isSignal: true, alias: "reverse", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], menu: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu", required: false }] }], menuName: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuName", required: false }] }], visibilityRule: [{ type: i0.Input, args: [{ isSignal: true, alias: "visibilityRule", required: false }] }], disableRule: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableRule", required: false }] }], extraData: [{ type: i0.Input, args: [{ isSignal: true, alias: "extraData", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], showBack: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBack", required: false }] }], actionButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionButton", required: false }] }], actionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionLabel", required: false }] }], spacing: [{ type: i0.Input, args: [{ isSignal: true, alias: "spacing", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], actionClick: [{ type: i0.Output, args: ["actionClick"] }], action: [{ type: i0.Output, args: ["action"] }], back: [{ type: i0.Output, args: ["back"] }] } });
8358
8370
 
8359
8371
  const BACK_BTN = {
@@ -9360,6 +9372,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9360
9372
  }, 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:contents}.input-wrapper{display:flex;align-items:center;background:var(--m-background);height:calc(var(--input-size, 1em) * 2);min-height:calc(var(--input-size, 1em) * 2);border-width:max(1px,var(--input-size, 1em) * .0625);border-radius:calc(var(--input-size, 1em) * .4);padding:calc(var(--input-size, 1em) * .5) calc(var(--input-size, 1em) * .5);gap:calc(var(--input-size, 1em) * .375);font-size:var(--input-size, 1em);border-width:var(--m-input-border-width, 2px);border-radius:var(--m-input-radius, 4px);height:calc(var(--input-size, 1em) * 2.25);min-height:calc(var(--input-size, 1em) * 2.25);padding-top:0;padding-bottom:0;border-color:var(--m-input-color, var(--m-mm));transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,opacity .2s ease}.input-wrapper:hover:not(:disabled){background-color:color-mix(in srgb,var(--m-input-color, var(--m-mm)) 6%,transparent)}.input-wrapper:disabled{opacity:.6;cursor:not-allowed}.input-wrapper{border-style:solid;backdrop-filter:var(--m-text-input-backdrop-filter, none);-webkit-backdrop-filter:var(--m-text-input-backdrop-filter, none);box-shadow:var(--m-text-input-shadow, none)}.input-wrapper:has(>m-one-button,>m-button,>.input-indicator,>.input-suffix,>m-icon:last-child){padding-right:0}.input-wrapper:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){border-color:var(--m-text-input-focus-border, color-mix(in srgb, var(--m-focus) 45%, transparent));box-shadow:var(--m-text-input-shadow, none)}.input-wrapper:has(.error){border-color:var(--m-error);box-shadow:none}.input-wrapper:has(.error):focus-within{border-color:var(--m-error);box-shadow:none}.input-wrapper input,.input-wrapper textarea{flex:1;border:none;outline:none;background:transparent;color:var(--m-text);font-family:inherit;font-size:inherit;padding:0}.input-wrapper input:focus,.input-wrapper textarea:focus{border-color:transparent;box-shadow:none}.input-wrapper{width:100%;padding:var(--m-input-clear-padding, var(--m-text-input-padding, .625em 1.25em ));padding-right:var(--m-input-clear-padding-right, var(--m-text-input-padding-right, 1.25em ))}.input-wrapper.has-value{padding-right:0}.input-wrapper{background:var(--m-input-clear-background, var(--m-text-input-background, var(--m-background)));border-color:var(--m-input-clear-border, var(--m-text-input-border, var(--m-input-color, var(--m-mm))));border-radius:var(--m-input-clear-radius, var(--m-text-input-radius, .4em ));transition:var(--m-input-clear-transition, var(--m-text-input-transition, border-color .2s ease, box-shadow .2s ease));min-height:var(--m-input-clear-min-height, var(--m-text-input-min-height, 2.25em ));height:var(--m-input-clear-height, var(--m-text-input-height, 2.25em ))}.input-wrapper:hover:not(:has(.error)){border-color:var(--m-input-clear-hover-border, var(--m-text-input-hover-border, color-mix(in srgb, var(--m-input-color, var(--m-mm)) 45%, rgba(0, 0, 0, .12))));background:var(--m-input-clear-hover-background, var(--m-text-input-hover-background, var(--m-input-clear-background, var(--m-text-input-background, var(--m-background)))))}.input-wrapper:focus-within{border-color:var(--m-input-clear-focus-border, var(--m-text-input-focus-border, color-mix(in srgb, var(--m-focus) 45%, transparent)));box-shadow:var(--m-input-clear-shadow, var(--m-text-input-shadow, none));background:var(--m-input-clear-focus-background, var(--m-text-input-focus-background, var(--m-input-clear-background, var(--m-text-input-background, var(--m-background)))))}.input-wrapper .m-icon{--m-icon-size: var(--m-input-clear-icon-size, var(--m-input-clear-size, 1.1em )) !important;color:var(--m-input-clear-icon-color, var(--m-text-input-icon-color, inherit));opacity:var(--m-input-clear-icon-opacity, var(--m-text-input-icon-opacity, 1));flex-shrink:0;transition:opacity .2s ease}.input-wrapper:focus-within .m-icon{opacity:var(--m-input-clear-icon-focus-opacity, var(--m-text-input-icon-focus-opacity, 1))}.input-wrapper .m-one-button{height:100%;display:inline-flex;align-items:center;justify-content:center;--m-button-size: var(--m-input-clear-size, 1rem) !important;opacity:.5;transition:opacity .2s ease}.input-wrapper .m-one-button:hover{opacity:.8}.input-wrapper input{appearance:none;border:none;outline:none;flex:1;background:transparent;color:var(--m-input-clear-color, var(--m-text-input-color, var(--m-text)));font-family:inherit;font-weight:var(--m-input-clear-font-weight, var(--m-text-input-font-weight, inherit));font-size:var(--m-input-clear-size, 1em);padding:0;caret-color:var(--m-input-clear-caret-color, var(--m-text-input-caret-color, auto))}.input-wrapper input::placeholder{font-weight:var(--m-input-clear-placeholder-weight, var(--m-text-input-placeholder-weight, inherit));opacity:var(--m-input-clear-placeholder-opacity, var(--m-text-input-placeholder-opacity, inherit))}:host(.m-input--underlined) .input-wrapper{background:transparent;border:none;border-bottom:2px solid var(--m-backdrop-border);border-radius:0;min-height:auto;height:auto;transition:border-color .3s ease}:host(.m-input--underlined) .input-wrapper:focus-within{border-bottom-color:var(--m-mm);box-shadow:none}:host(.m-input--underlined) input{font-size:var(--m-input-clear-size, 1.125rem);font-weight:var(--m-input-clear-font-weight, var(--m-text-input-font-weight, 700));color:var(--m-input-clear-color, var(--m-text-input-color, var(--m-text)))}:host(.m-input--underlined) .m-icon{--m-icon-size: var(--m-input-clear-size, 1.125rem) !important}\n"] }]
9361
9373
  }], 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 }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], inputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputId", required: false }] }] } });
9362
9374
 
9375
+ /**
9376
+ * What the results component's search input is called when nobody says
9377
+ * otherwise — the name the design editor mints on a results Screen, spelled
9378
+ * here so a hand-written caller lands on the same word (CONTEXT.md
9379
+ * SearchResultsScreen).
9380
+ */
9381
+ const SEARCH_RESULT_INPUT = 'search';
9363
9382
  class SectionSearchComponent extends BaseTextInputComponent {
9364
9383
  value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
9365
9384
  config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
@@ -9375,13 +9394,47 @@ class SectionSearchComponent extends BaseTextInputComponent {
9375
9394
  debounce = input(300, ...(ngDevMode ? [{ debugName: "debounce" }] : /* istanbul ignore next */ []));
9376
9395
  startOpen = input(false, ...(ngDevMode ? [{ debugName: "startOpen" }] : /* istanbul ignore next */ []));
9377
9396
  sticky = input(false, ...(ngDevMode ? [{ debugName: "sticky" }] : /* istanbul ignore next */ []));
9397
+ /**
9398
+ * The component drawn under the bar while there is text to search for. A
9399
+ * results body is instantiated by whoever mounts this bar, so the markup has
9400
+ * nowhere to write its selector — the class itself crosses instead, the way a
9401
+ * card body's does (ADR 0067).
9402
+ */
9403
+ element = input(...(ngDevMode ? [undefined, { debugName: "element" }] : /* istanbul ignore next */ []));
9404
+ /**
9405
+ * Which input on that component the search text lands in. Written by codegen
9406
+ * from the ScreenInput the editor minted, so a name that had to dodge a
9407
+ * collision still resolves.
9408
+ */
9409
+ resultInput = input(SEARCH_RESULT_INPUT, ...(ngDevMode ? [{ debugName: "resultInput" }] : /* istanbul ignore next */ []));
9410
+ /**
9411
+ * What the results component is handed instead of the search text — the
9412
+ * Canvas's stand-in, where there is no typing and the body being drawn is a
9413
+ * Tree rather than the emitted class. Ignored off a Canvas.
9414
+ */
9415
+ elementInputs = input(...(ngDevMode ? [undefined, { debugName: "elementInputs" }] : /* istanbul ignore next */ []));
9378
9416
  searchChange = output();
9379
9417
  isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
9418
+ /**
9419
+ * The text the results component is drawing for. The debounced value rather
9420
+ * than the live one: results are a search, and a keystroke is not — this is
9421
+ * the same text `searchChange` carries, set the moment it is emitted.
9422
+ */
9423
+ resultText = signal('', ...(ngDevMode ? [{ debugName: "resultText" }] : /* istanbul ignore next */ []));
9424
+ isDesignMode = !!inject(IS_DESIGN_MODE, { optional: true });
9380
9425
  scrollSticky = injectScrollSticky(0, 'none');
9381
9426
  isSticky = computed(() => this.sticky() && this.scrollSticky(), ...(ngDevMode ? [{ debugName: "isSticky" }] : /* istanbul ignore next */ []));
9382
9427
  sectionContext = inject(SECTION_CONTEXT, { optional: true });
9383
9428
  sidepanel = computed(() => this.sectionContext?.sidepanel() ?? false, ...(ngDevMode ? [{ debugName: "sidepanel" }] : /* istanbul ignore next */ []));
9384
9429
  noBorder = computed(() => this.sectionContext?.variant() === 'noBorder', ...(ngDevMode ? [{ debugName: "noBorder" }] : /* istanbul ignore next */ []));
9430
+ /**
9431
+ * Whether the results body is drawn. Text is what opens it, so an untouched
9432
+ * bar is a bar and nothing else. On a Canvas the text never comes — nobody
9433
+ * types into a drawing — so a named body draws as soon as it is named, the
9434
+ * stand-in stubs a card list gets for the same reason.
9435
+ */
9436
+ showResults = computed(() => !!this.element() && (this.isDesignMode || this.resultText().length > 0), ...(ngDevMode ? [{ debugName: "showResults" }] : /* istanbul ignore next */ []));
9437
+ resultInputs = computed(() => this.elementInputs() ?? { [this.resultInput()]: this.resultText() }, ...(ngDevMode ? [{ debugName: "resultInputs" }] : /* istanbul ignore next */ []));
9385
9438
  destroyRef = inject(DestroyRef);
9386
9439
  debounceTimer = null;
9387
9440
  constructor() {
@@ -9408,6 +9461,7 @@ class SectionSearchComponent extends BaseTextInputComponent {
9408
9461
  if (this.debounceTimer) {
9409
9462
  clearTimeout(this.debounceTimer);
9410
9463
  this.debounceTimer = null;
9464
+ this.resultText.set(this.value());
9411
9465
  this.searchChange.emit(this.value());
9412
9466
  }
9413
9467
  this.isOpen.set(false);
@@ -9433,12 +9487,13 @@ class SectionSearchComponent extends BaseTextInputComponent {
9433
9487
  clearTimeout(this.debounceTimer);
9434
9488
  const ms = this.debounce() ?? this.config()?.debounce ?? 300;
9435
9489
  this.debounceTimer = setTimeout(() => {
9490
+ this.resultText.set(this.value());
9436
9491
  this.searchChange.emit(this.value());
9437
9492
  this.debounceTimer = null;
9438
9493
  }, ms);
9439
9494
  };
9440
9495
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9441
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionSearchComponent, isStandalone: true, selector: "m-section-search, m-one-section-search", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null }, startOpen: { classPropertyName: "startOpen", publicName: "startOpen", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange", searchChange: "searchChange" }, host: { listeners: { "focusout": "onFocusOut($event)" }, properties: { "class.is-sticky-enabled": "sticky()", "class.is-sticky": "isSticky()", "class.has-sidepanel": "sidepanel()", "class.no-border": "noBorder()" } }, usesInheritance: true, ngImport: i0, template: `
9496
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionSearchComponent, isStandalone: true, selector: "m-section-search, m-one-section-search", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null }, startOpen: { classPropertyName: "startOpen", publicName: "startOpen", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, resultInput: { classPropertyName: "resultInput", publicName: "resultInput", isSignal: true, isRequired: false, transformFunction: null }, elementInputs: { classPropertyName: "elementInputs", publicName: "elementInputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange", searchChange: "searchChange" }, host: { listeners: { "focusout": "onFocusOut($event)" }, properties: { "class.is-sticky-enabled": "sticky()", "class.is-sticky": "isSticky()", "class.has-sidepanel": "sidepanel()", "class.has-results": "showResults()", "class.no-border": "noBorder()" } }, usesInheritance: true, ngImport: i0, template: `
9442
9497
  @if (isOpen()) {
9443
9498
  <div class="section-search__field">
9444
9499
  <m-input-clear
@@ -9467,7 +9522,20 @@ class SectionSearchComponent extends BaseTextInputComponent {
9467
9522
  </div>
9468
9523
  </div>
9469
9524
  }
9470
- `, 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", "params", "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", "params"], outputs: ["actionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9525
+ <!-- The results component, mounted per search rather than written as a tag:
9526
+ which component draws results is the caller's answer, so the markup has
9527
+ no selector to write (CONTEXT.md SearchResultsScreen). Shown only once
9528
+ there is text to search for — a bar nobody has typed into has no result
9529
+ to draw — and handed that text through the one input the editor minted
9530
+ on it. -->
9531
+ @if (showResults()) {
9532
+ <div class="section-search__results">
9533
+ <ng-container
9534
+ *ngComponentOutlet="element()!; inputs: resultInputs()"
9535
+ />
9536
+ </div>
9537
+ }
9538
+ `, 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.has-results{flex-direction:column;align-items:stretch}: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%}.section-search__results{display:block;width:100%;padding-top:.5rem}\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", "params", "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", "params"], outputs: ["actionClick"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9471
9539
  }
9472
9540
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionSearchComponent, decorators: [{
9473
9541
  type: Component,
@@ -9500,14 +9568,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9500
9568
  </div>
9501
9569
  </div>
9502
9570
  }
9503
- `, imports: [ClearableInputComponent, ButtonComponent, HeaderComponent$1], host: {
9571
+ <!-- The results component, mounted per search rather than written as a tag:
9572
+ which component draws results is the caller's answer, so the markup has
9573
+ no selector to write (CONTEXT.md SearchResultsScreen). Shown only once
9574
+ there is text to search for — a bar nobody has typed into has no result
9575
+ to draw — and handed that text through the one input the editor minted
9576
+ on it. -->
9577
+ @if (showResults()) {
9578
+ <div class="section-search__results">
9579
+ <ng-container
9580
+ *ngComponentOutlet="element()!; inputs: resultInputs()"
9581
+ />
9582
+ </div>
9583
+ }
9584
+ `, imports: [
9585
+ ClearableInputComponent,
9586
+ ButtonComponent,
9587
+ HeaderComponent$1,
9588
+ NgComponentOutlet,
9589
+ ], host: {
9504
9590
  '(focusout)': 'onFocusOut($event)',
9505
9591
  '[class.is-sticky-enabled]': 'sticky()',
9506
9592
  '[class.is-sticky]': 'isSticky()',
9507
9593
  '[class.has-sidepanel]': 'sidepanel()',
9594
+ '[class.has-results]': 'showResults()',
9508
9595
  '[class.no-border]': 'noBorder()',
9509
- }, 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"] }]
9510
- }], 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"] }] } });
9596
+ }, 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.has-results{flex-direction:column;align-items:stretch}: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%}.section-search__results{display:block;width:100%;padding-top:.5rem}\n"] }]
9597
+ }], 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 }] }], element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], resultInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "resultInput", required: false }] }], elementInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "elementInputs", required: false }] }], searchChange: [{ type: i0.Output, args: ["searchChange"] }] } });
9511
9598
 
9512
9599
  function isWithinBoundary(value, draggable, axis) {
9513
9600
  const maxVal = draggable.max?.[axis] ??
@@ -10272,17 +10359,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
10272
10359
  `, imports: [IconComponent, TranslatePipe], 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)}}.section-filter-panel{list-style:none;margin:0;padding:0;min-width:10rem;max-height:15rem;overflow-y:auto;background:var(--m-background);border:1px solid var(--m-mm);border-radius:0;animation:filter-panel-in .2s ease-out}.section-filter-panel__option{display:flex;align-items:center;gap:.5em;padding:calc(.6rem * var(--filter-size, 1)) calc(.9rem * var(--filter-size, 1));cursor:pointer;font-size:calc(.875rem * var(--filter-size, 1));color:var(--m-text);transition:all .3s cubic-bezier(.16,1,.3,1);outline:none}.section-filter-panel__option:hover:not(.is-disabled){background-color:var(--m-backdrop-standard)}.section-filter-panel__option:focus-visible:not(.is-disabled){background-color:var(--m-backdrop-standard)}.section-filter-panel__option.is-selected{color:var(--m-mm);font-weight:500}.section-filter-panel__option.is-disabled{opacity:.4;cursor:not-allowed}.section-filter-panel__check-wrap{width:1em;flex-shrink:0;display:flex;align-items:center;color:var(--m-mm)}@keyframes filter-panel-in{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}\n"] }]
10273
10360
  }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], action: [{ type: i0.Output, args: ["action"] }] } });
10274
10361
 
10362
+ const FILTER_GROUP_CONTEXT = new InjectionToken('FILTER_GROUP_CONTEXT');
10363
+
10275
10364
  class SectionFilterComponent {
10276
10365
  label = input('', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
10366
+ /**
10367
+ * The key this Filter's slice carries in a FilterGroup's `{name, value}[]`.
10368
+ * Falls back to `label`, which is a TranslationAsset key rather than an
10369
+ * identity — good enough alone, wrong to rely on in a group (ADR 0025).
10370
+ */
10371
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
10277
10372
  options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
10278
10373
  optionsAsset = input(...(ngDevMode ? [undefined, { debugName: "optionsAsset" }] : /* istanbul ignore next */ []));
10279
10374
  multiple = input(true, ...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
10280
10375
  value = model([], ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
10281
10376
  filterChange = output();
10282
10377
  isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
10378
+ /**
10379
+ * Present only inside a FilterGroup. With one, the group owns the selection
10380
+ * and this Filter reads its slice down and emits nothing of its own — one
10381
+ * click, one emit (ADR 0025). Without one, the `value` model below is the
10382
+ * source of truth and nothing about this component has changed.
10383
+ */
10384
+ group = inject(FILTER_GROUP_CONTEXT, { optional: true });
10283
10385
  sectionContext = inject(SECTION_CONTEXT, { optional: true });
10284
10386
  sidepanel = computed(() => this.sectionContext?.sidepanel() ?? false, ...(ngDevMode ? [{ debugName: "sidepanel" }] : /* istanbul ignore next */ []));
10285
- noBorder = computed(() => this.sectionContext?.variant() === 'noBorder', ...(ngDevMode ? [{ debugName: "noBorder" }] : /* istanbul ignore next */ []));
10387
+ // A group draws one border for its whole row, so a Filter inside one draws
10388
+ // none of its own.
10389
+ noBorder = computed(() => !!this.group || this.sectionContext?.variant() === 'noBorder', ...(ngDevMode ? [{ debugName: "noBorder" }] : /* istanbul ignore next */ []));
10390
+ resolvedName = computed(() => this.name() || this.label(), ...(ngDevMode ? [{ debugName: "resolvedName" }] : /* istanbul ignore next */ []));
10391
+ /** The group's slice when there is one, this Filter's own model otherwise. */
10392
+ selected = computed(() => this.group ? this.group.valueOf(this.resolvedName()) : this.value(), ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
10286
10393
  toggleConfig = computed(() => ({
10287
10394
  icon: this.isOpen() ? 'x' : 'adjust',
10288
10395
  one: true,
@@ -10291,8 +10398,6 @@ class SectionFilterComponent {
10291
10398
  }), ...(ngDevMode ? [{ debugName: "toggleConfig" }] : /* istanbul ignore next */ []));
10292
10399
  dropdownRef = viewChild(SelectorDirective, ...(ngDevMode ? [{ debugName: "dropdownRef" }] : /* istanbul ignore next */ []));
10293
10400
  assetStore = inject(AssetStore);
10294
- translateService = inject(TranslateService);
10295
- filterLabel = computed(() => this.translateService.translate('filter-name', { name: this.label() }), ...(ngDevMode ? [{ debugName: "filterLabel" }] : /* istanbul ignore next */ []));
10296
10401
  assetOptionsResource = rxResource({
10297
10402
  params: () => this.optionsAsset(),
10298
10403
  stream: ({ params }) => {
@@ -10319,14 +10424,14 @@ class SectionFilterComponent {
10319
10424
  disabled: o.disabled,
10320
10425
  }));
10321
10426
  }, ...(ngDevMode ? [{ debugName: "resolvedOptions" }] : /* istanbul ignore next */ []));
10322
- hasSelection = computed(() => this.value().length > 0, ...(ngDevMode ? [{ debugName: "hasSelection" }] : /* istanbul ignore next */ []));
10323
- selectedOptions = computed(() => this.resolvedOptions().filter((o) => this.value().includes(o.value)), ...(ngDevMode ? [{ debugName: "selectedOptions" }] : /* istanbul ignore next */ []));
10427
+ hasSelection = computed(() => this.selected().length > 0, ...(ngDevMode ? [{ debugName: "hasSelection" }] : /* istanbul ignore next */ []));
10428
+ selectedOptions = computed(() => this.resolvedOptions().filter((o) => this.selected().includes(o.value)), ...(ngDevMode ? [{ debugName: "selectedOptions" }] : /* istanbul ignore next */ []));
10324
10429
  selectorConfig = computed(() => ({
10325
10430
  component: SectionFilterPanelComponent,
10326
10431
  base: 'm-section-filter',
10327
10432
  bindings: [
10328
10433
  inputBinding('options', this.resolvedOptions),
10329
- inputBinding('selected', this.value),
10434
+ inputBinding('selected', this.selected),
10330
10435
  inputBinding('multiple', this.multiple),
10331
10436
  outputBinding('action', (opt) => this.selectOption(opt)),
10332
10437
  ],
@@ -10334,6 +10439,12 @@ class SectionFilterComponent {
10334
10439
  selectOption = (opt) => {
10335
10440
  if (opt.disabled)
10336
10441
  return;
10442
+ if (this.group) {
10443
+ this.group.toggle(this.resolvedName(), opt, this.multiple());
10444
+ if (!this.multiple())
10445
+ this.dropdownRef()?.close();
10446
+ return;
10447
+ }
10337
10448
  if (this.multiple()) {
10338
10449
  const current = this.value();
10339
10450
  const next = current.includes(opt.value)
@@ -10351,12 +10462,33 @@ class SectionFilterComponent {
10351
10462
  }
10352
10463
  };
10353
10464
  removeOption = (val) => {
10465
+ if (this.group) {
10466
+ this.group.remove(this.resolvedName(), val);
10467
+ return;
10468
+ }
10354
10469
  const next = this.value().filter((v) => v !== val);
10355
10470
  this.value.set(next);
10356
10471
  this.filterChange.emit(next);
10357
10472
  };
10473
+ constructor() {
10474
+ const group = this.group;
10475
+ if (!group)
10476
+ return;
10477
+ // Registered rather than found by a content query: a Col may sit between
10478
+ // this Filter and its group, and squeezed the group renders no bar at all
10479
+ // — the menu it draws instead is built from these registrations, which is
10480
+ // why the row is hidden rather than skipped (ADR 0025).
10481
+ const member = {
10482
+ name: this.resolvedName,
10483
+ label: this.label,
10484
+ options: this.resolvedOptions,
10485
+ multiple: this.multiple,
10486
+ };
10487
+ group.register(member);
10488
+ inject(DestroyRef).onDestroy(() => group.unregister(member));
10489
+ }
10358
10490
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10359
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionFilterComponent, isStandalone: true, selector: "m-section-filter", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionsAsset: { classPropertyName: "optionsAsset", publicName: "optionsAsset", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", filterChange: "filterChange" }, host: { properties: { "class.has-sidepanel": "sidepanel()", "class.no-border": "noBorder()" } }, viewQueries: [{ propertyName: "dropdownRef", first: true, predicate: SelectorDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
10491
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionFilterComponent, isStandalone: true, selector: "m-section-filter", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionsAsset: { classPropertyName: "optionsAsset", publicName: "optionsAsset", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", filterChange: "filterChange" }, host: { properties: { "class.has-sidepanel": "sidepanel()", "class.no-border": "noBorder()", "class.in-group": "!!group" } }, viewQueries: [{ propertyName: "dropdownRef", first: true, predicate: SelectorDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
10360
10492
  <div class="section-filter__bar">
10361
10493
  @if (hasSelection()) {
10362
10494
  <div class="section-filter__badges">
@@ -10372,7 +10504,7 @@ class SectionFilterComponent {
10372
10504
  }
10373
10505
  </div>
10374
10506
  } @else {
10375
- <m-header [level]="3" [label]="filterLabel()" />
10507
+ <m-header [level]="3" [label]="label()" />
10376
10508
  }
10377
10509
  <div
10378
10510
  class="section-filter__dropdown"
@@ -10405,7 +10537,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
10405
10537
  }
10406
10538
  </div>
10407
10539
  } @else {
10408
- <m-header [level]="3" [label]="filterLabel()" />
10540
+ <m-header [level]="3" [label]="label()" />
10409
10541
  }
10410
10542
  <div
10411
10543
  class="section-filter__dropdown"
@@ -10427,8 +10559,239 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
10427
10559
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
10428
10560
  '[class.has-sidepanel]': 'sidepanel()',
10429
10561
  '[class.no-border]': 'noBorder()',
10562
+ '[class.in-group]': '!!group',
10430
10563
  }, 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"] }]
10431
- }], 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 }] }] } });
10564
+ }], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", 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 }] }] } });
10565
+
10566
+ /**
10567
+ * A Row-like container that owns the selection for every Filter beneath it and
10568
+ * emits one aggregate whenever any of them changes (ADR 0025). Admits Cols, so
10569
+ * a Filter may sit any depth down — DI, not a content query, is what finds it.
10570
+ *
10571
+ * Squeezed, it collapses to one icon whose menu drills into each Filter in
10572
+ * turn. The children are still projected in that mode, only hidden: a Filter
10573
+ * that never instantiates never registers, and the menu is built from
10574
+ * registrations.
10575
+ */
10576
+ class SectionFilterGroupComponent {
10577
+ squeeze = input(undefined, ...(ngDevMode ? [{ debugName: "squeeze" }] : /* istanbul ignore next */ []));
10578
+ padding = input(undefined, ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
10579
+ paddingX = input(undefined, ...(ngDevMode ? [{ debugName: "paddingX" }] : /* istanbul ignore next */ []));
10580
+ paddingY = input(undefined, ...(ngDevMode ? [{ debugName: "paddingY" }] : /* istanbul ignore next */ []));
10581
+ maxWidth = input(...(ngDevMode ? [undefined, { debugName: "maxWidth" }] : /* istanbul ignore next */ []));
10582
+ align = input(undefined, ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
10583
+ config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
10584
+ /**
10585
+ * The whole group's selection, one entry per Filter that has ever been
10586
+ * touched. A list rather than an object keyed by name — the keys would come
10587
+ * from whichever Filters are dropped in (ADR 0025).
10588
+ */
10589
+ value = model([], ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
10590
+ filterChange = output();
10591
+ isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
10592
+ members = signal([], ...(ngDevMode ? [{ debugName: "members" }] : /* istanbul ignore next */ []));
10593
+ isDesignMode = !!inject(IS_DESIGN_MODE, {
10594
+ optional: true,
10595
+ });
10596
+ translateService = inject(TranslateService);
10597
+ sectionContext = inject(SECTION_CONTEXT, { optional: true });
10598
+ selectorDir = viewChild(SelectorDirective, ...(ngDevMode ? [{ debugName: "selectorDir" }] : /* istanbul ignore next */ []));
10599
+ squeezed = computed(() => this.squeeze() ?? this.config()?.squeeze ?? false, ...(ngDevMode ? [{ debugName: "squeezed" }] : /* istanbul ignore next */ []));
10600
+ resolvedPadding = computed(() => this.padding() ?? this.config()?.padding ?? false, ...(ngDevMode ? [{ debugName: "resolvedPadding" }] : /* istanbul ignore next */ []));
10601
+ resolvedPaddingX = computed(() => this.paddingX() ?? this.config()?.paddingX ?? false, ...(ngDevMode ? [{ debugName: "resolvedPaddingX" }] : /* istanbul ignore next */ []));
10602
+ resolvedPaddingY = computed(() => this.paddingY() ?? this.config()?.paddingY ?? false, ...(ngDevMode ? [{ debugName: "resolvedPaddingY" }] : /* istanbul ignore next */ []));
10603
+ resolvedAlign = computed(() => this.align() ?? this.config()?.align ?? 'left', ...(ngDevMode ? [{ debugName: "resolvedAlign" }] : /* istanbul ignore next */ []));
10604
+ resolvedMaxWidth = computed(() => this.maxWidth() ?? this.config()?.maxWidth, ...(ngDevMode ? [{ debugName: "resolvedMaxWidth" }] : /* istanbul ignore next */ []));
10605
+ noBorder = computed(() => this.sectionContext?.variant() === 'noBorder', ...(ngDevMode ? [{ debugName: "noBorder" }] : /* istanbul ignore next */ []));
10606
+ /**
10607
+ * Filters holding any selection — not the sum of selected values. A Filter's
10608
+ * own count is already on its menu row, so a sum would be the same
10609
+ * information twice (ADR 0025).
10610
+ */
10611
+ activeCount = computed(() => this.value().filter((entry) => entry.value.length > 0).length, ...(ngDevMode ? [{ debugName: "activeCount" }] : /* istanbul ignore next */ []));
10612
+ toggleConfig = computed(() => ({
10613
+ icon: this.isOpen() ? 'x' : 'adjust',
10614
+ one: true,
10615
+ variant: 'ghost',
10616
+ iconOnly: true,
10617
+ }), ...(ngDevMode ? [{ debugName: "toggleConfig" }] : /* istanbul ignore next */ []));
10618
+ countBadgeConfig = computed(() => ({
10619
+ variant: 'primary',
10620
+ position: 'top-right',
10621
+ }), ...(ngDevMode ? [{ debugName: "countBadgeConfig" }] : /* istanbul ignore next */ []));
10622
+ /**
10623
+ * One MenuItem per registered Filter, its own options nested underneath.
10624
+ * MenuComponent drills into `options` with a back button rather than
10625
+ * expanding in place, which is what makes a group of many Filters legible in
10626
+ * one icon's worth of space.
10627
+ */
10628
+ menuOptions = computed(() => {
10629
+ const rows = this.members().map((member) => {
10630
+ const name = member.name();
10631
+ const selected = this.valueOf(name);
10632
+ const label = selected.length
10633
+ ? this.translateService.translate(member.label(), {
10634
+ // Pre-resolved, so the menu's own `| translate` passes it through:
10635
+ // a key with no entry comes back as itself.
10636
+ count: String(selected.length),
10637
+ }) + ` (${selected.length})`
10638
+ : member.label();
10639
+ return {
10640
+ id: name,
10641
+ label,
10642
+ selected: selected.length > 0,
10643
+ options: [
10644
+ member.options().map((opt) => ({
10645
+ id: `${name}:${opt.value}`,
10646
+ label: opt.label,
10647
+ value: opt.value,
10648
+ disabled: opt.disabled,
10649
+ selected: selected.includes(opt.value),
10650
+ })),
10651
+ ],
10652
+ };
10653
+ });
10654
+ return rows.length ? [rows] : [];
10655
+ }, ...(ngDevMode ? [{ debugName: "menuOptions" }] : /* istanbul ignore next */ []));
10656
+ selectorConfig = computed(() => ({
10657
+ component: ContextMenuBoxComponent,
10658
+ base: 'm-section-filter-group',
10659
+ width: '260px',
10660
+ bindings: [
10661
+ inputBinding('options', this.menuOptions),
10662
+ // Bound directly rather than through ContextMenuComponent, which closes
10663
+ // its selector on every action — right for a menu of commands, wrong for
10664
+ // one of checkboxes (ADR 0025).
10665
+ outputBinding('action', (item) => this.onMenuAction(item)),
10666
+ ],
10667
+ }), ...(ngDevMode ? [{ debugName: "selectorConfig" }] : /* istanbul ignore next */ []));
10668
+ onMenuAction = (item) => {
10669
+ const separator = item.id.indexOf(':');
10670
+ if (separator < 0)
10671
+ return;
10672
+ const name = item.id.slice(0, separator);
10673
+ const member = this.members().find((m) => m.name() === name);
10674
+ if (!member)
10675
+ return;
10676
+ const option = member
10677
+ .options()
10678
+ .find((opt) => opt.value === item.id.slice(separator + 1));
10679
+ if (!option)
10680
+ return;
10681
+ this.toggle(name, option, member.multiple());
10682
+ };
10683
+ valueOf = (name) => this.value().find((entry) => entry.name === name)?.value ?? [];
10684
+ write = (name, next) => {
10685
+ const current = this.value();
10686
+ const index = current.findIndex((entry) => entry.name === name);
10687
+ const updated = index < 0
10688
+ ? [...current, { name, value: next }]
10689
+ : current.map((entry, i) => (i === index ? { name, value: next } : entry));
10690
+ this.value.set(updated);
10691
+ this.filterChange.emit(updated);
10692
+ };
10693
+ toggle = (name, option, multiple) => {
10694
+ if (option.disabled)
10695
+ return;
10696
+ const current = this.valueOf(name);
10697
+ if (multiple) {
10698
+ this.write(name, current.includes(option.value)
10699
+ ? current.filter((v) => v !== option.value)
10700
+ : [...current, option.value]);
10701
+ return;
10702
+ }
10703
+ this.write(name, current.includes(option.value) ? [] : [option.value]);
10704
+ // Single-select has nothing more to say once it has said it. Multi-select
10705
+ // stays open, which is the reason this menu is not a ContextMenuComponent.
10706
+ if (!this.squeezed())
10707
+ return;
10708
+ this.selectorDir()?.close();
10709
+ };
10710
+ context = {
10711
+ squeeze: this.squeezed,
10712
+ register: (member) => this.members.update((list) => list.includes(member) ? list : [...list, member]),
10713
+ unregister: (member) => this.members.update((list) => list.filter((m) => m !== member)),
10714
+ valueOf: this.valueOf,
10715
+ toggle: this.toggle,
10716
+ remove: (name, val) => this.write(name, this.valueOf(name).filter((v) => v !== val)),
10717
+ };
10718
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionFilterGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10719
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionFilterGroupComponent, isStandalone: true, selector: "m-section-filter-group", inputs: { squeeze: { classPropertyName: "squeeze", publicName: "squeeze", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, paddingX: { classPropertyName: "paddingX", publicName: "paddingX", isSignal: true, isRequired: false, transformFunction: null }, paddingY: { classPropertyName: "paddingY", publicName: "paddingY", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", filterChange: "filterChange" }, host: { properties: { "class.is-squeezed": "squeezed()", "class.has-padding": "resolvedPadding()", "class.has-padding-x": "resolvedPaddingX()", "class.has-padding-y": "resolvedPaddingY()", "class.align-left": "resolvedAlign() === \"left\"", "class.align-center": "resolvedAlign() === \"center\"", "class.align-right": "resolvedAlign() === \"right\"", "class.no-border": "noBorder()", "class.is-design-mode": "isDesignMode", "style.--m-filter-group-max-width": "resolvedMaxWidth()" }, classAttribute: "m-section-filter-group" }, providers: [
10720
+ {
10721
+ provide: FILTER_GROUP_CONTEXT,
10722
+ useFactory: () => inject(SectionFilterGroupComponent).context,
10723
+ },
10724
+ ], viewQueries: [{ propertyName: "selectorDir", first: true, predicate: SelectorDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
10725
+ @if (squeezed()) {
10726
+ <div
10727
+ class="section-filter-group__squeeze"
10728
+ [mSelector]="selectorConfig()"
10729
+ (opened)="isOpen.set(true)"
10730
+ (closed)="isOpen.set(false)"
10731
+ >
10732
+ <div
10733
+ class="section-filter-group__toggle"
10734
+ [class.is-active]="isOpen()"
10735
+ >
10736
+ <m-button [config]="toggleConfig()" />
10737
+ @if (activeCount(); as count) {
10738
+ <m-badge [config]="countBadgeConfig()">{{ count }}</m-badge>
10739
+ }
10740
+ </div>
10741
+ </div>
10742
+ }
10743
+ <div class="section-filter-group__row">
10744
+ <ng-content />
10745
+ </div>
10746
+ `, 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:block;width:100%;box-sizing:border-box;border-bottom:1px solid var(--m-section-filter-border, var(--m-backdrop-border))}:host(.no-border){border-bottom:none}:host(.has-padding){padding:var(--m-filter-group-p, var(--section-px, 1rem))}:host(.has-padding-x){padding-inline:var(--m-filter-group-px, var(--section-px, 1rem))}:host(.has-padding-y){padding-block:var(--m-filter-group-py, var(--section-pt, 1rem))}:host(.align-left) .section-filter-group__row{justify-content:flex-start}:host(.align-center) .section-filter-group__row{justify-content:center}:host(.align-right) .section-filter-group__row{justify-content:flex-end}:host(.is-squeezed){display:inline-flex;width:auto;border-bottom:none}:host(.is-squeezed) .section-filter-group__row{display:none}:host(.is-design-mode) .section-filter-group__row{min-width:4em;min-height:4em}.section-filter-group__row{display:flex;flex-wrap:wrap;align-items:stretch;width:100%;max-width:var(--m-filter-group-max-width, none)}.section-filter-group__row m-section-filter{flex:1;min-width:0}.section-filter-group__squeeze{display:inline-flex}.section-filter-group__toggle{position:relative;display:inline-flex;flex-shrink:0;--m-button-size: 1rem}.section-filter-group__toggle.is-active{--m-button-color: var(--m-mm)}.section-filter-group__toggle m-badge{pointer-events:none}\n"], dependencies: [{ 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: BadgeComponent, selector: "m-badge", inputs: ["config"], outputs: ["configChange"] }, { kind: "directive", type: SelectorDirective, selector: "[mSelector]", inputs: ["mSelector", "disabled"], outputs: ["opened", "closed"], exportAs: ["mSelector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10747
+ }
10748
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionFilterGroupComponent, decorators: [{
10749
+ type: Component,
10750
+ args: [{ selector: 'm-section-filter-group', template: `
10751
+ @if (squeezed()) {
10752
+ <div
10753
+ class="section-filter-group__squeeze"
10754
+ [mSelector]="selectorConfig()"
10755
+ (opened)="isOpen.set(true)"
10756
+ (closed)="isOpen.set(false)"
10757
+ >
10758
+ <div
10759
+ class="section-filter-group__toggle"
10760
+ [class.is-active]="isOpen()"
10761
+ >
10762
+ <m-button [config]="toggleConfig()" />
10763
+ @if (activeCount(); as count) {
10764
+ <m-badge [config]="countBadgeConfig()">{{ count }}</m-badge>
10765
+ }
10766
+ </div>
10767
+ </div>
10768
+ }
10769
+ <div class="section-filter-group__row">
10770
+ <ng-content />
10771
+ </div>
10772
+ `, imports: [
10773
+ ButtonComponent,
10774
+ BadgeComponent,
10775
+ SelectorDirective,
10776
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
10777
+ class: 'm-section-filter-group',
10778
+ '[class.is-squeezed]': 'squeezed()',
10779
+ '[class.has-padding]': 'resolvedPadding()',
10780
+ '[class.has-padding-x]': 'resolvedPaddingX()',
10781
+ '[class.has-padding-y]': 'resolvedPaddingY()',
10782
+ '[class.align-left]': 'resolvedAlign() === "left"',
10783
+ '[class.align-center]': 'resolvedAlign() === "center"',
10784
+ '[class.align-right]': 'resolvedAlign() === "right"',
10785
+ '[class.no-border]': 'noBorder()',
10786
+ '[class.is-design-mode]': 'isDesignMode',
10787
+ '[style.--m-filter-group-max-width]': 'resolvedMaxWidth()',
10788
+ }, providers: [
10789
+ {
10790
+ provide: FILTER_GROUP_CONTEXT,
10791
+ useFactory: () => inject(SectionFilterGroupComponent).context,
10792
+ },
10793
+ ], 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%;box-sizing:border-box;border-bottom:1px solid var(--m-section-filter-border, var(--m-backdrop-border))}:host(.no-border){border-bottom:none}:host(.has-padding){padding:var(--m-filter-group-p, var(--section-px, 1rem))}:host(.has-padding-x){padding-inline:var(--m-filter-group-px, var(--section-px, 1rem))}:host(.has-padding-y){padding-block:var(--m-filter-group-py, var(--section-pt, 1rem))}:host(.align-left) .section-filter-group__row{justify-content:flex-start}:host(.align-center) .section-filter-group__row{justify-content:center}:host(.align-right) .section-filter-group__row{justify-content:flex-end}:host(.is-squeezed){display:inline-flex;width:auto;border-bottom:none}:host(.is-squeezed) .section-filter-group__row{display:none}:host(.is-design-mode) .section-filter-group__row{min-width:4em;min-height:4em}.section-filter-group__row{display:flex;flex-wrap:wrap;align-items:stretch;width:100%;max-width:var(--m-filter-group-max-width, none)}.section-filter-group__row m-section-filter{flex:1;min-width:0}.section-filter-group__squeeze{display:inline-flex}.section-filter-group__toggle{position:relative;display:inline-flex;flex-shrink:0;--m-button-size: 1rem}.section-filter-group__toggle.is-active{--m-button-color: var(--m-mm)}.section-filter-group__toggle m-badge{pointer-events:none}\n"] }]
10794
+ }], propDecorators: { squeeze: [{ type: i0.Input, args: [{ isSignal: true, alias: "squeeze", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], paddingX: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingX", required: false }] }], paddingY: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingY", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], selectorDir: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SelectorDirective), { isSignal: true }] }] } });
10432
10795
 
10433
10796
  const BREAKPOINTS$1 = [
10434
10797
  'xs',
@@ -10818,6 +11181,291 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
10818
11181
  }, 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;justify-content:flex-end;gap:.5rem;min-height:var(--section-footer-min-height, calc(var(--section-footer-py, .5rem) * 2 + 1.25rem));border-top:1px solid var(--m-backdrop-border);padding:var(--section-footer-py, .85rem) var(--section-px, 1rem);width:100%}:host(.no-border){border-top:none}:host(.align-left){justify-content:flex-start}:host(.align-center){justify-content:center}:host(.align-right){justify-content:flex-end}:host(.is-sticky-enabled){position:sticky;bottom:0;z-index:10}:host(.is-sticky-enabled){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}\n"] }]
10819
11182
  }], propDecorators: { sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
10820
11183
 
11184
+ const DEFAULT_PER_PAGE_OPTIONS = [10, 25, 50, 100];
11185
+ // What an unbound `total` stands in for on the Canvas. A `total` is a
11186
+ // DataBinding, and design mode has no data behind one, so the honest value
11187
+ // there is zero — which is exactly the value that renders no band, leaving the
11188
+ // author a Control they cannot see or select. A sample keeps it visible.
11189
+ const DESIGN_MODE_SAMPLE_TOTAL = 100;
11190
+ /**
11191
+ * The band that windows a Section's collection: a page-size select, the range
11192
+ * it is showing, and one step back or forward. Distinct from Pagination, which
11193
+ * draws a strip of page numbers and owns a `page` — this one speaks `offset`
11194
+ * and `perPage`, the two an api call actually takes.
11195
+ *
11196
+ * Every rule it follows is conditional, and the reasons are in ADR 0097: it
11197
+ * never emits off an input change, it renders nothing without a `total`, and
11198
+ * `hideOnSinglePage` takes the whole band rather than the arrows alone.
11199
+ */
11200
+ class SectionPaginationComponent {
11201
+ /**
11202
+ * How many rows the collection holds, not how many are on screen. Unset or
11203
+ * zero renders no band at all: a pager under a list that has not loaded is
11204
+ * layout the reader pays for twice.
11205
+ */
11206
+ total = input(undefined, ...(ngDevMode ? [{ debugName: "total" }] : /* istanbul ignore next */ []));
11207
+ /**
11208
+ * The page sizes offered, authored as one scalar — `"10,25,50,100"` — so the
11209
+ * Control stays folderless and the whole list fits one inspector field.
11210
+ * Entries that are not positive numbers drop rather than throw.
11211
+ */
11212
+ perPageOptions = input(undefined, ...(ngDevMode ? [{ debugName: "perPageOptions" }] : /* istanbul ignore next */ []));
11213
+ align = input('right', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
11214
+ showPerPage = input(true, ...(ngDevMode ? [{ debugName: "showPerPage" }] : /* istanbul ignore next */ []));
11215
+ /** Hides the band outright once everything fits one page. */
11216
+ hideOnSinglePage = input(true, ...(ngDevMode ? [{ debugName: "hideOnSinglePage" }] : /* istanbul ignore next */ []));
11217
+ /**
11218
+ * Fires the window once on first render. Off by default — a Screen that
11219
+ * already makes its own initial call would make two, and the second is
11220
+ * invisible until someone reads the network tab.
11221
+ */
11222
+ emitOnInit = input(false, ...(ngDevMode ? [{ debugName: "emitOnInit" }] : /* istanbul ignore next */ []));
11223
+ sticky = input(false, ...(ngDevMode ? [{ debugName: "sticky" }] : /* istanbul ignore next */ []));
11224
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
11225
+ offset = model(0, ...(ngDevMode ? [{ debugName: "offset" }] : /* istanbul ignore next */ []));
11226
+ perPage = model(DEFAULT_PER_PAGE_OPTIONS[0], ...(ngDevMode ? [{ debugName: "perPage" }] : /* istanbul ignore next */ []));
11227
+ paginationChange = output();
11228
+ isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
11229
+ isDesignMode = !!inject(IS_DESIGN_MODE, {
11230
+ optional: true,
11231
+ });
11232
+ selectorDir = viewChild(SelectorDirective, ...(ngDevMode ? [{ debugName: "selectorDir" }] : /* istanbul ignore next */ []));
11233
+ scrollSticky = injectScrollSticky(0, 'none');
11234
+ sectionContext = inject(SECTION_CONTEXT, { optional: true });
11235
+ isSticky = computed(() => this.sticky() && this.scrollSticky(), ...(ngDevMode ? [{ debugName: "isSticky" }] : /* istanbul ignore next */ []));
11236
+ noBorder = computed(() => this.sectionContext?.variant() === 'noBorder', ...(ngDevMode ? [{ debugName: "noBorder" }] : /* istanbul ignore next */ []));
11237
+ options = computed(() => {
11238
+ const authored = (this.perPageOptions() ?? '')
11239
+ .split(',')
11240
+ .map((entry) => Number(entry.trim()))
11241
+ .filter((size) => Number.isFinite(size) && size > 0);
11242
+ // Order is the author's, so a list reading `25,10,50` stays that way; only
11243
+ // repeats go, a select offering the same size twice being a select bug.
11244
+ const deduped = [...new Set(authored)];
11245
+ return deduped.length ? deduped : DEFAULT_PER_PAGE_OPTIONS;
11246
+ }, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
11247
+ /**
11248
+ * The page size actually in force. A `perPage` outside the offered list —
11249
+ * the default 10 under a list of `20,40`, say — falls to the first option
11250
+ * rather than leaving the select showing a size it cannot select.
11251
+ */
11252
+ resolvedPerPage = computed(() => {
11253
+ const opts = this.options();
11254
+ const current = this.perPage();
11255
+ return opts.includes(current) ? current : opts[0];
11256
+ }, ...(ngDevMode ? [{ debugName: "resolvedPerPage" }] : /* istanbul ignore next */ []));
11257
+ resolvedTotal = computed(() => {
11258
+ const bound = this.total();
11259
+ if (bound !== undefined && bound !== null)
11260
+ return bound;
11261
+ return this.isDesignMode ? DESIGN_MODE_SAMPLE_TOTAL : 0;
11262
+ }, ...(ngDevMode ? [{ debugName: "resolvedTotal" }] : /* istanbul ignore next */ []));
11263
+ pageCount = computed(() => Math.max(1, Math.ceil(this.resolvedTotal() / this.resolvedPerPage())), ...(ngDevMode ? [{ debugName: "pageCount" }] : /* istanbul ignore next */ []));
11264
+ /**
11265
+ * Display-only. A `total` that shrinks under a live offset — a filter landing
11266
+ * — draws the last page instead of an empty one, and writes nothing back:
11267
+ * an emit caused by an input change is how a Section fetches in a loop
11268
+ * (ADR 0097).
11269
+ */
11270
+ clampedOffset = computed(() => {
11271
+ const max = (this.pageCount() - 1) * this.resolvedPerPage();
11272
+ return Math.min(Math.max(0, this.offset()), max);
11273
+ }, ...(ngDevMode ? [{ debugName: "clampedOffset" }] : /* istanbul ignore next */ []));
11274
+ rangeStart = computed(() => this.resolvedTotal() ? this.clampedOffset() + 1 : 0, ...(ngDevMode ? [{ debugName: "rangeStart" }] : /* istanbul ignore next */ []));
11275
+ rangeEnd = computed(() => Math.min(this.clampedOffset() + this.resolvedPerPage(), this.resolvedTotal()), ...(ngDevMode ? [{ debugName: "rangeEnd" }] : /* istanbul ignore next */ []));
11276
+ singlePage = computed(() => this.resolvedTotal() <= this.resolvedPerPage(), ...(ngDevMode ? [{ debugName: "singlePage" }] : /* istanbul ignore next */ []));
11277
+ visible = computed(() => {
11278
+ if (this.resolvedTotal() < 1)
11279
+ return false;
11280
+ return !(this.hideOnSinglePage() && this.singlePage());
11281
+ }, ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
11282
+ canPrev = computed(() => !this.disabled() && this.clampedOffset() > 0, ...(ngDevMode ? [{ debugName: "canPrev" }] : /* istanbul ignore next */ []));
11283
+ canNext = computed(() => !this.disabled() &&
11284
+ this.clampedOffset() + this.resolvedPerPage() < this.resolvedTotal(), ...(ngDevMode ? [{ debugName: "canNext" }] : /* istanbul ignore next */ []));
11285
+ prevConfig = computed(() => ({
11286
+ icon: 'chevron-left',
11287
+ one: true,
11288
+ variant: 'ghost',
11289
+ iconOnly: true,
11290
+ label: 'previous',
11291
+ disabled: !this.canPrev(),
11292
+ }), ...(ngDevMode ? [{ debugName: "prevConfig" }] : /* istanbul ignore next */ []));
11293
+ nextConfig = computed(() => ({
11294
+ icon: 'chevron-right',
11295
+ one: true,
11296
+ variant: 'ghost',
11297
+ iconOnly: true,
11298
+ label: 'next',
11299
+ disabled: !this.canNext(),
11300
+ }), ...(ngDevMode ? [{ debugName: "nextConfig" }] : /* istanbul ignore next */ []));
11301
+ // The size is a figure, not a TranslationAsset key — `noTranslate` or the
11302
+ // pipe resolves `25` as a key and renders nothing.
11303
+ perPageTriggerConfig = computed(() => ({
11304
+ label: String(this.resolvedPerPage()),
11305
+ noTranslate: true,
11306
+ one: true,
11307
+ variant: 'ghost',
11308
+ icon: this.isOpen() ? 'chevron-up' : 'chevron-down',
11309
+ isRightIcon: true,
11310
+ disabled: this.disabled(),
11311
+ }), ...(ngDevMode ? [{ debugName: "perPageTriggerConfig" }] : /* istanbul ignore next */ []));
11312
+ menuOptions = computed(() => [
11313
+ this.options().map((size) => ({
11314
+ id: String(size),
11315
+ label: String(size),
11316
+ value: size,
11317
+ selected: size === this.resolvedPerPage(),
11318
+ })),
11319
+ ], ...(ngDevMode ? [{ debugName: "menuOptions" }] : /* istanbul ignore next */ []));
11320
+ selectorConfig = computed(() => ({
11321
+ component: ContextMenuBoxComponent,
11322
+ base: 'm-section-pagination',
11323
+ width: '120px',
11324
+ toggle: true,
11325
+ bindings: [
11326
+ inputBinding('options', this.menuOptions),
11327
+ outputBinding('action', (item) => this.selectPerPage(Number(item.id))),
11328
+ ],
11329
+ }), ...(ngDevMode ? [{ debugName: "selectorConfig" }] : /* istanbul ignore next */ []));
11330
+ constructor() {
11331
+ afterNextRender(() => {
11332
+ if (!this.emitOnInit())
11333
+ return;
11334
+ this.paginationChange.emit({
11335
+ offset: this.clampedOffset(),
11336
+ perPage: this.resolvedPerPage(),
11337
+ });
11338
+ });
11339
+ }
11340
+ write = (offset, perPage) => {
11341
+ this.offset.set(offset);
11342
+ this.perPage.set(perPage);
11343
+ this.paginationChange.emit({ offset, perPage });
11344
+ };
11345
+ prev = () => {
11346
+ if (!this.canPrev())
11347
+ return;
11348
+ this.write(Math.max(0, this.clampedOffset() - this.resolvedPerPage()), this.resolvedPerPage());
11349
+ };
11350
+ next = () => {
11351
+ if (!this.canNext())
11352
+ return;
11353
+ this.write(this.clampedOffset() + this.resolvedPerPage(), this.resolvedPerPage());
11354
+ };
11355
+ /**
11356
+ * A new page size restarts the window. Keeping the offset would land a reader
11357
+ * on page 7 of a list that now has three.
11358
+ */
11359
+ selectPerPage = (size) => {
11360
+ this.selectorDir()?.close();
11361
+ if (!Number.isFinite(size) || size === this.resolvedPerPage())
11362
+ return;
11363
+ if (!this.options().includes(size))
11364
+ return;
11365
+ this.write(0, size);
11366
+ };
11367
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11368
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionPaginationComponent, isStandalone: true, selector: "m-section-pagination", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, perPageOptions: { classPropertyName: "perPageOptions", publicName: "perPageOptions", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, showPerPage: { classPropertyName: "showPerPage", publicName: "showPerPage", isSignal: true, isRequired: false, transformFunction: null }, hideOnSinglePage: { classPropertyName: "hideOnSinglePage", publicName: "hideOnSinglePage", isSignal: true, isRequired: false, transformFunction: null }, emitOnInit: { classPropertyName: "emitOnInit", publicName: "emitOnInit", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { offset: "offsetChange", perPage: "perPageChange", paginationChange: "paginationChange" }, host: { properties: { "class.is-hidden": "!visible()", "class.is-sticky-enabled": "sticky()", "class.is-sticky": "isSticky()", "class.align-left": "align() === \"left\"", "class.align-center": "align() === \"center\"", "class.align-right": "align() === \"right\"", "class.no-border": "noBorder()", "class.is-design-mode": "isDesignMode" }, classAttribute: "m-section-pagination" }, viewQueries: [{ propertyName: "selectorDir", first: true, predicate: SelectorDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
11369
+ @if (visible()) {
11370
+ <div class="m-section-pagination__inner">
11371
+ @if (showPerPage()) {
11372
+ <div class="m-section-pagination__per-page">
11373
+ <span class="m-section-pagination__per-page-label">
11374
+ {{ 'items-per-page' | translate }}
11375
+ </span>
11376
+ <div
11377
+ class="m-section-pagination__per-page-select"
11378
+ [mSelector]="selectorConfig()"
11379
+ (opened)="isOpen.set(true)"
11380
+ (closed)="isOpen.set(false)"
11381
+ >
11382
+ <m-one-button [config]="perPageTriggerConfig()" />
11383
+ </div>
11384
+ </div>
11385
+ }
11386
+
11387
+ <span class="m-section-pagination__range">
11388
+ {{
11389
+ 'showing-range'
11390
+ | translate
11391
+ : {
11392
+ start: rangeStart().toString(),
11393
+ end: rangeEnd().toString(),
11394
+ total: resolvedTotal().toString(),
11395
+ }
11396
+ }}
11397
+ </span>
11398
+
11399
+ <!-- m-one-button, the spelling Pagination uses for the same pair.
11400
+ A button-group would need an asset naming two arrows whose
11401
+ disabled state changes on every step, which a group cannot say —
11402
+ and two arrows are a pager's mechanism rather than a cluster of
11403
+ actions (ADR 0009). -->
11404
+ <div class="m-section-pagination__nav">
11405
+ <m-one-button [config]="prevConfig()" (clicked)="prev()" />
11406
+ <m-one-button [config]="nextConfig()" (clicked)="next()" />
11407
+ </div>
11408
+ </div>
11409
+ }
11410
+ `, 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;gap:.5rem;min-height:var(--section-pagination-min-height, calc(var(--section-pagination-py, .5rem) * 2 + 1.25rem));border-top:1px solid var(--m-backdrop-border);padding:var(--section-pagination-py, .85rem) var(--section-px, 1rem);width:100%;box-sizing:border-box}:host(.is-hidden){display:none}:host(.no-border){border-top:none}:host(.is-sticky-enabled){position:sticky;bottom: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%)}.m-section-pagination__inner{display:flex;align-items:center;gap:1rem;width:100%}:host(.align-left) .m-section-pagination__inner{justify-content:flex-start}:host(.align-center) .m-section-pagination__inner{justify-content:center}:host(.align-right) .m-section-pagination__inner{justify-content:flex-end}.m-section-pagination__per-page{display:flex;align-items:center;gap:.4rem}.m-section-pagination__per-page-label,.m-section-pagination__range{color:var(--m-text-secondary);font-size:.85rem;white-space:nowrap}.m-section-pagination__nav{display:flex;align-items:center;gap:.25rem}\n"], dependencies: [{ 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: SelectorDirective, selector: "[mSelector]", inputs: ["mSelector", "disabled"], outputs: ["opened", "closed"], exportAs: ["mSelector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11411
+ }
11412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionPaginationComponent, decorators: [{
11413
+ type: Component,
11414
+ args: [{ selector: 'm-section-pagination', imports: [ButtonComponent, SelectorDirective, TranslatePipe], template: `
11415
+ @if (visible()) {
11416
+ <div class="m-section-pagination__inner">
11417
+ @if (showPerPage()) {
11418
+ <div class="m-section-pagination__per-page">
11419
+ <span class="m-section-pagination__per-page-label">
11420
+ {{ 'items-per-page' | translate }}
11421
+ </span>
11422
+ <div
11423
+ class="m-section-pagination__per-page-select"
11424
+ [mSelector]="selectorConfig()"
11425
+ (opened)="isOpen.set(true)"
11426
+ (closed)="isOpen.set(false)"
11427
+ >
11428
+ <m-one-button [config]="perPageTriggerConfig()" />
11429
+ </div>
11430
+ </div>
11431
+ }
11432
+
11433
+ <span class="m-section-pagination__range">
11434
+ {{
11435
+ 'showing-range'
11436
+ | translate
11437
+ : {
11438
+ start: rangeStart().toString(),
11439
+ end: rangeEnd().toString(),
11440
+ total: resolvedTotal().toString(),
11441
+ }
11442
+ }}
11443
+ </span>
11444
+
11445
+ <!-- m-one-button, the spelling Pagination uses for the same pair.
11446
+ A button-group would need an asset naming two arrows whose
11447
+ disabled state changes on every step, which a group cannot say —
11448
+ and two arrows are a pager's mechanism rather than a cluster of
11449
+ actions (ADR 0009). -->
11450
+ <div class="m-section-pagination__nav">
11451
+ <m-one-button [config]="prevConfig()" (clicked)="prev()" />
11452
+ <m-one-button [config]="nextConfig()" (clicked)="next()" />
11453
+ </div>
11454
+ </div>
11455
+ }
11456
+ `, changeDetection: ChangeDetectionStrategy.OnPush, host: {
11457
+ class: 'm-section-pagination',
11458
+ '[class.is-hidden]': '!visible()',
11459
+ '[class.is-sticky-enabled]': 'sticky()',
11460
+ '[class.is-sticky]': 'isSticky()',
11461
+ '[class.align-left]': 'align() === "left"',
11462
+ '[class.align-center]': 'align() === "center"',
11463
+ '[class.align-right]': 'align() === "right"',
11464
+ '[class.no-border]': 'noBorder()',
11465
+ '[class.is-design-mode]': 'isDesignMode',
11466
+ }, 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;gap:.5rem;min-height:var(--section-pagination-min-height, calc(var(--section-pagination-py, .5rem) * 2 + 1.25rem));border-top:1px solid var(--m-backdrop-border);padding:var(--section-pagination-py, .85rem) var(--section-px, 1rem);width:100%;box-sizing:border-box}:host(.is-hidden){display:none}:host(.no-border){border-top:none}:host(.is-sticky-enabled){position:sticky;bottom: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%)}.m-section-pagination__inner{display:flex;align-items:center;gap:1rem;width:100%}:host(.align-left) .m-section-pagination__inner{justify-content:flex-start}:host(.align-center) .m-section-pagination__inner{justify-content:center}:host(.align-right) .m-section-pagination__inner{justify-content:flex-end}.m-section-pagination__per-page{display:flex;align-items:center;gap:.4rem}.m-section-pagination__per-page-label,.m-section-pagination__range{color:var(--m-text-secondary);font-size:.85rem;white-space:nowrap}.m-section-pagination__nav{display:flex;align-items:center;gap:.25rem}\n"] }]
11467
+ }], ctorParameters: () => [], propDecorators: { total: [{ type: i0.Input, args: [{ isSignal: true, alias: "total", required: false }] }], perPageOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "perPageOptions", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], showPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPerPage", required: false }] }], hideOnSinglePage: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideOnSinglePage", required: false }] }], emitOnInit: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitOnInit", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "offset", required: false }] }, { type: i0.Output, args: ["offsetChange"] }], perPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "perPage", required: false }] }, { type: i0.Output, args: ["perPageChange"] }], paginationChange: [{ type: i0.Output, args: ["paginationChange"] }], selectorDir: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SelectorDirective), { isSignal: true }] }] } });
11468
+
10821
11469
  function getValue(obj, key) {
10822
11470
  return obj[key];
10823
11471
  }
@@ -12275,17 +12923,23 @@ class SectionComponent extends ConfigComponent {
12275
12923
  back = contentChild(SectionBackComponent, ...(ngDevMode ? [{ debugName: "back" }] : /* istanbul ignore next */ []));
12276
12924
  search = contentChild(SectionSearchComponent, ...(ngDevMode ? [{ debugName: "search" }] : /* istanbul ignore next */ []));
12277
12925
  filter = contentChild(SectionFilterComponent, ...(ngDevMode ? [{ debugName: "filter" }] : /* istanbul ignore next */ []));
12926
+ filterGroup = contentChild(SectionFilterGroupComponent, ...(ngDevMode ? [{ debugName: "filterGroup" }] : /* istanbul ignore next */ []));
12278
12927
  stepper = contentChild(SectionStepperComponent, ...(ngDevMode ? [{ debugName: "stepper" }] : /* istanbul ignore next */ []));
12279
12928
  hero = contentChild(SectionHeroComponent, ...(ngDevMode ? [{ debugName: "hero" }] : /* istanbul ignore next */ []));
12280
12929
  jumbotron = contentChild(JumbotronComponent, ...(ngDevMode ? [{ debugName: "jumbotron" }] : /* istanbul ignore next */ []));
12281
12930
  carousel = contentChild(CarouselComponent, ...(ngDevMode ? [{ debugName: "carousel" }] : /* istanbul ignore next */ []));
12282
12931
  footer = contentChild(SectionFooterComponent, ...(ngDevMode ? [{ debugName: "footer" }] : /* istanbul ignore next */ []));
12932
+ // Above the footer rather than inside it: a Section may carry both, and a
12933
+ // pager competing with actions for one row is neither (ADR 0097).
12934
+ pagination = contentChild(SectionPaginationComponent, ...(ngDevMode ? [{ debugName: "pagination" }] : /* istanbul ignore next */ []));
12283
12935
  variant = input(undefined, ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
12284
12936
  maxWidth = input(...(ngDevMode ? [undefined, { debugName: "maxWidth" }] : /* istanbul ignore next */ []));
12285
12937
  heightMode = input(undefined, ...(ngDevMode ? [{ debugName: "heightMode" }] : /* istanbul ignore next */ []));
12286
12938
  maxHeight = input(...(ngDevMode ? [undefined, { debugName: "maxHeight" }] : /* istanbul ignore next */ []));
12287
12939
  height = input(...(ngDevMode ? [undefined, { debugName: "height" }] : /* istanbul ignore next */ []));
12288
12940
  align = input(undefined, ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
12941
+ alignX = input(undefined, ...(ngDevMode ? [{ debugName: "alignX" }] : /* istanbul ignore next */ []));
12942
+ alignY = input(undefined, ...(ngDevMode ? [{ debugName: "alignY" }] : /* istanbul ignore next */ []));
12289
12943
  // Widened beyond `Size` so a plain attribute (`size="lg"`) type-checks in a
12290
12944
  // template — enums are nominal, but `coerceSize` already validates and
12291
12945
  // falls back to the default for anything that isn't one of the three.
@@ -12296,6 +12950,8 @@ class SectionComponent extends ConfigComponent {
12296
12950
  resolvedSize = computed(() => coerceSize(this.size(), this.config()?.size, this.parentSize?.size()), ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
12297
12951
  sizeLength = computed(() => resolveSize(this.resolvedSize()), ...(ngDevMode ? [{ debugName: "sizeLength" }] : /* istanbul ignore next */ []));
12298
12952
  resolvedAlign = computed(() => this.align() ?? this.config()?.align ?? 'left', ...(ngDevMode ? [{ debugName: "resolvedAlign" }] : /* istanbul ignore next */ []));
12953
+ resolvedAlignX = computed(() => this.alignX() ?? this.config()?.alignX, ...(ngDevMode ? [{ debugName: "resolvedAlignX" }] : /* istanbul ignore next */ []));
12954
+ resolvedAlignY = computed(() => this.alignY() ?? this.config()?.alignY, ...(ngDevMode ? [{ debugName: "resolvedAlignY" }] : /* istanbul ignore next */ []));
12299
12955
  resolvedVariant = computed(() => this.variant() ?? this.config()?.variant ?? undefined, ...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
12300
12956
  resolvedMaxWidth = computed(() => this.maxWidth() ?? this.config()?.maxWidth, ...(ngDevMode ? [{ debugName: "resolvedMaxWidth" }] : /* istanbul ignore next */ []));
12301
12957
  resolvedHeightMode = computed(() => this.heightMode() ?? this.config()?.heightMode, ...(ngDevMode ? [{ debugName: "resolvedHeightMode" }] : /* istanbul ignore next */ []));
@@ -12348,7 +13004,7 @@ class SectionComponent extends ConfigComponent {
12348
13004
  });
12349
13005
  }
12350
13006
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12351
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionComponent, isStandalone: true, selector: "m-section", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, heightMode: { classPropertyName: "heightMode", publicName: "heightMode", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inView: "inView" }, host: { properties: { "class.is-full-height": "isFullHeight()", "class.has-sidepanel": "resolvedSidepanel()", "class.has-max-height": "!!cssMaxHeight()", "class.no-border": "resolvedVariant() === \"noBorder\"", "class.is-with-border": "resolvedVariant() === \"withBorder\"", "class.is-sandwich-border": "resolvedVariant() === \"sandwichBorder\"", "class.align-left": "resolvedAlign() === \"left\"", "class.align-right": "resolvedAlign() === \"right\"", "class.align-center": "resolvedAlign() === \"center\"", "style.font-size": "sizeLength()", "style.--input-size": "sizeLength()", "style.--m-section-align": "resolvedAlign()", "style.--m-section-max-width": "resolvedMaxWidth()", "style.--m-section-max-height": "cssMaxHeight()" }, classAttribute: "m-section" }, providers: [
13007
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionComponent, isStandalone: true, selector: "m-section", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, heightMode: { classPropertyName: "heightMode", publicName: "heightMode", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, alignX: { classPropertyName: "alignX", publicName: "alignX", isSignal: true, isRequired: false, transformFunction: null }, alignY: { classPropertyName: "alignY", publicName: "alignY", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inView: "inView" }, host: { properties: { "class.is-full-height": "isFullHeight()", "class.has-sidepanel": "resolvedSidepanel()", "class.has-max-height": "!!cssMaxHeight()", "class.no-border": "resolvedVariant() === \"noBorder\"", "class.is-with-border": "resolvedVariant() === \"withBorder\"", "class.is-sandwich-border": "resolvedVariant() === \"sandwichBorder\"", "class.align-x-left": "resolvedAlignX() === \"left\"", "class.align-x-center": "resolvedAlignX() === \"center\"", "class.align-x-right": "resolvedAlignX() === \"right\"", "class.align-y-top": "resolvedAlignY() === \"top\"", "class.align-y-center": "resolvedAlignY() === \"center\"", "class.align-y-bottom": "resolvedAlignY() === \"bottom\"", "class.align-left": "resolvedAlign() === \"left\"", "class.align-right": "resolvedAlign() === \"right\"", "class.align-center": "resolvedAlign() === \"center\"", "style.font-size": "sizeLength()", "style.--input-size": "sizeLength()", "style.--m-section-align": "resolvedAlign()", "style.--m-section-max-width": "resolvedMaxWidth()", "style.--m-section-max-height": "cssMaxHeight()" }, classAttribute: "m-section" }, providers: [
12352
13008
  provideSizeContext(SectionComponent),
12353
13009
  {
12354
13010
  provide: SECTION_CONTEXT,
@@ -12362,7 +13018,7 @@ class SectionComponent extends ConfigComponent {
12362
13018
  };
12363
13019
  },
12364
13020
  },
12365
- ], queries: [{ propertyName: "header", first: true, predicate: SectionHeaderComponent, descendants: true, isSignal: true }, { propertyName: "badges", first: true, predicate: SectionBadgesComponent, descendants: true, isSignal: true }, { propertyName: "toggle", first: true, predicate: SectionToggleComponent, descendants: true, isSignal: true }, { propertyName: "action", first: true, predicate: ActionComponent, descendants: true, isSignal: true }, { propertyName: "back", first: true, predicate: SectionBackComponent, descendants: true, isSignal: true }, { propertyName: "search", first: true, predicate: SectionSearchComponent, descendants: true, isSignal: true }, { propertyName: "filter", first: true, predicate: SectionFilterComponent, descendants: true, isSignal: true }, { propertyName: "stepper", first: true, predicate: SectionStepperComponent, descendants: true, isSignal: true }, { propertyName: "hero", first: true, predicate: SectionHeroComponent, descendants: true, isSignal: true }, { propertyName: "jumbotron", first: true, predicate: JumbotronComponent, descendants: true, isSignal: true }, { propertyName: "carousel", first: true, predicate: CarouselComponent, descendants: true, isSignal: true }, { propertyName: "footer", first: true, predicate: SectionFooterComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
13021
+ ], queries: [{ propertyName: "header", first: true, predicate: SectionHeaderComponent, descendants: true, isSignal: true }, { propertyName: "badges", first: true, predicate: SectionBadgesComponent, descendants: true, isSignal: true }, { propertyName: "toggle", first: true, predicate: SectionToggleComponent, descendants: true, isSignal: true }, { propertyName: "action", first: true, predicate: ActionComponent, descendants: true, isSignal: true }, { propertyName: "back", first: true, predicate: SectionBackComponent, descendants: true, isSignal: true }, { propertyName: "search", first: true, predicate: SectionSearchComponent, descendants: true, isSignal: true }, { propertyName: "filter", first: true, predicate: SectionFilterComponent, descendants: true, isSignal: true }, { propertyName: "filterGroup", first: true, predicate: SectionFilterGroupComponent, descendants: true, isSignal: true }, { propertyName: "stepper", first: true, predicate: SectionStepperComponent, descendants: true, isSignal: true }, { propertyName: "hero", first: true, predicate: SectionHeroComponent, descendants: true, isSignal: true }, { propertyName: "jumbotron", first: true, predicate: JumbotronComponent, descendants: true, isSignal: true }, { propertyName: "carousel", first: true, predicate: CarouselComponent, descendants: true, isSignal: true }, { propertyName: "footer", first: true, predicate: SectionFooterComponent, descendants: true, isSignal: true }, { propertyName: "pagination", first: true, predicate: SectionPaginationComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
12366
13022
  @if (header()) {
12367
13023
  <ng-content select="m-section-header" />
12368
13024
  }
@@ -12401,6 +13057,9 @@ class SectionComponent extends ConfigComponent {
12401
13057
  @if (filter()) {
12402
13058
  <ng-content select="m-section-filter" />
12403
13059
  }
13060
+ @if (filterGroup()) {
13061
+ <ng-content select="m-section-filter-group" />
13062
+ }
12404
13063
 
12405
13064
  @if (carousel()) {
12406
13065
  <ng-content select="m-carousel, m-one-carousel" />
@@ -12408,12 +13067,15 @@ class SectionComponent extends ConfigComponent {
12408
13067
  <div class="m-section__body">
12409
13068
  <ng-content />
12410
13069
  </div>
13070
+ @if (pagination()) {
13071
+ <ng-content select="m-section-pagination" />
13072
+ }
12411
13073
  @if (footer()) {
12412
13074
  <ng-content select="m-section-footer" />
12413
13075
  }
12414
13076
  </div>
12415
13077
  </div>
12416
- `, 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:block;width:100%;min-height:5em;container-type:inline-size;container-name:mag-grid;--_section-px: 1rem;--_section-pt: 1.5rem;--_section-pb: 0rem;--_section-header-py: 1rem}:host(.has-max-height){height:var(--m-section-max-height);overflow:auto}:host(.is-with-border){border:var(--m-section-border, 1px solid var(--m-backdrop-border));box-sizing:border-box}:host(.is-sandwich-border){border-block:var(--m-section-border, 1px solid var(--m-backdrop-border));box-sizing:border-box}.m-section__collapsible{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);opacity:1}.m-section__collapsible.is-collapsed{grid-template-rows:0fr;opacity:0;pointer-events:none}.m-section__collapsible-content{min-height:0;overflow:hidden}.m-section__body{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:stretch;max-width:var(--m-section-max-width);margin-inline:auto}:host(.align-left) .m-section__body{margin-inline-start:0;margin-inline-end:auto}:host(.align-right) .m-section__body{margin-inline-start:auto;margin-inline-end:0;justify-content:flex-end}:host(.align-center) .m-section__body{margin-inline:auto;justify-content:center}:host(.is-full-height){height:100vh;min-height:100vh;overflow:auto}:host(.is-full-height) .m-section__body{flex:1;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13078
+ `, 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:block;width:100%;min-height:5em;container-type:inline-size;container-name:mag-grid;--_section-px: 1rem;--_section-pt: 1.5rem;--_section-pb: 0rem;--_section-header-py: 1rem}:host(.has-max-height){height:var(--m-section-max-height);overflow:auto}:host(.is-with-border){border:var(--m-section-border, 1px solid var(--m-backdrop-border));box-sizing:border-box}:host(.is-sandwich-border){border-block:var(--m-section-border, 1px solid var(--m-backdrop-border));box-sizing:border-box}.m-section__collapsible{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);opacity:1}.m-section__collapsible.is-collapsed{grid-template-rows:0fr;opacity:0;pointer-events:none}.m-section__collapsible-content{min-height:0;overflow:hidden}.m-section__body{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:stretch;max-width:var(--m-section-max-width);margin-inline:auto}:host(.align-left) .m-section__body{margin-inline-start:0;margin-inline-end:auto}:host(.align-right) .m-section__body{margin-inline-start:auto;margin-inline-end:0;justify-content:flex-end}:host(.align-center) .m-section__body{margin-inline:auto;justify-content:center}:host(.align-x-left) .m-section__body{justify-content:flex-start}:host(.align-x-center) .m-section__body{justify-content:center}:host(.align-x-right) .m-section__body{justify-content:flex-end}:host(.align-y-top) .m-section__body{align-items:flex-start;align-content:flex-start}:host(.align-y-center) .m-section__body{align-items:center;align-content:center}:host(.align-y-bottom) .m-section__body{align-items:flex-end;align-content:flex-end}:host(.is-full-height){height:100vh;min-height:100vh;overflow:auto}:host(.is-full-height) .m-section__body{flex:1;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12417
13079
  }
12418
13080
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionComponent, decorators: [{
12419
13081
  type: Component,
@@ -12456,6 +13118,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
12456
13118
  @if (filter()) {
12457
13119
  <ng-content select="m-section-filter" />
12458
13120
  }
13121
+ @if (filterGroup()) {
13122
+ <ng-content select="m-section-filter-group" />
13123
+ }
12459
13124
 
12460
13125
  @if (carousel()) {
12461
13126
  <ng-content select="m-carousel, m-one-carousel" />
@@ -12463,6 +13128,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
12463
13128
  <div class="m-section__body">
12464
13129
  <ng-content />
12465
13130
  </div>
13131
+ @if (pagination()) {
13132
+ <ng-content select="m-section-pagination" />
13133
+ }
12466
13134
  @if (footer()) {
12467
13135
  <ng-content select="m-section-footer" />
12468
13136
  }
@@ -12476,6 +13144,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
12476
13144
  '[class.no-border]': 'resolvedVariant() === "noBorder"',
12477
13145
  '[class.is-with-border]': 'resolvedVariant() === "withBorder"',
12478
13146
  '[class.is-sandwich-border]': 'resolvedVariant() === "sandwichBorder"',
13147
+ '[class.align-x-left]': 'resolvedAlignX() === "left"',
13148
+ '[class.align-x-center]': 'resolvedAlignX() === "center"',
13149
+ '[class.align-x-right]': 'resolvedAlignX() === "right"',
13150
+ '[class.align-y-top]': 'resolvedAlignY() === "top"',
13151
+ '[class.align-y-center]': 'resolvedAlignY() === "center"',
13152
+ '[class.align-y-bottom]': 'resolvedAlignY() === "bottom"',
12479
13153
  '[class.align-left]': 'resolvedAlign() === "left"',
12480
13154
  '[class.align-right]': 'resolvedAlign() === "right"',
12481
13155
  '[class.align-center]': 'resolvedAlign() === "center"',
@@ -12504,8 +13178,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
12504
13178
  };
12505
13179
  },
12506
13180
  },
12507
- ], 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%;min-height:5em;container-type:inline-size;container-name:mag-grid;--_section-px: 1rem;--_section-pt: 1.5rem;--_section-pb: 0rem;--_section-header-py: 1rem}:host(.has-max-height){height:var(--m-section-max-height);overflow:auto}:host(.is-with-border){border:var(--m-section-border, 1px solid var(--m-backdrop-border));box-sizing:border-box}:host(.is-sandwich-border){border-block:var(--m-section-border, 1px solid var(--m-backdrop-border));box-sizing:border-box}.m-section__collapsible{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);opacity:1}.m-section__collapsible.is-collapsed{grid-template-rows:0fr;opacity:0;pointer-events:none}.m-section__collapsible-content{min-height:0;overflow:hidden}.m-section__body{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:stretch;max-width:var(--m-section-max-width);margin-inline:auto}:host(.align-left) .m-section__body{margin-inline-start:0;margin-inline-end:auto}:host(.align-right) .m-section__body{margin-inline-start:auto;margin-inline-end:0;justify-content:flex-end}:host(.align-center) .m-section__body{margin-inline:auto;justify-content:center}:host(.is-full-height){height:100vh;min-height:100vh;overflow:auto}:host(.is-full-height) .m-section__body{flex:1;height:100%}\n"] }]
12508
- }], ctorParameters: () => [], propDecorators: { header: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionHeaderComponent), { isSignal: true }] }], badges: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionBadgesComponent), { isSignal: true }] }], toggle: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionToggleComponent), { isSignal: true }] }], action: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ActionComponent), { isSignal: true }] }], back: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionBackComponent), { isSignal: true }] }], search: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionSearchComponent), { isSignal: true }] }], filter: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionFilterComponent), { isSignal: true }] }], stepper: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionStepperComponent), { isSignal: true }] }], hero: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionHeroComponent), { isSignal: true }] }], jumbotron: [{ type: i0.ContentChild, args: [i0.forwardRef(() => JumbotronComponent), { isSignal: true }] }], carousel: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CarouselComponent), { isSignal: true }] }], footer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionFooterComponent), { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], heightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "heightMode", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], inView: [{ type: i0.Output, args: ["inView"] }] } });
13181
+ ], 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%;min-height:5em;container-type:inline-size;container-name:mag-grid;--_section-px: 1rem;--_section-pt: 1.5rem;--_section-pb: 0rem;--_section-header-py: 1rem}:host(.has-max-height){height:var(--m-section-max-height);overflow:auto}:host(.is-with-border){border:var(--m-section-border, 1px solid var(--m-backdrop-border));box-sizing:border-box}:host(.is-sandwich-border){border-block:var(--m-section-border, 1px solid var(--m-backdrop-border));box-sizing:border-box}.m-section__collapsible{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);opacity:1}.m-section__collapsible.is-collapsed{grid-template-rows:0fr;opacity:0;pointer-events:none}.m-section__collapsible-content{min-height:0;overflow:hidden}.m-section__body{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:stretch;max-width:var(--m-section-max-width);margin-inline:auto}:host(.align-left) .m-section__body{margin-inline-start:0;margin-inline-end:auto}:host(.align-right) .m-section__body{margin-inline-start:auto;margin-inline-end:0;justify-content:flex-end}:host(.align-center) .m-section__body{margin-inline:auto;justify-content:center}:host(.align-x-left) .m-section__body{justify-content:flex-start}:host(.align-x-center) .m-section__body{justify-content:center}:host(.align-x-right) .m-section__body{justify-content:flex-end}:host(.align-y-top) .m-section__body{align-items:flex-start;align-content:flex-start}:host(.align-y-center) .m-section__body{align-items:center;align-content:center}:host(.align-y-bottom) .m-section__body{align-items:flex-end;align-content:flex-end}:host(.is-full-height){height:100vh;min-height:100vh;overflow:auto}:host(.is-full-height) .m-section__body{flex:1;height:100%}\n"] }]
13182
+ }], ctorParameters: () => [], propDecorators: { header: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionHeaderComponent), { isSignal: true }] }], badges: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionBadgesComponent), { isSignal: true }] }], toggle: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionToggleComponent), { isSignal: true }] }], action: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ActionComponent), { isSignal: true }] }], back: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionBackComponent), { isSignal: true }] }], search: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionSearchComponent), { isSignal: true }] }], filter: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionFilterComponent), { isSignal: true }] }], filterGroup: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionFilterGroupComponent), { isSignal: true }] }], stepper: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionStepperComponent), { isSignal: true }] }], hero: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionHeroComponent), { isSignal: true }] }], jumbotron: [{ type: i0.ContentChild, args: [i0.forwardRef(() => JumbotronComponent), { isSignal: true }] }], carousel: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CarouselComponent), { isSignal: true }] }], footer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionFooterComponent), { isSignal: true }] }], pagination: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SectionPaginationComponent), { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], heightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "heightMode", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], alignX: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignX", required: false }] }], alignY: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignY", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], inView: [{ type: i0.Output, args: ["inView"] }] } });
12509
13183
 
12510
13184
  class UserApiService {
12511
13185
  http = inject(HttpService);
@@ -13505,7 +14179,7 @@ class AuthActivityPageComponent {
13505
14179
  wrongPassword: this.authStore.wrongPassword,
13506
14180
  });
13507
14181
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AuthActivityPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13508
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AuthActivityPageComponent, isStandalone: true, selector: "m-auth-activity", ngImport: i0, template: "<m-section>\n <m-flex direction=\"column\" justify=\"center\" alignItems=\"center\" gap=\"2em\" minHeight=\"400px\">\n <m-logo color=\"mm\" width=\"5em\" padding=\"10px\" variant=\"grained\" />\n @if (authStore.variant().busy) {\n <m-icon color=\"mm\" size=\"4em\" name=\"loading-bars\" [one]=\"true\" />\n } @else if (!authStore.variant().identity_exiest && !authStore.variant().many_identifications) {\n <m-text-output [noTranslate]=\"false\" label=\"welcome-to-app?app=Magmonium\" />\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n [data]=\"emailData!\"\n (submitted)=\"authStore.patch({ email: $event.email }); authStore.createAuthEmail({ identity: $event.email })\"\n >\n <m-section-form-item\n name=\"email\"\n patterns=\"email\"\n type=\"text\"\n label=\"e-mail\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"next\"\n icon=\"chevron-right\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n </m-section-form>\n } @else if (!authStore.variant().identity_exiest && authStore.variant().many_identifications) {\n <m-text-output [noTranslate]=\"false\" label=\"welcome-to-app?app=Magmonium\" />\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n (dataChange)=\"selectUserCard($event.user)\"\n >\n <m-section-form-item\n name=\"user\"\n [span]=\"1\"\n patterns=\"email\"\n type=\"selectable_card\"\n label=\"select-user\"\n placeholder=\"type-text\"\n [required]=\"true\"\n [multiSelect]=\"false\"\n [vertical]=\"true\"\n [isCheckboxVisible]=\"false\"\n [data]=\"userCards()\"\n >\n <ng-template let-item=\"row\" let-index=\"index\">\n <m-user [firstName]=\"item.firstName\" [lastName]=\"item.lastName\">\n <m-text-output [label]=\"item.identity\" noTranslate />\n </m-user>\n </ng-template>\n </m-section-form-item>\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"or-try-new-user\"\n icon=\"chevron-left\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n (clicked)=\"authStore.patch({ identity: undefined, email: undefined })\"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().with_show_term && !authStore.variant().create_new_user) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n (submitted)=\"authStore.createSignUpOtp()\"\n >\n <m-text-output\n align=\"center\"\n variant=\"footer\"\n label=\"by-signing-in-you-agree-to-magmonium-s-terms-of-service-terms-and-acknowledge-our-privacy-policy-privacy\"\n [params]=\"activityTranslateParams()\"\n />\n <m-section-form-item name=\"field_1\" type=\"checkbox\" label=\"i-agree\" placeholder=\"type-text\" [required]=\"true\" />\n <m-button\n label=\"confirm\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().with_otp && authStore.variant().create_new_user) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [data]=\"eMailData!\"\n (submitted)=\"authStore.updateAuthOtp({ code: $event.otp })\"\n >\n <m-section-form-item\n name=\"otp\"\n type=\"one-time-password\"\n label=\"one-time-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"next\"\n icon=\"chevron-right\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"resend\"\n icon=\"corner-left-up\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (\n authStore.variant().identity_exiest && !authStore.variant().reset_password && !authStore.variant().create_new_user\n ) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [validation]=\"signInValidation\"\n [data]=\"signInData!\"\n (formInitialized)=\"authStore.patch({ wrongPassword: undefined })\"\n (submitted)=\"authStore.updateAuthPassword({ password: btoa($event.password) })\"\n >\n <m-text-output label=\"signing-in-as\" [params]=\"activityTranslateParams()\" />\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"sign-in\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.patch({ identity: undefined })\"\n />\n <m-button\n label=\"reset\"\n icon=\"chevron-right\"\n [isRightIcon]=\"true\"\n color=\"textSecondary\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().reset_password && authStore.variant().with_otp) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [validation]=\"passwordValidation\"\n [data]=\"passwordData!\"\n (submitted)=\"authStore.createAuthPassword({ password: $event.confirm, code: $event.code })\"\n >\n <m-section-form-item\n name=\"code\"\n type=\"one-time-password\"\n label=\"one-time-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"resend\"\n icon=\"corner-left-up\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n </m-section-button-group>\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"new-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item\n name=\"confirm\"\n type=\"password\"\n label=\"confirm-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"reset\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n </m-section-form>\n } @else if (authStore.variant().create_new_user && authStore.variant().identity_exiest) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [data]=\"signupData!\"\n (submitted)=\"\n authStore.createAuthSignup({\n firstName: $event.firstname,\n lastName: $event.lastname,\n dob: $event.dob,\n sex: $event.sex,\n password: btoa($event.password),\n })\n \"\n >\n <m-text-output label=\"signing-up-as\" [params]=\"activityTranslateParams()\" />\n <m-section-form-item\n name=\"firstname\"\n type=\"text\"\n label=\"first-name\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item name=\"lastname\" type=\"text\" label=\"last-name\" placeholder=\"type-text\" [required]=\"true\" />\n <m-section-form-item name=\"dob\" type=\"date\" label=\"date-of-birth\" placeholder=\"type-text\" [required]=\"true\" />\n <m-section-form-item\n name=\"sex\"\n type=\"toggle_radio\"\n label=\"sex\"\n placeholder=\"type-text\"\n [required]=\"true\"\n value=\"male\"\n mOptions=\"sex\"\n />\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item\n name=\"repassword\"\n type=\"password\"\n label=\"confirm-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"sign-up\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n }\n </m-flex>\n</m-section>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;padding-block:clamp(1.5rem,6vh,4rem)}\n"], dependencies: [{ 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: FlexComponent, selector: "m-flex", inputs: ["direction", "justify", "alignItems", "variant", "gap", "wrap", "inline", "fullHeight", "minHeight", "minWidth", "maxHeight", "maxWidth"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: LogoComponent, selector: "m-logo", inputs: ["animation", "alive", "variant", "interactive", "width", "padding", "border", "color"] }, { kind: "directive", type: OptionsSourceDirective, selector: "[mOptions]", inputs: ["mOptions"] }, { kind: "component", type: SectionButtonGroupComponent, selector: "m-section-button-group", inputs: ["vertical", "align", "variant", "size", "fullWidth"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size"], outputs: ["inView"] }, { kind: "component", type: SectionFormComponent, selector: "m-section-form, m-one-section-form", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size", "autofocus", "data", "validation", "disabled", "fieldConfigs", "fieldRenderIds"], outputs: ["dataChange", "submitted", "formInitialized"] }, { kind: "component", type: SectionFormItemComponent, selector: "m-section-form-item, m-one-section-form-item", inputs: ["span", "labelOrientation", "gap", "readonly", "focused", "form", "options", "dir", "element", "data", "template", "aclResolver", "formValues", "type", "label", "placeholder", "params", "required", "disabled", "icon", "prefix", "suffix", "button", "buttonAction", "buttonAcl", "maxWidth", "acl", "testid", "color", "variant", "min", "max", "step", "length", "debounce", "dateFormat", "searchLabel", "vertical", "multiple", "multiSelect", "equalWidth", "iconOnly", "isCheckboxVisible", "optionsAsset", "patterns", "patternMessage", "value"], outputs: ["valueChange", "act", "fieldKey"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange", "clicked"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14182
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AuthActivityPageComponent, isStandalone: true, selector: "m-auth-activity", ngImport: i0, template: "<m-section>\n <m-flex direction=\"column\" justify=\"center\" alignItems=\"center\" gap=\"2em\" minHeight=\"400px\">\n <m-logo color=\"mm\" width=\"5em\" padding=\"10px\" variant=\"grained\" />\n @if (authStore.variant().busy) {\n <m-icon color=\"mm\" size=\"4em\" name=\"loading-bars\" [one]=\"true\" />\n } @else if (!authStore.variant().identity_exiest && !authStore.variant().many_identifications) {\n <m-text-output [noTranslate]=\"false\" label=\"welcome-to-app?app=Magmonium\" />\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n [data]=\"emailData!\"\n (submitted)=\"authStore.patch({ email: $event.email }); authStore.createAuthEmail({ identity: $event.email })\"\n >\n <m-section-form-item\n name=\"email\"\n patterns=\"email\"\n type=\"text\"\n label=\"e-mail\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"next\"\n icon=\"chevron-right\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n </m-section-form>\n } @else if (!authStore.variant().identity_exiest && authStore.variant().many_identifications) {\n <m-text-output [noTranslate]=\"false\" label=\"welcome-to-app?app=Magmonium\" />\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n (dataChange)=\"selectUserCard($event.user)\"\n >\n <m-section-form-item\n name=\"user\"\n [span]=\"1\"\n patterns=\"email\"\n type=\"selectable_card\"\n label=\"select-user\"\n placeholder=\"type-text\"\n [required]=\"true\"\n [multiSelect]=\"false\"\n [vertical]=\"true\"\n [isCheckboxVisible]=\"false\"\n [data]=\"userCards()\"\n >\n <ng-template let-item=\"row\" let-index=\"index\">\n <m-user [firstName]=\"item.firstName\" [lastName]=\"item.lastName\">\n <m-text-output [label]=\"item.identity\" noTranslate />\n </m-user>\n </ng-template>\n </m-section-form-item>\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"or-try-new-user\"\n icon=\"chevron-left\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n (clicked)=\"authStore.patch({ identity: undefined, email: undefined })\"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().with_show_term && !authStore.variant().create_new_user) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n (submitted)=\"authStore.createSignUpOtp()\"\n >\n <m-text-output\n align=\"center\"\n variant=\"footer\"\n label=\"by-signing-in-you-agree-to-magmonium-s-terms-of-service-terms-and-acknowledge-our-privacy-policy-privacy\"\n [params]=\"activityTranslateParams()\"\n />\n <m-section-form-item name=\"field_1\" type=\"checkbox\" label=\"i-agree\" placeholder=\"type-text\" [required]=\"true\" />\n <m-button\n label=\"confirm\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().with_otp && authStore.variant().create_new_user) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [data]=\"eMailData!\"\n (submitted)=\"authStore.updateAuthOtp({ code: $event.otp })\"\n >\n <m-section-form-item\n name=\"otp\"\n type=\"one-time-password\"\n label=\"one-time-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"next\"\n icon=\"chevron-right\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"resend\"\n icon=\"corner-left-up\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (\n authStore.variant().identity_exiest && !authStore.variant().reset_password && !authStore.variant().create_new_user\n ) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [validation]=\"signInValidation\"\n [data]=\"signInData!\"\n (formInitialized)=\"authStore.patch({ wrongPassword: undefined })\"\n (submitted)=\"authStore.updateAuthPassword({ password: btoa($event.password) })\"\n >\n <m-text-output label=\"signing-in-as\" [params]=\"activityTranslateParams()\" />\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"sign-in\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.patch({ identity: undefined })\"\n />\n <m-button\n label=\"reset\"\n icon=\"chevron-right\"\n [isRightIcon]=\"true\"\n color=\"textSecondary\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().reset_password && authStore.variant().with_otp) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [validation]=\"passwordValidation\"\n [data]=\"passwordData!\"\n (submitted)=\"authStore.createAuthPassword({ password: $event.confirm, code: $event.code })\"\n >\n <m-section-form-item\n name=\"code\"\n type=\"one-time-password\"\n label=\"one-time-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"resend\"\n icon=\"corner-left-up\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n </m-section-button-group>\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"new-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item\n name=\"confirm\"\n type=\"password\"\n label=\"confirm-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"reset\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n </m-section-form>\n } @else if (authStore.variant().create_new_user && authStore.variant().identity_exiest) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [data]=\"signupData!\"\n (submitted)=\"\n authStore.createAuthSignup({\n firstName: $event.firstname,\n lastName: $event.lastname,\n dob: $event.dob,\n sex: $event.sex,\n password: btoa($event.password),\n })\n \"\n >\n <m-text-output label=\"signing-up-as\" [params]=\"activityTranslateParams()\" />\n <m-section-form-item\n name=\"firstname\"\n type=\"text\"\n label=\"first-name\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item name=\"lastname\" type=\"text\" label=\"last-name\" placeholder=\"type-text\" [required]=\"true\" />\n <m-section-form-item name=\"dob\" type=\"date\" label=\"date-of-birth\" placeholder=\"type-text\" [required]=\"true\" />\n <m-section-form-item\n name=\"sex\"\n type=\"toggle_radio\"\n label=\"sex\"\n placeholder=\"type-text\"\n [required]=\"true\"\n value=\"male\"\n mOptions=\"sex\"\n />\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item\n name=\"repassword\"\n type=\"password\"\n label=\"confirm-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"sign-up\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n }\n </m-flex>\n</m-section>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;padding-block:clamp(1.5rem,6vh,4rem)}\n"], dependencies: [{ 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: FlexComponent, selector: "m-flex", inputs: ["direction", "justify", "alignItems", "variant", "gap", "padding", "paddingX", "paddingY", "wrap", "inline", "fullHeight", "minHeight", "minWidth", "maxHeight", "maxWidth"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: LogoComponent, selector: "m-logo", inputs: ["animation", "alive", "variant", "interactive", "width", "padding", "border", "color"] }, { kind: "directive", type: OptionsSourceDirective, selector: "[mOptions]", inputs: ["mOptions"] }, { kind: "component", type: SectionButtonGroupComponent, selector: "m-section-button-group", inputs: ["vertical", "align", "variant", "size", "fullWidth"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: SectionFormComponent, selector: "m-section-form, m-one-section-form", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size", "autofocus", "data", "validation", "disabled", "fieldConfigs", "fieldRenderIds"], outputs: ["dataChange", "submitted", "formInitialized"] }, { kind: "component", type: SectionFormItemComponent, selector: "m-section-form-item, m-one-section-form-item", inputs: ["span", "labelOrientation", "gap", "readonly", "focused", "form", "options", "dir", "element", "data", "template", "aclResolver", "formValues", "type", "label", "placeholder", "params", "required", "disabled", "icon", "prefix", "suffix", "button", "buttonAction", "buttonAcl", "maxWidth", "acl", "testid", "color", "variant", "min", "max", "step", "length", "debounce", "dateFormat", "searchLabel", "vertical", "multiple", "multiSelect", "equalWidth", "iconOnly", "isCheckboxVisible", "optionsAsset", "patterns", "patternMessage", "value"], outputs: ["valueChange", "act", "fieldKey"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange", "clicked"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13509
14183
  }
13510
14184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AuthActivityPageComponent, decorators: [{
13511
14185
  type: Component,
@@ -14364,6 +15038,8 @@ class ColComponent extends ConfigComponent {
14364
15038
  padding = input(undefined, ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
14365
15039
  paddingX = input(undefined, ...(ngDevMode ? [{ debugName: "paddingX" }] : /* istanbul ignore next */ []));
14366
15040
  paddingY = input(undefined, ...(ngDevMode ? [{ debugName: "paddingY" }] : /* istanbul ignore next */ []));
15041
+ alignX = input(undefined, ...(ngDevMode ? [{ debugName: "alignX" }] : /* istanbul ignore next */ []));
15042
+ alignY = input(undefined, ...(ngDevMode ? [{ debugName: "alignY" }] : /* istanbul ignore next */ []));
14367
15043
  resolvedXs = computed(() => this.xs() ?? this.config()?.xs, ...(ngDevMode ? [{ debugName: "resolvedXs" }] : /* istanbul ignore next */ []));
14368
15044
  resolvedSm = computed(() => this.sm() ?? this.config()?.sm, ...(ngDevMode ? [{ debugName: "resolvedSm" }] : /* istanbul ignore next */ []));
14369
15045
  resolvedMd = computed(() => this.md() ?? this.config()?.md, ...(ngDevMode ? [{ debugName: "resolvedMd" }] : /* istanbul ignore next */ []));
@@ -14390,6 +15066,8 @@ class ColComponent extends ConfigComponent {
14390
15066
  const v = this.paddingY() ?? this.config()?.paddingY;
14391
15067
  return v === true || v + '' === 'true';
14392
15068
  }, ...(ngDevMode ? [{ debugName: "resolvedPaddingY" }] : /* istanbul ignore next */ []));
15069
+ resolvedAlignX = computed(() => this.alignX() ?? this.config()?.alignX, ...(ngDevMode ? [{ debugName: "resolvedAlignX" }] : /* istanbul ignore next */ []));
15070
+ resolvedAlignY = computed(() => this.alignY() ?? this.config()?.alignY, ...(ngDevMode ? [{ debugName: "resolvedAlignY" }] : /* istanbul ignore next */ []));
14393
15071
  classes = computed(() => {
14394
15072
  const list = ['m-col'];
14395
15073
  if (this.resolvedXs() !== undefined)
@@ -14412,6 +15090,12 @@ class ColComponent extends ConfigComponent {
14412
15090
  list.push('has-padding-y');
14413
15091
  if (this.noBorder())
14414
15092
  list.push('no-border');
15093
+ // Distinct prefixes: the ancestor Section pushes a bare `align-<x>` below,
15094
+ // and a Col's own child alignment must not answer to it.
15095
+ if (this.resolvedAlignX())
15096
+ list.push(`align-x-${this.resolvedAlignX()}`);
15097
+ if (this.resolvedAlignY())
15098
+ list.push(`align-y-${this.resolvedAlignY()}`);
14415
15099
  const align = this.sectionContext?.align?.();
14416
15100
  if (align)
14417
15101
  list.push(`align-${align}`);
@@ -14420,7 +15104,7 @@ class ColComponent extends ConfigComponent {
14420
15104
  sectionContext = inject(SECTION_CONTEXT, { optional: true });
14421
15105
  noBorder = computed(() => this.sectionContext?.variant() === 'noBorder', ...(ngDevMode ? [{ debugName: "noBorder" }] : /* istanbul ignore next */ []));
14422
15106
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ColComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
14423
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: ColComponent, isStandalone: true, selector: "m-col", inputs: { xs: { classPropertyName: "xs", publicName: "xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "xxl", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", 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 }, paddingX: { classPropertyName: "paddingX", publicName: "paddingX", isSignal: true, isRequired: false, transformFunction: null }, paddingY: { classPropertyName: "paddingY", publicName: "paddingY", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "class.is-full-height": "resolvedFullHeight()" }, classAttribute: "m-col" }, usesInheritance: true, ngImport: i0, template: '<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:block;grid-column:span 12;box-sizing:border-box;width:100%;min-height:5em}:host(.is-full-height){height:100%}:host.has-padding-x{padding-inline:var(--col-px, var(--section-px, var(--_section-px, 1rem)))}:host.has-padding-y{padding-block:var(--col-py, var(--section-pt, var(--_section-pt, 1.5rem)))}:host(:not(:last-child)){border-right:1px solid var(--m-backdrop-border)}@container mag-grid (max-width: 575.98px){:host(:not(:last-child)){border-right:none;border-bottom:1px solid var(--m-backdrop-border)}}:host(.no-border){border-right:none}@container mag-grid (max-width: 575.98px){:host(.no-border){border-bottom:none}}:host.full-width{grid-column:span 12!important;width:calc(100% + 2 * var(--section-px, var(--_section-px, 1rem)));margin-inline:calc(-1 * var(--section-px, var(--_section-px, 1rem)))}:host.col-xs-1{grid-column:span 1;width:calc(100% * 1 / 12)}:host.col-xs-2{grid-column:span 2;width:calc(100% * 2 / 12)}:host.col-xs-3{grid-column:span 3;width:25%}:host.col-xs-4{grid-column:span 4;width:calc(100% * 4 / 12)}:host.col-xs-5{grid-column:span 5;width:calc(100% * 5 / 12)}:host.col-xs-6{grid-column:span 6;width:50%}:host.col-xs-7{grid-column:span 7;width:calc(100% * 7 / 12)}:host.col-xs-8{grid-column:span 8;width:calc(100% * 8 / 12)}:host.col-xs-9{grid-column:span 9;width:75%}:host.col-xs-10{grid-column:span 10;width:calc(100% * 10 / 12)}:host.col-xs-11{grid-column:span 11;width:calc(100% * 11 / 12)}:host.col-xs-12{grid-column:span 12;width:100%}@container mag-grid (min-width: 576px){:host.col-sm-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 576px){:host.col-sm-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 576px){:host.col-sm-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 576px){:host.col-sm-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 768px){:host.col-md-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 768px){:host.col-md-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 768px){:host.col-md-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 768px){:host.col-md-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 992px){:host.col-lg-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 992px){:host.col-lg-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 992px){:host.col-lg-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 992px){:host.col-lg-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 1200px){:host.col-xl-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 1200px){:host.col-xl-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 1200px){:host.col-xl-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 1200px){:host.col-xl-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 1400px){:host.col-xxl-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 1400px){:host.col-xxl-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 1400px){:host.col-xxl-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 1400px){:host.col-xxl-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-12{grid-column:span 12;width:100%}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15107
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: ColComponent, isStandalone: true, selector: "m-col", inputs: { xs: { classPropertyName: "xs", publicName: "xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "xxl", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", 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 }, paddingX: { classPropertyName: "paddingX", publicName: "paddingX", isSignal: true, isRequired: false, transformFunction: null }, paddingY: { classPropertyName: "paddingY", publicName: "paddingY", isSignal: true, isRequired: false, transformFunction: null }, alignX: { classPropertyName: "alignX", publicName: "alignX", isSignal: true, isRequired: false, transformFunction: null }, alignY: { classPropertyName: "alignY", publicName: "alignY", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "class.is-full-height": "resolvedFullHeight()" }, classAttribute: "m-col" }, usesInheritance: true, ngImport: i0, template: '<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:block;grid-column:span 12;box-sizing:border-box;width:100%;min-height:5em}:host(.is-full-height){height:100%}:host.has-padding-x{padding-inline:var(--col-px, var(--section-px, var(--_section-px, 1rem)))}:host.has-padding-y{padding-block:var(--col-py, var(--section-pt, var(--_section-pt, 1.5rem)))}:host(:not(:last-child)){border-right:1px solid var(--m-backdrop-border)}@container mag-grid (max-width: 575.98px){:host(:not(:last-child)){border-right:none;border-bottom:1px solid var(--m-backdrop-border)}}:host(.no-border){border-right:none}@container mag-grid (max-width: 575.98px){:host(.no-border){border-bottom:none}}:host.full-width{grid-column:span 12!important;width:calc(100% + 2 * var(--section-px, var(--_section-px, 1rem)));margin-inline:calc(-1 * var(--section-px, var(--_section-px, 1rem)))}:host.col-xs-1{grid-column:span 1;width:calc(100% * 1 / 12)}:host.col-xs-2{grid-column:span 2;width:calc(100% * 2 / 12)}:host.col-xs-3{grid-column:span 3;width:25%}:host.col-xs-4{grid-column:span 4;width:calc(100% * 4 / 12)}:host.col-xs-5{grid-column:span 5;width:calc(100% * 5 / 12)}:host.col-xs-6{grid-column:span 6;width:50%}:host.col-xs-7{grid-column:span 7;width:calc(100% * 7 / 12)}:host.col-xs-8{grid-column:span 8;width:calc(100% * 8 / 12)}:host.col-xs-9{grid-column:span 9;width:75%}:host.col-xs-10{grid-column:span 10;width:calc(100% * 10 / 12)}:host.col-xs-11{grid-column:span 11;width:calc(100% * 11 / 12)}:host.col-xs-12{grid-column:span 12;width:100%}@container mag-grid (min-width: 576px){:host.col-sm-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 576px){:host.col-sm-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 576px){:host.col-sm-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 576px){:host.col-sm-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 768px){:host.col-md-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 768px){:host.col-md-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 768px){:host.col-md-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 768px){:host.col-md-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 992px){:host.col-lg-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 992px){:host.col-lg-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 992px){:host.col-lg-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 992px){:host.col-lg-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 1200px){:host.col-xl-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 1200px){:host.col-xl-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 1200px){:host.col-xl-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 1200px){:host.col-xl-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 1400px){:host.col-xxl-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 1400px){:host.col-xxl-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 1400px){:host.col-xxl-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 1400px){:host.col-xxl-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-12{grid-column:span 12;width:100%}}:host.align-x-left,:host.align-x-center,:host.align-x-right,:host.align-y-top,:host.align-y-center,:host.align-y-bottom{display:flex;flex-direction:column}:host.align-x-left{align-items:flex-start}:host.align-x-center{align-items:center}:host.align-x-right{align-items:flex-end}:host.align-y-top{justify-content:flex-start}:host.align-y-center{justify-content:center}:host.align-y-bottom{justify-content:flex-end}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14424
15108
  }
14425
15109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ColComponent, decorators: [{
14426
15110
  type: Component,
@@ -14428,8 +15112,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
14428
15112
  class: 'm-col',
14429
15113
  '[class]': 'classes()',
14430
15114
  '[class.is-full-height]': 'resolvedFullHeight()',
14431
- }, 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;grid-column:span 12;box-sizing:border-box;width:100%;min-height:5em}:host(.is-full-height){height:100%}:host.has-padding-x{padding-inline:var(--col-px, var(--section-px, var(--_section-px, 1rem)))}:host.has-padding-y{padding-block:var(--col-py, var(--section-pt, var(--_section-pt, 1.5rem)))}:host(:not(:last-child)){border-right:1px solid var(--m-backdrop-border)}@container mag-grid (max-width: 575.98px){:host(:not(:last-child)){border-right:none;border-bottom:1px solid var(--m-backdrop-border)}}:host(.no-border){border-right:none}@container mag-grid (max-width: 575.98px){:host(.no-border){border-bottom:none}}:host.full-width{grid-column:span 12!important;width:calc(100% + 2 * var(--section-px, var(--_section-px, 1rem)));margin-inline:calc(-1 * var(--section-px, var(--_section-px, 1rem)))}:host.col-xs-1{grid-column:span 1;width:calc(100% * 1 / 12)}:host.col-xs-2{grid-column:span 2;width:calc(100% * 2 / 12)}:host.col-xs-3{grid-column:span 3;width:25%}:host.col-xs-4{grid-column:span 4;width:calc(100% * 4 / 12)}:host.col-xs-5{grid-column:span 5;width:calc(100% * 5 / 12)}:host.col-xs-6{grid-column:span 6;width:50%}:host.col-xs-7{grid-column:span 7;width:calc(100% * 7 / 12)}:host.col-xs-8{grid-column:span 8;width:calc(100% * 8 / 12)}:host.col-xs-9{grid-column:span 9;width:75%}:host.col-xs-10{grid-column:span 10;width:calc(100% * 10 / 12)}:host.col-xs-11{grid-column:span 11;width:calc(100% * 11 / 12)}:host.col-xs-12{grid-column:span 12;width:100%}@container mag-grid (min-width: 576px){:host.col-sm-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 576px){:host.col-sm-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 576px){:host.col-sm-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 576px){:host.col-sm-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 768px){:host.col-md-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 768px){:host.col-md-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 768px){:host.col-md-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 768px){:host.col-md-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 992px){:host.col-lg-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 992px){:host.col-lg-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 992px){:host.col-lg-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 992px){:host.col-lg-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 1200px){:host.col-xl-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 1200px){:host.col-xl-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 1200px){:host.col-xl-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 1200px){:host.col-xl-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 1400px){:host.col-xxl-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 1400px){:host.col-xxl-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 1400px){:host.col-xxl-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 1400px){:host.col-xxl-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-12{grid-column:span 12;width:100%}}\n"] }]
14432
- }], propDecorators: { xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "xxl", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], fullHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullHeight", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], paddingX: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingX", required: false }] }], paddingY: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingY", required: false }] }] } });
15115
+ }, 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;grid-column:span 12;box-sizing:border-box;width:100%;min-height:5em}:host(.is-full-height){height:100%}:host.has-padding-x{padding-inline:var(--col-px, var(--section-px, var(--_section-px, 1rem)))}:host.has-padding-y{padding-block:var(--col-py, var(--section-pt, var(--_section-pt, 1.5rem)))}:host(:not(:last-child)){border-right:1px solid var(--m-backdrop-border)}@container mag-grid (max-width: 575.98px){:host(:not(:last-child)){border-right:none;border-bottom:1px solid var(--m-backdrop-border)}}:host(.no-border){border-right:none}@container mag-grid (max-width: 575.98px){:host(.no-border){border-bottom:none}}:host.full-width{grid-column:span 12!important;width:calc(100% + 2 * var(--section-px, var(--_section-px, 1rem)));margin-inline:calc(-1 * var(--section-px, var(--_section-px, 1rem)))}:host.col-xs-1{grid-column:span 1;width:calc(100% * 1 / 12)}:host.col-xs-2{grid-column:span 2;width:calc(100% * 2 / 12)}:host.col-xs-3{grid-column:span 3;width:25%}:host.col-xs-4{grid-column:span 4;width:calc(100% * 4 / 12)}:host.col-xs-5{grid-column:span 5;width:calc(100% * 5 / 12)}:host.col-xs-6{grid-column:span 6;width:50%}:host.col-xs-7{grid-column:span 7;width:calc(100% * 7 / 12)}:host.col-xs-8{grid-column:span 8;width:calc(100% * 8 / 12)}:host.col-xs-9{grid-column:span 9;width:75%}:host.col-xs-10{grid-column:span 10;width:calc(100% * 10 / 12)}:host.col-xs-11{grid-column:span 11;width:calc(100% * 11 / 12)}:host.col-xs-12{grid-column:span 12;width:100%}@container mag-grid (min-width: 576px){:host.col-sm-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 576px){:host.col-sm-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 576px){:host.col-sm-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 576px){:host.col-sm-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 576px){:host.col-sm-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 768px){:host.col-md-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 768px){:host.col-md-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 768px){:host.col-md-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 768px){:host.col-md-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 768px){:host.col-md-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 992px){:host.col-lg-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 992px){:host.col-lg-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 992px){:host.col-lg-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 992px){:host.col-lg-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 992px){:host.col-lg-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 1200px){:host.col-xl-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 1200px){:host.col-xl-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 1200px){:host.col-xl-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 1200px){:host.col-xl-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 1200px){:host.col-xl-12{grid-column:span 12;width:100%}}@container mag-grid (min-width: 1400px){:host.col-xxl-1{grid-column:span 1;width:calc(100% * 1 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-2{grid-column:span 2;width:calc(100% * 2 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-3{grid-column:span 3;width:25%}}@container mag-grid (min-width: 1400px){:host.col-xxl-4{grid-column:span 4;width:calc(100% * 4 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-5{grid-column:span 5;width:calc(100% * 5 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-6{grid-column:span 6;width:50%}}@container mag-grid (min-width: 1400px){:host.col-xxl-7{grid-column:span 7;width:calc(100% * 7 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-8{grid-column:span 8;width:calc(100% * 8 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-9{grid-column:span 9;width:75%}}@container mag-grid (min-width: 1400px){:host.col-xxl-10{grid-column:span 10;width:calc(100% * 10 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-11{grid-column:span 11;width:calc(100% * 11 / 12)}}@container mag-grid (min-width: 1400px){:host.col-xxl-12{grid-column:span 12;width:100%}}:host.align-x-left,:host.align-x-center,:host.align-x-right,:host.align-y-top,:host.align-y-center,:host.align-y-bottom{display:flex;flex-direction:column}:host.align-x-left{align-items:flex-start}:host.align-x-center{align-items:center}:host.align-x-right{align-items:flex-end}:host.align-y-top{justify-content:flex-start}:host.align-y-center{justify-content:center}:host.align-y-bottom{justify-content:flex-end}\n"] }]
15116
+ }], propDecorators: { xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "xxl", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], fullHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullHeight", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], paddingX: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingX", required: false }] }], paddingY: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingY", required: false }] }], alignX: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignX", required: false }] }], alignY: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignY", required: false }] }] } });
14433
15117
 
14434
15118
  class SectionCardComponent extends ColComponent {
14435
15119
  margin = input(false, ...(ngDevMode ? [{ debugName: "margin" }] : /* istanbul ignore next */ []));
@@ -17404,7 +18088,7 @@ class ColorPickerBoxComponent {
17404
18088
  </div>
17405
18089
  </div>
17406
18090
  </m-section>
17407
- </div>`, 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)}}.color-picker-box{width:100%;box-sizing:border-box;background:var(--m-background);border:var(--m-input-border-width, 2px) solid var(--m-text-input-border, var(--m-input-color, var(--m-mm, #4169e1)));border-radius:var(--m-input-radius, 4px);overflow:hidden;box-shadow:none;animation:color-picker-in .2s ease-out}.color-picker-box .color-picker-box-header{position:sticky;display:flex;flex-direction:row;top:0;left:0;width:100%;z-index:5260;align-items:center;justify-content:space-between;background:var(--m-background);border-bottom:1px solid var(--border-color)}.color-picker-box .color-picker-box-header .color-preview{height:2em;width:2em;border-radius:5px;margin:.5em}.color-picker-box .color-picker-box-header .color-header{flex:1;padding:0 .5em}.color-picker-box .color-area{position:relative;width:100%;height:5em;overflow:hidden}.color-picker-box .color-area .color-base{position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(180deg,#fff,#fff0,#000),linear-gradient(90deg,gray,#fff0);pointer-events:none}.color-picker-box .color-area .saturation-gradient{position:absolute;inset:0;background:linear-gradient(90deg,rgb(128,128,128) 0%,transparent 100%)}.color-picker-box .color-area .brightness-gradient{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff 0%,transparent 50%,#000000 100%)}.color-picker-box .color-area .color-pointer{position:absolute;width:12px;height:12px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000004d;cursor:pointer;z-index:1}.color-picker-box .color-sliders{display:flex;flex-direction:column;gap:.5em;padding:.5em 1em;box-sizing:border-box}.color-picker-box .color-sliders .hue-slider,.color-picker-box .color-sliders .opacity-slider{height:.5em;position:relative;border-radius:.5em}.color-picker-box .color-sliders .hue-slider .pointer,.color-picker-box .color-sliders .opacity-slider .pointer{width:.5em;height:.5em;border-radius:50%;transform:translate(-50%,calc(-50% + 4px));border:2px solid var(--mag-border-color);box-shadow:0 1px 3px #0003;cursor:pointer;margin:0;padding:0;border:2px solid white;transition:scale .2s ease}.color-picker-box .color-sliders .hue-slider .pointer:hover,.color-picker-box .color-sliders .opacity-slider .pointer:hover{scale:1.2;box-shadow:0 2px 4px #0003}.color-picker-box .color-sliders .hue-slider{background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-picker-box .suggested-colors{padding:.5em;box-sizing:border-box;width:100%}.color-picker-box .suggested-colors .suggested-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5em;padding:.25em 0;border-bottom:1px solid var(--mag-border-color)}.color-picker-box .suggested-colors .suggested-header span{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-size:.75em;font-weight:500;color:var(--mm-color);display:flex;align-items:center;gap:.5em}.color-picker-box .suggested-colors .color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(24px,1fr));gap:8px;width:100%;padding:.25rem}.color-picker-box .suggested-colors .color-grid .color-option{width:24px;height:24px;border-radius:4px;cursor:pointer;border:1px solid var(--border-color);transition:all .2s ease;margin:auto;position:relative;padding:0}.color-picker-box .suggested-colors .color-grid .color-option:hover{transform:scale(1.1);z-index:1;box-shadow:0 2px 4px #0003}.color-picker-box .suggested-colors .color-grid .color-option:active{transform:scale(.95)}.color-picker-box .suggested-colors .color-grid .color-option[data-alpha]{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}@keyframes color-picker-in{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}\n"], dependencies: [{ kind: "directive", type: DraggableDirective, selector: "[mDraggable]", inputs: ["mDraggable", "handleSelector", "pos", "max", "min"], outputs: ["mDraggableChange", "dragStart", "dragEnd"] }, { kind: "directive", type: ToolTipDirective, selector: "[mToolTip]", inputs: ["mToolTip"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size"], outputs: ["inView"] }, { kind: "component", type: SectionHeaderComponent, selector: "m-section-header", inputs: ["sticky", "level", "label", "subLabel", "noTranslate", "params", "reverse", "icon", "menu", "menuName", "visibilityRule", "disableRule", "extraData", "align", "showBack", "actionButton", "actionLabel", "spacing", "maxWidth"], outputs: ["actionClick", "action", "back"] }, { 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: FileUploadDirective, selector: "[mFileUpload]", inputs: ["mFileUpload"], outputs: ["fileSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18091
+ </div>`, 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)}}.color-picker-box{width:100%;box-sizing:border-box;background:var(--m-background);border:var(--m-input-border-width, 2px) solid var(--m-text-input-border, var(--m-input-color, var(--m-mm, #4169e1)));border-radius:var(--m-input-radius, 4px);overflow:hidden;box-shadow:none;animation:color-picker-in .2s ease-out}.color-picker-box .color-picker-box-header{position:sticky;display:flex;flex-direction:row;top:0;left:0;width:100%;z-index:5260;align-items:center;justify-content:space-between;background:var(--m-background);border-bottom:1px solid var(--border-color)}.color-picker-box .color-picker-box-header .color-preview{height:2em;width:2em;border-radius:5px;margin:.5em}.color-picker-box .color-picker-box-header .color-header{flex:1;padding:0 .5em}.color-picker-box .color-area{position:relative;width:100%;height:5em;overflow:hidden}.color-picker-box .color-area .color-base{position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(180deg,#fff,#fff0,#000),linear-gradient(90deg,gray,#fff0);pointer-events:none}.color-picker-box .color-area .saturation-gradient{position:absolute;inset:0;background:linear-gradient(90deg,rgb(128,128,128) 0%,transparent 100%)}.color-picker-box .color-area .brightness-gradient{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff 0%,transparent 50%,#000000 100%)}.color-picker-box .color-area .color-pointer{position:absolute;width:12px;height:12px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000004d;cursor:pointer;z-index:1}.color-picker-box .color-sliders{display:flex;flex-direction:column;gap:.5em;padding:.5em 1em;box-sizing:border-box}.color-picker-box .color-sliders .hue-slider,.color-picker-box .color-sliders .opacity-slider{height:.5em;position:relative;border-radius:.5em}.color-picker-box .color-sliders .hue-slider .pointer,.color-picker-box .color-sliders .opacity-slider .pointer{width:.5em;height:.5em;border-radius:50%;transform:translate(-50%,calc(-50% + 4px));border:2px solid var(--mag-border-color);box-shadow:0 1px 3px #0003;cursor:pointer;margin:0;padding:0;border:2px solid white;transition:scale .2s ease}.color-picker-box .color-sliders .hue-slider .pointer:hover,.color-picker-box .color-sliders .opacity-slider .pointer:hover{scale:1.2;box-shadow:0 2px 4px #0003}.color-picker-box .color-sliders .hue-slider{background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-picker-box .suggested-colors{padding:.5em;box-sizing:border-box;width:100%}.color-picker-box .suggested-colors .suggested-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5em;padding:.25em 0;border-bottom:1px solid var(--mag-border-color)}.color-picker-box .suggested-colors .suggested-header span{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-size:.75em;font-weight:500;color:var(--mm-color);display:flex;align-items:center;gap:.5em}.color-picker-box .suggested-colors .color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(24px,1fr));gap:8px;width:100%;padding:.25rem}.color-picker-box .suggested-colors .color-grid .color-option{width:24px;height:24px;border-radius:4px;cursor:pointer;border:1px solid var(--border-color);transition:all .2s ease;margin:auto;position:relative;padding:0}.color-picker-box .suggested-colors .color-grid .color-option:hover{transform:scale(1.1);z-index:1;box-shadow:0 2px 4px #0003}.color-picker-box .suggested-colors .color-grid .color-option:active{transform:scale(.95)}.color-picker-box .suggested-colors .color-grid .color-option[data-alpha]{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}@keyframes color-picker-in{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}\n"], dependencies: [{ kind: "directive", type: DraggableDirective, selector: "[mDraggable]", inputs: ["mDraggable", "handleSelector", "pos", "max", "min"], outputs: ["mDraggableChange", "dragStart", "dragEnd"] }, { kind: "directive", type: ToolTipDirective, selector: "[mToolTip]", inputs: ["mToolTip"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: SectionHeaderComponent, selector: "m-section-header", inputs: ["sticky", "level", "label", "subLabel", "noTranslate", "params", "reverse", "icon", "menu", "menuName", "visibilityRule", "disableRule", "extraData", "align", "showBack", "actionButton", "actionLabel", "spacing", "maxWidth"], outputs: ["actionClick", "action", "back"] }, { 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: FileUploadDirective, selector: "[mFileUpload]", inputs: ["mFileUpload"], outputs: ["fileSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17408
18092
  }
17409
18093
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ColorPickerBoxComponent, decorators: [{
17410
18094
  type: Component,
@@ -17933,7 +18617,7 @@ class WrapperInputComponent extends ConfigComponent {
17933
18617
  break;
17934
18618
  }
17935
18619
  case InputType.TOGGLE: {
17936
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-C-FB-Gcs.mjs');
18620
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-BOM0YIYl.mjs');
17937
18621
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
17938
18622
  break;
17939
18623
  }
@@ -17945,12 +18629,12 @@ class WrapperInputComponent extends ConfigComponent {
17945
18629
  break;
17946
18630
  }
17947
18631
  case InputType.PASSWORD: {
17948
- const { PasswordInputComponent } = await import('./magmonium-one-password-CvTU1Qx-.mjs');
18632
+ const { PasswordInputComponent } = await import('./magmonium-one-password-CQgCBVXn.mjs');
17949
18633
  this.createDynamicComponent(seq, PasswordInputComponent);
17950
18634
  break;
17951
18635
  }
17952
18636
  case InputType.OTP: {
17953
- const { OtpInputComponent } = await import('./magmonium-one-otp-BZAX_j5g.mjs');
18637
+ const { OtpInputComponent } = await import('./magmonium-one-otp-DbKeX4tp.mjs');
17954
18638
  this.createDynamicComponent(seq, OtpInputComponent);
17955
18639
  break;
17956
18640
  }
@@ -21887,7 +22571,7 @@ class MHeroComponent {
21887
22571
  <ng-content select="[right]"></ng-content>
21888
22572
  </m-col>
21889
22573
  </m-section>
21890
- `, 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)}}.m-hero{--chart-color: #10b981;height:var(--m-hero-height, 60vh);min-height:var(--m-hero-min-height, auto);background:var(--m-hero-background, #ffffff);color:#1e293b;--m-section-border-bottom: var(--m-hero-border-bottom, 1px solid var(--m-backdrop-border));overflow:hidden}@media(max-width:767.98px){.m-hero{height:auto}}m-col{position:relative}@media(max-width:767.98px){m-col{height:var(--m-hero-left-height-mobile, 38vh);min-height:220px;border-right:none;border-bottom:1px solid var(--m-backdrop-border)}}.m-hero__indicators{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:5;display:flex;gap:.5rem;background:var(--m-hero-indicators-background, transparent);padding:var(--m-hero-indicators-padding, 0);-webkit-backdrop-filter:var(--m-hero-indicators-backdrop, none);backdrop-filter:var(--m-hero-indicators-backdrop, none)}.indicator{width:24px;height:3px;padding:0;background:#e2e8f0;border:none;cursor:pointer;transition:background .3s ease,width .3s ease}.indicator:hover{background:#cbd5e1}.indicator.active{background:var(--chart-color);width:40px}\n"], dependencies: [{ kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size"], outputs: ["inView"] }, { kind: "component", type: ColComponent, selector: "m-col", inputs: ["xs", "sm", "md", "lg", "xl", "xxl", "fullWidth", "fullHeight", "padding", "paddingX", "paddingY"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22574
+ `, 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)}}.m-hero{--chart-color: #10b981;height:var(--m-hero-height, 60vh);min-height:var(--m-hero-min-height, auto);background:var(--m-hero-background, #ffffff);color:#1e293b;--m-section-border-bottom: var(--m-hero-border-bottom, 1px solid var(--m-backdrop-border));overflow:hidden}@media(max-width:767.98px){.m-hero{height:auto}}m-col{position:relative}@media(max-width:767.98px){m-col{height:var(--m-hero-left-height-mobile, 38vh);min-height:220px;border-right:none;border-bottom:1px solid var(--m-backdrop-border)}}.m-hero__indicators{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:5;display:flex;gap:.5rem;background:var(--m-hero-indicators-background, transparent);padding:var(--m-hero-indicators-padding, 0);-webkit-backdrop-filter:var(--m-hero-indicators-backdrop, none);backdrop-filter:var(--m-hero-indicators-backdrop, none)}.indicator{width:24px;height:3px;padding:0;background:#e2e8f0;border:none;cursor:pointer;transition:background .3s ease,width .3s ease}.indicator:hover{background:#cbd5e1}.indicator.active{background:var(--chart-color);width:40px}\n"], dependencies: [{ kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: ColComponent, selector: "m-col", inputs: ["xs", "sm", "md", "lg", "xl", "xxl", "fullWidth", "fullHeight", "padding", "paddingX", "paddingY", "alignX", "alignY"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21891
22575
  }
21892
22576
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MHeroComponent, decorators: [{
21893
22577
  type: Component,
@@ -25298,7 +25982,7 @@ class TimelineComponent extends ConfigComponent {
25298
25982
  return { item, ...(timeline.componentInputs ?? {}) };
25299
25983
  }
25300
25984
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25301
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: TimelineComponent, isStandalone: true, selector: "m-timeline, m-one-timeline", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange" }, usesInheritance: true, ngImport: i0, template: "@if (config(); as timeline) {\n <m-section>\n @if (timeline.label) {\n <m-section-header [label]=\"timeline.label\" [level]=\"3\" />\n }\n <m-col>\n <div\n class=\"m-timeline\"\n [class.m-timeline--compact]=\"timeline.variant === 'compact'\"\n [class.m-timeline--mobile]=\"timeline.mobileOnly\"\n >\n @if (timeline.isLoading) {\n <div class=\"m-timeline__skeleton\">\n @for (i of skeletonItems; track $index) {\n <div class=\"m-timeline__row\">\n <div class=\"m-timeline__date\">\n <span class=\"m-timeline__skeleton-date\"></span>\n </div>\n <div class=\"m-timeline__connector\">\n <div class=\"m-timeline__dot m-timeline__dot--skeleton\"></div>\n <div class=\"m-timeline__line m-timeline__line--skeleton\"></div>\n </div>\n <div class=\"m-timeline__content\">\n <div class=\"m-timeline__skeleton-content\"></div>\n </div>\n </div>\n }\n </div>\n } @else if (!timeline.items?.length) {\n <div class=\"m-timeline__empty\">\n <span class=\"m-timeline__empty-label\">{{ 'no-timeline-entries' | translate }}</span>\n </div>\n } @else {\n @for (item of visibleItems(); track $index; let last = $last) {\n <div\n class=\"m-timeline__row\"\n [class.m-timeline__row--last]=\"last && !hasMore()\"\n >\n <div class=\"m-timeline__date\">\n @if (timeline.dateFormat !== 'relative') {\n <span class=\"m-timeline__date-absolute\">\n {{ item.timestamp | date: 'MMM d' }}\n </span>\n }\n @if (timeline.dateFormat !== 'absolute') {\n <span class=\"m-timeline__date-relative\">\n {{ item.timestamp | timeAgo }}\n </span>\n }\n </div>\n\n <div class=\"m-timeline__connector\">\n <div class=\"m-timeline__dot\"></div>\n @if (!last && timeline.showLine !== false) {\n <div class=\"m-timeline__line\"></div>\n }\n </div>\n\n <div class=\"m-timeline__content\">\n @if (timeline.component) {\n <ng-container\n [ngComponentOutlet]=\"timeline.component\"\n [ngComponentOutletInputs]=\"resolveInputs(item, timeline)\"\n />\n } @else if (item.label) {\n <span class=\"m-timeline__label\">{{ item.label }}</span>\n }\n </div>\n </div>\n }\n\n @if (hasMore()) {\n <div class=\"m-timeline__more\">\n <m-button\n [config]=\"{\n label: 'view-more',\n icon: 'chevron-down',\n fullWidth: true,\n }\"\n (clicked)=\"loadMore()\"\n />\n </div>\n }\n }\n </div>\n </m-col>\n </m-section>\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)}}:host{display:block;width:100%}.m-timeline{display:flex;flex-direction:column;width:100%}.m-timeline--compact{padding:1rem;gap:.25rem}.m-timeline--compact .m-timeline__row{gap:0 .5rem}.m-timeline--compact .m-timeline__dot{width:8px;height:8px}.m-timeline--compact .m-timeline__content{padding-bottom:0}.m-timeline--mobile{padding:.4rem!important}.m-timeline--mobile .m-timeline__row{grid-template-columns:1.25rem 1fr!important;grid-template-rows:auto auto;gap:0!important;padding:.4rem .25rem!important}.m-timeline--mobile .m-timeline__date{grid-column:2;grid-row:1;align-items:flex-start!important;padding:0 0 .2rem!important;flex-direction:row!important;gap:.4rem!important}.m-timeline--mobile .m-timeline__date-absolute{font-size:.7rem!important}.m-timeline--mobile .m-timeline__date-relative{font-size:.65rem!important;opacity:.5}.m-timeline--mobile .m-timeline__connector{grid-column:1;grid-row:1/3}.m-timeline--mobile .m-timeline__dot{width:6px!important;height:6px!important;margin-top:.35rem!important}.m-timeline--mobile .m-timeline__line{width:1px!important;margin:.4rem 0!important;opacity:.3!important}.m-timeline--mobile .m-timeline__content{grid-column:2;grid-row:2;padding-bottom:1.25rem!important}.m-timeline__row{display:grid;grid-template-columns:5.5rem 2rem 1fr;gap:0 .5rem;position:relative;padding:.25rem .5rem;transition:background-color .3s cubic-bezier(.4,0,.2,1);opacity:0;transform:translateY(20px);animation:timeline-entry .6s cubic-bezier(.2,.8,.2,1) forwards}.m-timeline__row:nth-child(1){animation-delay:.08s}.m-timeline__row:nth-child(2){animation-delay:.16s}.m-timeline__row:nth-child(3){animation-delay:.24s}.m-timeline__row:nth-child(4){animation-delay:.32s}.m-timeline__row:nth-child(5){animation-delay:.4s}.m-timeline__row:nth-child(6){animation-delay:.48s}.m-timeline__row:nth-child(7){animation-delay:.56s}.m-timeline__row:nth-child(8){animation-delay:.64s}.m-timeline__row:nth-child(9){animation-delay:.72s}.m-timeline__row:nth-child(10){animation-delay:.8s}.m-timeline__row:nth-child(11){animation-delay:.88s}.m-timeline__row:nth-child(12){animation-delay:.96s}.m-timeline__row:nth-child(13){animation-delay:1.04s}.m-timeline__row:nth-child(14){animation-delay:1.12s}.m-timeline__row:nth-child(15){animation-delay:1.2s}.m-timeline__row:nth-child(16){animation-delay:1.28s}.m-timeline__row:nth-child(17){animation-delay:1.36s}.m-timeline__row:nth-child(18){animation-delay:1.44s}.m-timeline__row:nth-child(19){animation-delay:1.52s}.m-timeline__row:nth-child(20){animation-delay:1.6s}.m-timeline__row:hover{background:color-mix(in srgb,var(--m-mm) 4%,transparent)}.m-timeline__row:hover .m-timeline__dot{transform:scale(1.3);box-shadow:0 0 15px color-mix(in srgb,var(--m-mm) 50%,transparent)}.m-timeline__row--last .m-timeline__content{padding-bottom:0}.m-timeline__date{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;padding-top:.4rem;gap:.1rem;min-width:0}.m-timeline__date-absolute{font-size:.75rem;font-weight:800;color:var(--m-text);white-space:nowrap;font-feature-settings:\"tnum\";letter-spacing:-.01em}.m-timeline__date-relative{font-size:.6rem;font-weight:700;color:var(--m-text-tertiary);white-space:nowrap;text-transform:uppercase}.m-timeline__connector{display:flex;flex-direction:column;align-items:center;position:relative}.m-timeline__dot{width:8px;height:8px;border-radius:50%;background:var(--m-mm);box-shadow:0 0 10px color-mix(in srgb,var(--m-mm) 40%,transparent);flex-shrink:0;margin-top:.55rem;z-index:1;transition:all .3s ease}.m-timeline__dot--skeleton{background:var(--m-border);box-shadow:none;animation:timeline-pulse 1.4s ease-in-out infinite}.m-timeline__line{display:block;flex:1;width:2px;background:linear-gradient(to bottom,var(--m-mm),transparent);min-height:1.5rem;margin:.5rem 0;opacity:.6;transition:all .3s ease;animation:timeline-fade-in 1s ease-in}.m-timeline__content{padding-top:.1rem;padding-bottom:2rem;min-width:0}.m-timeline__label{font-size:.9rem;color:var(--m-text-secondary);line-height:1.5;font-weight:500}.m-timeline__empty{display:flex;align-items:center;justify-content:center;padding:4rem 1rem}.m-timeline__empty-label{font-size:.9rem;font-weight:600;color:var(--m-text-tertiary);text-transform:uppercase;letter-spacing:.1em}.m-timeline__skeleton{display:flex;flex-direction:column;gap:1.5rem}.m-timeline__skeleton-date{display:block;height:.75rem;width:4rem;background:var(--m-border);border-radius:4px;margin-top:.25rem;animation:timeline-pulse 1.4s ease-in-out infinite;align-self:flex-end}.m-timeline__skeleton-content{height:3.5rem;background:var(--m-border);border-radius:.75rem;animation:timeline-pulse 1.4s ease-in-out infinite;opacity:.6}.m-timeline__more{display:grid;grid-template-columns:5.5rem 2rem 1fr;gap:0 .5rem;padding:1rem 0 4rem}.m-timeline__more m-button{grid-column:1/-1}.m-timeline__more-button{grid-column:3;margin-bottom:2rem;width:fit-content}.m-timeline__more-icon,.m-timeline__more-text{display:none}@keyframes timeline-entry{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes timeline-fade-in{0%{opacity:0}to{opacity:.6}}@keyframes timeline-pulse{0%,to{opacity:.35}50%{opacity:.7}}@media(max-width:600px){.m-timeline{padding:.4rem!important}.m-timeline__row{grid-template-columns:1.25rem 1fr!important;grid-template-rows:auto auto;gap:0!important;padding:.4rem .25rem!important}.m-timeline__date{grid-column:2;grid-row:1;align-items:flex-start!important;padding:0 0 .2rem!important;flex-direction:row!important;gap:.4rem!important}.m-timeline__date-absolute{font-size:.7rem!important}.m-timeline__date-relative{font-size:.65rem!important;opacity:.5}.m-timeline__connector{grid-column:1;grid-row:1/3}.m-timeline__dot{width:6px!important;height:6px!important;margin-top:.35rem!important}.m-timeline__line{width:1px!important;margin:.4rem 0!important;opacity:.3!important}.m-timeline__content{grid-column:2;grid-row:2;padding-bottom:1.25rem!important}}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size"], outputs: ["inView"] }, { kind: "component", type: SectionHeaderComponent, selector: "m-section-header", inputs: ["sticky", "level", "label", "subLabel", "noTranslate", "params", "reverse", "icon", "menu", "menuName", "visibilityRule", "disableRule", "extraData", "align", "showBack", "actionButton", "actionLabel", "spacing", "maxWidth"], outputs: ["actionClick", "action", "back"] }, { kind: "component", type: ColComponent, selector: "m-col", inputs: ["xs", "sm", "md", "lg", "xl", "xxl", "fullWidth", "fullHeight", "padding", "paddingX", "paddingY"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: TimeAgoPipe, name: "timeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25985
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: TimelineComponent, isStandalone: true, selector: "m-timeline, m-one-timeline", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange" }, usesInheritance: true, ngImport: i0, template: "@if (config(); as timeline) {\n <m-section>\n @if (timeline.label) {\n <m-section-header [label]=\"timeline.label\" [level]=\"3\" />\n }\n <m-col>\n <div\n class=\"m-timeline\"\n [class.m-timeline--compact]=\"timeline.variant === 'compact'\"\n [class.m-timeline--mobile]=\"timeline.mobileOnly\"\n >\n @if (timeline.isLoading) {\n <div class=\"m-timeline__skeleton\">\n @for (i of skeletonItems; track $index) {\n <div class=\"m-timeline__row\">\n <div class=\"m-timeline__date\">\n <span class=\"m-timeline__skeleton-date\"></span>\n </div>\n <div class=\"m-timeline__connector\">\n <div class=\"m-timeline__dot m-timeline__dot--skeleton\"></div>\n <div class=\"m-timeline__line m-timeline__line--skeleton\"></div>\n </div>\n <div class=\"m-timeline__content\">\n <div class=\"m-timeline__skeleton-content\"></div>\n </div>\n </div>\n }\n </div>\n } @else if (!timeline.items?.length) {\n <div class=\"m-timeline__empty\">\n <span class=\"m-timeline__empty-label\">{{ 'no-timeline-entries' | translate }}</span>\n </div>\n } @else {\n @for (item of visibleItems(); track $index; let last = $last) {\n <div\n class=\"m-timeline__row\"\n [class.m-timeline__row--last]=\"last && !hasMore()\"\n >\n <div class=\"m-timeline__date\">\n @if (timeline.dateFormat !== 'relative') {\n <span class=\"m-timeline__date-absolute\">\n {{ item.timestamp | date: 'MMM d' }}\n </span>\n }\n @if (timeline.dateFormat !== 'absolute') {\n <span class=\"m-timeline__date-relative\">\n {{ item.timestamp | timeAgo }}\n </span>\n }\n </div>\n\n <div class=\"m-timeline__connector\">\n <div class=\"m-timeline__dot\"></div>\n @if (!last && timeline.showLine !== false) {\n <div class=\"m-timeline__line\"></div>\n }\n </div>\n\n <div class=\"m-timeline__content\">\n @if (timeline.component) {\n <ng-container\n [ngComponentOutlet]=\"timeline.component\"\n [ngComponentOutletInputs]=\"resolveInputs(item, timeline)\"\n />\n } @else if (item.label) {\n <span class=\"m-timeline__label\">{{ item.label }}</span>\n }\n </div>\n </div>\n }\n\n @if (hasMore()) {\n <div class=\"m-timeline__more\">\n <m-button\n [config]=\"{\n label: 'view-more',\n icon: 'chevron-down',\n fullWidth: true,\n }\"\n (clicked)=\"loadMore()\"\n />\n </div>\n }\n }\n </div>\n </m-col>\n </m-section>\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)}}:host{display:block;width:100%}.m-timeline{display:flex;flex-direction:column;width:100%}.m-timeline--compact{padding:1rem;gap:.25rem}.m-timeline--compact .m-timeline__row{gap:0 .5rem}.m-timeline--compact .m-timeline__dot{width:8px;height:8px}.m-timeline--compact .m-timeline__content{padding-bottom:0}.m-timeline--mobile{padding:.4rem!important}.m-timeline--mobile .m-timeline__row{grid-template-columns:1.25rem 1fr!important;grid-template-rows:auto auto;gap:0!important;padding:.4rem .25rem!important}.m-timeline--mobile .m-timeline__date{grid-column:2;grid-row:1;align-items:flex-start!important;padding:0 0 .2rem!important;flex-direction:row!important;gap:.4rem!important}.m-timeline--mobile .m-timeline__date-absolute{font-size:.7rem!important}.m-timeline--mobile .m-timeline__date-relative{font-size:.65rem!important;opacity:.5}.m-timeline--mobile .m-timeline__connector{grid-column:1;grid-row:1/3}.m-timeline--mobile .m-timeline__dot{width:6px!important;height:6px!important;margin-top:.35rem!important}.m-timeline--mobile .m-timeline__line{width:1px!important;margin:.4rem 0!important;opacity:.3!important}.m-timeline--mobile .m-timeline__content{grid-column:2;grid-row:2;padding-bottom:1.25rem!important}.m-timeline__row{display:grid;grid-template-columns:5.5rem 2rem 1fr;gap:0 .5rem;position:relative;padding:.25rem .5rem;transition:background-color .3s cubic-bezier(.4,0,.2,1);opacity:0;transform:translateY(20px);animation:timeline-entry .6s cubic-bezier(.2,.8,.2,1) forwards}.m-timeline__row:nth-child(1){animation-delay:.08s}.m-timeline__row:nth-child(2){animation-delay:.16s}.m-timeline__row:nth-child(3){animation-delay:.24s}.m-timeline__row:nth-child(4){animation-delay:.32s}.m-timeline__row:nth-child(5){animation-delay:.4s}.m-timeline__row:nth-child(6){animation-delay:.48s}.m-timeline__row:nth-child(7){animation-delay:.56s}.m-timeline__row:nth-child(8){animation-delay:.64s}.m-timeline__row:nth-child(9){animation-delay:.72s}.m-timeline__row:nth-child(10){animation-delay:.8s}.m-timeline__row:nth-child(11){animation-delay:.88s}.m-timeline__row:nth-child(12){animation-delay:.96s}.m-timeline__row:nth-child(13){animation-delay:1.04s}.m-timeline__row:nth-child(14){animation-delay:1.12s}.m-timeline__row:nth-child(15){animation-delay:1.2s}.m-timeline__row:nth-child(16){animation-delay:1.28s}.m-timeline__row:nth-child(17){animation-delay:1.36s}.m-timeline__row:nth-child(18){animation-delay:1.44s}.m-timeline__row:nth-child(19){animation-delay:1.52s}.m-timeline__row:nth-child(20){animation-delay:1.6s}.m-timeline__row:hover{background:color-mix(in srgb,var(--m-mm) 4%,transparent)}.m-timeline__row:hover .m-timeline__dot{transform:scale(1.3);box-shadow:0 0 15px color-mix(in srgb,var(--m-mm) 50%,transparent)}.m-timeline__row--last .m-timeline__content{padding-bottom:0}.m-timeline__date{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;padding-top:.4rem;gap:.1rem;min-width:0}.m-timeline__date-absolute{font-size:.75rem;font-weight:800;color:var(--m-text);white-space:nowrap;font-feature-settings:\"tnum\";letter-spacing:-.01em}.m-timeline__date-relative{font-size:.6rem;font-weight:700;color:var(--m-text-tertiary);white-space:nowrap;text-transform:uppercase}.m-timeline__connector{display:flex;flex-direction:column;align-items:center;position:relative}.m-timeline__dot{width:8px;height:8px;border-radius:50%;background:var(--m-mm);box-shadow:0 0 10px color-mix(in srgb,var(--m-mm) 40%,transparent);flex-shrink:0;margin-top:.55rem;z-index:1;transition:all .3s ease}.m-timeline__dot--skeleton{background:var(--m-border);box-shadow:none;animation:timeline-pulse 1.4s ease-in-out infinite}.m-timeline__line{display:block;flex:1;width:2px;background:linear-gradient(to bottom,var(--m-mm),transparent);min-height:1.5rem;margin:.5rem 0;opacity:.6;transition:all .3s ease;animation:timeline-fade-in 1s ease-in}.m-timeline__content{padding-top:.1rem;padding-bottom:2rem;min-width:0}.m-timeline__label{font-size:.9rem;color:var(--m-text-secondary);line-height:1.5;font-weight:500}.m-timeline__empty{display:flex;align-items:center;justify-content:center;padding:4rem 1rem}.m-timeline__empty-label{font-size:.9rem;font-weight:600;color:var(--m-text-tertiary);text-transform:uppercase;letter-spacing:.1em}.m-timeline__skeleton{display:flex;flex-direction:column;gap:1.5rem}.m-timeline__skeleton-date{display:block;height:.75rem;width:4rem;background:var(--m-border);border-radius:4px;margin-top:.25rem;animation:timeline-pulse 1.4s ease-in-out infinite;align-self:flex-end}.m-timeline__skeleton-content{height:3.5rem;background:var(--m-border);border-radius:.75rem;animation:timeline-pulse 1.4s ease-in-out infinite;opacity:.6}.m-timeline__more{display:grid;grid-template-columns:5.5rem 2rem 1fr;gap:0 .5rem;padding:1rem 0 4rem}.m-timeline__more m-button{grid-column:1/-1}.m-timeline__more-button{grid-column:3;margin-bottom:2rem;width:fit-content}.m-timeline__more-icon,.m-timeline__more-text{display:none}@keyframes timeline-entry{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes timeline-fade-in{0%{opacity:0}to{opacity:.6}}@keyframes timeline-pulse{0%,to{opacity:.35}50%{opacity:.7}}@media(max-width:600px){.m-timeline{padding:.4rem!important}.m-timeline__row{grid-template-columns:1.25rem 1fr!important;grid-template-rows:auto auto;gap:0!important;padding:.4rem .25rem!important}.m-timeline__date{grid-column:2;grid-row:1;align-items:flex-start!important;padding:0 0 .2rem!important;flex-direction:row!important;gap:.4rem!important}.m-timeline__date-absolute{font-size:.7rem!important}.m-timeline__date-relative{font-size:.65rem!important;opacity:.5}.m-timeline__connector{grid-column:1;grid-row:1/3}.m-timeline__dot{width:6px!important;height:6px!important;margin-top:.35rem!important}.m-timeline__line{width:1px!important;margin:.4rem 0!important;opacity:.3!important}.m-timeline__content{grid-column:2;grid-row:2;padding-bottom:1.25rem!important}}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: SectionHeaderComponent, selector: "m-section-header", inputs: ["sticky", "level", "label", "subLabel", "noTranslate", "params", "reverse", "icon", "menu", "menuName", "visibilityRule", "disableRule", "extraData", "align", "showBack", "actionButton", "actionLabel", "spacing", "maxWidth"], outputs: ["actionClick", "action", "back"] }, { kind: "component", type: ColComponent, selector: "m-col", inputs: ["xs", "sm", "md", "lg", "xl", "xxl", "fullWidth", "fullHeight", "padding", "paddingX", "paddingY", "alignX", "alignY"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: TimeAgoPipe, name: "timeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25302
25986
  }
25303
25987
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TimelineComponent, decorators: [{
25304
25988
  type: Component,
@@ -26684,7 +27368,7 @@ class NavHeaderComponent {
26684
27368
  }, ...(ngDevMode ? [{ debugName: "_trail" }] : /* istanbul ignore next */ []));
26685
27369
  _header = computed(() => this._isUser() ? null : this._navStore.breadcrumb().header, ...(ngDevMode ? [{ debugName: "_header" }] : /* istanbul ignore next */ []));
26686
27370
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NavHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26687
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NavHeaderComponent, isStandalone: true, selector: "m-nav-header", ngImport: i0, template: "<m-section>\n @if (_trail(); as trail) {\n <m-section-back [back]=\"_hasParent()\" (navigate)=\"_navStore.back()\">\n <m-nav-trail [config]=\"trail\" />\n </m-section-back>\n }\n\n @if (_isSearch()) {\n <m-section-search\n [value]=\"_searchStore.query()\"\n [startOpen]=\"true\"\n (searchChange)=\"_searchStore.updateQuery($event)\"\n />\n } @else if (_header(); as h) {\n @if (h.label) {\n <m-section-header class=\"nav-header__title\" [icon]=\"h.icon\" [label]=\"h.label\" />\n }\n }\n</m-section>\n", dependencies: [{ kind: "component", type: NavTrailComponent, selector: "m-nav-trail", inputs: ["config"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size"], outputs: ["inView"] }, { kind: "component", type: SectionHeaderComponent, selector: "m-section-header", inputs: ["sticky", "level", "label", "subLabel", "noTranslate", "params", "reverse", "icon", "menu", "menuName", "visibilityRule", "disableRule", "extraData", "align", "showBack", "actionButton", "actionLabel", "spacing", "maxWidth"], outputs: ["actionClick", "action", "back"] }, { kind: "component", type: SectionBackComponent, selector: "m-section-back", inputs: ["back", "label", "html", "padding", "paddingX", "paddingY"], outputs: ["navigate"] }, { kind: "component", type: SectionSearchComponent, selector: "m-section-search, m-one-section-search", inputs: ["value", "config", "required", "disabled", "invalid", "touched", "focused", "errors", "label", "searchLabel", "placeholder", "debounce", "startOpen", "sticky"], outputs: ["valueChange", "touchedChange", "searchChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
27371
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NavHeaderComponent, isStandalone: true, selector: "m-nav-header", ngImport: i0, template: "<m-section>\n @if (_trail(); as trail) {\n <m-section-back [back]=\"_hasParent()\" (navigate)=\"_navStore.back()\">\n <m-nav-trail [config]=\"trail\" />\n </m-section-back>\n }\n\n @if (_isSearch()) {\n <m-section-search\n [value]=\"_searchStore.query()\"\n [startOpen]=\"true\"\n (searchChange)=\"_searchStore.updateQuery($event)\"\n />\n } @else if (_header(); as h) {\n @if (h.label) {\n <m-section-header class=\"nav-header__title\" [icon]=\"h.icon\" [label]=\"h.label\" />\n }\n }\n</m-section>\n", dependencies: [{ kind: "component", type: NavTrailComponent, selector: "m-nav-trail", inputs: ["config"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: SectionHeaderComponent, selector: "m-section-header", inputs: ["sticky", "level", "label", "subLabel", "noTranslate", "params", "reverse", "icon", "menu", "menuName", "visibilityRule", "disableRule", "extraData", "align", "showBack", "actionButton", "actionLabel", "spacing", "maxWidth"], outputs: ["actionClick", "action", "back"] }, { kind: "component", type: SectionBackComponent, selector: "m-section-back", inputs: ["back", "label", "html", "padding", "paddingX", "paddingY"], outputs: ["navigate"] }, { kind: "component", type: SectionSearchComponent, selector: "m-section-search, m-one-section-search", inputs: ["value", "config", "required", "disabled", "invalid", "touched", "focused", "errors", "label", "searchLabel", "placeholder", "debounce", "startOpen", "sticky", "element", "resultInput", "elementInputs"], outputs: ["valueChange", "touchedChange", "searchChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
26688
27372
  }
26689
27373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NavHeaderComponent, decorators: [{
26690
27374
  type: Component,
@@ -28259,7 +28943,7 @@ class UserNavComponent {
28259
28943
  this.activeTabId.set(tab.name);
28260
28944
  };
28261
28945
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28262
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: UserNavComponent, isStandalone: true, selector: "m-user-nav", ngImport: i0, template: "<m-section maxHeight=\"full\">\n @if (currentUser(); as user) {\n <m-row>\n <m-col [sm]=\"11\" [padding]=\"true\">\n <m-user [id]=\"user.id\" [user]=\"user\" mRef=\"root_user\">\n <span class=\"user-nav__username\">&#64;{{ user.username }}</span>\n </m-user>\n </m-col>\n <m-col [sm]=\"1\">\n <m-context-menu name=\"user_header\" [config]=\"{ one: true }\" (action)=\"onUserMenuAction($event)\" />\n </m-col>\n </m-row>\n }\n <m-col>\n @if (activeTabEntry(); as entry) {\n @if (entry.ceSelector) {\n <m-ce-outlet [tag]=\"entry.ceSelector\" />\n } @else if (entry.component) {\n <ng-container [ngComponentOutlet]=\"entry.component\" />\n } @else {\n <m-nothing icon=\"clock\" title=\"soon-available\" />\n }\n }\n </m-col>\n</m-section>\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)}}.user-nav__username{font-size:.6875rem;font-weight:600;color:var(--m-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.profile-dashboard{display:flex;flex-direction:column;width:100%;margin:0 auto;overflow:visible;box-sizing:border-box;background:var(--m-background-lite)}.profile-banner{position:relative;height:160px;width:100%;overflow:hidden;background:linear-gradient(135deg,var(--m-mm-dark) 0%,color-mix(in oklch,var(--m-mm-dark),#000 20%) 100%);transition:all .5s cubic-bezier(.16,1,.3,1);cursor:pointer}.profile-banner:hover .profile-banner__blob--1{transform:translate(15%,10%) scale(1.1)}.profile-banner:hover .profile-banner__blob--2{transform:translate(-15%,-10%) scale(1.1)}.profile-banner:hover .profile-banner__blob--3{transform:translate(10%,-15%) scale(1.1)}.profile-banner__animate{position:absolute;inset:0;overflow:hidden;opacity:.85}.profile-banner__blob{position:absolute;border-radius:50%;filter:blur(50px);will-change:transform;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}.profile-banner__blob--1{width:240px;height:240px;background:radial-gradient(circle,color-mix(in oklch,var(--m-mm) 85%,transparent) 0%,transparent 70%);top:-85px;left:-40px;animation:float-1 14s infinite alternate ease-in-out}.profile-banner__blob--2{width:200px;height:200px;background:radial-gradient(circle,color-mix(in oklch,#e65c00 75%,transparent) 0%,transparent 70%);bottom:-65px;right:-30px;animation:float-2 18s infinite alternate ease-in-out}.profile-banner__blob--3{width:160px;height:160px;background:radial-gradient(circle,color-mix(in oklch,#ffcc00 65%,transparent) 0%,transparent 70%);top:15px;left:35%;animation:float-3 12s infinite alternate ease-in-out}.profile-banner__overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#00000003,#00000014);-webkit-backdrop-filter:saturate(1.3);backdrop-filter:saturate(1.3)}@keyframes float-1{0%{transform:translate(-10%,-10%) scale(1)}50%{transform:translate(20%,12%) scale(1.1)}to{transform:translate(-5%,15%) scale(.95)}}@keyframes float-2{0%{transform:translate(20%,12%) scale(1.05)}50%{transform:translate(-12%,-12%) scale(.92)}to{transform:translate(12%,5%) scale(1.1)}}@keyframes float-3{0%{transform:translate(8%,20%) scale(.92)}50%{transform:translate(25%,-8%) scale(1.08)}to{transform:translate(5%,12%) scale(1)}}.profile-container{display:flex;flex-direction:column;padding:0 1.5rem 2rem;box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto}.profile-nav-card{background:transparent;border:none;overflow:hidden;box-sizing:border-box;width:100%;transition:all .3s cubic-bezier(.16,1,.3,1);margin-left:-1.75rem;margin-right:-1.75rem;width:calc(100% + 3.5rem)}.profile-nav-card.is-sticky{position:sticky;top:-1px;z-index:100;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--m-backdrop-border);box-shadow:0 4px 20px #0000000a;transition:all .3s cubic-bezier(.16,1,.3,1);animation:slide-down-fade .28s cubic-bezier(.16,1,.3,1)}.profile-content{display:flex;flex-direction:column;gap:1rem;box-sizing:border-box;margin-left:-1.75rem;margin-right:-1.75rem;width:calc(100% + 3.5rem)}.soon-card{background:#ffffff8c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--m-backdrop-border);border-radius:20px;padding:4.5rem 2rem;text-align:center;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px #00000004;box-sizing:border-box;width:100%}.soon-text{font-size:.875rem;color:var(--m-text-secondary);font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(135deg,var(--m-mm),var(--m-mm-lite));-webkit-background-clip:text;-webkit-text-fill-color:transparent}@keyframes slide-down-fade{0%{transform:translateY(-10px);opacity:.75}to{transform:translateY(0);opacity:1}}\n"], dependencies: [{ kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size"], outputs: ["inView"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: CeOutletComponent, selector: "m-ce-outlet", inputs: ["tag"] }, { kind: "component", type: NothingComponent, selector: "m-nothing", inputs: ["icon", "title", "description", "buttonName", "button"], outputs: ["actionClick"] }, { kind: "component", type: ColComponent, selector: "m-col", inputs: ["xs", "sm", "md", "lg", "xl", "xxl", "fullWidth", "fullHeight", "padding", "paddingX", "paddingY"] }, { kind: "component", type: RowComponent, selector: "m-row", inputs: ["padding", "paddingX", "paddingY", "maxWidth", "center"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }, { kind: "directive", type: MRefDirective, selector: "[mRef]", inputs: ["mRef", "mRefLinkActive", "mRefToggle", "mRefParams"] }, { kind: "component", type: ContextMenuComponent, selector: "m-context-menu, m-one-context-menu", inputs: ["toggle", "remote", "exclude", "visibilityRule", "disableRule", "extraData", "inverted"], outputs: ["toggleChange", "action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
28946
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: UserNavComponent, isStandalone: true, selector: "m-user-nav", ngImport: i0, template: "<m-section maxHeight=\"full\">\n @if (currentUser(); as user) {\n <m-row>\n <m-col [sm]=\"11\" [padding]=\"true\">\n <m-user [id]=\"user.id\" [user]=\"user\" mRef=\"root_user\">\n <span class=\"user-nav__username\">&#64;{{ user.username }}</span>\n </m-user>\n </m-col>\n <m-col [sm]=\"1\">\n <m-context-menu name=\"user_header\" [config]=\"{ one: true }\" (action)=\"onUserMenuAction($event)\" />\n </m-col>\n </m-row>\n }\n <m-col>\n @if (activeTabEntry(); as entry) {\n @if (entry.ceSelector) {\n <m-ce-outlet [tag]=\"entry.ceSelector\" />\n } @else if (entry.component) {\n <ng-container [ngComponentOutlet]=\"entry.component\" />\n } @else {\n <m-nothing icon=\"clock\" title=\"soon-available\" />\n }\n }\n </m-col>\n</m-section>\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)}}.user-nav__username{font-size:.6875rem;font-weight:600;color:var(--m-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.profile-dashboard{display:flex;flex-direction:column;width:100%;margin:0 auto;overflow:visible;box-sizing:border-box;background:var(--m-background-lite)}.profile-banner{position:relative;height:160px;width:100%;overflow:hidden;background:linear-gradient(135deg,var(--m-mm-dark) 0%,color-mix(in oklch,var(--m-mm-dark),#000 20%) 100%);transition:all .5s cubic-bezier(.16,1,.3,1);cursor:pointer}.profile-banner:hover .profile-banner__blob--1{transform:translate(15%,10%) scale(1.1)}.profile-banner:hover .profile-banner__blob--2{transform:translate(-15%,-10%) scale(1.1)}.profile-banner:hover .profile-banner__blob--3{transform:translate(10%,-15%) scale(1.1)}.profile-banner__animate{position:absolute;inset:0;overflow:hidden;opacity:.85}.profile-banner__blob{position:absolute;border-radius:50%;filter:blur(50px);will-change:transform;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}.profile-banner__blob--1{width:240px;height:240px;background:radial-gradient(circle,color-mix(in oklch,var(--m-mm) 85%,transparent) 0%,transparent 70%);top:-85px;left:-40px;animation:float-1 14s infinite alternate ease-in-out}.profile-banner__blob--2{width:200px;height:200px;background:radial-gradient(circle,color-mix(in oklch,#e65c00 75%,transparent) 0%,transparent 70%);bottom:-65px;right:-30px;animation:float-2 18s infinite alternate ease-in-out}.profile-banner__blob--3{width:160px;height:160px;background:radial-gradient(circle,color-mix(in oklch,#ffcc00 65%,transparent) 0%,transparent 70%);top:15px;left:35%;animation:float-3 12s infinite alternate ease-in-out}.profile-banner__overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#00000003,#00000014);-webkit-backdrop-filter:saturate(1.3);backdrop-filter:saturate(1.3)}@keyframes float-1{0%{transform:translate(-10%,-10%) scale(1)}50%{transform:translate(20%,12%) scale(1.1)}to{transform:translate(-5%,15%) scale(.95)}}@keyframes float-2{0%{transform:translate(20%,12%) scale(1.05)}50%{transform:translate(-12%,-12%) scale(.92)}to{transform:translate(12%,5%) scale(1.1)}}@keyframes float-3{0%{transform:translate(8%,20%) scale(.92)}50%{transform:translate(25%,-8%) scale(1.08)}to{transform:translate(5%,12%) scale(1)}}.profile-container{display:flex;flex-direction:column;padding:0 1.5rem 2rem;box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto}.profile-nav-card{background:transparent;border:none;overflow:hidden;box-sizing:border-box;width:100%;transition:all .3s cubic-bezier(.16,1,.3,1);margin-left:-1.75rem;margin-right:-1.75rem;width:calc(100% + 3.5rem)}.profile-nav-card.is-sticky{position:sticky;top:-1px;z-index:100;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--m-backdrop-border);box-shadow:0 4px 20px #0000000a;transition:all .3s cubic-bezier(.16,1,.3,1);animation:slide-down-fade .28s cubic-bezier(.16,1,.3,1)}.profile-content{display:flex;flex-direction:column;gap:1rem;box-sizing:border-box;margin-left:-1.75rem;margin-right:-1.75rem;width:calc(100% + 3.5rem)}.soon-card{background:#ffffff8c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--m-backdrop-border);border-radius:20px;padding:4.5rem 2rem;text-align:center;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px #00000004;box-sizing:border-box;width:100%}.soon-text{font-size:.875rem;color:var(--m-text-secondary);font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(135deg,var(--m-mm),var(--m-mm-lite));-webkit-background-clip:text;-webkit-text-fill-color:transparent}@keyframes slide-down-fade{0%{transform:translateY(-10px);opacity:.75}to{transform:translateY(0);opacity:1}}\n"], dependencies: [{ kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: CeOutletComponent, selector: "m-ce-outlet", inputs: ["tag"] }, { kind: "component", type: NothingComponent, selector: "m-nothing", inputs: ["icon", "title", "description", "buttonName", "button"], outputs: ["actionClick"] }, { kind: "component", type: ColComponent, selector: "m-col", inputs: ["xs", "sm", "md", "lg", "xl", "xxl", "fullWidth", "fullHeight", "padding", "paddingX", "paddingY", "alignX", "alignY"] }, { kind: "component", type: RowComponent, selector: "m-row", inputs: ["padding", "paddingX", "paddingY", "maxWidth", "center"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }, { kind: "directive", type: MRefDirective, selector: "[mRef]", inputs: ["mRef", "mRefLinkActive", "mRefToggle", "mRefParams"] }, { kind: "component", type: ContextMenuComponent, selector: "m-context-menu, m-one-context-menu", inputs: ["toggle", "remote", "exclude", "visibilityRule", "disableRule", "extraData", "inverted"], outputs: ["toggleChange", "action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
28263
28947
  }
28264
28948
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserNavComponent, decorators: [{
28265
28949
  type: Component,
@@ -31030,7 +31714,7 @@ class SvgGeneratorToolBoxComponent {
31030
31714
  }
31031
31715
  </div>
31032
31716
  </m-section>
31033
- </div>`, 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)}}.svg-generator-tool-box{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:1rem;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background-color:var(--m-backdrop-standard);border:1px solid var(--m-backdrop-border);border-radius:.5rem;overflow:hidden;max-height:300px;overflow-y:auto}.svg-generator-tool-box .svg-generator-tool-box-header{border-bottom:1px solid var(--border-color);top:0;position:sticky;z-index:5260;background:var(--background, #ffffff);padding:.5em 1em;display:flex;align-items:center;gap:.5em;justify-content:flex-start;width:100%;box-sizing:border-box}.svg-generator-tool-box .svg-generator-tool-box-header .m-header{display:block;width:100%;height:100%}.svg-generator-tool-box .svg-generator-tool-box-header h2{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-size:.8em;color:var(--mm-color)}.svg-generator-tool-box .svg-generator-tool-box-header .icon-container{display:flex;width:1em;height:1em}.svg-generator-tool-box .svg-generator-tool-box-content{display:flex;flex-direction:column;box-sizing:border-box}.svg-generator-tool-box .svg-generator-tool-box-content .options{display:flex;flex-direction:column;padding:0 1em;box-sizing:border-box;gap:.5em}.svg-generator-tool-box .svg-generator-tool-box-content .options h3{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-size:.8em}.svg-generator-tool-box .svg-generator-tool-box-content .form-radio{display:flex;flex-direction:column;gap:4px;padding:4px 0}.svg-generator-tool-box .svg-generator-tool-box-content .form-radio .form-radio__label{font-size:.75em;opacity:.7}.svg-generator-tool-box .svg-generator-tool-box-content .form-radio .form-radio__options{display:flex;gap:8px;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size"], outputs: ["inView"] }, { kind: "component", type: SectionHeaderComponent, selector: "m-section-header", inputs: ["sticky", "level", "label", "subLabel", "noTranslate", "params", "reverse", "icon", "menu", "menuName", "visibilityRule", "disableRule", "extraData", "align", "showBack", "actionButton", "actionLabel", "spacing", "maxWidth"], outputs: ["actionClick", "action", "back"] }, { kind: "component", type: FormGroupComponent, selector: "m-form, m-one-form", inputs: ["data", "state", "validation", "options", "fieldConfigs", "aclResolver", "autofocus", "readonly", "fieldRenderIds", "elements", "templates", "datas", "label", "subtitle"], outputs: ["dataChange", "act", "stateChange"] }, { kind: "component", type: MenuComponent, selector: "m-menu", inputs: ["config", "file", "root", "url", "extra", "hide", "hideLink", "isAdmin", "visibilityRule", "disableRule", "extraData"], outputs: ["action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31717
+ </div>`, 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)}}.svg-generator-tool-box{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:1rem;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background-color:var(--m-backdrop-standard);border:1px solid var(--m-backdrop-border);border-radius:.5rem;overflow:hidden;max-height:300px;overflow-y:auto}.svg-generator-tool-box .svg-generator-tool-box-header{border-bottom:1px solid var(--border-color);top:0;position:sticky;z-index:5260;background:var(--background, #ffffff);padding:.5em 1em;display:flex;align-items:center;gap:.5em;justify-content:flex-start;width:100%;box-sizing:border-box}.svg-generator-tool-box .svg-generator-tool-box-header .m-header{display:block;width:100%;height:100%}.svg-generator-tool-box .svg-generator-tool-box-header h2{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-size:.8em;color:var(--mm-color)}.svg-generator-tool-box .svg-generator-tool-box-header .icon-container{display:flex;width:1em;height:1em}.svg-generator-tool-box .svg-generator-tool-box-content{display:flex;flex-direction:column;box-sizing:border-box}.svg-generator-tool-box .svg-generator-tool-box-content .options{display:flex;flex-direction:column;padding:0 1em;box-sizing:border-box;gap:.5em}.svg-generator-tool-box .svg-generator-tool-box-content .options h3{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-size:.8em}.svg-generator-tool-box .svg-generator-tool-box-content .form-radio{display:flex;flex-direction:column;gap:4px;padding:4px 0}.svg-generator-tool-box .svg-generator-tool-box-content .form-radio .form-radio__label{font-size:.75em;opacity:.7}.svg-generator-tool-box .svg-generator-tool-box-content .form-radio .form-radio__options{display:flex;gap:8px;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: SectionHeaderComponent, selector: "m-section-header", inputs: ["sticky", "level", "label", "subLabel", "noTranslate", "params", "reverse", "icon", "menu", "menuName", "visibilityRule", "disableRule", "extraData", "align", "showBack", "actionButton", "actionLabel", "spacing", "maxWidth"], outputs: ["actionClick", "action", "back"] }, { kind: "component", type: FormGroupComponent, selector: "m-form, m-one-form", inputs: ["data", "state", "validation", "options", "fieldConfigs", "aclResolver", "autofocus", "readonly", "fieldRenderIds", "elements", "templates", "datas", "label", "subtitle"], outputs: ["dataChange", "act", "stateChange"] }, { kind: "component", type: MenuComponent, selector: "m-menu", inputs: ["config", "file", "root", "url", "extra", "hide", "hideLink", "isAdmin", "visibilityRule", "disableRule", "extraData"], outputs: ["action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31034
31718
  }
31035
31719
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SvgGeneratorToolBoxComponent, decorators: [{
31036
31720
  type: Component,
@@ -31712,7 +32396,7 @@ class SearchUserPanelComponent {
31712
32396
  this.modalStore.close();
31713
32397
  }
31714
32398
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SearchUserPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31715
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SearchUserPanelComponent, isStandalone: true, selector: "m-search-user-panel", inputs: { onUserSelected: { classPropertyName: "onUserSelected", publicName: "onUserSelected", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<m-section>\n <m-col>\n <div class=\"search-user-panel__form\">\n <m-form name=\"user_search\" [one]=\"true\" (dataChange)=\"onSearchChange($event)\" (act)=\"onAct($event)\" />\n </div>\n </m-col>\n\n @if (searched()) {\n <div class=\"search-user-panel__results\">\n @for (user of userStore.searchResults(); track user.id) {\n <m-section-card\n [margin]=\"true\"\n [padding]=\"true\"\n [attr.data-testid]=\"'user-result-' + user.id\"\n >\n <m-user [id]=\"user.id\">\n <span class=\"search-user-panel__result-name\">{{ userName(user.id) }}</span>\n <m-one-button name=\"select_user\" (clicked)=\"selectUser(user)\" />\n </m-user>\n </m-section-card>\n } @empty {\n <div class=\"search-user-panel__empty\">\n <div class=\"search-user-panel__empty-icon\">\n <m-icon name=\"user\" />\n </div>\n <p>{{ 'user-not-found' | translate }}</p>\n </div>\n }\n </div>\n } @else {\n <div class=\"search-user-panel__prompt\">\n <div class=\"search-user-panel__prompt-icon\">\n <m-icon name=\"search\" />\n </div>\n <p>{{ 'search-user-prompt' | translate }}</p>\n </div>\n }\n</m-section>\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)}}.search-user-panel__form{padding:var(--section-header-py, .75rem) var(--section-px, 1rem);border-bottom:1px solid var(--m-backdrop-border)}.search-user-panel__results{grid-column:1/-1;overflow-y:auto;display:flex;flex-direction:column}.search-user-panel__results::-webkit-scrollbar{width:6px}.search-user-panel__results::-webkit-scrollbar-track{background:transparent}.search-user-panel__results::-webkit-scrollbar-thumb{background:var(--m-backdrop-border);border-radius:10px}.search-user-panel__results::-webkit-scrollbar-thumb:hover{background:var(--m-backdrop-glass)}.search-user-panel__empty,.search-user-panel__prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--m-text-secondary);gap:1.5rem;animation:fadeIn .6s ease-out}.search-user-panel__empty p,.search-user-panel__prompt p{font-size:1.125rem;font-weight:600;margin:0;max-width:300px;line-height:1.5}.search-user-panel__prompt{grid-column:1/-1}.search-user-panel__result-name{font-size:.75rem;color:var(--m-text-secondary)}.search-user-panel__empty-icon,.search-user-panel__prompt-icon{opacity:.15;color:var(--m-mm);filter:drop-shadow(0 8px 16px var(--m-backdrop-mm))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: FormGroupComponent, selector: "m-form, m-one-form", inputs: ["data", "state", "validation", "options", "fieldConfigs", "aclResolver", "autofocus", "readonly", "fieldRenderIds", "elements", "templates", "datas", "label", "subtitle"], outputs: ["dataChange", "act", "stateChange"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }, { 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size"], outputs: ["inView"] }, { kind: "component", type: SectionCardComponent, selector: "m-section-card", inputs: ["margin", "icon", "actionName", "menu", "menuName"], outputs: ["action"] }, { kind: "component", type: ColComponent, selector: "m-col", inputs: ["xs", "sm", "md", "lg", "xl", "xxl", "fullWidth", "fullHeight", "padding", "paddingX", "paddingY"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32399
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SearchUserPanelComponent, isStandalone: true, selector: "m-search-user-panel", inputs: { onUserSelected: { classPropertyName: "onUserSelected", publicName: "onUserSelected", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<m-section>\n <m-col>\n <div class=\"search-user-panel__form\">\n <m-form name=\"user_search\" [one]=\"true\" (dataChange)=\"onSearchChange($event)\" (act)=\"onAct($event)\" />\n </div>\n </m-col>\n\n @if (searched()) {\n <div class=\"search-user-panel__results\">\n @for (user of userStore.searchResults(); track user.id) {\n <m-section-card\n [margin]=\"true\"\n [padding]=\"true\"\n [attr.data-testid]=\"'user-result-' + user.id\"\n >\n <m-user [id]=\"user.id\">\n <span class=\"search-user-panel__result-name\">{{ userName(user.id) }}</span>\n <m-one-button name=\"select_user\" (clicked)=\"selectUser(user)\" />\n </m-user>\n </m-section-card>\n } @empty {\n <div class=\"search-user-panel__empty\">\n <div class=\"search-user-panel__empty-icon\">\n <m-icon name=\"user\" />\n </div>\n <p>{{ 'user-not-found' | translate }}</p>\n </div>\n }\n </div>\n } @else {\n <div class=\"search-user-panel__prompt\">\n <div class=\"search-user-panel__prompt-icon\">\n <m-icon name=\"search\" />\n </div>\n <p>{{ 'search-user-prompt' | translate }}</p>\n </div>\n }\n</m-section>\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)}}.search-user-panel__form{padding:var(--section-header-py, .75rem) var(--section-px, 1rem);border-bottom:1px solid var(--m-backdrop-border)}.search-user-panel__results{grid-column:1/-1;overflow-y:auto;display:flex;flex-direction:column}.search-user-panel__results::-webkit-scrollbar{width:6px}.search-user-panel__results::-webkit-scrollbar-track{background:transparent}.search-user-panel__results::-webkit-scrollbar-thumb{background:var(--m-backdrop-border);border-radius:10px}.search-user-panel__results::-webkit-scrollbar-thumb:hover{background:var(--m-backdrop-glass)}.search-user-panel__empty,.search-user-panel__prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--m-text-secondary);gap:1.5rem;animation:fadeIn .6s ease-out}.search-user-panel__empty p,.search-user-panel__prompt p{font-size:1.125rem;font-weight:600;margin:0;max-width:300px;line-height:1.5}.search-user-panel__prompt{grid-column:1/-1}.search-user-panel__result-name{font-size:.75rem;color:var(--m-text-secondary)}.search-user-panel__empty-icon,.search-user-panel__prompt-icon{opacity:.15;color:var(--m-mm);filter:drop-shadow(0 8px 16px var(--m-backdrop-mm))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: FormGroupComponent, selector: "m-form, m-one-form", inputs: ["data", "state", "validation", "options", "fieldConfigs", "aclResolver", "autofocus", "readonly", "fieldRenderIds", "elements", "templates", "datas", "label", "subtitle"], outputs: ["dataChange", "act", "stateChange"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }, { 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", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: SectionCardComponent, selector: "m-section-card", inputs: ["margin", "icon", "actionName", "menu", "menuName"], outputs: ["action"] }, { kind: "component", type: ColComponent, selector: "m-col", inputs: ["xs", "sm", "md", "lg", "xl", "xxl", "fullWidth", "fullHeight", "padding", "paddingX", "paddingY", "alignX", "alignY"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31716
32400
  }
31717
32401
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SearchUserPanelComponent, decorators: [{
31718
32402
  type: Component,
@@ -32296,5 +32980,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
32296
32980
  * Generated bundle index. Do not edit.
32297
32981
  */
32298
32982
 
32299
- 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, SectionFooterComponent 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, SectionCarouselComponent as bY, SectionComponent as bZ, SectionFilterComponent 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, WIN_USER_TAB_KEY as c$, SectionFormComponent as c0, SectionFormItemComponent as c1, SectionHeaderComponent as c2, SectionHeroComponent as c3, SectionSearchComponent as c4, SectionStepperComponent as c5, SectionTabsComponent as c6, SectionToggleComponent as c7, SectionToggleItemDirective as c8, SelectableCardInputComponent as c9, ThemeComponent as cA, ThemeDataService as cB, ThemeService as cC, ThemeStore as cD, TimeAgoPipe as cE, TimelineComponent as cF, ToggleButtonComponent as cG, ToggleInputComponent as cH, ToggleRadioInputComponent as cI, ToolTipDirective as cJ, TooltipComponent as cK, TranslateService as cL, TreeGridComponent as cM, URL_SEP as cN, USER_STORE_REF as cO, USER_TAB_MAP as cP, UlComponent as cQ, UniverseComponent as cR, UserApiService as cS, UserAvatarComponent as cT, UserComponent as cU, UserNavComponent as cV, UserSettingsComponent as cW, UserStore as cX, WC_ROUTE_CHANGED_EVENT as cY, WC_SEARCH_GROUPS as cZ, WIN_USER_TAB_HOOK as c_, SelectorDirective as ca, SettingsSearchBarComponent as cb, SettingsSearchService as cc, ShapeComponent as cd, SharedStoreRegistry as ce, SidePanelDirective as cf, Size as cg, SocketStore as ch, SortComponent as ci, StatComponent as cj, StepComponent as ck, StepperComponent as cl, StepsComponent as cm, StorageService as cn, StrokeLinecap as co, StrokeLinejoin as cp, SummaryComponent as cq, SvgGeneratorComponent as cr, SvgGeneratorService as cs, SvgService as ct, TOTAL_COLUMNS as cu, TRANSLATION_SOURCE as cv, TableComponent as cw, TechnicalMeterComponent as cx, TextInputComponent as cy, TextareaInputComponent as cz, APP_CONTEXT_REF as d, linkToId as d$, WatermarkComponent as d0, WcRouterStore as d1, WrapperInputComponent as d2, anchorNavId as d3, applyColorsToElement as d4, bootstrapMagApp as d5, bootstrapPwaInstall as d6, buildWcBaseUrl as d7, calculateLuminance as d8, calculateRanks as d9, getTreeGridRow as dA, getUniqueId as dB, getValue as dC, hasErrorComputed as dD, hexToRgb as dE, hslToRgb$1 as dF, initMagmoniumApp as dG, initialNotificationState as dH, initialState$2 as dI, initials as dJ, injectAuthenticate as dK, injectInstallApp as dL, injectParentSize as dM, injectScrollSticky as dN, isButtonName as dO, isCancelledComputed as dP, isExtensiblePlatformNavId as dQ, isJson as dR, isLoadingComputed as dS, isLocalhost as dT, isPlatformNavId as dU, isSize as dV, isTierPreview as dW, isUrlLocalhost as dX, isValidNavId as dY, isValidNavSegment as dZ, isWebComponent as d_, cellText as da, checkFilterCondition as db, childNavId as dc, classListSignal as dd, coerceSize as de, cornerEdge as df, cornerSide as dg, createMap as dh, createPlatformNavMap as di, deriveAvatarGradient as dj, deriveContrastColor as dk, deriveOppositeColor as dl, derivePropertyName as dm, emailValidation as dn, evaluate as dp, evaluateBool as dq, flattenTreeGridRows as dr, formatBadgeCount as ds, fullName as dt, generateClipPath as du, generateTransform as dv, getClassList as dw, getProperty as dx, getScrollParent as dy, getTierFromPreviewPath as dz, ASSET_BASE_URL as e, toAttrNumber as e$, linkToNav as e0, loadingActions as e1, mInterceptor as e2, manualValidation as e3, matchFieldValidation as e4, maxLengthValidation as e5, maxValidation as e6, mergePlatformNav as e7, mergeUnique as e8, mergeUniqueBy as e9, provideNavWidgets as eA, provideOverlayWidgets as eB, providePlatformNavWidgets as eC, provideSearch as eD, provideSizeContext as eE, provideUserTabs as eF, publicGuard as eG, readFieldPatterns as eH, renderAddress as eI, requiredValidation as eJ, resolveConfigAsset as eK, resolveIconSize as eL, resolvePallet as eM, resolvePatternRules as eN, resolveSize as eO, rgbToHex as eP, rgbToHsl as eQ, rowHasChildren as eR, samePatterns as eS, segmentsToNavId as eT, setProperty as eU, setTreeGridChildren as eV, settingsWidgets as eW, shouldShowBadge as eX, splitNavId as eY, stringToColor as eZ, toAttrBool as e_, mergeUniqueWith as ea, minAgeValidation as eb, minLengthValidation as ec, minValidation as ed, miniMarkToHtml as ee, navIdChain as ef, navIdFor as eg, navIdSegment as eh, navIdToRoutePath as ei, navIdToSegments as ej, navToId as ek, parentNavId as el, parseAddress as em, parseColor as en, parsePatternNames as eo, patternValidation as ep, patternsValidation as eq, platformNavWidgets as er, privateGuard as es, processImageToSvg as et, provideAppContext as eu, provideMagAppConfig as ev, provideMagWcConfig as ew, provideMagWcRoutes as ex, provideModalComponents as ey, provideMurlUrlSerializer as ez, AccordionBodyDirective as f, toCssLength as f0, toHostNavId as f1, toLength$1 as f2, toLocalNavId as f3, toggleTreeGridRow as f4, unfetchedPlatformNav as f5, urlValidation as f6, 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 };
32300
- //# sourceMappingURL=magmonium-one-magmonium-one-CD8ioDZO.mjs.map
32983
+ 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, NAV_WIDGET_MAP 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, FILTER_GROUP_CONTEXT as a9, LOGIN_COMPONENT as aA, LOGIN_STORE as aB, LanguageComponent as aC, LogoComponent as aD, MAG_SOCKET_EVENT as aE, MHeroColorDirective as aF, MHeroComponent as aG, MODAL_REF as aH, MODAL_STORE_REF as aI, MRefDirective as aJ, MStepComponent as aK, MURL_PARAM as aL, MURL_SEP as aM, ManifestEnrichmentService as aN, MenuComponent as aO, ModalDirective as aP, ModalRef as aQ, ModalStore as aR, MoneyPipe as aS, MultiRangeInputComponent as aT, MurlUrlSerializer as aU, NAV_DEFAULT_MURL as aV, NAV_ID_SEP as aW, NAV_MAIN_BUTTONS as aX, NAV_SEGMENT_RE as aY, NAV_STORE_REF as aZ, NAV_WC_COMPONENTS as a_, FLEX_VARIANTS as aa, FOLDER_PICK_LISTENER as ab, FORM_ASSET_FOLDER as ac, FileService as ad, FileUploadDirective as ae, FileUploadInputComponent as af, FlexComponent as ag, FlexItemComponent as ah, FormGroupComponent as ai, FrameComponent as aj, FreezeService as ak, GRID_BREAKPOINTS as al, GetNavService as am, HeaderComponent$1 as an, HighlightDirective as ao, HttpService as ap, ICON_SOURCE as aq, IS_SIDE_PANEL as ar, IconComponent as as, ImgComponent as at, InputType as au, InstrumentScoreComponent as av, InterceptorObservables as aw, JumbotronComponent as ax, KeyValueComponent as ay, LAYOUT_ASSET_FOLDER as az, TextOutputComponent as b, SectionFilterComponent as b$, NavComponent as b0, NavDetailsComponent as b1, NavHeaderComponent as b2, NavMenuComponent as b3, NavStore as b4, NavTrailComponent as b5, NothingComponent as b6, NotificationElementComponent as b7, NotificationGroupComponent as b8, NotificationPopupComponent as b9, RatingInputComponent as bA, ReactiveElementComponent as bB, RemoteComponent as bC, RemoteLoaderService as bD, ResizeElementComponent as bE, RouteContainer as bF, RowComponent as bG, SEARCH_QUERY as bH, SEARCH_RESULTS_EVENT as bI, SECTION_ACCORDION_GROUP as bJ, SECTION_FORM_CONTEXT as bK, SHARED_ICONS as bL, SIZE_CONTEXT as bM, ScoreComponent as bN, ScrollComponent as bO, ScrollService as bP, SearchPanelComponent as bQ, SearchStore as bR, SearchUserPanelComponent as bS, SectionAccordionDirective as bT, SectionAccordionGroupDirective as bU, SectionBackComponent as bV, SectionBadgesComponent as bW, SectionButtonGroupComponent as bX, SectionCardComponent as bY, SectionCarouselComponent as bZ, SectionComponent as b_, NotificationService as ba, NotificationStore as bb, NotificationType as bc, NotificationWidgetComponent as bd, ONE_ASSET_BASE_URL as be, OPTIONS_SOURCE as bf, OVERLAY_WIDGETS as bg, OneApp as bh, OptionsSourceDirective as bi, OverlayBodyComponent as bj, OverlayRef as bk, OverlayService as bl, PLATFORM_BUTTON_NAV_IDS as bm, PLATFORM_EXTENSIBLE_NAV_IDS as bn, PLATFORM_NAV_MAP as bo, PLATFORM_ROOT_CHILDREN as bp, PaginationComponent as bq, PanelComponent as br, PercentagePipe as bs, PlaygroundComponent as bt, PositionDirective as bu, PwaInstallComponent as bv, ROOT_NAV$1 as bw, RadioGroupComponent as bx, RadioInputComponent as by, RangeInputComponent as bz, ButtonComponent as c, WC_ROUTE_CHANGED_EVENT as c$, SectionFilterGroupComponent as c0, SectionFooterComponent as c1, SectionFormComponent as c2, SectionFormItemComponent as c3, SectionHeaderComponent as c4, SectionHeroComponent as c5, SectionPaginationComponent as c6, SectionSearchComponent as c7, SectionStepperComponent as c8, SectionTabsComponent as c9, TechnicalMeterComponent as cA, TextInputComponent as cB, TextareaInputComponent as cC, ThemeComponent as cD, ThemeDataService as cE, ThemeService as cF, ThemeStore as cG, TimeAgoPipe as cH, TimelineComponent as cI, ToggleButtonComponent as cJ, ToggleInputComponent as cK, ToggleRadioInputComponent as cL, ToolTipDirective as cM, TooltipComponent as cN, TranslateService as cO, TreeGridComponent as cP, URL_SEP as cQ, USER_STORE_REF as cR, USER_TAB_MAP as cS, UlComponent as cT, UniverseComponent as cU, UserApiService as cV, UserAvatarComponent as cW, UserComponent as cX, UserNavComponent as cY, UserSettingsComponent as cZ, UserStore as c_, SectionToggleComponent as ca, SectionToggleItemDirective as cb, SelectableCardInputComponent as cc, SelectorDirective as cd, SettingsSearchBarComponent as ce, SettingsSearchService as cf, ShapeComponent as cg, SharedStoreRegistry as ch, SidePanelDirective as ci, Size as cj, SocketStore as ck, SortComponent as cl, StatComponent as cm, StepComponent as cn, StepperComponent as co, StepsComponent as cp, StorageService as cq, StrokeLinecap as cr, StrokeLinejoin as cs, SummaryComponent as ct, SvgGeneratorComponent as cu, SvgGeneratorService as cv, SvgService as cw, TOTAL_COLUMNS as cx, TRANSLATION_SOURCE as cy, TableComponent as cz, APP_CONTEXT_REF as d, isValidNavId as d$, WC_SEARCH_GROUPS as d0, WIN_USER_TAB_HOOK as d1, WIN_USER_TAB_KEY as d2, WatermarkComponent as d3, WcRouterStore as d4, WrapperInputComponent as d5, anchorNavId as d6, applyColorsToElement as d7, bootstrapMagApp as d8, bootstrapPwaInstall as d9, getProperty as dA, getScrollParent as dB, getTierFromPreviewPath as dC, getTreeGridRow as dD, getUniqueId as dE, getValue as dF, hasErrorComputed as dG, hexToRgb as dH, hslToRgb$1 as dI, initMagmoniumApp as dJ, initialNotificationState as dK, initialState$2 as dL, initials as dM, injectAuthenticate as dN, injectInstallApp as dO, injectParentSize as dP, injectScrollSticky as dQ, isButtonName as dR, isCancelledComputed as dS, isExtensiblePlatformNavId as dT, isJson as dU, isLoadingComputed as dV, isLocalhost as dW, isPlatformNavId as dX, isSize as dY, isTierPreview as dZ, isUrlLocalhost as d_, buildWcBaseUrl as da, calculateLuminance as db, calculateRanks as dc, cellText as dd, checkFilterCondition as de, childNavId as df, classListSignal as dg, coerceSize as dh, cornerEdge as di, cornerSide as dj, createMap as dk, createPlatformNavMap as dl, deriveAvatarGradient as dm, deriveContrastColor as dn, deriveOppositeColor as dp, derivePropertyName as dq, emailValidation as dr, evaluate as ds, evaluateBool as dt, flattenTreeGridRows as du, formatBadgeCount as dv, fullName as dw, generateClipPath as dx, generateTransform as dy, getClassList as dz, ASSET_BASE_URL as e, splitNavId as e$, isValidNavSegment as e0, isWebComponent as e1, linkToId as e2, linkToNav as e3, loadingActions as e4, mInterceptor as e5, manualValidation as e6, matchFieldValidation as e7, maxLengthValidation as e8, maxValidation as e9, provideMagWcRoutes as eA, provideModalComponents as eB, provideMurlUrlSerializer as eC, provideNavWidgets as eD, provideOverlayWidgets as eE, providePlatformNavWidgets as eF, provideSearch as eG, provideSizeContext as eH, provideUserTabs as eI, publicGuard as eJ, readFieldPatterns as eK, renderAddress as eL, requiredValidation as eM, resolveConfigAsset as eN, resolveIconSize as eO, resolvePallet as eP, resolvePatternRules as eQ, resolveSize as eR, rgbToHex as eS, rgbToHsl as eT, rowHasChildren as eU, samePatterns as eV, segmentsToNavId as eW, setProperty as eX, setTreeGridChildren as eY, settingsWidgets as eZ, shouldShowBadge as e_, mergePlatformNav as ea, mergeUnique as eb, mergeUniqueBy as ec, mergeUniqueWith as ed, minAgeValidation as ee, minLengthValidation as ef, minValidation as eg, miniMarkToHtml as eh, navIdChain as ei, navIdFor as ej, navIdSegment as ek, navIdToRoutePath as el, navIdToSegments as em, navToId as en, parentNavId as eo, parseAddress as ep, parseColor as eq, parsePatternNames as er, patternValidation as es, patternsValidation as et, platformNavWidgets as eu, privateGuard as ev, processImageToSvg as ew, provideAppContext as ex, provideMagAppConfig as ey, provideMagWcConfig as ez, AccordionBodyDirective as f, stringToColor as f0, toAttrBool as f1, toAttrNumber as f2, toCssLength as f3, toHostNavId as f4, toLength$1 as f5, toLocalNavId as f6, toggleTreeGridRow as f7, unfetchedPlatformNav as f8, urlValidation as f9, 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 };
32984
+ //# sourceMappingURL=magmonium-one-magmonium-one-Df7XDosn.mjs.map