@life-cockpit/angular-ui-kit 1.4.0 → 1.6.0
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
|
@@ -208,6 +208,26 @@ interface NavigationItem {
|
|
|
208
208
|
* Children are displayed beneath it with the label as a group title.
|
|
209
209
|
*/
|
|
210
210
|
isSection?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Optional action button displayed on the right side of the item.
|
|
213
|
+
* Emits `itemAction` when clicked (e.g. to open a modal or context menu).
|
|
214
|
+
*/
|
|
215
|
+
action?: {
|
|
216
|
+
/** Icon name from lc-icons library (e.g., 'plus', 'ellipsis-horizontal') */
|
|
217
|
+
icon: string;
|
|
218
|
+
/** Accessible label for the action button */
|
|
219
|
+
ariaLabel?: string;
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* Optional badge displayed on the right side of the item (e.g. count).
|
|
223
|
+
* Rendered as a small pill badge.
|
|
224
|
+
*/
|
|
225
|
+
badge?: {
|
|
226
|
+
/** Text or number to display inside the badge */
|
|
227
|
+
value: string | number;
|
|
228
|
+
/** Badge color variant */
|
|
229
|
+
variant?: 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';
|
|
230
|
+
};
|
|
211
231
|
}
|
|
212
232
|
|
|
213
233
|
/**
|
|
@@ -310,7 +330,7 @@ declare class CardComponent {
|
|
|
310
330
|
* Badge color variant.
|
|
311
331
|
* @default 'default'
|
|
312
332
|
*/
|
|
313
|
-
badgeVariant: _angular_core.InputSignal<"
|
|
333
|
+
badgeVariant: _angular_core.InputSignal<"default" | "primary" | "success" | "warning" | "error">;
|
|
314
334
|
/**
|
|
315
335
|
* Visual variant of the card
|
|
316
336
|
* - elevated: Box shadow (default)
|
|
@@ -902,7 +922,7 @@ declare class TypographyComponent {
|
|
|
902
922
|
* Text color using semantic color tokens
|
|
903
923
|
* @default 'primary'
|
|
904
924
|
*/
|
|
905
|
-
color: _angular_core.InputSignal<"
|
|
925
|
+
color: _angular_core.InputSignal<"primary" | "success" | "warning" | "error" | "info" | "secondary" | "disabled">;
|
|
906
926
|
/**
|
|
907
927
|
* Font weight
|
|
908
928
|
* @default 'regular'
|
|
@@ -2833,6 +2853,12 @@ declare class HeaderComponent {
|
|
|
2833
2853
|
* Logo image source URL
|
|
2834
2854
|
*/
|
|
2835
2855
|
logo: string;
|
|
2856
|
+
/**
|
|
2857
|
+
* Whether to show the logo in the header.
|
|
2858
|
+
* Set to false when the sidenav owns the logo (sidebar-first layout).
|
|
2859
|
+
* @default true
|
|
2860
|
+
*/
|
|
2861
|
+
showLogo: boolean;
|
|
2836
2862
|
/**
|
|
2837
2863
|
* Optional title to display next to logo
|
|
2838
2864
|
*/
|
|
@@ -2940,7 +2966,7 @@ declare class HeaderComponent {
|
|
|
2940
2966
|
*/
|
|
2941
2967
|
onMenuItemClick(item: MenuItem): void;
|
|
2942
2968
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderComponent, never>;
|
|
2943
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderComponent, "lc-header", never, { "theme": { "alias": "theme"; "required": false; }; "logo": { "alias": "logo"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "userEmail": { "alias": "userEmail"; "required": false; }; "userName": { "alias": "userName"; "required": false; }; "showHamburger": { "alias": "showHamburger"; "required": false; }; "showThemeButton": { "alias": "showThemeButton"; "required": false; }; "contextName": { "alias": "contextName"; "required": false; }; "contextLabel": { "alias": "contextLabel"; "required": false; }; "menuSize": { "alias": "menuSize"; "required": false; }; "showProfileMenuItem": { "alias": "showProfileMenuItem"; "required": false; }; }, { "hamburgerClick": "hamburgerClick"; "themeToggleClick": "themeToggleClick"; "logoutClick": "logoutClick"; "profileClick": "profileClick"; "contextClick": "contextClick"; }, never, never, true, never>;
|
|
2969
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderComponent, "lc-header", never, { "theme": { "alias": "theme"; "required": false; }; "logo": { "alias": "logo"; "required": false; }; "showLogo": { "alias": "showLogo"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "userEmail": { "alias": "userEmail"; "required": false; }; "userName": { "alias": "userName"; "required": false; }; "showHamburger": { "alias": "showHamburger"; "required": false; }; "showThemeButton": { "alias": "showThemeButton"; "required": false; }; "contextName": { "alias": "contextName"; "required": false; }; "contextLabel": { "alias": "contextLabel"; "required": false; }; "menuSize": { "alias": "menuSize"; "required": false; }; "showProfileMenuItem": { "alias": "showProfileMenuItem"; "required": false; }; }, { "hamburgerClick": "hamburgerClick"; "themeToggleClick": "themeToggleClick"; "logoutClick": "logoutClick"; "profileClick": "profileClick"; "contextClick": "contextClick"; }, never, never, true, never>;
|
|
2944
2970
|
}
|
|
2945
2971
|
|
|
2946
2972
|
type PaginationSize = 'sm' | 'md' | 'lg';
|
|
@@ -3025,13 +3051,23 @@ type SidenavMode = 'drawer' | 'docked';
|
|
|
3025
3051
|
* (closed)="isOpen = false" (itemClicked)="navigate($event)" />
|
|
3026
3052
|
* ```
|
|
3027
3053
|
*/
|
|
3028
|
-
declare class SidenavComponent {
|
|
3054
|
+
declare class SidenavComponent implements OnInit, OnDestroy {
|
|
3029
3055
|
/** Whether the sidenav is collapsed to icon-only rail */
|
|
3030
3056
|
collapsed: _angular_core.WritableSignal<boolean>;
|
|
3057
|
+
/** Whether to show the logo at the top of the sidenav */
|
|
3058
|
+
showLogo: _angular_core.WritableSignal<boolean>;
|
|
3031
3059
|
/** Whether the sidenav is open */
|
|
3032
3060
|
isOpen: _angular_core.WritableSignal<boolean>;
|
|
3033
3061
|
/** Display mode: 'drawer' (overlay) or 'docked' (persistent sidebar) */
|
|
3034
3062
|
mode: _angular_core.WritableSignal<SidenavMode>;
|
|
3063
|
+
/** Mobile breakpoint in pixels. Below this width, docked mode switches to drawer. */
|
|
3064
|
+
mobileBreakpoint: _angular_core.WritableSignal<number>;
|
|
3065
|
+
/** Whether the viewport is below the mobile breakpoint */
|
|
3066
|
+
isMobile: _angular_core.WritableSignal<boolean>;
|
|
3067
|
+
/** Effective mode: switches docked → drawer on mobile */
|
|
3068
|
+
effectiveMode: _angular_core.Signal<SidenavMode>;
|
|
3069
|
+
private mediaQuery;
|
|
3070
|
+
private mediaHandler;
|
|
3035
3071
|
/** Position of the sidenav (left or right) */
|
|
3036
3072
|
position: _angular_core.WritableSignal<SidenavPosition>;
|
|
3037
3073
|
/** Width of the sidenav drawer */
|
|
@@ -3086,6 +3122,14 @@ declare class SidenavComponent {
|
|
|
3086
3122
|
* Input setter for collapsed
|
|
3087
3123
|
*/
|
|
3088
3124
|
set collapsedInput(value: boolean);
|
|
3125
|
+
/**
|
|
3126
|
+
* Input setter for showLogo
|
|
3127
|
+
*/
|
|
3128
|
+
set showLogoInput(value: boolean);
|
|
3129
|
+
/**
|
|
3130
|
+
* Input setter for mobileBreakpoint
|
|
3131
|
+
*/
|
|
3132
|
+
set mobileBreakpointInput(value: number);
|
|
3089
3133
|
/** Theme variant for the sidenav */
|
|
3090
3134
|
themeMode: _angular_core.WritableSignal<"light" | "dark" | "auto">;
|
|
3091
3135
|
/**
|
|
@@ -3100,6 +3144,14 @@ declare class SidenavComponent {
|
|
|
3100
3144
|
* Event emitted when a navigation item is clicked
|
|
3101
3145
|
*/
|
|
3102
3146
|
readonly itemClicked: EventEmitter<NavigationItem>;
|
|
3147
|
+
/**
|
|
3148
|
+
* Event emitted when an item's action button is clicked
|
|
3149
|
+
*/
|
|
3150
|
+
readonly itemAction: EventEmitter<NavigationItem>;
|
|
3151
|
+
ngOnInit(): void;
|
|
3152
|
+
ngOnDestroy(): void;
|
|
3153
|
+
private setupMediaQuery;
|
|
3154
|
+
private teardownMediaQuery;
|
|
3103
3155
|
/**
|
|
3104
3156
|
* Computed CSS classes for the sidenav
|
|
3105
3157
|
*/
|
|
@@ -3122,6 +3174,10 @@ declare class SidenavComponent {
|
|
|
3122
3174
|
* Handle navigation item click
|
|
3123
3175
|
*/
|
|
3124
3176
|
handleItemClick(item: NavigationItem): void;
|
|
3177
|
+
/**
|
|
3178
|
+
* Handle action button click on a navigation item
|
|
3179
|
+
*/
|
|
3180
|
+
handleItemAction(event: Event, item: NavigationItem): void;
|
|
3125
3181
|
/**
|
|
3126
3182
|
* Check if an item is active
|
|
3127
3183
|
*/
|
|
@@ -3131,7 +3187,8 @@ declare class SidenavComponent {
|
|
|
3131
3187
|
*/
|
|
3132
3188
|
hasActiveChild(item: NavigationItem): boolean;
|
|
3133
3189
|
/**
|
|
3134
|
-
* Toggle expansion of a parent item
|
|
3190
|
+
* Toggle expansion of a parent item.
|
|
3191
|
+
* If the sidenav is collapsed, expand it first.
|
|
3135
3192
|
*/
|
|
3136
3193
|
toggleExpanded(item: NavigationItem): void;
|
|
3137
3194
|
/**
|
|
@@ -3143,7 +3200,7 @@ declare class SidenavComponent {
|
|
|
3143
3200
|
*/
|
|
3144
3201
|
handleKeydown(event: KeyboardEvent): void;
|
|
3145
3202
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidenavComponent, never>;
|
|
3146
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidenavComponent, "lc-sidenav", never, { "isOpenInput": { "alias": "isOpenInput"; "required": false; }; "modeInput": { "alias": "modeInput"; "required": false; }; "positionInput": { "alias": "positionInput"; "required": false; }; "widthInput": { "alias": "widthInput"; "required": false; }; "ariaLabelInput": { "alias": "ariaLabelInput"; "required": false; }; "hasOverlayInput": { "alias": "hasOverlayInput"; "required": false; }; "itemsInput": { "alias": "itemsInput"; "required": false; }; "activeRouteInput": { "alias": "activeRouteInput"; "required": false; }; "collapsedInput": { "alias": "collapsedInput"; "required": false; }; "themeInput": { "alias": "theme"; "required": false; }; }, { "closed": "closed"; "itemClicked": "itemClicked"; }, never, ["*"], true, never>;
|
|
3203
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidenavComponent, "lc-sidenav", never, { "isOpenInput": { "alias": "isOpenInput"; "required": false; }; "modeInput": { "alias": "modeInput"; "required": false; }; "positionInput": { "alias": "positionInput"; "required": false; }; "widthInput": { "alias": "widthInput"; "required": false; }; "ariaLabelInput": { "alias": "ariaLabelInput"; "required": false; }; "hasOverlayInput": { "alias": "hasOverlayInput"; "required": false; }; "itemsInput": { "alias": "itemsInput"; "required": false; }; "activeRouteInput": { "alias": "activeRouteInput"; "required": false; }; "collapsedInput": { "alias": "collapsedInput"; "required": false; }; "showLogoInput": { "alias": "showLogoInput"; "required": false; }; "mobileBreakpointInput": { "alias": "mobileBreakpointInput"; "required": false; }; "themeInput": { "alias": "theme"; "required": false; }; }, { "closed": "closed"; "itemClicked": "itemClicked"; "itemAction": "itemAction"; }, never, ["*"], true, never>;
|
|
3147
3204
|
}
|
|
3148
3205
|
|
|
3149
3206
|
type TabOrientation = 'horizontal' | 'vertical';
|
|
@@ -6272,7 +6329,7 @@ declare class ConfirmDialogComponent {
|
|
|
6272
6329
|
/** Resolved icon color */
|
|
6273
6330
|
protected iconColor: _angular_core.Signal<"var(--color-error-default, #ef4444)" | "var(--color-warning-default, #f59e0b)" | "var(--color-primary-600, #2563eb)">;
|
|
6274
6331
|
/** Confirm button variant */
|
|
6275
|
-
protected confirmButtonVariant: _angular_core.Signal<"primary" | "
|
|
6332
|
+
protected confirmButtonVariant: _angular_core.Signal<"primary" | "warning" | "danger">;
|
|
6276
6333
|
/** Whether confirm is allowed (text match check) */
|
|
6277
6334
|
protected confirmAllowed: _angular_core.Signal<boolean>;
|
|
6278
6335
|
constructor();
|