@forgeroute/ui 0.4.17 → 0.4.19

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
- import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Directive, ElementRef, EnvironmentInjector, HostBinding, HostListener, Injectable, InjectionToken, Injector, Input, NgZone, PLATFORM_ID, Renderer2, TemplateRef, afterNextRender, computed, contentChild, contentChildren, createComponent, effect, forwardRef, inject, input, isDevMode, linkedSignal, makeEnvironmentProviders, model, output, provideEnvironmentInitializer, signal, untracked, viewChild } from "@angular/core";
2
+ import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Directive, ElementRef, EnvironmentInjector, HostBinding, HostListener, Injectable, InjectionToken, Injector, Input, NgZone, PLATFORM_ID, Renderer2, TemplateRef, ViewEncapsulation, afterNextRender, computed, contentChild, contentChildren, createComponent, effect, forwardRef, inject, input, isDevMode, linkedSignal, makeEnvironmentProviders, model, output, provideEnvironmentInitializer, signal, untracked, viewChild } from "@angular/core";
3
3
  import { HttpClient, HttpErrorResponse, HttpParams } from "@angular/common/http";
4
4
  import { takeUntilDestroyed, toObservable } from "@angular/core/rxjs-interop";
5
5
  import { catchError, debounceTime, distinctUntilChanged, skip, switchMap } from "rxjs/operators";
@@ -4302,6 +4302,7 @@ const EXTRA_ICONS = {
4302
4302
  "image": "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M8.5 8.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z M21 15l-5-5L5 21",
4303
4303
  "chevron-up": "M18 15l-6-6-6 6",
4304
4304
  "chevron-down": "M6 9l6 6 6-6",
4305
+ "chevron-right": "M9 18l6-6-6-6",
4305
4306
  "arrow-left": "M19 12H5 M12 19l-7-7 7-7",
4306
4307
  "bell": "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9 M13.73 21a2 2 0 0 1-3.46 0",
4307
4308
  "print": "M6 9V2h12v7 M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2 M6 14h12v8H6z",
@@ -4314,6 +4315,7 @@ const EXTRA_ICONS = {
4314
4315
  "grip": "M9 5h.01 M15 5h.01 M9 12h.01 M15 12h.01 M9 19h.01 M15 19h.01",
4315
4316
  "card": "M3 4h18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z M1 10h22",
4316
4317
  "view-off": "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M3 3l18 18",
4318
+ "refund": "M3 10h10a8 8 0 0 1 8 8v2 M3 10l6 6 M3 10l6-6",
4317
4319
  "bank": "M3 21h18 M3 10h18 M5 6l7-3 7 3 M4 10v11 M20 10v11 M8 14v3 M12 14v3 M16 14v3"
4318
4320
  };
4319
4321
  function iconPath(name) {
@@ -9957,6 +9959,7 @@ var DataTableComponent = class DataTableComponent {
9957
9959
  this.showToolbar = input(true, ...ngDevMode ? [{ debugName: "showToolbar" }] : /* istanbul ignore next */ []);
9958
9960
  this.showMoreActions = input(true, ...ngDevMode ? [{ debugName: "showMoreActions" }] : /* istanbul ignore next */ []);
9959
9961
  this.showSearch = input(true, ...ngDevMode ? [{ debugName: "showSearch" }] : /* istanbul ignore next */ []);
9962
+ this.showQuickTabs = input(true, ...ngDevMode ? [{ debugName: "showQuickTabs" }] : /* istanbul ignore next */ []);
9960
9963
  this._showHeader = computed(() => this.showSearch() || this.showToolbar() || this._effectiveTabs().length > 0, ...ngDevMode ? [{ debugName: "_showHeader" }] : /* istanbul ignore next */ []);
9961
9964
  this.countsEndpoint = input("", ...ngDevMode ? [{ debugName: "countsEndpoint" }] : /* istanbul ignore next */ []);
9962
9965
  this.params = input(null, ...ngDevMode ? [{ debugName: "params" }] : /* istanbul ignore next */ []);
@@ -10005,6 +10008,7 @@ var DataTableComponent = class DataTableComponent {
10005
10008
  this._tabCounts = signal({}, ...ngDevMode ? [{ debugName: "_tabCounts" }] : /* istanbul ignore next */ []);
10006
10009
  this._filterCounts = signal({}, ...ngDevMode ? [{ debugName: "_filterCounts" }] : /* istanbul ignore next */ []);
10007
10010
  this._effectiveTabs = computed(() => {
10011
+ if (!this.showQuickTabs()) return [];
10008
10012
  const counts = this._tabCounts();
10009
10013
  const present = this._presentKeys(counts);
10010
10014
  const active = this._activeTab();
@@ -10928,6 +10932,13 @@ var DataTableComponent = class DataTableComponent {
10928
10932
  isRequired: false,
10929
10933
  transformFunction: null
10930
10934
  },
10935
+ showQuickTabs: {
10936
+ classPropertyName: "showQuickTabs",
10937
+ publicName: "showQuickTabs",
10938
+ isSignal: true,
10939
+ isRequired: false,
10940
+ transformFunction: null
10941
+ },
10931
10942
  countsEndpoint: {
10932
10943
  classPropertyName: "countsEndpoint",
10933
10944
  publicName: "countsEndpoint",
@@ -12893,6 +12904,14 @@ i0.ɵɵngDeclareClassMetadata({
12893
12904
  required: false
12894
12905
  }]
12895
12906
  }],
12907
+ showQuickTabs: [{
12908
+ type: i0.Input,
12909
+ args: [{
12910
+ isSignal: true,
12911
+ alias: "showQuickTabs",
12912
+ required: false
12913
+ }]
12914
+ }],
12896
12915
  countsEndpoint: [{
12897
12916
  type: i0.Input,
12898
12917
  args: [{
@@ -14465,6 +14484,8 @@ var StepperComponent = class StepperComponent {
14465
14484
  this.accentLabels = input(false, ...ngDevMode ? [{ debugName: "accentLabels" }] : /* istanbul ignore next */ []);
14466
14485
  this.ariaLabel = input("Progress", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
14467
14486
  this.labelsOnSmallScreens = input("current", ...ngDevMode ? [{ debugName: "labelsOnSmallScreens" }] : /* istanbul ignore next */ []);
14487
+ this.labelPosition = input("beside", ...ngDevMode ? [{ debugName: "labelPosition" }] : /* istanbul ignore next */ []);
14488
+ this.stackBelow = input(null, ...ngDevMode ? [{ debugName: "stackBelow" }] : /* istanbul ignore next */ []);
14468
14489
  this.minStepWidth = input("", ...ngDevMode ? [{ debugName: "minStepWidth" }] : /* istanbul ignore next */ []);
14469
14490
  this.scrollable = input(false, ...ngDevMode ? [{ debugName: "scrollable" }] : /* istanbul ignore next */ []);
14470
14491
  this.leadingWidth = input("", ...ngDevMode ? [{ debugName: "leadingWidth" }] : /* istanbul ignore next */ []);
@@ -14472,11 +14493,13 @@ var StepperComponent = class StepperComponent {
14472
14493
  this.stepClick = output();
14473
14494
  this._win = inject(DOCUMENT).defaultView;
14474
14495
  this._narrow = signal(false, ...ngDevMode ? [{ debugName: "_narrow" }] : /* istanbul ignore next */ []);
14496
+ this._stacked = signal(false, ...ngDevMode ? [{ debugName: "_stacked" }] : /* istanbul ignore next */ []);
14497
+ this.orient = computed(() => this._stacked() ? "vertical" : this.orientation(), ...ngDevMode ? [{ debugName: "orient" }] : /* istanbul ignore next */ []);
14475
14498
  this.compactPx = computed(() => typeof this.compact() === "number" && this._narrow(), ...ngDevMode ? [{ debugName: "compactPx" }] : /* istanbul ignore next */ []);
14476
14499
  this._id = `ui-st-${++nextStepperId}`;
14477
14500
  this.olMinWidth = computed(() => {
14478
14501
  const w = this.minStepWidth().trim();
14479
- return w && this.orientation() === "horizontal" ? `calc(${this.steps().length} * ${w})` : null;
14502
+ return w && this.orient() === "horizontal" ? `calc(${this.steps().length} * ${w})` : null;
14480
14503
  }, ...ngDevMode ? [{ debugName: "olMinWidth" }] : /* istanbul ignore next */ []);
14481
14504
  this.summary = computed(() => {
14482
14505
  const steps = this.steps();
@@ -14515,6 +14538,16 @@ var StepperComponent = class StepperComponent {
14515
14538
  };
14516
14539
  });
14517
14540
  }, ...ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []);
14541
+ effect((onCleanup) => {
14542
+ const b = this.stackBelow();
14543
+ this._stacked.set(false);
14544
+ if (typeof b !== "number" || !Number.isFinite(b) || typeof this._win?.matchMedia !== "function") return;
14545
+ const mq = this._win.matchMedia(`(max-width: ${b - .02}px)`);
14546
+ this._stacked.set(mq.matches);
14547
+ const on = (e) => this._stacked.set(e.matches);
14548
+ mq.addEventListener("change", on);
14549
+ onCleanup(() => mq.removeEventListener("change", on));
14550
+ });
14518
14551
  effect((onCleanup) => {
14519
14552
  const c = this.compact();
14520
14553
  this._narrow.set(false);
@@ -14626,6 +14659,20 @@ var StepperComponent = class StepperComponent {
14626
14659
  isRequired: false,
14627
14660
  transformFunction: null
14628
14661
  },
14662
+ labelPosition: {
14663
+ classPropertyName: "labelPosition",
14664
+ publicName: "labelPosition",
14665
+ isSignal: true,
14666
+ isRequired: false,
14667
+ transformFunction: null
14668
+ },
14669
+ stackBelow: {
14670
+ classPropertyName: "stackBelow",
14671
+ publicName: "stackBelow",
14672
+ isSignal: true,
14673
+ isRequired: false,
14674
+ transformFunction: null
14675
+ },
14629
14676
  minStepWidth: {
14630
14677
  classPropertyName: "minStepWidth",
14631
14678
  publicName: "minStepWidth",
@@ -14666,13 +14713,14 @@ var StepperComponent = class StepperComponent {
14666
14713
  ngImport: i0,
14667
14714
  template: `
14668
14715
  <div class="st-root" [class.st-c-sm]="compact() === 'sm'" [class.st-c-md]="compact() === 'md'" [class.st-c-lg]="compact() === 'lg'" [class.st-c-on]="compactPx()"
14669
- [class.st-has-leading]="!!leadingWidth() && orientation() === 'horizontal'" [style.--st-leading-w]="leadingWidth() || null">
14716
+ [class.st-has-leading]="!!leadingWidth() && orient() === 'horizontal'" [style.--st-leading-w]="leadingWidth() || null">
14670
14717
  <div class="st-leading"><ng-content select="[stepper-leading]" /></div>
14671
14718
  <div class="st-scroll" [class.st-scrollable]="scrollable()">
14672
14719
  <ol class="st"
14673
14720
  [style.min-width]="olMinWidth()"
14674
- [class.st-horizontal]="orientation() === 'horizontal'"
14675
- [class.st-vertical]="orientation() === 'vertical'"
14721
+ [class.st-horizontal]="orient() === 'horizontal'"
14722
+ [class.st-vertical]="orient() === 'vertical'"
14723
+ [class.st-below]="labelPosition() === 'below' && orient() === 'horizontal'"
14676
14724
  [class.st-sm]="size() === 'sm'"
14677
14725
  [class.st-labels-current]="labelsOnSmallScreens() === 'current'"
14678
14726
  [class.st-themed]="!!accentColor()"
@@ -14728,7 +14776,7 @@ var StepperComponent = class StepperComponent {
14728
14776
  </ng-template>
14729
14777
  `,
14730
14778
  isInline: true,
14731
- styles: [":host{display:block}.st-root{position:relative}.st-leading{display:none}.st-has-leading .st-leading{display:block;position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.st-has-leading .st-scroll{margin-inline-start:calc(var(--st-leading-w) + 1rem)}.st-scrollable{overflow-x:auto;padding-top:4px;padding-bottom:4px}.st-compact{display:none}.st-compact-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.st-compact-label{min-width:0;font-size:1.125rem;font-weight:600;line-height:1.3;color:var(--st-accent, #0f172a);overflow-wrap:anywhere}.st-compact-count{flex-shrink:0;font-size:.8125rem;color:#64748b}.st-c-on .st-scroll,.st-c-on .st-leading{display:none}.st-c-on .st-compact{display:block}@media(max-width:479.98px){.st-c-sm .st-scroll,.st-c-sm .st-leading{display:none}.st-c-sm .st-compact{display:block}}@media(max-width:767.98px){.st-c-md .st-scroll,.st-c-md .st-leading{display:none}.st-c-md .st-compact{display:block}}@media(max-width:1023.98px){.st-c-lg .st-scroll,.st-c-lg .st-leading{display:none}.st-c-lg .st-compact{display:block}}.st{list-style:none;margin:0;padding:0;display:flex;--st-ind: 28px}.st-sm{--st-ind: 22px}.st-horizontal{flex-direction:row;align-items:flex-start}.st-vertical{flex-direction:column}.st-step{position:relative;display:flex;min-width:0}.st-horizontal .st-step{flex:1 1 0;align-items:flex-start}.st-horizontal .st-step:last-child{flex:0 1 auto}.st-vertical .st-step{flex-direction:column;padding-bottom:20px}.st-vertical .st-step:last-child{padding-bottom:0}.st-item{display:flex;flex-direction:column;min-width:0;gap:2px}.st-horizontal .st-item{flex:0 1 auto}.st-btn{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;margin:0;padding:2px 4px;border:0;border-radius:8px;background:none;font:inherit;color:inherit;text-align:left;-webkit-appearance:none;appearance:none}button.st-btn{cursor:pointer}.st-btn:focus{outline:2px solid #3b82f6;outline-offset:2px}.st-btn:focus:not(:focus-visible){outline:none}@media(hover:hover){button.st-btn:hover .st-label{text-decoration:underline}}.st-ind{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--st-ind);height:var(--st-ind);border-radius:50%;font-size:.8125rem;font-weight:600;line-height:1;background:#fff;border:2px solid #cbd5e1;color:#64748b}.st-sm .st-ind{font-size:.6875rem}.st-sm .st-check{width:11px;height:11px}.st-step[data-state=complete] .st-ind{background:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));border-color:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));color:#fff}.st-step[data-state=current] .st-ind{background:var(--st-accent, var(--ui-accent, #1d4ed8));border-color:var(--st-accent, var(--ui-accent, #1d4ed8));color:#fff;box-shadow:0 0 0 3px var(--ui-accent-soft, #bfdbfe)}@supports (color: color-mix(in srgb,red 30%,white)){.st-themed .st-step[data-state=current]:not([data-error=true]) .st-ind{box-shadow:0 0 0 3px color-mix(in srgb,var(--st-accent) 30%,white)}}.st-step[data-error=true] .st-ind{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:none}.st-label{font-size:.875rem;font-weight:500;line-height:var(--st-ind);color:#64748b;min-width:0;overflow-wrap:anywhere}.st-sm .st-label{font-size:.8125rem}.st-step[data-state=complete] .st-label{color:#1e293b}.st-step[data-state=current] .st-label{color:#0f172a;font-weight:600}.st-step[data-error=true] .st-label{color:#b91c1c}.st-accent-labels .st-step[data-state=current]:not([data-error=true]) .st-label{color:var(--st-accent, var(--ui-accent, #1d4ed8))}.st-opt{font-size:.75rem;line-height:var(--st-ind);color:#64748b;white-space:nowrap}.st-desc{font-size:.8125rem;line-height:1.4;color:#64748b;padding-left:calc(var(--st-ind) + 12px);overflow-wrap:anywhere}.st-errmsg{font-size:.8125rem;line-height:1.4;color:#b91c1c;padding-left:calc(var(--st-ind) + 12px);overflow-wrap:anywhere}.st-step[data-disabled=true] .st-item{opacity:.5}.st-sr,.st-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.st-conn{position:relative;display:block;background:#e2e8f0;border-radius:1px}.st-conn:after{content:\"\";position:absolute;inset:0;background:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));border-radius:1px;transform-origin:top left;transform:scale(0);transition:transform .3s ease}.st-step[data-state=complete] .st-conn:after{transform:scale(1)}.st-horizontal .st-conn{flex:1 1 12px;min-width:12px;height:2px;margin:calc(var(--st-ind) / 2 + 1px) 8px 0}.st-vertical .st-conn{position:absolute;left:calc(var(--st-ind) / 2 + 3px);top:calc(var(--st-ind) + 8px);bottom:4px;width:2px}@media(pointer:coarse),(max-width:480px){.st-btn{min-height:44px;align-items:center}button.st-btn{min-width:44px}.st-horizontal .st-conn{margin-top:21px}.st-vertical .st-conn{top:calc(26px + var(--st-ind) / 2)}}@media(max-width:480px){.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-label,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-opt,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-desc,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-errmsg{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.st-horizontal .st-conn{margin-left:4px;margin-right:4px;min-width:8px;flex-basis:8px}}@media(prefers-reduced-motion:reduce){.st-conn:after{transition:none}}\n"],
14779
+ styles: [":host{display:block}.st-root{position:relative}.st-leading{display:none}.st-has-leading .st-leading{display:block;position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.st-has-leading .st-scroll{margin-inline-start:calc(var(--st-leading-w) + 1rem)}.st-scrollable{overflow-x:auto;padding-top:4px;padding-bottom:4px}.st-compact{display:none}.st-compact-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.st-compact-label{min-width:0;font-size:1.125rem;font-weight:600;line-height:1.3;color:var(--st-accent, #0f172a);overflow-wrap:anywhere}.st-compact-count{flex-shrink:0;font-size:.8125rem;color:#64748b}.st-c-on .st-scroll,.st-c-on .st-leading{display:none}.st-c-on .st-compact{display:block}@media(max-width:479.98px){.st-c-sm .st-scroll,.st-c-sm .st-leading{display:none}.st-c-sm .st-compact{display:block}}@media(max-width:767.98px){.st-c-md .st-scroll,.st-c-md .st-leading{display:none}.st-c-md .st-compact{display:block}}@media(max-width:1023.98px){.st-c-lg .st-scroll,.st-c-lg .st-leading{display:none}.st-c-lg .st-compact{display:block}}.st{list-style:none;margin:0;padding:0;display:flex;--st-ind: 28px}.st-sm{--st-ind: 22px}.st-horizontal{flex-direction:row;align-items:flex-start}.st-vertical{flex-direction:column}.st-step{position:relative;display:flex;min-width:0}.st-horizontal .st-step{flex:1 1 0;align-items:flex-start}.st-horizontal .st-step:last-child{flex:0 1 auto}.st-vertical .st-step{flex-direction:column;padding-bottom:20px}.st-vertical .st-step:last-child{padding-bottom:0}.st-item{display:flex;flex-direction:column;min-width:0;gap:2px}.st-horizontal .st-item{flex:0 1 auto}.st-btn{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;margin:0;padding:2px 4px;border:0;border-radius:8px;background:none;font:inherit;color:inherit;text-align:left;-webkit-appearance:none;appearance:none}button.st-btn{cursor:pointer}.st-btn:focus{outline:2px solid #3b82f6;outline-offset:2px}.st-btn:focus:not(:focus-visible){outline:none}@media(hover:hover){button.st-btn:hover .st-label{text-decoration:underline}}.st-ind{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--st-ind);height:var(--st-ind);border-radius:50%;font-size:.8125rem;font-weight:600;line-height:1;background:#fff;border:2px solid #cbd5e1;color:#64748b}.st-sm .st-ind{font-size:.6875rem}.st-sm .st-check{width:11px;height:11px}.st-step[data-state=complete] .st-ind{background:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));border-color:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));color:#fff}.st-step[data-state=current] .st-ind{background:var(--st-accent, var(--ui-accent, #1d4ed8));border-color:var(--st-accent, var(--ui-accent, #1d4ed8));color:#fff;box-shadow:0 0 0 3px var(--ui-accent-soft, #bfdbfe)}@supports (color: color-mix(in srgb,red 30%,white)){.st-themed .st-step[data-state=current]:not([data-error=true]) .st-ind{box-shadow:0 0 0 3px color-mix(in srgb,var(--st-accent) 30%,white)}}.st-step[data-error=true] .st-ind{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:none}.st-label{font-size:.875rem;font-weight:500;line-height:var(--st-ind);color:#64748b;min-width:0;overflow-wrap:anywhere}.st-sm .st-label{font-size:.8125rem}.st-step[data-state=complete] .st-label{color:#1e293b}.st-step[data-state=current] .st-label{color:#0f172a;font-weight:600}.st-step[data-error=true] .st-label{color:#b91c1c}.st-accent-labels .st-step[data-state=current]:not([data-error=true]) .st-label{color:var(--st-accent, var(--ui-accent, #1d4ed8))}.st-opt{font-size:.75rem;line-height:var(--st-ind);color:#64748b;white-space:nowrap}.st-desc{font-size:.8125rem;line-height:1.4;color:#64748b;padding-left:calc(var(--st-ind) + 12px);overflow-wrap:anywhere}.st-errmsg{font-size:.8125rem;line-height:1.4;color:#b91c1c;padding-left:calc(var(--st-ind) + 12px);overflow-wrap:anywhere}.st-step[data-disabled=true] .st-item{opacity:.5}.st-sr,.st-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.st-conn{position:relative;display:block;background:#e2e8f0;border-radius:1px}.st-conn:after{content:\"\";position:absolute;inset:0;background:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));border-radius:1px;transform-origin:top left;transform:scale(0);transition:transform .3s ease}.st-step[data-state=complete] .st-conn:after{transform:scale(1)}.st-horizontal .st-conn{flex:1 1 12px;min-width:12px;height:2px;margin:calc(var(--st-ind) / 2 + 1px) 8px 0}.st-vertical .st-conn{position:absolute;left:calc(var(--st-ind) / 2 + 3px);top:calc(var(--st-ind) + 8px);bottom:4px;width:2px}@media(pointer:coarse),(max-width:480px){.st-btn{min-height:44px;align-items:center}button.st-btn{min-width:44px}.st-horizontal .st-conn{margin-top:21px}.st-vertical .st-conn{top:calc(26px + var(--st-ind) / 2)}}@media(max-width:480px){.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-label,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-opt,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-desc,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-errmsg{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.st-horizontal .st-conn{margin-left:4px;margin-right:4px;min-width:8px;flex-basis:8px}}.st-below{--st-ind: 40px}.st-below.st-sm{--st-ind: 32px}.st-below .st-step,.st-below .st-step:last-child{flex:1 1 0;flex-direction:column;align-items:center}.st-below .st-item{align-items:center;text-align:center;max-width:100%}.st-below .st-btn{flex-direction:column;align-items:center;gap:8px;text-align:center;position:relative;z-index:1;padding:2px 4px}.st-below .st-ind{position:relative;z-index:1;border-color:#d1d5db}.st-below .st-label{line-height:1.35;text-align:center;max-width:110px;font-size:.875rem;overflow-wrap:normal}.st-below.st-sm .st-label{font-size:.75rem;max-width:96px}.st-below .st-num{display:block;width:12px;height:12px;border-radius:50%;font-size:0;background:transparent}.st-below.st-sm .st-num{width:10px;height:10px}.st-below .st-step[data-state=current] .st-ind{background:#fff;color:var(--st-accent, var(--ui-accent, #1d4ed8))}.st-below .st-step[data-state=current] .st-num{background:var(--st-accent, var(--ui-accent, #1d4ed8))}.st-below .st-conn{position:absolute;top:calc(var(--st-ind) / 2 + 2px);left:50%;width:100%;min-width:0;height:4px;margin:-2px 0 0;flex:none}.st-below .st-step:last-child .st-conn{display:none}.st-below .st-conn:after{transform-origin:left center}@media(max-width:480px){.st-below .st-conn{margin-left:0;margin-right:0;flex-basis:auto}}@media(prefers-reduced-motion:reduce){.st-conn:after{transition:none}}\n"],
14732
14780
  dependencies: [{
14733
14781
  kind: "directive",
14734
14782
  type: NgTemplateOutlet,
@@ -14776,13 +14824,14 @@ i0.ɵɵngDeclareClassMetadata({
14776
14824
  },
14777
14825
  template: `
14778
14826
  <div class="st-root" [class.st-c-sm]="compact() === 'sm'" [class.st-c-md]="compact() === 'md'" [class.st-c-lg]="compact() === 'lg'" [class.st-c-on]="compactPx()"
14779
- [class.st-has-leading]="!!leadingWidth() && orientation() === 'horizontal'" [style.--st-leading-w]="leadingWidth() || null">
14827
+ [class.st-has-leading]="!!leadingWidth() && orient() === 'horizontal'" [style.--st-leading-w]="leadingWidth() || null">
14780
14828
  <div class="st-leading"><ng-content select="[stepper-leading]" /></div>
14781
14829
  <div class="st-scroll" [class.st-scrollable]="scrollable()">
14782
14830
  <ol class="st"
14783
14831
  [style.min-width]="olMinWidth()"
14784
- [class.st-horizontal]="orientation() === 'horizontal'"
14785
- [class.st-vertical]="orientation() === 'vertical'"
14832
+ [class.st-horizontal]="orient() === 'horizontal'"
14833
+ [class.st-vertical]="orient() === 'vertical'"
14834
+ [class.st-below]="labelPosition() === 'below' && orient() === 'horizontal'"
14786
14835
  [class.st-sm]="size() === 'sm'"
14787
14836
  [class.st-labels-current]="labelsOnSmallScreens() === 'current'"
14788
14837
  [class.st-themed]="!!accentColor()"
@@ -14837,7 +14886,7 @@ i0.ɵɵngDeclareClassMetadata({
14837
14886
  <span class="st-sr">{{ r.srText }}</span>
14838
14887
  </ng-template>
14839
14888
  `,
14840
- styles: [":host{display:block}.st-root{position:relative}.st-leading{display:none}.st-has-leading .st-leading{display:block;position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.st-has-leading .st-scroll{margin-inline-start:calc(var(--st-leading-w) + 1rem)}.st-scrollable{overflow-x:auto;padding-top:4px;padding-bottom:4px}.st-compact{display:none}.st-compact-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.st-compact-label{min-width:0;font-size:1.125rem;font-weight:600;line-height:1.3;color:var(--st-accent, #0f172a);overflow-wrap:anywhere}.st-compact-count{flex-shrink:0;font-size:.8125rem;color:#64748b}.st-c-on .st-scroll,.st-c-on .st-leading{display:none}.st-c-on .st-compact{display:block}@media(max-width:479.98px){.st-c-sm .st-scroll,.st-c-sm .st-leading{display:none}.st-c-sm .st-compact{display:block}}@media(max-width:767.98px){.st-c-md .st-scroll,.st-c-md .st-leading{display:none}.st-c-md .st-compact{display:block}}@media(max-width:1023.98px){.st-c-lg .st-scroll,.st-c-lg .st-leading{display:none}.st-c-lg .st-compact{display:block}}.st{list-style:none;margin:0;padding:0;display:flex;--st-ind: 28px}.st-sm{--st-ind: 22px}.st-horizontal{flex-direction:row;align-items:flex-start}.st-vertical{flex-direction:column}.st-step{position:relative;display:flex;min-width:0}.st-horizontal .st-step{flex:1 1 0;align-items:flex-start}.st-horizontal .st-step:last-child{flex:0 1 auto}.st-vertical .st-step{flex-direction:column;padding-bottom:20px}.st-vertical .st-step:last-child{padding-bottom:0}.st-item{display:flex;flex-direction:column;min-width:0;gap:2px}.st-horizontal .st-item{flex:0 1 auto}.st-btn{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;margin:0;padding:2px 4px;border:0;border-radius:8px;background:none;font:inherit;color:inherit;text-align:left;-webkit-appearance:none;appearance:none}button.st-btn{cursor:pointer}.st-btn:focus{outline:2px solid #3b82f6;outline-offset:2px}.st-btn:focus:not(:focus-visible){outline:none}@media(hover:hover){button.st-btn:hover .st-label{text-decoration:underline}}.st-ind{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--st-ind);height:var(--st-ind);border-radius:50%;font-size:.8125rem;font-weight:600;line-height:1;background:#fff;border:2px solid #cbd5e1;color:#64748b}.st-sm .st-ind{font-size:.6875rem}.st-sm .st-check{width:11px;height:11px}.st-step[data-state=complete] .st-ind{background:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));border-color:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));color:#fff}.st-step[data-state=current] .st-ind{background:var(--st-accent, var(--ui-accent, #1d4ed8));border-color:var(--st-accent, var(--ui-accent, #1d4ed8));color:#fff;box-shadow:0 0 0 3px var(--ui-accent-soft, #bfdbfe)}@supports (color: color-mix(in srgb,red 30%,white)){.st-themed .st-step[data-state=current]:not([data-error=true]) .st-ind{box-shadow:0 0 0 3px color-mix(in srgb,var(--st-accent) 30%,white)}}.st-step[data-error=true] .st-ind{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:none}.st-label{font-size:.875rem;font-weight:500;line-height:var(--st-ind);color:#64748b;min-width:0;overflow-wrap:anywhere}.st-sm .st-label{font-size:.8125rem}.st-step[data-state=complete] .st-label{color:#1e293b}.st-step[data-state=current] .st-label{color:#0f172a;font-weight:600}.st-step[data-error=true] .st-label{color:#b91c1c}.st-accent-labels .st-step[data-state=current]:not([data-error=true]) .st-label{color:var(--st-accent, var(--ui-accent, #1d4ed8))}.st-opt{font-size:.75rem;line-height:var(--st-ind);color:#64748b;white-space:nowrap}.st-desc{font-size:.8125rem;line-height:1.4;color:#64748b;padding-left:calc(var(--st-ind) + 12px);overflow-wrap:anywhere}.st-errmsg{font-size:.8125rem;line-height:1.4;color:#b91c1c;padding-left:calc(var(--st-ind) + 12px);overflow-wrap:anywhere}.st-step[data-disabled=true] .st-item{opacity:.5}.st-sr,.st-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.st-conn{position:relative;display:block;background:#e2e8f0;border-radius:1px}.st-conn:after{content:\"\";position:absolute;inset:0;background:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));border-radius:1px;transform-origin:top left;transform:scale(0);transition:transform .3s ease}.st-step[data-state=complete] .st-conn:after{transform:scale(1)}.st-horizontal .st-conn{flex:1 1 12px;min-width:12px;height:2px;margin:calc(var(--st-ind) / 2 + 1px) 8px 0}.st-vertical .st-conn{position:absolute;left:calc(var(--st-ind) / 2 + 3px);top:calc(var(--st-ind) + 8px);bottom:4px;width:2px}@media(pointer:coarse),(max-width:480px){.st-btn{min-height:44px;align-items:center}button.st-btn{min-width:44px}.st-horizontal .st-conn{margin-top:21px}.st-vertical .st-conn{top:calc(26px + var(--st-ind) / 2)}}@media(max-width:480px){.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-label,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-opt,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-desc,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-errmsg{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.st-horizontal .st-conn{margin-left:4px;margin-right:4px;min-width:8px;flex-basis:8px}}@media(prefers-reduced-motion:reduce){.st-conn:after{transition:none}}\n"]
14889
+ styles: [":host{display:block}.st-root{position:relative}.st-leading{display:none}.st-has-leading .st-leading{display:block;position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.st-has-leading .st-scroll{margin-inline-start:calc(var(--st-leading-w) + 1rem)}.st-scrollable{overflow-x:auto;padding-top:4px;padding-bottom:4px}.st-compact{display:none}.st-compact-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.st-compact-label{min-width:0;font-size:1.125rem;font-weight:600;line-height:1.3;color:var(--st-accent, #0f172a);overflow-wrap:anywhere}.st-compact-count{flex-shrink:0;font-size:.8125rem;color:#64748b}.st-c-on .st-scroll,.st-c-on .st-leading{display:none}.st-c-on .st-compact{display:block}@media(max-width:479.98px){.st-c-sm .st-scroll,.st-c-sm .st-leading{display:none}.st-c-sm .st-compact{display:block}}@media(max-width:767.98px){.st-c-md .st-scroll,.st-c-md .st-leading{display:none}.st-c-md .st-compact{display:block}}@media(max-width:1023.98px){.st-c-lg .st-scroll,.st-c-lg .st-leading{display:none}.st-c-lg .st-compact{display:block}}.st{list-style:none;margin:0;padding:0;display:flex;--st-ind: 28px}.st-sm{--st-ind: 22px}.st-horizontal{flex-direction:row;align-items:flex-start}.st-vertical{flex-direction:column}.st-step{position:relative;display:flex;min-width:0}.st-horizontal .st-step{flex:1 1 0;align-items:flex-start}.st-horizontal .st-step:last-child{flex:0 1 auto}.st-vertical .st-step{flex-direction:column;padding-bottom:20px}.st-vertical .st-step:last-child{padding-bottom:0}.st-item{display:flex;flex-direction:column;min-width:0;gap:2px}.st-horizontal .st-item{flex:0 1 auto}.st-btn{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;margin:0;padding:2px 4px;border:0;border-radius:8px;background:none;font:inherit;color:inherit;text-align:left;-webkit-appearance:none;appearance:none}button.st-btn{cursor:pointer}.st-btn:focus{outline:2px solid #3b82f6;outline-offset:2px}.st-btn:focus:not(:focus-visible){outline:none}@media(hover:hover){button.st-btn:hover .st-label{text-decoration:underline}}.st-ind{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--st-ind);height:var(--st-ind);border-radius:50%;font-size:.8125rem;font-weight:600;line-height:1;background:#fff;border:2px solid #cbd5e1;color:#64748b}.st-sm .st-ind{font-size:.6875rem}.st-sm .st-check{width:11px;height:11px}.st-step[data-state=complete] .st-ind{background:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));border-color:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));color:#fff}.st-step[data-state=current] .st-ind{background:var(--st-accent, var(--ui-accent, #1d4ed8));border-color:var(--st-accent, var(--ui-accent, #1d4ed8));color:#fff;box-shadow:0 0 0 3px var(--ui-accent-soft, #bfdbfe)}@supports (color: color-mix(in srgb,red 30%,white)){.st-themed .st-step[data-state=current]:not([data-error=true]) .st-ind{box-shadow:0 0 0 3px color-mix(in srgb,var(--st-accent) 30%,white)}}.st-step[data-error=true] .st-ind{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:none}.st-label{font-size:.875rem;font-weight:500;line-height:var(--st-ind);color:#64748b;min-width:0;overflow-wrap:anywhere}.st-sm .st-label{font-size:.8125rem}.st-step[data-state=complete] .st-label{color:#1e293b}.st-step[data-state=current] .st-label{color:#0f172a;font-weight:600}.st-step[data-error=true] .st-label{color:#b91c1c}.st-accent-labels .st-step[data-state=current]:not([data-error=true]) .st-label{color:var(--st-accent, var(--ui-accent, #1d4ed8))}.st-opt{font-size:.75rem;line-height:var(--st-ind);color:#64748b;white-space:nowrap}.st-desc{font-size:.8125rem;line-height:1.4;color:#64748b;padding-left:calc(var(--st-ind) + 12px);overflow-wrap:anywhere}.st-errmsg{font-size:.8125rem;line-height:1.4;color:#b91c1c;padding-left:calc(var(--st-ind) + 12px);overflow-wrap:anywhere}.st-step[data-disabled=true] .st-item{opacity:.5}.st-sr,.st-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.st-conn{position:relative;display:block;background:#e2e8f0;border-radius:1px}.st-conn:after{content:\"\";position:absolute;inset:0;background:var(--st-complete, var(--st-accent, var(--ui-accent, #1d4ed8)));border-radius:1px;transform-origin:top left;transform:scale(0);transition:transform .3s ease}.st-step[data-state=complete] .st-conn:after{transform:scale(1)}.st-horizontal .st-conn{flex:1 1 12px;min-width:12px;height:2px;margin:calc(var(--st-ind) / 2 + 1px) 8px 0}.st-vertical .st-conn{position:absolute;left:calc(var(--st-ind) / 2 + 3px);top:calc(var(--st-ind) + 8px);bottom:4px;width:2px}@media(pointer:coarse),(max-width:480px){.st-btn{min-height:44px;align-items:center}button.st-btn{min-width:44px}.st-horizontal .st-conn{margin-top:21px}.st-vertical .st-conn{top:calc(26px + var(--st-ind) / 2)}}@media(max-width:480px){.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-label,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-opt,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-desc,.st-horizontal.st-labels-current .st-step:not([data-state=current]) .st-errmsg{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.st-horizontal .st-conn{margin-left:4px;margin-right:4px;min-width:8px;flex-basis:8px}}.st-below{--st-ind: 40px}.st-below.st-sm{--st-ind: 32px}.st-below .st-step,.st-below .st-step:last-child{flex:1 1 0;flex-direction:column;align-items:center}.st-below .st-item{align-items:center;text-align:center;max-width:100%}.st-below .st-btn{flex-direction:column;align-items:center;gap:8px;text-align:center;position:relative;z-index:1;padding:2px 4px}.st-below .st-ind{position:relative;z-index:1;border-color:#d1d5db}.st-below .st-label{line-height:1.35;text-align:center;max-width:110px;font-size:.875rem;overflow-wrap:normal}.st-below.st-sm .st-label{font-size:.75rem;max-width:96px}.st-below .st-num{display:block;width:12px;height:12px;border-radius:50%;font-size:0;background:transparent}.st-below.st-sm .st-num{width:10px;height:10px}.st-below .st-step[data-state=current] .st-ind{background:#fff;color:var(--st-accent, var(--ui-accent, #1d4ed8))}.st-below .st-step[data-state=current] .st-num{background:var(--st-accent, var(--ui-accent, #1d4ed8))}.st-below .st-conn{position:absolute;top:calc(var(--st-ind) / 2 + 2px);left:50%;width:100%;min-width:0;height:4px;margin:-2px 0 0;flex:none}.st-below .st-step:last-child .st-conn{display:none}.st-below .st-conn:after{transform-origin:left center}@media(max-width:480px){.st-below .st-conn{margin-left:0;margin-right:0;flex-basis:auto}}@media(prefers-reduced-motion:reduce){.st-conn:after{transition:none}}\n"]
14841
14890
  }]
14842
14891
  }],
14843
14892
  ctorParameters: () => [],
@@ -14933,6 +14982,22 @@ i0.ɵɵngDeclareClassMetadata({
14933
14982
  required: false
14934
14983
  }]
14935
14984
  }],
14985
+ labelPosition: [{
14986
+ type: i0.Input,
14987
+ args: [{
14988
+ isSignal: true,
14989
+ alias: "labelPosition",
14990
+ required: false
14991
+ }]
14992
+ }],
14993
+ stackBelow: [{
14994
+ type: i0.Input,
14995
+ args: [{
14996
+ isSignal: true,
14997
+ alias: "stackBelow",
14998
+ required: false
14999
+ }]
15000
+ }],
14936
15001
  minStepWidth: [{
14937
15002
  type: i0.Input,
14938
15003
  args: [{
@@ -24181,8 +24246,9 @@ var FormRowComponent = class FormRowComponent {
24181
24246
  ngImport: i0,
24182
24247
  template: `<div class="fr-row" [class.fr-row--4]="cols() === 4" [style.--fr-cols]="cols()"><ng-content /></div>`,
24183
24248
  isInline: true,
24184
- styles: [":host{display:block}.fr-row{display:grid;grid-template-columns:repeat(var(--fr-cols, 2),1fr);gap:12px}.fr-row>::ng-deep .ui-span-2{grid-column:span 2}.fr-row>::ng-deep .ui-span-3{grid-column:span 3}.fr-row>::ng-deep .ui-span-all{grid-column:1 / -1}@media(max-width:768px){.fr-row--4{grid-template-columns:repeat(2,1fr)}.fr-row--4>::ng-deep .ui-span-3{grid-column:1 / -1}}@media(max-width:480px){.fr-row{grid-template-columns:1fr}.fr-row>::ng-deep .ui-span-2,.fr-row>::ng-deep .ui-span-3,.fr-row>::ng-deep .ui-span-all{grid-column:1 / -1}}\n"],
24185
- changeDetection: i0.ChangeDetectionStrategy.OnPush
24249
+ styles: ["ui-form-row{display:block}.fr-row{display:grid;grid-template-columns:repeat(var(--fr-cols, 2),1fr);gap:12px}.fr-row>.ui-span-2{grid-column:span 2}.fr-row>.ui-span-3{grid-column:span 3}.fr-row>.ui-span-all{grid-column:1 / -1}@media(max-width:768px){.fr-row--4{grid-template-columns:repeat(2,1fr)}.fr-row--4>.ui-span-3{grid-column:1 / -1}}@media(max-width:480px){.fr-row{grid-template-columns:1fr}.fr-row>.ui-span-2,.fr-row>.ui-span-3,.fr-row>.ui-span-all{grid-column:1 / -1}}\n"],
24250
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
24251
+ encapsulation: i0.ViewEncapsulation.None
24186
24252
  });
24187
24253
  }
24188
24254
  };
@@ -24197,8 +24263,9 @@ i0.ɵɵngDeclareClassMetadata({
24197
24263
  selector: "ui-form-row",
24198
24264
  standalone: true,
24199
24265
  changeDetection: ChangeDetectionStrategy.OnPush,
24266
+ encapsulation: ViewEncapsulation.None,
24200
24267
  template: `<div class="fr-row" [class.fr-row--4]="cols() === 4" [style.--fr-cols]="cols()"><ng-content /></div>`,
24201
- styles: [":host{display:block}.fr-row{display:grid;grid-template-columns:repeat(var(--fr-cols, 2),1fr);gap:12px}.fr-row>::ng-deep .ui-span-2{grid-column:span 2}.fr-row>::ng-deep .ui-span-3{grid-column:span 3}.fr-row>::ng-deep .ui-span-all{grid-column:1 / -1}@media(max-width:768px){.fr-row--4{grid-template-columns:repeat(2,1fr)}.fr-row--4>::ng-deep .ui-span-3{grid-column:1 / -1}}@media(max-width:480px){.fr-row{grid-template-columns:1fr}.fr-row>::ng-deep .ui-span-2,.fr-row>::ng-deep .ui-span-3,.fr-row>::ng-deep .ui-span-all{grid-column:1 / -1}}\n"]
24268
+ styles: ["ui-form-row{display:block}.fr-row{display:grid;grid-template-columns:repeat(var(--fr-cols, 2),1fr);gap:12px}.fr-row>.ui-span-2{grid-column:span 2}.fr-row>.ui-span-3{grid-column:span 3}.fr-row>.ui-span-all{grid-column:1 / -1}@media(max-width:768px){.fr-row--4{grid-template-columns:repeat(2,1fr)}.fr-row--4>.ui-span-3{grid-column:1 / -1}}@media(max-width:480px){.fr-row{grid-template-columns:1fr}.fr-row>.ui-span-2,.fr-row>.ui-span-3,.fr-row>.ui-span-all{grid-column:1 / -1}}\n"]
24202
24269
  }]
24203
24270
  }],
24204
24271
  propDecorators: { cols: [{
@@ -24284,8 +24351,19 @@ var ListItemComponent = class ListItemComponent {
24284
24351
  this.badge = input(null, ...ngDevMode ? [{ debugName: "badge" }] : /* istanbul ignore next */ []);
24285
24352
  this.badgeVariant = input("green", ...ngDevMode ? [{ debugName: "badgeVariant" }] : /* istanbul ignore next */ []);
24286
24353
  this.details = input([], ...ngDevMode ? [{ debugName: "details" }] : /* istanbul ignore next */ []);
24354
+ this.icon = input("", ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
24355
+ this.iconColor = input("slate", ...ngDevMode ? [{ debugName: "iconColor" }] : /* istanbul ignore next */ []);
24356
+ this.iconD = () => this.icon() ? iconPath(this.icon()) ?? null : null;
24287
24357
  this.select = output();
24288
- this.visibleDetails = () => this.details().filter((d) => !!d);
24358
+ this.visibleDetails = () => this.details().map((d) => typeof d === "string" ? {
24359
+ text: d,
24360
+ d: null,
24361
+ tone: "default"
24362
+ } : d ? {
24363
+ text: d.text,
24364
+ d: d.icon ? iconPath(d.icon) ?? null : null,
24365
+ tone: d.tone ?? "default"
24366
+ } : null).filter((d) => !!d && !!d.text);
24289
24367
  }
24290
24368
  get _borderedClass() {
24291
24369
  return this.bordered();
@@ -24398,29 +24476,60 @@ var ListItemComponent = class ListItemComponent {
24398
24476
  isSignal: true,
24399
24477
  isRequired: false,
24400
24478
  transformFunction: null
24479
+ },
24480
+ icon: {
24481
+ classPropertyName: "icon",
24482
+ publicName: "icon",
24483
+ isSignal: true,
24484
+ isRequired: false,
24485
+ transformFunction: null
24486
+ },
24487
+ iconColor: {
24488
+ classPropertyName: "iconColor",
24489
+ publicName: "iconColor",
24490
+ isSignal: true,
24491
+ isRequired: false,
24492
+ transformFunction: null
24401
24493
  }
24402
24494
  },
24403
24495
  outputs: { select: "select" },
24404
24496
  host: { properties: { "class.li-bordered": "this._borderedClass" } },
24405
24497
  ngImport: i0,
24406
24498
  template: `
24499
+ <ng-template #tile>
24500
+ @if (iconD(); as d) {
24501
+ <span class="li-icon" [class]="'li-icon li-icon--' + iconColor()" aria-hidden="true">
24502
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" focusable="false"><path [attr.d]="d" /></svg>
24503
+ </span>
24504
+ }
24505
+ </ng-template>
24506
+ <ng-template #content>
24507
+ <div class="li-title-row">
24508
+ <span class="li-title">{{ title() }}</span>
24509
+ @if (badge() && (checked() || alwaysShowBadge())) {
24510
+ <ui-badge [label]="badge()!" [variant]="badgeVariant()" />
24511
+ }
24512
+ </div>
24513
+ @if (visibleDetails().length) {
24514
+ <div class="li-details">
24515
+ @for (detail of visibleDetails(); track $index) {
24516
+ <span class="li-detail" [class.li-detail--warning]="detail.tone === 'warning'" [class.li-detail--danger]="detail.tone === 'danger'">
24517
+ @if (detail.d) {
24518
+ <svg class="li-detail-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="detail.d" /></svg>
24519
+ }
24520
+ <span class="li-detail-text">{{ detail.text }}</span>
24521
+ </span>
24522
+ }
24523
+ </div>
24524
+ }
24525
+ </ng-template>
24526
+
24407
24527
  <div class="li-row" [class.li-row--highlighted]="highlighted()" [class.li-row--static]="!interactive()" [class.li-row--wrap]="wrapText() || !interactive()">
24408
24528
 
24409
24529
  @if (!interactive()) {
24530
+ <ng-container [ngTemplateOutlet]="tile" />
24410
24531
  <div class="li-body li-body--static">
24411
- <div class="li-title-row">
24412
- <span class="li-title">{{ title() }}</span>
24413
- @if (badge() && (checked() || alwaysShowBadge())) {
24414
- <ui-badge [label]="badge()!" [variant]="badgeVariant()" />
24415
- }
24416
- </div>
24417
- @if (visibleDetails().length) {
24418
- <div class="li-details">
24419
- @for (detail of visibleDetails(); track $index) {
24420
- <span>{{ detail }}</span>
24421
- }
24422
- </div>
24423
- }
24532
+ <ng-container [ngTemplateOutlet]="content" />
24424
24533
  </div>
24425
24534
  } @else {
24426
24535
  @if (leading() === 'radio') {
@@ -24442,20 +24551,9 @@ var ListItemComponent = class ListItemComponent {
24442
24551
  />
24443
24552
  }
24444
24553
 
24554
+ <ng-container [ngTemplateOutlet]="tile" />
24445
24555
  <label class="li-body" [attr.for]="inputId() || null">
24446
- <div class="li-title-row">
24447
- <span class="li-title">{{ title() }}</span>
24448
- @if (badge() && (checked() || alwaysShowBadge())) {
24449
- <ui-badge [label]="badge()!" [variant]="badgeVariant()" />
24450
- }
24451
- </div>
24452
- @if (visibleDetails().length) {
24453
- <div class="li-details">
24454
- @for (detail of visibleDetails(); track $index) {
24455
- <span>{{ detail }}</span>
24456
- }
24457
- </div>
24458
- }
24556
+ <ng-container [ngTemplateOutlet]="content" />
24459
24557
  </label>
24460
24558
  }
24461
24559
 
@@ -24464,14 +24562,24 @@ var ListItemComponent = class ListItemComponent {
24464
24562
  </div>
24465
24563
  `,
24466
24564
  isInline: true,
24467
- styles: [":host{display:block}:host(.li-bordered){border:1px solid var(--border, #e2e8f0);border-radius:8px;overflow:hidden;margin-bottom:6px}:host(.li-bordered):last-child{margin-bottom:0}.li-row{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}:host(.li-bordered) .li-row{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-body.li-body--static{cursor:default}.li-row ::ng-deep [list-item-action],.li-row ::ng-deep [li-action]{flex-shrink:0;align-self:center}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:3px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.875rem;font-weight:500;color:var(--text-primary, #1e293b)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-wrap:wrap;gap:6px;font-size:.775rem;color:var(--text-secondary, #64748b)}.li-row--wrap .li-details span{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"],
24565
+ styles: ["ui-list-item{display:block}ui-list-item(.li-bordered){border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);margin-bottom:8px;&:last-child{margin-bottom:0}}.li-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s;ui-list-item(.li-bordered) &{border-bottom:none}}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:4px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:2px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"],
24468
24566
  dependencies: [{
24469
24567
  kind: "component",
24470
24568
  type: BadgeComponent,
24471
24569
  selector: "ui-badge",
24472
24570
  inputs: ["label", "variant"]
24571
+ }, {
24572
+ kind: "directive",
24573
+ type: NgTemplateOutlet,
24574
+ selector: "[ngTemplateOutlet]",
24575
+ inputs: [
24576
+ "ngTemplateOutletContext",
24577
+ "ngTemplateOutlet",
24578
+ "ngTemplateOutletInjector"
24579
+ ]
24473
24580
  }],
24474
- changeDetection: i0.ChangeDetectionStrategy.OnPush
24581
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
24582
+ encapsulation: i0.ViewEncapsulation.None
24475
24583
  });
24476
24584
  }
24477
24585
  };
@@ -24486,25 +24594,43 @@ i0.ɵɵngDeclareClassMetadata({
24486
24594
  selector: "ui-list-item",
24487
24595
  standalone: true,
24488
24596
  changeDetection: ChangeDetectionStrategy.OnPush,
24489
- imports: [BadgeComponent],
24597
+ encapsulation: ViewEncapsulation.None,
24598
+ imports: [BadgeComponent, NgTemplateOutlet],
24490
24599
  template: `
24600
+ <ng-template #tile>
24601
+ @if (iconD(); as d) {
24602
+ <span class="li-icon" [class]="'li-icon li-icon--' + iconColor()" aria-hidden="true">
24603
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" focusable="false"><path [attr.d]="d" /></svg>
24604
+ </span>
24605
+ }
24606
+ </ng-template>
24607
+ <ng-template #content>
24608
+ <div class="li-title-row">
24609
+ <span class="li-title">{{ title() }}</span>
24610
+ @if (badge() && (checked() || alwaysShowBadge())) {
24611
+ <ui-badge [label]="badge()!" [variant]="badgeVariant()" />
24612
+ }
24613
+ </div>
24614
+ @if (visibleDetails().length) {
24615
+ <div class="li-details">
24616
+ @for (detail of visibleDetails(); track $index) {
24617
+ <span class="li-detail" [class.li-detail--warning]="detail.tone === 'warning'" [class.li-detail--danger]="detail.tone === 'danger'">
24618
+ @if (detail.d) {
24619
+ <svg class="li-detail-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="detail.d" /></svg>
24620
+ }
24621
+ <span class="li-detail-text">{{ detail.text }}</span>
24622
+ </span>
24623
+ }
24624
+ </div>
24625
+ }
24626
+ </ng-template>
24627
+
24491
24628
  <div class="li-row" [class.li-row--highlighted]="highlighted()" [class.li-row--static]="!interactive()" [class.li-row--wrap]="wrapText() || !interactive()">
24492
24629
 
24493
24630
  @if (!interactive()) {
24631
+ <ng-container [ngTemplateOutlet]="tile" />
24494
24632
  <div class="li-body li-body--static">
24495
- <div class="li-title-row">
24496
- <span class="li-title">{{ title() }}</span>
24497
- @if (badge() && (checked() || alwaysShowBadge())) {
24498
- <ui-badge [label]="badge()!" [variant]="badgeVariant()" />
24499
- }
24500
- </div>
24501
- @if (visibleDetails().length) {
24502
- <div class="li-details">
24503
- @for (detail of visibleDetails(); track $index) {
24504
- <span>{{ detail }}</span>
24505
- }
24506
- </div>
24507
- }
24633
+ <ng-container [ngTemplateOutlet]="content" />
24508
24634
  </div>
24509
24635
  } @else {
24510
24636
  @if (leading() === 'radio') {
@@ -24526,20 +24652,9 @@ i0.ɵɵngDeclareClassMetadata({
24526
24652
  />
24527
24653
  }
24528
24654
 
24655
+ <ng-container [ngTemplateOutlet]="tile" />
24529
24656
  <label class="li-body" [attr.for]="inputId() || null">
24530
- <div class="li-title-row">
24531
- <span class="li-title">{{ title() }}</span>
24532
- @if (badge() && (checked() || alwaysShowBadge())) {
24533
- <ui-badge [label]="badge()!" [variant]="badgeVariant()" />
24534
- }
24535
- </div>
24536
- @if (visibleDetails().length) {
24537
- <div class="li-details">
24538
- @for (detail of visibleDetails(); track $index) {
24539
- <span>{{ detail }}</span>
24540
- }
24541
- </div>
24542
- }
24657
+ <ng-container [ngTemplateOutlet]="content" />
24543
24658
  </label>
24544
24659
  }
24545
24660
 
@@ -24547,7 +24662,7 @@ i0.ɵɵngDeclareClassMetadata({
24547
24662
 
24548
24663
  </div>
24549
24664
  `,
24550
- styles: [":host{display:block}:host(.li-bordered){border:1px solid var(--border, #e2e8f0);border-radius:8px;overflow:hidden;margin-bottom:6px}:host(.li-bordered):last-child{margin-bottom:0}.li-row{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}:host(.li-bordered) .li-row{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-body.li-body--static{cursor:default}.li-row ::ng-deep [list-item-action],.li-row ::ng-deep [li-action]{flex-shrink:0;align-self:center}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:3px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.875rem;font-weight:500;color:var(--text-primary, #1e293b)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-wrap:wrap;gap:6px;font-size:.775rem;color:var(--text-secondary, #64748b)}.li-row--wrap .li-details span{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"]
24665
+ styles: ["ui-list-item{display:block}ui-list-item(.li-bordered){border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);margin-bottom:8px;&:last-child{margin-bottom:0}}.li-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s;ui-list-item(.li-bordered) &{border-bottom:none}}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:4px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:2px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"]
24551
24666
  }]
24552
24667
  }],
24553
24668
  propDecorators: {
@@ -24659,6 +24774,22 @@ i0.ɵɵngDeclareClassMetadata({
24659
24774
  required: false
24660
24775
  }]
24661
24776
  }],
24777
+ icon: [{
24778
+ type: i0.Input,
24779
+ args: [{
24780
+ isSignal: true,
24781
+ alias: "icon",
24782
+ required: false
24783
+ }]
24784
+ }],
24785
+ iconColor: [{
24786
+ type: i0.Input,
24787
+ args: [{
24788
+ isSignal: true,
24789
+ alias: "iconColor",
24790
+ required: false
24791
+ }]
24792
+ }],
24662
24793
  select: [{
24663
24794
  type: i0.Output,
24664
24795
  args: ["select"]
@@ -24739,6 +24870,8 @@ var ListComponent = class ListComponent {
24739
24870
  this.moveLaterLabel = input(void 0, ...ngDevMode ? [{ debugName: "moveLaterLabel" }] : /* istanbul ignore next */ []);
24740
24871
  this.helpText = input("Hold Shift and press the arrow keys to move this item. Shift plus Home or End moves it to the start or end.", ...ngDevMode ? [{ debugName: "helpText" }] : /* istanbul ignore next */ []);
24741
24872
  this.moveAnnouncement = input((label, position, total) => `${label} moved to position ${position} of ${total}`, ...ngDevMode ? [{ debugName: "moveAnnouncement" }] : /* istanbul ignore next */ []);
24873
+ this.navigable = input(false, ...ngDevMode ? [{ debugName: "navigable" }] : /* istanbul ignore next */ []);
24874
+ this.itemClick = output();
24742
24875
  this.itemsChange = output();
24743
24876
  this.reorder = output();
24744
24877
  this.rowTemplate = contentChild(TemplateRef, ...ngDevMode ? [{ debugName: "rowTemplate" }] : /* istanbul ignore next */ []);
@@ -24824,7 +24957,18 @@ var ListComponent = class ListComponent {
24824
24957
  move(from, to) {
24825
24958
  return this.apply(from, to, null);
24826
24959
  }
24960
+ emitItemClick(e) {
24961
+ const target = e.target;
24962
+ if (!target || target.closest("button, a, input, select, textarea, [data-move]")) return;
24963
+ const idx = this.rowIndexOf(target, e.currentTarget);
24964
+ const row = this.rows()[idx];
24965
+ if (row) this.itemClick.emit(row.item);
24966
+ }
24827
24967
  onKeydown(e) {
24968
+ if (this.navigable() && e.key === "Enter" && e.target?.classList.contains("ul-item")) {
24969
+ this.emitItemClick(e);
24970
+ return;
24971
+ }
24828
24972
  if (!this.canReorder() || e.ctrlKey || e.metaKey) return;
24829
24973
  const list = e.currentTarget;
24830
24974
  const target = e.target;
@@ -24864,6 +25008,7 @@ var ListComponent = class ListComponent {
24864
25008
  }
24865
25009
  }
24866
25010
  onClick(e) {
25011
+ if (this.navigable()) this.emitItemClick(e);
24867
25012
  if (!this.canReorder()) return;
24868
25013
  const btn = e.target?.closest("[data-move]") ?? null;
24869
25014
  if (!btn) return;
@@ -25108,9 +25253,17 @@ var ListComponent = class ListComponent {
25108
25253
  isSignal: true,
25109
25254
  isRequired: false,
25110
25255
  transformFunction: null
25256
+ },
25257
+ navigable: {
25258
+ classPropertyName: "navigable",
25259
+ publicName: "navigable",
25260
+ isSignal: true,
25261
+ isRequired: false,
25262
+ transformFunction: null
25111
25263
  }
25112
25264
  },
25113
25265
  outputs: {
25266
+ itemClick: "itemClick",
25114
25267
  itemsChange: "itemsChange",
25115
25268
  reorder: "reorder"
25116
25269
  },
@@ -25130,9 +25283,10 @@ var ListComponent = class ListComponent {
25130
25283
  [class.ul-item--draggable]="direct()"
25131
25284
  [class.ul-item--dragging]="row.dragging"
25132
25285
  [class.ul-item--over]="dragIndex() !== null && dragIndex() !== row.index && overIndex() === row.index"
25286
+ [class.ul-item--nav]="navigable()"
25133
25287
  [attr.data-index]="row.index"
25134
25288
  [attr.draggable]="direct() ? 'true' : null"
25135
- [attr.tabindex]="direct() ? 0 : null"
25289
+ [attr.tabindex]="direct() || navigable() ? 0 : null"
25136
25290
  [attr.aria-roledescription]="direct() ? 'sortable item' : null"
25137
25291
  [attr.aria-label]="direct() ? row.label : null"
25138
25292
  [attr.aria-describedby]="direct() ? helpId : null">
@@ -25144,6 +25298,9 @@ var ListComponent = class ListComponent {
25144
25298
  {{ row.label }}
25145
25299
  }
25146
25300
  </div>
25301
+ @if (navigable()) {
25302
+ <svg class="ul-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M9 18l6-6-6-6"/></svg>
25303
+ }
25147
25304
  @if (showControls()) {
25148
25305
  <div class="ul-controls">
25149
25306
  <ui-button variant="icon" data-move="up" [ariaLabel]="row.earlierLabel" [disabled]="disabled() || row.first">
@@ -25189,7 +25346,7 @@ var ListComponent = class ListComponent {
25189
25346
  }
25190
25347
  `,
25191
25348
  isInline: true,
25192
- styles: [":host{display:block;min-width:0}.ul-list{margin:0;padding:0;min-width:0}.ul-list--unordered{list-style:none}.ul-list--ordered{list-style:decimal;-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.ul-list--ordered>.ul-item::marker{color:var(--text-secondary, #64748b);font-size:.875rem}.ul-item{min-width:0;transition:background-color .4s ease}.ul-item.ul-item--moved{background-color:var(--surface-hover, #f1f5f9)}.ul-list:not(.ul-list--grid)>.ul-item+.ul-item{margin-top:var(--ul-gap, 0px)}.ul-row{display:flex;align-items:center;gap:8px;min-width:0}.ul-content{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:anywhere}.ul-controls{display:flex;flex:0 0 auto;align-items:center;gap:2px}.ul-list.ul-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--ul-min, 130px),100%),1fr));gap:var(--ul-gap, 12px);list-style:none;-webkit-padding-start:0;padding-inline-start:0}.ul-list--grid>.ul-item>.ul-row{flex-direction:column;align-items:stretch;gap:6px}.ul-list--grid>.ul-item>.ul-row>.ul-controls{align-self:center}@media(pointer:coarse),(max-width:480px){.ul-controls{gap:16px}}.ul-item--draggable{-webkit-user-select:none;user-select:none;-webkit-user-drag:element}@media(hover:hover)and (pointer:fine){.ul-item--draggable{cursor:grab}.ul-item--draggable:active{cursor:grabbing}}.ul-item--draggable:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.ul-item--draggable:focus:not(:focus-visible){outline:none}:host ::ng-deep .ul-item--draggable img,:host ::ng-deep .ul-item--draggable ui-image-preview{pointer-events:none;-webkit-user-drag:none}.ul-item--dragging{opacity:.5}.ul-item--over{outline:2px dashed #3b82f6;outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){.ul-item{transition:none}}@media(forced-colors:active){.ul-item.ul-item--moved{outline:2px solid Highlight;outline-offset:-2px}}@media(forced-colors:active){.ul-item.ul-item--dragging{outline:2px dotted Highlight;outline-offset:2px}.ul-item.ul-item--over{outline:2px dashed Highlight;outline-offset:2px}.ul-item--draggable:focus{outline:2px solid Highlight;outline-offset:2px}}.ul-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"],
25349
+ styles: ["ui-list{display:block;min-width:0}.ul-list{margin:0;padding:0;min-width:0}.ul-list--unordered{list-style:none}.ul-list--ordered{list-style:decimal;-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.ul-list--ordered>.ul-item::marker{color:var(--text-secondary, #64748b);font-size:.875rem}.ul-item{min-width:0;transition:background-color .4s ease}.ul-item.ul-item--moved{background-color:var(--surface-hover, #f1f5f9)}.ul-list:not(.ul-list--grid)>.ul-item+.ul-item{margin-top:var(--ul-gap, 0px)}.ul-row{display:flex;align-items:center;gap:8px;min-width:0}.ul-content{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:anywhere}.ul-controls{display:flex;flex:0 0 auto;align-items:center;gap:2px}.ul-item--nav{cursor:pointer;border-radius:10px;transition:background-color .12s ease}.ul-item--nav:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ul-item--nav:hover{background:var(--surface-hover, #f8fafc)}.ul-item--nav>.ul-row{padding-inline-end:16px}.ul-item--nav:hover .ul-chevron{color:#0f172a}.ul-chevron{flex:0 0 auto;color:#94a3b8;transition:color .15s ease}@media(prefers-reduced-motion:reduce){.ul-chevron{transition:none}}.ul-list.ul-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--ul-min, 130px),100%),1fr));gap:var(--ul-gap, 12px);list-style:none;-webkit-padding-start:0;padding-inline-start:0}.ul-list--grid>.ul-item>.ul-row{flex-direction:column;align-items:stretch;gap:6px}.ul-list--grid>.ul-item>.ul-row>.ul-controls{align-self:center}@media(pointer:coarse),(max-width:480px){.ul-controls{gap:16px}}.ul-item--draggable{-webkit-user-select:none;user-select:none;-webkit-user-drag:element}@media(hover:hover)and (pointer:fine){.ul-item--draggable{cursor:grab}.ul-item--draggable:active{cursor:grabbing}}.ul-item--draggable:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.ul-item--draggable:focus:not(:focus-visible){outline:none}ui-list .ul-item--draggable img,ui-list .ul-item--draggable ui-image-preview{pointer-events:none;-webkit-user-drag:none}.ul-item--dragging{opacity:.5}.ul-item--over{outline:2px dashed #3b82f6;outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){.ul-item{transition:none}}@media(forced-colors:active){.ul-item.ul-item--moved{outline:2px solid Highlight;outline-offset:-2px}}@media(forced-colors:active){.ul-item.ul-item--dragging{outline:2px dotted Highlight;outline-offset:2px}.ul-item.ul-item--over{outline:2px dashed Highlight;outline-offset:2px}.ul-item--draggable:focus{outline:2px solid Highlight;outline-offset:2px}}.ul-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"],
25193
25350
  dependencies: [{
25194
25351
  kind: "directive",
25195
25352
  type: NgTemplateOutlet,
@@ -25229,7 +25386,8 @@ var ListComponent = class ListComponent {
25229
25386
  "modal-footer-right"
25230
25387
  ]
25231
25388
  }],
25232
- changeDetection: i0.ChangeDetectionStrategy.OnPush
25389
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
25390
+ encapsulation: i0.ViewEncapsulation.None
25233
25391
  });
25234
25392
  }
25235
25393
  };
@@ -25244,6 +25402,7 @@ i0.ɵɵngDeclareClassMetadata({
25244
25402
  selector: "ui-list",
25245
25403
  standalone: true,
25246
25404
  changeDetection: ChangeDetectionStrategy.OnPush,
25405
+ encapsulation: ViewEncapsulation.None,
25247
25406
  imports: [NgTemplateOutlet, ButtonComponent],
25248
25407
  template: `
25249
25408
  <ng-template #rowsTpl>
@@ -25253,9 +25412,10 @@ i0.ɵɵngDeclareClassMetadata({
25253
25412
  [class.ul-item--draggable]="direct()"
25254
25413
  [class.ul-item--dragging]="row.dragging"
25255
25414
  [class.ul-item--over]="dragIndex() !== null && dragIndex() !== row.index && overIndex() === row.index"
25415
+ [class.ul-item--nav]="navigable()"
25256
25416
  [attr.data-index]="row.index"
25257
25417
  [attr.draggable]="direct() ? 'true' : null"
25258
- [attr.tabindex]="direct() ? 0 : null"
25418
+ [attr.tabindex]="direct() || navigable() ? 0 : null"
25259
25419
  [attr.aria-roledescription]="direct() ? 'sortable item' : null"
25260
25420
  [attr.aria-label]="direct() ? row.label : null"
25261
25421
  [attr.aria-describedby]="direct() ? helpId : null">
@@ -25267,6 +25427,9 @@ i0.ɵɵngDeclareClassMetadata({
25267
25427
  {{ row.label }}
25268
25428
  }
25269
25429
  </div>
25430
+ @if (navigable()) {
25431
+ <svg class="ul-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M9 18l6-6-6-6"/></svg>
25432
+ }
25270
25433
  @if (showControls()) {
25271
25434
  <div class="ul-controls">
25272
25435
  <ui-button variant="icon" data-move="up" [ariaLabel]="row.earlierLabel" [disabled]="disabled() || row.first">
@@ -25311,7 +25474,7 @@ i0.ɵɵngDeclareClassMetadata({
25311
25474
  <div class="ul-sr" role="status" aria-live="polite" aria-atomic="true">{{ announcement() }}</div>
25312
25475
  }
25313
25476
  `,
25314
- styles: [":host{display:block;min-width:0}.ul-list{margin:0;padding:0;min-width:0}.ul-list--unordered{list-style:none}.ul-list--ordered{list-style:decimal;-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.ul-list--ordered>.ul-item::marker{color:var(--text-secondary, #64748b);font-size:.875rem}.ul-item{min-width:0;transition:background-color .4s ease}.ul-item.ul-item--moved{background-color:var(--surface-hover, #f1f5f9)}.ul-list:not(.ul-list--grid)>.ul-item+.ul-item{margin-top:var(--ul-gap, 0px)}.ul-row{display:flex;align-items:center;gap:8px;min-width:0}.ul-content{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:anywhere}.ul-controls{display:flex;flex:0 0 auto;align-items:center;gap:2px}.ul-list.ul-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--ul-min, 130px),100%),1fr));gap:var(--ul-gap, 12px);list-style:none;-webkit-padding-start:0;padding-inline-start:0}.ul-list--grid>.ul-item>.ul-row{flex-direction:column;align-items:stretch;gap:6px}.ul-list--grid>.ul-item>.ul-row>.ul-controls{align-self:center}@media(pointer:coarse),(max-width:480px){.ul-controls{gap:16px}}.ul-item--draggable{-webkit-user-select:none;user-select:none;-webkit-user-drag:element}@media(hover:hover)and (pointer:fine){.ul-item--draggable{cursor:grab}.ul-item--draggable:active{cursor:grabbing}}.ul-item--draggable:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.ul-item--draggable:focus:not(:focus-visible){outline:none}:host ::ng-deep .ul-item--draggable img,:host ::ng-deep .ul-item--draggable ui-image-preview{pointer-events:none;-webkit-user-drag:none}.ul-item--dragging{opacity:.5}.ul-item--over{outline:2px dashed #3b82f6;outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){.ul-item{transition:none}}@media(forced-colors:active){.ul-item.ul-item--moved{outline:2px solid Highlight;outline-offset:-2px}}@media(forced-colors:active){.ul-item.ul-item--dragging{outline:2px dotted Highlight;outline-offset:2px}.ul-item.ul-item--over{outline:2px dashed Highlight;outline-offset:2px}.ul-item--draggable:focus{outline:2px solid Highlight;outline-offset:2px}}.ul-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"]
25477
+ styles: ["ui-list{display:block;min-width:0}.ul-list{margin:0;padding:0;min-width:0}.ul-list--unordered{list-style:none}.ul-list--ordered{list-style:decimal;-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.ul-list--ordered>.ul-item::marker{color:var(--text-secondary, #64748b);font-size:.875rem}.ul-item{min-width:0;transition:background-color .4s ease}.ul-item.ul-item--moved{background-color:var(--surface-hover, #f1f5f9)}.ul-list:not(.ul-list--grid)>.ul-item+.ul-item{margin-top:var(--ul-gap, 0px)}.ul-row{display:flex;align-items:center;gap:8px;min-width:0}.ul-content{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:anywhere}.ul-controls{display:flex;flex:0 0 auto;align-items:center;gap:2px}.ul-item--nav{cursor:pointer;border-radius:10px;transition:background-color .12s ease}.ul-item--nav:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ul-item--nav:hover{background:var(--surface-hover, #f8fafc)}.ul-item--nav>.ul-row{padding-inline-end:16px}.ul-item--nav:hover .ul-chevron{color:#0f172a}.ul-chevron{flex:0 0 auto;color:#94a3b8;transition:color .15s ease}@media(prefers-reduced-motion:reduce){.ul-chevron{transition:none}}.ul-list.ul-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--ul-min, 130px),100%),1fr));gap:var(--ul-gap, 12px);list-style:none;-webkit-padding-start:0;padding-inline-start:0}.ul-list--grid>.ul-item>.ul-row{flex-direction:column;align-items:stretch;gap:6px}.ul-list--grid>.ul-item>.ul-row>.ul-controls{align-self:center}@media(pointer:coarse),(max-width:480px){.ul-controls{gap:16px}}.ul-item--draggable{-webkit-user-select:none;user-select:none;-webkit-user-drag:element}@media(hover:hover)and (pointer:fine){.ul-item--draggable{cursor:grab}.ul-item--draggable:active{cursor:grabbing}}.ul-item--draggable:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.ul-item--draggable:focus:not(:focus-visible){outline:none}ui-list .ul-item--draggable img,ui-list .ul-item--draggable ui-image-preview{pointer-events:none;-webkit-user-drag:none}.ul-item--dragging{opacity:.5}.ul-item--over{outline:2px dashed #3b82f6;outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){.ul-item{transition:none}}@media(forced-colors:active){.ul-item.ul-item--moved{outline:2px solid Highlight;outline-offset:-2px}}@media(forced-colors:active){.ul-item.ul-item--dragging{outline:2px dotted Highlight;outline-offset:2px}.ul-item.ul-item--over{outline:2px dashed Highlight;outline-offset:2px}.ul-item--draggable:focus{outline:2px solid Highlight;outline-offset:2px}}.ul-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"]
25315
25478
  }]
25316
25479
  }],
25317
25480
  propDecorators: {
@@ -25451,6 +25614,18 @@ i0.ɵɵngDeclareClassMetadata({
25451
25614
  required: false
25452
25615
  }]
25453
25616
  }],
25617
+ navigable: [{
25618
+ type: i0.Input,
25619
+ args: [{
25620
+ isSignal: true,
25621
+ alias: "navigable",
25622
+ required: false
25623
+ }]
25624
+ }],
25625
+ itemClick: [{
25626
+ type: i0.Output,
25627
+ args: ["itemClick"]
25628
+ }],
25454
25629
  itemsChange: [{
25455
25630
  type: i0.Output,
25456
25631
  args: ["itemsChange"]
@@ -27371,6 +27546,50 @@ const US_STATES = [
27371
27546
  label: "District of Columbia"
27372
27547
  }
27373
27548
  ];
27549
+ var ShellProjectedStylesComponent = class ShellProjectedStylesComponent {
27550
+ static {
27551
+ this.ɵfac = i0.ɵɵngDeclareFactory({
27552
+ minVersion: "12.0.0",
27553
+ version: "22.2.2",
27554
+ ngImport: i0,
27555
+ type: ShellProjectedStylesComponent,
27556
+ deps: [],
27557
+ target: i0.ɵɵFactoryTarget.Component
27558
+ });
27559
+ }
27560
+ static {
27561
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
27562
+ minVersion: "14.0.0",
27563
+ version: "22.2.2",
27564
+ type: ShellProjectedStylesComponent,
27565
+ isStandalone: true,
27566
+ selector: "ui-shell-projected-styles",
27567
+ ngImport: i0,
27568
+ template: "",
27569
+ isInline: true,
27570
+ styles: ["ui-shell-projected-styles{display:none}ui-app-shell .nav-icon svg{width:17px;height:17px;stroke:color-mix(in srgb,var(--shell-text, #fff) 90%,transparent);transition:stroke .15s;flex-shrink:0}ui-app-shell .sidebar-nav a:hover .nav-icon svg{stroke:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}ui-app-shell .sidebar-nav a.active .nav-icon svg{stroke:#93c5fd}@media(min-width:1025px){ui-app-shell .shell.collapsed .brand-full img,ui-app-shell .shell.collapsed .brand-full svg{width:44px;height:44px;max-width:none;object-fit:cover;object-position:50% 42%}ui-app-shell .shell.collapsed .nav-icon svg{width:20px;height:20px}}@media(prefers-reduced-motion:reduce){ui-app-shell .nav-icon svg{transition:none!important}}\n"],
27571
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
27572
+ encapsulation: i0.ViewEncapsulation.None
27573
+ });
27574
+ }
27575
+ };
27576
+ i0.ɵɵngDeclareClassMetadata({
27577
+ minVersion: "12.0.0",
27578
+ version: "22.2.2",
27579
+ ngImport: i0,
27580
+ type: ShellProjectedStylesComponent,
27581
+ decorators: [{
27582
+ type: Component,
27583
+ args: [{
27584
+ selector: "ui-shell-projected-styles",
27585
+ standalone: true,
27586
+ changeDetection: ChangeDetectionStrategy.OnPush,
27587
+ encapsulation: ViewEncapsulation.None,
27588
+ template: "",
27589
+ styles: ["ui-shell-projected-styles{display:none}ui-app-shell .nav-icon svg{width:17px;height:17px;stroke:color-mix(in srgb,var(--shell-text, #fff) 90%,transparent);transition:stroke .15s;flex-shrink:0}ui-app-shell .sidebar-nav a:hover .nav-icon svg{stroke:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}ui-app-shell .sidebar-nav a.active .nav-icon svg{stroke:#93c5fd}@media(min-width:1025px){ui-app-shell .shell.collapsed .brand-full img,ui-app-shell .shell.collapsed .brand-full svg{width:44px;height:44px;max-width:none;object-fit:cover;object-position:50% 42%}ui-app-shell .shell.collapsed .nav-icon svg{width:20px;height:20px}}@media(prefers-reduced-motion:reduce){ui-app-shell .nav-icon svg{transition:none!important}}\n"]
27590
+ }]
27591
+ }]
27592
+ });
27374
27593
  function appShellGroupsStorageKey(persistKey) {
27375
27594
  return `ui-app-shell-groups:${persistKey}`;
27376
27595
  }
@@ -27595,6 +27814,7 @@ var AppShellComponent = class AppShellComponent {
27595
27814
  [style.--shell-bg]="backgroundColor() || null"
27596
27815
  [style.--shell-text]="textColor() || null"
27597
27816
  >
27817
+ <ui-shell-projected-styles />
27598
27818
 
27599
27819
  <!-- Mobile backdrop -->
27600
27820
  <div
@@ -27780,7 +28000,7 @@ var AppShellComponent = class AppShellComponent {
27780
28000
  <ui-confirm-outlet />
27781
28001
  `,
27782
28002
  isInline: true,
27783
- styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-icon ::ng-deep svg{width:17px;height:17px;stroke:color-mix(in srgb,var(--shell-text, #fff) 90%,transparent);transition:stroke .15s;flex-shrink:0}.sidebar-nav a:hover .nav-icon ::ng-deep svg{stroke:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.sidebar-nav a.active .nav-icon ::ng-deep svg{stroke:#93c5fd}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-full ::ng-deep img,.shell.collapsed .brand-full ::ng-deep svg{width:44px;height:44px;max-width:none;object-fit:cover;object-position:50% 42%}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-icon ::ng-deep svg{width:20px;height:20px}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:24px;background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{padding:16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{padding:12px}}@media(pointer:coarse),(max-width:480px){.sidebar-nav a,.nav-group-label{min-height:44px}.btn-logout,.hamburger,.rail-toggle{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar,.nav-icon ::ng-deep svg{transition:none!important}}\n"],
28003
+ styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:24px;background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{padding:16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{padding:12px}}@media(pointer:coarse),(max-width:480px){.sidebar-nav a,.nav-group-label{min-height:44px}.btn-logout,.hamburger,.rail-toggle{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar{transition:none!important}}\n"],
27784
28004
  dependencies: [
27785
28005
  {
27786
28006
  kind: "directive",
@@ -27817,6 +28037,11 @@ var AppShellComponent = class AppShellComponent {
27817
28037
  kind: "component",
27818
28038
  type: ConfirmOutletComponent,
27819
28039
  selector: "ui-confirm-outlet"
28040
+ },
28041
+ {
28042
+ kind: "component",
28043
+ type: ShellProjectedStylesComponent,
28044
+ selector: "ui-shell-projected-styles"
27820
28045
  }
27821
28046
  ],
27822
28047
  changeDetection: i0.ChangeDetectionStrategy.OnPush
@@ -27837,7 +28062,8 @@ i0.ɵɵngDeclareClassMetadata({
27837
28062
  imports: [
27838
28063
  RouterLink,
27839
28064
  RouterLinkActive,
27840
- ConfirmOutletComponent
28065
+ ConfirmOutletComponent,
28066
+ ShellProjectedStylesComponent
27841
28067
  ],
27842
28068
  template: `
27843
28069
  <div
@@ -27847,6 +28073,7 @@ i0.ɵɵngDeclareClassMetadata({
27847
28073
  [style.--shell-bg]="backgroundColor() || null"
27848
28074
  [style.--shell-text]="textColor() || null"
27849
28075
  >
28076
+ <ui-shell-projected-styles />
27850
28077
 
27851
28078
  <!-- Mobile backdrop -->
27852
28079
  <div
@@ -28031,7 +28258,7 @@ i0.ɵɵngDeclareClassMetadata({
28031
28258
  <!-- Global confirm overlay — position:fixed so it overlays without affecting layout -->
28032
28259
  <ui-confirm-outlet />
28033
28260
  `,
28034
- styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-icon ::ng-deep svg{width:17px;height:17px;stroke:color-mix(in srgb,var(--shell-text, #fff) 90%,transparent);transition:stroke .15s;flex-shrink:0}.sidebar-nav a:hover .nav-icon ::ng-deep svg{stroke:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.sidebar-nav a.active .nav-icon ::ng-deep svg{stroke:#93c5fd}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-full ::ng-deep img,.shell.collapsed .brand-full ::ng-deep svg{width:44px;height:44px;max-width:none;object-fit:cover;object-position:50% 42%}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-icon ::ng-deep svg{width:20px;height:20px}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:24px;background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{padding:16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{padding:12px}}@media(pointer:coarse),(max-width:480px){.sidebar-nav a,.nav-group-label{min-height:44px}.btn-logout,.hamburger,.rail-toggle{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar,.nav-icon ::ng-deep svg{transition:none!important}}\n"]
28261
+ styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:24px;background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{padding:16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{padding:12px}}@media(pointer:coarse),(max-width:480px){.sidebar-nav a,.nav-group-label{min-height:44px}.btn-logout,.hamburger,.rail-toggle{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar{transition:none!important}}\n"]
28035
28262
  }]
28036
28263
  }],
28037
28264
  propDecorators: {
@@ -29550,7 +29777,7 @@ var KpiCardComponent = class KpiCardComponent {
29550
29777
  },
29551
29778
  ngImport: i0,
29552
29779
  template: `
29553
- <div class="kpi-card" [class.highlight]="highlight()" [class.clickable]="clickable()" [style.background]="background() || null">
29780
+ <div class="kpi-card" [class.highlight]="highlight()" [class.clickable]="clickable()" [class.ring-corner]="hasProgress() && !!iconSvg()" [style.background]="background() || null">
29554
29781
  @if (iconSvg()) {
29555
29782
  <div [class]="'kpi-icon ' + color() + '-icon'" aria-hidden="true" [innerHTML]="iconSvg()"></div>
29556
29783
  }
@@ -29577,7 +29804,7 @@ var KpiCardComponent = class KpiCardComponent {
29577
29804
  </div>
29578
29805
  `,
29579
29806
  isInline: true,
29580
- styles: [":host{display:block;height:100%}.kpi-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;height:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}:host(:focus){outline:none}:host(:focus-visible) .kpi-card{outline:2px solid #3b82f6;outline-offset:2px}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f614}.kpi-card.clickable:hover .kpi-arrow{color:#3b82f6;transform:translate(2px)}.kpi-arrow{position:absolute;bottom:14px;right:14px;color:#94a3b8;transition:color .15s ease,transform .15s ease}.kpi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.green-icon{background:#dcfce7;color:#16a34a}.blue-icon{background:#dbeafe;color:#2563eb}.amber-icon{background:#fef3c7;color:#d97706}.orange-icon{background:#ffedd5;color:#c2410c}.red-icon{background:#fee2e2;color:#dc2626}.slate-icon{background:#f1f5f9;color:#475569}.kpi-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:4px}.kpi-ring{flex-shrink:0}.kpi-value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1.1}.kpi-value.green-value{color:#16a34a}.kpi-value.blue-value{color:#3b82f6}.kpi-value.red-value{color:#dc2626}.kpi-subtitle{font-size:.75rem;color:#64748b;margin-top:2px}\n"],
29807
+ styles: [":host{display:block;height:100%}.kpi-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;height:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}:host(:focus){outline:none}:host(:focus-visible) .kpi-card{outline:2px solid #3b82f6;outline-offset:2px}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f614}.kpi-card.clickable:hover .kpi-arrow{color:#3b82f6;transform:translate(2px)}.kpi-arrow{position:absolute;bottom:14px;right:14px;color:#94a3b8;transition:color .15s ease,transform .15s ease}.kpi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.green-icon{background:#dcfce7;color:#16a34a}.blue-icon{background:#dbeafe;color:#2563eb}.amber-icon{background:#fef3c7;color:#d97706}.orange-icon{background:#ffedd5;color:#c2410c}.red-icon{background:#fee2e2;color:#dc2626}.slate-icon{background:#f1f5f9;color:#475569}.kpi-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:4px}.kpi-ring{flex-shrink:0}.kpi-card.ring-corner .kpi-top{display:contents}.kpi-card.ring-corner .kpi-ring{position:absolute;top:12px;right:12px}.kpi-value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1.1}.kpi-value.green-value{color:#16a34a}.kpi-value.blue-value{color:#3b82f6}.kpi-value.red-value{color:#dc2626}.kpi-subtitle{font-size:.75rem;color:#64748b;margin-top:2px}\n"],
29581
29808
  dependencies: [{
29582
29809
  kind: "component",
29583
29810
  type: ProgressRingComponent,
@@ -29618,7 +29845,7 @@ i0.ɵɵngDeclareClassMetadata({
29618
29845
  "(keydown.space)": "onActivateKey($event)"
29619
29846
  },
29620
29847
  template: `
29621
- <div class="kpi-card" [class.highlight]="highlight()" [class.clickable]="clickable()" [style.background]="background() || null">
29848
+ <div class="kpi-card" [class.highlight]="highlight()" [class.clickable]="clickable()" [class.ring-corner]="hasProgress() && !!iconSvg()" [style.background]="background() || null">
29622
29849
  @if (iconSvg()) {
29623
29850
  <div [class]="'kpi-icon ' + color() + '-icon'" aria-hidden="true" [innerHTML]="iconSvg()"></div>
29624
29851
  }
@@ -29644,7 +29871,7 @@ i0.ɵɵngDeclareClassMetadata({
29644
29871
  }
29645
29872
  </div>
29646
29873
  `,
29647
- styles: [":host{display:block;height:100%}.kpi-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;height:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}:host(:focus){outline:none}:host(:focus-visible) .kpi-card{outline:2px solid #3b82f6;outline-offset:2px}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f614}.kpi-card.clickable:hover .kpi-arrow{color:#3b82f6;transform:translate(2px)}.kpi-arrow{position:absolute;bottom:14px;right:14px;color:#94a3b8;transition:color .15s ease,transform .15s ease}.kpi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.green-icon{background:#dcfce7;color:#16a34a}.blue-icon{background:#dbeafe;color:#2563eb}.amber-icon{background:#fef3c7;color:#d97706}.orange-icon{background:#ffedd5;color:#c2410c}.red-icon{background:#fee2e2;color:#dc2626}.slate-icon{background:#f1f5f9;color:#475569}.kpi-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:4px}.kpi-ring{flex-shrink:0}.kpi-value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1.1}.kpi-value.green-value{color:#16a34a}.kpi-value.blue-value{color:#3b82f6}.kpi-value.red-value{color:#dc2626}.kpi-subtitle{font-size:.75rem;color:#64748b;margin-top:2px}\n"]
29874
+ styles: [":host{display:block;height:100%}.kpi-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;height:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}:host(:focus){outline:none}:host(:focus-visible) .kpi-card{outline:2px solid #3b82f6;outline-offset:2px}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f614}.kpi-card.clickable:hover .kpi-arrow{color:#3b82f6;transform:translate(2px)}.kpi-arrow{position:absolute;bottom:14px;right:14px;color:#94a3b8;transition:color .15s ease,transform .15s ease}.kpi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.green-icon{background:#dcfce7;color:#16a34a}.blue-icon{background:#dbeafe;color:#2563eb}.amber-icon{background:#fef3c7;color:#d97706}.orange-icon{background:#ffedd5;color:#c2410c}.red-icon{background:#fee2e2;color:#dc2626}.slate-icon{background:#f1f5f9;color:#475569}.kpi-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:4px}.kpi-ring{flex-shrink:0}.kpi-card.ring-corner .kpi-top{display:contents}.kpi-card.ring-corner .kpi-ring{position:absolute;top:12px;right:12px}.kpi-value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1.1}.kpi-value.green-value{color:#16a34a}.kpi-value.blue-value{color:#3b82f6}.kpi-value.red-value{color:#dc2626}.kpi-subtitle{font-size:.75rem;color:#64748b;margin-top:2px}\n"]
29648
29875
  }]
29649
29876
  }],
29650
29877
  propDecorators: {
@@ -33306,7 +33533,7 @@ var DetailCardComponent = class DetailCardComponent {
33306
33533
  <ng-content select="[card-header]" />
33307
33534
  </div>
33308
33535
  @if (showEdit()) {
33309
- <ui-button class="dc-edit" variant="secondary" size="xs" [ariaLabel]="editAriaLabel() || undefined" [attr.data-testid]="editTestId() || null" (click)="$event.stopPropagation(); editClick.emit()">
33536
+ <span class="dc-edit"><button type="button" class="dc-edit-action" [attr.aria-label]="editAriaLabel() || null" [attr.data-testid]="editTestId() || null" (click)="$event.stopPropagation(); editClick.emit()">
33310
33537
  @if (editIcon()) {
33311
33538
  <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
33312
33539
  <path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/>
@@ -33314,7 +33541,7 @@ var DetailCardComponent = class DetailCardComponent {
33314
33541
  </svg>
33315
33542
  }
33316
33543
  {{ editLabel() }}
33317
- </ui-button>
33544
+ </button></span>
33318
33545
  }
33319
33546
  <ng-content select="[card-header-action]" />
33320
33547
  </div>
@@ -33327,7 +33554,7 @@ var DetailCardComponent = class DetailCardComponent {
33327
33554
  </div>
33328
33555
  `,
33329
33556
  isInline: true,
33330
- styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}:host(.dc-fill-host){height:100%;margin-bottom:0}.dc.dc-fill{height:100%;box-sizing:border-box;display:flex;flex-direction:column}.dc.dc-fill .dc-body-wrap{flex:1 1 auto;min-height:0}.dc-selectable{cursor:pointer}.dc-selected{outline:2px solid #3b82f6;outline-offset:-1px}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #64748b)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.75rem;color:var(--dc-text, #475569)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit ::ng-deep button{font-size:.8rem;font-weight:500;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;gap:5px}.dc-edit ::ng-deep button:hover{background:#f1f5f9;color:#1e293b}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}@media(max-width:480px){.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"],
33557
+ styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}:host(.dc-fill-host){height:100%;margin-bottom:0}.dc.dc-fill{height:100%;box-sizing:border-box;display:flex;flex-direction:column}.dc.dc-fill .dc-body-wrap{flex:1 1 auto;min-height:0}.dc.dc-fill .dc-body{display:flex;flex-direction:column}.dc-selectable{cursor:pointer}.dc-selected{outline:2px solid #3b82f6;outline-offset:-1px}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #64748b)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.75rem;color:var(--dc-text, #475569)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.4;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.dc-edit-action:hover{background:#f1f5f9;color:#1e293b}.dc-edit-action:focus-visible{outline:2px solid var(--ui-focus, #3b82f6);outline-offset:2px}@media(pointer:coarse),(max-width:480px){.dc-edit-action{min-height:44px}}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}@media(max-width:480px){.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"],
33331
33558
  dependencies: [{
33332
33559
  kind: "component",
33333
33560
  type: ButtonComponent,
@@ -33406,7 +33633,7 @@ i0.ɵɵngDeclareClassMetadata({
33406
33633
  <ng-content select="[card-header]" />
33407
33634
  </div>
33408
33635
  @if (showEdit()) {
33409
- <ui-button class="dc-edit" variant="secondary" size="xs" [ariaLabel]="editAriaLabel() || undefined" [attr.data-testid]="editTestId() || null" (click)="$event.stopPropagation(); editClick.emit()">
33636
+ <span class="dc-edit"><button type="button" class="dc-edit-action" [attr.aria-label]="editAriaLabel() || null" [attr.data-testid]="editTestId() || null" (click)="$event.stopPropagation(); editClick.emit()">
33410
33637
  @if (editIcon()) {
33411
33638
  <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
33412
33639
  <path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/>
@@ -33414,7 +33641,7 @@ i0.ɵɵngDeclareClassMetadata({
33414
33641
  </svg>
33415
33642
  }
33416
33643
  {{ editLabel() }}
33417
- </ui-button>
33644
+ </button></span>
33418
33645
  }
33419
33646
  <ng-content select="[card-header-action]" />
33420
33647
  </div>
@@ -33426,7 +33653,7 @@ i0.ɵɵngDeclareClassMetadata({
33426
33653
  </div>
33427
33654
  </div>
33428
33655
  `,
33429
- styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}:host(.dc-fill-host){height:100%;margin-bottom:0}.dc.dc-fill{height:100%;box-sizing:border-box;display:flex;flex-direction:column}.dc.dc-fill .dc-body-wrap{flex:1 1 auto;min-height:0}.dc-selectable{cursor:pointer}.dc-selected{outline:2px solid #3b82f6;outline-offset:-1px}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #64748b)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.75rem;color:var(--dc-text, #475569)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit ::ng-deep button{font-size:.8rem;font-weight:500;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;gap:5px}.dc-edit ::ng-deep button:hover{background:#f1f5f9;color:#1e293b}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}@media(max-width:480px){.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"]
33656
+ styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}:host(.dc-fill-host){height:100%;margin-bottom:0}.dc.dc-fill{height:100%;box-sizing:border-box;display:flex;flex-direction:column}.dc.dc-fill .dc-body-wrap{flex:1 1 auto;min-height:0}.dc.dc-fill .dc-body{display:flex;flex-direction:column}.dc-selectable{cursor:pointer}.dc-selected{outline:2px solid #3b82f6;outline-offset:-1px}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #64748b)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.75rem;color:var(--dc-text, #475569)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.4;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.dc-edit-action:hover{background:#f1f5f9;color:#1e293b}.dc-edit-action:focus-visible{outline:2px solid var(--ui-focus, #3b82f6);outline-offset:2px}@media(pointer:coarse),(max-width:480px){.dc-edit-action{min-height:44px}}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}@media(max-width:480px){.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"]
33430
33657
  }]
33431
33658
  }],
33432
33659
  propDecorators: {
@@ -34362,6 +34589,9 @@ var SectionHeaderComponent = class SectionHeaderComponent {
34362
34589
  this.iconBackground = input("", ...ngDevMode ? [{ debugName: "iconBackground" }] : /* istanbul ignore next */ []);
34363
34590
  this.bordered = input(false, ...ngDevMode ? [{ debugName: "bordered" }] : /* istanbul ignore next */ []);
34364
34591
  this.size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
34592
+ this.noPaddingTop = input(false, ...ngDevMode ? [{ debugName: "noPaddingTop" }] : /* istanbul ignore next */ []);
34593
+ this.noPaddingLeft = input(false, ...ngDevMode ? [{ debugName: "noPaddingLeft" }] : /* istanbul ignore next */ []);
34594
+ this.noPaddingBottom = input(false, ...ngDevMode ? [{ debugName: "noPaddingBottom" }] : /* istanbul ignore next */ []);
34365
34595
  this.titleId = `ui-sh-title-${++nextSectionHeaderId}`;
34366
34596
  this.descriptionId = `ui-sh-desc-${nextSectionHeaderId}`;
34367
34597
  this.headingLevel = computed(() => {
@@ -34457,12 +34687,34 @@ var SectionHeaderComponent = class SectionHeaderComponent {
34457
34687
  isSignal: true,
34458
34688
  isRequired: false,
34459
34689
  transformFunction: null
34690
+ },
34691
+ noPaddingTop: {
34692
+ classPropertyName: "noPaddingTop",
34693
+ publicName: "noPaddingTop",
34694
+ isSignal: true,
34695
+ isRequired: false,
34696
+ transformFunction: null
34697
+ },
34698
+ noPaddingLeft: {
34699
+ classPropertyName: "noPaddingLeft",
34700
+ publicName: "noPaddingLeft",
34701
+ isSignal: true,
34702
+ isRequired: false,
34703
+ transformFunction: null
34704
+ },
34705
+ noPaddingBottom: {
34706
+ classPropertyName: "noPaddingBottom",
34707
+ publicName: "noPaddingBottom",
34708
+ isSignal: true,
34709
+ isRequired: false,
34710
+ transformFunction: null
34460
34711
  }
34461
34712
  },
34462
34713
  host: { properties: { "attr.title": "null" } },
34463
34714
  ngImport: i0,
34464
34715
  template: `
34465
34716
  <div class="sh" [class.sh-sm]="size() === 'sm'" [class.sh-lg]="size() === 'lg'" [class.sh-xl]="size() === 'xl'" [class.sh-has-bg]="!!background()" [class.sh-has-text-color]="!!textColor()" [class.sh-bordered]="bordered()"
34717
+ [class.sh-no-pt]="noPaddingTop()" [class.sh-no-pl]="noPaddingLeft()" [class.sh-no-pb]="noPaddingBottom()"
34466
34718
  [style.--sh-bg]="background() || null" [style.--sh-text]="textColor() || null" [style.--sh-icon]="iconColor() || null" [style.--sh-icon-bg]="iconBackground() || null">
34467
34719
  <span class="sh-icon" aria-hidden="true"><ng-content select="[section-header-icon]" />@if (path(); as d) {<svg class="sh-glyph" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" focusable="false"><path [attr.d]="d" /></svg>}</span>
34468
34720
  <div class="sh-text">
@@ -34473,8 +34725,9 @@ var SectionHeaderComponent = class SectionHeaderComponent {
34473
34725
  </div>
34474
34726
  `,
34475
34727
  isInline: true,
34476
- styles: [":host{display:block}.sh{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;box-sizing:border-box;padding:14px 18px;background:var(--sh-bg, transparent)}.sh-has-bg{border-radius:10px}.sh-bordered{border:1px solid #e2e8f0;border-radius:10px}.sh-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--sh-icon-bg, #f1f5f9);color:var(--sh-icon, #2563eb)}.sh-has-bg .sh-icon{background:var(--sh-icon-bg, #fff)}.sh-icon:empty{display:none}.sh-glyph,.sh-icon ::ng-deep svg{display:block;width:16px;height:16px}.sh-icon ::ng-deep [section-header-icon]~.sh-glyph{display:none}.sh-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.sh-title{margin:0;font-size:1rem;font-weight:700;line-height:1.3;color:var(--sh-text, #0f172a)}.sh-description{margin:0;font-size:.8125rem;line-height:1.45;color:#64748b}.sh-has-bg .sh-description{color:#475569}.sh-has-text-color .sh-description{color:var(--sh-text);opacity:.8}.sh-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-shrink:0;margin-left:auto}.sh-actions:empty{display:none}.sh-sm{gap:6px 10px}.sh-sm .sh-icon{width:24px;height:24px;border-radius:6px}.sh-sm .sh-glyph,.sh-sm .sh-icon ::ng-deep svg{width:14px;height:14px}.sh-sm .sh-title{font-size:.875rem}.sh-sm .sh-description{font-size:.75rem}.sh-lg{gap:8px 14px;padding:18px 22px}.sh-lg .sh-icon{width:36px;height:36px;border-radius:10px}.sh-lg .sh-glyph,.sh-lg .sh-icon ::ng-deep svg{width:20px;height:20px}.sh-lg .sh-title{font-size:1.25rem}.sh-lg .sh-description{font-size:.9375rem}.sh-xl{gap:10px 16px;padding:22px 26px}.sh-xl .sh-icon{width:44px;height:44px;border-radius:12px}.sh-xl .sh-glyph,.sh-xl .sh-icon ::ng-deep svg{width:24px;height:24px}.sh-xl .sh-title{font-size:1.5rem}.sh-xl .sh-description{font-size:1rem}@media(max-width:480px){.sh{padding:12px 14px}.sh-lg{padding:14px 16px}.sh-xl{padding:16px 18px}.sh-xl .sh-title{font-size:1.375rem}.sh-actions{flex:1 1 100%;margin-left:0;flex-shrink:1}}\n"],
34477
- changeDetection: i0.ChangeDetectionStrategy.OnPush
34728
+ styles: ["ui-section-header{display:block}ui-section-header .sh{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;box-sizing:border-box;padding:14px 18px;background:var(--sh-bg, transparent)}ui-section-header .sh-has-bg{border-radius:10px}ui-section-header .sh-bordered{border:1px solid #e2e8f0;border-radius:10px}ui-section-header .sh-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--sh-icon-bg, #f1f5f9);color:var(--sh-icon, #2563eb)}ui-section-header .sh-has-bg .sh-icon{background:var(--sh-icon-bg, #fff)}ui-section-header .sh-icon:empty{display:none}ui-section-header .sh-glyph,ui-section-header .sh-icon svg{display:block;width:16px;height:16px}ui-section-header .sh-icon [section-header-icon]~.sh-glyph{display:none}ui-section-header .sh-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}ui-section-header .sh-title{margin:0;font-size:1rem;font-weight:700;line-height:1.3;color:var(--sh-text, #0f172a)}ui-section-header .sh-description{margin:0;font-size:.8125rem;line-height:1.45;color:#64748b}ui-section-header .sh-has-bg .sh-description{color:#475569}ui-section-header .sh-has-text-color .sh-description{color:var(--sh-text);opacity:.8}ui-section-header .sh-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-shrink:0;margin-left:auto}ui-section-header .sh-actions:empty{display:none}ui-section-header .sh-sm{gap:6px 10px}ui-section-header .sh-sm .sh-icon{width:24px;height:24px;border-radius:6px}ui-section-header .sh-sm .sh-glyph,ui-section-header .sh-sm .sh-icon svg{width:14px;height:14px}ui-section-header .sh-sm .sh-title{font-size:.875rem}ui-section-header .sh-sm .sh-description{font-size:.75rem}ui-section-header .sh-lg{gap:8px 14px;padding:18px 22px}ui-section-header .sh-lg .sh-icon{width:36px;height:36px;border-radius:10px}ui-section-header .sh-lg .sh-glyph,ui-section-header .sh-lg .sh-icon svg{width:20px;height:20px}ui-section-header .sh-lg .sh-title{font-size:1.25rem}ui-section-header .sh-lg .sh-description{font-size:.9375rem}ui-section-header .sh-xl{gap:10px 16px;padding:22px 26px}ui-section-header .sh-xl .sh-icon{width:44px;height:44px;border-radius:12px}ui-section-header .sh-xl .sh-glyph,ui-section-header .sh-xl .sh-icon svg{width:24px;height:24px}ui-section-header .sh-xl .sh-title{font-size:1.5rem}ui-section-header .sh-xl .sh-description{font-size:1rem}ui-section-header .sh.sh-no-pt{padding-top:0}ui-section-header .sh.sh-no-pl{padding-left:0}ui-section-header .sh.sh-no-pb{padding-bottom:0}@media(max-width:480px){ui-section-header .sh{padding:12px 14px}ui-section-header .sh-lg{padding:14px 16px}ui-section-header .sh-xl{padding:16px 18px}ui-section-header .sh-xl .sh-title{font-size:1.375rem}ui-section-header .sh-actions{flex:1 1 100%;margin-left:0;flex-shrink:1}}\n"],
34729
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
34730
+ encapsulation: i0.ViewEncapsulation.None
34478
34731
  });
34479
34732
  }
34480
34733
  };
@@ -34489,9 +34742,11 @@ i0.ɵɵngDeclareClassMetadata({
34489
34742
  selector: "ui-section-header",
34490
34743
  standalone: true,
34491
34744
  changeDetection: ChangeDetectionStrategy.OnPush,
34745
+ encapsulation: ViewEncapsulation.None,
34492
34746
  host: { "[attr.title]": "null" },
34493
34747
  template: `
34494
34748
  <div class="sh" [class.sh-sm]="size() === 'sm'" [class.sh-lg]="size() === 'lg'" [class.sh-xl]="size() === 'xl'" [class.sh-has-bg]="!!background()" [class.sh-has-text-color]="!!textColor()" [class.sh-bordered]="bordered()"
34749
+ [class.sh-no-pt]="noPaddingTop()" [class.sh-no-pl]="noPaddingLeft()" [class.sh-no-pb]="noPaddingBottom()"
34495
34750
  [style.--sh-bg]="background() || null" [style.--sh-text]="textColor() || null" [style.--sh-icon]="iconColor() || null" [style.--sh-icon-bg]="iconBackground() || null">
34496
34751
  <span class="sh-icon" aria-hidden="true"><ng-content select="[section-header-icon]" />@if (path(); as d) {<svg class="sh-glyph" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" focusable="false"><path [attr.d]="d" /></svg>}</span>
34497
34752
  <div class="sh-text">
@@ -34501,7 +34756,7 @@ i0.ɵɵngDeclareClassMetadata({
34501
34756
  <div class="sh-actions"><ng-content select="[section-header-actions]" /></div>
34502
34757
  </div>
34503
34758
  `,
34504
- styles: [":host{display:block}.sh{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;box-sizing:border-box;padding:14px 18px;background:var(--sh-bg, transparent)}.sh-has-bg{border-radius:10px}.sh-bordered{border:1px solid #e2e8f0;border-radius:10px}.sh-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--sh-icon-bg, #f1f5f9);color:var(--sh-icon, #2563eb)}.sh-has-bg .sh-icon{background:var(--sh-icon-bg, #fff)}.sh-icon:empty{display:none}.sh-glyph,.sh-icon ::ng-deep svg{display:block;width:16px;height:16px}.sh-icon ::ng-deep [section-header-icon]~.sh-glyph{display:none}.sh-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.sh-title{margin:0;font-size:1rem;font-weight:700;line-height:1.3;color:var(--sh-text, #0f172a)}.sh-description{margin:0;font-size:.8125rem;line-height:1.45;color:#64748b}.sh-has-bg .sh-description{color:#475569}.sh-has-text-color .sh-description{color:var(--sh-text);opacity:.8}.sh-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-shrink:0;margin-left:auto}.sh-actions:empty{display:none}.sh-sm{gap:6px 10px}.sh-sm .sh-icon{width:24px;height:24px;border-radius:6px}.sh-sm .sh-glyph,.sh-sm .sh-icon ::ng-deep svg{width:14px;height:14px}.sh-sm .sh-title{font-size:.875rem}.sh-sm .sh-description{font-size:.75rem}.sh-lg{gap:8px 14px;padding:18px 22px}.sh-lg .sh-icon{width:36px;height:36px;border-radius:10px}.sh-lg .sh-glyph,.sh-lg .sh-icon ::ng-deep svg{width:20px;height:20px}.sh-lg .sh-title{font-size:1.25rem}.sh-lg .sh-description{font-size:.9375rem}.sh-xl{gap:10px 16px;padding:22px 26px}.sh-xl .sh-icon{width:44px;height:44px;border-radius:12px}.sh-xl .sh-glyph,.sh-xl .sh-icon ::ng-deep svg{width:24px;height:24px}.sh-xl .sh-title{font-size:1.5rem}.sh-xl .sh-description{font-size:1rem}@media(max-width:480px){.sh{padding:12px 14px}.sh-lg{padding:14px 16px}.sh-xl{padding:16px 18px}.sh-xl .sh-title{font-size:1.375rem}.sh-actions{flex:1 1 100%;margin-left:0;flex-shrink:1}}\n"]
34759
+ styles: ["ui-section-header{display:block}ui-section-header .sh{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;box-sizing:border-box;padding:14px 18px;background:var(--sh-bg, transparent)}ui-section-header .sh-has-bg{border-radius:10px}ui-section-header .sh-bordered{border:1px solid #e2e8f0;border-radius:10px}ui-section-header .sh-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--sh-icon-bg, #f1f5f9);color:var(--sh-icon, #2563eb)}ui-section-header .sh-has-bg .sh-icon{background:var(--sh-icon-bg, #fff)}ui-section-header .sh-icon:empty{display:none}ui-section-header .sh-glyph,ui-section-header .sh-icon svg{display:block;width:16px;height:16px}ui-section-header .sh-icon [section-header-icon]~.sh-glyph{display:none}ui-section-header .sh-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}ui-section-header .sh-title{margin:0;font-size:1rem;font-weight:700;line-height:1.3;color:var(--sh-text, #0f172a)}ui-section-header .sh-description{margin:0;font-size:.8125rem;line-height:1.45;color:#64748b}ui-section-header .sh-has-bg .sh-description{color:#475569}ui-section-header .sh-has-text-color .sh-description{color:var(--sh-text);opacity:.8}ui-section-header .sh-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-shrink:0;margin-left:auto}ui-section-header .sh-actions:empty{display:none}ui-section-header .sh-sm{gap:6px 10px}ui-section-header .sh-sm .sh-icon{width:24px;height:24px;border-radius:6px}ui-section-header .sh-sm .sh-glyph,ui-section-header .sh-sm .sh-icon svg{width:14px;height:14px}ui-section-header .sh-sm .sh-title{font-size:.875rem}ui-section-header .sh-sm .sh-description{font-size:.75rem}ui-section-header .sh-lg{gap:8px 14px;padding:18px 22px}ui-section-header .sh-lg .sh-icon{width:36px;height:36px;border-radius:10px}ui-section-header .sh-lg .sh-glyph,ui-section-header .sh-lg .sh-icon svg{width:20px;height:20px}ui-section-header .sh-lg .sh-title{font-size:1.25rem}ui-section-header .sh-lg .sh-description{font-size:.9375rem}ui-section-header .sh-xl{gap:10px 16px;padding:22px 26px}ui-section-header .sh-xl .sh-icon{width:44px;height:44px;border-radius:12px}ui-section-header .sh-xl .sh-glyph,ui-section-header .sh-xl .sh-icon svg{width:24px;height:24px}ui-section-header .sh-xl .sh-title{font-size:1.5rem}ui-section-header .sh-xl .sh-description{font-size:1rem}ui-section-header .sh.sh-no-pt{padding-top:0}ui-section-header .sh.sh-no-pl{padding-left:0}ui-section-header .sh.sh-no-pb{padding-bottom:0}@media(max-width:480px){ui-section-header .sh{padding:12px 14px}ui-section-header .sh-lg{padding:14px 16px}ui-section-header .sh-xl{padding:16px 18px}ui-section-header .sh-xl .sh-title{font-size:1.375rem}ui-section-header .sh-actions{flex:1 1 100%;margin-left:0;flex-shrink:1}}\n"]
34505
34760
  }]
34506
34761
  }],
34507
34762
  propDecorators: {
@@ -34584,6 +34839,30 @@ i0.ɵɵngDeclareClassMetadata({
34584
34839
  alias: "size",
34585
34840
  required: false
34586
34841
  }]
34842
+ }],
34843
+ noPaddingTop: [{
34844
+ type: i0.Input,
34845
+ args: [{
34846
+ isSignal: true,
34847
+ alias: "noPaddingTop",
34848
+ required: false
34849
+ }]
34850
+ }],
34851
+ noPaddingLeft: [{
34852
+ type: i0.Input,
34853
+ args: [{
34854
+ isSignal: true,
34855
+ alias: "noPaddingLeft",
34856
+ required: false
34857
+ }]
34858
+ }],
34859
+ noPaddingBottom: [{
34860
+ type: i0.Input,
34861
+ args: [{
34862
+ isSignal: true,
34863
+ alias: "noPaddingBottom",
34864
+ required: false
34865
+ }]
34587
34866
  }]
34588
34867
  }
34589
34868
  });
@@ -34958,8 +35237,9 @@ var StackComponent = class StackComponent {
34958
35237
  template: `<div class="st" [class.st-h]="direction() === 'horizontal'" [style.flex-direction]="direction() === 'horizontal' ? 'row' : 'column'"
34959
35238
  [style.gap]="gapCss()" [style.align-items]="alignCss()" [style.justify-content]="justifyCss()" [style.flex-wrap]="wrap() ? 'wrap' : 'nowrap'" [style.min-height]="minHeight() || null" [style.width]="width() || null" [style.max-width]="maxWidth() || null" [style.padding]="padding() || null" [style.box-sizing]="padding() ? 'border-box' : null" [style.margin-inline]="centered() ? 'auto' : null"><ng-content /></div>`,
34960
35239
  isInline: true,
34961
- styles: [":host{display:block}.st{display:flex}.st>::ng-deep *{margin:0!important}.st.st-h>::ng-deep *{min-width:0}\n"],
34962
- changeDetection: i0.ChangeDetectionStrategy.OnPush
35240
+ styles: ["ui-stack{display:block}ui-stack .st{display:flex}ui-stack .st>*{margin:0!important}ui-stack .st.st-h>*{min-width:0}\n"],
35241
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
35242
+ encapsulation: i0.ViewEncapsulation.None
34963
35243
  });
34964
35244
  }
34965
35245
  };
@@ -34974,9 +35254,10 @@ i0.ɵɵngDeclareClassMetadata({
34974
35254
  selector: "ui-stack",
34975
35255
  standalone: true,
34976
35256
  changeDetection: ChangeDetectionStrategy.OnPush,
35257
+ encapsulation: ViewEncapsulation.None,
34977
35258
  template: `<div class="st" [class.st-h]="direction() === 'horizontal'" [style.flex-direction]="direction() === 'horizontal' ? 'row' : 'column'"
34978
35259
  [style.gap]="gapCss()" [style.align-items]="alignCss()" [style.justify-content]="justifyCss()" [style.flex-wrap]="wrap() ? 'wrap' : 'nowrap'" [style.min-height]="minHeight() || null" [style.width]="width() || null" [style.max-width]="maxWidth() || null" [style.padding]="padding() || null" [style.box-sizing]="padding() ? 'border-box' : null" [style.margin-inline]="centered() ? 'auto' : null"><ng-content /></div>`,
34979
- styles: [":host{display:block}.st{display:flex}.st>::ng-deep *{margin:0!important}.st.st-h>::ng-deep *{min-width:0}\n"]
35260
+ styles: ["ui-stack{display:block}ui-stack .st{display:flex}ui-stack .st>*{margin:0!important}ui-stack .st.st-h>*{min-width:0}\n"]
34980
35261
  }]
34981
35262
  }],
34982
35263
  propDecorators: {