@litigiovirtual/ius-design-components 2.5.0 → 2.5.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": "@litigiovirtual/ius-design-components",
3
- "version": "2.5.0",
3
+ "version": "2.5.1",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": ">=22.0.0 <23.0.0",
6
6
  "@angular/common": ">=22.0.0 <23.0.0",
@@ -880,7 +880,7 @@ declare class AlertComponent {
880
880
  /** Tamaño. */
881
881
  readonly size: _angular_core.InputSignal<AlertSize>;
882
882
  /** Estilo del borde. */
883
- readonly border: _angular_core.InputSignal<"none" | "solid" | "dashed">;
883
+ readonly border: _angular_core.InputSignal<"solid" | "none" | "dashed">;
884
884
  /** Título tonal en negrita. */
885
885
  readonly title: _angular_core.InputSignal<string | undefined>;
886
886
  /** Línea superior breve (uppercase). */
@@ -1559,7 +1559,12 @@ declare class IusDropdownTriggerDirective {
1559
1559
  * El disparador por defecto es un botón ghost texto+chevron (el chevron gira al
1560
1560
  * abrir); `variant="outline"` replica el contenedor del botón de QueryBuilder
1561
1561
  * (mismo borde/radio/padding/altura) para encajar en barras y SegmentGroup. Con
1562
- * `[iusDropdownTrigger]` se proyecta un disparador propio.
1562
+ * `[iusDropdownTrigger]` se proyecta un disparador propio. Si ese disparador no
1563
+ * contiene nada enfocable (StatusChip, Tag), se envuelve en un
1564
+ * `<button class="ius-dropdown__wrap">` con `aria-haspopup="menu"`, `aria-expanded`
1565
+ * y el foco del sistema: Enter/Espacio abren, Flecha abajo abre y enfoca la primera
1566
+ * opción, y Esc desde el menú lo cierra y devuelve el foco al disparador. Uno ya
1567
+ * interactivo (Button, IconButton) se monta tal cual, sin doble botón.
1563
1568
  *
1564
1569
  * No es campo de formulario — eso es **Select**; para una sola acción →
1565
1570
  * Button/IconButton. Fuente de verdad: `Dropdown.jsx` + `Dropdown.d.ts` +
@@ -1588,7 +1593,7 @@ declare class DropdownComponent {
1588
1593
  readonly open: _angular_core.InputSignal<boolean | undefined>;
1589
1594
  /** Estado inicial del modo no controlado. */
1590
1595
  readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, unknown>;
1591
- /** Etiqueta accesible del disparador por defecto. */
1596
+ /** Etiqueta accesible del disparador por defecto o del botón que envuelve a uno propio no interactivo. */
1592
1597
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1593
1598
  /** Modo `selectable` — espejo de `onChange`. */
1594
1599
  readonly valueChange: _angular_core.OutputEmitterRef<{
@@ -1598,6 +1603,15 @@ declare class DropdownComponent {
1598
1603
  /** Apertura/cierre del panel. */
1599
1604
  readonly openChange: _angular_core.OutputEmitterRef<boolean>;
1600
1605
  protected readonly customTrigger: _angular_core.Signal<IusDropdownTriggerDirective | undefined>;
1606
+ private readonly customTriggerEl;
1607
+ /**
1608
+ * El disparador propio no contiene nada enfocable → va dentro de `.ius-dropdown__wrap`.
1609
+ * Se decide tras el primer render (el golden lo hace en `useLayoutEffect`): antes, el
1610
+ * componente proyectado aún no ha pintado su DOM interno.
1611
+ */
1612
+ protected readonly wrapTrigger: _angular_core.WritableSignal<boolean>;
1613
+ private readonly wrapButton;
1614
+ private readonly panel;
1601
1615
  /** `null` = el usuario todavía no ha abierto/cerrado → manda `defaultOpen`. */
1602
1616
  private readonly internalOpen;
1603
1617
  /** Controlado por `open` si viene definido; si no, estado interno. */
@@ -1608,6 +1622,7 @@ declare class DropdownComponent {
1608
1622
  protected readonly triggerText: _angular_core.Signal<string | undefined>;
1609
1623
  /** El encabezado del menú solo aplica en modo selección (como el golden). */
1610
1624
  protected readonly menuLabel: _angular_core.Signal<string | undefined>;
1625
+ constructor();
1611
1626
  protected onOpenChange(open: boolean): void;
1612
1627
  protected onValueChange(payload: {
1613
1628
  value: string | number | undefined;
@@ -1615,8 +1630,15 @@ declare class DropdownComponent {
1615
1630
  }): void;
1616
1631
  /** Activar un ítem cierra el panel (acciones y selección). */
1617
1632
  protected onItemClick(): void;
1633
+ /** Flecha abajo sobre el disparador envuelto: abre (si hace falta) y enfoca la primera opción. */
1634
+ protected onWrapKeydown(event: KeyboardEvent): void;
1635
+ /**
1636
+ * Esc desde el menú: el Popover lo cierra; aquí el foco vuelve al disparador envuelto.
1637
+ * EXTENSIÓN del port: el golden no lo hace; lo pide F8 · HU-3 (verificado en su DC).
1638
+ */
1639
+ protected onPanelEscape(): void;
1618
1640
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
1619
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "ius-dropdown", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; "isSignal": true; }; "triggerIcon": { "alias": "triggerIcon"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "openChange": "openChange"; }, ["customTrigger"], ["[iusDropdownTrigger]"], true, never>;
1641
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "ius-dropdown", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; "isSignal": true; }; "triggerIcon": { "alias": "triggerIcon"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "openChange": "openChange"; }, ["customTrigger", "customTriggerEl"], ["[iusDropdownTrigger]"], true, never>;
1620
1642
  }
1621
1643
 
1622
1644
  /** Tratamiento del indicador: punto de color · píldora tonal · píldora neutra. */
@@ -3211,6 +3233,8 @@ declare class SelectComponent implements ControlValueAccessor, OnInit, OnDestroy
3211
3233
  get value(): IusSelectValue | IusSelectValue[] | null;
3212
3234
  /** Texto del label (sobre el campo, con `:` final). */
3213
3235
  label?: string;
3236
+ /** Nombre accesible del combobox cuando no hay `label` visible; con `label` se ignora. */
3237
+ ariaLabel?: string;
3214
3238
  /** Indicador de obligatorio (•). */
3215
3239
  required: boolean;
3216
3240
  /** Placeholder cuando no hay selección. */
@@ -3453,7 +3477,7 @@ declare class SelectComponent implements ControlValueAccessor, OnInit, OnDestroy
3453
3477
  private updateMenuWidth;
3454
3478
  private readonly onWindowResize;
3455
3479
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent, never>;
3456
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "ius-select", never, { "options": { "alias": "options"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "error": { "alias": "error"; "required": false; }; "state": { "alias": "state"; "required": false; }; "open": { "alias": "open"; "required": false; }; "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "creatable": { "alias": "creatable"; "required": false; }; "createPlaceholder": { "alias": "createPlaceholder"; "required": false; }; "createLabel": { "alias": "createLabel"; "required": false; }; "createFactory": { "alias": "createFactory"; "required": false; }; "maxVisible": { "alias": "maxVisible"; "required": false; }; "helpText": { "alias": "helpText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "showHelpText": { "alias": "showHelpText"; "required": false; }; "showIconHelp": { "alias": "showIconHelp"; "required": false; }; "iconHelpTitle": { "alias": "iconHelpTitle"; "required": false; }; "iconHelpContent": { "alias": "iconHelpContent"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "valueChange": "valueChange"; "cleared": "cleared"; "openChange": "openChange"; "created": "created"; }, never, never, true, never>;
3480
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "ius-select", never, { "options": { "alias": "options"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "error": { "alias": "error"; "required": false; }; "state": { "alias": "state"; "required": false; }; "open": { "alias": "open"; "required": false; }; "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "creatable": { "alias": "creatable"; "required": false; }; "createPlaceholder": { "alias": "createPlaceholder"; "required": false; }; "createLabel": { "alias": "createLabel"; "required": false; }; "createFactory": { "alias": "createFactory"; "required": false; }; "maxVisible": { "alias": "maxVisible"; "required": false; }; "helpText": { "alias": "helpText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "showHelpText": { "alias": "showHelpText"; "required": false; }; "showIconHelp": { "alias": "showIconHelp"; "required": false; }; "iconHelpTitle": { "alias": "iconHelpTitle"; "required": false; }; "iconHelpContent": { "alias": "iconHelpContent"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "valueChange": "valueChange"; "cleared": "cleared"; "openChange": "openChange"; "created": "created"; }, never, never, true, never>;
3457
3481
  static ngAcceptInputType_multiple: unknown;
3458
3482
  static ngAcceptInputType_disabled: unknown;
3459
3483
  static ngAcceptInputType_error: unknown;
@@ -3478,9 +3502,13 @@ type IusListViewSize = 'small' | 'medium' | 'large';
3478
3502
  interface IusListViewAction {
3479
3503
  /** Ícono Material Symbols Rounded. */
3480
3504
  icon: string;
3481
- /** Etiqueta accesible / tooltip. */
3505
+ /** Etiqueta accesible y, si no hay `tooltip`, texto del tooltip. */
3482
3506
  label?: string;
3483
3507
  ariaLabel?: string;
3508
+ /** Texto del tooltip (el IconButton no tiene texto visible). Cae a `label` y luego a `ariaLabel`. */
3509
+ tooltip?: string;
3510
+ /** Colocación del tooltip (`top` por defecto). */
3511
+ tooltipPlacement?: IusPopoverPlacement;
3484
3512
  onClick?: (event: MouseEvent) => void;
3485
3513
  disabled?: boolean;
3486
3514
  key?: string | number;
@@ -3563,6 +3591,8 @@ declare class ListViewComponent {
3563
3591
  someSelected: boolean;
3564
3592
  /** Texto junto al checkbox de selección. */
3565
3593
  selectLabel: string;
3594
+ /** Nombre accesible del checkbox en modo selección, donde no lleva texto visible. */
3595
+ selectAriaLabel: string;
3566
3596
  /** Opciones de orden → dropdown de selección única en el header. */
3567
3597
  sortOptions: IusListViewSortOption[];
3568
3598
  sortValue?: string | number;
@@ -3633,7 +3663,7 @@ declare class ListViewComponent {
3633
3663
  item: IusDropdownItem;
3634
3664
  }): void;
3635
3665
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListViewComponent, never>;
3636
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListViewComponent, "ius-list-view", never, { "hideHeader": { "alias": "hideHeader"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "allSelected": { "alias": "allSelected"; "required": false; }; "someSelected": { "alias": "someSelected"; "required": false; }; "selectLabel": { "alias": "selectLabel"; "required": false; }; "sortOptions": { "alias": "sortOptions"; "required": false; }; "sortValue": { "alias": "sortValue"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "selectedCount": { "alias": "selectedCount"; "required": false; }; "selectionActions": { "alias": "selectionActions"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "bodyPadding": { "alias": "bodyPadding"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "scrollTrackMargin": { "alias": "scrollTrackMargin"; "required": false; }; "fit": { "alias": "fit"; "required": false; }; "fieldWidths": { "alias": "fieldWidths"; "required": false; }; "hideFooter": { "alias": "hideFooter"; "required": false; }; "total": { "alias": "total"; "required": false; }; "countNoun": { "alias": "countNoun"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "paginationVariant": { "alias": "paginationVariant"; "required": false; }; "page": { "alias": "page"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "selectAll": "selectAll"; "sortChange": "sortChange"; "clearSelection": "clearSelection"; "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, ["filtersRef", "headerStartRef", "headerEndRef", "toolbarRef", "footerStartRef", "footerEndRef"], ["[iusListViewToolbar]", "[iusListViewHeaderStart]", "[iusListViewFilters]", "[iusListViewHeaderEnd]", "*", "[iusListViewFooterStart]", "[iusListViewFooterEnd]"], true, never>;
3666
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListViewComponent, "ius-list-view", never, { "hideHeader": { "alias": "hideHeader"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "allSelected": { "alias": "allSelected"; "required": false; }; "someSelected": { "alias": "someSelected"; "required": false; }; "selectLabel": { "alias": "selectLabel"; "required": false; }; "selectAriaLabel": { "alias": "selectAriaLabel"; "required": false; }; "sortOptions": { "alias": "sortOptions"; "required": false; }; "sortValue": { "alias": "sortValue"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "selectedCount": { "alias": "selectedCount"; "required": false; }; "selectionActions": { "alias": "selectionActions"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "bodyPadding": { "alias": "bodyPadding"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "scrollTrackMargin": { "alias": "scrollTrackMargin"; "required": false; }; "fit": { "alias": "fit"; "required": false; }; "fieldWidths": { "alias": "fieldWidths"; "required": false; }; "hideFooter": { "alias": "hideFooter"; "required": false; }; "total": { "alias": "total"; "required": false; }; "countNoun": { "alias": "countNoun"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "paginationVariant": { "alias": "paginationVariant"; "required": false; }; "page": { "alias": "page"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "selectAll": "selectAll"; "sortChange": "sortChange"; "clearSelection": "clearSelection"; "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, ["filtersRef", "headerStartRef", "headerEndRef", "toolbarRef", "footerStartRef", "footerEndRef"], ["[iusListViewToolbar]", "[iusListViewHeaderStart]", "[iusListViewFilters]", "[iusListViewHeaderEnd]", "*", "[iusListViewFooterStart]", "[iusListViewFooterEnd]"], true, never>;
3637
3667
  static ngAcceptInputType_hideHeader: unknown;
3638
3668
  static ngAcceptInputType_selectable: unknown;
3639
3669
  static ngAcceptInputType_allSelected: unknown;