@devjuliovilla/jv-ui 1.10.0 → 1.11.1

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": "@devjuliovilla/jv-ui",
3
- "version": "1.10.0",
3
+ "version": "1.11.1",
4
4
  "description": "Accessibility-first Angular component library — components, forms, data grids, dialogs, layout, services, and i18n infrastructure built with signals and standalone APIs.",
5
5
  "author": "@devjuliovilla",
6
6
  "license": "MIT",
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { TemplateRef, InjectionToken, AfterViewInit, OnDestroy } from '@angular/core';
2
+ import { TemplateRef, ElementRef, InjectionToken, AfterViewInit, OnDestroy } from '@angular/core';
3
3
  import * as _angular_forms from '@angular/forms';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
5
  import * as _devjuliovilla_jv_ui from '@devjuliovilla/jv-ui';
@@ -225,6 +225,7 @@ interface JvUiFormats {
225
225
  percent: Intl.NumberFormatOptions;
226
226
  }
227
227
  type JvToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
228
+ type JvTabTransition = 'none' | 'fade' | 'slide';
228
229
  interface JvUiConfig {
229
230
  theme: JvTheme;
230
231
  density: JvDensity;
@@ -234,6 +235,7 @@ interface JvUiConfig {
234
235
  formatLocale: string;
235
236
  formats: JvUiFormats;
236
237
  toastPosition: JvToastPosition;
238
+ tabsTransition: JvTabTransition;
237
239
  }
238
240
  type JvUiConfigInput = Omit<Partial<JvUiConfig>, 'formats'> & {
239
241
  formats?: Partial<JvUiFormats>;
@@ -448,7 +450,7 @@ declare class JvDatePickerComponent implements ControlValueAccessor {
448
450
  protected readonly visibleMonth: _angular_core.WritableSignal<Date>;
449
451
  protected readonly focusedDate: _angular_core.WritableSignal<Date>;
450
452
  protected readonly dialogId: string;
451
- protected value: Date | null;
453
+ protected readonly value: _angular_core.WritableSignal<Date | null>;
452
454
  protected disabled: boolean;
453
455
  protected readonly resolvedDialogTitle: _angular_core.Signal<string>;
454
456
  protected readonly currentValue: _angular_core.Signal<Date | null | undefined>;
@@ -675,6 +677,86 @@ declare class JvTextareaComponent implements ControlValueAccessor {
675
677
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvTextareaComponent, "jv-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "cols": { "alias": "cols"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
676
678
  }
677
679
 
680
+ interface JvGalleryImage {
681
+ src: string;
682
+ alt: string;
683
+ thumbnail?: string;
684
+ }
685
+ interface JvGalleryAction {
686
+ id: string;
687
+ label: string;
688
+ icon?: string;
689
+ tone?: JvIntent;
690
+ }
691
+
692
+ declare class JvImageGalleryComponent {
693
+ private readonly translation;
694
+ readonly images: _angular_core.InputSignal<JvGalleryImage[]>;
695
+ readonly stripHeightVh: _angular_core.InputSignalWithTransform<number, unknown>;
696
+ readonly actions: _angular_core.InputSignal<JvGalleryAction[]>;
697
+ readonly imageClick: _angular_core.OutputEmitterRef<JvGalleryImage>;
698
+ readonly actionClick: _angular_core.OutputEmitterRef<{
699
+ actionId: string;
700
+ image: JvGalleryImage;
701
+ }>;
702
+ protected readonly strip: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
703
+ protected readonly dialogOpen: _angular_core.WritableSignal<boolean>;
704
+ protected readonly currentIndex: _angular_core.WritableSignal<number>;
705
+ protected readonly slideDirection: _angular_core.WritableSignal<"left" | "right" | null>;
706
+ protected readonly hasMultiple: _angular_core.Signal<boolean>;
707
+ protected readonly stripHeightStyle: _angular_core.Signal<string>;
708
+ protected readonly currentImage: _angular_core.Signal<JvGalleryImage>;
709
+ protected readonly dialogTitle: _angular_core.Signal<string>;
710
+ protected readonly translatedLabels: _angular_core.Signal<{
711
+ close: string;
712
+ prev: string;
713
+ next: string;
714
+ }>;
715
+ protected handleKeydown(event: KeyboardEvent): void;
716
+ protected onWheel(event: WheelEvent): void;
717
+ protected openDialog(index: number): void;
718
+ protected closeDialog(): void;
719
+ protected previous(): void;
720
+ protected next(): void;
721
+ protected onAction(action: JvGalleryAction): void;
722
+ private clampStripHeight;
723
+ private showImage;
724
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvImageGalleryComponent, never>;
725
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvImageGalleryComponent, "jv-image-gallery", never, { "images": { "alias": "images"; "required": false; "isSignal": true; }; "stripHeightVh": { "alias": "stripHeightVh"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; }, { "imageClick": "imageClick"; "actionClick": "actionClick"; }, never, never, true, never>;
726
+ }
727
+
728
+ interface JvSliderImage {
729
+ src: string;
730
+ alt: string;
731
+ description?: string;
732
+ thumbnail?: string;
733
+ }
734
+
735
+ declare class JvImageSliderComponent {
736
+ private readonly thumbnailStripRef;
737
+ private readonly translation;
738
+ readonly images: _angular_core.InputSignal<JvSliderImage[]>;
739
+ readonly showThumbnails: _angular_core.InputSignal<boolean>;
740
+ readonly showDescription: _angular_core.InputSignal<boolean>;
741
+ readonly imageChange: _angular_core.OutputEmitterRef<number>;
742
+ protected readonly currentIndex: _angular_core.WritableSignal<number>;
743
+ protected readonly hasMultiple: _angular_core.Signal<boolean>;
744
+ protected readonly currentImage: _angular_core.Signal<JvSliderImage>;
745
+ protected readonly translatedAriaLabels: _angular_core.Signal<{
746
+ prev: string;
747
+ next: string;
748
+ thumbnailList: string;
749
+ }>;
750
+ constructor();
751
+ protected handleKeydown(event: KeyboardEvent): void;
752
+ protected previous(): void;
753
+ protected next(): void;
754
+ protected goTo(index: number): void;
755
+ private scrollThumbnailIntoView;
756
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvImageSliderComponent, never>;
757
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvImageSliderComponent, "jv-image-slider", never, { "images": { "alias": "images"; "required": false; "isSignal": true; }; "showThumbnails": { "alias": "showThumbnails"; "required": false; "isSignal": true; }; "showDescription": { "alias": "showDescription"; "required": false; "isSignal": true; }; }, { "imageChange": "imageChange"; }, never, never, true, never>;
758
+ }
759
+
678
760
  declare class JvIconComponent {
679
761
  private readonly warnedNames;
680
762
  readonly name: _angular_core.InputSignal<string>;
@@ -963,12 +1045,18 @@ declare class JvTabsComponent implements AfterViewInit {
963
1045
  private readonly instanceId;
964
1046
  private readonly panelTemplates;
965
1047
  private readonly tabListRef;
1048
+ private readonly config;
966
1049
  readonly tabs: _angular_core.InputSignal<JvTabItem[]>;
967
1050
  readonly activeTabId: _angular_core.InputSignal<string | null>;
968
1051
  readonly keepMounted: _angular_core.InputSignal<boolean>;
1052
+ readonly transition: _angular_core.InputSignal<JvTabTransition | null>;
969
1053
  readonly activeTabChange: _angular_core.OutputEmitterRef<string>;
970
1054
  protected readonly showScrollLeft: _angular_core.WritableSignal<boolean>;
971
1055
  protected readonly showScrollRight: _angular_core.WritableSignal<boolean>;
1056
+ protected readonly slideDirection: _angular_core.WritableSignal<"left" | "right">;
1057
+ protected readonly outgoingPanelId: _angular_core.WritableSignal<string | null>;
1058
+ private readonly previousActiveTabId;
1059
+ protected readonly effectiveTransition: _angular_core.Signal<JvTabTransition>;
972
1060
  protected readonly resolvedActiveTabId: _angular_core.Signal<string>;
973
1061
  constructor();
974
1062
  ngAfterViewInit(): void;
@@ -976,6 +1064,7 @@ declare class JvTabsComponent implements AfterViewInit {
976
1064
  protected isActive(tabId: string): boolean;
977
1065
  protected getTabIndex(tabId: string, disabled: boolean): 0 | -1;
978
1066
  protected activateTab(tabId: string): void;
1067
+ protected handleTransitionEnd(event: TransitionEvent): void;
979
1068
  protected handleKeydown(event: KeyboardEvent, currentTabId: string): void;
980
1069
  protected scrollTabs(direction: -1 | 1): void;
981
1070
  protected updateScrollControls(): void;
@@ -987,7 +1076,7 @@ declare class JvTabsComponent implements AfterViewInit {
987
1076
  private focusTabButton;
988
1077
  private getTabButton;
989
1078
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTabsComponent, never>;
990
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvTabsComponent, "jv-tabs", never, { "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "activeTabId": { "alias": "activeTabId"; "required": false; "isSignal": true; }; "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; }, { "activeTabChange": "activeTabChange"; }, ["panelTemplates"], never, true, never>;
1079
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvTabsComponent, "jv-tabs", never, { "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "activeTabId": { "alias": "activeTabId"; "required": false; "isSignal": true; }; "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; "transition": { "alias": "transition"; "required": false; "isSignal": true; }; }, { "activeTabChange": "activeTabChange"; }, ["panelTemplates"], never, true, never>;
991
1080
  }
992
1081
 
993
1082
  type JvTooltipPosition = 'top' | 'right' | 'bottom' | 'left';
@@ -1257,6 +1346,7 @@ declare class JvGridComponent<T = any> {
1257
1346
  protected onVirtualScroll(target: HTMLElement): void;
1258
1347
  protected exportCsv(): void;
1259
1348
  protected exportExcel(): void;
1349
+ private buildExportMatrix;
1260
1350
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvGridComponent<any>, never>;
1261
1351
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvGridComponent<any>, "jv-grid", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; }, { "rowClick": "rowClick"; "rowDoubleClick": "rowDoubleClick"; "actionClick": "actionClick"; "selectionChange": "selectionChange"; "pageChange": "pageChange"; "searchChange": "searchChange"; "sortChange": "sortChange"; "columnFilter": "columnFilter"; "columnResize": "columnResize"; "columnReorder": "columnReorder"; "rowEdit": "rowEdit"; }, never, never, true, never>;
1262
1352
  }
@@ -1286,5 +1376,5 @@ declare class JvPaginationComponent {
1286
1376
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvPaginationComponent, "jv-pagination", never, { "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "pageIndex": { "alias": "pageIndex"; "required": false; "isSignal": true; }; "maxVisiblePages": { "alias": "maxVisiblePages"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
1287
1377
  }
1288
1378
 
1289
- export { EN, ES, JV_DEFAULT_LOCALE, JV_FALLBACK_ICON_NAME, JV_GRID_DEFAULT_OPTIONS, JV_LOCALE_DICTIONARIES, JV_LUCIDE_ICON_REGISTRY, JV_UI_CONFIG, JV_UI_CONFIG_DEFAULTS, JV_UI_DEFAULT_CONFIG, JvAccordionComponent, JvAccordionPanelDirective, JvAlertComponent, JvAnnouncementService, JvBadgeComponent, JvBreadcrumbComponent, JvButtonComponent, JvButtonGroupComponent, JvCardComponent, JvChangePasswordPageComponent, JvCheckboxComponent, JvCodeComponent, JvCollapsiblePanelComponent, JvConfirmDialogComponent, JvDashboardShellComponent, JvDatePickerComponent, JvDialogComponent, JvDialogService, JvDividerComponent, JvFileInputComponent, JvForgotPasswordPageComponent, JvFormContainerComponent, JvFormatService, JvGridComponent, JvIconButtonComponent, JvIconComponent, JvInputComponent, JvListComponent, JvListItemComponent, JvLoaderComponent, JvLoaderService, JvLoginPageComponent, JvModalSelectorComponent, JvPageComponent, JvPaginationComponent, JvRadioComponent, JvSectionComponent, JvSelectComponent, JvSidebarComponent, JvSwitchComponent, JvTabPanelDirective, JvTabsComponent, JvTextareaComponent, JvThemeService, JvToastComponent, JvToastService, JvTooltipDirective, JvTopbarComponent, JvTranslationService, provideJvUi };
1290
- export type { JvAccordionItem, JvActiveConfirmDialog, JvBreadcrumbItem, JvChangePasswordSubmitEvent, JvCodeFont, JvCollapsiblePanelVariant, JvConfirmOptions, JvDensity, JvFileInputRejection, JvForgotPasswordSubmitEvent, JvFormatKind, JvFormatOverrides, JvGridAction, JvGridColumn, JvGridColumnFilter, JvGridColumnFormatOptions, JvGridColumnReorderEvent, JvGridColumnResizeEvent, JvGridColumnType, JvGridColumnWidth, JvGridFilterOperator, JvGridOptions, JvGridPageEvent, JvGridRowEditEvent, JvGridRowId, JvGridSortDirection, JvGridSortState, JvGridTrackBy, JvIconDefinition, JvIconElement, JvIntent, JvListItemModel, JvLoaderState, JvLocale, JvLoginSubmitEvent, JvMessagesLocale, JvModalSelectorOption, JvNavItem, JvPaginationEvent, JvSelectOption, JvTabItem, JvTheme, JvThemeOption, JvToastItem, JvToastPosition, JvToastViewport, JvTone, JvTooltipPosition, JvTopbarAction, JvUiConfig, JvUiConfigInput, JvUiFormats };
1379
+ export { EN, ES, JV_DEFAULT_LOCALE, JV_FALLBACK_ICON_NAME, JV_GRID_DEFAULT_OPTIONS, JV_LOCALE_DICTIONARIES, JV_LUCIDE_ICON_REGISTRY, JV_UI_CONFIG, JV_UI_CONFIG_DEFAULTS, JV_UI_DEFAULT_CONFIG, JvAccordionComponent, JvAccordionPanelDirective, JvAlertComponent, JvAnnouncementService, JvBadgeComponent, JvBreadcrumbComponent, JvButtonComponent, JvButtonGroupComponent, JvCardComponent, JvChangePasswordPageComponent, JvCheckboxComponent, JvCodeComponent, JvCollapsiblePanelComponent, JvConfirmDialogComponent, JvDashboardShellComponent, JvDatePickerComponent, JvDialogComponent, JvDialogService, JvDividerComponent, JvFileInputComponent, JvForgotPasswordPageComponent, JvFormContainerComponent, JvFormatService, JvGridComponent, JvIconButtonComponent, JvIconComponent, JvImageGalleryComponent, JvImageSliderComponent, JvInputComponent, JvListComponent, JvListItemComponent, JvLoaderComponent, JvLoaderService, JvLoginPageComponent, JvModalSelectorComponent, JvPageComponent, JvPaginationComponent, JvRadioComponent, JvSectionComponent, JvSelectComponent, JvSidebarComponent, JvSwitchComponent, JvTabPanelDirective, JvTabsComponent, JvTextareaComponent, JvThemeService, JvToastComponent, JvToastService, JvTooltipDirective, JvTopbarComponent, JvTranslationService, provideJvUi };
1380
+ export type { JvAccordionItem, JvActiveConfirmDialog, JvBreadcrumbItem, JvChangePasswordSubmitEvent, JvCodeFont, JvCollapsiblePanelVariant, JvConfirmOptions, JvDensity, JvFileInputRejection, JvForgotPasswordSubmitEvent, JvFormatKind, JvFormatOverrides, JvGalleryAction, JvGalleryImage, JvGridAction, JvGridColumn, JvGridColumnFilter, JvGridColumnFormatOptions, JvGridColumnReorderEvent, JvGridColumnResizeEvent, JvGridColumnType, JvGridColumnWidth, JvGridFilterOperator, JvGridOptions, JvGridPageEvent, JvGridRowEditEvent, JvGridRowId, JvGridSortDirection, JvGridSortState, JvGridTrackBy, JvIconDefinition, JvIconElement, JvIntent, JvListItemModel, JvLoaderState, JvLocale, JvLoginSubmitEvent, JvMessagesLocale, JvModalSelectorOption, JvNavItem, JvPaginationEvent, JvSelectOption, JvSliderImage, JvTabItem, JvTabTransition, JvTheme, JvThemeOption, JvToastItem, JvToastPosition, JvToastViewport, JvTone, JvTooltipPosition, JvTopbarAction, JvUiConfig, JvUiConfigInput, JvUiFormats };