@lesterarte/sefin-ui 0.0.20 → 0.0.21

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.21",
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
@@ -1249,6 +1250,67 @@ declare class ImageComponent implements OnInit, OnChanges {
1249
1250
  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
1251
  }
1251
1252
 
1253
+ type TabVariant = 'default' | 'primary' | 'secondary' | 'underline';
1254
+ type TabSize = 'sm' | 'md' | 'lg';
1255
+ declare class TabComponent {
1256
+ /** Tab variant style. Options: 'default' | 'primary' | 'secondary' | 'underline' */
1257
+ variant: TabVariant;
1258
+ /** Tab size. Options: 'sm' | 'md' | 'lg' */
1259
+ size: TabSize;
1260
+ /** Whether the tab is disabled */
1261
+ disabled: boolean;
1262
+ /** Whether the tab is active */
1263
+ active: boolean;
1264
+ /** Additional CSS classes */
1265
+ class: string;
1266
+ clicked: EventEmitter<MouseEvent>;
1267
+ onClick(event: MouseEvent): void;
1268
+ get tabClasses(): string;
1269
+ static ɵfac: i0.ɵɵFactoryDeclaration<TabComponent, never>;
1270
+ 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>;
1271
+ }
1272
+
1273
+ type RateSize = 'sm' | 'md' | 'lg';
1274
+ type RateIcon = 'star' | 'heart' | 'thumb';
1275
+ declare class RateComponent {
1276
+ /** Current rating value (0 to max) */
1277
+ set value(value: number);
1278
+ get value(): number;
1279
+ private _value;
1280
+ /** Maximum rating value */
1281
+ max: number;
1282
+ /** Whether the rating is disabled */
1283
+ disabled: boolean;
1284
+ /** Whether the rating is readonly */
1285
+ readonly: boolean;
1286
+ /** Whether to allow half stars */
1287
+ allowHalf: boolean;
1288
+ /** Icon type. Options: 'star' | 'heart' | 'thumb' */
1289
+ icon: RateIcon;
1290
+ /** Rate size. Options: 'sm' | 'md' | 'lg' */
1291
+ size: RateSize;
1292
+ /** Whether to show text with rating */
1293
+ showText: boolean;
1294
+ /** Additional CSS classes */
1295
+ class: string;
1296
+ /** Event emitted when rating changes */
1297
+ valueChange: EventEmitter<number>;
1298
+ /** Event emitted when rating is hovered */
1299
+ hoverChange: EventEmitter<number>;
1300
+ /** Internal hover value */
1301
+ private _hoverValue;
1302
+ readonly items: i0.Signal<number[]>;
1303
+ get rateClasses(): string;
1304
+ isInteractive(): boolean;
1305
+ getDisplayValue(): number;
1306
+ getIconState(index: number): 'full' | 'half' | 'empty';
1307
+ onItemClick(index: number): void;
1308
+ onItemHover(index: number | null): void;
1309
+ onHalfClick(index: number, isLeftHalf: boolean): void;
1310
+ static ɵfac: i0.ɵɵFactoryDeclaration<RateComponent, never>;
1311
+ 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>;
1312
+ }
1313
+
1252
1314
  declare class AccordionItemComponent {
1253
1315
  /** Title text for the accordion header */
1254
1316
  title: string;
@@ -1311,6 +1373,77 @@ declare class AutocompleteComponent implements OnInit, OnDestroy, OnChanges {
1311
1373
  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
1374
  }
1313
1375
 
1376
+ interface BreadcrumbItem {
1377
+ label: string;
1378
+ href?: string;
1379
+ icon?: string;
1380
+ }
1381
+ type BreadcrumbSeparator = 'slash' | 'chevron' | 'arrow';
1382
+ type BreadcrumbSize = 'sm' | 'md' | 'lg';
1383
+ declare class BreadcrumbsComponent {
1384
+ private sanitizer;
1385
+ /** Array of breadcrumb items */
1386
+ items: BreadcrumbItem[];
1387
+ /** Separator style. Options: 'slash' | 'chevron' | 'arrow' */
1388
+ separator: BreadcrumbSeparator;
1389
+ /** Breadcrumb size. Options: 'sm' | 'md' | 'lg' */
1390
+ size: BreadcrumbSize;
1391
+ /** Additional CSS classes */
1392
+ class: string;
1393
+ constructor(sanitizer: DomSanitizer);
1394
+ get breadcrumbsClasses(): string;
1395
+ isLastItem(index: number): boolean;
1396
+ getSeparatorIcon(): string;
1397
+ sanitizeHtml(html: string | undefined): SafeHtml | string;
1398
+ getSeparatorIconSafe(): SafeHtml;
1399
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbsComponent, never>;
1400
+ 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>;
1401
+ }
1402
+
1403
+ interface ButtonGroupOption {
1404
+ label: string;
1405
+ value: string | number;
1406
+ disabled?: boolean;
1407
+ icon?: string;
1408
+ }
1409
+ type ButtonGroupVariant = 'default' | 'segmented';
1410
+ type ButtonGroupSize = 'sm' | 'md' | 'lg';
1411
+ declare class ButtonGroupComponent {
1412
+ private sanitizer;
1413
+ constructor(sanitizer: DomSanitizer);
1414
+ /** Array of button options */
1415
+ options: ButtonGroupOption[];
1416
+ /** Selected value (for segmented variant) */
1417
+ value: string | number | null;
1418
+ /** Whether multiple selection is allowed (for default variant) */
1419
+ multiple: boolean;
1420
+ /** Selected values (for multiple selection) */
1421
+ selectedValues: (string | number)[];
1422
+ /** Button variant style. Options: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' */
1423
+ variant: ButtonVariant;
1424
+ /** Button size. Options: 'sm' | 'md' | 'lg' */
1425
+ size: ButtonSize;
1426
+ /** Button group variant. Options: 'default' | 'segmented' */
1427
+ groupVariant: ButtonGroupVariant;
1428
+ /** Whether the button group is disabled */
1429
+ disabled: boolean;
1430
+ /** Additional CSS classes */
1431
+ class: string;
1432
+ /** Event emitted when value changes (for segmented variant) */
1433
+ valueChange: EventEmitter<string | number>;
1434
+ /** Event emitted when selected values change (for multiple selection) */
1435
+ selectedValuesChange: EventEmitter<(string | number)[]>;
1436
+ /** Event emitted when a button is clicked */
1437
+ buttonClick: EventEmitter<ButtonGroupOption>;
1438
+ get buttonGroupClasses(): string;
1439
+ isSelected(option: ButtonGroupOption): boolean;
1440
+ onButtonClick(option: ButtonGroupOption): void;
1441
+ getButtonVariant(option: ButtonGroupOption): ButtonVariant;
1442
+ sanitizeHtml(html: string | undefined): SafeHtml | string;
1443
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonGroupComponent, never>;
1444
+ 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; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; "selectedValuesChange": "selectedValuesChange"; "buttonClick": "buttonClick"; }, never, never, true, never>;
1445
+ }
1446
+
1314
1447
  declare class CardComponent {
1315
1448
  /** Card variant style. Options: 'default' | 'elevated' | 'outlined' */
1316
1449
  variant: CardVariant;
@@ -1412,6 +1545,55 @@ declare class DatepickerComponent implements OnInit, OnChanges, AfterViewInit, O
1412
1545
  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
1546
  }
1414
1547
 
1548
+ type PaginationSize = 'sm' | 'md' | 'lg';
1549
+ type PaginationVariant = 'default' | 'compact';
1550
+ declare class PaginationComponent {
1551
+ /** Current page (1-based) */
1552
+ set currentPage(value: number);
1553
+ get currentPage(): number;
1554
+ private _currentPage;
1555
+ /** Total number of pages */
1556
+ set totalPages(value: number);
1557
+ get totalPages(): number;
1558
+ private _totalPages;
1559
+ /** Total number of items (alternative to totalPages) */
1560
+ set totalItems(value: number | undefined);
1561
+ get totalItems(): number | undefined;
1562
+ private _totalItems;
1563
+ /** Items per page (used when totalItems is provided) */
1564
+ itemsPerPage: number;
1565
+ /** Number of page buttons to show on each side of current page */
1566
+ siblingCount: number;
1567
+ /** Show first and last page buttons */
1568
+ showFirstLast: boolean;
1569
+ /** Show previous and next buttons */
1570
+ showPrevNext: boolean;
1571
+ /** Pagination size. Options: 'sm' | 'md' | 'lg' */
1572
+ size: PaginationSize;
1573
+ /** Pagination variant. Options: 'default' | 'compact' */
1574
+ variant: PaginationVariant;
1575
+ /** Additional CSS classes */
1576
+ class: string;
1577
+ /** Event emitted when page changes */
1578
+ pageChange: EventEmitter<number>;
1579
+ /** Computed total pages (from totalItems or direct input) */
1580
+ readonly computedTotalPages: i0.Signal<number>;
1581
+ /** Computed page numbers to display */
1582
+ readonly pageNumbers: i0.Signal<(string | number)[]>;
1583
+ get paginationClasses(): string;
1584
+ isDisabled(direction: 'prev' | 'next'): boolean;
1585
+ goToPage(page: number | string): void;
1586
+ goToPrevious(): void;
1587
+ goToNext(): void;
1588
+ goToFirst(): void;
1589
+ goToLast(): void;
1590
+ isEllipsis(item: number | string): boolean;
1591
+ isCurrentPage(page: number | string): boolean;
1592
+ getAriaCurrent(page: number | string): string | null;
1593
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginationComponent, never>;
1594
+ 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>;
1595
+ }
1596
+
1415
1597
  type TextareaVariant = 'outlined' | 'filled' | 'standard';
1416
1598
  type TextareaSize = 'sm' | 'md' | 'lg';
1417
1599
  declare class TextareaComponent implements ControlValueAccessor, Validator, OnInit, AfterViewInit, OnDestroy {
@@ -1502,5 +1684,5 @@ declare class TextareaComponent implements ControlValueAccessor, Validator, OnIn
1502
1684
 
1503
1685
  declare const STYLES_PATH = "./styles/index.scss";
1504
1686
 
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 };
1687
+ 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, SpinnerComponent, StackComponent, SwitchComponent, TYPOGRAPHY_TOKENS, TabComponent, TagComponent, TextFieldComponent, TextareaComponent, ThemeLoader, ToastComponent, TooltipComponent, TypographyComponent };
1688
+ 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, SpacingToken, SpinnerSize, SpinnerVariant, TabSize, TabVariant, TagSize, TagVariant, TextFieldSize, TextFieldType, TextFieldVariant, TextareaSize, TextareaVariant, Theme, ThemeColors, ToastPosition, ToastVariant, TooltipPosition, TooltipTrigger, TypographyColor, TypographyLineHeight, TypographySize, TypographyToken, TypographyVariant, TypographyWeight };