@lesterarte/sefin-ui 0.0.20 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lesterarte/sefin-ui",
3
- "version": "0.0.20",
3
+ "version": "0.0.23",
4
4
  "description": "Sefin Design System - A comprehensive Angular UI library based on Atomic Design and design tokens",
5
5
  "keywords": [
6
6
  "angular",
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Injector, AfterViewInit, OnChanges, ElementRef, SimpleChanges, OnInit, OnDestroy, ChangeDetectorRef, NgZone } from '@angular/core';
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
+ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
4
5
 
5
6
  /**
6
7
  * Color design tokens as TypeScript constants
@@ -639,6 +640,8 @@ declare class ButtonComponent {
639
640
  size: ButtonSize;
640
641
  /** Whether the button is disabled */
641
642
  disabled: boolean;
643
+ /** Whether the button should take full width of the container */
644
+ fullWidth: boolean;
642
645
  /** Button type. Options: 'button' | 'submit' | 'reset' */
643
646
  type: 'button' | 'submit' | 'reset';
644
647
  /** Additional CSS classes */
@@ -647,7 +650,7 @@ declare class ButtonComponent {
647
650
  onClick(event: MouseEvent): void;
648
651
  get buttonClasses(): string;
649
652
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
650
- 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>;
653
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "sefin-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "type": { "alias": "type"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
651
654
  }
652
655
 
653
656
  type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
@@ -1249,6 +1252,81 @@ declare class ImageComponent implements OnInit, OnChanges {
1249
1252
  static ɵcmp: i0.ɵɵComponentDeclaration<ImageComponent, "sefin-image", never, { "src": { "alias": "src"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "fit": { "alias": "fit"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; }; "fallback": { "alias": "fallback"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "class": { "alias": "class"; "required": false; }; "sizes": { "alias": "sizes"; "required": false; }; "srcset": { "alias": "srcset"; "required": false; }; }, {}, never, never, true, never>;
1250
1253
  }
1251
1254
 
1255
+ type TabVariant = 'default' | 'primary' | 'secondary' | 'underline';
1256
+ type TabSize = 'sm' | 'md' | 'lg';
1257
+ declare class TabComponent {
1258
+ /** Tab variant style. Options: 'default' | 'primary' | 'secondary' | 'underline' */
1259
+ variant: TabVariant;
1260
+ /** Tab size. Options: 'sm' | 'md' | 'lg' */
1261
+ size: TabSize;
1262
+ /** Whether the tab is disabled */
1263
+ disabled: boolean;
1264
+ /** Whether the tab is active */
1265
+ active: boolean;
1266
+ /** Additional CSS classes */
1267
+ class: string;
1268
+ clicked: EventEmitter<MouseEvent>;
1269
+ onClick(event: MouseEvent): void;
1270
+ get tabClasses(): string;
1271
+ static ɵfac: i0.ɵɵFactoryDeclaration<TabComponent, never>;
1272
+ static ɵcmp: i0.ɵɵComponentDeclaration<TabComponent, "sefin-tab", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "active": { "alias": "active"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
1273
+ }
1274
+
1275
+ type RateSize = 'sm' | 'md' | 'lg';
1276
+ type RateIcon = 'star' | 'heart' | 'thumb';
1277
+ declare class RateComponent {
1278
+ /** Current rating value (0 to max) */
1279
+ set value(value: number);
1280
+ get value(): number;
1281
+ private _value;
1282
+ /** Maximum rating value */
1283
+ max: number;
1284
+ /** Whether the rating is disabled */
1285
+ disabled: boolean;
1286
+ /** Whether the rating is readonly */
1287
+ readonly: boolean;
1288
+ /** Whether to allow half stars */
1289
+ allowHalf: boolean;
1290
+ /** Icon type. Options: 'star' | 'heart' | 'thumb' */
1291
+ icon: RateIcon;
1292
+ /** Rate size. Options: 'sm' | 'md' | 'lg' */
1293
+ size: RateSize;
1294
+ /** Whether to show text with rating */
1295
+ showText: boolean;
1296
+ /** Additional CSS classes */
1297
+ class: string;
1298
+ /** Event emitted when rating changes */
1299
+ valueChange: EventEmitter<number>;
1300
+ /** Event emitted when rating is hovered */
1301
+ hoverChange: EventEmitter<number>;
1302
+ /** Internal hover value */
1303
+ private _hoverValue;
1304
+ readonly items: i0.Signal<number[]>;
1305
+ get rateClasses(): string;
1306
+ isInteractive(): boolean;
1307
+ getDisplayValue(): number;
1308
+ getIconState(index: number): 'full' | 'half' | 'empty';
1309
+ onItemClick(index: number): void;
1310
+ onItemHover(index: number | null): void;
1311
+ onHalfClick(index: number, isLeftHalf: boolean): void;
1312
+ static ɵfac: i0.ɵɵFactoryDeclaration<RateComponent, never>;
1313
+ static ɵcmp: i0.ɵɵComponentDeclaration<RateComponent, "sefin-rate", never, { "value": { "alias": "value"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "allowHalf": { "alias": "allowHalf"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showText": { "alias": "showText"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; "hoverChange": "hoverChange"; }, never, never, true, never>;
1314
+ }
1315
+
1316
+ type SpacerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl';
1317
+ type SpacerOrientation = 'vertical' | 'horizontal';
1318
+ declare class SpacerComponent {
1319
+ /** Size of the spacer. Options: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' */
1320
+ size: SpacerSize;
1321
+ /** Orientation of the spacer. Options: 'vertical' | 'horizontal' */
1322
+ orientation: SpacerOrientation;
1323
+ /** Additional CSS classes */
1324
+ class: string;
1325
+ get spacerClasses(): string;
1326
+ static ɵfac: i0.ɵɵFactoryDeclaration<SpacerComponent, never>;
1327
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpacerComponent, "sefin-spacer", never, { "size": { "alias": "size"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
1328
+ }
1329
+
1252
1330
  declare class AccordionItemComponent {
1253
1331
  /** Title text for the accordion header */
1254
1332
  title: string;
@@ -1311,6 +1389,79 @@ declare class AutocompleteComponent implements OnInit, OnDestroy, OnChanges {
1311
1389
  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>;
1312
1390
  }
1313
1391
 
1392
+ interface BreadcrumbItem {
1393
+ label: string;
1394
+ href?: string;
1395
+ icon?: string;
1396
+ }
1397
+ type BreadcrumbSeparator = 'slash' | 'chevron' | 'arrow';
1398
+ type BreadcrumbSize = 'sm' | 'md' | 'lg';
1399
+ declare class BreadcrumbsComponent {
1400
+ private sanitizer;
1401
+ /** Array of breadcrumb items */
1402
+ items: BreadcrumbItem[];
1403
+ /** Separator style. Options: 'slash' | 'chevron' | 'arrow' */
1404
+ separator: BreadcrumbSeparator;
1405
+ /** Breadcrumb size. Options: 'sm' | 'md' | 'lg' */
1406
+ size: BreadcrumbSize;
1407
+ /** Additional CSS classes */
1408
+ class: string;
1409
+ constructor(sanitizer: DomSanitizer);
1410
+ get breadcrumbsClasses(): string;
1411
+ isLastItem(index: number): boolean;
1412
+ getSeparatorIcon(): string;
1413
+ sanitizeHtml(html: string | undefined): SafeHtml | string;
1414
+ getSeparatorIconSafe(): SafeHtml;
1415
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbsComponent, never>;
1416
+ static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbsComponent, "sefin-breadcrumbs", never, { "items": { "alias": "items"; "required": false; }; "separator": { "alias": "separator"; "required": false; }; "size": { "alias": "size"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
1417
+ }
1418
+
1419
+ interface ButtonGroupOption {
1420
+ label: string;
1421
+ value: string | number;
1422
+ disabled?: boolean;
1423
+ icon?: string;
1424
+ }
1425
+ type ButtonGroupVariant = 'default' | 'segmented';
1426
+ type ButtonGroupSize = 'sm' | 'md' | 'lg';
1427
+ declare class ButtonGroupComponent {
1428
+ private sanitizer;
1429
+ constructor(sanitizer: DomSanitizer);
1430
+ /** Array of button options */
1431
+ options: ButtonGroupOption[];
1432
+ /** Selected value (for segmented variant) */
1433
+ value: string | number | null;
1434
+ /** Whether multiple selection is allowed (for default variant) */
1435
+ multiple: boolean;
1436
+ /** Selected values (for multiple selection) */
1437
+ selectedValues: (string | number)[];
1438
+ /** Button variant style. Options: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' */
1439
+ variant: ButtonVariant;
1440
+ /** Button size. Options: 'sm' | 'md' | 'lg' */
1441
+ size: ButtonSize;
1442
+ /** Button group variant. Options: 'default' | 'segmented' */
1443
+ groupVariant: ButtonGroupVariant;
1444
+ /** Whether the button group is disabled */
1445
+ disabled: boolean;
1446
+ /** Whether buttons should take full width of the container */
1447
+ fullWidth: boolean;
1448
+ /** Additional CSS classes */
1449
+ class: string;
1450
+ /** Event emitted when value changes (for segmented variant) */
1451
+ valueChange: EventEmitter<string | number>;
1452
+ /** Event emitted when selected values change (for multiple selection) */
1453
+ selectedValuesChange: EventEmitter<(string | number)[]>;
1454
+ /** Event emitted when a button is clicked */
1455
+ buttonClick: EventEmitter<ButtonGroupOption>;
1456
+ get buttonGroupClasses(): string;
1457
+ isSelected(option: ButtonGroupOption): boolean;
1458
+ onButtonClick(option: ButtonGroupOption): void;
1459
+ getButtonClasses(option: ButtonGroupOption): string;
1460
+ sanitizeHtml(html: string | undefined): SafeHtml | string;
1461
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonGroupComponent, never>;
1462
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonGroupComponent, "sefin-button-group", never, { "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "selectedValues": { "alias": "selectedValues"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "groupVariant": { "alias": "groupVariant"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; "selectedValuesChange": "selectedValuesChange"; "buttonClick": "buttonClick"; }, never, never, true, never>;
1463
+ }
1464
+
1314
1465
  declare class CardComponent {
1315
1466
  /** Card variant style. Options: 'default' | 'elevated' | 'outlined' */
1316
1467
  variant: CardVariant;
@@ -1412,6 +1563,55 @@ declare class DatepickerComponent implements OnInit, OnChanges, AfterViewInit, O
1412
1563
  static ɵcmp: i0.ɵɵComponentDeclaration<DatepickerComponent, "sefin-datepicker", never, { "value": { "alias": "value"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "format": { "alias": "format"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "showTodayButton": { "alias": "showTodayButton"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; }, { "valueChange": "valueChange"; "dateSelected": "dateSelected"; }, never, never, true, never>;
1413
1564
  }
1414
1565
 
1566
+ type PaginationSize = 'sm' | 'md' | 'lg';
1567
+ type PaginationVariant = 'default' | 'compact';
1568
+ declare class PaginationComponent {
1569
+ /** Current page (1-based) */
1570
+ set currentPage(value: number);
1571
+ get currentPage(): number;
1572
+ private _currentPage;
1573
+ /** Total number of pages */
1574
+ set totalPages(value: number);
1575
+ get totalPages(): number;
1576
+ private _totalPages;
1577
+ /** Total number of items (alternative to totalPages) */
1578
+ set totalItems(value: number | undefined);
1579
+ get totalItems(): number | undefined;
1580
+ private _totalItems;
1581
+ /** Items per page (used when totalItems is provided) */
1582
+ itemsPerPage: number;
1583
+ /** Number of page buttons to show on each side of current page */
1584
+ siblingCount: number;
1585
+ /** Show first and last page buttons */
1586
+ showFirstLast: boolean;
1587
+ /** Show previous and next buttons */
1588
+ showPrevNext: boolean;
1589
+ /** Pagination size. Options: 'sm' | 'md' | 'lg' */
1590
+ size: PaginationSize;
1591
+ /** Pagination variant. Options: 'default' | 'compact' */
1592
+ variant: PaginationVariant;
1593
+ /** Additional CSS classes */
1594
+ class: string;
1595
+ /** Event emitted when page changes */
1596
+ pageChange: EventEmitter<number>;
1597
+ /** Computed total pages (from totalItems or direct input) */
1598
+ readonly computedTotalPages: i0.Signal<number>;
1599
+ /** Computed page numbers to display */
1600
+ readonly pageNumbers: i0.Signal<(string | number)[]>;
1601
+ get paginationClasses(): string;
1602
+ isDisabled(direction: 'prev' | 'next'): boolean;
1603
+ goToPage(page: number | string): void;
1604
+ goToPrevious(): void;
1605
+ goToNext(): void;
1606
+ goToFirst(): void;
1607
+ goToLast(): void;
1608
+ isEllipsis(item: number | string): boolean;
1609
+ isCurrentPage(page: number | string): boolean;
1610
+ getAriaCurrent(page: number | string): string | null;
1611
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginationComponent, never>;
1612
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaginationComponent, "sefin-pagination", never, { "currentPage": { "alias": "currentPage"; "required": false; }; "totalPages": { "alias": "totalPages"; "required": false; }; "totalItems": { "alias": "totalItems"; "required": false; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; }; "siblingCount": { "alias": "siblingCount"; "required": false; }; "showFirstLast": { "alias": "showFirstLast"; "required": false; }; "showPrevNext": { "alias": "showPrevNext"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
1613
+ }
1614
+
1415
1615
  type TextareaVariant = 'outlined' | 'filled' | 'standard';
1416
1616
  type TextareaSize = 'sm' | 'md' | 'lg';
1417
1617
  declare class TextareaComponent implements ControlValueAccessor, Validator, OnInit, AfterViewInit, OnDestroy {
@@ -1502,5 +1702,5 @@ declare class TextareaComponent implements ControlValueAccessor, Validator, OnIn
1502
1702
 
1503
1703
  declare const STYLES_PATH = "./styles/index.scss";
1504
1704
 
1505
- export { AccordionItemComponent, AlertComponent, AutocompleteComponent, AvatarComponent, BORDER_RADIUS_TOKENS, BRAND_THEME, BadgeComponent, ButtonComponent, COLOR_TOKENS, CardComponent, CheckboxComponent, ChipComponent, ContainerComponent, DARK_THEME, DESIGN_TOKENS, DatepickerComponent, DividerComponent, FabButtonComponent, IconButtonComponent, IconComponent, ImageComponent, LIGHT_THEME, LinkComponent, ProgressBarComponent, RadioComponent, SHADOW_TOKENS, SPACING_TOKENS, STYLES_PATH, SelectComponent, SpinnerComponent, StackComponent, SwitchComponent, TYPOGRAPHY_TOKENS, TagComponent, TextFieldComponent, TextareaComponent, ThemeLoader, ToastComponent, TooltipComponent, TypographyComponent };
1506
- export type { AlertSize, AlertVariant, AutocompleteOption, AvatarSize, BadgeSize, BadgeVariant, BaseComponent, BorderRadiusToken, ButtonSize, ButtonVariant, CardVariant, ChipSize, ChipVariant, ColorShade, ColorTokenName, ContainerSize, ContainerVariant, CustomTheme, DateFormat, DatePickerMode, DateRange, DividerOrientation, DividerVariant, FabSize, IconSize, ImageFit, ImageLoading, ImageRounded, InputSize, LinkSize, LinkVariant, ProgressBarSize, ProgressBarVariant, SelectOption, ShadowToken, SpacingToken, SpinnerSize, SpinnerVariant, TagSize, TagVariant, TextFieldSize, TextFieldType, TextFieldVariant, TextareaSize, TextareaVariant, Theme, ThemeColors, ToastPosition, ToastVariant, TooltipPosition, TooltipTrigger, TypographyColor, TypographyLineHeight, TypographySize, TypographyToken, TypographyVariant, TypographyWeight };
1705
+ export { AccordionItemComponent, AlertComponent, AutocompleteComponent, AvatarComponent, BORDER_RADIUS_TOKENS, BRAND_THEME, BadgeComponent, BreadcrumbsComponent, ButtonComponent, ButtonGroupComponent, COLOR_TOKENS, CardComponent, CheckboxComponent, ChipComponent, ContainerComponent, DARK_THEME, DESIGN_TOKENS, DatepickerComponent, DividerComponent, FabButtonComponent, IconButtonComponent, IconComponent, ImageComponent, LIGHT_THEME, LinkComponent, PaginationComponent, ProgressBarComponent, RadioComponent, RateComponent, SHADOW_TOKENS, SPACING_TOKENS, STYLES_PATH, SelectComponent, SpacerComponent, SpinnerComponent, StackComponent, SwitchComponent, TYPOGRAPHY_TOKENS, TabComponent, TagComponent, TextFieldComponent, TextareaComponent, ThemeLoader, ToastComponent, TooltipComponent, TypographyComponent };
1706
+ export type { AlertSize, AlertVariant, AutocompleteOption, AvatarSize, BadgeSize, BadgeVariant, BaseComponent, BorderRadiusToken, BreadcrumbItem, BreadcrumbSeparator, BreadcrumbSize, ButtonGroupOption, ButtonGroupSize, ButtonGroupVariant, ButtonSize, ButtonVariant, CardVariant, ChipSize, ChipVariant, ColorShade, ColorTokenName, ContainerSize, ContainerVariant, CustomTheme, DateFormat, DatePickerMode, DateRange, DividerOrientation, DividerVariant, FabSize, IconSize, ImageFit, ImageLoading, ImageRounded, InputSize, LinkSize, LinkVariant, PaginationSize, PaginationVariant, ProgressBarSize, ProgressBarVariant, RateIcon, RateSize, SelectOption, ShadowToken, SpacerOrientation, SpacerSize, SpacingToken, SpinnerSize, SpinnerVariant, TabSize, TabVariant, TagSize, TagVariant, TextFieldSize, TextFieldType, TextFieldVariant, TextareaSize, TextareaVariant, Theme, ThemeColors, ToastPosition, ToastVariant, TooltipPosition, TooltipTrigger, TypographyColor, TypographyLineHeight, TypographySize, TypographyToken, TypographyVariant, TypographyWeight };