@lesterarte/sefin-ui 0.0.3 → 0.0.5
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/README.md +70 -5
- package/fesm2022/lesterarte-sefin-ui.mjs +2134 -235
- package/fesm2022/lesterarte-sefin-ui.mjs.map +1 -1
- package/package.json +4 -5
- package/types/lesterarte-sefin-ui.d.ts +646 -95
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Injector, AfterViewInit, OnChanges, ElementRef, SimpleChanges, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor } from '@angular/forms';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -437,6 +437,129 @@ declare const BRAND_THEME: {
|
|
|
437
437
|
|
|
438
438
|
type Theme = 'light' | 'dark' | 'brand';
|
|
439
439
|
|
|
440
|
+
/**
|
|
441
|
+
* Shared types and interfaces
|
|
442
|
+
*/
|
|
443
|
+
type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';
|
|
444
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
445
|
+
type InputSize = 'sm' | 'md' | 'lg';
|
|
446
|
+
type CardVariant = 'default' | 'elevated' | 'outlined';
|
|
447
|
+
type TypographyVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
|
|
448
|
+
type TypographySize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl';
|
|
449
|
+
type TypographyWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';
|
|
450
|
+
type TypographyColor = 'text' | 'text-secondary' | 'text-disabled' | 'primary' | 'secondary' | 'success' | 'warning' | 'error';
|
|
451
|
+
type TypographyLineHeight = 'tight' | 'normal' | 'relaxed';
|
|
452
|
+
interface BaseComponent {
|
|
453
|
+
disabled?: boolean;
|
|
454
|
+
class?: string;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Theme color configuration
|
|
458
|
+
*/
|
|
459
|
+
interface ThemeColors {
|
|
460
|
+
primary: string;
|
|
461
|
+
'primary-dark'?: string;
|
|
462
|
+
'primary-light'?: string;
|
|
463
|
+
secondary: string;
|
|
464
|
+
'secondary-dark'?: string;
|
|
465
|
+
'secondary-light'?: string;
|
|
466
|
+
background: string;
|
|
467
|
+
'background-elevated'?: string;
|
|
468
|
+
surface: string;
|
|
469
|
+
'surface-hover'?: string;
|
|
470
|
+
text: string;
|
|
471
|
+
'text-secondary'?: string;
|
|
472
|
+
'text-disabled'?: string;
|
|
473
|
+
border: string;
|
|
474
|
+
'border-focus'?: string;
|
|
475
|
+
success?: string;
|
|
476
|
+
warning?: string;
|
|
477
|
+
error?: string;
|
|
478
|
+
info?: string;
|
|
479
|
+
[key: string]: string | undefined;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Custom theme configuration interface
|
|
483
|
+
* Allows users to create their own themes with custom colors, typography, spacing, etc.
|
|
484
|
+
* Supports both single theme and light/dark variants.
|
|
485
|
+
*/
|
|
486
|
+
interface CustomTheme {
|
|
487
|
+
name: string;
|
|
488
|
+
colors: ThemeColors;
|
|
489
|
+
/**
|
|
490
|
+
* Optional light and dark variants for the theme
|
|
491
|
+
* If provided, allows switching between light and dark modes
|
|
492
|
+
*/
|
|
493
|
+
variants?: {
|
|
494
|
+
light?: ThemeColors;
|
|
495
|
+
dark?: ThemeColors;
|
|
496
|
+
};
|
|
497
|
+
typography?: {
|
|
498
|
+
fontFamily?: {
|
|
499
|
+
base?: string;
|
|
500
|
+
mono?: string;
|
|
501
|
+
[key: string]: string | undefined;
|
|
502
|
+
};
|
|
503
|
+
fontSize?: {
|
|
504
|
+
xs?: string;
|
|
505
|
+
sm?: string;
|
|
506
|
+
base?: string;
|
|
507
|
+
lg?: string;
|
|
508
|
+
xl?: string;
|
|
509
|
+
'2xl'?: string;
|
|
510
|
+
'3xl'?: string;
|
|
511
|
+
'4xl'?: string;
|
|
512
|
+
'5xl'?: string;
|
|
513
|
+
[key: string]: string | undefined;
|
|
514
|
+
};
|
|
515
|
+
fontWeight?: {
|
|
516
|
+
light?: number;
|
|
517
|
+
normal?: number;
|
|
518
|
+
medium?: number;
|
|
519
|
+
semibold?: number;
|
|
520
|
+
bold?: number;
|
|
521
|
+
[key: string]: number | undefined;
|
|
522
|
+
};
|
|
523
|
+
lineHeight?: {
|
|
524
|
+
tight?: number;
|
|
525
|
+
normal?: number;
|
|
526
|
+
relaxed?: number;
|
|
527
|
+
[key: string]: number | undefined;
|
|
528
|
+
};
|
|
529
|
+
};
|
|
530
|
+
spacing?: {
|
|
531
|
+
xs?: string;
|
|
532
|
+
sm?: string;
|
|
533
|
+
md?: string;
|
|
534
|
+
lg?: string;
|
|
535
|
+
xl?: string;
|
|
536
|
+
'2xl'?: string;
|
|
537
|
+
'3xl'?: string;
|
|
538
|
+
'4xl'?: string;
|
|
539
|
+
'5xl'?: string;
|
|
540
|
+
[key: string]: string | undefined;
|
|
541
|
+
};
|
|
542
|
+
borderRadius?: {
|
|
543
|
+
none?: string;
|
|
544
|
+
sm?: string;
|
|
545
|
+
md?: string;
|
|
546
|
+
lg?: string;
|
|
547
|
+
xl?: string;
|
|
548
|
+
'2xl'?: string;
|
|
549
|
+
full?: string;
|
|
550
|
+
[key: string]: string | undefined;
|
|
551
|
+
};
|
|
552
|
+
shadow?: {
|
|
553
|
+
none?: string;
|
|
554
|
+
sm?: string;
|
|
555
|
+
md?: string;
|
|
556
|
+
lg?: string;
|
|
557
|
+
xl?: string;
|
|
558
|
+
'2xl'?: string;
|
|
559
|
+
[key: string]: string | undefined;
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
|
|
440
563
|
/**
|
|
441
564
|
* Theme loader utility
|
|
442
565
|
* Generates CSS variables from design tokens
|
|
@@ -444,35 +567,80 @@ type Theme = 'light' | 'dark' | 'brand';
|
|
|
444
567
|
declare class ThemeLoader {
|
|
445
568
|
/**
|
|
446
569
|
* Load a theme and apply it to the document root
|
|
570
|
+
* @param themeName - Predefined theme name ('light', 'dark', 'brand') or a CustomTheme object
|
|
571
|
+
* @param variant - Optional variant ('light' or 'dark') for CustomTheme with variants support
|
|
447
572
|
*/
|
|
448
|
-
static loadTheme(themeName?: Theme): void;
|
|
573
|
+
static loadTheme(themeName?: Theme | CustomTheme, variant?: 'light' | 'dark'): void;
|
|
574
|
+
/**
|
|
575
|
+
* Load a custom theme variant (light or dark)
|
|
576
|
+
* @param customTheme - CustomTheme object with variants support
|
|
577
|
+
* @param variant - Variant to load ('light' or 'dark')
|
|
578
|
+
*/
|
|
579
|
+
static loadThemeVariant(customTheme: CustomTheme, variant: 'light' | 'dark'): void;
|
|
449
580
|
/**
|
|
450
581
|
* Get theme configuration by name
|
|
451
582
|
*/
|
|
452
583
|
private static getTheme;
|
|
453
584
|
/**
|
|
454
585
|
* Get all CSS variables as a string (useful for SSR or static generation)
|
|
586
|
+
* @param themeName - Predefined theme name ('light', 'dark', 'brand') or a CustomTheme object
|
|
587
|
+
* @param variant - Optional variant ('light' or 'dark') for CustomTheme with variants support
|
|
455
588
|
*/
|
|
456
|
-
static getThemeCSS(themeName?: Theme): string;
|
|
589
|
+
static getThemeCSS(themeName?: Theme | CustomTheme, variant?: 'light' | 'dark'): string;
|
|
457
590
|
}
|
|
458
591
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
*/
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
592
|
+
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
593
|
+
declare class AvatarComponent {
|
|
594
|
+
/** Avatar size. Options: 'xs' | 'sm' | 'md' | 'lg' | 'xl' */
|
|
595
|
+
size: AvatarSize;
|
|
596
|
+
/** Image source URL */
|
|
597
|
+
src?: string;
|
|
598
|
+
/** Alt text for the image */
|
|
599
|
+
alt: string;
|
|
600
|
+
/** Initials to display when no image is provided */
|
|
601
|
+
initials?: string;
|
|
602
|
+
/** Whether to show a border/ring around the avatar */
|
|
603
|
+
bordered: boolean;
|
|
604
|
+
/** Additional CSS classes */
|
|
605
|
+
class: string;
|
|
606
|
+
get avatarClasses(): string;
|
|
607
|
+
get displayInitials(): string;
|
|
608
|
+
onImageError(event: Event): void;
|
|
609
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
610
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "sefin-avatar", never, { "size": { "alias": "size"; "required": false; }; "src": { "alias": "src"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "initials": { "alias": "initials"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
type BadgeVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error';
|
|
614
|
+
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
615
|
+
declare class BadgeComponent {
|
|
616
|
+
/** Badge variant style. Options: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' */
|
|
617
|
+
variant: BadgeVariant;
|
|
618
|
+
/** Badge size. Options: 'sm' | 'md' | 'lg' */
|
|
619
|
+
size: BadgeSize;
|
|
620
|
+
/** Whether the badge should be displayed as a dot (no text) */
|
|
621
|
+
dot: boolean;
|
|
622
|
+
/** Maximum number to show before displaying as "+N" */
|
|
623
|
+
max?: number;
|
|
624
|
+
/** Badge value (number or text) */
|
|
625
|
+
value?: number | string;
|
|
626
|
+
/** Additional CSS classes */
|
|
627
|
+
class: string;
|
|
628
|
+
get badgeClasses(): string;
|
|
629
|
+
get displayValue(): string;
|
|
630
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
631
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "sefin-badge", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "max": { "alias": "max"; "required": false; }; "value": { "alias": "value"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
469
632
|
}
|
|
470
633
|
|
|
471
634
|
declare class ButtonComponent {
|
|
635
|
+
/** Button variant style. Options: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' */
|
|
472
636
|
variant: ButtonVariant;
|
|
637
|
+
/** Button size. Options: 'sm' | 'md' | 'lg' */
|
|
473
638
|
size: ButtonSize;
|
|
639
|
+
/** Whether the button is disabled */
|
|
474
640
|
disabled: boolean;
|
|
641
|
+
/** Button type. Options: 'button' | 'submit' | 'reset' */
|
|
475
642
|
type: 'button' | 'submit' | 'reset';
|
|
643
|
+
/** Additional CSS classes */
|
|
476
644
|
class: string;
|
|
477
645
|
clicked: EventEmitter<MouseEvent>;
|
|
478
646
|
onClick(event: MouseEvent): void;
|
|
@@ -481,125 +649,508 @@ declare class ButtonComponent {
|
|
|
481
649
|
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "sefin-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
482
650
|
}
|
|
483
651
|
|
|
652
|
+
type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
484
653
|
declare class IconComponent {
|
|
485
|
-
|
|
486
|
-
|
|
654
|
+
private injector;
|
|
655
|
+
private sanitizer;
|
|
656
|
+
constructor(injector: Injector);
|
|
657
|
+
/** Icon name from Lucide Angular (e.g., 'home', 'search', 'user') */
|
|
658
|
+
name?: string;
|
|
659
|
+
/** Icon size. Options: 'xs' | 'sm' | 'md' | 'lg' | 'xl' */
|
|
660
|
+
size: IconSize;
|
|
661
|
+
/** Custom color for the icon */
|
|
662
|
+
color?: string;
|
|
663
|
+
/** Whether the icon should be rotated 180 degrees */
|
|
664
|
+
rotate: boolean;
|
|
665
|
+
/** Whether the icon should be flipped horizontally */
|
|
666
|
+
flipH: boolean;
|
|
667
|
+
/** Whether the icon should be flipped vertically */
|
|
668
|
+
flipV: boolean;
|
|
669
|
+
/** Additional CSS classes */
|
|
487
670
|
class: string;
|
|
488
671
|
get iconClasses(): string;
|
|
672
|
+
get sizeValue(): number;
|
|
673
|
+
get lucideIconName(): string | undefined;
|
|
674
|
+
get iconSvgHtml(): any;
|
|
675
|
+
private escapeHtml;
|
|
676
|
+
private getTransform;
|
|
489
677
|
static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
490
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "sefin-icon", never, { "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never,
|
|
678
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "sefin-icon", never, { "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; "rotate": { "alias": "rotate"; "required": false; }; "flipH": { "alias": "flipH"; "required": false; }; "flipV": { "alias": "flipV"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
491
679
|
}
|
|
492
680
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
681
|
+
/**
|
|
682
|
+
* Lucide Icon Map
|
|
683
|
+
* Maps icon names to Lucide Angular components
|
|
684
|
+
* This allows us to use Lucide icons internally while maintaining our API
|
|
685
|
+
*/
|
|
686
|
+
declare const LUCIDE_ICON_MAP: Record<string, () => Promise<{
|
|
687
|
+
default: any;
|
|
688
|
+
}>>;
|
|
689
|
+
/**
|
|
690
|
+
* Get Lucide icon component by name
|
|
691
|
+
*/
|
|
692
|
+
declare function getLucideIcon(name: string): (() => Promise<{
|
|
693
|
+
default: any;
|
|
694
|
+
}>) | null;
|
|
695
|
+
/**
|
|
696
|
+
* Check if an icon name has a Lucide mapping
|
|
697
|
+
*/
|
|
698
|
+
declare function hasLucideIcon(name: string): boolean;
|
|
699
|
+
|
|
700
|
+
declare class IconButtonComponent {
|
|
701
|
+
/** Button variant style. Options: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' */
|
|
702
|
+
variant: ButtonVariant;
|
|
703
|
+
/** Button size. Options: 'sm' | 'md' | 'lg' */
|
|
704
|
+
size: ButtonSize;
|
|
705
|
+
/** Whether the button is disabled */
|
|
706
|
+
disabled: boolean;
|
|
707
|
+
/** Button type. Options: 'button' | 'submit' | 'reset' */
|
|
708
|
+
type: 'button' | 'submit' | 'reset';
|
|
709
|
+
/** Additional CSS classes */
|
|
710
|
+
class: string;
|
|
711
|
+
/** Accessibility label for the button */
|
|
712
|
+
ariaLabel: string;
|
|
713
|
+
/** Whether the button should be rounded (circular) */
|
|
714
|
+
rounded: boolean;
|
|
715
|
+
clicked: EventEmitter<MouseEvent>;
|
|
716
|
+
onClick(event: MouseEvent): void;
|
|
717
|
+
get buttonClasses(): string;
|
|
718
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IconButtonComponent, never>;
|
|
719
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IconButtonComponent, "sefin-icon-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "class": { "alias": "class"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
type FabSize = 'sm' | 'md' | 'lg';
|
|
723
|
+
declare class FabButtonComponent {
|
|
724
|
+
/** Button variant style. Options: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' */
|
|
725
|
+
variant: ButtonVariant;
|
|
726
|
+
/** FAB size. Options: 'sm' | 'md' | 'lg' */
|
|
727
|
+
size: FabSize;
|
|
728
|
+
/** Whether the button is disabled */
|
|
729
|
+
disabled: boolean;
|
|
730
|
+
/** Button type. Options: 'button' | 'submit' | 'reset' */
|
|
731
|
+
type: 'button' | 'submit' | 'reset';
|
|
732
|
+
/** Additional CSS classes */
|
|
733
|
+
class: string;
|
|
734
|
+
/** Accessibility label for the button */
|
|
735
|
+
ariaLabel: string;
|
|
736
|
+
clicked: EventEmitter<MouseEvent>;
|
|
737
|
+
onClick(event: MouseEvent): void;
|
|
738
|
+
get buttonClasses(): string;
|
|
739
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FabButtonComponent, never>;
|
|
740
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FabButtonComponent, "sefin-fab-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "class": { "alias": "class"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
type ChipVariant = 'default' | 'primary' | 'secondary' | 'outline' | 'ghost';
|
|
744
|
+
type ChipSize = 'sm' | 'md' | 'lg';
|
|
745
|
+
declare class ChipComponent {
|
|
746
|
+
/** Chip variant style. Options: 'default' | 'primary' | 'secondary' | 'outline' | 'ghost' */
|
|
747
|
+
variant: ChipVariant;
|
|
748
|
+
/** Chip size. Options: 'sm' | 'md' | 'lg' */
|
|
749
|
+
size: ChipSize;
|
|
750
|
+
/** Whether the chip is disabled */
|
|
751
|
+
disabled: boolean;
|
|
752
|
+
/** Whether the chip can be removed (shows remove button) */
|
|
753
|
+
removable: boolean;
|
|
754
|
+
/** Whether the chip is selected (for selectable chips) */
|
|
755
|
+
selected: boolean;
|
|
756
|
+
/** Additional CSS classes */
|
|
757
|
+
class: string;
|
|
758
|
+
removed: EventEmitter<MouseEvent>;
|
|
759
|
+
clicked: EventEmitter<MouseEvent>;
|
|
760
|
+
onRemove(event: MouseEvent): void;
|
|
761
|
+
onClick(event: MouseEvent): void;
|
|
762
|
+
get chipClasses(): string;
|
|
763
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChipComponent, never>;
|
|
764
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChipComponent, "sefin-chip", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "removed": "removed"; "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
type TagVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
|
|
768
|
+
type TagSize = 'sm' | 'md' | 'lg';
|
|
769
|
+
declare class TagComponent {
|
|
770
|
+
/** Tag variant style. Options: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' */
|
|
771
|
+
variant: TagVariant;
|
|
772
|
+
/** Tag size. Options: 'sm' | 'md' | 'lg' */
|
|
773
|
+
size: TagSize;
|
|
774
|
+
/** Whether the tag can be removed (shows remove button) */
|
|
775
|
+
removable: boolean;
|
|
776
|
+
/** Whether the tag is disabled */
|
|
777
|
+
disabled: boolean;
|
|
778
|
+
/** Additional CSS classes */
|
|
779
|
+
class: string;
|
|
780
|
+
/** Event emitted when the tag is removed */
|
|
781
|
+
removed: EventEmitter<MouseEvent>;
|
|
782
|
+
onRemove(event: MouseEvent): void;
|
|
783
|
+
get tagClasses(): string;
|
|
784
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
785
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TagComponent, "sefin-tag", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
type LinkVariant = 'default' | 'primary' | 'secondary' | 'underline';
|
|
789
|
+
type LinkSize = 'sm' | 'md' | 'lg';
|
|
790
|
+
declare class LinkComponent {
|
|
791
|
+
/** Link variant style. Options: 'default' | 'primary' | 'secondary' | 'underline' */
|
|
792
|
+
variant: LinkVariant;
|
|
793
|
+
/** Link size. Options: 'sm' | 'md' | 'lg' */
|
|
794
|
+
size: LinkSize;
|
|
795
|
+
/** Whether the link is disabled */
|
|
796
|
+
disabled: boolean;
|
|
797
|
+
/** Link URL */
|
|
798
|
+
href?: string;
|
|
799
|
+
/** Link target attribute (e.g., '_blank') */
|
|
800
|
+
target?: string;
|
|
801
|
+
/** Link rel attribute */
|
|
802
|
+
rel?: string;
|
|
803
|
+
/** Additional CSS classes */
|
|
804
|
+
class: string;
|
|
805
|
+
/** Whether to show underline */
|
|
806
|
+
underline: boolean;
|
|
807
|
+
get linkClasses(): string;
|
|
808
|
+
onClick(event: Event): void;
|
|
809
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LinkComponent, never>;
|
|
810
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LinkComponent, "sefin-link", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "href": { "alias": "href"; "required": false; }; "target": { "alias": "target"; "required": false; }; "rel": { "alias": "rel"; "required": false; }; "class": { "alias": "class"; "required": false; }; "underline": { "alias": "underline"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
declare class StackComponent {
|
|
814
|
+
direction: 'row' | 'column';
|
|
815
|
+
spacing: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
816
|
+
align: 'start' | 'center' | 'end' | 'stretch';
|
|
817
|
+
justify: 'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly';
|
|
818
|
+
wrap: boolean;
|
|
819
|
+
class: string;
|
|
820
|
+
get stackClasses(): string;
|
|
821
|
+
get spacingValue(): string;
|
|
822
|
+
get stackStyles(): {
|
|
823
|
+
[key: string]: string;
|
|
824
|
+
};
|
|
825
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StackComponent, never>;
|
|
826
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StackComponent, "sefin-stack", never, { "direction": { "alias": "direction"; "required": false; }; "spacing": { "alias": "spacing"; "required": false; }; "align": { "alias": "align"; "required": false; }; "justify": { "alias": "justify"; "required": false; }; "wrap": { "alias": "wrap"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
declare class CheckboxComponent implements ControlValueAccessor, AfterViewInit, OnChanges {
|
|
830
|
+
checkboxInput?: ElementRef<HTMLInputElement>;
|
|
496
831
|
size: InputSize;
|
|
497
832
|
disabled: boolean;
|
|
498
|
-
|
|
499
|
-
readonly: boolean;
|
|
833
|
+
indeterminate: boolean;
|
|
500
834
|
class: string;
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
835
|
+
label: string;
|
|
836
|
+
name: string;
|
|
837
|
+
value: boolean;
|
|
838
|
+
valueChange: EventEmitter<boolean>;
|
|
839
|
+
checkedChange: EventEmitter<boolean>;
|
|
505
840
|
private onChange;
|
|
506
841
|
private onTouched;
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
writeValue(value:
|
|
511
|
-
registerOnChange(fn: (value:
|
|
842
|
+
ngAfterViewInit(): void;
|
|
843
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
844
|
+
onCheckboxChange(event: Event): void;
|
|
845
|
+
writeValue(value: boolean): void;
|
|
846
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
512
847
|
registerOnTouched(fn: () => void): void;
|
|
513
848
|
setDisabledState(isDisabled: boolean): void;
|
|
514
|
-
get
|
|
515
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
516
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
849
|
+
get wrapperClasses(): string;
|
|
850
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
851
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "sefin-checkbox", never, { "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "class": { "alias": "class"; "required": false; }; "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
517
852
|
}
|
|
518
853
|
|
|
519
|
-
declare class
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
error: string;
|
|
523
|
-
required: boolean;
|
|
854
|
+
declare class RadioComponent implements ControlValueAccessor {
|
|
855
|
+
radioInput?: ElementRef<HTMLInputElement>;
|
|
856
|
+
size: InputSize;
|
|
524
857
|
disabled: boolean;
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
858
|
+
class: string;
|
|
859
|
+
label: string;
|
|
860
|
+
name: string;
|
|
861
|
+
value: string | number;
|
|
862
|
+
checked: boolean;
|
|
863
|
+
valueChange: EventEmitter<string | number>;
|
|
864
|
+
checkedChange: EventEmitter<boolean>;
|
|
865
|
+
private onChange;
|
|
866
|
+
private onTouched;
|
|
867
|
+
onRadioChange(event: Event): void;
|
|
868
|
+
writeValue(value: string | number): void;
|
|
869
|
+
registerOnChange(fn: (value: string | number) => void): void;
|
|
870
|
+
registerOnTouched(fn: () => void): void;
|
|
871
|
+
setDisabledState(isDisabled: boolean): void;
|
|
872
|
+
get wrapperClasses(): string;
|
|
873
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RadioComponent, never>;
|
|
874
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent, "sefin-radio", never, { "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "class": { "alias": "class"; "required": false; }; "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; }, { "valueChange": "valueChange"; "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
531
875
|
}
|
|
532
876
|
|
|
533
|
-
interface
|
|
877
|
+
interface SelectOption {
|
|
878
|
+
value: string | number;
|
|
534
879
|
label: string;
|
|
535
|
-
value: any;
|
|
536
880
|
disabled?: boolean;
|
|
537
881
|
}
|
|
538
|
-
declare class
|
|
539
|
-
|
|
882
|
+
declare class SelectComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {
|
|
883
|
+
containerRef?: ElementRef<HTMLDivElement>;
|
|
884
|
+
dropdownRef?: ElementRef<HTMLDivElement>;
|
|
885
|
+
buttonRef?: ElementRef<HTMLButtonElement>;
|
|
886
|
+
options: SelectOption[];
|
|
540
887
|
placeholder: string;
|
|
541
888
|
disabled: boolean;
|
|
542
|
-
size:
|
|
543
|
-
|
|
889
|
+
size: InputSize;
|
|
890
|
+
class: string;
|
|
891
|
+
value: string | number | null;
|
|
892
|
+
valueChange: EventEmitter<string | number>;
|
|
893
|
+
optionSelected: EventEmitter<SelectOption>;
|
|
544
894
|
isOpen: boolean;
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
895
|
+
selectedIndex: number;
|
|
896
|
+
private onChange;
|
|
897
|
+
private onTouched;
|
|
898
|
+
ngOnInit(): void;
|
|
899
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
900
|
+
ngOnDestroy(): void;
|
|
901
|
+
onClickOutside(event: MouseEvent): void;
|
|
902
|
+
onEscapeKey(event: Event): void;
|
|
903
|
+
toggleDropdown(): void;
|
|
904
|
+
openDropdown(): void;
|
|
905
|
+
closeDropdown(): void;
|
|
906
|
+
selectOption(option: SelectOption): void;
|
|
907
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
908
|
+
private updateSelectedIndex;
|
|
909
|
+
private scrollToSelected;
|
|
910
|
+
getSelectedLabel(): string;
|
|
911
|
+
writeValue(value: string | number | null): void;
|
|
912
|
+
registerOnChange(fn: (value: string | number | null) => void): void;
|
|
913
|
+
registerOnTouched(fn: () => void): void;
|
|
914
|
+
setDisabledState(isDisabled: boolean): void;
|
|
915
|
+
get buttonClasses(): string;
|
|
916
|
+
get containerClasses(): string;
|
|
917
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
918
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "sefin-select", never, { "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "class": { "alias": "class"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "optionSelected": "optionSelected"; }, never, never, true, never>;
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
declare class SwitchComponent implements ControlValueAccessor {
|
|
922
|
+
size: InputSize;
|
|
923
|
+
disabled: boolean;
|
|
924
|
+
class: string;
|
|
925
|
+
label: string;
|
|
926
|
+
name: string;
|
|
927
|
+
value: boolean;
|
|
928
|
+
valueChange: EventEmitter<boolean>;
|
|
929
|
+
checkedChange: EventEmitter<boolean>;
|
|
930
|
+
private onChange;
|
|
931
|
+
private onTouched;
|
|
932
|
+
onSwitchChange(event: Event): void;
|
|
933
|
+
writeValue(value: boolean): void;
|
|
934
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
935
|
+
registerOnTouched(fn: () => void): void;
|
|
936
|
+
setDisabledState(isDisabled: boolean): void;
|
|
937
|
+
get wrapperClasses(): string;
|
|
938
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SwitchComponent, never>;
|
|
939
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SwitchComponent, "sefin-switch", never, { "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "class": { "alias": "class"; "required": false; }; "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
declare class TypographyComponent {
|
|
943
|
+
variant: TypographyVariant;
|
|
944
|
+
size?: TypographySize;
|
|
945
|
+
weight?: TypographyWeight;
|
|
946
|
+
color: TypographyColor;
|
|
947
|
+
lineHeight?: TypographyLineHeight;
|
|
948
|
+
class: string;
|
|
949
|
+
text?: string;
|
|
950
|
+
get typographyClasses(): string;
|
|
951
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TypographyComponent, never>;
|
|
952
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TypographyComponent, "sefin-typography", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "weight": { "alias": "weight"; "required": false; }; "color": { "alias": "color"; "required": false; }; "lineHeight": { "alias": "lineHeight"; "required": false; }; "class": { "alias": "class"; "required": false; }; "text": { "alias": "text"; "required": false; }; }, {}, never, ["*", "*", "*", "*", "*", "*", "*", "*"], true, never>;
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
type DividerOrientation = 'horizontal' | 'vertical';
|
|
956
|
+
type DividerVariant = 'solid' | 'dashed' | 'dotted';
|
|
957
|
+
declare class DividerComponent {
|
|
958
|
+
/** Divider orientation. Options: 'horizontal' | 'vertical' */
|
|
959
|
+
orientation: DividerOrientation;
|
|
960
|
+
/** Divider variant style. Options: 'solid' | 'dashed' | 'dotted' */
|
|
961
|
+
variant: DividerVariant;
|
|
962
|
+
/** Spacing around the divider (margin) */
|
|
963
|
+
spacing: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
964
|
+
/** Thickness of the divider */
|
|
965
|
+
thickness: 'thin' | 'medium' | 'thick';
|
|
966
|
+
/** Additional CSS classes */
|
|
967
|
+
class: string;
|
|
968
|
+
get dividerClasses(): string;
|
|
969
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DividerComponent, never>;
|
|
970
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DividerComponent, "sefin-divider", never, { "orientation": { "alias": "orientation"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "spacing": { "alias": "spacing"; "required": false; }; "thickness": { "alias": "thickness"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
551
971
|
}
|
|
552
972
|
|
|
553
|
-
|
|
554
|
-
|
|
973
|
+
type SpinnerSize = 'sm' | 'md' | 'lg';
|
|
974
|
+
type SpinnerVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'default';
|
|
975
|
+
declare class SpinnerComponent {
|
|
976
|
+
/** Spinner size. Options: 'sm' | 'md' | 'lg' */
|
|
977
|
+
size: SpinnerSize;
|
|
978
|
+
/** Spinner variant color. Options: 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'default' */
|
|
979
|
+
variant: SpinnerVariant;
|
|
980
|
+
/** Whether the spinner should be displayed inline (smaller margins) */
|
|
981
|
+
inline: boolean;
|
|
982
|
+
/** Additional CSS classes */
|
|
555
983
|
class: string;
|
|
556
|
-
get
|
|
557
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
558
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
984
|
+
get spinnerClasses(): string;
|
|
985
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SpinnerComponent, never>;
|
|
986
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SpinnerComponent, "sefin-spinner", never, { "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
559
987
|
}
|
|
560
988
|
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
989
|
+
type ProgressBarVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'error';
|
|
990
|
+
type ProgressBarSize = 'sm' | 'md' | 'lg';
|
|
991
|
+
declare class ProgressBarComponent {
|
|
992
|
+
/** Progress value (0-100) */
|
|
993
|
+
value: number;
|
|
994
|
+
/** Progress bar variant color. Options: 'primary' | 'secondary' | 'success' | 'warning' | 'error' */
|
|
995
|
+
variant: ProgressBarVariant;
|
|
996
|
+
/** Progress bar size. Options: 'sm' | 'md' | 'lg' */
|
|
997
|
+
size: ProgressBarSize;
|
|
998
|
+
/** Whether to show the progress percentage label */
|
|
999
|
+
showLabel: boolean;
|
|
1000
|
+
/** Whether the progress bar is in indeterminate state (animated) */
|
|
1001
|
+
indeterminate: boolean;
|
|
1002
|
+
/** Additional CSS classes */
|
|
1003
|
+
class: string;
|
|
1004
|
+
get progressBarClasses(): string;
|
|
1005
|
+
get clampedValue(): number;
|
|
1006
|
+
get percentageText(): string;
|
|
1007
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
|
|
1008
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "sefin-progress-bar", never, { "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showLabel": { "alias": "showLabel"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
571
1009
|
}
|
|
572
1010
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
1011
|
+
type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
1012
|
+
type TooltipTrigger = 'hover' | 'click' | 'focus';
|
|
1013
|
+
declare class TooltipComponent implements AfterViewInit, OnDestroy {
|
|
1014
|
+
private cdr;
|
|
1015
|
+
/** Tooltip text content */
|
|
1016
|
+
text: string;
|
|
1017
|
+
/** Tooltip position. Options: 'top' | 'bottom' | 'left' | 'right' */
|
|
1018
|
+
position: TooltipPosition;
|
|
1019
|
+
/** Trigger event. Options: 'hover' | 'click' | 'focus' */
|
|
1020
|
+
trigger: TooltipTrigger;
|
|
1021
|
+
/** Delay before showing tooltip (in milliseconds) */
|
|
1022
|
+
delay: number;
|
|
1023
|
+
/** Whether the tooltip is disabled */
|
|
1024
|
+
disabled: boolean;
|
|
1025
|
+
/** Additional CSS classes */
|
|
1026
|
+
class: string;
|
|
1027
|
+
tooltipContent: ElementRef<HTMLDivElement>;
|
|
1028
|
+
tooltipTrigger: ElementRef<HTMLDivElement>;
|
|
1029
|
+
isVisible: boolean;
|
|
1030
|
+
private showTimeout?;
|
|
1031
|
+
private hideTimeout?;
|
|
1032
|
+
constructor(cdr: ChangeDetectorRef);
|
|
1033
|
+
ngAfterViewInit(): void;
|
|
1034
|
+
ngOnDestroy(): void;
|
|
1035
|
+
onMouseEnter(event: Event): void;
|
|
1036
|
+
onMouseLeave(event: Event): void;
|
|
1037
|
+
onClick(event: Event): void;
|
|
1038
|
+
onFocus(event: Event): void;
|
|
1039
|
+
onBlur(event: Event): void;
|
|
1040
|
+
show(): void;
|
|
1041
|
+
hide(): void;
|
|
1042
|
+
toggle(): void;
|
|
1043
|
+
private clearTimeouts;
|
|
1044
|
+
private handleOutsideClick;
|
|
1045
|
+
get tooltipClasses(): string;
|
|
1046
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, never>;
|
|
1047
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "sefin-tooltip", never, { "text": { "alias": "text"; "required": false; }; "position": { "alias": "position"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; "delay": { "alias": "delay"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
type AlertVariant = 'success' | 'warning' | 'error' | 'info' | 'default';
|
|
1051
|
+
type AlertSize = 'sm' | 'md' | 'lg';
|
|
1052
|
+
declare class AlertComponent {
|
|
1053
|
+
/** Alert variant style. Options: 'success' | 'warning' | 'error' | 'info' | 'default' */
|
|
1054
|
+
variant: AlertVariant;
|
|
1055
|
+
/** Alert size. Options: 'sm' | 'md' | 'lg' */
|
|
1056
|
+
size: AlertSize;
|
|
1057
|
+
/** Alert title (optional) */
|
|
1058
|
+
title?: string;
|
|
1059
|
+
/** Whether the alert can be dismissed (shows close button) */
|
|
1060
|
+
dismissible: boolean;
|
|
1061
|
+
/** Whether to show an icon */
|
|
1062
|
+
showIcon: boolean;
|
|
1063
|
+
/** Whether the alert is visible */
|
|
1064
|
+
visible: boolean;
|
|
1065
|
+
/** Additional CSS classes */
|
|
1066
|
+
class: string;
|
|
1067
|
+
/** Event emitted when the alert is dismissed */
|
|
1068
|
+
dismissed: EventEmitter<void>;
|
|
1069
|
+
onDismiss(): void;
|
|
1070
|
+
get alertClasses(): string;
|
|
1071
|
+
get iconClass(): string;
|
|
1072
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlertComponent, never>;
|
|
1073
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlertComponent, "sefin-alert", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "title": { "alias": "title"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "dismissed": "dismissed"; }, never, ["*"], true, never>;
|
|
576
1074
|
}
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
1075
|
+
|
|
1076
|
+
type ToastVariant = 'success' | 'warning' | 'error' | 'info' | 'default';
|
|
1077
|
+
type ToastPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
|
|
1078
|
+
declare class ToastComponent implements OnInit, OnDestroy {
|
|
1079
|
+
private cdr;
|
|
1080
|
+
/** Toast variant style. Options: 'success' | 'warning' | 'error' | 'info' | 'default' */
|
|
1081
|
+
variant: ToastVariant;
|
|
1082
|
+
/** Toast position. Options: 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center' */
|
|
1083
|
+
position: ToastPosition;
|
|
1084
|
+
/** Toast title (optional) */
|
|
1085
|
+
title?: string;
|
|
1086
|
+
/** Toast message */
|
|
1087
|
+
message: string;
|
|
1088
|
+
/** Duration in milliseconds before auto-dismiss (0 = no auto-dismiss) */
|
|
1089
|
+
duration: number;
|
|
1090
|
+
/** Whether to show an icon */
|
|
1091
|
+
showIcon: boolean;
|
|
1092
|
+
/** Whether the toast can be dismissed manually */
|
|
1093
|
+
dismissible: boolean;
|
|
1094
|
+
/** Additional CSS classes */
|
|
1095
|
+
class: string;
|
|
1096
|
+
/** Event emitted when the toast is dismissed */
|
|
1097
|
+
dismissed: EventEmitter<void>;
|
|
1098
|
+
isVisible: boolean;
|
|
1099
|
+
isExiting: boolean;
|
|
1100
|
+
private dismissTimeout?;
|
|
1101
|
+
constructor(cdr: ChangeDetectorRef);
|
|
1102
|
+
ngOnInit(): void;
|
|
1103
|
+
ngOnDestroy(): void;
|
|
1104
|
+
dismiss(): void;
|
|
1105
|
+
get toastClasses(): string;
|
|
1106
|
+
get iconClass(): string;
|
|
1107
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
1108
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "sefin-toast", never, { "variant": { "alias": "variant"; "required": false; }; "position": { "alias": "position"; "required": false; }; "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "duration": { "alias": "duration"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "dismissed": "dismissed"; }, never, ["*"], true, never>;
|
|
585
1109
|
}
|
|
586
1110
|
|
|
587
|
-
interface
|
|
1111
|
+
interface AutocompleteOption {
|
|
1112
|
+
value: string | number;
|
|
588
1113
|
label: string;
|
|
589
|
-
|
|
590
|
-
variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';
|
|
591
|
-
action: () => void;
|
|
1114
|
+
disabled?: boolean;
|
|
592
1115
|
}
|
|
593
|
-
declare class
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
1116
|
+
declare class AutocompleteComponent implements OnInit, OnDestroy, OnChanges {
|
|
1117
|
+
inputRef?: ElementRef<HTMLInputElement>;
|
|
1118
|
+
dropdownRef?: ElementRef<HTMLDivElement>;
|
|
1119
|
+
containerRef?: ElementRef<HTMLDivElement>;
|
|
1120
|
+
options: AutocompleteOption[];
|
|
1121
|
+
placeholder: string;
|
|
1122
|
+
disabled: boolean;
|
|
1123
|
+
size: InputSize;
|
|
1124
|
+
class: string;
|
|
1125
|
+
value: string | number | null;
|
|
1126
|
+
minChars: number;
|
|
1127
|
+
maxResults: number;
|
|
1128
|
+
valueChange: EventEmitter<string | number>;
|
|
1129
|
+
optionSelected: EventEmitter<AutocompleteOption>;
|
|
1130
|
+
inputChange: EventEmitter<string>;
|
|
1131
|
+
searchText: string;
|
|
1132
|
+
filteredOptions: AutocompleteOption[];
|
|
1133
|
+
isOpen: boolean;
|
|
1134
|
+
selectedIndex: number;
|
|
1135
|
+
ngOnInit(): void;
|
|
1136
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1137
|
+
ngOnDestroy(): void;
|
|
1138
|
+
onClickOutside(event: MouseEvent): void;
|
|
1139
|
+
onInputChange(value: string): void;
|
|
1140
|
+
filterOptions(): void;
|
|
1141
|
+
selectOption(option: AutocompleteOption): void;
|
|
1142
|
+
onInputFocus(): void;
|
|
1143
|
+
onInputBlur(): void;
|
|
1144
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
1145
|
+
private scrollToSelected;
|
|
1146
|
+
clearValue(): void;
|
|
1147
|
+
get inputClasses(): string;
|
|
1148
|
+
get containerClasses(): string;
|
|
1149
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
|
|
1150
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "sefin-autocomplete", never, { "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "class": { "alias": "class"; "required": false; }; "value": { "alias": "value"; "required": false; }; "minChars": { "alias": "minChars"; "required": false; }; "maxResults": { "alias": "maxResults"; "required": false; }; }, { "valueChange": "valueChange"; "optionSelected": "optionSelected"; "inputChange": "inputChange"; }, never, never, true, never>;
|
|
600
1151
|
}
|
|
601
1152
|
|
|
602
1153
|
declare const STYLES_PATH = "./styles/index.scss";
|
|
603
1154
|
|
|
604
|
-
export { BORDER_RADIUS_TOKENS, BRAND_THEME, ButtonComponent, COLOR_TOKENS,
|
|
605
|
-
export type { BaseComponent, BorderRadiusToken, ButtonSize, ButtonVariant, CardVariant, ColorShade, ColorTokenName,
|
|
1155
|
+
export { AlertComponent, AutocompleteComponent, AvatarComponent, BORDER_RADIUS_TOKENS, BRAND_THEME, BadgeComponent, ButtonComponent, COLOR_TOKENS, CheckboxComponent, ChipComponent, DARK_THEME, DESIGN_TOKENS, DividerComponent, FabButtonComponent, IconButtonComponent, IconComponent, LIGHT_THEME, LUCIDE_ICON_MAP, LinkComponent, ProgressBarComponent, RadioComponent, SHADOW_TOKENS, SPACING_TOKENS, STYLES_PATH, SelectComponent, SpinnerComponent, StackComponent, SwitchComponent, TYPOGRAPHY_TOKENS, TagComponent, ThemeLoader, ToastComponent, TooltipComponent, TypographyComponent, getLucideIcon, hasLucideIcon };
|
|
1156
|
+
export type { AlertSize, AlertVariant, AutocompleteOption, AvatarSize, BadgeSize, BadgeVariant, BaseComponent, BorderRadiusToken, ButtonSize, ButtonVariant, CardVariant, ChipSize, ChipVariant, ColorShade, ColorTokenName, CustomTheme, DividerOrientation, DividerVariant, FabSize, IconSize, InputSize, LinkSize, LinkVariant, ProgressBarSize, ProgressBarVariant, SelectOption, ShadowToken, SpacingToken, SpinnerSize, SpinnerVariant, TagSize, TagVariant, Theme, ThemeColors, ToastPosition, ToastVariant, TooltipPosition, TooltipTrigger, TypographyColor, TypographyLineHeight, TypographySize, TypographyToken, TypographyVariant, TypographyWeight };
|