@caribeng/ui 22.2.0 → 22.4.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.
Files changed (121) hide show
  1. package/README.md +93 -11
  2. package/fesm2022/caribeng-ui-accordion.mjs +2 -2
  3. package/fesm2022/caribeng-ui-avatar.mjs +2 -2
  4. package/fesm2022/caribeng-ui-badge.mjs +8 -2
  5. package/fesm2022/caribeng-ui-breadcrumb.mjs +13 -6
  6. package/fesm2022/caribeng-ui-chart.mjs +8 -5
  7. package/fesm2022/caribeng-ui-chat.mjs +1303 -0
  8. package/fesm2022/caribeng-ui-code-block.mjs +332 -0
  9. package/fesm2022/caribeng-ui-colorpicker.mjs +99 -5
  10. package/fesm2022/caribeng-ui-command-palette.mjs +476 -0
  11. package/fesm2022/caribeng-ui-confirmdialog.mjs +78 -13
  12. package/fesm2022/caribeng-ui-confirmpopup.mjs +91 -16
  13. package/fesm2022/caribeng-ui-contextmenu.mjs +8 -4
  14. package/fesm2022/caribeng-ui-copy-button.mjs +230 -0
  15. package/fesm2022/caribeng-ui-dataview.mjs +4 -1
  16. package/fesm2022/caribeng-ui-dock.mjs +52 -12
  17. package/fesm2022/caribeng-ui-drawer.mjs +9 -4
  18. package/fesm2022/caribeng-ui-editor.mjs +21 -0
  19. package/fesm2022/caribeng-ui-fieldset.mjs +2 -2
  20. package/fesm2022/caribeng-ui-file-card.mjs +134 -17
  21. package/fesm2022/caribeng-ui-folder-card.mjs +122 -12
  22. package/fesm2022/caribeng-ui-inlinemessage.mjs +2 -2
  23. package/fesm2022/caribeng-ui-inputmask.mjs +8 -2
  24. package/fesm2022/caribeng-ui-kanban.mjs +4612 -0
  25. package/fesm2022/caribeng-ui-kbd.mjs +122 -0
  26. package/fesm2022/caribeng-ui-megamenu.mjs +13 -9
  27. package/fesm2022/caribeng-ui-mentions.mjs +495 -0
  28. package/fesm2022/caribeng-ui-menu.mjs +8 -4
  29. package/fesm2022/caribeng-ui-menubar.mjs +9 -5
  30. package/fesm2022/caribeng-ui-message.mjs +6 -3
  31. package/fesm2022/caribeng-ui-organizationchart.mjs +6 -10
  32. package/fesm2022/caribeng-ui-panel.mjs +6 -6
  33. package/fesm2022/caribeng-ui-panelmenu.mjs +9 -6
  34. package/fesm2022/caribeng-ui-phone-input.mjs +688 -0
  35. package/fesm2022/caribeng-ui-pricing.mjs +263 -69
  36. package/fesm2022/caribeng-ui-qrcode.mjs +564 -0
  37. package/fesm2022/caribeng-ui-ripple.mjs +2 -0
  38. package/fesm2022/caribeng-ui-scrolltop.mjs +3 -1
  39. package/fesm2022/caribeng-ui-sidebar.mjs +573 -0
  40. package/fesm2022/caribeng-ui-stepper.mjs +10 -3
  41. package/fesm2022/caribeng-ui-table.mjs +10 -4
  42. package/fesm2022/caribeng-ui-tabmenu.mjs +8 -4
  43. package/fesm2022/caribeng-ui-tieredmenu.mjs +109 -19
  44. package/fesm2022/caribeng-ui.mjs +388 -1
  45. package/package.json +42 -2
  46. package/schematics/collection.json +5 -0
  47. package/schematics/migrate-from-primeng/core-icons.json +1 -0
  48. package/schematics/migrate-from-primeng/icons.js +269 -0
  49. package/schematics/migrate-from-primeng/index.js +290 -0
  50. package/schematics/migrate-from-primeng/mappings/button.js +93 -0
  51. package/schematics/migrate-from-primeng/mappings/card.js +33 -0
  52. package/schematics/migrate-from-primeng/mappings/checkbox.js +44 -0
  53. package/schematics/migrate-from-primeng/mappings/confirm.js +221 -0
  54. package/schematics/migrate-from-primeng/mappings/datepicker.js +121 -0
  55. package/schematics/migrate-from-primeng/mappings/dialog.js +84 -0
  56. package/schematics/migrate-from-primeng/mappings/index.js +88 -0
  57. package/schematics/migrate-from-primeng/mappings/inputnumber.js +62 -0
  58. package/schematics/migrate-from-primeng/mappings/inputtext.js +60 -0
  59. package/schematics/migrate-from-primeng/mappings/menu.js +468 -0
  60. package/schematics/migrate-from-primeng/mappings/multiselect.js +49 -0
  61. package/schematics/migrate-from-primeng/mappings/radiobutton.js +22 -0
  62. package/schematics/migrate-from-primeng/mappings/rules.js +206 -0
  63. package/schematics/migrate-from-primeng/mappings/select.js +97 -0
  64. package/schematics/migrate-from-primeng/mappings/service-calls.js +100 -0
  65. package/schematics/migrate-from-primeng/mappings/table.js +613 -0
  66. package/schematics/migrate-from-primeng/mappings/tabs.js +225 -0
  67. package/schematics/migrate-from-primeng/mappings/tag.js +29 -0
  68. package/schematics/migrate-from-primeng/mappings/textarea.js +44 -0
  69. package/schematics/migrate-from-primeng/mappings/toast.js +173 -0
  70. package/schematics/migrate-from-primeng/mappings/toggleswitch.js +37 -0
  71. package/schematics/migrate-from-primeng/mappings/tooltip.js +44 -0
  72. package/schematics/migrate-from-primeng/mappings/types.js +10 -0
  73. package/schematics/migrate-from-primeng/report.js +79 -0
  74. package/schematics/migrate-from-primeng/schema.js +2 -0
  75. package/schematics/migrate-from-primeng/schema.json +34 -0
  76. package/schematics/migrate-from-primeng/template.js +387 -0
  77. package/schematics/migrate-from-primeng/todo.js +5 -0
  78. package/schematics/migrate-from-primeng/typescript.js +442 -0
  79. package/schematics/migrate-from-primeng/workspace.js +117 -0
  80. package/schematics/ng-add/index.js +16 -1
  81. package/types/caribeng-ui-badge.d.ts +3 -1
  82. package/types/caribeng-ui-breadcrumb.d.ts +8 -0
  83. package/types/caribeng-ui-chart.d.ts +3 -1
  84. package/types/caribeng-ui-chat.d.ts +299 -0
  85. package/types/caribeng-ui-code-block.d.ts +65 -0
  86. package/types/caribeng-ui-colorpicker.d.ts +5 -1
  87. package/types/caribeng-ui-command-palette.d.ts +133 -0
  88. package/types/caribeng-ui-confirmdialog.d.ts +34 -2
  89. package/types/caribeng-ui-confirmpopup.d.ts +39 -2
  90. package/types/caribeng-ui-contextmenu.d.ts +7 -0
  91. package/types/caribeng-ui-copy-button.d.ts +90 -0
  92. package/types/caribeng-ui-dataview.d.ts +2 -0
  93. package/types/caribeng-ui-dock.d.ts +13 -1
  94. package/types/caribeng-ui-drawer.d.ts +3 -1
  95. package/types/caribeng-ui-file-card.d.ts +27 -2
  96. package/types/caribeng-ui-folder-card.d.ts +27 -5
  97. package/types/caribeng-ui-inputmask.d.ts +3 -1
  98. package/types/caribeng-ui-kanban.d.ts +783 -0
  99. package/types/caribeng-ui-kbd.d.ts +36 -0
  100. package/types/caribeng-ui-megamenu.d.ts +11 -0
  101. package/types/caribeng-ui-mentions.d.ts +127 -0
  102. package/types/caribeng-ui-menu.d.ts +7 -0
  103. package/types/caribeng-ui-menubar.d.ts +7 -0
  104. package/types/caribeng-ui-message.d.ts +2 -0
  105. package/types/caribeng-ui-panelmenu.d.ts +7 -0
  106. package/types/caribeng-ui-phone-input.d.ts +168 -0
  107. package/types/caribeng-ui-pricing.d.ts +41 -4
  108. package/types/caribeng-ui-qrcode.d.ts +88 -0
  109. package/types/caribeng-ui-sidebar.d.ts +167 -0
  110. package/types/caribeng-ui-stepper.d.ts +2 -0
  111. package/types/caribeng-ui-table.d.ts +1 -1
  112. package/types/caribeng-ui-tabmenu.d.ts +7 -0
  113. package/types/caribeng-ui-tieredmenu.d.ts +17 -1
  114. package/types/caribeng-ui.d.ts +276 -2
  115. package/styles/caribeng.css +0 -380
  116. package/styles/scss/_mixins.scss +0 -46
  117. package/styles/scss/_overlay.scss +0 -15
  118. package/styles/scss/_tokens.scss +0 -267
  119. package/styles/scss/_utilities.scss +0 -73
  120. package/styles/scss/_variables.scss +0 -33
  121. package/styles/scss/index.scss +0 -16
@@ -0,0 +1,167 @@
1
+ import * as _caribeng_ui_sidebar from '@caribeng/ui/sidebar';
2
+ import * as _angular_core from '@angular/core';
3
+ import { InjectionToken, Signal } from '@angular/core';
4
+ import * as _caribeng_ui from '@caribeng/ui';
5
+
6
+ /** Enlace o acción del menú lateral. */
7
+ interface CbSidebarItem {
8
+ /** Identificador para `active`. Por defecto, la `url` o el `label`. */
9
+ id?: string;
10
+ label: string;
11
+ icon?: string;
12
+ url?: string;
13
+ target?: string;
14
+ /** Contador o etiqueta a la derecha ("3", "Nuevo"). */
15
+ badge?: string | number;
16
+ disabled?: boolean;
17
+ /** Subelementos (un nivel): el item se convierte en un grupo desplegable. */
18
+ children?: readonly CbSidebarItem[];
19
+ /** Acción al elegirlo (además del evento `itemSelect`). */
20
+ command?: (event: CbSidebarSelectEvent) => void;
21
+ }
22
+ /** Sección del menú lateral con título opcional. */
23
+ interface CbSidebarGroup {
24
+ label?: string;
25
+ items: readonly CbSidebarItem[];
26
+ }
27
+ interface CbSidebarSelectEvent {
28
+ readonly item: CbSidebarItem;
29
+ readonly originalEvent: Event;
30
+ }
31
+ /** Clave de un item para `active`. */
32
+ declare function cbSidebarKey(item: CbSidebarItem): string;
33
+ /** Estado del `cb-app-shell` compartido con el sidebar y los botones `cbSidebarToggle`. */
34
+ interface CbAppShellState {
35
+ /** Ancho por debajo del punto de corte: el sidebar es un panel deslizante. */
36
+ readonly mobile: Signal<boolean>;
37
+ /** Panel abierto (solo en móvil). */
38
+ readonly sidebarOpen: Signal<boolean>;
39
+ /** Sidebar contraído a iconos (solo en escritorio). */
40
+ readonly collapsed: Signal<boolean>;
41
+ readonly sidebarId: string;
42
+ /** En móvil abre o cierra el panel; en escritorio contrae o expande. */
43
+ toggle(): void;
44
+ setCollapsed(collapsed: boolean): void;
45
+ /** Cierra el panel móvil (p. ej. al navegar). */
46
+ closeSidebar(): void;
47
+ }
48
+ declare const CB_APP_SHELL: InjectionToken<CbAppShellState>;
49
+
50
+ /**
51
+ * Menú lateral de CaribeNG: secciones con título, enlaces con icono y badge,
52
+ * grupos desplegables de un nivel y modo contraído a iconos (con tooltip).
53
+ * Dentro de `cb-app-shell` se convierte en panel deslizante en móvil.
54
+ *
55
+ * @example
56
+ * ```html
57
+ * <cb-sidebar [groups]="menu" [(active)]="seccion" [navigate]="navigate">
58
+ * <img cb-sidebar-header src="logo.svg" alt="Mi banco" />
59
+ * </cb-sidebar>
60
+ * ```
61
+ */
62
+ declare class CbSidebar {
63
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
64
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
65
+ /** `cb-app-shell` que lo contiene, si hay. */
66
+ protected readonly shell: _caribeng_ui_sidebar.CbAppShellState | null;
67
+ protected readonly uid: string;
68
+ readonly groups: _angular_core.InputSignal<readonly CbSidebarGroup[]>;
69
+ /** Clave del item activo (`id`, `url` o `label`); se marca con `aria-current="page"`. */
70
+ readonly active: _angular_core.ModelSignal<string | null>;
71
+ /** Contraído a iconos. Dentro de `cb-app-shell` lo controla el shell. */
72
+ readonly collapsed: _angular_core.ModelSignal<boolean>;
73
+ /** Muestra el botón de contraer/expandir en el pie. */
74
+ readonly collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
75
+ /** Nombre de la navegación. Por defecto, "Navegación principal". */
76
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
77
+ /**
78
+ * Navegación SPA: si se indica, los enlaces internos (sin `target` ni teclas
79
+ * modificadoras) la llaman en lugar de recargar la página.
80
+ * Ej.: `navigate = (url: string) => this.router.navigateByUrl(url)`.
81
+ */
82
+ readonly navigate: _angular_core.InputSignal<((url: string) => unknown) | null>;
83
+ /** Item elegido. */
84
+ readonly itemSelect: _angular_core.OutputEmitterRef<CbSidebarSelectEvent>;
85
+ private readonly expanded;
86
+ protected readonly isCollapsed: _angular_core.Signal<boolean>;
87
+ constructor();
88
+ protected key(item: CbSidebarItem): string;
89
+ protected isActive(item: CbSidebarItem): boolean;
90
+ protected hasActiveChild(item: CbSidebarItem): boolean;
91
+ protected isExpanded(item: CbSidebarItem): boolean;
92
+ protected toggleGroup(item: CbSidebarItem): void;
93
+ protected toggleCollapsed(): void;
94
+ private setCollapsed;
95
+ /** Marca el item como activo, ejecuta su `command`, emite `itemSelect` y navega. */
96
+ select(item: CbSidebarItem, event: Event): void;
97
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbSidebar, never>;
98
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbSidebar, "cb-sidebar", never, { "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "navigate": { "alias": "navigate"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; "collapsed": "collapsedChange"; "itemSelect": "itemSelect"; }, never, ["[cb-sidebar-header]", "[cb-sidebar-footer]"], true, never>;
99
+ }
100
+
101
+ /**
102
+ * Esqueleto de aplicación de CaribeNG: menú lateral, cabecera y contenido.
103
+ * En escritorio el sidebar es una columna que se puede contraer; por debajo de
104
+ * `breakpoint` (medido en el propio shell) pasa a ser un panel deslizante con
105
+ * fondo, cierre con Escape y foco atrapado mientras está abierto.
106
+ *
107
+ * @example
108
+ * ```html
109
+ * <cb-app-shell style="height: 100vh">
110
+ * <cb-sidebar [groups]="menu" />
111
+ * <header cb-app-shell-header>
112
+ * <button type="button" cbSidebarToggle><cb-icon name="menu" /></button>
113
+ * </header>
114
+ * <router-outlet />
115
+ * </cb-app-shell>
116
+ * ```
117
+ */
118
+ declare class CbAppShell implements CbAppShellState {
119
+ private readonly host;
120
+ private readonly document;
121
+ private readonly injector;
122
+ private readonly destroyRef;
123
+ private previouslyFocused;
124
+ readonly sidebarId: string;
125
+ /** Ancho (px) del shell por debajo del cual el sidebar es un panel deslizante. */
126
+ readonly breakpoint: _angular_core.InputSignal<number>;
127
+ /** Panel abierto en móvil. */
128
+ readonly sidebarOpen: _angular_core.ModelSignal<boolean>;
129
+ /** Sidebar contraído a iconos en escritorio. */
130
+ readonly collapsed: _angular_core.ModelSignal<boolean>;
131
+ /** Fuerza el modo móvil (útil en pruebas o vistas embebidas). */
132
+ readonly forceMobile: _angular_core.InputSignalWithTransform<boolean, unknown>;
133
+ private readonly width;
134
+ readonly mobile: _angular_core.Signal<boolean>;
135
+ constructor();
136
+ toggle(): void;
137
+ setCollapsed(collapsed: boolean): void;
138
+ closeSidebar(): void;
139
+ protected onEscape(event: Event): void;
140
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbAppShell, never>;
141
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbAppShell, "cb-app-shell", never, { "breakpoint": { "alias": "breakpoint"; "required": false; "isSignal": true; }; "sidebarOpen": { "alias": "sidebarOpen"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "forceMobile": { "alias": "forceMobile"; "required": false; "isSignal": true; }; }, { "sidebarOpen": "sidebarOpenChange"; "collapsed": "collapsedChange"; }, never, ["cb-sidebar, [cb-app-shell-sidebar]", "[cb-app-shell-header]", "*"], true, never>;
142
+ }
143
+
144
+ /**
145
+ * Convierte cualquier botón en el control del sidebar de `cb-app-shell`: en
146
+ * móvil abre o cierra el panel; en escritorio contrae o expande. Gestiona
147
+ * `aria-controls`, `aria-expanded` y un nombre accesible por defecto.
148
+ *
149
+ * @example
150
+ * ```html
151
+ * <button type="button" cbSidebarToggle><cb-icon name="menu" aria-hidden="true" /></button>
152
+ * ```
153
+ */
154
+ declare class CbSidebarToggle {
155
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
156
+ protected readonly shell: _caribeng_ui_sidebar.CbAppShellState | null;
157
+ /** Nombre accesible. Por defecto, "Abrir menú" (móvil) o "Contraer/Expandir menú lateral". */
158
+ readonly cbSidebarToggle: _angular_core.InputSignal<string>;
159
+ protected readonly expanded: _angular_core.Signal<boolean | null>;
160
+ protected readonly label: _angular_core.Signal<string | null>;
161
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbSidebarToggle, never>;
162
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbSidebarToggle, "[cbSidebarToggle]", never, { "cbSidebarToggle": { "alias": "cbSidebarToggle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
163
+ }
164
+
165
+ export { CB_APP_SHELL, CbAppShell, CbSidebar, CbSidebarToggle, cbSidebarKey };
166
+ export type { CbAppShellState, CbSidebarGroup, CbSidebarItem, CbSidebarSelectEvent };
167
+ //# sourceMappingURL=caribeng-ui-sidebar.d.ts.map
@@ -23,6 +23,8 @@ declare class CbStepper {
23
23
  readonly activeIndex: _angular_core.WritableSignal<number>;
24
24
  isActive(step: CbStep): boolean;
25
25
  isComplete(step: CbStep): boolean;
26
+ /** Nombre del botón del paso: "Paso 2 de 3: Envío" (y ", completado" si ya pasó). */
27
+ protected stepName(step: CbStep, index: number): string;
26
28
  goTo(index: number): void;
27
29
  next(): void;
28
30
  prev(): void;
@@ -7,7 +7,7 @@ import { CbPaginatorState } from '@caribeng/ui/paginator';
7
7
  /** Cómo compara un filtro el texto buscado con el valor de la celda (sin distinguir mayúsculas ni tildes). */
8
8
  type CbTableFilterMatchMode = 'contains' | 'startsWith' | 'equals';
9
9
  interface CbTableColumn {
10
- /** Propiedad de la fila a mostrar. */
10
+ /** Propiedad de la fila a mostrar. Admite rutas (`cliente.nombre`). */
11
11
  field: string;
12
12
  /** Texto del encabezado. */
13
13
  header: string;
@@ -1,17 +1,24 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import * as _caribeng_ui from '@caribeng/ui';
3
+ import { CbMenuCommandEvent } from '@caribeng/ui';
3
4
 
4
5
  interface CbTabMenuItem {
5
6
  label: string;
6
7
  url?: string;
7
8
  icon?: string;
8
9
  disabled?: boolean;
10
+ /** Acción al elegir el item (además del evento de selección), como `command` en PrimeNG. */
11
+ command?: (event: CbMenuCommandEvent<CbTabMenuItem>) => void;
12
+ /** `false` oculta el item. */
13
+ visible?: boolean;
9
14
  }
10
15
  /** Horizontal navigation menu with an active item. */
11
16
  declare class CbTabMenu {
12
17
  /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
13
18
  protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
14
19
  readonly items: _angular_core.InputSignal<readonly CbTabMenuItem[]>;
20
+ /** Items sin los de `visible: false`. */
21
+ protected readonly visibleItems: _angular_core.Signal<CbTabMenuItem[]>;
15
22
  readonly activeIndex: _angular_core.ModelSignal<number>;
16
23
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
17
24
  readonly itemSelect: _angular_core.OutputEmitterRef<CbTabMenuItem>;
@@ -1,5 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import * as _caribeng_ui from '@caribeng/ui';
3
+ import { CbMenuCommandEvent } from '@caribeng/ui';
3
4
 
4
5
  interface CbTieredMenuItem {
5
6
  label: string;
@@ -8,6 +9,10 @@ interface CbTieredMenuItem {
8
9
  disabled?: boolean;
9
10
  separator?: boolean;
10
11
  items?: readonly CbTieredMenuItem[];
12
+ /** Acción al elegir el item (además del evento de selección), como `command` en PrimeNG. */
13
+ command?: (event: CbMenuCommandEvent<CbTieredMenuItem>) => void;
14
+ /** `false` oculta el item. */
15
+ visible?: boolean;
11
16
  }
12
17
  /** Popup menu with cascading submenus. */
13
18
  declare class CbTieredMenu {
@@ -17,6 +22,8 @@ declare class CbTieredMenu {
17
22
  private readonly vcr;
18
23
  private readonly destroyRef;
19
24
  readonly items: _angular_core.InputSignal<readonly CbTieredMenuItem[]>;
25
+ /** Items sin los de `visible: false`. */
26
+ protected readonly visibleItems: _angular_core.Signal<CbTieredMenuItem[]>;
20
27
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
21
28
  readonly triggerLabel: _angular_core.InputSignal<string | undefined>;
22
29
  readonly itemSelect: _angular_core.OutputEmitterRef<CbTieredMenuItem>;
@@ -26,11 +33,20 @@ declare class CbTieredMenu {
26
33
  private readonly content;
27
34
  private overlayRef;
28
35
  private readonly positions;
36
+ private readonly injector;
37
+ private readonly trigger;
29
38
  constructor();
30
39
  toggle(event: MouseEvent): void;
31
40
  show(target: HTMLElement): void;
32
41
  select(item: CbTieredMenuItem): void;
33
- hide(): void;
42
+ /** Cierra el menú; con `restoreFocus` (por defecto) el foco vuelve al botón que lo abre. */
43
+ hide(restoreFocus?: boolean): void;
44
+ protected onTriggerKeydown(event: KeyboardEvent): void;
45
+ /** Flechas, Inicio y Fin dentro de cada nivel; derecha abre el submenú e izquierda vuelve al nivel anterior. */
46
+ protected onMenuKeydown(event: KeyboardEvent): void;
47
+ private openSubmenu;
48
+ private menuItems;
49
+ private focusFirst;
34
50
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTieredMenu, never>;
35
51
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbTieredMenu, "cb-tieredmenu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, never, never, true, never>;
36
52
  }
@@ -10,6 +10,8 @@ import { InjectionToken, EnvironmentProviders, Signal } from '@angular/core';
10
10
  * o, en caliente, `inject(CbLocaleService).use('en')`.
11
11
  */
12
12
  interface CbTranslation {
13
+ /** Idioma BCP 47 para `Intl` (nombres de países, fechas…): `es`, `en`. */
14
+ intlLocale: string;
13
15
  close: string;
14
16
  clear: string;
15
17
  remove: string;
@@ -27,6 +29,180 @@ interface CbTranslation {
27
29
  selectAll: string;
28
30
  options: string;
29
31
  moreActions: string;
32
+ copy: string;
33
+ copied: string;
34
+ copyFailed: string;
35
+ qrCode: string;
36
+ commandPalette: string;
37
+ commandPlaceholder: string;
38
+ /** `{0}`: cantidad. */
39
+ commandResults: string;
40
+ commandNavigate: string;
41
+ commandSelect: string;
42
+ expandSidebar: string;
43
+ collapseSidebar: string;
44
+ openMenu: string;
45
+ chatConversation: string;
46
+ chatYou: string;
47
+ chatAssistant: string;
48
+ chatPlaceholder: string;
49
+ chatMessage: string;
50
+ chatSend: string;
51
+ chatStop: string;
52
+ chatAttach: string;
53
+ chatSending: string;
54
+ chatError: string;
55
+ chatRetry: string;
56
+ chatTyping: string;
57
+ chatGenerating: string;
58
+ chatResponseReady: string;
59
+ chatJumpToLatest: string;
60
+ phoneCountry: string;
61
+ searchCountry: string;
62
+ phoneInvalid: string;
63
+ chatThinking: string;
64
+ /** `{0}`: segundos. */
65
+ chatThoughtFor: string;
66
+ chatReasoning: string;
67
+ /** `{0}`: nombre de la herramienta. */
68
+ chatToolRunning: string;
69
+ /** `{0}`: nombre de la herramienta. */
70
+ chatToolDone: string;
71
+ /** `{0}`: nombre de la herramienta. */
72
+ chatToolError: string;
73
+ chatToolInput: string;
74
+ chatToolOutput: string;
75
+ chatHelpful: string;
76
+ chatNotHelpful: string;
77
+ chatRegenerate: string;
78
+ chatAttachments: string;
79
+ kanbanCard: string;
80
+ kanbanInstructions: string;
81
+ /** `{0}`: tarjeta, `{1}`: columna, `{2}`: posición, `{3}`: total. */
82
+ kanbanGrabbed: string;
83
+ /** `{0}`: tarjeta, `{1}`: columna, `{2}`: posición, `{3}`: total. */
84
+ kanbanMoved: string;
85
+ /** `{0}`: tarjeta, `{1}`: columna, `{2}`: posición. */
86
+ kanbanDropped: string;
87
+ /** `{0}`: tarjeta, `{1}`: columna. */
88
+ kanbanCancelled: string;
89
+ /** `{0}`: columna. */
90
+ kanbanFull: string;
91
+ /** `{0}`: cantidad, `{1}`: límite. */
92
+ kanbanCount: string;
93
+ kanbanAdd: string;
94
+ kanbanEdit: string;
95
+ kanbanDelete: string;
96
+ /** `{0}`: columna. */
97
+ kanbanMoveTo: string;
98
+ /** `{0}`: tarjeta. */
99
+ kanbanCardActions: string;
100
+ kanbanCardTitle: string;
101
+ /** `{0}`: tarjeta. */
102
+ kanbanConfirmDelete: string;
103
+ /** `{0}`: tarjeta. */
104
+ kanbanDeleted: string;
105
+ /** `{0}`: tarjeta, `{1}`: columna. */
106
+ kanbanAdded: string;
107
+ /** `{0}`: título anterior, `{1}`: nuevo. */
108
+ kanbanRenamed: string;
109
+ kanbanAddColumn: string;
110
+ kanbanColumnName: string;
111
+ kanbanNewColumn: string;
112
+ /** `{0}`: columna. */
113
+ kanbanColumnActions: string;
114
+ kanbanRename: string;
115
+ /** `{0}`: columna. */
116
+ kanbanCollapse: string;
117
+ /** `{0}`: columna. */
118
+ kanbanExpand: string;
119
+ /** `{0}`: columna, `{1}`: cantidad de tarjetas. */
120
+ kanbanConfirmDeleteColumn: string;
121
+ kanbanDetails: string;
122
+ kanbanOpenDetails: string;
123
+ kanbanStatus: string;
124
+ kanbanAssignees: string;
125
+ kanbanNoAssignees: string;
126
+ /** `{0}`: persona. */
127
+ kanbanUnassign: string;
128
+ /** `{0}`: nombres. */
129
+ kanbanAssignedTo: string;
130
+ kanbanPriority: string;
131
+ kanbanNoPriority: string;
132
+ kanbanPriorityLow: string;
133
+ kanbanPriorityMedium: string;
134
+ kanbanPriorityHigh: string;
135
+ kanbanStartDate: string;
136
+ kanbanEndDate: string;
137
+ kanbanDates: string;
138
+ kanbanOverdue: string;
139
+ kanbanDescription: string;
140
+ kanbanDescriptionPlaceholder: string;
141
+ kanbanAttachments: string;
142
+ kanbanAttach: string;
143
+ kanbanDropFiles: string;
144
+ /** `{0}`: archivo. */
145
+ kanbanRemoveAttachment: string;
146
+ /** `{0}`: cantidad. */
147
+ kanbanAttachmentCount: string;
148
+ /** `{0}`: tarjeta. */
149
+ kanbanUpdated: string;
150
+ kanbanTaskName: string;
151
+ kanbanAddTask: string;
152
+ kanbanAddSection: string;
153
+ kanbanCompleted: string;
154
+ /** `{0}`: tarea. */
155
+ kanbanMarkComplete: string;
156
+ /** `{0}`: tarea. */
157
+ kanbanMarkIncomplete: string;
158
+ /** `{0}`: sección, `{1}`: cantidad. */
159
+ kanbanSectionCount: string;
160
+ kanbanListInstructions: string;
161
+ /** `{0}`: cantidad. */
162
+ kanbanNoDate: string;
163
+ /** `{0}`: día. */
164
+ kanbanAddTaskOn: string;
165
+ /** `{0}`: primer día, `{1}`: último. */
166
+ kanbanWeekOf: string;
167
+ kanbanCalendarInstructions: string;
168
+ /** `{0}`: tarea, `{1}`: fechas. */
169
+ kanbanRescheduled: string;
170
+ kanbanPreviousWeek: string;
171
+ kanbanNextWeek: string;
172
+ kanbanDays: string;
173
+ kanbanZoomIn: string;
174
+ kanbanZoomOut: string;
175
+ /** `{0}`: sección. */
176
+ kanbanAddTaskIn: string;
177
+ kanbanTimelineInstructions: string;
178
+ kanbanDashboard: string;
179
+ kanbanTotalCompleted: string;
180
+ kanbanTotalIncomplete: string;
181
+ kanbanTotalOverdue: string;
182
+ kanbanTotalTasks: string;
183
+ /** `{0}`: porcentaje. */
184
+ kanbanOfTotal: string;
185
+ kanbanIncompleteBySection: string;
186
+ kanbanByCompletion: string;
187
+ kanbanIncompleteByAssignee: string;
188
+ kanbanByWeek: string;
189
+ kanbanCompletedPlural: string;
190
+ kanbanPendingPlural: string;
191
+ kanbanOverduePlural: string;
192
+ kanbanIncompletePlural: string;
193
+ kanbanViews: string;
194
+ kanbanViewBoard: string;
195
+ kanbanViewList: string;
196
+ kanbanViewTimeline: string;
197
+ kanbanViewDashboard: string;
198
+ kanbanViewCalendar: string;
199
+ /** `{0}`: vista. */
200
+ kanbanHideView: string;
201
+ kanbanSideBySide: string;
202
+ kanbanViewsHint: string;
203
+ save: string;
204
+ /** `{0}`: cantidad. */
205
+ mentionsCount: string;
30
206
  add: string;
31
207
  onThisPage: string;
32
208
  trendUp: string;
@@ -50,6 +226,8 @@ interface CbTranslation {
50
226
  continue: string;
51
227
  /** `{0}`: paso actual, `{1}`: total. */
52
228
  stepOf: string;
229
+ /** Se añade al nombre de un paso terminado ("…, completado"). */
230
+ stepCompleted: string;
53
231
  expand: string;
54
232
  collapse: string;
55
233
  /** `{0}`: elemento. */
@@ -113,6 +291,11 @@ interface CbTranslation {
113
291
  color: string;
114
292
  colorPicker: string;
115
293
  hexColor: string;
294
+ /** Área de saturación y brillo del selector de color. */
295
+ colorArea: string;
296
+ /** Valor del área: {0} saturación, {1} brillo (en %). */
297
+ colorAreaValue: string;
298
+ hue: string;
116
299
  switch: string;
117
300
  /** `{0}`: valor, `{1}`: máximo. */
118
301
  ratingOf: string;
@@ -279,6 +462,15 @@ interface CbTranslation {
279
462
  chooseItem: string;
280
463
  perMonth: string;
281
464
  perYear: string;
465
+ billingCycle: string;
466
+ notIncluded: string;
467
+ payAnnually: string;
468
+ payMonthly: string;
469
+ /** `{0}`: importe anual. */
470
+ billedAnnually: string;
471
+ /** `{0}`: importe ahorrado. */
472
+ youSave: string;
473
+ recommended: string;
282
474
  textFormatting: string;
283
475
  paragraphStyle: string;
284
476
  normal: string;
@@ -527,6 +719,69 @@ declare class CbThemeService {
527
719
  static ɵprov: i0.ɵɵInjectableDeclaration<CbThemeService>;
528
720
  }
529
721
 
722
+ /** Severidad del botón de aceptar de una confirmación. */
723
+ type CbConfirmSeverity = 'primary' | 'danger' | 'success' | 'warning';
724
+ /** Opciones de una confirmación pedida con {@link CbConfirmationService.confirm}. */
725
+ interface CbConfirmation {
726
+ /** Pregunta a confirmar. Por defecto, la del idioma activo. */
727
+ message?: string;
728
+ /** Título (solo `cb-confirm-dialog`). Por defecto, "Confirmar" del idioma activo. */
729
+ header?: string;
730
+ acceptLabel?: string;
731
+ rejectLabel?: string;
732
+ /** Severidad del botón de aceptar (p. ej. `danger` para acciones destructivas). */
733
+ acceptSeverity?: CbConfirmSeverity;
734
+ /** Se ejecuta al aceptar. */
735
+ accept?: () => void;
736
+ /** Se ejecuta al cancelar (botón, Escape o clic fuera). */
737
+ reject?: () => void;
738
+ /**
739
+ * Elemento al que se ancla `cb-confirm-popup` (normalmente
740
+ * `event.currentTarget`). Sin `target` la atiende solo `cb-confirm-dialog`.
741
+ */
742
+ target?: EventTarget | null;
743
+ /**
744
+ * Para tener varias en la misma vista: la atiende el `cb-confirm-dialog` o
745
+ * `cb-confirm-popup` con el mismo `key`. Sin `key`, los que no tienen.
746
+ */
747
+ key?: string;
748
+ }
749
+ /** Confirmación en curso. */
750
+ interface CbConfirmationRequest {
751
+ readonly id: number;
752
+ readonly confirmation: CbConfirmation;
753
+ }
754
+ /**
755
+ * Pide confirmaciones desde código, sin declarar un diálogo por cada una. Las
756
+ * muestra el `<cb-confirm-dialog service />` o `<cb-confirm-popup service />` de la vista
757
+ * (el input `service` los conecta), igual que `ConfirmationService` de PrimeNG.
758
+ *
759
+ * @example
760
+ * ```ts
761
+ * private readonly confirmation = inject(CbConfirmationService);
762
+ *
763
+ * borrar(item: Item, event: Event): void {
764
+ * this.confirmation.confirm({
765
+ * message: `¿Eliminar ${item.nombre}?`,
766
+ * acceptSeverity: 'danger',
767
+ * target: event.currentTarget, // solo para cb-confirm-popup
768
+ * accept: () => this.api.eliminar(item.id),
769
+ * });
770
+ * }
771
+ * ```
772
+ */
773
+ declare class CbConfirmationService {
774
+ private readonly _request;
775
+ /** Confirmación en curso, o `null`. La leen `cb-confirm-dialog` y `cb-confirm-popup`. */
776
+ readonly request: i0.Signal<CbConfirmationRequest | null>;
777
+ /** Muestra una confirmación. Si había otra abierta, la sustituye (sin llamar a su `reject`). */
778
+ confirm(confirmation: CbConfirmation): void;
779
+ /** Cierra la confirmación en curso sin llamar a `accept` ni a `reject`. */
780
+ close(): void;
781
+ static ɵfac: i0.ɵɵFactoryDeclaration<CbConfirmationService, never>;
782
+ static ɵprov: i0.ɵɵInjectableDeclaration<CbConfirmationService>;
783
+ }
784
+
530
785
  /**
531
786
  * Registra CaribeNG en una aplicación Angular (standalone o basada en módulos).
532
787
  *
@@ -542,6 +797,25 @@ declare class CbThemeService {
542
797
  */
543
798
  declare function provideCaribeNG(config?: Partial<CaribeNgConfig>): EnvironmentProviders;
544
799
 
800
+ /** Argumento de `command` en los items de los menús. */
801
+ interface CbMenuCommandEvent<T = unknown> {
802
+ /** Item elegido. */
803
+ readonly item: T;
804
+ /** Evento que lo eligió (clic o teclado), si lo hay. */
805
+ readonly originalEvent?: Event;
806
+ }
807
+ /**
808
+ * Ejecuta el `command` del item (si tiene). Los menús lo llaman al elegir un
809
+ * item, además de emitir su evento de selección.
810
+ */
811
+ declare function cbRunCommand<T extends object>(item: T, originalEvent?: Event): void;
812
+ /**
813
+ * Quita los items con `visible: false`, también dentro de `items` (submenús)
814
+ * y de `groups[].items` (MegaMenu). Devuelve los mismos objetos si no cambia
815
+ * nada, para que la selección emita el objeto original.
816
+ */
817
+ declare function cbVisibleItems<T extends object>(items: readonly T[]): T[];
818
+
545
819
  /** Tamaños estándar compartidos por los componentes. */
546
820
  type CbSize = 'sm' | 'md' | 'lg';
547
821
  /**
@@ -643,6 +917,6 @@ declare class CbLocaleService {
643
917
  /** Traducciones activas de CaribeNG como signal (para usar en componentes). */
644
918
  declare function injectCbTranslation(): Signal<CbTranslation>;
645
919
 
646
- export { CB_COLOR_PRESETS, CB_CONFIG, CB_DEFAULT_CONFIG, CB_LOCALES, CB_LOCALE_EN, CB_LOCALE_ES, CbLocaleService, CbThemeService, cbFieldState, cbFormat, cbOverlayFocus, injectCbTranslation, provideCaribeNG };
647
- export type { CaribeNgConfig, CbColorPreset, CbFieldIndicator, CbFieldState, CbLocaleCode, CbOverlayFocusOptions, CbPrimaryScale, CbRequiredIndicator, CbSeverity, CbSize, CbTheme, CbThemePreference, CbTranslation };
920
+ export { CB_COLOR_PRESETS, CB_CONFIG, CB_DEFAULT_CONFIG, CB_LOCALES, CB_LOCALE_EN, CB_LOCALE_ES, CbConfirmationService, CbLocaleService, CbThemeService, cbFieldState, cbFormat, cbOverlayFocus, cbRunCommand, cbVisibleItems, injectCbTranslation, provideCaribeNG };
921
+ export type { CaribeNgConfig, CbColorPreset, CbConfirmSeverity, CbConfirmation, CbConfirmationRequest, CbFieldIndicator, CbFieldState, CbLocaleCode, CbMenuCommandEvent, CbOverlayFocusOptions, CbPrimaryScale, CbRequiredIndicator, CbSeverity, CbSize, CbTheme, CbThemePreference, CbTranslation };
648
922
  //# sourceMappingURL=caribeng-ui.d.ts.map