@frame-kit/ui-ng 0.0.6 → 0.0.7

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.
@@ -101,11 +101,11 @@ class HeadlineComponent {
101
101
  });
102
102
  }
103
103
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: HeadlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: HeadlineComponent, isStandalone: true, selector: "fk-headline", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, fontSize: { classPropertyName: "fontSize", publicName: "fontSize", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, visuallyHidden: { classPropertyName: "visuallyHidden", publicName: "visuallyHidden", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClass", "style.font-size": "this.hostFontSize" } }, viewQueries: [{ propertyName: "h1", first: true, predicate: ["h1"], descendants: true, isSignal: true }, { propertyName: "h2", first: true, predicate: ["h2"], descendants: true, isSignal: true }, { propertyName: "h3", first: true, predicate: ["h3"], descendants: true, isSignal: true }, { propertyName: "h4", first: true, predicate: ["h4"], descendants: true, isSignal: true }, { propertyName: "h5", first: true, predicate: ["h5"], descendants: true, isSignal: true }, { propertyName: "h6", first: true, predicate: ["h6"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Stable projection point -->\n<ng-template #projected>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- Render chosen heading template -->\n<ng-container\n [ngTemplateOutlet]=\"template()\"\n [ngTemplateOutletContext]=\"{ $implicit: projected }\"\n></ng-container>\n\n<!-- Heading templates -->\n<ng-template #h1 let-content>\n <h1 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h1>\n</ng-template>\n\n<ng-template #h2 let-content>\n <h2 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h2>\n</ng-template>\n\n<ng-template #h3 let-content>\n <h3 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h3>\n</ng-template>\n\n<ng-template #h4 let-content>\n <h4 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h4>\n</ng-template>\n\n<ng-template #h5 let-content>\n <h5 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h5>\n</ng-template>\n\n<ng-template #h6 let-content>\n <h6 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h6>\n</ng-template>\n", styles: [":host h1,:host h2,:host h3,:host h4,:host h5,:host h6{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:var(--fk-headline-color-default, var(--fk-color-text, #1a1a1a))}:host{display:block;margin-block:var(--fk-headline-margin-block-start, var(--fk-rhythm-4, 1rem)) var(--fk-headline-margin-block-end, 0)}:host(:first-child){margin-block-start:0}:host.fk-headline--h1{font-size:var(--fk-typography-h1-font-size, 2.25rem);font-weight:var(--fk-typography-h1-font-weight, var(--fk-font-weight-bold, 700));line-height:var(--fk-typography-h1-line-height, 1.05);letter-spacing:var(--fk-typography-h1-letter-spacing, -.02em)}:host.fk-headline--h2{font-size:var(--fk-typography-h2-font-size, 1.75rem);font-weight:var(--fk-typography-h2-font-weight, var(--fk-font-weight-bold, 700));line-height:var(--fk-typography-h2-line-height, 1.1);letter-spacing:var(--fk-typography-h2-letter-spacing, -.01em)}:host.fk-headline--h3{font-size:var(--fk-typography-h3-font-size, 1.375rem);font-weight:var(--fk-typography-h3-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h3-line-height, 1.2);letter-spacing:var(--fk-typography-h3-letter-spacing, 0em)}:host.fk-headline--h4{font-size:var(--fk-typography-h4-font-size, 1.125rem);font-weight:var(--fk-typography-h4-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h4-line-height, 1.25);letter-spacing:var(--fk-typography-h4-letter-spacing, 0em)}:host.fk-headline--h5{font-size:var(--fk-typography-h5-font-size, .9375rem);font-weight:var(--fk-typography-h5-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h5-line-height, 1.3);letter-spacing:var(--fk-typography-h5-letter-spacing, .01em)}:host.fk-headline--h6{font-size:var(--fk-typography-h6-font-size, .8125rem);font-weight:var(--fk-typography-h6-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h6-line-height, 1.4);letter-spacing:var(--fk-typography-h6-letter-spacing, .02em)}:host.fk-headline--muted h1,:host.fk-headline--muted h2,:host.fk-headline--muted h3,:host.fk-headline--muted h4,:host.fk-headline--muted h5,:host.fk-headline--muted h6{color:var(--fk-headline-color-muted, var(--fk-color-muted, #6b7280))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: HeadlineComponent, isStandalone: true, selector: "fk-headline", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, fontSize: { classPropertyName: "fontSize", publicName: "fontSize", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, visuallyHidden: { classPropertyName: "visuallyHidden", publicName: "visuallyHidden", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClass", "style.font-size": "this.hostFontSize" } }, viewQueries: [{ propertyName: "h1", first: true, predicate: ["h1"], descendants: true, isSignal: true }, { propertyName: "h2", first: true, predicate: ["h2"], descendants: true, isSignal: true }, { propertyName: "h3", first: true, predicate: ["h3"], descendants: true, isSignal: true }, { propertyName: "h4", first: true, predicate: ["h4"], descendants: true, isSignal: true }, { propertyName: "h5", first: true, predicate: ["h5"], descendants: true, isSignal: true }, { propertyName: "h6", first: true, predicate: ["h6"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Stable projection point -->\n<ng-template #projected>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- Render chosen heading template -->\n<ng-container\n [ngTemplateOutlet]=\"template()\"\n [ngTemplateOutletContext]=\"{ $implicit: projected }\"\n></ng-container>\n\n<!-- Heading templates -->\n<ng-template #h1 let-content>\n <h1 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h1>\n</ng-template>\n\n<ng-template #h2 let-content>\n <h2 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h2>\n</ng-template>\n\n<ng-template #h3 let-content>\n <h3 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h3>\n</ng-template>\n\n<ng-template #h4 let-content>\n <h4 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h4>\n</ng-template>\n\n<ng-template #h5 let-content>\n <h5 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h5>\n</ng-template>\n\n<ng-template #h6 let-content>\n <h6 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h6>\n</ng-template>\n", styles: [":host h1,:host h2,:host h3,:host h4,:host h5,:host h6{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:var(--fk-headline-color-default, var(--fk-color-text, #1a1a1a))}:host{display:block;font-family:var(--fk-font-family-display, var(--fk-font-family-base, sans-serif));margin-block:var(--fk-headline-margin-block-start, var(--fk-rhythm-4, 1rem)) var(--fk-headline-margin-block-end, 0)}:host(:first-child){margin-block-start:0}:host.fk-headline--h1{font-size:var(--fk-typography-h1-font-size, 2.25rem);font-weight:var(--fk-typography-h1-font-weight, var(--fk-font-weight-bold, 700));line-height:var(--fk-typography-h1-line-height, 1.05);letter-spacing:var(--fk-typography-h1-letter-spacing, -.02em)}:host.fk-headline--h2{font-size:var(--fk-typography-h2-font-size, 1.75rem);font-weight:var(--fk-typography-h2-font-weight, var(--fk-font-weight-bold, 700));line-height:var(--fk-typography-h2-line-height, 1.1);letter-spacing:var(--fk-typography-h2-letter-spacing, -.01em)}:host.fk-headline--h3{font-size:var(--fk-typography-h3-font-size, 1.375rem);font-weight:var(--fk-typography-h3-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h3-line-height, 1.2);letter-spacing:var(--fk-typography-h3-letter-spacing, 0em)}:host.fk-headline--h4{font-size:var(--fk-typography-h4-font-size, 1.125rem);font-weight:var(--fk-typography-h4-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h4-line-height, 1.25);letter-spacing:var(--fk-typography-h4-letter-spacing, 0em)}:host.fk-headline--h5{font-size:var(--fk-typography-h5-font-size, .9375rem);font-weight:var(--fk-typography-h5-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h5-line-height, 1.3);letter-spacing:var(--fk-typography-h5-letter-spacing, .01em)}:host.fk-headline--h6{font-size:var(--fk-typography-h6-font-size, .8125rem);font-weight:var(--fk-typography-h6-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h6-line-height, 1.4);letter-spacing:var(--fk-typography-h6-letter-spacing, .02em)}:host.fk-headline--muted h1,:host.fk-headline--muted h2,:host.fk-headline--muted h3,:host.fk-headline--muted h4,:host.fk-headline--muted h5,:host.fk-headline--muted h6{color:var(--fk-headline-color-muted, var(--fk-color-muted, #6b7280))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
105
  }
106
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: HeadlineComponent, decorators: [{
107
107
  type: Component,
108
- args: [{ selector: 'fk-headline', standalone: true, imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Stable projection point -->\n<ng-template #projected>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- Render chosen heading template -->\n<ng-container\n [ngTemplateOutlet]=\"template()\"\n [ngTemplateOutletContext]=\"{ $implicit: projected }\"\n></ng-container>\n\n<!-- Heading templates -->\n<ng-template #h1 let-content>\n <h1 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h1>\n</ng-template>\n\n<ng-template #h2 let-content>\n <h2 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h2>\n</ng-template>\n\n<ng-template #h3 let-content>\n <h3 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h3>\n</ng-template>\n\n<ng-template #h4 let-content>\n <h4 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h4>\n</ng-template>\n\n<ng-template #h5 let-content>\n <h5 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h5>\n</ng-template>\n\n<ng-template #h6 let-content>\n <h6 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h6>\n</ng-template>\n", styles: [":host h1,:host h2,:host h3,:host h4,:host h5,:host h6{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:var(--fk-headline-color-default, var(--fk-color-text, #1a1a1a))}:host{display:block;margin-block:var(--fk-headline-margin-block-start, var(--fk-rhythm-4, 1rem)) var(--fk-headline-margin-block-end, 0)}:host(:first-child){margin-block-start:0}:host.fk-headline--h1{font-size:var(--fk-typography-h1-font-size, 2.25rem);font-weight:var(--fk-typography-h1-font-weight, var(--fk-font-weight-bold, 700));line-height:var(--fk-typography-h1-line-height, 1.05);letter-spacing:var(--fk-typography-h1-letter-spacing, -.02em)}:host.fk-headline--h2{font-size:var(--fk-typography-h2-font-size, 1.75rem);font-weight:var(--fk-typography-h2-font-weight, var(--fk-font-weight-bold, 700));line-height:var(--fk-typography-h2-line-height, 1.1);letter-spacing:var(--fk-typography-h2-letter-spacing, -.01em)}:host.fk-headline--h3{font-size:var(--fk-typography-h3-font-size, 1.375rem);font-weight:var(--fk-typography-h3-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h3-line-height, 1.2);letter-spacing:var(--fk-typography-h3-letter-spacing, 0em)}:host.fk-headline--h4{font-size:var(--fk-typography-h4-font-size, 1.125rem);font-weight:var(--fk-typography-h4-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h4-line-height, 1.25);letter-spacing:var(--fk-typography-h4-letter-spacing, 0em)}:host.fk-headline--h5{font-size:var(--fk-typography-h5-font-size, .9375rem);font-weight:var(--fk-typography-h5-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h5-line-height, 1.3);letter-spacing:var(--fk-typography-h5-letter-spacing, .01em)}:host.fk-headline--h6{font-size:var(--fk-typography-h6-font-size, .8125rem);font-weight:var(--fk-typography-h6-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h6-line-height, 1.4);letter-spacing:var(--fk-typography-h6-letter-spacing, .02em)}:host.fk-headline--muted h1,:host.fk-headline--muted h2,:host.fk-headline--muted h3,:host.fk-headline--muted h4,:host.fk-headline--muted h5,:host.fk-headline--muted h6{color:var(--fk-headline-color-muted, var(--fk-color-muted, #6b7280))}\n"] }]
108
+ args: [{ selector: 'fk-headline', standalone: true, imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Stable projection point -->\n<ng-template #projected>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- Render chosen heading template -->\n<ng-container\n [ngTemplateOutlet]=\"template()\"\n [ngTemplateOutletContext]=\"{ $implicit: projected }\"\n></ng-container>\n\n<!-- Heading templates -->\n<ng-template #h1 let-content>\n <h1 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h1>\n</ng-template>\n\n<ng-template #h2 let-content>\n <h2 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h2>\n</ng-template>\n\n<ng-template #h3 let-content>\n <h3 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h3>\n</ng-template>\n\n<ng-template #h4 let-content>\n <h4 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h4>\n</ng-template>\n\n<ng-template #h5 let-content>\n <h5 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h5>\n</ng-template>\n\n<ng-template #h6 let-content>\n <h6 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h6>\n</ng-template>\n", styles: [":host h1,:host h2,:host h3,:host h4,:host h5,:host h6{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:var(--fk-headline-color-default, var(--fk-color-text, #1a1a1a))}:host{display:block;font-family:var(--fk-font-family-display, var(--fk-font-family-base, sans-serif));margin-block:var(--fk-headline-margin-block-start, var(--fk-rhythm-4, 1rem)) var(--fk-headline-margin-block-end, 0)}:host(:first-child){margin-block-start:0}:host.fk-headline--h1{font-size:var(--fk-typography-h1-font-size, 2.25rem);font-weight:var(--fk-typography-h1-font-weight, var(--fk-font-weight-bold, 700));line-height:var(--fk-typography-h1-line-height, 1.05);letter-spacing:var(--fk-typography-h1-letter-spacing, -.02em)}:host.fk-headline--h2{font-size:var(--fk-typography-h2-font-size, 1.75rem);font-weight:var(--fk-typography-h2-font-weight, var(--fk-font-weight-bold, 700));line-height:var(--fk-typography-h2-line-height, 1.1);letter-spacing:var(--fk-typography-h2-letter-spacing, -.01em)}:host.fk-headline--h3{font-size:var(--fk-typography-h3-font-size, 1.375rem);font-weight:var(--fk-typography-h3-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h3-line-height, 1.2);letter-spacing:var(--fk-typography-h3-letter-spacing, 0em)}:host.fk-headline--h4{font-size:var(--fk-typography-h4-font-size, 1.125rem);font-weight:var(--fk-typography-h4-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h4-line-height, 1.25);letter-spacing:var(--fk-typography-h4-letter-spacing, 0em)}:host.fk-headline--h5{font-size:var(--fk-typography-h5-font-size, .9375rem);font-weight:var(--fk-typography-h5-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h5-line-height, 1.3);letter-spacing:var(--fk-typography-h5-letter-spacing, .01em)}:host.fk-headline--h6{font-size:var(--fk-typography-h6-font-size, .8125rem);font-weight:var(--fk-typography-h6-font-weight, var(--fk-font-weight-semibold, 600));line-height:var(--fk-typography-h6-line-height, 1.4);letter-spacing:var(--fk-typography-h6-letter-spacing, .02em)}:host.fk-headline--muted h1,:host.fk-headline--muted h2,:host.fk-headline--muted h3,:host.fk-headline--muted h4,:host.fk-headline--muted h5,:host.fk-headline--muted h6{color:var(--fk-headline-color-muted, var(--fk-color-muted, #6b7280))}\n"] }]
109
109
  }], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], fontSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "fontSize", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], visuallyHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "visuallyHidden", required: false }] }], h1: [{ type: i0.ViewChild, args: ['h1', { isSignal: true }] }], h2: [{ type: i0.ViewChild, args: ['h2', { isSignal: true }] }], h3: [{ type: i0.ViewChild, args: ['h3', { isSignal: true }] }], h4: [{ type: i0.ViewChild, args: ['h4', { isSignal: true }] }], h5: [{ type: i0.ViewChild, args: ['h5', { isSignal: true }] }], h6: [{ type: i0.ViewChild, args: ['h6', { isSignal: true }] }], hostClass: [{
110
110
  type: HostBinding,
111
111
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"frame-kit-ui-ng-core-headline.mjs","sources":["../../../../packages/ui-ng/core/headline/headline.component.ts","../../../../packages/ui-ng/core/headline/headline.component.html","../../../../packages/ui-ng/core/headline/frame-kit-ui-ng-core-headline.ts"],"sourcesContent":["// headline.component.ts\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n HostBinding,\n inject,\n Injector,\n input,\n isDevMode,\n runInInjectionContext,\n TemplateRef,\n viewChild,\n} from '@angular/core';\n\nimport type { HeadlineLevel, HeadlineVariant } from './headline.types';\n\n@Component({\n selector: 'fk-headline',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './headline.component.scss',\n templateUrl: './headline.component.html',\n})\nexport class HeadlineComponent {\n // Inputs\n readonly ariaLabel = input<string | null>(null);\n readonly className = input<string>('');\n /** Custom font-size override applied directly to the host element. */\n readonly fontSize = input<string | null>(null);\n readonly id = input<string | null>(null);\n /** Semantic heading level rendered in the DOM (h1–h6). */\n readonly level = input<HeadlineLevel>(2);\n /** Visual style applied to the heading — `\"muted\"` reduces contrast. */\n readonly variant = input<HeadlineVariant>('default');\n /** Hides the heading visually while keeping it in the accessibility tree. */\n readonly visuallyHidden = input(false);\n\n // Template refs (signals)\n private readonly h1 = viewChild.required<TemplateRef<unknown>>('h1');\n private readonly h2 = viewChild.required<TemplateRef<unknown>>('h2');\n private readonly h3 = viewChild.required<TemplateRef<unknown>>('h3');\n private readonly h4 = viewChild.required<TemplateRef<unknown>>('h4');\n private readonly h5 = viewChild.required<TemplateRef<unknown>>('h5');\n private readonly h6 = viewChild.required<TemplateRef<unknown>>('h6');\n\n private readonly injector = inject(Injector);\n\n // Inject document (SSR-safe-ish if consumers provide it; still guard usage)\n private readonly doc = inject(DOCUMENT, { optional: true });\n\n // Host classes — single source of truth\n readonly classes = computed(() => {\n return [\n 'fk-headline',\n `fk-headline--h${this.level()}`,\n this.variant() === 'muted' ? 'fk-headline--muted' : '',\n this.visuallyHidden() ? 'sr-only' : '',\n this.className(),\n ]\n .filter(Boolean)\n .join(' ');\n });\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n\n @HostBinding('style.font-size')\n get hostFontSize(): string | null {\n return this.fontSize();\n }\n\n // Choose the correct heading template\n readonly template = computed(() => {\n switch (this.level()) {\n case 1:\n return this.h1();\n case 2:\n return this.h2();\n case 3:\n return this.h3();\n case 4:\n return this.h4();\n case 5:\n return this.h5();\n case 6:\n return this.h6();\n default:\n return this.h2();\n }\n });\n\n // Dev-only: avoid spamming the console for the same count\n private static lastWarnedH1Count: number | null = null;\n\n constructor() {\n // Run once after first render, then re-check after render whenever `level()` changes.\n // We schedule the DOM query after rendering to ensure this component’s heading exists.\n const scheduleCheck = () => {\n if (!isDevMode()) {\n return;\n }\n\n const doc = this.doc;\n\n if (!doc) {\n return;\n }\n\n // afterNextRender() requires injection context; effect() runs outside it\n runInInjectionContext(this.injector, () => {\n afterNextRender(() => {\n if (this.level() !== 1) {\n return;\n }\n\n const h1Count = doc.querySelectorAll('h1').length;\n\n if (h1Count > 1 && HeadlineComponent.lastWarnedH1Count !== h1Count) {\n HeadlineComponent.lastWarnedH1Count = h1Count;\n\n console.warn(\n `[fk-headline] Detected ${h1Count} <h1> elements on the page. ` +\n `Best practice is usually a single <h1> per page. ` +\n `Consider lowering some headline levels to <h2>+ (or ensure only one top-level heading).`,\n );\n }\n });\n });\n };\n\n // initial\n scheduleCheck();\n\n // when level changes\n effect(() => {\n this.level();\n\n scheduleCheck();\n });\n }\n}\n","<!-- Stable projection point -->\n<ng-template #projected>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- Render chosen heading template -->\n<ng-container\n [ngTemplateOutlet]=\"template()\"\n [ngTemplateOutletContext]=\"{ $implicit: projected }\"\n></ng-container>\n\n<!-- Heading templates -->\n<ng-template #h1 let-content>\n <h1 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h1>\n</ng-template>\n\n<ng-template #h2 let-content>\n <h2 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h2>\n</ng-template>\n\n<ng-template #h3 let-content>\n <h3 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h3>\n</ng-template>\n\n<ng-template #h4 let-content>\n <h4 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h4>\n</ng-template>\n\n<ng-template #h5 let-content>\n <h5 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h5>\n</ng-template>\n\n<ng-template #h6 let-content>\n <h6 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h6>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-kit-ui-ng-core-headline.mjs","sources":["../../../../packages/ui-ng/core/headline/headline.component.ts","../../../../packages/ui-ng/core/headline/headline.component.html","../../../../packages/ui-ng/core/headline/frame-kit-ui-ng-core-headline.ts"],"sourcesContent":["// headline.component.ts\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n HostBinding,\n inject,\n Injector,\n input,\n isDevMode,\n runInInjectionContext,\n TemplateRef,\n viewChild,\n} from '@angular/core';\n\nimport type { HeadlineLevel, HeadlineVariant } from './headline.types';\n\n@Component({\n selector: 'fk-headline',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './headline.component.scss',\n templateUrl: './headline.component.html',\n})\nexport class HeadlineComponent {\n // Inputs\n readonly ariaLabel = input<string | null>(null);\n readonly className = input<string>('');\n /** Custom font-size override applied directly to the host element. */\n readonly fontSize = input<string | null>(null);\n readonly id = input<string | null>(null);\n /** Semantic heading level rendered in the DOM (h1–h6). */\n readonly level = input<HeadlineLevel>(2);\n /** Visual style applied to the heading — `\"muted\"` reduces contrast. */\n readonly variant = input<HeadlineVariant>('default');\n /** Hides the heading visually while keeping it in the accessibility tree. */\n readonly visuallyHidden = input(false);\n\n // Template refs (signals)\n private readonly h1 = viewChild.required<TemplateRef<unknown>>('h1');\n private readonly h2 = viewChild.required<TemplateRef<unknown>>('h2');\n private readonly h3 = viewChild.required<TemplateRef<unknown>>('h3');\n private readonly h4 = viewChild.required<TemplateRef<unknown>>('h4');\n private readonly h5 = viewChild.required<TemplateRef<unknown>>('h5');\n private readonly h6 = viewChild.required<TemplateRef<unknown>>('h6');\n\n private readonly injector = inject(Injector);\n\n // Inject document (SSR-safe-ish if consumers provide it; still guard usage)\n private readonly doc = inject(DOCUMENT, { optional: true });\n\n // Host classes — single source of truth\n readonly classes = computed(() => {\n return [\n 'fk-headline',\n `fk-headline--h${this.level()}`,\n this.variant() === 'muted' ? 'fk-headline--muted' : '',\n this.visuallyHidden() ? 'sr-only' : '',\n this.className(),\n ]\n .filter(Boolean)\n .join(' ');\n });\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n\n @HostBinding('style.font-size')\n get hostFontSize(): string | null {\n return this.fontSize();\n }\n\n // Choose the correct heading template\n readonly template = computed(() => {\n switch (this.level()) {\n case 1:\n return this.h1();\n case 2:\n return this.h2();\n case 3:\n return this.h3();\n case 4:\n return this.h4();\n case 5:\n return this.h5();\n case 6:\n return this.h6();\n default:\n return this.h2();\n }\n });\n\n // Dev-only: avoid spamming the console for the same count\n private static lastWarnedH1Count: number | null = null;\n\n constructor() {\n // Run once after first render, then re-check after render whenever `level()` changes.\n // We schedule the DOM query after rendering to ensure this component’s heading exists.\n const scheduleCheck = () => {\n if (!isDevMode()) {\n return;\n }\n\n const doc = this.doc;\n\n if (!doc) {\n return;\n }\n\n // afterNextRender() requires injection context; effect() runs outside it\n runInInjectionContext(this.injector, () => {\n afterNextRender(() => {\n if (this.level() !== 1) {\n return;\n }\n\n const h1Count = doc.querySelectorAll('h1').length;\n\n if (h1Count > 1 && HeadlineComponent.lastWarnedH1Count !== h1Count) {\n HeadlineComponent.lastWarnedH1Count = h1Count;\n\n console.warn(\n `[fk-headline] Detected ${h1Count} <h1> elements on the page. ` +\n `Best practice is usually a single <h1> per page. ` +\n `Consider lowering some headline levels to <h2>+ (or ensure only one top-level heading).`,\n );\n }\n });\n });\n };\n\n // initial\n scheduleCheck();\n\n // when level changes\n effect(() => {\n this.level();\n\n scheduleCheck();\n });\n }\n}\n","<!-- Stable projection point -->\n<ng-template #projected>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- Render chosen heading template -->\n<ng-container\n [ngTemplateOutlet]=\"template()\"\n [ngTemplateOutletContext]=\"{ $implicit: projected }\"\n></ng-container>\n\n<!-- Heading templates -->\n<ng-template #h1 let-content>\n <h1 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h1>\n</ng-template>\n\n<ng-template #h2 let-content>\n <h2 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h2>\n</ng-template>\n\n<ng-template #h3 let-content>\n <h3 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h3>\n</ng-template>\n\n<ng-template #h4 let-content>\n <h4 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h4>\n</ng-template>\n\n<ng-template #h5 let-content>\n <h5 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h5>\n</ng-template>\n\n<ng-template #h6 let-content>\n <h6 [id]=\"id() || null\" [attr.aria-label]=\"ariaLabel() || null\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h6>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -48,11 +48,11 @@ class BadgeComponent {
48
48
  return this.paddingInline();
49
49
  }
50
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: BadgeComponent, isStandalone: true, selector: "fk-badge", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, borderColor: { classPropertyName: "borderColor", publicName: "borderColor", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, paddingInline: { classPropertyName: "paddingInline", publicName: "paddingInline", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClass", "style.color": "this.hostColor", "style.background-color": "this.hostBackgroundColor", "style.border": "this.hostBorder", "style.padding": "this.hostPadding", "style.padding-inline": "this.hostPaddingInline" } }, ngImport: i0, template: "<span [id]=\"id() ?? undefined\" [attr.aria-label]=\"ariaLabel()\"\n ><ng-content\n/></span>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;height:var(--fk-badge-height, 1.5rem);border-radius:var(--fk-badge-border-radius, 999px);padding-inline:var(--fk-badge-padding-inline, .5rem);font-size:var(--fk-badge-font-size, .75rem);font-weight:var(--fk-badge-font-weight, var(--fk-font-weight-medium, 500));line-height:1;white-space:nowrap;vertical-align:middle}:host.fk-badge--default{background-color:var(--fk-badge-default-bg, var(--fk-color-surface-muted, #f7f9fb));color:var(--fk-badge-default-color, var(--fk-color-text, #1f2d3d))}:host.fk-badge--primary{background-color:var(--fk-badge-primary-bg, var(--fk-color-primary-subtle, #e8f4ff));color:var(--fk-badge-primary-color, var(--fk-color-primary, #0a84ff))}:host.fk-badge--success{background-color:var(--fk-badge-success-bg, var(--fk-color-success-subtle, #e6f9ed));color:var(--fk-badge-success-color, var(--fk-color-success, #16a34a))}:host.fk-badge--warning{background-color:var(--fk-badge-warning-bg, var(--fk-color-warning-subtle, #fff8e6));color:var(--fk-badge-warning-color, var(--fk-color-warning, #d97706))}:host.fk-badge--danger{background-color:var(--fk-badge-danger-bg, var(--fk-color-danger-subtle, #fde8e8));color:var(--fk-badge-danger-color, var(--fk-color-danger, #e02424))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: BadgeComponent, isStandalone: true, selector: "fk-badge", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, borderColor: { classPropertyName: "borderColor", publicName: "borderColor", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, paddingInline: { classPropertyName: "paddingInline", publicName: "paddingInline", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClass", "style.color": "this.hostColor", "style.background-color": "this.hostBackgroundColor", "style.border": "this.hostBorder", "style.padding": "this.hostPadding", "style.padding-inline": "this.hostPaddingInline" } }, ngImport: i0, template: "<span [id]=\"id() ?? undefined\" [attr.aria-label]=\"ariaLabel()\"\n ><ng-content\n/></span>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;height:var(--fk-badge-height, 1.5rem);border-radius:var(--fk-badge-border-radius, 999px);padding-inline:var(--fk-badge-padding-inline, .5rem);font-family:var(--fk-badge-font-family, inherit);font-size:var(--fk-badge-font-size, .75rem);font-weight:var(--fk-badge-font-weight, var(--fk-font-weight-medium, 500));letter-spacing:var(--fk-badge-letter-spacing, normal);line-height:1;white-space:nowrap;vertical-align:middle}:host.fk-badge--default{background-color:var(--fk-badge-default-bg, var(--fk-color-surface-muted, #f7f9fb));color:var(--fk-badge-default-color, var(--fk-color-text, #1f2d3d))}:host.fk-badge--primary{background-color:var(--fk-badge-primary-bg, var(--fk-color-primary-subtle, #e8f4ff));color:var(--fk-badge-primary-color, var(--fk-color-primary, #0a84ff))}:host.fk-badge--success{background-color:var(--fk-badge-success-bg, var(--fk-color-success-subtle, #e6f9ed));color:var(--fk-badge-success-color, var(--fk-color-success, #16a34a))}:host.fk-badge--warning{background-color:var(--fk-badge-warning-bg, var(--fk-color-warning-subtle, #fff8e6));color:var(--fk-badge-warning-color, var(--fk-color-warning, #d97706))}:host.fk-badge--danger{background-color:var(--fk-badge-danger-bg, var(--fk-color-danger-subtle, #fde8e8));color:var(--fk-badge-danger-color, var(--fk-color-danger, #e02424))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: BadgeComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'fk-badge', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [id]=\"id() ?? undefined\" [attr.aria-label]=\"ariaLabel()\"\n ><ng-content\n/></span>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;height:var(--fk-badge-height, 1.5rem);border-radius:var(--fk-badge-border-radius, 999px);padding-inline:var(--fk-badge-padding-inline, .5rem);font-size:var(--fk-badge-font-size, .75rem);font-weight:var(--fk-badge-font-weight, var(--fk-font-weight-medium, 500));line-height:1;white-space:nowrap;vertical-align:middle}:host.fk-badge--default{background-color:var(--fk-badge-default-bg, var(--fk-color-surface-muted, #f7f9fb));color:var(--fk-badge-default-color, var(--fk-color-text, #1f2d3d))}:host.fk-badge--primary{background-color:var(--fk-badge-primary-bg, var(--fk-color-primary-subtle, #e8f4ff));color:var(--fk-badge-primary-color, var(--fk-color-primary, #0a84ff))}:host.fk-badge--success{background-color:var(--fk-badge-success-bg, var(--fk-color-success-subtle, #e6f9ed));color:var(--fk-badge-success-color, var(--fk-color-success, #16a34a))}:host.fk-badge--warning{background-color:var(--fk-badge-warning-bg, var(--fk-color-warning-subtle, #fff8e6));color:var(--fk-badge-warning-color, var(--fk-color-warning, #d97706))}:host.fk-badge--danger{background-color:var(--fk-badge-danger-bg, var(--fk-color-danger-subtle, #fde8e8));color:var(--fk-badge-danger-color, var(--fk-color-danger, #e02424))}\n"] }]
55
+ args: [{ selector: 'fk-badge', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [id]=\"id() ?? undefined\" [attr.aria-label]=\"ariaLabel()\"\n ><ng-content\n/></span>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;height:var(--fk-badge-height, 1.5rem);border-radius:var(--fk-badge-border-radius, 999px);padding-inline:var(--fk-badge-padding-inline, .5rem);font-family:var(--fk-badge-font-family, inherit);font-size:var(--fk-badge-font-size, .75rem);font-weight:var(--fk-badge-font-weight, var(--fk-font-weight-medium, 500));letter-spacing:var(--fk-badge-letter-spacing, normal);line-height:1;white-space:nowrap;vertical-align:middle}:host.fk-badge--default{background-color:var(--fk-badge-default-bg, var(--fk-color-surface-muted, #f7f9fb));color:var(--fk-badge-default-color, var(--fk-color-text, #1f2d3d))}:host.fk-badge--primary{background-color:var(--fk-badge-primary-bg, var(--fk-color-primary-subtle, #e8f4ff));color:var(--fk-badge-primary-color, var(--fk-color-primary, #0a84ff))}:host.fk-badge--success{background-color:var(--fk-badge-success-bg, var(--fk-color-success-subtle, #e6f9ed));color:var(--fk-badge-success-color, var(--fk-color-success, #16a34a))}:host.fk-badge--warning{background-color:var(--fk-badge-warning-bg, var(--fk-color-warning-subtle, #fff8e6));color:var(--fk-badge-warning-color, var(--fk-color-warning, #d97706))}:host.fk-badge--danger{background-color:var(--fk-badge-danger-bg, var(--fk-color-danger-subtle, #fde8e8));color:var(--fk-badge-danger-color, var(--fk-color-danger, #e02424))}\n"] }]
56
56
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], backgroundColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundColor", required: false }] }], borderColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "borderColor", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], paddingInline: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingInline", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hostClass: [{
57
57
  type: HostBinding,
58
58
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"frame-kit-ui-ng-ui-badge.mjs","sources":["../../../../packages/ui-ng/ui/badge/badge.component.ts","../../../../packages/ui-ng/ui/badge/badge.component.html","../../../../packages/ui-ng/ui/badge/frame-kit-ui-ng-ui-badge.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n input,\n} from '@angular/core';\n\nimport type { BadgeVariant } from './badge.types';\n\n@Component({\n selector: 'fk-badge',\n standalone: true,\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './badge.component.scss',\n templateUrl: './badge.component.html',\n})\nexport class BadgeComponent {\n // ===== INPUTS =====\n /** Visual style variant that drives the badge color scheme. */\n readonly variant = input<BadgeVariant>('default');\n /** Override the text color as a CSS value. */\n readonly color = input<string | null>(null);\n /** Override the background color as a CSS value. */\n readonly backgroundColor = input<string | null>(null);\n /** Override the border color as a CSS value; renders as a 1px solid border. */\n readonly borderColor = input<string | null>(null);\n /** Custom padding shorthand applied to all sides. */\n readonly padding = input<string | null>(null);\n /** Custom inline (left/right) padding applied independently. */\n readonly paddingInline = input<string | null>(null);\n\n // ===== BASE PROPS =====\n readonly className = input<string>('');\n readonly id = input<string | null>(null);\n readonly ariaLabel = input<string | null>(null);\n\n // ===== COMPUTED =====\n readonly classes = computed(() => {\n return ['fk-badge', `fk-badge--${this.variant()}`, this.className()]\n .filter(Boolean)\n .join(' ');\n });\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n\n @HostBinding('style.color')\n get hostColor() {\n return this.color();\n }\n\n @HostBinding('style.background-color')\n get hostBackgroundColor() {\n return this.backgroundColor();\n }\n\n @HostBinding('style.border')\n get hostBorder() {\n const bc = this.borderColor();\n\n if (!bc) {\n return null;\n }\n\n return `1px solid ${bc}`;\n }\n\n @HostBinding('style.padding')\n get hostPadding() {\n return this.padding();\n }\n\n @HostBinding('style.padding-inline')\n get hostPaddingInline() {\n return this.paddingInline();\n }\n}\n","<span [id]=\"id() ?? undefined\" [attr.aria-label]=\"ariaLabel()\"\n ><ng-content\n/></span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAkBa,cAAc,CAAA;;;AAGhB,IAAA,OAAO,GAAG,KAAK,CAAe,SAAS,8EAAC;;AAExC,IAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,4EAAC;;AAElC,IAAA,eAAe,GAAG,KAAK,CAAgB,IAAI,sFAAC;;AAE5C,IAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,kFAAC;;AAExC,IAAA,OAAO,GAAG,KAAK,CAAgB,IAAI,8EAAC;;AAEpC,IAAA,aAAa,GAAG,KAAK,CAAgB,IAAI,oFAAC;;AAG1C,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,gFAAC;AAC7B,IAAA,EAAE,GAAG,KAAK,CAAgB,IAAI,yEAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,gFAAC;;AAGtC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,OAAO,CAAC,UAAU,EAAE,CAAA,UAAA,EAAa,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,EAAE,IAAI,CAAC,SAAS,EAAE;aAChE,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG,CAAC;AACd,IAAA,CAAC,8EAAC;AAEF,IAAA,IACI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;AAEA,IAAA,IACI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;IACrB;AAEA,IAAA,IACI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE;IAC/B;AAEA,IAAA,IACI,UAAU,GAAA;AACZ,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;QAE7B,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,OAAO,IAAI;QACb;QAEA,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE;IAC1B;AAEA,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;AAEA,IAAA,IACI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE;IAC7B;uGA7DW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,i/CClB3B,iGAGA,EAAA,MAAA,EAAA,CAAA,0vCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDea,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iGAAA,EAAA,MAAA,EAAA,CAAA,0vCAAA,CAAA,EAAA;;sBA+B9C,WAAW;uBAAC,OAAO;;sBAKnB,WAAW;uBAAC,aAAa;;sBAKzB,WAAW;uBAAC,wBAAwB;;sBAKpC,WAAW;uBAAC,cAAc;;sBAW1B,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,sBAAsB;;;AE5ErC;;AAEG;;;;"}
1
+ {"version":3,"file":"frame-kit-ui-ng-ui-badge.mjs","sources":["../../../../packages/ui-ng/ui/badge/badge.component.ts","../../../../packages/ui-ng/ui/badge/badge.component.html","../../../../packages/ui-ng/ui/badge/frame-kit-ui-ng-ui-badge.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n input,\n} from '@angular/core';\n\nimport type { BadgeVariant } from './badge.types';\n\n@Component({\n selector: 'fk-badge',\n standalone: true,\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './badge.component.scss',\n templateUrl: './badge.component.html',\n})\nexport class BadgeComponent {\n // ===== INPUTS =====\n /** Visual style variant that drives the badge color scheme. */\n readonly variant = input<BadgeVariant>('default');\n /** Override the text color as a CSS value. */\n readonly color = input<string | null>(null);\n /** Override the background color as a CSS value. */\n readonly backgroundColor = input<string | null>(null);\n /** Override the border color as a CSS value; renders as a 1px solid border. */\n readonly borderColor = input<string | null>(null);\n /** Custom padding shorthand applied to all sides. */\n readonly padding = input<string | null>(null);\n /** Custom inline (left/right) padding applied independently. */\n readonly paddingInline = input<string | null>(null);\n\n // ===== BASE PROPS =====\n readonly className = input<string>('');\n readonly id = input<string | null>(null);\n readonly ariaLabel = input<string | null>(null);\n\n // ===== COMPUTED =====\n readonly classes = computed(() => {\n return ['fk-badge', `fk-badge--${this.variant()}`, this.className()]\n .filter(Boolean)\n .join(' ');\n });\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n\n @HostBinding('style.color')\n get hostColor() {\n return this.color();\n }\n\n @HostBinding('style.background-color')\n get hostBackgroundColor() {\n return this.backgroundColor();\n }\n\n @HostBinding('style.border')\n get hostBorder() {\n const bc = this.borderColor();\n\n if (!bc) {\n return null;\n }\n\n return `1px solid ${bc}`;\n }\n\n @HostBinding('style.padding')\n get hostPadding() {\n return this.padding();\n }\n\n @HostBinding('style.padding-inline')\n get hostPaddingInline() {\n return this.paddingInline();\n }\n}\n","<span [id]=\"id() ?? undefined\" [attr.aria-label]=\"ariaLabel()\"\n ><ng-content\n/></span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAkBa,cAAc,CAAA;;;AAGhB,IAAA,OAAO,GAAG,KAAK,CAAe,SAAS,8EAAC;;AAExC,IAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,4EAAC;;AAElC,IAAA,eAAe,GAAG,KAAK,CAAgB,IAAI,sFAAC;;AAE5C,IAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,kFAAC;;AAExC,IAAA,OAAO,GAAG,KAAK,CAAgB,IAAI,8EAAC;;AAEpC,IAAA,aAAa,GAAG,KAAK,CAAgB,IAAI,oFAAC;;AAG1C,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,gFAAC;AAC7B,IAAA,EAAE,GAAG,KAAK,CAAgB,IAAI,yEAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,gFAAC;;AAGtC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,OAAO,CAAC,UAAU,EAAE,CAAA,UAAA,EAAa,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,EAAE,IAAI,CAAC,SAAS,EAAE;aAChE,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG,CAAC;AACd,IAAA,CAAC,8EAAC;AAEF,IAAA,IACI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;AAEA,IAAA,IACI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;IACrB;AAEA,IAAA,IACI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE;IAC/B;AAEA,IAAA,IACI,UAAU,GAAA;AACZ,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;QAE7B,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,OAAO,IAAI;QACb;QAEA,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE;IAC1B;AAEA,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;AAEA,IAAA,IACI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE;IAC7B;uGA7DW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,i/CClB3B,iGAGA,EAAA,MAAA,EAAA,CAAA,i2CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDea,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iGAAA,EAAA,MAAA,EAAA,CAAA,i2CAAA,CAAA,EAAA;;sBA+B9C,WAAW;uBAAC,OAAO;;sBAKnB,WAAW;uBAAC,aAAa;;sBAKzB,WAAW;uBAAC,wBAAwB;;sBAKpC,WAAW;uBAAC,cAAc;;sBAW1B,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,sBAAsB;;;AE5ErC;;AAEG;;;;"}
@@ -170,11 +170,11 @@ class DialogComponent {
170
170
  }
171
171
  }
172
172
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DialogComponent, isStandalone: true, selector: "fk-dialog", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, preventClose: { classPropertyName: "preventClose", publicName: "preventClose", isSignal: true, isRequired: false, transformFunction: null }, canClose: { classPropertyName: "canClose", publicName: "canClose", isSignal: true, isRequired: false, transformFunction: null }, fullscreenMobile: { classPropertyName: "fullscreenMobile", publicName: "fullscreenMobile", isSignal: true, isRequired: false, transformFunction: null }, flexBody: { classPropertyName: "flexBody", publicName: "flexBody", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "ariaDescribedBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", beforeOpen: "beforeOpen", opened: "opened", beforeClose: "beforeClose", closed: "closed" }, host: { properties: { "class": "this.hostClass", "attr.id": "this.hostId" } }, queries: [{ propertyName: "customHeader", first: true, predicate: FkDialogHeaderDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (visible()) {\n <div\n class=\"fk-dialog__panel\"\n [class.fk-dialog__animate-panel--scale-fade]=\"\n animation() === 'scale-fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-up]=\"\n animation() === 'slide-up' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-down]=\"\n animation() === 'slide-down' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--scale-fade]=\"\n animation() === 'scale-fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-up]=\"\n animation() === 'slide-up' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-down]=\"\n animation() === 'slide-down' && animatingOut()\n \"\n [class.fk-dialog__panel--sm]=\"size() === 'sm'\"\n [class.fk-dialog__panel--md]=\"size() === 'md'\"\n [class.fk-dialog__panel--lg]=\"size() === 'lg'\"\n [class.fk-dialog__panel--xl]=\"size() === 'xl'\"\n [class.fk-dialog__panel--fullscreen]=\"size() === 'fullscreen'\"\n [class.fk-dialog__panel--fullscreen-auto]=\"fullscreenMobile()\"\n [class.fk-dialog__panel--top]=\"position() === 'top'\"\n role=\"dialog\"\n [attr.aria-modal]=\"modal() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [cdkTrapFocus]=\"modal()\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (customHeader() || header() || closable()) {\n <div class=\"fk-dialog__header\">\n <ng-content select=\"[fkDialogHeader]\" />\n\n @if (!customHeader() && header()) {\n <span class=\"fk-dialog__title\" [id]=\"titleId\">{{ header() }}</span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-dialog__close\"\n type=\"button\"\n aria-label=\"Close dialog\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-dialog__body\" [class.fk-dialog__body--flex]=\"flexBody()\">\n <ng-content />\n </div>\n\n <ng-content select=\"[libDialogFooter]\" />\n </div>\n}\n", styles: [":host{display:contents}.fk-dialog__panel{display:flex;flex-direction:column;background:var(--fk-dialog-panel-bg, var(--fk-color-surface, #ffffff));border:var(--fk-dialog-panel-border, none);border-radius:var(--fk-dialog-panel-border-radius, var(--fk-radius-lg, .75rem));box-shadow:var(--fk-dialog-panel-shadow, 0 8px 32px rgba(0, 0, 0, .12));max-height:var(--fk-dialog-panel-max-height, 85vh);width:calc(100vw - 2 * var(--fk-dialog-panel-margin, var(--fk-rhythm-4, 1rem)));overflow:clip}.fk-dialog__panel--sm{max-width:var(--fk-dialog-width-sm, 24rem)}.fk-dialog__panel--md{max-width:var(--fk-dialog-width-md, 32rem)}.fk-dialog__panel--lg{max-width:var(--fk-dialog-width-lg, 40rem)}.fk-dialog__panel--xl{max-width:var(--fk-dialog-width-xl, 52rem)}.fk-dialog__panel--fullscreen{max-width:none;max-height:none;width:100%;height:100%;border-radius:0}@media(max-width:47.999em){.fk-dialog__panel--fullscreen-auto{max-width:none;max-height:none;width:100%;height:100%;border-radius:0}}.fk-dialog__panel--top{align-self:flex-start}.fk-dialog__panel.fk-dialog__animate-panel--scale-fade{animation:fk-dialog-scale-fade-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--scale-fade{animation:fk-dialog-scale-fade-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--fade{animation:fk-dialog-fade-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--fade{animation:fk-dialog-fade-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--slide-up{animation:fk-dialog-slide-up-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--slide-up{animation:fk-dialog-slide-up-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--slide-down{animation:fk-dialog-slide-down-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--slide-down{animation:fk-dialog-slide-down-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__header{display:flex;align-items:center;justify-content:center;position:relative;padding:var(--fk-dialog-header-padding, var(--fk-rhythm-4, 1rem) var(--fk-dialog-header-padding-inline, var(--fk-rhythm-6, 1.5rem)));flex-shrink:0}.fk-dialog__title{font-family:var(--fk-font-family-base, \"Inter\", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\");font-size:var(--fk-typography-h4-font-size, 1.125rem);font-weight:var(--fk-font-weight-semibold, 600);color:var(--fk-color-text, #1f2d3d);line-height:var(--fk-typography-h4-line-height, 1.25);padding-inline-end:var(--fk-rhythm-7, 2rem)}.fk-dialog__close{position:absolute;right:var(--fk-dialog-header-padding-inline, var(--fk-rhythm-6, 1.5rem));display:flex;align-items:center;justify-content:center;width:var(--fk-dialog-close-size, 2rem);height:var(--fk-dialog-close-size, 2rem);padding:0;border:none;border-radius:var(--fk-radius-sm, .25rem);background:transparent;color:var(--fk-dialog-close-color, var(--fk-color-muted, #8a98a8));font-size:var(--fk-font-size-xl, 1.25rem);line-height:1;cursor:pointer;transition:color .15s ease,background-color .15s ease}.fk-dialog__close:hover{color:var(--fk-dialog-close-color-hover, var(--fk-color-text, #1f2d3d));background-color:var(--fk-color-surface-muted, #f7f9fb)}.fk-dialog__close:focus-visible{outline:none;box-shadow:var(--fk-focus-ring, 0 0 0 3px rgba(10, 132, 255, .18))}.fk-dialog__body{flex:1;padding:var(--fk-dialog-body-padding, var(--fk-rhythm-6, 1.5rem));overflow-y:auto;overscroll-behavior:contain;container-type:inline-size}.fk-dialog__body--flex{display:flex;flex-direction:column;overflow:hidden}::ng-deep [libDialogFooter]{display:flex;align-items:center;justify-content:center;gap:var(--fk-dialog-footer-gap, .75rem);padding:var(--fk-dialog-footer-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-6, 1.5rem));border-top:var(--fk-dialog-footer-border, 1px solid var(--fk-color-border, #d9e2ee));flex-shrink:0}::ng-deep [libDialogFooter]>*{flex:1 1 0;min-width:0}::ng-deep [fkDialogActions]{display:flex;gap:var(--fk-dialog-actions-gap, var(--fk-rhythm-3, .75rem));margin-top:var(--fk-dialog-actions-margin-top, var(--fk-rhythm-5, 1.25rem))}::ng-deep [fkDialogActions]>*{flex:1 1 0;min-width:0}@container (max-width: 24rem){::ng-deep [fkDialogActions]{flex-direction:column-reverse}::ng-deep [fkDialogActions]>*{flex:none;width:100%}}@keyframes fk-dialog-scale-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fk-dialog-scale-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes fk-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fk-dialog-fade-out{0%{opacity:1}to{opacity:0}}@keyframes fk-dialog-slide-up-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fk-dialog-slide-up-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(1rem)}}@keyframes fk-dialog-slide-down-in{0%{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fk-dialog-slide-down-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}@media(prefers-reduced-motion:reduce){.fk-dialog__animate-panel--scale-fade,.fk-dialog__animate-panel--fade,.fk-dialog__animate-panel--slide-up,.fk-dialog__animate-panel--slide-down,.fk-dialog__animate-panel-out--scale-fade,.fk-dialog__animate-panel-out--fade,.fk-dialog__animate-panel-out--slide-up,.fk-dialog__animate-panel-out--slide-down{animation:none}}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
173
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DialogComponent, isStandalone: true, selector: "fk-dialog", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, preventClose: { classPropertyName: "preventClose", publicName: "preventClose", isSignal: true, isRequired: false, transformFunction: null }, canClose: { classPropertyName: "canClose", publicName: "canClose", isSignal: true, isRequired: false, transformFunction: null }, fullscreenMobile: { classPropertyName: "fullscreenMobile", publicName: "fullscreenMobile", isSignal: true, isRequired: false, transformFunction: null }, flexBody: { classPropertyName: "flexBody", publicName: "flexBody", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "ariaDescribedBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", beforeOpen: "beforeOpen", opened: "opened", beforeClose: "beforeClose", closed: "closed" }, host: { properties: { "class": "this.hostClass", "attr.id": "this.hostId" } }, queries: [{ propertyName: "customHeader", first: true, predicate: FkDialogHeaderDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (visible()) {\n <div\n class=\"fk-dialog__panel\"\n [class.fk-dialog__animate-panel--scale-fade]=\"\n animation() === 'scale-fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-up]=\"\n animation() === 'slide-up' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-down]=\"\n animation() === 'slide-down' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--scale-fade]=\"\n animation() === 'scale-fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-up]=\"\n animation() === 'slide-up' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-down]=\"\n animation() === 'slide-down' && animatingOut()\n \"\n [class.fk-dialog__panel--sm]=\"size() === 'sm'\"\n [class.fk-dialog__panel--md]=\"size() === 'md'\"\n [class.fk-dialog__panel--lg]=\"size() === 'lg'\"\n [class.fk-dialog__panel--xl]=\"size() === 'xl'\"\n [class.fk-dialog__panel--fullscreen]=\"size() === 'fullscreen'\"\n [class.fk-dialog__panel--fullscreen-auto]=\"fullscreenMobile()\"\n [class.fk-dialog__panel--top]=\"position() === 'top'\"\n role=\"dialog\"\n [attr.aria-modal]=\"modal() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [cdkTrapFocus]=\"modal()\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (customHeader() || header() || closable()) {\n <div class=\"fk-dialog__header\">\n <ng-content select=\"[fkDialogHeader]\" />\n\n @if (!customHeader() && header()) {\n <span class=\"fk-dialog__title\" [id]=\"titleId\">{{ header() }}</span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-dialog__close\"\n type=\"button\"\n aria-label=\"Close dialog\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-dialog__body\" [class.fk-dialog__body--flex]=\"flexBody()\">\n <ng-content />\n </div>\n\n <ng-content select=\"[libDialogFooter]\" />\n </div>\n}\n", styles: [":host{display:contents}.fk-dialog__panel{display:flex;flex-direction:column;background:var(--fk-dialog-panel-bg, var(--fk-color-surface, #ffffff));border:var(--fk-dialog-panel-border, none);border-radius:var(--fk-dialog-panel-border-radius, var(--fk-radius-lg, .75rem));box-shadow:var(--fk-dialog-panel-shadow, 0 8px 32px rgba(0, 0, 0, .12));max-height:var(--fk-dialog-panel-max-height, 85vh);width:calc(100vw - 2 * var(--fk-dialog-panel-margin, var(--fk-rhythm-4, 1rem)));overflow:clip}.fk-dialog__panel--sm{max-width:var(--fk-dialog-width-sm, 24rem)}.fk-dialog__panel--md{max-width:var(--fk-dialog-width-md, 32rem)}.fk-dialog__panel--lg{max-width:var(--fk-dialog-width-lg, 40rem)}.fk-dialog__panel--xl{max-width:var(--fk-dialog-width-xl, 52rem)}.fk-dialog__panel--fullscreen{max-width:none;max-height:none;width:100%;height:100%;border-radius:0}@media(max-width:47.999em){.fk-dialog__panel--fullscreen-auto{max-width:none;max-height:none;width:100%;height:100%;border-radius:0}}.fk-dialog__panel--top{align-self:flex-start}.fk-dialog__panel.fk-dialog__animate-panel--scale-fade{animation:fk-dialog-scale-fade-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--scale-fade{animation:fk-dialog-scale-fade-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--fade{animation:fk-dialog-fade-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--fade{animation:fk-dialog-fade-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--slide-up{animation:fk-dialog-slide-up-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--slide-up{animation:fk-dialog-slide-up-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--slide-down{animation:fk-dialog-slide-down-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--slide-down{animation:fk-dialog-slide-down-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__header{display:flex;align-items:center;justify-content:center;position:relative;padding:var(--fk-dialog-header-padding, var(--fk-rhythm-4, 1rem) var(--fk-dialog-header-padding-inline, var(--fk-rhythm-6, 1.5rem)));flex-shrink:0}.fk-dialog__title{font-family:var(--fk-dialog-title-font-family, var(--fk-font-family-display, var(--fk-font-family-base, sans-serif)));font-size:var(--fk-typography-h4-font-size, 1.125rem);font-weight:var(--fk-font-weight-semibold, 600);color:var(--fk-color-text, #1f2d3d);line-height:var(--fk-typography-h4-line-height, 1.25);padding-inline-end:var(--fk-rhythm-7, 2rem)}.fk-dialog__close{position:absolute;right:var(--fk-dialog-header-padding-inline, var(--fk-rhythm-6, 1.5rem));display:flex;align-items:center;justify-content:center;width:var(--fk-dialog-close-size, 2rem);height:var(--fk-dialog-close-size, 2rem);padding:0;border:none;border-radius:var(--fk-radius-sm, .25rem);background:transparent;color:var(--fk-dialog-close-color, var(--fk-color-muted, #8a98a8));font-size:var(--fk-font-size-xl, 1.25rem);line-height:1;cursor:pointer;transition:color .15s ease,background-color .15s ease}.fk-dialog__close:hover{color:var(--fk-dialog-close-color-hover, var(--fk-color-text, #1f2d3d));background-color:var(--fk-color-surface-muted, #f7f9fb)}.fk-dialog__close:focus-visible{outline:none;box-shadow:var(--fk-focus-ring, 0 0 0 3px rgba(10, 132, 255, .18))}.fk-dialog__body{flex:1;padding:var(--fk-dialog-body-padding, var(--fk-rhythm-6, 1.5rem));overflow-y:auto;overscroll-behavior:contain;container-type:inline-size}.fk-dialog__body--flex{display:flex;flex-direction:column;overflow:hidden}::ng-deep [libDialogFooter]{display:flex;align-items:center;justify-content:center;gap:var(--fk-dialog-footer-gap, .75rem);padding:var(--fk-dialog-footer-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-6, 1.5rem));border-top:var(--fk-dialog-footer-border, 1px solid var(--fk-color-border, #d9e2ee));flex-shrink:0}::ng-deep [libDialogFooter]>*{flex:1 1 0;min-width:0}::ng-deep [fkDialogActions]{display:flex;gap:var(--fk-dialog-actions-gap, var(--fk-rhythm-3, .75rem));margin-top:var(--fk-dialog-actions-margin-top, var(--fk-rhythm-5, 1.25rem))}::ng-deep [fkDialogActions]>*{flex:1 1 0;min-width:0}@container (max-width: 24rem){::ng-deep [fkDialogActions]{flex-direction:column-reverse}::ng-deep [fkDialogActions]>*{flex:none;width:100%}}@keyframes fk-dialog-scale-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fk-dialog-scale-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes fk-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fk-dialog-fade-out{0%{opacity:1}to{opacity:0}}@keyframes fk-dialog-slide-up-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fk-dialog-slide-up-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(1rem)}}@keyframes fk-dialog-slide-down-in{0%{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fk-dialog-slide-down-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}@media(prefers-reduced-motion:reduce){.fk-dialog__animate-panel--scale-fade,.fk-dialog__animate-panel--fade,.fk-dialog__animate-panel--slide-up,.fk-dialog__animate-panel--slide-down,.fk-dialog__animate-panel-out--scale-fade,.fk-dialog__animate-panel-out--fade,.fk-dialog__animate-panel-out--slide-up,.fk-dialog__animate-panel-out--slide-down{animation:none}}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
174
174
  }
175
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DialogComponent, decorators: [{
176
176
  type: Component,
177
- args: [{ selector: 'fk-dialog', standalone: true, imports: [A11yModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (visible()) {\n <div\n class=\"fk-dialog__panel\"\n [class.fk-dialog__animate-panel--scale-fade]=\"\n animation() === 'scale-fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-up]=\"\n animation() === 'slide-up' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-down]=\"\n animation() === 'slide-down' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--scale-fade]=\"\n animation() === 'scale-fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-up]=\"\n animation() === 'slide-up' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-down]=\"\n animation() === 'slide-down' && animatingOut()\n \"\n [class.fk-dialog__panel--sm]=\"size() === 'sm'\"\n [class.fk-dialog__panel--md]=\"size() === 'md'\"\n [class.fk-dialog__panel--lg]=\"size() === 'lg'\"\n [class.fk-dialog__panel--xl]=\"size() === 'xl'\"\n [class.fk-dialog__panel--fullscreen]=\"size() === 'fullscreen'\"\n [class.fk-dialog__panel--fullscreen-auto]=\"fullscreenMobile()\"\n [class.fk-dialog__panel--top]=\"position() === 'top'\"\n role=\"dialog\"\n [attr.aria-modal]=\"modal() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [cdkTrapFocus]=\"modal()\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (customHeader() || header() || closable()) {\n <div class=\"fk-dialog__header\">\n <ng-content select=\"[fkDialogHeader]\" />\n\n @if (!customHeader() && header()) {\n <span class=\"fk-dialog__title\" [id]=\"titleId\">{{ header() }}</span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-dialog__close\"\n type=\"button\"\n aria-label=\"Close dialog\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-dialog__body\" [class.fk-dialog__body--flex]=\"flexBody()\">\n <ng-content />\n </div>\n\n <ng-content select=\"[libDialogFooter]\" />\n </div>\n}\n", styles: [":host{display:contents}.fk-dialog__panel{display:flex;flex-direction:column;background:var(--fk-dialog-panel-bg, var(--fk-color-surface, #ffffff));border:var(--fk-dialog-panel-border, none);border-radius:var(--fk-dialog-panel-border-radius, var(--fk-radius-lg, .75rem));box-shadow:var(--fk-dialog-panel-shadow, 0 8px 32px rgba(0, 0, 0, .12));max-height:var(--fk-dialog-panel-max-height, 85vh);width:calc(100vw - 2 * var(--fk-dialog-panel-margin, var(--fk-rhythm-4, 1rem)));overflow:clip}.fk-dialog__panel--sm{max-width:var(--fk-dialog-width-sm, 24rem)}.fk-dialog__panel--md{max-width:var(--fk-dialog-width-md, 32rem)}.fk-dialog__panel--lg{max-width:var(--fk-dialog-width-lg, 40rem)}.fk-dialog__panel--xl{max-width:var(--fk-dialog-width-xl, 52rem)}.fk-dialog__panel--fullscreen{max-width:none;max-height:none;width:100%;height:100%;border-radius:0}@media(max-width:47.999em){.fk-dialog__panel--fullscreen-auto{max-width:none;max-height:none;width:100%;height:100%;border-radius:0}}.fk-dialog__panel--top{align-self:flex-start}.fk-dialog__panel.fk-dialog__animate-panel--scale-fade{animation:fk-dialog-scale-fade-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--scale-fade{animation:fk-dialog-scale-fade-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--fade{animation:fk-dialog-fade-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--fade{animation:fk-dialog-fade-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--slide-up{animation:fk-dialog-slide-up-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--slide-up{animation:fk-dialog-slide-up-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--slide-down{animation:fk-dialog-slide-down-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--slide-down{animation:fk-dialog-slide-down-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__header{display:flex;align-items:center;justify-content:center;position:relative;padding:var(--fk-dialog-header-padding, var(--fk-rhythm-4, 1rem) var(--fk-dialog-header-padding-inline, var(--fk-rhythm-6, 1.5rem)));flex-shrink:0}.fk-dialog__title{font-family:var(--fk-font-family-base, \"Inter\", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\");font-size:var(--fk-typography-h4-font-size, 1.125rem);font-weight:var(--fk-font-weight-semibold, 600);color:var(--fk-color-text, #1f2d3d);line-height:var(--fk-typography-h4-line-height, 1.25);padding-inline-end:var(--fk-rhythm-7, 2rem)}.fk-dialog__close{position:absolute;right:var(--fk-dialog-header-padding-inline, var(--fk-rhythm-6, 1.5rem));display:flex;align-items:center;justify-content:center;width:var(--fk-dialog-close-size, 2rem);height:var(--fk-dialog-close-size, 2rem);padding:0;border:none;border-radius:var(--fk-radius-sm, .25rem);background:transparent;color:var(--fk-dialog-close-color, var(--fk-color-muted, #8a98a8));font-size:var(--fk-font-size-xl, 1.25rem);line-height:1;cursor:pointer;transition:color .15s ease,background-color .15s ease}.fk-dialog__close:hover{color:var(--fk-dialog-close-color-hover, var(--fk-color-text, #1f2d3d));background-color:var(--fk-color-surface-muted, #f7f9fb)}.fk-dialog__close:focus-visible{outline:none;box-shadow:var(--fk-focus-ring, 0 0 0 3px rgba(10, 132, 255, .18))}.fk-dialog__body{flex:1;padding:var(--fk-dialog-body-padding, var(--fk-rhythm-6, 1.5rem));overflow-y:auto;overscroll-behavior:contain;container-type:inline-size}.fk-dialog__body--flex{display:flex;flex-direction:column;overflow:hidden}::ng-deep [libDialogFooter]{display:flex;align-items:center;justify-content:center;gap:var(--fk-dialog-footer-gap, .75rem);padding:var(--fk-dialog-footer-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-6, 1.5rem));border-top:var(--fk-dialog-footer-border, 1px solid var(--fk-color-border, #d9e2ee));flex-shrink:0}::ng-deep [libDialogFooter]>*{flex:1 1 0;min-width:0}::ng-deep [fkDialogActions]{display:flex;gap:var(--fk-dialog-actions-gap, var(--fk-rhythm-3, .75rem));margin-top:var(--fk-dialog-actions-margin-top, var(--fk-rhythm-5, 1.25rem))}::ng-deep [fkDialogActions]>*{flex:1 1 0;min-width:0}@container (max-width: 24rem){::ng-deep [fkDialogActions]{flex-direction:column-reverse}::ng-deep [fkDialogActions]>*{flex:none;width:100%}}@keyframes fk-dialog-scale-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fk-dialog-scale-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes fk-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fk-dialog-fade-out{0%{opacity:1}to{opacity:0}}@keyframes fk-dialog-slide-up-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fk-dialog-slide-up-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(1rem)}}@keyframes fk-dialog-slide-down-in{0%{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fk-dialog-slide-down-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}@media(prefers-reduced-motion:reduce){.fk-dialog__animate-panel--scale-fade,.fk-dialog__animate-panel--fade,.fk-dialog__animate-panel--slide-up,.fk-dialog__animate-panel--slide-down,.fk-dialog__animate-panel-out--scale-fade,.fk-dialog__animate-panel-out--fade,.fk-dialog__animate-panel-out--slide-up,.fk-dialog__animate-panel-out--slide-down{animation:none}}\n"] }]
177
+ args: [{ selector: 'fk-dialog', standalone: true, imports: [A11yModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (visible()) {\n <div\n class=\"fk-dialog__panel\"\n [class.fk-dialog__animate-panel--scale-fade]=\"\n animation() === 'scale-fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-up]=\"\n animation() === 'slide-up' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-down]=\"\n animation() === 'slide-down' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--scale-fade]=\"\n animation() === 'scale-fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-up]=\"\n animation() === 'slide-up' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-down]=\"\n animation() === 'slide-down' && animatingOut()\n \"\n [class.fk-dialog__panel--sm]=\"size() === 'sm'\"\n [class.fk-dialog__panel--md]=\"size() === 'md'\"\n [class.fk-dialog__panel--lg]=\"size() === 'lg'\"\n [class.fk-dialog__panel--xl]=\"size() === 'xl'\"\n [class.fk-dialog__panel--fullscreen]=\"size() === 'fullscreen'\"\n [class.fk-dialog__panel--fullscreen-auto]=\"fullscreenMobile()\"\n [class.fk-dialog__panel--top]=\"position() === 'top'\"\n role=\"dialog\"\n [attr.aria-modal]=\"modal() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [cdkTrapFocus]=\"modal()\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (customHeader() || header() || closable()) {\n <div class=\"fk-dialog__header\">\n <ng-content select=\"[fkDialogHeader]\" />\n\n @if (!customHeader() && header()) {\n <span class=\"fk-dialog__title\" [id]=\"titleId\">{{ header() }}</span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-dialog__close\"\n type=\"button\"\n aria-label=\"Close dialog\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-dialog__body\" [class.fk-dialog__body--flex]=\"flexBody()\">\n <ng-content />\n </div>\n\n <ng-content select=\"[libDialogFooter]\" />\n </div>\n}\n", styles: [":host{display:contents}.fk-dialog__panel{display:flex;flex-direction:column;background:var(--fk-dialog-panel-bg, var(--fk-color-surface, #ffffff));border:var(--fk-dialog-panel-border, none);border-radius:var(--fk-dialog-panel-border-radius, var(--fk-radius-lg, .75rem));box-shadow:var(--fk-dialog-panel-shadow, 0 8px 32px rgba(0, 0, 0, .12));max-height:var(--fk-dialog-panel-max-height, 85vh);width:calc(100vw - 2 * var(--fk-dialog-panel-margin, var(--fk-rhythm-4, 1rem)));overflow:clip}.fk-dialog__panel--sm{max-width:var(--fk-dialog-width-sm, 24rem)}.fk-dialog__panel--md{max-width:var(--fk-dialog-width-md, 32rem)}.fk-dialog__panel--lg{max-width:var(--fk-dialog-width-lg, 40rem)}.fk-dialog__panel--xl{max-width:var(--fk-dialog-width-xl, 52rem)}.fk-dialog__panel--fullscreen{max-width:none;max-height:none;width:100%;height:100%;border-radius:0}@media(max-width:47.999em){.fk-dialog__panel--fullscreen-auto{max-width:none;max-height:none;width:100%;height:100%;border-radius:0}}.fk-dialog__panel--top{align-self:flex-start}.fk-dialog__panel.fk-dialog__animate-panel--scale-fade{animation:fk-dialog-scale-fade-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--scale-fade{animation:fk-dialog-scale-fade-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--fade{animation:fk-dialog-fade-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--fade{animation:fk-dialog-fade-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--slide-up{animation:fk-dialog-slide-up-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--slide-up{animation:fk-dialog-slide-up-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel--slide-down{animation:fk-dialog-slide-down-in .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__panel.fk-dialog__animate-panel-out--slide-down{animation:fk-dialog-slide-down-out .2s cubic-bezier(.4,0,.2,1) both}.fk-dialog__header{display:flex;align-items:center;justify-content:center;position:relative;padding:var(--fk-dialog-header-padding, var(--fk-rhythm-4, 1rem) var(--fk-dialog-header-padding-inline, var(--fk-rhythm-6, 1.5rem)));flex-shrink:0}.fk-dialog__title{font-family:var(--fk-dialog-title-font-family, var(--fk-font-family-display, var(--fk-font-family-base, sans-serif)));font-size:var(--fk-typography-h4-font-size, 1.125rem);font-weight:var(--fk-font-weight-semibold, 600);color:var(--fk-color-text, #1f2d3d);line-height:var(--fk-typography-h4-line-height, 1.25);padding-inline-end:var(--fk-rhythm-7, 2rem)}.fk-dialog__close{position:absolute;right:var(--fk-dialog-header-padding-inline, var(--fk-rhythm-6, 1.5rem));display:flex;align-items:center;justify-content:center;width:var(--fk-dialog-close-size, 2rem);height:var(--fk-dialog-close-size, 2rem);padding:0;border:none;border-radius:var(--fk-radius-sm, .25rem);background:transparent;color:var(--fk-dialog-close-color, var(--fk-color-muted, #8a98a8));font-size:var(--fk-font-size-xl, 1.25rem);line-height:1;cursor:pointer;transition:color .15s ease,background-color .15s ease}.fk-dialog__close:hover{color:var(--fk-dialog-close-color-hover, var(--fk-color-text, #1f2d3d));background-color:var(--fk-color-surface-muted, #f7f9fb)}.fk-dialog__close:focus-visible{outline:none;box-shadow:var(--fk-focus-ring, 0 0 0 3px rgba(10, 132, 255, .18))}.fk-dialog__body{flex:1;padding:var(--fk-dialog-body-padding, var(--fk-rhythm-6, 1.5rem));overflow-y:auto;overscroll-behavior:contain;container-type:inline-size}.fk-dialog__body--flex{display:flex;flex-direction:column;overflow:hidden}::ng-deep [libDialogFooter]{display:flex;align-items:center;justify-content:center;gap:var(--fk-dialog-footer-gap, .75rem);padding:var(--fk-dialog-footer-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-6, 1.5rem));border-top:var(--fk-dialog-footer-border, 1px solid var(--fk-color-border, #d9e2ee));flex-shrink:0}::ng-deep [libDialogFooter]>*{flex:1 1 0;min-width:0}::ng-deep [fkDialogActions]{display:flex;gap:var(--fk-dialog-actions-gap, var(--fk-rhythm-3, .75rem));margin-top:var(--fk-dialog-actions-margin-top, var(--fk-rhythm-5, 1.25rem))}::ng-deep [fkDialogActions]>*{flex:1 1 0;min-width:0}@container (max-width: 24rem){::ng-deep [fkDialogActions]{flex-direction:column-reverse}::ng-deep [fkDialogActions]>*{flex:none;width:100%}}@keyframes fk-dialog-scale-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fk-dialog-scale-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes fk-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fk-dialog-fade-out{0%{opacity:1}to{opacity:0}}@keyframes fk-dialog-slide-up-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fk-dialog-slide-up-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(1rem)}}@keyframes fk-dialog-slide-down-in{0%{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fk-dialog-slide-down-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}@media(prefers-reduced-motion:reduce){.fk-dialog__animate-panel--scale-fade,.fk-dialog__animate-panel--fade,.fk-dialog__animate-panel--slide-up,.fk-dialog__animate-panel--slide-down,.fk-dialog__animate-panel-out--scale-fade,.fk-dialog__animate-panel-out--fade,.fk-dialog__animate-panel-out--slide-up,.fk-dialog__animate-panel-out--slide-down{animation:none}}\n"] }]
178
178
  }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], modal: [{ type: i0.Input, args: [{ isSignal: true, alias: "modal", required: false }] }], closable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closable", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], autoFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoFocus", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], preventClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventClose", required: false }] }], canClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "canClose", required: false }] }], fullscreenMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullscreenMobile", required: false }] }], flexBody: [{ type: i0.Input, args: [{ isSignal: true, alias: "flexBody", required: false }] }], customHeader: [{ type: i0.ContentChild, args: [i0.forwardRef(() => FkDialogHeaderDirective), { isSignal: true }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }], beforeOpen: [{ type: i0.Output, args: ["beforeOpen"] }], opened: [{ type: i0.Output, args: ["opened"] }], beforeClose: [{ type: i0.Output, args: ["beforeClose"] }], closed: [{ type: i0.Output, args: ["closed"] }], hostClass: [{
179
179
  type: HostBinding,
180
180
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"frame-kit-ui-ng-ui-dialog.mjs","sources":["../../../../packages/ui-ng/ui/dialog/dialog-header.directive.ts","../../../../packages/ui-ng/ui/dialog/dialog.component.ts","../../../../packages/ui-ng/ui/dialog/dialog.component.html","../../../../packages/ui-ng/ui/dialog/dialog.config.ts","../../../../packages/ui-ng/ui/dialog/dialog-ref.ts","../../../../packages/ui-ng/ui/dialog/dialog.service.ts","../../../../packages/ui-ng/ui/dialog/dialog-actions.directive.ts","../../../../packages/ui-ng/ui/dialog/frame-kit-ui-ng-ui-dialog.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fkDialogHeader]',\n standalone: true,\n})\nexport class FkDialogHeaderDirective {}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport type {\n CanCloseFn,\n DialogAnimation,\n DialogPosition,\n DialogSize,\n} from './dialog.types';\nimport { FkDialogHeaderDirective } from './dialog-header.directive';\n\nlet nextDialogId = 0;\n\n/**\n * Dialog panel chrome.\n *\n * Hosted inside a CDK overlay by `DialogService`, so the overlay layer owns\n * the backdrop, scroll blocking, positioning, stacking, and Escape / outside\n * dispatch. This component renders the panel itself: header / body / footer\n * projection, sizing, the enter animation, focus trapping, and the close\n * guard.\n */\n@Component({\n selector: 'fk-dialog',\n standalone: true,\n imports: [A11yModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './dialog.component.html',\n styleUrl: './dialog.component.scss',\n})\nexport class DialogComponent {\n // ===== INPUTS =====\n /** Controls whether the dialog is open. */\n readonly open = input(false);\n /** When true, marks the panel `aria-modal` and traps focus. */\n readonly modal = input(true);\n /** When true, shows the close button in the dialog header. */\n readonly closable = input(true);\n /** Size variant that controls the dialog's max-width. */\n readonly size = input<DialogSize>('md');\n /** Where the dialog is anchored on screen. */\n readonly position = input<DialogPosition>('center');\n /** Optional title text rendered in the dialog header and used for `aria-labelledby`. */\n readonly header = input<string | null>(null);\n /** When true, focus returns to the previously focused element when the dialog closes. */\n readonly restoreFocus = input(true);\n /** When true, CDK auto-focus is applied when the dialog opens. */\n readonly autoFocus = input(true);\n /** Entry/exit animation applied to the dialog panel. */\n readonly animation = input<DialogAnimation>('scale-fade');\n /** When true, all close mechanisms (Escape, backdrop, button) are blocked. */\n readonly preventClose = input(false);\n /** Async guard function called before closing; return false to cancel the close. */\n readonly canClose = input<CanCloseFn | null>(null);\n /** When true, the dialog expands to full-screen on mobile viewports. */\n readonly fullscreenMobile = input(false);\n /** When true, the dialog body uses a flex column layout. */\n readonly flexBody = input(false);\n\n // ===== CONTENT CHILDREN =====\n readonly customHeader = contentChild(FkDialogHeaderDirective);\n\n // ===== BASE PROPS =====\n readonly className = input<string>('');\n readonly id = input<string | null>(null);\n readonly ariaLabel = input<string | null>(null);\n readonly ariaDescribedBy = input<string | null>(null);\n\n // ===== OUTPUTS =====\n /** Fires when the dialog's open state should change, emitting the new boolean. */\n readonly openChange = output<boolean>();\n /** Fires immediately before the dialog begins its open animation. */\n readonly beforeOpen = output<void>();\n /** Fires after the dialog is fully open and visible. */\n readonly opened = output<void>();\n /** Fires immediately before the dialog begins its close animation. */\n readonly beforeClose = output<void>();\n /** Fires after the dialog is fully closed. */\n readonly closed = output<void>();\n\n // ===== INTERNAL STATE =====\n private readonly doc = inject(DOCUMENT);\n readonly titleId = `fk-dialog-title-${nextDialogId++}`;\n private previouslyFocusedElement: HTMLElement | null = null;\n private closeGuardRunning = false;\n\n /** Whether the dialog DOM is rendered (stays true during exit animation). */\n readonly visible = signal(false);\n\n /** Whether the dialog is animating out. */\n readonly animatingOut = signal(false);\n\n // ===== COMPUTED =====\n readonly classes = computed(() => {\n return ['fk-dialog', this.className()].filter(Boolean).join(' ');\n });\n\n readonly ariaLabelledBy = computed(() => {\n if (this.ariaLabel()) {\n return null;\n }\n\n return this.header() ? this.titleId : null;\n });\n\n constructor() {\n effect(() => {\n const isOpen = this.open();\n\n if (isOpen) {\n this.onDialogOpen();\n } else {\n this.onDialogClose();\n }\n });\n }\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n\n @HostBinding('attr.id')\n get hostId() {\n return this.id();\n }\n\n // ===== ACTIONS =====\n /** Closes the dialog, running any `canClose` guard first; no-ops when `preventClose` is true. */\n async close() {\n if (this.closeGuardRunning) {\n return;\n }\n\n if (this.preventClose()) {\n return;\n }\n\n const guard = this.canClose();\n\n if (guard) {\n this.closeGuardRunning = true;\n\n try {\n const allowed = await Promise.resolve(guard());\n\n if (!allowed) {\n return;\n }\n } finally {\n this.closeGuardRunning = false;\n }\n }\n\n this.beforeClose.emit();\n this.openChange.emit(false);\n this.closed.emit();\n }\n\n /** Called when the panel exit animation finishes. */\n onExitAnimationDone() {\n if (this.animatingOut()) {\n this.animatingOut.set(false);\n this.visible.set(false);\n }\n }\n\n // ===== LIFECYCLE =====\n private onDialogOpen() {\n this.previouslyFocusedElement =\n (this.doc.activeElement as HTMLElement) ?? null;\n\n this.beforeOpen.emit();\n this.animatingOut.set(false);\n this.visible.set(true);\n this.opened.emit();\n }\n\n private onDialogClose() {\n if (this.visible()) {\n if (this.animation() !== 'none') {\n this.animatingOut.set(true);\n } else {\n this.visible.set(false);\n }\n }\n\n if (this.restoreFocus() && this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n this.previouslyFocusedElement = null;\n }\n }\n}\n","@if (visible()) {\n <div\n class=\"fk-dialog__panel\"\n [class.fk-dialog__animate-panel--scale-fade]=\"\n animation() === 'scale-fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-up]=\"\n animation() === 'slide-up' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-down]=\"\n animation() === 'slide-down' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--scale-fade]=\"\n animation() === 'scale-fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-up]=\"\n animation() === 'slide-up' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-down]=\"\n animation() === 'slide-down' && animatingOut()\n \"\n [class.fk-dialog__panel--sm]=\"size() === 'sm'\"\n [class.fk-dialog__panel--md]=\"size() === 'md'\"\n [class.fk-dialog__panel--lg]=\"size() === 'lg'\"\n [class.fk-dialog__panel--xl]=\"size() === 'xl'\"\n [class.fk-dialog__panel--fullscreen]=\"size() === 'fullscreen'\"\n [class.fk-dialog__panel--fullscreen-auto]=\"fullscreenMobile()\"\n [class.fk-dialog__panel--top]=\"position() === 'top'\"\n role=\"dialog\"\n [attr.aria-modal]=\"modal() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [cdkTrapFocus]=\"modal()\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (customHeader() || header() || closable()) {\n <div class=\"fk-dialog__header\">\n <ng-content select=\"[fkDialogHeader]\" />\n\n @if (!customHeader() && header()) {\n <span class=\"fk-dialog__title\" [id]=\"titleId\">{{ header() }}</span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-dialog__close\"\n type=\"button\"\n aria-label=\"Close dialog\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-dialog__body\" [class.fk-dialog__body--flex]=\"flexBody()\">\n <ng-content />\n </div>\n\n <ng-content select=\"[libDialogFooter]\" />\n </div>\n}\n","import type {\n CanCloseFn,\n DialogAnimation,\n DialogPosition,\n DialogSize,\n} from './dialog.types';\n\nexport interface DialogConfig<TData = unknown> {\n modal?: boolean;\n closable?: boolean;\n closeOnEscape?: boolean;\n closeOnBackdrop?: boolean;\n size?: DialogSize;\n position?: DialogPosition;\n animation?: DialogAnimation;\n header?: string | null;\n restoreFocus?: boolean;\n autoFocus?: boolean;\n preventClose?: boolean;\n canClose?: CanCloseFn;\n fullscreenMobile?: boolean;\n flexBody?: boolean;\n className?: string;\n ariaLabel?: string | null;\n ariaDescribedBy?: string | null;\n data?: TData;\n}\n\nexport const DEFAULT_DIALOG_CONFIG: DialogConfig = {\n modal: true,\n closable: true,\n closeOnEscape: true,\n closeOnBackdrop: false,\n size: 'md',\n position: 'center',\n animation: 'scale-fade',\n header: null,\n restoreFocus: true,\n autoFocus: true,\n preventClose: false,\n fullscreenMobile: false,\n flexBody: false,\n className: '',\n ariaLabel: null,\n ariaDescribedBy: null,\n};\n","import { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport type { DialogConfig } from './dialog.config';\nimport type { CanCloseFn } from './dialog.types';\n\nexport class DialogRef<TResult = unknown, TData = unknown> {\n private readonly beforeOpenSubject = new Subject<void>();\n private readonly afterOpenedSubject = new Subject<void>();\n private readonly beforeCloseSubject = new Subject<void>();\n private readonly afterClosedSubject = new Subject<TResult | undefined>();\n private closed = false;\n private closeGuard: CanCloseFn | null = null;\n\n readonly config: DialogConfig<TData>;\n\n constructor(config: DialogConfig<TData> = {} as DialogConfig<TData>) {\n this.config = config;\n\n if (config.canClose) {\n this.closeGuard = config.canClose;\n }\n }\n\n get data(): TData | undefined {\n return this.config.data;\n }\n\n setCanClose(guard: CanCloseFn | null) {\n this.closeGuard = guard;\n }\n\n async close(result?: TResult) {\n if (this.closed) {\n return;\n }\n\n if (this.config.preventClose) {\n return;\n }\n\n if (this.closeGuard) {\n const allowed = await Promise.resolve(this.closeGuard());\n\n if (!allowed) {\n return;\n }\n }\n\n this.beforeCloseSubject.next();\n this.beforeCloseSubject.complete();\n\n this.closed = true;\n this.afterClosedSubject.next(result);\n this.afterClosedSubject.complete();\n }\n\n beforeOpen(): Observable<void> {\n return this.beforeOpenSubject.asObservable().pipe(take(1));\n }\n\n afterOpened(): Observable<void> {\n return this.afterOpenedSubject.asObservable().pipe(take(1));\n }\n\n beforeClose(): Observable<void> {\n return this.beforeCloseSubject.asObservable().pipe(take(1));\n }\n\n afterClosed(): Observable<TResult | undefined> {\n return this.afterClosedSubject.asObservable().pipe(take(1));\n }\n\n /** @internal */\n markBeforeOpen() {\n this.beforeOpenSubject.next();\n this.beforeOpenSubject.complete();\n }\n\n /** @internal */\n markOpened() {\n this.afterOpenedSubject.next();\n this.afterOpenedSubject.complete();\n }\n}\n","import { ESCAPE } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\n\nimport { DialogComponent } from './dialog.component';\nimport { DEFAULT_DIALOG_CONFIG, DialogConfig } from './dialog.config';\nimport { DialogRef } from './dialog-ref';\n\nexport const DIALOG_DATA = Symbol('DIALOG_DATA');\nexport const DIALOG_REF = Symbol('DIALOG_REF');\n\ninterface DialogEntry {\n ref: DialogRef;\n overlayRef: OverlayRef;\n hostRef: ComponentRef<DialogComponent>;\n contentRef: ComponentRef<unknown>;\n}\n\n/**\n * Opens dialogs as CDK overlays.\n *\n * CDK owns the cross-cutting overlay concerns — backdrop, scroll blocking,\n * centered positioning, z-index stacking (overlays layer by open order), and\n * top-of-stack dispatch of Escape / outside clicks. The `DialogComponent` it\n * hosts is just the panel chrome (header / body / footer, sizing, enter\n * animation, focus trap). There is no global \"opening X closes lower overlays\"\n * rule: a dialog opened over a drawer stacks on top of it, and Escape / an\n * outside press dismisses whichever overlay is on top.\n */\n@Injectable({ providedIn: 'root' })\nexport class DialogService {\n private readonly overlay = inject(Overlay);\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n private readonly doc = inject(DOCUMENT);\n\n private activeDialogs: DialogEntry[] = [];\n\n get openCount(): number {\n return this.activeDialogs.length;\n }\n\n open<TResult = unknown, TData = unknown>(\n content: Type<unknown>,\n config?: DialogConfig<TData>,\n ): DialogRef<TResult, TData> {\n const mergedConfig = {\n ...DEFAULT_DIALOG_CONFIG,\n ...config,\n } as DialogConfig<TData>;\n const dialogRef = new DialogRef<TResult, TData>(mergedConfig);\n\n const positionStrategy = this.overlay\n .position()\n .global()\n .centerHorizontally();\n\n if (mergedConfig.position === 'top') {\n positionStrategy.top('10vh');\n } else {\n positionStrategy.centerVertically();\n }\n\n const overlayRef = this.overlay.create({\n hasBackdrop: mergedConfig.modal ?? true,\n backdropClass: 'fk-dialog__backdrop',\n panelClass: 'fk-dialog__pane',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy,\n disposeOnNavigation: true,\n });\n\n const childInjector = Injector.create({\n parent: this.injector,\n providers: [\n { provide: DIALOG_DATA as never, useValue: mergedConfig.data },\n { provide: DIALOG_REF as never, useValue: dialogRef },\n ],\n });\n\n const hostRef = overlayRef.attach(\n new ComponentPortal(DialogComponent, null, childInjector),\n );\n\n const contentRef = createComponent(content, {\n environmentInjector: this.injector,\n elementInjector: childInjector,\n hostElement: this.doc.createElement('div'),\n });\n\n this.appRef.attachView(contentRef.hostView);\n\n const entry: DialogEntry = {\n ref: dialogRef as DialogRef<unknown, unknown>,\n overlayRef,\n hostRef,\n contentRef,\n };\n\n this.activeDialogs.push(entry);\n\n this.applyConfig(hostRef, mergedConfig);\n\n // CDK dispatches these to the top overlay only, so Escape / an outside\n // press dismisses the topmost dialog. `dialogRef.close()` runs the\n // preventClose + canClose guards.\n overlayRef.keydownEvents().subscribe((event) => {\n if (event.keyCode === ESCAPE && mergedConfig.closeOnEscape) {\n dialogRef.close();\n }\n });\n\n overlayRef.backdropClick().subscribe(() => {\n if (mergedConfig.closeOnBackdrop) {\n dialogRef.close();\n }\n });\n\n hostRef.instance.beforeOpen.subscribe(() => {\n dialogRef.markBeforeOpen();\n });\n\n hostRef.instance.opened.subscribe(() => {\n dialogRef.markOpened();\n });\n\n hostRef.instance.closed.subscribe(() => {\n dialogRef.close();\n });\n\n dialogRef.afterClosed().subscribe(() => {\n this.destroyDialog(entry);\n });\n\n hostRef.setInput('open', true);\n hostRef.changeDetectorRef.detectChanges();\n\n const panelBody =\n overlayRef.overlayElement.querySelector('.fk-dialog__body');\n\n if (panelBody) {\n panelBody.appendChild(contentRef.location.nativeElement);\n contentRef.changeDetectorRef.detectChanges();\n\n // Move [libDialogFooter] elements out of the body to the panel root so\n // they render in the pinned footer area (after fk-dialog__body).\n const panel = panelBody.closest('.fk-dialog__panel');\n const footerEls = panelBody.querySelectorAll('[libDialogFooter]');\n\n footerEls.forEach((el: Element) => {\n panel?.appendChild(el);\n });\n }\n\n return dialogRef;\n }\n\n closeAll() {\n [...this.activeDialogs].forEach((entry) => entry.ref.close());\n }\n\n private applyConfig(\n hostRef: ComponentRef<DialogComponent>,\n config: DialogConfig,\n ) {\n hostRef.setInput('modal', config.modal ?? true);\n hostRef.setInput('closable', config.closable ?? true);\n hostRef.setInput('size', config.size ?? 'md');\n hostRef.setInput('position', config.position ?? 'center');\n hostRef.setInput('animation', config.animation ?? 'scale-fade');\n hostRef.setInput('header', config.header ?? null);\n hostRef.setInput('restoreFocus', config.restoreFocus ?? true);\n hostRef.setInput('autoFocus', config.autoFocus ?? true);\n hostRef.setInput('className', config.className ?? '');\n hostRef.setInput('preventClose', config.preventClose ?? false);\n hostRef.setInput('canClose', config.canClose ?? null);\n hostRef.setInput('fullscreenMobile', config.fullscreenMobile ?? false);\n hostRef.setInput('flexBody', config.flexBody ?? false);\n hostRef.setInput('ariaLabel', config.ariaLabel ?? null);\n hostRef.setInput('ariaDescribedBy', config.ariaDescribedBy ?? null);\n }\n\n private destroyDialog(entry: DialogEntry) {\n const idx = this.activeDialogs.indexOf(entry);\n\n if (idx > -1) {\n this.activeDialogs.splice(idx, 1);\n }\n\n // Let the component restore focus before the overlay (and its hosted\n // component) are torn down.\n entry.hostRef.setInput('open', false);\n entry.hostRef.changeDetectorRef.detectChanges();\n\n this.appRef.detachView(entry.contentRef.hostView);\n entry.contentRef.destroy();\n\n // Disposing the overlay detaches + destroys the hosted DialogComponent,\n // removes the backdrop, and releases the scroll-block strategy.\n entry.overlayRef.dispose();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fkDialogActions]',\n standalone: true,\n})\nexport class FkDialogActionsDirective {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-kit-ui-ng-ui-dialog.mjs","sources":["../../../../packages/ui-ng/ui/dialog/dialog-header.directive.ts","../../../../packages/ui-ng/ui/dialog/dialog.component.ts","../../../../packages/ui-ng/ui/dialog/dialog.component.html","../../../../packages/ui-ng/ui/dialog/dialog.config.ts","../../../../packages/ui-ng/ui/dialog/dialog-ref.ts","../../../../packages/ui-ng/ui/dialog/dialog.service.ts","../../../../packages/ui-ng/ui/dialog/dialog-actions.directive.ts","../../../../packages/ui-ng/ui/dialog/frame-kit-ui-ng-ui-dialog.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fkDialogHeader]',\n standalone: true,\n})\nexport class FkDialogHeaderDirective {}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport type {\n CanCloseFn,\n DialogAnimation,\n DialogPosition,\n DialogSize,\n} from './dialog.types';\nimport { FkDialogHeaderDirective } from './dialog-header.directive';\n\nlet nextDialogId = 0;\n\n/**\n * Dialog panel chrome.\n *\n * Hosted inside a CDK overlay by `DialogService`, so the overlay layer owns\n * the backdrop, scroll blocking, positioning, stacking, and Escape / outside\n * dispatch. This component renders the panel itself: header / body / footer\n * projection, sizing, the enter animation, focus trapping, and the close\n * guard.\n */\n@Component({\n selector: 'fk-dialog',\n standalone: true,\n imports: [A11yModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './dialog.component.html',\n styleUrl: './dialog.component.scss',\n})\nexport class DialogComponent {\n // ===== INPUTS =====\n /** Controls whether the dialog is open. */\n readonly open = input(false);\n /** When true, marks the panel `aria-modal` and traps focus. */\n readonly modal = input(true);\n /** When true, shows the close button in the dialog header. */\n readonly closable = input(true);\n /** Size variant that controls the dialog's max-width. */\n readonly size = input<DialogSize>('md');\n /** Where the dialog is anchored on screen. */\n readonly position = input<DialogPosition>('center');\n /** Optional title text rendered in the dialog header and used for `aria-labelledby`. */\n readonly header = input<string | null>(null);\n /** When true, focus returns to the previously focused element when the dialog closes. */\n readonly restoreFocus = input(true);\n /** When true, CDK auto-focus is applied when the dialog opens. */\n readonly autoFocus = input(true);\n /** Entry/exit animation applied to the dialog panel. */\n readonly animation = input<DialogAnimation>('scale-fade');\n /** When true, all close mechanisms (Escape, backdrop, button) are blocked. */\n readonly preventClose = input(false);\n /** Async guard function called before closing; return false to cancel the close. */\n readonly canClose = input<CanCloseFn | null>(null);\n /** When true, the dialog expands to full-screen on mobile viewports. */\n readonly fullscreenMobile = input(false);\n /** When true, the dialog body uses a flex column layout. */\n readonly flexBody = input(false);\n\n // ===== CONTENT CHILDREN =====\n readonly customHeader = contentChild(FkDialogHeaderDirective);\n\n // ===== BASE PROPS =====\n readonly className = input<string>('');\n readonly id = input<string | null>(null);\n readonly ariaLabel = input<string | null>(null);\n readonly ariaDescribedBy = input<string | null>(null);\n\n // ===== OUTPUTS =====\n /** Fires when the dialog's open state should change, emitting the new boolean. */\n readonly openChange = output<boolean>();\n /** Fires immediately before the dialog begins its open animation. */\n readonly beforeOpen = output<void>();\n /** Fires after the dialog is fully open and visible. */\n readonly opened = output<void>();\n /** Fires immediately before the dialog begins its close animation. */\n readonly beforeClose = output<void>();\n /** Fires after the dialog is fully closed. */\n readonly closed = output<void>();\n\n // ===== INTERNAL STATE =====\n private readonly doc = inject(DOCUMENT);\n readonly titleId = `fk-dialog-title-${nextDialogId++}`;\n private previouslyFocusedElement: HTMLElement | null = null;\n private closeGuardRunning = false;\n\n /** Whether the dialog DOM is rendered (stays true during exit animation). */\n readonly visible = signal(false);\n\n /** Whether the dialog is animating out. */\n readonly animatingOut = signal(false);\n\n // ===== COMPUTED =====\n readonly classes = computed(() => {\n return ['fk-dialog', this.className()].filter(Boolean).join(' ');\n });\n\n readonly ariaLabelledBy = computed(() => {\n if (this.ariaLabel()) {\n return null;\n }\n\n return this.header() ? this.titleId : null;\n });\n\n constructor() {\n effect(() => {\n const isOpen = this.open();\n\n if (isOpen) {\n this.onDialogOpen();\n } else {\n this.onDialogClose();\n }\n });\n }\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n\n @HostBinding('attr.id')\n get hostId() {\n return this.id();\n }\n\n // ===== ACTIONS =====\n /** Closes the dialog, running any `canClose` guard first; no-ops when `preventClose` is true. */\n async close() {\n if (this.closeGuardRunning) {\n return;\n }\n\n if (this.preventClose()) {\n return;\n }\n\n const guard = this.canClose();\n\n if (guard) {\n this.closeGuardRunning = true;\n\n try {\n const allowed = await Promise.resolve(guard());\n\n if (!allowed) {\n return;\n }\n } finally {\n this.closeGuardRunning = false;\n }\n }\n\n this.beforeClose.emit();\n this.openChange.emit(false);\n this.closed.emit();\n }\n\n /** Called when the panel exit animation finishes. */\n onExitAnimationDone() {\n if (this.animatingOut()) {\n this.animatingOut.set(false);\n this.visible.set(false);\n }\n }\n\n // ===== LIFECYCLE =====\n private onDialogOpen() {\n this.previouslyFocusedElement =\n (this.doc.activeElement as HTMLElement) ?? null;\n\n this.beforeOpen.emit();\n this.animatingOut.set(false);\n this.visible.set(true);\n this.opened.emit();\n }\n\n private onDialogClose() {\n if (this.visible()) {\n if (this.animation() !== 'none') {\n this.animatingOut.set(true);\n } else {\n this.visible.set(false);\n }\n }\n\n if (this.restoreFocus() && this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n this.previouslyFocusedElement = null;\n }\n }\n}\n","@if (visible()) {\n <div\n class=\"fk-dialog__panel\"\n [class.fk-dialog__animate-panel--scale-fade]=\"\n animation() === 'scale-fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-up]=\"\n animation() === 'slide-up' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel--slide-down]=\"\n animation() === 'slide-down' && !animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--scale-fade]=\"\n animation() === 'scale-fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-up]=\"\n animation() === 'slide-up' && animatingOut()\n \"\n [class.fk-dialog__animate-panel-out--slide-down]=\"\n animation() === 'slide-down' && animatingOut()\n \"\n [class.fk-dialog__panel--sm]=\"size() === 'sm'\"\n [class.fk-dialog__panel--md]=\"size() === 'md'\"\n [class.fk-dialog__panel--lg]=\"size() === 'lg'\"\n [class.fk-dialog__panel--xl]=\"size() === 'xl'\"\n [class.fk-dialog__panel--fullscreen]=\"size() === 'fullscreen'\"\n [class.fk-dialog__panel--fullscreen-auto]=\"fullscreenMobile()\"\n [class.fk-dialog__panel--top]=\"position() === 'top'\"\n role=\"dialog\"\n [attr.aria-modal]=\"modal() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [cdkTrapFocus]=\"modal()\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (customHeader() || header() || closable()) {\n <div class=\"fk-dialog__header\">\n <ng-content select=\"[fkDialogHeader]\" />\n\n @if (!customHeader() && header()) {\n <span class=\"fk-dialog__title\" [id]=\"titleId\">{{ header() }}</span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-dialog__close\"\n type=\"button\"\n aria-label=\"Close dialog\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-dialog__body\" [class.fk-dialog__body--flex]=\"flexBody()\">\n <ng-content />\n </div>\n\n <ng-content select=\"[libDialogFooter]\" />\n </div>\n}\n","import type {\n CanCloseFn,\n DialogAnimation,\n DialogPosition,\n DialogSize,\n} from './dialog.types';\n\nexport interface DialogConfig<TData = unknown> {\n modal?: boolean;\n closable?: boolean;\n closeOnEscape?: boolean;\n closeOnBackdrop?: boolean;\n size?: DialogSize;\n position?: DialogPosition;\n animation?: DialogAnimation;\n header?: string | null;\n restoreFocus?: boolean;\n autoFocus?: boolean;\n preventClose?: boolean;\n canClose?: CanCloseFn;\n fullscreenMobile?: boolean;\n flexBody?: boolean;\n className?: string;\n ariaLabel?: string | null;\n ariaDescribedBy?: string | null;\n data?: TData;\n}\n\nexport const DEFAULT_DIALOG_CONFIG: DialogConfig = {\n modal: true,\n closable: true,\n closeOnEscape: true,\n closeOnBackdrop: false,\n size: 'md',\n position: 'center',\n animation: 'scale-fade',\n header: null,\n restoreFocus: true,\n autoFocus: true,\n preventClose: false,\n fullscreenMobile: false,\n flexBody: false,\n className: '',\n ariaLabel: null,\n ariaDescribedBy: null,\n};\n","import { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport type { DialogConfig } from './dialog.config';\nimport type { CanCloseFn } from './dialog.types';\n\nexport class DialogRef<TResult = unknown, TData = unknown> {\n private readonly beforeOpenSubject = new Subject<void>();\n private readonly afterOpenedSubject = new Subject<void>();\n private readonly beforeCloseSubject = new Subject<void>();\n private readonly afterClosedSubject = new Subject<TResult | undefined>();\n private closed = false;\n private closeGuard: CanCloseFn | null = null;\n\n readonly config: DialogConfig<TData>;\n\n constructor(config: DialogConfig<TData> = {} as DialogConfig<TData>) {\n this.config = config;\n\n if (config.canClose) {\n this.closeGuard = config.canClose;\n }\n }\n\n get data(): TData | undefined {\n return this.config.data;\n }\n\n setCanClose(guard: CanCloseFn | null) {\n this.closeGuard = guard;\n }\n\n async close(result?: TResult) {\n if (this.closed) {\n return;\n }\n\n if (this.config.preventClose) {\n return;\n }\n\n if (this.closeGuard) {\n const allowed = await Promise.resolve(this.closeGuard());\n\n if (!allowed) {\n return;\n }\n }\n\n this.beforeCloseSubject.next();\n this.beforeCloseSubject.complete();\n\n this.closed = true;\n this.afterClosedSubject.next(result);\n this.afterClosedSubject.complete();\n }\n\n beforeOpen(): Observable<void> {\n return this.beforeOpenSubject.asObservable().pipe(take(1));\n }\n\n afterOpened(): Observable<void> {\n return this.afterOpenedSubject.asObservable().pipe(take(1));\n }\n\n beforeClose(): Observable<void> {\n return this.beforeCloseSubject.asObservable().pipe(take(1));\n }\n\n afterClosed(): Observable<TResult | undefined> {\n return this.afterClosedSubject.asObservable().pipe(take(1));\n }\n\n /** @internal */\n markBeforeOpen() {\n this.beforeOpenSubject.next();\n this.beforeOpenSubject.complete();\n }\n\n /** @internal */\n markOpened() {\n this.afterOpenedSubject.next();\n this.afterOpenedSubject.complete();\n }\n}\n","import { ESCAPE } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\n\nimport { DialogComponent } from './dialog.component';\nimport { DEFAULT_DIALOG_CONFIG, DialogConfig } from './dialog.config';\nimport { DialogRef } from './dialog-ref';\n\nexport const DIALOG_DATA = Symbol('DIALOG_DATA');\nexport const DIALOG_REF = Symbol('DIALOG_REF');\n\ninterface DialogEntry {\n ref: DialogRef;\n overlayRef: OverlayRef;\n hostRef: ComponentRef<DialogComponent>;\n contentRef: ComponentRef<unknown>;\n}\n\n/**\n * Opens dialogs as CDK overlays.\n *\n * CDK owns the cross-cutting overlay concerns — backdrop, scroll blocking,\n * centered positioning, z-index stacking (overlays layer by open order), and\n * top-of-stack dispatch of Escape / outside clicks. The `DialogComponent` it\n * hosts is just the panel chrome (header / body / footer, sizing, enter\n * animation, focus trap). There is no global \"opening X closes lower overlays\"\n * rule: a dialog opened over a drawer stacks on top of it, and Escape / an\n * outside press dismisses whichever overlay is on top.\n */\n@Injectable({ providedIn: 'root' })\nexport class DialogService {\n private readonly overlay = inject(Overlay);\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n private readonly doc = inject(DOCUMENT);\n\n private activeDialogs: DialogEntry[] = [];\n\n get openCount(): number {\n return this.activeDialogs.length;\n }\n\n open<TResult = unknown, TData = unknown>(\n content: Type<unknown>,\n config?: DialogConfig<TData>,\n ): DialogRef<TResult, TData> {\n const mergedConfig = {\n ...DEFAULT_DIALOG_CONFIG,\n ...config,\n } as DialogConfig<TData>;\n const dialogRef = new DialogRef<TResult, TData>(mergedConfig);\n\n const positionStrategy = this.overlay\n .position()\n .global()\n .centerHorizontally();\n\n if (mergedConfig.position === 'top') {\n positionStrategy.top('10vh');\n } else {\n positionStrategy.centerVertically();\n }\n\n const overlayRef = this.overlay.create({\n hasBackdrop: mergedConfig.modal ?? true,\n backdropClass: 'fk-dialog__backdrop',\n panelClass: 'fk-dialog__pane',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy,\n disposeOnNavigation: true,\n });\n\n const childInjector = Injector.create({\n parent: this.injector,\n providers: [\n { provide: DIALOG_DATA as never, useValue: mergedConfig.data },\n { provide: DIALOG_REF as never, useValue: dialogRef },\n ],\n });\n\n const hostRef = overlayRef.attach(\n new ComponentPortal(DialogComponent, null, childInjector),\n );\n\n const contentRef = createComponent(content, {\n environmentInjector: this.injector,\n elementInjector: childInjector,\n hostElement: this.doc.createElement('div'),\n });\n\n this.appRef.attachView(contentRef.hostView);\n\n const entry: DialogEntry = {\n ref: dialogRef as DialogRef<unknown, unknown>,\n overlayRef,\n hostRef,\n contentRef,\n };\n\n this.activeDialogs.push(entry);\n\n this.applyConfig(hostRef, mergedConfig);\n\n // CDK dispatches these to the top overlay only, so Escape / an outside\n // press dismisses the topmost dialog. `dialogRef.close()` runs the\n // preventClose + canClose guards.\n overlayRef.keydownEvents().subscribe((event) => {\n if (event.keyCode === ESCAPE && mergedConfig.closeOnEscape) {\n dialogRef.close();\n }\n });\n\n overlayRef.backdropClick().subscribe(() => {\n if (mergedConfig.closeOnBackdrop) {\n dialogRef.close();\n }\n });\n\n hostRef.instance.beforeOpen.subscribe(() => {\n dialogRef.markBeforeOpen();\n });\n\n hostRef.instance.opened.subscribe(() => {\n dialogRef.markOpened();\n });\n\n hostRef.instance.closed.subscribe(() => {\n dialogRef.close();\n });\n\n dialogRef.afterClosed().subscribe(() => {\n this.destroyDialog(entry);\n });\n\n hostRef.setInput('open', true);\n hostRef.changeDetectorRef.detectChanges();\n\n const panelBody =\n overlayRef.overlayElement.querySelector('.fk-dialog__body');\n\n if (panelBody) {\n panelBody.appendChild(contentRef.location.nativeElement);\n contentRef.changeDetectorRef.detectChanges();\n\n // Move [libDialogFooter] elements out of the body to the panel root so\n // they render in the pinned footer area (after fk-dialog__body).\n const panel = panelBody.closest('.fk-dialog__panel');\n const footerEls = panelBody.querySelectorAll('[libDialogFooter]');\n\n footerEls.forEach((el: Element) => {\n panel?.appendChild(el);\n });\n }\n\n return dialogRef;\n }\n\n closeAll() {\n [...this.activeDialogs].forEach((entry) => entry.ref.close());\n }\n\n private applyConfig(\n hostRef: ComponentRef<DialogComponent>,\n config: DialogConfig,\n ) {\n hostRef.setInput('modal', config.modal ?? true);\n hostRef.setInput('closable', config.closable ?? true);\n hostRef.setInput('size', config.size ?? 'md');\n hostRef.setInput('position', config.position ?? 'center');\n hostRef.setInput('animation', config.animation ?? 'scale-fade');\n hostRef.setInput('header', config.header ?? null);\n hostRef.setInput('restoreFocus', config.restoreFocus ?? true);\n hostRef.setInput('autoFocus', config.autoFocus ?? true);\n hostRef.setInput('className', config.className ?? '');\n hostRef.setInput('preventClose', config.preventClose ?? false);\n hostRef.setInput('canClose', config.canClose ?? null);\n hostRef.setInput('fullscreenMobile', config.fullscreenMobile ?? false);\n hostRef.setInput('flexBody', config.flexBody ?? false);\n hostRef.setInput('ariaLabel', config.ariaLabel ?? null);\n hostRef.setInput('ariaDescribedBy', config.ariaDescribedBy ?? null);\n }\n\n private destroyDialog(entry: DialogEntry) {\n const idx = this.activeDialogs.indexOf(entry);\n\n if (idx > -1) {\n this.activeDialogs.splice(idx, 1);\n }\n\n // Let the component restore focus before the overlay (and its hosted\n // component) are torn down.\n entry.hostRef.setInput('open', false);\n entry.hostRef.changeDetectorRef.detectChanges();\n\n this.appRef.detachView(entry.contentRef.hostView);\n entry.contentRef.destroy();\n\n // Disposing the overlay detaches + destroys the hosted DialogComponent,\n // removes the backdrop, and releases the scroll-block strategy.\n entry.overlayRef.dispose();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fkDialogActions]',\n standalone: true,\n})\nexport class FkDialogActionsDirective {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -144,11 +144,11 @@ class DrawerComponent {
144
144
  }
145
145
  }
146
146
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
147
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DrawerComponent, isStandalone: true, selector: "fk-drawer", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, preventClose: { classPropertyName: "preventClose", publicName: "preventClose", isSignal: true, isRequired: false, transformFunction: null }, canClose: { classPropertyName: "canClose", publicName: "canClose", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", beforeOpen: "beforeOpen", opened: "opened", beforeClose: "beforeClose", closed: "closed" }, host: { properties: { "class": "this.hostClass", "attr.id": "this.hostId" } }, ngImport: i0, template: "@if (visible()) {\n <div\n class=\"fk-drawer__panel\"\n [class.fk-drawer__panel--sm]=\"width() === 'sm'\"\n [class.fk-drawer__panel--md]=\"width() === 'md'\"\n [class.fk-drawer__panel--lg]=\"width() === 'lg'\"\n [class.fk-drawer__panel--xl]=\"width() === 'xl'\"\n [class.fk-drawer__animate-panel--slide-right]=\"\n animation() === 'slide-right' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--slide-right]=\"\n animation() === 'slide-right' && animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [cdkTrapFocus]=\"true\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (header() || closable()) {\n <div class=\"fk-drawer__header\">\n @if (header()) {\n <span class=\"fk-drawer__title\" [id]=\"titleId\">\n {{ header() }}\n </span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-drawer__close\"\n type=\"button\"\n aria-label=\"Close drawer\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-drawer__body\">\n <ng-content />\n </div>\n\n <div class=\"fk-drawer__footer\">\n <ng-content select=\"[fkDrawerFooter]\" />\n </div>\n </div>\n}\n", styles: [":host{display:contents}.fk-drawer__panel{position:relative;display:flex;flex-direction:column;height:100%;background-color:var(--fk-drawer-bg, var(--fk-color-surface, #ffffff));border-left:var(--fk-drawer-border-left, 1px solid var(--fk-drawer-border-color, var(--fk-color-border, #d9e2ee)));border-radius:var(--fk-drawer-border-radius, var(--fk-radius-lg, .75rem)) 0 0 var(--fk-drawer-border-radius, var(--fk-radius-lg, .75rem));box-shadow:var(--fk-drawer-shadow, none);overflow:hidden}.fk-drawer__panel--sm{width:var(--fk-drawer-width-sm, 20rem)}.fk-drawer__panel--md{width:var(--fk-drawer-width-md, 26.25rem)}.fk-drawer__panel--lg{width:var(--fk-drawer-width-lg, 34rem)}.fk-drawer__panel--xl{width:var(--fk-drawer-width-xl, 44rem)}@media(max-width:47.999em){.fk-drawer__panel{margin:0;border-radius:0;width:100%}}.fk-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:var(--fk-rhythm-3, .75rem);padding:var(--fk-drawer-header-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-5, 1.25rem));border-bottom:1px solid var(--fk-drawer-header-border-color, var(--fk-color-border, #d9e2ee))}.fk-drawer__title{font-family:var(--fk-drawer-title-font-family, var(--fk-font-family-base, \"Inter\", ui-sans-serif, system-ui));font-size:var(--fk-drawer-title-font-size, var(--fk-typography-h4-font-size, 1.125rem));font-weight:var(--fk-drawer-title-font-weight, var(--fk-font-weight-semibold, 600));color:var(--fk-drawer-title-color, var(--fk-color-text-strong, #0b1420))}.fk-drawer__close{display:inline-flex;align-items:center;justify-content:center;width:var(--fk-drawer-close-size, 2rem);height:var(--fk-drawer-close-size, 2rem);padding:0;font-size:var(--fk-drawer-close-font-size, 1.25rem);line-height:1;color:var(--fk-drawer-close-color, var(--fk-color-muted, #8a98a8));background:none;border:none;border-radius:var(--fk-drawer-close-radius, var(--fk-radius-md, .375rem));cursor:pointer;transition:background-color .15s ease,color .15s ease}.fk-drawer__close:hover{color:var(--fk-drawer-close-color-hover, var(--fk-color-text, #1f2d3d));background-color:var(--fk-drawer-close-bg-hover, var(--fk-color-surface-hover, #f5f7fa))}.fk-drawer__close:focus-visible{outline:none;box-shadow:var(--fk-drawer-close-focus-ring, var(--fk-focus-ring, 0 0 0 3px rgba(10, 132, 255, .18)))}.fk-drawer__body{flex:1;overflow-y:auto;padding:var(--fk-drawer-body-padding, var(--fk-rhythm-5, 1.25rem))}.fk-drawer__footer{flex-shrink:0;padding:var(--fk-drawer-footer-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-5, 1.25rem));border-top:1px solid var(--fk-drawer-footer-border-color, var(--fk-color-border, #d9e2ee))}.fk-drawer__footer:empty{display:none}.fk-drawer__animate-panel--slide-right{animation:fk-drawer-slide-in .25s cubic-bezier(.4,0,.2,1) forwards}.fk-drawer__animate-panel-out--slide-right{animation:fk-drawer-slide-out .25s cubic-bezier(.4,0,.2,1) forwards}@keyframes fk-drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fk-drawer-slide-out{0%{transform:translate(0)}to{transform:translate(100%)}}.fk-drawer__animate-panel--fade{animation:fk-drawer-panel-fade-in .2s ease-out forwards}.fk-drawer__animate-panel-out--fade{animation:fk-drawer-panel-fade-out .2s ease-in forwards}@keyframes fk-drawer-panel-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fk-drawer-panel-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.fk-drawer__animate-panel--slide-right,.fk-drawer__animate-panel-out--slide-right,.fk-drawer__animate-panel--fade,.fk-drawer__animate-panel-out--fade{animation:none}}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
147
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DrawerComponent, isStandalone: true, selector: "fk-drawer", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, preventClose: { classPropertyName: "preventClose", publicName: "preventClose", isSignal: true, isRequired: false, transformFunction: null }, canClose: { classPropertyName: "canClose", publicName: "canClose", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", beforeOpen: "beforeOpen", opened: "opened", beforeClose: "beforeClose", closed: "closed" }, host: { properties: { "class": "this.hostClass", "attr.id": "this.hostId" } }, ngImport: i0, template: "@if (visible()) {\n <div\n class=\"fk-drawer__panel\"\n [class.fk-drawer__panel--sm]=\"width() === 'sm'\"\n [class.fk-drawer__panel--md]=\"width() === 'md'\"\n [class.fk-drawer__panel--lg]=\"width() === 'lg'\"\n [class.fk-drawer__panel--xl]=\"width() === 'xl'\"\n [class.fk-drawer__animate-panel--slide-right]=\"\n animation() === 'slide-right' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--slide-right]=\"\n animation() === 'slide-right' && animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [cdkTrapFocus]=\"true\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (header() || closable()) {\n <div class=\"fk-drawer__header\">\n @if (header()) {\n <span class=\"fk-drawer__title\" [id]=\"titleId\">\n {{ header() }}\n </span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-drawer__close\"\n type=\"button\"\n aria-label=\"Close drawer\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-drawer__body\">\n <ng-content />\n </div>\n\n <div class=\"fk-drawer__footer\">\n <ng-content select=\"[fkDrawerFooter]\" />\n </div>\n </div>\n}\n", styles: [":host{display:contents}.fk-drawer__panel{position:relative;display:flex;flex-direction:column;height:100%;background-color:var(--fk-drawer-bg, var(--fk-color-surface, #ffffff));border-left:var(--fk-drawer-border-left, 1px solid var(--fk-drawer-border-color, var(--fk-color-border, #d9e2ee)));border-radius:var(--fk-drawer-border-radius, var(--fk-radius-lg, .75rem)) 0 0 var(--fk-drawer-border-radius, var(--fk-radius-lg, .75rem));box-shadow:var(--fk-drawer-shadow, none);overflow:hidden}.fk-drawer__panel--sm{width:var(--fk-drawer-width-sm, 20rem)}.fk-drawer__panel--md{width:var(--fk-drawer-width-md, 26.25rem)}.fk-drawer__panel--lg{width:var(--fk-drawer-width-lg, 34rem)}.fk-drawer__panel--xl{width:var(--fk-drawer-width-xl, 44rem)}@media(max-width:47.999em){.fk-drawer__panel{margin:0;border-radius:0;width:100%}}.fk-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:var(--fk-rhythm-3, .75rem);padding:var(--fk-drawer-header-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-5, 1.25rem));border-bottom:1px solid var(--fk-drawer-header-border-color, var(--fk-color-border, #d9e2ee))}.fk-drawer__title{font-family:var(--fk-drawer-title-font-family, var(--fk-font-family-display, var(--fk-font-family-base, \"Inter\", ui-sans-serif, system-ui)));font-size:var(--fk-drawer-title-font-size, var(--fk-typography-h4-font-size, 1.125rem));font-weight:var(--fk-drawer-title-font-weight, var(--fk-font-weight-semibold, 600));color:var(--fk-drawer-title-color, var(--fk-color-text-strong, #0b1420))}.fk-drawer__close{display:inline-flex;align-items:center;justify-content:center;width:var(--fk-drawer-close-size, 2rem);height:var(--fk-drawer-close-size, 2rem);padding:0;font-size:var(--fk-drawer-close-font-size, 1.25rem);line-height:1;color:var(--fk-drawer-close-color, var(--fk-color-muted, #8a98a8));background:none;border:none;border-radius:var(--fk-drawer-close-radius, var(--fk-radius-md, .375rem));cursor:pointer;transition:background-color .15s ease,color .15s ease}.fk-drawer__close:hover{color:var(--fk-drawer-close-color-hover, var(--fk-color-text, #1f2d3d));background-color:var(--fk-drawer-close-bg-hover, var(--fk-color-surface-hover, #f5f7fa))}.fk-drawer__close:focus-visible{outline:none;box-shadow:var(--fk-drawer-close-focus-ring, var(--fk-focus-ring, 0 0 0 3px rgba(10, 132, 255, .18)))}.fk-drawer__body{flex:1;overflow-y:auto;padding:var(--fk-drawer-body-padding, var(--fk-rhythm-5, 1.25rem))}.fk-drawer__footer{flex-shrink:0;padding:var(--fk-drawer-footer-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-5, 1.25rem));border-top:1px solid var(--fk-drawer-footer-border-color, var(--fk-color-border, #d9e2ee))}.fk-drawer__footer:empty{display:none}.fk-drawer__animate-panel--slide-right{animation:fk-drawer-slide-in .25s cubic-bezier(.4,0,.2,1) forwards}.fk-drawer__animate-panel-out--slide-right{animation:fk-drawer-slide-out .25s cubic-bezier(.4,0,.2,1) forwards}@keyframes fk-drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fk-drawer-slide-out{0%{transform:translate(0)}to{transform:translate(100%)}}.fk-drawer__animate-panel--fade{animation:fk-drawer-panel-fade-in .2s ease-out forwards}.fk-drawer__animate-panel-out--fade{animation:fk-drawer-panel-fade-out .2s ease-in forwards}@keyframes fk-drawer-panel-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fk-drawer-panel-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.fk-drawer__animate-panel--slide-right,.fk-drawer__animate-panel-out--slide-right,.fk-drawer__animate-panel--fade,.fk-drawer__animate-panel-out--fade{animation:none}}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
148
148
  }
149
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DrawerComponent, decorators: [{
150
150
  type: Component,
151
- args: [{ selector: 'fk-drawer', standalone: true, imports: [A11yModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (visible()) {\n <div\n class=\"fk-drawer__panel\"\n [class.fk-drawer__panel--sm]=\"width() === 'sm'\"\n [class.fk-drawer__panel--md]=\"width() === 'md'\"\n [class.fk-drawer__panel--lg]=\"width() === 'lg'\"\n [class.fk-drawer__panel--xl]=\"width() === 'xl'\"\n [class.fk-drawer__animate-panel--slide-right]=\"\n animation() === 'slide-right' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--slide-right]=\"\n animation() === 'slide-right' && animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [cdkTrapFocus]=\"true\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (header() || closable()) {\n <div class=\"fk-drawer__header\">\n @if (header()) {\n <span class=\"fk-drawer__title\" [id]=\"titleId\">\n {{ header() }}\n </span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-drawer__close\"\n type=\"button\"\n aria-label=\"Close drawer\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-drawer__body\">\n <ng-content />\n </div>\n\n <div class=\"fk-drawer__footer\">\n <ng-content select=\"[fkDrawerFooter]\" />\n </div>\n </div>\n}\n", styles: [":host{display:contents}.fk-drawer__panel{position:relative;display:flex;flex-direction:column;height:100%;background-color:var(--fk-drawer-bg, var(--fk-color-surface, #ffffff));border-left:var(--fk-drawer-border-left, 1px solid var(--fk-drawer-border-color, var(--fk-color-border, #d9e2ee)));border-radius:var(--fk-drawer-border-radius, var(--fk-radius-lg, .75rem)) 0 0 var(--fk-drawer-border-radius, var(--fk-radius-lg, .75rem));box-shadow:var(--fk-drawer-shadow, none);overflow:hidden}.fk-drawer__panel--sm{width:var(--fk-drawer-width-sm, 20rem)}.fk-drawer__panel--md{width:var(--fk-drawer-width-md, 26.25rem)}.fk-drawer__panel--lg{width:var(--fk-drawer-width-lg, 34rem)}.fk-drawer__panel--xl{width:var(--fk-drawer-width-xl, 44rem)}@media(max-width:47.999em){.fk-drawer__panel{margin:0;border-radius:0;width:100%}}.fk-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:var(--fk-rhythm-3, .75rem);padding:var(--fk-drawer-header-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-5, 1.25rem));border-bottom:1px solid var(--fk-drawer-header-border-color, var(--fk-color-border, #d9e2ee))}.fk-drawer__title{font-family:var(--fk-drawer-title-font-family, var(--fk-font-family-base, \"Inter\", ui-sans-serif, system-ui));font-size:var(--fk-drawer-title-font-size, var(--fk-typography-h4-font-size, 1.125rem));font-weight:var(--fk-drawer-title-font-weight, var(--fk-font-weight-semibold, 600));color:var(--fk-drawer-title-color, var(--fk-color-text-strong, #0b1420))}.fk-drawer__close{display:inline-flex;align-items:center;justify-content:center;width:var(--fk-drawer-close-size, 2rem);height:var(--fk-drawer-close-size, 2rem);padding:0;font-size:var(--fk-drawer-close-font-size, 1.25rem);line-height:1;color:var(--fk-drawer-close-color, var(--fk-color-muted, #8a98a8));background:none;border:none;border-radius:var(--fk-drawer-close-radius, var(--fk-radius-md, .375rem));cursor:pointer;transition:background-color .15s ease,color .15s ease}.fk-drawer__close:hover{color:var(--fk-drawer-close-color-hover, var(--fk-color-text, #1f2d3d));background-color:var(--fk-drawer-close-bg-hover, var(--fk-color-surface-hover, #f5f7fa))}.fk-drawer__close:focus-visible{outline:none;box-shadow:var(--fk-drawer-close-focus-ring, var(--fk-focus-ring, 0 0 0 3px rgba(10, 132, 255, .18)))}.fk-drawer__body{flex:1;overflow-y:auto;padding:var(--fk-drawer-body-padding, var(--fk-rhythm-5, 1.25rem))}.fk-drawer__footer{flex-shrink:0;padding:var(--fk-drawer-footer-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-5, 1.25rem));border-top:1px solid var(--fk-drawer-footer-border-color, var(--fk-color-border, #d9e2ee))}.fk-drawer__footer:empty{display:none}.fk-drawer__animate-panel--slide-right{animation:fk-drawer-slide-in .25s cubic-bezier(.4,0,.2,1) forwards}.fk-drawer__animate-panel-out--slide-right{animation:fk-drawer-slide-out .25s cubic-bezier(.4,0,.2,1) forwards}@keyframes fk-drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fk-drawer-slide-out{0%{transform:translate(0)}to{transform:translate(100%)}}.fk-drawer__animate-panel--fade{animation:fk-drawer-panel-fade-in .2s ease-out forwards}.fk-drawer__animate-panel-out--fade{animation:fk-drawer-panel-fade-out .2s ease-in forwards}@keyframes fk-drawer-panel-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fk-drawer-panel-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.fk-drawer__animate-panel--slide-right,.fk-drawer__animate-panel-out--slide-right,.fk-drawer__animate-panel--fade,.fk-drawer__animate-panel-out--fade{animation:none}}\n"] }]
151
+ args: [{ selector: 'fk-drawer', standalone: true, imports: [A11yModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (visible()) {\n <div\n class=\"fk-drawer__panel\"\n [class.fk-drawer__panel--sm]=\"width() === 'sm'\"\n [class.fk-drawer__panel--md]=\"width() === 'md'\"\n [class.fk-drawer__panel--lg]=\"width() === 'lg'\"\n [class.fk-drawer__panel--xl]=\"width() === 'xl'\"\n [class.fk-drawer__animate-panel--slide-right]=\"\n animation() === 'slide-right' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--slide-right]=\"\n animation() === 'slide-right' && animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [cdkTrapFocus]=\"true\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (header() || closable()) {\n <div class=\"fk-drawer__header\">\n @if (header()) {\n <span class=\"fk-drawer__title\" [id]=\"titleId\">\n {{ header() }}\n </span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-drawer__close\"\n type=\"button\"\n aria-label=\"Close drawer\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-drawer__body\">\n <ng-content />\n </div>\n\n <div class=\"fk-drawer__footer\">\n <ng-content select=\"[fkDrawerFooter]\" />\n </div>\n </div>\n}\n", styles: [":host{display:contents}.fk-drawer__panel{position:relative;display:flex;flex-direction:column;height:100%;background-color:var(--fk-drawer-bg, var(--fk-color-surface, #ffffff));border-left:var(--fk-drawer-border-left, 1px solid var(--fk-drawer-border-color, var(--fk-color-border, #d9e2ee)));border-radius:var(--fk-drawer-border-radius, var(--fk-radius-lg, .75rem)) 0 0 var(--fk-drawer-border-radius, var(--fk-radius-lg, .75rem));box-shadow:var(--fk-drawer-shadow, none);overflow:hidden}.fk-drawer__panel--sm{width:var(--fk-drawer-width-sm, 20rem)}.fk-drawer__panel--md{width:var(--fk-drawer-width-md, 26.25rem)}.fk-drawer__panel--lg{width:var(--fk-drawer-width-lg, 34rem)}.fk-drawer__panel--xl{width:var(--fk-drawer-width-xl, 44rem)}@media(max-width:47.999em){.fk-drawer__panel{margin:0;border-radius:0;width:100%}}.fk-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:var(--fk-rhythm-3, .75rem);padding:var(--fk-drawer-header-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-5, 1.25rem));border-bottom:1px solid var(--fk-drawer-header-border-color, var(--fk-color-border, #d9e2ee))}.fk-drawer__title{font-family:var(--fk-drawer-title-font-family, var(--fk-font-family-display, var(--fk-font-family-base, \"Inter\", ui-sans-serif, system-ui)));font-size:var(--fk-drawer-title-font-size, var(--fk-typography-h4-font-size, 1.125rem));font-weight:var(--fk-drawer-title-font-weight, var(--fk-font-weight-semibold, 600));color:var(--fk-drawer-title-color, var(--fk-color-text-strong, #0b1420))}.fk-drawer__close{display:inline-flex;align-items:center;justify-content:center;width:var(--fk-drawer-close-size, 2rem);height:var(--fk-drawer-close-size, 2rem);padding:0;font-size:var(--fk-drawer-close-font-size, 1.25rem);line-height:1;color:var(--fk-drawer-close-color, var(--fk-color-muted, #8a98a8));background:none;border:none;border-radius:var(--fk-drawer-close-radius, var(--fk-radius-md, .375rem));cursor:pointer;transition:background-color .15s ease,color .15s ease}.fk-drawer__close:hover{color:var(--fk-drawer-close-color-hover, var(--fk-color-text, #1f2d3d));background-color:var(--fk-drawer-close-bg-hover, var(--fk-color-surface-hover, #f5f7fa))}.fk-drawer__close:focus-visible{outline:none;box-shadow:var(--fk-drawer-close-focus-ring, var(--fk-focus-ring, 0 0 0 3px rgba(10, 132, 255, .18)))}.fk-drawer__body{flex:1;overflow-y:auto;padding:var(--fk-drawer-body-padding, var(--fk-rhythm-5, 1.25rem))}.fk-drawer__footer{flex-shrink:0;padding:var(--fk-drawer-footer-padding, var(--fk-rhythm-4, 1rem) var(--fk-rhythm-5, 1.25rem));border-top:1px solid var(--fk-drawer-footer-border-color, var(--fk-color-border, #d9e2ee))}.fk-drawer__footer:empty{display:none}.fk-drawer__animate-panel--slide-right{animation:fk-drawer-slide-in .25s cubic-bezier(.4,0,.2,1) forwards}.fk-drawer__animate-panel-out--slide-right{animation:fk-drawer-slide-out .25s cubic-bezier(.4,0,.2,1) forwards}@keyframes fk-drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fk-drawer-slide-out{0%{transform:translate(0)}to{transform:translate(100%)}}.fk-drawer__animate-panel--fade{animation:fk-drawer-panel-fade-in .2s ease-out forwards}.fk-drawer__animate-panel-out--fade{animation:fk-drawer-panel-fade-out .2s ease-in forwards}@keyframes fk-drawer-panel-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fk-drawer-panel-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.fk-drawer__animate-panel--slide-right,.fk-drawer__animate-panel-out--slide-right,.fk-drawer__animate-panel--fade,.fk-drawer__animate-panel-out--fade{animation:none}}\n"] }]
152
152
  }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], closable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closable", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], autoFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoFocus", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], preventClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventClose", required: false }] }], canClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "canClose", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }], beforeOpen: [{ type: i0.Output, args: ["beforeOpen"] }], opened: [{ type: i0.Output, args: ["opened"] }], beforeClose: [{ type: i0.Output, args: ["beforeClose"] }], closed: [{ type: i0.Output, args: ["closed"] }], hostClass: [{
153
153
  type: HostBinding,
154
154
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"frame-kit-ui-ng-ui-drawer.mjs","sources":["../../../../packages/ui-ng/ui/drawer/drawer.component.ts","../../../../packages/ui-ng/ui/drawer/drawer.component.html","../../../../packages/ui-ng/ui/drawer/drawer.config.ts","../../../../packages/ui-ng/ui/drawer/drawer-ref.ts","../../../../packages/ui-ng/ui/drawer/drawer.service.ts","../../../../packages/ui-ng/ui/drawer/frame-kit-ui-ng-ui-drawer.ts"],"sourcesContent":["import { A11yModule } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport type {\n DrawerAnimation,\n DrawerCanCloseFn,\n DrawerWidth,\n} from './drawer.types';\n\nlet nextDrawerId = 0;\n\n/**\n * Drawer panel chrome.\n *\n * Hosted inside a CDK overlay by `DrawerService`, which owns the backdrop,\n * scroll blocking, positioning, stacking, and Escape / outside dispatch. This\n * component renders the sliding panel: header / body / footer projection,\n * width sizing, the slide animation, focus trapping, and the close guard.\n */\n@Component({\n selector: 'fk-drawer',\n standalone: true,\n imports: [A11yModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './drawer.component.html',\n styleUrl: './drawer.component.scss',\n})\nexport class DrawerComponent {\n // ===== INPUTS =====\n /** Controls whether the drawer is open. */\n readonly open = input(false);\n /** When true, shows the close button in the drawer header. */\n readonly closable = input(true);\n /** Width variant of the drawer panel. */\n readonly width = input<DrawerWidth>('md');\n /** Optional title text rendered in the drawer header. */\n readonly header = input<string | null>(null);\n /** When true, focus returns to the previously focused element when the drawer closes. */\n readonly restoreFocus = input(true);\n /** When true, CDK auto-focus is applied when the drawer opens. */\n readonly autoFocus = input(true);\n /** Entry/exit animation applied to the drawer panel. */\n readonly animation = input<DrawerAnimation>('slide-right');\n /** When true, all close mechanisms are blocked. */\n readonly preventClose = input(false);\n /** Async guard function called before closing; return false to cancel the close. */\n readonly canClose = input<DrawerCanCloseFn | null>(null);\n\n // ===== BASE PROPS =====\n readonly className = input<string>('');\n readonly id = input<string | null>(null);\n readonly ariaLabel = input<string | null>(null);\n\n // ===== OUTPUTS =====\n /** Fires when the drawer's open state should change, emitting the new boolean. */\n readonly openChange = output<boolean>();\n /** Fires immediately before the drawer begins its open animation. */\n readonly beforeOpen = output<void>();\n /** Fires after the drawer is fully open. */\n readonly opened = output<void>();\n /** Fires immediately before the drawer begins its close animation. */\n readonly beforeClose = output<void>();\n /** Fires after the drawer is fully closed. */\n readonly closed = output<void>();\n\n // ===== INTERNAL STATE =====\n private readonly doc = inject(DOCUMENT);\n readonly titleId = `fk-drawer-title-${nextDrawerId++}`;\n private previouslyFocusedElement: HTMLElement | null = null;\n private closeGuardRunning = false;\n\n readonly visible = signal(false);\n readonly animatingOut = signal(false);\n\n // ===== COMPUTED =====\n readonly classes = computed(() => {\n return ['fk-drawer', this.className()].filter(Boolean).join(' ');\n });\n\n readonly ariaLabelledBy = computed(() => {\n if (this.ariaLabel()) {\n return null;\n }\n\n return this.header() ? this.titleId : null;\n });\n\n constructor() {\n effect(() => {\n const isOpen = this.open();\n\n if (isOpen) {\n this.onDrawerOpen();\n } else {\n this.onDrawerClose();\n }\n });\n }\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n\n @HostBinding('attr.id')\n get hostId() {\n return this.id();\n }\n\n // ===== ACTIONS =====\n /** Closes the drawer, running any `canClose` guard first; no-ops when `preventClose` is true. */\n async close() {\n if (this.closeGuardRunning) {\n return;\n }\n\n if (this.preventClose()) {\n return;\n }\n\n const guard = this.canClose();\n\n if (guard) {\n this.closeGuardRunning = true;\n\n try {\n const allowed = await Promise.resolve(guard());\n\n if (!allowed) {\n return;\n }\n } finally {\n this.closeGuardRunning = false;\n }\n }\n\n this.beforeClose.emit();\n this.openChange.emit(false);\n this.closed.emit();\n }\n\n /** Called when the panel exit animation finishes. */\n onExitAnimationDone() {\n if (this.animatingOut()) {\n this.animatingOut.set(false);\n this.visible.set(false);\n }\n }\n\n // ===== LIFECYCLE =====\n private onDrawerOpen() {\n this.previouslyFocusedElement =\n (this.doc.activeElement as HTMLElement) ?? null;\n\n this.beforeOpen.emit();\n this.animatingOut.set(false);\n this.visible.set(true);\n this.opened.emit();\n }\n\n private onDrawerClose() {\n if (this.visible()) {\n if (this.animation() !== 'none') {\n this.animatingOut.set(true);\n } else {\n this.visible.set(false);\n }\n }\n\n if (this.restoreFocus() && this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n this.previouslyFocusedElement = null;\n }\n }\n}\n","@if (visible()) {\n <div\n class=\"fk-drawer__panel\"\n [class.fk-drawer__panel--sm]=\"width() === 'sm'\"\n [class.fk-drawer__panel--md]=\"width() === 'md'\"\n [class.fk-drawer__panel--lg]=\"width() === 'lg'\"\n [class.fk-drawer__panel--xl]=\"width() === 'xl'\"\n [class.fk-drawer__animate-panel--slide-right]=\"\n animation() === 'slide-right' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--slide-right]=\"\n animation() === 'slide-right' && animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [cdkTrapFocus]=\"true\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (header() || closable()) {\n <div class=\"fk-drawer__header\">\n @if (header()) {\n <span class=\"fk-drawer__title\" [id]=\"titleId\">\n {{ header() }}\n </span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-drawer__close\"\n type=\"button\"\n aria-label=\"Close drawer\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-drawer__body\">\n <ng-content />\n </div>\n\n <div class=\"fk-drawer__footer\">\n <ng-content select=\"[fkDrawerFooter]\" />\n </div>\n </div>\n}\n","import type {\n DrawerAnimation,\n DrawerCanCloseFn,\n DrawerWidth,\n} from './drawer.types';\n\nexport interface DrawerConfig<TData = unknown> {\n closable?: boolean;\n closeOnEscape?: boolean;\n closeOnBackdrop?: boolean;\n width?: DrawerWidth;\n animation?: DrawerAnimation;\n header?: string | null;\n restoreFocus?: boolean;\n autoFocus?: boolean;\n preventClose?: boolean;\n canClose?: DrawerCanCloseFn;\n className?: string;\n ariaLabel?: string | null;\n data?: TData;\n}\n\nexport const DEFAULT_DRAWER_CONFIG: DrawerConfig = {\n closable: true,\n closeOnEscape: true,\n closeOnBackdrop: true,\n width: 'md',\n animation: 'slide-right',\n header: null,\n restoreFocus: true,\n autoFocus: true,\n preventClose: false,\n className: '',\n ariaLabel: null,\n};\n","import { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport type { DrawerConfig } from './drawer.config';\nimport type { DrawerCanCloseFn } from './drawer.types';\n\nexport class DrawerRef<TResult = unknown, TData = unknown> {\n private readonly beforeOpenSubject = new Subject<void>();\n private readonly afterOpenedSubject = new Subject<void>();\n private readonly beforeCloseSubject = new Subject<void>();\n private readonly afterClosedSubject = new Subject<TResult | undefined>();\n private closed = false;\n private closeGuard: DrawerCanCloseFn | null = null;\n\n readonly config: DrawerConfig<TData>;\n\n constructor(config: DrawerConfig<TData> = {} as DrawerConfig<TData>) {\n this.config = config;\n\n if (config.canClose) {\n this.closeGuard = config.canClose;\n }\n }\n\n get data(): TData | undefined {\n return this.config.data;\n }\n\n setCanClose(guard: DrawerCanCloseFn | null) {\n this.closeGuard = guard;\n }\n\n async close(result?: TResult) {\n if (this.closed) {\n return;\n }\n\n if (this.config.preventClose) {\n return;\n }\n\n if (this.closeGuard) {\n const allowed = await Promise.resolve(this.closeGuard());\n\n if (!allowed) {\n return;\n }\n }\n\n this.beforeCloseSubject.next();\n this.beforeCloseSubject.complete();\n\n this.closed = true;\n this.afterClosedSubject.next(result);\n this.afterClosedSubject.complete();\n }\n\n beforeOpen(): Observable<void> {\n return this.beforeOpenSubject.asObservable().pipe(take(1));\n }\n\n afterOpened(): Observable<void> {\n return this.afterOpenedSubject.asObservable().pipe(take(1));\n }\n\n beforeClose(): Observable<void> {\n return this.beforeCloseSubject.asObservable().pipe(take(1));\n }\n\n afterClosed(): Observable<TResult | undefined> {\n return this.afterClosedSubject.asObservable().pipe(take(1));\n }\n\n /** @internal */\n markBeforeOpen() {\n this.beforeOpenSubject.next();\n this.beforeOpenSubject.complete();\n }\n\n /** @internal */\n markOpened() {\n this.afterOpenedSubject.next();\n this.afterOpenedSubject.complete();\n }\n}\n","import { ESCAPE } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\n\nimport { DrawerComponent } from './drawer.component';\nimport { DEFAULT_DRAWER_CONFIG, DrawerConfig } from './drawer.config';\nimport { DrawerRef } from './drawer-ref';\n\nexport const DRAWER_DATA = Symbol('DRAWER_DATA');\nexport const DRAWER_REF = Symbol('DRAWER_REF');\n\ninterface DrawerEntry {\n ref: DrawerRef;\n overlayRef: OverlayRef;\n hostRef: ComponentRef<DrawerComponent>;\n contentRef: ComponentRef<unknown>;\n}\n\n/**\n * Opens drawers as CDK overlays pinned to the right edge.\n *\n * CDK owns the backdrop, scroll blocking, positioning, z-index stacking, and\n * top-of-stack Escape / outside dispatch. The hosted `DrawerComponent` is the\n * panel chrome (header / body / footer, the slide animation, focus trap). A\n * drawer and a dialog opened over it coexist — the dialog stacks on top by\n * open order, and the drawer is no longer evicted.\n */\n@Injectable({ providedIn: 'root' })\nexport class DrawerService {\n private readonly overlay = inject(Overlay);\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n private readonly doc = inject(DOCUMENT);\n\n private activeDrawers: DrawerEntry[] = [];\n\n get openCount(): number {\n return this.activeDrawers.length;\n }\n\n open<TResult = unknown, TData = unknown>(\n content: Type<unknown>,\n config?: DrawerConfig<TData>,\n ): DrawerRef<TResult, TData> {\n const mergedConfig = {\n ...DEFAULT_DRAWER_CONFIG,\n ...config,\n } as DrawerConfig<TData>;\n const drawerRef = new DrawerRef<TResult, TData>(mergedConfig);\n\n const overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'fk-drawer__backdrop',\n panelClass: 'fk-drawer__pane',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global().right('0').top('0'),\n height: '100%',\n disposeOnNavigation: true,\n });\n\n const childInjector = Injector.create({\n parent: this.injector,\n providers: [\n { provide: DRAWER_DATA as never, useValue: mergedConfig.data },\n { provide: DRAWER_REF as never, useValue: drawerRef },\n ],\n });\n\n const hostRef = overlayRef.attach(\n new ComponentPortal(DrawerComponent, null, childInjector),\n );\n\n const contentRef = createComponent(content, {\n environmentInjector: this.injector,\n elementInjector: childInjector,\n hostElement: this.doc.createElement('div'),\n });\n\n this.appRef.attachView(contentRef.hostView);\n\n const entry: DrawerEntry = {\n ref: drawerRef as DrawerRef<unknown, unknown>,\n overlayRef,\n hostRef,\n contentRef,\n };\n\n this.activeDrawers.push(entry);\n\n this.applyConfig(hostRef, mergedConfig);\n\n overlayRef.keydownEvents().subscribe((event) => {\n if (event.keyCode === ESCAPE && mergedConfig.closeOnEscape) {\n drawerRef.close();\n }\n });\n\n overlayRef.backdropClick().subscribe(() => {\n if (mergedConfig.closeOnBackdrop) {\n drawerRef.close();\n }\n });\n\n hostRef.instance.beforeOpen.subscribe(() => {\n drawerRef.markBeforeOpen();\n });\n\n hostRef.instance.opened.subscribe(() => {\n drawerRef.markOpened();\n });\n\n hostRef.instance.closed.subscribe(() => {\n drawerRef.close();\n });\n\n drawerRef.afterClosed().subscribe(() => {\n this.destroyDrawer(entry);\n });\n\n hostRef.setInput('open', true);\n hostRef.changeDetectorRef.detectChanges();\n\n const panelBody =\n overlayRef.overlayElement.querySelector('.fk-drawer__body');\n\n if (panelBody) {\n panelBody.appendChild(contentRef.location.nativeElement);\n contentRef.changeDetectorRef.detectChanges();\n\n // Move [fkDrawerFooter] elements from the body into the footer wrapper.\n const footerWrapper =\n overlayRef.overlayElement.querySelector('.fk-drawer__footer');\n const footerElements = panelBody.querySelectorAll('[fkDrawerFooter]');\n\n if (footerWrapper) {\n footerElements.forEach((el: Element) => {\n footerWrapper.appendChild(el);\n });\n }\n }\n\n return drawerRef;\n }\n\n closeAll() {\n [...this.activeDrawers].forEach((entry) => entry.ref.close());\n }\n\n private applyConfig(\n hostRef: ComponentRef<DrawerComponent>,\n config: DrawerConfig,\n ) {\n hostRef.setInput('closable', config.closable ?? true);\n hostRef.setInput('width', config.width ?? 'md');\n hostRef.setInput('animation', config.animation ?? 'slide-right');\n hostRef.setInput('header', config.header ?? null);\n hostRef.setInput('restoreFocus', config.restoreFocus ?? true);\n hostRef.setInput('autoFocus', config.autoFocus ?? true);\n hostRef.setInput('className', config.className ?? '');\n hostRef.setInput('preventClose', config.preventClose ?? false);\n hostRef.setInput('canClose', config.canClose ?? null);\n hostRef.setInput('ariaLabel', config.ariaLabel ?? null);\n }\n\n private destroyDrawer(entry: DrawerEntry) {\n const idx = this.activeDrawers.indexOf(entry);\n\n if (idx > -1) {\n this.activeDrawers.splice(idx, 1);\n }\n\n entry.hostRef.setInput('open', false);\n entry.hostRef.changeDetectorRef.detectChanges();\n\n this.appRef.detachView(entry.contentRef.hostView);\n entry.contentRef.destroy();\n\n entry.overlayRef.dispose();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-kit-ui-ng-ui-drawer.mjs","sources":["../../../../packages/ui-ng/ui/drawer/drawer.component.ts","../../../../packages/ui-ng/ui/drawer/drawer.component.html","../../../../packages/ui-ng/ui/drawer/drawer.config.ts","../../../../packages/ui-ng/ui/drawer/drawer-ref.ts","../../../../packages/ui-ng/ui/drawer/drawer.service.ts","../../../../packages/ui-ng/ui/drawer/frame-kit-ui-ng-ui-drawer.ts"],"sourcesContent":["import { A11yModule } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport type {\n DrawerAnimation,\n DrawerCanCloseFn,\n DrawerWidth,\n} from './drawer.types';\n\nlet nextDrawerId = 0;\n\n/**\n * Drawer panel chrome.\n *\n * Hosted inside a CDK overlay by `DrawerService`, which owns the backdrop,\n * scroll blocking, positioning, stacking, and Escape / outside dispatch. This\n * component renders the sliding panel: header / body / footer projection,\n * width sizing, the slide animation, focus trapping, and the close guard.\n */\n@Component({\n selector: 'fk-drawer',\n standalone: true,\n imports: [A11yModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './drawer.component.html',\n styleUrl: './drawer.component.scss',\n})\nexport class DrawerComponent {\n // ===== INPUTS =====\n /** Controls whether the drawer is open. */\n readonly open = input(false);\n /** When true, shows the close button in the drawer header. */\n readonly closable = input(true);\n /** Width variant of the drawer panel. */\n readonly width = input<DrawerWidth>('md');\n /** Optional title text rendered in the drawer header. */\n readonly header = input<string | null>(null);\n /** When true, focus returns to the previously focused element when the drawer closes. */\n readonly restoreFocus = input(true);\n /** When true, CDK auto-focus is applied when the drawer opens. */\n readonly autoFocus = input(true);\n /** Entry/exit animation applied to the drawer panel. */\n readonly animation = input<DrawerAnimation>('slide-right');\n /** When true, all close mechanisms are blocked. */\n readonly preventClose = input(false);\n /** Async guard function called before closing; return false to cancel the close. */\n readonly canClose = input<DrawerCanCloseFn | null>(null);\n\n // ===== BASE PROPS =====\n readonly className = input<string>('');\n readonly id = input<string | null>(null);\n readonly ariaLabel = input<string | null>(null);\n\n // ===== OUTPUTS =====\n /** Fires when the drawer's open state should change, emitting the new boolean. */\n readonly openChange = output<boolean>();\n /** Fires immediately before the drawer begins its open animation. */\n readonly beforeOpen = output<void>();\n /** Fires after the drawer is fully open. */\n readonly opened = output<void>();\n /** Fires immediately before the drawer begins its close animation. */\n readonly beforeClose = output<void>();\n /** Fires after the drawer is fully closed. */\n readonly closed = output<void>();\n\n // ===== INTERNAL STATE =====\n private readonly doc = inject(DOCUMENT);\n readonly titleId = `fk-drawer-title-${nextDrawerId++}`;\n private previouslyFocusedElement: HTMLElement | null = null;\n private closeGuardRunning = false;\n\n readonly visible = signal(false);\n readonly animatingOut = signal(false);\n\n // ===== COMPUTED =====\n readonly classes = computed(() => {\n return ['fk-drawer', this.className()].filter(Boolean).join(' ');\n });\n\n readonly ariaLabelledBy = computed(() => {\n if (this.ariaLabel()) {\n return null;\n }\n\n return this.header() ? this.titleId : null;\n });\n\n constructor() {\n effect(() => {\n const isOpen = this.open();\n\n if (isOpen) {\n this.onDrawerOpen();\n } else {\n this.onDrawerClose();\n }\n });\n }\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n\n @HostBinding('attr.id')\n get hostId() {\n return this.id();\n }\n\n // ===== ACTIONS =====\n /** Closes the drawer, running any `canClose` guard first; no-ops when `preventClose` is true. */\n async close() {\n if (this.closeGuardRunning) {\n return;\n }\n\n if (this.preventClose()) {\n return;\n }\n\n const guard = this.canClose();\n\n if (guard) {\n this.closeGuardRunning = true;\n\n try {\n const allowed = await Promise.resolve(guard());\n\n if (!allowed) {\n return;\n }\n } finally {\n this.closeGuardRunning = false;\n }\n }\n\n this.beforeClose.emit();\n this.openChange.emit(false);\n this.closed.emit();\n }\n\n /** Called when the panel exit animation finishes. */\n onExitAnimationDone() {\n if (this.animatingOut()) {\n this.animatingOut.set(false);\n this.visible.set(false);\n }\n }\n\n // ===== LIFECYCLE =====\n private onDrawerOpen() {\n this.previouslyFocusedElement =\n (this.doc.activeElement as HTMLElement) ?? null;\n\n this.beforeOpen.emit();\n this.animatingOut.set(false);\n this.visible.set(true);\n this.opened.emit();\n }\n\n private onDrawerClose() {\n if (this.visible()) {\n if (this.animation() !== 'none') {\n this.animatingOut.set(true);\n } else {\n this.visible.set(false);\n }\n }\n\n if (this.restoreFocus() && this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n this.previouslyFocusedElement = null;\n }\n }\n}\n","@if (visible()) {\n <div\n class=\"fk-drawer__panel\"\n [class.fk-drawer__panel--sm]=\"width() === 'sm'\"\n [class.fk-drawer__panel--md]=\"width() === 'md'\"\n [class.fk-drawer__panel--lg]=\"width() === 'lg'\"\n [class.fk-drawer__panel--xl]=\"width() === 'xl'\"\n [class.fk-drawer__animate-panel--slide-right]=\"\n animation() === 'slide-right' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel--fade]=\"\n animation() === 'fade' && !animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--slide-right]=\"\n animation() === 'slide-right' && animatingOut()\n \"\n [class.fk-drawer__animate-panel-out--fade]=\"\n animation() === 'fade' && animatingOut()\n \"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [cdkTrapFocus]=\"true\"\n [cdkTrapFocusAutoCapture]=\"autoFocus()\"\n (animationend)=\"onExitAnimationDone()\"\n >\n @if (header() || closable()) {\n <div class=\"fk-drawer__header\">\n @if (header()) {\n <span class=\"fk-drawer__title\" [id]=\"titleId\">\n {{ header() }}\n </span>\n }\n\n @if (closable()) {\n <button\n class=\"fk-drawer__close\"\n type=\"button\"\n aria-label=\"Close drawer\"\n (click)=\"close()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"fk-drawer__body\">\n <ng-content />\n </div>\n\n <div class=\"fk-drawer__footer\">\n <ng-content select=\"[fkDrawerFooter]\" />\n </div>\n </div>\n}\n","import type {\n DrawerAnimation,\n DrawerCanCloseFn,\n DrawerWidth,\n} from './drawer.types';\n\nexport interface DrawerConfig<TData = unknown> {\n closable?: boolean;\n closeOnEscape?: boolean;\n closeOnBackdrop?: boolean;\n width?: DrawerWidth;\n animation?: DrawerAnimation;\n header?: string | null;\n restoreFocus?: boolean;\n autoFocus?: boolean;\n preventClose?: boolean;\n canClose?: DrawerCanCloseFn;\n className?: string;\n ariaLabel?: string | null;\n data?: TData;\n}\n\nexport const DEFAULT_DRAWER_CONFIG: DrawerConfig = {\n closable: true,\n closeOnEscape: true,\n closeOnBackdrop: true,\n width: 'md',\n animation: 'slide-right',\n header: null,\n restoreFocus: true,\n autoFocus: true,\n preventClose: false,\n className: '',\n ariaLabel: null,\n};\n","import { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport type { DrawerConfig } from './drawer.config';\nimport type { DrawerCanCloseFn } from './drawer.types';\n\nexport class DrawerRef<TResult = unknown, TData = unknown> {\n private readonly beforeOpenSubject = new Subject<void>();\n private readonly afterOpenedSubject = new Subject<void>();\n private readonly beforeCloseSubject = new Subject<void>();\n private readonly afterClosedSubject = new Subject<TResult | undefined>();\n private closed = false;\n private closeGuard: DrawerCanCloseFn | null = null;\n\n readonly config: DrawerConfig<TData>;\n\n constructor(config: DrawerConfig<TData> = {} as DrawerConfig<TData>) {\n this.config = config;\n\n if (config.canClose) {\n this.closeGuard = config.canClose;\n }\n }\n\n get data(): TData | undefined {\n return this.config.data;\n }\n\n setCanClose(guard: DrawerCanCloseFn | null) {\n this.closeGuard = guard;\n }\n\n async close(result?: TResult) {\n if (this.closed) {\n return;\n }\n\n if (this.config.preventClose) {\n return;\n }\n\n if (this.closeGuard) {\n const allowed = await Promise.resolve(this.closeGuard());\n\n if (!allowed) {\n return;\n }\n }\n\n this.beforeCloseSubject.next();\n this.beforeCloseSubject.complete();\n\n this.closed = true;\n this.afterClosedSubject.next(result);\n this.afterClosedSubject.complete();\n }\n\n beforeOpen(): Observable<void> {\n return this.beforeOpenSubject.asObservable().pipe(take(1));\n }\n\n afterOpened(): Observable<void> {\n return this.afterOpenedSubject.asObservable().pipe(take(1));\n }\n\n beforeClose(): Observable<void> {\n return this.beforeCloseSubject.asObservable().pipe(take(1));\n }\n\n afterClosed(): Observable<TResult | undefined> {\n return this.afterClosedSubject.asObservable().pipe(take(1));\n }\n\n /** @internal */\n markBeforeOpen() {\n this.beforeOpenSubject.next();\n this.beforeOpenSubject.complete();\n }\n\n /** @internal */\n markOpened() {\n this.afterOpenedSubject.next();\n this.afterOpenedSubject.complete();\n }\n}\n","import { ESCAPE } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\n\nimport { DrawerComponent } from './drawer.component';\nimport { DEFAULT_DRAWER_CONFIG, DrawerConfig } from './drawer.config';\nimport { DrawerRef } from './drawer-ref';\n\nexport const DRAWER_DATA = Symbol('DRAWER_DATA');\nexport const DRAWER_REF = Symbol('DRAWER_REF');\n\ninterface DrawerEntry {\n ref: DrawerRef;\n overlayRef: OverlayRef;\n hostRef: ComponentRef<DrawerComponent>;\n contentRef: ComponentRef<unknown>;\n}\n\n/**\n * Opens drawers as CDK overlays pinned to the right edge.\n *\n * CDK owns the backdrop, scroll blocking, positioning, z-index stacking, and\n * top-of-stack Escape / outside dispatch. The hosted `DrawerComponent` is the\n * panel chrome (header / body / footer, the slide animation, focus trap). A\n * drawer and a dialog opened over it coexist — the dialog stacks on top by\n * open order, and the drawer is no longer evicted.\n */\n@Injectable({ providedIn: 'root' })\nexport class DrawerService {\n private readonly overlay = inject(Overlay);\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n private readonly doc = inject(DOCUMENT);\n\n private activeDrawers: DrawerEntry[] = [];\n\n get openCount(): number {\n return this.activeDrawers.length;\n }\n\n open<TResult = unknown, TData = unknown>(\n content: Type<unknown>,\n config?: DrawerConfig<TData>,\n ): DrawerRef<TResult, TData> {\n const mergedConfig = {\n ...DEFAULT_DRAWER_CONFIG,\n ...config,\n } as DrawerConfig<TData>;\n const drawerRef = new DrawerRef<TResult, TData>(mergedConfig);\n\n const overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'fk-drawer__backdrop',\n panelClass: 'fk-drawer__pane',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global().right('0').top('0'),\n height: '100%',\n disposeOnNavigation: true,\n });\n\n const childInjector = Injector.create({\n parent: this.injector,\n providers: [\n { provide: DRAWER_DATA as never, useValue: mergedConfig.data },\n { provide: DRAWER_REF as never, useValue: drawerRef },\n ],\n });\n\n const hostRef = overlayRef.attach(\n new ComponentPortal(DrawerComponent, null, childInjector),\n );\n\n const contentRef = createComponent(content, {\n environmentInjector: this.injector,\n elementInjector: childInjector,\n hostElement: this.doc.createElement('div'),\n });\n\n this.appRef.attachView(contentRef.hostView);\n\n const entry: DrawerEntry = {\n ref: drawerRef as DrawerRef<unknown, unknown>,\n overlayRef,\n hostRef,\n contentRef,\n };\n\n this.activeDrawers.push(entry);\n\n this.applyConfig(hostRef, mergedConfig);\n\n overlayRef.keydownEvents().subscribe((event) => {\n if (event.keyCode === ESCAPE && mergedConfig.closeOnEscape) {\n drawerRef.close();\n }\n });\n\n overlayRef.backdropClick().subscribe(() => {\n if (mergedConfig.closeOnBackdrop) {\n drawerRef.close();\n }\n });\n\n hostRef.instance.beforeOpen.subscribe(() => {\n drawerRef.markBeforeOpen();\n });\n\n hostRef.instance.opened.subscribe(() => {\n drawerRef.markOpened();\n });\n\n hostRef.instance.closed.subscribe(() => {\n drawerRef.close();\n });\n\n drawerRef.afterClosed().subscribe(() => {\n this.destroyDrawer(entry);\n });\n\n hostRef.setInput('open', true);\n hostRef.changeDetectorRef.detectChanges();\n\n const panelBody =\n overlayRef.overlayElement.querySelector('.fk-drawer__body');\n\n if (panelBody) {\n panelBody.appendChild(contentRef.location.nativeElement);\n contentRef.changeDetectorRef.detectChanges();\n\n // Move [fkDrawerFooter] elements from the body into the footer wrapper.\n const footerWrapper =\n overlayRef.overlayElement.querySelector('.fk-drawer__footer');\n const footerElements = panelBody.querySelectorAll('[fkDrawerFooter]');\n\n if (footerWrapper) {\n footerElements.forEach((el: Element) => {\n footerWrapper.appendChild(el);\n });\n }\n }\n\n return drawerRef;\n }\n\n closeAll() {\n [...this.activeDrawers].forEach((entry) => entry.ref.close());\n }\n\n private applyConfig(\n hostRef: ComponentRef<DrawerComponent>,\n config: DrawerConfig,\n ) {\n hostRef.setInput('closable', config.closable ?? true);\n hostRef.setInput('width', config.width ?? 'md');\n hostRef.setInput('animation', config.animation ?? 'slide-right');\n hostRef.setInput('header', config.header ?? null);\n hostRef.setInput('restoreFocus', config.restoreFocus ?? true);\n hostRef.setInput('autoFocus', config.autoFocus ?? true);\n hostRef.setInput('className', config.className ?? '');\n hostRef.setInput('preventClose', config.preventClose ?? false);\n hostRef.setInput('canClose', config.canClose ?? null);\n hostRef.setInput('ariaLabel', config.ariaLabel ?? null);\n }\n\n private destroyDrawer(entry: DrawerEntry) {\n const idx = this.activeDrawers.indexOf(entry);\n\n if (idx > -1) {\n this.activeDrawers.splice(idx, 1);\n }\n\n entry.hostRef.setInput('open', false);\n entry.hostRef.changeDetectorRef.detectChanges();\n\n this.appRef.detachView(entry.contentRef.hostView);\n entry.contentRef.destroy();\n\n entry.overlayRef.dispose();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -22,11 +22,11 @@ class NavBrandComponent {
22
22
  return this.classes();
23
23
  }
24
24
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NavBrandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NavBrandComponent, isStandalone: true, selector: "fk-nav-brand", inputs: { brandText: { classPropertyName: "brandText", publicName: "brandText", isSignal: true, isRequired: true, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<a\n class=\"fk-nav-brand__link\"\n [routerLink]=\"href()\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n <span class=\"fk-nav-brand__logo\">\n <ng-content select=\"[navLogo]\"></ng-content>\n </span>\n <span class=\"fk-nav-brand__text\">{{ brandText() }}</span>\n</a>\n", styles: [":host{display:inline-block}.fk-nav-brand__link{display:inline-flex;align-items:center;gap:var(--fk-nav-brand-gap, .5rem);text-decoration:none;color:var(--fk-nav-brand-color, inherit)}.fk-nav-brand__link:hover{color:var(--fk-nav-brand-color-hover, inherit)}.fk-nav-brand__text{font-size:var(--fk-nav-brand-font-size, 1.125rem);font-weight:var(--fk-nav-brand-font-weight, 600);line-height:var(--fk-nav-brand-line-height, 1);white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NavBrandComponent, isStandalone: true, selector: "fk-nav-brand", inputs: { brandText: { classPropertyName: "brandText", publicName: "brandText", isSignal: true, isRequired: true, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<a\n class=\"fk-nav-brand__link\"\n [routerLink]=\"href()\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n <span class=\"fk-nav-brand__logo\">\n <ng-content select=\"[navLogo]\"></ng-content>\n </span>\n <span class=\"fk-nav-brand__text\">{{ brandText() }}</span>\n</a>\n", styles: [":host{display:inline-block}.fk-nav-brand__link{display:inline-flex;align-items:center;gap:var(--fk-nav-brand-gap, .5rem);text-decoration:none;color:var(--fk-nav-brand-color, inherit)}.fk-nav-brand__link:hover{color:var(--fk-nav-brand-color-hover, inherit)}.fk-nav-brand__text{font-family:var(--fk-nav-brand-font-family, var(--fk-font-family-display, var(--fk-font-family-base, sans-serif)));font-size:var(--fk-nav-brand-font-size, 1.125rem);font-weight:var(--fk-nav-brand-font-weight, 600);line-height:var(--fk-nav-brand-line-height, 1);white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NavBrandComponent, decorators: [{
28
28
  type: Component,
29
- args: [{ selector: 'fk-nav-brand', standalone: true, imports: [RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"fk-nav-brand__link\"\n [routerLink]=\"href()\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n <span class=\"fk-nav-brand__logo\">\n <ng-content select=\"[navLogo]\"></ng-content>\n </span>\n <span class=\"fk-nav-brand__text\">{{ brandText() }}</span>\n</a>\n", styles: [":host{display:inline-block}.fk-nav-brand__link{display:inline-flex;align-items:center;gap:var(--fk-nav-brand-gap, .5rem);text-decoration:none;color:var(--fk-nav-brand-color, inherit)}.fk-nav-brand__link:hover{color:var(--fk-nav-brand-color-hover, inherit)}.fk-nav-brand__text{font-size:var(--fk-nav-brand-font-size, 1.125rem);font-weight:var(--fk-nav-brand-font-weight, 600);line-height:var(--fk-nav-brand-line-height, 1);white-space:nowrap}\n"] }]
29
+ args: [{ selector: 'fk-nav-brand', standalone: true, imports: [RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"fk-nav-brand__link\"\n [routerLink]=\"href()\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n <span class=\"fk-nav-brand__logo\">\n <ng-content select=\"[navLogo]\"></ng-content>\n </span>\n <span class=\"fk-nav-brand__text\">{{ brandText() }}</span>\n</a>\n", styles: [":host{display:inline-block}.fk-nav-brand__link{display:inline-flex;align-items:center;gap:var(--fk-nav-brand-gap, .5rem);text-decoration:none;color:var(--fk-nav-brand-color, inherit)}.fk-nav-brand__link:hover{color:var(--fk-nav-brand-color-hover, inherit)}.fk-nav-brand__text{font-family:var(--fk-nav-brand-font-family, var(--fk-font-family-display, var(--fk-font-family-base, sans-serif)));font-size:var(--fk-nav-brand-font-size, 1.125rem);font-weight:var(--fk-nav-brand-font-weight, 600);line-height:var(--fk-nav-brand-line-height, 1);white-space:nowrap}\n"] }]
30
30
  }], propDecorators: { brandText: [{ type: i0.Input, args: [{ isSignal: true, alias: "brandText", required: true }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hostClass: [{
31
31
  type: HostBinding,
32
32
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"frame-kit-ui-ng-ui-nav-brand.mjs","sources":["../../../../packages/ui-ng/ui/nav-brand/nav-brand.component.ts","../../../../packages/ui-ng/ui/nav-brand/nav-brand.component.html","../../../../packages/ui-ng/ui/nav-brand/frame-kit-ui-ng-ui-nav-brand.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n input,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'fk-nav-brand',\n standalone: true,\n imports: [RouterModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './nav-brand.component.html',\n styleUrl: './nav-brand.component.scss',\n})\nexport class NavBrandComponent {\n // ===== REQUIRED =====\n /** Brand or application name rendered as the nav logo text. */\n readonly brandText = input.required<string>();\n\n // ===== OPTIONAL =====\n /** Router path the brand link navigates to when clicked. */\n readonly href = input<string>('/');\n\n // ===== BASE PROPS =====\n readonly id = input<string | null>(null);\n readonly className = input<string>('');\n readonly ariaLabel = input<string | null>(null);\n\n // ===== COMPUTED =====\n readonly classes = computed(() => {\n return ['fk-nav-brand', this.className()].filter(Boolean).join(' ');\n });\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n}\n","<a\n class=\"fk-nav-brand__link\"\n [routerLink]=\"href()\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n <span class=\"fk-nav-brand__logo\">\n <ng-content select=\"[navLogo]\"></ng-content>\n </span>\n <span class=\"fk-nav-brand__text\">{{ brandText() }}</span>\n</a>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAiBa,iBAAiB,CAAA;;;AAGnB,IAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,+EAAU;;;AAIpC,IAAA,IAAI,GAAG,KAAK,CAAS,GAAG,2EAAC;;AAGzB,IAAA,EAAE,GAAG,KAAK,CAAgB,IAAI,yEAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,gFAAC;AAC7B,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,gFAAC;;AAGtC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrE,IAAA,CAAC,8EAAC;AAEF,IAAA,IACI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;uGAtBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB9B,0SAWA,EAAA,MAAA,EAAA,CAAA,6bAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAKX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0SAAA,EAAA,MAAA,EAAA,CAAA,6bAAA,CAAA,EAAA;;sBAuB9C,WAAW;uBAAC,OAAO;;;AEpCtB;;AAEG;;;;"}
1
+ {"version":3,"file":"frame-kit-ui-ng-ui-nav-brand.mjs","sources":["../../../../packages/ui-ng/ui/nav-brand/nav-brand.component.ts","../../../../packages/ui-ng/ui/nav-brand/nav-brand.component.html","../../../../packages/ui-ng/ui/nav-brand/frame-kit-ui-ng-ui-nav-brand.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n input,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'fk-nav-brand',\n standalone: true,\n imports: [RouterModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './nav-brand.component.html',\n styleUrl: './nav-brand.component.scss',\n})\nexport class NavBrandComponent {\n // ===== REQUIRED =====\n /** Brand or application name rendered as the nav logo text. */\n readonly brandText = input.required<string>();\n\n // ===== OPTIONAL =====\n /** Router path the brand link navigates to when clicked. */\n readonly href = input<string>('/');\n\n // ===== BASE PROPS =====\n readonly id = input<string | null>(null);\n readonly className = input<string>('');\n readonly ariaLabel = input<string | null>(null);\n\n // ===== COMPUTED =====\n readonly classes = computed(() => {\n return ['fk-nav-brand', this.className()].filter(Boolean).join(' ');\n });\n\n @HostBinding('class')\n get hostClass() {\n return this.classes();\n }\n}\n","<a\n class=\"fk-nav-brand__link\"\n [routerLink]=\"href()\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n <span class=\"fk-nav-brand__logo\">\n <ng-content select=\"[navLogo]\"></ng-content>\n </span>\n <span class=\"fk-nav-brand__text\">{{ brandText() }}</span>\n</a>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAiBa,iBAAiB,CAAA;;;AAGnB,IAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,+EAAU;;;AAIpC,IAAA,IAAI,GAAG,KAAK,CAAS,GAAG,2EAAC;;AAGzB,IAAA,EAAE,GAAG,KAAK,CAAgB,IAAI,yEAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,gFAAC;AAC7B,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,gFAAC;;AAGtC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrE,IAAA,CAAC,8EAAC;AAEF,IAAA,IACI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;uGAtBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB9B,0SAWA,EAAA,MAAA,EAAA,CAAA,gjBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAKX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0SAAA,EAAA,MAAA,EAAA,CAAA,gjBAAA,CAAA,EAAA;;sBAuB9C,WAAW;uBAAC,OAAO;;;AEpCtB;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frame-kit/ui-ng",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "Style-agnostic, token-driven Angular UI component library for FrameKit.",
5
5
  "license": "MIT",
6
6
  "repository": {