@ship-ui/core 0.18.13 → 0.19.2

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,9 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, computed, ElementRef, Renderer2, input, ChangeDetectionStrategy, Component, viewChild, effect, HostListener, NgModule, signal, Injectable, DOCUMENT, model, output, ApplicationRef, OutputEmitterRef, TemplateRef, createComponent, isSignal, DestroyRef, PLATFORM_ID, ViewChild, Directive, untracked, contentChild, contentChildren, afterNextRender, Injector, HostBinding, runInInjectionContext, ChangeDetectorRef, viewChildren, ViewContainerRef, EnvironmentInjector } from '@angular/core';
2
+ import { InjectionToken, inject, computed, ElementRef, Renderer2, input, ChangeDetectionStrategy, Component, viewChild, effect, HostListener, NgModule, signal, Injectable, DOCUMENT, model, output, ApplicationRef, OutputEmitterRef, TemplateRef, createComponent, isSignal, DestroyRef, PLATFORM_ID, ViewChild, booleanAttribute, Directive, untracked, contentChild, contentChildren, afterNextRender, Injector, HostBinding, runInInjectionContext, ChangeDetectorRef, viewChildren, ViewContainerRef, EnvironmentInjector } from '@angular/core';
3
3
  import { isPlatformBrowser, JsonPipe, DatePipe, isPlatformServer, NgTemplateOutlet } from '@angular/common';
4
- import { ShipButton as ShipButton$1 } from 'ship-ui';
5
4
  import { NgModel } from '@angular/forms';
6
- import { SIGNAL } from '@angular/core/primitives/signals';
5
+ import { isObservable, firstValueFrom } from 'rxjs';
7
6
 
8
7
  const defaultThemeColors = {
9
8
  primary: 'hsl(217, 91%, 60%)',
@@ -100,12 +99,12 @@ class ShipIcon {
100
99
  this.#renderer.addClass(this.#selfRef.nativeElement, potentialType);
101
100
  }
102
101
  }
103
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipIcon, isStandalone: true, selector: "sh-icon", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipIcon, isStandalone: true, selector: "sh-icon", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
105
104
  <ng-content />
106
105
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
106
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipIcon, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipIcon, decorators: [{
109
108
  type: Component,
110
109
  args: [{
111
110
  selector: 'sh-icon',
@@ -138,8 +137,8 @@ class ShipAlert {
138
137
  this.alertService()?.removeAlert(this.id());
139
138
  }
140
139
  }
141
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
142
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipAlert, isStandalone: true, selector: "sh-alert", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, alertService: { classPropertyName: "alertService", publicName: "alertService", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "sh-sheet" }, ngImport: i0, template: `
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipAlert, isStandalone: true, selector: "sh-alert", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, alertService: { classPropertyName: "alertService", publicName: "alertService", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "sh-sheet" }, ngImport: i0, template: `
143
142
  <div class="alert">
144
143
  <div #ref class="icon" [style.display]="!ref.children.length ? 'none' : 'block'">
145
144
  <ng-content select="[icon]" />
@@ -185,7 +184,7 @@ class ShipAlert {
185
184
  </div>
186
185
  `, isInline: true, dependencies: [{ kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
187
186
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlert, decorators: [{
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlert, decorators: [{
189
188
  type: Component,
190
189
  args: [{
191
190
  selector: 'sh-alert',
@@ -265,7 +264,7 @@ class ShipAlertContainer {
265
264
  }
266
265
  #e;
267
266
  #scrollToBottom() {
268
- if (this.scroller() && this.scroller().nativeElement) {
267
+ if (this.scroller() && this.scroller().nativeElement && typeof this.scroller().nativeElement.scrollTo === 'function') {
269
268
  this.scroller().nativeElement.scrollTo(0, this.scroller().nativeElement.scrollHeight);
270
269
  }
271
270
  }
@@ -302,10 +301,10 @@ class ShipAlertContainer {
302
301
  ? this.alertService().alertHistory().length - 1 * 40 + 'ms'
303
302
  : (this.numberOfOpenAlerts() - i) * 40 + 'ms';
304
303
  }
305
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
306
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipAlertContainer, isStandalone: true, selector: "ship-alert-container", inputs: { inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, alertService: { classPropertyName: "alertService", publicName: "alertService", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "mouseover": "onMouseOver()", "mouseout": "onMouseOut()" } }, viewQueries: [{ propertyName: "alerts", first: true, predicate: ["alerts"], descendants: true, isSignal: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"scroller\" #scroller>\n <div class=\"container\">\n @for (alert of this.alertService().alertHistory(); track $index) {\n <sh-alert\n #alerts\n [class]=\"alert.type\"\n [id]=\"alert.id\"\n [alertService]=\"alertService()\"\n [style.transition-delay]=\"transitionDelay($index, true)\"\n [class.animate-in]=\"alert.animateIn\"\n [class.animate-out]=\"alert.animateOut\"\n [class.is-hidden]=\"this.alertService().alertHistoryIsHidden() && !alert.isOpen\">\n <div title>{{ alert.title }}</div>\n\n @if (alert.content) {\n <div content>\n {{ alert.content }}\n </div>\n }\n </sh-alert>\n }\n </div>\n</div>\n<div\n class=\"tray\"\n [class.tray-is-hidden]=\"!this.alertService().alertHistoryIsHidden()\"\n (mouseover)=\"this.onMouseOver()\"\n (mouseout)=\"this.onMouseOut()\">\n <sh-icon class=\"small\">info</sh-icon>\n</div>\n", dependencies: [{ kind: "component", type: ShipAlert, selector: "sh-alert", inputs: ["color", "variant", "alertService", "id"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
304
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
305
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipAlertContainer, isStandalone: true, selector: "ship-alert-container", inputs: { inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, alertService: { classPropertyName: "alertService", publicName: "alertService", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "mouseover": "onMouseOver()", "mouseout": "onMouseOut()" } }, viewQueries: [{ propertyName: "alerts", first: true, predicate: ["alerts"], descendants: true, isSignal: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"scroller\" #scroller>\n <div class=\"container\">\n @for (alert of this.alertService().alertHistory(); track $index) {\n <sh-alert\n #alerts\n [class]=\"alert.type\"\n [id]=\"alert.id\"\n [alertService]=\"alertService()\"\n [style.transition-delay]=\"transitionDelay($index, true)\"\n [class.animate-in]=\"alert.animateIn\"\n [class.animate-out]=\"alert.animateOut\"\n [class.is-hidden]=\"this.alertService().alertHistoryIsHidden() && !alert.isOpen\">\n <div title>{{ alert.title }}</div>\n\n @if (alert.content) {\n <div content>\n {{ alert.content }}\n </div>\n }\n </sh-alert>\n }\n </div>\n</div>\n<div\n class=\"tray\"\n [class.tray-is-hidden]=\"!this.alertService().alertHistoryIsHidden()\"\n (mouseover)=\"this.onMouseOver()\"\n (mouseout)=\"this.onMouseOut()\">\n <sh-icon class=\"small\">info</sh-icon>\n</div>\n", dependencies: [{ kind: "component", type: ShipAlert, selector: "sh-alert", inputs: ["color", "variant", "alertService", "id"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
307
306
  }
308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertContainer, decorators: [{
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertContainer, decorators: [{
309
308
  type: Component,
310
309
  args: [{ selector: 'ship-alert-container', imports: [ShipAlert, ShipIcon], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scroller\" #scroller>\n <div class=\"container\">\n @for (alert of this.alertService().alertHistory(); track $index) {\n <sh-alert\n #alerts\n [class]=\"alert.type\"\n [id]=\"alert.id\"\n [alertService]=\"alertService()\"\n [style.transition-delay]=\"transitionDelay($index, true)\"\n [class.animate-in]=\"alert.animateIn\"\n [class.animate-out]=\"alert.animateOut\"\n [class.is-hidden]=\"this.alertService().alertHistoryIsHidden() && !alert.isOpen\">\n <div title>{{ alert.title }}</div>\n\n @if (alert.content) {\n <div content>\n {{ alert.content }}\n </div>\n }\n </sh-alert>\n }\n </div>\n</div>\n<div\n class=\"tray\"\n [class.tray-is-hidden]=\"!this.alertService().alertHistoryIsHidden()\"\n (mouseover)=\"this.onMouseOver()\"\n (mouseout)=\"this.onMouseOut()\">\n <sh-icon class=\"small\">info</sh-icon>\n</div>\n" }]
311
310
  }], propDecorators: { inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], alerts: [{ type: i0.ViewChild, args: ['alerts', { isSignal: true }] }], scroller: [{ type: i0.ViewChild, args: ['scroller', { isSignal: true }] }], alertService: [{ type: i0.Input, args: [{ isSignal: true, alias: "alertService", required: true }] }], onMouseOver: [{
@@ -317,11 +316,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
317
316
  }] } });
318
317
 
319
318
  class ShipAlertModule {
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
321
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertModule, imports: [ShipAlert, ShipAlertContainer], exports: [ShipAlert, ShipAlertContainer] }); }
322
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertModule }); }
319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
320
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertModule, imports: [ShipAlert, ShipAlertContainer], exports: [ShipAlert, ShipAlertContainer] }); }
321
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertModule }); }
323
322
  }
324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertModule, decorators: [{
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertModule, decorators: [{
325
324
  type: NgModule,
326
325
  args: [{
327
326
  imports: [ShipAlert, ShipAlertContainer],
@@ -404,10 +403,10 @@ class ShipAlertService {
404
403
  setHidden(isHidden) {
405
404
  this.alertHistoryIsHidden.set(isHidden);
406
405
  }
407
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
408
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertService, providedIn: 'root' }); }
406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
407
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertService, providedIn: 'root' }); }
409
408
  }
410
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAlertService, decorators: [{
409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAlertService, decorators: [{
411
410
  type: Injectable,
412
411
  args: [{
413
412
  providedIn: 'root',
@@ -476,8 +475,8 @@ class ShipDialog {
476
475
  ngOnDestroy() {
477
476
  this.abortController?.abort();
478
477
  }
479
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDialog, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
480
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipDialog, isStandalone: true, selector: "sh-dialog", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", closed: "closed" }, viewQueries: [{ propertyName: "dialogRef", first: true, predicate: ["dialogRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDialog, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
479
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipDialog, isStandalone: true, selector: "sh-dialog", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", closed: "closed" }, viewQueries: [{ propertyName: "dialogRef", first: true, predicate: ["dialogRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
481
480
  @let options = this.defaultOptionMerge();
482
481
 
483
482
  @if (isOpen()) {
@@ -500,7 +499,7 @@ class ShipDialog {
500
499
  }
501
500
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
502
501
  }
503
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDialog, decorators: [{
502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDialog, decorators: [{
504
503
  type: Component,
505
504
  args: [{
506
505
  selector: 'sh-dialog',
@@ -657,10 +656,10 @@ class ShipDialogService {
657
656
  ngOnDestroy() {
658
657
  this.#cleanupRefs(true);
659
658
  }
660
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
661
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDialogService, providedIn: 'root' }); }
659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
660
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDialogService, providedIn: 'root' }); }
662
661
  }
663
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDialogService, decorators: [{
662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDialogService, decorators: [{
664
663
  type: Injectable,
665
664
  args: [{
666
665
  providedIn: 'root',
@@ -786,12 +785,12 @@ class ShipAccordion {
786
785
  }
787
786
  }
788
787
  }
789
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAccordion, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
790
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipAccordion, isStandalone: true, selector: "sh-accordion", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, allowMultiple: { classPropertyName: "allowMultiple", publicName: "allowMultiple", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.sh-accordion": "true", "class": "hostClasses()" } }, ngImport: i0, template: `
788
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAccordion, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
789
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipAccordion, isStandalone: true, selector: "sh-accordion", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, allowMultiple: { classPropertyName: "allowMultiple", publicName: "allowMultiple", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.sh-accordion": "true", "class": "hostClasses()" } }, ngImport: i0, template: `
791
790
  <ng-content></ng-content>
792
791
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
793
792
  }
794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipAccordion, decorators: [{
793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipAccordion, decorators: [{
795
794
  type: Component,
796
795
  args: [{
797
796
  selector: 'sh-accordion',
@@ -1133,8 +1132,10 @@ class ShipBlueprint {
1133
1132
  if (isPlatformBrowser(this.#platformId)) {
1134
1133
  const canvas = this.canvasRef.nativeElement;
1135
1134
  this.#ctx = canvas.getContext('2d');
1136
- this.#resizeObserver = new ResizeObserver(() => this.updateCanvasSize());
1137
- this.#resizeObserver.observe(this.#selfRef.nativeElement);
1135
+ if (typeof ResizeObserver !== 'undefined') {
1136
+ this.#resizeObserver = new ResizeObserver(() => this.updateCanvasSize());
1137
+ this.#resizeObserver.observe(this.#selfRef.nativeElement);
1138
+ }
1138
1139
  this.updateCanvasSize();
1139
1140
  if (this.autoLayout()) {
1140
1141
  this.applyAutolayout();
@@ -1734,8 +1735,8 @@ class ShipBlueprint {
1734
1735
  #clamp(value, min, max) {
1735
1736
  return Math.max(min, Math.min(max, value));
1736
1737
  }
1737
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipBlueprint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1738
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipBlueprint, isStandalone: true, selector: "sh-blueprint", inputs: { forceUnique: { classPropertyName: "forceUnique", publicName: "forceUnique", isSignal: true, isRequired: false, transformFunction: null }, autoLayout: { classPropertyName: "autoLayout", publicName: "autoLayout", isSignal: true, isRequired: false, transformFunction: null }, gridSize: { classPropertyName: "gridSize", publicName: "gridSize", isSignal: true, isRequired: false, transformFunction: null }, snapToGrid: { classPropertyName: "snapToGrid", publicName: "snapToGrid", isSignal: true, isRequired: false, transformFunction: null }, gridColor: { classPropertyName: "gridColor", publicName: "gridColor", isSignal: true, isRequired: false, transformFunction: null }, nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodes: "nodesChange" }, host: { listeners: { "document:mouseup": "onMouseUp($event)", "document:click": "onClick($event)", "document:keydown.escape": "onEscape()", "document:mousemove": "onMouseMove($event)", "document:touchmove": "onTouchMove($event)", "document:touchend": "onDocumentTouchEnd($event)" } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["blueprintCanvas"], descendants: true, static: true }], ngImport: i0, template: `
1738
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipBlueprint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1739
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipBlueprint, isStandalone: true, selector: "sh-blueprint", inputs: { forceUnique: { classPropertyName: "forceUnique", publicName: "forceUnique", isSignal: true, isRequired: false, transformFunction: null }, autoLayout: { classPropertyName: "autoLayout", publicName: "autoLayout", isSignal: true, isRequired: false, transformFunction: null }, gridSize: { classPropertyName: "gridSize", publicName: "gridSize", isSignal: true, isRequired: false, transformFunction: null }, snapToGrid: { classPropertyName: "snapToGrid", publicName: "snapToGrid", isSignal: true, isRequired: false, transformFunction: null }, gridColor: { classPropertyName: "gridColor", publicName: "gridColor", isSignal: true, isRequired: false, transformFunction: null }, nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodes: "nodesChange" }, host: { listeners: { "document:mouseup": "onMouseUp($event)", "document:click": "onClick($event)", "document:keydown.escape": "onEscape()", "document:mousemove": "onMouseMove($event)", "document:touchmove": "onTouchMove($event)", "document:touchend": "onDocumentTouchEnd($event)" } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["blueprintCanvas"], descendants: true, static: true }], ngImport: i0, template: `
1739
1740
  <div
1740
1741
  class="canvas-container"
1741
1742
  [class.locked]="isLocked()"
@@ -1823,7 +1824,7 @@ class ShipBlueprint {
1823
1824
  </div>
1824
1825
  `, isInline: true, dependencies: [{ kind: "component", type: ShipCard, selector: "sh-card", inputs: ["color", "variant"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }, { kind: "component", type: ShipButton, selector: "[shButton]", inputs: ["color", "variant", "size", "readonly"] }, { kind: "pipe", type: JsonPipe, name: "json" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1825
1826
  }
1826
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipBlueprint, decorators: [{
1827
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipBlueprint, decorators: [{
1827
1828
  type: Component,
1828
1829
  args: [{
1829
1830
  selector: 'sh-blueprint',
@@ -1946,6 +1947,7 @@ class ShipSelectionGroup {
1946
1947
  this.activeClass = activeClass;
1947
1948
  this.hostElement = inject((ElementRef)).nativeElement;
1948
1949
  this.value = model(null, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
1950
+ this.closable = input(false, { ...(ngDevMode ? { debugName: "closable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1949
1951
  this.items = contentProjectionSignal(this.itemSelector, {
1950
1952
  childList: true,
1951
1953
  subtree: true,
@@ -1977,7 +1979,12 @@ class ShipSelectionGroup {
1977
1979
  if (item && this.hostElement.contains(item)) {
1978
1980
  if (item.hasAttribute('value')) {
1979
1981
  const value = item.getAttribute('value');
1980
- this.value.set(value);
1982
+ if (this.closable() && String(this.value()) === String(value)) {
1983
+ this.value.set(null);
1984
+ }
1985
+ else {
1986
+ this.value.set(value);
1987
+ }
1981
1988
  }
1982
1989
  }
1983
1990
  }
@@ -2007,12 +2014,12 @@ class ShipSelectionGroup {
2007
2014
  nextItem.focus();
2008
2015
  }
2009
2016
  }
2010
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSelectionGroup, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
2011
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: ShipSelectionGroup, isStandalone: true, inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "click": "onClick($event.target)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
2017
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSelectionGroup, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
2018
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: ShipSelectionGroup, isStandalone: true, inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "click": "onClick($event.target)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
2012
2019
  }
2013
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSelectionGroup, decorators: [{
2020
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSelectionGroup, decorators: [{
2014
2021
  type: Directive
2015
- }], ctorParameters: () => [{ type: undefined }, { type: undefined }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], onClick: [{
2022
+ }], ctorParameters: () => [{ type: undefined }, { type: undefined }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], closable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closable", required: false }] }], onClick: [{
2016
2023
  type: HostListener,
2017
2024
  args: ['click', ['$event.target']]
2018
2025
  }], onKeyDown: [{
@@ -2033,12 +2040,12 @@ class ShipButtonGroup extends ShipSelectionGroup {
2033
2040
  size: this.size,
2034
2041
  });
2035
2042
  }
2036
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2037
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipButtonGroup, isStandalone: true, selector: "sh-button-group", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "style.--btng-id": "id" } }, usesInheritance: true, ngImport: i0, template: `
2043
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2044
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipButtonGroup, isStandalone: true, selector: "sh-button-group", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "style.--btng-id": "id" } }, usesInheritance: true, ngImport: i0, template: `
2038
2045
  <ng-content />
2039
2046
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2040
2047
  }
2041
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipButtonGroup, decorators: [{
2048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipButtonGroup, decorators: [{
2042
2049
  type: Component,
2043
2050
  args: [{
2044
2051
  selector: 'sh-button-group',
@@ -2067,10 +2074,10 @@ class ShipButton {
2067
2074
  readonly: this.readonly,
2068
2075
  });
2069
2076
  }
2070
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2071
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipButton, isStandalone: true, selector: "[shButton]", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "sh-sheet-h" }, ngImport: i0, template: '<ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2077
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2078
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipButton, isStandalone: true, selector: "[shButton]", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "sh-sheet-h" }, ngImport: i0, template: '<ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2072
2079
  }
2073
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipButton, decorators: [{
2080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipButton, decorators: [{
2074
2081
  type: Component,
2075
2082
  args: [{
2076
2083
  selector: '[shButton]',
@@ -2093,12 +2100,12 @@ class ShipCard {
2093
2100
  variant: this.variant,
2094
2101
  });
2095
2102
  }
2096
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2097
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipCard, isStandalone: true, selector: "sh-card", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
2103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipCard, isStandalone: true, selector: "sh-card", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
2098
2105
  <ng-content />
2099
2106
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2100
2107
  }
2101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipCard, decorators: [{
2108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipCard, decorators: [{
2102
2109
  type: Component,
2103
2110
  args: [{
2104
2111
  selector: 'sh-card',
@@ -2150,8 +2157,8 @@ class ShipCheckbox {
2150
2157
  }
2151
2158
  event.preventDefault();
2152
2159
  }
2153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipCheckbox, isStandalone: true, selector: "sh-checkbox", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, noInternalInput: { classPropertyName: "noInternalInput", publicName: "noInternalInput", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { listeners: { "keydown.enter": "onEnter($event)" }, properties: { "class": "hostClasses()", "attr.disabled": "disabled() ? \"\" : null" } }, viewQueries: [{ propertyName: "internalInput", first: true, predicate: ["internalInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
2160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipCheckbox, isStandalone: true, selector: "sh-checkbox", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, noInternalInput: { classPropertyName: "noInternalInput", publicName: "noInternalInput", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { listeners: { "keydown.enter": "onEnter($event)" }, properties: { "class": "hostClasses()", "attr.disabled": "disabled() ? \"\" : null" } }, viewQueries: [{ propertyName: "internalInput", first: true, predicate: ["internalInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
2155
2162
  <div class="box sh-sheet" [class]="currentClassList()">
2156
2163
  <sh-icon class="inherit default-indicator">check-bold</sh-icon>
2157
2164
  <sh-icon class="inherit indeterminate-indicator">minus-bold</sh-icon>
@@ -2172,7 +2179,7 @@ class ShipCheckbox {
2172
2179
  }
2173
2180
  `, isInline: true, dependencies: [{ kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2174
2181
  }
2175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipCheckbox, decorators: [{
2182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipCheckbox, decorators: [{
2176
2183
  type: Component,
2177
2184
  args: [{
2178
2185
  selector: 'sh-checkbox',
@@ -2225,10 +2232,10 @@ class ShipChip {
2225
2232
  readonly: this.readonly,
2226
2233
  });
2227
2234
  }
2228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipChip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipChip, isStandalone: true, selector: "sh-chip", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, sharp: { classPropertyName: "sharp", publicName: "sharp", isSignal: true, isRequired: false, transformFunction: null }, dynamic: { classPropertyName: "dynamic", publicName: "dynamic", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "sh-sheet" }, ngImport: i0, template: '<div><ng-content /></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipChip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2236
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipChip, isStandalone: true, selector: "sh-chip", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, sharp: { classPropertyName: "sharp", publicName: "sharp", isSignal: true, isRequired: false, transformFunction: null }, dynamic: { classPropertyName: "dynamic", publicName: "dynamic", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "sh-sheet" }, ngImport: i0, template: '<div><ng-content /></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2230
2237
  }
2231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipChip, decorators: [{
2238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipChip, decorators: [{
2232
2239
  type: Component,
2233
2240
  args: [{
2234
2241
  selector: 'sh-chip',
@@ -2884,8 +2891,8 @@ class ShipColorPicker {
2884
2891
  }
2885
2892
  }
2886
2893
  }
2887
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2888
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.5", type: ShipColorPicker, isStandalone: true, selector: "sh-color-picker", inputs: { showDarkColors: { classPropertyName: "showDarkColors", publicName: "showDarkColors", isSignal: true, isRequired: false, transformFunction: null }, renderingType: { classPropertyName: "renderingType", publicName: "renderingType", isSignal: true, isRequired: false, transformFunction: null }, gridSize: { classPropertyName: "gridSize", publicName: "gridSize", isSignal: true, isRequired: false, transformFunction: null }, hue: { classPropertyName: "hue", publicName: "hue", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, selectedColor: { classPropertyName: "selectedColor", publicName: "selectedColor", isSignal: true, isRequired: false, transformFunction: null }, alpha: { classPropertyName: "alpha", publicName: "alpha", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hue: "hueChange", selectedColor: "selectedColorChange", alpha: "alphaChange", currentColor: "currentColor" }, host: { listeners: { "window:resize": "onResize()" }, properties: { "class": "renderingType()", "class.vertical": "(renderingType() === \"hue\" || renderingType() === \"saturation\") && direction() === \"vertical\"" } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["colorCanvas"], descendants: true, isSignal: true }], ngImport: i0, template: `
2894
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2895
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.6", type: ShipColorPicker, isStandalone: true, selector: "sh-color-picker", inputs: { showDarkColors: { classPropertyName: "showDarkColors", publicName: "showDarkColors", isSignal: true, isRequired: false, transformFunction: null }, renderingType: { classPropertyName: "renderingType", publicName: "renderingType", isSignal: true, isRequired: false, transformFunction: null }, gridSize: { classPropertyName: "gridSize", publicName: "gridSize", isSignal: true, isRequired: false, transformFunction: null }, hue: { classPropertyName: "hue", publicName: "hue", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, selectedColor: { classPropertyName: "selectedColor", publicName: "selectedColor", isSignal: true, isRequired: false, transformFunction: null }, alpha: { classPropertyName: "alpha", publicName: "alpha", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hue: "hueChange", selectedColor: "selectedColorChange", alpha: "alphaChange", currentColor: "currentColor" }, host: { listeners: { "window:resize": "onResize()" }, properties: { "class": "renderingType()", "class.vertical": "(renderingType() === \"hue\" || renderingType() === \"saturation\") && direction() === \"vertical\"" } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["colorCanvas"], descendants: true, isSignal: true }], ngImport: i0, template: `
2889
2896
  <canvas #colorCanvas></canvas>
2890
2897
  <div
2891
2898
  class="marker"
@@ -2894,7 +2901,7 @@ class ShipColorPicker {
2894
2901
  [style.background]="selectedColorRgb()"></div>
2895
2902
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2896
2903
  }
2897
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipColorPicker, decorators: [{
2904
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipColorPicker, decorators: [{
2898
2905
  type: Component,
2899
2906
  args: [{
2900
2907
  selector: 'sh-color-picker',
@@ -3136,8 +3143,8 @@ class ShipPopover {
3136
3143
  this.openAbort?.abort();
3137
3144
  this.openAbort = null;
3138
3145
  }
3139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3140
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipPopover, isStandalone: true, selector: "sh-popover", inputs: { asMultiLayer: { classPropertyName: "asMultiLayer", publicName: "asMultiLayer", isSignal: true, isRequired: false, transformFunction: null }, asSheetOnMobile: { classPropertyName: "asSheetOnMobile", publicName: "asSheetOnMobile", isSignal: true, isRequired: false, transformFunction: null }, disableOpenByClick: { classPropertyName: "disableOpenByClick", publicName: "disableOpenByClick", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", closed: "closed" }, host: { properties: { "class.multi-layer": "asMultiLayer()", "class.as-sheet": "asSheetOnMobile()" } }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true, isSignal: true }, { propertyName: "popoverRef", first: true, predicate: ["popoverRef"], descendants: true, isSignal: true }, { propertyName: "popoverContentRef", first: true, predicate: ["popoverContentRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
3146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipPopover, isStandalone: true, selector: "sh-popover", inputs: { asMultiLayer: { classPropertyName: "asMultiLayer", publicName: "asMultiLayer", isSignal: true, isRequired: false, transformFunction: null }, asSheetOnMobile: { classPropertyName: "asSheetOnMobile", publicName: "asSheetOnMobile", isSignal: true, isRequired: false, transformFunction: null }, disableOpenByClick: { classPropertyName: "disableOpenByClick", publicName: "disableOpenByClick", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", closed: "closed" }, host: { properties: { "class.multi-layer": "asMultiLayer()", "class.as-sheet": "asSheetOnMobile()" } }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true, isSignal: true }, { propertyName: "popoverRef", first: true, predicate: ["popoverRef"], descendants: true, isSignal: true }, { propertyName: "popoverContentRef", first: true, predicate: ["popoverContentRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
3141
3148
  <div class="trigger" #triggerRef [attr.popovertarget]="id() + 'hello'" (click)="toggleIsOpen($event)">
3142
3149
  <div class="trigger-wrapper">
3143
3150
  <ng-content select="[trigger]" />
@@ -3157,7 +3164,7 @@ class ShipPopover {
3157
3164
  }
3158
3165
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3159
3166
  }
3160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipPopover, decorators: [{
3167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipPopover, decorators: [{
3161
3168
  type: Component,
3162
3169
  args: [{
3163
3170
  selector: 'sh-popover',
@@ -3242,8 +3249,8 @@ class ShipFormFieldPopover {
3242
3249
  }
3243
3250
  }
3244
3251
  }
3245
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFormFieldPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3246
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipFormFieldPopover, isStandalone: true, selector: "sh-form-field-popover", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", closed: "closed" }, host: { listeners: { "click": "onClick()" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
3252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFormFieldPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipFormFieldPopover, isStandalone: true, selector: "sh-form-field-popover", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", closed: "closed" }, host: { listeners: { "click": "onClick()" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
3247
3254
  <ng-content select="label"></ng-content>
3248
3255
 
3249
3256
  <sh-popover
@@ -3284,7 +3291,7 @@ class ShipFormFieldPopover {
3284
3291
  </div>
3285
3292
  `, isInline: true, dependencies: [{ kind: "component", type: ShipPopover, selector: "sh-popover", inputs: ["asMultiLayer", "asSheetOnMobile", "disableOpenByClick", "isOpen", "options"], outputs: ["isOpenChange", "closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3286
3293
  }
3287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFormFieldPopover, decorators: [{
3294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFormFieldPopover, decorators: [{
3288
3295
  type: Component,
3289
3296
  args: [{
3290
3297
  selector: 'sh-form-field-popover',
@@ -3592,8 +3599,8 @@ class ShipColorPickerInput {
3592
3599
  });
3593
3600
  return input;
3594
3601
  }
3595
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipColorPickerInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3596
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipColorPickerInput, isStandalone: true, selector: "sh-color-picker-input", inputs: { renderingType: { classPropertyName: "renderingType", publicName: "renderingType", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, showEyeDropper: { classPropertyName: "showEyeDropper", publicName: "showEyeDropper", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", isOpen: "isOpenChange" }, ngImport: i0, template: `
3602
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipColorPickerInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3603
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipColorPickerInput, isStandalone: true, selector: "sh-color-picker-input", inputs: { renderingType: { classPropertyName: "renderingType", publicName: "renderingType", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, showEyeDropper: { classPropertyName: "showEyeDropper", publicName: "showEyeDropper", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", isOpen: "isOpenChange" }, ngImport: i0, template: `
3597
3604
  <sh-form-field-popover
3598
3605
  (closed)="close()"
3599
3606
  [(isOpen)]="isOpen"
@@ -3652,13 +3659,13 @@ class ShipColorPickerInput {
3652
3659
  }
3653
3660
  </div>
3654
3661
  </sh-form-field-popover>
3655
- `, isInline: true, dependencies: [{ kind: "component", type: ShipFormFieldPopover, selector: "sh-form-field-popover", inputs: ["isOpen", "color", "variant", "size", "readonly"], outputs: ["isOpenChange", "closed"] }, { kind: "component", type: ShipColorPicker, selector: "sh-color-picker", inputs: ["showDarkColors", "renderingType", "gridSize", "hue", "direction", "selectedColor", "alpha"], outputs: ["hueChange", "selectedColorChange", "alphaChange", "currentColor"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }, { kind: "component", type: ShipButton$1, selector: "[shButton]", inputs: ["color", "variant", "size", "readonly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3662
+ `, isInline: true, dependencies: [{ kind: "component", type: ShipFormFieldPopover, selector: "sh-form-field-popover", inputs: ["isOpen", "color", "variant", "size", "readonly"], outputs: ["isOpenChange", "closed"] }, { kind: "component", type: ShipColorPicker, selector: "sh-color-picker", inputs: ["showDarkColors", "renderingType", "gridSize", "hue", "direction", "selectedColor", "alpha"], outputs: ["hueChange", "selectedColorChange", "alphaChange", "currentColor"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }, { kind: "component", type: ShipButton, selector: "[shButton]", inputs: ["color", "variant", "size", "readonly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3656
3663
  }
3657
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipColorPickerInput, decorators: [{
3664
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipColorPickerInput, decorators: [{
3658
3665
  type: Component,
3659
3666
  args: [{
3660
3667
  selector: 'sh-color-picker-input',
3661
- imports: [ShipFormFieldPopover, ShipColorPicker, ShipIcon, ShipButton$1],
3668
+ imports: [ShipFormFieldPopover, ShipColorPicker, ShipIcon, ShipButton],
3662
3669
  template: `
3663
3670
  <sh-form-field-popover
3664
3671
  (closed)="close()"
@@ -3944,8 +3951,8 @@ class ShipDatepicker {
3944
3951
  const offsetDate = this.getOffsetDate(monthOffset);
3945
3952
  return date.getMonth() === offsetDate.getMonth();
3946
3953
  }
3947
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDatepicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3948
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipDatepicker, isStandalone: true, selector: "sh-datepicker", inputs: { date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, asRange: { classPropertyName: "asRange", publicName: "asRange", isSignal: true, isRequired: false, transformFunction: null }, monthsToShow: { classPropertyName: "monthsToShow", publicName: "monthsToShow", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, startOfWeek: { classPropertyName: "startOfWeek", publicName: "startOfWeek", isSignal: true, isRequired: false, transformFunction: null }, weekdayLabels: { classPropertyName: "weekdayLabels", publicName: "weekdayLabels", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { date: "dateChange", endDate: "endDateChange" }, host: { properties: { "class.as-range": "asRange()", "class": "\"columns-\" + monthsToShow()", "class.disabled": "disabled()" } }, viewQueries: [{ propertyName: "daysRef", first: true, predicate: ["daysRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
3954
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDatepicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3955
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipDatepicker, isStandalone: true, selector: "sh-datepicker", inputs: { date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, asRange: { classPropertyName: "asRange", publicName: "asRange", isSignal: true, isRequired: false, transformFunction: null }, monthsToShow: { classPropertyName: "monthsToShow", publicName: "monthsToShow", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, startOfWeek: { classPropertyName: "startOfWeek", publicName: "startOfWeek", isSignal: true, isRequired: false, transformFunction: null }, weekdayLabels: { classPropertyName: "weekdayLabels", publicName: "weekdayLabels", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { date: "dateChange", endDate: "endDateChange" }, host: { properties: { "class.as-range": "asRange()", "class": "\"columns-\" + monthsToShow()", "class.disabled": "disabled()" } }, viewQueries: [{ propertyName: "daysRef", first: true, predicate: ["daysRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
3949
3956
  <header>
3950
3957
  <button (click)="previousMonth()"><sh-icon>caret-left</sh-icon></button>
3951
3958
  <div class="title">
@@ -3989,7 +3996,7 @@ class ShipDatepicker {
3989
3996
  </section>
3990
3997
  `, isInline: true, dependencies: [{ kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3991
3998
  }
3992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDatepicker, decorators: [{
3999
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDatepicker, decorators: [{
3993
4000
  type: Component,
3994
4001
  args: [{
3995
4002
  selector: 'sh-datepicker',
@@ -4127,8 +4134,8 @@ class ShipDatepickerInput {
4127
4134
  });
4128
4135
  return input;
4129
4136
  }
4130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDatepickerInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipDatepickerInput, isStandalone: true, selector: "sh-datepicker-input", inputs: { masking: { classPropertyName: "masking", publicName: "masking", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", isOpen: "isOpenChange" }, providers: [DatePipe], queries: [{ propertyName: "ngModels", first: true, predicate: NgModel, descendants: true, isSignal: true }], ngImport: i0, template: `
4137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDatepickerInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipDatepickerInput, isStandalone: true, selector: "sh-datepicker-input", inputs: { masking: { classPropertyName: "masking", publicName: "masking", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", isOpen: "isOpenChange" }, providers: [DatePipe], queries: [{ propertyName: "ngModels", first: true, predicate: NgModel, descendants: true, isSignal: true }], ngImport: i0, template: `
4132
4139
  <sh-form-field-popover (closed)="close()" [(isOpen)]="isOpen">
4133
4140
  <ng-content select="label" ngProjectAs="label" />
4134
4141
 
@@ -4158,7 +4165,7 @@ class ShipDatepickerInput {
4158
4165
  <ng-template #defaultIndicator></ng-template>
4159
4166
  `, isInline: true, dependencies: [{ kind: "component", type: ShipDatepicker, selector: "sh-datepicker", inputs: ["date", "endDate", "asRange", "monthsToShow", "disabled", "startOfWeek", "weekdayLabels"], outputs: ["dateChange", "endDateChange"] }, { kind: "component", type: ShipFormFieldPopover, selector: "sh-form-field-popover", inputs: ["isOpen", "color", "variant", "size", "readonly"], outputs: ["isOpenChange", "closed"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4160
4167
  }
4161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDatepickerInput, decorators: [{
4168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDatepickerInput, decorators: [{
4162
4169
  type: Component,
4163
4170
  args: [{
4164
4171
  selector: 'sh-datepicker-input',
@@ -4296,8 +4303,8 @@ class ShipDaterangeInput {
4296
4303
  end: this.endDate(),
4297
4304
  });
4298
4305
  }
4299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDaterangeInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4300
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipDaterangeInput, isStandalone: true, selector: "sh-daterange-input", inputs: { monthsToShow: { classPropertyName: "monthsToShow", publicName: "monthsToShow", isSignal: true, isRequired: false, transformFunction: null }, masking: { classPropertyName: "masking", publicName: "masking", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", isOpen: "isOpenChange" }, providers: [DatePipe], queries: [{ propertyName: "startDateInputs", predicate: ["startDate"], isSignal: true }, { propertyName: "endDateInputs", predicate: ["endDate"], isSignal: true }], ngImport: i0, template: `
4306
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDaterangeInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4307
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipDaterangeInput, isStandalone: true, selector: "sh-daterange-input", inputs: { monthsToShow: { classPropertyName: "monthsToShow", publicName: "monthsToShow", isSignal: true, isRequired: false, transformFunction: null }, masking: { classPropertyName: "masking", publicName: "masking", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", isOpen: "isOpenChange" }, providers: [DatePipe], queries: [{ propertyName: "startDateInputs", predicate: ["startDate"], isSignal: true }, { propertyName: "endDateInputs", predicate: ["endDate"], isSignal: true }], ngImport: i0, template: `
4301
4308
  <sh-form-field-popover [class]="'columns-' + monthsToShow()" (closed)="close()" [(isOpen)]="isOpen">
4302
4309
  <ng-content select="label" ngProjectAs="label" />
4303
4310
 
@@ -4330,7 +4337,7 @@ class ShipDaterangeInput {
4330
4337
  </sh-form-field-popover>
4331
4338
  `, isInline: true, dependencies: [{ kind: "component", type: ShipDatepicker, selector: "sh-datepicker", inputs: ["date", "endDate", "asRange", "monthsToShow", "disabled", "startOfWeek", "weekdayLabels"], outputs: ["dateChange", "endDateChange"] }, { kind: "component", type: ShipFormFieldPopover, selector: "sh-form-field-popover", inputs: ["isOpen", "color", "variant", "size", "readonly"], outputs: ["isOpenChange", "closed"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4332
4339
  }
4333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDaterangeInput, decorators: [{
4340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDaterangeInput, decorators: [{
4334
4341
  type: Component,
4335
4342
  args: [{
4336
4343
  selector: 'sh-daterange-input',
@@ -4373,12 +4380,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
4373
4380
  }], ctorParameters: () => [], propDecorators: { startDateInputs: [{ type: i0.ContentChildren, args: ['startDate', { isSignal: true }] }], endDateInputs: [{ type: i0.ContentChildren, args: ['endDate', { isSignal: true }] }], monthsToShow: [{ type: i0.Input, args: [{ isSignal: true, alias: "monthsToShow", required: false }] }], masking: [{ type: i0.Input, args: [{ isSignal: true, alias: "masking", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }, { type: i0.Output, args: ["isOpenChange"] }] } });
4374
4381
 
4375
4382
  class ShipDivider {
4376
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDivider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4377
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: ShipDivider, isStandalone: true, selector: "sh-divider", ngImport: i0, template: `
4383
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDivider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4384
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: ShipDivider, isStandalone: true, selector: "sh-divider", ngImport: i0, template: `
4378
4385
  <ng-content />
4379
4386
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4380
4387
  }
4381
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipDivider, decorators: [{
4388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipDivider, decorators: [{
4382
4389
  type: Component,
4383
4390
  args: [{
4384
4391
  selector: 'sh-divider',
@@ -4399,8 +4406,8 @@ class ShipEventCard {
4399
4406
  variant: this.variant,
4400
4407
  });
4401
4408
  }
4402
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipEventCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4403
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipEventCard, isStandalone: true, selector: "sh-event-card", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "sh-sheet" }, ngImport: i0, template: `
4409
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipEventCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4410
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipEventCard, isStandalone: true, selector: "sh-event-card", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "sh-sheet" }, ngImport: i0, template: `
4404
4411
  <div class="content">
4405
4412
  <ng-content />
4406
4413
  </div>
@@ -4411,7 +4418,7 @@ class ShipEventCard {
4411
4418
  </div>
4412
4419
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4413
4420
  }
4414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipEventCard, decorators: [{
4421
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipEventCard, decorators: [{
4415
4422
  type: Component,
4416
4423
  args: [{
4417
4424
  selector: 'sh-event-card',
@@ -4479,8 +4486,8 @@ class ShipFormField {
4479
4486
  }
4480
4487
  });
4481
4488
  }
4482
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFormField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4483
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipFormField, isStandalone: true, selector: "sh-form-field", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
4489
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFormField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4490
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipFormField, isStandalone: true, selector: "sh-form-field", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
4484
4491
  <ng-content select="label"></ng-content>
4485
4492
 
4486
4493
  <div class="input-wrap">
@@ -4511,7 +4518,7 @@ class ShipFormField {
4511
4518
  </div>
4512
4519
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4513
4520
  }
4514
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFormField, decorators: [{
4521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFormField, decorators: [{
4515
4522
  type: Component,
4516
4523
  args: [{
4517
4524
  selector: 'sh-form-field',
@@ -4605,8 +4612,8 @@ class ShipFileUpload {
4605
4612
  this.files.set(newFiles);
4606
4613
  }
4607
4614
  }
4608
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFileUpload, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4609
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipFileUpload, isStandalone: true, selector: "sh-file-upload", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, overlayText: { classPropertyName: "overlayText", publicName: "overlayText", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { placeholder: "placeholderChange", files: "filesChange" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: `
4615
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFileUpload, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4616
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipFileUpload, isStandalone: true, selector: "sh-file-upload", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, overlayText: { classPropertyName: "overlayText", publicName: "overlayText", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { placeholder: "placeholderChange", files: "filesChange" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: `
4610
4617
  <sh-form-field [class]="fileUploadClasses()">
4611
4618
  <ng-content select="label" ngProjectAs="label"></ng-content>
4612
4619
 
@@ -4626,7 +4633,7 @@ class ShipFileUpload {
4626
4633
  </sh-form-field>
4627
4634
  `, isInline: true, dependencies: [{ kind: "component", type: ShipFormField, selector: "sh-form-field", inputs: ["color", "variant", "size", "readonly"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4628
4635
  }
4629
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFileUpload, decorators: [{
4636
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFileUpload, decorators: [{
4630
4637
  type: Component,
4631
4638
  args: [{
4632
4639
  selector: 'sh-file-upload',
@@ -4655,12 +4662,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
4655
4662
  }], propDecorators: { inputRef: [{ type: i0.ViewChild, args: ['input', { isSignal: true }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }, { type: i0.Output, args: ["placeholderChange"] }], overlayText: [{ type: i0.Input, args: [{ isSignal: true, alias: "overlayText", required: false }] }], files: [{ type: i0.Input, args: [{ isSignal: true, alias: "files", required: false }] }, { type: i0.Output, args: ["filesChange"] }] } });
4656
4663
 
4657
4664
  class ShipList {
4658
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4659
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: ShipList, isStandalone: true, selector: "sh-list", ngImport: i0, template: `
4665
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4666
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: ShipList, isStandalone: true, selector: "sh-list", ngImport: i0, template: `
4660
4667
  <ng-content />
4661
4668
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4662
4669
  }
4663
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipList, decorators: [{
4670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipList, decorators: [{
4664
4671
  type: Component,
4665
4672
  args: [{
4666
4673
  selector: 'sh-list',
@@ -4731,7 +4738,7 @@ function observeChildren(parentEl, elementTags) {
4731
4738
  destroyRef.onDestroy(() => destroySelf());
4732
4739
  };
4733
4740
  effectOnSignal = effect(() => {
4734
- const el = typeof parentEl === 'function' && !!parentEl[SIGNAL] ? parentEl() : parentEl;
4741
+ const el = typeof parentEl === 'function' && isSignal(parentEl) ? parentEl() : parentEl;
4735
4742
  const tags = typeof elementTags === 'function' ? elementTags() : elementTags;
4736
4743
  if (el && tags?.length > 0) {
4737
4744
  setupObserver(el, tags);
@@ -5174,8 +5181,8 @@ class ShipMenu {
5174
5181
  ShipMenu.openMenus.splice(index, 1);
5175
5182
  }
5176
5183
  }
5177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5178
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipMenu, isStandalone: true, selector: "sh-menu", inputs: { asMultiLayer: { classPropertyName: "asMultiLayer", publicName: "asMultiLayer", isSignal: true, isRequired: false, transformFunction: null }, openIndicator: { classPropertyName: "openIndicator", publicName: "openIndicator", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, customOptionElementSelectors: { classPropertyName: "customOptionElementSelectors", publicName: "customOptionElementSelectors", isSignal: true, isRequired: false, transformFunction: null }, keepClickedOptionActive: { classPropertyName: "keepClickedOptionActive", publicName: "keepClickedOptionActive", isSignal: true, isRequired: false, transformFunction: null }, closeOnClick: { classPropertyName: "closeOnClick", publicName: "closeOnClick", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", closed: "closed" }, host: { listeners: { "ship-menu-open": "onShipMenuOpen($event)" }, properties: { "class.disabled": "disabled()", "class.has-search": "searchable()", "class.multi-layer": "asMultiLayer()" } }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }, { propertyName: "optionsRef", first: true, predicate: ["optionsRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
5184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipMenu, isStandalone: true, selector: "sh-menu", inputs: { asMultiLayer: { classPropertyName: "asMultiLayer", publicName: "asMultiLayer", isSignal: true, isRequired: false, transformFunction: null }, openIndicator: { classPropertyName: "openIndicator", publicName: "openIndicator", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, customOptionElementSelectors: { classPropertyName: "customOptionElementSelectors", publicName: "customOptionElementSelectors", isSignal: true, isRequired: false, transformFunction: null }, keepClickedOptionActive: { classPropertyName: "keepClickedOptionActive", publicName: "keepClickedOptionActive", isSignal: true, isRequired: false, transformFunction: null }, closeOnClick: { classPropertyName: "closeOnClick", publicName: "closeOnClick", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", closed: "closed" }, host: { listeners: { "ship-menu-open": "onShipMenuOpen($event)" }, properties: { "class.disabled": "disabled()", "class.has-search": "searchable()", "class.multi-layer": "asMultiLayer()" } }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }, { propertyName: "optionsRef", first: true, predicate: ["optionsRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
5179
5186
  <sh-popover
5180
5187
  #formFieldWrapper
5181
5188
  [(isOpen)]="isOpen"
@@ -5229,7 +5236,7 @@ class ShipMenu {
5229
5236
  </sh-popover>
5230
5237
  `, isInline: true, dependencies: [{ kind: "component", type: ShipPopover, selector: "sh-popover", inputs: ["asMultiLayer", "asSheetOnMobile", "disableOpenByClick", "isOpen", "options"], outputs: ["isOpenChange", "closed"] }, { kind: "component", type: ShipFormField, selector: "sh-form-field", inputs: ["color", "variant", "size", "readonly"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5231
5238
  }
5232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipMenu, decorators: [{
5239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipMenu, decorators: [{
5233
5240
  type: Component,
5234
5241
  args: [{
5235
5242
  selector: 'sh-menu',
@@ -5309,12 +5316,12 @@ class ShipProgressBar {
5309
5316
  variant: this.variant,
5310
5317
  });
5311
5318
  }
5312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5313
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipProgressBar, isStandalone: true, selector: "sh-progress-bar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
5319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5320
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipProgressBar, isStandalone: true, selector: "sh-progress-bar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
5314
5321
  <div class="progress-bar" [style.width.%]="value()"></div>
5315
5322
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5316
5323
  }
5317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipProgressBar, decorators: [{
5324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipProgressBar, decorators: [{
5318
5325
  type: Component,
5319
5326
  args: [{
5320
5327
  selector: 'sh-progress-bar',
@@ -5366,8 +5373,8 @@ class ShipRadio {
5366
5373
  }
5367
5374
  event.preventDefault();
5368
5375
  }
5369
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipRadio, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5370
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipRadio, isStandalone: true, selector: "sh-radio", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, noInternalInput: { classPropertyName: "noInternalInput", publicName: "noInternalInput", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { listeners: { "keydown.enter": "onEnter($event)" }, properties: { "class": "hostClasses()", "attr.disabled": "disabled() ? \"\" : null" } }, viewQueries: [{ propertyName: "internalInput", first: true, predicate: ["internalInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
5376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipRadio, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipRadio, isStandalone: true, selector: "sh-radio", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, noInternalInput: { classPropertyName: "noInternalInput", publicName: "noInternalInput", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { listeners: { "keydown.enter": "onEnter($event)" }, properties: { "class": "hostClasses()", "attr.disabled": "disabled() ? \"\" : null" } }, viewQueries: [{ propertyName: "internalInput", first: true, predicate: ["internalInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
5371
5378
  <div class="radio sh-sheet" [class]="currentClassList()"></div>
5372
5379
 
5373
5380
  <ng-content />
@@ -5383,7 +5390,7 @@ class ShipRadio {
5383
5390
  }
5384
5391
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5385
5392
  }
5386
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipRadio, decorators: [{
5393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipRadio, decorators: [{
5387
5394
  type: Component,
5388
5395
  args: [{
5389
5396
  selector: 'sh-radio',
@@ -5607,8 +5614,8 @@ class ShipRangeSlider {
5607
5614
  this.#inputElement.oninput = null;
5608
5615
  }
5609
5616
  }
5610
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipRangeSlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5611
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipRangeSlider, isStandalone: true, selector: "sh-range-slider", inputs: { unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, sharp: { classPropertyName: "sharp", publicName: "sharp", isSignal: true, isRequired: false, transformFunction: null }, alwaysShow: { classPropertyName: "alwaysShow", publicName: "alwaysShow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.sh-range-slider": "true", "class": "hostClasses()", "class.has-input": "this.hasInputElement" } }, ngImport: i0, template: `
5617
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipRangeSlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5618
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipRangeSlider, isStandalone: true, selector: "sh-range-slider", inputs: { unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, sharp: { classPropertyName: "sharp", publicName: "sharp", isSignal: true, isRequired: false, transformFunction: null }, alwaysShow: { classPropertyName: "alwaysShow", publicName: "alwaysShow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.sh-range-slider": "true", "class": "hostClasses()", "class.has-input": "this.hasInputElement" } }, ngImport: i0, template: `
5612
5619
  <div class="label">
5613
5620
  <ng-content select="label"></ng-content>
5614
5621
  </div>
@@ -5634,7 +5641,7 @@ class ShipRangeSlider {
5634
5641
  </div>
5635
5642
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5636
5643
  }
5637
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipRangeSlider, decorators: [{
5644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipRangeSlider, decorators: [{
5638
5645
  type: Component,
5639
5646
  args: [{
5640
5647
  selector: 'sh-range-slider',
@@ -5682,10 +5689,10 @@ class ShipSpinner {
5682
5689
  color: this.color,
5683
5690
  });
5684
5691
  }
5685
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5686
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipSpinner, isStandalone: true, selector: "sh-spinner", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipSpinner, isStandalone: true, selector: "sh-spinner", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5687
5694
  }
5688
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSpinner, decorators: [{
5695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSpinner, decorators: [{
5689
5696
  type: Component,
5690
5697
  args: [{
5691
5698
  selector: 'sh-spinner',
@@ -5748,15 +5755,16 @@ class ShipSelect {
5748
5755
  this.inlineTemplate = contentChild(TemplateRef, ...(ngDevMode ? [{ debugName: "inlineTemplate" }] : /* istanbul ignore next */ []));
5749
5756
  this.optionsWrapRef = viewChild.required('optionsWrap');
5750
5757
  this.inputRefInput = signal(null, ...(ngDevMode ? [{ debugName: "inputRefInput" }] : /* istanbul ignore next */ []));
5751
- this.#inputObserver = typeof MutationObserver !== 'undefined' &&
5752
- new MutationObserver((mutations) => {
5758
+ this.#inputObserver = typeof MutationObserver !== 'undefined'
5759
+ ? new MutationObserver((mutations) => {
5753
5760
  for (var mutation of mutations) {
5754
5761
  if (mutation && (mutation.target.nodeName === 'INPUT' || mutation.target.nodeName === 'TEXTAREA')) {
5755
5762
  this.inputRefInput.set(new ElementRef(mutation.target));
5756
5763
  this.#inputObserver.disconnect();
5757
5764
  }
5758
5765
  }
5759
- });
5766
+ })
5767
+ : undefined;
5760
5768
  this.inputValue = signal('', ...(ngDevMode ? [{ debugName: "inputValue" }] : /* istanbul ignore next */ []));
5761
5769
  this.prevInputValue = signal(null, ...(ngDevMode ? [{ debugName: "prevInputValue" }] : /* istanbul ignore next */ []));
5762
5770
  this.focusedOptionIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedOptionIndex" }] : /* istanbul ignore next */ []));
@@ -6271,8 +6279,8 @@ class ShipSelect {
6271
6279
  this.#inputObserver.disconnect();
6272
6280
  }
6273
6281
  }
6274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6275
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipSelect, isStandalone: true, selector: "sh-select", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, asFreeText: { classPropertyName: "asFreeText", publicName: "asFreeText", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, optionTitle: { classPropertyName: "optionTitle", publicName: "optionTitle", isSignal: true, isRequired: false, transformFunction: null }, freeTextTitle: { classPropertyName: "freeTextTitle", publicName: "freeTextTitle", isSignal: true, isRequired: false, transformFunction: null }, freeTextPlaceholder: { classPropertyName: "freeTextPlaceholder", publicName: "freeTextPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, validateFreeText: { classPropertyName: "validateFreeText", publicName: "validateFreeText", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, lazySearch: { classPropertyName: "lazySearch", publicName: "lazySearch", isSignal: true, isRequired: false, transformFunction: null }, inlineSearch: { classPropertyName: "inlineSearch", publicName: "inlineSearch", isSignal: true, isRequired: false, transformFunction: null }, asText: { classPropertyName: "asText", publicName: "asText", isSignal: true, isRequired: false, transformFunction: null }, isClearable: { classPropertyName: "isClearable", publicName: "isClearable", isSignal: true, isRequired: false, transformFunction: null }, selectMultiple: { classPropertyName: "selectMultiple", publicName: "selectMultiple", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectedOptionTemplate: { classPropertyName: "selectedOptionTemplate", publicName: "selectedOptionTemplate", isSignal: true, isRequired: false, transformFunction: null }, placeholderTemplate: { classPropertyName: "placeholderTemplate", publicName: "placeholderTemplate", isSignal: true, isRequired: false, transformFunction: null }, freeTextOptionTemplate: { classPropertyName: "freeTextOptionTemplate", publicName: "freeTextOptionTemplate", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedOptions: { classPropertyName: "selectedOptions", publicName: "selectedOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { readonly: "readonlyChange", disabled: "disabledChange", isOpen: "isOpenChange", isLoading: "isLoadingChange", options: "optionsChange", selectedOptions: "selectedOptionsChange", cleared: "cleared", onAddNewFreeTextOption: "onAddNewFreeTextOption" }, host: { properties: { "class.multiple": "selectMultiple()", "class": "hostClasses()" } }, queries: [{ propertyName: "inlineTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "optionsWrapRef", first: true, predicate: ["optionsWrap"], descendants: true, isSignal: true }], ngImport: i0, template: `
6282
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6283
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipSelect, isStandalone: true, selector: "sh-select", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, asFreeText: { classPropertyName: "asFreeText", publicName: "asFreeText", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, optionTitle: { classPropertyName: "optionTitle", publicName: "optionTitle", isSignal: true, isRequired: false, transformFunction: null }, freeTextTitle: { classPropertyName: "freeTextTitle", publicName: "freeTextTitle", isSignal: true, isRequired: false, transformFunction: null }, freeTextPlaceholder: { classPropertyName: "freeTextPlaceholder", publicName: "freeTextPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, validateFreeText: { classPropertyName: "validateFreeText", publicName: "validateFreeText", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, lazySearch: { classPropertyName: "lazySearch", publicName: "lazySearch", isSignal: true, isRequired: false, transformFunction: null }, inlineSearch: { classPropertyName: "inlineSearch", publicName: "inlineSearch", isSignal: true, isRequired: false, transformFunction: null }, asText: { classPropertyName: "asText", publicName: "asText", isSignal: true, isRequired: false, transformFunction: null }, isClearable: { classPropertyName: "isClearable", publicName: "isClearable", isSignal: true, isRequired: false, transformFunction: null }, selectMultiple: { classPropertyName: "selectMultiple", publicName: "selectMultiple", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectedOptionTemplate: { classPropertyName: "selectedOptionTemplate", publicName: "selectedOptionTemplate", isSignal: true, isRequired: false, transformFunction: null }, placeholderTemplate: { classPropertyName: "placeholderTemplate", publicName: "placeholderTemplate", isSignal: true, isRequired: false, transformFunction: null }, freeTextOptionTemplate: { classPropertyName: "freeTextOptionTemplate", publicName: "freeTextOptionTemplate", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedOptions: { classPropertyName: "selectedOptions", publicName: "selectedOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { readonly: "readonlyChange", disabled: "disabledChange", isOpen: "isOpenChange", isLoading: "isLoadingChange", options: "optionsChange", selectedOptions: "selectedOptionsChange", cleared: "cleared", onAddNewFreeTextOption: "onAddNewFreeTextOption" }, host: { properties: { "class.multiple": "selectMultiple()", "class": "hostClasses()" } }, queries: [{ propertyName: "inlineTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "optionsWrapRef", first: true, predicate: ["optionsWrap"], descendants: true, isSignal: true }], ngImport: i0, template: `
6276
6284
  @let _placeholderTemplate = placeholderTemplate();
6277
6285
  @let _optionTemplate = optionTemplate();
6278
6286
  @let _freeTextOptionTemplate = freeTextOptionTemplate();
@@ -6430,7 +6438,7 @@ class ShipSelect {
6430
6438
  </sh-popover>
6431
6439
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ShipPopover, selector: "sh-popover", inputs: ["asMultiLayer", "asSheetOnMobile", "disableOpenByClick", "isOpen", "options"], outputs: ["isOpenChange", "closed"] }, { kind: "component", type: ShipFormField, selector: "sh-form-field", inputs: ["color", "variant", "size", "readonly"] }, { kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }, { kind: "component", type: ShipCheckbox, selector: "sh-checkbox", inputs: ["checked", "color", "variant", "readonly", "disabled", "noInternalInput"], outputs: ["checkedChange"] }, { kind: "component", type: ShipSpinner, selector: "sh-spinner", inputs: ["color"] }, { kind: "component", type: ShipChip, selector: "sh-chip", inputs: ["color", "variant", "size", "sharp", "dynamic", "readonly"] }, { kind: "component", type: ShipDivider, selector: "sh-divider" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6432
6440
  }
6433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSelect, decorators: [{
6441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSelect, decorators: [{
6434
6442
  type: Component,
6435
6443
  args: [{
6436
6444
  selector: 'sh-select',
@@ -6604,14 +6612,15 @@ function watchHostClass(className) {
6604
6612
  const elementRef = inject(ElementRef);
6605
6613
  const destroyRef = inject(DestroyRef);
6606
6614
  const hasClass = signal(false, ...(ngDevMode ? [{ debugName: "hasClass" }] : /* istanbul ignore next */ []));
6607
- const observer = typeof MutationObserver !== 'undefined' &&
6608
- new MutationObserver((mutations) => {
6615
+ const observer = typeof MutationObserver !== 'undefined'
6616
+ ? new MutationObserver((mutations) => {
6609
6617
  mutations.forEach((mutation) => {
6610
6618
  if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
6611
6619
  hasClass.set(elementRef.nativeElement.classList.contains(className));
6612
6620
  }
6613
6621
  });
6614
- });
6622
+ })
6623
+ : undefined;
6615
6624
  runInInjectionContext(elementRef.nativeElement, () => {
6616
6625
  if (observer) {
6617
6626
  observer.observe(elementRef.nativeElement, { attributes: true });
@@ -6746,8 +6755,8 @@ class ShipSidenav {
6746
6755
  e.stopPropagation();
6747
6756
  this.isDragging.set(false);
6748
6757
  }
6749
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSidenav, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6750
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipSidenav, isStandalone: true, selector: "sh-sidenav", inputs: { disableDrag: { classPropertyName: "disableDrag", publicName: "disableDrag", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange" }, host: { properties: { "class.open": "isOpen()", "class.closed": "!isOpen()", "class.is-dragging": "isDragging()" } }, viewQueries: [{ propertyName: "dragImageElement", first: true, predicate: ["dragImageElement"], descendants: true, isSignal: true }], ngImport: i0, template: `
6758
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSidenav, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6759
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipSidenav, isStandalone: true, selector: "sh-sidenav", inputs: { disableDrag: { classPropertyName: "disableDrag", publicName: "disableDrag", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange" }, host: { properties: { "class.open": "isOpen()", "class.closed": "!isOpen()", "class.is-dragging": "isDragging()" } }, viewQueries: [{ propertyName: "dragImageElement", first: true, predicate: ["dragImageElement"], descendants: true, isSignal: true }], ngImport: i0, template: `
6751
6760
  @if (isOverlay() && !disableDrag()) {
6752
6761
  <div #dragImageElement class="drag-image"></div>
6753
6762
  }
@@ -6784,7 +6793,7 @@ class ShipSidenav {
6784
6793
  </div>
6785
6794
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6786
6795
  }
6787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSidenav, decorators: [{
6796
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSidenav, decorators: [{
6788
6797
  type: Component,
6789
6798
  args: [{
6790
6799
  selector: 'sh-sidenav',
@@ -6833,110 +6842,130 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
6833
6842
  }]
6834
6843
  }], propDecorators: { disableDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableDrag", required: false }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }, { type: i0.Output, args: ["isOpenChange"] }], dragImageElement: [{ type: i0.ViewChild, args: ['dragImageElement', { isSignal: true }] }] } });
6835
6844
 
6836
- class GridSortable {
6837
- #selfRef = inject((ElementRef));
6838
- #renderer = inject(Renderer2);
6839
- #draggedItem = null;
6840
- onDragStart(event) {
6841
- this.#draggedItem = event.target;
6842
- this.updateOrder(); // Initialize order for all children
6843
- }
6844
- onDragOver(event) {
6845
- event.preventDefault();
6846
- }
6847
- onDragEnter(event) {
6848
- const target = event.target;
6849
- if (this.#draggedItem && target !== this.#draggedItem && target.parentNode === this.#draggedItem.parentNode) {
6850
- const parent = this.#draggedItem.parentNode;
6851
- const draggedIndex = Array.from(parent.children).indexOf(this.#draggedItem);
6852
- const targetIndex = Array.from(parent.children).indexOf(target);
6853
- // Update only the flipped indexes
6854
- this.#renderer.setStyle(this.#draggedItem, 'order', targetIndex);
6855
- this.#renderer.setStyle(target, 'order', draggedIndex);
6856
- }
6857
- }
6858
- updateOrder(excludedItem = null) {
6859
- const items = this.#selfRef.nativeElement.children;
6860
- Array.from(items).forEach((item, index) => {
6861
- if (item !== excludedItem) {
6862
- this.#renderer.setStyle(item, 'order', index);
6845
+ var _a;
6846
+ function createSortableManager(signals, config) {
6847
+ const isSingle = typeof signals === 'function';
6848
+ return {
6849
+ async drop(event) {
6850
+ // 1. Await API Authorization (RxJS or Promises)
6851
+ if (config?.onBeforeDrop) {
6852
+ const result = config.onBeforeDrop(event);
6853
+ let accept = false;
6854
+ if (isObservable(result)) {
6855
+ accept = await firstValueFrom(result);
6856
+ }
6857
+ else if (result instanceof Promise) {
6858
+ accept = await result;
6859
+ }
6860
+ else {
6861
+ accept = result;
6862
+ }
6863
+ if (!accept)
6864
+ return; // Drop rejected, UI stays exactly as it was
6865
+ }
6866
+ // 2. Perform UI Signal Update
6867
+ const isCrossDrop = event.previousContainer !== event.container;
6868
+ if (!isCrossDrop) {
6869
+ // Internal Reorder (moveIndex)
6870
+ let targetSignal;
6871
+ if (isSingle) {
6872
+ targetSignal = signals;
6873
+ }
6874
+ else {
6875
+ const id = event.container.sortableGroup() || '';
6876
+ targetSignal = signals[id];
6877
+ }
6878
+ if (targetSignal) {
6879
+ targetSignal.update((arr) => moveIndex(arr, event));
6880
+ }
6863
6881
  }
6864
- });
6865
- }
6866
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GridSortable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6867
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.5", type: GridSortable, isStandalone: true, selector: "[shGridSortable]", host: { listeners: { "dragstart": "onDragStart($event)", "dragover": "onDragOver($event)", "dragenter": "onDragEnter($event)" } }, ngImport: i0 }); }
6882
+ else {
6883
+ // Cross DropTransfer
6884
+ if (isSingle) {
6885
+ console.warn('Cross drops require a dictionary of signals in createSortableManager');
6886
+ return;
6887
+ }
6888
+ const sourceId = event.previousContainer.sortableGroup() || '';
6889
+ const targetId = event.container.sortableGroup() || '';
6890
+ const sigDict = signals;
6891
+ const sourceSignal = sigDict[sourceId];
6892
+ const targetSignal = sigDict[targetId];
6893
+ if (sourceSignal && targetSignal) {
6894
+ const sourceArr = [...sourceSignal()];
6895
+ const targetArr = [...targetSignal()];
6896
+ const [item] = sourceArr.splice(event.previousIndex, 1);
6897
+ if (item) {
6898
+ targetArr.splice(event.currentIndex, 0, item);
6899
+ sourceSignal.set(sourceArr);
6900
+ targetSignal.set(targetArr);
6901
+ }
6902
+ }
6903
+ }
6904
+ },
6905
+ };
6868
6906
  }
6869
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GridSortable, decorators: [{
6870
- type: Directive,
6871
- args: [{
6872
- standalone: true,
6873
- selector: '[shGridSortable]',
6874
- }]
6875
- }], propDecorators: { onDragStart: [{
6876
- type: HostListener,
6877
- args: ['dragstart', ['$event']]
6878
- }], onDragOver: [{
6879
- type: HostListener,
6880
- args: ['dragover', ['$event']]
6881
- }], onDragEnter: [{
6882
- type: HostListener,
6883
- args: ['dragenter', ['$event']]
6884
- }] } });
6885
-
6886
6907
  class ShipSortable {
6887
6908
  constructor() {
6888
6909
  this.#document = inject(DOCUMENT);
6889
6910
  this.#selfEl = inject((ElementRef));
6890
6911
  this.#renderer = inject(Renderer2);
6891
- this.#placeholderEl = signal(null, ...(ngDevMode ? [{ debugName: "#placeholderEl" }] : /* istanbul ignore next */ []));
6892
- this.#ghostEl = signal(null, ...(ngDevMode ? [{ debugName: "#ghostEl" }] : /* istanbul ignore next */ []));
6893
- this.#parentGap = signal(0, ...(ngDevMode ? [{ debugName: "#parentGap" }] : /* istanbul ignore next */ []));
6912
+ this.#crossSpacerEl = signal(null, ...(ngDevMode ? [{ debugName: "#crossSpacerEl" }] : /* istanbul ignore next */ []));
6913
+ this.shSortable = input(...(ngDevMode ? [undefined, { debugName: "shSortable" }] : /* istanbul ignore next */ []));
6914
+ this.sortableGroup = input(...(ngDevMode ? [undefined, { debugName: "sortableGroup" }] : /* istanbul ignore next */ []));
6915
+ this.sortDrop = output();
6916
+ this.afterDrop = output();
6917
+ this.crossDrop = output();
6894
6918
  this.dragStartIndex = signal(-1, ...(ngDevMode ? [{ debugName: "dragStartIndex" }] : /* istanbul ignore next */ []));
6895
6919
  this.dragToIndex = signal(-1, ...(ngDevMode ? [{ debugName: "dragToIndex" }] : /* istanbul ignore next */ []));
6920
+ this.initialPositions = signal([], ...(ngDevMode ? [{ debugName: "initialPositions" }] : /* istanbul ignore next */ []));
6896
6921
  this.dragables = signal([], ...(ngDevMode ? [{ debugName: "dragables" }] : /* istanbul ignore next */ []));
6897
- this.afterDrop = output();
6898
6922
  this.abortController = null;
6899
6923
  this.isDropping = false;
6924
+ this.isCrossTarget = false;
6900
6925
  this.draggingEffect = effect(() => {
6901
6926
  const currentDragPosIndex = this.dragToIndex();
6902
6927
  const startIndex = this.dragStartIndex();
6903
6928
  const dragables = this.dragables();
6904
- if (currentDragPosIndex > -1 && startIndex > -1 && dragables.length > 0) {
6905
- const placeholderEl = this.#placeholderEl();
6906
- const gapValue = this.#parentGap();
6907
- const draggedElement = dragables[startIndex];
6908
- if (!draggedElement)
6909
- return;
6910
- const totalShift = draggedElement.offsetHeight + gapValue;
6911
- let placeholderElShift = 0;
6912
- if (currentDragPosIndex > startIndex) {
6913
- for (let i = startIndex + 1; i <= currentDragPosIndex; i++) {
6914
- placeholderElShift += dragables[i].offsetHeight + gapValue;
6915
- }
6929
+ const positions = this.initialPositions();
6930
+ if (currentDragPosIndex > -1 && positions.length > 0) {
6931
+ this.#renderer.removeClass(this.#selfEl.nativeElement, 'item-dragged-out');
6932
+ let ghostEl = null;
6933
+ let ghostStartPosIndex = -1;
6934
+ if (!this.isCrossTarget && startIndex > -1 && dragables.length > startIndex) {
6935
+ ghostEl = dragables[startIndex];
6936
+ ghostStartPosIndex = startIndex;
6916
6937
  }
6917
- else if (currentDragPosIndex < startIndex) {
6918
- for (let i = startIndex - 1; i >= currentDragPosIndex; i--) {
6919
- placeholderElShift -= dragables[i].offsetHeight + gapValue;
6920
- }
6921
- }
6922
- if (placeholderEl) {
6923
- const newTransform = `translateY(${placeholderElShift}px)`;
6924
- if (placeholderEl.style.transform !== newTransform) {
6925
- this.#renderer.setStyle(placeholderEl, 'transform', newTransform);
6926
- }
6938
+ else if (this.isCrossTarget && this.#crossSpacerEl()) {
6939
+ ghostEl = this.#crossSpacerEl();
6940
+ ghostStartPosIndex = positions.length - 1;
6927
6941
  }
6928
6942
  for (let i = 0; i < dragables.length; i++) {
6929
- if (i === startIndex)
6943
+ if (i === startIndex && !this.isCrossTarget)
6930
6944
  continue;
6931
- let newTransform = 'translateY(0)';
6932
- if (currentDragPosIndex > startIndex && currentDragPosIndex >= i && startIndex < i) {
6933
- newTransform = `translateY(${-totalShift}px)`;
6945
+ const targetVisualIndex = this.getVisualIndexOfElement(i);
6946
+ if (targetVisualIndex < positions.length && positions[i]) {
6947
+ const dx = positions[targetVisualIndex].x - positions[i].x;
6948
+ const dy = positions[targetVisualIndex].y - positions[i].y;
6949
+ const newTransform = `translate(${dx}px, ${dy}px)`;
6950
+ if (dragables[i].style.transform !== newTransform) {
6951
+ this.#renderer.setStyle(dragables[i], 'transform', newTransform);
6952
+ }
6934
6953
  }
6935
- else if (currentDragPosIndex < startIndex && currentDragPosIndex <= i && startIndex > i) {
6936
- newTransform = `translateY(${totalShift}px)`;
6954
+ }
6955
+ if (ghostEl && ghostStartPosIndex > -1 && positions[currentDragPosIndex] && positions[ghostStartPosIndex]) {
6956
+ const dx = positions[currentDragPosIndex].x - positions[ghostStartPosIndex].x;
6957
+ const dy = positions[currentDragPosIndex].y - positions[ghostStartPosIndex].y;
6958
+ const newTransform = `translate(${dx}px, ${dy}px)`;
6959
+ if (ghostEl.style.transform !== newTransform) {
6960
+ this.#renderer.setStyle(ghostEl, 'transform', newTransform);
6937
6961
  }
6938
- if (dragables[i].style.transform !== newTransform) {
6939
- this.#renderer.setStyle(dragables[i], 'transform', newTransform);
6962
+ }
6963
+ }
6964
+ else if (startIndex > -1 && currentDragPosIndex === -1 && !this.isCrossTarget) {
6965
+ this.#renderer.addClass(this.#selfEl.nativeElement, 'item-dragged-out');
6966
+ for (let i = 0; i < dragables.length; i++) {
6967
+ if (dragables[i].style.transform !== '') {
6968
+ this.#renderer.setStyle(dragables[i], 'transform', '');
6940
6969
  }
6941
6970
  }
6942
6971
  }
@@ -6952,28 +6981,34 @@ class ShipSortable {
6952
6981
  el.addEventListener('dragend', () => this.dragEnd(), { signal: this.abortController.signal });
6953
6982
  }
6954
6983
  }, ...(ngDevMode ? [{ debugName: "draggablesEffect" }] : /* istanbul ignore next */ []));
6955
- this.#dragableObserver = typeof MutationObserver !== 'undefined' &&
6956
- new MutationObserver((mutations) => {
6984
+ this.#dragableObserver = typeof MutationObserver !== 'undefined'
6985
+ ? new MutationObserver((mutations) => {
6957
6986
  for (const mutation of mutations) {
6958
6987
  if (mutation.type === 'childList') {
6959
- const draggableElements = Array.from(this.#selfEl.nativeElement.querySelectorAll('[draggable]:not(.sortable-placeholder):not(.sortable-ghost)'));
6988
+ const draggableElements = Array.from(this.#selfEl.nativeElement.querySelectorAll('[draggable]:not(.sortable-spacer)'));
6960
6989
  this.dragables.set(draggableElements);
6961
6990
  if (this.isDropping) {
6962
- // The drop is complete and Angular has updated the DOM.
6963
- // Now we can safely reset the styles and the flag.
6964
- this.#resetStyles();
6965
6991
  this.isDropping = false;
6992
+ this.#cleanupDragState();
6993
+ if (_a.activeTarget === this) {
6994
+ _a.activeTarget = null;
6995
+ }
6996
+ if (_a.activeSource === this) {
6997
+ _a.activeSource = null;
6998
+ }
6966
6999
  }
6967
7000
  }
6968
7001
  }
6969
- });
7002
+ })
7003
+ : undefined;
6970
7004
  }
6971
7005
  #document;
6972
7006
  #selfEl;
6973
7007
  #renderer;
6974
- #placeholderEl;
6975
- #ghostEl;
6976
- #parentGap;
7008
+ #crossSpacerEl;
7009
+ static { this.activeSource = null; }
7010
+ static { this.activeDraggedElement = null; }
7011
+ static { this.activeTarget = null; }
6977
7012
  getIndexOfElement(element) {
6978
7013
  return this.dragables().findIndex((el) => el === element);
6979
7014
  }
@@ -6994,32 +7029,33 @@ class ShipSortable {
6994
7029
  }
6995
7030
  }
6996
7031
  e.dataTransfer.effectAllowed = 'move';
6997
- const ghostElement = draggedElement.cloneNode(true);
6998
- this.#ghostEl.set(ghostElement);
6999
- this.#renderer.addClass(ghostElement, 'sortable-ghost');
7000
- this.#renderer.setStyle(ghostElement, 'position', 'absolute');
7001
- this.#renderer.setStyle(ghostElement, 'top', '0');
7002
- this.#renderer.setStyle(ghostElement, 'left', '-9999px');
7003
- this.#renderer.appendChild(this.#selfEl.nativeElement, ghostElement);
7004
- e.dataTransfer.setDragImage(ghostElement, e.offsetX, e.offsetY);
7005
- const parentStyle = window.getComputedStyle(draggedElement.parentElement);
7006
- this.#parentGap.set(parseFloat(parentStyle.gap) || 0);
7032
+ _a.activeSource = this;
7033
+ _a.activeDraggedElement = draggedElement;
7034
+ _a.activeTarget = this;
7035
+ this.isCrossTarget = false;
7036
+ const containerRect = this.#selfEl.nativeElement.getBoundingClientRect();
7037
+ const container = this.#selfEl.nativeElement;
7038
+ const positions = Array.from(this.dragables()).map((el) => {
7039
+ const rect = el.getBoundingClientRect();
7040
+ return {
7041
+ x: rect.left - containerRect.left - container.clientLeft + container.scrollLeft,
7042
+ y: rect.top - containerRect.top - container.clientTop + container.scrollTop,
7043
+ width: rect.width,
7044
+ height: rect.height,
7045
+ };
7046
+ });
7047
+ this.initialPositions.set(positions);
7048
+ const rect = draggedElement.getBoundingClientRect();
7049
+ const dragOffsetX = Math.max(0, e.clientX - rect.left);
7050
+ const dragOffsetY = Math.max(0, e.clientY - rect.top);
7051
+ e.dataTransfer.setDragImage(draggedElement, dragOffsetX, dragOffsetY);
7007
7052
  const draggedElementIndex = this.getIndexOfElement(draggedElement);
7008
7053
  this.dragStartIndex.set(draggedElementIndex);
7009
7054
  this.dragToIndex.set(draggedElementIndex);
7010
- this.#renderer.addClass(draggedElement, 'sortable-dragged-el');
7011
- this.#renderer.addClass(this.#selfEl.nativeElement, 'dragging');
7012
- queueMicrotask(() => {
7013
- const placeholderElement = draggedElement.cloneNode(true);
7014
- this.#renderer.addClass(placeholderElement, 'sortable-placeholder');
7015
- this.#renderer.removeClass(placeholderElement, 'sortable-dragged-el');
7016
- this.#renderer.setStyle(placeholderElement, 'left', `${draggedElement.offsetLeft}px`);
7017
- this.#renderer.setStyle(placeholderElement, 'width', `${draggedElement.offsetWidth}px`);
7018
- this.#renderer.setStyle(placeholderElement, 'top', `${draggedElement.offsetTop}px`);
7019
- this.#renderer.setStyle(placeholderElement, 'zIndex', '1');
7020
- this.#placeholderEl.set(placeholderElement);
7021
- this.#selfEl.nativeElement.appendChild(placeholderElement);
7022
- });
7055
+ setTimeout(() => {
7056
+ this.#renderer.addClass(draggedElement, 'sortable-ghost');
7057
+ this.#renderer.addClass(this.#selfEl.nativeElement, 'dragging');
7058
+ }, 0);
7023
7059
  }
7024
7060
  }
7025
7061
  ngOnInit() {
@@ -7027,71 +7063,200 @@ class ShipSortable {
7027
7063
  this.#dragableObserver.observe(this.#selfEl.nativeElement, { childList: true });
7028
7064
  }
7029
7065
  }
7066
+ dragEnter(e) {
7067
+ if (!_a.activeSource || _a.activeSource === this)
7068
+ return;
7069
+ const sourceGroup = _a.activeSource.sortableGroup();
7070
+ const currentGroup = this.sortableGroup();
7071
+ const sourceManager = _a.activeSource.shSortable();
7072
+ const currentManager = this.shSortable();
7073
+ const isSameGroup = !!(sourceGroup && currentGroup && sourceGroup === currentGroup);
7074
+ const isSameManager = !!(sourceManager?.drop && currentManager?.drop && sourceManager === currentManager);
7075
+ if (isSameGroup || isSameManager) {
7076
+ _a.activeTarget = this;
7077
+ _a.activeSource.dragToIndex.set(-1);
7078
+ // Setup Target Placeholder if we are just entering
7079
+ if (!this.isCrossTarget) {
7080
+ this.isCrossTarget = true;
7081
+ this.#renderer.addClass(this.#selfEl.nativeElement, 'dragging');
7082
+ // Compute cross-target positions by temporarily appending the active ghost to measure layout flow
7083
+ const sourceElement = _a.activeDraggedElement;
7084
+ const tempElement = sourceElement.cloneNode(true);
7085
+ this.#renderer.setStyle(tempElement, 'transform', '');
7086
+ // Ensure it doesn't have the original ghost state yet to measure flow without its potential transition scaling
7087
+ this.#renderer.removeClass(tempElement, 'sortable-ghost');
7088
+ this.#selfEl.nativeElement.appendChild(tempElement);
7089
+ // Refresh dragables with temp included locally
7090
+ const currentElements = Array.from(this.#selfEl.nativeElement.querySelectorAll('[draggable]:not(.sortable-spacer)'));
7091
+ const containerRect = this.#selfEl.nativeElement.getBoundingClientRect();
7092
+ const container = this.#selfEl.nativeElement;
7093
+ const positions = currentElements.map((el) => {
7094
+ const rect = el.getBoundingClientRect();
7095
+ return {
7096
+ x: rect.left - containerRect.left - container.clientLeft + container.scrollLeft,
7097
+ y: rect.top - containerRect.top - container.clientTop + container.scrollTop,
7098
+ width: rect.width,
7099
+ height: rect.height,
7100
+ };
7101
+ });
7102
+ this.initialPositions.set(positions);
7103
+ // Keep the temp element as a structural spacer to physically expand the container's height/width
7104
+ // Remove draggable so it isn't picked up by draggables() observers
7105
+ tempElement.removeAttribute('draggable');
7106
+ this.#renderer.addClass(tempElement, 'sortable-spacer');
7107
+ this.#crossSpacerEl.set(tempElement);
7108
+ this.#renderer.addClass(tempElement, 'sortable-ghost');
7109
+ this.dragToIndex.set(this.dragables().length);
7110
+ }
7111
+ }
7112
+ }
7113
+ dragLeave(e) {
7114
+ if (!_a.activeSource || _a.activeSource === this)
7115
+ return;
7116
+ if (e.relatedTarget) {
7117
+ if (this.#selfEl.nativeElement.contains(e.relatedTarget)) {
7118
+ return;
7119
+ }
7120
+ }
7121
+ else {
7122
+ const rect = this.#selfEl.nativeElement.getBoundingClientRect();
7123
+ const isOutside = e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom;
7124
+ if (!isOutside)
7125
+ return;
7126
+ }
7127
+ if (this.isCrossTarget) {
7128
+ this.#cleanupDragState();
7129
+ if (_a.activeTarget === this) {
7130
+ _a.activeTarget = _a.activeSource;
7131
+ }
7132
+ }
7133
+ }
7030
7134
  dragOver(e) {
7031
7135
  e.preventDefault();
7032
7136
  e.dataTransfer.dropEffect = 'move';
7033
- const startIndex = this.dragStartIndex();
7034
- if (startIndex === -1) {
7137
+ if (_a.activeTarget !== this)
7035
7138
  return;
7036
- }
7037
- const draggables = this.dragables();
7038
- const draggedElement = draggables[startIndex];
7039
- const targetElement = draggables.find((child) => {
7040
- if (child === draggedElement) {
7041
- return false;
7139
+ const container = this.#selfEl.nativeElement;
7140
+ const containerRect = container.getBoundingClientRect();
7141
+ // Convert viewport coordinates to container-relative coordinate space
7142
+ const mouseX = e.clientX - containerRect.left - container.clientLeft + container.scrollLeft;
7143
+ const mouseY = e.clientY - containerRect.top - container.clientTop + container.scrollTop;
7144
+ let closestSlotIndex = -1;
7145
+ let minDistance = Infinity;
7146
+ const positions = this.initialPositions();
7147
+ for (let i = 0; i < positions.length; i++) {
7148
+ const pos = positions[i];
7149
+ const centerX = pos.x + pos.width / 2;
7150
+ const centerY = pos.y + pos.height / 2;
7151
+ const dist = Math.hypot(mouseX - centerX, mouseY - centerY);
7152
+ if (dist < minDistance) {
7153
+ minDistance = dist;
7154
+ closestSlotIndex = i;
7155
+ }
7156
+ }
7157
+ if (closestSlotIndex !== -1 && this.dragToIndex() !== closestSlotIndex) {
7158
+ this.dragToIndex.set(closestSlotIndex);
7159
+ }
7160
+ }
7161
+ getVisualIndexOfElement(i) {
7162
+ const startIndex = this.dragStartIndex();
7163
+ const currentDragPosIndex = this.dragToIndex();
7164
+ let targetVisualIndex = i;
7165
+ if (startIndex > -1) {
7166
+ if (currentDragPosIndex > startIndex && i > startIndex && i <= currentDragPosIndex) {
7167
+ targetVisualIndex = i - 1;
7042
7168
  }
7043
- const rect = child.getBoundingClientRect();
7044
- return e.clientY < rect.top + rect.height / 2;
7045
- });
7046
- if (!targetElement) {
7047
- const lastIndex = draggables.length - 1;
7048
- if (this.dragToIndex() !== lastIndex) {
7049
- this.dragToIndex.set(lastIndex);
7169
+ else if (currentDragPosIndex < startIndex && i >= currentDragPosIndex && i < startIndex) {
7170
+ targetVisualIndex = i + 1;
7050
7171
  }
7051
- return;
7052
- }
7053
- let potentialToIndex = this.getIndexOfElement(targetElement);
7054
- if (startIndex < potentialToIndex) {
7055
- potentialToIndex--;
7056
7172
  }
7057
- if (this.dragToIndex() !== potentialToIndex) {
7058
- this.dragToIndex.set(potentialToIndex);
7173
+ else if (this.isCrossTarget) {
7174
+ if (i >= currentDragPosIndex) {
7175
+ targetVisualIndex = i + 1;
7176
+ }
7059
7177
  }
7178
+ return targetVisualIndex;
7060
7179
  }
7061
7180
  drop() {
7062
- if (this.dragStartIndex() !== -1 && this.dragToIndex() !== -1 && this.dragStartIndex() !== this.dragToIndex()) {
7181
+ if (!_a.activeSource)
7182
+ return;
7183
+ // Immediately kill drag transitions before any signal updates
7184
+ this.#renderer.removeClass(_a.activeSource.#selfEl.nativeElement, 'dragging');
7185
+ this.#renderer.removeClass(this.#selfEl.nativeElement, 'dragging');
7186
+ if (_a.activeSource === this) {
7187
+ // Internal Drop
7188
+ if (this.dragStartIndex() !== -1 && this.dragToIndex() !== -1 && this.dragStartIndex() !== this.dragToIndex()) {
7189
+ this.isDropping = true;
7190
+ const event = {
7191
+ previousContainer: this,
7192
+ container: this,
7193
+ previousIndex: this.dragStartIndex(),
7194
+ currentIndex: this.dragToIndex(),
7195
+ };
7196
+ if (this.shSortable()?.drop) {
7197
+ this.shSortable().drop(event);
7198
+ }
7199
+ else {
7200
+ this.sortDrop.emit(event);
7201
+ this.afterDrop.emit({ fromIndex: event.previousIndex, toIndex: event.currentIndex });
7202
+ }
7203
+ }
7204
+ }
7205
+ else if (_a.activeTarget === this && this.isCrossTarget) {
7206
+ // Cross Drop
7063
7207
  this.isDropping = true;
7064
- this.afterDrop.emit({ fromIndex: this.dragStartIndex(), toIndex: this.dragToIndex() });
7208
+ _a.activeSource.isDropping = true;
7209
+ const event = {
7210
+ previousContainer: _a.activeSource,
7211
+ container: this,
7212
+ previousIndex: _a.activeSource.dragStartIndex(),
7213
+ currentIndex: this.dragToIndex(),
7214
+ };
7215
+ if (this.shSortable()?.drop) {
7216
+ this.shSortable().drop(event);
7217
+ }
7218
+ else {
7219
+ this.sortDrop.emit(event);
7220
+ this.crossDrop.emit({
7221
+ previousContainer: _a.activeSource,
7222
+ currentContainer: this,
7223
+ previousIndex: _a.activeSource.dragStartIndex(),
7224
+ currentIndex: this.dragToIndex(),
7225
+ });
7226
+ }
7065
7227
  }
7066
7228
  }
7067
7229
  dragEnd() {
7068
- this.#cleanupDragState();
7069
- }
7070
- #cleanupDragState() {
7071
- const placeholder = this.#placeholderEl();
7072
- const ghost = this.#ghostEl();
7073
- if (placeholder) {
7074
- this.#renderer.removeChild(this.#selfEl.nativeElement, placeholder);
7075
- this.#placeholderEl.set(null);
7230
+ if (_a.activeSource) {
7231
+ _a.activeSource.#renderer.removeClass(_a.activeSource.#selfEl.nativeElement, 'dragging');
7232
+ _a.activeSource.#cleanupDragState();
7076
7233
  }
7077
- if (ghost) {
7078
- this.#renderer.removeChild(this.#selfEl.nativeElement, ghost);
7079
- this.#ghostEl.set(null);
7234
+ if (_a.activeTarget && _a.activeTarget !== _a.activeSource) {
7235
+ _a.activeTarget.#renderer.removeClass(_a.activeTarget.#selfEl.nativeElement, 'dragging');
7236
+ _a.activeTarget.#cleanupDragState();
7080
7237
  }
7081
- // We no longer reset styles here to prevent flicker.
7082
- // The MutationObserver will handle it after the DOM is updated.
7083
- if (!this.isDropping) {
7084
- this.#resetStyles();
7238
+ _a.activeSource = null;
7239
+ _a.activeTarget = null;
7240
+ _a.activeDraggedElement = null;
7241
+ }
7242
+ #cleanupDragState() {
7243
+ this.#renderer.removeClass(this.#selfEl.nativeElement, 'dragging');
7244
+ this.#renderer.removeClass(this.#selfEl.nativeElement, 'item-dragged-out');
7245
+ const crossSpacer = this.#crossSpacerEl();
7246
+ if (crossSpacer) {
7247
+ this.#renderer.removeChild(this.#selfEl.nativeElement, crossSpacer);
7248
+ this.#crossSpacerEl.set(null);
7085
7249
  }
7250
+ this.#resetStyles();
7086
7251
  this.dragStartIndex.set(-1);
7087
7252
  this.dragToIndex.set(-1);
7088
- this.#renderer.removeClass(this.#selfEl.nativeElement, 'dragging');
7253
+ this.isCrossTarget = false;
7089
7254
  }
7090
7255
  #resetStyles() {
7091
7256
  const dragables = this.dragables();
7092
7257
  for (const el of dragables) {
7093
7258
  this.#renderer.setStyle(el, 'transform', '');
7094
- this.#renderer.removeClass(el, 'sortable-dragged-el');
7259
+ this.#renderer.removeClass(el, 'sortable-ghost');
7095
7260
  }
7096
7261
  }
7097
7262
  #dragableObserver;
@@ -7099,16 +7264,26 @@ class ShipSortable {
7099
7264
  this.#dragableObserver?.disconnect();
7100
7265
  this.abortController?.abort();
7101
7266
  }
7102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSortable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7103
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.5", type: ShipSortable, isStandalone: true, selector: "[shSortable]", outputs: { afterDrop: "afterDrop" }, host: { listeners: { "dragover": "dragOver($event)", "drop": "drop()" } }, ngImport: i0 }); }
7267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSortable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7268
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: ShipSortable, isStandalone: true, selector: "[shSortable]", inputs: { shSortable: { classPropertyName: "shSortable", publicName: "shSortable", isSignal: true, isRequired: false, transformFunction: null }, sortableGroup: { classPropertyName: "sortableGroup", publicName: "sortableGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortDrop: "sortDrop", afterDrop: "afterDrop", crossDrop: "crossDrop" }, host: { listeners: { "dragenter": "dragEnter($event)", "dragleave": "dragLeave($event)", "dragover": "dragOver($event)", "drop": "drop()" }, classAttribute: "sh-sortable" }, ngImport: i0 }); }
7104
7269
  }
7105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSortable, decorators: [{
7270
+ _a = ShipSortable;
7271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSortable, decorators: [{
7106
7272
  type: Directive,
7107
7273
  args: [{
7108
7274
  selector: '[shSortable]',
7109
7275
  standalone: true,
7276
+ host: {
7277
+ class: 'sh-sortable',
7278
+ },
7110
7279
  }]
7111
- }], propDecorators: { afterDrop: [{ type: i0.Output, args: ["afterDrop"] }], dragOver: [{
7280
+ }], propDecorators: { shSortable: [{ type: i0.Input, args: [{ isSignal: true, alias: "shSortable", required: false }] }], sortableGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortableGroup", required: false }] }], sortDrop: [{ type: i0.Output, args: ["sortDrop"] }], afterDrop: [{ type: i0.Output, args: ["afterDrop"] }], crossDrop: [{ type: i0.Output, args: ["crossDrop"] }], dragEnter: [{
7281
+ type: HostListener,
7282
+ args: ['dragenter', ['$event']]
7283
+ }], dragLeave: [{
7284
+ type: HostListener,
7285
+ args: ['dragleave', ['$event']]
7286
+ }], dragOver: [{
7112
7287
  type: HostListener,
7113
7288
  args: ['dragover', ['$event']]
7114
7289
  }], drop: [{
@@ -7116,8 +7291,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
7116
7291
  args: ['drop']
7117
7292
  }] } });
7118
7293
  function moveIndex(array, event) {
7119
- const { fromIndex, toIndex } = event;
7120
- if (fromIndex < 0 || fromIndex >= array.length || toIndex < 0 || toIndex >= array.length) {
7294
+ const fromIndex = 'previousIndex' in event ? event.previousIndex : event.fromIndex;
7295
+ const toIndex = 'currentIndex' in event ? event.currentIndex : event.toIndex;
7296
+ if (fromIndex < 0 || fromIndex >= array.length || toIndex < 0 || toIndex > array.length) {
7121
7297
  return array;
7122
7298
  }
7123
7299
  const newArray = [...array];
@@ -7125,6 +7301,12 @@ function moveIndex(array, event) {
7125
7301
  newArray.splice(toIndex, 0, removedItem);
7126
7302
  return newArray;
7127
7303
  }
7304
+ function transferArrayItem(currentArray, targetArray, currentIndex, targetIndex) {
7305
+ const [item] = currentArray.splice(currentIndex, 1);
7306
+ if (item) {
7307
+ targetArray.splice(targetIndex, 0, item);
7308
+ }
7309
+ }
7128
7310
 
7129
7311
  class ShipStepper extends ShipSelectionGroup {
7130
7312
  constructor() {
@@ -7146,12 +7328,12 @@ class ShipStepper extends ShipSelectionGroup {
7146
7328
  });
7147
7329
  });
7148
7330
  }
7149
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipStepper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipStepper, isStandalone: true, selector: "sh-stepper", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, usesInheritance: true, ngImport: i0, template: `
7331
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipStepper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7332
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipStepper, isStandalone: true, selector: "sh-stepper", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, usesInheritance: true, ngImport: i0, template: `
7151
7333
  <ng-content />
7152
7334
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7153
7335
  }
7154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipStepper, decorators: [{
7336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipStepper, decorators: [{
7155
7337
  type: Component,
7156
7338
  args: [{
7157
7339
  selector: 'sh-stepper',
@@ -7245,10 +7427,10 @@ class ShipResize {
7245
7427
  cancelAnimationFrame(this.#animationFrameRequest);
7246
7428
  }
7247
7429
  }
7248
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipResize, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7249
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: ShipResize, isStandalone: true, selector: "[shResize]", inputs: { resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)", "document:click": "onClick($event)" } }, ngImport: i0 }); }
7430
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipResize, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7431
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: ShipResize, isStandalone: true, selector: "[shResize]", inputs: { resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)", "document:click": "onClick($event)" } }, ngImport: i0 }); }
7250
7432
  }
7251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipResize, decorators: [{
7433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipResize, decorators: [{
7252
7434
  type: Directive,
7253
7435
  args: [{
7254
7436
  selector: '[shResize]',
@@ -7290,10 +7472,10 @@ class ShipSort {
7290
7472
  return;
7291
7473
  this.#table.toggleSort(sortCol);
7292
7474
  }
7293
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSort, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7294
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: ShipSort, isStandalone: true, selector: "[shSort]", inputs: { shSort: { classPropertyName: "shSort", publicName: "shSort", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mousedown": "toggleSort()" }, properties: { "class.sort-asc": "sortAsc()", "class.sort-desc": "sortDesc()" }, classAttribute: "sortable" }, ngImport: i0 }); }
7475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSort, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7476
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: ShipSort, isStandalone: true, selector: "[shSort]", inputs: { shSort: { classPropertyName: "shSort", publicName: "shSort", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mousedown": "toggleSort()" }, properties: { "class.sort-asc": "sortAsc()", "class.sort-desc": "sortDesc()" }, classAttribute: "sortable" }, ngImport: i0 }); }
7295
7477
  }
7296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipSort, decorators: [{
7478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipSort, decorators: [{
7297
7479
  type: Directive,
7298
7480
  args: [{
7299
7481
  selector: '[shSort]',
@@ -7326,10 +7508,10 @@ class ShipStickyColumns {
7326
7508
  this.#renderer.setStyle(nativeElement, 'grid-column', position === 'end' ? `-${columnSpanCount + 1} / -1` : `1 / ${columnSpanCount + 1}`);
7327
7509
  }
7328
7510
  }
7329
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipStickyColumns, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7330
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: ShipStickyColumns, isStandalone: true, selector: "[shStickyColumns]", inputs: { shStickyColumns: { classPropertyName: "shStickyColumns", publicName: "shStickyColumns", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.sticky": "shStickyColumns() === \"start\"", "class.sticky-end": "shStickyColumns() === \"end\"" } }, ngImport: i0 }); }
7511
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipStickyColumns, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7512
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: ShipStickyColumns, isStandalone: true, selector: "[shStickyColumns]", inputs: { shStickyColumns: { classPropertyName: "shStickyColumns", publicName: "shStickyColumns", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.sticky": "shStickyColumns() === \"start\"", "class.sticky-end": "shStickyColumns() === \"end\"" } }, ngImport: i0 }); }
7331
7513
  }
7332
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipStickyColumns, decorators: [{
7514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipStickyColumns, decorators: [{
7333
7515
  type: Directive,
7334
7516
  args: [{
7335
7517
  selector: '[shStickyColumns]',
@@ -7485,8 +7667,8 @@ class ShipTable {
7485
7667
  this.scrollYState.set(nextYState);
7486
7668
  this.canScrollY.set(canScrollY);
7487
7669
  }
7488
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipTable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7489
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipTable, isStandalone: true, selector: "sh-table", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, sortByColumn: { classPropertyName: "sortByColumn", publicName: "sortByColumn", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dataChange: "dataChange", sortByColumn: "sortByColumnChange" }, host: { listeners: { "scroll": "onScroll()", "window:resize": "onResize($event)" }, properties: { "class": "hostClasses()", "style.grid-template-columns": "columnSizes()", "class.resizing": "resizing()", "class.can-scroll-x": "canScrollX()", "class.can-scroll-y": "canScrollY()", "class.scrolled-x": "scrollXState() >= 0", "class.scrolled-x-end": "scrollXState() === 1", "class.scrolled-y": "scrollYState() >= 0", "class.scrolled-y-end": "scrollYState() === 1" } }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true, isSignal: true }, { propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true, isSignal: true }], ngImport: i0, template: `
7670
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipTable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7671
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipTable, isStandalone: true, selector: "sh-table", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, sortByColumn: { classPropertyName: "sortByColumn", publicName: "sortByColumn", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dataChange: "dataChange", sortByColumn: "sortByColumnChange" }, host: { listeners: { "scroll": "onScroll()", "window:resize": "onResize($event)" }, properties: { "class": "hostClasses()", "style.grid-template-columns": "columnSizes()", "class.resizing": "resizing()", "class.can-scroll-x": "canScrollX()", "class.can-scroll-y": "canScrollY()", "class.scrolled-x": "scrollXState() >= 0", "class.scrolled-x-end": "scrollXState() === 1", "class.scrolled-y": "scrollYState() >= 0", "class.scrolled-y-end": "scrollYState() === 1" } }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true, isSignal: true }, { propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true, isSignal: true }], ngImport: i0, template: `
7490
7672
  <div class="actionbar">
7491
7673
  <ng-content select="[actionbar]" />
7492
7674
  </div>
@@ -7511,7 +7693,7 @@ class ShipTable {
7511
7693
  }
7512
7694
  `, isInline: true, dependencies: [{ kind: "component", type: ShipProgressBar, selector: "sh-progress-bar", inputs: ["value", "color", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7513
7695
  }
7514
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipTable, decorators: [{
7696
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipTable, decorators: [{
7515
7697
  type: Component,
7516
7698
  args: [{
7517
7699
  selector: 'sh-table',
@@ -7570,12 +7752,12 @@ class ShipTabs extends ShipSelectionGroup {
7570
7752
  variant: this.variant,
7571
7753
  });
7572
7754
  }
7573
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7574
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ShipTabs, isStandalone: true, selector: "sh-tabs", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "style.--tabs-id": "id" } }, usesInheritance: true, ngImport: i0, template: `
7755
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7756
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: ShipTabs, isStandalone: true, selector: "sh-tabs", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "style.--tabs-id": "id" } }, usesInheritance: true, ngImport: i0, template: `
7575
7757
  <ng-content />
7576
7758
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7577
7759
  }
7578
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipTabs, decorators: [{
7760
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipTabs, decorators: [{
7579
7761
  type: Component,
7580
7762
  args: [{
7581
7763
  selector: 'sh-tabs',
@@ -7644,10 +7826,10 @@ class ShipThemeState {
7644
7826
  this.localStorage()?.setItem('shipTheme', theme);
7645
7827
  this.#theme.set(theme);
7646
7828
  }
7647
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipThemeState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7648
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipThemeState, providedIn: 'root' }); }
7829
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipThemeState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7830
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipThemeState, providedIn: 'root' }); }
7649
7831
  }
7650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipThemeState, decorators: [{
7832
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipThemeState, decorators: [{
7651
7833
  type: Injectable,
7652
7834
  args: [{
7653
7835
  providedIn: 'root',
@@ -7666,8 +7848,8 @@ class ShipThemeToggle {
7666
7848
  setTheme(theme) {
7667
7849
  this.#themeState.setTheme(theme);
7668
7850
  }
7669
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipThemeToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7670
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipThemeToggle, isStandalone: true, selector: "ship-theme-toggle", ngImport: i0, template: `
7851
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipThemeToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7852
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipThemeToggle, isStandalone: true, selector: "ship-theme-toggle", ngImport: i0, template: `
7671
7853
  <button shButton size="small" (click)="toggleTheme()">
7672
7854
  @if (theme() === 'dark') {
7673
7855
  <sh-icon>moon-bold</sh-icon>
@@ -7680,7 +7862,7 @@ class ShipThemeToggle {
7680
7862
  </button>
7681
7863
  `, isInline: true, dependencies: [{ kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }, { kind: "component", type: ShipButton, selector: "[shButton]", inputs: ["color", "variant", "size", "readonly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7682
7864
  }
7683
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipThemeToggle, decorators: [{
7865
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipThemeToggle, decorators: [{
7684
7866
  type: Component,
7685
7867
  args: [{
7686
7868
  selector: 'ship-theme-toggle',
@@ -7721,8 +7903,8 @@ class ShipToggleCard {
7721
7903
  toggle() {
7722
7904
  this.isActive.set(!this.isActive());
7723
7905
  }
7724
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipToggleCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7725
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipToggleCard, isStandalone: true, selector: "sh-toggle-card", inputs: { disableToggle: { classPropertyName: "disableToggle", publicName: "disableToggle", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isActive: "isActiveChange" }, host: { properties: { "class.active": "isActive()", "class": "hostClasses()" } }, ngImport: i0, template: `
7906
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipToggleCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7907
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipToggleCard, isStandalone: true, selector: "sh-toggle-card", inputs: { disableToggle: { classPropertyName: "disableToggle", publicName: "disableToggle", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isActive: "isActiveChange" }, host: { properties: { "class.active": "isActive()", "class": "hostClasses()" } }, ngImport: i0, template: `
7726
7908
  <h3 (click)="!disableToggle() && toggle()">
7727
7909
  <ng-content select="[title]">Title</ng-content>
7728
7910
 
@@ -7738,7 +7920,7 @@ class ShipToggleCard {
7738
7920
  </div>
7739
7921
  `, isInline: true, dependencies: [{ kind: "component", type: ShipIcon, selector: "sh-icon", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7740
7922
  }
7741
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipToggleCard, decorators: [{
7923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipToggleCard, decorators: [{
7742
7924
  type: Component,
7743
7925
  args: [{
7744
7926
  selector: 'sh-toggle-card',
@@ -7802,8 +7984,8 @@ class ShipToggle {
7802
7984
  }
7803
7985
  event.preventDefault();
7804
7986
  }
7805
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7806
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipToggle, isStandalone: true, selector: "sh-toggle", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, noInternalInput: { classPropertyName: "noInternalInput", publicName: "noInternalInput", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { listeners: { "keydown.enter": "onEnter($event)" }, properties: { "class": "hostClasses()", "attr.disabled": "disabled() ? \"\" : null" } }, viewQueries: [{ propertyName: "internalInput", first: true, predicate: ["internalInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
7987
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7988
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipToggle, isStandalone: true, selector: "sh-toggle", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, noInternalInput: { classPropertyName: "noInternalInput", publicName: "noInternalInput", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { listeners: { "keydown.enter": "onEnter($event)" }, properties: { "class": "hostClasses()", "attr.disabled": "disabled() ? \"\" : null" } }, viewQueries: [{ propertyName: "internalInput", first: true, predicate: ["internalInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
7807
7989
  <div class="box">
7808
7990
  <div class="knob"></div>
7809
7991
  </div>
@@ -7821,7 +8003,7 @@ class ShipToggle {
7821
8003
  }
7822
8004
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7823
8005
  }
7824
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipToggle, decorators: [{
8006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipToggle, decorators: [{
7825
8007
  type: Component,
7826
8008
  args: [{
7827
8009
  selector: 'sh-toggle',
@@ -7919,6 +8101,8 @@ class ShipVirtualScroll {
7919
8101
  this.#calculateVisibleItems();
7920
8102
  }
7921
8103
  #setupHostResizeObserver() {
8104
+ if (typeof ResizeObserver === 'undefined')
8105
+ return;
7922
8106
  this.#hostResizeObserver = new ResizeObserver((entries) => {
7923
8107
  const hostElement = entries[0];
7924
8108
  if (hostElement) {
@@ -7929,6 +8113,8 @@ class ShipVirtualScroll {
7929
8113
  this.#hostResizeObserver.observe(this.#hostElement.nativeElement);
7930
8114
  }
7931
8115
  #setupResizeObserver() {
8116
+ if (typeof ResizeObserver === 'undefined')
8117
+ return;
7932
8118
  this.#resizeObserver = new ResizeObserver((entries) => {
7933
8119
  const newHeights = [...this.itemHeights()];
7934
8120
  let didUpdate = false;
@@ -7994,8 +8180,8 @@ class ShipVirtualScroll {
7994
8180
  this.#cleanupResizeObserver();
7995
8181
  this.#cleanupHostResizeObserver();
7996
8182
  }
7997
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7998
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.5", type: ShipVirtualScroll, isStandalone: true, selector: "sh-virtual-scroll", viewQueries: [{ propertyName: "viewportRef", first: true, predicate: ["viewport"], descendants: true, isSignal: true }, { propertyName: "itemElements", predicate: ["item"], descendants: true, isSignal: true }], ngImport: i0, template: `
8183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8184
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.6", type: ShipVirtualScroll, isStandalone: true, selector: "sh-virtual-scroll", viewQueries: [{ propertyName: "viewportRef", first: true, predicate: ["viewport"], descendants: true, isSignal: true }, { propertyName: "itemElements", predicate: ["item"], descendants: true, isSignal: true }], ngImport: i0, template: `
7999
8185
  <div class="viewport" #viewport (scroll)="onScroll()">
8000
8186
  <div class="total-height" [style.height]="totalHeight() + 'px'"></div>
8001
8187
  <div class="items-container" [style.transform]="'translateY(' + translateY() + 'px)'">
@@ -8004,7 +8190,7 @@ class ShipVirtualScroll {
8004
8190
  </div>
8005
8191
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8006
8192
  }
8007
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipVirtualScroll, decorators: [{
8193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipVirtualScroll, decorators: [{
8008
8194
  type: Component,
8009
8195
  args: [{
8010
8196
  selector: 'sh-virtual-scroll',
@@ -8031,14 +8217,14 @@ class ShipFormFieldExperimental {
8031
8217
  myClick() {
8032
8218
  this.firstInput.update((x) => x + 'hello');
8033
8219
  }
8034
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFormFieldExperimental, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8035
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: ShipFormFieldExperimental, isStandalone: true, selector: "sh-form-field-experimental", ngImport: i0, template: `
8220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFormFieldExperimental, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8221
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: ShipFormFieldExperimental, isStandalone: true, selector: "sh-form-field-experimental", ngImport: i0, template: `
8036
8222
  <ng-content></ng-content>
8037
8223
 
8038
8224
  <button (click)="myClick()">hello</button>
8039
8225
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8040
8226
  }
8041
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFormFieldExperimental, decorators: [{
8227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFormFieldExperimental, decorators: [{
8042
8228
  type: Component,
8043
8229
  args: [{
8044
8230
  selector: 'sh-form-field-experimental',
@@ -8076,10 +8262,10 @@ class ShipFileDragDrop {
8076
8262
  this.filesDropped.emit(files);
8077
8263
  }
8078
8264
  }
8079
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFileDragDrop, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8080
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.5", type: ShipFileDragDrop, isStandalone: true, selector: "[shDragDrop]", outputs: { filesDropped: "filesDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "ondrop($event)" }, properties: { "class.filesover": "filesOver()" } }, ngImport: i0 }); }
8265
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFileDragDrop, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8266
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.6", type: ShipFileDragDrop, isStandalone: true, selector: "[shDragDrop]", outputs: { filesDropped: "filesDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "ondrop($event)" }, properties: { "class.filesover": "filesOver()" } }, ngImport: i0 }); }
8081
8267
  }
8082
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipFileDragDrop, decorators: [{
8268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipFileDragDrop, decorators: [{
8083
8269
  type: Directive,
8084
8270
  args: [{
8085
8271
  selector: '[shDragDrop]',
@@ -8161,10 +8347,10 @@ class ShipInputMask {
8161
8347
  }
8162
8348
  return masked;
8163
8349
  }
8164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipInputMask, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8165
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: ShipInputMask, isStandalone: true, selector: "[shInputMask]", inputs: { shInputMask: { classPropertyName: "shInputMask", publicName: "shInputMask", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "onInput($event)" } }, ngImport: i0 }); }
8350
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipInputMask, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8351
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: ShipInputMask, isStandalone: true, selector: "[shInputMask]", inputs: { shInputMask: { classPropertyName: "shInputMask", publicName: "shInputMask", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "onInput($event)" } }, ngImport: i0 }); }
8166
8352
  }
8167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipInputMask, decorators: [{
8353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipInputMask, decorators: [{
8168
8354
  type: Directive,
8169
8355
  args: [{
8170
8356
  selector: '[shInputMask]',
@@ -8179,10 +8365,10 @@ class ShipPreventWheel {
8179
8365
  wheel(event) {
8180
8366
  event.preventDefault();
8181
8367
  }
8182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipPreventWheel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8183
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.5", type: ShipPreventWheel, isStandalone: true, selector: "[shPreventWheel]", host: { listeners: { "wheel": "wheel($event)" } }, ngImport: i0 }); }
8368
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipPreventWheel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8369
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.6", type: ShipPreventWheel, isStandalone: true, selector: "[shPreventWheel]", host: { listeners: { "wheel": "wheel($event)" } }, ngImport: i0 }); }
8184
8370
  }
8185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipPreventWheel, decorators: [{
8371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipPreventWheel, decorators: [{
8186
8372
  type: Directive,
8187
8373
  args: [{
8188
8374
  selector: '[shPreventWheel]',
@@ -8327,8 +8513,8 @@ class ShipTooltipWrapper {
8327
8513
  top: Math.max(0, Math.min(pos.top, window.innerHeight - m.height)),
8328
8514
  };
8329
8515
  }
8330
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipTooltipWrapper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8331
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ShipTooltipWrapper, isStandalone: true, selector: "ship-tooltip-wrapper", inputs: { positionAnchorName: { classPropertyName: "positionAnchorName", publicName: "positionAnchorName", isSignal: true, isRequired: true, transformFunction: null }, anchorEl: { classPropertyName: "anchorEl", publicName: "anchorEl", isSignal: true, isRequired: true, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, close: { classPropertyName: "close", publicName: "close", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "tooltip" }, properties: { "attr.popover": "\"manual\"", "style.position-anchor": "positionAnchorName()", "class.below": "isBelow()" } }, ngImport: i0, template: `
8516
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipTooltipWrapper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8517
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ShipTooltipWrapper, isStandalone: true, selector: "ship-tooltip-wrapper", inputs: { positionAnchorName: { classPropertyName: "positionAnchorName", publicName: "positionAnchorName", isSignal: true, isRequired: true, transformFunction: null }, anchorEl: { classPropertyName: "anchorEl", publicName: "anchorEl", isSignal: true, isRequired: true, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, close: { classPropertyName: "close", publicName: "close", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "tooltip" }, properties: { "attr.popover": "\"manual\"", "style.position-anchor": "positionAnchorName()", "class.below": "isBelow()" } }, ngImport: i0, template: `
8332
8518
  <div class="tooltip-content">
8333
8519
  @if (isTemplate()) {
8334
8520
  <ng-container *ngTemplateOutlet="$any(content()); context: { $implicit: tooltipContext }" />
@@ -8338,7 +8524,7 @@ class ShipTooltipWrapper {
8338
8524
  </div>
8339
8525
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
8340
8526
  }
8341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipTooltipWrapper, decorators: [{
8527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipTooltipWrapper, decorators: [{
8342
8528
  type: Component,
8343
8529
  args: [{
8344
8530
  selector: 'ship-tooltip-wrapper',
@@ -8466,10 +8652,10 @@ class ShipTooltip {
8466
8652
  }, this.DEBOUNCE_DELAY);
8467
8653
  }
8468
8654
  }
8469
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8470
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: ShipTooltip, isStandalone: true, selector: "[shTooltip]", inputs: { shTooltip: { classPropertyName: "shTooltip", publicName: "shTooltip", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)" }, properties: { "style.anchor-name": "anchorName", "class.active": "isOpen()" }, classAttribute: "tooltip" }, ngImport: i0 }); }
8655
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8656
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: ShipTooltip, isStandalone: true, selector: "[shTooltip]", inputs: { shTooltip: { classPropertyName: "shTooltip", publicName: "shTooltip", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)" }, properties: { "style.anchor-name": "anchorName", "class.active": "isOpen()" }, classAttribute: "tooltip" }, ngImport: i0 }); }
8471
8657
  }
8472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ShipTooltip, decorators: [{
8658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ShipTooltip, decorators: [{
8473
8659
  type: Directive,
8474
8660
  args: [{
8475
8661
  selector: '[shTooltip]',
@@ -8496,5 +8682,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
8496
8682
  * Generated bundle index. Do not edit.
8497
8683
  */
8498
8684
 
8499
- export { GridSortable, SHIP_CONFIG, ShipAccordion, ShipAlert, ShipAlertContainer, ShipAlertModule, ShipAlertService, ShipBlueprint, ShipButton, ShipButtonGroup, ShipCard, ShipCheckbox, ShipChip, ShipColorPicker, ShipColorPickerInput, ShipDatepicker, ShipDatepickerInput, ShipDaterangeInput, ShipDialog, ShipDialogService, ShipDivider, ShipEventCard, ShipFileDragDrop, ShipFileUpload, ShipFormField, ShipFormFieldExperimental, ShipIcon, ShipInputMask, ShipList, ShipMenu, ShipPopover, ShipPreventWheel, ShipProgressBar, ShipRadio, ShipRangeSlider, ShipResize, ShipSelect, ShipSidenav, ShipSort, ShipSortable, ShipSpinner, ShipStepper, ShipStickyColumns, ShipTable, ShipTabs, ShipThemeToggle, ShipToggle, ShipToggleCard, ShipTooltip, ShipTooltipWrapper, ShipVirtualScroll, TEST_NODES, defaultThemeColors, hslToOklch, hslToRgbExact, hsvToRgbExact, moveIndex, rgbToHex, rgbToHsl, rgbToHsv, rgbToOklch, rgbaToHex8, watchHostClass };
8685
+ export { SHIP_CONFIG, ShipAccordion, ShipAlert, ShipAlertContainer, ShipAlertModule, ShipAlertService, ShipBlueprint, ShipButton, ShipButtonGroup, ShipCard, ShipCheckbox, ShipChip, ShipColorPicker, ShipColorPickerInput, ShipDatepicker, ShipDatepickerInput, ShipDaterangeInput, ShipDialog, ShipDialogService, ShipDivider, ShipEventCard, ShipFileDragDrop, ShipFileUpload, ShipFormField, ShipFormFieldExperimental, ShipIcon, ShipInputMask, ShipList, ShipMenu, ShipPopover, ShipPreventWheel, ShipProgressBar, ShipRadio, ShipRangeSlider, ShipResize, ShipSelect, ShipSidenav, ShipSort, ShipSortable, ShipSpinner, ShipStepper, ShipStickyColumns, ShipTable, ShipTabs, ShipThemeToggle, ShipToggle, ShipToggleCard, ShipTooltip, ShipTooltipWrapper, ShipVirtualScroll, TEST_NODES, createSortableManager, defaultThemeColors, hslToOklch, hslToRgbExact, hsvToRgbExact, moveIndex, rgbToHex, rgbToHsl, rgbToHsv, rgbToOklch, rgbaToHex8, transferArrayItem, watchHostClass };
8500
8686
  //# sourceMappingURL=ship-ui-core.mjs.map