pdm-ui-kit 1.2.0 → 1.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 (159) hide show
  1. package/aspect-ratio/aspect-ratio.component.d.ts +1 -1
  2. package/aspect-ratio/aspect-ratio.module.d.ts +5 -2
  3. package/badge/badge.component.d.ts +1 -1
  4. package/badge/badge.module.d.ts +5 -2
  5. package/button/button-theme.constant.d.ts +2 -0
  6. package/button/button.component.d.ts +1 -4
  7. package/button/testing/button-harness.d.ts +23 -0
  8. package/checkbox/testing/checkbox-harness.d.ts +22 -0
  9. package/dialog/dialog.module.d.ts +2 -1
  10. package/dialog/testing/dialog-harness.d.ts +26 -0
  11. package/esm2020/alert/alert.component.mjs +3 -3
  12. package/esm2020/aspect-ratio/aspect-ratio.component.mjs +4 -3
  13. package/esm2020/aspect-ratio/aspect-ratio.module.mjs +9 -10
  14. package/esm2020/badge/badge.component.mjs +4 -3
  15. package/esm2020/badge/badge.module.mjs +9 -10
  16. package/esm2020/button/button-theme.constant.mjs +55 -0
  17. package/esm2020/button/button.component.mjs +5 -18
  18. package/esm2020/button/testing/button-harness.mjs +51 -0
  19. package/esm2020/checkbox/testing/checkbox-harness.mjs +54 -0
  20. package/esm2020/dialog/dialog.component.mjs +5 -4
  21. package/esm2020/dialog/dialog.module.mjs +5 -4
  22. package/esm2020/dialog/testing/dialog-harness.mjs +87 -0
  23. package/esm2020/empty/empty.component.mjs +1 -1
  24. package/esm2020/icon/icon.component.mjs +4 -3
  25. package/esm2020/icon/icon.module.mjs +9 -10
  26. package/esm2020/input/input.component.mjs +16 -4
  27. package/esm2020/input/testing/input-harness.mjs +68 -0
  28. package/esm2020/kbd/kbd.component.mjs +4 -3
  29. package/esm2020/kbd/kbd.module.mjs +9 -10
  30. package/esm2020/pagination/pagination.component.mjs +35 -5
  31. package/esm2020/pagination/testing/pagination-harness.mjs +76 -0
  32. package/esm2020/public-api.mjs +3 -1
  33. package/esm2020/select/testing/select-harness.mjs +75 -0
  34. package/esm2020/separator/separator.component.mjs +4 -3
  35. package/esm2020/separator/separator.module.mjs +9 -10
  36. package/esm2020/skeleton/skeleton.component.mjs +4 -3
  37. package/esm2020/skeleton/skeleton.module.mjs +9 -10
  38. package/esm2020/spinner/spinner.component.mjs +4 -3
  39. package/esm2020/spinner/spinner.module.mjs +9 -10
  40. package/esm2020/src/alert/alert.component.mjs +3 -3
  41. package/esm2020/src/aspect-ratio/aspect-ratio.component.mjs +4 -3
  42. package/esm2020/src/aspect-ratio/aspect-ratio.module.mjs +9 -10
  43. package/esm2020/src/badge/badge.component.mjs +4 -3
  44. package/esm2020/src/badge/badge.module.mjs +9 -10
  45. package/esm2020/src/button/button-theme.constant.mjs +55 -0
  46. package/esm2020/src/button/button.component.mjs +5 -18
  47. package/esm2020/src/dialog/dialog.component.mjs +5 -4
  48. package/esm2020/src/dialog/dialog.module.mjs +5 -4
  49. package/esm2020/src/empty/empty.component.mjs +1 -1
  50. package/esm2020/src/icon/icon.component.mjs +4 -3
  51. package/esm2020/src/icon/icon.module.mjs +9 -10
  52. package/esm2020/src/input/input.component.mjs +16 -4
  53. package/esm2020/src/kbd/kbd.component.mjs +4 -3
  54. package/esm2020/src/kbd/kbd.module.mjs +9 -10
  55. package/esm2020/src/pagination/pagination.component.mjs +35 -5
  56. package/esm2020/src/separator/separator.component.mjs +4 -3
  57. package/esm2020/src/separator/separator.module.mjs +9 -10
  58. package/esm2020/src/skeleton/skeleton.component.mjs +4 -3
  59. package/esm2020/src/skeleton/skeleton.module.mjs +9 -10
  60. package/esm2020/src/spinner/spinner.component.mjs +4 -3
  61. package/esm2020/src/spinner/spinner.module.mjs +9 -10
  62. package/esm2020/src/utils/public-api.mjs +2 -1
  63. package/esm2020/src/utils/validators.mjs +180 -0
  64. package/esm2020/testing.mjs +13 -0
  65. package/fesm2015/pdm-ui-kit-src-alert.mjs +2 -2
  66. package/fesm2015/pdm-ui-kit-src-alert.mjs.map +1 -1
  67. package/fesm2015/pdm-ui-kit-src-aspect-ratio.mjs +10 -10
  68. package/fesm2015/pdm-ui-kit-src-aspect-ratio.mjs.map +1 -1
  69. package/fesm2015/pdm-ui-kit-src-badge.mjs +10 -10
  70. package/fesm2015/pdm-ui-kit-src-badge.mjs.map +1 -1
  71. package/fesm2015/pdm-ui-kit-src-button.mjs +58 -17
  72. package/fesm2015/pdm-ui-kit-src-button.mjs.map +1 -1
  73. package/fesm2015/pdm-ui-kit-src-dialog.mjs +8 -6
  74. package/fesm2015/pdm-ui-kit-src-dialog.mjs.map +1 -1
  75. package/fesm2015/pdm-ui-kit-src-empty.mjs.map +1 -1
  76. package/fesm2015/pdm-ui-kit-src-icon.mjs +12 -12
  77. package/fesm2015/pdm-ui-kit-src-icon.mjs.map +1 -1
  78. package/fesm2015/pdm-ui-kit-src-input.mjs +15 -3
  79. package/fesm2015/pdm-ui-kit-src-input.mjs.map +1 -1
  80. package/fesm2015/pdm-ui-kit-src-kbd.mjs +10 -10
  81. package/fesm2015/pdm-ui-kit-src-kbd.mjs.map +1 -1
  82. package/fesm2015/pdm-ui-kit-src-pagination.mjs +34 -4
  83. package/fesm2015/pdm-ui-kit-src-pagination.mjs.map +1 -1
  84. package/fesm2015/pdm-ui-kit-src-separator.mjs +10 -10
  85. package/fesm2015/pdm-ui-kit-src-separator.mjs.map +1 -1
  86. package/fesm2015/pdm-ui-kit-src-skeleton.mjs +10 -10
  87. package/fesm2015/pdm-ui-kit-src-skeleton.mjs.map +1 -1
  88. package/fesm2015/pdm-ui-kit-src-spinner.mjs +10 -10
  89. package/fesm2015/pdm-ui-kit-src-spinner.mjs.map +1 -1
  90. package/fesm2015/pdm-ui-kit-src-utils.mjs +181 -1
  91. package/fesm2015/pdm-ui-kit-src-utils.mjs.map +1 -1
  92. package/fesm2015/pdm-ui-kit.mjs +846 -213
  93. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  94. package/fesm2020/pdm-ui-kit-src-alert.mjs +2 -2
  95. package/fesm2020/pdm-ui-kit-src-alert.mjs.map +1 -1
  96. package/fesm2020/pdm-ui-kit-src-aspect-ratio.mjs +10 -10
  97. package/fesm2020/pdm-ui-kit-src-aspect-ratio.mjs.map +1 -1
  98. package/fesm2020/pdm-ui-kit-src-badge.mjs +10 -10
  99. package/fesm2020/pdm-ui-kit-src-badge.mjs.map +1 -1
  100. package/fesm2020/pdm-ui-kit-src-button.mjs +58 -17
  101. package/fesm2020/pdm-ui-kit-src-button.mjs.map +1 -1
  102. package/fesm2020/pdm-ui-kit-src-dialog.mjs +8 -6
  103. package/fesm2020/pdm-ui-kit-src-dialog.mjs.map +1 -1
  104. package/fesm2020/pdm-ui-kit-src-empty.mjs.map +1 -1
  105. package/fesm2020/pdm-ui-kit-src-icon.mjs +12 -12
  106. package/fesm2020/pdm-ui-kit-src-icon.mjs.map +1 -1
  107. package/fesm2020/pdm-ui-kit-src-input.mjs +15 -3
  108. package/fesm2020/pdm-ui-kit-src-input.mjs.map +1 -1
  109. package/fesm2020/pdm-ui-kit-src-kbd.mjs +10 -10
  110. package/fesm2020/pdm-ui-kit-src-kbd.mjs.map +1 -1
  111. package/fesm2020/pdm-ui-kit-src-pagination.mjs +34 -4
  112. package/fesm2020/pdm-ui-kit-src-pagination.mjs.map +1 -1
  113. package/fesm2020/pdm-ui-kit-src-separator.mjs +10 -10
  114. package/fesm2020/pdm-ui-kit-src-separator.mjs.map +1 -1
  115. package/fesm2020/pdm-ui-kit-src-skeleton.mjs +10 -10
  116. package/fesm2020/pdm-ui-kit-src-skeleton.mjs.map +1 -1
  117. package/fesm2020/pdm-ui-kit-src-spinner.mjs +10 -10
  118. package/fesm2020/pdm-ui-kit-src-spinner.mjs.map +1 -1
  119. package/fesm2020/pdm-ui-kit-src-utils.mjs +181 -1
  120. package/fesm2020/pdm-ui-kit-src-utils.mjs.map +1 -1
  121. package/fesm2020/pdm-ui-kit.mjs +705 -213
  122. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  123. package/icon/icon.component.d.ts +1 -1
  124. package/icon/icon.module.d.ts +5 -2
  125. package/input/input.component.d.ts +4 -0
  126. package/input/testing/input-harness.d.ts +27 -0
  127. package/kbd/kbd.component.d.ts +1 -1
  128. package/kbd/kbd.module.d.ts +5 -2
  129. package/package.json +1 -1
  130. package/pagination/testing/pagination-harness.d.ts +21 -0
  131. package/public-api.d.ts +1 -0
  132. package/select/testing/select-harness.d.ts +25 -0
  133. package/separator/separator.component.d.ts +1 -1
  134. package/separator/separator.module.d.ts +5 -2
  135. package/skeleton/skeleton.component.d.ts +1 -1
  136. package/skeleton/skeleton.module.d.ts +5 -2
  137. package/spinner/spinner.component.d.ts +1 -1
  138. package/spinner/spinner.module.d.ts +5 -2
  139. package/src/aspect-ratio/aspect-ratio.component.d.ts +1 -1
  140. package/src/aspect-ratio/aspect-ratio.module.d.ts +5 -2
  141. package/src/badge/badge.component.d.ts +1 -1
  142. package/src/badge/badge.module.d.ts +5 -2
  143. package/src/button/button-theme.constant.d.ts +2 -0
  144. package/src/button/button.component.d.ts +1 -4
  145. package/src/dialog/dialog.module.d.ts +2 -1
  146. package/src/icon/icon.component.d.ts +1 -1
  147. package/src/icon/icon.module.d.ts +5 -2
  148. package/src/input/input.component.d.ts +4 -0
  149. package/src/kbd/kbd.component.d.ts +1 -1
  150. package/src/kbd/kbd.module.d.ts +5 -2
  151. package/src/separator/separator.component.d.ts +1 -1
  152. package/src/separator/separator.module.d.ts +5 -2
  153. package/src/skeleton/skeleton.component.d.ts +1 -1
  154. package/src/skeleton/skeleton.module.d.ts +5 -2
  155. package/src/spinner/spinner.component.d.ts +1 -1
  156. package/src/spinner/spinner.module.d.ts +5 -2
  157. package/src/utils/public-api.d.ts +1 -0
  158. package/src/utils/validators.d.ts +109 -0
  159. package/testing.d.ts +12 -0
@@ -12,12 +12,16 @@ import { createFlexiblePositionStrategy as createFlexiblePositionStrategy$1, mer
12
12
  import * as i2 from 'pdm-ui-kit/src/icon';
13
13
  import { PdmIconModule as PdmIconModule$1 } from 'pdm-ui-kit/src/icon';
14
14
  import { TABLE_RESPONSIVE as TABLE_RESPONSIVE$1, Z_INDEX as Z_INDEX$1, responsive as responsive$1 } from 'pdm-ui-kit/src/utils';
15
- import * as i2$1 from 'pdm-ui-kit/src/button';
15
+ import * as i2$1 from '@angular/cdk/a11y';
16
+ import { A11yModule } from '@angular/cdk/a11y';
17
+ import * as i2$2 from 'pdm-ui-kit/src/button';
16
18
  import { PdmButtonModule as PdmButtonModule$1 } from 'pdm-ui-kit/src/button';
17
19
  import { icons } from 'lucide';
18
20
  import * as i1$2 from '@angular/platform-browser';
19
21
  import * as i3$1 from 'pdm-ui-kit/src/select';
20
22
  import { PdmSelectModule as PdmSelectModule$1 } from 'pdm-ui-kit/src/select';
23
+ import { __awaiter } from 'tslib';
24
+ import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
21
25
 
22
26
  class PdmAccordionComponent {
23
27
  constructor() {
@@ -59,7 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
59
63
  type: Output
60
64
  }] } });
61
65
 
62
- const COMPONENTS$K = [
66
+ const COMPONENTS$D = [
63
67
  PdmAccordionComponent,
64
68
  ];
65
69
  class PdmAccordionModule {
@@ -71,8 +75,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
71
75
  type: NgModule,
72
76
  args: [{
73
77
  imports: [CommonModule],
74
- declarations: COMPONENTS$K,
75
- exports: COMPONENTS$K
78
+ declarations: COMPONENTS$D,
79
+ exports: COMPONENTS$D
76
80
  }]
77
81
  }] });
78
82
 
@@ -92,10 +96,10 @@ class PdmAlertComponent {
92
96
  }
93
97
  }
94
98
  PdmAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
95
- PdmAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAlertComponent, selector: "pdm-alert", inputs: { variant: "variant", title: "title", description: "description", details: "details", className: "className" }, ngImport: i0, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-lg border border-solid border-border bg-background p-4',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-destructive\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-sm font-medium',\n isDestructive ? 'text-destructive' : 'text-foreground'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-sm',\n isDestructive ? 'text-destructive' : 'text-muted-foreground'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-sm text-destructive\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
+ PdmAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAlertComponent, selector: "pdm-alert", inputs: { variant: "variant", title: "title", description: "description", details: "details", className: "className" }, ngImport: i0, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-lg border border-solid border-border bg-background p-4',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" aria-label=\"Success\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" aria-label=\"Info\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" aria-label=\"Error\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-destructive\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-sm font-medium',\n isDestructive ? 'text-destructive' : 'text-foreground'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-sm',\n isDestructive ? 'text-destructive' : 'text-muted-foreground'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-sm text-destructive\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
96
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertComponent, decorators: [{
97
101
  type: Component,
98
- args: [{ selector: 'pdm-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-lg border border-solid border-border bg-background p-4',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-destructive\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-sm font-medium',\n isDestructive ? 'text-destructive' : 'text-foreground'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-sm',\n isDestructive ? 'text-destructive' : 'text-muted-foreground'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-sm text-destructive\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n" }]
102
+ args: [{ selector: 'pdm-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-lg border border-solid border-border bg-background p-4',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" aria-label=\"Success\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" aria-label=\"Info\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" aria-label=\"Error\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-destructive\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-sm font-medium',\n isDestructive ? 'text-destructive' : 'text-foreground'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-sm',\n isDestructive ? 'text-destructive' : 'text-muted-foreground'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-sm text-destructive\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n" }]
99
103
  }], propDecorators: { variant: [{
100
104
  type: Input
101
105
  }], title: [{
@@ -192,7 +196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
192
196
  args: ['document:keydown.escape']
193
197
  }] } });
194
198
 
195
- const COMPONENTS$J = [
199
+ const COMPONENTS$C = [
196
200
  PdmAlertComponent,
197
201
  PdmAlertDialogComponent,
198
202
  ];
@@ -207,8 +211,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
207
211
  type: NgModule,
208
212
  args: [{
209
213
  imports: [CommonModule],
210
- declarations: COMPONENTS$J,
211
- exports: COMPONENTS$J
214
+ declarations: COMPONENTS$C,
215
+ exports: COMPONENTS$C
212
216
  }]
213
217
  }] });
214
218
 
@@ -226,10 +230,10 @@ class PdmAspectRatioComponent {
226
230
  }
227
231
  }
228
232
  PdmAspectRatioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
229
- PdmAspectRatioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAspectRatioComponent, selector: "pdm-aspect-ratio", inputs: { ratio: "ratio", imageSrc: "imageSrc", imageAlt: "imageAlt", className: "className" }, ngImport: i0, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-lg\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-lg object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
233
+ PdmAspectRatioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAspectRatioComponent, isStandalone: true, selector: "pdm-aspect-ratio", inputs: { ratio: "ratio", imageSrc: "imageSrc", imageAlt: "imageAlt", className: "className" }, ngImport: i0, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-lg\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-lg object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
230
234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioComponent, decorators: [{
231
235
  type: Component,
232
- args: [{ selector: 'pdm-aspect-ratio', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-lg\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-lg object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n" }]
236
+ args: [{ selector: 'pdm-aspect-ratio', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-lg\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-lg object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n" }]
233
237
  }], propDecorators: { ratio: [{
234
238
  type: Input
235
239
  }], imageSrc: [{
@@ -240,20 +244,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
240
244
  type: Input
241
245
  }] } });
242
246
 
243
- const COMPONENTS$I = [
244
- PdmAspectRatioComponent,
245
- ];
247
+ /**
248
+ * @deprecated Import PdmAspectRatioComponent directly instead. This module is kept for backwards compatibility.
249
+ * For modern Angular (v14+), use: import { PdmAspectRatioComponent } from 'pdm-ui-kit/aspect-ratio'
250
+ */
246
251
  class PdmAspectRatioModule {
247
252
  }
248
253
  PdmAspectRatioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
249
- PdmAspectRatioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioModule, declarations: [PdmAspectRatioComponent], imports: [CommonModule], exports: [PdmAspectRatioComponent] });
250
- PdmAspectRatioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioModule, imports: [CommonModule] });
254
+ PdmAspectRatioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioModule, imports: [PdmAspectRatioComponent], exports: [PdmAspectRatioComponent] });
255
+ PdmAspectRatioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioModule, imports: [PdmAspectRatioComponent] });
251
256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioModule, decorators: [{
252
257
  type: NgModule,
253
258
  args: [{
254
- imports: [CommonModule],
255
- declarations: COMPONENTS$I,
256
- exports: COMPONENTS$I
259
+ imports: [PdmAspectRatioComponent],
260
+ exports: [PdmAspectRatioComponent]
257
261
  }]
258
262
  }] });
259
263
 
@@ -300,7 +304,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
300
304
  type: Input
301
305
  }] } });
302
306
 
303
- const COMPONENTS$H = [
307
+ const COMPONENTS$B = [
304
308
  PdmAvatarComponent,
305
309
  ];
306
310
  class PdmAvatarModule {
@@ -312,8 +316,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
312
316
  type: NgModule,
313
317
  args: [{
314
318
  imports: [CommonModule],
315
- declarations: COMPONENTS$H,
316
- exports: COMPONENTS$H
319
+ declarations: COMPONENTS$B,
320
+ exports: COMPONENTS$B
317
321
  }]
318
322
  }] });
319
323
 
@@ -325,10 +329,10 @@ class PdmBadgeComponent {
325
329
  }
326
330
  }
327
331
  PdmBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
328
- PdmBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmBadgeComponent, selector: "pdm-badge", inputs: { variant: "variant", text: "text", className: "className" }, ngImport: i0, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle rounded-full px-2.5 py-0.5 text-xs font-semibold',\n variant === 'default' ? 'bg-primary text-primary-foreground' : '',\n variant === 'secondary' ? 'bg-secondary text-secondary-foreground' : '',\n variant === 'destructive' ? 'bg-destructive text-destructive-foreground' : '',\n variant === 'outline' ? 'border border-solid border-input text-foreground' : '',\n variant === 'icon' ? 'gap-1 bg-primary text-primary-foreground' : '',\n variant === 'number' ? 'min-w-5 rounded-full bg-primary px-1.5 text-primary-foreground' : '',\n variant === 'destructive-number' ? 'min-w-5 rounded-full bg-destructive px-1.5 text-destructive-foreground' : '',\n variant === 'secondary-number' ? 'min-w-5 rounded-full border border-solid border-input px-1.5 text-foreground' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
332
+ PdmBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmBadgeComponent, isStandalone: true, selector: "pdm-badge", inputs: { variant: "variant", text: "text", className: "className" }, ngImport: i0, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle rounded-full px-2.5 py-0.5 text-xs font-semibold',\n variant === 'default' ? 'bg-primary text-primary-foreground' : '',\n variant === 'secondary' ? 'bg-secondary text-secondary-foreground' : '',\n variant === 'destructive' ? 'bg-destructive text-destructive-foreground' : '',\n variant === 'outline' ? 'border border-solid border-input text-foreground' : '',\n variant === 'icon' ? 'gap-1 bg-primary text-primary-foreground' : '',\n variant === 'number' ? 'min-w-5 rounded-full bg-primary px-1.5 text-primary-foreground' : '',\n variant === 'destructive-number' ? 'min-w-5 rounded-full bg-destructive px-1.5 text-destructive-foreground' : '',\n variant === 'secondary-number' ? 'min-w-5 rounded-full border border-solid border-input px-1.5 text-foreground' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
329
333
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeComponent, decorators: [{
330
334
  type: Component,
331
- args: [{ selector: 'pdm-badge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle rounded-full px-2.5 py-0.5 text-xs font-semibold',\n variant === 'default' ? 'bg-primary text-primary-foreground' : '',\n variant === 'secondary' ? 'bg-secondary text-secondary-foreground' : '',\n variant === 'destructive' ? 'bg-destructive text-destructive-foreground' : '',\n variant === 'outline' ? 'border border-solid border-input text-foreground' : '',\n variant === 'icon' ? 'gap-1 bg-primary text-primary-foreground' : '',\n variant === 'number' ? 'min-w-5 rounded-full bg-primary px-1.5 text-primary-foreground' : '',\n variant === 'destructive-number' ? 'min-w-5 rounded-full bg-destructive px-1.5 text-destructive-foreground' : '',\n variant === 'secondary-number' ? 'min-w-5 rounded-full border border-solid border-input px-1.5 text-foreground' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n" }]
335
+ args: [{ selector: 'pdm-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle rounded-full px-2.5 py-0.5 text-xs font-semibold',\n variant === 'default' ? 'bg-primary text-primary-foreground' : '',\n variant === 'secondary' ? 'bg-secondary text-secondary-foreground' : '',\n variant === 'destructive' ? 'bg-destructive text-destructive-foreground' : '',\n variant === 'outline' ? 'border border-solid border-input text-foreground' : '',\n variant === 'icon' ? 'gap-1 bg-primary text-primary-foreground' : '',\n variant === 'number' ? 'min-w-5 rounded-full bg-primary px-1.5 text-primary-foreground' : '',\n variant === 'destructive-number' ? 'min-w-5 rounded-full bg-destructive px-1.5 text-destructive-foreground' : '',\n variant === 'secondary-number' ? 'min-w-5 rounded-full border border-solid border-input px-1.5 text-foreground' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n" }]
332
336
  }], propDecorators: { variant: [{
333
337
  type: Input
334
338
  }], text: [{
@@ -337,20 +341,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
337
341
  type: Input
338
342
  }] } });
339
343
 
340
- const COMPONENTS$G = [
341
- PdmBadgeComponent,
342
- ];
344
+ /**
345
+ * @deprecated Import PdmBadgeComponent directly instead. This module is kept for backwards compatibility.
346
+ * For modern Angular (v14+), use: import { PdmBadgeComponent } from 'pdm-ui-kit/badge'
347
+ */
343
348
  class PdmBadgeModule {
344
349
  }
345
350
  PdmBadgeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
346
- PdmBadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeModule, declarations: [PdmBadgeComponent], imports: [CommonModule], exports: [PdmBadgeComponent] });
347
- PdmBadgeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeModule, imports: [CommonModule] });
351
+ PdmBadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeModule, imports: [PdmBadgeComponent], exports: [PdmBadgeComponent] });
352
+ PdmBadgeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeModule, imports: [PdmBadgeComponent] });
348
353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeModule, decorators: [{
349
354
  type: NgModule,
350
355
  args: [{
351
- imports: [CommonModule],
352
- declarations: COMPONENTS$G,
353
- exports: COMPONENTS$G
356
+ imports: [PdmBadgeComponent],
357
+ exports: [PdmBadgeComponent]
354
358
  }]
355
359
  }] });
356
360
 
@@ -413,7 +417,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
413
417
  type: Input
414
418
  }] } });
415
419
 
416
- const COMPONENTS$F = [
420
+ const COMPONENTS$A = [
417
421
  PdmBreadcrumbComponent,
418
422
  ];
419
423
  class PdmBreadcrumbModule {
@@ -425,11 +429,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
425
429
  type: NgModule,
426
430
  args: [{
427
431
  imports: [CommonModule],
428
- declarations: COMPONENTS$F,
429
- exports: COMPONENTS$F
432
+ declarations: COMPONENTS$A,
433
+ exports: COMPONENTS$A
430
434
  }]
431
435
  }] });
432
436
 
437
+ const BUTTON_TONE_MAP = {
438
+ default: {
439
+ default: 'border-primary bg-primary text-primary-foreground',
440
+ hover: 'border-primary bg-primary text-primary-foreground opacity-90',
441
+ },
442
+ primary: {
443
+ default: 'border-primary bg-primary text-primary-foreground',
444
+ hover: 'border-primary bg-primary text-primary-foreground opacity-90',
445
+ },
446
+ destructive: {
447
+ default: 'border-border bg-destructive text-destructive-foreground',
448
+ hover: 'border-border bg-destructive text-destructive-foreground opacity-90',
449
+ },
450
+ outline: {
451
+ default: 'border-border bg-background text-foreground',
452
+ hover: 'border-border bg-muted text-foreground',
453
+ },
454
+ subtle: {
455
+ default: 'border-secondary bg-secondary text-secondary-foreground',
456
+ hover: 'border-accent bg-accent text-accent-foreground',
457
+ },
458
+ secondary: {
459
+ default: 'border-secondary bg-secondary text-secondary-foreground',
460
+ hover: 'border-accent bg-accent text-accent-foreground',
461
+ },
462
+ ghost: {
463
+ default: 'border-border bg-transparent text-foreground',
464
+ hover: 'border-border bg-accent text-accent-foreground',
465
+ },
466
+ link: {
467
+ default: 'border-border bg-transparent text-primary',
468
+ hover: 'border-border bg-transparent text-primary underline underline-offset-4',
469
+ },
470
+ 'with-icon': {
471
+ default: 'border-primary bg-primary text-primary-foreground',
472
+ hover: 'border-primary bg-primary text-primary-foreground opacity-90',
473
+ },
474
+ icon: {
475
+ default: 'border-border bg-background text-foreground',
476
+ hover: 'border-border bg-accent text-accent-foreground',
477
+ },
478
+ 'icon-circle': {
479
+ default: 'border-border bg-background text-foreground',
480
+ hover: 'border-border bg-accent text-accent-foreground',
481
+ },
482
+ rounded: {
483
+ default: 'border-border bg-background text-foreground',
484
+ hover: 'border-border bg-accent text-accent-foreground',
485
+ },
486
+ loading: {
487
+ default: 'border-primary bg-primary text-primary-foreground opacity-70',
488
+ hover: 'border-primary bg-primary text-primary-foreground opacity-70',
489
+ },
490
+ };
491
+
433
492
  class PdmButtonComponent {
434
493
  constructor() {
435
494
  this.type = 'button';
@@ -440,21 +499,7 @@ class PdmButtonComponent {
440
499
  this.loading = false;
441
500
  this.className = '';
442
501
  this.pressed = new EventEmitter();
443
- this.toneClassMap = {
444
- default: { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },
445
- primary: { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },
446
- destructive: { default: 'border-border bg-destructive text-destructive-foreground', hover: 'border-border bg-destructive text-destructive-foreground opacity-90' },
447
- outline: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-muted text-foreground' },
448
- subtle: { default: 'border-secondary bg-secondary text-secondary-foreground', hover: 'border-accent bg-accent text-accent-foreground' },
449
- secondary: { default: 'border-secondary bg-secondary text-secondary-foreground', hover: 'border-accent bg-accent text-accent-foreground' },
450
- ghost: { default: 'border-border bg-transparent text-foreground', hover: 'border-border bg-accent text-accent-foreground' },
451
- link: { default: 'border-border bg-transparent text-primary', hover: 'border-border bg-transparent text-primary underline underline-offset-4' },
452
- 'with-icon': { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },
453
- icon: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },
454
- 'icon-circle': { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },
455
- rounded: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },
456
- loading: { default: 'border-primary bg-primary text-primary-foreground opacity-70', hover: 'border-primary bg-primary text-primary-foreground opacity-70' }
457
- };
502
+ this.toneClassMap = BUTTON_TONE_MAP;
458
503
  }
459
504
  get isDisabled() {
460
505
  return this.disabled || this.loading || this.variant === 'loading';
@@ -519,10 +564,10 @@ class PdmButtonComponent {
519
564
  }
520
565
  }
521
566
  PdmButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
522
- PdmButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmButtonComponent, selector: "pdm-button", inputs: { type: "type", variant: "variant", state: "state", size: "size", disabled: "disabled", loading: "loading", className: "className" }, outputs: { pressed: "pressed" }, ngImport: i0, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"showsIconSlot\"></ng-content>\n <ng-content></ng-content>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
567
+ PdmButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmButtonComponent, selector: "pdm-button", inputs: { type: "type", variant: "variant", state: "state", size: "size", disabled: "disabled", loading: "loading", className: "className" }, outputs: { pressed: "pressed" }, ngImport: i0, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"isDisabled && loading ? true : null\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"showsIconSlot\"></ng-content>\n <ng-content></ng-content>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
523
568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmButtonComponent, decorators: [{
524
569
  type: Component,
525
- args: [{ selector: 'pdm-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"showsIconSlot\"></ng-content>\n <ng-content></ng-content>\n</button>\n" }]
570
+ args: [{ selector: 'pdm-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"isDisabled && loading ? true : null\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"showsIconSlot\"></ng-content>\n <ng-content></ng-content>\n</button>\n" }]
526
571
  }], propDecorators: { type: [{
527
572
  type: Input
528
573
  }], variant: [{
@@ -775,7 +820,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
775
820
  type: Input
776
821
  }] } });
777
822
 
778
- const COMPONENTS$E = [
823
+ const COMPONENTS$z = [
779
824
  PdmButtonComponent,
780
825
  PdmButtonGroupComponent,
781
826
  ];
@@ -790,8 +835,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
790
835
  type: NgModule,
791
836
  args: [{
792
837
  imports: [CommonModule],
793
- declarations: COMPONENTS$E,
794
- exports: COMPONENTS$E
838
+ declarations: COMPONENTS$z,
839
+ exports: COMPONENTS$z
795
840
  }]
796
841
  }] });
797
842
 
@@ -1674,7 +1719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1674
1719
  args: ["document:keydown.escape"]
1675
1720
  }] } });
1676
1721
 
1677
- const COMPONENTS$D = [PdmCalendarComponent, PdmDatePickerComponent];
1722
+ const COMPONENTS$y = [PdmCalendarComponent, PdmDatePickerComponent];
1678
1723
  class PdmCalendarModule {
1679
1724
  }
1680
1725
  PdmCalendarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1684,8 +1729,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1684
1729
  type: NgModule,
1685
1730
  args: [{
1686
1731
  imports: [CommonModule, OverlayModule, PdmLabelModule$1],
1687
- declarations: COMPONENTS$D,
1688
- exports: COMPONENTS$D,
1732
+ declarations: COMPONENTS$y,
1733
+ exports: COMPONENTS$y,
1689
1734
  }]
1690
1735
  }] });
1691
1736
 
@@ -1734,7 +1779,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1734
1779
  type: Input
1735
1780
  }] } });
1736
1781
 
1737
- const COMPONENTS$C = [
1782
+ const COMPONENTS$x = [
1738
1783
  PdmCardComponent,
1739
1784
  ];
1740
1785
  class PdmCardModule {
@@ -1746,8 +1791,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1746
1791
  type: NgModule,
1747
1792
  args: [{
1748
1793
  imports: [CommonModule],
1749
- declarations: COMPONENTS$C,
1750
- exports: COMPONENTS$C
1794
+ declarations: COMPONENTS$x,
1795
+ exports: COMPONENTS$x
1751
1796
  }]
1752
1797
  }] });
1753
1798
 
@@ -1850,7 +1895,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1850
1895
  type: Output
1851
1896
  }] } });
1852
1897
 
1853
- const COMPONENTS$B = [
1898
+ const COMPONENTS$w = [
1854
1899
  PdmCarouselComponent,
1855
1900
  ];
1856
1901
  class PdmCarouselModule {
@@ -1862,8 +1907,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1862
1907
  type: NgModule,
1863
1908
  args: [{
1864
1909
  imports: [CommonModule],
1865
- declarations: COMPONENTS$B,
1866
- exports: COMPONENTS$B
1910
+ declarations: COMPONENTS$w,
1911
+ exports: COMPONENTS$w
1867
1912
  }]
1868
1913
  }] });
1869
1914
 
@@ -2042,7 +2087,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2042
2087
  type: Input
2043
2088
  }] } });
2044
2089
 
2045
- const COMPONENTS$A = [
2090
+ const COMPONENTS$v = [
2046
2091
  PdmChartComponent,
2047
2092
  ];
2048
2093
  class PdmChartModule {
@@ -2054,8 +2099,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2054
2099
  type: NgModule,
2055
2100
  args: [{
2056
2101
  imports: [CommonModule],
2057
- declarations: COMPONENTS$A,
2058
- exports: COMPONENTS$A
2102
+ declarations: COMPONENTS$v,
2103
+ exports: COMPONENTS$v
2059
2104
  }]
2060
2105
  }] });
2061
2106
 
@@ -2103,7 +2148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2103
2148
  type: Output
2104
2149
  }] } });
2105
2150
 
2106
- const COMPONENTS$z = [
2151
+ const COMPONENTS$u = [
2107
2152
  PdmCheckboxComponent,
2108
2153
  ];
2109
2154
  class PdmCheckboxModule {
@@ -2115,8 +2160,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2115
2160
  type: NgModule,
2116
2161
  args: [{
2117
2162
  imports: [CommonModule],
2118
- declarations: COMPONENTS$z,
2119
- exports: COMPONENTS$z
2163
+ declarations: COMPONENTS$u,
2164
+ exports: COMPONENTS$u
2120
2165
  }]
2121
2166
  }] });
2122
2167
 
@@ -2160,7 +2205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2160
2205
  type: Output
2161
2206
  }] } });
2162
2207
 
2163
- const COMPONENTS$y = [
2208
+ const COMPONENTS$t = [
2164
2209
  PdmCollapsibleComponent,
2165
2210
  ];
2166
2211
  class PdmCollapsibleModule {
@@ -2172,8 +2217,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2172
2217
  type: NgModule,
2173
2218
  args: [{
2174
2219
  imports: [CommonModule],
2175
- declarations: COMPONENTS$y,
2176
- exports: COMPONENTS$y
2220
+ declarations: COMPONENTS$t,
2221
+ exports: COMPONENTS$t
2177
2222
  }]
2178
2223
  }] });
2179
2224
 
@@ -2345,7 +2390,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2345
2390
  args: ["document:keydown.escape"]
2346
2391
  }] } });
2347
2392
 
2348
- const COMPONENTS$x = [
2393
+ const COMPONENTS$s = [
2349
2394
  PdmComboboxComponent,
2350
2395
  ];
2351
2396
  class PdmComboboxModule {
@@ -2357,8 +2402,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2357
2402
  type: NgModule,
2358
2403
  args: [{
2359
2404
  imports: [CommonModule, OverlayModule],
2360
- declarations: COMPONENTS$x,
2361
- exports: COMPONENTS$x
2405
+ declarations: COMPONENTS$s,
2406
+ exports: COMPONENTS$s
2362
2407
  }]
2363
2408
  }] });
2364
2409
 
@@ -2434,7 +2479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2434
2479
  type: Output
2435
2480
  }] } });
2436
2481
 
2437
- const COMPONENTS$w = [PdmCommandComponent];
2482
+ const COMPONENTS$r = [PdmCommandComponent];
2438
2483
  class PdmCommandModule {
2439
2484
  }
2440
2485
  PdmCommandModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCommandModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -2444,8 +2489,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2444
2489
  type: NgModule,
2445
2490
  args: [{
2446
2491
  imports: [CommonModule, PdmIconModule$1],
2447
- declarations: COMPONENTS$w,
2448
- exports: COMPONENTS$w,
2492
+ declarations: COMPONENTS$r,
2493
+ exports: COMPONENTS$r,
2449
2494
  }]
2450
2495
  }] });
2451
2496
 
@@ -2608,7 +2653,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2608
2653
  args: ["document:click"]
2609
2654
  }] } });
2610
2655
 
2611
- const COMPONENTS$v = [
2656
+ const COMPONENTS$q = [
2612
2657
  PdmContextMenuComponent,
2613
2658
  ];
2614
2659
  class PdmContextMenuModule {
@@ -2620,8 +2665,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2620
2665
  type: NgModule,
2621
2666
  args: [{
2622
2667
  imports: [CommonModule, OverlayModule],
2623
- declarations: COMPONENTS$v,
2624
- exports: COMPONENTS$v
2668
+ declarations: COMPONENTS$q,
2669
+ exports: COMPONENTS$q
2625
2670
  }]
2626
2671
  }] });
2627
2672
 
@@ -3396,7 +3441,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3396
3441
  args: ['tableElement']
3397
3442
  }] } });
3398
3443
 
3399
- const COMPONENTS$u = [
3444
+ const COMPONENTS$p = [
3400
3445
  PdmDataTableComponent,
3401
3446
  PdmDraggableTableComponent,
3402
3447
  PdmTableComponent,
@@ -3414,8 +3459,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3414
3459
  type: NgModule,
3415
3460
  args: [{
3416
3461
  imports: [CommonModule],
3417
- declarations: COMPONENTS$u,
3418
- exports: COMPONENTS$u
3462
+ declarations: COMPONENTS$p,
3463
+ exports: COMPONENTS$p
3419
3464
  }]
3420
3465
  }] });
3421
3466
 
@@ -3453,7 +3498,7 @@ class PdmDialogComponent {
3453
3498
  * - desktop/mobile/mobile-fullscreen: legacy, deprecado
3454
3499
  */
3455
3500
  this.size = "responsive";
3456
- this.title = "Edit profile";
3501
+ this.title = "";
3457
3502
  this.description = "";
3458
3503
  this.closeOnBackdrop = true;
3459
3504
  this.closeOnEsc = true;
@@ -3630,10 +3675,10 @@ class PdmDialogComponent {
3630
3675
  }
3631
3676
  }
3632
3677
  PdmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3633
- PdmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDialogComponent, selector: "pdm-dialog", inputs: { open: "open", variant: "variant", size: "size", title: "title", description: "description", closeOnBackdrop: "closeOnBackdrop", closeOnEsc: "closeOnEsc", showCloseButton: "showCloseButton", showHeader: "showHeader", showFooter: "showFooter", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", alignFooter: "alignFooter", headerClassName: "headerClassName", bodyClassName: "bodyClassName", footerClassName: "footerClassName", className: "className" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n \n <!-- Dialog Panel -->\n <section role=\"dialog\" aria-modal=\"true\" [ngClass]=\"panelClassName\">\n <!-- Header -->\n <div *ngIf=\"showHeader\" [ngClass]=\"headerWrapperClassName\">\n <div class=\"min-w-0 flex-1\">\n <h2 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none box-border items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n (click)=\"close()\"\n aria-label=\"Close dialog\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Body -->\n <div [ngClass]=\"bodyWrapperClassName\">\n <ng-content></ng-content>\n </div>\n\n <!-- Footer -->\n <div *ngIf=\"showFooter\" [ngClass]=\"footerWrapperClassName\">\n <ng-container *ngIf=\"variant === 'custom-close'; else defaultActions\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </ng-container>\n\n <ng-template #defaultActions>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm sm:w-auto\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </ng-template>\n </div>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3678
+ PdmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDialogComponent, selector: "pdm-dialog", inputs: { open: "open", variant: "variant", size: "size", title: "title", description: "description", closeOnBackdrop: "closeOnBackdrop", closeOnEsc: "closeOnEsc", showCloseButton: "showCloseButton", showHeader: "showHeader", showFooter: "showFooter", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", alignFooter: "alignFooter", headerClassName: "headerClassName", bodyClassName: "bodyClassName", footerClassName: "footerClassName", className: "className" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n \n <!-- Dialog Panel -->\n <section role=\"dialog\" aria-modal=\"true\" cdkTrapFocus [ngClass]=\"panelClassName\">\n <!-- Header -->\n <div *ngIf=\"showHeader\" [ngClass]=\"headerWrapperClassName\">\n <div class=\"min-w-0 flex-1\">\n <h2 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none box-border items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n (click)=\"close()\"\n aria-label=\"Close dialog\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Body -->\n <div [ngClass]=\"bodyWrapperClassName\">\n <ng-content></ng-content>\n </div>\n\n <!-- Footer -->\n <div *ngIf=\"showFooter\" [ngClass]=\"footerWrapperClassName\">\n <ng-container *ngIf=\"variant === 'custom-close'; else defaultActions\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </ng-container>\n\n <ng-template #defaultActions>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm sm:w-auto\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </ng-template>\n </div>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3634
3679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogComponent, decorators: [{
3635
3680
  type: Component,
3636
- args: [{ selector: "pdm-dialog", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n \n <!-- Dialog Panel -->\n <section role=\"dialog\" aria-modal=\"true\" [ngClass]=\"panelClassName\">\n <!-- Header -->\n <div *ngIf=\"showHeader\" [ngClass]=\"headerWrapperClassName\">\n <div class=\"min-w-0 flex-1\">\n <h2 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none box-border items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n (click)=\"close()\"\n aria-label=\"Close dialog\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Body -->\n <div [ngClass]=\"bodyWrapperClassName\">\n <ng-content></ng-content>\n </div>\n\n <!-- Footer -->\n <div *ngIf=\"showFooter\" [ngClass]=\"footerWrapperClassName\">\n <ng-container *ngIf=\"variant === 'custom-close'; else defaultActions\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </ng-container>\n\n <ng-template #defaultActions>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm sm:w-auto\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </ng-template>\n </div>\n </section>\n</div>\n", styles: [":host{display:block}\n"] }]
3681
+ args: [{ selector: "pdm-dialog", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n \n <!-- Dialog Panel -->\n <section role=\"dialog\" aria-modal=\"true\" cdkTrapFocus [ngClass]=\"panelClassName\">\n <!-- Header -->\n <div *ngIf=\"showHeader\" [ngClass]=\"headerWrapperClassName\">\n <div class=\"min-w-0 flex-1\">\n <h2 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none box-border items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n (click)=\"close()\"\n aria-label=\"Close dialog\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Body -->\n <div [ngClass]=\"bodyWrapperClassName\">\n <ng-content></ng-content>\n </div>\n\n <!-- Footer -->\n <div *ngIf=\"showFooter\" [ngClass]=\"footerWrapperClassName\">\n <ng-container *ngIf=\"variant === 'custom-close'; else defaultActions\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </ng-container>\n\n <ng-template #defaultActions>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm sm:w-auto\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </ng-template>\n </div>\n </section>\n</div>\n", styles: [":host{display:block}\n"] }]
3637
3682
  }], propDecorators: { open: [{
3638
3683
  type: Input
3639
3684
  }], variant: [{
@@ -3679,20 +3724,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3679
3724
  args: ["document:keydown.escape"]
3680
3725
  }] } });
3681
3726
 
3682
- const COMPONENTS$t = [
3727
+ const COMPONENTS$o = [
3683
3728
  PdmDialogComponent,
3684
3729
  ];
3685
3730
  class PdmDialogModule {
3686
3731
  }
3687
3732
  PdmDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3688
- PdmDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, declarations: [PdmDialogComponent], imports: [CommonModule], exports: [PdmDialogComponent] });
3689
- PdmDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, imports: [CommonModule] });
3733
+ PdmDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, declarations: [PdmDialogComponent], imports: [CommonModule, A11yModule], exports: [PdmDialogComponent] });
3734
+ PdmDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, imports: [CommonModule, A11yModule] });
3690
3735
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, decorators: [{
3691
3736
  type: NgModule,
3692
3737
  args: [{
3693
- imports: [CommonModule],
3694
- declarations: COMPONENTS$t,
3695
- exports: COMPONENTS$t
3738
+ imports: [CommonModule, A11yModule],
3739
+ declarations: COMPONENTS$o,
3740
+ exports: COMPONENTS$o
3696
3741
  }]
3697
3742
  }] });
3698
3743
 
@@ -4021,7 +4066,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4021
4066
  args: ['document:keydown.escape']
4022
4067
  }] } });
4023
4068
 
4024
- const COMPONENTS$s = [PdmDrawerComponent, PdmSheetComponent];
4069
+ const COMPONENTS$n = [PdmDrawerComponent, PdmSheetComponent];
4025
4070
  class PdmDrawerModule {
4026
4071
  }
4027
4072
  PdmDrawerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -4031,8 +4076,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4031
4076
  type: NgModule,
4032
4077
  args: [{
4033
4078
  imports: [CommonModule, PdmIconModule$1],
4034
- declarations: COMPONENTS$s,
4035
- exports: COMPONENTS$s,
4079
+ declarations: COMPONENTS$n,
4080
+ exports: COMPONENTS$n,
4036
4081
  }]
4037
4082
  }] });
4038
4083
 
@@ -4215,7 +4260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4215
4260
  args: ['document:keydown.escape']
4216
4261
  }] } });
4217
4262
 
4218
- const COMPONENTS$r = [
4263
+ const COMPONENTS$m = [
4219
4264
  PdmDropdownMenuComponent,
4220
4265
  ];
4221
4266
  class PdmDropdownMenuModule {
@@ -4227,8 +4272,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4227
4272
  type: NgModule,
4228
4273
  args: [{
4229
4274
  imports: [CommonModule, OverlayModule],
4230
- declarations: COMPONENTS$r,
4231
- exports: COMPONENTS$r
4275
+ declarations: COMPONENTS$m,
4276
+ exports: COMPONENTS$m
4232
4277
  }]
4233
4278
  }] });
4234
4279
 
@@ -4257,7 +4302,7 @@ class PdmEmptyComponent {
4257
4302
  }
4258
4303
  }
4259
4304
  PdmEmptyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmEmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4260
- PdmEmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmEmptyComponent, selector: "pdm-empty", inputs: { variant: "variant", title: "title", description: "description", iconName: "iconName", primaryActionLabel: "primaryActionLabel", secondaryActionLabel: "secondaryActionLabel", linkLabel: "linkLabel", className: "className" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction", linkAction: "linkAction" }, ngImport: i0, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-foreground', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"m-0 text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"m-0 mx-auto max-w-md text-sm leading-relaxed text-muted-foreground\">\n {{ description }}\n </p>\n </div>\n\n <div *ngIf=\"primaryActionLabel || secondaryActionLabel\" class=\"mt-1 flex flex-wrap items-center justify-center gap-3\">\n <pdm-button *ngIf=\"primaryActionLabel\" variant=\"default\" (pressed)=\"primaryAction.emit()\">{{ primaryActionLabel }}</pdm-button>\n <pdm-button *ngIf=\"secondaryActionLabel\" variant=\"outline\" (pressed)=\"secondaryAction.emit()\">{{ secondaryActionLabel }}</pdm-button>\n </div>\n\n <button\n *ngIf=\"linkLabel\"\n type=\"button\"\n class=\"mt-1 inline-flex appearance-none box-border items-center gap-2 border-0 bg-transparent p-0 text-sm font-medium text-muted-foreground underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n (click)=\"linkAction.emit()\"\n >\n <span>{{ linkLabel }}</span>\n <pdm-icon name=\"arrow-up-right\" [size]=\"16\"></pdm-icon>\n </button>\n\n <ng-content></ng-content>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.PdmButtonComponent, selector: "pdm-button", inputs: ["type", "variant", "state", "size", "disabled", "loading", "className"], outputs: ["pressed"] }, { kind: "component", type: i2.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4305
+ PdmEmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmEmptyComponent, selector: "pdm-empty", inputs: { variant: "variant", title: "title", description: "description", iconName: "iconName", primaryActionLabel: "primaryActionLabel", secondaryActionLabel: "secondaryActionLabel", linkLabel: "linkLabel", className: "className" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction", linkAction: "linkAction" }, ngImport: i0, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-foreground', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"m-0 text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"m-0 mx-auto max-w-md text-sm leading-relaxed text-muted-foreground\">\n {{ description }}\n </p>\n </div>\n\n <div *ngIf=\"primaryActionLabel || secondaryActionLabel\" class=\"mt-1 flex flex-wrap items-center justify-center gap-3\">\n <pdm-button *ngIf=\"primaryActionLabel\" variant=\"default\" (pressed)=\"primaryAction.emit()\">{{ primaryActionLabel }}</pdm-button>\n <pdm-button *ngIf=\"secondaryActionLabel\" variant=\"outline\" (pressed)=\"secondaryAction.emit()\">{{ secondaryActionLabel }}</pdm-button>\n </div>\n\n <button\n *ngIf=\"linkLabel\"\n type=\"button\"\n class=\"mt-1 inline-flex appearance-none box-border items-center gap-2 border-0 bg-transparent p-0 text-sm font-medium text-muted-foreground underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n (click)=\"linkAction.emit()\"\n >\n <span>{{ linkLabel }}</span>\n <pdm-icon name=\"arrow-up-right\" [size]=\"16\"></pdm-icon>\n </button>\n\n <ng-content></ng-content>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.PdmButtonComponent, selector: "pdm-button", inputs: ["type", "variant", "state", "size", "disabled", "loading", "className"], outputs: ["pressed"] }, { kind: "component", type: i2.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4261
4306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmEmptyComponent, decorators: [{
4262
4307
  type: Component,
4263
4308
  args: [{ selector: 'pdm-empty', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-foreground', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"m-0 text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"m-0 mx-auto max-w-md text-sm leading-relaxed text-muted-foreground\">\n {{ description }}\n </p>\n </div>\n\n <div *ngIf=\"primaryActionLabel || secondaryActionLabel\" class=\"mt-1 flex flex-wrap items-center justify-center gap-3\">\n <pdm-button *ngIf=\"primaryActionLabel\" variant=\"default\" (pressed)=\"primaryAction.emit()\">{{ primaryActionLabel }}</pdm-button>\n <pdm-button *ngIf=\"secondaryActionLabel\" variant=\"outline\" (pressed)=\"secondaryAction.emit()\">{{ secondaryActionLabel }}</pdm-button>\n </div>\n\n <button\n *ngIf=\"linkLabel\"\n type=\"button\"\n class=\"mt-1 inline-flex appearance-none box-border items-center gap-2 border-0 bg-transparent p-0 text-sm font-medium text-muted-foreground underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n (click)=\"linkAction.emit()\"\n >\n <span>{{ linkLabel }}</span>\n <pdm-icon name=\"arrow-up-right\" [size]=\"16\"></pdm-icon>\n </button>\n\n <ng-content></ng-content>\n</section>\n" }]
@@ -4285,7 +4330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4285
4330
  type: Output
4286
4331
  }] } });
4287
4332
 
4288
- const COMPONENTS$q = [PdmEmptyComponent];
4333
+ const COMPONENTS$l = [PdmEmptyComponent];
4289
4334
  class PdmEmptyModule {
4290
4335
  }
4291
4336
  PdmEmptyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmEmptyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -4295,8 +4340,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4295
4340
  type: NgModule,
4296
4341
  args: [{
4297
4342
  imports: [CommonModule, PdmButtonModule$1, PdmIconModule$1],
4298
- declarations: COMPONENTS$q,
4299
- exports: COMPONENTS$q,
4343
+ declarations: COMPONENTS$l,
4344
+ exports: COMPONENTS$l,
4300
4345
  }]
4301
4346
  }] });
4302
4347
 
@@ -4361,7 +4406,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4361
4406
  type: Input
4362
4407
  }] } });
4363
4408
 
4364
- const COMPONENTS$p = [
4409
+ const COMPONENTS$k = [
4365
4410
  PdmFieldComponent,
4366
4411
  ];
4367
4412
  class PdmFieldModule {
@@ -4373,8 +4418,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4373
4418
  type: NgModule,
4374
4419
  args: [{
4375
4420
  imports: [CommonModule],
4376
- declarations: COMPONENTS$p,
4377
- exports: COMPONENTS$p
4421
+ declarations: COMPONENTS$k,
4422
+ exports: COMPONENTS$k
4378
4423
  }]
4379
4424
  }] });
4380
4425
 
@@ -4577,7 +4622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4577
4622
  args: ["focusout"]
4578
4623
  }] } });
4579
4624
 
4580
- const COMPONENTS$o = [
4625
+ const COMPONENTS$j = [
4581
4626
  PdmHoverCardComponent,
4582
4627
  ];
4583
4628
  class PdmHoverCardModule {
@@ -4589,8 +4634,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4589
4634
  type: NgModule,
4590
4635
  args: [{
4591
4636
  imports: [CommonModule, OverlayModule],
4592
- declarations: COMPONENTS$o,
4593
- exports: COMPONENTS$o
4637
+ declarations: COMPONENTS$j,
4638
+ exports: COMPONENTS$j
4594
4639
  }]
4595
4640
  }] });
4596
4641
 
@@ -4714,10 +4759,10 @@ class PdmIconComponent {
4714
4759
  }
4715
4760
  }
4716
4761
  PdmIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
4717
- PdmIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmIconComponent, selector: "pdm-icon", inputs: { name: "name", library: "library", assetUrl: "assetUrl", size: "size", strokeWidth: "strokeWidth", className: "className", ariaLabel: "ariaLabel", decorative: "decorative" }, ngImport: i0, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}:host svg{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4762
+ PdmIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmIconComponent, isStandalone: true, selector: "pdm-icon", inputs: { name: "name", library: "library", assetUrl: "assetUrl", size: "size", strokeWidth: "strokeWidth", className: "className", ariaLabel: "ariaLabel", decorative: "decorative" }, ngImport: i0, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}:host svg{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4718
4763
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, decorators: [{
4719
4764
  type: Component,
4720
- args: [{ selector: 'pdm-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}:host svg{display:block}\n"] }]
4765
+ args: [{ selector: 'pdm-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}:host svg{display:block}\n"] }]
4721
4766
  }], ctorParameters: function () { return [{ type: i1$2.DomSanitizer }]; }, propDecorators: { name: [{
4722
4767
  type: Input
4723
4768
  }], library: [{
@@ -4736,20 +4781,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4736
4781
  type: Input
4737
4782
  }] } });
4738
4783
 
4739
- const COMPONENTS$n = [
4740
- PdmIconComponent,
4741
- ];
4784
+ /**
4785
+ * @deprecated Import PdmIconComponent directly instead. This module is kept for backwards compatibility.
4786
+ * For modern Angular (v14+), use: import { PdmIconComponent } from 'pdm-ui-kit/icon'
4787
+ */
4742
4788
  class PdmIconModule {
4743
4789
  }
4744
4790
  PdmIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4745
- PdmIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, declarations: [PdmIconComponent], imports: [CommonModule], exports: [PdmIconComponent] });
4746
- PdmIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, imports: [CommonModule] });
4791
+ PdmIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, imports: [PdmIconComponent], exports: [PdmIconComponent] });
4792
+ PdmIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, imports: [PdmIconComponent] });
4747
4793
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, decorators: [{
4748
4794
  type: NgModule,
4749
4795
  args: [{
4750
- imports: [CommonModule],
4751
- declarations: COMPONENTS$n,
4752
- exports: COMPONENTS$n
4796
+ imports: [PdmIconComponent],
4797
+ exports: [PdmIconComponent]
4753
4798
  }]
4754
4799
  }] });
4755
4800
 
@@ -4772,6 +4817,9 @@ class PdmInputComponent {
4772
4817
  this.errorText = "";
4773
4818
  this.valueChange = new EventEmitter();
4774
4819
  this.blurred = new EventEmitter();
4820
+ if (this.required && this.disabled) {
4821
+ console.warn('PdmInputComponent: required + disabled is invalid — a required field cannot be disabled');
4822
+ }
4775
4823
  }
4776
4824
  onInput(event) {
4777
4825
  this.valueChange.emit(event.target.value);
@@ -4779,13 +4827,22 @@ class PdmInputComponent {
4779
4827
  onBlur(event) {
4780
4828
  this.blurred.emit(event);
4781
4829
  }
4830
+ get helperAttrId() {
4831
+ return this.id ? `${this.id}-helper` : null;
4832
+ }
4833
+ get errorAttrId() {
4834
+ return this.id ? `${this.id}-error` : null;
4835
+ }
4836
+ get descriptionAttrId() {
4837
+ return this.invalid && this.errorText ? this.errorAttrId : this.helperAttrId;
4838
+ }
4782
4839
  }
4783
4840
  PdmInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4784
- PdmInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmInputComponent, selector: "pdm-input", inputs: { id: "id", type: "type", value: "value", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", size: "size", roundness: "roundness", className: "className", inputClassName: "inputClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange", blurred: "blurred" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground',\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 appearance-none box-border rounded-lg border border-solid bg-transparent px-3 py-1 text-sm shadow-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n size === 'large' ? 'h-10 px-4 text-sm' : '',\n size === 'regular' ? 'h-9 px-3 text-sm' : '',\n size === 'small' ? 'h-8 px-2 text-sm' : '',\n size === 'mini' ? 'h-6 px-1.5 text-xs' : '',\n roundness === 'round' ? 'rounded-full' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-foreground',\n inputClassName,\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" class=\"m-0 text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" class=\"m-0 text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4841
+ PdmInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmInputComponent, selector: "pdm-input", inputs: { id: "id", type: "type", value: "value", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", size: "size", roundness: "roundness", className: "className", inputClassName: "inputClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange", blurred: "blurred" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground',\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-describedby]=\"descriptionAttrId\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 appearance-none box-border rounded-lg border border-solid bg-transparent px-3 py-1 text-sm shadow-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n size === 'large' ? 'h-10 px-4 text-sm' : '',\n size === 'regular' ? 'h-9 px-3 text-sm' : '',\n size === 'small' ? 'h-8 px-2 text-sm' : '',\n size === 'mini' ? 'h-6 px-1.5 text-xs' : '',\n roundness === 'round' ? 'rounded-full' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-foreground',\n inputClassName,\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" [id]=\"helperAttrId\" class=\"m-0 text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" [id]=\"errorAttrId\" class=\"m-0 text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4785
4842
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputComponent, decorators: [{
4786
4843
  type: Component,
4787
- args: [{ selector: "pdm-input", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground',\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 appearance-none box-border rounded-lg border border-solid bg-transparent px-3 py-1 text-sm shadow-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n size === 'large' ? 'h-10 px-4 text-sm' : '',\n size === 'regular' ? 'h-9 px-3 text-sm' : '',\n size === 'small' ? 'h-8 px-2 text-sm' : '',\n size === 'mini' ? 'h-6 px-1.5 text-xs' : '',\n roundness === 'round' ? 'rounded-full' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-foreground',\n inputClassName,\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" class=\"m-0 text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" class=\"m-0 text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", styles: [":host{display:block}\n"] }]
4788
- }], propDecorators: { id: [{
4844
+ args: [{ selector: "pdm-input", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground',\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-describedby]=\"descriptionAttrId\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 appearance-none box-border rounded-lg border border-solid bg-transparent px-3 py-1 text-sm shadow-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n size === 'large' ? 'h-10 px-4 text-sm' : '',\n size === 'regular' ? 'h-9 px-3 text-sm' : '',\n size === 'small' ? 'h-8 px-2 text-sm' : '',\n size === 'mini' ? 'h-6 px-1.5 text-xs' : '',\n roundness === 'round' ? 'rounded-full' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-foreground',\n inputClassName,\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" [id]=\"helperAttrId\" class=\"m-0 text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" [id]=\"errorAttrId\" class=\"m-0 text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", styles: [":host{display:block}\n"] }]
4845
+ }], ctorParameters: function () { return []; }, propDecorators: { id: [{
4789
4846
  type: Input
4790
4847
  }], type: [{
4791
4848
  type: Input
@@ -5154,7 +5211,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5154
5211
  type: Output
5155
5212
  }] } });
5156
5213
 
5157
- const COMPONENTS$m = [
5214
+ const COMPONENTS$i = [
5158
5215
  PdmInputComponent,
5159
5216
  PdmInputGroupComponent,
5160
5217
  PdmInputOtpComponent,
@@ -5178,8 +5235,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5178
5235
  type: NgModule,
5179
5236
  args: [{
5180
5237
  imports: [CommonModule, PdmIconModule$1],
5181
- declarations: COMPONENTS$m,
5182
- exports: COMPONENTS$m,
5238
+ declarations: COMPONENTS$i,
5239
+ exports: COMPONENTS$i,
5183
5240
  }]
5184
5241
  }] });
5185
5242
 
@@ -5203,7 +5260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5203
5260
  type: Input
5204
5261
  }] } });
5205
5262
 
5206
- const COMPONENTS$l = [
5263
+ const COMPONENTS$h = [
5207
5264
  PdmItemComponent,
5208
5265
  ];
5209
5266
  class PdmItemModule {
@@ -5215,8 +5272,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5215
5272
  type: NgModule,
5216
5273
  args: [{
5217
5274
  imports: [CommonModule],
5218
- declarations: COMPONENTS$l,
5219
- exports: COMPONENTS$l
5275
+ declarations: COMPONENTS$h,
5276
+ exports: COMPONENTS$h
5220
5277
  }]
5221
5278
  }] });
5222
5279
 
@@ -5226,28 +5283,28 @@ class PdmKbdComponent {
5226
5283
  }
5227
5284
  }
5228
5285
  PdmKbdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5229
- PdmKbdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmKbdComponent, selector: "pdm-kbd", inputs: { className: "className" }, ngImport: i0, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-solid border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5286
+ PdmKbdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmKbdComponent, isStandalone: true, selector: "pdm-kbd", inputs: { className: "className" }, ngImport: i0, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-solid border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5230
5287
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdComponent, decorators: [{
5231
5288
  type: Component,
5232
- args: [{ selector: 'pdm-kbd', changeDetection: ChangeDetectionStrategy.OnPush, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-solid border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n" }]
5289
+ args: [{ selector: 'pdm-kbd', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-solid border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n" }]
5233
5290
  }], propDecorators: { className: [{
5234
5291
  type: Input
5235
5292
  }] } });
5236
5293
 
5237
- const COMPONENTS$k = [
5238
- PdmKbdComponent,
5239
- ];
5294
+ /**
5295
+ * @deprecated Import PdmKbdComponent directly instead. This module is kept for backwards compatibility.
5296
+ * For modern Angular (v14+), use: import { PdmKbdComponent } from 'pdm-ui-kit/kbd'
5297
+ */
5240
5298
  class PdmKbdModule {
5241
5299
  }
5242
5300
  PdmKbdModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5243
- PdmKbdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, declarations: [PdmKbdComponent], imports: [CommonModule], exports: [PdmKbdComponent] });
5244
- PdmKbdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, imports: [CommonModule] });
5301
+ PdmKbdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, imports: [PdmKbdComponent], exports: [PdmKbdComponent] });
5302
+ PdmKbdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, imports: [PdmKbdComponent] });
5245
5303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, decorators: [{
5246
5304
  type: NgModule,
5247
5305
  args: [{
5248
- imports: [CommonModule],
5249
- declarations: COMPONENTS$k,
5250
- exports: COMPONENTS$k
5306
+ imports: [PdmKbdComponent],
5307
+ exports: [PdmKbdComponent]
5251
5308
  }]
5252
5309
  }] });
5253
5310
 
@@ -5271,7 +5328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5271
5328
  type: Input
5272
5329
  }] } });
5273
5330
 
5274
- const COMPONENTS$j = [
5331
+ const COMPONENTS$g = [
5275
5332
  PdmLabelComponent,
5276
5333
  ];
5277
5334
  class PdmLabelModule {
@@ -5283,8 +5340,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5283
5340
  type: NgModule,
5284
5341
  args: [{
5285
5342
  imports: [CommonModule],
5286
- declarations: COMPONENTS$j,
5287
- exports: COMPONENTS$j
5343
+ declarations: COMPONENTS$g,
5344
+ exports: COMPONENTS$g
5288
5345
  }]
5289
5346
  }] });
5290
5347
 
@@ -5426,7 +5483,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5426
5483
  args: ["document:keydown.escape"]
5427
5484
  }] } });
5428
5485
 
5429
- const COMPONENTS$i = [
5486
+ const COMPONENTS$f = [
5430
5487
  PdmMenubarComponent,
5431
5488
  ];
5432
5489
  class PdmMenubarModule {
@@ -5438,8 +5495,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5438
5495
  type: NgModule,
5439
5496
  args: [{
5440
5497
  imports: [CommonModule, OverlayModule],
5441
- declarations: COMPONENTS$i,
5442
- exports: COMPONENTS$i
5498
+ declarations: COMPONENTS$f,
5499
+ exports: COMPONENTS$f
5443
5500
  }]
5444
5501
  }] });
5445
5502
 
@@ -5481,7 +5538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5481
5538
  type: Output
5482
5539
  }] } });
5483
5540
 
5484
- const COMPONENTS$h = [PdmNativeSelectComponent];
5541
+ const COMPONENTS$e = [PdmNativeSelectComponent];
5485
5542
  class PdmNativeSelectModule {
5486
5543
  }
5487
5544
  PdmNativeSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmNativeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -5491,8 +5548,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5491
5548
  type: NgModule,
5492
5549
  args: [{
5493
5550
  imports: [CommonModule, PdmIconModule$1],
5494
- declarations: COMPONENTS$h,
5495
- exports: COMPONENTS$h,
5551
+ declarations: COMPONENTS$e,
5552
+ exports: COMPONENTS$e,
5496
5553
  }]
5497
5554
  }] });
5498
5555
 
@@ -5535,7 +5592,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5535
5592
  type: Input
5536
5593
  }] } });
5537
5594
 
5538
- const COMPONENTS$g = [
5595
+ const COMPONENTS$d = [
5539
5596
  PdmNavigationMenuComponent,
5540
5597
  ];
5541
5598
  class PdmNavigationMenuModule {
@@ -5547,8 +5604,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5547
5604
  type: NgModule,
5548
5605
  args: [{
5549
5606
  imports: [CommonModule],
5550
- declarations: COMPONENTS$g,
5551
- exports: COMPONENTS$g
5607
+ declarations: COMPONENTS$d,
5608
+ exports: COMPONENTS$d
5552
5609
  }]
5553
5610
  }] });
5554
5611
 
@@ -5575,10 +5632,40 @@ class PdmPaginationComponent {
5575
5632
  }
5576
5633
  get visiblePages() {
5577
5634
  const total = Math.max(1, this.pageCount);
5578
- if (total <= Math.max(1, this.maxVisible)) {
5635
+ const current = Math.min(Math.max(1, this.page), total);
5636
+ const maxNumericPages = Math.max(3, Math.floor(this.maxVisible));
5637
+ if (total <= maxNumericPages) {
5579
5638
  return Array.from({ length: total }, (_, i) => i + 1);
5580
5639
  }
5581
- return [1, 2, 'ellipsis', total];
5640
+ const middleSlots = maxNumericPages - 2;
5641
+ let start = current - Math.floor((middleSlots - 1) / 2);
5642
+ let end = start + middleSlots - 1;
5643
+ if (start < 2) {
5644
+ start = 2;
5645
+ end = start + middleSlots - 1;
5646
+ }
5647
+ if (end > total - 1) {
5648
+ end = total - 1;
5649
+ start = end - middleSlots + 1;
5650
+ }
5651
+ const pages = [1];
5652
+ for (let pageNumber = start; pageNumber <= end; pageNumber += 1) {
5653
+ pages.push(pageNumber);
5654
+ }
5655
+ pages.push(total);
5656
+ return pages.reduce((result, pageNumber) => {
5657
+ const previous = result[result.length - 1];
5658
+ if (typeof previous === 'number') {
5659
+ if (pageNumber - previous === 2) {
5660
+ result.push(previous + 1);
5661
+ }
5662
+ else if (pageNumber - previous > 2) {
5663
+ result.push('ellipsis');
5664
+ }
5665
+ }
5666
+ result.push(pageNumber);
5667
+ return result;
5668
+ }, []);
5582
5669
  }
5583
5670
  setPage(next) {
5584
5671
  if (next < 1 || next > this.pageCount || next === this.page) {
@@ -5595,10 +5682,10 @@ class PdmPaginationComponent {
5595
5682
  }
5596
5683
  }
5597
5684
  PdmPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5598
- PdmPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPaginationComponent, selector: "pdm-pagination", inputs: { page: "page", pageCount: "pageCount", maxVisible: "maxVisible", className: "className", rowsPerPageLabel: "rowsPerPageLabel", rowsPerPage: "rowsPerPage", rowsPerPageOptions: "rowsPerPageOptions" }, outputs: { pageChange: "pageChange", rowsPerPageChange: "rowsPerPageChange" }, ngImport: i0, template: "<nav\n aria-label=\"Pagination\"\n [ngClass]=\"[\n 'mx-auto flex w-full flex-wrap items-center justify-center gap-4',\n className,\n ]\"\n>\n <div class=\"flex items-center gap-3\" *ngIf=\"rowsPerPageOptions.length > 0\">\n <span class=\"text-sm font-medium text-foreground\">{{\n rowsPerPageLabel\n }}</span>\n <pdm-select\n [value]=\"rowsPerPageValue\"\n [options]=\"rowsPerPageSelectOptions\"\n [placeholder]=\"rowsPerPageValue\"\n className=\"w-[100px] sm:w-[120px]\"\n (valueChange)=\"onRowsPerPageChangeValue($event)\"\n ></pdm-select>\n </div>\n\n <ul class=\"m-0 flex list-none items-center gap-1 p-0\">\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page <= 1\"\n (click)=\"setPage(page - 1)\"\n >\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <ng-container *ngIf=\"pageNumber === 'ellipsis'; else pageButton\">\n <span\n class=\"inline-flex h-9 min-w-9 items-center justify-center px-2 text-sm text-muted-foreground\"\n >...</span\n >\n </ng-container>\n <ng-template #pageButton>\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'appearance-none box-border border border-solid border-border bg-muted text-foreground shadow-sm'\n : 'appearance-none box-border border-0 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n (click)=\"setPage(+pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </ng-template>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page >= pageCount\"\n (click)=\"setPage(page + 1)\"\n >\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }, { kind: "component", type: i3$1.PdmSelectComponent, selector: "pdm-select", inputs: ["id", "value", "options", "disabled", "invalid", "className", "placeholder", "overlayOptions"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5685
+ PdmPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPaginationComponent, selector: "pdm-pagination", inputs: { page: "page", pageCount: "pageCount", maxVisible: "maxVisible", className: "className", rowsPerPageLabel: "rowsPerPageLabel", rowsPerPage: "rowsPerPage", rowsPerPageOptions: "rowsPerPageOptions" }, outputs: { pageChange: "pageChange", rowsPerPageChange: "rowsPerPageChange" }, ngImport: i0, template: "<nav\n aria-label=\"Pagination\"\n [ngClass]=\"[\n 'mx-auto flex w-full flex-wrap items-center justify-center gap-4',\n className,\n ]\"\n>\n <div class=\"flex items-center gap-3\" *ngIf=\"rowsPerPageOptions.length > 0\">\n <span class=\"text-sm font-medium text-foreground\">{{\n rowsPerPageLabel\n }}</span>\n <pdm-select\n [value]=\"rowsPerPageValue\"\n [options]=\"rowsPerPageSelectOptions\"\n [placeholder]=\"rowsPerPageValue\"\n className=\"w-[100px] sm:w-[120px]\"\n (valueChange)=\"onRowsPerPageChangeValue($event)\"\n ></pdm-select>\n </div>\n\n <ul class=\"m-0 flex list-none items-center gap-1 p-0\">\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page <= 1\"\n [attr.aria-label]=\"'Go to previous page'\"\n (click)=\"setPage(page - 1)\"\n >\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <ng-container *ngIf=\"pageNumber === 'ellipsis'; else pageButton\">\n <span\n class=\"inline-flex h-9 min-w-9 items-center justify-center px-2 text-sm text-muted-foreground\"\n >...</span\n >\n </ng-container>\n <ng-template #pageButton>\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'appearance-none box-border border border-solid border-border bg-muted text-foreground shadow-sm'\n : 'appearance-none box-border border-0 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n [attr.aria-label]=\"'Go to page ' + pageNumber\"\n [attr.aria-current]=\"pageNumber === page ? 'page' : null\"\n (click)=\"setPage(+pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </ng-template>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page >= pageCount\"\n [attr.aria-label]=\"'Go to next page'\"\n (click)=\"setPage(page + 1)\"\n >\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }, { kind: "component", type: i3$1.PdmSelectComponent, selector: "pdm-select", inputs: ["id", "value", "options", "disabled", "invalid", "className", "placeholder", "overlayOptions"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5599
5686
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPaginationComponent, decorators: [{
5600
5687
  type: Component,
5601
- args: [{ selector: 'pdm-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n aria-label=\"Pagination\"\n [ngClass]=\"[\n 'mx-auto flex w-full flex-wrap items-center justify-center gap-4',\n className,\n ]\"\n>\n <div class=\"flex items-center gap-3\" *ngIf=\"rowsPerPageOptions.length > 0\">\n <span class=\"text-sm font-medium text-foreground\">{{\n rowsPerPageLabel\n }}</span>\n <pdm-select\n [value]=\"rowsPerPageValue\"\n [options]=\"rowsPerPageSelectOptions\"\n [placeholder]=\"rowsPerPageValue\"\n className=\"w-[100px] sm:w-[120px]\"\n (valueChange)=\"onRowsPerPageChangeValue($event)\"\n ></pdm-select>\n </div>\n\n <ul class=\"m-0 flex list-none items-center gap-1 p-0\">\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page <= 1\"\n (click)=\"setPage(page - 1)\"\n >\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <ng-container *ngIf=\"pageNumber === 'ellipsis'; else pageButton\">\n <span\n class=\"inline-flex h-9 min-w-9 items-center justify-center px-2 text-sm text-muted-foreground\"\n >...</span\n >\n </ng-container>\n <ng-template #pageButton>\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'appearance-none box-border border border-solid border-border bg-muted text-foreground shadow-sm'\n : 'appearance-none box-border border-0 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n (click)=\"setPage(+pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </ng-template>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page >= pageCount\"\n (click)=\"setPage(page + 1)\"\n >\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n" }]
5688
+ args: [{ selector: 'pdm-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n aria-label=\"Pagination\"\n [ngClass]=\"[\n 'mx-auto flex w-full flex-wrap items-center justify-center gap-4',\n className,\n ]\"\n>\n <div class=\"flex items-center gap-3\" *ngIf=\"rowsPerPageOptions.length > 0\">\n <span class=\"text-sm font-medium text-foreground\">{{\n rowsPerPageLabel\n }}</span>\n <pdm-select\n [value]=\"rowsPerPageValue\"\n [options]=\"rowsPerPageSelectOptions\"\n [placeholder]=\"rowsPerPageValue\"\n className=\"w-[100px] sm:w-[120px]\"\n (valueChange)=\"onRowsPerPageChangeValue($event)\"\n ></pdm-select>\n </div>\n\n <ul class=\"m-0 flex list-none items-center gap-1 p-0\">\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page <= 1\"\n [attr.aria-label]=\"'Go to previous page'\"\n (click)=\"setPage(page - 1)\"\n >\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <ng-container *ngIf=\"pageNumber === 'ellipsis'; else pageButton\">\n <span\n class=\"inline-flex h-9 min-w-9 items-center justify-center px-2 text-sm text-muted-foreground\"\n >...</span\n >\n </ng-container>\n <ng-template #pageButton>\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'appearance-none box-border border border-solid border-border bg-muted text-foreground shadow-sm'\n : 'appearance-none box-border border-0 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n [attr.aria-label]=\"'Go to page ' + pageNumber\"\n [attr.aria-current]=\"pageNumber === page ? 'page' : null\"\n (click)=\"setPage(+pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </ng-template>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page >= pageCount\"\n [attr.aria-label]=\"'Go to next page'\"\n (click)=\"setPage(page + 1)\"\n >\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n" }]
5602
5689
  }], propDecorators: { page: [{
5603
5690
  type: Input
5604
5691
  }], pageCount: [{
@@ -5619,7 +5706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5619
5706
  type: Output
5620
5707
  }] } });
5621
5708
 
5622
- const COMPONENTS$f = [PdmPaginationComponent];
5709
+ const COMPONENTS$c = [PdmPaginationComponent];
5623
5710
  class PdmPaginationModule {
5624
5711
  }
5625
5712
  PdmPaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -5629,8 +5716,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5629
5716
  type: NgModule,
5630
5717
  args: [{
5631
5718
  imports: [CommonModule, PdmIconModule$1, PdmSelectModule$1],
5632
- declarations: COMPONENTS$f,
5633
- exports: COMPONENTS$f,
5719
+ declarations: COMPONENTS$c,
5720
+ exports: COMPONENTS$c,
5634
5721
  }]
5635
5722
  }] });
5636
5723
 
@@ -5791,7 +5878,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5791
5878
  args: ["document:keydown.escape"]
5792
5879
  }] } });
5793
5880
 
5794
- const COMPONENTS$e = [
5881
+ const COMPONENTS$b = [
5795
5882
  PdmPopoverComponent,
5796
5883
  ];
5797
5884
  class PdmPopoverModule {
@@ -5803,8 +5890,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5803
5890
  type: NgModule,
5804
5891
  args: [{
5805
5892
  imports: [CommonModule, OverlayModule],
5806
- declarations: COMPONENTS$e,
5807
- exports: COMPONENTS$e
5893
+ declarations: COMPONENTS$b,
5894
+ exports: COMPONENTS$b
5808
5895
  }]
5809
5896
  }] });
5810
5897
 
@@ -5838,7 +5925,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5838
5925
  type: Input
5839
5926
  }] } });
5840
5927
 
5841
- const COMPONENTS$d = [
5928
+ const COMPONENTS$a = [
5842
5929
  PdmProgressComponent,
5843
5930
  ];
5844
5931
  class PdmProgressModule {
@@ -5850,8 +5937,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5850
5937
  type: NgModule,
5851
5938
  args: [{
5852
5939
  imports: [CommonModule],
5853
- declarations: COMPONENTS$d,
5854
- exports: COMPONENTS$d
5940
+ declarations: COMPONENTS$a,
5941
+ exports: COMPONENTS$a
5855
5942
  }]
5856
5943
  }] });
5857
5944
 
@@ -5890,7 +5977,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5890
5977
  type: Output
5891
5978
  }] } });
5892
5979
 
5893
- const COMPONENTS$c = [
5980
+ const COMPONENTS$9 = [
5894
5981
  PdmRadioGroupComponent,
5895
5982
  ];
5896
5983
  class PdmRadioGroupModule {
@@ -5902,8 +5989,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5902
5989
  type: NgModule,
5903
5990
  args: [{
5904
5991
  imports: [CommonModule],
5905
- declarations: COMPONENTS$c,
5906
- exports: COMPONENTS$c
5992
+ declarations: COMPONENTS$9,
5993
+ exports: COMPONENTS$9
5907
5994
  }]
5908
5995
  }] });
5909
5996
 
@@ -5924,7 +6011,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5924
6011
  type: Input
5925
6012
  }] } });
5926
6013
 
5927
- const COMPONENTS$b = [
6014
+ const COMPONENTS$8 = [
5928
6015
  PdmScrollAreaComponent,
5929
6016
  ];
5930
6017
  class PdmScrollAreaModule {
@@ -5936,8 +6023,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5936
6023
  type: NgModule,
5937
6024
  args: [{
5938
6025
  imports: [CommonModule],
5939
- declarations: COMPONENTS$b,
5940
- exports: COMPONENTS$b
6026
+ declarations: COMPONENTS$8,
6027
+ exports: COMPONENTS$8
5941
6028
  }]
5942
6029
  }] });
5943
6030
 
@@ -6146,7 +6233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6146
6233
  args: ["document:keydown.escape"]
6147
6234
  }] } });
6148
6235
 
6149
- const COMPONENTS$a = [PdmSelectComponent, PdmSelectOptionDirective];
6236
+ const COMPONENTS$7 = [PdmSelectComponent, PdmSelectOptionDirective];
6150
6237
  class PdmSelectModule {
6151
6238
  }
6152
6239
  PdmSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -6156,8 +6243,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6156
6243
  type: NgModule,
6157
6244
  args: [{
6158
6245
  imports: [CommonModule, OverlayModule, PdmIconModule$1],
6159
- declarations: COMPONENTS$a,
6160
- exports: COMPONENTS$a,
6246
+ declarations: COMPONENTS$7,
6247
+ exports: COMPONENTS$7,
6161
6248
  }]
6162
6249
  }] });
6163
6250
 
@@ -6172,10 +6259,10 @@ class PdmSeparatorComponent {
6172
6259
  }
6173
6260
  }
6174
6261
  PdmSeparatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6175
- PdmSeparatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSeparatorComponent, selector: "pdm-separator", inputs: { orientation: "orientation", decorative: "decorative", className: "className" }, ngImport: i0, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-border', orientationClass, className]\"\n></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6262
+ PdmSeparatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSeparatorComponent, isStandalone: true, selector: "pdm-separator", inputs: { orientation: "orientation", decorative: "decorative", className: "className" }, ngImport: i0, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-border', orientationClass, className]\"\n></div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6176
6263
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorComponent, decorators: [{
6177
6264
  type: Component,
6178
- args: [{ selector: 'pdm-separator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-border', orientationClass, className]\"\n></div>\n" }]
6265
+ args: [{ selector: 'pdm-separator', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-border', orientationClass, className]\"\n></div>\n" }]
6179
6266
  }], propDecorators: { orientation: [{
6180
6267
  type: Input
6181
6268
  }], decorative: [{
@@ -6184,20 +6271,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6184
6271
  type: Input
6185
6272
  }] } });
6186
6273
 
6187
- const COMPONENTS$9 = [
6188
- PdmSeparatorComponent,
6189
- ];
6274
+ /**
6275
+ * @deprecated Import PdmSeparatorComponent directly instead. This module is kept for backwards compatibility.
6276
+ * For modern Angular (v14+), use: import { PdmSeparatorComponent } from 'pdm-ui-kit/separator'
6277
+ */
6190
6278
  class PdmSeparatorModule {
6191
6279
  }
6192
6280
  PdmSeparatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6193
- PdmSeparatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorModule, declarations: [PdmSeparatorComponent], imports: [CommonModule], exports: [PdmSeparatorComponent] });
6194
- PdmSeparatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorModule, imports: [CommonModule] });
6281
+ PdmSeparatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorModule, imports: [PdmSeparatorComponent], exports: [PdmSeparatorComponent] });
6282
+ PdmSeparatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorModule, imports: [PdmSeparatorComponent] });
6195
6283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorModule, decorators: [{
6196
6284
  type: NgModule,
6197
6285
  args: [{
6198
- imports: [CommonModule],
6199
- declarations: COMPONENTS$9,
6200
- exports: COMPONENTS$9
6286
+ imports: [PdmSeparatorComponent],
6287
+ exports: [PdmSeparatorComponent]
6201
6288
  }]
6202
6289
  }] });
6203
6290
 
@@ -6265,7 +6352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6265
6352
  type: Output
6266
6353
  }] } });
6267
6354
 
6268
- const COMPONENTS$8 = [
6355
+ const COMPONENTS$6 = [
6269
6356
  PdmSidebarComponent,
6270
6357
  ];
6271
6358
  class PdmSidebarModule {
@@ -6277,8 +6364,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6277
6364
  type: NgModule,
6278
6365
  args: [{
6279
6366
  imports: [CommonModule],
6280
- declarations: COMPONENTS$8,
6281
- exports: COMPONENTS$8
6367
+ declarations: COMPONENTS$6,
6368
+ exports: COMPONENTS$6
6282
6369
  }]
6283
6370
  }] });
6284
6371
 
@@ -6288,28 +6375,28 @@ class PdmSkeletonComponent {
6288
6375
  }
6289
6376
  }
6290
6377
  PdmSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6291
- PdmSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSkeletonComponent, selector: "pdm-skeleton", inputs: { className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-muted', className]\"></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6378
+ PdmSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSkeletonComponent, isStandalone: true, selector: "pdm-skeleton", inputs: { className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-muted', className]\"></div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6292
6379
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonComponent, decorators: [{
6293
6380
  type: Component,
6294
- args: [{ selector: 'pdm-skeleton', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-muted', className]\"></div>\n" }]
6381
+ args: [{ selector: 'pdm-skeleton', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div [ngClass]=\"['animate-pulse rounded-md bg-muted', className]\"></div>\n" }]
6295
6382
  }], propDecorators: { className: [{
6296
6383
  type: Input
6297
6384
  }] } });
6298
6385
 
6299
- const COMPONENTS$7 = [
6300
- PdmSkeletonComponent,
6301
- ];
6386
+ /**
6387
+ * @deprecated Import PdmSkeletonComponent directly instead. This module is kept for backwards compatibility.
6388
+ * For modern Angular (v14+), use: import { PdmSkeletonComponent } from 'pdm-ui-kit/skeleton'
6389
+ */
6302
6390
  class PdmSkeletonModule {
6303
6391
  }
6304
6392
  PdmSkeletonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6305
- PdmSkeletonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonModule, declarations: [PdmSkeletonComponent], imports: [CommonModule], exports: [PdmSkeletonComponent] });
6306
- PdmSkeletonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonModule, imports: [CommonModule] });
6393
+ PdmSkeletonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonModule, imports: [PdmSkeletonComponent], exports: [PdmSkeletonComponent] });
6394
+ PdmSkeletonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonModule, imports: [PdmSkeletonComponent] });
6307
6395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonModule, decorators: [{
6308
6396
  type: NgModule,
6309
6397
  args: [{
6310
- imports: [CommonModule],
6311
- declarations: COMPONENTS$7,
6312
- exports: COMPONENTS$7
6398
+ imports: [PdmSkeletonComponent],
6399
+ exports: [PdmSkeletonComponent]
6313
6400
  }]
6314
6401
  }] });
6315
6402
 
@@ -6356,7 +6443,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6356
6443
  type: Output
6357
6444
  }] } });
6358
6445
 
6359
- const COMPONENTS$6 = [
6446
+ const COMPONENTS$5 = [
6360
6447
  PdmSliderComponent,
6361
6448
  ];
6362
6449
  class PdmSliderModule {
@@ -6368,8 +6455,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6368
6455
  type: NgModule,
6369
6456
  args: [{
6370
6457
  imports: [CommonModule],
6371
- declarations: COMPONENTS$6,
6372
- exports: COMPONENTS$6
6458
+ declarations: COMPONENTS$5,
6459
+ exports: COMPONENTS$5
6373
6460
  }]
6374
6461
  }] });
6375
6462
 
@@ -6408,7 +6495,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6408
6495
  type: Output
6409
6496
  }] } });
6410
6497
 
6411
- const COMPONENTS$5 = [PdmSonnerComponent];
6498
+ const COMPONENTS$4 = [PdmSonnerComponent];
6412
6499
  class PdmSonnerModule {
6413
6500
  }
6414
6501
  PdmSonnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSonnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -6418,8 +6505,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6418
6505
  type: NgModule,
6419
6506
  args: [{
6420
6507
  imports: [CommonModule, PdmIconModule$1],
6421
- declarations: COMPONENTS$5,
6422
- exports: COMPONENTS$5,
6508
+ declarations: COMPONENTS$4,
6509
+ exports: COMPONENTS$4,
6423
6510
  }]
6424
6511
  }] });
6425
6512
 
@@ -6430,30 +6517,30 @@ class PdmSpinnerComponent {
6430
6517
  }
6431
6518
  }
6432
6519
  PdmSpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6433
- PdmSpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSpinnerComponent, selector: "pdm-spinner", inputs: { size: "size", className: "className" }, ngImport: i0, template: "<span\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"['inline-block animate-spin rounded-full border-2 border-current border-r-transparent', className]\"\n aria-hidden=\"true\"\n></span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6520
+ PdmSpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSpinnerComponent, isStandalone: true, selector: "pdm-spinner", inputs: { size: "size", className: "className" }, ngImport: i0, template: "<span\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"['inline-block animate-spin rounded-full border-2 border-current border-r-transparent', className]\"\n aria-hidden=\"true\"\n></span>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6434
6521
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSpinnerComponent, decorators: [{
6435
6522
  type: Component,
6436
- args: [{ selector: 'pdm-spinner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"['inline-block animate-spin rounded-full border-2 border-current border-r-transparent', className]\"\n aria-hidden=\"true\"\n></span>\n" }]
6523
+ args: [{ selector: 'pdm-spinner', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<span\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"['inline-block animate-spin rounded-full border-2 border-current border-r-transparent', className]\"\n aria-hidden=\"true\"\n></span>\n" }]
6437
6524
  }], propDecorators: { size: [{
6438
6525
  type: Input
6439
6526
  }], className: [{
6440
6527
  type: Input
6441
6528
  }] } });
6442
6529
 
6443
- const COMPONENTS$4 = [
6444
- PdmSpinnerComponent,
6445
- ];
6530
+ /**
6531
+ * @deprecated Import PdmSpinnerComponent directly instead. This module is kept for backwards compatibility.
6532
+ * For modern Angular (v14+), use: import { PdmSpinnerComponent } from 'pdm-ui-kit/spinner'
6533
+ */
6446
6534
  class PdmSpinnerModule {
6447
6535
  }
6448
6536
  PdmSpinnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6449
- PdmSpinnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmSpinnerModule, declarations: [PdmSpinnerComponent], imports: [CommonModule], exports: [PdmSpinnerComponent] });
6450
- PdmSpinnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSpinnerModule, imports: [CommonModule] });
6537
+ PdmSpinnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmSpinnerModule, imports: [PdmSpinnerComponent], exports: [PdmSpinnerComponent] });
6538
+ PdmSpinnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSpinnerModule, imports: [PdmSpinnerComponent] });
6451
6539
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSpinnerModule, decorators: [{
6452
6540
  type: NgModule,
6453
6541
  args: [{
6454
- imports: [CommonModule],
6455
- declarations: COMPONENTS$4,
6456
- exports: COMPONENTS$4
6542
+ imports: [PdmSpinnerComponent],
6543
+ exports: [PdmSpinnerComponent]
6457
6544
  }]
6458
6545
  }] });
6459
6546
 
@@ -7508,9 +7595,555 @@ function logZIndexStack(element) {
7508
7595
  console.table(stack);
7509
7596
  }
7510
7597
 
7598
+ class PdmInputHarness extends ComponentHarness {
7599
+ constructor() {
7600
+ super(...arguments);
7601
+ this.input = this.locatorFor('input');
7602
+ }
7603
+ static with(options) {
7604
+ return new HarnessPredicate(PdmInputHarness, options)
7605
+ .addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id))
7606
+ .addOption('placeholder', options.placeholder, (harness, placeholder) => HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder));
7607
+ }
7608
+ getId() {
7609
+ return __awaiter(this, void 0, void 0, function* () {
7610
+ return (yield this.input()).getAttribute('id') || '';
7611
+ });
7612
+ }
7613
+ getValue() {
7614
+ return __awaiter(this, void 0, void 0, function* () {
7615
+ return (yield this.input()).getProperty('value') || '';
7616
+ });
7617
+ }
7618
+ setValue(value) {
7619
+ return __awaiter(this, void 0, void 0, function* () {
7620
+ const input = yield this.input();
7621
+ yield input.clear();
7622
+ yield input.sendKeys(value);
7623
+ });
7624
+ }
7625
+ getPlaceholder() {
7626
+ return __awaiter(this, void 0, void 0, function* () {
7627
+ return (yield this.input()).getAttribute('placeholder') || '';
7628
+ });
7629
+ }
7630
+ isDisabled() {
7631
+ return __awaiter(this, void 0, void 0, function* () {
7632
+ return (yield this.input()).matchesSelector(':disabled');
7633
+ });
7634
+ }
7635
+ isReadonly() {
7636
+ return __awaiter(this, void 0, void 0, function* () {
7637
+ return (yield this.input()).matchesSelector('[readonly]');
7638
+ });
7639
+ }
7640
+ isRequired() {
7641
+ return __awaiter(this, void 0, void 0, function* () {
7642
+ return (yield this.input()).matchesSelector('[required]');
7643
+ });
7644
+ }
7645
+ isInvalid() {
7646
+ return __awaiter(this, void 0, void 0, function* () {
7647
+ return (yield this.input()).matchesSelector('[aria-invalid="true"]');
7648
+ });
7649
+ }
7650
+ getLabel() {
7651
+ return __awaiter(this, void 0, void 0, function* () {
7652
+ const label = yield this.locatorForOptional('label')();
7653
+ return label ? label.text() : null;
7654
+ });
7655
+ }
7656
+ getHelperText() {
7657
+ return __awaiter(this, void 0, void 0, function* () {
7658
+ const helper = yield this.locatorForOptional('[class*="text-muted-foreground"]')();
7659
+ return helper ? helper.text() : null;
7660
+ });
7661
+ }
7662
+ getErrorText() {
7663
+ return __awaiter(this, void 0, void 0, function* () {
7664
+ const error = yield this.locatorForOptional('[class*="text-destructive"]')();
7665
+ return error ? error.text() : null;
7666
+ });
7667
+ }
7668
+ focus() {
7669
+ return __awaiter(this, void 0, void 0, function* () {
7670
+ return (yield this.input()).focus();
7671
+ });
7672
+ }
7673
+ blur() {
7674
+ return __awaiter(this, void 0, void 0, function* () {
7675
+ return (yield this.input()).blur();
7676
+ });
7677
+ }
7678
+ getType() {
7679
+ return __awaiter(this, void 0, void 0, function* () {
7680
+ return (yield this.input()).getAttribute('type') || 'text';
7681
+ });
7682
+ }
7683
+ clear() {
7684
+ return __awaiter(this, void 0, void 0, function* () {
7685
+ return (yield this.input()).clear();
7686
+ });
7687
+ }
7688
+ getComponentInstance() {
7689
+ return this.locatorFor(PdmInputComponent)();
7690
+ }
7691
+ }
7692
+ PdmInputHarness.hostSelector = 'pdm-input';
7693
+
7694
+ class PdmButtonHarness extends ComponentHarness {
7695
+ constructor() {
7696
+ super(...arguments);
7697
+ this.button = this.locatorFor('button');
7698
+ }
7699
+ static with(options) {
7700
+ return new HarnessPredicate(PdmButtonHarness, options)
7701
+ .addOption('variant', options.variant, (harness, variant) => HarnessPredicate.stringMatches(harness.getVariant(), variant))
7702
+ .addOption('text', options.text, (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text));
7703
+ }
7704
+ click() {
7705
+ return __awaiter(this, void 0, void 0, function* () {
7706
+ return (yield this.button()).click();
7707
+ });
7708
+ }
7709
+ getText() {
7710
+ return __awaiter(this, void 0, void 0, function* () {
7711
+ return (yield this.button()).text();
7712
+ });
7713
+ }
7714
+ isDisabled() {
7715
+ return __awaiter(this, void 0, void 0, function* () {
7716
+ return (yield this.button()).matchesSelector(':disabled');
7717
+ });
7718
+ }
7719
+ isLoading() {
7720
+ return __awaiter(this, void 0, void 0, function* () {
7721
+ return (yield this.button()).matchesSelector('[aria-busy="true"]');
7722
+ });
7723
+ }
7724
+ getVariant() {
7725
+ return __awaiter(this, void 0, void 0, function* () {
7726
+ const component = yield this.getComponentInstance();
7727
+ return component.resolvedVariant;
7728
+ });
7729
+ }
7730
+ getSize() {
7731
+ return __awaiter(this, void 0, void 0, function* () {
7732
+ const component = yield this.getComponentInstance();
7733
+ return component.resolvedSize;
7734
+ });
7735
+ }
7736
+ getType() {
7737
+ return __awaiter(this, void 0, void 0, function* () {
7738
+ return (yield this.button()).getAttribute('type');
7739
+ });
7740
+ }
7741
+ hasIcon() {
7742
+ return __awaiter(this, void 0, void 0, function* () {
7743
+ const icon = yield this.locatorForOptional('[pdmButtonIcon]')();
7744
+ return !!icon;
7745
+ });
7746
+ }
7747
+ focus() {
7748
+ return __awaiter(this, void 0, void 0, function* () {
7749
+ return (yield this.button()).focus();
7750
+ });
7751
+ }
7752
+ blur() {
7753
+ return __awaiter(this, void 0, void 0, function* () {
7754
+ return (yield this.button()).blur();
7755
+ });
7756
+ }
7757
+ getComponentInstance() {
7758
+ return this.locatorFor(PdmButtonComponent)();
7759
+ }
7760
+ }
7761
+ PdmButtonHarness.hostSelector = 'pdm-button';
7762
+
7763
+ class PdmDialogHarness extends ComponentHarness {
7764
+ constructor() {
7765
+ super(...arguments);
7766
+ this.dialog = this.locatorFor('[role="dialog"]');
7767
+ this.closeButton = this.locatorForOptional('button[aria-label="Close dialog"]');
7768
+ this.primaryButton = this.locatorForOptional('[role="dialog"] button:last-child');
7769
+ }
7770
+ static with(options) {
7771
+ return new HarnessPredicate(PdmDialogHarness, options)
7772
+ .addOption('title', options.title, (harness, title) => HarnessPredicate.stringMatches(harness.getTitle(), title));
7773
+ }
7774
+ isOpen() {
7775
+ return __awaiter(this, void 0, void 0, function* () {
7776
+ try {
7777
+ yield this.dialog();
7778
+ return true;
7779
+ }
7780
+ catch (_a) {
7781
+ return false;
7782
+ }
7783
+ });
7784
+ }
7785
+ getTitle() {
7786
+ return __awaiter(this, void 0, void 0, function* () {
7787
+ try {
7788
+ const heading = yield this.locatorForOptional('[role="dialog"] h2')();
7789
+ return heading ? heading.text() : '';
7790
+ }
7791
+ catch (_a) {
7792
+ return '';
7793
+ }
7794
+ });
7795
+ }
7796
+ getDescription() {
7797
+ return __awaiter(this, void 0, void 0, function* () {
7798
+ try {
7799
+ const description = yield this.locatorForOptional('[role="dialog"] p')();
7800
+ return description ? description.text() : '';
7801
+ }
7802
+ catch (_a) {
7803
+ return '';
7804
+ }
7805
+ });
7806
+ }
7807
+ close() {
7808
+ return __awaiter(this, void 0, void 0, function* () {
7809
+ const closeBtn = yield this.closeButton();
7810
+ if (closeBtn) {
7811
+ return closeBtn.click();
7812
+ }
7813
+ });
7814
+ }
7815
+ clickPrimaryAction() {
7816
+ return __awaiter(this, void 0, void 0, function* () {
7817
+ const btn = yield this.primaryButton();
7818
+ if (btn) {
7819
+ return btn.click();
7820
+ }
7821
+ });
7822
+ }
7823
+ clickSecondaryAction() {
7824
+ return __awaiter(this, void 0, void 0, function* () {
7825
+ const buttons = yield this.locatorForAll('button')();
7826
+ if (buttons.length >= 2) {
7827
+ return buttons[buttons.length - 2].click();
7828
+ }
7829
+ });
7830
+ }
7831
+ getVariant() {
7832
+ return __awaiter(this, void 0, void 0, function* () {
7833
+ const component = yield this.getComponentInstance();
7834
+ return component.variant;
7835
+ });
7836
+ }
7837
+ getSize() {
7838
+ return __awaiter(this, void 0, void 0, function* () {
7839
+ const component = yield this.getComponentInstance();
7840
+ return component.size;
7841
+ });
7842
+ }
7843
+ getPrimaryActionText() {
7844
+ return __awaiter(this, void 0, void 0, function* () {
7845
+ const component = yield this.getComponentInstance();
7846
+ return component.primaryActionText;
7847
+ });
7848
+ }
7849
+ getSecondaryActionText() {
7850
+ return __awaiter(this, void 0, void 0, function* () {
7851
+ const component = yield this.getComponentInstance();
7852
+ return component.secondaryActionText;
7853
+ });
7854
+ }
7855
+ hasCloseButton() {
7856
+ return __awaiter(this, void 0, void 0, function* () {
7857
+ return !!(yield this.closeButton());
7858
+ });
7859
+ }
7860
+ getContent() {
7861
+ return __awaiter(this, void 0, void 0, function* () {
7862
+ const dialog = yield this.dialog();
7863
+ return dialog.text();
7864
+ });
7865
+ }
7866
+ getComponentInstance() {
7867
+ return this.locatorFor(PdmDialogComponent)();
7868
+ }
7869
+ }
7870
+ PdmDialogHarness.hostSelector = 'pdm-dialog';
7871
+
7872
+ class PdmSelectHarness extends ComponentHarness {
7873
+ constructor() {
7874
+ super(...arguments);
7875
+ this.trigger = this.locatorFor('button');
7876
+ this.panel = this.locatorForOptional('.cdk-overlay-pane');
7877
+ }
7878
+ static with(options) {
7879
+ return new HarnessPredicate(PdmSelectHarness, options)
7880
+ .addOption('placeholder', options.placeholder, (harness, placeholder) => HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder));
7881
+ }
7882
+ open() {
7883
+ return __awaiter(this, void 0, void 0, function* () {
7884
+ return (yield this.trigger()).click();
7885
+ });
7886
+ }
7887
+ close() {
7888
+ return __awaiter(this, void 0, void 0, function* () {
7889
+ // Close by pressing Escape
7890
+ return (yield this.trigger()).sendKeys('Escape');
7891
+ });
7892
+ }
7893
+ isOpen() {
7894
+ return __awaiter(this, void 0, void 0, function* () {
7895
+ try {
7896
+ const component = yield this.getComponentInstance();
7897
+ return component.open;
7898
+ }
7899
+ catch (_a) {
7900
+ return false;
7901
+ }
7902
+ });
7903
+ }
7904
+ getSelectedOption() {
7905
+ return __awaiter(this, void 0, void 0, function* () {
7906
+ const component = yield this.getComponentInstance();
7907
+ return component.selectedOption;
7908
+ });
7909
+ }
7910
+ getSelectedLabel() {
7911
+ return __awaiter(this, void 0, void 0, function* () {
7912
+ const component = yield this.getComponentInstance();
7913
+ return component.selectedLabel;
7914
+ });
7915
+ }
7916
+ getPlaceholder() {
7917
+ return __awaiter(this, void 0, void 0, function* () {
7918
+ const component = yield this.getComponentInstance();
7919
+ return component.placeholder;
7920
+ });
7921
+ }
7922
+ selectOption(value) {
7923
+ return __awaiter(this, void 0, void 0, function* () {
7924
+ yield this.open();
7925
+ const options = yield this.locatorForAll('.cdk-overlay-pane button')();
7926
+ for (const option of options) {
7927
+ const text = yield option.text();
7928
+ if (text.includes(value)) {
7929
+ return option.click();
7930
+ }
7931
+ }
7932
+ throw new Error(`Option with value "${value}" not found`);
7933
+ });
7934
+ }
7935
+ getOptions() {
7936
+ return __awaiter(this, void 0, void 0, function* () {
7937
+ const component = yield this.getComponentInstance();
7938
+ return component.resolvedOptions;
7939
+ });
7940
+ }
7941
+ isDisabled() {
7942
+ return __awaiter(this, void 0, void 0, function* () {
7943
+ const component = yield this.getComponentInstance();
7944
+ return component.disabled;
7945
+ });
7946
+ }
7947
+ isInvalid() {
7948
+ return __awaiter(this, void 0, void 0, function* () {
7949
+ const component = yield this.getComponentInstance();
7950
+ return component.invalid;
7951
+ });
7952
+ }
7953
+ focus() {
7954
+ return __awaiter(this, void 0, void 0, function* () {
7955
+ return (yield this.trigger()).focus();
7956
+ });
7957
+ }
7958
+ blur() {
7959
+ return __awaiter(this, void 0, void 0, function* () {
7960
+ return (yield this.trigger()).blur();
7961
+ });
7962
+ }
7963
+ getComponentInstance() {
7964
+ return this.locatorFor(PdmSelectComponent)();
7965
+ }
7966
+ }
7967
+ PdmSelectHarness.hostSelector = 'pdm-select';
7968
+
7969
+ class PdmCheckboxHarness extends ComponentHarness {
7970
+ constructor() {
7971
+ super(...arguments);
7972
+ this.input = this.locatorFor('input[type="checkbox"]');
7973
+ }
7974
+ static with(options) {
7975
+ return new HarnessPredicate(PdmCheckboxHarness, options)
7976
+ .addOption('label', options.label, (harness, label) => HarnessPredicate.stringMatches(harness.getLabel(), label));
7977
+ }
7978
+ isChecked() {
7979
+ return __awaiter(this, void 0, void 0, function* () {
7980
+ return (yield this.input()).matchesSelector(':checked');
7981
+ });
7982
+ }
7983
+ toggle() {
7984
+ return __awaiter(this, void 0, void 0, function* () {
7985
+ return (yield this.input()).click();
7986
+ });
7987
+ }
7988
+ check() {
7989
+ return __awaiter(this, void 0, void 0, function* () {
7990
+ if (!(yield this.isChecked())) {
7991
+ yield this.toggle();
7992
+ }
7993
+ });
7994
+ }
7995
+ uncheck() {
7996
+ return __awaiter(this, void 0, void 0, function* () {
7997
+ if (yield this.isChecked()) {
7998
+ yield this.toggle();
7999
+ }
8000
+ });
8001
+ }
8002
+ isDisabled() {
8003
+ return __awaiter(this, void 0, void 0, function* () {
8004
+ return (yield this.input()).matchesSelector(':disabled');
8005
+ });
8006
+ }
8007
+ getLabel() {
8008
+ return __awaiter(this, void 0, void 0, function* () {
8009
+ const label = yield this.locatorForOptional('label')();
8010
+ return label ? label.text() : '';
8011
+ });
8012
+ }
8013
+ getDescription() {
8014
+ return __awaiter(this, void 0, void 0, function* () {
8015
+ const component = yield this.getComponentInstance();
8016
+ return component.description;
8017
+ });
8018
+ }
8019
+ getVariant() {
8020
+ return __awaiter(this, void 0, void 0, function* () {
8021
+ const component = yield this.getComponentInstance();
8022
+ return component.variant;
8023
+ });
8024
+ }
8025
+ focus() {
8026
+ return __awaiter(this, void 0, void 0, function* () {
8027
+ return (yield this.input()).focus();
8028
+ });
8029
+ }
8030
+ blur() {
8031
+ return __awaiter(this, void 0, void 0, function* () {
8032
+ return (yield this.input()).blur();
8033
+ });
8034
+ }
8035
+ getComponentInstance() {
8036
+ return this.locatorFor(PdmCheckboxComponent)();
8037
+ }
8038
+ }
8039
+ PdmCheckboxHarness.hostSelector = 'pdm-checkbox';
8040
+
8041
+ class PdmPaginationHarness extends ComponentHarness {
8042
+ constructor() {
8043
+ super(...arguments);
8044
+ this.nav = this.locatorFor('nav');
8045
+ }
8046
+ static with(options) {
8047
+ return new HarnessPredicate(PdmPaginationHarness, options);
8048
+ }
8049
+ goToPage(page) {
8050
+ return __awaiter(this, void 0, void 0, function* () {
8051
+ const buttons = yield this.locatorForAll('button')();
8052
+ for (const button of buttons) {
8053
+ const text = yield button.text();
8054
+ if (text.trim() === String(page)) {
8055
+ return button.click();
8056
+ }
8057
+ }
8058
+ throw new Error(`Page ${page} not found in pagination`);
8059
+ });
8060
+ }
8061
+ goToNextPage() {
8062
+ return __awaiter(this, void 0, void 0, function* () {
8063
+ const buttons = yield this.locatorForAll('button')();
8064
+ if (buttons.length > 0) {
8065
+ return buttons[buttons.length - 1].click();
8066
+ }
8067
+ });
8068
+ }
8069
+ goToPreviousPage() {
8070
+ return __awaiter(this, void 0, void 0, function* () {
8071
+ const buttons = yield this.locatorForAll('button')();
8072
+ if (buttons.length > 0) {
8073
+ return buttons[0].click();
8074
+ }
8075
+ });
8076
+ }
8077
+ getCurrentPage() {
8078
+ return __awaiter(this, void 0, void 0, function* () {
8079
+ const component = yield this.getComponentInstance();
8080
+ return component.page;
8081
+ });
8082
+ }
8083
+ getPageCount() {
8084
+ return __awaiter(this, void 0, void 0, function* () {
8085
+ const component = yield this.getComponentInstance();
8086
+ return component.pageCount;
8087
+ });
8088
+ }
8089
+ getRowsPerPage() {
8090
+ return __awaiter(this, void 0, void 0, function* () {
8091
+ const component = yield this.getComponentInstance();
8092
+ return component.rowsPerPage;
8093
+ });
8094
+ }
8095
+ setRowsPerPage(rows) {
8096
+ return __awaiter(this, void 0, void 0, function* () {
8097
+ // This would require interacting with the select component
8098
+ const component = yield this.getComponentInstance();
8099
+ component.rowsPerPageChange.emit(rows);
8100
+ });
8101
+ }
8102
+ getVisiblePages() {
8103
+ return __awaiter(this, void 0, void 0, function* () {
8104
+ const component = yield this.getComponentInstance();
8105
+ return component.visiblePages;
8106
+ });
8107
+ }
8108
+ isNextPageDisabled() {
8109
+ return __awaiter(this, void 0, void 0, function* () {
8110
+ const buttons = yield this.locatorForAll('button')();
8111
+ if (buttons.length > 0) {
8112
+ return buttons[buttons.length - 1].matchesSelector(':disabled');
8113
+ }
8114
+ return true;
8115
+ });
8116
+ }
8117
+ isPreviousPageDisabled() {
8118
+ return __awaiter(this, void 0, void 0, function* () {
8119
+ const buttons = yield this.locatorForAll('button')();
8120
+ if (buttons.length > 0) {
8121
+ return buttons[0].matchesSelector(':disabled');
8122
+ }
8123
+ return true;
8124
+ });
8125
+ }
8126
+ getPageButtons() {
8127
+ return __awaiter(this, void 0, void 0, function* () {
8128
+ return this.locatorForAll('button')();
8129
+ });
8130
+ }
8131
+ getComponentInstance() {
8132
+ return this.locatorFor(PdmPaginationComponent)();
8133
+ }
8134
+ }
8135
+ PdmPaginationHarness.hostSelector = 'pdm-pagination';
8136
+
8137
+ /**
8138
+ * Public API for CDK test harnesses
8139
+ *
8140
+ * Usage:
8141
+ * import { PdmInputHarness, PdmButtonHarness } from 'pdm-ui-kit/testing';
8142
+ */
8143
+
7511
8144
  /**
7512
8145
  * Generated bundle index. Do not edit.
7513
8146
  */
7514
8147
 
7515
- export { BREAKPOINTS, OVERLAY_BASE_Z_INDEX, PdmAccordionComponent, PdmAccordionModule, PdmAlertComponent, PdmAlertDialogComponent, PdmAlertModule, PdmAspectRatioComponent, PdmAspectRatioModule, PdmAvatarComponent, PdmAvatarModule, PdmBadgeComponent, PdmBadgeModule, PdmBreadcrumbComponent, PdmBreadcrumbModule, PdmButtonComponent, PdmButtonGroupComponent, PdmButtonModule, PdmCalendarComponent, PdmCalendarModule, PdmCardComponent, PdmCardModule, PdmCarouselComponent, PdmCarouselModule, PdmChartComponent, PdmChartModule, PdmCheckboxComponent, PdmCheckboxModule, PdmCollapsibleComponent, PdmCollapsibleModule, PdmComboboxComponent, PdmComboboxModule, PdmCommandComponent, PdmCommandModule, PdmContextMenuComponent, PdmContextMenuModule, PdmDataTableComponent, PdmDataTableModule, PdmDatePickerComponent, PdmDialogComponent, PdmDialogModule, PdmDraggableTableComponent, PdmDrawerComponent, PdmDrawerModule, PdmDropdownMenuComponent, PdmDropdownMenuModule, PdmEmptyComponent, PdmEmptyModule, PdmFieldComponent, PdmFieldModule, PdmHoverCardComponent, PdmHoverCardModule, PdmIconComponent, PdmIconModule, PdmInputComponent, PdmInputGroupComponent, PdmInputModule, PdmInputOtpComponent, PdmInputPasswordComponent, PdmItemComponent, PdmItemModule, PdmKbdComponent, PdmKbdModule, PdmLabelComponent, PdmLabelModule, PdmMenubarComponent, PdmMenubarModule, PdmNativeSelectComponent, PdmNativeSelectModule, PdmNavigationMenuComponent, PdmNavigationMenuModule, PdmOutsideClickDirective, PdmOutsideClickModule, PdmPaginationComponent, PdmPaginationModule, PdmPopoverComponent, PdmPopoverModule, PdmProgressComponent, PdmProgressModule, PdmRadioGroupComponent, PdmRadioGroupModule, PdmScrollAreaComponent, PdmScrollAreaModule, PdmSelectComponent, PdmSelectModule, PdmSelectOptionDirective, PdmSeparatorComponent, PdmSeparatorModule, PdmSheetComponent, PdmSidebarComponent, PdmSidebarModule, PdmSkeletonComponent, PdmSkeletonModule, PdmSliderComponent, PdmSliderModule, PdmSonnerComponent, PdmSonnerModule, PdmSpinnerComponent, PdmSpinnerModule, PdmSwitchComponent, PdmSwitchModule, PdmTableComponent, PdmTabsComponent, PdmTabsModule, PdmTextareaComponent, PdmToggleComponent, PdmToggleGroupComponent, PdmToggleModule, PdmTooltipComponent, PdmTooltipModule, PdmUiKitModule, RESPONSIVE_CONTAINER, RESPONSIVE_DISPLAY, TABLE_RESPONSIVE, Z_INDEX, createFlexiblePositionStrategy, createZIndexEnforcedOverlay, extractZIndex, logZIndexStack, mergeOverlayPanelClass, overflowResponsive, responsive, spacingResponsive, widthResponsive };
8148
+ export { BREAKPOINTS, OVERLAY_BASE_Z_INDEX, PdmAccordionComponent, PdmAccordionModule, PdmAlertComponent, PdmAlertDialogComponent, PdmAlertModule, PdmAspectRatioComponent, PdmAspectRatioModule, PdmAvatarComponent, PdmAvatarModule, PdmBadgeComponent, PdmBadgeModule, PdmBreadcrumbComponent, PdmBreadcrumbModule, PdmButtonComponent, PdmButtonGroupComponent, PdmButtonHarness, PdmButtonModule, PdmCalendarComponent, PdmCalendarModule, PdmCardComponent, PdmCardModule, PdmCarouselComponent, PdmCarouselModule, PdmChartComponent, PdmChartModule, PdmCheckboxComponent, PdmCheckboxHarness, PdmCheckboxModule, PdmCollapsibleComponent, PdmCollapsibleModule, PdmComboboxComponent, PdmComboboxModule, PdmCommandComponent, PdmCommandModule, PdmContextMenuComponent, PdmContextMenuModule, PdmDataTableComponent, PdmDataTableModule, PdmDatePickerComponent, PdmDialogComponent, PdmDialogHarness, PdmDialogModule, PdmDraggableTableComponent, PdmDrawerComponent, PdmDrawerModule, PdmDropdownMenuComponent, PdmDropdownMenuModule, PdmEmptyComponent, PdmEmptyModule, PdmFieldComponent, PdmFieldModule, PdmHoverCardComponent, PdmHoverCardModule, PdmIconComponent, PdmIconModule, PdmInputComponent, PdmInputGroupComponent, PdmInputHarness, PdmInputModule, PdmInputOtpComponent, PdmInputPasswordComponent, PdmItemComponent, PdmItemModule, PdmKbdComponent, PdmKbdModule, PdmLabelComponent, PdmLabelModule, PdmMenubarComponent, PdmMenubarModule, PdmNativeSelectComponent, PdmNativeSelectModule, PdmNavigationMenuComponent, PdmNavigationMenuModule, PdmOutsideClickDirective, PdmOutsideClickModule, PdmPaginationComponent, PdmPaginationHarness, PdmPaginationModule, PdmPopoverComponent, PdmPopoverModule, PdmProgressComponent, PdmProgressModule, PdmRadioGroupComponent, PdmRadioGroupModule, PdmScrollAreaComponent, PdmScrollAreaModule, PdmSelectComponent, PdmSelectHarness, PdmSelectModule, PdmSelectOptionDirective, PdmSeparatorComponent, PdmSeparatorModule, PdmSheetComponent, PdmSidebarComponent, PdmSidebarModule, PdmSkeletonComponent, PdmSkeletonModule, PdmSliderComponent, PdmSliderModule, PdmSonnerComponent, PdmSonnerModule, PdmSpinnerComponent, PdmSpinnerModule, PdmSwitchComponent, PdmSwitchModule, PdmTableComponent, PdmTabsComponent, PdmTabsModule, PdmTextareaComponent, PdmToggleComponent, PdmToggleGroupComponent, PdmToggleModule, PdmTooltipComponent, PdmTooltipModule, PdmUiKitModule, RESPONSIVE_CONTAINER, RESPONSIVE_DISPLAY, TABLE_RESPONSIVE, Z_INDEX, createFlexiblePositionStrategy, createZIndexEnforcedOverlay, extractZIndex, logZIndexStack, mergeOverlayPanelClass, overflowResponsive, responsive, spacingResponsive, widthResponsive };
7516
8149
  //# sourceMappingURL=pdm-ui-kit.mjs.map