@eduboxpro/studio 0.1.13 → 0.1.14

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/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import { InjectionToken, EnvironmentProviders, AfterViewInit, ElementRef, Templa
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
4
  import { icons } from 'lucide-angular';
5
5
  import { Params, IsActiveMatchOptions } from '@angular/router';
6
+ import { Placement } from '@floating-ui/dom';
6
7
 
7
8
  /**
8
9
  * Theme mode: light or dark
@@ -298,6 +299,55 @@ interface ColorPickerDefaultsConfig {
298
299
  showFormatToggle?: boolean;
299
300
  showCopyButton?: boolean;
300
301
  }
302
+ /**
303
+ * Popover component defaults configuration
304
+ */
305
+ interface PopoverDefaultsConfig {
306
+ position?: 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
307
+ trigger?: 'click' | 'hover' | 'focus' | 'manual';
308
+ variant?: 'default' | 'bordered' | 'shadow' | 'minimal';
309
+ size?: 'sm' | 'md' | 'lg';
310
+ animation?: 'fade' | 'scale' | 'slide' | 'none';
311
+ }
312
+ /**
313
+ * Tooltip component defaults configuration
314
+ */
315
+ interface TooltipDefaultsConfig {
316
+ position?: 'top' | 'bottom' | 'left' | 'right';
317
+ trigger?: 'hover' | 'focus' | 'click';
318
+ hoverDelay?: number;
319
+ }
320
+ /**
321
+ * Dropdown component defaults configuration
322
+ */
323
+ interface DropdownDefaultsConfig {
324
+ trigger?: 'click' | 'hover';
325
+ position?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'left-start' | 'right-start';
326
+ width?: string;
327
+ minWidth?: string;
328
+ }
329
+ /**
330
+ * Tabs component defaults configuration
331
+ */
332
+ interface TabsDefaultsConfig {
333
+ variant?: 'line' | 'pills' | 'enclosed';
334
+ size?: 'sm' | 'md' | 'lg';
335
+ orientation?: 'horizontal' | 'vertical';
336
+ }
337
+ /**
338
+ * Modal component defaults configuration
339
+ */
340
+ interface ModalDefaultsConfig {
341
+ size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
342
+ variant?: 'default' | 'bordered' | 'minimal';
343
+ animation?: 'fade' | 'scale' | 'slide-down' | 'none';
344
+ position?: 'center' | 'top' | 'bottom';
345
+ closeOnOverlayClick?: boolean;
346
+ closeOnEscape?: boolean;
347
+ showHeader?: boolean;
348
+ showFooter?: boolean;
349
+ showCloseButton?: boolean;
350
+ }
301
351
  /**
302
352
  * Components defaults configuration
303
353
  */
@@ -315,6 +365,11 @@ interface ComponentsConfig {
315
365
  drawer?: DrawerDefaultsConfig;
316
366
  sidebar?: SidebarDefaultsConfig;
317
367
  colorPicker?: ColorPickerDefaultsConfig;
368
+ popover?: PopoverDefaultsConfig;
369
+ tooltip?: TooltipDefaultsConfig;
370
+ dropdown?: DropdownDefaultsConfig;
371
+ tabs?: TabsDefaultsConfig;
372
+ modal?: ModalDefaultsConfig;
318
373
  }
319
374
  /**
320
375
  * Main Studio configuration interface
@@ -775,6 +830,45 @@ declare class ColorPickerComponent implements ControlValueAccessor, AfterViewIni
775
830
 
776
831
  declare const DEFAULT_COLOR_PRESETS: ColorSwatchGroup[];
777
832
 
833
+ declare class ColorPickerCompactComponent implements ControlValueAccessor {
834
+ private readonly configService;
835
+ trigger: _angular_core.InputSignal<"click" | "hover">;
836
+ position: _angular_core.InputSignal<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end">;
837
+ popoverWidth: _angular_core.InputSignal<string>;
838
+ showArrow: _angular_core.InputSignal<boolean>;
839
+ closeOnClickOutside: _angular_core.InputSignal<boolean>;
840
+ triggerSize: _angular_core.InputSignal<string>;
841
+ triggerRadius: _angular_core.InputSignal<string>;
842
+ showCurrentColor: _angular_core.InputSignal<boolean>;
843
+ format: _angular_core.InputSignal<"hex" | "rgb" | "hsl">;
844
+ showAlpha: _angular_core.InputSignal<boolean>;
845
+ showPresets: _angular_core.InputSignal<boolean>;
846
+ showFormatToggle: _angular_core.InputSignal<boolean>;
847
+ showCopyButton: _angular_core.InputSignal<boolean>;
848
+ presets: _angular_core.InputSignal<any[] | undefined>;
849
+ showFooter: _angular_core.InputSignal<boolean>;
850
+ applyLabel: _angular_core.InputSignal<string>;
851
+ cancelLabel: _angular_core.InputSignal<string>;
852
+ disabled: _angular_core.InputSignal<boolean>;
853
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
854
+ colorChange: _angular_core.OutputEmitterRef<string>;
855
+ protected currentValue: _angular_core.WritableSignal<string>;
856
+ protected tempValue: _angular_core.WritableSignal<string>;
857
+ protected isOpen: _angular_core.WritableSignal<boolean>;
858
+ protected hostClasses: _angular_core.Signal<string>;
859
+ private onChange;
860
+ private onTouched;
861
+ constructor();
862
+ protected handleApply(): void;
863
+ protected handleCancel(): void;
864
+ writeValue(value: string): void;
865
+ registerOnChange(fn: (value: string) => void): void;
866
+ registerOnTouched(fn: () => void): void;
867
+ setDisabledState(isDisabled: boolean): void;
868
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColorPickerCompactComponent, never>;
869
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColorPickerCompactComponent, "studio-color-picker-compact", never, { "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "popoverWidth": { "alias": "popoverWidth"; "required": false; "isSignal": true; }; "showArrow": { "alias": "showArrow"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; "triggerSize": { "alias": "triggerSize"; "required": false; "isSignal": true; }; "triggerRadius": { "alias": "triggerRadius"; "required": false; "isSignal": true; }; "showCurrentColor": { "alias": "showCurrentColor"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "showAlpha": { "alias": "showAlpha"; "required": false; "isSignal": true; }; "showPresets": { "alias": "showPresets"; "required": false; "isSignal": true; }; "showFormatToggle": { "alias": "showFormatToggle"; "required": false; "isSignal": true; }; "showCopyButton": { "alias": "showCopyButton"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "applyLabel": { "alias": "applyLabel"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "colorChange": "colorChange"; }, never, never, true, never>;
870
+ }
871
+
778
872
  type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
779
873
  type DrawerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
780
874
  type DrawerRadius = 'none' | 'sm' | 'md' | 'lg';
@@ -945,6 +1039,32 @@ declare class DrawerService {
945
1039
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DrawerService>;
946
1040
  }
947
1041
 
1042
+ interface DropdownItem {
1043
+ id: string;
1044
+ label: string;
1045
+ icon?: string;
1046
+ disabled?: boolean;
1047
+ divider?: boolean;
1048
+ danger?: boolean;
1049
+ shortcut?: string;
1050
+ onClick?: () => void;
1051
+ }
1052
+ type DropdownPosition = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'left-start' | 'right-start';
1053
+
1054
+ declare class DropdownComponent {
1055
+ items: _angular_core.InputSignal<DropdownItem[]>;
1056
+ trigger: _angular_core.InputSignal<"click" | "hover">;
1057
+ position: _angular_core.InputSignal<DropdownPosition>;
1058
+ width: _angular_core.InputSignal<string>;
1059
+ minWidth: _angular_core.InputSignal<string>;
1060
+ itemClick: _angular_core.OutputEmitterRef<DropdownItem>;
1061
+ protected isOpen: _angular_core.WritableSignal<boolean>;
1062
+ protected hostClasses: _angular_core.Signal<string>;
1063
+ protected handleItemClick(item: DropdownItem): void;
1064
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
1065
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "studio-dropdown", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, ["*"], true, never>;
1066
+ }
1067
+
948
1068
  /**
949
1069
  * Icon component with Lucide icons support
950
1070
  *
@@ -1224,6 +1344,43 @@ declare class MenuComponent implements OnInit {
1224
1344
  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>;
1225
1345
  }
1226
1346
 
1347
+ type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
1348
+ type ModalVariant = 'default' | 'bordered' | 'minimal';
1349
+ type ModalAnimation = 'fade' | 'scale' | 'slide-down' | 'none';
1350
+ type ModalPosition = 'center' | 'top' | 'bottom';
1351
+
1352
+ declare class ModalComponent {
1353
+ private destroyRef;
1354
+ visible: _angular_core.ModelSignal<boolean>;
1355
+ title: _angular_core.InputSignal<string>;
1356
+ size: _angular_core.InputSignal<ModalSize>;
1357
+ variant: _angular_core.InputSignal<ModalVariant>;
1358
+ animation: _angular_core.InputSignal<ModalAnimation>;
1359
+ position: _angular_core.InputSignal<ModalPosition>;
1360
+ showHeader: _angular_core.InputSignal<boolean>;
1361
+ showFooter: _angular_core.InputSignal<boolean>;
1362
+ showCloseButton: _angular_core.InputSignal<boolean>;
1363
+ closeOnOverlayClick: _angular_core.InputSignal<boolean>;
1364
+ closeOnEscape: _angular_core.InputSignal<boolean>;
1365
+ visibleChange: _angular_core.OutputEmitterRef<boolean>;
1366
+ opened: _angular_core.OutputEmitterRef<void>;
1367
+ closed: _angular_core.OutputEmitterRef<void>;
1368
+ protected headerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1369
+ protected footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1370
+ protected modalPanel: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
1371
+ protected hostClasses: _angular_core.Signal<string>;
1372
+ constructor();
1373
+ protected handleEscape(event: KeyboardEvent): void;
1374
+ protected handleOverlayClick(): void;
1375
+ close(): void;
1376
+ open(): void;
1377
+ private handleOpen;
1378
+ private handleClose;
1379
+ private setupFocusTrap;
1380
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
1381
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "studio-modal", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "closeOnOverlayClick": { "alias": "closeOnOverlayClick"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "visibleChange": "visibleChange"; "opened": "opened"; "closed": "closed"; }, ["headerTemplate", "footerTemplate"], ["*"], true, never>;
1382
+ }
1383
+
1227
1384
  type NavbarVariant = 'default' | 'filled' | 'outlined' | 'ghost' | 'transparent';
1228
1385
  type NavbarColor = 'primary' | 'secondary' | 'inherit';
1229
1386
  type NavbarSize = 'sm' | 'md' | 'lg';
@@ -1256,6 +1413,106 @@ declare class NavbarComponent {
1256
1413
  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>;
1257
1414
  }
1258
1415
 
1416
+ type PopoverPosition = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
1417
+ type PopoverTrigger = 'click' | 'hover' | 'focus' | 'manual';
1418
+ type PopoverVariant = 'default' | 'bordered' | 'shadow' | 'minimal';
1419
+ type PopoverSize = 'sm' | 'md' | 'lg';
1420
+ type PopoverAnimation = 'fade' | 'scale' | 'slide' | 'none';
1421
+ type PopoverWidth = string | number | 'auto' | 'trigger';
1422
+ type PopoverBoundary = 'viewport' | 'clippingParents';
1423
+ interface PopoverConfig {
1424
+ position?: PopoverPosition;
1425
+ trigger?: PopoverTrigger;
1426
+ variant?: PopoverVariant;
1427
+ size?: PopoverSize;
1428
+ animation?: PopoverAnimation;
1429
+ }
1430
+
1431
+ declare class PopoverComponent {
1432
+ private readonly document;
1433
+ private readonly destroyRef;
1434
+ private readonly injector;
1435
+ private readonly configService;
1436
+ private readonly popoverDefaults;
1437
+ protected readonly headerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1438
+ protected readonly footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1439
+ protected readonly contentTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1440
+ protected readonly triggerEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
1441
+ protected readonly panelEl: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
1442
+ protected readonly arrowEl: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
1443
+ id: _angular_core.InputSignal<string>;
1444
+ visible: _angular_core.ModelSignal<boolean>;
1445
+ disabled: _angular_core.InputSignal<boolean>;
1446
+ triggerInput: _angular_core.InputSignal<PopoverTrigger | undefined>;
1447
+ openDelay: _angular_core.InputSignal<number>;
1448
+ closeDelay: _angular_core.InputSignal<number>;
1449
+ trigger: _angular_core.Signal<"click" | "hover" | "focus" | "manual">;
1450
+ positionInput: _angular_core.InputSignal<PopoverPosition | undefined>;
1451
+ offset: _angular_core.InputSignal<number>;
1452
+ preventOverflow: _angular_core.InputSignal<boolean>;
1453
+ flipValue: _angular_core.InputSignal<boolean>;
1454
+ position: _angular_core.Signal<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end">;
1455
+ variantInput: _angular_core.InputSignal<PopoverVariant | undefined>;
1456
+ sizeInput: _angular_core.InputSignal<PopoverSize | undefined>;
1457
+ width: _angular_core.InputSignal<PopoverWidth>;
1458
+ minWidth: _angular_core.InputSignal<string | number | undefined>;
1459
+ maxWidth: _angular_core.InputSignal<string | number | undefined>;
1460
+ maxHeight: _angular_core.InputSignal<string | number | undefined>;
1461
+ padding: _angular_core.InputSignal<string | undefined>;
1462
+ variant: _angular_core.Signal<"default" | "minimal" | "bordered" | "shadow">;
1463
+ size: _angular_core.Signal<"sm" | "md" | "lg">;
1464
+ arrow: _angular_core.InputSignal<boolean>;
1465
+ arrowSize: _angular_core.InputSignal<number>;
1466
+ closeOnClickOutside: _angular_core.InputSignal<boolean>;
1467
+ closeOnEscape: _angular_core.InputSignal<boolean>;
1468
+ closeOnScroll: _angular_core.InputSignal<boolean>;
1469
+ showOverlay: _angular_core.InputSignal<boolean>;
1470
+ overlayOpacity: _angular_core.InputSignal<number>;
1471
+ animationInput: _angular_core.InputSignal<PopoverAnimation | undefined>;
1472
+ animationDuration: _angular_core.InputSignal<number>;
1473
+ animation: _angular_core.Signal<"none" | "fade" | "scale" | "slide">;
1474
+ showHeader: _angular_core.InputSignal<boolean>;
1475
+ showFooter: _angular_core.InputSignal<boolean>;
1476
+ showCloseButton: _angular_core.InputSignal<boolean>;
1477
+ content: _angular_core.InputSignal<string | undefined>;
1478
+ zIndex: _angular_core.InputSignal<number>;
1479
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
1480
+ role: _angular_core.InputSignal<string>;
1481
+ visibleChange: _angular_core.OutputEmitterRef<boolean>;
1482
+ opened: _angular_core.OutputEmitterRef<void>;
1483
+ closed: _angular_core.OutputEmitterRef<void>;
1484
+ positionChanged: _angular_core.OutputEmitterRef<Placement>;
1485
+ private cleanup?;
1486
+ private openTimeout?;
1487
+ private closeTimeout?;
1488
+ private isHovered;
1489
+ private isFocused;
1490
+ protected hostClasses: _angular_core.Signal<string>;
1491
+ constructor();
1492
+ private setupPositioning;
1493
+ private updatePosition;
1494
+ protected handleOpen(): void;
1495
+ protected handleClose(): void;
1496
+ private handleScrollBind;
1497
+ private handleScroll;
1498
+ open(): void;
1499
+ close(): void;
1500
+ toggle(): void;
1501
+ protected handleTriggerClick(): void;
1502
+ protected handleTriggerMouseEnter(): void;
1503
+ protected handleTriggerMouseLeave(): void;
1504
+ protected handlePanelMouseEnter(): void;
1505
+ protected handlePanelMouseLeave(): void;
1506
+ protected handleTriggerFocus(): void;
1507
+ protected handleTriggerBlur(): void;
1508
+ protected handleBackdropClick(): void;
1509
+ protected handleDocumentClick(event: MouseEvent): void;
1510
+ protected handleEscapeKey(event: KeyboardEvent): void;
1511
+ private clearTimeouts;
1512
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverComponent, never>;
1513
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverComponent, "studio-popover", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "triggerInput": { "alias": "trigger"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "positionInput": { "alias": "position"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "preventOverflow": { "alias": "preventOverflow"; "required": false; "isSignal": true; }; "flipValue": { "alias": "flipValue"; "required": false; "isSignal": true; }; "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "arrow": { "alias": "arrow"; "required": false; "isSignal": true; }; "arrowSize": { "alias": "arrowSize"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; "isSignal": true; }; "showOverlay": { "alias": "showOverlay"; "required": false; "isSignal": true; }; "overlayOpacity": { "alias": "overlayOpacity"; "required": false; "isSignal": true; }; "animationInput": { "alias": "animation"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "visibleChange": "visibleChange"; "opened": "opened"; "closed": "closed"; "positionChanged": "positionChanged"; }, ["headerTemplate", "footerTemplate", "contentTemplate"], ["*", "[popoverContent]"], true, never>;
1514
+ }
1515
+
1259
1516
  type RadioButtonSize = 'sm' | 'md' | 'lg';
1260
1517
  type RadioButtonColor = 'primary' | 'secondary' | 'success' | 'error';
1261
1518
  type RadioButtonVariant = 'default' | 'outlined' | 'filled';
@@ -1544,6 +1801,32 @@ declare class SwitchComponent implements ControlValueAccessor {
1544
1801
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "studio-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "showIcons": { "alias": "showIcons"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "colorInput": { "alias": "color"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "checkedChange": "checkedChange"; }, never, never, true, never>;
1545
1802
  }
1546
1803
 
1804
+ type TabsVariant = 'line' | 'pills' | 'enclosed';
1805
+ type TabsSize = 'sm' | 'md' | 'lg';
1806
+ type TabsOrientation = 'horizontal' | 'vertical';
1807
+
1808
+ interface TabItem {
1809
+ id: string;
1810
+ label: string;
1811
+ icon?: string;
1812
+ disabled?: boolean;
1813
+ content?: TemplateRef<any>;
1814
+ }
1815
+ declare class TabsComponent {
1816
+ tabs: _angular_core.InputSignal<TabItem[]>;
1817
+ activeTab: _angular_core.WritableSignal<string>;
1818
+ variant: _angular_core.InputSignal<TabsVariant>;
1819
+ size: _angular_core.InputSignal<TabsSize>;
1820
+ orientation: _angular_core.InputSignal<TabsOrientation>;
1821
+ tabChange: _angular_core.OutputEmitterRef<string>;
1822
+ protected hostClasses: _angular_core.Signal<string>;
1823
+ protected iconSize: _angular_core.Signal<number>;
1824
+ constructor();
1825
+ protected selectTab(tabId: string): void;
1826
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
1827
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "studio-tabs", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, { "tabChange": "tabChange"; }, never, ["*"], true, never>;
1828
+ }
1829
+
1547
1830
  /**
1548
1831
  * Textarea component for multi-line text input
1549
1832
  *
@@ -1762,6 +2045,21 @@ type TextareaSize = 'sm' | 'md' | 'lg';
1762
2045
  type TextareaColor = 'primary' | 'secondary' | 'success' | 'error';
1763
2046
  type TextareaRadius = 'none' | 'sm' | 'md' | 'lg' | 'full';
1764
2047
 
2048
+ declare class TooltipComponent {
2049
+ content: _angular_core.InputSignal<string>;
2050
+ trigger: _angular_core.InputSignal<"click" | "hover" | "focus">;
2051
+ position: _angular_core.InputSignal<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end">;
2052
+ openDelay: _angular_core.InputSignal<number>;
2053
+ closeDelay: _angular_core.InputSignal<number>;
2054
+ arrow: _angular_core.InputSignal<boolean>;
2055
+ arrowSize: _angular_core.InputSignal<number>;
2056
+ maxWidth: _angular_core.InputSignal<string>;
2057
+ disabled: _angular_core.InputSignal<boolean>;
2058
+ protected hostClasses: _angular_core.Signal<string>;
2059
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
2060
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "studio-tooltip", never, { "content": { "alias": "content"; "required": true; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "arrow": { "alias": "arrow"; "required": false; "isSignal": true; }; "arrowSize": { "alias": "arrowSize"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2061
+ }
2062
+
1765
2063
  interface ButtonToggleGroupOption {
1766
2064
  value: string | number;
1767
2065
  label: string;
@@ -2109,5 +2407,5 @@ declare function loadGoogleFonts(fonts: Array<{
2109
2407
  display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
2110
2408
  }>): void;
2111
2409
 
2112
- export { BadgeComponent, BadgeWrapperComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CheckboxComponent, ColorPickerComponent, DEFAULT_COLOR_PRESETS, DrawerComponent, DrawerService, IconComponent, InputComponent, InspectorComponent, MASK_PRESETS, MaskDirective, MaskEngine, MenuComponent, NavbarComponent, RadioButtonComponent, STUDIO_CONFIG, SelectComponent, SidebarComponent, StudioConfigService, SwitchComponent, TextareaComponent, ThemeSwitchComponent, classNames, isSafeUrl, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
2113
- export type { BadgeColor, BadgeDefaultsConfig, BadgeIconPosition, BadgeRadius, BadgeSize, BadgeVariant, BadgeWrapperPosition, BadgeWrapperSize, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CheckboxColor, CheckboxDefaultsConfig, CheckboxRadius, CheckboxSize, CheckboxVariant, ColorConfig, ColorFormat, ColorPickerDefaultsConfig, ColorPickerSize, ColorPickerVariant, ColorPreset, ColorSwatchGroup, ColorValue, ComponentsConfig, DrawerAnimationEasing, DrawerCloseButtonPosition, DrawerConfig, DrawerDefaultsConfig, DrawerPosition, DrawerRadius, DrawerRole, DrawerShadowSize, DrawerSize, HSL, InputDefaultsConfig, InputMode, InputType, InspectorComponentSize, InspectorComponentVariant, InspectorData, InspectorGroup, InspectorGroupDivider, InspectorOption, InspectorParameter, InspectorParameterType, InspectorSection, InspectorSpacing, MaskConfig, MaskPreset, MaskResult, MaskToken, MenuColor, MenuExpandEvent, MenuExpandIconPosition, MenuItem, MenuItemBadgeColor, MenuItemClickEvent, MenuItemCommandEvent, MenuItemIconPosition, MenuItemTarget, MenuItemTooltipPosition, MenuMode, MenuOrientation, MenuRadius, MenuSize, MenuSpacing, MenuVariant, NavbarColor, NavbarShadow, NavbarSize, NavbarVariant, RGB, RadioButtonColor, RadioButtonDefaultsConfig, RadioButtonRadius, RadioButtonSize, RadioButtonVariant, SelectDefaultsConfig, SelectDisplayContext, SelectOption, SelectOptionGroup, SelectPosition, SelectSize, SelectVariant, SidebarConfig, SidebarDefaultsConfig, SidebarPosition, SidebarSize, SidebarVariant, StudioConfig, StudioThemeConfig, SwitchDefaultsConfig, TextareaColor, TextareaDefaultsConfig, TextareaRadius, TextareaSize, TextareaVariant, ThemeMode };
2410
+ export { BadgeComponent, BadgeWrapperComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CheckboxComponent, ColorPickerCompactComponent, ColorPickerComponent, DEFAULT_COLOR_PRESETS, DrawerComponent, DrawerService, DropdownComponent, IconComponent, InputComponent, InspectorComponent, MASK_PRESETS, MaskDirective, MaskEngine, MenuComponent, ModalComponent, NavbarComponent, PopoverComponent, RadioButtonComponent, STUDIO_CONFIG, SelectComponent, SidebarComponent, StudioConfigService, SwitchComponent, TabsComponent, TextareaComponent, ThemeSwitchComponent, TooltipComponent, classNames, isSafeUrl, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
2411
+ export type { BadgeColor, BadgeDefaultsConfig, BadgeIconPosition, BadgeRadius, BadgeSize, BadgeVariant, BadgeWrapperPosition, BadgeWrapperSize, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CheckboxColor, CheckboxDefaultsConfig, CheckboxRadius, CheckboxSize, CheckboxVariant, ColorConfig, ColorFormat, ColorPickerDefaultsConfig, ColorPickerSize, ColorPickerVariant, ColorPreset, ColorSwatchGroup, ColorValue, ComponentsConfig, DrawerAnimationEasing, DrawerCloseButtonPosition, DrawerConfig, DrawerDefaultsConfig, DrawerPosition, DrawerRadius, DrawerRole, DrawerShadowSize, DrawerSize, DropdownDefaultsConfig, DropdownItem, DropdownPosition, HSL, InputDefaultsConfig, InputMode, InputType, InspectorComponentSize, InspectorComponentVariant, InspectorData, InspectorGroup, InspectorGroupDivider, InspectorOption, InspectorParameter, InspectorParameterType, InspectorSection, InspectorSpacing, MaskConfig, MaskPreset, MaskResult, MaskToken, MenuColor, MenuExpandEvent, MenuExpandIconPosition, MenuItem, MenuItemBadgeColor, MenuItemClickEvent, MenuItemCommandEvent, MenuItemIconPosition, MenuItemTarget, MenuItemTooltipPosition, MenuMode, MenuOrientation, MenuRadius, MenuSize, MenuSpacing, MenuVariant, ModalAnimation, ModalDefaultsConfig, ModalPosition, ModalSize, ModalVariant, NavbarColor, NavbarShadow, NavbarSize, NavbarVariant, PopoverAnimation, PopoverBoundary, PopoverConfig, PopoverDefaultsConfig, PopoverPosition, PopoverSize, PopoverTrigger, PopoverVariant, PopoverWidth, RGB, RadioButtonColor, RadioButtonDefaultsConfig, RadioButtonRadius, RadioButtonSize, RadioButtonVariant, SelectDefaultsConfig, SelectDisplayContext, SelectOption, SelectOptionGroup, SelectPosition, SelectSize, SelectVariant, SidebarConfig, SidebarDefaultsConfig, SidebarPosition, SidebarSize, SidebarVariant, StudioConfig, StudioThemeConfig, SwitchDefaultsConfig, TabItem, TabsDefaultsConfig, TabsOrientation, TabsSize, TabsVariant, TextareaColor, TextareaDefaultsConfig, TextareaRadius, TextareaSize, TextareaVariant, ThemeMode, TooltipDefaultsConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eduboxpro/studio",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Modern Angular UI library for educational platforms with customizable design system",
5
5
  "keywords": [
6
6
  "angular",