@devjuliovilla/jv-ui 1.7.1 → 1.9.0

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.
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken } from '@angular/core';
2
+ import { TemplateRef, 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';
@@ -131,6 +131,70 @@ declare class JvSectionComponent {
131
131
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvSectionComponent, "jv-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
132
132
  }
133
133
 
134
+ declare class JvAccordionPanelDirective {
135
+ readonly templateRef: TemplateRef<unknown>;
136
+ readonly id: _angular_core.InputSignal<string>;
137
+ constructor(templateRef: TemplateRef<unknown>);
138
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvAccordionPanelDirective, never>;
139
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<JvAccordionPanelDirective, "ng-template[jvAccordionPanel]", never, { "id": { "alias": "jvAccordionPanel"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
140
+ }
141
+
142
+ type JvCollapsiblePanelVariant = 'bordered' | 'filled' | 'minimal';
143
+ declare class JvCollapsiblePanelComponent {
144
+ private readonly announcementService;
145
+ private readonly translation;
146
+ private readonly internalOpen;
147
+ private readonly bodyVisible;
148
+ readonly title: _angular_core.InputSignal<string>;
149
+ readonly subtitle: _angular_core.InputSignal<string>;
150
+ readonly icon: _angular_core.InputSignal<string | null>;
151
+ readonly open: _angular_core.InputSignal<boolean | undefined>;
152
+ readonly defaultOpen: _angular_core.InputSignal<boolean>;
153
+ readonly keepMounted: _angular_core.InputSignal<boolean>;
154
+ readonly disabled: _angular_core.InputSignal<boolean>;
155
+ readonly showIndicator: _angular_core.InputSignal<boolean>;
156
+ readonly variant: _angular_core.InputSignal<JvCollapsiblePanelVariant>;
157
+ readonly openChange: _angular_core.OutputEmitterRef<boolean>;
158
+ protected readonly triggerId: string;
159
+ protected readonly contentId: string;
160
+ protected readonly resolvedOpen: _angular_core.Signal<boolean>;
161
+ protected readonly panelClass: _angular_core.Signal<string>;
162
+ protected readonly shouldRenderBody: _angular_core.Signal<boolean>;
163
+ protected readonly triggerAriaLabel: _angular_core.Signal<string>;
164
+ constructor();
165
+ protected toggle(): void;
166
+ protected handleBodyTransitionEnd(event: TransitionEvent): void;
167
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvCollapsiblePanelComponent, never>;
168
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvCollapsiblePanelComponent, "jv-collapsible-panel", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showIndicator": { "alias": "showIndicator"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
169
+ }
170
+
171
+ interface JvAccordionItem {
172
+ id: string;
173
+ title: string;
174
+ subtitle?: string;
175
+ icon?: string;
176
+ disabled?: boolean;
177
+ }
178
+ declare class JvAccordionComponent {
179
+ private readonly panelTemplates;
180
+ private readonly internalOpenItemIds;
181
+ readonly items: _angular_core.InputSignal<JvAccordionItem[]>;
182
+ readonly openItemIds: _angular_core.InputSignal<string[] | undefined>;
183
+ readonly defaultOpenItemIds: _angular_core.InputSignal<string[]>;
184
+ readonly multiple: _angular_core.InputSignal<boolean>;
185
+ readonly keepMounted: _angular_core.InputSignal<boolean>;
186
+ readonly showIndicator: _angular_core.InputSignal<boolean>;
187
+ readonly variant: _angular_core.InputSignal<JvCollapsiblePanelVariant>;
188
+ readonly openItemIdsChange: _angular_core.OutputEmitterRef<string[]>;
189
+ protected readonly resolvedOpenItemIds: _angular_core.Signal<string[]>;
190
+ constructor();
191
+ protected isItemOpen(itemId: string): boolean;
192
+ protected handleItemOpenChange(itemId: string, nextOpen: boolean): void;
193
+ protected panelTemplate(itemId: string): _angular_core.TemplateRef<unknown> | null;
194
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvAccordionComponent, never>;
195
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvAccordionComponent, "jv-accordion", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "openItemIds": { "alias": "openItemIds"; "required": false; "isSignal": true; }; "defaultOpenItemIds": { "alias": "defaultOpenItemIds"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; "showIndicator": { "alias": "showIndicator"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "openItemIdsChange": "openItemIdsChange"; }, ["panelTemplates"], never, true, never>;
196
+ }
197
+
134
198
  declare class JvAlertComponent {
135
199
  readonly tone: _angular_core.InputSignal<JvTone>;
136
200
  readonly title: _angular_core.InputSignal<string>;
@@ -168,7 +232,7 @@ interface JvToastItem {
168
232
  duration: number;
169
233
  }
170
234
  interface JvConfirmOptions {
171
- title: string;
235
+ title?: string;
172
236
  message: string;
173
237
  confirmLabel?: string;
174
238
  cancelLabel?: string;
@@ -255,6 +319,23 @@ declare class JvCheckboxComponent implements ControlValueAccessor {
255
319
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvCheckboxComponent, "jv-checkbox", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
256
320
  }
257
321
 
322
+ type JvCodeFont = 'jetbrains-mono' | 'fira-code' | 'cascadia' | 'consolas' | 'system';
323
+ declare class JvCodeComponent {
324
+ readonly code: _angular_core.InputSignal<string>;
325
+ readonly language: _angular_core.InputSignal<string>;
326
+ readonly title: _angular_core.InputSignal<string>;
327
+ readonly font: _angular_core.InputSignal<JvCodeFont>;
328
+ readonly editable: _angular_core.InputSignal<boolean>;
329
+ readonly width: _angular_core.InputSignal<string>;
330
+ readonly height: _angular_core.InputSignal<string>;
331
+ readonly codeChange: _angular_core.OutputEmitterRef<string>;
332
+ protected readonly fontFamily: _angular_core.Signal<"'Fira Code', 'JetBrains Mono', 'Cascadia Code', 'Consolas', monospace" | "'Cascadia Code', 'JetBrains Mono', 'Fira Code', 'Consolas', monospace" | "'Consolas', 'Cascadia Code', 'JetBrains Mono', 'Fira Code', monospace" | "ui-monospace, 'SFMono-Regular', 'Cascadia Code', 'JetBrains Mono', 'Fira Code', 'Consolas', monospace" | "'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Consolas', monospace">;
333
+ protected languageLabel(): string;
334
+ protected handleInput(event: Event): void;
335
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvCodeComponent, never>;
336
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvCodeComponent, "jv-code", never, { "code": { "alias": "code"; "required": true; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "font": { "alias": "font"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "codeChange": "codeChange"; }, never, never, true, never>;
337
+ }
338
+
258
339
  declare class JvFormContainerComponent {
259
340
  readonly label: _angular_core.InputSignal<string>;
260
341
  readonly hint: _angular_core.InputSignal<string>;
@@ -275,6 +356,13 @@ interface JvSelectOption<T = string> {
275
356
  value: T;
276
357
  disabled?: boolean;
277
358
  }
359
+ interface JvModalSelectorOption<T = string> {
360
+ label: string;
361
+ value: T;
362
+ description?: string;
363
+ keywords?: string[];
364
+ disabled?: boolean;
365
+ }
278
366
 
279
367
  declare class JvInputComponent implements ControlValueAccessor {
280
368
  readonly type: _angular_core.InputSignal<"number" | "search" | "text" | "email" | "password">;
@@ -297,6 +385,147 @@ declare class JvInputComponent implements ControlValueAccessor {
297
385
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvInputComponent, "jv-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "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; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
298
386
  }
299
387
 
388
+ declare const ES: Record<string, string>;
389
+
390
+ declare const EN: Record<string, string>;
391
+
392
+ type JvLocale = 'es' | 'en';
393
+ declare const JV_LOCALE_DICTIONARIES: Record<JvLocale, Record<string, string>>;
394
+ declare const JV_DEFAULT_LOCALE: JvLocale;
395
+
396
+ declare class JvTranslationService {
397
+ private readonly config;
398
+ readonly locale: _angular_core.WritableSignal<JvLocale>;
399
+ initialize(): void;
400
+ setLocale(locale: JvLocale): void;
401
+ translate(key: string, params?: Record<string, string | number>): string;
402
+ private resolveLocale;
403
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTranslationService, never>;
404
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvTranslationService>;
405
+ }
406
+
407
+ interface JvDatePickerCell {
408
+ date: Date;
409
+ currentMonth: boolean;
410
+ isToday: boolean;
411
+ }
412
+ declare class JvDatePickerComponent implements ControlValueAccessor {
413
+ readonly translation: JvTranslationService;
414
+ private readonly announcementService;
415
+ private readonly instanceId;
416
+ private readonly calendarRootRef;
417
+ private readonly triggerButtonRef;
418
+ readonly label: _angular_core.InputSignal<string>;
419
+ readonly placeholder: _angular_core.InputSignal<string>;
420
+ readonly dialogTitle: _angular_core.InputSignal<string>;
421
+ readonly required: _angular_core.InputSignal<boolean>;
422
+ readonly invalid: _angular_core.InputSignal<boolean>;
423
+ readonly hint: _angular_core.InputSignal<string>;
424
+ readonly error: _angular_core.InputSignal<string>;
425
+ readonly describedBy: _angular_core.InputSignal<string>;
426
+ readonly inputId: _angular_core.InputSignal<string>;
427
+ readonly valueInput: _angular_core.InputSignal<Date | null | undefined>;
428
+ readonly selectionChange: _angular_core.OutputEmitterRef<Date | null>;
429
+ protected readonly dialogOpen: _angular_core.WritableSignal<boolean>;
430
+ protected readonly visibleMonth: _angular_core.WritableSignal<Date>;
431
+ protected readonly focusedDate: _angular_core.WritableSignal<Date>;
432
+ protected readonly dialogId: string;
433
+ protected value: Date | null;
434
+ protected disabled: boolean;
435
+ protected readonly resolvedDialogTitle: _angular_core.Signal<string>;
436
+ protected readonly currentValue: _angular_core.Signal<Date | null | undefined>;
437
+ protected readonly triggerAriaLabel: _angular_core.Signal<string>;
438
+ protected readonly displayValue: _angular_core.Signal<string>;
439
+ protected readonly monthOptions: _angular_core.Signal<JvSelectOption<string>[]>;
440
+ protected readonly yearOptions: _angular_core.Signal<JvSelectOption<string>[]>;
441
+ protected readonly weekdayLabels: _angular_core.Signal<string[]>;
442
+ protected readonly calendarCells: _angular_core.Signal<JvDatePickerCell[]>;
443
+ private onChange;
444
+ private onTouched;
445
+ writeValue(value: Date | null): void;
446
+ registerOnChange(fn: (value: Date | null) => void): void;
447
+ registerOnTouched(fn: () => void): void;
448
+ setDisabledState(isDisabled: boolean): void;
449
+ protected openDialog(): void;
450
+ protected closeDialog(): void;
451
+ protected clearSelection(): void;
452
+ protected shiftMonth(offset: number): void;
453
+ protected handleMonthChange(value: string): void;
454
+ protected handleYearChange(value: string): void;
455
+ protected selectDate(date: Date): void;
456
+ protected handleDayKeydown(event: KeyboardEvent, date: Date): void;
457
+ protected isSelected(date: Date): boolean;
458
+ protected isFocusedDate(date: Date): boolean;
459
+ protected isoDate(date: Date): string;
460
+ protected handleBlur(): void;
461
+ private updateValue;
462
+ private focusDateWithinVisibleMonth;
463
+ private focusDateButton;
464
+ private firstDayOfWeek;
465
+ private displayDateForAnnouncement;
466
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvDatePickerComponent, never>;
467
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvDatePickerComponent, "jv-date-picker", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "dialogTitle": { "alias": "dialogTitle"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "valueInput": { "alias": "value"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
468
+ }
469
+
470
+ declare class JvModalSelectorComponent implements ControlValueAccessor {
471
+ private readonly announcementService;
472
+ protected readonly translation: JvTranslationService;
473
+ private readonly instanceId;
474
+ private readonly triggerButtonRef;
475
+ private readonly optionElements;
476
+ readonly options: _angular_core.InputSignal<JvModalSelectorOption<string>[]>;
477
+ readonly label: _angular_core.InputSignal<string>;
478
+ readonly placeholder: _angular_core.InputSignal<string>;
479
+ readonly dialogTitle: _angular_core.InputSignal<string>;
480
+ readonly dialogSubtitle: _angular_core.InputSignal<string>;
481
+ readonly searchPlaceholder: _angular_core.InputSignal<string>;
482
+ readonly emptyMessage: _angular_core.InputSignal<string>;
483
+ readonly clearLabel: _angular_core.InputSignal<string>;
484
+ readonly closeLabel: _angular_core.InputSignal<string>;
485
+ readonly showSearch: _angular_core.InputSignal<boolean>;
486
+ readonly required: _angular_core.InputSignal<boolean>;
487
+ readonly invalid: _angular_core.InputSignal<boolean>;
488
+ readonly hint: _angular_core.InputSignal<string>;
489
+ readonly error: _angular_core.InputSignal<string>;
490
+ readonly describedBy: _angular_core.InputSignal<string>;
491
+ readonly inputId: _angular_core.InputSignal<string>;
492
+ readonly valueInput: _angular_core.InputSignal<string | null | undefined>;
493
+ readonly selectionChange: _angular_core.OutputEmitterRef<string | null>;
494
+ protected readonly dialogOpen: _angular_core.WritableSignal<boolean>;
495
+ protected readonly searchQuery: _angular_core.WritableSignal<string>;
496
+ protected readonly dialogId: string;
497
+ protected readonly searchInputId: string;
498
+ protected value: string | null;
499
+ protected disabled: boolean;
500
+ protected readonly resolvedDialogTitle: _angular_core.Signal<string>;
501
+ protected readonly currentValue: _angular_core.Signal<string | null | undefined>;
502
+ protected readonly selectedOption: _angular_core.Signal<JvModalSelectorOption<string> | null>;
503
+ protected readonly resolvedPlaceholder: _angular_core.Signal<string>;
504
+ protected readonly triggerAriaLabel: _angular_core.Signal<string>;
505
+ protected readonly resultsLabel: _angular_core.Signal<string>;
506
+ protected readonly filteredOptions: _angular_core.Signal<JvModalSelectorOption<string>[]>;
507
+ private onChange;
508
+ private onTouched;
509
+ writeValue(value: string | null): void;
510
+ registerOnChange(fn: (value: string | null) => void): void;
511
+ registerOnTouched(fn: () => void): void;
512
+ setDisabledState(isDisabled: boolean): void;
513
+ protected openDialog(): void;
514
+ protected closeDialog(): void;
515
+ protected clearSelection(): void;
516
+ protected selectOption(option: JvModalSelectorOption<string>): void;
517
+ protected isSelected(option: JvModalSelectorOption<string>): boolean;
518
+ protected getOptionTabIndex(option: JvModalSelectorOption<string>, index: number): 0 | -1;
519
+ protected optionId(index: number): string;
520
+ protected handleOptionKeydown(event: KeyboardEvent, index: number, option: JvModalSelectorOption<string>): void;
521
+ protected handleBlur(): void;
522
+ private updateValue;
523
+ private focusRelativeOption;
524
+ private focusOptionByIndex;
525
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvModalSelectorComponent, never>;
526
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvModalSelectorComponent, "jv-modal-selector", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "dialogTitle": { "alias": "dialogTitle"; "required": false; "isSignal": true; }; "dialogSubtitle": { "alias": "dialogSubtitle"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "valueInput": { "alias": "value"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
527
+ }
528
+
300
529
  declare class JvRadioComponent implements ControlValueAccessor {
301
530
  readonly name: _angular_core.InputSignal<string>;
302
531
  readonly label: _angular_core.InputSignal<string>;
@@ -413,6 +642,7 @@ declare function provideJvUi(config?: Partial<JvUiConfig>): _angular_core.Enviro
413
642
 
414
643
  declare class JvDialogService {
415
644
  private readonly announcementService;
645
+ private readonly translation;
416
646
  private readonly document;
417
647
  private readonly activeDialogSignal;
418
648
  private nextId;
@@ -427,6 +657,7 @@ declare class JvDialogService {
427
657
 
428
658
  declare class JvConfirmDialogComponent {
429
659
  protected readonly dialogService: JvDialogService;
660
+ protected readonly translation: JvTranslationService;
430
661
  protected readonly activeDialog: _angular_core.Signal<_devjuliovilla_jv_ui.JvActiveConfirmDialog | null>;
431
662
  protected readonly isOpen: _angular_core.Signal<boolean>;
432
663
  protected readonly dialogTitle: _angular_core.Signal<string>;
@@ -596,32 +827,15 @@ declare class JvAnnouncementService {
596
827
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvAnnouncementService>;
597
828
  }
598
829
 
599
- declare const ES: Record<string, string>;
600
-
601
- declare const EN: Record<string, string>;
602
-
603
- type JvLocale = 'es' | 'en';
604
- declare const JV_LOCALE_DICTIONARIES: Record<JvLocale, Record<string, string>>;
605
- declare const JV_DEFAULT_LOCALE: JvLocale;
606
-
607
- declare class JvTranslationService {
608
- private readonly config;
609
- readonly locale: _angular_core.WritableSignal<JvLocale>;
610
- initialize(): void;
611
- setLocale(locale: JvLocale): void;
612
- translate(key: string, params?: Record<string, string | number>): string;
613
- private resolveLocale;
614
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTranslationService, never>;
615
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvTranslationService>;
616
- }
617
-
618
830
  declare class JvListComponent {
619
831
  readonly role: _angular_core.InputSignal<"list" | "navigation">;
832
+ readonly ariaRole: _angular_core.InputSignal<string | null>;
620
833
  readonly variant: _angular_core.InputSignal<"bordered" | null>;
621
834
  readonly ariaLabel: _angular_core.InputSignal<string>;
622
835
  protected readonly variantClass: _angular_core.Signal<string>;
836
+ protected readonly resolvedRole: _angular_core.Signal<string | null>;
623
837
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvListComponent, never>;
624
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvListComponent, "jv-list", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
838
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvListComponent, "jv-list", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "ariaRole": { "alias": "ariaRole"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
625
839
  }
626
840
 
627
841
  declare class JvListItemComponent {
@@ -645,6 +859,77 @@ interface JvListItemModel<T = any> {
645
859
  leadingIcon?: string;
646
860
  }
647
861
 
862
+ declare class JvTabPanelDirective {
863
+ readonly templateRef: TemplateRef<unknown>;
864
+ readonly id: _angular_core.InputSignal<string>;
865
+ constructor(templateRef: TemplateRef<unknown>);
866
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTabPanelDirective, never>;
867
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<JvTabPanelDirective, "ng-template[jvTabPanel]", never, { "id": { "alias": "jvTabPanel"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
868
+ }
869
+
870
+ interface JvTabItem {
871
+ id: string;
872
+ label: string;
873
+ icon?: string;
874
+ disabled?: boolean;
875
+ }
876
+ declare class JvTabsComponent implements AfterViewInit {
877
+ private readonly instanceId;
878
+ private readonly panelTemplates;
879
+ private readonly tabListRef;
880
+ readonly tabs: _angular_core.InputSignal<JvTabItem[]>;
881
+ readonly activeTabId: _angular_core.InputSignal<string | null>;
882
+ readonly keepMounted: _angular_core.InputSignal<boolean>;
883
+ readonly activeTabChange: _angular_core.OutputEmitterRef<string>;
884
+ protected readonly showScrollLeft: _angular_core.WritableSignal<boolean>;
885
+ protected readonly showScrollRight: _angular_core.WritableSignal<boolean>;
886
+ protected readonly resolvedActiveTabId: _angular_core.Signal<string>;
887
+ constructor();
888
+ ngAfterViewInit(): void;
889
+ protected handleWindowResize(): void;
890
+ protected isActive(tabId: string): boolean;
891
+ protected getTabIndex(tabId: string, disabled: boolean): 0 | -1;
892
+ protected activateTab(tabId: string): void;
893
+ protected handleKeydown(event: KeyboardEvent, currentTabId: string): void;
894
+ protected scrollTabs(direction: -1 | 1): void;
895
+ protected updateScrollControls(): void;
896
+ protected panelTemplate(tabId: string): _angular_core.TemplateRef<unknown> | null;
897
+ protected tabButtonId(tabId: string): string;
898
+ protected panelId(tabId: string): string;
899
+ private activateAndFocus;
900
+ private ensureActiveTabVisible;
901
+ private focusTabButton;
902
+ private getTabButton;
903
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTabsComponent, never>;
904
+ 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>;
905
+ }
906
+
907
+ type JvTooltipPosition = 'top' | 'right' | 'bottom' | 'left';
908
+ declare class JvTooltipDirective implements OnDestroy {
909
+ private readonly document;
910
+ private readonly renderer;
911
+ private readonly hostRef;
912
+ private tooltipElement;
913
+ private showTimeout;
914
+ private hideTimeout;
915
+ private readonly tooltipId;
916
+ readonly text: _angular_core.InputSignal<string>;
917
+ readonly position: _angular_core.InputSignal<JvTooltipPosition>;
918
+ protected show(): void;
919
+ protected hide(): void;
920
+ protected handleDocumentKeydown(event: KeyboardEvent): void;
921
+ protected handleViewportChange(): void;
922
+ ngOnDestroy(): void;
923
+ private renderTooltip;
924
+ private positionTooltip;
925
+ private destroyTooltip;
926
+ private anchorElement;
927
+ private clearShowTimeout;
928
+ private clearHideTimeout;
929
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTooltipDirective, never>;
930
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<JvTooltipDirective, "[jvTooltip]", never, { "text": { "alias": "jvTooltip"; "required": true; "isSignal": true; }; "position": { "alias": "jvTooltipPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
931
+ }
932
+
648
933
  type JvGridRowId = string | number;
649
934
  type JvGridTrackBy<T> = keyof T | ((row: T, index: number) => JvGridRowId);
650
935
  type JvGridSortDirection = 'asc' | 'desc' | null;
@@ -906,5 +1191,5 @@ declare class JvPaginationComponent {
906
1191
  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>;
907
1192
  }
908
1193
 
909
- 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, JvAlertComponent, JvAnnouncementService, JvBadgeComponent, JvBreadcrumbComponent, JvButtonComponent, JvButtonGroupComponent, JvCardComponent, JvChangePasswordPageComponent, JvCheckboxComponent, JvConfirmDialogComponent, JvDashboardShellComponent, JvDialogComponent, JvDialogService, JvDividerComponent, JvForgotPasswordPageComponent, JvFormContainerComponent, JvGridComponent, JvIconButtonComponent, JvIconComponent, JvInputComponent, JvListComponent, JvListItemComponent, JvLoaderComponent, JvLoaderService, JvLoginPageComponent, JvPageComponent, JvPaginationComponent, JvRadioComponent, JvSectionComponent, JvSelectComponent, JvSidebarComponent, JvSwitchComponent, JvTextareaComponent, JvThemeService, JvToastComponent, JvToastService, JvTopbarComponent, JvTranslationService, provideJvUi };
910
- export type { JvActiveConfirmDialog, JvBreadcrumbItem, JvChangePasswordSubmitEvent, JvConfirmOptions, JvDensity, JvForgotPasswordSubmitEvent, JvGridAction, JvGridColumn, JvGridColumnFilter, JvGridColumnReorderEvent, JvGridColumnResizeEvent, JvGridColumnWidth, JvGridFilterOperator, JvGridOptions, JvGridPageEvent, JvGridRowEditEvent, JvGridRowId, JvGridSortDirection, JvGridSortState, JvGridTrackBy, JvIconDefinition, JvIconElement, JvIntent, JvListItemModel, JvLoaderState, JvLocale, JvLoginSubmitEvent, JvNavItem, JvPaginationEvent, JvSelectOption, JvTheme, JvThemeOption, JvToastItem, JvToastPosition, JvToastViewport, JvTone, JvTopbarAction, JvUiConfig };
1194
+ 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, JvForgotPasswordPageComponent, JvFormContainerComponent, 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 };
1195
+ export type { JvAccordionItem, JvActiveConfirmDialog, JvBreadcrumbItem, JvChangePasswordSubmitEvent, JvCodeFont, JvCollapsiblePanelVariant, JvConfirmOptions, JvDensity, JvForgotPasswordSubmitEvent, JvGridAction, JvGridColumn, JvGridColumnFilter, JvGridColumnReorderEvent, JvGridColumnResizeEvent, JvGridColumnWidth, JvGridFilterOperator, JvGridOptions, JvGridPageEvent, JvGridRowEditEvent, JvGridRowId, JvGridSortDirection, JvGridSortState, JvGridTrackBy, JvIconDefinition, JvIconElement, JvIntent, JvListItemModel, JvLoaderState, JvLocale, JvLoginSubmitEvent, JvModalSelectorOption, JvNavItem, JvPaginationEvent, JvSelectOption, JvTabItem, JvTheme, JvThemeOption, JvToastItem, JvToastPosition, JvToastViewport, JvTone, JvTooltipPosition, JvTopbarAction, JvUiConfig };