import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
/**
* Marks projected chrome as the non-scrolling overlay header (title + close).
*
* @example
* ```html
*
*
*
Edit shipment
*
*
* …
*
* ```
*/
@Directive({
selector: '[africaniesOverlayHeader]',
standalone: true,
})
/**
* Marks projected chrome as the non-scrolling overlay header (title + close).
*/
export class OverlayHeaderDirective {}
/**
* Marks projected chrome as the non-scrolling overlay footer (actions).
*
* @example
* ```html
*
* …
*
*
*
*
*
* ```
*/
@Directive({
selector: '[africaniesOverlayFooter]',
standalone: true,
})
/**
* Marks projected chrome as the non-scrolling overlay footer (actions).
*/
export class OverlayFooterDirective {}
/**
* Header / scroll body / footer shell for {@link ModalService} and
* {@link DrawerService} panels.
*
* WHY: the pane must not scroll. Overlay scrollbars sit on the right edge and
* cover a top-right close control or bottom-right actions. This frame keeps
* header and footer outside the scrollport; only the default slot scrolls,
* with `.africanies-overlay-scroll` reserving a scrollbar gutter.
*
* Put `overflow-hidden` on the hosted component host so the pane child
* does not become a second scroller (a Tailwind utility wins the base rule
* on `.africanies-modal-panel > *`).
*
* @example
* ```ts
* @Component({
* selector: 'app-edit-modal',
* standalone: true,
* imports: [OverlayFrameComponent, OverlayHeaderDirective, OverlayFooterDirective],
* host: { class: 'flex min-h-0 w-full flex-col overflow-hidden' },
* template: `
*
*