pdm-ui-kit 0.1.50 → 0.3.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 (68) hide show
  1. package/README.md +356 -4
  2. package/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +3 -3
  3. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +37 -4
  4. package/esm2020/lib/components/button-group/button-group.component.mjs +208 -182
  5. package/esm2020/lib/components/calendar/calendar.component.mjs +3 -3
  6. package/esm2020/lib/components/card/card.component.mjs +36 -53
  7. package/esm2020/lib/components/combobox/combobox.component.mjs +136 -14
  8. package/esm2020/lib/components/command/command.component.mjs +3 -3
  9. package/esm2020/lib/components/context-menu/context-menu.component.mjs +121 -42
  10. package/esm2020/lib/components/data-table/data-table.component.mjs +214 -16
  11. package/esm2020/lib/components/date-picker/date-picker.component.mjs +66 -54
  12. package/esm2020/lib/components/dialog/dialog.component.mjs +171 -38
  13. package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +300 -0
  14. package/esm2020/lib/components/drawer/drawer.component.mjs +123 -16
  15. package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +3 -2
  16. package/esm2020/lib/components/hover-card/hover-card.component.mjs +185 -24
  17. package/esm2020/lib/components/input/input.component.mjs +15 -15
  18. package/esm2020/lib/components/input-group/input-group.component.mjs +14 -14
  19. package/esm2020/lib/components/menubar/menubar.component.mjs +105 -29
  20. package/esm2020/lib/components/navigation-menu/navigation-menu.component.mjs +25 -3
  21. package/esm2020/lib/components/pagination/pagination.component.mjs +3 -3
  22. package/esm2020/lib/components/popover/popover.component.mjs +107 -73
  23. package/esm2020/lib/components/select/select.component.mjs +26 -23
  24. package/esm2020/lib/components/sheet/sheet.component.mjs +68 -12
  25. package/esm2020/lib/components/sidebar/sidebar.component.mjs +52 -5
  26. package/esm2020/lib/components/table/table.component.mjs +165 -192
  27. package/esm2020/lib/components/tabs/tabs.component.mjs +6 -6
  28. package/esm2020/lib/components/toggle-group/toggle-group.component.mjs +6 -6
  29. package/esm2020/lib/components/tooltip/tooltip.component.mjs +162 -19
  30. package/esm2020/lib/overlay/z-index-helper.mjs +69 -0
  31. package/esm2020/lib/pdm-ui-kit.module.mjs +5 -1
  32. package/esm2020/lib/utils/responsive.mjs +143 -0
  33. package/esm2020/lib/utils/z-index.mjs +90 -0
  34. package/esm2020/public-api.mjs +67 -63
  35. package/fesm2015/pdm-ui-kit.mjs +2628 -847
  36. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  37. package/fesm2020/pdm-ui-kit.mjs +2630 -845
  38. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  39. package/lib/components/breadcrumb/breadcrumb.component.d.ts +23 -1
  40. package/lib/components/button-group/button-group.component.d.ts +8 -2
  41. package/lib/components/card/card.component.d.ts +32 -19
  42. package/lib/components/combobox/combobox.component.d.ts +20 -3
  43. package/lib/components/context-menu/context-menu.component.d.ts +17 -8
  44. package/lib/components/data-table/data-table.component.d.ts +172 -14
  45. package/lib/components/date-picker/date-picker.component.d.ts +5 -6
  46. package/lib/components/dialog/dialog.component.d.ts +38 -4
  47. package/lib/components/draggable-table/draggable-table.component.d.ts +74 -0
  48. package/lib/components/drawer/drawer.component.d.ts +65 -7
  49. package/lib/components/hover-card/hover-card.component.d.ts +27 -4
  50. package/lib/components/input/input.component.d.ts +3 -3
  51. package/lib/components/input-group/input-group.component.d.ts +1 -1
  52. package/lib/components/menubar/menubar.component.d.ts +16 -8
  53. package/lib/components/navigation-menu/navigation-menu.component.d.ts +22 -1
  54. package/lib/components/popover/popover.component.d.ts +13 -12
  55. package/lib/components/select/select.component.d.ts +4 -5
  56. package/lib/components/sheet/sheet.component.d.ts +30 -3
  57. package/lib/components/sidebar/sidebar.component.d.ts +39 -1
  58. package/lib/components/table/table.component.d.ts +47 -26
  59. package/lib/components/tabs/tabs.component.d.ts +1 -1
  60. package/lib/components/toggle-group/toggle-group.component.d.ts +1 -1
  61. package/lib/components/tooltip/tooltip.component.d.ts +21 -3
  62. package/lib/overlay/z-index-helper.d.ts +36 -0
  63. package/lib/pdm-ui-kit.module.d.ts +42 -41
  64. package/lib/utils/responsive.d.ts +107 -0
  65. package/lib/utils/z-index.d.ts +69 -0
  66. package/package.json +10 -8
  67. package/public-api.d.ts +66 -62
  68. package/src/lib/styles/tokens.css +182 -0
@@ -1,12 +1,70 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ export declare type PdmDrawerPosition = 'bottom' | 'left' | 'right' | 'top';
4
+ export declare type PdmDrawerSize = 'sm' | 'md' | 'lg' | 'full';
5
+ /**
6
+ * @deprecated Use specific drawer types. Will be removed in v0.3.0
7
+ */
3
8
  export declare type PdmDrawerVariant = 'drawer' | 'responsive-dialog';
9
+ /**
10
+ * Drawer/Sheet component con soporte responsive
11
+ *
12
+ * MEJORADO en v0.2.0:
13
+ * - Posicionamiento configurable (bottom, left, right, top)
14
+ * - Tamaños predefinidos
15
+ * - Responsive: bottom sheet en mobile, side panel en desktop
16
+ * - Contenido genérico via ng-content
17
+ *
18
+ * @example
19
+ * // Drawer simple desde el bottom
20
+ * <pdm-drawer [open]="isOpen" position="bottom">
21
+ * <h3>Title</h3>
22
+ * <p>Content</p>
23
+ * </pdm-drawer>
24
+ *
25
+ * @example
26
+ * // Side panel desde la right
27
+ * <pdm-drawer [open]="isOpen" position="right" size="md">
28
+ * <p>Content</p>
29
+ * </pdm-drawer>
30
+ */
4
31
  export declare class PdmDrawerComponent {
5
32
  open: boolean;
33
+ /**
34
+ * Posición del drawer
35
+ * - bottom: desde abajo (default, mejor para mobile)
36
+ * - left: side panel desde izquierda
37
+ * - right: side panel desde derecha
38
+ * - top: desde arriba (poco común)
39
+ */
40
+ position: PdmDrawerPosition;
41
+ /**
42
+ * Tamaño del drawer
43
+ * - sm: 400px (side) / 50vh (bottom/top)
44
+ * - md: 500px (side) / 66vh (bottom/top) (default)
45
+ * - lg: 640px (side) / 80vh (bottom/top)
46
+ * - full: 100% ancho/alto
47
+ */
48
+ size: PdmDrawerSize;
49
+ /**
50
+ * @deprecated Use position="bottom" instead
51
+ */
6
52
  variant: PdmDrawerVariant;
7
53
  className: string;
8
54
  title: string;
9
55
  description: string;
56
+ /**
57
+ * Mostrar handle visual (línea para arrastrar)
58
+ * Solo tiene sentido en position="bottom"
59
+ */
60
+ showHandle: boolean;
61
+ /**
62
+ * Mostrar botón de cerrar
63
+ */
64
+ showCloseButton: boolean;
65
+ closeOnEsc: boolean;
66
+ closeOnBackdropClick: boolean;
67
+ openChange: EventEmitter<boolean>;
10
68
  value: number | string;
11
69
  unit: string;
12
70
  decrementLabel: string;
@@ -20,19 +78,19 @@ export declare class PdmDrawerComponent {
20
78
  usernameLabel: string;
21
79
  usernameValue: string;
22
80
  responsivePrimaryLabel: string;
23
- /** Close when the ESC key is pressed. Default: `true`. */
24
- closeOnEsc: boolean;
25
- /** Close when the backdrop is clicked. Default: `true`. */
26
- closeOnBackdropClick: boolean;
27
- openChange: EventEmitter<boolean>;
81
+ bars: number[];
28
82
  primaryAction: EventEmitter<void>;
29
83
  secondaryAction: EventEmitter<void>;
30
- bars: number[];
31
84
  onEsc(): void;
32
85
  onBackdropClick(): void;
33
86
  close(): void;
34
87
  onPrimaryAction(): void;
35
88
  onSecondaryAction(): void;
89
+ get containerClassName(): string;
90
+ get panelClassName(): string;
91
+ private getPositionClasses;
92
+ private getSizeClasses;
93
+ get showLegacyContent(): boolean;
36
94
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmDrawerComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<PdmDrawerComponent, "pdm-drawer", never, { "open": "open"; "variant": "variant"; "className": "className"; "title": "title"; "description": "description"; "value": "value"; "unit": "unit"; "decrementLabel": "decrementLabel"; "incrementLabel": "incrementLabel"; "primaryLabel": "primaryLabel"; "secondaryLabel": "secondaryLabel"; "profileTitle": "profileTitle"; "profileDescription": "profileDescription"; "nameLabel": "nameLabel"; "nameValue": "nameValue"; "usernameLabel": "usernameLabel"; "usernameValue": "usernameValue"; "responsivePrimaryLabel": "responsivePrimaryLabel"; "closeOnEsc": "closeOnEsc"; "closeOnBackdropClick": "closeOnBackdropClick"; "bars": "bars"; }, { "openChange": "openChange"; "primaryAction": "primaryAction"; "secondaryAction": "secondaryAction"; }, never, never, false>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<PdmDrawerComponent, "pdm-drawer", never, { "open": "open"; "position": "position"; "size": "size"; "variant": "variant"; "className": "className"; "title": "title"; "description": "description"; "showHandle": "showHandle"; "showCloseButton": "showCloseButton"; "closeOnEsc": "closeOnEsc"; "closeOnBackdropClick": "closeOnBackdropClick"; "value": "value"; "unit": "unit"; "decrementLabel": "decrementLabel"; "incrementLabel": "incrementLabel"; "primaryLabel": "primaryLabel"; "secondaryLabel": "secondaryLabel"; "profileTitle": "profileTitle"; "profileDescription": "profileDescription"; "nameLabel": "nameLabel"; "nameValue": "nameValue"; "usernameLabel": "usernameLabel"; "usernameValue": "usernameValue"; "responsivePrimaryLabel": "responsivePrimaryLabel"; "bars": "bars"; }, { "openChange": "openChange"; "primaryAction": "primaryAction"; "secondaryAction": "secondaryAction"; }, never, ["*"], false>;
38
96
  }
@@ -1,14 +1,37 @@
1
+ import { ChangeDetectorRef, ElementRef, OnDestroy, ViewContainerRef } from "@angular/core";
2
+ import { Overlay } from "@angular/cdk/overlay";
1
3
  import * as i0 from "@angular/core";
2
- export declare type PdmHoverCardSide = 'top' | 'right' | 'bottom' | 'left';
3
- export declare type PdmHoverCardAlign = 'start' | 'center' | 'end';
4
- export declare class PdmHoverCardComponent {
4
+ export declare type PdmHoverCardSide = "top" | "right" | "bottom" | "left";
5
+ export declare type PdmHoverCardAlign = "start" | "center" | "end";
6
+ export declare class PdmHoverCardComponent implements OnDestroy {
7
+ private readonly overlay;
8
+ private readonly viewContainerRef;
9
+ private readonly elementRef;
10
+ private readonly cdr;
5
11
  className: string;
6
12
  panelClassName: string;
7
13
  side: PdmHoverCardSide;
8
14
  align: PdmHoverCardAlign;
9
15
  panelWidth: number;
10
16
  open: boolean;
11
- get positionClass(): string;
17
+ private overlayRef;
18
+ private showTimeout;
19
+ private hideTimeout;
20
+ panelTemplateRef: any;
21
+ constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
22
+ ngOnDestroy(): void;
23
+ onMouseEnter(): void;
24
+ onMouseLeave(): void;
25
+ onFocusIn(): void;
26
+ onFocusOut(): void;
27
+ private clearTimeouts;
28
+ private show;
29
+ private hide;
30
+ private createOverlay;
31
+ private destroyOverlay;
32
+ private getPositionConfigs;
33
+ private getAlignX;
34
+ private getAlignY;
12
35
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmHoverCardComponent, never>;
13
36
  static ɵcmp: i0.ɵɵComponentDeclaration<PdmHoverCardComponent, "pdm-hover-card", never, { "className": "className"; "panelClassName": "panelClassName"; "side": "side"; "align": "align"; "panelWidth": "panelWidth"; }, {}, never, ["[pdmHoverTrigger]", "[pdmHoverContent]"], false>;
14
37
  }
@@ -1,7 +1,7 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
- export declare type PdmInputSize = 'mini' | 'small' | 'regular' | 'large';
4
- export declare type PdmInputRoundness = 'default' | 'round';
3
+ export declare type PdmInputSize = "mini" | "small" | "regular" | "large";
4
+ export declare type PdmInputRoundness = "default" | "round";
5
5
  export declare class PdmInputComponent {
6
6
  id: string;
7
7
  type: string;
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class PdmInputGroupComponent {
4
4
  id: string;
@@ -1,26 +1,34 @@
1
- import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { PdmMenuItem } from '../dropdown-menu/dropdown-menu.component';
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, ViewContainerRef } from "@angular/core";
2
+ import { Overlay } from "@angular/cdk/overlay";
3
+ import { PdmMenuItem } from "../dropdown-menu/dropdown-menu.component";
3
4
  import * as i0 from "@angular/core";
4
5
  export interface PdmMenubarItem {
5
6
  label: string;
6
7
  items: PdmMenuItem[];
7
8
  }
8
9
  export declare class PdmMenubarComponent implements OnInit, OnDestroy {
10
+ private readonly overlay;
11
+ private readonly viewContainerRef;
9
12
  private readonly elementRef;
10
13
  private readonly cdr;
11
14
  menus: PdmMenubarItem[];
12
15
  className: string;
16
+ panelClassName: string;
13
17
  itemSelect: EventEmitter<string>;
14
18
  openIndex: number;
15
- private boundPointerDown;
16
- constructor(elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
19
+ menuTemplateRef: any;
20
+ private overlayRef;
21
+ private outsideClickSub;
22
+ constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
17
23
  ngOnInit(): void;
18
24
  ngOnDestroy(): void;
19
- onEsc(): void;
20
- toggle(index: number): void;
25
+ onDocumentClickOrEsc(event: MouseEvent | KeyboardEvent): void;
26
+ toggle(index: number, event: MouseEvent): void;
21
27
  select(value: string): void;
22
28
  selectItem(item: PdmMenuItem): void;
23
- private onDocumentPointerDown;
29
+ private createOverlay;
30
+ private destroyOverlay;
31
+ private getPositionConfigs;
24
32
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmMenubarComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<PdmMenubarComponent, "pdm-menubar", never, { "menus": "menus"; "className": "className"; }, { "itemSelect": "itemSelect"; }, never, never, false>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<PdmMenubarComponent, "pdm-menubar", never, { "menus": "menus"; "className": "className"; "panelClassName": "panelClassName"; }, { "itemSelect": "itemSelect"; }, never, never, false>;
26
34
  }
@@ -4,9 +4,30 @@ export interface PdmNavigationItem {
4
4
  href?: string;
5
5
  active?: boolean;
6
6
  }
7
+ export declare type PdmNavigationMobileMode = 'scroll' | 'compact';
8
+ /**
9
+ * Navigation Menu component - Navegación horizontal responsive
10
+ *
11
+ * MEJORAS en v0.2.0:
12
+ * - Modo scroll: overflow-x-auto con scroll indicators en mobile
13
+ * - Modo compact: items abreviados en mobile, completos en desktop
14
+ * - Scroll smooth automático al item activo
15
+ *
16
+ * @example
17
+ * <!-- Scroll horizontal (default) -->
18
+ * <pdm-navigation-menu [items]="navItems"></pdm-navigation-menu>
19
+ *
20
+ * <!-- Compact mode -->
21
+ * <pdm-navigation-menu [items]="navItems" mobileMode="compact"></pdm-navigation-menu>
22
+ */
7
23
  export declare class PdmNavigationMenuComponent {
8
24
  items: PdmNavigationItem[];
9
25
  className: string;
26
+ /**
27
+ * Mobile behavior: 'scroll' (horizontal scroll) o 'compact' (items reducidos)
28
+ * @default 'scroll'
29
+ */
30
+ mobileMode: PdmNavigationMobileMode;
10
31
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmNavigationMenuComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<PdmNavigationMenuComponent, "pdm-navigation-menu", never, { "items": "items"; "className": "className"; }, {}, never, never, false>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<PdmNavigationMenuComponent, "pdm-navigation-menu", never, { "items": "items"; "className": "className"; "mobileMode": "mobileMode"; }, {}, never, never, false>;
12
33
  }
@@ -1,6 +1,9 @@
1
- import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, ViewContainerRef } from "@angular/core";
2
+ import { Overlay } from "@angular/cdk/overlay";
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class PdmPopoverComponent implements OnInit, OnDestroy {
5
+ private readonly overlay;
6
+ private readonly viewContainerRef;
4
7
  private readonly elementRef;
5
8
  private readonly cdr;
6
9
  private _open;
@@ -9,23 +12,21 @@ export declare class PdmPopoverComponent implements OnInit, OnDestroy {
9
12
  panelClassName: string;
10
13
  showTrigger: boolean;
11
14
  openChange: EventEmitter<boolean>;
12
- panelPlacement: 'top' | 'bottom';
13
- private anchorRef?;
14
15
  private triggerRef?;
15
- private panelRef?;
16
- private boundPointerDown;
17
- constructor(elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
16
+ private panelTemplateRef;
17
+ private overlayRef;
18
+ private outsideClickSub;
19
+ constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
18
20
  ngOnInit(): void;
19
21
  ngOnDestroy(): void;
20
22
  set open(value: boolean);
21
23
  get open(): boolean;
22
- get panelClasses(): string[];
23
24
  toggle(): void;
24
25
  onEsc(): void;
25
- onViewportChange(): void;
26
- private onDocumentPointerDown;
27
- private schedulePanelPlacementUpdate;
28
- private updatePanelPlacement;
26
+ private openPanel;
27
+ private closePanel;
28
+ private destroyOverlay;
29
+ private getPositionConfigs;
29
30
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmPopoverComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<PdmPopoverComponent, "pdm-popover", never, { "triggerText": "triggerText"; "className": "className"; "panelClassName": "panelClassName"; "showTrigger": "showTrigger"; "open": "open"; }, { "openChange": "openChange"; }, never, ["*"], false>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<PdmPopoverComponent, "pdm-popover", never, { "triggerText": "triggerText"; "className": "className"; "panelClassName": "panelClassName"; "showTrigger": "showTrigger"; "open": "open"; }, { "openChange": "openChange"; }, never, ["[pdmPopoverTrigger]", "*"], false>;
31
32
  }
@@ -1,6 +1,6 @@
1
- import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, ViewContainerRef } from '@angular/core';
2
- import { Overlay } from '@angular/cdk/overlay';
3
- import { PdmOverlayOptions } from '../../overlay/pdm-overlay-options';
1
+ import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnDestroy, ViewContainerRef } from "@angular/core";
2
+ import { Overlay } from "@angular/cdk/overlay";
3
+ import { PdmOverlayOptions } from "../../overlay/pdm-overlay-options";
4
4
  import * as i0 from "@angular/core";
5
5
  export interface PdmSelectOption {
6
6
  label: string;
@@ -8,7 +8,6 @@ export interface PdmSelectOption {
8
8
  disabled?: boolean;
9
9
  }
10
10
  export declare class PdmSelectComponent implements AfterContentInit, OnDestroy {
11
- private readonly elementRef;
12
11
  private readonly cdr;
13
12
  private readonly overlay;
14
13
  private readonly viewContainerRef;
@@ -33,7 +32,7 @@ export declare class PdmSelectComponent implements AfterContentInit, OnDestroy {
33
32
  private projectedOptions;
34
33
  private overlayRef;
35
34
  private backdropSub;
36
- constructor(elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef, overlay: Overlay, viewContainerRef: ViewContainerRef);
35
+ constructor(cdr: ChangeDetectorRef, overlay: Overlay, viewContainerRef: ViewContainerRef);
37
36
  ngAfterContentInit(): void;
38
37
  ngOnDestroy(): void;
39
38
  /**
@@ -1,19 +1,46 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare type PdmSheetSide = 'top' | 'right' | 'bottom' | 'left';
4
+ export declare type PdmSheetSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
5
+ /**
6
+ * Sheet/Side panel component con soporte responsive
7
+ *
8
+ * MEJORADO en v0.2.0:
9
+ * - Tamaños configurables
10
+ * - Mejor manejo de overflow
11
+ * - Responsive sizes
12
+ *
13
+ * @example
14
+ * <pdm-sheet [open]="isOpen" side="right" size="md">
15
+ * <h3>Settings</h3>
16
+ * <p>Content here</p>
17
+ * </pdm-sheet>
18
+ */
4
19
  export declare class PdmSheetComponent {
5
20
  open: boolean;
21
+ /**
22
+ * Lado desde donde aparece el sheet
23
+ */
6
24
  side: PdmSheetSide;
25
+ /**
26
+ * Tamaño del sheet
27
+ * - sm: 320px (side) / 40vh (top/bottom)
28
+ * - md: 400px (side) / 50vh (top/bottom) (default)
29
+ * - lg: 500px (side) / 66vh (top/bottom)
30
+ * - xl: 640px (side) / 80vh (top/bottom)
31
+ * - full: 100%
32
+ */
33
+ size: PdmSheetSize;
7
34
  className: string;
8
- /** Close when the ESC key is pressed. Default: `true`. */
9
35
  closeOnEsc: boolean;
10
- /** Close when the backdrop is clicked. Default: `true`. */
11
36
  closeOnBackdropClick: boolean;
12
37
  openChange: EventEmitter<boolean>;
13
38
  onEsc(): void;
14
39
  onBackdropClick(): void;
15
40
  close(): void;
16
41
  get panelClass(): string;
42
+ private getPositionClass;
43
+ private getSizingClass;
17
44
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmSheetComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<PdmSheetComponent, "pdm-sheet", never, { "open": "open"; "side": "side"; "className": "className"; "closeOnEsc": "closeOnEsc"; "closeOnBackdropClick": "closeOnBackdropClick"; }, { "openChange": "openChange"; }, never, ["*"], false>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<PdmSheetComponent, "pdm-sheet", never, { "open": "open"; "side": "side"; "size": "size"; "className": "className"; "closeOnEsc": "closeOnEsc"; "closeOnBackdropClick": "closeOnBackdropClick"; }, { "openChange": "openChange"; }, never, ["*"], false>;
19
46
  }
@@ -1,7 +1,45 @@
1
+ import { EventEmitter } from '@angular/core';
1
2
  import * as i0 from "@angular/core";
3
+ export declare type PdmSidebarMobileMode = 'drawer' | 'sidebar';
4
+ /**
5
+ * Sidebar component - Navegación lateral responsive
6
+ *
7
+ * MEJORAS en v0.2.0:
8
+ * - Mobile drawer mode: overlay fullscreen en mobile, sidebar fijo en desktop
9
+ * - Sidebar mode: sidebar persistente con widths responsive
10
+ * - Backdrop automático en mobile drawer mode
11
+ *
12
+ * @example
13
+ * <!-- Mobile drawer (default) -->
14
+ * <pdm-sidebar [open]="sidebarOpen" (openChange)="sidebarOpen = $event">
15
+ * <nav>Menu items...</nav>
16
+ * </pdm-sidebar>
17
+ *
18
+ * <!-- Sidebar persistente -->
19
+ * <pdm-sidebar mobileMode="sidebar" [collapsed]="collapsed">
20
+ * <nav>Menu items...</nav>
21
+ * </pdm-sidebar>
22
+ */
2
23
  export declare class PdmSidebarComponent {
24
+ /**
25
+ * Mobile behavior: 'drawer' (overlay) o 'sidebar' (persistente)
26
+ * @default 'drawer'
27
+ */
28
+ mobileMode: PdmSidebarMobileMode;
29
+ /**
30
+ * Collapsed state (solo aplica en mobileMode="sidebar")
31
+ */
3
32
  collapsed: boolean;
33
+ /**
34
+ * Open state (solo aplica en mobileMode="drawer")
35
+ */
36
+ open: boolean;
4
37
  className: string;
38
+ /**
39
+ * Emite cuando el drawer se cierra (solo en mobileMode="drawer")
40
+ */
41
+ openChange: EventEmitter<boolean>;
42
+ onBackdropClick(): void;
5
43
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmSidebarComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<PdmSidebarComponent, "pdm-sidebar", never, { "collapsed": "collapsed"; "className": "className"; }, {}, never, ["*"], false>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<PdmSidebarComponent, "pdm-sidebar", never, { "mobileMode": "mobileMode"; "collapsed": "collapsed"; "open": "open"; "className": "className"; }, { "openChange": "openChange"; }, never, ["*", "*"], false>;
7
45
  }
@@ -1,34 +1,55 @@
1
- import { ElementRef, EventEmitter, Renderer2, SimpleChanges } from '@angular/core';
1
+ import { type TableResponsiveStrategy } from "../../utils/responsive";
2
2
  import * as i0 from "@angular/core";
3
- export declare type PdmTableVariant = 'default' | 'data' | 'interactive';
3
+ export declare type PdmTableVariant = "default" | "data" | "interactive";
4
+ /**
5
+ * Componente base de tabla con soporte responsive
6
+ *
7
+ * SIMPLIFICADO: Ya no incluye drag & drop (usar pdm-draggable-table para eso)
8
+ *
9
+ * @example
10
+ * // Tabla simple con scroll horizontal
11
+ * <pdm-table variant="default">
12
+ * <thead><tr><th>Name</th><th>Email</th></tr></thead>
13
+ * <tbody><tr><td>John</td><td>john@example.com</td></tr></tbody>
14
+ * </pdm-table>
15
+ *
16
+ * @example
17
+ * // Tabla interactiva con wrap en mobile
18
+ * <pdm-table variant="interactive" responsiveStrategy="wrap">
19
+ * ...
20
+ * </pdm-table>
21
+ */
4
22
  export declare class PdmTableComponent {
5
- private readonly renderer;
23
+ /**
24
+ * Variante visual de la tabla
25
+ * - default: tabla básica sin estilos extra
26
+ * - data: tabla con bordes y espaciado para data
27
+ * - interactive: tabla con hover, sticky header y estilos interactivos
28
+ */
6
29
  variant: PdmTableVariant;
7
- reorderRows: boolean;
8
- dragHandleSelector: string;
30
+ /**
31
+ * Estrategia responsive para la tabla
32
+ * - scroll: scroll horizontal en mobile (default, más simple)
33
+ * - wrap: permite que el contenido haga wrap
34
+ * - stack: convierte filas en cards en mobile (requiere data-label en celdas)
35
+ * - collapse: oculta columnas menos importantes en mobile
36
+ */
37
+ responsiveStrategy: TableResponsiveStrategy;
38
+ /**
39
+ * Clases CSS adicionales para el wrapper
40
+ */
9
41
  className: string;
10
- rowOrderChange: EventEmitter<string[]>;
11
- tableElement?: ElementRef<HTMLTableElement>;
12
- private cleanupListeners;
13
- private observer?;
14
- private draggedRow;
15
- constructor(renderer: Renderer2);
16
- ngAfterViewInit(): void;
17
- ngOnChanges(changes: SimpleChanges): void;
18
- ngOnDestroy(): void;
42
+ /**
43
+ * Si es true, aplica padding negativo en mobile para scroll edge-to-edge
44
+ * Útil cuando la tabla está dentro de un container con padding
45
+ */
46
+ fullBleed: boolean;
19
47
  get wrapperClasses(): string[];
20
48
  get tableClasses(): string[];
21
- private syncReorderBehavior;
22
- private cleanupReorderBehavior;
23
- private get isReorderEnabled();
24
- private getTbody;
25
- private setRowsDraggable;
26
- private syncAutoDragHandle;
27
- private onDragStart;
28
- private onDragOver;
29
- private onDrop;
30
- private onDragEnd;
31
- private armDragFromHandle;
49
+ private getResponsiveStrategyClasses;
50
+ private getVariantWrapperClasses;
51
+ private getVariantTableClasses;
52
+ private getCellClasses;
32
53
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmTableComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<PdmTableComponent, "pdm-table", never, { "variant": "variant"; "reorderRows": "reorderRows"; "dragHandleSelector": "dragHandleSelector"; "className": "className"; }, { "rowOrderChange": "rowOrderChange"; }, never, ["*"], false>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<PdmTableComponent, "pdm-table", never, { "variant": "variant"; "responsiveStrategy": "responsiveStrategy"; "className": "className"; "fullBleed": "fullBleed"; }, {}, never, ["*"], false>;
34
55
  }
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, EventEmitter } from '@angular/core';
1
+ import { ChangeDetectorRef, EventEmitter } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export interface PdmTabItem {
4
4
  label: string;
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export interface PdmToggleGroupItem {
4
4
  label: string;
@@ -1,10 +1,28 @@
1
+ import { ChangeDetectorRef, ElementRef, OnDestroy, ViewContainerRef } from "@angular/core";
2
+ import { Overlay } from "@angular/cdk/overlay";
1
3
  import * as i0 from "@angular/core";
2
- export declare class PdmTooltipComponent {
4
+ export declare class PdmTooltipComponent implements OnDestroy {
5
+ private readonly overlay;
6
+ private readonly viewContainerRef;
7
+ private readonly elementRef;
8
+ private readonly cdr;
3
9
  text: string;
4
- side: 'top' | 'right' | 'bottom' | 'left';
10
+ side: "top" | "right" | "bottom" | "left";
5
11
  className: string;
12
+ tooltipTemplate: any;
6
13
  open: boolean;
7
- get positionClass(): string;
14
+ private overlayRef;
15
+ constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
16
+ ngOnDestroy(): void;
17
+ onMouseEnter(): void;
18
+ onMouseLeave(): void;
19
+ onFocusIn(): void;
20
+ onFocusOut(): void;
21
+ private show;
22
+ private hide;
23
+ private createOverlay;
24
+ private destroyOverlay;
25
+ private getPositionConfigs;
8
26
  static ɵfac: i0.ɵɵFactoryDeclaration<PdmTooltipComponent, never>;
9
27
  static ɵcmp: i0.ɵɵComponentDeclaration<PdmTooltipComponent, "pdm-tooltip", never, { "text": "text"; "side": "side"; "className": "className"; }, {}, never, ["*"], false>;
10
28
  }
@@ -0,0 +1,36 @@
1
+ export interface OverlayConfig {
2
+ panelClass?: string | string[];
3
+ }
4
+ /**
5
+ * Z-Index helper for overlay components.
6
+ *
7
+ * CRITICAL: Consumer custom panelClass MUST NOT replace the base z-index.
8
+ * This helper ensures z-index is preserved when merging custom classes.
9
+ */
10
+ /**
11
+ * Base z-index class for overlays - MUST be included in any overlay panel.
12
+ * This ensures overlays appear above modals (z-50) and drawers (z-40).
13
+ */
14
+ export declare const OVERLAY_BASE_Z_INDEX = "z-[70]";
15
+ /**
16
+ * Merge consumer's panelClass with our base z-index.
17
+ * Consumer classes are APPENDED, not replacing our z-index guarantee.
18
+ *
19
+ * @param baseZIndex - Base z-index class to enforce (default: OVERLAY_BASE_Z_INDEX)
20
+ * @param consumerClasses - Optional additional classes from consumer
21
+ * @returns Array of classes safe for CDK Overlay panelClass
22
+ */
23
+ export declare function mergeOverlayPanelClass(baseZIndex?: string, consumerClasses?: string | string[]): string[];
24
+ /**
25
+ * Create OverlayConfig with guaranteed z-index.
26
+ * Use this instead of direct OverlayConfig to ensure z-index enforcement.
27
+ *
28
+ * @param baseConfig - Base overlay configuration
29
+ * @param consumerPanelClass - Optional consumer panelClass to merge
30
+ * @returns OverlayConfig with z-index guarantee
31
+ */
32
+ export declare function createZIndexEnforcedOverlay(baseConfig: OverlayConfig, consumerPanelClass?: string | string[]): OverlayConfig;
33
+ /**
34
+ * Helper to extract z-index from a class string for debugging.
35
+ */
36
+ export declare function extractZIndex(classes: string | string[]): string | null;