@magmonium/one 0.0.26 → 0.0.28

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.
@@ -389,6 +389,41 @@ function isJson(data) {
389
389
  }
390
390
 
391
391
  class StorageService {
392
+ /**
393
+ * Write a HeldValue (CONTEXT.md HeldValue, ADR 0019). Always a JSON envelope,
394
+ * so a `string` holding `'3'` reads back a `string` and not the `3` that
395
+ * `getLocal` answers; `undefined` deletes the key rather than storing the
396
+ * word; and falsiness is never a reason to skip the write, so a `false`, a
397
+ * `0` and an empty string land like any other value.
398
+ */
399
+ setHeld(key, value, shelf = 'local') {
400
+ const shelfStore = this.shelf(shelf);
401
+ if (value === undefined) {
402
+ shelfStore.removeItem(key);
403
+ return;
404
+ }
405
+ shelfStore.setItem(key, JSON.stringify(value));
406
+ }
407
+ /**
408
+ * Read a HeldValue back at the type it was written. An absent key and an
409
+ * unreadable one both answer `undefined` — a store that cannot say what it
410
+ * holds holds nothing, which is the same answer the caller's initial state
411
+ * already gives.
412
+ */
413
+ getHeld(key, shelf = 'local') {
414
+ const raw = this.shelf(shelf).getItem(key);
415
+ if (raw === null)
416
+ return undefined;
417
+ try {
418
+ return JSON.parse(raw);
419
+ }
420
+ catch {
421
+ return undefined;
422
+ }
423
+ }
424
+ shelf(shelf) {
425
+ return shelf === 'session' ? sessionStorage : localStorage;
426
+ }
392
427
  setSession(key, value) {
393
428
  if (value) {
394
429
  if (isJson(value)) {
@@ -2457,15 +2492,18 @@ const isLoadingComputed = computed(() => loadingSignal().requestCount > 0, ...(n
2457
2492
  const hasErrorComputed = computed(() => !!loadingSignal().error, ...(ngDevMode ? [{ debugName: "hasErrorComputed" }] : /* istanbul ignore next */ []));
2458
2493
  const isCancelledComputed = computed(() => !!loadingSignal().cancelled, ...(ngDevMode ? [{ debugName: "isCancelledComputed" }] : /* istanbul ignore next */ []));
2459
2494
  const loadingActions = {
2495
+ // Synchronous, where stopLoading is deferred. Deferring both collapsed a fast
2496
+ // or cached response into one microtask batch — the count went 0 → 1 → 0 with
2497
+ // no change detection in between, so the overlay never rendered a frame. The
2498
+ // increment lands before the request is even sent; only the decrement needs to
2499
+ // wait for the response it belongs to.
2460
2500
  startLoading: () => {
2461
- queueMicrotask(() => {
2462
- loadingSignal.update((state) => ({
2463
- ...state,
2464
- requestCount: state.requestCount + 1,
2465
- error: undefined,
2466
- cancelled: undefined,
2467
- }));
2468
- });
2501
+ loadingSignal.update((state) => ({
2502
+ ...state,
2503
+ requestCount: state.requestCount + 1,
2504
+ error: undefined,
2505
+ cancelled: undefined,
2506
+ }));
2469
2507
  },
2470
2508
  stopLoading: () => {
2471
2509
  queueMicrotask(() => {
@@ -2475,12 +2513,17 @@ const loadingActions = {
2475
2513
  }));
2476
2514
  });
2477
2515
  },
2516
+ // Flags the failure and nothing else. It used to decrement too, which was
2517
+ // harmless only while the failing request had never incremented — now that
2518
+ // every in-flight request starts loading, a decrement here plus the one in
2519
+ // `finalize` would take the count down twice for one request and hide an
2520
+ // overlay another request still needs. start and stop are the only two things
2521
+ // that move the counter.
2478
2522
  setError: () => {
2479
2523
  queueMicrotask(() => {
2480
2524
  loadingSignal.update((state) => ({
2481
2525
  ...state,
2482
2526
  error: true,
2483
- requestCount: Math.max(0, state.requestCount - 1),
2484
2527
  }));
2485
2528
  });
2486
2529
  },
@@ -7756,7 +7799,7 @@ class ActionComponent extends ButtonGroupComponent {
7756
7799
  });
7757
7800
  }
7758
7801
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7759
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ActionComponent, isStandalone: true, selector: "m-action, m-one-action", inputs: { sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.m-action--host-sticky": "sticky()" } }, usesInheritance: true, ngImport: i0, template: "@if (config(); as group) {\n <div class=\"m-action\" [class.m-action--stuck]=\"isStuck()\">\n @for (button of actionButtons(); track button.name || button.label) {\n <button\n type=\"button\"\n class=\"m-action__btn\"\n [attr.data-testid]=\"(button.name || '') + '-btn'\"\n [class.active]=\"button.name === group.primary\"\n [disabled]=\"isDisabled(button.name)\"\n (click)=\"clicked.emit(button)\"\n >\n @if (button.icon) {\n <m-icon [name]=\"button.icon\" [remote]=\"group.remote\" />\n }\n @if (button.label) {\n <span class=\"m-action__label\">{{ button.label | translate }}</span>\n }\n </button>\n }\n </div>\n}\n", styles: ["m-action,m-one-action{display:block;grid-column:1/-1}m-action.m-action--host-sticky,m-one-action.m-action--host-sticky{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-action{display:flex;flex-wrap:nowrap;background:transparent;width:100%;border-bottom:1px solid #f1f5f9}.m-action--stuck{border-bottom-color:#00000014;box-shadow:0 2px 10px #0000000f}.m-action__btn{flex:1;padding:1rem 2rem;border:none;background:transparent;color:#1e293b;font-weight:300;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:.6rem;white-space:nowrap;cursor:pointer;border-right:1px solid #f1f5f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.m-action__btn:last-child{border-right:none}.m-action__btn:hover{background:#f8fafc;color:#3b82f6}.m-action__btn .m-icon{transition:transform .2s ease}.m-action__btn:hover .m-icon{transform:scale(1.1)}.m-action__btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}@media(max-width:600px){.m-action__label{display:none}.m-action__btn{padding:1rem .75rem}}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "component", type: i0.forwardRef(() => IconComponent), selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: i0.forwardRef(() => TranslatePipe), name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7802
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ActionComponent, isStandalone: true, selector: "m-action, m-one-action", inputs: { sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.m-action--host-sticky": "sticky()" } }, usesInheritance: true, ngImport: i0, template: "@if (config(); as group) {\n <div class=\"m-action\" [class.m-action--stuck]=\"isStuck()\">\n @for (button of actionButtons(); track button.name || button.label) {\n <button\n type=\"button\"\n class=\"m-action__btn\"\n [attr.data-testid]=\"(button.name || '') + '-btn'\"\n [class.active]=\"button.name === group.primary\"\n [disabled]=\"isDisabled(button.name)\"\n (click)=\"clicked.emit(button)\"\n >\n @if (button.icon) {\n <m-icon [name]=\"button.icon\" [remote]=\"group.remote\" />\n }\n @if (button.label) {\n <span class=\"m-action__label\">{{ button.label | translate }}</span>\n }\n </button>\n }\n </div>\n}\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}m-action,m-one-action{display:block;grid-column:1/-1}m-action.m-action--host-sticky,m-one-action.m-action--host-sticky{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-action{display:flex;flex-wrap:nowrap;background:transparent;width:100%;border-bottom:1px solid #f1f5f9}.m-action--stuck{border-bottom-color:#00000014;box-shadow:0 2px 10px #0000000f}.m-action__btn{flex:1;min-width:0;padding:1rem 2rem;border:none;background:transparent;color:#1e293b;font-weight:300;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:.6rem;white-space:nowrap;overflow:hidden;cursor:pointer;border-right:1px solid #f1f5f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.m-action__btn:last-child{border-right:none}.m-action__btn:hover{background:#f8fafc;color:#3b82f6}.m-action__btn .m-icon{transition:transform .2s ease}.m-action__btn:hover .m-icon{transform:scale(1.1)}.m-action__btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.m-action__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@container mag-grid (max-width: 767.98px){.m-action__btn{padding:1rem .75rem;gap:.4rem}}@container mag-grid (max-width: 575.98px){.m-action__btn{padding:.85rem .4rem;font-size:.8rem}}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "component", type: i0.forwardRef(() => IconComponent), selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: i0.forwardRef(() => TranslatePipe), name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7760
7803
  }
7761
7804
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionComponent, decorators: [{
7762
7805
  type: Component,
@@ -7766,7 +7809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
7766
7809
  forwardRef(() => TranslatePipe),
7767
7810
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
7768
7811
  '[class.m-action--host-sticky]': 'sticky()',
7769
- }, template: "@if (config(); as group) {\n <div class=\"m-action\" [class.m-action--stuck]=\"isStuck()\">\n @for (button of actionButtons(); track button.name || button.label) {\n <button\n type=\"button\"\n class=\"m-action__btn\"\n [attr.data-testid]=\"(button.name || '') + '-btn'\"\n [class.active]=\"button.name === group.primary\"\n [disabled]=\"isDisabled(button.name)\"\n (click)=\"clicked.emit(button)\"\n >\n @if (button.icon) {\n <m-icon [name]=\"button.icon\" [remote]=\"group.remote\" />\n }\n @if (button.label) {\n <span class=\"m-action__label\">{{ button.label | translate }}</span>\n }\n </button>\n }\n </div>\n}\n", styles: ["m-action,m-one-action{display:block;grid-column:1/-1}m-action.m-action--host-sticky,m-one-action.m-action--host-sticky{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-action{display:flex;flex-wrap:nowrap;background:transparent;width:100%;border-bottom:1px solid #f1f5f9}.m-action--stuck{border-bottom-color:#00000014;box-shadow:0 2px 10px #0000000f}.m-action__btn{flex:1;padding:1rem 2rem;border:none;background:transparent;color:#1e293b;font-weight:300;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:.6rem;white-space:nowrap;cursor:pointer;border-right:1px solid #f1f5f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.m-action__btn:last-child{border-right:none}.m-action__btn:hover{background:#f8fafc;color:#3b82f6}.m-action__btn .m-icon{transition:transform .2s ease}.m-action__btn:hover .m-icon{transform:scale(1.1)}.m-action__btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}@media(max-width:600px){.m-action__label{display:none}.m-action__btn{padding:1rem .75rem}}\n"] }]
7812
+ }, template: "@if (config(); as group) {\n <div class=\"m-action\" [class.m-action--stuck]=\"isStuck()\">\n @for (button of actionButtons(); track button.name || button.label) {\n <button\n type=\"button\"\n class=\"m-action__btn\"\n [attr.data-testid]=\"(button.name || '') + '-btn'\"\n [class.active]=\"button.name === group.primary\"\n [disabled]=\"isDisabled(button.name)\"\n (click)=\"clicked.emit(button)\"\n >\n @if (button.icon) {\n <m-icon [name]=\"button.icon\" [remote]=\"group.remote\" />\n }\n @if (button.label) {\n <span class=\"m-action__label\">{{ button.label | translate }}</span>\n }\n </button>\n }\n </div>\n}\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}m-action,m-one-action{display:block;grid-column:1/-1}m-action.m-action--host-sticky,m-one-action.m-action--host-sticky{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-action{display:flex;flex-wrap:nowrap;background:transparent;width:100%;border-bottom:1px solid #f1f5f9}.m-action--stuck{border-bottom-color:#00000014;box-shadow:0 2px 10px #0000000f}.m-action__btn{flex:1;min-width:0;padding:1rem 2rem;border:none;background:transparent;color:#1e293b;font-weight:300;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:.6rem;white-space:nowrap;overflow:hidden;cursor:pointer;border-right:1px solid #f1f5f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.m-action__btn:last-child{border-right:none}.m-action__btn:hover{background:#f8fafc;color:#3b82f6}.m-action__btn .m-icon{transition:transform .2s ease}.m-action__btn:hover .m-icon{transform:scale(1.1)}.m-action__btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.m-action__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@container mag-grid (max-width: 767.98px){.m-action__btn{padding:1rem .75rem;gap:.4rem}}@container mag-grid (max-width: 575.98px){.m-action__btn{padding:.85rem .4rem;font-size:.8rem}}\n"] }]
7770
7813
  }], ctorParameters: () => [], propDecorators: { sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }] } });
7771
7814
 
7772
7815
  const SECTION_CONTEXT = new InjectionToken('SECTION_CONTEXT');
@@ -8519,6 +8562,14 @@ class TextOutputComponent extends ConfigComponent {
8519
8562
  // is what lets it ride on the tag at all.
8520
8563
  label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
8521
8564
  noTranslate = input(undefined, ...(ngDevMode ? [{ debugName: "noTranslate" }] : /* istanbul ignore next */ []));
8565
+ // Values for the message's `<name>` / `<$name>` placeholders. An input and
8566
+ // deliberately not a TextOutputConfig key: an asset is resolved by name and
8567
+ // shared across every Control that names it, and these differ per render
8568
+ // (ADR 0020). The query-string form (`min_length?len=6`) still works and
8569
+ // still loses to this on a shared placeholder, that being the precedence
8570
+ // TranslateService already had. Bind a named member — an object literal in a
8571
+ // template is refused by `no-inline-config` (ADR 0010).
8572
+ params = input(undefined, ...(ngDevMode ? [{ debugName: "params" }] : /* istanbul ignore next */ []));
8522
8573
  resolvedAlign = computed(() => this.align() ?? this.config()?.align ?? 'left', ...(ngDevMode ? [{ debugName: "resolvedAlign" }] : /* istanbul ignore next */ []));
8523
8574
  resolvedVariant = computed(() => this.variant() ?? this.config()?.variant, ...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
8524
8575
  resolvedColor = computed(() => {
@@ -8551,11 +8602,11 @@ class TextOutputComponent extends ConfigComponent {
8551
8602
  html = computed(() => {
8552
8603
  const label = this.resolvedLabel();
8553
8604
  return this.shouldTranslate()
8554
- ? this.translateService.translateToHtml(label)
8605
+ ? this.translateService.translateToHtml(label, this.params())
8555
8606
  : this.translateService.toSafeHtml(label);
8556
8607
  }, ...(ngDevMode ? [{ debugName: "html" }] : /* istanbul ignore next */ []));
8557
8608
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextOutputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8558
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: TextOutputComponent, isStandalone: true, selector: "m-text-output", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange" }, host: { properties: { "class.is-design-mode": "isDesignMode", "class.align-left": "resolvedAlign() === \"left\"", "class.align-right": "resolvedAlign() === \"right\"", "class.align-center": "resolvedAlign() === \"center\"", "class.variant-footer": "resolvedVariant() === \"footer\"", "style.--m-text-output-color": "resolvedColor()" }, classAttribute: "m-text-output-host" }, usesInheritance: true, ngImport: i0, template: ` <div class="m-text-output" [innerHTML]="html()"></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)}}:host(.is-design-mode){display:block;min-width:1em;min-height:1em}:host(.align-left) .m-text-output{text-align:left}:host(.align-center) .m-text-output{text-align:center}:host(.align-right) .m-text-output{text-align:right}:host{font-size:inherit}:host(.variant-footer){display:block;font-size:.8em;margin-top:.25rem}:host(.variant-footer) .m-text-output{line-height:1.35}.m-text-output{color:var(--m-text-output-color, var(--m-text));font-size:inherit;line-height:1.5}.m-text-output>:first-child{margin-top:0}.m-text-output>:last-child{margin-bottom:0}.m-text-output p,.m-text-output ul,.m-text-output blockquote,.m-text-output h1,.m-text-output h2,.m-text-output h3,.m-text-output h4,.m-text-output h5,.m-text-output h6{margin:0 0 1rem}.m-text-output ul{padding-left:1.5rem;list-style-type:disc;list-style-position:outside}.m-text-output li{margin-bottom:.25rem}.m-text-output li:last-child{margin-bottom:0}.m-text-output a{color:var(--m-text-output-link-color, var(--m-mm));text-decoration:underline}.m-text-output a:hover{text-decoration:none}.m-text-output blockquote{padding-left:1rem;border-left:1px solid var(--m-border);color:var(--m-text-output-color, var(--m-text-secondary))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8609
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: TextOutputComponent, isStandalone: true, selector: "m-text-output", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", 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 } }, outputs: { config: "configChange" }, host: { properties: { "class.is-design-mode": "isDesignMode", "class.align-left": "resolvedAlign() === \"left\"", "class.align-right": "resolvedAlign() === \"right\"", "class.align-center": "resolvedAlign() === \"center\"", "class.variant-footer": "resolvedVariant() === \"footer\"", "style.--m-text-output-color": "resolvedColor()" }, classAttribute: "m-text-output-host" }, usesInheritance: true, ngImport: i0, template: ` <div class="m-text-output" [innerHTML]="html()"></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)}}:host(.is-design-mode){display:block;min-width:1em;min-height:1em}:host(.align-left) .m-text-output{text-align:left}:host(.align-center) .m-text-output{text-align:center}:host(.align-right) .m-text-output{text-align:right}:host{font-size:inherit}:host(.variant-footer){display:block;font-size:.8em;margin-top:.25rem}:host(.variant-footer) .m-text-output{line-height:1.35}.m-text-output{color:var(--m-text-output-color, var(--m-text));font-size:inherit;line-height:1.5}.m-text-output>:first-child{margin-top:0}.m-text-output>:last-child{margin-bottom:0}.m-text-output p,.m-text-output ul,.m-text-output blockquote,.m-text-output h1,.m-text-output h2,.m-text-output h3,.m-text-output h4,.m-text-output h5,.m-text-output h6{margin:0 0 1rem}.m-text-output ul{padding-left:1.5rem;list-style-type:disc;list-style-position:outside}.m-text-output li{margin-bottom:.25rem}.m-text-output li:last-child{margin-bottom:0}.m-text-output a{color:var(--m-text-output-link-color, var(--m-mm));text-decoration:underline}.m-text-output a:hover{text-decoration:none}.m-text-output blockquote{padding-left:1rem;border-left:1px solid var(--m-border);color:var(--m-text-output-color, var(--m-text-secondary))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8559
8610
  }
8560
8611
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextOutputComponent, decorators: [{
8561
8612
  type: Component,
@@ -8568,7 +8619,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
8568
8619
  '[class.variant-footer]': 'resolvedVariant() === "footer"',
8569
8620
  '[style.--m-text-output-color]': 'resolvedColor()',
8570
8621
  }, 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(.is-design-mode){display:block;min-width:1em;min-height:1em}:host(.align-left) .m-text-output{text-align:left}:host(.align-center) .m-text-output{text-align:center}:host(.align-right) .m-text-output{text-align:right}:host{font-size:inherit}:host(.variant-footer){display:block;font-size:.8em;margin-top:.25rem}:host(.variant-footer) .m-text-output{line-height:1.35}.m-text-output{color:var(--m-text-output-color, var(--m-text));font-size:inherit;line-height:1.5}.m-text-output>:first-child{margin-top:0}.m-text-output>:last-child{margin-bottom:0}.m-text-output p,.m-text-output ul,.m-text-output blockquote,.m-text-output h1,.m-text-output h2,.m-text-output h3,.m-text-output h4,.m-text-output h5,.m-text-output h6{margin:0 0 1rem}.m-text-output ul{padding-left:1.5rem;list-style-type:disc;list-style-position:outside}.m-text-output li{margin-bottom:.25rem}.m-text-output li:last-child{margin-bottom:0}.m-text-output a{color:var(--m-text-output-link-color, var(--m-mm));text-decoration:underline}.m-text-output a:hover{text-decoration:none}.m-text-output blockquote{padding-left:1rem;border-left:1px solid var(--m-border);color:var(--m-text-output-color, var(--m-text-secondary))}\n"] }]
8571
- }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }, { type: i0.Output, args: ["configChange"] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], noTranslate: [{ type: i0.Input, args: [{ isSignal: true, alias: "noTranslate", required: false }] }] } });
8622
+ }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }, { type: i0.Output, args: ["configChange"] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], noTranslate: [{ type: i0.Input, args: [{ isSignal: true, alias: "noTranslate", required: false }] }], params: [{ type: i0.Input, args: [{ isSignal: true, alias: "params", required: false }] }] } });
8572
8623
 
8573
8624
  class ClearableInputComponent extends BaseTextInputComponent {
8574
8625
  value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
@@ -8646,7 +8697,7 @@ class ClearableInputComponent extends BaseTextInputComponent {
8646
8697
  />
8647
8698
  }
8648
8699
  }
8649
- `, 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: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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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{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, var(--m-focus)));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"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }, { 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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8700
+ `, 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: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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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{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, var(--m-focus)));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"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }, { 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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8650
8701
  }
8651
8702
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ClearableInputComponent, decorators: [{
8652
8703
  type: Component,
@@ -12156,7 +12207,7 @@ class TextInputComponent extends BaseTextInputComponent {
12156
12207
  }
12157
12208
  }
12158
12209
  }
12159
- `, 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: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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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-left:var(--m-text-input-padding-left, calc(var(--input-size, 1em) * .5 * .7));padding-right:var(--m-text-input-padding-right, calc(var(--input-size, 1em) * .5 * .7));background:var(--m-text-input-background, var(--m-background));border-color:var(--m-text-input-border, var(--m-input-color, var(--m-mm)));transition:var(--m-text-input-transition, border-color .2s ease, box-shadow .2s ease)}.input-wrapper:hover{border-color: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-text-input-hover-background, var(--m-text-input-background, var(--m-background)))}.input-wrapper:focus-within{border-color:var(--m-text-input-focus-border, var(--m-focus));box-shadow:var(--m-text-input-shadow, none);background:var(--m-text-input-focus-background, var(--m-text-input-background, var(--m-background)))}.input-wrapper .m-icon{--m-icon-size: 1.1em !important;opacity:var(--m-text-input-icon-opacity, 1);transition:opacity .2s ease}.input-wrapper:focus-within .m-icon{opacity:var(--m-text-input-icon-focus-opacity, var(--m-text-input-icon-opacity, 1))}.input-wrapper input{appearance:none;color:var(--m-text-input-color, var(--m-text));font-weight:var(--m-text-input-font-weight, inherit);font-size:var(--input-size, 1em)}.input-wrapper input::placeholder{font-weight:var(--m-text-input-placeholder-weight, inherit);opacity:var(--m-text-input-placeholder-opacity, inherit)}.input-wrapper .input-prefix,.input-wrapper .input-suffix{font-size:.9rem;font-weight:700;color:var(--m-text-tertiary);-webkit-user-select:none;user-select:none;display:flex;align-items:center;flex-shrink:0}.input-wrapper .input-prefix{margin-right:.25rem}.input-wrapper .input-suffix{margin-left:.25rem}:host(.m-input--underlined) .input-wrapper{background:transparent;border:none;border-bottom:2px solid var(--m-backdrop-border);border-radius:0;padding:.5rem 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:1.125rem;font-weight:700;color:var(--m-text)}:host(.m-input--underlined) .input-prefix,:host(.m-input--underlined) .input-suffix{color:var(--m-mm);font-weight:800;font-size:1rem}:host(.m-input--underlined) .input-indicator{display:flex;align-items:center;justify-content:center;width:1.1em;height:1.1em;margin-left:.375em}:host(.m-input--underlined) .input-indicator--available{color:var(--m-success, #10b981)}:host(.m-input--underlined) .input-indicator .spinner{width:.875rem;height:.875rem;border:2px solid var(--m-border, rgba(255, 255, 255, .1));border-top-color:var(--m-focus, #14b8a6);border-radius:50%;animation:m-spin .8s linear infinite}@keyframes m-spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12210
+ `, 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: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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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-left:var(--m-text-input-padding-left, calc(var(--input-size, 1em) * .5 * .7));padding-right:var(--m-text-input-padding-right, calc(var(--input-size, 1em) * .5 * .7));background:var(--m-text-input-background, var(--m-background));border-color:var(--m-text-input-border, var(--m-input-color, var(--m-mm)));transition:var(--m-text-input-transition, border-color .2s ease, box-shadow .2s ease)}.input-wrapper:hover{border-color: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-text-input-hover-background, var(--m-text-input-background, var(--m-background)))}.input-wrapper:focus-within{border-color:var(--m-text-input-focus-border, var(--m-focus));box-shadow:var(--m-text-input-shadow, none);background:var(--m-text-input-focus-background, var(--m-text-input-background, var(--m-background)))}.input-wrapper .m-icon{--m-icon-size: 1.1em !important;opacity:var(--m-text-input-icon-opacity, 1);transition:opacity .2s ease}.input-wrapper:focus-within .m-icon{opacity:var(--m-text-input-icon-focus-opacity, var(--m-text-input-icon-opacity, 1))}.input-wrapper input{appearance:none;color:var(--m-text-input-color, var(--m-text));font-weight:var(--m-text-input-font-weight, inherit);font-size:var(--input-size, 1em)}.input-wrapper input::placeholder{font-weight:var(--m-text-input-placeholder-weight, inherit);opacity:var(--m-text-input-placeholder-opacity, inherit)}.input-wrapper .input-prefix,.input-wrapper .input-suffix{font-size:.9rem;font-weight:700;color:var(--m-text-tertiary);-webkit-user-select:none;user-select:none;display:flex;align-items:center;flex-shrink:0}.input-wrapper .input-prefix{margin-right:.25rem}.input-wrapper .input-suffix{margin-left:.25rem}:host(.m-input--underlined) .input-wrapper{background:transparent;border:none;border-bottom:2px solid var(--m-backdrop-border);border-radius:0;padding:.5rem 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:1.125rem;font-weight:700;color:var(--m-text)}:host(.m-input--underlined) .input-prefix,:host(.m-input--underlined) .input-suffix{color:var(--m-mm);font-weight:800;font-size:1rem}:host(.m-input--underlined) .input-indicator{display:flex;align-items:center;justify-content:center;width:1.1em;height:1.1em;margin-left:.375em}:host(.m-input--underlined) .input-indicator--available{color:var(--m-success, #10b981)}:host(.m-input--underlined) .input-indicator .spinner{width:.875rem;height:.875rem;border:2px solid var(--m-border, rgba(255, 255, 255, .1));border-top-color:var(--m-focus, #14b8a6);border-radius:50%;animation:m-spin .8s linear infinite}@keyframes m-spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12160
12211
  }
12161
12212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextInputComponent, decorators: [{
12162
12213
  type: Component,
@@ -12282,7 +12333,7 @@ class TextareaInputComponent extends BaseTextInputComponent {
12282
12333
  }
12283
12334
  }
12284
12335
  }
12285
- `, 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%;--m-textarea-background: var(--m-textarea-input-background, var(--m-background));--m-textarea-padding: var(--m-textarea-input-padding, .375em 1.25em );--m-textarea-shadow: var(--m-textarea-input-shadow, none)}.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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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%;align-items:flex-start;position:relative;min-height:2em;height:auto;padding:var(--m-textarea-padding);gap:.375em;background:var(--m-textarea-background);border:var(--m-textarea-input-border, 2px solid var(--m-input-color, var(--m-mm)));box-shadow:var(--m-textarea-shadow)}.input-wrapper textarea{appearance:none;border:none;outline:none;flex:1;resize:none;background:transparent;color:var(--m-text);font-family:inherit;font-size:1em;padding:0;line-height:1.5}.input-wrapper textarea:focus{box-shadow:none;background:transparent}.input-wrapper .m-icon{margin-top:.125rem;display:flex;align-items:center;justify-content:center;--m-icon-size: 1.1em !important}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "directive", type: AutosizeDirective, selector: "[mAutosize]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12336
+ `, 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%;--m-textarea-background: var(--m-textarea-input-background, var(--m-background));--m-textarea-padding: var(--m-textarea-input-padding, .375em 1.25em );--m-textarea-shadow: var(--m-textarea-input-shadow, none)}.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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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%;align-items:flex-start;position:relative;min-height:2em;height:auto;padding:var(--m-textarea-padding);gap:.375em;background:var(--m-textarea-background);border:var(--m-textarea-input-border, 2px solid var(--m-input-color, var(--m-mm)));box-shadow:var(--m-textarea-shadow)}.input-wrapper textarea{appearance:none;border:none;outline:none;flex:1;resize:none;background:transparent;color:var(--m-text);font-family:inherit;font-size:1em;padding:0;line-height:1.5}.input-wrapper textarea:focus{box-shadow:none;background:transparent}.input-wrapper .m-icon{margin-top:.125rem;display:flex;align-items:center;justify-content:center;--m-icon-size: 1.1em !important}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "directive", type: AutosizeDirective, selector: "[mAutosize]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12286
12337
  }
12287
12338
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextareaInputComponent, decorators: [{
12288
12339
  type: Component,
@@ -13234,7 +13285,7 @@ class DateInputComponent extends BaseTextInputComponent {
13234
13285
  }
13235
13286
  }
13236
13287
  }
13237
- `, 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: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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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%;background:var(--m-date-input-background, var(--m-background));border-color:var(--m-date-input-border, var(--m-input-color, var(--m-mm)))}.input-wrapper:hover{border-color:var(--m-date-input-hover-border, color-mix(in srgb, var(--m-input-color, var(--m-mm)) 45%, rgba(0, 0, 0, .12)))}.input-wrapper input{appearance:none;font-size:1em}.input-wrapper input::placeholder{opacity:.5;font-style:italic}.input-wrapper>m-button,.input-wrapper>m-one-button{height:100%;display:flex;align-items:center;justify-content:center;--m-button-size: 1em !important}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], 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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: SelectorDirective, selector: "[mSelector]", inputs: ["mSelector", "disabled"], outputs: ["opened", "closed"], exportAs: ["mSelector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13288
+ `, 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: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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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%;background:var(--m-date-input-background, var(--m-background));border-color:var(--m-date-input-border, var(--m-input-color, var(--m-mm)))}.input-wrapper:hover{border-color:var(--m-date-input-hover-border, color-mix(in srgb, var(--m-input-color, var(--m-mm)) 45%, rgba(0, 0, 0, .12)))}.input-wrapper input{appearance:none;font-size:1em}.input-wrapper input::placeholder{opacity:.5;font-style:italic}.input-wrapper>m-button,.input-wrapper>m-one-button{height:100%;display:flex;align-items:center;justify-content:center;--m-button-size: 1em !important}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], 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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: SelectorDirective, selector: "[mSelector]", inputs: ["mSelector", "disabled"], outputs: ["opened", "closed"], exportAs: ["mSelector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13238
13289
  }
13239
13290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateInputComponent, decorators: [{
13240
13291
  type: Component,
@@ -13415,7 +13466,7 @@ class CheckboxInputComponent extends BaseCheckboxInputComponent {
13415
13466
  }
13416
13467
  }
13417
13468
  }
13418
- `, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:inline-block}.checkbox{--m-checkbox-input-color: var(--m-input-color, var(--m-mm));display:inline-flex;align-items:center;gap:calc(var(--input-size, 1em) * .375);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;padding:2px}.checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;position:relative;width:var(--input-size, 1em);height:var(--input-size, 1em);background-color:rgba(var(--m-checkbox-bg-rgb, 255, 255, 255),.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:calc(var(--input-size, 1em) * .4);border:max(1px,var(--input-size, 1em) * .0625) solid color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 70%,transparent 30%);cursor:pointer;outline:none;box-sizing:border-box;flex-shrink:0;margin:2px;box-shadow:0 0 0 1px color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 15%,transparent 85%),0 2px 12px -3px #0000001a;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .2s ease,transform .2s ease;will-change:background-color,box-shadow}.checkbox input[type=checkbox]:after{content:\"\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0) rotate(-45deg);width:calc(var(--input-size, 1em) * .5);height:calc(var(--input-size, 1em) * .25);border-left:calc(var(--input-size, 1em) * .12) solid var(--m-checkbox-input-color, var(--m-mm));border-bottom:calc(var(--input-size, 1em) * .12) solid var(--m-checkbox-input-color, var(--m-mm));transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .15s ease;will-change:transform;box-shadow:0 calc(var(--input-size, 1em) / 10) calc(var(--input-size, 1em) / 6) #0003,0 calc(var(--input-size, 1em) / 20) calc(var(--input-size, 1em) / 12) #0000001a}.checkbox{--m-label-margin: 0}.checkbox input[type=checkbox]:hover:not(:disabled){border-color:color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 80%,transparent 20%);transform:translateY(-1px);box-shadow:0 4px 15px -3px #00000026,0 0 0 1px color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 25%,transparent 75%)}.checkbox input[type=checkbox]:focus{box-shadow:0 0 0 calc(var(--input-size, 1em) / 5) color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 25%,transparent 75%),0 2px 12px -3px #0000001a;outline:none}.checkbox input[type=checkbox]:active:not(:disabled):after{transform:translate(-50%,-50%) scale(.85) rotate(-45deg)}.checkbox input[type=checkbox]:checked{border-color:var(--m-checkbox-input-color, var(--m-mm));background-color:var(--m-checkbox-input-color, var(--m-mm));box-shadow:0 4px 15px -3px color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 40%,transparent 60%);transform:scale(1.05)}.checkbox input[type=checkbox]:checked:after{transform:translate(-50%,-60%) scale(1) rotate(-45deg);border-color:#fff}.checkbox input[type=checkbox]:checked:hover:not(:disabled){background-color:color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 90%,black 10%);border-color:color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 90%,black 10%)}.checkbox input[type=checkbox]:checked:active:not(:disabled):after{transform:translate(-50%,-60%) scale(.85) rotate(-45deg)}.checkbox input[type=checkbox]:checked:focus{box-shadow:0 0 0 calc(var(--input-size, 1em) / 5) color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 25%,transparent 75%)}.checkbox input[type=checkbox]:indeterminate{border-color:var(--m-checkbox-input-color, var(--m-mm));background-color:var(--m-checkbox-input-color, var(--m-mm))}.checkbox input[type=checkbox]:indeterminate:after{transform:translate(-50%,-50%) scale(1) rotate(0);width:calc(var(--input-size, 1em) * .5);height:0;border-left:none;border-bottom:calc(var(--input-size, 1em) * .12) solid white}.checkbox input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed;border-color:color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 20%,transparent 80%)}.checkbox input[type=checkbox]:disabled:checked:after{opacity:.5}.checkbox{min-height:var(--input-size, 1em)}.radio{display:inline-flex;align-items:center;gap:.375em;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.radio input[type=radio]{appearance:none;-webkit-appearance:none;-moz-appearance:none;margin:0;padding:0;position:relative;width:1em;height:1em;flex-shrink:0;box-sizing:border-box;background-color:transparent;border-radius:50%;border:max(1px,1em * .0625) solid color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 40%,transparent 60%);cursor:pointer;outline:none;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .2s ease;will-change:background-color,box-shadow,border-color}.radio input[type=radio]:after{content:\"\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:.5em;height:.5em;background-color:var(--m-input-wrapper-color, #4169e1);border-radius:50%;transition:transform .25s cubic-bezier(.4,0,.2,1),background-color .2s ease;will-change:transform}.radio{--m-label-margin: 0}.radio input[type=radio]:hover:not(:disabled){border-color:color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 60%,transparent 40%)}.radio input[type=radio]:focus{box-shadow:0 0 0 .2em color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 20%,transparent 80%);outline:none}.radio input[type=radio]:active:not(:disabled):after{transform:translate(-50%,-50%) scale(.85)}.radio input[type=radio]:checked{border-color:var(--m-input-wrapper-color, #4169e1)}.radio input[type=radio]:checked:after{transform:translate(-50%,-50%) scale(1)}.radio input[type=radio]:checked:hover:not(:disabled){border-color:color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 90%,black 10%)}.radio input[type=radio]:checked:hover:not(:disabled):after{background-color:color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 90%,black 10%)}.radio input[type=radio]:checked:active:not(:disabled):after{transform:translate(-50%,-50%) scale(.85)}.radio input[type=radio]:checked:focus{box-shadow:0 0 0 .2em color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 25%,transparent 75%)}.radio input[type=radio]:disabled{opacity:.5;cursor:not-allowed;border-color:color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 20%,transparent 80%)}.radio input[type=radio]:disabled:checked:after{opacity:.5}.radio{min-height:var(--input-size, 1em)}:host-context(.section-form-item__input),:host-context(.m-dynamic-input){display:contents}:host-context(.section-form-item__input) .checkbox,:host-context(.m-dynamic-input) .checkbox{display:flex;align-items:center;width:100%;height:calc(var(--input-size, 1em) * 1.5);min-height:calc(var(--input-size, 1em) * 1.5);padding-block:calc(var(--input-size, 1em) * .125);padding-inline:0;background:transparent;border:none;box-shadow:none;--m-label-margin: 0;--m-label-font-size: var(--input-size, 1em);gap:var(--m-checkbox-input-gap, .5em )}:host-context(.section-form-item__input) .checkbox input[type=checkbox],:host-context(.m-dynamic-input) .checkbox input[type=checkbox]{flex:0 0 auto;margin:0;transform:none;width:var(--input-size, 1em);height:var(--input-size, 1em);border-width:var(--m-input-border-width, 2px);border-style:solid;border-color:var(--m-text-input-border, var(--m-input-color, var(--m-mm)));border-radius:var(--m-input-radius, 4px);background:var(--m-checkbox-square-background, var(--m-background));box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}:host-context(.section-form-item__input) .checkbox input[type=checkbox]:after,:host-context(.m-dynamic-input) .checkbox input[type=checkbox]:after{width:calc(var(--input-size, 1em) * .5);height:calc(var(--input-size, 1em) * .25);border-color:var(--m-input-color, var(--m-mm))}:host-context(.section-form-item__input) .checkbox input[type=checkbox]:hover:not(:disabled),:host-context(.m-dynamic-input) .checkbox input[type=checkbox]:hover:not(:disabled){border-color:var(--m-text-input-hover-border, color-mix(in srgb, var(--m-input-color, var(--m-mm)) 45%, rgba(0, 0, 0, .12)));box-shadow:none;transform:none}:host-context(.section-form-item__input) .checkbox input[type=checkbox]:checked,:host-context(.m-dynamic-input) .checkbox input[type=checkbox]:checked{border-color:var(--m-input-color, var(--m-mm));background-color:var(--m-input-color, var(--m-mm));box-shadow:none;transform:none}:host-context(.section-form-item__input) .checkbox input[type=checkbox]:checked:after,:host-context(.m-dynamic-input) .checkbox input[type=checkbox]:checked:after{border-color:var(--m-background)}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13469
+ `, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:inline-block}.checkbox{--m-checkbox-input-color: var(--m-input-color, var(--m-mm));display:inline-flex;align-items:center;gap:calc(var(--input-size, 1em) * .375);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;padding:2px}.checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;position:relative;width:var(--input-size, 1em);height:var(--input-size, 1em);background-color:rgba(var(--m-checkbox-bg-rgb, 255, 255, 255),.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:calc(var(--input-size, 1em) * .4);border:max(1px,var(--input-size, 1em) * .0625) solid color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 70%,transparent 30%);cursor:pointer;outline:none;box-sizing:border-box;flex-shrink:0;margin:2px;box-shadow:0 0 0 1px color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 15%,transparent 85%),0 2px 12px -3px #0000001a;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .2s ease,transform .2s ease;will-change:background-color,box-shadow}.checkbox input[type=checkbox]:after{content:\"\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0) rotate(-45deg);width:calc(var(--input-size, 1em) * .5);height:calc(var(--input-size, 1em) * .25);border-left:calc(var(--input-size, 1em) * .12) solid var(--m-checkbox-input-color, var(--m-mm));border-bottom:calc(var(--input-size, 1em) * .12) solid var(--m-checkbox-input-color, var(--m-mm));transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .15s ease;will-change:transform;box-shadow:0 calc(var(--input-size, 1em) / 10) calc(var(--input-size, 1em) / 6) #0003,0 calc(var(--input-size, 1em) / 20) calc(var(--input-size, 1em) / 12) #0000001a}.checkbox{--m-label-margin: 0}.checkbox input[type=checkbox]:hover:not(:disabled){border-color:color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 80%,transparent 20%);transform:translateY(-1px);box-shadow:0 4px 15px -3px #00000026,0 0 0 1px color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 25%,transparent 75%)}.checkbox input[type=checkbox]:focus{box-shadow:0 0 0 calc(var(--input-size, 1em) / 5) color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 25%,transparent 75%),0 2px 12px -3px #0000001a;outline:none}.checkbox input[type=checkbox]:active:not(:disabled):after{transform:translate(-50%,-50%) scale(.85) rotate(-45deg)}.checkbox input[type=checkbox]:checked{border-color:var(--m-checkbox-input-color, var(--m-mm));background-color:var(--m-checkbox-input-color, var(--m-mm));box-shadow:0 4px 15px -3px color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 40%,transparent 60%);transform:scale(1.05)}.checkbox input[type=checkbox]:checked:after{transform:translate(-50%,-60%) scale(1) rotate(-45deg);border-color:#fff}.checkbox input[type=checkbox]:checked:hover:not(:disabled){background-color:color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 90%,black 10%);border-color:color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 90%,black 10%)}.checkbox input[type=checkbox]:checked:active:not(:disabled):after{transform:translate(-50%,-60%) scale(.85) rotate(-45deg)}.checkbox input[type=checkbox]:checked:focus{box-shadow:0 0 0 calc(var(--input-size, 1em) / 5) color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 25%,transparent 75%)}.checkbox input[type=checkbox]:indeterminate{border-color:var(--m-checkbox-input-color, var(--m-mm));background-color:var(--m-checkbox-input-color, var(--m-mm))}.checkbox input[type=checkbox]:indeterminate:after{transform:translate(-50%,-50%) scale(1) rotate(0);width:calc(var(--input-size, 1em) * .5);height:0;border-left:none;border-bottom:calc(var(--input-size, 1em) * .12) solid white}.checkbox input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed;border-color:color-mix(in srgb,var(--m-checkbox-input-color, var(--m-mm)) 20%,transparent 80%)}.checkbox input[type=checkbox]:disabled:checked:after{opacity:.5}.checkbox{min-height:var(--input-size, 1em)}.radio{display:inline-flex;align-items:center;gap:.375em;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.radio input[type=radio]{appearance:none;-webkit-appearance:none;-moz-appearance:none;margin:0;padding:0;position:relative;width:1em;height:1em;flex-shrink:0;box-sizing:border-box;background-color:transparent;border-radius:50%;border:max(1px,1em * .0625) solid color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 40%,transparent 60%);cursor:pointer;outline:none;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .2s ease;will-change:background-color,box-shadow,border-color}.radio input[type=radio]:after{content:\"\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:.5em;height:.5em;background-color:var(--m-input-wrapper-color, #4169e1);border-radius:50%;transition:transform .25s cubic-bezier(.4,0,.2,1),background-color .2s ease;will-change:transform}.radio{--m-label-margin: 0}.radio input[type=radio]:hover:not(:disabled){border-color:color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 60%,transparent 40%)}.radio input[type=radio]:focus{box-shadow:0 0 0 .2em color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 20%,transparent 80%);outline:none}.radio input[type=radio]:active:not(:disabled):after{transform:translate(-50%,-50%) scale(.85)}.radio input[type=radio]:checked{border-color:var(--m-input-wrapper-color, #4169e1)}.radio input[type=radio]:checked:after{transform:translate(-50%,-50%) scale(1)}.radio input[type=radio]:checked:hover:not(:disabled){border-color:color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 90%,black 10%)}.radio input[type=radio]:checked:hover:not(:disabled):after{background-color:color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 90%,black 10%)}.radio input[type=radio]:checked:active:not(:disabled):after{transform:translate(-50%,-50%) scale(.85)}.radio input[type=radio]:checked:focus{box-shadow:0 0 0 .2em color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 25%,transparent 75%)}.radio input[type=radio]:disabled{opacity:.5;cursor:not-allowed;border-color:color-mix(in srgb,var(--m-input-wrapper-color, #4169e1) 20%,transparent 80%)}.radio input[type=radio]:disabled:checked:after{opacity:.5}.radio{min-height:var(--input-size, 1em)}:host-context(.section-form-item__input),:host-context(.m-dynamic-input){display:contents}:host-context(.section-form-item__input) .checkbox,:host-context(.m-dynamic-input) .checkbox{display:flex;align-items:center;width:100%;height:calc(var(--input-size, 1em) * 1.5);min-height:calc(var(--input-size, 1em) * 1.5);padding-block:calc(var(--input-size, 1em) * .125);padding-inline:0;background:transparent;border:none;box-shadow:none;--m-label-margin: 0;--m-label-font-size: var(--input-size, 1em);gap:var(--m-checkbox-input-gap, .5em )}:host-context(.section-form-item__input) .checkbox input[type=checkbox],:host-context(.m-dynamic-input) .checkbox input[type=checkbox]{flex:0 0 auto;margin:0;transform:none;width:var(--input-size, 1em);height:var(--input-size, 1em);border-width:var(--m-input-border-width, 2px);border-style:solid;border-color:var(--m-text-input-border, var(--m-input-color, var(--m-mm)));border-radius:var(--m-input-radius, 4px);background:var(--m-checkbox-square-background, var(--m-background));box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}:host-context(.section-form-item__input) .checkbox input[type=checkbox]:after,:host-context(.m-dynamic-input) .checkbox input[type=checkbox]:after{width:calc(var(--input-size, 1em) * .5);height:calc(var(--input-size, 1em) * .25);border-color:var(--m-input-color, var(--m-mm))}:host-context(.section-form-item__input) .checkbox input[type=checkbox]:hover:not(:disabled),:host-context(.m-dynamic-input) .checkbox input[type=checkbox]:hover:not(:disabled){border-color:var(--m-text-input-hover-border, color-mix(in srgb, var(--m-input-color, var(--m-mm)) 45%, rgba(0, 0, 0, .12)));box-shadow:none;transform:none}:host-context(.section-form-item__input) .checkbox input[type=checkbox]:checked,:host-context(.m-dynamic-input) .checkbox input[type=checkbox]:checked{border-color:var(--m-input-color, var(--m-mm));background-color:var(--m-input-color, var(--m-mm));box-shadow:none;transform:none}:host-context(.section-form-item__input) .checkbox input[type=checkbox]:checked:after,:host-context(.m-dynamic-input) .checkbox input[type=checkbox]:checked:after{border-color:var(--m-background)}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13419
13470
  }
13420
13471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CheckboxInputComponent, decorators: [{
13421
13472
  type: Component,
@@ -13562,7 +13613,11 @@ class DropdownBoxComponent {
13562
13613
  (click)="$event.preventDefault()"
13563
13614
  />
13564
13615
  }
13565
- {{ option.label | translate }}
13616
+ @if (option.noTranslate) {
13617
+ {{ option.label }}
13618
+ } @else {
13619
+ {{ option.label | translate }}
13620
+ }
13566
13621
  </li>
13567
13622
  } @empty {
13568
13623
  <li class="dropdown-box__empty">
@@ -13598,7 +13653,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
13598
13653
  (click)="$event.preventDefault()"
13599
13654
  />
13600
13655
  }
13601
- {{ option.label | translate }}
13656
+ @if (option.noTranslate) {
13657
+ {{ option.label }}
13658
+ } @else {
13659
+ {{ option.label | translate }}
13660
+ }
13602
13661
  </li>
13603
13662
  } @empty {
13604
13663
  <li class="dropdown-box__empty">
@@ -13771,12 +13830,20 @@ class DropdownInputComponent extends BaseInputComponent {
13771
13830
  }, ...(ngDevMode ? [{ debugName: "dropdownOptions" }] : /* istanbul ignore next */ []));
13772
13831
  translateService = inject(TranslateService);
13773
13832
  assetOptions = assetOptions(() => this.config()?.optionsAsset);
13833
+ /** An option's text: authored as it stands, a key translated. */
13834
+ optionLabel = (option) => {
13835
+ if (!option?.label)
13836
+ return '';
13837
+ return option.noTranslate
13838
+ ? option.label
13839
+ : this.translateService.translate(option.label);
13840
+ };
13774
13841
  filteredOptions = computed(() => {
13775
13842
  const search = this.searchTerm().toLowerCase();
13776
13843
  if (!search)
13777
13844
  return this.dropdownOptions();
13778
13845
  return this.dropdownOptions().filter((o) => {
13779
- const label = this.translateService.translate(o.label).toLowerCase();
13846
+ const label = this.optionLabel(o).toLowerCase();
13780
13847
  return label.includes(search) || o.value.toLowerCase().includes(search);
13781
13848
  });
13782
13849
  }, ...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
@@ -13789,8 +13856,7 @@ class DropdownInputComponent extends BaseInputComponent {
13789
13856
  if (val.length === 0)
13790
13857
  return '';
13791
13858
  if (val.length === 1) {
13792
- const option = this.dropdownOptions().find((o) => o.value === val[0]);
13793
- return option?.label ? this.translateService.translate(option.label) : '';
13859
+ return this.optionLabel(this.dropdownOptions().find((o) => o.value === val[0]));
13794
13860
  }
13795
13861
  const translation = this.translateService.translate(`selected?count=${val.length}`);
13796
13862
  return translation.includes('selected') ? `${val.length} Selected` : translation;
@@ -13798,8 +13864,7 @@ class DropdownInputComponent extends BaseInputComponent {
13798
13864
  return '';
13799
13865
  }
13800
13866
  else {
13801
- const option = this.dropdownOptions().find((o) => o.value === val);
13802
- return option?.label ? this.translateService.translate(option.label) : '';
13867
+ return this.optionLabel(this.dropdownOptions().find((o) => o.value === val));
13803
13868
  }
13804
13869
  }, ...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
13805
13870
  placeholderText = computed(() => {
@@ -13809,17 +13874,16 @@ class DropdownInputComponent extends BaseInputComponent {
13809
13874
  if (this.isMultiselect()) {
13810
13875
  if (Array.isArray(val) && val.length > 0) {
13811
13876
  if (val.length === 1) {
13812
- const option = this.dropdownOptions().find((o) => o.value === val[0]);
13813
- return option?.label ? this.translateService.translate(option.label) : '';
13877
+ return this.optionLabel(this.dropdownOptions().find((o) => o.value === val[0]));
13814
13878
  }
13815
13879
  const translation = this.translateService.translate(`selected?count=${val.length}`);
13816
13880
  return translation.includes('selected') ? `${val.length} Selected` : translation;
13817
13881
  }
13818
13882
  }
13819
13883
  else {
13820
- const option = this.dropdownOptions().find((o) => o.value === val);
13821
- if (option?.label)
13822
- return this.translateService.translate(option.label);
13884
+ const label = this.optionLabel(this.dropdownOptions().find((o) => o.value === val));
13885
+ if (label)
13886
+ return label;
13823
13887
  }
13824
13888
  }
13825
13889
  return config?.placeholder
@@ -13925,7 +13989,7 @@ class DropdownInputComponent extends BaseInputComponent {
13925
13989
  }
13926
13990
  }
13927
13991
  }
13928
- `, 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:contents}.trigger-wrap{position:relative;--m-text-input-padding-right: 2.25em }.trigger-wrap m-button{position:absolute;right:0;top:0;bottom:0;--m-button-size: 1em !important}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }, { kind: "component", type: TextInputComponent, selector: "m-text-input", inputs: ["value", "config", "required", "disabled", "invalid", "touched", "focused", "errors", "hideErrors"], outputs: ["valueChange", "touchedChange"] }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: SelectorDirective, selector: "[mSelector]", inputs: ["mSelector", "disabled"], outputs: ["opened", "closed"], exportAs: ["mSelector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13992
+ `, 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:contents}.trigger-wrap{position:relative;--m-text-input-padding-right: 2.25em }.trigger-wrap m-button{position:absolute;right:0;top:0;bottom:0;--m-button-size: 1em !important}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }, { kind: "component", type: TextInputComponent, selector: "m-text-input", inputs: ["value", "config", "required", "disabled", "invalid", "touched", "focused", "errors", "hideErrors"], outputs: ["valueChange", "touchedChange"] }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: SelectorDirective, selector: "[mSelector]", inputs: ["mSelector", "disabled"], outputs: ["opened", "closed"], exportAs: ["mSelector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13929
13993
  }
13930
13994
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DropdownInputComponent, decorators: [{
13931
13995
  type: Component,
@@ -14887,7 +14951,7 @@ class ColorPickerInputComponent extends BaseTextInputComponent {
14887
14951
  }
14888
14952
  }
14889
14953
  }
14890
- `, 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%}.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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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%;gap:.5rem;height:2.5rem;min-height:2.5rem;padding:0 .75rem}.input-wrapper .m-icon{--m-icon-size: 1rem !important}.input-wrapper .m-button{--m-button-size: 1rem !important}.color-picker-trigger{appearance:none;border:none;outline:none;flex:1;height:100%;background:transparent;color:var(--m-text);font-family:inherit;font-size:1rem;padding:0}.color-picker-trigger:focus{border-color:transparent;box-shadow:none}.color-picker-trigger.has-icon{padding-left:0}.color-picker-trigger.error{color:var(--m-error)}.color-picker-trigger--open{color:var(--m-focus)}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }, { 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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: SelectorDirective, selector: "[mSelector]", inputs: ["mSelector", "disabled"], outputs: ["opened", "closed"], exportAs: ["mSelector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14954
+ `, 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%}.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:focus-visible:not(:disabled),.input-wrapper:focus-within:not(:disabled){box-shadow:0 0 0 2px color-mix(in srgb,var(--m-input-color, var(--m-mm)) 20%,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, var(--m-focus));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%;gap:.5rem;height:2.5rem;min-height:2.5rem;padding:0 .75rem}.input-wrapper .m-icon{--m-icon-size: 1rem !important}.input-wrapper .m-button{--m-button-size: 1rem !important}.color-picker-trigger{appearance:none;border:none;outline:none;flex:1;height:100%;background:transparent;color:var(--m-text);font-family:inherit;font-size:1rem;padding:0}.color-picker-trigger:focus{border-color:transparent;box-shadow:none}.color-picker-trigger.has-icon{padding-left:0}.color-picker-trigger.error{color:var(--m-error)}.color-picker-trigger--open{color:var(--m-focus)}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }, { 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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "directive", type: SelectorDirective, selector: "[mSelector]", inputs: ["mSelector", "disabled"], outputs: ["opened", "closed"], exportAs: ["mSelector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14891
14955
  }
14892
14956
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ColorPickerInputComponent, decorators: [{
14893
14957
  type: Component,
@@ -15012,6 +15076,15 @@ class WrapperInputComponent extends ConfigComponent {
15012
15076
  dir = input(...(ngDevMode ? [undefined, { debugName: "dir" }] : /* istanbul ignore next */ []));
15013
15077
  element = input(...(ngDevMode ? [undefined, { debugName: "element" }] : /* istanbul ignore next */ []));
15014
15078
  data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
15079
+ // A card body written as an `ng-template` rather than mounted as a class.
15080
+ // Rides as an input because this Field is created dynamically — a
15081
+ // ViewContainerRef mounts a component, so there are no tags to project
15082
+ // between and the host hands its `#ref` across instead.
15083
+ template = input(...(ngDevMode ? [undefined, { debugName: "template" }] : /* istanbul ignore next */ []));
15084
+ // …and an `ng-template` written between this tag's own is the same body, so
15085
+ // it is picked up here and handed down as that input.
15086
+ projectedTemplate = contentChild((TemplateRef), ...(ngDevMode ? [{ debugName: "projectedTemplate" }] : /* istanbul ignore next */ []));
15087
+ cardTemplate = computed(() => this.template() ?? this.projectedTemplate(), ...(ngDevMode ? [{ debugName: "cardTemplate" }] : /* istanbul ignore next */ []));
15015
15088
  aclResolver = input(undefined, ...(ngDevMode ? [{ debugName: "aclResolver" }] : /* istanbul ignore next */ []));
15016
15089
  formValues = input(undefined, ...(ngDevMode ? [{ debugName: "formValues" }] : /* istanbul ignore next */ []));
15017
15090
  act = output();
@@ -15209,7 +15282,7 @@ class WrapperInputComponent extends ConfigComponent {
15209
15282
  break;
15210
15283
  }
15211
15284
  case InputType.TOGGLE: {
15212
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-Cjhb-4Y_.mjs');
15285
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-CnomBrUJ.mjs');
15213
15286
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
15214
15287
  break;
15215
15288
  }
@@ -15221,12 +15294,12 @@ class WrapperInputComponent extends ConfigComponent {
15221
15294
  break;
15222
15295
  }
15223
15296
  case InputType.PASSWORD: {
15224
- const { PasswordInputComponent } = await import('./magmonium-one-password-CIKDqcyv.mjs');
15297
+ const { PasswordInputComponent } = await import('./magmonium-one-password-Bkg2rz6j.mjs');
15225
15298
  this.createDynamicComponent(seq, PasswordInputComponent);
15226
15299
  break;
15227
15300
  }
15228
15301
  case InputType.OTP: {
15229
- const { OtpInputComponent } = await import('./magmonium-one-otp-CO5CHVV4.mjs');
15302
+ const { OtpInputComponent } = await import('./magmonium-one-otp-D78eK88b.mjs');
15230
15303
  this.createDynamicComponent(seq, OtpInputComponent);
15231
15304
  break;
15232
15305
  }
@@ -15285,6 +15358,7 @@ class WrapperInputComponent extends ConfigComponent {
15285
15358
  const { SelectableCardInputComponent } = await Promise.resolve().then(function () { return selectableCard; });
15286
15359
  this.createDynamicComponent(seq, SelectableCardInputComponent, [
15287
15360
  inputBinding('element', this.element),
15361
+ inputBinding('template', this.cardTemplate),
15288
15362
  inputBinding('data', this.data),
15289
15363
  inputBinding('options', this.options),
15290
15364
  ]);
@@ -15311,7 +15385,7 @@ class WrapperInputComponent extends ConfigComponent {
15311
15385
  }
15312
15386
  };
15313
15387
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WrapperInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15314
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: WrapperInputComponent, isStandalone: true, selector: "m-input-wrapper", inputs: { remote: { classPropertyName: "remote", publicName: "remote", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, aclResolver: { classPropertyName: "aclResolver", publicName: "aclResolver", isSignal: true, isRequired: false, transformFunction: null }, formValues: { classPropertyName: "formValues", publicName: "formValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", state: "stateChange", act: "act", fieldKey: "fieldKey" }, host: { properties: { "style.display": "isVisible() ? null : \"none\"" } }, viewQueries: [{ propertyName: "dynamicInput", first: true, predicate: ["dynamicInput"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
15388
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: WrapperInputComponent, isStandalone: true, selector: "m-input-wrapper", inputs: { remote: { classPropertyName: "remote", publicName: "remote", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, aclResolver: { classPropertyName: "aclResolver", publicName: "aclResolver", isSignal: true, isRequired: false, transformFunction: null }, formValues: { classPropertyName: "formValues", publicName: "formValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", state: "stateChange", act: "act", fieldKey: "fieldKey" }, host: { properties: { "style.display": "isVisible() ? null : \"none\"" } }, queries: [{ propertyName: "projectedTemplate", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "dynamicInput", first: true, predicate: ["dynamicInput"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
15315
15389
  @if (isVisible()) {
15316
15390
  <div
15317
15391
  class="m-input-wrapper"
@@ -15374,7 +15448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
15374
15448
  </div>
15375
15449
  }
15376
15450
  `, 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:block;width:100%}.m-input-wrapper{display:flex;align-items:flex-end;gap:calc(var(--input-size, 1em) * .375);width:100%}.m-input-wrapper--has-label{padding-top:var(--m-input-wrapper-label-padding-top, .5em )}.m-input-wrapper--inline{align-items:center;padding-top:0;min-height:0}.m-input-wrapper--readonly .m-dynamic-input{opacity:.6;filter:grayscale(.5);pointer-events:none;cursor:not-allowed}.m-input-wrapper--readonly .m-dynamic-input,.m-input-wrapper--readonly .m-dynamic-input *{animation:none!important;transition:none!important;box-shadow:none!important}.m-input-wrapper .m-button{flex-shrink:0;--m-button-size: var(--input-size, 1em);--m-icon-size: calc(var(--input-size, 1em) * 1.1)}.m-dynamic-input{flex:1;min-width:0}\n"] }]
15377
- }], ctorParameters: () => [], propDecorators: { remote: [{ type: i0.Input, args: [{ isSignal: true, alias: "remote", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], aclResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "aclResolver", required: false }] }], formValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "formValues", required: false }] }], act: [{ type: i0.Output, args: ["act"] }], fieldKey: [{ type: i0.Output, args: ["fieldKey"] }], dynamicInput: [{ type: i0.ViewChild, args: ['dynamicInput', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
15451
+ }], ctorParameters: () => [], propDecorators: { remote: [{ type: i0.Input, args: [{ isSignal: true, alias: "remote", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], projectedTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], aclResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "aclResolver", required: false }] }], formValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "formValues", required: false }] }], act: [{ type: i0.Output, args: ["act"] }], fieldKey: [{ type: i0.Output, args: ["fieldKey"] }], dynamicInput: [{ type: i0.ViewChild, args: ['dynamicInput', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
15378
15452
 
15379
15453
  class RangeInputComponent extends BaseTextInputComponent {
15380
15454
  _track = viewChild('track', ...(ngDevMode ? [{ debugName: "_track" }] : /* istanbul ignore next */ []));
@@ -15821,7 +15895,7 @@ class RadioGroupComponent extends BaseTextInputComponent {
15821
15895
  }
15822
15896
  }
15823
15897
  }
15824
- `, 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)}}.radio-group{display:flex;gap:1em}.radio-group.radio-group--vertical{flex-direction:column}\n"], dependencies: [{ kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15898
+ `, 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)}}.radio-group{display:flex;gap:1em}.radio-group.radio-group--vertical{flex-direction:column}\n"], dependencies: [{ kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15825
15899
  }
15826
15900
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RadioGroupComponent, decorators: [{
15827
15901
  type: Component,
@@ -16205,9 +16279,19 @@ var toggleRadio = /*#__PURE__*/Object.freeze({
16205
16279
  ToggleRadioInputComponent: ToggleRadioInputComponent
16206
16280
  });
16207
16281
 
16282
+ // Stand-ins for a card list that has no options yet — DesignMode only. They
16283
+ // carry no label: nothing is mapped to them yet, and a name shown here would
16284
+ // read as a choice the Field offers. Bare boxes say the shape and no more.
16285
+ const DESIGN_STUB_IDS = ['stub-1', 'stub-2', 'stub-3'];
16208
16286
  class SelectableCardInputComponent extends BaseInputComponent {
16209
16287
  element = input(...(ngDevMode ? [undefined, { debugName: "element" }] : /* istanbul ignore next */ []));
16210
16288
  data = input([], ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
16289
+ // A card body written inline instead of mounted as a component. `element`
16290
+ // takes a class because a card is instantiated per row and the markup has
16291
+ // nowhere to write its selector; an `ng-template` has the same reach without
16292
+ // a class, and `ng-content` has none at all — it projects once, so inside the
16293
+ // `@for` it would land in one card and leave the rest empty.
16294
+ template = input(...(ngDevMode ? [undefined, { debugName: "template" }] : /* istanbul ignore next */ []));
16211
16295
  options = input(...(ngDevMode ? [undefined, { debugName: "options" }] : /* istanbul ignore next */ []));
16212
16296
  value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
16213
16297
  assetOptions = assetOptions(() => this.config()?.optionsAsset);
@@ -16222,11 +16306,20 @@ class SelectableCardInputComponent extends BaseInputComponent {
16222
16306
  return source;
16223
16307
  return this.assetOptions();
16224
16308
  }, ...(ngDevMode ? [{ debugName: "cardOptions" }] : /* istanbul ignore next */ []));
16309
+ // A SelectableCard is its cards and nothing else — no label of its own, no
16310
+ // box around them — so with no options it draws nothing at all. Shipped that
16311
+ // is right; on a Canvas it leaves a Control the User cannot see, select or
16312
+ // move, because control-layer measures its overlay off the rendered rect.
16313
+ isDesignMode = !!inject(IS_DESIGN_MODE, { optional: true });
16225
16314
  items = computed(() => {
16226
16315
  const data = this.data() ?? [];
16227
16316
  if (data.length)
16228
16317
  return data;
16229
- return this.cardOptions().map((option) => ({
16318
+ const options = this.cardOptions();
16319
+ if (!options.length && this.isDesignMode) {
16320
+ return DESIGN_STUB_IDS.map((id) => ({ id }));
16321
+ }
16322
+ return options.map((option) => ({
16230
16323
  id: option.value,
16231
16324
  disabled: option.disabled,
16232
16325
  }));
@@ -16248,6 +16341,22 @@ class SelectableCardInputComponent extends BaseInputComponent {
16248
16341
  disabled,
16249
16342
  ...(item.inputs ?? {}),
16250
16343
  });
16344
+ // The body written between the tags. A bound `template` wins over it the way
16345
+ // `data` wins over `options`: what a caller passes at runtime is the more
16346
+ // deliberate of the two, and a projected template is the default a host
16347
+ // writes once.
16348
+ projectedTemplate = contentChild((TemplateRef), ...(ngDevMode ? [{ debugName: "projectedTemplate" }] : /* istanbul ignore next */ []));
16349
+ cardTemplate = computed(() => this.template() ?? this.projectedTemplate(), ...(ngDevMode ? [{ debugName: "cardTemplate" }] : /* istanbul ignore next */ []));
16350
+ cardContext = (item, selected, disabled, index, first, last) => ({
16351
+ $implicit: item,
16352
+ item,
16353
+ row: item.row,
16354
+ selected,
16355
+ disabled,
16356
+ index,
16357
+ first,
16358
+ last,
16359
+ });
16251
16360
  onCardClick = (id) => {
16252
16361
  if (this.readonly() || this.disabled())
16253
16362
  return;
@@ -16269,8 +16378,15 @@ class SelectableCardInputComponent extends BaseInputComponent {
16269
16378
  this.onCardClick(id);
16270
16379
  };
16271
16380
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectableCardInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
16272
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SelectableCardInputComponent, isStandalone: true, selector: "m-selectable-card", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, usesInheritance: true, ngImport: i0, template: `
16381
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SelectableCardInputComponent, isStandalone: true, selector: "m-selectable-card", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, queries: [{ propertyName: "projectedTemplate", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
16273
16382
  @if (config(); as cfg) {
16383
+ @if (cfg.label) {
16384
+ <m-label
16385
+ [placeholder]="cfg.label"
16386
+ [required]="required()"
16387
+ [disabled]="disabled()"
16388
+ />
16389
+ }
16274
16390
  <div
16275
16391
  class="selectable-card"
16276
16392
  [class.selectable-card--vertical]="cfg.vertical"
@@ -16298,6 +16414,10 @@ class SelectableCardInputComponent extends BaseInputComponent {
16298
16414
  <ng-container
16299
16415
  *ngComponentOutlet="element()!; inputs: cardInputs(item, selected, effectiveDisabled)"
16300
16416
  />
16417
+ } @else if (cardTemplate(); as tpl) {
16418
+ <ng-container
16419
+ *ngTemplateOutlet="tpl; context: cardContext(item, selected, effectiveDisabled, $index, $first, $last)"
16420
+ />
16301
16421
  } @else if (labels()[item.id]; as label) {
16302
16422
  @if (icons()[item.id]; as icon) {
16303
16423
  <m-icon class="selectable-card__icon" [name]="icon" />
@@ -16323,12 +16443,19 @@ class SelectableCardInputComponent extends BaseInputComponent {
16323
16443
  }
16324
16444
  </div>
16325
16445
  }
16326
- `, 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%;max-width:100%;min-width:0}.selectable-card{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.selectable-card--vertical{flex-direction:column;flex-wrap:nowrap}.selectable-card--vertical .selectable-card__item{width:100%;max-width:100%;min-width:0;align-items:flex-start}.selectable-card--vertical .selectable-card__indicator{padding-top:.125rem}.selectable-card--vertical .selectable-card__content{align-items:flex-start}.selectable-card__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:2px solid var(--border, var(--m-border));border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--background, var(--m-background));transition:border-color .2s ease,box-shadow .2s ease,background .15s ease;box-sizing:border-box;max-width:100%;min-width:0}.selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px color-mix(in srgb,var(--mm-color, var(--m-mm)) 20%,transparent 80%)}.selectable-card__item--selected{border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px var(--mm-color, var(--m-mm));background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 5%,var(--background, var(--m-background)) 95%)}.selectable-card__item--selected:hover:not(.selectable-card__item--disabled){box-shadow:0 0 0 2px var(--mm-color, var(--m-mm))}.selectable-card__item:focus-visible{outline:2px solid var(--mm-color, var(--m-mm));outline-offset:2px}.selectable-card__item--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.selectable-card__content{flex:1;min-width:0;max-width:100%;display:flex;align-items:center;gap:.5rem}.selectable-card__content>*{flex:1;min-width:0;max-width:100%}.selectable-card__icon{flex-shrink:0;display:flex}.selectable-card__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectable-card__indicator{flex-shrink:0;display:flex;align-items:center}.selectable-card__indicator input[type=checkbox],.selectable-card__indicator input[type=radio]{appearance:none;-webkit-appearance:none;width:1.125rem;height:1.125rem;border:2px solid color-mix(in srgb,var(--mm-color, var(--m-mm)) 50%,transparent 50%);border-radius:.25rem;background:transparent;cursor:pointer;box-sizing:border-box;transition:background .2s ease,border-color .2s ease;position:relative;flex-shrink:0}.selectable-card__indicator input[type=checkbox][type=radio],.selectable-card__indicator input[type=radio][type=radio]{border-radius:50%}.selectable-card__indicator input[type=checkbox]:checked,.selectable-card__indicator input[type=radio]:checked{background:var(--mm-color, var(--m-mm));border-color:var(--mm-color, var(--m-mm))}.selectable-card__indicator input[type=checkbox]:checked:after,.selectable-card__indicator input[type=radio]:checked:after{content:\"\";position:absolute;top:50%;left:50%}.selectable-card__indicator input[type=checkbox][type=checkbox]:checked:after,.selectable-card__indicator input[type=radio][type=checkbox]:checked:after{width:.35rem;height:.2rem;border-left:2px solid white;border-bottom:2px solid white;transform:translate(-50%,-65%) rotate(-45deg)}.selectable-card__indicator input[type=checkbox][type=radio]:checked:after,.selectable-card__indicator input[type=radio][type=radio]:checked:after{width:.4rem;height:.4rem;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.selectable-card__indicator input[type=checkbox]:disabled,.selectable-card__indicator input[type=radio]:disabled{opacity:.5;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16446
+ `, 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%;max-width:100%;min-width:0}.selectable-card{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.selectable-card--vertical{flex-direction:column;flex-wrap:nowrap}.selectable-card--vertical .selectable-card__item{width:100%;max-width:100%;min-width:0;align-items:flex-start}.selectable-card--vertical .selectable-card__indicator{padding-top:.125rem}.selectable-card--vertical .selectable-card__content{align-items:flex-start}.selectable-card__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:2px solid var(--border, var(--m-border));border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--background, var(--m-background));transition:border-color .2s ease,box-shadow .2s ease,background .15s ease;box-sizing:border-box;max-width:100%;min-width:0}.selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px color-mix(in srgb,var(--mm-color, var(--m-mm)) 20%,transparent 80%)}.selectable-card__item--selected{border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px var(--mm-color, var(--m-mm));background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 5%,var(--background, var(--m-background)) 95%)}.selectable-card__item--selected:hover:not(.selectable-card__item--disabled){box-shadow:0 0 0 2px var(--mm-color, var(--m-mm))}.selectable-card__item:focus-visible{outline:2px solid var(--mm-color, var(--m-mm));outline-offset:2px}.selectable-card__item--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.selectable-card__content{flex:1;min-width:0;max-width:100%;display:flex;align-items:center;gap:.5rem}.selectable-card__content>*{flex:1;min-width:0;max-width:100%}.selectable-card__icon{flex-shrink:0;display:flex}.selectable-card__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectable-card__indicator{flex-shrink:0;display:flex;align-items:center}.selectable-card__indicator input[type=checkbox],.selectable-card__indicator input[type=radio]{appearance:none;-webkit-appearance:none;width:1.125rem;height:1.125rem;border:2px solid color-mix(in srgb,var(--mm-color, var(--m-mm)) 50%,transparent 50%);border-radius:.25rem;background:transparent;cursor:pointer;box-sizing:border-box;transition:background .2s ease,border-color .2s ease;position:relative;flex-shrink:0}.selectable-card__indicator input[type=checkbox][type=radio],.selectable-card__indicator input[type=radio][type=radio]{border-radius:50%}.selectable-card__indicator input[type=checkbox]:checked,.selectable-card__indicator input[type=radio]:checked{background:var(--mm-color, var(--m-mm));border-color:var(--mm-color, var(--m-mm))}.selectable-card__indicator input[type=checkbox]:checked:after,.selectable-card__indicator input[type=radio]:checked:after{content:\"\";position:absolute;top:50%;left:50%}.selectable-card__indicator input[type=checkbox][type=checkbox]:checked:after,.selectable-card__indicator input[type=radio][type=checkbox]:checked:after{width:.35rem;height:.2rem;border-left:2px solid white;border-bottom:2px solid white;transform:translate(-50%,-65%) rotate(-45deg)}.selectable-card__indicator input[type=checkbox][type=radio]:checked:after,.selectable-card__indicator input[type=radio][type=radio]:checked:after{width:.4rem;height:.4rem;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.selectable-card__indicator input[type=checkbox]:disabled,.selectable-card__indicator input[type=radio]:disabled{opacity:.5;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16327
16447
  }
16328
16448
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectableCardInputComponent, decorators: [{
16329
16449
  type: Component,
16330
16450
  args: [{ selector: 'm-selectable-card', template: `
16331
16451
  @if (config(); as cfg) {
16452
+ @if (cfg.label) {
16453
+ <m-label
16454
+ [placeholder]="cfg.label"
16455
+ [required]="required()"
16456
+ [disabled]="disabled()"
16457
+ />
16458
+ }
16332
16459
  <div
16333
16460
  class="selectable-card"
16334
16461
  [class.selectable-card--vertical]="cfg.vertical"
@@ -16356,6 +16483,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
16356
16483
  <ng-container
16357
16484
  *ngComponentOutlet="element()!; inputs: cardInputs(item, selected, effectiveDisabled)"
16358
16485
  />
16486
+ } @else if (cardTemplate(); as tpl) {
16487
+ <ng-container
16488
+ *ngTemplateOutlet="tpl; context: cardContext(item, selected, effectiveDisabled, $index, $first, $last)"
16489
+ />
16359
16490
  } @else if (labels()[item.id]; as label) {
16360
16491
  @if (icons()[item.id]; as icon) {
16361
16492
  <m-icon class="selectable-card__icon" [name]="icon" />
@@ -16381,8 +16512,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
16381
16512
  }
16382
16513
  </div>
16383
16514
  }
16384
- `, imports: [NgComponentOutlet, TranslatePipe, IconComponent], 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:block;width:100%;max-width:100%;min-width:0}.selectable-card{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.selectable-card--vertical{flex-direction:column;flex-wrap:nowrap}.selectable-card--vertical .selectable-card__item{width:100%;max-width:100%;min-width:0;align-items:flex-start}.selectable-card--vertical .selectable-card__indicator{padding-top:.125rem}.selectable-card--vertical .selectable-card__content{align-items:flex-start}.selectable-card__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:2px solid var(--border, var(--m-border));border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--background, var(--m-background));transition:border-color .2s ease,box-shadow .2s ease,background .15s ease;box-sizing:border-box;max-width:100%;min-width:0}.selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px color-mix(in srgb,var(--mm-color, var(--m-mm)) 20%,transparent 80%)}.selectable-card__item--selected{border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px var(--mm-color, var(--m-mm));background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 5%,var(--background, var(--m-background)) 95%)}.selectable-card__item--selected:hover:not(.selectable-card__item--disabled){box-shadow:0 0 0 2px var(--mm-color, var(--m-mm))}.selectable-card__item:focus-visible{outline:2px solid var(--mm-color, var(--m-mm));outline-offset:2px}.selectable-card__item--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.selectable-card__content{flex:1;min-width:0;max-width:100%;display:flex;align-items:center;gap:.5rem}.selectable-card__content>*{flex:1;min-width:0;max-width:100%}.selectable-card__icon{flex-shrink:0;display:flex}.selectable-card__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectable-card__indicator{flex-shrink:0;display:flex;align-items:center}.selectable-card__indicator input[type=checkbox],.selectable-card__indicator input[type=radio]{appearance:none;-webkit-appearance:none;width:1.125rem;height:1.125rem;border:2px solid color-mix(in srgb,var(--mm-color, var(--m-mm)) 50%,transparent 50%);border-radius:.25rem;background:transparent;cursor:pointer;box-sizing:border-box;transition:background .2s ease,border-color .2s ease;position:relative;flex-shrink:0}.selectable-card__indicator input[type=checkbox][type=radio],.selectable-card__indicator input[type=radio][type=radio]{border-radius:50%}.selectable-card__indicator input[type=checkbox]:checked,.selectable-card__indicator input[type=radio]:checked{background:var(--mm-color, var(--m-mm));border-color:var(--mm-color, var(--m-mm))}.selectable-card__indicator input[type=checkbox]:checked:after,.selectable-card__indicator input[type=radio]:checked:after{content:\"\";position:absolute;top:50%;left:50%}.selectable-card__indicator input[type=checkbox][type=checkbox]:checked:after,.selectable-card__indicator input[type=radio][type=checkbox]:checked:after{width:.35rem;height:.2rem;border-left:2px solid white;border-bottom:2px solid white;transform:translate(-50%,-65%) rotate(-45deg)}.selectable-card__indicator input[type=checkbox][type=radio]:checked:after,.selectable-card__indicator input[type=radio][type=radio]:checked:after{width:.4rem;height:.4rem;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.selectable-card__indicator input[type=checkbox]:disabled,.selectable-card__indicator input[type=radio]:disabled{opacity:.5;cursor:not-allowed}\n"] }]
16385
- }], propDecorators: { element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
16515
+ `, imports: [
16516
+ NgComponentOutlet,
16517
+ NgTemplateOutlet,
16518
+ TranslatePipe,
16519
+ IconComponent,
16520
+ LabelComponent,
16521
+ ], 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:block;width:100%;max-width:100%;min-width:0}.selectable-card{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.selectable-card--vertical{flex-direction:column;flex-wrap:nowrap}.selectable-card--vertical .selectable-card__item{width:100%;max-width:100%;min-width:0;align-items:flex-start}.selectable-card--vertical .selectable-card__indicator{padding-top:.125rem}.selectable-card--vertical .selectable-card__content{align-items:flex-start}.selectable-card__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:2px solid var(--border, var(--m-border));border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--background, var(--m-background));transition:border-color .2s ease,box-shadow .2s ease,background .15s ease;box-sizing:border-box;max-width:100%;min-width:0}.selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px color-mix(in srgb,var(--mm-color, var(--m-mm)) 20%,transparent 80%)}.selectable-card__item--selected{border-color:var(--mm-color, var(--m-mm));box-shadow:0 0 0 1px var(--mm-color, var(--m-mm));background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 5%,var(--background, var(--m-background)) 95%)}.selectable-card__item--selected:hover:not(.selectable-card__item--disabled){box-shadow:0 0 0 2px var(--mm-color, var(--m-mm))}.selectable-card__item:focus-visible{outline:2px solid var(--mm-color, var(--m-mm));outline-offset:2px}.selectable-card__item--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.selectable-card__content{flex:1;min-width:0;max-width:100%;display:flex;align-items:center;gap:.5rem}.selectable-card__content>*{flex:1;min-width:0;max-width:100%}.selectable-card__icon{flex-shrink:0;display:flex}.selectable-card__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectable-card__indicator{flex-shrink:0;display:flex;align-items:center}.selectable-card__indicator input[type=checkbox],.selectable-card__indicator input[type=radio]{appearance:none;-webkit-appearance:none;width:1.125rem;height:1.125rem;border:2px solid color-mix(in srgb,var(--mm-color, var(--m-mm)) 50%,transparent 50%);border-radius:.25rem;background:transparent;cursor:pointer;box-sizing:border-box;transition:background .2s ease,border-color .2s ease;position:relative;flex-shrink:0}.selectable-card__indicator input[type=checkbox][type=radio],.selectable-card__indicator input[type=radio][type=radio]{border-radius:50%}.selectable-card__indicator input[type=checkbox]:checked,.selectable-card__indicator input[type=radio]:checked{background:var(--mm-color, var(--m-mm));border-color:var(--mm-color, var(--m-mm))}.selectable-card__indicator input[type=checkbox]:checked:after,.selectable-card__indicator input[type=radio]:checked:after{content:\"\";position:absolute;top:50%;left:50%}.selectable-card__indicator input[type=checkbox][type=checkbox]:checked:after,.selectable-card__indicator input[type=radio][type=checkbox]:checked:after{width:.35rem;height:.2rem;border-left:2px solid white;border-bottom:2px solid white;transform:translate(-50%,-65%) rotate(-45deg)}.selectable-card__indicator input[type=checkbox][type=radio]:checked:after,.selectable-card__indicator input[type=radio][type=radio]:checked:after{width:.4rem;height:.4rem;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.selectable-card__indicator input[type=checkbox]:disabled,.selectable-card__indicator input[type=radio]:disabled{opacity:.5;cursor:not-allowed}\n"] }]
16522
+ }], propDecorators: { element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], projectedTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
16386
16523
 
16387
16524
  var selectableCard = /*#__PURE__*/Object.freeze({
16388
16525
  __proto__: null,
@@ -16439,7 +16576,7 @@ class RatingInputComponent extends BaseInputComponent {
16439
16576
  this.hoverValue.set(null);
16440
16577
  };
16441
16578
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RatingInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
16442
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: RatingInputComponent, isStandalone: true, selector: "m-rating-input", 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 } }, outputs: { value: "valueChange", touched: "touchedChange" }, usesInheritance: true, ngImport: i0, template: "@if (config(); as rating) {\n @if (rating.label) {\n <m-label\n [for]=\"rating.name ?? ''\"\n [placeholder]=\"rating.label\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n />\n }\n\n <div class=\"rating\" [class.rating--error]=\"showErrors()\">\n <div\n class=\"rating__stars\"\n [class.rating__stars--interactive]=\"interactive()\"\n [class.rating__stars--disabled]=\"disabled()\"\n (mouseleave)=\"onLeave()\"\n >\n <!-- Hidden SVG for per-star gradient defs -->\n <svg width=\"0\" height=\"0\" aria-hidden=\"true\" class=\"rating__defs\">\n <defs>\n @for (star of stars; track star) {\n <linearGradient [id]=\"'star-grad-' + star\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop [attr.offset]=\"starFill(star) + '%'\" class=\"rating__stop--filled\" />\n <stop [attr.offset]=\"starFill(star) + '%'\" class=\"rating__stop--empty\" />\n </linearGradient>\n }\n </defs>\n </svg>\n\n @for (star of stars; track star) {\n <button\n class=\"rating__star\"\n type=\"button\"\n [attr.aria-label]=\"'rate-star-out-of-5' | translate: { star: star.toString() }\"\n [attr.aria-pressed]=\"(value() ?? 0) >= star\"\n [attr.disabled]=\"(!interactive()) ? true : null\"\n (click)=\"rate(star)\"\n (mouseenter)=\"onHover(star)\"\n >\n <svg\n class=\"rating__star-svg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <polygon\n class=\"rating__star-shape\"\n [attr.fill]=\"'url(#star-grad-' + star + ')'\"\n points=\"12,2.5 15.27,9.14 22.6,10.13 17.3,15.26 18.54,22.56 12,19.13 5.46,22.56 6.7,15.26 1.4,10.13 8.73,9.14\"\n />\n </svg>\n </button>\n }\n </div>\n </div>\n\n @if (showErrors()) {\n @for (error of errors(); track $index) {\n <m-text-output\n variant=\"footer\"\n color=\"error\"\n [label]=\"error.message\"\n />\n }\n }\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)}}.rating{display:inline-flex;flex-direction:column;gap:6px}.rating__defs{display:block;width:0;height:0;overflow:hidden;pointer-events:none;flex-shrink:0}.rating__stop--filled{stop-color:#ffb800;stop-opacity:1}.rating__stop--empty{stop-color:#e0e0e0;stop-opacity:1}.rating__stars{position:relative;display:inline-flex;align-items:center;gap:4px}.rating__star{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;cursor:default;outline:none;flex-shrink:0}.rating__star-svg{width:28px;height:28px;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.08));transition:opacity .15s ease,transform .12s ease}.rating__star-shape{stroke:#0000000f;stroke-width:.5px}.rating__stars--interactive .rating__star{cursor:pointer;border-radius:4px}.rating__stars--interactive .rating__star:focus-visible{outline:2px solid var(--m-mm);outline-offset:2px;border-radius:4px}.rating__stars--interactive .rating__star:hover .rating__star-svg,.rating__stars--interactive .rating__star:focus-visible .rating__star-svg{transform:scale(1.15);filter:drop-shadow(0 2px 4px rgba(0,0,0,.18))}.rating__stars--disabled{opacity:.5;pointer-events:none}.rating__stars--disabled .rating__stop--filled{stop-color:#bdbdbd}.rating--error .rating__stop--filled{stop-color:var(--m-error)}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16579
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: RatingInputComponent, isStandalone: true, selector: "m-rating-input", 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 } }, outputs: { value: "valueChange", touched: "touchedChange" }, usesInheritance: true, ngImport: i0, template: "@if (config(); as rating) {\n @if (rating.label) {\n <m-label\n [for]=\"rating.name ?? ''\"\n [placeholder]=\"rating.label\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n />\n }\n\n <div class=\"rating\" [class.rating--error]=\"showErrors()\">\n <div\n class=\"rating__stars\"\n [class.rating__stars--interactive]=\"interactive()\"\n [class.rating__stars--disabled]=\"disabled()\"\n (mouseleave)=\"onLeave()\"\n >\n <!-- Hidden SVG for per-star gradient defs -->\n <svg width=\"0\" height=\"0\" aria-hidden=\"true\" class=\"rating__defs\">\n <defs>\n @for (star of stars; track star) {\n <linearGradient [id]=\"'star-grad-' + star\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop [attr.offset]=\"starFill(star) + '%'\" class=\"rating__stop--filled\" />\n <stop [attr.offset]=\"starFill(star) + '%'\" class=\"rating__stop--empty\" />\n </linearGradient>\n }\n </defs>\n </svg>\n\n @for (star of stars; track star) {\n <button\n class=\"rating__star\"\n type=\"button\"\n [attr.aria-label]=\"'rate-star-out-of-5' | translate: { star: star.toString() }\"\n [attr.aria-pressed]=\"(value() ?? 0) >= star\"\n [attr.disabled]=\"(!interactive()) ? true : null\"\n (click)=\"rate(star)\"\n (mouseenter)=\"onHover(star)\"\n >\n <svg\n class=\"rating__star-svg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <polygon\n class=\"rating__star-shape\"\n [attr.fill]=\"'url(#star-grad-' + star + ')'\"\n points=\"12,2.5 15.27,9.14 22.6,10.13 17.3,15.26 18.54,22.56 12,19.13 5.46,22.56 6.7,15.26 1.4,10.13 8.73,9.14\"\n />\n </svg>\n </button>\n }\n </div>\n </div>\n\n @if (showErrors()) {\n @for (error of errors(); track $index) {\n <m-text-output\n variant=\"footer\"\n color=\"error\"\n [label]=\"error.message\"\n />\n }\n }\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)}}.rating{display:inline-flex;flex-direction:column;gap:6px}.rating__defs{display:block;width:0;height:0;overflow:hidden;pointer-events:none;flex-shrink:0}.rating__stop--filled{stop-color:#ffb800;stop-opacity:1}.rating__stop--empty{stop-color:#e0e0e0;stop-opacity:1}.rating__stars{position:relative;display:inline-flex;align-items:center;gap:4px}.rating__star{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;cursor:default;outline:none;flex-shrink:0}.rating__star-svg{width:28px;height:28px;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.08));transition:opacity .15s ease,transform .12s ease}.rating__star-shape{stroke:#0000000f;stroke-width:.5px}.rating__stars--interactive .rating__star{cursor:pointer;border-radius:4px}.rating__stars--interactive .rating__star:focus-visible{outline:2px solid var(--m-mm);outline-offset:2px;border-radius:4px}.rating__stars--interactive .rating__star:hover .rating__star-svg,.rating__stars--interactive .rating__star:focus-visible .rating__star-svg{transform:scale(1.15);filter:drop-shadow(0 2px 4px rgba(0,0,0,.18))}.rating__stars--disabled{opacity:.5;pointer-events:none}.rating__stars--disabled .rating__stop--filled{stop-color:#bdbdbd}.rating--error .rating__stop--filled{stop-color:var(--m-error)}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16443
16580
  }
16444
16581
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RatingInputComponent, decorators: [{
16445
16582
  type: Component,
@@ -16553,7 +16690,7 @@ class ComponentInputComponent extends BaseTextInputComponent {
16553
16690
  }
16554
16691
  }
16555
16692
  }
16556
- `, isInline: true, styles: [":host{display:block}\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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16693
+ `, isInline: true, styles: [":host{display:block}\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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16557
16694
  }
16558
16695
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ComponentInputComponent, decorators: [{
16559
16696
  type: Component,
@@ -16726,7 +16863,7 @@ class FileUploadInputComponent extends BaseTextInputComponent {
16726
16863
  }
16727
16864
  }
16728
16865
  }
16729
- `, isInline: true, styles: [":host{display:block}\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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate"], outputs: ["configChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16866
+ `, isInline: true, styles: [":host{display:block}\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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "label", "noTranslate", "params"], outputs: ["configChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16730
16867
  }
16731
16868
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FileUploadInputComponent, decorators: [{
16732
16869
  type: Component,
@@ -16974,6 +17111,10 @@ class FormGroupComponent extends ConfigComponent {
16974
17111
  return result;
16975
17112
  } });
16976
17113
  elements = input(undefined, ...(ngDevMode ? [{ debugName: "elements" }] : /* istanbul ignore next */ []));
17114
+ // A card body per field, written inline. Keyed like `elements` because it is
17115
+ // the same seat filled a second way — a `#ref` from the host's own template
17116
+ // instead of a class.
17117
+ templates = input(undefined, ...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
16977
17118
  datas = input(undefined, ...(ngDevMode ? [{ debugName: "datas" }] : /* istanbul ignore next */ []));
16978
17119
  label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
16979
17120
  subtitle = input(undefined, ...(ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []));
@@ -17147,7 +17288,7 @@ class FormGroupComponent extends ConfigComponent {
17147
17288
  this.act.emit(this.previousValue);
17148
17289
  }
17149
17290
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17150
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: FormGroupComponent, isStandalone: true, selector: "m-form, m-one-form", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, validation: { classPropertyName: "validation", publicName: "validation", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, fieldConfigs: { classPropertyName: "fieldConfigs", publicName: "fieldConfigs", isSignal: true, isRequired: false, transformFunction: null }, aclResolver: { classPropertyName: "aclResolver", publicName: "aclResolver", isSignal: true, isRequired: false, transformFunction: null }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, fieldRenderIds: { classPropertyName: "fieldRenderIds", publicName: "fieldRenderIds", isSignal: true, isRequired: false, transformFunction: null }, elements: { classPropertyName: "elements", publicName: "elements", isSignal: true, isRequired: false, transformFunction: null }, datas: { classPropertyName: "datas", publicName: "datas", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dataChange: "dataChange", act: "act", state: "stateChange" }, host: { properties: { "class": "config()?.variant ? 'm-form--' + config()?.variant : ''", "style.min-height": "resolvedMinHeight()", "style.min-width": "resolvedMinWidth()", "style.max-height": "resolvedMaxHeight()", "style.max-width": "resolvedMaxWidth()" } }, usesInheritance: true, ngImport: i0, template: `
17291
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: FormGroupComponent, isStandalone: true, selector: "m-form, m-one-form", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, validation: { classPropertyName: "validation", publicName: "validation", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, fieldConfigs: { classPropertyName: "fieldConfigs", publicName: "fieldConfigs", isSignal: true, isRequired: false, transformFunction: null }, aclResolver: { classPropertyName: "aclResolver", publicName: "aclResolver", isSignal: true, isRequired: false, transformFunction: null }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, fieldRenderIds: { classPropertyName: "fieldRenderIds", publicName: "fieldRenderIds", isSignal: true, isRequired: false, transformFunction: null }, elements: { classPropertyName: "elements", publicName: "elements", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null }, datas: { classPropertyName: "datas", publicName: "datas", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dataChange: "dataChange", act: "act", state: "stateChange" }, host: { properties: { "class": "config()?.variant ? 'm-form--' + config()?.variant : ''", "style.min-height": "resolvedMinHeight()", "style.min-width": "resolvedMinWidth()", "style.max-height": "resolvedMaxHeight()", "style.max-width": "resolvedMaxWidth()" } }, usesInheritance: true, ngImport: i0, template: `
17151
17292
  <div class="form-group">
17152
17293
  @if (resolvedLabel() || resolvedSubtitle()) {
17153
17294
  <div class="form-group__header">
@@ -17178,6 +17319,7 @@ class FormGroupComponent extends ConfigComponent {
17178
17319
  [options]="options()?.[input.name]"
17179
17320
  [config]="namedFieldConfigs()[input.name]"
17180
17321
  [element]="elements()?.[input.name]"
17322
+ [template]="templates()?.[input.name]"
17181
17323
  [data]="datas()?.[input.name]"
17182
17324
  [aclResolver]="aclResolver()"
17183
17325
  [formValues]="formValues()"
@@ -17190,7 +17332,7 @@ class FormGroupComponent extends ConfigComponent {
17190
17332
  }
17191
17333
  }
17192
17334
  </div>
17193
- `, 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%}.form-group{display:flex;flex-direction:column;gap:var(--m-form-group-gap, 1.5rem)}.form-group__header{display:flex;flex-direction:column;gap:4px;margin-bottom:.5rem}.form-group__subtitle{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;opacity:.5;color:var(--mm-color, #ffd700)}.form-group__title{font-size:1.25rem;font-weight:700;letter-spacing:-.01em;opacity:.9}.form-group__content{display:flex;flex-wrap:wrap;gap:var(--m-form-group-content-gap, 1rem 1.25rem)}.form-group__content>*{flex:1 1 100%;min-width:0}.form-group__content>.col-1{flex:1 1 calc(1 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-2{flex:2 1 calc(2 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-3{flex:3 1 calc(.25*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-4{flex:4 1 calc(4 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-5{flex:5 1 calc(5 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-6{flex:6 1 calc(.5*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-7{flex:7 1 calc(7 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-8{flex:8 1 calc(8 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-9{flex:9 1 calc(.75*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-10{flex:10 1 calc(10 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-11{flex:11 1 calc(11 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-12{flex:12 1 calc(1*(100% + 1.25rem) - 1.25rem)}@media(max-width:480px){.form-group__content>*{flex-basis:100%}}:host(.m-form--compact) .form-group{gap:.5rem}:host(.m-form--compact) .form-group__content{display:block;gap:0}\n"], dependencies: [{ kind: "component", type: WrapperInputComponent, selector: "m-input-wrapper", inputs: ["remote", "value", "readonly", "state", "focused", "form", "options", "dir", "element", "data", "aclResolver", "formValues"], outputs: ["valueChange", "stateChange", "act", "fieldKey"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17335
+ `, 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%}.form-group{display:flex;flex-direction:column;gap:var(--m-form-group-gap, 1.5rem)}.form-group__header{display:flex;flex-direction:column;gap:4px;margin-bottom:.5rem}.form-group__subtitle{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;opacity:.5;color:var(--mm-color, #ffd700)}.form-group__title{font-size:1.25rem;font-weight:700;letter-spacing:-.01em;opacity:.9}.form-group__content{display:flex;flex-wrap:wrap;gap:var(--m-form-group-content-gap, 1rem 1.25rem)}.form-group__content>*{flex:1 1 100%;min-width:0}.form-group__content>.col-1{flex:1 1 calc(1 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-2{flex:2 1 calc(2 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-3{flex:3 1 calc(.25*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-4{flex:4 1 calc(4 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-5{flex:5 1 calc(5 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-6{flex:6 1 calc(.5*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-7{flex:7 1 calc(7 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-8{flex:8 1 calc(8 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-9{flex:9 1 calc(.75*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-10{flex:10 1 calc(10 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-11{flex:11 1 calc(11 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-12{flex:12 1 calc(1*(100% + 1.25rem) - 1.25rem)}@media(max-width:480px){.form-group__content>*{flex-basis:100%}}:host(.m-form--compact) .form-group{gap:.5rem}:host(.m-form--compact) .form-group__content{display:block;gap:0}\n"], dependencies: [{ kind: "component", type: WrapperInputComponent, selector: "m-input-wrapper", inputs: ["remote", "value", "readonly", "state", "focused", "form", "options", "dir", "element", "data", "template", "aclResolver", "formValues"], outputs: ["valueChange", "stateChange", "act", "fieldKey"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17194
17336
  }
17195
17337
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FormGroupComponent, decorators: [{
17196
17338
  type: Component,
@@ -17231,6 +17373,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
17231
17373
  [options]="options()?.[input.name]"
17232
17374
  [config]="namedFieldConfigs()[input.name]"
17233
17375
  [element]="elements()?.[input.name]"
17376
+ [template]="templates()?.[input.name]"
17234
17377
  [data]="datas()?.[input.name]"
17235
17378
  [aclResolver]="aclResolver()"
17236
17379
  [formValues]="formValues()"
@@ -17244,7 +17387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
17244
17387
  }
17245
17388
  </div>
17246
17389
  `, 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%}.form-group{display:flex;flex-direction:column;gap:var(--m-form-group-gap, 1.5rem)}.form-group__header{display:flex;flex-direction:column;gap:4px;margin-bottom:.5rem}.form-group__subtitle{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;opacity:.5;color:var(--mm-color, #ffd700)}.form-group__title{font-size:1.25rem;font-weight:700;letter-spacing:-.01em;opacity:.9}.form-group__content{display:flex;flex-wrap:wrap;gap:var(--m-form-group-content-gap, 1rem 1.25rem)}.form-group__content>*{flex:1 1 100%;min-width:0}.form-group__content>.col-1{flex:1 1 calc(1 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-2{flex:2 1 calc(2 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-3{flex:3 1 calc(.25*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-4{flex:4 1 calc(4 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-5{flex:5 1 calc(5 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-6{flex:6 1 calc(.5*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-7{flex:7 1 calc(7 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-8{flex:8 1 calc(8 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-9{flex:9 1 calc(.75*(100% + 1.25rem) - 1.25rem)}.form-group__content>.col-10{flex:10 1 calc(10 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-11{flex:11 1 calc(11 * (100% + 1.25rem) / 12 - 1.25rem)}.form-group__content>.col-12{flex:12 1 calc(1*(100% + 1.25rem) - 1.25rem)}@media(max-width:480px){.form-group__content>*{flex-basis:100%}}:host(.m-form--compact) .form-group{gap:.5rem}:host(.m-form--compact) .form-group__content{display:block;gap:0}\n"] }]
17247
- }], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], dataChange: [{ type: i0.Output, args: ["dataChange"] }], act: [{ type: i0.Output, args: ["act"] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], fieldConfigs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldConfigs", required: false }] }], aclResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "aclResolver", required: false }] }], autofocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autofocus", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], fieldRenderIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldRenderIds", required: false }] }], elements: [{ type: i0.Input, args: [{ isSignal: true, alias: "elements", required: false }] }], datas: [{ type: i0.Input, args: [{ isSignal: true, alias: "datas", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }] } });
17390
+ }], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], dataChange: [{ type: i0.Output, args: ["dataChange"] }], act: [{ type: i0.Output, args: ["act"] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], fieldConfigs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldConfigs", required: false }] }], aclResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "aclResolver", required: false }] }], autofocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autofocus", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], fieldRenderIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldRenderIds", required: false }] }], elements: [{ type: i0.Input, args: [{ isSignal: true, alias: "elements", required: false }] }], templates: [{ type: i0.Input, args: [{ isSignal: true, alias: "templates", required: false }] }], datas: [{ type: i0.Input, args: [{ isSignal: true, alias: "datas", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }] } });
17248
17391
 
17249
17392
  const emailValidation = (schemaPath) => email(schemaPath, {
17250
17393
  message: 'not-a-valid-email',
@@ -17812,6 +17955,14 @@ class SectionFormItemComponent extends ConfigComponent {
17812
17955
  dir = input(...(ngDevMode ? [undefined, { debugName: "dir" }] : /* istanbul ignore next */ []));
17813
17956
  element = input(...(ngDevMode ? [undefined, { debugName: "element" }] : /* istanbul ignore next */ []));
17814
17957
  data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
17958
+ // Same reason the wrapper carries one: this Field is mounted through a
17959
+ // ViewContainerRef, so an inline card body reaches it as a TemplateRef and
17960
+ // not as projected content.
17961
+ template = input(...(ngDevMode ? [undefined, { debugName: "template" }] : /* istanbul ignore next */ []));
17962
+ // An `ng-template` written between this tag's own says the same thing
17963
+ // without a member to name, so it is picked up here and handed down.
17964
+ projectedTemplate = contentChild((TemplateRef), ...(ngDevMode ? [{ debugName: "projectedTemplate" }] : /* istanbul ignore next */ []));
17965
+ cardTemplate = computed(() => this.template() ?? this.projectedTemplate(), ...(ngDevMode ? [{ debugName: "cardTemplate" }] : /* istanbul ignore next */ []));
17815
17966
  aclResolver = input(undefined, ...(ngDevMode ? [{ debugName: "aclResolver" }] : /* istanbul ignore next */ []));
17816
17967
  formValues = input(undefined, ...(ngDevMode ? [{ debugName: "formValues" }] : /* istanbul ignore next */ []));
17817
17968
  // The Field's own description, written on the tag rather than in
@@ -18109,7 +18260,7 @@ class SectionFormItemComponent extends ConfigComponent {
18109
18260
  break;
18110
18261
  }
18111
18262
  case InputType.TOGGLE: {
18112
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-Cjhb-4Y_.mjs');
18263
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-CnomBrUJ.mjs');
18113
18264
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
18114
18265
  break;
18115
18266
  }
@@ -18121,12 +18272,12 @@ class SectionFormItemComponent extends ConfigComponent {
18121
18272
  break;
18122
18273
  }
18123
18274
  case InputType.PASSWORD: {
18124
- const { PasswordInputComponent } = await import('./magmonium-one-password-CIKDqcyv.mjs');
18275
+ const { PasswordInputComponent } = await import('./magmonium-one-password-Bkg2rz6j.mjs');
18125
18276
  this.createDynamicComponent(seq, PasswordInputComponent);
18126
18277
  break;
18127
18278
  }
18128
18279
  case InputType.OTP: {
18129
- const { OtpInputComponent } = await import('./magmonium-one-otp-CO5CHVV4.mjs');
18280
+ const { OtpInputComponent } = await import('./magmonium-one-otp-D78eK88b.mjs');
18130
18281
  this.createDynamicComponent(seq, OtpInputComponent);
18131
18282
  break;
18132
18283
  }
@@ -18185,6 +18336,7 @@ class SectionFormItemComponent extends ConfigComponent {
18185
18336
  const { SelectableCardInputComponent } = await Promise.resolve().then(function () { return selectableCard; });
18186
18337
  this.createDynamicComponent(seq, SelectableCardInputComponent, [
18187
18338
  inputBinding('element', this.element),
18339
+ inputBinding('template', this.cardTemplate),
18188
18340
  inputBinding('data', this.data),
18189
18341
  inputBinding('options', this.options),
18190
18342
  ]);
@@ -18205,7 +18357,7 @@ class SectionFormItemComponent extends ConfigComponent {
18205
18357
  }
18206
18358
  };
18207
18359
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionFormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18208
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionFormItemComponent, isStandalone: true, selector: "m-section-form-item, m-one-section-form-item", inputs: { span: { classPropertyName: "span", publicName: "span", isSignal: true, isRequired: false, transformFunction: null }, labelOrientation: { classPropertyName: "labelOrientation", publicName: "labelOrientation", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, aclResolver: { classPropertyName: "aclResolver", publicName: "aclResolver", isSignal: true, isRequired: false, transformFunction: null }, formValues: { classPropertyName: "formValues", publicName: "formValues", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", 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 }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, buttonAction: { classPropertyName: "buttonAction", publicName: "buttonAction", isSignal: true, isRequired: false, transformFunction: null }, buttonAcl: { classPropertyName: "buttonAcl", publicName: "buttonAcl", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, acl: { classPropertyName: "acl", publicName: "acl", isSignal: true, isRequired: false, transformFunction: null }, testid: { classPropertyName: "testid", publicName: "testid", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null }, debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, multiSelect: { classPropertyName: "multiSelect", publicName: "multiSelect", isSignal: true, isRequired: false, transformFunction: null }, equalWidth: { classPropertyName: "equalWidth", publicName: "equalWidth", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, isCheckboxVisible: { classPropertyName: "isCheckboxVisible", publicName: "isCheckboxVisible", isSignal: true, isRequired: false, transformFunction: null }, optionsAsset: { classPropertyName: "optionsAsset", publicName: "optionsAsset", isSignal: true, isRequired: false, transformFunction: null }, patterns: { classPropertyName: "patterns", publicName: "patterns", isSignal: true, isRequired: false, transformFunction: null }, patternMessage: { classPropertyName: "patternMessage", publicName: "patternMessage", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", act: "act", fieldKey: "fieldKey" }, host: { properties: { "class": "spanClass()", "style.display": "isVisible() ? null : \"none\"" } }, viewQueries: [{ propertyName: "dynamicInput", first: true, predicate: ["dynamicInput"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
18360
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionFormItemComponent, isStandalone: true, selector: "m-section-form-item, m-one-section-form-item", inputs: { span: { classPropertyName: "span", publicName: "span", isSignal: true, isRequired: false, transformFunction: null }, labelOrientation: { classPropertyName: "labelOrientation", publicName: "labelOrientation", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, aclResolver: { classPropertyName: "aclResolver", publicName: "aclResolver", isSignal: true, isRequired: false, transformFunction: null }, formValues: { classPropertyName: "formValues", publicName: "formValues", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", 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 }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, buttonAction: { classPropertyName: "buttonAction", publicName: "buttonAction", isSignal: true, isRequired: false, transformFunction: null }, buttonAcl: { classPropertyName: "buttonAcl", publicName: "buttonAcl", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, acl: { classPropertyName: "acl", publicName: "acl", isSignal: true, isRequired: false, transformFunction: null }, testid: { classPropertyName: "testid", publicName: "testid", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null }, debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, multiSelect: { classPropertyName: "multiSelect", publicName: "multiSelect", isSignal: true, isRequired: false, transformFunction: null }, equalWidth: { classPropertyName: "equalWidth", publicName: "equalWidth", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, isCheckboxVisible: { classPropertyName: "isCheckboxVisible", publicName: "isCheckboxVisible", isSignal: true, isRequired: false, transformFunction: null }, optionsAsset: { classPropertyName: "optionsAsset", publicName: "optionsAsset", isSignal: true, isRequired: false, transformFunction: null }, patterns: { classPropertyName: "patterns", publicName: "patterns", isSignal: true, isRequired: false, transformFunction: null }, patternMessage: { classPropertyName: "patternMessage", publicName: "patternMessage", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", act: "act", fieldKey: "fieldKey" }, host: { properties: { "class": "spanClass()", "style.display": "isVisible() ? null : \"none\"" } }, queries: [{ propertyName: "projectedTemplate", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "dynamicInput", first: true, predicate: ["dynamicInput"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
18209
18361
  <div
18210
18362
  [class]="itemClass()"
18211
18363
  [style.--sfi-gap.px]="gap()"
@@ -18238,7 +18390,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
18238
18390
  '[class]': 'spanClass()',
18239
18391
  '[style.display]': 'isVisible() ? null : "none"',
18240
18392
  }, 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;flex:1 1 100%;min-width:0}.section-form-item{display:flex;flex-direction:column;gap:var(--sfi-gap, .5em );min-width:0;width:100%}.section-form-item.--horizontal{flex-direction:row;align-items:center}.section-form-item.--horizontal .section-form-item__input{flex:1;min-width:0}.section-form-item.--vertical{flex-direction:column}.section-form-item.--vertical .section-form-item__input{width:100%}.section-form-item__input{display:flex;flex-direction:column;min-width:0;width:100%}.section-form-item__input>*{width:100%}\n"] }]
18241
- }], ctorParameters: () => [], propDecorators: { span: [{ type: i0.Input, args: [{ isSignal: true, alias: "span", required: false }] }], labelOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelOrientation", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], aclResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "aclResolver", required: false }] }], formValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "formValues", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], button: [{ type: i0.Input, args: [{ isSignal: true, alias: "button", required: false }] }], buttonAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonAction", required: false }] }], buttonAcl: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonAcl", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], acl: [{ type: i0.Input, args: [{ isSignal: true, alias: "acl", required: false }] }], testid: [{ type: i0.Input, args: [{ isSignal: true, alias: "testid", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], length: [{ type: i0.Input, args: [{ isSignal: true, alias: "length", required: false }] }], debounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounce", required: false }] }], dateFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateFormat", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], multiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelect", required: false }] }], equalWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "equalWidth", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }], isCheckboxVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCheckboxVisible", required: false }] }], optionsAsset: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsAsset", required: false }] }], patterns: [{ type: i0.Input, args: [{ isSignal: true, alias: "patterns", required: false }] }], patternMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "patternMessage", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], act: [{ type: i0.Output, args: ["act"] }], fieldKey: [{ type: i0.Output, args: ["fieldKey"] }], dynamicInput: [{ type: i0.ViewChild, args: ['dynamicInput', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
18393
+ }], ctorParameters: () => [], propDecorators: { span: [{ type: i0.Input, args: [{ isSignal: true, alias: "span", required: false }] }], labelOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelOrientation", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], projectedTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], aclResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "aclResolver", required: false }] }], formValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "formValues", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], button: [{ type: i0.Input, args: [{ isSignal: true, alias: "button", required: false }] }], buttonAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonAction", required: false }] }], buttonAcl: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonAcl", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], acl: [{ type: i0.Input, args: [{ isSignal: true, alias: "acl", required: false }] }], testid: [{ type: i0.Input, args: [{ isSignal: true, alias: "testid", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], length: [{ type: i0.Input, args: [{ isSignal: true, alias: "length", required: false }] }], debounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounce", required: false }] }], dateFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateFormat", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], multiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelect", required: false }] }], equalWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "equalWidth", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }], isCheckboxVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCheckboxVisible", required: false }] }], optionsAsset: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsAsset", required: false }] }], patterns: [{ type: i0.Input, args: [{ isSignal: true, alias: "patterns", required: false }] }], patternMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "patternMessage", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], act: [{ type: i0.Output, args: ["act"] }], fieldKey: [{ type: i0.Output, args: ["fieldKey"] }], dynamicInput: [{ type: i0.ViewChild, args: ['dynamicInput', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
18242
18394
 
18243
18395
  class StepComponent {
18244
18396
  index = input.required(...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
@@ -21767,7 +21919,7 @@ class TableComponent extends ConfigComponent {
21767
21919
  </div>
21768
21920
  }
21769
21921
  </div>
21770
- `, 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-table{display:flex;flex-direction:column;border:1px solid var(--m-backdrop-border);border-radius:12px;overflow:clip;background:#ffffffe6;-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);position:relative;transition:background-color .3s ease}.m-table--flat{border:none;box-shadow:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}.m-table__toolbar{display:flex;align-items:center;justify-content:space-between;padding:1.5rem var(--m-table-toolbar-padding-x, 1.25rem);border-bottom:1px solid var(--m-backdrop-border);gap:1.5rem;background:color-mix(in srgb,var(--m-background) 45%,transparent)}.m-table--flat .m-table__toolbar{background:transparent;padding-left:0;padding-right:0}.m-table__title{margin:0;font-size:1.25rem;font-weight:800;color:var(--m-text);letter-spacing:-.02em;flex:1}.m-table__search{flex:0 1 auto;display:flex;align-items:center}.m-table__search .m-input-wrapper{width:100%}.m-table__mobile-view{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;flex:1;overflow:auto}.m-table__empty-mobile{padding:3rem 1.5rem;text-align:center;color:var(--m-text-tertiary);font-size:.9375rem;font-weight:500;font-style:italic;opacity:.8;background:color-mix(in srgb,var(--m-background) 20%,transparent);border-radius:12px;border:1px dashed var(--m-backdrop-border)}.m-table__wrapper{overflow:auto;flex:1}.m-table__wrapper::-webkit-scrollbar{width:6px;height:6px}.m-table__wrapper::-webkit-scrollbar-track{background:transparent}.m-table__wrapper::-webkit-scrollbar-thumb{background:var(--m-backdrop-border);border-radius:10px}.m-table__wrapper::-webkit-scrollbar-thumb:hover{background:var(--m-text-tertiary)}.m-table__table{width:100%;min-width:100%;border-collapse:separate;border-spacing:0}mark.m-table__highlight{background:var(--m-highlight);color:#000;border-radius:2px;padding:0 2px;font-weight:700;box-shadow:0 1px 4px #0003}mark.m-table__highlight .m-one-pagination{margin-left:auto;--m-button-size: 2.25rem;--m-pagination-gap: .375rem}.m-table-pagination{display:flex;align-items:center;gap:1.5rem;padding:1.25rem var(--m-table-pagination-padding-x, 1.25rem);border-top:1px solid var(--m-backdrop-border);font-size:.8125rem;flex-wrap:wrap;background:color-mix(in srgb,var(--m-background) 40%,transparent)}.m-table--flat .m-table-pagination{background:transparent;padding-left:0;padding-right:0}.m-table-pagination__size{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;color:var(--m-text-secondary);font-weight:500}.m-table-pagination__select{border:1px solid var(--m-backdrop-border);border-radius:8px;background:var(--m-backdrop-surface);color:var(--m-text);padding:.375rem .625rem;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none}.m-table-pagination__select:hover{background:var(--m-backdrop-glass);border-color:var(--m-mm);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-mm) 10%,transparent)}.m-table-pagination__select:focus{border-color:var(--m-mm);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-mm) 20%,transparent)}.m-table-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:1rem 1.25rem;background:color-mix(in srgb,var(--m-background-lite) 60%,transparent);border-bottom:1px solid var(--m-backdrop-border);box-shadow:inset 0 2px 4px #00000005;overflow-x:auto;scrollbar-width:none}.m-table-filter::-webkit-scrollbar{display:none}.m-table--flat .m-table-filter{background:transparent;padding-left:0;padding-right:0;border-bottom:none}.m-table-filter__item{display:flex;align-items:center;gap:10px;padding:.4375rem 1rem;border-radius:12px;background:var(--m-background);border:1px solid var(--m-backdrop-border);color:var(--m-text-secondary);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none;font-weight:500}.m-table-filter__item:hover{border-color:var(--m-mm);color:var(--m-mm);background:var(--m-background);transform:translateY(-1px);box-shadow:0 4px 12px #0000000d}.m-table-filter__item--active{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);font-weight:600;box-shadow:0 8px 16px color-mix(in srgb,var(--m-mm) 25%,transparent)}.m-table-filter__item--active:hover{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);transform:translateY(-1px)}.m-table-filter__item--active .m-table-filter__badge{background:#fff3;color:var(--m-inverse-text);border-color:#ffffff1a}.m-table-filter__item--primary{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);font-weight:600;box-shadow:0 8px 16px color-mix(in srgb,var(--m-mm) 25%,transparent)}.m-table-filter__item--primary:hover{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);transform:translateY(-1px);box-shadow:0 10px 20px color-mix(in srgb,var(--m-mm) 30%,transparent)}.m-table-filter__item--primary .m-table-filter__badge{background:#fff3;color:var(--m-inverse-text);border-color:#ffffff1a}.m-table-filter__item--danger{border-color:var(--m-error);color:var(--m-error)}.m-table-filter__item--danger:hover{border-color:var(--m-error);color:var(--m-error);background:var(--m-backdrop-error);transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--m-error) 12%,transparent)}.m-table-filter__item--danger .m-table-filter__badge{background:var(--m-backdrop-error);color:var(--m-error);border-color:color-mix(in srgb,var(--m-error) 20%,transparent)}.m-table-filter__label{font-size:.8125rem;font-weight:600;letter-spacing:.01em}.m-table-filter__badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:100px;background:var(--m-backdrop-surface);color:var(--m-text-secondary);font-size:.6875rem;font-weight:700;border:1px solid var(--m-backdrop-border);transition:all .2s ease}\n"], dependencies: [{ kind: "component", type: TableHeaderComponent, selector: "m-table-header", inputs: ["visibleColumns", "fixedCount", "fixedOffset", "sortState", "selectable", "allSelected", "someSelected"], outputs: ["sortClick", "selectAll"] }, { kind: "component", type: TableBodyComponent, selector: "m-table-body", inputs: ["rows", "visibleColumns", "fixedCount", "fixedOffset", "searchQuery", "currency", "rowClass", "emptyMessage", "rowTestId", "actionVisibilityRule", "actionDisableRule", "selectable", "selectedRows", "selectDisableExpression", "expressionContext"], outputs: ["rowSelect", "cellChanged", "rowMenuClick", "cellClick"] }, { kind: "component", type: PaginationComponent, selector: "m-pagination, m-one-pagination", inputs: ["config", "totalPages", "totalItems", "pageSize", "page"], outputs: ["configChange", "pageChange"] }, { kind: "component", type: FreezeComponent, selector: "m-freeze", inputs: ["config"] }, { kind: "component", type: WrapperInputComponent, selector: "m-input-wrapper", inputs: ["remote", "value", "readonly", "state", "focused", "form", "options", "dir", "element", "data", "aclResolver", "formValues"], outputs: ["valueChange", "stateChange", "act", "fieldKey"] }, { kind: "component", type: TableFilterComponent, selector: "m-table-filter", inputs: ["filters", "data", "activeFilterIndices", "expressionContext"], outputs: ["filterClick"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21922
+ `, 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-table{display:flex;flex-direction:column;border:1px solid var(--m-backdrop-border);border-radius:12px;overflow:clip;background:#ffffffe6;-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);position:relative;transition:background-color .3s ease}.m-table--flat{border:none;box-shadow:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}.m-table__toolbar{display:flex;align-items:center;justify-content:space-between;padding:1.5rem var(--m-table-toolbar-padding-x, 1.25rem);border-bottom:1px solid var(--m-backdrop-border);gap:1.5rem;background:color-mix(in srgb,var(--m-background) 45%,transparent)}.m-table--flat .m-table__toolbar{background:transparent;padding-left:0;padding-right:0}.m-table__title{margin:0;font-size:1.25rem;font-weight:800;color:var(--m-text);letter-spacing:-.02em;flex:1}.m-table__search{flex:0 1 auto;display:flex;align-items:center}.m-table__search .m-input-wrapper{width:100%}.m-table__mobile-view{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;flex:1;overflow:auto}.m-table__empty-mobile{padding:3rem 1.5rem;text-align:center;color:var(--m-text-tertiary);font-size:.9375rem;font-weight:500;font-style:italic;opacity:.8;background:color-mix(in srgb,var(--m-background) 20%,transparent);border-radius:12px;border:1px dashed var(--m-backdrop-border)}.m-table__wrapper{overflow:auto;flex:1}.m-table__wrapper::-webkit-scrollbar{width:6px;height:6px}.m-table__wrapper::-webkit-scrollbar-track{background:transparent}.m-table__wrapper::-webkit-scrollbar-thumb{background:var(--m-backdrop-border);border-radius:10px}.m-table__wrapper::-webkit-scrollbar-thumb:hover{background:var(--m-text-tertiary)}.m-table__table{width:100%;min-width:100%;border-collapse:separate;border-spacing:0}mark.m-table__highlight{background:var(--m-highlight);color:#000;border-radius:2px;padding:0 2px;font-weight:700;box-shadow:0 1px 4px #0003}mark.m-table__highlight .m-one-pagination{margin-left:auto;--m-button-size: 2.25rem;--m-pagination-gap: .375rem}.m-table-pagination{display:flex;align-items:center;gap:1.5rem;padding:1.25rem var(--m-table-pagination-padding-x, 1.25rem);border-top:1px solid var(--m-backdrop-border);font-size:.8125rem;flex-wrap:wrap;background:color-mix(in srgb,var(--m-background) 40%,transparent)}.m-table--flat .m-table-pagination{background:transparent;padding-left:0;padding-right:0}.m-table-pagination__size{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;color:var(--m-text-secondary);font-weight:500}.m-table-pagination__select{border:1px solid var(--m-backdrop-border);border-radius:8px;background:var(--m-backdrop-surface);color:var(--m-text);padding:.375rem .625rem;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none}.m-table-pagination__select:hover{background:var(--m-backdrop-glass);border-color:var(--m-mm);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-mm) 10%,transparent)}.m-table-pagination__select:focus{border-color:var(--m-mm);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-mm) 20%,transparent)}.m-table-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:1rem 1.25rem;background:color-mix(in srgb,var(--m-background-lite) 60%,transparent);border-bottom:1px solid var(--m-backdrop-border);box-shadow:inset 0 2px 4px #00000005;overflow-x:auto;scrollbar-width:none}.m-table-filter::-webkit-scrollbar{display:none}.m-table--flat .m-table-filter{background:transparent;padding-left:0;padding-right:0;border-bottom:none}.m-table-filter__item{display:flex;align-items:center;gap:10px;padding:.4375rem 1rem;border-radius:12px;background:var(--m-background);border:1px solid var(--m-backdrop-border);color:var(--m-text-secondary);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none;font-weight:500}.m-table-filter__item:hover{border-color:var(--m-mm);color:var(--m-mm);background:var(--m-background);transform:translateY(-1px);box-shadow:0 4px 12px #0000000d}.m-table-filter__item--active{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);font-weight:600;box-shadow:0 8px 16px color-mix(in srgb,var(--m-mm) 25%,transparent)}.m-table-filter__item--active:hover{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);transform:translateY(-1px)}.m-table-filter__item--active .m-table-filter__badge{background:#fff3;color:var(--m-inverse-text);border-color:#ffffff1a}.m-table-filter__item--primary{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);font-weight:600;box-shadow:0 8px 16px color-mix(in srgb,var(--m-mm) 25%,transparent)}.m-table-filter__item--primary:hover{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);transform:translateY(-1px);box-shadow:0 10px 20px color-mix(in srgb,var(--m-mm) 30%,transparent)}.m-table-filter__item--primary .m-table-filter__badge{background:#fff3;color:var(--m-inverse-text);border-color:#ffffff1a}.m-table-filter__item--danger{border-color:var(--m-error);color:var(--m-error)}.m-table-filter__item--danger:hover{border-color:var(--m-error);color:var(--m-error);background:var(--m-backdrop-error);transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--m-error) 12%,transparent)}.m-table-filter__item--danger .m-table-filter__badge{background:var(--m-backdrop-error);color:var(--m-error);border-color:color-mix(in srgb,var(--m-error) 20%,transparent)}.m-table-filter__label{font-size:.8125rem;font-weight:600;letter-spacing:.01em}.m-table-filter__badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:100px;background:var(--m-backdrop-surface);color:var(--m-text-secondary);font-size:.6875rem;font-weight:700;border:1px solid var(--m-backdrop-border);transition:all .2s ease}\n"], dependencies: [{ kind: "component", type: TableHeaderComponent, selector: "m-table-header", inputs: ["visibleColumns", "fixedCount", "fixedOffset", "sortState", "selectable", "allSelected", "someSelected"], outputs: ["sortClick", "selectAll"] }, { kind: "component", type: TableBodyComponent, selector: "m-table-body", inputs: ["rows", "visibleColumns", "fixedCount", "fixedOffset", "searchQuery", "currency", "rowClass", "emptyMessage", "rowTestId", "actionVisibilityRule", "actionDisableRule", "selectable", "selectedRows", "selectDisableExpression", "expressionContext"], outputs: ["rowSelect", "cellChanged", "rowMenuClick", "cellClick"] }, { kind: "component", type: PaginationComponent, selector: "m-pagination, m-one-pagination", inputs: ["config", "totalPages", "totalItems", "pageSize", "page"], outputs: ["configChange", "pageChange"] }, { kind: "component", type: FreezeComponent, selector: "m-freeze", inputs: ["config"] }, { kind: "component", type: WrapperInputComponent, selector: "m-input-wrapper", inputs: ["remote", "value", "readonly", "state", "focused", "form", "options", "dir", "element", "data", "template", "aclResolver", "formValues"], outputs: ["valueChange", "stateChange", "act", "fieldKey"] }, { kind: "component", type: TableFilterComponent, selector: "m-table-filter", inputs: ["filters", "data", "activeFilterIndices", "expressionContext"], outputs: ["filterClick"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21771
21923
  }
21772
21924
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TableComponent, decorators: [{
21773
21925
  type: Component,
@@ -23915,7 +24067,10 @@ class UserAvatarComponent {
23915
24067
  return null;
23916
24068
  if (u.profilePic)
23917
24069
  return 'transparent';
23918
- return deriveAvatarGradient(u.id, u.sex, u.dob);
24070
+ const seed = u.id || fullName(u);
24071
+ if (!seed)
24072
+ return null;
24073
+ return deriveAvatarGradient(seed, u.sex, u.dob);
23919
24074
  }, ...(ngDevMode ? [{ debugName: "gradient" }] : /* istanbul ignore next */ []));
23920
24075
  hostClass = computed(() => {
23921
24076
  const classes = [
@@ -23957,24 +24112,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
23957
24112
  class UserComponent {
23958
24113
  id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
23959
24114
  user = input(undefined, ...(ngDevMode ? [{ debugName: "user" }] : /* istanbul ignore next */ []));
23960
- slotRef = viewChild('slot', ...(ngDevMode ? [{ debugName: "slotRef" }] : /* istanbul ignore next */ []));
23961
- hasContent = signal(false, ...(ngDevMode ? [{ debugName: "hasContent" }] : /* istanbul ignore next */ []));
24115
+ firstName = input('', ...(ngDevMode ? [{ debugName: "firstName" }] : /* istanbul ignore next */ []));
24116
+ lastName = input('', ...(ngDevMode ? [{ debugName: "lastName" }] : /* istanbul ignore next */ []));
24117
+ profilePic = input('', ...(ngDevMode ? [{ debugName: "profilePic" }] : /* istanbul ignore next */ []));
23962
24118
  #userStore = inject(UserStore);
23963
24119
  resolvedUser = computed(() => {
23964
- const directUser = this.user();
23965
- if (directUser)
23966
- return directUser;
23967
24120
  const id = this.id();
23968
- if (!id)
24121
+ const base = this.user() ?? (id ? this.#userStore.get(id)() : undefined);
24122
+ const firstName = this.firstName();
24123
+ const lastName = this.lastName();
24124
+ const profilePic = this.profilePic();
24125
+ if (!base && !firstName && !lastName && !profilePic)
23969
24126
  return undefined;
23970
- return this.#userStore.get(id)();
24127
+ return {
24128
+ ...base,
24129
+ id: base?.id ?? id,
24130
+ firstName: firstName || base?.firstName,
24131
+ lastName: lastName || base?.lastName,
24132
+ profilePic: profilePic || base?.profilePic,
24133
+ };
23971
24134
  }, ...(ngDevMode ? [{ debugName: "resolvedUser" }] : /* istanbul ignore next */ []));
23972
- constructor() {
23973
- afterNextRender(() => {
23974
- const el = this.slotRef()?.nativeElement;
23975
- this.hasContent.set(!!el && el.childElementCount > 0);
23976
- });
23977
- }
23978
24135
  displayName = computed(() => fullName(this.resolvedUser()), ...(ngDevMode ? [{ debugName: "displayName" }] : /* istanbul ignore next */ []));
23979
24136
  identityName = computed(() => {
23980
24137
  const id = this.resolvedUser()?.id ?? this.id();
@@ -23989,7 +24146,7 @@ class UserComponent {
23989
24146
  return undefined;
23990
24147
  }, ...(ngDevMode ? [{ debugName: "gender" }] : /* istanbul ignore next */ []));
23991
24148
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23992
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: UserComponent, isStandalone: true, selector: "m-user", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "slotRef", first: true, predicate: ["slot"], descendants: true, isSignal: true }], ngImport: i0, template: `
24149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: UserComponent, isStandalone: true, selector: "m-user", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, firstName: { classPropertyName: "firstName", publicName: "firstName", isSignal: true, isRequired: false, transformFunction: null }, lastName: { classPropertyName: "lastName", publicName: "lastName", isSignal: true, isRequired: false, transformFunction: null }, profilePic: { classPropertyName: "profilePic", publicName: "profilePic", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
23993
24150
  <div class="user-profile" [class.user-profile--loading]="!resolvedUser()">
23994
24151
  <div class="user-avatar" [class.user-avatar--loading]="!resolvedUser()">
23995
24152
  <m-user-avatar [user]="resolvedUser()" />
@@ -24001,30 +24158,28 @@ class UserComponent {
24001
24158
  <div class="user-name-loading"></div>
24002
24159
  }
24003
24160
 
24004
- <div #slot class="user-content">
24161
+ <div class="user-content">
24005
24162
  <ng-content></ng-content>
24006
24163
  </div>
24007
24164
 
24008
- @if (!hasContent()) {
24009
- @if (resolvedUser()) {
24010
- <div class="user-meta">
24011
- @if (identityName(); as n) {
24012
- <span class="user-meta-item">{{ n }}</span>
24013
- }
24014
- @if (identityName() && gender()) {
24015
- <span class="user-meta-divider"></span>
24016
- }
24017
- @if (gender(); as g) {
24018
- <span class="user-meta-item">{{ g | translate }}</span>
24019
- }
24020
- </div>
24021
- } @else {
24022
- <div class="user-meta-loading"></div>
24023
- }
24165
+ @if (resolvedUser()) {
24166
+ <div class="user-meta">
24167
+ @if (identityName(); as n) {
24168
+ <span class="user-meta-item">{{ n }}</span>
24169
+ }
24170
+ @if (identityName() && gender()) {
24171
+ <span class="user-meta-divider"></span>
24172
+ }
24173
+ @if (gender(); as g) {
24174
+ <span class="user-meta-item">{{ g | translate }}</span>
24175
+ }
24176
+ </div>
24177
+ } @else {
24178
+ <div class="user-meta-loading"></div>
24024
24179
  }
24025
24180
  </div>
24026
24181
  </div>
24027
- `, 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)}}.user-profile{display:flex;align-items:flex-start;gap:1.25rem;padding:.25rem;border-radius:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.user-info{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;flex:1;min-width:0}.user-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.user-content{display:contents}.user-name{font-size:1.25rem;font-weight:800;color:var(--m-text);margin:0;letter-spacing:-.03em;line-height:1.2;text-transform:capitalize}.user-meta{display:flex;align-items:center;gap:.5rem;color:var(--m-text-secondary);font-size:.875rem;font-weight:600;opacity:.8}.user-meta-item{display:flex;align-items:center}.user-meta-divider{width:3px;height:3px;border-radius:50%;background:var(--m-text-tertiary);opacity:.4}\n"], dependencies: [{ kind: "component", type: UserAvatarComponent, selector: "m-user-avatar", inputs: ["user", "variant"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24182
+ `, 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)}}.user-profile{display:flex;align-items:flex-start;gap:1.25rem;padding:.25rem;border-radius:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.user-info{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;flex:1;min-width:0}.user-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.user-content{display:contents}.user-info:has(.user-content>*) .user-meta,.user-info:has(.user-content>*) .user-meta-loading{display:none}.user-name{font-size:1.25rem;font-weight:800;color:var(--m-text);margin:0;letter-spacing:-.03em;line-height:1.2;text-transform:capitalize}.user-meta{display:flex;align-items:center;gap:.5rem;color:var(--m-text-secondary);font-size:.875rem;font-weight:600;opacity:.8}.user-meta-item{display:flex;align-items:center}.user-meta-divider{width:3px;height:3px;border-radius:50%;background:var(--m-text-tertiary);opacity:.4}\n"], dependencies: [{ kind: "component", type: UserAvatarComponent, selector: "m-user-avatar", inputs: ["user", "variant"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24028
24183
  }
24029
24184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserComponent, decorators: [{
24030
24185
  type: Component,
@@ -24040,31 +24195,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
24040
24195
  <div class="user-name-loading"></div>
24041
24196
  }
24042
24197
 
24043
- <div #slot class="user-content">
24198
+ <div class="user-content">
24044
24199
  <ng-content></ng-content>
24045
24200
  </div>
24046
24201
 
24047
- @if (!hasContent()) {
24048
- @if (resolvedUser()) {
24049
- <div class="user-meta">
24050
- @if (identityName(); as n) {
24051
- <span class="user-meta-item">{{ n }}</span>
24052
- }
24053
- @if (identityName() && gender()) {
24054
- <span class="user-meta-divider"></span>
24055
- }
24056
- @if (gender(); as g) {
24057
- <span class="user-meta-item">{{ g | translate }}</span>
24058
- }
24059
- </div>
24060
- } @else {
24061
- <div class="user-meta-loading"></div>
24062
- }
24202
+ @if (resolvedUser()) {
24203
+ <div class="user-meta">
24204
+ @if (identityName(); as n) {
24205
+ <span class="user-meta-item">{{ n }}</span>
24206
+ }
24207
+ @if (identityName() && gender()) {
24208
+ <span class="user-meta-divider"></span>
24209
+ }
24210
+ @if (gender(); as g) {
24211
+ <span class="user-meta-item">{{ g | translate }}</span>
24212
+ }
24213
+ </div>
24214
+ } @else {
24215
+ <div class="user-meta-loading"></div>
24063
24216
  }
24064
24217
  </div>
24065
24218
  </div>
24066
- `, 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)}}.user-profile{display:flex;align-items:flex-start;gap:1.25rem;padding:.25rem;border-radius:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.user-info{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;flex:1;min-width:0}.user-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.user-content{display:contents}.user-name{font-size:1.25rem;font-weight:800;color:var(--m-text);margin:0;letter-spacing:-.03em;line-height:1.2;text-transform:capitalize}.user-meta{display:flex;align-items:center;gap:.5rem;color:var(--m-text-secondary);font-size:.875rem;font-weight:600;opacity:.8}.user-meta-item{display:flex;align-items:center}.user-meta-divider{width:3px;height:3px;border-radius:50%;background:var(--m-text-tertiary);opacity:.4}\n"] }]
24067
- }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], user: [{ type: i0.Input, args: [{ isSignal: true, alias: "user", required: false }] }], slotRef: [{ type: i0.ViewChild, args: ['slot', { isSignal: true }] }] } });
24219
+ `, 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)}}.user-profile{display:flex;align-items:flex-start;gap:1.25rem;padding:.25rem;border-radius:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.user-info{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;flex:1;min-width:0}.user-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.user-content{display:contents}.user-info:has(.user-content>*) .user-meta,.user-info:has(.user-content>*) .user-meta-loading{display:none}.user-name{font-size:1.25rem;font-weight:800;color:var(--m-text);margin:0;letter-spacing:-.03em;line-height:1.2;text-transform:capitalize}.user-meta{display:flex;align-items:center;gap:.5rem;color:var(--m-text-secondary);font-size:.875rem;font-weight:600;opacity:.8}.user-meta-item{display:flex;align-items:center}.user-meta-divider{width:3px;height:3px;border-radius:50%;background:var(--m-text-tertiary);opacity:.4}\n"] }]
24220
+ }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], user: [{ type: i0.Input, args: [{ isSignal: true, alias: "user", required: false }] }], firstName: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstName", required: false }] }], lastName: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastName", required: false }] }], profilePic: [{ type: i0.Input, args: [{ isSignal: true, alias: "profilePic", required: false }] }] } });
24068
24221
 
24069
24222
  class IdentityCardContentComponent {
24070
24223
  loginStore = inject(LoginStore);
@@ -24073,17 +24226,15 @@ class IdentityCardContentComponent {
24073
24226
  firstName = input('', ...(ngDevMode ? [{ debugName: "firstName" }] : /* istanbul ignore next */ []));
24074
24227
  lastName = input('', ...(ngDevMode ? [{ debugName: "lastName" }] : /* istanbul ignore next */ []));
24075
24228
  email = input('', ...(ngDevMode ? [{ debugName: "email" }] : /* istanbul ignore next */ []));
24076
- profilePic = input(undefined, ...(ngDevMode ? [{ debugName: "profilePic" }] : /* istanbul ignore next */ []));
24077
- identityUser = computed(() => ({
24078
- id: this.email(),
24079
- firstName: this.firstName(),
24080
- lastName: this.lastName(),
24081
- profilePic: this.profilePic(),
24082
- }), ...(ngDevMode ? [{ debugName: "identityUser" }] : /* istanbul ignore next */ []));
24229
+ profilePic = input('', ...(ngDevMode ? [{ debugName: "profilePic" }] : /* istanbul ignore next */ []));
24083
24230
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IdentityCardContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24084
24231
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: IdentityCardContentComponent, isStandalone: true, selector: "m-identity-card-content", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, firstName: { classPropertyName: "firstName", publicName: "firstName", isSignal: true, isRequired: false, transformFunction: null }, lastName: { classPropertyName: "lastName", publicName: "lastName", isSignal: true, isRequired: false, transformFunction: null }, email: { classPropertyName: "email", publicName: "email", isSignal: true, isRequired: false, transformFunction: null }, profilePic: { classPropertyName: "profilePic", publicName: "profilePic", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
24085
24232
  <div class="identity-card-content">
24086
- <m-user [user]="identityUser()">
24233
+ <m-user
24234
+ [firstName]="firstName()"
24235
+ [lastName]="lastName()"
24236
+ [profilePic]="profilePic()"
24237
+ >
24087
24238
  <span class="identity-card-content__email">{{ email() }}</span>
24088
24239
  </m-user>
24089
24240
  <div
@@ -24095,13 +24246,17 @@ class IdentityCardContentComponent {
24095
24246
  <m-one-button name="x" (clicked)="loginStore.removeIdentity(email())" />
24096
24247
  </div>
24097
24248
  </div>
24098
- `, 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)}}.identity-card-content{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%}.identity-card-content m-user{flex:1;min-width:0}.identity-card-content__email{font-size:.8125rem;color:var(--m-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identity-card-content__remove{flex-shrink:0}\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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24249
+ `, 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)}}.identity-card-content{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%}.identity-card-content m-user{flex:1;min-width:0}.identity-card-content__email{font-size:.8125rem;color:var(--m-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identity-card-content__remove{flex-shrink:0}\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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24099
24250
  }
24100
24251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IdentityCardContentComponent, decorators: [{
24101
24252
  type: Component,
24102
24253
  args: [{ selector: 'm-identity-card-content', template: `
24103
24254
  <div class="identity-card-content">
24104
- <m-user [user]="identityUser()">
24255
+ <m-user
24256
+ [firstName]="firstName()"
24257
+ [lastName]="lastName()"
24258
+ [profilePic]="profilePic()"
24259
+ >
24105
24260
  <span class="identity-card-content__email">{{ email() }}</span>
24106
24261
  </m-user>
24107
24262
  <div
@@ -24144,7 +24299,7 @@ class LoginOneComponent {
24144
24299
  email,
24145
24300
  firstName: info?.firstName ?? '',
24146
24301
  lastName: info?.lastName ?? '',
24147
- profilePic: info?.profilePic,
24302
+ profilePic: info?.profilePic ?? '',
24148
24303
  },
24149
24304
  };
24150
24305
  }),
@@ -24200,7 +24355,7 @@ class LoginOneComponent {
24200
24355
  return (s) => validateLoginForm(s, form, this.#loginStore.invalidPassword, this.#loginStore.invalidOTP);
24201
24356
  }, ...(ngDevMode ? [{ debugName: "validation" }] : /* istanbul ignore next */ []));
24202
24357
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: LoginOneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24203
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: LoginOneComponent, isStandalone: true, selector: "m-login", host: { classAttribute: "m-login" }, ngImport: i0, template: "<m-section variant=\"noBorder\">\n <m-section-back\n [padding]=\"true\"\n [back]=\"loginStore.hasBack()\"\n [html]=\"loginStore.help() | translate: helpText()\"\n (navigate)=\"loginStore.back()\"\n />\n <m-col [fullHeight]=\"true\">\n <m-watermark [config]=\"watermarkConfig()\" />\n </m-col>\n <m-col [padding]=\"true\">\n @if (loginStore.form() === LOGIN_FORM_GROUP.SELECT_IDENTITY) {\n <m-one-form\n name=\"select_identity\"\n [(data)]=\"loginData\"\n [(state)]=\"loginState\"\n [elements]=\"identityElements\"\n [datas]=\"identityDatas()\"\n (dataChange)=\"onIdentityFormChange($event)\"\n />\n } @else if (loginStore.form(); as loginForm) {\n @for (_form of [loginForm]; track _form) {\n <m-one-form\n [name]=\"loginForm\"\n [(data)]=\"loginData\"\n [(state)]=\"loginState\"\n [validation]=\"validation()\"\n (act)=\"loginStore.act($event)\"\n />\n }\n }\n </m-col>\n\n @if (loginStore.form() && loginStore.form() !== LOGIN_FORM_GROUP.SELECT_IDENTITY) {\n <m-section-footer [sticky]=\"true\">\n @if (toReset() || toResend()) {\n <m-one-button\n [name]=\"toResend() ? 'resend' : 'reset'\"\n [disabled]=\"loginState()?.disabled\"\n (clicked)=\"loginStore.reset({})\"\n />\n }\n <m-one-button\n name=\"next\"\n [fullWidth]=\"true\"\n [disabled]=\"loginState()?.disabled || loginState()?.invalid\"\n (clicked)=\"loginStore.act(loginData())\"\n />\n </m-section-footer>\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)}}.m-login{position:relative;display:block;height:100%;width:480px;max-width:100vw;overflow:hidden}@media(max-width:767px){.m-login{width:100vw}}.m-login m-section{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;overflow:auto;background:transparent}.m-login m-section .m-section__body{position:relative;z-index:2;flex:1}.m-login m-col{position:relative;z-index:2}.m-login m-col:first-of-type{display:flex;align-items:center;justify-content:center;min-height:200px}.m-login m-col m-watermark{display:block;width:100%;--m-watermark-opacity: 1}\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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: FormGroupComponent, selector: "m-form, m-one-form", inputs: ["data", "state", "validation", "options", "fieldConfigs", "aclResolver", "autofocus", "readonly", "fieldRenderIds", "elements", "datas", "label", "subtitle"], outputs: ["dataChange", "act", "stateChange"] }, { kind: "component", type: SectionBackComponent, selector: "m-section-back", inputs: ["back", "label", "html", "padding", "paddingX", "paddingY"], outputs: ["navigate"] }, { kind: "component", type: SectionFooterComponent, selector: "m-section-footer", inputs: ["sticky", "align"] }, { 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: "component", type: WatermarkComponent, selector: "m-watermark" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24358
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: LoginOneComponent, isStandalone: true, selector: "m-login", host: { classAttribute: "m-login" }, ngImport: i0, template: "<m-section variant=\"noBorder\">\n <m-section-back\n [padding]=\"true\"\n [back]=\"loginStore.hasBack()\"\n [html]=\"loginStore.help() | translate: helpText()\"\n (navigate)=\"loginStore.back()\"\n />\n <m-col [fullHeight]=\"true\">\n <m-watermark [config]=\"watermarkConfig()\" />\n </m-col>\n <m-col [padding]=\"true\">\n @if (loginStore.form() === LOGIN_FORM_GROUP.SELECT_IDENTITY) {\n <m-one-form\n name=\"select_identity\"\n [(data)]=\"loginData\"\n [(state)]=\"loginState\"\n [elements]=\"identityElements\"\n [datas]=\"identityDatas()\"\n (dataChange)=\"onIdentityFormChange($event)\"\n />\n } @else if (loginStore.form(); as loginForm) {\n @for (_form of [loginForm]; track _form) {\n <m-one-form\n [name]=\"loginForm\"\n [(data)]=\"loginData\"\n [(state)]=\"loginState\"\n [validation]=\"validation()\"\n (act)=\"loginStore.act($event)\"\n />\n }\n }\n </m-col>\n\n @if (loginStore.form() && loginStore.form() !== LOGIN_FORM_GROUP.SELECT_IDENTITY) {\n <m-section-footer [sticky]=\"true\">\n @if (toReset() || toResend()) {\n <m-one-button\n [name]=\"toResend() ? 'resend' : 'reset'\"\n [disabled]=\"loginState()?.disabled\"\n (clicked)=\"loginStore.reset({})\"\n />\n }\n <m-one-button\n name=\"next\"\n [fullWidth]=\"true\"\n [disabled]=\"loginState()?.disabled || loginState()?.invalid\"\n (clicked)=\"loginStore.act(loginData())\"\n />\n </m-section-footer>\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)}}.m-login{position:relative;display:block;height:100%;width:480px;max-width:100vw;overflow:hidden}@media(max-width:767px){.m-login{width:100vw}}.m-login m-section{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;overflow:auto;background:transparent}.m-login m-section .m-section__body{position:relative;z-index:2;flex:1}.m-login m-col{position:relative;z-index:2}.m-login m-col:first-of-type{display:flex;align-items:center;justify-content:center;min-height:200px}.m-login m-col m-watermark{display:block;width:100%;--m-watermark-opacity: 1}\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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { 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: SectionBackComponent, selector: "m-section-back", inputs: ["back", "label", "html", "padding", "paddingX", "paddingY"], outputs: ["navigate"] }, { kind: "component", type: SectionFooterComponent, selector: "m-section-footer", inputs: ["sticky", "align"] }, { 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: "component", type: WatermarkComponent, selector: "m-watermark" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24204
24359
  }
24205
24360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: LoginOneComponent, decorators: [{
24206
24361
  type: Component,
@@ -24511,6 +24666,26 @@ const mInterceptor = (request, next) => {
24511
24666
  const isRefreshCall = request.url === httpService.buildUrl('auth', ['refresh']);
24512
24667
  const actions = SharedStoreRegistry.getLoadingActions() ?? loadingActions;
24513
24668
  const notificationService = inject(NotificationService);
24669
+ /**
24670
+ * Counts one request in flight and reports its failure. Applied at the point
24671
+ * a request is actually sent rather than at the point the interceptor is
24672
+ * entered, so a request parked waiting for tokens shows the overlay when it
24673
+ * goes out and not while a login modal is up.
24674
+ *
24675
+ * The start is eager — it runs when this is called, matching the pre-existing
24676
+ * `startLoading()` call site — and the stop rides `finalize`, so the pair is
24677
+ * balanced on success, on error and on unsubscribe alike.
24678
+ */
24679
+ const withLoading = (source) => {
24680
+ actions.startLoading();
24681
+ return source.pipe(tap({
24682
+ error: (e) => {
24683
+ actions.setError();
24684
+ if (e.status !== 403)
24685
+ notificationService.notifyHttpError(e.status, e.error, e.message);
24686
+ },
24687
+ }), finalize(() => actions.stopLoading()));
24688
+ };
24514
24689
  const sendWithToken = () => {
24515
24690
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
24516
24691
  const t = store.tokens();
@@ -24578,19 +24753,37 @@ const mInterceptor = (request, next) => {
24578
24753
  }
24579
24754
  return waitForToken();
24580
24755
  };
24581
- const waitForBoth = () => race(authObs.userId$.pipe(filter((id) => !!id), take(1), switchMap$1(() => authObs.tokens$.pipe(filter((t) => !!t), take(1), switchMap$1(() => sendWithToken())))), authFailed$.pipe(take(1), switchMap$1((err) => throwError(() => err))));
24756
+ // Loading starts inside, at the moment the parked request is finally sent
24757
+ // not when it was parked. A request waiting on a login modal is not work the
24758
+ // User is waiting on, and an overlay over that modal is a spinner they cannot
24759
+ // dismiss. Which is also why this branch no longer calls `cancelLoading()`:
24760
+ // there is nothing of its own to cancel, and the reset was zeroing the count
24761
+ // of every *other* request genuinely in flight.
24762
+ const waitForBoth = () => race(authObs.userId$.pipe(filter((id) => !!id), take(1), switchMap$1(() => authObs.tokens$.pipe(filter((t) => !!t), take(1), switchMap$1(() => withLoading(sendWithToken()))))),
24763
+ // The parked request never went out, so there is no count to unwind —
24764
+ // but the failure is still this request's failure, and it used to be
24765
+ // reported by the outer pipe this branch no longer has.
24766
+ authFailed$.pipe(take(1), switchMap$1((err) => {
24767
+ actions.setError();
24768
+ if (err.status !== 403)
24769
+ notificationService.notifyHttpError(err.status, err.error, err.message);
24770
+ return throwError(() => err);
24771
+ })));
24772
+ // The first request every app makes. It showed nothing at all before, so a
24773
+ // scaffold's whole boot was silent.
24582
24774
  if (isInitCall) {
24583
24775
  if (tokens) {
24584
- return sendWithToken();
24585
- }
24586
- else {
24587
- actions.cancelLoading();
24588
- return from(authenticate()).pipe(switchMap$1(({ tokens }) => {
24589
- store.setTokens(tokens);
24590
- tokenRefreshed$.next();
24591
- return sendWithToken();
24592
- }));
24776
+ return withLoading(sendWithToken());
24593
24777
  }
24778
+ // No tokens: `authenticate()` puts the login modal up, and the overlay is
24779
+ // cancelled for its duration rather than covering it. The send that follows
24780
+ // the login is real work and counts.
24781
+ actions.cancelLoading();
24782
+ return from(authenticate()).pipe(switchMap$1(({ tokens }) => {
24783
+ store.setTokens(tokens);
24784
+ tokenRefreshed$.next();
24785
+ return withLoading(sendWithToken());
24786
+ }));
24594
24787
  }
24595
24788
  if (isAuth) {
24596
24789
  if (isRefreshCall && pendingRefreshToken) {
@@ -24603,24 +24796,13 @@ const mInterceptor = (request, next) => {
24603
24796
  }
24604
24797
  return sendWithToken();
24605
24798
  }
24799
+ // `waitForBoth` carries its own loading — it starts when the parked request
24800
+ // is sent, and the error the race rejects with reaches the same handler
24801
+ // through it.
24606
24802
  if (!tokens || !userId || pendingRefreshToken) {
24607
- actions.cancelLoading();
24608
- return waitForBoth().pipe(tap({
24609
- error: (e) => {
24610
- actions.setError();
24611
- if (e.status !== 403)
24612
- notificationService.notifyHttpError(e.status, e.error, e.message);
24613
- },
24614
- }), finalize(() => actions.stopLoading()));
24803
+ return waitForBoth();
24615
24804
  }
24616
- actions.startLoading();
24617
- return sendWithToken().pipe(tap({
24618
- error: (e) => {
24619
- actions.setError();
24620
- if (e.status !== 403)
24621
- notificationService.notifyHttpError(e.status, e.error, e.message);
24622
- },
24623
- }), finalize(() => actions.stopLoading()));
24805
+ return withLoading(sendWithToken());
24624
24806
  };
24625
24807
 
24626
24808
  class BaseWebComponent {
@@ -25294,7 +25476,7 @@ class OverlayBodyComponent {
25294
25476
  } @else if (tag(); as t) {
25295
25477
  <m-ce-outlet [tag]="t" />
25296
25478
  }
25297
- `, isInline: true, dependencies: [{ kind: "component", type: FormGroupComponent, selector: "m-form, m-one-form", inputs: ["data", "state", "validation", "options", "fieldConfigs", "aclResolver", "autofocus", "readonly", "fieldRenderIds", "elements", "datas", "label", "subtitle"], outputs: ["dataChange", "act", "stateChange"] }, { kind: "component", type: CeOutletComponent, selector: "m-ce-outlet", inputs: ["tag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25479
+ `, isInline: true, 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: CeOutletComponent, selector: "m-ce-outlet", inputs: ["tag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25298
25480
  }
25299
25481
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: OverlayBodyComponent, decorators: [{
25300
25482
  type: Component,
@@ -27166,7 +27348,7 @@ class UserNavComponent {
27166
27348
  this.activeTabId.set(tab.name);
27167
27349
  };
27168
27350
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27169
- 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\" 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"] }, { 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 });
27351
+ 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\" 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 });
27170
27352
  }
27171
27353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserNavComponent, decorators: [{
27172
27354
  type: Component,
@@ -27801,7 +27983,7 @@ class ThemeComponent extends BaseWebComponent {
27801
27983
  </div>
27802
27984
  }
27803
27985
  </div>
27804
- `, 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-theme{display:flex;flex-direction:column;width:100%;padding:1.5rem;box-sizing:border-box;background:transparent;font-family:Outfit,Inter,system-ui,sans-serif}.m-theme__mode-selector{display:flex;justify-content:center;margin-bottom:2rem;width:100%}.m-theme__list-container{display:flex;flex-direction:column;gap:1.5rem}.m-theme .selectable-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;width:100%}.m-theme .theme-card-content{display:flex;flex-direction:column;gap:1.25rem;width:100%;box-sizing:border-box}.m-theme .theme-card-content__preview-window{width:100%;height:120px;border-radius:.75rem;border:1px solid;overflow:hidden;display:flex;flex-direction:column;box-shadow:inset 0 0 0 1px #ffffff1a,0 4px 12px #00000008;transition:border-color .2s ease}.m-theme .theme-card-content__mini-header{height:24px;display:flex;align-items:center;padding:0 .75rem;justify-content:space-between;border-bottom:1px solid;flex-shrink:0}.m-theme .theme-card-content__dot-group{display:flex;gap:4px}.m-theme .theme-card-content__dot{width:6px;height:6px;border-radius:50%;display:inline-block}.m-theme .theme-card-content__dot--red{background:#ff5f56}.m-theme .theme-card-content__dot--yellow{background:#ffbd2e}.m-theme .theme-card-content__dot--green{background:#27c93f}.m-theme .theme-card-content__mini-title{font-size:.65rem;font-weight:600;letter-spacing:.02em;text-transform:capitalize}.m-theme .theme-card-content__mini-body{display:flex;flex:1;min-height:0}.m-theme .theme-card-content__mini-sidebar{width:38px;border-right:1px solid;display:flex;flex-direction:column;gap:5px;padding:.625rem .375rem;box-sizing:border-box}.m-theme .theme-card-content__mini-main{flex:1;padding:.625rem;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.m-theme .theme-card-content__mini-card{width:100%;height:100%;border-radius:.375rem;border:1px solid;padding:.5rem;box-sizing:border-box;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 3px #00000005}.m-theme .theme-card-content__line{height:3px;border-radius:2px}.m-theme .theme-card-content__line--short{width:14px}.m-theme .theme-card-content__line--heading{width:28px;height:4px;margin-bottom:3px}.m-theme .theme-card-content__line--body{width:85%}.m-theme .theme-card-content__footer{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}.m-theme .theme-card-content__info{display:flex;align-items:center;gap:.625rem}.m-theme .theme-card-content__icon-wrapper{font-size:1.25rem;display:inline-flex;align-items:center;justify-content:center}.m-theme .theme-card-content__name{font-size:.95rem;font-weight:700}.m-theme .theme-card-content__palette{display:flex;gap:5px}.m-theme .theme-card-content__swatch{width:.875rem;height:.875rem;border-radius:50%;border:1px solid rgba(0,0,0,.1);display:inline-block;box-shadow:0 1px 2px #0000000d;transition:transform .2s ease}.m-theme .theme-card-content__swatch:hover{transform:scale(1.2)}\n"], dependencies: [{ kind: "component", type: ToggleRadioInputComponent, selector: "m-toggle-radio", inputs: ["one"] }, { kind: "component", type: SelectableCardInputComponent, selector: "m-selectable-card", inputs: ["element", "data", "options", "value"], outputs: ["valueChange"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
27986
+ `, 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-theme{display:flex;flex-direction:column;width:100%;padding:1.5rem;box-sizing:border-box;background:transparent;font-family:Outfit,Inter,system-ui,sans-serif}.m-theme__mode-selector{display:flex;justify-content:center;margin-bottom:2rem;width:100%}.m-theme__list-container{display:flex;flex-direction:column;gap:1.5rem}.m-theme .selectable-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;width:100%}.m-theme .theme-card-content{display:flex;flex-direction:column;gap:1.25rem;width:100%;box-sizing:border-box}.m-theme .theme-card-content__preview-window{width:100%;height:120px;border-radius:.75rem;border:1px solid;overflow:hidden;display:flex;flex-direction:column;box-shadow:inset 0 0 0 1px #ffffff1a,0 4px 12px #00000008;transition:border-color .2s ease}.m-theme .theme-card-content__mini-header{height:24px;display:flex;align-items:center;padding:0 .75rem;justify-content:space-between;border-bottom:1px solid;flex-shrink:0}.m-theme .theme-card-content__dot-group{display:flex;gap:4px}.m-theme .theme-card-content__dot{width:6px;height:6px;border-radius:50%;display:inline-block}.m-theme .theme-card-content__dot--red{background:#ff5f56}.m-theme .theme-card-content__dot--yellow{background:#ffbd2e}.m-theme .theme-card-content__dot--green{background:#27c93f}.m-theme .theme-card-content__mini-title{font-size:.65rem;font-weight:600;letter-spacing:.02em;text-transform:capitalize}.m-theme .theme-card-content__mini-body{display:flex;flex:1;min-height:0}.m-theme .theme-card-content__mini-sidebar{width:38px;border-right:1px solid;display:flex;flex-direction:column;gap:5px;padding:.625rem .375rem;box-sizing:border-box}.m-theme .theme-card-content__mini-main{flex:1;padding:.625rem;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.m-theme .theme-card-content__mini-card{width:100%;height:100%;border-radius:.375rem;border:1px solid;padding:.5rem;box-sizing:border-box;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 3px #00000005}.m-theme .theme-card-content__line{height:3px;border-radius:2px}.m-theme .theme-card-content__line--short{width:14px}.m-theme .theme-card-content__line--heading{width:28px;height:4px;margin-bottom:3px}.m-theme .theme-card-content__line--body{width:85%}.m-theme .theme-card-content__footer{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}.m-theme .theme-card-content__info{display:flex;align-items:center;gap:.625rem}.m-theme .theme-card-content__icon-wrapper{font-size:1.25rem;display:inline-flex;align-items:center;justify-content:center}.m-theme .theme-card-content__name{font-size:.95rem;font-weight:700}.m-theme .theme-card-content__palette{display:flex;gap:5px}.m-theme .theme-card-content__swatch{width:.875rem;height:.875rem;border-radius:50%;border:1px solid rgba(0,0,0,.1);display:inline-block;box-shadow:0 1px 2px #0000000d;transition:transform .2s ease}.m-theme .theme-card-content__swatch:hover{transform:scale(1.2)}\n"], dependencies: [{ kind: "component", type: ToggleRadioInputComponent, selector: "m-toggle-radio", inputs: ["one"] }, { kind: "component", type: SelectableCardInputComponent, selector: "m-selectable-card", inputs: ["element", "data", "template", "options", "value"], outputs: ["valueChange"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
27805
27987
  }
27806
27988
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ThemeComponent, decorators: [{
27807
27989
  type: Component,
@@ -28121,7 +28303,7 @@ class LanguageComponent extends BaseWebComponent {
28121
28303
  }
28122
28304
  </div>
28123
28305
  </div>
28124
- `, 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-language{display:flex;flex-direction:column;width:100%;padding:1.5rem;box-sizing:border-box;background:transparent;font-family:Outfit,Inter,system-ui,sans-serif}.m-language__list-container{display:flex;flex-direction:column;gap:2rem}.m-language__section{display:flex;flex-direction:column;gap:.875rem}.m-language__section m-header h4{margin:0;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}.m-language__empty{display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;background:#fff6;border:1px dashed rgba(0,0,0,.08);border-radius:1rem}.m-language__empty m-header h4{margin:0;font-size:1rem;font-weight:500;color:#64748b}.m-language .selectable-card__item{background:#fff9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.06);border-radius:1rem;padding:.875rem 1.125rem;margin-bottom:.25rem;box-shadow:0 4px 6px -1px #00000005,0 2px 4px -1px #00000003}.m-language .selectable-card__item--selected{border-color:var(--mm-color, var(--m-mm));background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 6%,#ffffff);box-shadow:0 10px 15px -3px color-mix(in srgb,var(--mm-color, var(--m-mm)) 8%,transparent),0 4px 6px -2px color-mix(in srgb,var(--mm-color, var(--m-mm)) 8%,transparent)}.m-language .selectable-card__item--selected .language-card-content__avatar{background:var(--mm-color, var(--m-mm));color:#fff}.m-language .selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--mm-color, var(--m-mm));background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 3%,rgba(255,255,255,.9))}.m-language .language-card-content{display:flex;align-items:center;gap:1.125rem}.m-language .language-card-content__avatar{width:2.75rem;height:2.75rem;border-radius:.75rem;background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 10%,rgba(255,255,255,.8));color:var(--mm-color, var(--m-mm));display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;transition:all .2s ease;flex-shrink:0;box-shadow:inset 0 2px 4px #00000005}.m-language .language-card-content__info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.m-language .language-card-content__native{font-size:.95rem;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-language .language-card-content__english{font-size:.8125rem;font-weight:400;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-language .selectable-card__indicator input[type=radio]{width:1.25rem;height:1.25rem;border:2px solid #cbd5e1;border-radius:50%;transition:all .2s ease}.m-language .selectable-card__indicator input[type=radio]:checked{border-color:var(--mm-color, var(--m-mm));background:var(--mm-color, var(--m-mm))}.m-language .selectable-card__indicator input[type=radio]:checked:after{background:#fff;width:.45rem;height:.45rem}\n"], dependencies: [{ kind: "component", type: SelectableCardInputComponent, selector: "m-selectable-card", inputs: ["element", "data", "options", "value"], outputs: ["valueChange"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
28306
+ `, 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-language{display:flex;flex-direction:column;width:100%;padding:1.5rem;box-sizing:border-box;background:transparent;font-family:Outfit,Inter,system-ui,sans-serif}.m-language__list-container{display:flex;flex-direction:column;gap:2rem}.m-language__section{display:flex;flex-direction:column;gap:.875rem}.m-language__section m-header h4{margin:0;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}.m-language__empty{display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;background:#fff6;border:1px dashed rgba(0,0,0,.08);border-radius:1rem}.m-language__empty m-header h4{margin:0;font-size:1rem;font-weight:500;color:#64748b}.m-language .selectable-card__item{background:#fff9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.06);border-radius:1rem;padding:.875rem 1.125rem;margin-bottom:.25rem;box-shadow:0 4px 6px -1px #00000005,0 2px 4px -1px #00000003}.m-language .selectable-card__item--selected{border-color:var(--mm-color, var(--m-mm));background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 6%,#ffffff);box-shadow:0 10px 15px -3px color-mix(in srgb,var(--mm-color, var(--m-mm)) 8%,transparent),0 4px 6px -2px color-mix(in srgb,var(--mm-color, var(--m-mm)) 8%,transparent)}.m-language .selectable-card__item--selected .language-card-content__avatar{background:var(--mm-color, var(--m-mm));color:#fff}.m-language .selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--mm-color, var(--m-mm));background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 3%,rgba(255,255,255,.9))}.m-language .language-card-content{display:flex;align-items:center;gap:1.125rem}.m-language .language-card-content__avatar{width:2.75rem;height:2.75rem;border-radius:.75rem;background:color-mix(in srgb,var(--mm-color, var(--m-mm)) 10%,rgba(255,255,255,.8));color:var(--mm-color, var(--m-mm));display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;transition:all .2s ease;flex-shrink:0;box-shadow:inset 0 2px 4px #00000005}.m-language .language-card-content__info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.m-language .language-card-content__native{font-size:.95rem;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-language .language-card-content__english{font-size:.8125rem;font-weight:400;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-language .selectable-card__indicator input[type=radio]{width:1.25rem;height:1.25rem;border:2px solid #cbd5e1;border-radius:50%;transition:all .2s ease}.m-language .selectable-card__indicator input[type=radio]:checked{border-color:var(--mm-color, var(--m-mm));background:var(--mm-color, var(--m-mm))}.m-language .selectable-card__indicator input[type=radio]:checked:after{background:#fff;width:.45rem;height:.45rem}\n"], dependencies: [{ kind: "component", type: SelectableCardInputComponent, selector: "m-selectable-card", inputs: ["element", "data", "template", "options", "value"], outputs: ["valueChange"] }, { kind: "component", type: HeaderComponent$1, selector: "m-header", inputs: ["level", "label", "actionButton", "actionLabel", "noTranslate"], outputs: ["actionClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
28125
28307
  }
28126
28308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: LanguageComponent, decorators: [{
28127
28309
  type: Component,
@@ -28378,7 +28560,7 @@ class UserSettingsComponent {
28378
28560
  }
28379
28561
  </m-accordion-group>
28380
28562
  </div>
28381
- `, isInline: true, dependencies: [{ kind: "component", type: AccordionGroupComponent, selector: "m-accordion-group, m-one-accordion-group" }, { kind: "component", type: AccordionComponent, selector: "m-accordion", inputs: ["variant", "open", "label", "subtitle", "icon"], outputs: ["toggled"] }, { kind: "directive", type: AccordionBodyDirective, selector: "ng-template[mAccordionBody]" }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
28563
+ `, isInline: true, dependencies: [{ kind: "component", type: AccordionGroupComponent, selector: "m-accordion-group, m-one-accordion-group" }, { kind: "component", type: AccordionComponent, selector: "m-accordion", inputs: ["variant", "open", "label", "subtitle", "icon"], outputs: ["toggled"] }, { kind: "directive", type: AccordionBodyDirective, selector: "ng-template[mAccordionBody]" }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
28382
28564
  }
28383
28565
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserSettingsComponent, decorators: [{
28384
28566
  type: Component,
@@ -28559,10 +28741,16 @@ function provideMagWcConfig(options) {
28559
28741
  new LoginStore(),
28560
28742
  },
28561
28743
  {
28744
+ // Falls back to the local LoginStore rather than to `null`, matching
28745
+ // `provideMagAppConfig`. A WC bundle mounted with no host had no login
28746
+ // store at all, so `mm-interceptor` read `store?.tokens()` and
28747
+ // `store?.userId()` as undefined forever, took the wait-for-auth branch
28748
+ // on every request, and never counted one as loading.
28562
28749
  provide: LOGIN_STORE,
28563
- useFactory: () => SharedStoreRegistry.getLoginStore() ||
28750
+ useFactory: (localStore) => SharedStoreRegistry.getLoginStore() ||
28564
28751
  SharedStoreRegistry.getHostInjector()?.get(LOGIN_STORE, null) ||
28565
- null,
28752
+ localStore,
28753
+ deps: [LoginStore],
28566
28754
  },
28567
28755
  {
28568
28756
  provide: APP_CONTEXT_REF,
@@ -29924,7 +30112,7 @@ class SvgGeneratorToolBoxComponent {
29924
30112
  }
29925
30113
  </div>
29926
30114
  </m-section>
29927
- </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", "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", "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 });
30115
+ </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", "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 });
29928
30116
  }
29929
30117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SvgGeneratorToolBoxComponent, decorators: [{
29930
30118
  type: Component,
@@ -30606,7 +30794,7 @@ class SearchUserPanelComponent {
30606
30794
  this.modalStore.close();
30607
30795
  }
30608
30796
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SearchUserPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30609
- 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", "datas", "label", "subtitle"], outputs: ["dataChange", "act", "stateChange"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user"] }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], 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 });
30797
+ 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", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], 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 });
30610
30798
  }
30611
30799
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SearchUserPanelComponent, decorators: [{
30612
30800
  type: Component,
@@ -30950,7 +31138,7 @@ class CommentItemComponent {
30950
31138
  }
30951
31139
  }
30952
31140
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CommentItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30953
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: CommentItemComponent, isStandalone: true, selector: "m-comment-item", inputs: { comment: { classPropertyName: "comment", publicName: "comment", isSignal: true, isRequired: true, transformFunction: null }, showReplies: { classPropertyName: "showReplies", publicName: "showReplies", isSignal: true, isRequired: false, transformFunction: null }, isReplying: { classPropertyName: "isReplying", publicName: "isReplying", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { reply: "reply", cancelReply: "cancelReply", toggleReplies: "toggleReplies", deleted: "deleted" }, ngImport: i0, template: "<m-user [id]=\"comment().uid\">\n <p class=\"comment-item__text\">{{ comment().text }}</p>\n\n <div class=\"comment-item__actions\">\n <span class=\"comment-item__date\">{{ comment().date | date: 'shortTime' }}</span>\n\n <m-button name=\"reply\" (clicked)=\"reply.emit(comment().id)\" />\n\n <div class=\"comment-item__menu-container\">\n @if (isAuthor()) {\n <m-one-context-menu name=\"comment_actions\" (action)=\"onMenuAction($event)\" />\n }\n </div>\n </div>\n\n @if (comment().replyCount > 0) {\n <m-button\n [name]=\"showReplies() ? 'hide-replies' : 'view-replies'\"\n (clicked)=\"toggleReplies.emit()\"\n />\n }\n\n @if (isReplying()) {\n <div class=\"comment-item__reply-compose\">\n <m-textarea-input [config]=\"replyConfig\" [(value)]=\"replyDraft\" [disabled]=\"submitting\" />\n <div class=\"comment-item__reply-actions-wrapper\">\n <m-one-button-group\n name=\"reply_actions\"\n [buttons]=\"{\n post: { disabled: !replyDraft().trim() || submitting },\n }\"\n (clicked)=\"onReplyAction($event)\"\n />\n </div>\n </div>\n }\n\n @if (showReplies()) {\n <div class=\"comment-item__nested\">\n <m-comments [id]=\"comment().id\" [isNested]=\"true\" />\n </div>\n }\n</m-user>\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-right{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.comment-item{position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);animation:fade-in .5s cubic-bezier(.16,1,.3,1)}.comment-item__text{margin:.25rem 0 .5rem;font-size:.95rem;line-height:1.6;color:var(--m-text);font-weight:400;word-break:break-word;animation:slide-right .6s cubic-bezier(.16,1,.3,1)}.comment-item__actions{display:flex;align-items:center;gap:1.5rem;margin-top:.25rem}.comment-item__date{color:var(--m-text-tertiary);font-size:.75rem;font-weight:500;letter-spacing:.01em}.comment-item__reply-compose{margin-top:1rem;margin-bottom:.5rem;display:flex;flex-direction:column;gap:1rem;background:color-mix(in srgb,var(--m-border) 15%,transparent);border:1px solid color-mix(in srgb,var(--m-border) 30%,transparent);border-radius:20px;padding:1rem;box-shadow:0 8px 32px #00000005,0 2px 8px #00000003;transition:all .4s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden;animation:slide-up .6s cubic-bezier(.16,1,.3,1)}.comment-item__reply-compose:focus-within{border-color:color-mix(in srgb,var(--m-mm) 50%,transparent);background:color-mix(in srgb,var(--m-border) 10%,transparent);box-shadow:0 12px 40px #0000000a}.comment-item__reply-compose .m-textarea-input{--m-textarea-input-background: transparent;--m-textarea-input-border: none;--m-textarea-input-padding: 0;--m-textarea-input-shadow: none;width:100%}.comment-item__reply-compose .m-textarea-input textarea{width:100%;font-size:.9rem;color:var(--m-text);min-height:60px;resize:none;line-height:1.5}.comment-item__reply-compose .m-textarea-input textarea::placeholder{color:var(--m-text-tertiary)}.comment-item__reply-actions-wrapper{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end;width:100%;transition:all .3s ease}.comment-item__nested{margin-top:.25rem;margin-left:1rem;padding:0;border-left:2px solid color-mix(in srgb,var(--m-mm) 10%,transparent);transition:border-color .3s;animation:fade-in .5s ease-out}.comment-item__nested:hover{border-left-color:color-mix(in srgb,var(--m-mm) 30%,transparent)}.comment-item__nested .comments{padding:0;background:transparent;box-shadow:none;border-radius:0;gap:1rem}.comment-item__nested .comments .comments__compose{margin-top:.5rem;padding:1rem;border-radius:.375rem}.comment-item__menu-container{position:relative;display:inline-flex;margin-left:auto}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => UserComponent), selector: "m-user", inputs: ["id", "user"] }, { kind: "component", type: i0.forwardRef(() => TextareaInputComponent), selector: "m-textarea-input" }, { kind: "component", type: i0.forwardRef(() => ButtonGroupComponent), selector: "m-button-group, m-one-button-group", inputs: ["buttons", "names", "exclude", "vertical", "size"], outputs: ["clicked"] }, { kind: "component", type: i0.forwardRef(() => ButtonComponent), selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: i0.forwardRef(() => ContextMenuComponent), selector: "m-context-menu, m-one-context-menu", inputs: ["toggle", "remote", "exclude", "visibilityRule", "disableRule", "extraData", "inverted"], outputs: ["toggleChange", "action"] }, { kind: "component", type: i0.forwardRef(() => CommentsComponent), selector: "m-comments", inputs: ["id", "isNested"] }, { kind: "pipe", type: i0.forwardRef(() => DatePipe), name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
31141
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: CommentItemComponent, isStandalone: true, selector: "m-comment-item", inputs: { comment: { classPropertyName: "comment", publicName: "comment", isSignal: true, isRequired: true, transformFunction: null }, showReplies: { classPropertyName: "showReplies", publicName: "showReplies", isSignal: true, isRequired: false, transformFunction: null }, isReplying: { classPropertyName: "isReplying", publicName: "isReplying", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { reply: "reply", cancelReply: "cancelReply", toggleReplies: "toggleReplies", deleted: "deleted" }, ngImport: i0, template: "<m-user [id]=\"comment().uid\">\n <p class=\"comment-item__text\">{{ comment().text }}</p>\n\n <div class=\"comment-item__actions\">\n <span class=\"comment-item__date\">{{ comment().date | date: 'shortTime' }}</span>\n\n <m-button name=\"reply\" (clicked)=\"reply.emit(comment().id)\" />\n\n <div class=\"comment-item__menu-container\">\n @if (isAuthor()) {\n <m-one-context-menu name=\"comment_actions\" (action)=\"onMenuAction($event)\" />\n }\n </div>\n </div>\n\n @if (comment().replyCount > 0) {\n <m-button\n [name]=\"showReplies() ? 'hide-replies' : 'view-replies'\"\n (clicked)=\"toggleReplies.emit()\"\n />\n }\n\n @if (isReplying()) {\n <div class=\"comment-item__reply-compose\">\n <m-textarea-input [config]=\"replyConfig\" [(value)]=\"replyDraft\" [disabled]=\"submitting\" />\n <div class=\"comment-item__reply-actions-wrapper\">\n <m-one-button-group\n name=\"reply_actions\"\n [buttons]=\"{\n post: { disabled: !replyDraft().trim() || submitting },\n }\"\n (clicked)=\"onReplyAction($event)\"\n />\n </div>\n </div>\n }\n\n @if (showReplies()) {\n <div class=\"comment-item__nested\">\n <m-comments [id]=\"comment().id\" [isNested]=\"true\" />\n </div>\n }\n</m-user>\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-right{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.comment-item{position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);animation:fade-in .5s cubic-bezier(.16,1,.3,1)}.comment-item__text{margin:.25rem 0 .5rem;font-size:.95rem;line-height:1.6;color:var(--m-text);font-weight:400;word-break:break-word;animation:slide-right .6s cubic-bezier(.16,1,.3,1)}.comment-item__actions{display:flex;align-items:center;gap:1.5rem;margin-top:.25rem}.comment-item__date{color:var(--m-text-tertiary);font-size:.75rem;font-weight:500;letter-spacing:.01em}.comment-item__reply-compose{margin-top:1rem;margin-bottom:.5rem;display:flex;flex-direction:column;gap:1rem;background:color-mix(in srgb,var(--m-border) 15%,transparent);border:1px solid color-mix(in srgb,var(--m-border) 30%,transparent);border-radius:20px;padding:1rem;box-shadow:0 8px 32px #00000005,0 2px 8px #00000003;transition:all .4s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden;animation:slide-up .6s cubic-bezier(.16,1,.3,1)}.comment-item__reply-compose:focus-within{border-color:color-mix(in srgb,var(--m-mm) 50%,transparent);background:color-mix(in srgb,var(--m-border) 10%,transparent);box-shadow:0 12px 40px #0000000a}.comment-item__reply-compose .m-textarea-input{--m-textarea-input-background: transparent;--m-textarea-input-border: none;--m-textarea-input-padding: 0;--m-textarea-input-shadow: none;width:100%}.comment-item__reply-compose .m-textarea-input textarea{width:100%;font-size:.9rem;color:var(--m-text);min-height:60px;resize:none;line-height:1.5}.comment-item__reply-compose .m-textarea-input textarea::placeholder{color:var(--m-text-tertiary)}.comment-item__reply-actions-wrapper{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end;width:100%;transition:all .3s ease}.comment-item__nested{margin-top:.25rem;margin-left:1rem;padding:0;border-left:2px solid color-mix(in srgb,var(--m-mm) 10%,transparent);transition:border-color .3s;animation:fade-in .5s ease-out}.comment-item__nested:hover{border-left-color:color-mix(in srgb,var(--m-mm) 30%,transparent)}.comment-item__nested .comments{padding:0;background:transparent;box-shadow:none;border-radius:0;gap:1rem}.comment-item__nested .comments .comments__compose{margin-top:.5rem;padding:1rem;border-radius:.375rem}.comment-item__menu-container{position:relative;display:inline-flex;margin-left:auto}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => UserComponent), selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }, { kind: "component", type: i0.forwardRef(() => TextareaInputComponent), selector: "m-textarea-input" }, { kind: "component", type: i0.forwardRef(() => ButtonGroupComponent), selector: "m-button-group, m-one-button-group", inputs: ["buttons", "names", "exclude", "vertical", "size"], outputs: ["clicked"] }, { kind: "component", type: i0.forwardRef(() => ButtonComponent), selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "type"], outputs: ["configChange", "clicked"] }, { kind: "component", type: i0.forwardRef(() => ContextMenuComponent), selector: "m-context-menu, m-one-context-menu", inputs: ["toggle", "remote", "exclude", "visibilityRule", "disableRule", "extraData", "inverted"], outputs: ["toggleChange", "action"] }, { kind: "component", type: i0.forwardRef(() => CommentsComponent), selector: "m-comments", inputs: ["id", "isNested"] }, { kind: "pipe", type: i0.forwardRef(() => DatePipe), name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
30954
31142
  }
30955
31143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CommentItemComponent, decorators: [{
30956
31144
  type: Component,
@@ -31191,4 +31379,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
31191
31379
  */
31192
31380
 
31193
31381
  export { DeviceService as $, ACCESS_DOMAINS as A, BaseInputComponent as B, COLOR_SCHEMES$1 as C, CarouselComponent as D, ChartComponent as E, CheckboxInputComponent as F, ClearableInputComponent as G, ColComponent as H, IS_DESIGN_MODE as I, ColorPickerInputComponent as J, CommentItemComponent as K, LabelComponent as L, CommentsApiService as M, CommentsComponent as N, CommentsStore as O, ComponentInputComponent as P, ComponentStepperComponent as Q, ConfigComponent as R, ConfirmComponent as S, TranslatePipe as T, ContextMenuComponent as U, CustomIconClass as V, CustomIconEditComponent as W, DEFAULT_SIZE as X, DashboardCardComponent as Y, DateInputComponent as Z, DatePickerComponent as _, BaseTextInputComponent as a, NAV_MAIN_BUTTONS as a$, DomService as a0, Domain as a1, DotGridComponent as a2, DragListDirective as a3, DragListItemDirective as a4, DraggableDirective as a5, DropdownInputComponent as a6, FLEX_VARIANTS as a7, FOLDER_PICK_LISTENER as a8, FORM_ASSET_FOLDER as a9, LOGIN_PROCESS as aA, LOGIN_STORE as aB, LanguageComponent as aC, LoginDataService as aD, LoginOneComponent as aE, LoginStore as aF, LogoComponent as aG, MAG_SOCKET_EVENT as aH, MHeroColorDirective as aI, MHeroComponent as aJ, MODAL_REF as aK, MODAL_STORE_REF as aL, MRefDirective as aM, MStepComponent as aN, MURL_PARAM as aO, MURL_SEP as aP, ManifestEnrichmentService as aQ, MenuComponent as aR, ModalDirective as aS, ModalRef as aT, ModalStore as aU, MoneyPipe as aV, MultiRangeInputComponent as aW, MurlUrlSerializer as aX, NAV_DEFAULT_MURL as aY, NAV_DISPLAY_ORDER as aZ, NAV_ID_SEP as a_, FileService as aa, FileUploadDirective as ab, FileUploadInputComponent as ac, FlexComponent as ad, FlexItemComponent as ae, FormGroupComponent as af, FrameComponent as ag, FreezeService as ah, GEN_NAV_DISPLAY_ORDER as ai, GRID_BREAKPOINTS as aj, GetNavService as ak, HeaderComponent$1 as al, HighlightDirective as am, HttpService as an, ICON_SOURCE as ao, IS_SIDE_PANEL as ap, IconComponent as aq, ImgComponent as ar, InputType as as, InstrumentScoreComponent as at, InterceptorObservables as au, JumbotronComponent as av, KeyValueComponent as aw, LAYOUT_ASSET_FOLDER as ax, LOGIN_COMPONENT as ay, LOGIN_FORM_GROUP as az, TextOutputComponent as b, SectionFilterComponent as b$, NAV_SEGMENT_RE as b0, NAV_STORE_REF as b1, NAV_WC_COMPONENTS as b2, NAV_WIDGET_MAP as b3, NavComponent as b4, NavDetailsComponent as b5, NavMenuComponent as b6, NavStore as b7, NavTrailComponent as b8, NothingComponent as b9, RangeInputComponent as bA, RatingInputComponent as bB, ReactiveElementComponent as bC, RemoteComponent as bD, RemoteLoaderService as bE, ResizeElementComponent as bF, RouteContainer as bG, RowComponent as bH, SEARCH_QUERY as bI, SEARCH_RESULTS_EVENT as bJ, SECTION_ACCORDION_GROUP as bK, SECTION_FORM_CONTEXT as bL, SHARED_ICONS as bM, SIZE_CONTEXT as bN, ScoreComponent as bO, ScrollComponent as bP, ScrollService as bQ, SearchPanelComponent as bR, SearchStore as bS, SearchUserPanelComponent as bT, SectionAccordionDirective as bU, SectionAccordionGroupDirective as bV, SectionBackComponent as bW, SectionBadgesComponent as bX, SectionButtonGroupComponent as bY, SectionCardComponent as bZ, SectionComponent as b_, NotificationElementComponent as ba, NotificationGroupComponent as bb, NotificationPopupComponent as bc, NotificationService as bd, NotificationStore as be, NotificationType as bf, NotificationWidgetComponent as bg, ONE_ASSET_BASE_URL as bh, OPTIONS_SOURCE as bi, OneApp as bj, OptionsSourceDirective as bk, OverlayBodyComponent as bl, OverlayRef as bm, OverlayService as bn, PLATFORM_BUTTON_NAV_IDS as bo, PLATFORM_EXTENSIBLE_NAV_IDS as bp, PLATFORM_NAV_MAP as bq, PLATFORM_ROOT_CHILDREN as br, PaginationComponent as bs, PanelComponent as bt, PlaygroundComponent as bu, PositionDirective as bv, PwaInstallComponent as bw, ROOT_NAV$1 as bx, RadioGroupComponent as by, RadioInputComponent as bz, ButtonComponent as c, WatermarkComponent as c$, SectionFooterComponent as c0, SectionFormComponent as c1, SectionFormItemComponent as c2, SectionHeaderComponent as c3, SectionSearchComponent as c4, SectionStepperComponent as c5, SectionTabsComponent as c6, SectionToggleComponent as c7, SectionToggleItemDirective as c8, SelectableCardInputComponent as c9, ThemeComponent as cA, ThemeService as cB, ThemeStore as cC, TimeAgoPipe as cD, TimelineComponent as cE, ToggleButtonComponent as cF, ToggleInputComponent as cG, ToggleRadioInputComponent as cH, ToolTipDirective as cI, TooltipComponent as cJ, TranslateService as cK, TreeGridComponent as cL, URL_SEP as cM, USER_STORE_REF as cN, USER_TAB_MAP as cO, UlComponent as cP, UniverseComponent as cQ, UserApiService as cR, UserAvatarComponent as cS, UserComponent as cT, UserNavComponent as cU, UserSettingsComponent as cV, UserStore as cW, WC_ROUTE_CHANGED_EVENT as cX, WC_SEARCH_GROUPS as cY, WIN_USER_TAB_HOOK as cZ, WIN_USER_TAB_KEY as c_, SelectorDirective as ca, SettingsSearchBarComponent as cb, SettingsSearchService as cc, Sex as cd, ShapeComponent as ce, SharedStoreRegistry as cf, SidePanelDirective as cg, Size as ch, SocketStore as ci, SortComponent 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, loginState as d$, WcRouterStore as d0, WrapperInputComponent as d1, anchorNavId as d2, applyColorsToElement as d3, authGuard as d4, bootstrapMagApp as d5, bootstrapPwaInstall as d6, buildWcBaseUrl as d7, calculateLuminance as d8, calculateRanks as d9, getValue as dA, hasErrorComputed as dB, hexToRgb as dC, hslToRgb$1 as dD, initMagmoniumApp as dE, initialNotificationState as dF, initials as dG, injectAuthenticate as dH, injectInstallApp as dI, injectParentSize as dJ, injectScrollSticky as dK, isButtonName as dL, isCancelledComputed as dM, isExtensiblePlatformNavId as dN, isJson as dO, isLoadingComputed as dP, isLocalhost as dQ, isPlatformNavId as dR, isSize as dS, isTierPreview as dT, isUrlLocalhost as dU, isValidNavId as dV, isValidNavSegment as dW, isWebComponent as dX, linkToId as dY, linkToNav as dZ, loadingActions as d_, cellText as da, checkFilterCondition as db, childNavId as dc, classListSignal as dd, coerceSize as de, createMap as df, createPlatformNavMap as dg, deriveAvatarGradient as dh, deriveContrastColor as di, deriveOppositeColor as dj, derivePropertyName as dk, emailValidation as dl, evaluate as dm, evaluateBool as dn, flattenTreeGridRows as dp, formatBadgeCount as dq, fullName as dr, generateClipPath as ds, generateTransform as dt, getClassList as du, getProperty as dv, getScrollParent as dw, getTierFromPreviewPath as dx, getTreeGridRow as dy, getUniqueId as dz, ASSET_BASE_URL as e, toLength$1 as e$, mInterceptor as e0, manualValidation as e1, matchFieldValidation as e2, maxLengthValidation as e3, maxValidation as e4, mergePlatformNav as e5, mergeUnique as e6, mergeUniqueBy as e7, mergeUniqueWith as e8, minAgeValidation as e9, provideSearch as eA, provideSizeContext as eB, provideUserTabs as eC, publicGuard as eD, readFieldPatterns as eE, renderAddress as eF, requiredValidation as eG, resolveConfigAsset as eH, resolveIconSize as eI, resolvePallet as eJ, resolvePatternRules as eK, resolveSize as eL, rgbToHex as eM, rgbToHsl as eN, rowHasChildren as eO, samePatterns as eP, segmentsToNavId as eQ, setProperty as eR, setTreeGridChildren as eS, settingsWidgets as eT, shouldShowBadge as eU, splitNavId as eV, stringToColor as eW, toAttrBool as eX, toAttrNumber as eY, toCssLength as eZ, toHostNavId as e_, minLengthValidation as ea, minValidation as eb, miniMarkToHtml as ec, navIdChain as ed, navIdFor as ee, navIdSegment as ef, navIdToRoutePath as eg, navIdToSegments as eh, navToId as ei, parentNavId as ej, parseAddress as ek, parseColor as el, parsePatternNames as em, patternValidation as en, patternsValidation as eo, platformNavWidgets as ep, privateGuard as eq, processImageToSvg as er, provideAppContext as es, provideMagAppConfig as et, provideMagWcConfig as eu, provideMagWcRoutes as ev, provideModalComponents as ew, provideMurlUrlSerializer as ex, provideNavWidgets as ey, providePlatformNavWidgets as ez, AccordionBodyDirective as f, toLocalNavId as f0, toggleTreeGridRow as f1, unfetchedPlatformNav as f2, urlValidation as f3, 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, AutosizeDirective as q, BadgeComponent as r, BandingComponent as s, BaseArrayInputComponent as t, BaseRootWebComponent as u, BaseWebComponent as v, ButtonGroupComponent as w, COMPONENT_INPUT_REGISTRY as x, CardComponent as y, CardWrapperComponent as z };
31194
- //# sourceMappingURL=magmonium-one-magmonium-one-DNWyMp3r.mjs.map
31382
+ //# sourceMappingURL=magmonium-one-magmonium-one-Cdqj0dfV.mjs.map