@eduboxpro/studio 0.1.10 → 0.1.12
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/fesm2022/eduboxpro-studio.mjs +786 -109
- package/fesm2022/eduboxpro-studio.mjs.map +1 -1
- package/index.d.ts +351 -33
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, EnvironmentProviders, TemplateRef, ElementRef, WritableSignal, Signal } from '@angular/core';
|
|
2
|
+
import { InjectionToken, EnvironmentProviders, TemplateRef, ElementRef, WritableSignal, OnInit, Signal } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
4
4
|
import { icons } from 'lucide-angular';
|
|
5
|
+
import { Params, IsActiveMatchOptions } from '@angular/router';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Theme mode: light or dark
|
|
@@ -256,6 +257,25 @@ interface DrawerDefaultsConfig {
|
|
|
256
257
|
blockScroll?: boolean;
|
|
257
258
|
role?: 'dialog' | 'alertdialog';
|
|
258
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Sidebar component defaults configuration
|
|
262
|
+
*/
|
|
263
|
+
interface SidebarDefaultsConfig {
|
|
264
|
+
position?: 'left' | 'right';
|
|
265
|
+
size?: 'sm' | 'md' | 'lg' | 'full';
|
|
266
|
+
variant?: 'default' | 'minimal' | 'compact';
|
|
267
|
+
modal?: boolean;
|
|
268
|
+
collapsible?: boolean;
|
|
269
|
+
defaultCollapsed?: boolean;
|
|
270
|
+
closeOnNavigate?: boolean;
|
|
271
|
+
closeOnBackdropClick?: boolean;
|
|
272
|
+
closeOnEscape?: boolean;
|
|
273
|
+
blockScroll?: boolean;
|
|
274
|
+
swipeToClose?: boolean;
|
|
275
|
+
showHeader?: boolean;
|
|
276
|
+
showFooter?: boolean;
|
|
277
|
+
showCloseButton?: boolean;
|
|
278
|
+
}
|
|
259
279
|
/**
|
|
260
280
|
* Components defaults configuration
|
|
261
281
|
*/
|
|
@@ -270,6 +290,7 @@ interface ComponentsConfig {
|
|
|
270
290
|
buttonToggleGroup?: ButtonToggleGroupDefaultsConfig;
|
|
271
291
|
select?: SelectDefaultsConfig;
|
|
272
292
|
drawer?: DrawerDefaultsConfig;
|
|
293
|
+
sidebar?: SidebarDefaultsConfig;
|
|
273
294
|
}
|
|
274
295
|
/**
|
|
275
296
|
* Main Studio configuration interface
|
|
@@ -331,21 +352,30 @@ declare class StudioConfigService {
|
|
|
331
352
|
*/
|
|
332
353
|
declare function provideStudioConfig(config?: StudioConfig): EnvironmentProviders;
|
|
333
354
|
|
|
355
|
+
/**
|
|
356
|
+
* Badge component types
|
|
357
|
+
*/
|
|
358
|
+
type BadgeVariant = 'solid' | 'outline' | 'soft' | 'dot';
|
|
359
|
+
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
360
|
+
type BadgeColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'neutral';
|
|
361
|
+
type BadgeRadius = 'sm' | 'md' | 'lg' | 'full';
|
|
362
|
+
type BadgeIconPosition = 'left' | 'right';
|
|
363
|
+
|
|
334
364
|
declare class BadgeComponent {
|
|
335
365
|
private readonly configService;
|
|
336
366
|
private readonly badgeDefaults;
|
|
337
|
-
variantInput: _angular_core.InputSignal<
|
|
338
|
-
sizeInput: _angular_core.InputSignal<
|
|
339
|
-
colorInput: _angular_core.InputSignal<
|
|
340
|
-
radiusInput: _angular_core.InputSignal<
|
|
367
|
+
variantInput: _angular_core.InputSignal<BadgeVariant | undefined>;
|
|
368
|
+
sizeInput: _angular_core.InputSignal<BadgeSize | undefined>;
|
|
369
|
+
colorInput: _angular_core.InputSignal<BadgeColor | undefined>;
|
|
370
|
+
radiusInput: _angular_core.InputSignal<BadgeRadius | undefined>;
|
|
341
371
|
variant: _angular_core.Signal<"solid" | "outline" | "soft" | "dot">;
|
|
342
372
|
size: _angular_core.Signal<"sm" | "md" | "lg">;
|
|
343
373
|
color: _angular_core.Signal<"primary" | "secondary" | "success" | "error" | "warning" | "info" | "neutral">;
|
|
344
374
|
radius: _angular_core.Signal<"sm" | "md" | "lg" | "full">;
|
|
345
375
|
icon: _angular_core.InputSignal<string | undefined>;
|
|
346
|
-
iconPosition: _angular_core.InputSignal<
|
|
376
|
+
iconPosition: _angular_core.InputSignal<BadgeIconPosition>;
|
|
347
377
|
dot: _angular_core.InputSignal<boolean>;
|
|
348
|
-
dotColor: _angular_core.InputSignal<
|
|
378
|
+
dotColor: _angular_core.InputSignal<BadgeColor | undefined>;
|
|
349
379
|
removable: _angular_core.InputSignal<boolean>;
|
|
350
380
|
removed: _angular_core.OutputEmitterRef<void>;
|
|
351
381
|
href: _angular_core.InputSignal<string | undefined>;
|
|
@@ -369,6 +399,38 @@ declare class BadgeComponent {
|
|
|
369
399
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "studio-badge", never, { "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "colorInput": { "alias": "color"; "required": false; "isSignal": true; }; "radiusInput": { "alias": "radius"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; "dotColor": { "alias": "dotColor"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "showZero": { "alias": "showZero"; "required": false; "isSignal": true; }; "uppercase": { "alias": "uppercase"; "required": false; "isSignal": true; }; "bold": { "alias": "bold"; "required": false; "isSignal": true; }; "pulse": { "alias": "pulse"; "required": false; "isSignal": true; }; "autoColor": { "alias": "autoColor"; "required": false; "isSignal": true; }; }, { "removed": "removed"; "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
370
400
|
}
|
|
371
401
|
|
|
402
|
+
type BadgeWrapperPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
|
403
|
+
type BadgeWrapperSize = 'sm' | 'md' | 'lg';
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* BadgeWrapper component - Wraps content with a positioned badge
|
|
407
|
+
*
|
|
408
|
+
* @example
|
|
409
|
+
* <studio-badge-wrapper [count]="5" color="error">
|
|
410
|
+
* <studio-button variant="ghost">
|
|
411
|
+
* <studio-icon name="bell" />
|
|
412
|
+
* </studio-button>
|
|
413
|
+
* </studio-badge-wrapper>
|
|
414
|
+
*/
|
|
415
|
+
declare class BadgeWrapperComponent {
|
|
416
|
+
count: _angular_core.InputSignal<string | number | undefined>;
|
|
417
|
+
content: _angular_core.InputSignal<string | undefined>;
|
|
418
|
+
variant: _angular_core.InputSignal<BadgeVariant>;
|
|
419
|
+
color: _angular_core.InputSignal<BadgeColor>;
|
|
420
|
+
size: _angular_core.InputSignal<BadgeWrapperSize>;
|
|
421
|
+
position: _angular_core.InputSignal<BadgeWrapperPosition>;
|
|
422
|
+
showZero: _angular_core.InputSignal<boolean>;
|
|
423
|
+
max: _angular_core.InputSignal<number>;
|
|
424
|
+
dot: _angular_core.InputSignal<boolean>;
|
|
425
|
+
overlap: _angular_core.InputSignal<boolean>;
|
|
426
|
+
class: _angular_core.InputSignal<string>;
|
|
427
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
428
|
+
protected badgeContent: _angular_core.Signal<string | undefined>;
|
|
429
|
+
protected shouldShowBadge: _angular_core.Signal<boolean>;
|
|
430
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeWrapperComponent, never>;
|
|
431
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeWrapperComponent, "studio-badge-wrapper", never, { "count": { "alias": "count"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "showZero": { "alias": "showZero"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; "overlap": { "alias": "overlap"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
432
|
+
}
|
|
433
|
+
|
|
372
434
|
/**
|
|
373
435
|
* Button component with multiple variants, sizes, colors and states
|
|
374
436
|
*
|
|
@@ -793,39 +855,34 @@ declare class IconComponent {
|
|
|
793
855
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconComponent, "studio-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "absoluteStrokeWidth": { "alias": "absoluteStrokeWidth"; "required": false; "isSignal": true; }; "showFallback": { "alias": "showFallback"; "required": false; "isSignal": true; }; "fallbackIcon": { "alias": "fallbackIcon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
794
856
|
}
|
|
795
857
|
|
|
858
|
+
type IconPreset = 'minimal' | 'common' | 'full';
|
|
859
|
+
interface StudioIconConfig {
|
|
860
|
+
preset?: IconPreset;
|
|
861
|
+
customIcons?: Record<string, any>;
|
|
862
|
+
}
|
|
796
863
|
/**
|
|
797
|
-
* Studio icon provider
|
|
798
|
-
* Registers commonly used Lucide icons
|
|
864
|
+
* Studio icon provider с поддержкой preset'ов
|
|
799
865
|
*
|
|
800
866
|
* @example
|
|
801
867
|
* ```typescript
|
|
802
|
-
* //
|
|
803
|
-
*
|
|
868
|
+
* // Минимальный набор (только для компонентов библиотеки)
|
|
869
|
+
* provideStudioIcons({ preset: 'minimal' });
|
|
804
870
|
*
|
|
805
|
-
*
|
|
806
|
-
*
|
|
807
|
-
* provideStudioIcons()
|
|
808
|
-
* ]
|
|
809
|
-
* };
|
|
810
|
-
* ```
|
|
871
|
+
* // Расширенный набор (рекомендуется)
|
|
872
|
+
* provideStudioIcons({ preset: 'common' });
|
|
811
873
|
*
|
|
812
|
-
*
|
|
813
|
-
*
|
|
814
|
-
* ```typescript
|
|
815
|
-
* import { LUCIDE_ICONS, LucideIconProvider } from 'lucide-angular';
|
|
816
|
-
* import { Zap, Wifi } from 'lucide-angular';
|
|
874
|
+
* // Все иконки Lucide (~1400 штук)
|
|
875
|
+
* provideStudioIcons({ preset: 'full' });
|
|
817
876
|
*
|
|
818
|
-
*
|
|
819
|
-
*
|
|
820
|
-
*
|
|
821
|
-
*
|
|
822
|
-
*
|
|
823
|
-
*
|
|
824
|
-
* }
|
|
825
|
-
* ]
|
|
877
|
+
* // С кастомными иконками
|
|
878
|
+
* import { Zap, Wifi } from 'lucide-angular';
|
|
879
|
+
* provideStudioIcons({
|
|
880
|
+
* preset: 'common',
|
|
881
|
+
* customIcons: { Zap, Wifi }
|
|
882
|
+
* });
|
|
826
883
|
* ```
|
|
827
884
|
*/
|
|
828
|
-
declare function provideStudioIcons(): EnvironmentProviders;
|
|
885
|
+
declare function provideStudioIcons(config?: StudioIconConfig): EnvironmentProviders;
|
|
829
886
|
|
|
830
887
|
type InputType = 'text' | 'email' | 'tel' | 'url' | 'password' | 'number' | 'search' | 'date' | 'time';
|
|
831
888
|
type InputMode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';
|
|
@@ -908,6 +965,184 @@ declare class InputComponent implements ControlValueAccessor {
|
|
|
908
965
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "studio-input", never, { "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "radiusInput": { "alias": "radius"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "inputmode": { "alias": "inputmode"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "focused": "focused"; "blurred": "blurred"; "cleared": "cleared"; "entered": "entered"; }, never, never, true, never>;
|
|
909
966
|
}
|
|
910
967
|
|
|
968
|
+
type MenuItemTarget = '_blank' | '_self' | '_parent' | '_top';
|
|
969
|
+
type MenuItemIconPosition = 'left' | 'right';
|
|
970
|
+
type MenuItemBadgeColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning';
|
|
971
|
+
type MenuItemTooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
972
|
+
/**
|
|
973
|
+
* Menu item interface for JSON-driven menu structure
|
|
974
|
+
*/
|
|
975
|
+
interface MenuItem {
|
|
976
|
+
id?: string;
|
|
977
|
+
label?: string;
|
|
978
|
+
href?: string;
|
|
979
|
+
routerLink?: string | string[];
|
|
980
|
+
queryParams?: Params;
|
|
981
|
+
fragment?: string;
|
|
982
|
+
target?: MenuItemTarget;
|
|
983
|
+
icon?: string;
|
|
984
|
+
iconPosition?: MenuItemIconPosition;
|
|
985
|
+
badge?: string | number;
|
|
986
|
+
badgeColor?: MenuItemBadgeColor;
|
|
987
|
+
items?: MenuItem[];
|
|
988
|
+
disabled?: boolean;
|
|
989
|
+
visible?: boolean;
|
|
990
|
+
separator?: boolean;
|
|
991
|
+
class?: string;
|
|
992
|
+
style?: Record<string, string>;
|
|
993
|
+
command?: (event?: MenuItemCommandEvent) => void;
|
|
994
|
+
tooltip?: string;
|
|
995
|
+
tooltipPosition?: MenuItemTooltipPosition;
|
|
996
|
+
data?: any;
|
|
997
|
+
}
|
|
998
|
+
/**
|
|
999
|
+
* Event emitted when menu item command is executed
|
|
1000
|
+
*/
|
|
1001
|
+
interface MenuItemCommandEvent {
|
|
1002
|
+
originalEvent?: Event;
|
|
1003
|
+
item: MenuItem;
|
|
1004
|
+
}
|
|
1005
|
+
/**
|
|
1006
|
+
* Event emitted when menu item is clicked
|
|
1007
|
+
*/
|
|
1008
|
+
interface MenuItemClickEvent {
|
|
1009
|
+
originalEvent: Event;
|
|
1010
|
+
item: MenuItem;
|
|
1011
|
+
}
|
|
1012
|
+
/**
|
|
1013
|
+
* Event emitted when expand state changes
|
|
1014
|
+
*/
|
|
1015
|
+
interface MenuExpandEvent {
|
|
1016
|
+
itemId: string;
|
|
1017
|
+
expanded: boolean;
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
type MenuOrientation = 'vertical' | 'horizontal';
|
|
1021
|
+
type MenuMode = 'static' | 'accordion' | 'overlay';
|
|
1022
|
+
type MenuSize = 'sm' | 'md' | 'lg';
|
|
1023
|
+
type MenuVariant = 'default' | 'filled' | 'outlined' | 'ghost';
|
|
1024
|
+
type MenuColor = 'primary' | 'secondary' | 'inherit';
|
|
1025
|
+
type MenuRadius = 'none' | 'sm' | 'md' | 'lg';
|
|
1026
|
+
type MenuSpacing = 'none' | 'sm' | 'md' | 'lg';
|
|
1027
|
+
type MenuExpandIconPosition = 'left' | 'right';
|
|
1028
|
+
/**
|
|
1029
|
+
* Menu component - Primitive component for navigation menus
|
|
1030
|
+
*
|
|
1031
|
+
* @example
|
|
1032
|
+
* <studio-menu
|
|
1033
|
+
* [items]="menuItems"
|
|
1034
|
+
* size="md"
|
|
1035
|
+
* variant="default"
|
|
1036
|
+
* (itemClick)="handleClick($event)"
|
|
1037
|
+
* />
|
|
1038
|
+
*/
|
|
1039
|
+
declare class MenuComponent implements OnInit {
|
|
1040
|
+
private router;
|
|
1041
|
+
private platformId;
|
|
1042
|
+
items: _angular_core.InputSignal<MenuItem[]>;
|
|
1043
|
+
orientation: _angular_core.InputSignal<MenuOrientation>;
|
|
1044
|
+
mode: _angular_core.InputSignal<MenuMode>;
|
|
1045
|
+
collapsible: _angular_core.InputSignal<boolean>;
|
|
1046
|
+
defaultExpanded: _angular_core.InputSignal<string[]>;
|
|
1047
|
+
expandOnHover: _angular_core.InputSignal<boolean>;
|
|
1048
|
+
activeItem: _angular_core.InputSignal<string | undefined>;
|
|
1049
|
+
routerLinkActive: _angular_core.InputSignal<boolean>;
|
|
1050
|
+
selectOnNavigate: _angular_core.InputSignal<boolean>;
|
|
1051
|
+
routerLinkActiveOptions: _angular_core.InputSignal<IsActiveMatchOptions>;
|
|
1052
|
+
keyboardNavigation: _angular_core.InputSignal<boolean>;
|
|
1053
|
+
arrowNavigation: _angular_core.InputSignal<boolean>;
|
|
1054
|
+
homeEndNavigation: _angular_core.InputSignal<boolean>;
|
|
1055
|
+
animated: _angular_core.InputSignal<boolean>;
|
|
1056
|
+
animationDuration: _angular_core.InputSignal<number>;
|
|
1057
|
+
ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
1058
|
+
role: _angular_core.InputSignal<"menu" | "navigation">;
|
|
1059
|
+
size: _angular_core.InputSignal<MenuSize>;
|
|
1060
|
+
compact: _angular_core.InputSignal<boolean>;
|
|
1061
|
+
fullWidth: _angular_core.InputSignal<boolean>;
|
|
1062
|
+
variant: _angular_core.InputSignal<MenuVariant>;
|
|
1063
|
+
color: _angular_core.InputSignal<MenuColor>;
|
|
1064
|
+
radius: _angular_core.InputSignal<MenuRadius>;
|
|
1065
|
+
spacing: _angular_core.InputSignal<MenuSpacing>;
|
|
1066
|
+
showDividers: _angular_core.InputSignal<boolean>;
|
|
1067
|
+
iconSize: _angular_core.InputSignal<number>;
|
|
1068
|
+
iconOnly: _angular_core.InputSignal<boolean>;
|
|
1069
|
+
indentLevel: _angular_core.InputSignal<number>;
|
|
1070
|
+
showExpandIcon: _angular_core.InputSignal<boolean>;
|
|
1071
|
+
expandIconPosition: _angular_core.InputSignal<MenuExpandIconPosition>;
|
|
1072
|
+
expandIcon: _angular_core.InputSignal<string>;
|
|
1073
|
+
class: _angular_core.InputSignal<string>;
|
|
1074
|
+
itemClass: _angular_core.InputSignal<string>;
|
|
1075
|
+
level: _angular_core.InputSignal<number>;
|
|
1076
|
+
parentExpanded: _angular_core.InputSignal<boolean>;
|
|
1077
|
+
itemClick: _angular_core.OutputEmitterRef<MenuItemClickEvent>;
|
|
1078
|
+
itemSelect: _angular_core.OutputEmitterRef<MenuItem>;
|
|
1079
|
+
expandChange: _angular_core.OutputEmitterRef<MenuExpandEvent>;
|
|
1080
|
+
activeChange: _angular_core.OutputEmitterRef<string>;
|
|
1081
|
+
private expandedItems;
|
|
1082
|
+
private activeItemId;
|
|
1083
|
+
private focusedIndex;
|
|
1084
|
+
private flattenedItems;
|
|
1085
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
1086
|
+
constructor();
|
|
1087
|
+
ngOnInit(): void;
|
|
1088
|
+
isExpanded(item: MenuItem): boolean;
|
|
1089
|
+
isActive(item: MenuItem): boolean;
|
|
1090
|
+
isDisabled(item: MenuItem): boolean;
|
|
1091
|
+
isVisible(item: MenuItem): boolean;
|
|
1092
|
+
hasChildren(item: MenuItem): boolean;
|
|
1093
|
+
getItemId(item: MenuItem, index: number): string;
|
|
1094
|
+
handleItemClick(event: Event, item: MenuItem): void;
|
|
1095
|
+
handleItemMouseEnter(item: MenuItem): void;
|
|
1096
|
+
handleItemMouseLeave(item: MenuItem): void;
|
|
1097
|
+
toggleExpand(item: MenuItem): void;
|
|
1098
|
+
expand(item: MenuItem): void;
|
|
1099
|
+
collapse(item: MenuItem): void;
|
|
1100
|
+
handleKeyDown(event: KeyboardEvent): void;
|
|
1101
|
+
private focusNextItem;
|
|
1102
|
+
private focusPreviousItem;
|
|
1103
|
+
private expandFocusedItem;
|
|
1104
|
+
private collapseFocusedItem;
|
|
1105
|
+
private activateFocusedItem;
|
|
1106
|
+
private collapseAll;
|
|
1107
|
+
private flattenMenuItems;
|
|
1108
|
+
private updateActiveFromRouter;
|
|
1109
|
+
getIndentStyle(itemLevel?: number): Record<string, string>;
|
|
1110
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuComponent, never>;
|
|
1111
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuComponent, "studio-menu", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "defaultExpanded": { "alias": "defaultExpanded"; "required": false; "isSignal": true; }; "expandOnHover": { "alias": "expandOnHover"; "required": false; "isSignal": true; }; "activeItem": { "alias": "activeItem"; "required": false; "isSignal": true; }; "routerLinkActive": { "alias": "routerLinkActive"; "required": false; "isSignal": true; }; "selectOnNavigate": { "alias": "selectOnNavigate"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; "keyboardNavigation": { "alias": "keyboardNavigation"; "required": false; "isSignal": true; }; "arrowNavigation": { "alias": "arrowNavigation"; "required": false; "isSignal": true; }; "homeEndNavigation": { "alias": "homeEndNavigation"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "spacing": { "alias": "spacing"; "required": false; "isSignal": true; }; "showDividers": { "alias": "showDividers"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "indentLevel": { "alias": "indentLevel"; "required": false; "isSignal": true; }; "showExpandIcon": { "alias": "showExpandIcon"; "required": false; "isSignal": true; }; "expandIconPosition": { "alias": "expandIconPosition"; "required": false; "isSignal": true; }; "expandIcon": { "alias": "expandIcon"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "itemClass": { "alias": "itemClass"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; "parentExpanded": { "alias": "parentExpanded"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "itemSelect": "itemSelect"; "expandChange": "expandChange"; "activeChange": "activeChange"; }, never, never, true, never>;
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
type NavbarVariant = 'default' | 'filled' | 'outlined' | 'ghost' | 'transparent';
|
|
1115
|
+
type NavbarColor = 'primary' | 'secondary' | 'inherit';
|
|
1116
|
+
type NavbarSize = 'sm' | 'md' | 'lg';
|
|
1117
|
+
type NavbarShadow = 'none' | 'sm' | 'md' | 'lg';
|
|
1118
|
+
|
|
1119
|
+
/**
|
|
1120
|
+
* Navbar component - Primitive component for navigation headers
|
|
1121
|
+
*
|
|
1122
|
+
* @example
|
|
1123
|
+
* <studio-navbar variant="filled" [sticky]="true">
|
|
1124
|
+
* <div navbarLeft>Logo</div>
|
|
1125
|
+
* <div navbarCenter>Search</div>
|
|
1126
|
+
* <div navbarRight>User menu</div>
|
|
1127
|
+
* </studio-navbar>
|
|
1128
|
+
*/
|
|
1129
|
+
declare class NavbarComponent {
|
|
1130
|
+
variant: _angular_core.InputSignal<NavbarVariant>;
|
|
1131
|
+
color: _angular_core.InputSignal<NavbarColor>;
|
|
1132
|
+
shadow: _angular_core.InputSignal<NavbarShadow>;
|
|
1133
|
+
size: _angular_core.InputSignal<NavbarSize>;
|
|
1134
|
+
customHeight: _angular_core.InputSignal<number | null>;
|
|
1135
|
+
sticky: _angular_core.InputSignal<boolean>;
|
|
1136
|
+
blurBg: _angular_core.InputSignal<boolean>;
|
|
1137
|
+
bordered: _angular_core.InputSignal<boolean>;
|
|
1138
|
+
class: _angular_core.InputSignal<string>;
|
|
1139
|
+
navbarClick: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
1140
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
1141
|
+
handleClick(event: MouseEvent): void;
|
|
1142
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavbarComponent, never>;
|
|
1143
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavbarComponent, "studio-navbar", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "customHeight": { "alias": "customHeight"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "blurBg": { "alias": "blurBg"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, { "navbarClick": "navbarClick"; }, never, ["[navbarLeft]", "[navbarCenter]", "[navbarRight]", "*"], true, never>;
|
|
1144
|
+
}
|
|
1145
|
+
|
|
911
1146
|
interface SelectOption<T = any> {
|
|
912
1147
|
label: string;
|
|
913
1148
|
value: T;
|
|
@@ -1006,6 +1241,89 @@ declare class SelectComponent<T = any> implements ControlValueAccessor {
|
|
|
1006
1241
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "studio-select", never, { "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "radiusInput": { "alias": "radius"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "optionSelected": "optionSelected"; }, never, never, true, never>;
|
|
1007
1242
|
}
|
|
1008
1243
|
|
|
1244
|
+
/**
|
|
1245
|
+
* Sidebar component types
|
|
1246
|
+
*/
|
|
1247
|
+
type SidebarPosition = 'left' | 'right';
|
|
1248
|
+
type SidebarSize = 'sm' | 'md' | 'lg' | 'full';
|
|
1249
|
+
type SidebarVariant = 'default' | 'minimal' | 'compact';
|
|
1250
|
+
interface SidebarConfig {
|
|
1251
|
+
position?: SidebarPosition;
|
|
1252
|
+
size?: SidebarSize;
|
|
1253
|
+
variant?: SidebarVariant;
|
|
1254
|
+
collapsible?: boolean;
|
|
1255
|
+
defaultCollapsed?: boolean;
|
|
1256
|
+
modal?: boolean;
|
|
1257
|
+
closeOnNavigate?: boolean;
|
|
1258
|
+
showOverlay?: boolean;
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
/**
|
|
1262
|
+
* Sidebar component - Navigation sidebar built on top of Drawer
|
|
1263
|
+
*
|
|
1264
|
+
* @example
|
|
1265
|
+
* <studio-sidebar [(visible)]="sidebarOpen">
|
|
1266
|
+
* <nav sidebarHeader>
|
|
1267
|
+
* <h2>Navigation</h2>
|
|
1268
|
+
* </nav>
|
|
1269
|
+
*
|
|
1270
|
+
* <studio-menu>
|
|
1271
|
+
* <studio-menu-item>Home</studio-menu-item>
|
|
1272
|
+
* <studio-menu-item>About</studio-menu-item>
|
|
1273
|
+
* </studio-menu>
|
|
1274
|
+
*
|
|
1275
|
+
* <div sidebarFooter>
|
|
1276
|
+
* <studio-button>Logout</studio-button>
|
|
1277
|
+
* </div>
|
|
1278
|
+
* </studio-sidebar>
|
|
1279
|
+
*/
|
|
1280
|
+
declare class SidebarComponent {
|
|
1281
|
+
private readonly router;
|
|
1282
|
+
private readonly configService;
|
|
1283
|
+
private readonly sidebarDefaults;
|
|
1284
|
+
id: _angular_core.InputSignal<string>;
|
|
1285
|
+
visible: _angular_core.ModelSignal<boolean>;
|
|
1286
|
+
positionInput: _angular_core.InputSignal<SidebarPosition | undefined>;
|
|
1287
|
+
sizeInput: _angular_core.InputSignal<SidebarSize | undefined>;
|
|
1288
|
+
variantInput: _angular_core.InputSignal<SidebarVariant | undefined>;
|
|
1289
|
+
customWidth: _angular_core.InputSignal<string | undefined>;
|
|
1290
|
+
position: _angular_core.Signal<"left" | "right">;
|
|
1291
|
+
size: _angular_core.Signal<"sm" | "md" | "lg" | "full">;
|
|
1292
|
+
variant: _angular_core.Signal<"default" | "minimal" | "compact">;
|
|
1293
|
+
modalInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1294
|
+
collapsibleInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1295
|
+
defaultCollapsedInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1296
|
+
closeOnNavigateInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1297
|
+
closeOnBackdropClickInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1298
|
+
closeOnEscapeInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1299
|
+
blockScrollInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1300
|
+
swipeToCloseInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1301
|
+
modal: _angular_core.Signal<boolean>;
|
|
1302
|
+
collapsible: _angular_core.Signal<boolean>;
|
|
1303
|
+
defaultCollapsed: _angular_core.Signal<boolean>;
|
|
1304
|
+
closeOnNavigate: _angular_core.Signal<boolean>;
|
|
1305
|
+
closeOnBackdropClick: _angular_core.Signal<boolean>;
|
|
1306
|
+
closeOnEscape: _angular_core.Signal<boolean>;
|
|
1307
|
+
blockScroll: _angular_core.Signal<boolean>;
|
|
1308
|
+
swipeToClose: _angular_core.Signal<boolean>;
|
|
1309
|
+
header: _angular_core.InputSignal<string | undefined>;
|
|
1310
|
+
showHeaderInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1311
|
+
showFooterInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1312
|
+
showCloseButtonInput: _angular_core.InputSignal<boolean | undefined>;
|
|
1313
|
+
showHeader: _angular_core.Signal<boolean>;
|
|
1314
|
+
showFooter: _angular_core.Signal<boolean>;
|
|
1315
|
+
showCloseButton: _angular_core.Signal<boolean>;
|
|
1316
|
+
contentPadding: _angular_core.InputSignal<string | undefined>;
|
|
1317
|
+
contentGap: _angular_core.InputSignal<string | undefined>;
|
|
1318
|
+
background: _angular_core.InputSignal<string | undefined>;
|
|
1319
|
+
class: _angular_core.InputSignal<string>;
|
|
1320
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
1321
|
+
protected drawerSize: _angular_core.Signal<"sm" | "md" | "lg" | "xl" | "full">;
|
|
1322
|
+
constructor();
|
|
1323
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarComponent, never>;
|
|
1324
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarComponent, "studio-sidebar", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "positionInput": { "alias": "position"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "customWidth": { "alias": "customWidth"; "required": false; "isSignal": true; }; "modalInput": { "alias": "modal"; "required": false; "isSignal": true; }; "collapsibleInput": { "alias": "collapsible"; "required": false; "isSignal": true; }; "defaultCollapsedInput": { "alias": "defaultCollapsed"; "required": false; "isSignal": true; }; "closeOnNavigateInput": { "alias": "closeOnNavigate"; "required": false; "isSignal": true; }; "closeOnBackdropClickInput": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "closeOnEscapeInput": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "blockScrollInput": { "alias": "blockScroll"; "required": false; "isSignal": true; }; "swipeToCloseInput": { "alias": "swipeToClose"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "showHeaderInput": { "alias": "showHeader"; "required": false; "isSignal": true; }; "showFooterInput": { "alias": "showFooter"; "required": false; "isSignal": true; }; "showCloseButtonInput": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "contentPadding": { "alias": "contentPadding"; "required": false; "isSignal": true; }; "contentGap": { "alias": "contentGap"; "required": false; "isSignal": true; }; "background": { "alias": "background"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; }, never, ["[sidebarHeader]", "*", "[sidebarFooter]"], true, never>;
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1009
1327
|
/**
|
|
1010
1328
|
* Toggle switch component with customizable size and color
|
|
1011
1329
|
*
|
|
@@ -1492,5 +1810,5 @@ declare function loadGoogleFonts(fonts: Array<{
|
|
|
1492
1810
|
display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
|
|
1493
1811
|
}>): void;
|
|
1494
1812
|
|
|
1495
|
-
export { BadgeComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CheckboxComponent, DrawerComponent, DrawerService, IconComponent, InputComponent, MASK_PRESETS, MaskDirective, MaskEngine, STUDIO_CONFIG, SelectComponent, StudioConfigService, SwitchComponent, TextareaComponent, ThemeSwitchComponent, classNames, isSafeUrl, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
|
|
1496
|
-
export type { BadgeDefaultsConfig, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CheckboxColor, CheckboxDefaultsConfig, CheckboxRadius, CheckboxSize, CheckboxVariant, ColorConfig, ComponentsConfig, DrawerAnimationEasing, DrawerCloseButtonPosition, DrawerConfig, DrawerDefaultsConfig, DrawerPosition, DrawerRadius, DrawerRole, DrawerShadowSize, DrawerSize, InputDefaultsConfig, InputMode, InputType, MaskConfig, MaskPreset, MaskResult, MaskToken, SelectDefaultsConfig, SelectDisplayContext, SelectOption, SelectOptionGroup, SelectPosition, SelectSize, SelectVariant, StudioConfig, StudioThemeConfig, SwitchDefaultsConfig, TextareaColor, TextareaDefaultsConfig, TextareaRadius, TextareaSize, TextareaVariant, ThemeMode };
|
|
1813
|
+
export { BadgeComponent, BadgeWrapperComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CheckboxComponent, DrawerComponent, DrawerService, IconComponent, InputComponent, MASK_PRESETS, MaskDirective, MaskEngine, MenuComponent, NavbarComponent, STUDIO_CONFIG, SelectComponent, SidebarComponent, StudioConfigService, SwitchComponent, TextareaComponent, ThemeSwitchComponent, classNames, isSafeUrl, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
|
|
1814
|
+
export type { BadgeColor, BadgeDefaultsConfig, BadgeIconPosition, BadgeRadius, BadgeSize, BadgeVariant, BadgeWrapperPosition, BadgeWrapperSize, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CheckboxColor, CheckboxDefaultsConfig, CheckboxRadius, CheckboxSize, CheckboxVariant, ColorConfig, ComponentsConfig, DrawerAnimationEasing, DrawerCloseButtonPosition, DrawerConfig, DrawerDefaultsConfig, DrawerPosition, DrawerRadius, DrawerRole, DrawerShadowSize, DrawerSize, InputDefaultsConfig, InputMode, InputType, MaskConfig, MaskPreset, MaskResult, MaskToken, MenuColor, MenuExpandEvent, MenuExpandIconPosition, MenuItem, MenuItemBadgeColor, MenuItemClickEvent, MenuItemCommandEvent, MenuItemIconPosition, MenuItemTarget, MenuItemTooltipPosition, MenuMode, MenuOrientation, MenuRadius, MenuSize, MenuSpacing, MenuVariant, NavbarColor, NavbarShadow, NavbarSize, NavbarVariant, SelectDefaultsConfig, SelectDisplayContext, SelectOption, SelectOptionGroup, SelectPosition, SelectSize, SelectVariant, SidebarConfig, SidebarDefaultsConfig, SidebarPosition, SidebarSize, SidebarVariant, StudioConfig, StudioThemeConfig, SwitchDefaultsConfig, TextareaColor, TextareaDefaultsConfig, TextareaRadius, TextareaSize, TextareaVariant, ThemeMode };
|