yukit-web 0.0.6 → 0.0.8
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/.npm/_cacache/content-v2/sha512/0d/0d/9afe7385c2515aaf1728dce41fa0c3d4593176eb0a2df03a967eda797ee2f398ff4f1dd0c25c50b676962a78b5c1320c25154d62debcae3769db14b41dbd +1 -0
- package/.npm/_cacache/index-v5/64/dc/73c7a26f2e6eb0c711133d96c247da5ecf0eba708cd37c450a7b3c7cb488 +1 -1
- package/.npm/_logs/{2026-08-26T07_41_27_966Z-debug-0.log → 2026-08-27T14_38_45_040Z-debug-0.log} +10 -10
- package/.npm/_logs/{2026-08-26T07_41_28_532Z-debug-0.log → 2026-08-27T14_38_45_607Z-debug-0.log} +2 -2
- package/fesm2022/yukit-web.mjs +670 -114
- package/fesm2022/yukit-web.mjs.map +1 -1
- package/package.json +1 -1
- package/types/yukit-web.d.ts +314 -36
- package/.npm/_cacache/content-v2/sha512/5c/85/bb1c09e93463a4461695dd6985e6a880f798478a59a329c10b1bf523b1c25e83e63a0ddcbb91313dffaeddfd56603f65207c7c17b0a38d47ab1726407457 +0 -1
package/package.json
CHANGED
package/types/yukit-web.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ClassValue } from 'clsx';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { ModelSignal, Type, Provider, InputSignal, InputSignalWithTransform, TemplateRef, OnInit } from '@angular/core';
|
|
3
|
+
import { ModelSignal, Type, Provider, InputSignal, InputSignalWithTransform, TemplateRef, OnInit, Signal } from '@angular/core';
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
5
|
import { ButtonVariants } from 'yukit-web/helm/button';
|
|
6
6
|
import * as i1 from 'yukit-web/helm/badge';
|
|
@@ -30,6 +30,7 @@ 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';
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
36
|
* Merges class lists the shadcn/Spartan way: `clsx` resolves conditionals/arrays, `twMerge`
|
|
@@ -1786,9 +1787,21 @@ declare class YuwDatatableComponent<TData extends RowData> implements OnInit {
|
|
|
1786
1787
|
readonly columnVisibility: _angular_core.ModelSignal<ColumnVisibilityState>;
|
|
1787
1788
|
readonly rowSelection: _angular_core.ModelSignal<RowSelectionState>;
|
|
1788
1789
|
readonly pagination: _angular_core.ModelSignal<PaginationState>;
|
|
1790
|
+
protected rowClicked: _angular_core.OutputEmitterRef<TData>;
|
|
1791
|
+
protected readonly _ariaSort: Record<'asc' | 'desc', 'ascending' | 'descending'>;
|
|
1792
|
+
protected readonly _sortIcon: Record<'asc' | 'desc' | 'none', string>;
|
|
1789
1793
|
protected readonly currentPage: _angular_core.WritableSignal<number>;
|
|
1790
|
-
|
|
1791
|
-
protected
|
|
1794
|
+
protected readonly _isEmpty: _angular_core.Signal<boolean>;
|
|
1795
|
+
protected readonly _columnCount: _angular_core.Signal<number>;
|
|
1796
|
+
protected readonly _skeletonRows: _angular_core.Signal<number[]>;
|
|
1797
|
+
protected readonly _tableClass: _angular_core.Signal<string>;
|
|
1798
|
+
protected readonly _containerClass: _angular_core.Signal<string>;
|
|
1799
|
+
protected readonly _headClass: _angular_core.Signal<string>;
|
|
1800
|
+
protected readonly _rowClass: _angular_core.Signal<string>;
|
|
1801
|
+
protected readonly _cellClasses: _angular_core.Signal<Map<string, {
|
|
1802
|
+
readonly header: string;
|
|
1803
|
+
readonly cell: string;
|
|
1804
|
+
}>>;
|
|
1792
1805
|
private readonly _options;
|
|
1793
1806
|
protected readonly table: _tanstack_angular_table.AngularTable<YuwDatatableFeatures, TData>;
|
|
1794
1807
|
private readonly _selectedRows;
|
|
@@ -1808,21 +1821,20 @@ declare class YuwDatatableComponent<TData extends RowData> implements OnInit {
|
|
|
1808
1821
|
* which by then is past its mount guard.
|
|
1809
1822
|
*/
|
|
1810
1823
|
ngOnInit(): void;
|
|
1811
|
-
protected
|
|
1812
|
-
protected
|
|
1813
|
-
protected readonly _skeletonRows: _angular_core.Signal<number[]>;
|
|
1814
|
-
protected readonly _tableClass: _angular_core.Signal<string>;
|
|
1815
|
-
protected readonly _containerClass: _angular_core.Signal<string>;
|
|
1816
|
-
protected readonly _headClass: _angular_core.Signal<string>;
|
|
1817
|
-
protected readonly _rowClass: _angular_core.Signal<string>;
|
|
1818
|
-
protected readonly _cellClasses: _angular_core.Signal<Map<string, {
|
|
1819
|
-
readonly header: string;
|
|
1820
|
-
readonly cell: string;
|
|
1821
|
-
}>>;
|
|
1822
|
-
protected readonly _ariaSort: Record<'asc' | 'desc', 'ascending' | 'descending'>;
|
|
1823
|
-
protected readonly _sortIcon: Record<'asc' | 'desc' | 'none', string>;
|
|
1824
|
+
protected onPageChange(page: number): void;
|
|
1825
|
+
protected onRowClick(row: TData): void;
|
|
1824
1826
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwDatatableComponent<any>, never>;
|
|
1825
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwDatatableComponent<any>, "yuw-datatable", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "paginated": { "alias": "paginated"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingRows": { "alias": "loadingRows"; "required": false; "isSignal": true; }; "previousPageLabel": { "alias": "previousPageLabel"; "required": true; "isSignal": true; }; "nextPageLabel": { "alias": "nextPageLabel"; "required": true; "isSignal": true; }; "paginationEllipsisSrText": { "alias": "paginationEllipsisSrText"; "required": true; "isSignal": true; }; "paginationAriaLabel": { "alias": "paginationAriaLabel"; "required": true; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "tableClass": { "alias": "tableClass"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "sorting": { "alias": "sorting"; "required": false; "isSignal": true; }; "columnFilters": { "alias": "columnFilters"; "required": false; "isSignal": true; }; "columnVisibility": { "alias": "columnVisibility"; "required": false; "isSignal": true; }; "rowSelection": { "alias": "rowSelection"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; }, { "sorting": "sortingChange"; "columnFilters": "columnFiltersChange"; "columnVisibility": "columnVisibilityChange"; "rowSelection": "rowSelectionChange"; "pagination": "paginationChange"; "selectedRowsChange": "selectedRowsChange"; }, never, never, true, never>;
|
|
1827
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwDatatableComponent<any>, "yuw-datatable", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "paginated": { "alias": "paginated"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingRows": { "alias": "loadingRows"; "required": false; "isSignal": true; }; "previousPageLabel": { "alias": "previousPageLabel"; "required": true; "isSignal": true; }; "nextPageLabel": { "alias": "nextPageLabel"; "required": true; "isSignal": true; }; "paginationEllipsisSrText": { "alias": "paginationEllipsisSrText"; "required": true; "isSignal": true; }; "paginationAriaLabel": { "alias": "paginationAriaLabel"; "required": true; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "tableClass": { "alias": "tableClass"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "sorting": { "alias": "sorting"; "required": false; "isSignal": true; }; "columnFilters": { "alias": "columnFilters"; "required": false; "isSignal": true; }; "columnVisibility": { "alias": "columnVisibility"; "required": false; "isSignal": true; }; "rowSelection": { "alias": "rowSelection"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; }, { "sorting": "sortingChange"; "columnFilters": "columnFiltersChange"; "columnVisibility": "columnVisibilityChange"; "rowSelection": "rowSelectionChange"; "pagination": "paginationChange"; "rowClicked": "rowClicked"; "selectedRowsChange": "selectedRowsChange"; }, never, never, true, never>;
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1830
|
+
declare class YuwDatatableRowSelect {
|
|
1831
|
+
readonly checked: _angular_core.InputSignal<boolean>;
|
|
1832
|
+
readonly indeterminate: _angular_core.InputSignal<boolean>;
|
|
1833
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1834
|
+
readonly onToggle: _angular_core.InputSignal<() => void>;
|
|
1835
|
+
protected toggle(): void;
|
|
1836
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwDatatableRowSelect, never>;
|
|
1837
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwDatatableRowSelect, "yuw-datatable-row-select", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "onToggle": { "alias": "onToggle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1826
1838
|
}
|
|
1827
1839
|
|
|
1828
1840
|
/** A single entry in `<yuw-avatar>`'s `group` input, which turns it into a stack of overlapping avatars. */
|
|
@@ -2567,6 +2579,39 @@ declare class YuwAttachmentTriggerDirective {
|
|
|
2567
2579
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwAttachmentTriggerDirective, "button[yuwAttachmentTrigger], a[yuwAttachmentTrigger]", never, {}, {}, never, never, true, [{ directive: typeof i1$c.HlmAttachmentTrigger; inputs: { "type": "type"; }; outputs: {}; }]>;
|
|
2568
2580
|
}
|
|
2569
2581
|
|
|
2582
|
+
/**
|
|
2583
|
+
* Tracks the sidebar's collapsed state, and a second copy of it that lags behind the width animation.
|
|
2584
|
+
*
|
|
2585
|
+
* The helm flips `data-collapsible` the instant the state changes, while the panel takes
|
|
2586
|
+
* `--sidebar-transition-duration` to reach its new width. Anything keyed off that attribute therefore
|
|
2587
|
+
* restyles against a panel that is still the old size — labels vanish and icons jump to rail geometry
|
|
2588
|
+
* while there is still 16rem of sidebar around them.
|
|
2589
|
+
*
|
|
2590
|
+
* `railSettled` fixes that asymmetrically, because the two directions want opposite timing:
|
|
2591
|
+
*
|
|
2592
|
+
* - Collapsing, the rail look has to wait for the panel to actually be narrow. Applying it up front is
|
|
2593
|
+
* what produces the jump.
|
|
2594
|
+
* - Expanding, the rail look has to go immediately. The labels need the whole animation to fade and
|
|
2595
|
+
* ellipsis into place, so waiting would replace one jump with another at the far end.
|
|
2596
|
+
*
|
|
2597
|
+
* The delay runs through `timer` rather than a `setTimeout` inside an `effect`, and that is not a
|
|
2598
|
+
* stylistic choice: this app is zoneless, so a signal written from a bare timer callback notifies
|
|
2599
|
+
* nobody. Components reading `railSettled` in a template binding are `OnPush`, so they would keep
|
|
2600
|
+
* their stale view until something else happened to schedule a check — the signal flips, the DOM does
|
|
2601
|
+
* not. Going through `toSignal` puts the write back under Angular's own scheduling.
|
|
2602
|
+
*
|
|
2603
|
+
* Provided at the root so `<yuw-sidebar>` and the nav share one instance — the component stamps the
|
|
2604
|
+
* 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.
|
|
2606
|
+
*/
|
|
2607
|
+
declare class YuwSidebarRailService {
|
|
2608
|
+
private readonly sidebar;
|
|
2609
|
+
readonly collapsed: Signal<boolean>;
|
|
2610
|
+
readonly railSettled: Signal<boolean>;
|
|
2611
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarRailService, never>;
|
|
2612
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<YuwSidebarRailService>;
|
|
2613
|
+
}
|
|
2614
|
+
|
|
2570
2615
|
/**
|
|
2571
2616
|
* Where a sidebar entry points.
|
|
2572
2617
|
*
|
|
@@ -2612,6 +2657,11 @@ interface YuwSidebarSubItemDto extends YuwSidebarNavigationDto {
|
|
|
2612
2657
|
* Renders an anchor when it carries a `route` or `href`, and a `<button>` otherwise — the data says
|
|
2613
2658
|
* which it is, so there is no `kind` field to keep in sync with it.
|
|
2614
2659
|
*
|
|
2660
|
+
* An entry with `children` and no target of its own is a pure accordion header: it renders as a
|
|
2661
|
+
* `<button>` that only toggles its submenu and never reports through `itemClicked`, because a click
|
|
2662
|
+
* on it means "open this", not "run an action". Give it a `route` or `href` too and it both
|
|
2663
|
+
* navigates and toggles.
|
|
2664
|
+
*
|
|
2615
2665
|
* - `label`: text of the entry, supplied already translated — the sidebar owns no user-facing copy.
|
|
2616
2666
|
* - `icon`: name of a registered `@ng-icons` icon. Because the *consumer* chooses this name, the
|
|
2617
2667
|
* consuming app is responsible for `provideIcons()`-ing it; `provideIcons` is a component-level
|
|
@@ -2619,7 +2669,12 @@ interface YuwSidebarSubItemDto extends YuwSidebarNavigationDto {
|
|
|
2619
2669
|
* injector chain. Same contract as `<yuw-spinner icon="…">`.
|
|
2620
2670
|
* - `badge`: short trailing count or status, hidden automatically while collapsed to icons.
|
|
2621
2671
|
* - `tooltip`: label shown while collapsed to icons, where `label` is not visible. Falls back to
|
|
2622
|
-
* `label` when absent, so the common case needs no second field.
|
|
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.
|
|
2675
|
+
* - `expanded`: whether the submenu starts open, for an entry with `children`. A seed for the
|
|
2676
|
+
* initial state only, not live state: the user's own toggling lives in the sidebar and survives
|
|
2677
|
+
* the consumer replacing this object. An entry holding the active route opens regardless.
|
|
2623
2678
|
*/
|
|
2624
2679
|
interface YuwSidebarItemDto extends YuwSidebarNavigationDto {
|
|
2625
2680
|
id: string;
|
|
@@ -2629,6 +2684,7 @@ interface YuwSidebarItemDto extends YuwSidebarNavigationDto {
|
|
|
2629
2684
|
tooltip?: string;
|
|
2630
2685
|
disabled?: boolean;
|
|
2631
2686
|
children?: YuwSidebarSubItemDto[];
|
|
2687
|
+
expanded?: boolean;
|
|
2632
2688
|
}
|
|
2633
2689
|
/**
|
|
2634
2690
|
* A titled section of the sidebar.
|
|
@@ -2656,17 +2712,18 @@ interface YuwSidebarContentDto {
|
|
|
2656
2712
|
* What `<yuw-sidebar>` emits from `itemClicked`.
|
|
2657
2713
|
*
|
|
2658
2714
|
* Only entries with neither `route` nor `href` emit: a navigating entry's click is the router's or
|
|
2659
|
-
* the browser's to handle.
|
|
2715
|
+
* the browser's to handle. An entry whose only job is to hold `children` does not emit either — its
|
|
2716
|
+
* click toggles the submenu. Carries the `id` rather than the whole entry, matching
|
|
2660
2717
|
* `YuwButtonGroupClickDto`.
|
|
2661
2718
|
*/
|
|
2662
2719
|
interface YuwSidebarItemClickDto {
|
|
2663
2720
|
id: string;
|
|
2664
2721
|
event: MouseEvent;
|
|
2665
2722
|
}
|
|
2666
|
-
|
|
2667
2723
|
type YuwSidebarSideDto = 'left' | 'right';
|
|
2668
2724
|
type YuwSidebarVariantDto = 'sidebar' | 'floating' | 'inset';
|
|
2669
2725
|
type YuwSidebarCollapsibleDto = 'offcanvas' | 'icon' | 'none';
|
|
2726
|
+
|
|
2670
2727
|
/**
|
|
2671
2728
|
* Collapsible navigation sidebar. Renders as a fixed panel on desktop and as a slide-in sheet on
|
|
2672
2729
|
* mobile, and reads its colors from the `--sidebar-*` theme tokens.
|
|
@@ -2685,12 +2742,22 @@ type YuwSidebarCollapsibleDto = 'offcanvas' | 'icon' | 'none';
|
|
|
2685
2742
|
* markup. Groups → items → optional one level of children. An item with a `route` becomes a
|
|
2686
2743
|
* `[routerLink]` anchor whose active state, `aria-current` and pointer-lock resolve automatically
|
|
2687
2744
|
* from `routerLinkActive`; one with an `href` becomes a plain anchor; one with neither becomes a
|
|
2688
|
-
* button that reports through `itemClicked`.
|
|
2745
|
+
* 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`
|
|
2748
|
+
* field seeds the accordion; the item holding the active route opens on its own.
|
|
2689
2749
|
* - `footer`: The same, rendered into the footer region.
|
|
2690
2750
|
*
|
|
2691
2751
|
* Outputs:
|
|
2692
2752
|
* - `itemClicked`: Emits `{id, event}` when a non-navigating entry (no `route`, no `href`) is
|
|
2693
2753
|
* activated, in either `content` or `footer`.
|
|
2754
|
+
* - `collapsedChange`: Emits `true` when the sidebar collapses and `false` when it expands, reading
|
|
2755
|
+
* the mobile sheet or the desktop panel as appropriate. Fires the moment the state flips, so it is
|
|
2756
|
+
* the one to drive a caller's own layout, which should start moving with the panel.
|
|
2757
|
+
* - `railSettledChange`: The same transition, but `true` only once the collapse has finished
|
|
2758
|
+
* animating, and `false` immediately on expand. Use it for anything that should not restyle against
|
|
2759
|
+
* a panel still mid-width — swapping a logo for a mark, say. The sidebar's own rail geometry is
|
|
2760
|
+
* keyed off this, which is why the labels stay put until the panel is actually narrow.
|
|
2694
2761
|
*
|
|
2695
2762
|
* The two forms compose rather than exclude each other, unlike `<yuw-button>`'s `buttons` input
|
|
2696
2763
|
* which drops projected content when set. `content`/`footer` render their own region; anything
|
|
@@ -2731,7 +2798,7 @@ type YuwSidebarCollapsibleDto = 'offcanvas' | 'icon' | 'none';
|
|
|
2731
2798
|
* label: 'Gestión',
|
|
2732
2799
|
* items: [
|
|
2733
2800
|
* {id: 'orders', label: 'Pedidos', icon: 'lucideReceipt', route: '/orders', badge: '12'},
|
|
2734
|
-
* {id: 'reports', label: 'Informes', icon: 'lucideChartLine', children: [
|
|
2801
|
+
* {id: 'reports', label: 'Informes', icon: 'lucideChartLine', expanded: true, children: [
|
|
2735
2802
|
* {id: 'sales', label: 'Ventas', route: '/reports/sales'},
|
|
2736
2803
|
* ]},
|
|
2737
2804
|
* {id: 'sync', label: 'Sincronizar'},
|
|
@@ -2742,6 +2809,7 @@ type YuwSidebarCollapsibleDto = 'offcanvas' | 'icon' | 'none';
|
|
|
2742
2809
|
*/
|
|
2743
2810
|
declare class YuwSidebarComponent {
|
|
2744
2811
|
private readonly config;
|
|
2812
|
+
protected readonly _rail: YuwSidebarRailService;
|
|
2745
2813
|
readonly side: _angular_core.InputSignal<YuwSidebarSideDto>;
|
|
2746
2814
|
readonly variant: _angular_core.InputSignal<YuwSidebarVariantDto>;
|
|
2747
2815
|
readonly collapsible: _angular_core.InputSignal<YuwSidebarCollapsibleDto>;
|
|
@@ -2750,8 +2818,12 @@ declare class YuwSidebarComponent {
|
|
|
2750
2818
|
readonly content: _angular_core.InputSignal<YuwSidebarContentDto | undefined>;
|
|
2751
2819
|
readonly footer: _angular_core.InputSignal<YuwSidebarContentDto | undefined>;
|
|
2752
2820
|
readonly itemClicked: _angular_core.OutputEmitterRef<YuwSidebarItemClickDto>;
|
|
2821
|
+
protected readonly _containerClass: _angular_core.Signal<string>;
|
|
2822
|
+
protected readonly _isRail: _angular_core.Signal<boolean>;
|
|
2823
|
+
readonly collapsedChange: _angular_core.OutputRef<boolean>;
|
|
2824
|
+
readonly railSettledChange: _angular_core.OutputRef<boolean>;
|
|
2753
2825
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarComponent, never>;
|
|
2754
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwSidebarComponent, "yuw-sidebar", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "sidebarWidthMobile": { "alias": "sidebarWidthMobile"; "required": false; "isSignal": true; }; "sidebarContainerClass": { "alias": "sidebarContainerClass"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "footer": { "alias": "footer"; "required": false; "isSignal": true; }; }, { "itemClicked": "itemClicked"; }, never, ["[yuwSidebarHeader], yuw-sidebar-header", "[yuwSidebarContentExtra]", "*", "[yuwSidebarFooterExtra]"], true, never>;
|
|
2826
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwSidebarComponent, "yuw-sidebar", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "sidebarWidthMobile": { "alias": "sidebarWidthMobile"; "required": false; "isSignal": true; }; "sidebarContainerClass": { "alias": "sidebarContainerClass"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "footer": { "alias": "footer"; "required": false; "isSignal": true; }; }, { "itemClicked": "itemClicked"; "collapsedChange": "collapsedChange"; "railSettledChange": "railSettledChange"; }, never, ["[yuwSidebarHeader], yuw-sidebar-header", "[yuwSidebarContentExtra]", "*", "[yuwSidebarFooterExtra]"], true, never>;
|
|
2755
2827
|
}
|
|
2756
2828
|
|
|
2757
2829
|
/**
|
|
@@ -2812,8 +2884,31 @@ declare class YuwSidebarHeaderDirective {
|
|
|
2812
2884
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarHeaderDirective, never>;
|
|
2813
2885
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarHeaderDirective, "[yuwSidebarHeader], yuw-sidebar-header", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarHeader; inputs: {}; outputs: {}; }]>;
|
|
2814
2886
|
}
|
|
2815
|
-
/**
|
|
2887
|
+
/**
|
|
2888
|
+
* Scrollable middle area of the sidebar that holds the navigation groups.
|
|
2889
|
+
*
|
|
2890
|
+
* Restores vertical scrolling in the collapsed state, which the composed primitive switches off with
|
|
2891
|
+
* `group-data-[collapsible=icon]:overflow-hidden`. That is a fair default for a rail of icons alone,
|
|
2892
|
+
* but ours keeps expandable entries reachable there, so a tall nav has to be able to scroll rather
|
|
2893
|
+
* than have its last icons clipped. Horizontal overflow stays hidden: nothing should scroll sideways
|
|
2894
|
+
* in a rail that narrow.
|
|
2895
|
+
*
|
|
2896
|
+
* The `!` is needed because the helm's own declaration sits in the same Tailwind group at the same
|
|
2897
|
+
* modifier, and `twMerge` resolves that by keeping the last one — which would be ours already, except
|
|
2898
|
+
* `overflow-hidden` and `overflow-y-auto` are different properties to it, so both survive and the
|
|
2899
|
+
* shorthand wins on order.
|
|
2900
|
+
*
|
|
2901
|
+
* The scrollbar itself stays hidden, which the primitive's own `no-scrollbar` already handles: a
|
|
2902
|
+
* gutter that only appears once the nav happens to overflow shifts the icons sideways, and the rail is
|
|
2903
|
+
* too narrow to spend 11px on it. Wheel, trackpad and keyboard still scroll; only the thumb is gone.
|
|
2904
|
+
*
|
|
2905
|
+
* Also spaces the groups it stacks while collapsed. Each group's own menu spaces its items, so with
|
|
2906
|
+
* the groups' vertical padding dropped there was nothing left between the last icon of one and the
|
|
2907
|
+
* first of the next; matching that spacing here is what makes the rail read as one evenly spaced
|
|
2908
|
+
* column rather than blocks butted together.
|
|
2909
|
+
*/
|
|
2816
2910
|
declare class YuwSidebarContentDirective {
|
|
2911
|
+
constructor();
|
|
2817
2912
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarContentDirective, never>;
|
|
2818
2913
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarContentDirective, "[yuwSidebarContent], yuw-sidebar-content", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarContent; inputs: {}; outputs: {}; }]>;
|
|
2819
2914
|
}
|
|
@@ -2822,13 +2917,31 @@ declare class YuwSidebarFooterDirective {
|
|
|
2822
2917
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarFooterDirective, never>;
|
|
2823
2918
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarFooterDirective, "[yuwSidebarFooter], yuw-sidebar-footer", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarFooter; inputs: {}; outputs: {}; }]>;
|
|
2824
2919
|
}
|
|
2825
|
-
/**
|
|
2920
|
+
/**
|
|
2921
|
+
* A titled section of the sidebar.
|
|
2922
|
+
*
|
|
2923
|
+
* Drops its vertical padding once collapsed to icons. The composed primitive pads every side with
|
|
2924
|
+
* `p-2`, which is right while headings are visible and separating one group from the next, but on the
|
|
2925
|
+
* rail those headings are gone and two adjacent groups contribute 8px each — a gap in the middle of
|
|
2926
|
+
* what reads as one column of icons. Horizontal padding stays: it is what keeps the icons off the
|
|
2927
|
+
* rail's edges.
|
|
2928
|
+
*/
|
|
2826
2929
|
declare class YuwSidebarGroupDirective {
|
|
2930
|
+
constructor();
|
|
2827
2931
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarGroupDirective, never>;
|
|
2828
2932
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarGroupDirective, "[yuwSidebarGroup], yuw-sidebar-group", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarGroup; inputs: {}; outputs: {}; }]>;
|
|
2829
2933
|
}
|
|
2830
|
-
/**
|
|
2934
|
+
/**
|
|
2935
|
+
* Heading of a sidebar group. Removed from the layout when the sidebar collapses to icons.
|
|
2936
|
+
*
|
|
2937
|
+
* The composed primitive hides it with `-mt-8` plus `opacity-0`, which leaves the heading in the flow
|
|
2938
|
+
* still occupying its `h-8` box and cancels that box with a negative margin. The two only net to zero
|
|
2939
|
+
* while the heading is exactly one line at exactly that height, so a group heading left a visible gap
|
|
2940
|
+
* between the icons of one group and the next. `hidden` takes it out of the flow instead, and the
|
|
2941
|
+
* margin is zeroed so the collapsed rail is not pulled upwards by a box that no longer exists.
|
|
2942
|
+
*/
|
|
2831
2943
|
declare class YuwSidebarGroupLabelDirective {
|
|
2944
|
+
constructor();
|
|
2832
2945
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarGroupLabelDirective, never>;
|
|
2833
2946
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarGroupLabelDirective, "div[yuwSidebarGroupLabel], button[yuwSidebarGroupLabel]", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarGroupLabel; inputs: {}; outputs: {}; }]>;
|
|
2834
2947
|
}
|
|
@@ -2868,16 +2981,56 @@ declare class YuwSidebarMenuItemDirective {
|
|
|
2868
2981
|
* Interactive control of a sidebar menu item. Accepts `variant` (`'default'`, `'outline'`), `size`
|
|
2869
2982
|
* (`'default'`, `'sm'`, `'lg'`) and `isActive`.
|
|
2870
2983
|
*
|
|
2871
|
-
*
|
|
2872
|
-
*
|
|
2873
|
-
*
|
|
2874
|
-
*
|
|
2875
|
-
*
|
|
2876
|
-
*
|
|
2984
|
+
* `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.
|
|
2987
|
+
*
|
|
2988
|
+
* Reaching that input takes composing `BrnTooltip` here under the same `tooltip` alias the helm uses,
|
|
2989
|
+
* rather than forwarding it. `HlmSidebarMenuButton` publishes the alias on its own `hostDirectives`
|
|
2990
|
+
* 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
|
|
2992
|
+
* `BrnTooltip` instance on the element, so the helm keeps driving `mutableTooltipDisabled` (which is
|
|
2993
|
+
* what confines the tooltip to the collapsed state) while this binding supplies its content.
|
|
2994
|
+
*
|
|
2995
|
+
* `[attr.tooltip]` is not a substitute, and was the bug: it writes an HTML attribute, which never
|
|
2996
|
+
* reaches a signal input, so the tooltip stayed enabled with `null` content and silently showed
|
|
2997
|
+
* nothing.
|
|
2877
2998
|
*
|
|
2878
2999
|
* Carries `yuwSidebarMenuButtonClass`, our hover/expanded colouring and collapsed-to-icon geometry.
|
|
2879
|
-
* The `classes()` registration below runs after the composed `HlmSidebarMenuButton`'s own,
|
|
2880
|
-
* classes
|
|
3000
|
+
* The `classes()` registration below runs after the composed `HlmSidebarMenuButton`'s own, and
|
|
3001
|
+
* `classes()` merges its sources in registration order through `twMerge`, so each of our classes
|
|
3002
|
+
* displaces the helm class of the same Tailwind group and modifier stack without `!important`.
|
|
3003
|
+
*
|
|
3004
|
+
* Those classes sit on the button rather than on `li[yuwSidebarMenuItem]` because every selector in
|
|
3005
|
+
* them resolves against the button's own box or subtree: the `<li>` is not the hovered control, never
|
|
3006
|
+
* carries `aria-expanded`, and its `> span:last-child` is the badge, not the label.
|
|
3007
|
+
*
|
|
3008
|
+
* Three details of the collapsed-to-icon block are load-bearing:
|
|
3009
|
+
*
|
|
3010
|
+
* - `h-auto!`, `w-full!` and `justify-center!` keep their `!` because the helm declarations they
|
|
3011
|
+
* replace (`size-8!`, `p-2!`) are themselves `!important`, which `twMerge` cannot outrank on
|
|
3012
|
+
* specificity alone. The helm pins the button to a square; ours fills the rail width and centres
|
|
3013
|
+
* the icon. Both halves of `size-8!` have to be named separately: a single `size-auto!` occupies
|
|
3014
|
+
* the same `twMerge` group as the base `w-full`, dropping it, so the button would fall back to
|
|
3015
|
+
* shrink-to-fit for the whole width animation — long enough for the label to stop ellipsing and
|
|
3016
|
+
* the trailing chevron to sit against it.
|
|
3017
|
+
* - `[&>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
|
|
3019
|
+
* than by `:last-child` (which is what the helm's own `truncate` uses): an expandable entry ends
|
|
3020
|
+
* with a trailing chevron, so the label is no longer the last child and a positional selector
|
|
3021
|
+
* would skip exactly those entries. `span` is unambiguous here — the label is the only one a menu
|
|
3022
|
+
* button has, with the badge living outside the button on the `<li>`.
|
|
3023
|
+
* - The icon grows through `scale-150` rather than a font-size bump, so it can be transitioned: only
|
|
3024
|
+
* `transform`-family properties animate on the compositor, and a `font-size` change would relayout
|
|
3025
|
+
* the row on every frame.
|
|
3026
|
+
*
|
|
3027
|
+
* Which state each class hangs off is load-bearing, because the two attributes fire at different
|
|
3028
|
+
* times. `data-collapsible` flips the instant the toggle is pressed; `data-yuw-rail` waits for the
|
|
3029
|
+
* width animation to finish. Anything that should hold its expanded look *through* the animation
|
|
3030
|
+
* therefore keys off the rail attribute — the label's `hidden`, the centring, the icon's scale — while
|
|
3031
|
+
* the width and height overrides key off `collapsible`, to displace the helm's `size-8!` before it can
|
|
3032
|
+
* snap the row to 32px and truncate the label away in the first frame. That snap is what made the text vanish
|
|
3033
|
+
* on click instead of ellipsing gradually as the panel narrows.
|
|
2881
3034
|
*/
|
|
2882
3035
|
declare class YuwSidebarMenuButtonDirective {
|
|
2883
3036
|
constructor();
|
|
@@ -2899,11 +3052,136 @@ declare class YuwSidebarMenuSubItemDirective {
|
|
|
2899
3052
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarMenuSubItemDirective, never>;
|
|
2900
3053
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarMenuSubItemDirective, "li[yuwSidebarMenuSubItem]", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarMenuSubItem; inputs: {}; outputs: {}; }]>;
|
|
2901
3054
|
}
|
|
2902
|
-
/**
|
|
3055
|
+
/**
|
|
3056
|
+
* Interactive control of a sidebar submenu item. Accepts `size` (`'sm'`, `'md'`) and `isActive`.
|
|
3057
|
+
*
|
|
3058
|
+
* Carries the same label clamp as `[yuwSidebarMenuButton]`. The composed primitive already truncates
|
|
3059
|
+
* its `span:last-child`, but truncation cannot fire while the span is a flex item at its default
|
|
3060
|
+
* `min-width: auto`: that floor keeps it at content width, so the panel widens the row instead of the
|
|
3061
|
+
* text ellipsing. `min-w-0` is what lets it shrink, and the `[&>span]` selector covers a label that is
|
|
3062
|
+
* no longer the last child.
|
|
3063
|
+
*/
|
|
2903
3064
|
declare class YuwSidebarMenuSubButtonDirective {
|
|
3065
|
+
constructor();
|
|
2904
3066
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarMenuSubButtonDirective, never>;
|
|
2905
3067
|
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: {}; }]>;
|
|
2906
3068
|
}
|
|
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
|
+
}
|
|
2907
3185
|
/** Divider between sidebar sections. */
|
|
2908
3186
|
declare class YuwSidebarSeparatorDirective {
|
|
2909
3187
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwSidebarSeparatorDirective, never>;
|
|
@@ -2925,5 +3203,5 @@ declare class YuwSidebarInsetDirective {
|
|
|
2925
3203
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwSidebarInsetDirective, "main[yuwSidebarInset]", never, {}, {}, never, never, true, [{ directive: typeof i1$d.HlmSidebarInset; inputs: {}; outputs: {}; }]>;
|
|
2926
3204
|
}
|
|
2927
3205
|
|
|
2928
|
-
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, 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, 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 };
|
|
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 };
|
|
2929
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 };
|