yukit-web 0.0.8 → 0.0.10

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "yukit-web",
3
3
  "description": "Angular UI component library for Yurest web applications.",
4
- "version": "0.0.8",
4
+ "version": "0.0.10",
5
5
  "author": {
6
6
  "name": "Yurest Solutions",
7
7
  "email": "develop@yurest.com"
@@ -30,7 +30,6 @@ import { HlmAttachmentAction } from 'yukit-web/helm/attachment';
30
30
  import { RouterLink } from '@angular/router';
31
31
  import * as i1$d from 'yukit-web/helm/sidebar';
32
32
  export { HlmSidebarConfig as YuwSidebarConfigDto, HlmSidebarService as YuwSidebarService, SidebarVariant as YuwSidebarServiceVariantDto, provideHlmSidebarConfig as provideYuwSidebarConfig } from 'yukit-web/helm/sidebar';
33
- import * as i2$1 from 'yukit-web/helm/hover-card';
34
33
 
35
34
  /**
36
35
  * Merges class lists the shadcn/Spartan way: `clsx` resolves conditionals/arrays, `twMerge`
@@ -1971,6 +1970,7 @@ declare class YuwSheetFooterDirective {
1971
1970
  }
1972
1971
 
1973
1972
  type YuwSheetSideDto = 'top' | 'bottom' | 'left' | 'right';
1973
+ type YuwSheetScrollStrategyDto = null | 'close' | 'reposition';
1974
1974
  /**
1975
1975
  * Slide-in sheet overlay panel component for side drawers, dialogs, and detail views.
1976
1976
  *
@@ -1989,7 +1989,18 @@ type YuwSheetSideDto = 'top' | 'bottom' | 'left' | 'right';
1989
1989
  * renders and screen readers read this label; when absent there is no close button. User-facing
1990
1990
  * text the consuming app is responsible for translating.
1991
1991
  * - `panelClass`: Extra classes merged onto the sheet panel (e.g. `sm:max-w-lg` to widen it).
1992
- * They win over the library defaults via `twMerge`.
1992
+ * They win over the library defaults via `twMerge`. Note `twMerge` resolves per variant group, so a
1993
+ * plain utility does not displace a variant-prefixed default — to override `data-[side=left]:w-3/4`
1994
+ * the class has to be `data-[side=left]:w-64`, not `w-64`.
1995
+ * - `overlayClass`: Extra classes for the backdrop, for a sheet that should not dim the whole
1996
+ * viewport. Applied through `setOverlayClass` rather than a template binding: the backdrop lives in
1997
+ * the overlay too, and the helm's own class always wins the `class` input it exposes.
1998
+ * - `scrollStrategy`: What happens to page scroll while open. Defaults to the brain's blocking
1999
+ * strategy; pass `'reposition'` for a panel that should leave the page scrollable.
2000
+ * - `ariaModal`: Whether the sheet claims the rest of the page is hidden. Leave `true` for a real
2001
+ * modal; set `false` when content outside stays visible and usable, so the claim stays honest.
2002
+ * - `closeOnOutsidePointerEvents`: Whether a pointer press outside the panel closes it. Default is
2003
+ * `false`, matching the brain.
1993
2004
  * - `triggerVariant`: Button style variant for the trigger button.
1994
2005
  * - `triggerSize`: Button size for the trigger button.
1995
2006
  *
@@ -2007,6 +2018,7 @@ type YuwSheetSideDto = 'top' | 'bottom' | 'left' | 'right';
2007
2018
  * ```
2008
2019
  */
2009
2020
  declare class YuwSheetComponent {
2021
+ private readonly sheet;
2010
2022
  readonly open: _angular_core.ModelSignal<boolean>;
2011
2023
  readonly showTrigger: _angular_core.InputSignalWithTransform<boolean, unknown>;
2012
2024
  readonly side: _angular_core.InputSignal<YuwSheetSideDto>;
@@ -2015,13 +2027,18 @@ declare class YuwSheetComponent {
2015
2027
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
2016
2028
  readonly closeLabel: _angular_core.InputSignal<string | undefined>;
2017
2029
  readonly panelClass: _angular_core.InputSignal<string | undefined>;
2030
+ readonly overlayClass: _angular_core.InputSignal<string | undefined>;
2031
+ readonly scrollStrategy: _angular_core.InputSignal<YuwSheetScrollStrategyDto>;
2032
+ readonly ariaModal: _angular_core.InputSignalWithTransform<boolean, unknown>;
2033
+ readonly closeOnOutsidePointerEvents: _angular_core.InputSignalWithTransform<boolean, unknown>;
2018
2034
  readonly triggerVariant: _angular_core.InputSignal<"default" | "secondary" | "destructive" | "outline" | "ghost" | "link" | null | undefined>;
2019
2035
  readonly triggerSize: _angular_core.InputSignal<"default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined>;
2020
2036
  protected readonly hasFooter: _angular_core.Signal<YuwSheetFooterDirective | undefined>;
2037
+ constructor();
2021
2038
  protected readonly _sheetState: _angular_core.Signal<"open" | "closed">;
2022
2039
  protected onStateChanged(state: 'open' | 'closed'): void;
2023
2040
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSheetComponent, never>;
2024
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwSheetComponent, "yuw-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "showTrigger": { "alias": "showTrigger"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "triggerVariant": { "alias": "triggerVariant"; "required": false; "isSignal": true; }; "triggerSize": { "alias": "triggerSize"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, ["hasFooter"], ["[yuwSheetTrigger]", "*", "[yuwSheetFooter]"], true, never>;
2041
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwSheetComponent, "yuw-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "showTrigger": { "alias": "showTrigger"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "overlayClass": { "alias": "overlayClass"; "required": false; "isSignal": true; }; "scrollStrategy": { "alias": "scrollStrategy"; "required": false; "isSignal": true; }; "ariaModal": { "alias": "ariaModal"; "required": false; "isSignal": true; }; "closeOnOutsidePointerEvents": { "alias": "closeOnOutsidePointerEvents"; "required": false; "isSignal": true; }; "triggerVariant": { "alias": "triggerVariant"; "required": false; "isSignal": true; }; "triggerSize": { "alias": "triggerSize"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, ["hasFooter"], ["[yuwSheetTrigger]", "*", "[yuwSheetFooter]"], true, never>;
2025
2042
  }
2026
2043
  declare const YuwSheetImports: readonly [typeof YuwSheetComponent, typeof YuwSheetFooterDirective];
2027
2044
 
@@ -2594,6 +2611,14 @@ declare class YuwAttachmentTriggerDirective {
2594
2611
  * - Expanding, the rail look has to go immediately. The labels need the whole animation to fade and
2595
2612
  * ellipsis into place, so waiting would replace one jump with another at the far end.
2596
2613
  *
2614
+ * `railPending` is the mirror of it, for anything whose *presence* has to span the whole collapse
2615
+ * rather than arrive at the end of it: `true` the instant the panel starts narrowing, `false` only
2616
+ * once the expand has finished widening. The pair brackets the animation from both sides — every
2617
+ * frame in which the panel is at, or moving towards, rail width has `railPending` set, while only the
2618
+ * frames where it has actually arrived have `railSettled` set. Something that must not be visible
2619
+ * during the motion keys off this one; something that must not be restyled during the motion keys off
2620
+ * `railSettled`.
2621
+ *
2597
2622
  * The delay runs through `timer` rather than a `setTimeout` inside an `effect`, and that is not a
2598
2623
  * stylistic choice: this app is zoneless, so a signal written from a bare timer callback notifies
2599
2624
  * nobody. Components reading `railSettled` in a template binding are `OnPush`, so they would keep
@@ -2602,12 +2627,14 @@ declare class YuwAttachmentTriggerDirective {
2602
2627
  *
2603
2628
  * Provided at the root so `<yuw-sidebar>` and the nav share one instance — the component stamps the
2604
2629
  * attribute the class layers select on, and the nav reads the same signal to decide between accordion
2605
- * and flyout, so the two must agree on the exact frame.
2630
+ * and submenu sheet, so the two must agree on the exact frame.
2606
2631
  */
2607
2632
  declare class YuwSidebarRailService {
2608
2633
  private readonly sidebar;
2609
2634
  readonly collapsed: Signal<boolean>;
2635
+ private readonly collapsed$;
2610
2636
  readonly railSettled: Signal<boolean>;
2637
+ readonly railPending: Signal<boolean>;
2611
2638
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarRailService, never>;
2612
2639
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<YuwSidebarRailService>;
2613
2640
  }
@@ -2669,9 +2696,8 @@ interface YuwSidebarSubItemDto extends YuwSidebarNavigationDto {
2669
2696
  * injector chain. Same contract as `<yuw-spinner icon="…">`.
2670
2697
  * - `badge`: short trailing count or status, hidden automatically while collapsed to icons.
2671
2698
  * - `tooltip`: label shown while collapsed to icons, where `label` is not visible. Falls back to
2672
- * `label` when absent, so the common case needs no second field. Ignored on an entry with
2673
- * `children`, which shows its flyout on hover instead — the two would fire on the same gesture at
2674
- * the same screen position.
2699
+ * `label` when absent, so the common case needs no second field. Applies to every entry, including
2700
+ * one with `children`: its submenu opens on click, so nothing else is competing for the hover.
2675
2701
  * - `expanded`: whether the submenu starts open, for an entry with `children`. A seed for the
2676
2702
  * initial state only, not live state: the user's own toggling lives in the sidebar and survives
2677
2703
  * the consumer replacing this object. An entry holding the active route opens regardless.
@@ -2743,8 +2769,8 @@ type YuwSidebarCollapsibleDto = 'offcanvas' | 'icon' | 'none';
2743
2769
  * `[routerLink]` anchor whose active state, `aria-current` and pointer-lock resolve automatically
2744
2770
  * from `routerLinkActive`; one with an `href` becomes a plain anchor; one with neither becomes a
2745
2771
  * button that reports through `itemClicked`. An item with `children` gets a submenu that follows
2746
- * the sidebar's own state: an accordion while the panel is open, and a hover flyout to the side
2747
- * once it is collapsed to icons, so nested entries stay reachable from the rail. Its `expanded`
2772
+ * the sidebar's own state: an accordion while the panel is open, and a sheet sliding out beside the
2773
+ * rail once it is collapsed to icons, so nested entries stay reachable there. Its `expanded`
2748
2774
  * field seeds the accordion; the item holding the active route opens on its own.
2749
2775
  * - `footer`: The same, rendered into the footer region.
2750
2776
  *
@@ -2766,6 +2792,11 @@ type YuwSidebarCollapsibleDto = 'offcanvas' | 'icon' | 'none';
2766
2792
  * content area's flex sizing — mark it `[yuwSidebarContentExtra]` or `[yuwSidebarFooterExtra]`; the
2767
2793
  * default slot keeps everything else, so existing projection-only usage is unaffected.
2768
2794
  *
2795
+ * With `collapsible="icon"` the component also renders a single submenu sheet, shared by every entry
2796
+ * that has `children` in either region. It is one panel rather than one per entry because a sheet is a
2797
+ * modal overlay: several would compete for the same screen position, and only one submenu is ever on
2798
+ * screen anyway.
2799
+ *
2769
2800
  * `header` has no object form: it is a free-form branding area with no repeating structure to model.
2770
2801
  *
2771
2802
  * Deliberately not exposed from the helm sidebar (add a wrapper only when a real consumer needs
@@ -2982,13 +3013,13 @@ declare class YuwSidebarMenuItemDirective {
2982
3013
  * (`'default'`, `'sm'`, `'lg'`) and `isActive`.
2983
3014
  *
2984
3015
  * `tooltip` labels the item while the sidebar is collapsed to icons, where the label itself is
2985
- * hidden; the composed primitive shows it only in that state, and only for entries with no flyout of
2986
- * their own — an entry with children opens its submenu on the same hover instead.
3016
+ * hidden; the composed primitive shows it only in that state. Every entry gets one, including those
3017
+ * with children — their submenu opens on click, so it never competes with the hover.
2987
3018
  *
2988
3019
  * Reaching that input takes composing `BrnTooltip` here under the same `tooltip` alias the helm uses,
2989
3020
  * rather than forwarding it. `HlmSidebarMenuButton` publishes the alias on its own `hostDirectives`
2990
3021
  * entry, which does not make it an input of the helm directive — a forward cannot be re-forwarded, the
2991
- * same limit `[yuwSidebarFlyoutTrigger]` runs into. Angular resolves both entries to the one
3022
+ * same limit `context-menu.directives.ts` documents. Angular resolves both entries to the one
2992
3023
  * `BrnTooltip` instance on the element, so the helm keeps driving `mutableTooltipDisabled` (which is
2993
3024
  * what confines the tooltip to the collapsed state) while this binding supplies its content.
2994
3025
  *
@@ -3015,7 +3046,7 @@ declare class YuwSidebarMenuItemDirective {
3015
3046
  * shrink-to-fit for the whole width animation — long enough for the label to stop ellipsing and
3016
3047
  * the trailing chevron to sit against it.
3017
3048
  * - `[&>span]:hidden` drops the label while collapsed, leaving the icon alone — the tooltip carries
3018
- * the name in that state, or the flyout does for an entry with children. Matched by element rather
3049
+ * the name in that state. Matched by element rather
3019
3050
  * than by `:last-child` (which is what the helm's own `truncate` uses): an expandable entry ends
3020
3051
  * with a trailing chevron, so the label is no longer the last child and a positional selector
3021
3052
  * would skip exactly those entries. `span` is unambiguous here — the label is the only one a menu
@@ -3066,122 +3097,6 @@ declare class YuwSidebarMenuSubButtonDirective {
3066
3097
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarMenuSubButtonDirective, never>;
3067
3098
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarMenuSubButtonDirective, "a[yuwSidebarMenuSubButton], button[yuwSidebarMenuSubButton]", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarMenuSubButton; inputs: { "size": "size"; "isActive": "isActive"; "closeMobileSidebarOnClick": "closeMobileSidebarOnClick"; }; outputs: {}; }]>;
3068
3099
  }
3069
- /**
3070
- * Host of a collapsed-state flyout: the element that scopes the overlay for one entry. Apply
3071
- * alongside `[yuwSidebarMenuItem]` on the `<li>` holding the entry and its panel.
3072
- *
3073
- * Provides `BrnHoverCardContentService` itself instead of composing `HlmHoverCard`. The service has
3074
- * to be scoped per `<li>` — it holds the single overlay and its content, so a shared one would have
3075
- * every entry in the sidebar fighting over the same panel — and providing it here is all that is
3076
- * needed for that. What `HlmHoverCard` adds on top is a `contentChild` pairing that assigns the
3077
- * trigger's content in `ngAfterContentInit`, and that pairing is actively harmful here: it writes
3078
- * into the same writable signal the trigger's own input feeds, so its one-time value outlives and
3079
- * overrides the binding that is supposed to turn the flyout off while the sidebar is expanded.
3080
- */
3081
- declare class YuwSidebarFlyoutHostDirective {
3082
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarFlyoutHostDirective, never>;
3083
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarFlyoutHostDirective, "[yuwSidebarFlyoutHost]", never, {}, {}, never, never, true, never>;
3084
- }
3085
- /**
3086
- * The entry whose hover opens a flyout. Apply to the same element as `[yuwSidebarMenuButton]`, bound
3087
- * to the panel's `<ng-template>` reference — or to `undefined` to switch the flyout off entirely,
3088
- * which is how an expanded sidebar keeps its submenus inline.
3089
- *
3090
- * Drives `BrnHoverCardContentService` directly instead of composing `BrnHoverCardTrigger`. The brain
3091
- * trigger has no way to be turned off once it has run: it feeds the panel to the service through an
3092
- * effect that ignores falsy values, and the service's `show()` consults only its stored content, so
3093
- * a trigger that was ever enabled keeps opening its overlay forever. Rebinding to `undefined` cannot
3094
- * undo it, and neither can `hide()`, which detaches the overlay but leaves the content in place.
3095
- * Owning the wiring here is what makes an unbound panel mean "inert".
3096
- *
3097
- * The `effect` is the whole lifecycle: it runs when a panel arrives, and its `onCleanup` closes the
3098
- * overlay and drops the subscription when the panel goes away or the entry is destroyed. Nothing
3099
- * else tracks teardown, which is why there is no `DestroyRef` or `takeUntilDestroyed` here — a second
3100
- * mechanism would only be able to disagree with this one.
3101
- *
3102
- * Delays are read inside `switchMap` rather than captured when the effect runs, so retuning them
3103
- * does not tear down and rebuild the subscription.
3104
- *
3105
- * `distinctUntilChanged` before the timer is load-bearing, and not as an optimisation: the five
3106
- * merged sources overlap, so crossing from the entry to the panel emits a `mouseleave` and the
3107
- * panel's own hover almost together, and `mouseenter` and `focusin` both fire on the same pointer
3108
- * arriving. Each duplicate would restart `switchMap` and cancel the timer already in flight, so a
3109
- * repeat during the show delay could keep the panel from ever opening.
3110
- *
3111
- * It cannot dedupe the crossing itself, though — that genuinely alternates `false` then `true`, so
3112
- * both values are distinct and both survive. `toggle` is therefore guarded against the state it is
3113
- * already in, because `show()` is not idempotent: it calls `detach()` then `attach()`, tearing the
3114
- * panel down and rebuilding it. Re-showing an open panel replays its enter animation, which is the
3115
- * flicker you get when the pointer moves from the rail into the flyout.
3116
- *
3117
- * Note there is no click handling. `BrnHoverCardTrigger` maps a click to `false`, which is right for
3118
- * a hover card — clicking the trigger dismisses it — and wrong for a nav rail, where the entry's own
3119
- * click has nothing to collapse while collapsed and closing the panel would take away the links the
3120
- * pointer is travelling to. Activating a child closes the flyout anyway, since the pointer leaves
3121
- * the panel as the page changes.
3122
- *
3123
- * `align` is `'right'` for a sidebar flyout rather than the hover card's own `'bottom'`. It is set as
3124
- * an input rather than through `provideBrnHoverCardDefaultOptions` because that provider types its
3125
- * `align` as `'top' | 'bottom'`, even though the position map handles all four sides.
3126
- */
3127
- declare class YuwSidebarFlyoutTriggerDirective {
3128
- private readonly element;
3129
- private readonly viewContainerRef;
3130
- private readonly service;
3131
- readonly panel: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
3132
- readonly align: _angular_core.InputSignal<"left" | "right" | "top" | "bottom">;
3133
- readonly sideOffset: _angular_core.InputSignalWithTransform<number, unknown>;
3134
- readonly showDelay: _angular_core.InputSignalWithTransform<number, unknown>;
3135
- readonly hideDelay: _angular_core.InputSignalWithTransform<number, unknown>;
3136
- private readonly pointerOver;
3137
- constructor();
3138
- private toggle;
3139
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarFlyoutTriggerDirective, never>;
3140
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarFlyoutTriggerDirective, "[yuwSidebarFlyoutTrigger]", never, { "panel": { "alias": "yuwSidebarFlyoutTrigger"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "showDelay": { "alias": "showDelay"; "required": false; "isSignal": true; }; "hideDelay": { "alias": "hideDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3141
- }
3142
- /**
3143
- * Marks the `<ng-template>` holding a flyout's markup, and is what `[yuwSidebarFlyoutTrigger]` is
3144
- * bound to. Exported as `yuwSidebarFlyoutPanel` so the template can name it.
3145
- *
3146
- * Structural — the composed primitive injects the `TemplateRef`, which is what lets the panel be
3147
- * portalled into a CDK overlay instead of rendering inside the rail.
3148
- *
3149
- * The trigger is bound to the template's own `#ref` (a `TemplateRef`, which its input accepts), so
3150
- * this directive is never referenced by name — but it cannot be dropped: it is the sole provider of
3151
- * the exposed state and side tokens that `[yuwSidebarFlyout]` injects from its host, and without it
3152
- * the panel throws NG0201 the moment the overlay instantiates it.
3153
- */
3154
- declare class YuwSidebarFlyoutPanelDirective {
3155
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarFlyoutPanelDirective, never>;
3156
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarFlyoutPanelDirective, "ng-template[yuwSidebarFlyoutPanel]", never, {}, {}, never, never, true, [{ directive: typeof i2$1.HlmHoverCardPortal; inputs: {}; outputs: {}; }]>;
3157
- }
3158
- /**
3159
- * The flyout's visible surface. Apply to the single root element inside a `[yuwSidebarFlyoutPanel]`
3160
- * template.
3161
- *
3162
- * Separate from the panel marker because the two sit on different nodes: the marker is the
3163
- * `<ng-template>`, this is the element the overlay renders. Carries the popover surface of the
3164
- * composed helm content plus `yuwSidebarFlyoutClass`.
3165
- *
3166
- * That class layer exists because the panel lives in the overlay, outside the sidebar's DOM subtree,
3167
- * and so is no longer a descendant of the `group/sidebar-wrapper` element. Every
3168
- * `group-data-[collapsible=…]` selector therefore resolves against nothing and stays inert —
3169
- * including the `hidden` that `HlmSidebarMenuSub` and `HlmSidebarMenuSubButton` apply to themselves
3170
- * in exactly this state, which is why the submenu markup renders visible in here with no override.
3171
- * What the layer undoes instead is the indentation and vertical rule those primitives carry for the
3172
- * inline case, which make no sense in a panel.
3173
- *
3174
- * The gap between rail and panel is that layer's `ms-2`, not the trigger's `sideOffset`, which is
3175
- * deliberately `0`. An offset moves the overlay away from the trigger and leaves dead space between
3176
- * them: crossing it slowly means the pointer is over neither element, and the hover card closes
3177
- * mid-journey. A margin keeps the same visual gap inside the overlay's own box, so the pointer never
3178
- * leaves the hover target on its way in.
3179
- */
3180
- declare class YuwSidebarFlyoutDirective {
3181
- constructor();
3182
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarFlyoutDirective, never>;
3183
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarFlyoutDirective, "[yuwSidebarFlyout]", never, {}, {}, never, never, true, [{ directive: typeof i2$1.HlmHoverCardContent; inputs: {}; outputs: {}; }]>;
3184
- }
3185
3100
  /** Divider between sidebar sections. */
3186
3101
  declare class YuwSidebarSeparatorDirective {
3187
3102
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarSeparatorDirective, never>;
@@ -3203,5 +3118,25 @@ declare class YuwSidebarInsetDirective {
3203
3118
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarInsetDirective, "main[yuwSidebarInset]", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarInset; inputs: {}; outputs: {}; }]>;
3204
3119
  }
3205
3120
 
3206
- export { DATATABLE_ALIGN_CLASS, YUW_DATATABLE_FEATURES, YUW_PASSWORD_REVEAL_STATES, YuwAccordion, YuwAccordionContentComponent, YuwAccordionImports, YuwAccordionItem, YuwAccordionTriggerComponent, YuwAlertActionDirective, YuwAlertComponent, YuwAlertDescriptionDirective, YuwAlertDialogComponent, YuwAlertDialogMediaDirective, YuwAlertDialogTriggerDirective, YuwAlertImports, YuwAlertTitleDirective, YuwAttachmentActionDirective, YuwAttachmentActionsDirective, YuwAttachmentContentDirective, YuwAttachmentDescriptionDirective, YuwAttachmentDirective, YuwAttachmentGroupDirective, YuwAttachmentMediaDirective, YuwAttachmentTitleDirective, YuwAttachmentTriggerDirective, YuwAvatarComponent, YuwBadgeComponent, YuwBreadcrumbComponent, YuwButtonComponent, YuwButtonGroupTextDirective, YuwCaptionDirective, YuwCardActionDirective, YuwCardContentDirective, YuwCardDescriptionDirective, YuwCardDirective, YuwCardFooterDirective, YuwCardHeaderDirective, YuwCardImports, YuwCardTitleDirective, YuwCheckboxComponent, YuwComboboxComponent, YuwComboboxItemDirective, YuwContextMenuCheckboxDirective, YuwContextMenuCheckboxIndicatorComponent, YuwContextMenuDirective, YuwContextMenuGroupDirective, YuwContextMenuImports, YuwContextMenuItemDirective, YuwContextMenuLabelDirective, YuwContextMenuRadioDirective, YuwContextMenuRadioIndicatorComponent, YuwContextMenuSeparatorDirective, YuwContextMenuShortcutDirective, YuwContextMenuSubDirective, YuwContextMenuSubIndicatorComponent, YuwContextMenuSubTriggerDirective, YuwContextMenuTriggerDirective, YuwDatatableComponent, YuwDatatableRowSelect, YuwDatepickerComponent, YuwDialogCloseDirective, YuwDialogComponent, YuwDialogFooterDirective, YuwDialogImports, YuwDialogTriggerDirective, YuwEmptyContentDirective, YuwEmptyDescriptionDirective, YuwEmptyDirective, YuwEmptyHeaderDirective, YuwEmptyImports, YuwEmptyMediaDirective, YuwEmptyTitleDirective, YuwInputAddonImports, YuwInputComponent, YuwInputOtpComponent, YuwItemActionsDirective, YuwItemContentDirective, YuwItemDescriptionDirective, YuwItemDirective, YuwItemFooterDirective, YuwItemGroupDirective, YuwItemHeaderDirective, YuwItemImports, YuwItemMediaDirective, YuwItemSeparatorDirective, YuwItemTitleDirective, YuwLabel, YuwLeftAddonDirective, YuwPaginationComponent, YuwPasswordInputComponent, YuwPopoverComponent, YuwPopoverTriggerDirective, YuwRadioGroupComponent, YuwRightAddonDirective, YuwSearchInputComponent, YuwSheetCloseDirective, YuwSheetComponent, YuwSheetFooterDirective, YuwSheetImports, YuwSheetTriggerDirective, YuwSidebarComponent, YuwSidebarContentDirective, YuwSidebarContentExtraDirective, YuwSidebarFlyoutDirective, YuwSidebarFlyoutHostDirective, YuwSidebarFlyoutPanelDirective, YuwSidebarFlyoutTriggerDirective, YuwSidebarFooterDirective, YuwSidebarFooterExtraDirective, YuwSidebarGroupContentDirective, YuwSidebarGroupDirective, YuwSidebarGroupLabelDirective, YuwSidebarHeaderDirective, YuwSidebarInsetDirective, YuwSidebarMenuBadgeDirective, YuwSidebarMenuButtonDirective, YuwSidebarMenuDirective, YuwSidebarMenuItemDirective, YuwSidebarMenuSubButtonDirective, YuwSidebarMenuSubDirective, YuwSidebarMenuSubItemDirective, YuwSidebarRailDirective, YuwSidebarRailService, YuwSidebarSeparatorDirective, YuwSidebarTriggerComponent, YuwSidebarWrapperDirective, YuwSkeletonDirective, YuwSpinnerComponent, YuwSwitchComponent, YuwTBodyDirective, YuwTFootDirective, YuwTHeadDirective, YuwTabPanelDirective, YuwTableContainerDirective, YuwTableDirective, YuwTableImports, YuwTabsComponent, YuwTdDirective, YuwTextareaComponent, YuwThDirective, YuwToasterComponent, YuwTooltipDirective, YuwTrDirective, YuwValueAccessorBase, buildInputOtpGroups, cn, datatableCellVariants, datatableContainerVariants, datatableHeadVariants, datatableHeaderCellVariants, datatableRowVariants, getPaginationRange, provideValueAccessor, totalInputOtpLength };
3207
- export type { YuwAlertDialogSizeDto, YuwAlertVariantDto, YuwAvatarGroupItemDto, YuwAvatarSizeDto, YuwBreadcrumbItemDto, YuwButtonGroupClickDto, YuwButtonGroupEntryDto, YuwButtonGroupItemDto, YuwButtonGroupTextDto, YuwColorDto, YuwComboboxItemContext, YuwComboboxOptionDto, YuwComboboxValue, YuwDatatableAlign, YuwDatatableAppearanceDto, YuwDatatableColumnDef, YuwDatatableColumnMeta, YuwDatatableFeatures, YuwDatepickerModeDto, YuwDatepickerValue, YuwFieldSizeDto, YuwInputModeDto, YuwInputOtpGroupDto, YuwInputOtpModeDto, YuwInputTypeDto, YuwPaginationRangeItem, YuwPaginationSizeDto, YuwPasswordRevealStateDto, YuwPopoverAlignDto, YuwRadioOptionDto, YuwSearchInputCollapseFromDto, YuwSheetSideDto, YuwSidebarCollapsibleDto, YuwSidebarContentDto, YuwSidebarGroupDto, YuwSidebarItemClickDto, YuwSidebarItemDto, YuwSidebarSideDto, YuwSidebarSubItemDto, YuwSidebarVariantDto, YuwSwitchSizeDto, YuwTabItemDto, YuwTabsActivationModeDto, YuwTabsOrientationDto, YuwTabsVariantDto, YuwTextFieldContract, YuwToasterPositionDto, YuwToasterThemeDto, YuwTooltipPositionDto };
3121
+ /**
3122
+ * Holds which rail entry's submenu the collapsed sidebar is showing. Provided on `<yuw-sidebar>`, so
3123
+ * two sidebars on a page don't drive each other.
3124
+ *
3125
+ * `renderedItem` lags `activeItem` by one close: the sheet renders from it so its markup outlives the
3126
+ * close and the panel can animate out. Swapping entries never writes `null`, which would detach the
3127
+ * overlay and replay the open animation. Matching is by `id` — the nav rebuilds these objects.
3128
+ */
3129
+ declare class YuwSidebarSubmenuService {
3130
+ private readonly item;
3131
+ private readonly lastItem;
3132
+ readonly activeItem: Signal<YuwSidebarItemDto | null>;
3133
+ readonly renderedItem: Signal<YuwSidebarItemDto | null>;
3134
+ readonly open: Signal<boolean>;
3135
+ toggle(item: YuwSidebarItemDto): void;
3136
+ close(): void;
3137
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarSubmenuService, never>;
3138
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<YuwSidebarSubmenuService>;
3139
+ }
3140
+
3141
+ export { DATATABLE_ALIGN_CLASS, YUW_DATATABLE_FEATURES, YUW_PASSWORD_REVEAL_STATES, YuwAccordion, YuwAccordionContentComponent, YuwAccordionImports, YuwAccordionItem, YuwAccordionTriggerComponent, YuwAlertActionDirective, YuwAlertComponent, YuwAlertDescriptionDirective, YuwAlertDialogComponent, YuwAlertDialogMediaDirective, YuwAlertDialogTriggerDirective, YuwAlertImports, YuwAlertTitleDirective, YuwAttachmentActionDirective, YuwAttachmentActionsDirective, YuwAttachmentContentDirective, YuwAttachmentDescriptionDirective, YuwAttachmentDirective, YuwAttachmentGroupDirective, YuwAttachmentMediaDirective, YuwAttachmentTitleDirective, YuwAttachmentTriggerDirective, YuwAvatarComponent, YuwBadgeComponent, YuwBreadcrumbComponent, YuwButtonComponent, YuwButtonGroupTextDirective, YuwCaptionDirective, YuwCardActionDirective, YuwCardContentDirective, YuwCardDescriptionDirective, YuwCardDirective, YuwCardFooterDirective, YuwCardHeaderDirective, YuwCardImports, YuwCardTitleDirective, YuwCheckboxComponent, YuwComboboxComponent, YuwComboboxItemDirective, YuwContextMenuCheckboxDirective, YuwContextMenuCheckboxIndicatorComponent, YuwContextMenuDirective, YuwContextMenuGroupDirective, YuwContextMenuImports, YuwContextMenuItemDirective, YuwContextMenuLabelDirective, YuwContextMenuRadioDirective, YuwContextMenuRadioIndicatorComponent, YuwContextMenuSeparatorDirective, YuwContextMenuShortcutDirective, YuwContextMenuSubDirective, YuwContextMenuSubIndicatorComponent, YuwContextMenuSubTriggerDirective, YuwContextMenuTriggerDirective, YuwDatatableComponent, YuwDatatableRowSelect, YuwDatepickerComponent, YuwDialogCloseDirective, YuwDialogComponent, YuwDialogFooterDirective, YuwDialogImports, YuwDialogTriggerDirective, YuwEmptyContentDirective, YuwEmptyDescriptionDirective, YuwEmptyDirective, YuwEmptyHeaderDirective, YuwEmptyImports, YuwEmptyMediaDirective, YuwEmptyTitleDirective, YuwInputAddonImports, YuwInputComponent, YuwInputOtpComponent, YuwItemActionsDirective, YuwItemContentDirective, YuwItemDescriptionDirective, YuwItemDirective, YuwItemFooterDirective, YuwItemGroupDirective, YuwItemHeaderDirective, YuwItemImports, YuwItemMediaDirective, YuwItemSeparatorDirective, YuwItemTitleDirective, YuwLabel, YuwLeftAddonDirective, YuwPaginationComponent, YuwPasswordInputComponent, YuwPopoverComponent, YuwPopoverTriggerDirective, YuwRadioGroupComponent, YuwRightAddonDirective, YuwSearchInputComponent, YuwSheetCloseDirective, YuwSheetComponent, YuwSheetFooterDirective, YuwSheetImports, YuwSheetTriggerDirective, YuwSidebarComponent, YuwSidebarContentDirective, YuwSidebarContentExtraDirective, YuwSidebarFooterDirective, YuwSidebarFooterExtraDirective, YuwSidebarGroupContentDirective, YuwSidebarGroupDirective, YuwSidebarGroupLabelDirective, YuwSidebarHeaderDirective, YuwSidebarInsetDirective, YuwSidebarMenuBadgeDirective, YuwSidebarMenuButtonDirective, YuwSidebarMenuDirective, YuwSidebarMenuItemDirective, YuwSidebarMenuSubButtonDirective, YuwSidebarMenuSubDirective, YuwSidebarMenuSubItemDirective, YuwSidebarRailDirective, YuwSidebarRailService, YuwSidebarSeparatorDirective, YuwSidebarSubmenuService, YuwSidebarTriggerComponent, YuwSidebarWrapperDirective, YuwSkeletonDirective, YuwSpinnerComponent, YuwSwitchComponent, YuwTBodyDirective, YuwTFootDirective, YuwTHeadDirective, YuwTabPanelDirective, YuwTableContainerDirective, YuwTableDirective, YuwTableImports, YuwTabsComponent, YuwTdDirective, YuwTextareaComponent, YuwThDirective, YuwToasterComponent, YuwTooltipDirective, YuwTrDirective, YuwValueAccessorBase, buildInputOtpGroups, cn, datatableCellVariants, datatableContainerVariants, datatableHeadVariants, datatableHeaderCellVariants, datatableRowVariants, getPaginationRange, provideValueAccessor, totalInputOtpLength };
3142
+ export type { YuwAlertDialogSizeDto, YuwAlertVariantDto, YuwAvatarGroupItemDto, YuwAvatarSizeDto, YuwBreadcrumbItemDto, YuwButtonGroupClickDto, YuwButtonGroupEntryDto, YuwButtonGroupItemDto, YuwButtonGroupTextDto, YuwColorDto, YuwComboboxItemContext, YuwComboboxOptionDto, YuwComboboxValue, YuwDatatableAlign, YuwDatatableAppearanceDto, YuwDatatableColumnDef, YuwDatatableColumnMeta, YuwDatatableFeatures, YuwDatepickerModeDto, YuwDatepickerValue, YuwFieldSizeDto, YuwInputModeDto, YuwInputOtpGroupDto, YuwInputOtpModeDto, YuwInputTypeDto, YuwPaginationRangeItem, YuwPaginationSizeDto, YuwPasswordRevealStateDto, YuwPopoverAlignDto, YuwRadioOptionDto, YuwSearchInputCollapseFromDto, YuwSheetScrollStrategyDto, YuwSheetSideDto, YuwSidebarCollapsibleDto, YuwSidebarContentDto, YuwSidebarGroupDto, YuwSidebarItemClickDto, YuwSidebarItemDto, YuwSidebarSideDto, YuwSidebarSubItemDto, YuwSidebarVariantDto, YuwSwitchSizeDto, YuwTabItemDto, YuwTabsActivationModeDto, YuwTabsOrientationDto, YuwTabsVariantDto, YuwTextFieldContract, YuwToasterPositionDto, YuwToasterThemeDto, YuwTooltipPositionDto };