orbiq-neural-ui-kit 1.1.25 → 1.1.27

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.
@@ -10616,6 +10616,15 @@ class NeuralDialogComponent {
10616
10616
  this.dialogRef.close();
10617
10617
  }
10618
10618
  }
10619
+ onContainerClick(event) {
10620
+ const target = event.target;
10621
+ // Close if the click is on the scroll container or the flex wrapper (not inside the dialog card)
10622
+ if (target.classList.contains('dialog-scroll-container') || target.classList.contains('min-h-screen')) {
10623
+ if (this.dismissible()) {
10624
+ this.close();
10625
+ }
10626
+ }
10627
+ }
10619
10628
  ngOnDestroy() {
10620
10629
  if (this.dialogRef) {
10621
10630
  this.dialogRef.close();
@@ -10737,6 +10746,7 @@ class NeuralDialogComponent {
10737
10746
  <ng-template #dialogTemplate>
10738
10747
  <div
10739
10748
  class="fixed inset-0 z-50 overflow-y-auto dialog-scroll-container"
10749
+ (click)="onContainerClick($event)"
10740
10750
  >
10741
10751
  <div
10742
10752
  class="flex min-h-screen flex-col items-center px-4 py-4 text-center"
@@ -10846,6 +10856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
10846
10856
  <ng-template #dialogTemplate>
10847
10857
  <div
10848
10858
  class="fixed inset-0 z-50 overflow-y-auto dialog-scroll-container"
10859
+ (click)="onContainerClick($event)"
10849
10860
  >
10850
10861
  <div
10851
10862
  class="flex min-h-screen flex-col items-center px-4 py-4 text-center"
@@ -13831,6 +13842,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
13831
13842
  }] } });
13832
13843
 
13833
13844
  class NeuralSettingsDialogComponent {
13845
+ dialog;
13846
+ viewContainerRef;
13834
13847
  open = model(false, /* @ts-ignore */
13835
13848
  ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
13836
13849
  size = input('4xl', /* @ts-ignore */
@@ -13839,58 +13852,145 @@ class NeuralSettingsDialogComponent {
13839
13852
  ...(ngDevMode ? [{ debugName: "hasTitleSlot" }] : /* istanbul ignore next */ []));
13840
13853
  hasDescriptionSlot = input(false, /* @ts-ignore */
13841
13854
  ...(ngDevMode ? [{ debugName: "hasDescriptionSlot" }] : /* istanbul ignore next */ []));
13842
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NeuralSettingsDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13843
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NeuralSettingsDialogComponent, isStandalone: true, selector: "neural-settings-dialog", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, hasTitleSlot: { classPropertyName: "hasTitleSlot", publicName: "hasTitleSlot", isSignal: true, isRequired: false, transformFunction: null }, hasDescriptionSlot: { classPropertyName: "hasDescriptionSlot", publicName: "hasDescriptionSlot", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, ngImport: i0, template: `
13844
- <neural-dialog [(openModel)]="open" [size]="size()" [bare]="true">
13845
- <div class="flex h-[100dvh] min-h-0 w-screen flex-col overflow-hidden sm:h-[min(860px,calc(100vh-8rem))] sm:min-h-[560px] sm:w-auto sm:flex-row">
13846
- <h1 class="sr-only">
13847
- @if (hasTitleSlot()) {
13848
- <ng-content select="[title]"></ng-content>
13849
- } @else {
13850
- Settings
13851
- }
13852
- </h1>
13853
- <p class="sr-only">
13854
- @if (hasDescriptionSlot()) {
13855
- <ng-content select="[description]"></ng-content>
13856
- } @else {
13857
- Manage your settings across the tabs in this dialog.
13858
- }
13859
- </p>
13860
- <ng-content></ng-content>
13855
+ dismissible = input(true, /* @ts-ignore */
13856
+ ...(ngDevMode ? [{ debugName: "dismissible" }] : /* istanbul ignore next */ []));
13857
+ dialogTemplate;
13858
+ dialogRef = null;
13859
+ constructor(dialog, viewContainerRef) {
13860
+ this.dialog = dialog;
13861
+ this.viewContainerRef = viewContainerRef;
13862
+ effect(() => {
13863
+ const isOpen = this.open();
13864
+ if (isOpen && !this.dialogRef && this.dialogTemplate) {
13865
+ this.openDialog();
13866
+ }
13867
+ else if (!isOpen && this.dialogRef) {
13868
+ this.dialogRef.close();
13869
+ this.dialogRef = null;
13870
+ }
13871
+ });
13872
+ }
13873
+ openDialog() {
13874
+ this.dialogRef = this.dialog.open(this.dialogTemplate, {
13875
+ disableClose: !this.dismissible(),
13876
+ backdropClass: 'bg-black-overlay-200',
13877
+ panelClass: ['w-full', 'h-full', 'bg-transparent', 'shadow-none'],
13878
+ hasBackdrop: true,
13879
+ viewContainerRef: this.viewContainerRef,
13880
+ });
13881
+ this.dialogRef.closed.subscribe(() => {
13882
+ this.dialogRef = null;
13883
+ if (this.open()) {
13884
+ this.open.set(false);
13885
+ }
13886
+ });
13887
+ }
13888
+ close() {
13889
+ if (this.dialogRef) {
13890
+ this.dialogRef.close();
13891
+ }
13892
+ }
13893
+ onContainerClick(event) {
13894
+ const target = event.target;
13895
+ if (target.classList.contains('dialog-scroll-container') || target.classList.contains('min-h-screen')) {
13896
+ if (this.dismissible()) {
13897
+ this.close();
13898
+ }
13899
+ }
13900
+ }
13901
+ ngOnDestroy() {
13902
+ this.close();
13903
+ }
13904
+ sizeClass = computed(() => {
13905
+ const map = {
13906
+ xs: 'max-w-xs',
13907
+ sm: 'max-w-sm',
13908
+ md: 'max-w-md',
13909
+ lg: 'max-w-lg',
13910
+ xl: 'max-w-xl',
13911
+ '2xl': 'max-w-2xl',
13912
+ '3xl': 'max-w-3xl',
13913
+ '4xl': 'max-w-4xl',
13914
+ '5xl': 'max-w-5xl',
13915
+ '6xl': 'max-w-6xl',
13916
+ '7xl': 'max-w-7xl',
13917
+ };
13918
+ return map[this.size()] || 'max-w-4xl';
13919
+ }, /* @ts-ignore */
13920
+ ...(ngDevMode ? [{ debugName: "sizeClass" }] : /* istanbul ignore next */ []));
13921
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NeuralSettingsDialogComponent, deps: [{ token: i1$3.Dialog }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
13922
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NeuralSettingsDialogComponent, isStandalone: true, selector: "neural-settings-dialog", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, hasTitleSlot: { classPropertyName: "hasTitleSlot", publicName: "hasTitleSlot", isSignal: true, isRequired: false, transformFunction: null }, hasDescriptionSlot: { classPropertyName: "hasDescriptionSlot", publicName: "hasDescriptionSlot", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: `
13923
+ <ng-template #dialogTemplate>
13924
+ <div class="fixed inset-0 z-50 overflow-y-auto dialog-scroll-container" (click)="onContainerClick($event)">
13925
+ <div class="flex min-h-screen flex-col items-center justify-center px-4 py-4 text-center">
13926
+ <div
13927
+ class="my-8 inline-block w-full transform overflow-hidden rounded-7 bg-surface-elevation-1 text-start align-middle shadow-xl dialog-content focus-visible:outline-none"
13928
+ [class]="sizeClass()"
13929
+ >
13930
+ <div class="flex h-[100dvh] min-h-0 w-screen flex-col overflow-hidden sm:h-[min(860px,calc(100vh-8rem))] sm:min-h-[560px] sm:w-auto sm:flex-row">
13931
+ <h1 class="sr-only">
13932
+ @if (hasTitleSlot()) {
13933
+ <ng-content select="[title]"></ng-content>
13934
+ } @else {
13935
+ Settings
13936
+ }
13937
+ </h1>
13938
+ <p class="sr-only">
13939
+ @if (hasDescriptionSlot()) {
13940
+ <ng-content select="[description]"></ng-content>
13941
+ } @else {
13942
+ Manage your settings across the tabs in this dialog.
13943
+ }
13944
+ </p>
13945
+ <ng-content></ng-content>
13946
+ </div>
13947
+ </div>
13948
+ </div>
13861
13949
  </div>
13862
- </neural-dialog>
13863
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NeuralDialogComponent, selector: "neural-dialog", inputs: ["openModel", "title", "message", "icon", "size", "position", "paddingTop", "actions", "dismissible", "showCloseButton", "bare", "hasTitleSlot", "hasActionsSlot", "hasDefaultSlot"], outputs: ["openModelChange"] }] });
13950
+ </ng-template>
13951
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DialogModule }] });
13864
13952
  }
13865
13953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NeuralSettingsDialogComponent, decorators: [{
13866
13954
  type: Component,
13867
13955
  args: [{
13868
13956
  selector: 'neural-settings-dialog',
13869
13957
  standalone: true,
13870
- imports: [CommonModule, NeuralDialogComponent],
13958
+ imports: [CommonModule, DialogModule],
13871
13959
  template: `
13872
- <neural-dialog [(openModel)]="open" [size]="size()" [bare]="true">
13873
- <div class="flex h-[100dvh] min-h-0 w-screen flex-col overflow-hidden sm:h-[min(860px,calc(100vh-8rem))] sm:min-h-[560px] sm:w-auto sm:flex-row">
13874
- <h1 class="sr-only">
13875
- @if (hasTitleSlot()) {
13876
- <ng-content select="[title]"></ng-content>
13877
- } @else {
13878
- Settings
13879
- }
13880
- </h1>
13881
- <p class="sr-only">
13882
- @if (hasDescriptionSlot()) {
13883
- <ng-content select="[description]"></ng-content>
13884
- } @else {
13885
- Manage your settings across the tabs in this dialog.
13886
- }
13887
- </p>
13888
- <ng-content></ng-content>
13960
+ <ng-template #dialogTemplate>
13961
+ <div class="fixed inset-0 z-50 overflow-y-auto dialog-scroll-container" (click)="onContainerClick($event)">
13962
+ <div class="flex min-h-screen flex-col items-center justify-center px-4 py-4 text-center">
13963
+ <div
13964
+ class="my-8 inline-block w-full transform overflow-hidden rounded-7 bg-surface-elevation-1 text-start align-middle shadow-xl dialog-content focus-visible:outline-none"
13965
+ [class]="sizeClass()"
13966
+ >
13967
+ <div class="flex h-[100dvh] min-h-0 w-screen flex-col overflow-hidden sm:h-[min(860px,calc(100vh-8rem))] sm:min-h-[560px] sm:w-auto sm:flex-row">
13968
+ <h1 class="sr-only">
13969
+ @if (hasTitleSlot()) {
13970
+ <ng-content select="[title]"></ng-content>
13971
+ } @else {
13972
+ Settings
13973
+ }
13974
+ </h1>
13975
+ <p class="sr-only">
13976
+ @if (hasDescriptionSlot()) {
13977
+ <ng-content select="[description]"></ng-content>
13978
+ } @else {
13979
+ Manage your settings across the tabs in this dialog.
13980
+ }
13981
+ </p>
13982
+ <ng-content></ng-content>
13983
+ </div>
13984
+ </div>
13985
+ </div>
13889
13986
  </div>
13890
- </neural-dialog>
13987
+ </ng-template>
13891
13988
  `
13892
13989
  }]
13893
- }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], hasTitleSlot: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasTitleSlot", required: false }] }], hasDescriptionSlot: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasDescriptionSlot", required: false }] }] } });
13990
+ }], ctorParameters: () => [{ type: i1$3.Dialog }, { type: i0.ViewContainerRef }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], hasTitleSlot: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasTitleSlot", required: false }] }], hasDescriptionSlot: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasDescriptionSlot", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], dialogTemplate: [{
13991
+ type: ViewChild,
13992
+ args: ['dialogTemplate']
13993
+ }] } });
13894
13994
  class NeuralSettingsSidebarComponent {
13895
13995
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NeuralSettingsSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13896
13996
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: NeuralSettingsSidebarComponent, isStandalone: true, selector: "neural-settings-sidebar", ngImport: i0, template: `