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
@@ -1 +1 @@
1
- {"version":3,"file":"pdm-ui-kit-src-button.mjs","sources":["../../../src/button/button.component.ts","../../../src/button/button.component.html","../../../src/button/button-group.component.ts","../../../src/button/button-group.component.html","../../../src/button/button.module.ts","../../../src/button/pdm-ui-kit-src-button.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmButtonVariant =\n | 'default'\n | 'primary'\n | 'destructive'\n | 'outline'\n | 'subtle'\n | 'secondary'\n | 'ghost'\n | 'link'\n | 'with-icon'\n | 'icon'\n | 'icon-circle'\n | 'rounded'\n | 'loading';\nexport type PdmButtonState = 'default' | 'hover';\nexport type PdmButtonSize = 'small' | 'default' | 'large';\n\n@Component({\n selector: 'pdm-button',\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmButtonComponent {\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() variant: PdmButtonVariant | string = 'default';\n @Input() state: PdmButtonState | string = 'default';\n @Input() size: PdmButtonSize | string = 'default';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() className = '';\n\n @Output() pressed = new EventEmitter<MouseEvent>();\n\n readonly toneClassMap: Record<PdmButtonVariant, { default: string; hover: string }> = {\n default: { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n primary: { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n destructive: { default: 'border-border bg-destructive text-destructive-foreground', hover: 'border-border bg-destructive text-destructive-foreground opacity-90' },\n outline: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-muted text-foreground' },\n subtle: { default: 'border-secondary bg-secondary text-secondary-foreground', hover: 'border-accent bg-accent text-accent-foreground' },\n secondary: { default: 'border-secondary bg-secondary text-secondary-foreground', hover: 'border-accent bg-accent text-accent-foreground' },\n ghost: { default: 'border-border bg-transparent text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n link: { default: 'border-border bg-transparent text-primary', hover: 'border-border bg-transparent text-primary underline underline-offset-4' },\n 'with-icon': { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n icon: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n 'icon-circle': { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n rounded: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n loading: { default: 'border-primary bg-primary text-primary-foreground opacity-70', hover: 'border-primary bg-primary text-primary-foreground opacity-70' }\n };\n\n get isDisabled(): boolean {\n return this.disabled || this.loading || this.variant === 'loading';\n }\n\n get resolvedVariant(): PdmButtonVariant {\n return this.isValidVariant(this.variant) ? this.variant : 'default';\n }\n\n get resolvedState(): PdmButtonState {\n return this.state === 'hover' ? 'hover' : 'default';\n }\n\n get resolvedSize(): PdmButtonSize {\n if (this.size === 'small' || this.size === 'large') {\n return this.size;\n }\n\n return 'default';\n }\n\n get showsIconSlot(): boolean {\n const variant = this.resolvedVariant;\n return variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded';\n }\n\n get rootClasses(): string[] {\n const currentState = this.resolvedState;\n const variant = this.resolvedVariant;\n const toneClass = this.toneClassMap[variant][currentState];\n\n return [\n 'inline-flex appearance-none box-border items-center justify-center gap-2 rounded-md border border-solid text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-clip-padding',\n variant === 'link' ? 'px-4 py-2 h-9' : '',\n variant === 'icon' ? 'h-9 w-9 p-0' : '',\n variant === 'icon-circle' ? 'h-10 w-10 rounded-full p-0' : '',\n variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',\n variant !== 'icon' && variant !== 'icon-circle' && variant !== 'rounded'\n ? this.resolvedSize === 'small'\n ? 'h-8 px-3 text-xs'\n : this.resolvedSize === 'large'\n ? 'h-10 px-8'\n : 'h-9 px-4'\n : '',\n variant === 'link' && currentState === 'hover' ? 'underline underline-offset-4' : '',\n toneClass,\n this.className\n ];\n }\n\n onClick(event: MouseEvent): void {\n if (!this.isDisabled) {\n this.pressed.emit(event);\n }\n }\n\n private isValidVariant(value: unknown): value is PdmButtonVariant {\n return (\n value === 'default' ||\n value === 'primary' ||\n value === 'destructive' ||\n value === 'outline' ||\n value === 'subtle' ||\n value === 'secondary' ||\n value === 'ghost' ||\n value === 'link' ||\n value === 'with-icon' ||\n value === 'icon' ||\n value === 'icon-circle' ||\n value === 'rounded' ||\n value === 'loading'\n );\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\n\nexport type PdmButtonGroupVariant =\n\t| \"default\"\n\t| \"group\"\n\t| \"orientation\"\n\t| \"separator\";\nexport type PdmButtonGroupOrientation = \"horizontal\" | \"vertical\";\n\ntype Axis = \"horizontal\" | \"vertical\";\n\nconst ROOT_LAYOUT: Record<Axis, string> = {\n\thorizontal: \"w-full flex flex-row items-center overflow-visible\",\n\tvertical: \"flex flex-col items-stretch\",\n};\n\nconst ATTACHMENT_EDGE_CLASSES: Record<Axis, string[]> = {\n\thorizontal: [\n\t\t\"[&>*]:rounded-none\",\n\t\t\"[&>*:first-child]:rounded-l-md\",\n\t\t\"[&>*:last-child]:rounded-r-md\",\n\t\t\"[&>*:not(:first-child)]:border-l-0\",\n\t\t\"[&>*:not(:first-child)]:-ml-px\",\n\t],\n\tvertical: [\n\t\t\"[&>*]:rounded-none\",\n\t\t\"[&>*:first-child]:rounded-t-md\",\n\t\t\"[&>*:last-child]:rounded-b-md\",\n\t\t\"[&>*:not(:first-child)]:border-t-0\",\n\t\t\"[&>*:not(:first-child)]:-mt-px\",\n\t],\n};\n\nconst ATTACHMENT_CONTROL_CLASSES: Record<Axis, string[]> = {\n\thorizontal: [\n\t\t\"[&>pdm-button]:flex\",\n\t\t\"[&>pdm-button>button]:h-9\",\n\t\t\"[&>pdm-button>button]:!rounded-none\",\n\t\t\"[&>pdm-button>button]:shadow-none\",\n\t\t\"[&>pdm-button:first-child>button]:!rounded-l-md\",\n\t\t\"[&>pdm-button:last-child>button]:!rounded-r-md\",\n\n\t\t\"[&>pdm-input]:flex-1\",\n\t\t\"[&>pdm-input]:min-w-0\",\n\t\t\"[&>pdm-input>div]:w-full\",\n\t\t\"[&>pdm-input>div]:min-w-0\",\n\t\t\"[&>pdm-input>div]:!rounded-none\",\n\t\t\"[&>pdm-input>div]:shadow-none\",\n\t\t\"[&>pdm-input>div>input]:!rounded-none\",\n\t\t\"[&>pdm-input>div>input]:bg-background\",\n\t\t\"[&>pdm-input>div>input]:shadow-none\",\n\t\t\"[&>pdm-input:first-child>div]:!rounded-l-md\",\n\t\t\"[&>pdm-input:last-child>div]:!rounded-r-md\",\n\t\t\"[&>pdm-input:first-child>div>input]:!rounded-l-md\",\n\t\t\"[&>pdm-input:last-child>div>input]:!rounded-r-md\",\n\n\t\t\"[&>pdm-input-group]:min-w-0\",\n\t\t\"[&>pdm-input-group>div]:!rounded-none\",\n\t\t\"[&>pdm-input-group>div]:shadow-none\",\n\t\t\"[&>pdm-input-group:first-child>div]:!rounded-l-md\",\n\t\t\"[&>pdm-input-group:last-child>div]:!rounded-r-md\",\n\n\t\t\"[&>pdm-select>select]:!rounded-none\",\n\t\t\"[&>pdm-select>select]:shadow-none\",\n\t\t\"[&>pdm-select>div>button]:!rounded-none\",\n\t\t\"[&>pdm-select>div>button]:shadow-none\",\n\t\t\"[&>pdm-select:first-child>select]:!rounded-l-md\",\n\t\t\"[&>pdm-select:last-child>select]:!rounded-r-md\",\n\t\t\"[&>pdm-select:first-child>div>button]:!rounded-l-md\",\n\t\t\"[&>pdm-select:last-child>div>button]:!rounded-r-md\",\n\t\t\"[&>pdm-select:not(:first-child)>div>button]:!rounded-l-none\",\n\t\t\"[&>pdm-select:not(:last-child)>div>button]:!rounded-r-none\",\n\n\t\t\"[&>pdm-tooltip>span>*]:rounded-none\",\n\t\t\"[&>pdm-tooltip>span>*]:shadow-none\",\n\t\t\"[&>pdm-tooltip:not(:first-child)>span>*]:border-l-0\",\n\t\t\"[&>pdm-tooltip>span>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>button]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>button]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>input]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>input]:bg-background\",\n\t\t\"[&>pdm-tooltip>span>input]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>input]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>input]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>select]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>select]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>select]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>select]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-button>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-button>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-button>button]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-button>button]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div]:shadow-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:bg-background\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input>div]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input>div]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input>div>input]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input>div>input]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-input-group>div]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input-group>div]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input-group>div]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input-group>div]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>select]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>select]:shadow-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>div>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>div>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-select>select]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-select>select]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-select>div>button]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-select>div>button]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip:not(:first-child)>span>pdm-select>div>button]:!rounded-l-none\",\n\t\t\"[&>pdm-tooltip:not(:last-child)>span>pdm-select>div>button]:!rounded-r-none\",\n\t],\n\tvertical: [\n\t\t\"[&>*]:rounded-none\",\n\t\t\"[&>*:first-child]:rounded-t-md\",\n\t\t\"[&>*:last-child]:rounded-b-md\",\n\t\t\"[&>*:not(:first-child)]:border-t-0\",\n\t\t\"[&>*:not(:first-child)]:-mt-px\",\n\n\t\t\"[&>pdm-button]:flex\",\n\t\t\"[&>pdm-button>button]:h-9\",\n\t\t\"[&>pdm-button>button]:!rounded-none\",\n\t\t\"[&>pdm-button>button]:shadow-none\",\n\t\t\"[&>pdm-button:first-child>button]:!rounded-t-md\",\n\t\t\"[&>pdm-button:last-child>button]:!rounded-b-md\",\n\n\t\t\"[&>pdm-input>div]:!rounded-none\",\n\t\t\"[&>pdm-input>div]:shadow-none\",\n\t\t\"[&>pdm-input>div>input]:!rounded-none\",\n\t\t\"[&>pdm-input>div>input]:bg-background\",\n\t\t\"[&>pdm-input>div>input]:shadow-none\",\n\t\t\"[&>pdm-input:first-child>div]:!rounded-t-md\",\n\t\t\"[&>pdm-input:last-child>div]:!rounded-b-md\",\n\t\t\"[&>pdm-input:first-child>div>input]:!rounded-t-md\",\n\t\t\"[&>pdm-input:last-child>div>input]:!rounded-b-md\",\n\n\t\t\"[&>pdm-input-group>div]:!rounded-none\",\n\t\t\"[&>pdm-input-group>div]:shadow-none\",\n\t\t\"[&>pdm-input-group:first-child>div]:!rounded-t-md\",\n\t\t\"[&>pdm-input-group:last-child>div]:!rounded-b-md\",\n\n\t\t\"[&>pdm-select>select]:!rounded-none\",\n\t\t\"[&>pdm-select>select]:shadow-none\",\n\t\t\"[&>pdm-select>div>button]:!rounded-none\",\n\t\t\"[&>pdm-select>div>button]:shadow-none\",\n\t\t\"[&>pdm-select:first-child>select]:!rounded-t-md\",\n\t\t\"[&>pdm-select:last-child>select]:!rounded-b-md\",\n\t\t\"[&>pdm-select:first-child>div>button]:!rounded-t-md\",\n\t\t\"[&>pdm-select:last-child>div>button]:!rounded-b-md\",\n\t\t\"[&>pdm-select:not(:first-child)>div>button]:!rounded-t-none\",\n\t\t\"[&>pdm-select:not(:last-child)>div>button]:!rounded-b-none\",\n\n\t\t\"[&>pdm-tooltip>span>*]:rounded-none\",\n\t\t\"[&>pdm-tooltip>span>*]:shadow-none\",\n\t\t\"[&>pdm-tooltip:not(:first-child)>span>*]:border-t-0\",\n\t\t\"[&>pdm-tooltip>span>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>button]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>button]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>input]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>input]:bg-background\",\n\t\t\"[&>pdm-tooltip>span>input]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>input]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>input]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>select]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>select]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>select]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>select]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-button>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-button>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-button>button]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-button>button]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div]:shadow-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:bg-background\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input>div]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input>div]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input>div>input]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input>div>input]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-input-group>div]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input-group>div]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input-group>div]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input-group>div]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>select]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>select]:shadow-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>div>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>div>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-select>select]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-select>select]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-select>div>button]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-select>div>button]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip:not(:first-child)>span>pdm-select>div>button]:!rounded-t-none\",\n\t\t\"[&>pdm-tooltip:not(:last-child)>span>pdm-select>div>button]:!rounded-b-none\",\n\t],\n};\n\nconst FOCUS_STACKING_CLASS = \"*:focus-visible:relative *:focus-visible:z-10\";\nconst SEPARATOR_CLASSES =\n\t\"overflow-hidden rounded-md border border-solid border-border bg-secondary shadow-sm\";\n\n@Component({\n\tselector: \"pdm-button-group\",\n\ttemplateUrl: \"./button-group.component.html\",\n\tstyles: [\":host { display: block; }\"],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmButtonGroupComponent {\n\t@Input() variant: PdmButtonGroupVariant = \"default\";\n\t@Input() orientation?: PdmButtonGroupOrientation;\n\t@Input() direction?: PdmButtonGroupOrientation;\n\t@Input() separated = true;\n\t@Input() className = \"\";\n\n\tget axis(): Axis {\n\t\treturn this.orientation ?? this.direction ?? \"horizontal\";\n\t}\n\n\tget isVertical(): boolean {\n\t\treturn this.variant === \"orientation\" || this.axis === \"vertical\";\n\t}\n\n\tget shouldAttach(): boolean {\n\t\treturn !this.separated && this.variant !== \"default\";\n\t}\n\n\tget ariaOrientation(): PdmButtonGroupOrientation {\n\t\treturn this.isVertical ? \"vertical\" : \"horizontal\";\n\t}\n\n\tget rootClasses(): string[] {\n\t\treturn [\n\t\t\tROOT_LAYOUT[this.isVertical ? \"vertical\" : \"horizontal\"],\n\t\t\tthis.variant === \"default\" || this.separated ? \"gap-2\" : \"gap-0\",\n\t\t\tthis.shouldAttach\n\t\t\t\t? ATTACHMENT_EDGE_CLASSES[\n\t\t\t\t\t\tthis.isVertical ? \"vertical\" : \"horizontal\"\n\t\t\t\t\t].join(\" \")\n\t\t\t\t: \"\",\n\t\t\tthis.shouldAttach\n\t\t\t\t? ATTACHMENT_CONTROL_CLASSES[\n\t\t\t\t\t\tthis.isVertical ? \"vertical\" : \"horizontal\"\n\t\t\t\t\t].join(\" \")\n\t\t\t\t: \"\",\n\t\t\tthis.shouldAttach ? FOCUS_STACKING_CLASS : \"\",\n\t\t\tthis.variant === \"separator\" ? SEPARATOR_CLASSES : \"\",\n\t\t\tthis.className,\n\t\t];\n\t}\n}\n","<div\n role=\"group\"\n [attr.aria-orientation]=\"ariaOrientation\"\n [ngClass]=\"rootClasses\"\n>\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PdmButtonComponent } from './button.component';\nimport { PdmButtonGroupComponent } from './button-group.component';\n\nconst COMPONENTS = [\n PdmButtonComponent,\n PdmButtonGroupComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class PdmButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdm-ui-kit-src-button.mjs","sources":["../../../src/button/button-theme.constant.ts","../../../src/button/button.component.ts","../../../src/button/button.component.html","../../../src/button/button-group.component.ts","../../../src/button/button-group.component.html","../../../src/button/button.module.ts","../../../src/button/pdm-ui-kit-src-button.ts"],"sourcesContent":["import { PdmButtonVariant, PdmButtonState } from './button.component';\n\nexport const BUTTON_TONE_MAP: Record<PdmButtonVariant, Record<PdmButtonState, string>> = {\n default: {\n default: 'border-primary bg-primary text-primary-foreground',\n hover: 'border-primary bg-primary text-primary-foreground opacity-90',\n },\n primary: {\n default: 'border-primary bg-primary text-primary-foreground',\n hover: 'border-primary bg-primary text-primary-foreground opacity-90',\n },\n destructive: {\n default: 'border-border bg-destructive text-destructive-foreground',\n hover: 'border-border bg-destructive text-destructive-foreground opacity-90',\n },\n outline: {\n default: 'border-border bg-background text-foreground',\n hover: 'border-border bg-muted text-foreground',\n },\n subtle: {\n default: 'border-secondary bg-secondary text-secondary-foreground',\n hover: 'border-accent bg-accent text-accent-foreground',\n },\n secondary: {\n default: 'border-secondary bg-secondary text-secondary-foreground',\n hover: 'border-accent bg-accent text-accent-foreground',\n },\n ghost: {\n default: 'border-border bg-transparent text-foreground',\n hover: 'border-border bg-accent text-accent-foreground',\n },\n link: {\n default: 'border-border bg-transparent text-primary',\n hover: 'border-border bg-transparent text-primary underline underline-offset-4',\n },\n 'with-icon': {\n default: 'border-primary bg-primary text-primary-foreground',\n hover: 'border-primary bg-primary text-primary-foreground opacity-90',\n },\n icon: {\n default: 'border-border bg-background text-foreground',\n hover: 'border-border bg-accent text-accent-foreground',\n },\n 'icon-circle': {\n default: 'border-border bg-background text-foreground',\n hover: 'border-border bg-accent text-accent-foreground',\n },\n rounded: {\n default: 'border-border bg-background text-foreground',\n hover: 'border-border bg-accent text-accent-foreground',\n },\n loading: {\n default: 'border-primary bg-primary text-primary-foreground opacity-70',\n hover: 'border-primary bg-primary text-primary-foreground opacity-70',\n },\n} as const;\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BUTTON_TONE_MAP } from './button-theme.constant';\n\nexport type PdmButtonVariant =\n | 'default'\n | 'primary'\n | 'destructive'\n | 'outline'\n | 'subtle'\n | 'secondary'\n | 'ghost'\n | 'link'\n | 'with-icon'\n | 'icon'\n | 'icon-circle'\n | 'rounded'\n | 'loading';\nexport type PdmButtonState = 'default' | 'hover';\nexport type PdmButtonSize = 'small' | 'default' | 'large';\n\n@Component({\n selector: 'pdm-button',\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmButtonComponent {\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() variant: PdmButtonVariant | string = 'default';\n @Input() state: PdmButtonState | string = 'default';\n @Input() size: PdmButtonSize | string = 'default';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() className = '';\n\n @Output() pressed = new EventEmitter<MouseEvent>();\n\n readonly toneClassMap = BUTTON_TONE_MAP;\n\n get isDisabled(): boolean {\n return this.disabled || this.loading || this.variant === 'loading';\n }\n\n get resolvedVariant(): PdmButtonVariant {\n return this.isValidVariant(this.variant) ? this.variant : 'default';\n }\n\n get resolvedState(): PdmButtonState {\n return this.state === 'hover' ? 'hover' : 'default';\n }\n\n get resolvedSize(): PdmButtonSize {\n if (this.size === 'small' || this.size === 'large') {\n return this.size;\n }\n\n return 'default';\n }\n\n get showsIconSlot(): boolean {\n const variant = this.resolvedVariant;\n return variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded';\n }\n\n get rootClasses(): string[] {\n const currentState = this.resolvedState;\n const variant = this.resolvedVariant;\n const toneClass = this.toneClassMap[variant][currentState];\n\n return [\n 'inline-flex appearance-none box-border items-center justify-center gap-2 rounded-md border border-solid text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-clip-padding',\n variant === 'link' ? 'px-4 py-2 h-9' : '',\n variant === 'icon' ? 'h-9 w-9 p-0' : '',\n variant === 'icon-circle' ? 'h-10 w-10 rounded-full p-0' : '',\n variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',\n variant !== 'icon' && variant !== 'icon-circle' && variant !== 'rounded'\n ? this.resolvedSize === 'small'\n ? 'h-8 px-3 text-xs'\n : this.resolvedSize === 'large'\n ? 'h-10 px-8'\n : 'h-9 px-4'\n : '',\n variant === 'link' && currentState === 'hover' ? 'underline underline-offset-4' : '',\n toneClass,\n this.className\n ];\n }\n\n onClick(event: MouseEvent): void {\n if (!this.isDisabled) {\n this.pressed.emit(event);\n }\n }\n\n private isValidVariant(value: unknown): value is PdmButtonVariant {\n return (\n value === 'default' ||\n value === 'primary' ||\n value === 'destructive' ||\n value === 'outline' ||\n value === 'subtle' ||\n value === 'secondary' ||\n value === 'ghost' ||\n value === 'link' ||\n value === 'with-icon' ||\n value === 'icon' ||\n value === 'icon-circle' ||\n value === 'rounded' ||\n value === 'loading'\n );\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\n\nexport type PdmButtonGroupVariant =\n\t| \"default\"\n\t| \"group\"\n\t| \"orientation\"\n\t| \"separator\";\nexport type PdmButtonGroupOrientation = \"horizontal\" | \"vertical\";\n\ntype Axis = \"horizontal\" | \"vertical\";\n\nconst ROOT_LAYOUT: Record<Axis, string> = {\n\thorizontal: \"w-full flex flex-row items-center overflow-visible\",\n\tvertical: \"flex flex-col items-stretch\",\n};\n\nconst ATTACHMENT_EDGE_CLASSES: Record<Axis, string[]> = {\n\thorizontal: [\n\t\t\"[&>*]:rounded-none\",\n\t\t\"[&>*:first-child]:rounded-l-md\",\n\t\t\"[&>*:last-child]:rounded-r-md\",\n\t\t\"[&>*:not(:first-child)]:border-l-0\",\n\t\t\"[&>*:not(:first-child)]:-ml-px\",\n\t],\n\tvertical: [\n\t\t\"[&>*]:rounded-none\",\n\t\t\"[&>*:first-child]:rounded-t-md\",\n\t\t\"[&>*:last-child]:rounded-b-md\",\n\t\t\"[&>*:not(:first-child)]:border-t-0\",\n\t\t\"[&>*:not(:first-child)]:-mt-px\",\n\t],\n};\n\nconst ATTACHMENT_CONTROL_CLASSES: Record<Axis, string[]> = {\n\thorizontal: [\n\t\t\"[&>pdm-button]:flex\",\n\t\t\"[&>pdm-button>button]:h-9\",\n\t\t\"[&>pdm-button>button]:!rounded-none\",\n\t\t\"[&>pdm-button>button]:shadow-none\",\n\t\t\"[&>pdm-button:first-child>button]:!rounded-l-md\",\n\t\t\"[&>pdm-button:last-child>button]:!rounded-r-md\",\n\n\t\t\"[&>pdm-input]:flex-1\",\n\t\t\"[&>pdm-input]:min-w-0\",\n\t\t\"[&>pdm-input>div]:w-full\",\n\t\t\"[&>pdm-input>div]:min-w-0\",\n\t\t\"[&>pdm-input>div]:!rounded-none\",\n\t\t\"[&>pdm-input>div]:shadow-none\",\n\t\t\"[&>pdm-input>div>input]:!rounded-none\",\n\t\t\"[&>pdm-input>div>input]:bg-background\",\n\t\t\"[&>pdm-input>div>input]:shadow-none\",\n\t\t\"[&>pdm-input:first-child>div]:!rounded-l-md\",\n\t\t\"[&>pdm-input:last-child>div]:!rounded-r-md\",\n\t\t\"[&>pdm-input:first-child>div>input]:!rounded-l-md\",\n\t\t\"[&>pdm-input:last-child>div>input]:!rounded-r-md\",\n\n\t\t\"[&>pdm-input-group]:min-w-0\",\n\t\t\"[&>pdm-input-group>div]:!rounded-none\",\n\t\t\"[&>pdm-input-group>div]:shadow-none\",\n\t\t\"[&>pdm-input-group:first-child>div]:!rounded-l-md\",\n\t\t\"[&>pdm-input-group:last-child>div]:!rounded-r-md\",\n\n\t\t\"[&>pdm-select>select]:!rounded-none\",\n\t\t\"[&>pdm-select>select]:shadow-none\",\n\t\t\"[&>pdm-select>div>button]:!rounded-none\",\n\t\t\"[&>pdm-select>div>button]:shadow-none\",\n\t\t\"[&>pdm-select:first-child>select]:!rounded-l-md\",\n\t\t\"[&>pdm-select:last-child>select]:!rounded-r-md\",\n\t\t\"[&>pdm-select:first-child>div>button]:!rounded-l-md\",\n\t\t\"[&>pdm-select:last-child>div>button]:!rounded-r-md\",\n\t\t\"[&>pdm-select:not(:first-child)>div>button]:!rounded-l-none\",\n\t\t\"[&>pdm-select:not(:last-child)>div>button]:!rounded-r-none\",\n\n\t\t\"[&>pdm-tooltip>span>*]:rounded-none\",\n\t\t\"[&>pdm-tooltip>span>*]:shadow-none\",\n\t\t\"[&>pdm-tooltip:not(:first-child)>span>*]:border-l-0\",\n\t\t\"[&>pdm-tooltip>span>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>button]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>button]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>input]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>input]:bg-background\",\n\t\t\"[&>pdm-tooltip>span>input]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>input]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>input]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>select]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>select]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>select]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>select]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-button>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-button>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-button>button]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-button>button]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div]:shadow-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:bg-background\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input>div]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input>div]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input>div>input]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input>div>input]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-input-group>div]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input-group>div]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input-group>div]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input-group>div]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>select]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>select]:shadow-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>div>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>div>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-select>select]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-select>select]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-select>div>button]:!rounded-l-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-select>div>button]:!rounded-r-md\",\n\t\t\"[&>pdm-tooltip:not(:first-child)>span>pdm-select>div>button]:!rounded-l-none\",\n\t\t\"[&>pdm-tooltip:not(:last-child)>span>pdm-select>div>button]:!rounded-r-none\",\n\t],\n\tvertical: [\n\t\t\"[&>*]:rounded-none\",\n\t\t\"[&>*:first-child]:rounded-t-md\",\n\t\t\"[&>*:last-child]:rounded-b-md\",\n\t\t\"[&>*:not(:first-child)]:border-t-0\",\n\t\t\"[&>*:not(:first-child)]:-mt-px\",\n\n\t\t\"[&>pdm-button]:flex\",\n\t\t\"[&>pdm-button>button]:h-9\",\n\t\t\"[&>pdm-button>button]:!rounded-none\",\n\t\t\"[&>pdm-button>button]:shadow-none\",\n\t\t\"[&>pdm-button:first-child>button]:!rounded-t-md\",\n\t\t\"[&>pdm-button:last-child>button]:!rounded-b-md\",\n\n\t\t\"[&>pdm-input>div]:!rounded-none\",\n\t\t\"[&>pdm-input>div]:shadow-none\",\n\t\t\"[&>pdm-input>div>input]:!rounded-none\",\n\t\t\"[&>pdm-input>div>input]:bg-background\",\n\t\t\"[&>pdm-input>div>input]:shadow-none\",\n\t\t\"[&>pdm-input:first-child>div]:!rounded-t-md\",\n\t\t\"[&>pdm-input:last-child>div]:!rounded-b-md\",\n\t\t\"[&>pdm-input:first-child>div>input]:!rounded-t-md\",\n\t\t\"[&>pdm-input:last-child>div>input]:!rounded-b-md\",\n\n\t\t\"[&>pdm-input-group>div]:!rounded-none\",\n\t\t\"[&>pdm-input-group>div]:shadow-none\",\n\t\t\"[&>pdm-input-group:first-child>div]:!rounded-t-md\",\n\t\t\"[&>pdm-input-group:last-child>div]:!rounded-b-md\",\n\n\t\t\"[&>pdm-select>select]:!rounded-none\",\n\t\t\"[&>pdm-select>select]:shadow-none\",\n\t\t\"[&>pdm-select>div>button]:!rounded-none\",\n\t\t\"[&>pdm-select>div>button]:shadow-none\",\n\t\t\"[&>pdm-select:first-child>select]:!rounded-t-md\",\n\t\t\"[&>pdm-select:last-child>select]:!rounded-b-md\",\n\t\t\"[&>pdm-select:first-child>div>button]:!rounded-t-md\",\n\t\t\"[&>pdm-select:last-child>div>button]:!rounded-b-md\",\n\t\t\"[&>pdm-select:not(:first-child)>div>button]:!rounded-t-none\",\n\t\t\"[&>pdm-select:not(:last-child)>div>button]:!rounded-b-none\",\n\n\t\t\"[&>pdm-tooltip>span>*]:rounded-none\",\n\t\t\"[&>pdm-tooltip>span>*]:shadow-none\",\n\t\t\"[&>pdm-tooltip:not(:first-child)>span>*]:border-t-0\",\n\t\t\"[&>pdm-tooltip>span>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>button]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>button]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>input]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>input]:bg-background\",\n\t\t\"[&>pdm-tooltip>span>input]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>input]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>input]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>select]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>select]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>select]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>select]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-button>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-button>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-button>button]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-button>button]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div]:shadow-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:bg-background\",\n\t\t\"[&>pdm-tooltip>span>pdm-input>div>input]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input>div]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input>div]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input>div>input]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input>div>input]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-input-group>div]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-input-group>div]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-input-group>div]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-input-group>div]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>select]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>select]:shadow-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>div>button]:!rounded-none\",\n\t\t\"[&>pdm-tooltip>span>pdm-select>div>button]:shadow-none\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-select>select]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-select>select]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip:first-child>span>pdm-select>div>button]:!rounded-t-md\",\n\t\t\"[&>pdm-tooltip:last-child>span>pdm-select>div>button]:!rounded-b-md\",\n\t\t\"[&>pdm-tooltip:not(:first-child)>span>pdm-select>div>button]:!rounded-t-none\",\n\t\t\"[&>pdm-tooltip:not(:last-child)>span>pdm-select>div>button]:!rounded-b-none\",\n\t],\n};\n\nconst FOCUS_STACKING_CLASS = \"*:focus-visible:relative *:focus-visible:z-10\";\nconst SEPARATOR_CLASSES =\n\t\"overflow-hidden rounded-md border border-solid border-border bg-secondary shadow-sm\";\n\n@Component({\n\tselector: \"pdm-button-group\",\n\ttemplateUrl: \"./button-group.component.html\",\n\tstyles: [\":host { display: block; }\"],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmButtonGroupComponent {\n\t@Input() variant: PdmButtonGroupVariant = \"default\";\n\t@Input() orientation?: PdmButtonGroupOrientation;\n\t@Input() direction?: PdmButtonGroupOrientation;\n\t@Input() separated = true;\n\t@Input() className = \"\";\n\n\tget axis(): Axis {\n\t\treturn this.orientation ?? this.direction ?? \"horizontal\";\n\t}\n\n\tget isVertical(): boolean {\n\t\treturn this.variant === \"orientation\" || this.axis === \"vertical\";\n\t}\n\n\tget shouldAttach(): boolean {\n\t\treturn !this.separated && this.variant !== \"default\";\n\t}\n\n\tget ariaOrientation(): PdmButtonGroupOrientation {\n\t\treturn this.isVertical ? \"vertical\" : \"horizontal\";\n\t}\n\n\tget rootClasses(): string[] {\n\t\treturn [\n\t\t\tROOT_LAYOUT[this.isVertical ? \"vertical\" : \"horizontal\"],\n\t\t\tthis.variant === \"default\" || this.separated ? \"gap-2\" : \"gap-0\",\n\t\t\tthis.shouldAttach\n\t\t\t\t? ATTACHMENT_EDGE_CLASSES[\n\t\t\t\t\t\tthis.isVertical ? \"vertical\" : \"horizontal\"\n\t\t\t\t\t].join(\" \")\n\t\t\t\t: \"\",\n\t\t\tthis.shouldAttach\n\t\t\t\t? ATTACHMENT_CONTROL_CLASSES[\n\t\t\t\t\t\tthis.isVertical ? \"vertical\" : \"horizontal\"\n\t\t\t\t\t].join(\" \")\n\t\t\t\t: \"\",\n\t\t\tthis.shouldAttach ? FOCUS_STACKING_CLASS : \"\",\n\t\t\tthis.variant === \"separator\" ? SEPARATOR_CLASSES : \"\",\n\t\t\tthis.className,\n\t\t];\n\t}\n}\n","<div\n role=\"group\"\n [attr.aria-orientation]=\"ariaOrientation\"\n [ngClass]=\"rootClasses\"\n>\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PdmButtonComponent } from './button.component';\nimport { PdmButtonGroupComponent } from './button-group.component';\n\nconst COMPONENTS = [\n PdmButtonComponent,\n PdmButtonGroupComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class PdmButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, HostLi
3
3
  import { Z_INDEX, responsive } from 'pdm-ui-kit/src/utils';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
6
+ import * as i2 from '@angular/cdk/a11y';
7
+ import { A11yModule } from '@angular/cdk/a11y';
6
8
 
7
9
  /**
8
10
  * Modal/Dialog component con soporte responsive
@@ -38,7 +40,7 @@ class PdmDialogComponent {
38
40
  * - desktop/mobile/mobile-fullscreen: legacy, deprecado
39
41
  */
40
42
  this.size = "responsive";
41
- this.title = "Edit profile";
43
+ this.title = "";
42
44
  this.description = "";
43
45
  this.closeOnBackdrop = true;
44
46
  this.closeOnEsc = true;
@@ -215,10 +217,10 @@ class PdmDialogComponent {
215
217
  }
216
218
  }
217
219
  PdmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
218
- 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 });
220
+ 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.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
219
221
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogComponent, decorators: [{
220
222
  type: Component,
221
- 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"] }]
223
+ 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"] }]
222
224
  }], propDecorators: { open: [{
223
225
  type: Input
224
226
  }], variant: [{
@@ -270,12 +272,12 @@ const COMPONENTS = [
270
272
  class PdmDialogModule {
271
273
  }
272
274
  PdmDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
273
- PdmDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, declarations: [PdmDialogComponent], imports: [CommonModule], exports: [PdmDialogComponent] });
274
- PdmDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, imports: [CommonModule] });
275
+ PdmDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, declarations: [PdmDialogComponent], imports: [CommonModule, A11yModule], exports: [PdmDialogComponent] });
276
+ PdmDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, imports: [CommonModule, A11yModule] });
275
277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, decorators: [{
276
278
  type: NgModule,
277
279
  args: [{
278
- imports: [CommonModule],
280
+ imports: [CommonModule, A11yModule],
279
281
  declarations: COMPONENTS,
280
282
  exports: COMPONENTS
281
283
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"pdm-ui-kit-src-dialog.mjs","sources":["../../../src/dialog/dialog.component.ts","../../../src/dialog/dialog.component.html","../../../src/dialog/dialog.module.ts","../../../src/dialog/pdm-ui-kit-src-dialog.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tEventEmitter,\n\tHostListener,\n\tInput,\n\tOutput,\n} from \"@angular/core\";\nimport { responsive } from \"pdm-ui-kit/src/utils\";\nimport { Z_INDEX } from \"pdm-ui-kit/src/utils\";\n\nexport type PdmDialogVariant = \"default\" | \"custom-close\";\n\n/**\n * @deprecated Use 'responsive' mode instead. Will be removed in v0.3.0\n */\nexport type PdmDialogSize =\n\t| \"desktop\"\n\t| \"mobile\"\n\t| \"mobile-fullscreen\"\n\t| \"sm\"\n\t| \"md\"\n\t| \"lg\"\n\t| \"xl\"\n\t| \"responsive\";\n\nexport type PdmDialogFooterAlign = \"right\" | \"full-width\" | \"left\";\n\n/**\n * Modal/Dialog component con soporte responsive\n *\n * MEJORADO en v0.2.0:\n * - Modo 'responsive' (default): fullscreen en mobile, modal en desktop\n * - Tamaños predefinidos: sm, md, lg, xl\n * - Mejor manejo de scroll en mobile\n *\n * @example\n * // Responsive (recomendado)\n * <pdm-dialog [open]=\"isOpen\" size=\"responsive\">\n * <p>Content</p>\n * </pdm-dialog>\n *\n * @example\n * // Tamaño fijo\n * <pdm-dialog [open]=\"isOpen\" size=\"lg\">\n * <p>Content</p>\n * </pdm-dialog>\n */\n@Component({\n\tselector: \"pdm-dialog\",\n\ttemplateUrl: \"./dialog.component.html\",\n\tstyles: [\n\t\t`\n :host {\n display: block;\n }\n `,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmDialogComponent {\n\t@Input() open = false;\n\t@Input() variant: PdmDialogVariant = \"default\";\n\n\t/**\n\t * Tamaño del dialog\n\t * - responsive: fullscreen mobile, modal desktop (recomendado)\n\t * - sm: 400px max\n\t * - md: 500px max\n\t * - lg: 640px max (default)\n\t * - xl: 800px max\n\t * - desktop/mobile/mobile-fullscreen: legacy, deprecado\n\t */\n\t@Input() size: PdmDialogSize = \"responsive\";\n\n\t@Input() title = \"Edit profile\";\n\t@Input() description = \"\";\n\t@Input() closeOnBackdrop = true;\n\t@Input() closeOnEsc = true;\n\t@Input() showCloseButton = true;\n\t@Input() showHeader = true;\n\t@Input() showFooter = true;\n\t@Input() primaryActionText = \"Save changes\";\n\t@Input() secondaryActionText = \"Cancel\";\n\t@Input() alignFooter: PdmDialogFooterAlign = \"right\";\n\t@Input() headerClassName = \"\";\n\t@Input() bodyClassName = \"\";\n\t@Input() footerClassName = \"\";\n\t@Input() className = \"\";\n\n\t@Output() openChange = new EventEmitter<boolean>();\n\t@Output() primaryAction = new EventEmitter<void>();\n\t@Output() secondaryAction = new EventEmitter<void>();\n\n\t@HostListener(\"document:keydown.escape\")\n\tonEsc(): void {\n\t\tif (this.open && this.closeOnEsc) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tclose(): void {\n\t\tthis.openChange.emit(false);\n\t}\n\n\tonPrimaryAction(): void {\n\t\tthis.primaryAction.emit();\n\t}\n\n\tonSecondaryAction(): void {\n\t\tthis.secondaryAction.emit();\n\t}\n\n\tonBackdropClick(): void {\n\t\tif (this.closeOnBackdrop) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tget panelClassName(): string {\n\t\t// Legacy sizes (backward compatibility)\n\t\tif (this.size === \"desktop\") {\n\t\t\treturn this.buildPanelClasses([\n\t\t\t\t\"max-w-[640px]\",\n\t\t\t\t\"max-h-[calc(100vh-2rem)]\",\n\t\t\t\t\"rounded-[10px]\",\n\t\t\t]);\n\t\t}\n\n\t\tif (this.size === \"mobile\") {\n\t\t\treturn this.buildPanelClasses([\n\t\t\t\t\"max-w-[320px]\",\n\t\t\t\t\"min-h-[240px]\",\n\t\t\t\t\"rounded-[10px]\",\n\t\t\t]);\n\t\t}\n\n\t\tif (this.size === \"mobile-fullscreen\") {\n\t\t\treturn this.buildPanelClasses([\n\t\t\t\t\"max-w-[320px]\",\n\t\t\t\t\"h-[min(100dvh,640px)]\",\n\t\t\t\t\"rounded-none\",\n\t\t\t\t\"sm:rounded-[10px]\",\n\t\t\t]);\n\t\t}\n\n\t\t// New responsive mode (recomendado)\n\t\tif (this.size === \"responsive\") {\n\t\t\treturn this.buildPanelClasses([\n\t\t\t\t// Mobile: fullscreen con bordes redondeados solo arriba\n\t\t\t\t\"w-full\",\n\t\t\t\t\"h-full\",\n\t\t\t\t\"max-h-[100dvh]\",\n\t\t\t\t\"rounded-t-[10px]\",\n\t\t\t\t\"sm:rounded-[10px]\",\n\t\t\t\t// Desktop: modal centrado\n\t\t\t\t\"sm:w-auto\",\n\t\t\t\t\"sm:h-auto\",\n\t\t\t\t\"sm:max-w-[640px]\",\n\t\t\t\t\"sm:max-h-[calc(100vh-4rem)]\",\n\t\t\t]);\n\t\t}\n\n\t\t// New size options\n\t\tconst sizeMap = {\n\t\t\tsm: \"sm:max-w-[400px]\",\n\t\t\tmd: \"sm:max-w-[500px]\",\n\t\t\tlg: \"sm:max-w-[640px]\",\n\t\t\txl: \"sm:max-w-[800px]\",\n\t\t};\n\n\t\tconst maxWidth = sizeMap[this.size as keyof typeof sizeMap] || sizeMap.lg;\n\n\t\treturn this.buildPanelClasses([\n\t\t\t// Mobile: fullscreen\n\t\t\t\"w-full\",\n\t\t\t\"h-full\",\n\t\t\t\"max-h-[100dvh]\",\n\t\t\t\"rounded-t-[10px]\",\n\t\t\t// Desktop: modal\n\t\t\t\"sm:rounded-[10px]\",\n\t\t\t\"sm:w-auto\",\n\t\t\t\"sm:h-auto\",\n\t\t\tmaxWidth,\n\t\t\t\"sm:max-h-[calc(100vh-4rem)]\",\n\t\t]);\n\t}\n\n\tprivate buildPanelClasses(sizeClasses: string[]): string {\n\t\tconst base = [\n\t\t\t\"relative\",\n\t\t\tZ_INDEX.modal, // z-50 - debe estar sobre backdrop (z-40)\n\t\t\t\"flex\",\n\t\t\t\"flex-col\",\n\t\t\t\"border border-solid\",\n\t\t\t\"border-border\",\n\t\t\t\"bg-background\",\n\t\t\t\"text-foreground\",\n\t\t\t\"shadow-lg\",\n\t\t\t\"overflow-hidden\",\n\t\t\t...sizeClasses,\n\t\t\tthis.className,\n\t\t];\n\n\t\treturn base.filter(Boolean).join(\" \");\n\t}\n\n\tget bodyWrapperClassName(): string {\n\t\t// min-h-0 is CRITICAL for flex child to shrink and allow internal scroll\n\t\tconst base = [\n\t\t\t\"flex-1\",\n\t\t\t\"min-h-0\",\n\t\t\t\"overflow-y-auto\",\n\t\t\t\"px-4\",\n\t\t\t\"py-6\",\n\t\t\t\"sm:px-6\",\n\t\t\tthis.bodyClassName,\n\t\t];\n\n\t\treturn base.filter(Boolean).join(\" \");\n\t}\n\n\tget headerWrapperClassName(): string {\n\t\tconst base = [\n\t\t\t\"flex\",\n\t\t\t\"items-start\",\n\t\t\t\"justify-between\",\n\t\t\t\"gap-3\",\n\t\t\t\"p-4\",\n\t\t\t\"sm:p-6\",\n\t\t\t\"border-b\",\n\t\t\t\"border-border\",\n\t\t\tthis.headerClassName,\n\t\t];\n\n\t\treturn base.filter(Boolean).join(\" \");\n\t}\n\n\tget footerWrapperClassName(): string {\n\t\tconst effectiveAlign =\n\t\t\tthis.alignFooter === \"right\" && this.variant === \"custom-close\"\n\t\t\t\t? \"left\"\n\t\t\t\t: this.alignFooter;\n\n\t\tconst base = [\n\t\t\t\"p-4\",\n\t\t\t\"sm:p-6\",\n\t\t\t\"border-t\",\n\t\t\t\"border-border\",\n\t\t\t// Mobile: siempre full-width\n\t\t\t\"flex\",\n\t\t\t\"flex-col\",\n\t\t\t\"gap-2\",\n\t\t\t// Desktop: según alignFooter\n\t\t\teffectiveAlign === \"full-width\"\n\t\t\t\t? \"sm:flex-col\"\n\t\t\t\t: \"sm:flex-row sm:items-center\",\n\t\t\teffectiveAlign === \"left\" ? \"sm:justify-start\" : \"\",\n\t\t\teffectiveAlign === \"right\" ? \"sm:justify-end\" : \"\",\n\t\t\tthis.footerClassName,\n\t\t];\n\n\t\treturn base.filter(Boolean).join(\" \");\n\t}\n\n\tget containerClassName(): string {\n\t\t// Container con backdrop z-40\n\t\t// Mobile: fullscreen desde el bottom\n\t\t// Desktop: centrado\n\t\treturn responsive({\n\t\t\tdefault: `fixed inset-x-0 bottom-0 ${Z_INDEX.modalBackdrop} flex items-end justify-center`,\n\t\t\tsm: `fixed inset-0 ${Z_INDEX.modalBackdrop} flex items-center justify-center p-4`,\n\t\t});\n\t}\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PdmDialogComponent } from './dialog.component';\n\nconst COMPONENTS = [\n PdmDialogComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class PdmDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdm-ui-kit-src-dialog.mjs","sources":["../../../src/dialog/dialog.component.ts","../../../src/dialog/dialog.component.html","../../../src/dialog/dialog.module.ts","../../../src/dialog/pdm-ui-kit-src-dialog.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tEventEmitter,\n\tHostListener,\n\tInput,\n\tOutput,\n} from \"@angular/core\";\nimport { responsive } from \"pdm-ui-kit/src/utils\";\nimport { Z_INDEX } from \"pdm-ui-kit/src/utils\";\n\nexport type PdmDialogVariant = \"default\" | \"custom-close\";\n\n/**\n * @deprecated Use 'responsive' mode instead. Will be removed in v0.3.0\n */\nexport type PdmDialogSize =\n\t| \"desktop\"\n\t| \"mobile\"\n\t| \"mobile-fullscreen\"\n\t| \"sm\"\n\t| \"md\"\n\t| \"lg\"\n\t| \"xl\"\n\t| \"responsive\";\n\nexport type PdmDialogFooterAlign = \"right\" | \"full-width\" | \"left\";\n\n/**\n * Modal/Dialog component con soporte responsive\n *\n * MEJORADO en v0.2.0:\n * - Modo 'responsive' (default): fullscreen en mobile, modal en desktop\n * - Tamaños predefinidos: sm, md, lg, xl\n * - Mejor manejo de scroll en mobile\n *\n * @example\n * // Responsive (recomendado)\n * <pdm-dialog [open]=\"isOpen\" size=\"responsive\">\n * <p>Content</p>\n * </pdm-dialog>\n *\n * @example\n * // Tamaño fijo\n * <pdm-dialog [open]=\"isOpen\" size=\"lg\">\n * <p>Content</p>\n * </pdm-dialog>\n */\n@Component({\n\tselector: \"pdm-dialog\",\n\ttemplateUrl: \"./dialog.component.html\",\n\tstyles: [\n\t\t`\n :host {\n display: block;\n }\n `,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmDialogComponent {\n\t@Input() open = false;\n\t@Input() variant: PdmDialogVariant = \"default\";\n\n\t/**\n\t * Tamaño del dialog\n\t * - responsive: fullscreen mobile, modal desktop (recomendado)\n\t * - sm: 400px max\n\t * - md: 500px max\n\t * - lg: 640px max (default)\n\t * - xl: 800px max\n\t * - desktop/mobile/mobile-fullscreen: legacy, deprecado\n\t */\n\t@Input() size: PdmDialogSize = \"responsive\";\n\n\t@Input() title = \"\";\n\t@Input() description = \"\";\n\t@Input() closeOnBackdrop = true;\n\t@Input() closeOnEsc = true;\n\t@Input() showCloseButton = true;\n\t@Input() showHeader = true;\n\t@Input() showFooter = true;\n\t@Input() primaryActionText = \"Save changes\";\n\t@Input() secondaryActionText = \"Cancel\";\n\t@Input() alignFooter: PdmDialogFooterAlign = \"right\";\n\t@Input() headerClassName = \"\";\n\t@Input() bodyClassName = \"\";\n\t@Input() footerClassName = \"\";\n\t@Input() className = \"\";\n\n\t@Output() openChange = new EventEmitter<boolean>();\n\t@Output() primaryAction = new EventEmitter<void>();\n\t@Output() secondaryAction = new EventEmitter<void>();\n\n\t@HostListener(\"document:keydown.escape\")\n\tonEsc(): void {\n\t\tif (this.open && this.closeOnEsc) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tclose(): void {\n\t\tthis.openChange.emit(false);\n\t}\n\n\tonPrimaryAction(): void {\n\t\tthis.primaryAction.emit();\n\t}\n\n\tonSecondaryAction(): void {\n\t\tthis.secondaryAction.emit();\n\t}\n\n\tonBackdropClick(): void {\n\t\tif (this.closeOnBackdrop) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tget panelClassName(): string {\n\t\t// Legacy sizes (backward compatibility)\n\t\tif (this.size === \"desktop\") {\n\t\t\treturn this.buildPanelClasses([\n\t\t\t\t\"max-w-[640px]\",\n\t\t\t\t\"max-h-[calc(100vh-2rem)]\",\n\t\t\t\t\"rounded-[10px]\",\n\t\t\t]);\n\t\t}\n\n\t\tif (this.size === \"mobile\") {\n\t\t\treturn this.buildPanelClasses([\n\t\t\t\t\"max-w-[320px]\",\n\t\t\t\t\"min-h-[240px]\",\n\t\t\t\t\"rounded-[10px]\",\n\t\t\t]);\n\t\t}\n\n\t\tif (this.size === \"mobile-fullscreen\") {\n\t\t\treturn this.buildPanelClasses([\n\t\t\t\t\"max-w-[320px]\",\n\t\t\t\t\"h-[min(100dvh,640px)]\",\n\t\t\t\t\"rounded-none\",\n\t\t\t\t\"sm:rounded-[10px]\",\n\t\t\t]);\n\t\t}\n\n\t\t// New responsive mode (recomendado)\n\t\tif (this.size === \"responsive\") {\n\t\t\treturn this.buildPanelClasses([\n\t\t\t\t// Mobile: fullscreen con bordes redondeados solo arriba\n\t\t\t\t\"w-full\",\n\t\t\t\t\"h-full\",\n\t\t\t\t\"max-h-[100dvh]\",\n\t\t\t\t\"rounded-t-[10px]\",\n\t\t\t\t\"sm:rounded-[10px]\",\n\t\t\t\t// Desktop: modal centrado\n\t\t\t\t\"sm:w-auto\",\n\t\t\t\t\"sm:h-auto\",\n\t\t\t\t\"sm:max-w-[640px]\",\n\t\t\t\t\"sm:max-h-[calc(100vh-4rem)]\",\n\t\t\t]);\n\t\t}\n\n\t\t// New size options\n\t\tconst sizeMap = {\n\t\t\tsm: \"sm:max-w-[400px]\",\n\t\t\tmd: \"sm:max-w-[500px]\",\n\t\t\tlg: \"sm:max-w-[640px]\",\n\t\t\txl: \"sm:max-w-[800px]\",\n\t\t};\n\n\t\tconst maxWidth = sizeMap[this.size as keyof typeof sizeMap] || sizeMap.lg;\n\n\t\treturn this.buildPanelClasses([\n\t\t\t// Mobile: fullscreen\n\t\t\t\"w-full\",\n\t\t\t\"h-full\",\n\t\t\t\"max-h-[100dvh]\",\n\t\t\t\"rounded-t-[10px]\",\n\t\t\t// Desktop: modal\n\t\t\t\"sm:rounded-[10px]\",\n\t\t\t\"sm:w-auto\",\n\t\t\t\"sm:h-auto\",\n\t\t\tmaxWidth,\n\t\t\t\"sm:max-h-[calc(100vh-4rem)]\",\n\t\t]);\n\t}\n\n\tprivate buildPanelClasses(sizeClasses: string[]): string {\n\t\tconst base = [\n\t\t\t\"relative\",\n\t\t\tZ_INDEX.modal, // z-50 - debe estar sobre backdrop (z-40)\n\t\t\t\"flex\",\n\t\t\t\"flex-col\",\n\t\t\t\"border border-solid\",\n\t\t\t\"border-border\",\n\t\t\t\"bg-background\",\n\t\t\t\"text-foreground\",\n\t\t\t\"shadow-lg\",\n\t\t\t\"overflow-hidden\",\n\t\t\t...sizeClasses,\n\t\t\tthis.className,\n\t\t];\n\n\t\treturn base.filter(Boolean).join(\" \");\n\t}\n\n\tget bodyWrapperClassName(): string {\n\t\t// min-h-0 is CRITICAL for flex child to shrink and allow internal scroll\n\t\tconst base = [\n\t\t\t\"flex-1\",\n\t\t\t\"min-h-0\",\n\t\t\t\"overflow-y-auto\",\n\t\t\t\"px-4\",\n\t\t\t\"py-6\",\n\t\t\t\"sm:px-6\",\n\t\t\tthis.bodyClassName,\n\t\t];\n\n\t\treturn base.filter(Boolean).join(\" \");\n\t}\n\n\tget headerWrapperClassName(): string {\n\t\tconst base = [\n\t\t\t\"flex\",\n\t\t\t\"items-start\",\n\t\t\t\"justify-between\",\n\t\t\t\"gap-3\",\n\t\t\t\"p-4\",\n\t\t\t\"sm:p-6\",\n\t\t\t\"border-b\",\n\t\t\t\"border-border\",\n\t\t\tthis.headerClassName,\n\t\t];\n\n\t\treturn base.filter(Boolean).join(\" \");\n\t}\n\n\tget footerWrapperClassName(): string {\n\t\tconst effectiveAlign =\n\t\t\tthis.alignFooter === \"right\" && this.variant === \"custom-close\"\n\t\t\t\t? \"left\"\n\t\t\t\t: this.alignFooter;\n\n\t\tconst base = [\n\t\t\t\"p-4\",\n\t\t\t\"sm:p-6\",\n\t\t\t\"border-t\",\n\t\t\t\"border-border\",\n\t\t\t// Mobile: siempre full-width\n\t\t\t\"flex\",\n\t\t\t\"flex-col\",\n\t\t\t\"gap-2\",\n\t\t\t// Desktop: según alignFooter\n\t\t\teffectiveAlign === \"full-width\"\n\t\t\t\t? \"sm:flex-col\"\n\t\t\t\t: \"sm:flex-row sm:items-center\",\n\t\t\teffectiveAlign === \"left\" ? \"sm:justify-start\" : \"\",\n\t\t\teffectiveAlign === \"right\" ? \"sm:justify-end\" : \"\",\n\t\t\tthis.footerClassName,\n\t\t];\n\n\t\treturn base.filter(Boolean).join(\" \");\n\t}\n\n\tget containerClassName(): string {\n\t\t// Container con backdrop z-40\n\t\t// Mobile: fullscreen desde el bottom\n\t\t// Desktop: centrado\n\t\treturn responsive({\n\t\t\tdefault: `fixed inset-x-0 bottom-0 ${Z_INDEX.modalBackdrop} flex items-end justify-center`,\n\t\t\tsm: `fixed inset-0 ${Z_INDEX.modalBackdrop} flex items-center justify-center p-4`,\n\t\t});\n\t}\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { PdmDialogComponent } from './dialog.component';\n\nconst COMPONENTS = [\n PdmDialogComponent,\n];\n\n@NgModule({\n imports: [CommonModule, A11yModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class PdmDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pdm-ui-kit-src-empty.mjs","sources":["../../../src/empty/empty.component.ts","../../../src/empty/empty.component.html","../../../src/empty/empty.module.ts","../../../src/empty/pdm-ui-kit-src-empty.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmEmptyVariant = 'default' | 'outline' | 'background';\n\n@Component({\n selector: 'pdm-empty',\n templateUrl: './empty.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmEmptyComponent {\n @Input() variant: PdmEmptyVariant = 'default';\n @Input() title = 'No Projects Yet';\n @Input() description = \"You haven't created any projects yet. Get started by creating your first project.\";\n @Input() iconName = 'folder';\n @Input() primaryActionLabel = '';\n @Input() secondaryActionLabel = '';\n @Input() linkLabel = '';\n @Input() className = '';\n\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n @Output() linkAction = new EventEmitter<void>();\n\n get containerClass(): string {\n if (this.variant === 'outline') {\n return 'border border-solid border-dashed border-border rounded-[12px]';\n }\n\n if (this.variant === 'background') {\n return 'rounded-[12px] bg-muted';\n }\n\n return '';\n }\n}\n","<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","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { PdmButtonModule } from \"pdm-ui-kit/src/button\";\nimport { PdmIconModule } from \"pdm-ui-kit/src/icon\";\nimport { PdmEmptyComponent } from \"./empty.component\";\n\nconst COMPONENTS = [PdmEmptyComponent];\n\n@NgModule({\n\timports: [CommonModule, PdmButtonModule, PdmIconModule],\n\tdeclarations: COMPONENTS,\n\texports: COMPONENTS,\n})\nexport class PdmEmptyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdm-ui-kit-src-empty.mjs","sources":["../../../src/empty/empty.component.ts","../../../src/empty/empty.component.html","../../../src/empty/empty.module.ts","../../../src/empty/pdm-ui-kit-src-empty.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmEmptyVariant = 'default' | 'outline' | 'background';\n\n@Component({\n selector: 'pdm-empty',\n templateUrl: './empty.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmEmptyComponent {\n @Input() variant: PdmEmptyVariant = 'default';\n @Input() title = 'No Projects Yet';\n @Input() description = \"You haven't created any projects yet. Get started by creating your first project.\";\n @Input() iconName = 'folder';\n @Input() primaryActionLabel = '';\n @Input() secondaryActionLabel = '';\n @Input() linkLabel = '';\n @Input() className = '';\n\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n @Output() linkAction = new EventEmitter<void>();\n\n get containerClass(): string {\n if (this.variant === 'outline') {\n return 'border border-solid border-dashed border-border rounded-[12px]';\n }\n\n if (this.variant === 'background') {\n return 'rounded-[12px] bg-muted';\n }\n\n return '';\n }\n}\n","<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","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { PdmButtonModule } from \"pdm-ui-kit/src/button\";\nimport { PdmIconModule } from \"pdm-ui-kit/src/icon\";\nimport { PdmEmptyComponent } from \"./empty.component\";\n\nconst COMPONENTS = [PdmEmptyComponent];\n\n@NgModule({\n\timports: [CommonModule, PdmButtonModule, PdmIconModule],\n\tdeclarations: COMPONENTS,\n\texports: COMPONENTS,\n})\nexport class PdmEmptyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;MASa,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;AAMW,QAAA,IAAO,CAAA,OAAA,GAAoB,SAAS,CAAC;AACrC,QAAA,IAAK,CAAA,KAAA,GAAG,iBAAiB,CAAC;AAC1B,QAAA,IAAW,CAAA,WAAA,GAAG,mFAAmF,CAAC;AAClG,QAAA,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;AACpB,QAAA,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AACxB,QAAA,IAAoB,CAAA,oBAAA,GAAG,EAAE,CAAC;AAC1B,QAAA,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AACf,QAAA,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAEd,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAQ,CAAC;AACzC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ,CAAC;KAajD;AAXC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAC9B,YAAA,OAAO,gEAAgE,CAAC;AACzE,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE;AACjC,YAAA,OAAO,yBAAyB,CAAC;AAClC,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;;8GAxBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,sYCT9B,4/CA6BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDpBa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,eAAA,EAEJ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4/CAAA,EAAA,CAAA;8BAGtC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AEfT,MAAM,UAAU,GAAG,CAAC,iBAAiB,CAAC,CAAC;MAO1B,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,CAPP,iBAAiB,CAG1B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAHnC,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAOxB,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAJhB,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;2FAI1C,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC;AACvD,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,OAAO,EAAE,UAAU;iBACnB,CAAA;;;ACZD;;AAEG;;;;"}
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
3
- import { icons } from 'lucide';
4
- import * as i1 from '@angular/platform-browser';
5
3
  import * as i2 from '@angular/common';
6
4
  import { CommonModule } from '@angular/common';
5
+ import { icons } from 'lucide';
6
+ import * as i1 from '@angular/platform-browser';
7
7
 
8
8
  const FALLBACK_NODE = [['circle', { cx: '12', cy: '12', r: '9' }]];
9
9
  class PdmIconComponent {
@@ -125,10 +125,10 @@ class PdmIconComponent {
125
125
  }
126
126
  }
127
127
  PdmIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
128
- 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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
128
+ 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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, decorators: [{
130
130
  type: Component,
131
- 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"] }]
131
+ 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"] }]
132
132
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { name: [{
133
133
  type: Input
134
134
  }], library: [{
@@ -147,20 +147,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
147
147
  type: Input
148
148
  }] } });
149
149
 
150
- const COMPONENTS = [
151
- PdmIconComponent,
152
- ];
150
+ /**
151
+ * @deprecated Import PdmIconComponent directly instead. This module is kept for backwards compatibility.
152
+ * For modern Angular (v14+), use: import { PdmIconComponent } from 'pdm-ui-kit/icon'
153
+ */
153
154
  class PdmIconModule {
154
155
  }
155
156
  PdmIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
156
- PdmIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, declarations: [PdmIconComponent], imports: [CommonModule], exports: [PdmIconComponent] });
157
- PdmIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, imports: [CommonModule] });
157
+ PdmIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, imports: [PdmIconComponent], exports: [PdmIconComponent] });
158
+ PdmIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, imports: [PdmIconComponent] });
158
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconModule, decorators: [{
159
160
  type: NgModule,
160
161
  args: [{
161
- imports: [CommonModule],
162
- declarations: COMPONENTS,
163
- exports: COMPONENTS
162
+ imports: [PdmIconComponent],
163
+ exports: [PdmIconComponent]
164
164
  }]
165
165
  }] });
166
166
 
@@ -1 +1 @@
1
- {"version":3,"file":"pdm-ui-kit-src-icon.mjs","sources":["../../../src/icon/icon.component.ts","../../../src/icon/icon.component.html","../../../src/icon/icon.module.ts","../../../src/icon/pdm-ui-kit-src-icon.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { icons, type IconNode } from 'lucide';\n\nexport type PdmIconLibrary = 'lucide' | 'tabler' | 'hugeicons' | 'phosphor' | 'remix';\n\nexport type PdmIconName =\n | 'command'\n | 'check'\n | 'check-circle'\n | 'circle'\n | 'dot'\n | 'x'\n | 'alert-circle'\n | 'info'\n | 'loader-2'\n | 'menu'\n | 'search'\n | 'calendar'\n | 'panel-left'\n | 'monitor'\n | 'laptop'\n | 'sun'\n | 'moon'\n | 'chevron-down'\n | 'chevron-up'\n | 'chevron-left'\n | 'chevron-right'\n | 'chevrons-left'\n | 'chevrons-right'\n | 'chevrons-up-down'\n | 'arrow-up-down'\n | 'ellipsis'\n | 'filter'\n | 'sort-asc'\n | 'sort-desc'\n | 'plus'\n | 'minus'\n | 'copy'\n | 'pencil'\n | 'trash-2'\n | 'download'\n | 'upload'\n | 'home'\n | 'mail'\n | 'phone'\n | 'log-in'\n | 'log-out'\n | 'user'\n | 'settings'\n | 'credit-card'\n | 'smile'\n | 'calculator'\n | 'external-link'\n | 'folder'\n | 'arrow-up-right';\n\nconst FALLBACK_NODE: IconNode = [['circle', { cx: '12', cy: '12', r: '9' }]];\n\n@Component({\n selector: 'pdm-icon',\n templateUrl: './icon.component.html',\n styles: [\n `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n flex-shrink: 0;\n }\n\n :host svg {\n display: block;\n }\n `\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmIconComponent {\n @Input() name: PdmIconName | string = 'check';\n @Input() library: PdmIconLibrary = 'lucide';\n @Input() assetUrl: string | null = null;\n @Input() size = 16;\n @Input() strokeWidth = 1.5;\n @Input() className = '';\n @Input() ariaLabel: string | null = null;\n @Input() decorative = false;\n\n private readonly lucideIndex = this.buildLucideIndex();\n\n private readonly aliasMapByLibrary: Record<PdmIconLibrary, Record<string, string>> = {\n lucide: {\n 'check-circle': 'circle-check',\n 'alert-circle': 'circle-alert',\n info: 'circle-info',\n 'sort-asc': 'arrow-up-a-z',\n 'sort-desc': 'arrow-down-z-a'\n },\n tabler: {\n 'alert-triangle': 'triangle-alert',\n 'user-circle': 'circle-user',\n 'settings-2': 'settings-2',\n 'external-link': 'external-link'\n },\n hugeicons: {\n 'alert-02': 'circle-alert',\n 'user-circle': 'circle-user',\n 'search-01': 'search',\n 'settings-01': 'settings',\n 'arrow-right-01': 'chevron-right',\n 'arrow-down-01': 'chevron-down'\n },\n phosphor: {\n 'warning-circle': 'circle-alert',\n 'caret-down': 'chevron-down',\n 'caret-right': 'chevron-right',\n 'user-circle': 'circle-user',\n gear: 'settings',\n 'arrow-square-out': 'external-link'\n },\n remix: {\n 'alert-line': 'circle-alert',\n 'arrow-right-line': 'chevron-right',\n 'arrow-down-s-line': 'chevron-down',\n 'external-link-line': 'external-link',\n 'user-line': 'user',\n 'settings-3-line': 'settings'\n }\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n get resolvedStrokeWidth(): number {\n const value = Number(this.strokeWidth);\n if (Number.isFinite(value) && value > 0) {\n return value;\n }\n\n if (this.library === 'phosphor') {\n return 1.6;\n }\n\n if (this.library === 'tabler') {\n return 1.8;\n }\n\n return 1.5;\n }\n\n get resolvedSize(): number {\n const value = Number(this.size);\n return Number.isFinite(value) && value > 0 ? value : 16;\n }\n\n get iconKey(): string {\n const raw = `${this.name || ''}`.trim();\n if (!raw) {\n return 'circle';\n }\n\n const trimmed = raw.replace(/^(lucide|tabler|hugeicons|phosphor|remix)\\//, '');\n const aliases = this.aliasMapByLibrary[this.library] ?? {};\n return aliases[trimmed] ?? trimmed;\n }\n\n get svgMarkup(): SafeHtml {\n const node = this.resolveIconNode(this.iconKey) ?? FALLBACK_NODE;\n const strokeWidth = this.escapeAttr(this.resolvedStrokeWidth);\n const size = this.escapeAttr(this.resolvedSize);\n\n const body = node\n .map(([tag, attrs]) => {\n const serializedAttrs = Object.entries(attrs)\n .map(([key, value]) => `${key}=\"${this.escapeAttr(value)}\"`)\n .join(' ');\n\n return serializedAttrs ? `<${tag} ${serializedAttrs}></${tag}>` : `<${tag}></${tag}>`;\n })\n .join('');\n\n const svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"${strokeWidth}\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${body}</svg>`;\n\n return this.sanitizer.bypassSecurityTrustHtml(svg);\n }\n\n private resolveIconNode(iconName: string): IconNode | null {\n const normalized = this.normalizeIconName(iconName);\n return this.lucideIndex.get(normalized) ?? null;\n }\n\n private normalizeIconName(name: string): string {\n return `${name || ''}`.toLowerCase().replace(/[^a-z0-9]/g, '');\n }\n\n private buildLucideIndex(): Map<string, IconNode> {\n const map = new Map<string, IconNode>();\n\n Object.entries(icons).forEach(([iconName, iconNode]) => {\n map.set(this.normalizeIconName(iconName), iconNode as IconNode);\n });\n\n return map;\n }\n\n private escapeAttr(value: unknown): string {\n return `${value ?? ''}`\n .replace(/&/g, '&amp;')\n .replace(/\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;');\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PdmIconComponent } from './icon.component';\n\nconst COMPONENTS = [\n PdmIconComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class PdmIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdm-ui-kit-src-icon.mjs","sources":["../../../src/icon/icon.component.ts","../../../src/icon/icon.component.html","../../../src/icon/icon.module.ts","../../../src/icon/pdm-ui-kit-src-icon.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { icons, type IconNode } from 'lucide';\n\nexport type PdmIconLibrary = 'lucide' | 'tabler' | 'hugeicons' | 'phosphor' | 'remix';\n\nexport type PdmIconName =\n | 'command'\n | 'check'\n | 'check-circle'\n | 'circle'\n | 'dot'\n | 'x'\n | 'alert-circle'\n | 'info'\n | 'loader-2'\n | 'menu'\n | 'search'\n | 'calendar'\n | 'panel-left'\n | 'monitor'\n | 'laptop'\n | 'sun'\n | 'moon'\n | 'chevron-down'\n | 'chevron-up'\n | 'chevron-left'\n | 'chevron-right'\n | 'chevrons-left'\n | 'chevrons-right'\n | 'chevrons-up-down'\n | 'arrow-up-down'\n | 'ellipsis'\n | 'filter'\n | 'sort-asc'\n | 'sort-desc'\n | 'plus'\n | 'minus'\n | 'copy'\n | 'pencil'\n | 'trash-2'\n | 'download'\n | 'upload'\n | 'home'\n | 'mail'\n | 'phone'\n | 'log-in'\n | 'log-out'\n | 'user'\n | 'settings'\n | 'credit-card'\n | 'smile'\n | 'calculator'\n | 'external-link'\n | 'folder'\n | 'arrow-up-right';\n\nconst FALLBACK_NODE: IconNode = [['circle', { cx: '12', cy: '12', r: '9' }]];\n\n@Component({\n selector: 'pdm-icon',\n templateUrl: './icon.component.html',\n styles: [\n `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n flex-shrink: 0;\n }\n\n :host svg {\n display: block;\n }\n `\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule],\n})\nexport class PdmIconComponent {\n @Input() name: PdmIconName | string = 'check';\n @Input() library: PdmIconLibrary = 'lucide';\n @Input() assetUrl: string | null = null;\n @Input() size = 16;\n @Input() strokeWidth = 1.5;\n @Input() className = '';\n @Input() ariaLabel: string | null = null;\n @Input() decorative = false;\n\n private readonly lucideIndex = this.buildLucideIndex();\n\n private readonly aliasMapByLibrary: Record<PdmIconLibrary, Record<string, string>> = {\n lucide: {\n 'check-circle': 'circle-check',\n 'alert-circle': 'circle-alert',\n info: 'circle-info',\n 'sort-asc': 'arrow-up-a-z',\n 'sort-desc': 'arrow-down-z-a'\n },\n tabler: {\n 'alert-triangle': 'triangle-alert',\n 'user-circle': 'circle-user',\n 'settings-2': 'settings-2',\n 'external-link': 'external-link'\n },\n hugeicons: {\n 'alert-02': 'circle-alert',\n 'user-circle': 'circle-user',\n 'search-01': 'search',\n 'settings-01': 'settings',\n 'arrow-right-01': 'chevron-right',\n 'arrow-down-01': 'chevron-down'\n },\n phosphor: {\n 'warning-circle': 'circle-alert',\n 'caret-down': 'chevron-down',\n 'caret-right': 'chevron-right',\n 'user-circle': 'circle-user',\n gear: 'settings',\n 'arrow-square-out': 'external-link'\n },\n remix: {\n 'alert-line': 'circle-alert',\n 'arrow-right-line': 'chevron-right',\n 'arrow-down-s-line': 'chevron-down',\n 'external-link-line': 'external-link',\n 'user-line': 'user',\n 'settings-3-line': 'settings'\n }\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n get resolvedStrokeWidth(): number {\n const value = Number(this.strokeWidth);\n if (Number.isFinite(value) && value > 0) {\n return value;\n }\n\n if (this.library === 'phosphor') {\n return 1.6;\n }\n\n if (this.library === 'tabler') {\n return 1.8;\n }\n\n return 1.5;\n }\n\n get resolvedSize(): number {\n const value = Number(this.size);\n return Number.isFinite(value) && value > 0 ? value : 16;\n }\n\n get iconKey(): string {\n const raw = `${this.name || ''}`.trim();\n if (!raw) {\n return 'circle';\n }\n\n const trimmed = raw.replace(/^(lucide|tabler|hugeicons|phosphor|remix)\\//, '');\n const aliases = this.aliasMapByLibrary[this.library] ?? {};\n return aliases[trimmed] ?? trimmed;\n }\n\n get svgMarkup(): SafeHtml {\n const node = this.resolveIconNode(this.iconKey) ?? FALLBACK_NODE;\n const strokeWidth = this.escapeAttr(this.resolvedStrokeWidth);\n const size = this.escapeAttr(this.resolvedSize);\n\n const body = node\n .map(([tag, attrs]) => {\n const serializedAttrs = Object.entries(attrs)\n .map(([key, value]) => `${key}=\"${this.escapeAttr(value)}\"`)\n .join(' ');\n\n return serializedAttrs ? `<${tag} ${serializedAttrs}></${tag}>` : `<${tag}></${tag}>`;\n })\n .join('');\n\n const svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"${strokeWidth}\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${body}</svg>`;\n\n return this.sanitizer.bypassSecurityTrustHtml(svg);\n }\n\n private resolveIconNode(iconName: string): IconNode | null {\n const normalized = this.normalizeIconName(iconName);\n return this.lucideIndex.get(normalized) ?? null;\n }\n\n private normalizeIconName(name: string): string {\n return `${name || ''}`.toLowerCase().replace(/[^a-z0-9]/g, '');\n }\n\n private buildLucideIndex(): Map<string, IconNode> {\n const map = new Map<string, IconNode>();\n\n Object.entries(icons).forEach(([iconName, iconNode]) => {\n map.set(this.normalizeIconName(iconName), iconNode as IconNode);\n });\n\n return map;\n }\n\n private escapeAttr(value: unknown): string {\n return `${value ?? ''}`\n .replace(/&/g, '&amp;')\n .replace(/\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;');\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { PdmIconComponent } from './icon.component';\n\n/**\n * @deprecated Import PdmIconComponent directly instead. This module is kept for backwards compatibility.\n * For modern Angular (v14+), use: import { PdmIconComponent } from 'pdm-ui-kit/icon'\n */\n@NgModule({\n imports: [PdmIconComponent],\n exports: [PdmIconComponent]\n})\nexport class PdmIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -24,6 +24,9 @@ class PdmInputComponent {
24
24
  this.errorText = "";
25
25
  this.valueChange = new EventEmitter();
26
26
  this.blurred = new EventEmitter();
27
+ if (this.required && this.disabled) {
28
+ console.warn('PdmInputComponent: required + disabled is invalid — a required field cannot be disabled');
29
+ }
27
30
  }
28
31
  onInput(event) {
29
32
  this.valueChange.emit(event.target.value);
@@ -31,13 +34,22 @@ class PdmInputComponent {
31
34
  onBlur(event) {
32
35
  this.blurred.emit(event);
33
36
  }
37
+ get helperAttrId() {
38
+ return this.id ? `${this.id}-helper` : null;
39
+ }
40
+ get errorAttrId() {
41
+ return this.id ? `${this.id}-error` : null;
42
+ }
43
+ get descriptionAttrId() {
44
+ return this.invalid && this.errorText ? this.errorAttrId : this.helperAttrId;
45
+ }
34
46
  }
35
47
  PdmInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- 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 });
48
+ 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 });
37
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputComponent, decorators: [{
38
50
  type: Component,
39
- 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"] }]
40
- }], propDecorators: { id: [{
51
+ 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"] }]
52
+ }], ctorParameters: function () { return []; }, propDecorators: { id: [{
41
53
  type: Input
42
54
  }], type: [{
43
55
  type: Input