@eduboxpro/studio 0.1.14 → 0.1.16
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 +886 -14
- package/fesm2022/eduboxpro-studio.mjs.map +1 -1
- package/index.d.ts +292 -7
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, EnvironmentProviders,
|
|
2
|
+
import { InjectionToken, EnvironmentProviders, OnInit, OnDestroy, TemplateRef, AfterViewInit, ElementRef, WritableSignal, Signal } from '@angular/core';
|
|
3
|
+
import { Params, IsActiveMatchOptions } from '@angular/router';
|
|
3
4
|
import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
4
5
|
import { icons } from 'lucide-angular';
|
|
5
|
-
import { Params, IsActiveMatchOptions } from '@angular/router';
|
|
6
6
|
import { Placement } from '@floating-ui/dom';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -348,6 +348,28 @@ interface ModalDefaultsConfig {
|
|
|
348
348
|
showFooter?: boolean;
|
|
349
349
|
showCloseButton?: boolean;
|
|
350
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* BottomNavigation component defaults configuration
|
|
353
|
+
*/
|
|
354
|
+
interface BottomNavigationDefaultsConfig {
|
|
355
|
+
variant?: 'default' | 'filled' | 'minimal';
|
|
356
|
+
showLabels?: 'always' | 'selected' | 'never';
|
|
357
|
+
size?: 'sm' | 'md' | 'lg';
|
|
358
|
+
elevation?: 'none' | 'sm' | 'md' | 'lg';
|
|
359
|
+
blur?: boolean;
|
|
360
|
+
hideOnDesktop?: boolean;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Card component defaults configuration
|
|
364
|
+
*/
|
|
365
|
+
interface CardDefaultsConfig {
|
|
366
|
+
variant?: 'elevated' | 'filled' | 'outlined' | 'ghost';
|
|
367
|
+
size?: 'sm' | 'md' | 'lg';
|
|
368
|
+
color?: 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'neutral';
|
|
369
|
+
radius?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
370
|
+
shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
371
|
+
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
372
|
+
}
|
|
351
373
|
/**
|
|
352
374
|
* Components defaults configuration
|
|
353
375
|
*/
|
|
@@ -370,6 +392,8 @@ interface ComponentsConfig {
|
|
|
370
392
|
dropdown?: DropdownDefaultsConfig;
|
|
371
393
|
tabs?: TabsDefaultsConfig;
|
|
372
394
|
modal?: ModalDefaultsConfig;
|
|
395
|
+
bottomNavigation?: BottomNavigationDefaultsConfig;
|
|
396
|
+
card?: CardDefaultsConfig;
|
|
373
397
|
}
|
|
374
398
|
/**
|
|
375
399
|
* Main Studio configuration interface
|
|
@@ -510,6 +534,90 @@ declare class BadgeWrapperComponent {
|
|
|
510
534
|
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>;
|
|
511
535
|
}
|
|
512
536
|
|
|
537
|
+
interface BottomNavigationItem {
|
|
538
|
+
id: string;
|
|
539
|
+
label: string;
|
|
540
|
+
icon: string;
|
|
541
|
+
routerLink?: string | string[];
|
|
542
|
+
href?: string;
|
|
543
|
+
queryParams?: Params;
|
|
544
|
+
badge?: string | number;
|
|
545
|
+
badgeColor?: 'primary' | 'secondary' | 'success' | 'error' | 'warning';
|
|
546
|
+
disabled?: boolean;
|
|
547
|
+
visible?: boolean;
|
|
548
|
+
command?: (item: BottomNavigationItem) => void;
|
|
549
|
+
data?: any;
|
|
550
|
+
}
|
|
551
|
+
type BottomNavigationVariant = 'default' | 'filled' | 'minimal';
|
|
552
|
+
type BottomNavigationLabelMode = 'always' | 'selected' | 'never';
|
|
553
|
+
type BottomNavigationFabPosition = 'center' | 'end';
|
|
554
|
+
type BottomNavigationSize = 'sm' | 'md' | 'lg';
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* Bottom Navigation component - Mobile-first navigation component
|
|
558
|
+
*
|
|
559
|
+
* @example
|
|
560
|
+
* <studio-bottom-navigation
|
|
561
|
+
* [items]="navItems"
|
|
562
|
+
* variant="default"
|
|
563
|
+
* showLabels="always"
|
|
564
|
+
* (itemClicked)="handleClick($event)"
|
|
565
|
+
* />
|
|
566
|
+
*/
|
|
567
|
+
declare class BottomNavigationComponent implements OnInit, OnDestroy {
|
|
568
|
+
private readonly router;
|
|
569
|
+
private readonly platformId;
|
|
570
|
+
items: _angular_core.InputSignal<BottomNavigationItem[]>;
|
|
571
|
+
activeItem: _angular_core.InputSignal<string | undefined>;
|
|
572
|
+
variant: _angular_core.InputSignal<BottomNavigationVariant>;
|
|
573
|
+
showLabels: _angular_core.InputSignal<BottomNavigationLabelMode>;
|
|
574
|
+
size: _angular_core.InputSignal<BottomNavigationSize>;
|
|
575
|
+
elevation: _angular_core.InputSignal<"sm" | "md" | "lg" | "none">;
|
|
576
|
+
blur: _angular_core.InputSignal<boolean>;
|
|
577
|
+
showFab: _angular_core.InputSignal<boolean>;
|
|
578
|
+
fabIcon: _angular_core.InputSignal<string>;
|
|
579
|
+
fabPosition: _angular_core.InputSignal<BottomNavigationFabPosition>;
|
|
580
|
+
fabAriaLabel: _angular_core.InputSignal<string | undefined>;
|
|
581
|
+
fixed: _angular_core.InputSignal<boolean>;
|
|
582
|
+
hideOnScroll: _angular_core.InputSignal<boolean>;
|
|
583
|
+
scrollThreshold: _angular_core.InputSignal<number>;
|
|
584
|
+
hideOnDesktop: _angular_core.InputSignal<boolean>;
|
|
585
|
+
enableSwipeGestures: _angular_core.InputSignal<boolean>;
|
|
586
|
+
swipeThreshold: _angular_core.InputSignal<number>;
|
|
587
|
+
enableHapticFeedback: _angular_core.InputSignal<boolean>;
|
|
588
|
+
routerLinkActiveOptions: _angular_core.InputSignal<IsActiveMatchOptions>;
|
|
589
|
+
ariaLabel: _angular_core.InputSignal<string>;
|
|
590
|
+
class: _angular_core.InputSignal<string>;
|
|
591
|
+
activeItemChange: _angular_core.OutputEmitterRef<string>;
|
|
592
|
+
itemClicked: _angular_core.OutputEmitterRef<BottomNavigationItem>;
|
|
593
|
+
fabClicked: _angular_core.OutputEmitterRef<void>;
|
|
594
|
+
swipedLeft: _angular_core.OutputEmitterRef<void>;
|
|
595
|
+
swipedRight: _angular_core.OutputEmitterRef<void>;
|
|
596
|
+
protected isHidden: _angular_core.WritableSignal<boolean>;
|
|
597
|
+
private lastScrollY;
|
|
598
|
+
private routerSubscription?;
|
|
599
|
+
private touchStartX;
|
|
600
|
+
private touchStartY;
|
|
601
|
+
private isSwiping;
|
|
602
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
603
|
+
protected visibleItems: _angular_core.Signal<BottomNavigationItem[]>;
|
|
604
|
+
protected centerIndex: _angular_core.Signal<number>;
|
|
605
|
+
protected iconSize: _angular_core.Signal<number>;
|
|
606
|
+
ngOnInit(): void;
|
|
607
|
+
ngOnDestroy(): void;
|
|
608
|
+
private handleScroll;
|
|
609
|
+
protected isItemActive(item: BottomNavigationItem): boolean;
|
|
610
|
+
protected shouldShowLabel(item: BottomNavigationItem): boolean;
|
|
611
|
+
protected onItemClick(item: BottomNavigationItem, event: Event): void;
|
|
612
|
+
protected onFabClick(event: Event): void;
|
|
613
|
+
protected onTouchStart(event: TouchEvent): void;
|
|
614
|
+
protected onTouchMove(event: TouchEvent): void;
|
|
615
|
+
protected onTouchEnd(event: TouchEvent): void;
|
|
616
|
+
private triggerHapticFeedback;
|
|
617
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BottomNavigationComponent, never>;
|
|
618
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BottomNavigationComponent, "studio-bottom-navigation", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "activeItem": { "alias": "activeItem"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "elevation": { "alias": "elevation"; "required": false; "isSignal": true; }; "blur": { "alias": "blur"; "required": false; "isSignal": true; }; "showFab": { "alias": "showFab"; "required": false; "isSignal": true; }; "fabIcon": { "alias": "fabIcon"; "required": false; "isSignal": true; }; "fabPosition": { "alias": "fabPosition"; "required": false; "isSignal": true; }; "fabAriaLabel": { "alias": "fabAriaLabel"; "required": false; "isSignal": true; }; "fixed": { "alias": "fixed"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "scrollThreshold": { "alias": "scrollThreshold"; "required": false; "isSignal": true; }; "hideOnDesktop": { "alias": "hideOnDesktop"; "required": false; "isSignal": true; }; "enableSwipeGestures": { "alias": "enableSwipeGestures"; "required": false; "isSignal": true; }; "swipeThreshold": { "alias": "swipeThreshold"; "required": false; "isSignal": true; }; "enableHapticFeedback": { "alias": "enableHapticFeedback"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, { "activeItemChange": "activeItemChange"; "itemClicked": "itemClicked"; "fabClicked": "fabClicked"; "swipedLeft": "swipedLeft"; "swipedRight": "swipedRight"; }, never, ["[bottomNavLeft]", "[bottomNavRight]"], true, never>;
|
|
619
|
+
}
|
|
620
|
+
|
|
513
621
|
/**
|
|
514
622
|
* Button component with multiple variants, sizes, colors and states
|
|
515
623
|
*
|
|
@@ -537,7 +645,7 @@ declare class ButtonComponent {
|
|
|
537
645
|
loading: _angular_core.InputSignal<boolean>;
|
|
538
646
|
loadingText: _angular_core.InputSignal<string>;
|
|
539
647
|
fullWidth: _angular_core.InputSignal<boolean>;
|
|
540
|
-
type: _angular_core.InputSignal<"button" | "
|
|
648
|
+
type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
541
649
|
icon: _angular_core.InputSignal<string | undefined>;
|
|
542
650
|
iconPosition: _angular_core.InputSignal<"left" | "right" | "only">;
|
|
543
651
|
href: _angular_core.InputSignal<string | undefined>;
|
|
@@ -571,7 +679,7 @@ declare class ButtonGroupComponent {
|
|
|
571
679
|
fullWidth: _angular_core.InputSignal<boolean>;
|
|
572
680
|
disabled: _angular_core.InputSignal<boolean>;
|
|
573
681
|
spacing: _angular_core.InputSignal<"sm" | "md" | "lg" | "none" | "xs">;
|
|
574
|
-
align: _angular_core.InputSignal<"center" | "
|
|
682
|
+
align: _angular_core.InputSignal<"center" | "end" | "start" | "stretch">;
|
|
575
683
|
ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
576
684
|
role: _angular_core.InputSignal<string>;
|
|
577
685
|
protected hostClasses: _angular_core.Signal<string>;
|
|
@@ -580,6 +688,183 @@ declare class ButtonGroupComponent {
|
|
|
580
688
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonGroupComponent, "studio-button-group", never, { "orientationInput": { "alias": "orientation"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "colorInput": { "alias": "color"; "required": false; "isSignal": true; }; "radiusInput": { "alias": "radius"; "required": false; "isSignal": true; }; "attached": { "alias": "attached"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "spacing": { "alias": "spacing"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; }, {}, never, ["studio-button"], true, never>;
|
|
581
689
|
}
|
|
582
690
|
|
|
691
|
+
/**
|
|
692
|
+
* Card component types
|
|
693
|
+
*/
|
|
694
|
+
type CardVariant = 'elevated' | 'filled' | 'outlined' | 'ghost';
|
|
695
|
+
type CardSize = 'sm' | 'md' | 'lg';
|
|
696
|
+
type CardColor = 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'neutral';
|
|
697
|
+
type CardRadius = 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
698
|
+
type CardShadow = 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
699
|
+
type CardPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
700
|
+
type CardOrientation = 'vertical' | 'horizontal';
|
|
701
|
+
type CardImagePosition = 'top' | 'left' | 'right' | 'bottom';
|
|
702
|
+
|
|
703
|
+
/**
|
|
704
|
+
* Card component for displaying content in a container
|
|
705
|
+
*
|
|
706
|
+
* @example
|
|
707
|
+
* <studio-card variant="elevated" color="primary">
|
|
708
|
+
* <div card-header>Header</div>
|
|
709
|
+
* <div card-body>Content</div>
|
|
710
|
+
* <div card-footer>Footer</div>
|
|
711
|
+
* </studio-card>
|
|
712
|
+
*/
|
|
713
|
+
declare class CardComponent {
|
|
714
|
+
private readonly configService;
|
|
715
|
+
private readonly cardDefaults;
|
|
716
|
+
variantInput: _angular_core.InputSignal<CardVariant | undefined>;
|
|
717
|
+
sizeInput: _angular_core.InputSignal<CardSize | undefined>;
|
|
718
|
+
colorInput: _angular_core.InputSignal<CardColor | undefined>;
|
|
719
|
+
radiusInput: _angular_core.InputSignal<CardRadius | undefined>;
|
|
720
|
+
shadowInput: _angular_core.InputSignal<CardShadow | undefined>;
|
|
721
|
+
paddingInput: _angular_core.InputSignal<CardPadding | undefined>;
|
|
722
|
+
variant: _angular_core.Signal<"ghost" | "filled" | "outlined" | "elevated">;
|
|
723
|
+
size: _angular_core.Signal<"sm" | "md" | "lg">;
|
|
724
|
+
color: _angular_core.Signal<"primary" | "secondary" | "success" | "error" | "warning" | "neutral" | "default">;
|
|
725
|
+
radius: _angular_core.Signal<"sm" | "md" | "lg" | "none" | "xl">;
|
|
726
|
+
shadow: _angular_core.Signal<"sm" | "md" | "lg" | "none" | "xl">;
|
|
727
|
+
padding: _angular_core.Signal<"sm" | "md" | "lg" | "none">;
|
|
728
|
+
orientation: _angular_core.InputSignal<CardOrientation>;
|
|
729
|
+
imagePosition: _angular_core.InputSignal<CardImagePosition>;
|
|
730
|
+
fullWidth: _angular_core.InputSignal<boolean>;
|
|
731
|
+
fullHeight: _angular_core.InputSignal<boolean>;
|
|
732
|
+
title: _angular_core.InputSignal<string | undefined>;
|
|
733
|
+
subtitle: _angular_core.InputSignal<string | undefined>;
|
|
734
|
+
avatar: _angular_core.InputSignal<string | undefined>;
|
|
735
|
+
icon: _angular_core.InputSignal<string | undefined>;
|
|
736
|
+
image: _angular_core.InputSignal<string | undefined>;
|
|
737
|
+
imageAlt: _angular_core.InputSignal<string>;
|
|
738
|
+
imageFit: _angular_core.InputSignal<"cover" | "contain">;
|
|
739
|
+
showHeader: _angular_core.InputSignal<boolean>;
|
|
740
|
+
showMedia: _angular_core.InputSignal<boolean>;
|
|
741
|
+
showFooter: _angular_core.InputSignal<boolean>;
|
|
742
|
+
divider: _angular_core.InputSignal<boolean>;
|
|
743
|
+
hoverable: _angular_core.InputSignal<boolean>;
|
|
744
|
+
pressable: _angular_core.InputSignal<boolean>;
|
|
745
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
746
|
+
loading: _angular_core.InputSignal<boolean>;
|
|
747
|
+
href: _angular_core.InputSignal<string | undefined>;
|
|
748
|
+
target: _angular_core.InputSignal<"_blank" | "_self" | "_parent" | "_top">;
|
|
749
|
+
blurred: _angular_core.InputSignal<boolean>;
|
|
750
|
+
blurredFooter: _angular_core.InputSignal<boolean>;
|
|
751
|
+
animated: _angular_core.InputSignal<boolean>;
|
|
752
|
+
clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
753
|
+
headerAction: _angular_core.OutputEmitterRef<void>;
|
|
754
|
+
protected headerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
755
|
+
protected headerActionsTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
756
|
+
protected mediaTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
757
|
+
protected bodyTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
758
|
+
protected footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
759
|
+
protected iconSize: _angular_core.Signal<number>;
|
|
760
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
761
|
+
protected handleClick(event: MouseEvent): void;
|
|
762
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardComponent, never>;
|
|
763
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardComponent, "studio-card", 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; }; "shadowInput": { "alias": "shadow"; "required": false; "isSignal": true; }; "paddingInput": { "alias": "padding"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "imagePosition": { "alias": "imagePosition"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "fullHeight": { "alias": "fullHeight"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "image": { "alias": "image"; "required": false; "isSignal": true; }; "imageAlt": { "alias": "imageAlt"; "required": false; "isSignal": true; }; "imageFit": { "alias": "imageFit"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "showMedia": { "alias": "showMedia"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "divider": { "alias": "divider"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "pressable": { "alias": "pressable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "blurred": { "alias": "blurred"; "required": false; "isSignal": true; }; "blurredFooter": { "alias": "blurredFooter"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; "headerAction": "headerAction"; }, ["headerTemplate", "headerActionsTemplate", "mediaTemplate", "bodyTemplate", "footerTemplate"], ["*"], true, never>;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
interface ChatMessage {
|
|
767
|
+
id: string;
|
|
768
|
+
content: string;
|
|
769
|
+
userId: string;
|
|
770
|
+
userName: string;
|
|
771
|
+
userAvatar?: string;
|
|
772
|
+
timestamp: Date;
|
|
773
|
+
status?: 'sending' | 'sent' | 'delivered' | 'read' | 'error';
|
|
774
|
+
type?: 'text' | 'system';
|
|
775
|
+
edited?: boolean;
|
|
776
|
+
}
|
|
777
|
+
interface ChatUser {
|
|
778
|
+
id: string;
|
|
779
|
+
name: string;
|
|
780
|
+
avatar?: string;
|
|
781
|
+
online?: boolean;
|
|
782
|
+
}
|
|
783
|
+
type ChatVariant = 'default' | 'compact' | 'minimal' | 'bubbles';
|
|
784
|
+
type ChatSize = 'sm' | 'md' | 'lg';
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Chat component - Flexible chat/messaging component
|
|
788
|
+
*
|
|
789
|
+
* @example
|
|
790
|
+
* <studio-chat
|
|
791
|
+
* [messages]="messages"
|
|
792
|
+
* [currentUserId]="currentUser.id"
|
|
793
|
+
* variant="default"
|
|
794
|
+
* (messageSubmit)="handleMessage($event)"
|
|
795
|
+
* />
|
|
796
|
+
*/
|
|
797
|
+
declare class ChatComponent implements AfterViewInit {
|
|
798
|
+
messages: _angular_core.InputSignal<ChatMessage[]>;
|
|
799
|
+
currentUserId: _angular_core.InputSignal<string>;
|
|
800
|
+
variant: _angular_core.InputSignal<ChatVariant>;
|
|
801
|
+
size: _angular_core.InputSignal<ChatSize>;
|
|
802
|
+
height: _angular_core.InputSignal<string>;
|
|
803
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
804
|
+
showAvatars: _angular_core.InputSignal<boolean>;
|
|
805
|
+
showTimestamps: _angular_core.InputSignal<boolean>;
|
|
806
|
+
showUserNames: _angular_core.InputSignal<boolean>;
|
|
807
|
+
enableAutoScroll: _angular_core.InputSignal<boolean>;
|
|
808
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
809
|
+
class: _angular_core.InputSignal<string>;
|
|
810
|
+
messageSubmit: _angular_core.OutputEmitterRef<{
|
|
811
|
+
content: string;
|
|
812
|
+
}>;
|
|
813
|
+
typing: _angular_core.OutputEmitterRef<boolean>;
|
|
814
|
+
protected messagesContainerRef: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
815
|
+
protected isScrolledUp: _angular_core.WritableSignal<boolean>;
|
|
816
|
+
protected shouldAutoScroll: _angular_core.WritableSignal<boolean>;
|
|
817
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
818
|
+
protected isCompact: _angular_core.Signal<boolean>;
|
|
819
|
+
constructor();
|
|
820
|
+
ngAfterViewInit(): void;
|
|
821
|
+
protected onScroll(): void;
|
|
822
|
+
protected onMessageSubmit(event: {
|
|
823
|
+
content: string;
|
|
824
|
+
}): void;
|
|
825
|
+
protected scrollToBottom(): void;
|
|
826
|
+
protected onTyping(typing: boolean): void;
|
|
827
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChatComponent, never>;
|
|
828
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChatComponent, "studio-chat", never, { "messages": { "alias": "messages"; "required": true; "isSignal": true; }; "currentUserId": { "alias": "currentUserId"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showAvatars": { "alias": "showAvatars"; "required": false; "isSignal": true; }; "showTimestamps": { "alias": "showTimestamps"; "required": false; "isSignal": true; }; "showUserNames": { "alias": "showUserNames"; "required": false; "isSignal": true; }; "enableAutoScroll": { "alias": "enableAutoScroll"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, { "messageSubmit": "messageSubmit"; "typing": "typing"; }, never, never, true, never>;
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
declare class ChatMessageComponent {
|
|
832
|
+
message: _angular_core.InputSignal<ChatMessage>;
|
|
833
|
+
currentUserId: _angular_core.InputSignal<string>;
|
|
834
|
+
showAvatar: _angular_core.InputSignal<boolean>;
|
|
835
|
+
showTimestamp: _angular_core.InputSignal<boolean>;
|
|
836
|
+
showUserName: _angular_core.InputSignal<boolean>;
|
|
837
|
+
compact: _angular_core.InputSignal<boolean>;
|
|
838
|
+
protected isOwn: _angular_core.Signal<boolean>;
|
|
839
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
840
|
+
protected getInitials(name: string): string;
|
|
841
|
+
protected formatTime(date: Date): string;
|
|
842
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChatMessageComponent, never>;
|
|
843
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChatMessageComponent, "studio-chat-message", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; "currentUserId": { "alias": "currentUserId"; "required": true; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "showTimestamp": { "alias": "showTimestamp"; "required": false; "isSignal": true; }; "showUserName": { "alias": "showUserName"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
declare class ChatInputComponent {
|
|
847
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
848
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
849
|
+
compact: _angular_core.InputSignal<boolean>;
|
|
850
|
+
messageSubmit: _angular_core.OutputEmitterRef<{
|
|
851
|
+
content: string;
|
|
852
|
+
}>;
|
|
853
|
+
typing: _angular_core.OutputEmitterRef<boolean>;
|
|
854
|
+
protected inputValue: _angular_core.WritableSignal<string>;
|
|
855
|
+
protected textareaRef: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
|
|
856
|
+
private typingTimeout?;
|
|
857
|
+
protected canSend: _angular_core.Signal<boolean>;
|
|
858
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
859
|
+
constructor();
|
|
860
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
861
|
+
protected onInput(): void;
|
|
862
|
+
protected handleSubmit(): void;
|
|
863
|
+
focus(): void;
|
|
864
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChatInputComponent, never>;
|
|
865
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChatInputComponent, "studio-chat-input", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, { "messageSubmit": "messageSubmit"; "typing": "typing"; }, never, never, true, never>;
|
|
866
|
+
}
|
|
867
|
+
|
|
583
868
|
/**
|
|
584
869
|
* Checkbox component for selecting boolean values
|
|
585
870
|
*
|
|
@@ -2094,7 +2379,7 @@ declare class ButtonToggleGroupComponent implements ControlValueAccessor {
|
|
|
2094
2379
|
fullWidth: _angular_core.InputSignal<boolean>;
|
|
2095
2380
|
disabled: _angular_core.InputSignal<boolean>;
|
|
2096
2381
|
spacing: _angular_core.InputSignal<"sm" | "md" | "lg" | "none" | "xs">;
|
|
2097
|
-
align: _angular_core.InputSignal<"center" | "
|
|
2382
|
+
align: _angular_core.InputSignal<"center" | "end" | "start" | "stretch">;
|
|
2098
2383
|
showIcons: _angular_core.InputSignal<boolean>;
|
|
2099
2384
|
iconPosition: _angular_core.InputSignal<"left" | "right" | "only">;
|
|
2100
2385
|
ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
@@ -2407,5 +2692,5 @@ declare function loadGoogleFonts(fonts: Array<{
|
|
|
2407
2692
|
display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
|
|
2408
2693
|
}>): void;
|
|
2409
2694
|
|
|
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 };
|
|
2695
|
+
export { BadgeComponent, BadgeWrapperComponent, BottomNavigationComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CardComponent, ChatComponent, ChatInputComponent, ChatMessageComponent, 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 };
|
|
2696
|
+
export type { BadgeColor, BadgeDefaultsConfig, BadgeIconPosition, BadgeRadius, BadgeSize, BadgeVariant, BadgeWrapperPosition, BadgeWrapperSize, BottomNavigationDefaultsConfig, BottomNavigationFabPosition, BottomNavigationItem, BottomNavigationLabelMode, BottomNavigationSize, BottomNavigationVariant, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CardColor, CardDefaultsConfig, CardImagePosition, CardOrientation, CardPadding, CardRadius, CardShadow, CardSize, CardVariant, ChatMessage, ChatSize, ChatUser, ChatVariant, 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 };
|