pdm-ui-kit 0.1.6 → 0.1.7

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 (58) hide show
  1. package/esm2020/lib/components/accordion/accordion.component.mjs +3 -3
  2. package/esm2020/lib/components/alert/alert.component.mjs +3 -3
  3. package/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +3 -3
  4. package/esm2020/lib/components/aspect-ratio/aspect-ratio.component.mjs +3 -3
  5. package/esm2020/lib/components/avatar/avatar.component.mjs +3 -3
  6. package/esm2020/lib/components/badge/badge.component.mjs +3 -3
  7. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +3 -3
  8. package/esm2020/lib/components/button/button.component.mjs +13 -13
  9. package/esm2020/lib/components/button-group/button-group.component.mjs +3 -3
  10. package/esm2020/lib/components/calendar/calendar.component.mjs +3 -3
  11. package/esm2020/lib/components/card/card.component.mjs +3 -3
  12. package/esm2020/lib/components/carousel/carousel.component.mjs +3 -3
  13. package/esm2020/lib/components/chart/chart.component.mjs +3 -3
  14. package/esm2020/lib/components/checkbox/checkbox.component.mjs +3 -3
  15. package/esm2020/lib/components/collapsible/collapsible.component.mjs +3 -3
  16. package/esm2020/lib/components/combobox/combobox.component.mjs +3 -3
  17. package/esm2020/lib/components/command/command.component.mjs +3 -3
  18. package/esm2020/lib/components/context-menu/context-menu.component.mjs +3 -3
  19. package/esm2020/lib/components/data-table/data-table.component.mjs +3 -3
  20. package/esm2020/lib/components/date-picker/date-picker.component.mjs +3 -3
  21. package/esm2020/lib/components/dialog/dialog.component.mjs +3 -3
  22. package/esm2020/lib/components/drawer/drawer.component.mjs +3 -3
  23. package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +3 -3
  24. package/esm2020/lib/components/empty/empty.component.mjs +5 -5
  25. package/esm2020/lib/components/field/field.component.mjs +3 -3
  26. package/esm2020/lib/components/hover-card/hover-card.component.mjs +3 -3
  27. package/esm2020/lib/components/input/input.component.mjs +3 -3
  28. package/esm2020/lib/components/input-group/input-group.component.mjs +3 -3
  29. package/esm2020/lib/components/input-password/input-password.component.mjs +3 -3
  30. package/esm2020/lib/components/item/item.component.mjs +3 -3
  31. package/esm2020/lib/components/kbd/kbd.component.mjs +3 -3
  32. package/esm2020/lib/components/label/label.component.mjs +3 -3
  33. package/esm2020/lib/components/menubar/menubar.component.mjs +3 -3
  34. package/esm2020/lib/components/native-select/native-select.component.mjs +3 -3
  35. package/esm2020/lib/components/navigation-menu/navigation-menu.component.mjs +3 -3
  36. package/esm2020/lib/components/pagination/pagination.component.mjs +3 -3
  37. package/esm2020/lib/components/popover/popover.component.mjs +3 -3
  38. package/esm2020/lib/components/progress/progress.component.mjs +3 -3
  39. package/esm2020/lib/components/radio-group/radio-group.component.mjs +3 -3
  40. package/esm2020/lib/components/scroll-area/scroll-area.component.mjs +3 -3
  41. package/esm2020/lib/components/select/select.component.mjs +3 -3
  42. package/esm2020/lib/components/separator/separator.component.mjs +3 -3
  43. package/esm2020/lib/components/sheet/sheet.component.mjs +3 -3
  44. package/esm2020/lib/components/sidebar/sidebar.component.mjs +3 -3
  45. package/esm2020/lib/components/skeleton/skeleton.component.mjs +3 -3
  46. package/esm2020/lib/components/slider/slider.component.mjs +3 -3
  47. package/esm2020/lib/components/sonner/sonner.component.mjs +4 -4
  48. package/esm2020/lib/components/switch/switch.component.mjs +3 -3
  49. package/esm2020/lib/components/tabs/tabs.component.mjs +3 -3
  50. package/esm2020/lib/components/textarea/textarea.component.mjs +3 -3
  51. package/esm2020/lib/components/toggle/toggle.component.mjs +3 -3
  52. package/esm2020/lib/components/toggle-group/toggle-group.component.mjs +3 -3
  53. package/esm2020/lib/components/tooltip/tooltip.component.mjs +3 -3
  54. package/fesm2015/pdm-ui-kit.mjs +119 -119
  55. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  56. package/fesm2020/pdm-ui-kit.mjs +119 -119
  57. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  58. package/package.json +1 -1
@@ -29,10 +29,10 @@ class PdmAccordionComponent {
29
29
  }
30
30
  }
31
31
  PdmAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- PdmAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAccordionComponent, selector: "pdm-accordion", inputs: { items: "items", expandedIndex: "expandedIndex", className: "className" }, outputs: { expandedIndexChange: "expandedIndexChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngFor=\"let item of items; let i = index\" class=\"border-b border-[hsl(var(--border))]\">\n <h3>\n <button\n type=\"button\"\n class=\"flex h-[52px] w-full items-center justify-between py-4 text-left text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] transition-colors\"\n [disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"isExpanded(i)\"\n [attr.aria-controls]=\"item.id + '-panel'\"\n (click)=\"toggle(i)\"\n >\n <span class=\"pr-[10px]\">{{ item.title }}</span>\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[hsl(var(--foreground))]\" aria-hidden=\"true\">\n <svg\n class=\"h-4 w-4 transition-transform\"\n [ngClass]=\"isExpanded(i) ? 'rotate-180' : ''\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3.5 6.5L8 11L12.5 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </button>\n </h3>\n <div\n *ngIf=\"isExpanded(i)\"\n [id]=\"item.id + '-panel'\"\n class=\"flex flex-col gap-4 pb-4 text-[14px] font-normal leading-5 text-[hsl(var(--foreground))]\"\n >\n <p *ngFor=\"let line of contentLines(item.content)\" class=\"m-0\">{{ line }}</p>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
+ PdmAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAccordionComponent, selector: "pdm-accordion", inputs: { items: "items", expandedIndex: "expandedIndex", className: "className" }, outputs: { expandedIndexChange: "expandedIndexChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngFor=\"let item of items; let i = index\" class=\"border-b border-border\">\n <h3>\n <button\n type=\"button\"\n class=\"flex w-full items-center justify-between py-4 text-left text-sm font-medium text-foreground transition-all hover:underline ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"isExpanded(i)\"\n [attr.aria-controls]=\"item.id + '-panel'\"\n (click)=\"toggle(i)\"\n >\n <span class=\"pr-2\">{{ item.title }}</span>\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-foreground\" aria-hidden=\"true\">\n <svg\n class=\"h-4 w-4 transition-transform\"\n [ngClass]=\"isExpanded(i) ? 'rotate-180' : ''\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3.5 6.5L8 11L12.5 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </button>\n </h3>\n <div\n *ngIf=\"isExpanded(i)\"\n [id]=\"item.id + '-panel'\"\n class=\"flex flex-col gap-4 pb-4 text-sm text-muted-foreground\"\n >\n <p *ngFor=\"let line of contentLines(item.content)\" class=\"m-0\">{{ line }}</p>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAccordionComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'pdm-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngFor=\"let item of items; let i = index\" class=\"border-b border-[hsl(var(--border))]\">\n <h3>\n <button\n type=\"button\"\n class=\"flex h-[52px] w-full items-center justify-between py-4 text-left text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] transition-colors\"\n [disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"isExpanded(i)\"\n [attr.aria-controls]=\"item.id + '-panel'\"\n (click)=\"toggle(i)\"\n >\n <span class=\"pr-[10px]\">{{ item.title }}</span>\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[hsl(var(--foreground))]\" aria-hidden=\"true\">\n <svg\n class=\"h-4 w-4 transition-transform\"\n [ngClass]=\"isExpanded(i) ? 'rotate-180' : ''\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3.5 6.5L8 11L12.5 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </button>\n </h3>\n <div\n *ngIf=\"isExpanded(i)\"\n [id]=\"item.id + '-panel'\"\n class=\"flex flex-col gap-4 pb-4 text-[14px] font-normal leading-5 text-[hsl(var(--foreground))]\"\n >\n <p *ngFor=\"let line of contentLines(item.content)\" class=\"m-0\">{{ line }}</p>\n </div>\n </div>\n</div>\n" }]
35
+ args: [{ selector: 'pdm-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngFor=\"let item of items; let i = index\" class=\"border-b border-border\">\n <h3>\n <button\n type=\"button\"\n class=\"flex w-full items-center justify-between py-4 text-left text-sm font-medium text-foreground transition-all hover:underline ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"isExpanded(i)\"\n [attr.aria-controls]=\"item.id + '-panel'\"\n (click)=\"toggle(i)\"\n >\n <span class=\"pr-2\">{{ item.title }}</span>\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-foreground\" aria-hidden=\"true\">\n <svg\n class=\"h-4 w-4 transition-transform\"\n [ngClass]=\"isExpanded(i) ? 'rotate-180' : ''\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3.5 6.5L8 11L12.5 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </button>\n </h3>\n <div\n *ngIf=\"isExpanded(i)\"\n [id]=\"item.id + '-panel'\"\n class=\"flex flex-col gap-4 pb-4 text-sm text-muted-foreground\"\n >\n <p *ngFor=\"let line of contentLines(item.content)\" class=\"m-0\">{{ line }}</p>\n </div>\n </div>\n</div>\n" }]
36
36
  }], propDecorators: { items: [{
37
37
  type: Input
38
38
  }], expandedIndex: [{
@@ -59,10 +59,10 @@ class PdmAlertComponent {
59
59
  }
60
60
  }
61
61
  PdmAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- PdmAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAlertComponent, selector: "pdm-alert", inputs: { variant: "variant", title: "title", description: "description", details: "details", className: "className" }, ngImport: i0, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 py-3',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[hsl(var(--destructive))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-[14px] font-medium leading-5',\n isDestructive ? 'text-[hsl(var(--destructive))]' : 'text-[hsl(var(--foreground))]'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-[14px] leading-5',\n isDestructive ? 'text-[hsl(var(--destructive))]' : 'text-[hsl(var(--foreground))] font-light'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-[14px] leading-5 text-[hsl(var(--destructive))]\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62
+ PdmAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAlertComponent, selector: "pdm-alert", inputs: { variant: "variant", title: "title", description: "description", details: "details", className: "className" }, ngImport: i0, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-lg border border-border bg-background p-4',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-destructive\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-sm font-medium',\n isDestructive ? 'text-destructive' : 'text-foreground'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-sm',\n isDestructive ? 'text-destructive' : 'text-muted-foreground'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-sm text-destructive\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertComponent, decorators: [{
64
64
  type: Component,
65
- args: [{ selector: 'pdm-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 py-3',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[hsl(var(--destructive))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-[14px] font-medium leading-5',\n isDestructive ? 'text-[hsl(var(--destructive))]' : 'text-[hsl(var(--foreground))]'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-[14px] leading-5',\n isDestructive ? 'text-[hsl(var(--destructive))]' : 'text-[hsl(var(--foreground))] font-light'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-[14px] leading-5 text-[hsl(var(--destructive))]\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n\n" }]
65
+ args: [{ selector: 'pdm-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-lg border border-border bg-background p-4',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-destructive\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-sm font-medium',\n isDestructive ? 'text-destructive' : 'text-foreground'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-sm',\n isDestructive ? 'text-destructive' : 'text-muted-foreground'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-sm text-destructive\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n" }]
66
66
  }], propDecorators: { variant: [{
67
67
  type: Input
68
68
  }], title: [{
@@ -110,10 +110,10 @@ class PdmAlertDialogComponent {
110
110
  }
111
111
  }
112
112
  PdmAlertDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- PdmAlertDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAlertDialogComponent, selector: "pdm-alert-dialog", inputs: { open: "open", showTrigger: "showTrigger", triggerText: "triggerText", title: "title", description: "description", confirmText: "confirmText", cancelText: "cancelText", className: "className" }, outputs: { openChange: "openChange", confirm: "confirm", cancel: "cancel" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-5\">\n <div class=\"absolute inset-0 bg-[hsl(var(--foreground)/0.3)]\" (click)=\"onCancel()\"></div>\n <section\n role=\"alertdialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[552px] rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-6 text-[hsl(var(--foreground))] shadow-lg',\n className\n ]\"\n >\n <div class=\"flex flex-col gap-2\">\n <h2 class=\"text-[18px] font-semibold leading-7 tracking-normal\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"text-[14px] font-normal leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n <div class=\"mt-4 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onCancel()\"\n >\n {{ cancelText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] bg-[hsl(var(--foreground))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--background))] shadow-sm\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText }}\n </button>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
113
+ PdmAlertDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAlertDialogComponent, selector: "pdm-alert-dialog", inputs: { open: "open", showTrigger: "showTrigger", triggerText: "triggerText", title: "title", description: "description", confirmText: "confirmText", cancelText: "cancelText", className: "className" }, outputs: { openChange: "openChange", confirm: "confirm", cancel: "cancel" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-5\">\n <div class=\"absolute inset-0 bg-foreground/30\" (click)=\"onCancel()\"></div>\n <section\n role=\"alertdialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-lg rounded-lg border border-border bg-background p-6 text-foreground shadow-lg',\n className\n ]\"\n >\n <div class=\"flex flex-col gap-2\">\n <h2 class=\"text-lg font-semibold leading-none tracking-tight\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <div class=\"mt-4 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onCancel()\"\n >\n {{ cancelText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText }}\n </button>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertDialogComponent, decorators: [{
115
115
  type: Component,
116
- args: [{ selector: 'pdm-alert-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-5\">\n <div class=\"absolute inset-0 bg-[hsl(var(--foreground)/0.3)]\" (click)=\"onCancel()\"></div>\n <section\n role=\"alertdialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[552px] rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-6 text-[hsl(var(--foreground))] shadow-lg',\n className\n ]\"\n >\n <div class=\"flex flex-col gap-2\">\n <h2 class=\"text-[18px] font-semibold leading-7 tracking-normal\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"text-[14px] font-normal leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n <div class=\"mt-4 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onCancel()\"\n >\n {{ cancelText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] bg-[hsl(var(--foreground))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--background))] shadow-sm\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText }}\n </button>\n </div>\n </section>\n</div>\n" }]
116
+ args: [{ selector: 'pdm-alert-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-5\">\n <div class=\"absolute inset-0 bg-foreground/30\" (click)=\"onCancel()\"></div>\n <section\n role=\"alertdialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-lg rounded-lg border border-border bg-background p-6 text-foreground shadow-lg',\n className\n ]\"\n >\n <div class=\"flex flex-col gap-2\">\n <h2 class=\"text-lg font-semibold leading-none tracking-tight\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <div class=\"mt-4 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onCancel()\"\n >\n {{ cancelText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText }}\n </button>\n </div>\n </section>\n</div>\n" }]
117
117
  }], propDecorators: { open: [{
118
118
  type: Input
119
119
  }], showTrigger: [{
@@ -155,10 +155,10 @@ class PdmAspectRatioComponent {
155
155
  }
156
156
  }
157
157
  PdmAspectRatioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
158
- PdmAspectRatioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAspectRatioComponent, selector: "pdm-aspect-ratio", inputs: { ratio: "ratio", imageSrc: "imageSrc", imageAlt: "imageAlt", className: "className" }, ngImport: i0, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-[10px]\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-[10px] object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
158
+ PdmAspectRatioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAspectRatioComponent, selector: "pdm-aspect-ratio", inputs: { ratio: "ratio", imageSrc: "imageSrc", imageAlt: "imageAlt", className: "className" }, ngImport: i0, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-lg\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-lg object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
159
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAspectRatioComponent, decorators: [{
160
160
  type: Component,
161
- args: [{ selector: 'pdm-aspect-ratio', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-[10px]\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-[10px] object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n" }]
161
+ args: [{ selector: 'pdm-aspect-ratio', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-lg\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-lg object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n" }]
162
162
  }], propDecorators: { ratio: [{
163
163
  type: Input
164
164
  }], imageSrc: [{
@@ -192,10 +192,10 @@ class PdmAvatarComponent {
192
192
  }
193
193
  }
194
194
  PdmAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
195
- PdmAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAvatarComponent, selector: "pdm-avatar", inputs: { src: "src", alt: "alt", fallback: "fallback", shape: "shape", size: "size", groupSources: "groupSources", className: "className" }, ngImport: i0, template: "<div *ngIf=\"!isGroup\" [ngClass]=\"['relative flex shrink-0 overflow-hidden', radiusClass, sizeClasses[size], className]\">\n <img *ngIf=\"src\" [src]=\"src\" [alt]=\"alt\" [ngClass]=\"['aspect-square h-full w-full object-cover', radiusClass]\" />\n <div\n *ngIf=\"!src\"\n [ngClass]=\"['flex h-full w-full items-center justify-center bg-[hsl(var(--muted))] text-xs text-[hsl(var(--muted-foreground))]', radiusClass]\"\n >\n {{ fallback }}\n </div>\n</div>\n\n<div *ngIf=\"isGroup\" [ngClass]=\"['inline-flex items-center pr-2', className]\">\n <div\n *ngFor=\"let groupSrc of groupSources; let i = index\"\n [ngClass]=\"[\n 'relative h-8 w-8 shrink-0 overflow-hidden rounded-full',\n i > 0 ? '-mr-2 border border-[hsl(var(--border))]' : '-mr-2'\n ]\"\n >\n <img [src]=\"groupSrc\" [alt]=\"alt + ' ' + (i + 1)\" class=\"h-full w-full rounded-full object-cover\" />\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
195
+ PdmAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAvatarComponent, selector: "pdm-avatar", inputs: { src: "src", alt: "alt", fallback: "fallback", shape: "shape", size: "size", groupSources: "groupSources", className: "className" }, ngImport: i0, template: "<div *ngIf=\"!isGroup\" [ngClass]=\"['relative flex shrink-0 overflow-hidden', radiusClass, sizeClasses[size], className]\">\n <img *ngIf=\"src\" [src]=\"src\" [alt]=\"alt\" [ngClass]=\"['aspect-square h-full w-full object-cover', radiusClass]\" />\n <div\n *ngIf=\"!src\"\n [ngClass]=\"['flex h-full w-full items-center justify-center bg-muted text-xs text-muted-foreground', radiusClass]\"\n >\n {{ fallback }}\n </div>\n</div>\n\n<div *ngIf=\"isGroup\" [ngClass]=\"['inline-flex items-center pr-2', className]\">\n <div\n *ngFor=\"let groupSrc of groupSources; let i = index\"\n [ngClass]=\"[\n 'relative h-8 w-8 shrink-0 overflow-hidden rounded-full',\n i > 0 ? '-mr-2 border border-border' : '-mr-2'\n ]\"\n >\n <img [src]=\"groupSrc\" [alt]=\"alt + ' ' + (i + 1)\" class=\"h-full w-full rounded-full object-cover\" />\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
196
196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAvatarComponent, decorators: [{
197
197
  type: Component,
198
- args: [{ selector: 'pdm-avatar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!isGroup\" [ngClass]=\"['relative flex shrink-0 overflow-hidden', radiusClass, sizeClasses[size], className]\">\n <img *ngIf=\"src\" [src]=\"src\" [alt]=\"alt\" [ngClass]=\"['aspect-square h-full w-full object-cover', radiusClass]\" />\n <div\n *ngIf=\"!src\"\n [ngClass]=\"['flex h-full w-full items-center justify-center bg-[hsl(var(--muted))] text-xs text-[hsl(var(--muted-foreground))]', radiusClass]\"\n >\n {{ fallback }}\n </div>\n</div>\n\n<div *ngIf=\"isGroup\" [ngClass]=\"['inline-flex items-center pr-2', className]\">\n <div\n *ngFor=\"let groupSrc of groupSources; let i = index\"\n [ngClass]=\"[\n 'relative h-8 w-8 shrink-0 overflow-hidden rounded-full',\n i > 0 ? '-mr-2 border border-[hsl(var(--border))]' : '-mr-2'\n ]\"\n >\n <img [src]=\"groupSrc\" [alt]=\"alt + ' ' + (i + 1)\" class=\"h-full w-full rounded-full object-cover\" />\n </div>\n</div>\n" }]
198
+ args: [{ selector: 'pdm-avatar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!isGroup\" [ngClass]=\"['relative flex shrink-0 overflow-hidden', radiusClass, sizeClasses[size], className]\">\n <img *ngIf=\"src\" [src]=\"src\" [alt]=\"alt\" [ngClass]=\"['aspect-square h-full w-full object-cover', radiusClass]\" />\n <div\n *ngIf=\"!src\"\n [ngClass]=\"['flex h-full w-full items-center justify-center bg-muted text-xs text-muted-foreground', radiusClass]\"\n >\n {{ fallback }}\n </div>\n</div>\n\n<div *ngIf=\"isGroup\" [ngClass]=\"['inline-flex items-center pr-2', className]\">\n <div\n *ngFor=\"let groupSrc of groupSources; let i = index\"\n [ngClass]=\"[\n 'relative h-8 w-8 shrink-0 overflow-hidden rounded-full',\n i > 0 ? '-mr-2 border border-border' : '-mr-2'\n ]\"\n >\n <img [src]=\"groupSrc\" [alt]=\"alt + ' ' + (i + 1)\" class=\"h-full w-full rounded-full object-cover\" />\n </div>\n</div>\n" }]
199
199
  }], propDecorators: { src: [{
200
200
  type: Input
201
201
  }], alt: [{
@@ -220,10 +220,10 @@ class PdmBadgeComponent {
220
220
  }
221
221
  }
222
222
  PdmBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
223
- PdmBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmBadgeComponent, selector: "pdm-badge", inputs: { variant: "variant", text: "text", className: "className" }, ngImport: i0, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle',\n variant === 'default' ? 'h-[22px] rounded-[10px] bg-[hsl(var(--foreground))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'secondary' ? 'h-[22px] rounded-[10px] bg-[hsl(var(--muted))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]' : '',\n variant === 'destructive' ? 'h-[22px] rounded-[10px] bg-[hsl(var(--destructive))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'outline' ? 'h-[22px] rounded-[10px] border border-[hsl(var(--border))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]' : '',\n variant === 'icon' ? 'h-[22px] gap-1 rounded-[10px] bg-[hsl(var(--foreground))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'number' ? 'h-5 min-w-[20px] rounded-full bg-[hsl(var(--foreground))] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'destructive-number' ? 'h-5 min-w-[20px] rounded-full bg-[hsl(var(--destructive))] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'secondary-number' ? 'h-5 min-w-[20px] rounded-full border border-[hsl(var(--border))] px-1 py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n\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 });
223
+ PdmBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmBadgeComponent, selector: "pdm-badge", inputs: { variant: "variant", text: "text", className: "className" }, ngImport: i0, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle rounded-full px-2.5 py-0.5 text-xs font-semibold',\n variant === 'default' ? 'bg-primary text-primary-foreground' : '',\n variant === 'secondary' ? 'bg-secondary text-secondary-foreground' : '',\n variant === 'destructive' ? 'bg-destructive text-destructive-foreground' : '',\n variant === 'outline' ? 'border border-input text-foreground' : '',\n variant === 'icon' ? 'gap-1 bg-primary text-primary-foreground' : '',\n variant === 'number' ? 'min-w-5 rounded-full bg-primary px-1.5 text-primary-foreground' : '',\n variant === 'destructive-number' ? 'min-w-5 rounded-full bg-destructive px-1.5 text-destructive-foreground' : '',\n variant === 'secondary-number' ? 'min-w-5 rounded-full border border-input px-1.5 text-foreground' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
224
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBadgeComponent, decorators: [{
225
225
  type: Component,
226
- args: [{ selector: 'pdm-badge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle',\n variant === 'default' ? 'h-[22px] rounded-[10px] bg-[hsl(var(--foreground))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'secondary' ? 'h-[22px] rounded-[10px] bg-[hsl(var(--muted))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]' : '',\n variant === 'destructive' ? 'h-[22px] rounded-[10px] bg-[hsl(var(--destructive))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'outline' ? 'h-[22px] rounded-[10px] border border-[hsl(var(--border))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]' : '',\n variant === 'icon' ? 'h-[22px] gap-1 rounded-[10px] bg-[hsl(var(--foreground))] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'number' ? 'h-5 min-w-[20px] rounded-full bg-[hsl(var(--foreground))] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'destructive-number' ? 'h-5 min-w-[20px] rounded-full bg-[hsl(var(--destructive))] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--background))]' : '',\n variant === 'secondary-number' ? 'h-5 min-w-[20px] rounded-full border border-[hsl(var(--border))] px-1 py-[2px] text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n\n" }]
226
+ args: [{ selector: 'pdm-badge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle rounded-full px-2.5 py-0.5 text-xs font-semibold',\n variant === 'default' ? 'bg-primary text-primary-foreground' : '',\n variant === 'secondary' ? 'bg-secondary text-secondary-foreground' : '',\n variant === 'destructive' ? 'bg-destructive text-destructive-foreground' : '',\n variant === 'outline' ? 'border border-input text-foreground' : '',\n variant === 'icon' ? 'gap-1 bg-primary text-primary-foreground' : '',\n variant === 'number' ? 'min-w-5 rounded-full bg-primary px-1.5 text-primary-foreground' : '',\n variant === 'destructive-number' ? 'min-w-5 rounded-full bg-destructive px-1.5 text-destructive-foreground' : '',\n variant === 'secondary-number' ? 'min-w-5 rounded-full border border-input px-1.5 text-foreground' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n" }]
227
227
  }], propDecorators: { variant: [{
228
228
  type: Input
229
229
  }], text: [{
@@ -246,10 +246,10 @@ class PdmBreadcrumbComponent {
246
246
  }
247
247
  }
248
248
  PdmBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
249
- PdmBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmBreadcrumbComponent, selector: "pdm-breadcrumb", inputs: { mode: "mode", items: "items", className: "className" }, ngImport: i0, template: "<nav\n aria-label=\"breadcrumb\"\n [ngClass]=\"['inline-flex items-center gap-[6px] text-[14px] leading-5', className]\"\n>\n <ng-container *ngFor=\"let item of renderedItems; let i = index; let last = last\">\n <span [ngClass]=\"[last ? 'text-[hsl(var(--foreground))]' : 'text-[hsl(var(--muted-foreground))]']\">{{ item }}</span>\n\n <ng-container *ngIf=\"!last\">\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[hsl(var(--muted-foreground))]\" aria-hidden=\"true\">\n <svg\n *ngIf=\"mode === 'custom-separator' && item !== '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n <svg\n *ngIf=\"(mode !== 'custom-separator' && item !== '...') || item === '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"mode === 'dropdown' && i === 1 && item !== '...' && !last\">\n <span class=\"-ml-2 inline-flex h-6 w-6 items-center justify-center text-[hsl(var(--muted-foreground))]\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
249
+ PdmBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmBreadcrumbComponent, selector: "pdm-breadcrumb", inputs: { mode: "mode", items: "items", className: "className" }, ngImport: i0, template: "<nav\n aria-label=\"breadcrumb\"\n [ngClass]=\"['inline-flex items-center gap-1.5 text-sm', className]\"\n>\n <ng-container *ngFor=\"let item of renderedItems; let i = index; let last = last\">\n <span [ngClass]=\"[last ? 'text-foreground' : 'text-muted-foreground']\">{{ item }}</span>\n\n <ng-container *ngIf=\"!last\">\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-muted-foreground\" aria-hidden=\"true\">\n <svg\n *ngIf=\"mode === 'custom-separator' && item !== '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n <svg\n *ngIf=\"(mode !== 'custom-separator' && item !== '...') || item === '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"mode === 'dropdown' && i === 1 && item !== '...' && !last\">\n <span class=\"-ml-2 inline-flex h-6 w-6 items-center justify-center text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
250
250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmBreadcrumbComponent, decorators: [{
251
251
  type: Component,
252
- args: [{ selector: 'pdm-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n aria-label=\"breadcrumb\"\n [ngClass]=\"['inline-flex items-center gap-[6px] text-[14px] leading-5', className]\"\n>\n <ng-container *ngFor=\"let item of renderedItems; let i = index; let last = last\">\n <span [ngClass]=\"[last ? 'text-[hsl(var(--foreground))]' : 'text-[hsl(var(--muted-foreground))]']\">{{ item }}</span>\n\n <ng-container *ngIf=\"!last\">\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[hsl(var(--muted-foreground))]\" aria-hidden=\"true\">\n <svg\n *ngIf=\"mode === 'custom-separator' && item !== '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n <svg\n *ngIf=\"(mode !== 'custom-separator' && item !== '...') || item === '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"mode === 'dropdown' && i === 1 && item !== '...' && !last\">\n <span class=\"-ml-2 inline-flex h-6 w-6 items-center justify-center text-[hsl(var(--muted-foreground))]\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n </ng-container>\n</nav>\n" }]
252
+ args: [{ selector: 'pdm-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n aria-label=\"breadcrumb\"\n [ngClass]=\"['inline-flex items-center gap-1.5 text-sm', className]\"\n>\n <ng-container *ngFor=\"let item of renderedItems; let i = index; let last = last\">\n <span [ngClass]=\"[last ? 'text-foreground' : 'text-muted-foreground']\">{{ item }}</span>\n\n <ng-container *ngIf=\"!last\">\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-muted-foreground\" aria-hidden=\"true\">\n <svg\n *ngIf=\"mode === 'custom-separator' && item !== '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n <svg\n *ngIf=\"(mode !== 'custom-separator' && item !== '...') || item === '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"mode === 'dropdown' && i === 1 && item !== '...' && !last\">\n <span class=\"-ml-2 inline-flex h-6 w-6 items-center justify-center text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n </ng-container>\n</nav>\n" }]
253
253
  }], propDecorators: { mode: [{
254
254
  type: Input
255
255
  }], items: [{
@@ -266,10 +266,10 @@ class PdmButtonGroupComponent {
266
266
  }
267
267
  }
268
268
  PdmButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
269
- PdmButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmButtonGroupComponent, selector: "pdm-button-group", inputs: { variant: "variant", items: "items", className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"'orientation'\">\n <div class=\"inline-flex flex-col overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center border-b border-[hsl(var(--border))] text-[hsl(var(--foreground))]\">+</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-[hsl(var(--foreground))]\">-</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'separator'\">\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--muted))] shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center border-r border-[hsl(var(--border))] px-3 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">Copy</button>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center px-3 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">Paste</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'nested'\">\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button *ngFor=\"let item of ['1', '2', '3', '4', '5']; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-8 items-center justify-center px-3 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]', !last ? 'border-r border-[hsl(var(--border))]' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center border-r border-[hsl(var(--border))] text-[hsl(var(--foreground))]\">\u2190</button>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center text-[hsl(var(--foreground))]\">\u2192</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <div class=\"inline-flex h-9 w-9 items-center justify-center overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm text-[hsl(var(--foreground))]\">\u2190</div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button *ngFor=\"let item of items; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-9 items-center justify-center px-4 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]', !last ? 'border-r border-[hsl(var(--border))]' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center border-r border-[hsl(var(--border))] px-4 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">Snooze</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-[hsl(var(--foreground))]\">\u2026</button>\n </div>\n </ng-container>\n </ng-container>\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
269
+ PdmButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmButtonGroupComponent, selector: "pdm-button-group", inputs: { variant: "variant", items: "items", className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"'orientation'\">\n <div class=\"inline-flex flex-col overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center border-b border-border text-foreground\">+</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-foreground\">-</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'separator'\">\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-muted shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center border-r border-border px-3 text-sm font-medium text-foreground\">Copy</button>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center px-3 text-sm font-medium text-foreground\">Paste</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'nested'\">\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button *ngFor=\"let item of ['1', '2', '3', '4', '5']; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-8 items-center justify-center px-3 text-sm font-medium text-foreground', !last ? 'border-r border-border' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center border-r border-border text-foreground\">\u2190</button>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center text-foreground\">\u2192</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <div class=\"inline-flex h-9 w-9 items-center justify-center overflow-hidden rounded-md border border-border bg-background shadow-sm text-foreground\">\u2190</div>\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button *ngFor=\"let item of items; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-9 items-center justify-center px-4 text-sm font-medium text-foreground', !last ? 'border-r border-border' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center border-r border-border px-4 text-sm font-medium text-foreground\">Snooze</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-foreground\">\u2026</button>\n </div>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
270
270
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmButtonGroupComponent, decorators: [{
271
271
  type: Component,
272
- args: [{ selector: 'pdm-button-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"'orientation'\">\n <div class=\"inline-flex flex-col overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center border-b border-[hsl(var(--border))] text-[hsl(var(--foreground))]\">+</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-[hsl(var(--foreground))]\">-</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'separator'\">\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--muted))] shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center border-r border-[hsl(var(--border))] px-3 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">Copy</button>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center px-3 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">Paste</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'nested'\">\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button *ngFor=\"let item of ['1', '2', '3', '4', '5']; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-8 items-center justify-center px-3 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]', !last ? 'border-r border-[hsl(var(--border))]' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center border-r border-[hsl(var(--border))] text-[hsl(var(--foreground))]\">\u2190</button>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center text-[hsl(var(--foreground))]\">\u2192</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <div class=\"inline-flex h-9 w-9 items-center justify-center overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm text-[hsl(var(--foreground))]\">\u2190</div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button *ngFor=\"let item of items; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-9 items-center justify-center px-4 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]', !last ? 'border-r border-[hsl(var(--border))]' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center border-r border-[hsl(var(--border))] px-4 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">Snooze</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-[hsl(var(--foreground))]\">\u2026</button>\n </div>\n </ng-container>\n </ng-container>\n</div>\n\n" }]
272
+ args: [{ selector: 'pdm-button-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"'orientation'\">\n <div class=\"inline-flex flex-col overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center border-b border-border text-foreground\">+</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-foreground\">-</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'separator'\">\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-muted shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center border-r border-border px-3 text-sm font-medium text-foreground\">Copy</button>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center px-3 text-sm font-medium text-foreground\">Paste</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'nested'\">\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button *ngFor=\"let item of ['1', '2', '3', '4', '5']; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-8 items-center justify-center px-3 text-sm font-medium text-foreground', !last ? 'border-r border-border' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center border-r border-border text-foreground\">\u2190</button>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center text-foreground\">\u2192</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <div class=\"inline-flex h-9 w-9 items-center justify-center overflow-hidden rounded-md border border-border bg-background shadow-sm text-foreground\">\u2190</div>\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button *ngFor=\"let item of items; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-9 items-center justify-center px-4 text-sm font-medium text-foreground', !last ? 'border-r border-border' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-md border border-border bg-background shadow-sm\">\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center border-r border-border px-4 text-sm font-medium text-foreground\">Snooze</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-foreground\">\u2026</button>\n </div>\n </ng-container>\n </ng-container>\n</div>\n" }]
273
273
  }], propDecorators: { variant: [{
274
274
  type: Input
275
275
  }], items: [{
@@ -291,16 +291,16 @@ class PdmButtonComponent {
291
291
  this.toneClassMap = {
292
292
  default: { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
293
293
  primary: { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
294
- destructive: { default: 'bg-destructive text-background', hover: 'bg-destructive text-background opacity-90' },
295
- outline: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
294
+ destructive: { default: 'bg-destructive text-destructive-foreground', hover: 'bg-destructive text-destructive-foreground opacity-90' },
295
+ outline: { default: 'border border-input bg-background text-foreground', hover: 'border border-input bg-accent text-accent-foreground' },
296
296
  subtle: { default: 'bg-secondary text-secondary-foreground', hover: 'bg-accent text-accent-foreground' },
297
297
  secondary: { default: 'bg-secondary text-secondary-foreground', hover: 'bg-accent text-accent-foreground' },
298
298
  ghost: { default: 'bg-transparent text-foreground', hover: 'bg-accent text-accent-foreground' },
299
- link: { default: 'bg-transparent text-primary', hover: 'bg-transparent text-primary' },
299
+ link: { default: 'bg-transparent text-primary', hover: 'bg-transparent text-primary underline underline-offset-4' },
300
300
  'with-icon': { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
301
- icon: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
302
- 'icon-circle': { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
303
- rounded: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
301
+ icon: { default: 'border border-input bg-background text-foreground', hover: 'border border-input bg-accent text-accent-foreground' },
302
+ 'icon-circle': { default: 'border border-input bg-background text-foreground', hover: 'border border-input bg-accent text-accent-foreground' },
303
+ rounded: { default: 'border border-input bg-background text-foreground', hover: 'border border-input bg-accent text-accent-foreground' },
304
304
  loading: { default: 'bg-primary text-primary-foreground opacity-70', hover: 'bg-primary text-primary-foreground opacity-70' }
305
305
  };
306
306
  }
@@ -311,19 +311,19 @@ class PdmButtonComponent {
311
311
  const currentState = this.state === 'hover' ? 'hover' : 'default';
312
312
  const toneClass = this.toneClassMap[this.variant][currentState];
313
313
  return [
314
- 'inline-flex items-center justify-center gap-2 rounded-[6px] border border-transparent text-[14px] font-medium leading-6 transition-colors outline-none focus:outline-none focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',
314
+ 'inline-flex items-center justify-center gap-2 rounded-md border border-transparent text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
315
315
  this.variant === 'link' ? 'px-4 py-2 h-9' : '',
316
- this.variant === 'icon' ? 'h-8 w-8 p-2' : '',
317
- this.variant === 'icon-circle' ? 'h-10 w-10 rounded-[96px] p-3' : '',
316
+ this.variant === 'icon' ? 'h-9 w-9 p-0' : '',
317
+ this.variant === 'icon-circle' ? 'h-10 w-10 rounded-full p-0' : '',
318
318
  this.variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',
319
319
  this.variant !== 'icon' && this.variant !== 'icon-circle' && this.variant !== 'rounded'
320
320
  ? this.size === 'small'
321
- ? 'h-8 px-3'
321
+ ? 'h-8 px-3 text-xs'
322
322
  : this.size === 'large'
323
- ? 'h-10 px-5'
323
+ ? 'h-10 px-8'
324
324
  : 'h-9 px-4'
325
325
  : '',
326
- this.variant === 'link' && this.state === 'hover' ? 'underline [text-decoration-skip-ink:none]' : '',
326
+ this.variant === 'link' && this.state === 'hover' ? 'underline underline-offset-4' : '',
327
327
  toneClass,
328
328
  this.className
329
329
  ];
@@ -405,10 +405,10 @@ class PdmCalendarComponent {
405
405
  }
406
406
  }
407
407
  PdmCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
408
- PdmCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: { mode: "mode", month: "month", year: "year", selectedDay: "selectedDay", rangeStartDay: "rangeStartDay", rangeEndDay: "rangeEndDay", className: "className" }, ngImport: i0, template: "<section\n [ngClass]=\"[\n 'rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-3 shadow-sm',\n mode === 'range' ? 'w-[488px]' : 'w-[250px]',\n className\n ]\"\n>\n <div [ngClass]=\"['grid gap-4', mode === 'range' ? 'grid-cols-2' : 'grid-cols-1']\">\n <div class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[hsl(var(--foreground))]\">\u2039</button>\n <div [ngClass]=\"['flex items-center justify-center gap-1', mode === 'range' ? 'w-full' : 'w-[160px]']\">\n <ng-container *ngIf=\"mode === 'single'; else monthText\">\n <span class=\"inline-flex h-8 items-center rounded-[8px] border border-[hsl(var(--border))] px-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\">Jun</span>\n <span class=\"inline-flex h-8 items-center rounded-[8px] border border-[hsl(var(--border))] px-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\">2025</span>\n </ng-container>\n <ng-template #monthText>\n <span class=\"text-[28px] text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ leftMonthName }} {{ year }}</span>\n </ng-template>\n </div>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[hsl(var(--foreground))]\">{{ mode === 'range' ? '' : '\u203A' }}</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-[21px] items-center justify-center text-[12px] font-normal leading-4 text-[hsl(var(--muted-foreground))]\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of leftCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-[8px] text-[14px] font-normal leading-5',\n cell.outside ? 'text-[hsl(var(--foreground))] opacity-50' : 'text-[hsl(var(--foreground))]',\n cell.inRange ? 'bg-[hsl(var(--muted))]' : '',\n cell.selected ? 'bg-[hsl(var(--foreground))] text-[hsl(var(--background))]' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mode === 'range'\" class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <span class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ rightMonthName }} {{ month === 12 ? year + 1 : year }}</span>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[hsl(var(--foreground))]\">\u203A</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-[21px] items-center justify-center text-[12px] font-normal leading-4 text-[hsl(var(--muted-foreground))]\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of rightCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-[8px] text-[14px] font-normal leading-5',\n cell.outside ? 'text-[hsl(var(--foreground))] opacity-50' : 'text-[hsl(var(--foreground))]',\n cell.inRange ? 'bg-[hsl(var(--muted))]' : '',\n cell.selected ? 'bg-[hsl(var(--foreground))] text-[hsl(var(--background))]' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</section>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
408
+ PdmCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: { mode: "mode", month: "month", year: "year", selectedDay: "selectedDay", rangeStartDay: "rangeStartDay", rangeEndDay: "rangeEndDay", className: "className" }, ngImport: i0, template: "<section\n [ngClass]=\"[\n 'rounded-lg border border-border bg-background p-3 shadow-sm',\n mode === 'range' ? 'w-full max-w-2xl' : 'w-full max-w-sm',\n className\n ]\"\n>\n <div [ngClass]=\"['grid gap-4', mode === 'range' ? 'grid-cols-2' : 'grid-cols-1']\">\n <div class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">\u2039</button>\n <div [ngClass]=\"['flex items-center justify-center gap-1', mode === 'range' ? 'w-full' : 'w-full']\">\n <ng-container *ngIf=\"mode === 'single'; else monthText\">\n <span class=\"inline-flex h-8 items-center rounded-md border border-border px-2 text-sm font-medium text-foreground shadow-sm\">Jun</span>\n <span class=\"inline-flex h-8 items-center rounded-md border border-border px-2 text-sm font-medium text-foreground shadow-sm\">2025</span>\n </ng-container>\n <ng-template #monthText>\n <span class=\"text-sm font-medium text-foreground\">{{ leftMonthName }} {{ year }}</span>\n </ng-template>\n </div>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">{{ mode === 'range' ? '' : '\u203A' }}</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-5 items-center justify-center text-xs font-normal text-muted-foreground\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of leftCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-md text-sm font-normal transition-colors hover:bg-accent hover:text-accent-foreground',\n cell.outside ? 'text-muted-foreground opacity-50' : 'text-foreground',\n cell.inRange ? 'bg-accent text-accent-foreground' : '',\n cell.selected ? 'bg-primary text-primary-foreground' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mode === 'range'\" class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <span class=\"text-sm font-medium text-foreground\">{{ rightMonthName }} {{ month === 12 ? year + 1 : year }}</span>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">\u203A</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-5 items-center justify-center text-xs font-normal text-muted-foreground\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of rightCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-md text-sm font-normal transition-colors hover:bg-accent hover:text-accent-foreground',\n cell.outside ? 'text-muted-foreground opacity-50' : 'text-foreground',\n cell.inRange ? 'bg-accent text-accent-foreground' : '',\n cell.selected ? 'bg-primary text-primary-foreground' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
409
409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarComponent, decorators: [{
410
410
  type: Component,
411
- args: [{ selector: 'pdm-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n [ngClass]=\"[\n 'rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-3 shadow-sm',\n mode === 'range' ? 'w-[488px]' : 'w-[250px]',\n className\n ]\"\n>\n <div [ngClass]=\"['grid gap-4', mode === 'range' ? 'grid-cols-2' : 'grid-cols-1']\">\n <div class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[hsl(var(--foreground))]\">\u2039</button>\n <div [ngClass]=\"['flex items-center justify-center gap-1', mode === 'range' ? 'w-full' : 'w-[160px]']\">\n <ng-container *ngIf=\"mode === 'single'; else monthText\">\n <span class=\"inline-flex h-8 items-center rounded-[8px] border border-[hsl(var(--border))] px-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\">Jun</span>\n <span class=\"inline-flex h-8 items-center rounded-[8px] border border-[hsl(var(--border))] px-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\">2025</span>\n </ng-container>\n <ng-template #monthText>\n <span class=\"text-[28px] text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ leftMonthName }} {{ year }}</span>\n </ng-template>\n </div>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[hsl(var(--foreground))]\">{{ mode === 'range' ? '' : '\u203A' }}</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-[21px] items-center justify-center text-[12px] font-normal leading-4 text-[hsl(var(--muted-foreground))]\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of leftCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-[8px] text-[14px] font-normal leading-5',\n cell.outside ? 'text-[hsl(var(--foreground))] opacity-50' : 'text-[hsl(var(--foreground))]',\n cell.inRange ? 'bg-[hsl(var(--muted))]' : '',\n cell.selected ? 'bg-[hsl(var(--foreground))] text-[hsl(var(--background))]' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mode === 'range'\" class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <span class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ rightMonthName }} {{ month === 12 ? year + 1 : year }}</span>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[hsl(var(--foreground))]\">\u203A</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-[21px] items-center justify-center text-[12px] font-normal leading-4 text-[hsl(var(--muted-foreground))]\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of rightCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-[8px] text-[14px] font-normal leading-5',\n cell.outside ? 'text-[hsl(var(--foreground))] opacity-50' : 'text-[hsl(var(--foreground))]',\n cell.inRange ? 'bg-[hsl(var(--muted))]' : '',\n cell.selected ? 'bg-[hsl(var(--foreground))] text-[hsl(var(--background))]' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</section>\n\n" }]
411
+ args: [{ selector: 'pdm-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n [ngClass]=\"[\n 'rounded-lg border border-border bg-background p-3 shadow-sm',\n mode === 'range' ? 'w-full max-w-2xl' : 'w-full max-w-sm',\n className\n ]\"\n>\n <div [ngClass]=\"['grid gap-4', mode === 'range' ? 'grid-cols-2' : 'grid-cols-1']\">\n <div class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">\u2039</button>\n <div [ngClass]=\"['flex items-center justify-center gap-1', mode === 'range' ? 'w-full' : 'w-full']\">\n <ng-container *ngIf=\"mode === 'single'; else monthText\">\n <span class=\"inline-flex h-8 items-center rounded-md border border-border px-2 text-sm font-medium text-foreground shadow-sm\">Jun</span>\n <span class=\"inline-flex h-8 items-center rounded-md border border-border px-2 text-sm font-medium text-foreground shadow-sm\">2025</span>\n </ng-container>\n <ng-template #monthText>\n <span class=\"text-sm font-medium text-foreground\">{{ leftMonthName }} {{ year }}</span>\n </ng-template>\n </div>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">{{ mode === 'range' ? '' : '\u203A' }}</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-5 items-center justify-center text-xs font-normal text-muted-foreground\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of leftCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-md text-sm font-normal transition-colors hover:bg-accent hover:text-accent-foreground',\n cell.outside ? 'text-muted-foreground opacity-50' : 'text-foreground',\n cell.inRange ? 'bg-accent text-accent-foreground' : '',\n cell.selected ? 'bg-primary text-primary-foreground' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mode === 'range'\" class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <span class=\"text-sm font-medium text-foreground\">{{ rightMonthName }} {{ month === 12 ? year + 1 : year }}</span>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">\u203A</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-5 items-center justify-center text-xs font-normal text-muted-foreground\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of rightCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-md text-sm font-normal transition-colors hover:bg-accent hover:text-accent-foreground',\n cell.outside ? 'text-muted-foreground opacity-50' : 'text-foreground',\n cell.inRange ? 'bg-accent text-accent-foreground' : '',\n cell.selected ? 'bg-primary text-primary-foreground' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</section>\n" }]
412
412
  }], propDecorators: { mode: [{
413
413
  type: Input
414
414
  }], month: [{
@@ -501,10 +501,10 @@ class PdmCarouselComponent {
501
501
  }
502
502
  }
503
503
  PdmCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
504
- PdmCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCarouselComponent, selector: "pdm-carousel", inputs: { variant: "variant", className: "className", slides: "slides", startIndex: "startIndex", loop: "loop" }, outputs: { indexChange: "indexChange" }, ngImport: i0, template: "<section [ngClass]=\"[className]\">\n <div *ngIf=\"variant !== 'orientation'\" class=\"flex items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-[10px]\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <ng-container [ngSwitch]=\"variant\">\n <div *ngSwitchCase=\"'sizes'\" class=\"flex items-center\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex items-center\" [ngClass]=\"i > 0 ? 'pl-4' : ''\">\n <div class=\"flex h-[165px] w-[125px] items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] py-6 shadow-sm\">\n <div class=\"text-center text-[30px] font-semibold leading-9 text-[hsl(var(--foreground))]\">{{ slide }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchDefault class=\"flex flex-col items-center justify-center\">\n <div class=\"flex h-[360px] w-[318px] items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] py-6 shadow-sm\">\n <div class=\"text-center text-[36px] font-semibold leading-10 text-[hsl(var(--foreground))]\">{{ visibleSlides[0] }}</div>\n </div>\n </div>\n <p *ngIf=\"variant === 'api'\" class=\"m-0 pt-2 text-[14px] font-medium leading-5 text-[hsl(var(--muted-foreground))]\">Slide {{ index + 1 }} of {{ slides.length }}</p>\n </div>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-[10px]\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div *ngIf=\"variant === 'orientation'\" class=\"flex flex-col items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-[10px]\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 15L12 9L6 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex w-[320px] flex-col\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex h-[142px] w-full items-center p-1\" [ngClass]=\"i > 0 ? 'pt-1' : ''\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] py-6 shadow-sm\">\n <div class=\"text-center text-[30px] font-semibold leading-9 text-[hsl(var(--foreground))]\">{{ slide }}</div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-[10px]\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
504
+ PdmCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCarouselComponent, selector: "pdm-carousel", inputs: { variant: "variant", className: "className", slides: "slides", startIndex: "startIndex", loop: "loop" }, outputs: { indexChange: "indexChange" }, ngImport: i0, template: "<section [ngClass]=\"[className]\">\n <div *ngIf=\"variant !== 'orientation'\" class=\"flex items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background p-2.5\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <ng-container [ngSwitch]=\"variant\">\n <div *ngSwitchCase=\"'sizes'\" class=\"flex items-center\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex items-center\" [ngClass]=\"i > 0 ? 'pl-4' : ''\">\n <div class=\"flex h-40 w-32 items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-2xl font-semibold text-foreground\">{{ slide }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchDefault class=\"flex flex-col items-center justify-center\">\n <div class=\"flex h-80 w-80 items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-3xl font-semibold text-foreground\">{{ visibleSlides[0] }}</div>\n </div>\n </div>\n <p *ngIf=\"variant === 'api'\" class=\"m-0 pt-2 text-sm font-medium text-muted-foreground\">Slide {{ index + 1 }} of {{ slides.length }}</p>\n </div>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background p-2.5\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div *ngIf=\"variant === 'orientation'\" class=\"flex flex-col items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background p-2.5\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 15L12 9L6 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex w-80 flex-col\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex h-36 w-full items-center p-1\" [ngClass]=\"i > 0 ? 'pt-1' : ''\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-2xl font-semibold text-foreground\">{{ slide }}</div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background p-2.5\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
505
505
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCarouselComponent, decorators: [{
506
506
  type: Component,
507
- args: [{ selector: 'pdm-carousel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"[className]\">\n <div *ngIf=\"variant !== 'orientation'\" class=\"flex items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-[10px]\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <ng-container [ngSwitch]=\"variant\">\n <div *ngSwitchCase=\"'sizes'\" class=\"flex items-center\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex items-center\" [ngClass]=\"i > 0 ? 'pl-4' : ''\">\n <div class=\"flex h-[165px] w-[125px] items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] py-6 shadow-sm\">\n <div class=\"text-center text-[30px] font-semibold leading-9 text-[hsl(var(--foreground))]\">{{ slide }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchDefault class=\"flex flex-col items-center justify-center\">\n <div class=\"flex h-[360px] w-[318px] items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] py-6 shadow-sm\">\n <div class=\"text-center text-[36px] font-semibold leading-10 text-[hsl(var(--foreground))]\">{{ visibleSlides[0] }}</div>\n </div>\n </div>\n <p *ngIf=\"variant === 'api'\" class=\"m-0 pt-2 text-[14px] font-medium leading-5 text-[hsl(var(--muted-foreground))]\">Slide {{ index + 1 }} of {{ slides.length }}</p>\n </div>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-[10px]\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div *ngIf=\"variant === 'orientation'\" class=\"flex flex-col items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-[10px]\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 15L12 9L6 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex w-[320px] flex-col\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex h-[142px] w-full items-center p-1\" [ngClass]=\"i > 0 ? 'pt-1' : ''\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] py-6 shadow-sm\">\n <div class=\"text-center text-[30px] font-semibold leading-9 text-[hsl(var(--foreground))]\">{{ slide }}</div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-[10px]\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n</section>\n" }]
507
+ args: [{ selector: 'pdm-carousel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"[className]\">\n <div *ngIf=\"variant !== 'orientation'\" class=\"flex items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background p-2.5\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <ng-container [ngSwitch]=\"variant\">\n <div *ngSwitchCase=\"'sizes'\" class=\"flex items-center\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex items-center\" [ngClass]=\"i > 0 ? 'pl-4' : ''\">\n <div class=\"flex h-40 w-32 items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-2xl font-semibold text-foreground\">{{ slide }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchDefault class=\"flex flex-col items-center justify-center\">\n <div class=\"flex h-80 w-80 items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-3xl font-semibold text-foreground\">{{ visibleSlides[0] }}</div>\n </div>\n </div>\n <p *ngIf=\"variant === 'api'\" class=\"m-0 pt-2 text-sm font-medium text-muted-foreground\">Slide {{ index + 1 }} of {{ slides.length }}</p>\n </div>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background p-2.5\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div *ngIf=\"variant === 'orientation'\" class=\"flex flex-col items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background p-2.5\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 15L12 9L6 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex w-80 flex-col\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex h-36 w-full items-center p-1\" [ngClass]=\"i > 0 ? 'pt-1' : ''\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-2xl font-semibold text-foreground\">{{ slide }}</div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background p-2.5\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n</section>\n" }]
508
508
  }], propDecorators: { variant: [{
509
509
  type: Input
510
510
  }], className: [{
@@ -547,10 +547,10 @@ class PdmCardComponent {
547
547
  }
548
548
  }
549
549
  PdmCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
550
- PdmCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCardComponent, selector: "pdm-card", inputs: { variant: "variant", className: "className", title: "title", description: "description", actionText: "actionText", emailLabel: "emailLabel", emailPlaceholder: "emailPlaceholder", passwordLabel: "passwordLabel", passwordHint: "passwordHint", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction", actionPressed: "actionPressed" }, ngImport: i0, template: "<section\n [ngClass]=\"[\n 'w-full rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] py-6 shadow-sm',\n className\n ]\"\n>\n <ng-container *ngIf=\"variant === 'login'; else defaultCard\">\n <div class=\"flex w-full items-start gap-1.5 px-6\">\n <div class=\"min-w-0 flex-1\">\n <h3 class=\"m-0 text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]\">{{ title }}</h3>\n <p class=\"m-0 mt-1.5 text-[14px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\"\n (click)=\"onActionPressed()\"\n >\n {{ actionText }}\n </button>\n </div>\n\n <div class=\"mt-6 flex flex-col gap-4 px-6\">\n <div class=\"w-full\">\n <label class=\"mb-3 block text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ emailLabel }}</label>\n <input\n type=\"email\"\n [placeholder]=\"emailPlaceholder\"\n class=\"h-9 w-full rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--foreground))] shadow-sm placeholder:text-[hsl(var(--muted-foreground))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--ring))]\"\n />\n </div>\n\n <div class=\"w-full\">\n <div class=\"mb-3 flex w-full items-center justify-between gap-4\">\n <label class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ passwordLabel }}</label>\n <button type=\"button\" class=\"text-[14px] leading-5 text-[hsl(var(--foreground))]\">\n {{ passwordHint }}\n </button>\n </div>\n <input\n type=\"password\"\n class=\"h-9 w-full rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--foreground))] shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--ring))]\"\n />\n </div>\n </div>\n\n <div class=\"mt-6 flex w-full flex-col gap-2 px-6\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-[10px] bg-[hsl(var(--foreground))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--background))] shadow-sm\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #defaultCard>\n <div class=\"flex w-full flex-col gap-6\">\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardHeader]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardContent]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardFooter]\"></ng-content>\n </div>\n </div>\n </ng-template>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
550
+ PdmCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCardComponent, selector: "pdm-card", inputs: { variant: "variant", className: "className", title: "title", description: "description", actionText: "actionText", emailLabel: "emailLabel", emailPlaceholder: "emailPlaceholder", passwordLabel: "passwordLabel", passwordHint: "passwordHint", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction", actionPressed: "actionPressed" }, ngImport: i0, template: "<section\n [ngClass]=\"[\n 'w-full rounded-lg border border-border bg-background py-6 shadow-sm',\n className\n ]\"\n>\n <ng-container *ngIf=\"variant === 'login'; else defaultCard\">\n <div class=\"flex w-full items-start gap-1.5 px-6\">\n <div class=\"min-w-0 flex-1\">\n <h3 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h3>\n <p class=\"m-0 mt-1.5 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium text-foreground\"\n (click)=\"onActionPressed()\"\n >\n {{ actionText }}\n </button>\n </div>\n\n <div class=\"mt-6 flex flex-col gap-4 px-6\">\n <div class=\"w-full\">\n <label class=\"mb-3 block text-sm font-medium text-foreground\">{{ emailLabel }}</label>\n <input\n type=\"email\"\n [placeholder]=\"emailPlaceholder\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm text-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n />\n </div>\n\n <div class=\"w-full\">\n <div class=\"mb-3 flex w-full items-center justify-between gap-4\">\n <label class=\"text-sm font-medium text-foreground\">{{ passwordLabel }}</label>\n <button type=\"button\" class=\"text-sm text-foreground\">\n {{ passwordHint }}\n </button>\n </div>\n <input\n type=\"password\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm text-foreground shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n />\n </div>\n </div>\n\n <div class=\"mt-6 flex w-full flex-col gap-2 px-6\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #defaultCard>\n <div class=\"flex w-full flex-col gap-6\">\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardHeader]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardContent]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardFooter]\"></ng-content>\n </div>\n </div>\n </ng-template>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
551
551
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCardComponent, decorators: [{
552
552
  type: Component,
553
- args: [{ selector: 'pdm-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n [ngClass]=\"[\n 'w-full rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] py-6 shadow-sm',\n className\n ]\"\n>\n <ng-container *ngIf=\"variant === 'login'; else defaultCard\">\n <div class=\"flex w-full items-start gap-1.5 px-6\">\n <div class=\"min-w-0 flex-1\">\n <h3 class=\"m-0 text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]\">{{ title }}</h3>\n <p class=\"m-0 mt-1.5 text-[14px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\"\n (click)=\"onActionPressed()\"\n >\n {{ actionText }}\n </button>\n </div>\n\n <div class=\"mt-6 flex flex-col gap-4 px-6\">\n <div class=\"w-full\">\n <label class=\"mb-3 block text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ emailLabel }}</label>\n <input\n type=\"email\"\n [placeholder]=\"emailPlaceholder\"\n class=\"h-9 w-full rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--foreground))] shadow-sm placeholder:text-[hsl(var(--muted-foreground))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--ring))]\"\n />\n </div>\n\n <div class=\"w-full\">\n <div class=\"mb-3 flex w-full items-center justify-between gap-4\">\n <label class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ passwordLabel }}</label>\n <button type=\"button\" class=\"text-[14px] leading-5 text-[hsl(var(--foreground))]\">\n {{ passwordHint }}\n </button>\n </div>\n <input\n type=\"password\"\n class=\"h-9 w-full rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--foreground))] shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--ring))]\"\n />\n </div>\n </div>\n\n <div class=\"mt-6 flex w-full flex-col gap-2 px-6\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-[10px] bg-[hsl(var(--foreground))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--background))] shadow-sm\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 py-2 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #defaultCard>\n <div class=\"flex w-full flex-col gap-6\">\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardHeader]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardContent]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardFooter]\"></ng-content>\n </div>\n </div>\n </ng-template>\n</section>\n" }]
553
+ args: [{ selector: 'pdm-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n [ngClass]=\"[\n 'w-full rounded-lg border border-border bg-background py-6 shadow-sm',\n className\n ]\"\n>\n <ng-container *ngIf=\"variant === 'login'; else defaultCard\">\n <div class=\"flex w-full items-start gap-1.5 px-6\">\n <div class=\"min-w-0 flex-1\">\n <h3 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h3>\n <p class=\"m-0 mt-1.5 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium text-foreground\"\n (click)=\"onActionPressed()\"\n >\n {{ actionText }}\n </button>\n </div>\n\n <div class=\"mt-6 flex flex-col gap-4 px-6\">\n <div class=\"w-full\">\n <label class=\"mb-3 block text-sm font-medium text-foreground\">{{ emailLabel }}</label>\n <input\n type=\"email\"\n [placeholder]=\"emailPlaceholder\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm text-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n />\n </div>\n\n <div class=\"w-full\">\n <div class=\"mb-3 flex w-full items-center justify-between gap-4\">\n <label class=\"text-sm font-medium text-foreground\">{{ passwordLabel }}</label>\n <button type=\"button\" class=\"text-sm text-foreground\">\n {{ passwordHint }}\n </button>\n </div>\n <input\n type=\"password\"\n class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm text-foreground shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n />\n </div>\n </div>\n\n <div class=\"mt-6 flex w-full flex-col gap-2 px-6\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #defaultCard>\n <div class=\"flex w-full flex-col gap-6\">\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardHeader]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardContent]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardFooter]\"></ng-content>\n </div>\n </div>\n </ng-template>\n</section>\n" }]
554
554
  }], propDecorators: { variant: [{
555
555
  type: Input
556
556
  }], className: [{
@@ -703,10 +703,10 @@ class PdmChartComponent {
703
703
  }
704
704
  }
705
705
  PdmChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
706
- PdmChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmChartComponent, selector: "pdm-chart", inputs: { type: "type", className: "className", title: "title", description: "description", desktopLabel: "desktopLabel", desktopValue: "desktopValue", mobileLabel: "mobileLabel", mobileValue: "mobileValue", labels: "labels", bars: "bars", line: "line", pie: "pie", radar: "radar", radialValue: "radialValue", radialLabel: "radialLabel", radialDescription: "radialDescription", tooltipTitle: "tooltipTitle", tooltipPrimaryLabel: "tooltipPrimaryLabel", tooltipPrimaryValue: "tooltipPrimaryValue", tooltipSecondaryLabel: "tooltipSecondaryLabel", tooltipSecondaryValue: "tooltipSecondaryValue", pieLabels: "pieLabels" }, ngImport: i0, template: "<section [ngClass]=\"['w-full rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))]', className]\">\n <div class=\"flex w-full items-stretch border-b border-[hsl(var(--border))]\">\n <div class=\"flex min-w-0 flex-1 flex-col gap-1 px-6 pb-3 pt-4\">\n <h3 class=\"m-0 text-sm font-semibold leading-5\">{{ title }}</h3>\n <p class=\"m-0 text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n\n <div class=\"flex h-[92px]\">\n <div class=\"flex h-full w-[171px] flex-col justify-center border-l border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-6 py-4\">\n <span class=\"text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ desktopLabel }}</span>\n <span class=\"mt-1 text-[28px] font-semibold leading-8\">{{ desktopValue }}</span>\n </div>\n <div class=\"flex h-full w-[171px] flex-col justify-center px-6 py-4\">\n <span class=\"text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ mobileLabel }}</span>\n <span class=\"mt-1 text-[28px] font-semibold leading-8\">{{ mobileValue }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"w-full p-6\">\n <ng-container [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'bar'\" class=\"flex h-[236px] w-full flex-col justify-end gap-2\">\n <div class=\"relative h-[183px] w-full overflow-hidden\">\n <div class=\"absolute bottom-0 left-0 right-0 border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[54px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[108px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[162px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute inset-x-0 bottom-0 flex h-[183px] items-end gap-[2px] px-0.5\">\n <div *ngFor=\"let bar of normalizedBars\" class=\"w-[5px] rounded-[2px] bg-[hsl(var(--primary))]\" [style.height.px]=\"bar\"></div>\n </div>\n </div>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'line'\" class=\"flex h-[236px] w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-[183px] w-full\">\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'area'\" class=\"flex h-[236px] w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-[183px] w-full\">\n <defs>\n <linearGradient id=\"pdm-chart-area-gradient\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.35\"></stop>\n <stop offset=\"100%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.02\"></stop>\n </linearGradient>\n </defs>\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"areaPath\" fill=\"url(#pdm-chart-area-gradient)\"></path>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'pie'\" class=\"flex items-center gap-6\">\n <div class=\"relative h-40 w-40 rounded-full\" [style.background]=\"pieGradient\">\n <div class=\"absolute inset-7 rounded-full bg-[hsl(var(--card))]\"></div>\n </div>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let segment of pieSegments\" class=\"flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2\">\n <div class=\"flex items-center gap-2\">\n <span class=\"size-2.5 rounded-full\" [style.background]=\"segment.color\"></span>\n <span class=\"text-sm leading-5\">{{ segment.label }}</span>\n </div>\n <span class=\"text-sm font-medium leading-5\">{{ segment.size | number: '1.0-0' }}%</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radar'\" class=\"flex items-center gap-6\">\n <svg viewBox=\"0 0 160 160\" class=\"h-44 w-44\">\n <polygon points=\"80,8 144,44 144,116 80,152 16,116 16,44\" fill=\"none\" stroke=\"hsl(var(--border))\"></polygon>\n <polygon points=\"80,28 126,54 126,106 80,132 34,106 34,54\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.75\"></polygon>\n <polygon points=\"80,48 109,64 109,96 80,112 51,96 51,64\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.55\"></polygon>\n <polygon [attr.points]=\"radarPoints\" fill=\"hsl(var(--primary))\" fill-opacity=\"0.22\" stroke=\"hsl(var(--primary))\" stroke-width=\"2\"></polygon>\n </svg>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let item of radar; index as i\" class=\"flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2 text-sm\">\n <span class=\"text-[hsl(var(--muted-foreground))]\">Metric {{ i + 1 }}</span>\n <span class=\"font-medium\">{{ item }}</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radial'\" class=\"flex items-center justify-between gap-6\">\n <div class=\"relative flex size-44 items-center justify-center\">\n <svg viewBox=\"0 0 96 96\" class=\"size-40 -rotate-90\">\n <circle cx=\"48\" cy=\"48\" r=\"42\" fill=\"none\" stroke=\"hsl(var(--muted))\" stroke-width=\"10\"></circle>\n <circle\n cx=\"48\"\n cy=\"48\"\n r=\"42\"\n fill=\"none\"\n stroke=\"hsl(var(--primary))\"\n stroke-width=\"10\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"263.89\"\n [attr.stroke-dashoffset]=\"radialStrokeOffset\"\n ></circle>\n </svg>\n <div class=\"absolute text-center\">\n <div class=\"text-[30px] font-semibold leading-9\">{{ radialValue }}%</div>\n <div class=\"text-xs text-[hsl(var(--muted-foreground))]\">{{ radialLabel }}</div>\n </div>\n </div>\n <div class=\"flex-1\">\n <p class=\"m-0 text-sm font-medium leading-5\">{{ radialLabel }}</p>\n <p class=\"m-0 mt-1 text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ radialDescription }}</p>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'tooltips'\" class=\"grid gap-3\">\n <div class=\"inline-flex w-fit min-w-[220px] flex-col gap-2 rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-3 shadow-sm\">\n <p class=\"m-0 text-xs font-medium leading-4 text-[hsl(var(--muted-foreground))]\">{{ tooltipTitle }}</p>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipPrimaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipPrimaryValue }}</span>\n </div>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipSecondaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipSecondaryValue }}</span>\n </div>\n </div>\n <p class=\"m-0 text-xs text-[hsl(var(--muted-foreground))]\">Tooltip style preparado para charts de l\u00EDnea, \u00E1rea y barras.</p>\n </div>\n </ng-container>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
706
+ PdmChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmChartComponent, selector: "pdm-chart", inputs: { type: "type", className: "className", title: "title", description: "description", desktopLabel: "desktopLabel", desktopValue: "desktopValue", mobileLabel: "mobileLabel", mobileValue: "mobileValue", labels: "labels", bars: "bars", line: "line", pie: "pie", radar: "radar", radialValue: "radialValue", radialLabel: "radialLabel", radialDescription: "radialDescription", tooltipTitle: "tooltipTitle", tooltipPrimaryLabel: "tooltipPrimaryLabel", tooltipPrimaryValue: "tooltipPrimaryValue", tooltipSecondaryLabel: "tooltipSecondaryLabel", tooltipSecondaryValue: "tooltipSecondaryValue", pieLabels: "pieLabels" }, ngImport: i0, template: "<section [ngClass]=\"['w-full rounded-lg border border-border bg-card text-card-foreground', className]\">\n <div class=\"flex w-full items-stretch border-b border-border\">\n <div class=\"flex min-w-0 flex-1 flex-col gap-1 px-6 pb-3 pt-4\">\n <h3 class=\"m-0 text-sm font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"m-0 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n\n <div class=\"flex h-24\">\n <div class=\"flex h-full w-44 flex-col justify-center border-l border-border bg-muted px-6 py-4\">\n <span class=\"text-xs text-muted-foreground\">{{ desktopLabel }}</span>\n <span class=\"mt-1 text-2xl font-semibold\">{{ desktopValue }}</span>\n </div>\n <div class=\"flex h-full w-44 flex-col justify-center px-6 py-4\">\n <span class=\"text-xs text-muted-foreground\">{{ mobileLabel }}</span>\n <span class=\"mt-1 text-2xl font-semibold\">{{ mobileValue }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"w-full p-6\">\n <ng-container [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'bar'\" class=\"flex h-60 w-full flex-col justify-end gap-2\">\n <div class=\"relative h-48 w-full overflow-hidden\">\n <div class=\"absolute bottom-0 left-0 right-0 border-t border-border opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-1/4 border-t border-border opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-1/2 border-t border-border opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-3/4 border-t border-border opacity-50\"></div>\n <div class=\"absolute inset-x-0 bottom-0 flex h-48 items-end gap-0.5 px-0.5\">\n <div *ngFor=\"let bar of normalizedBars\" class=\"w-1.5 rounded-sm bg-primary\" [style.height.px]=\"bar\"></div>\n </div>\n </div>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs text-muted-foreground\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'line'\" class=\"flex h-60 w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-48 w-full\">\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs text-muted-foreground\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'area'\" class=\"flex h-60 w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-48 w-full\">\n <defs>\n <linearGradient id=\"pdm-chart-area-gradient\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.35\"></stop>\n <stop offset=\"100%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.02\"></stop>\n </linearGradient>\n </defs>\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"areaPath\" fill=\"url(#pdm-chart-area-gradient)\"></path>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs text-muted-foreground\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'pie'\" class=\"flex items-center gap-6\">\n <div class=\"relative h-40 w-40 rounded-full\" [style.background]=\"pieGradient\">\n <div class=\"absolute inset-7 rounded-full bg-card\"></div>\n </div>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let segment of pieSegments\" class=\"flex items-center justify-between rounded-md border border-border px-3 py-2\">\n <div class=\"flex items-center gap-2\">\n <span class=\"size-2.5 rounded-full\" [style.background]=\"segment.color\"></span>\n <span class=\"text-sm\">{{ segment.label }}</span>\n </div>\n <span class=\"text-sm font-medium\">{{ segment.size | number: '1.0-0' }}%</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radar'\" class=\"flex items-center gap-6\">\n <svg viewBox=\"0 0 160 160\" class=\"h-44 w-44\">\n <polygon points=\"80,8 144,44 144,116 80,152 16,116 16,44\" fill=\"none\" stroke=\"hsl(var(--border))\"></polygon>\n <polygon points=\"80,28 126,54 126,106 80,132 34,106 34,54\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.75\"></polygon>\n <polygon points=\"80,48 109,64 109,96 80,112 51,96 51,64\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.55\"></polygon>\n <polygon [attr.points]=\"radarPoints\" fill=\"hsl(var(--primary))\" fill-opacity=\"0.22\" stroke=\"hsl(var(--primary))\" stroke-width=\"2\"></polygon>\n </svg>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let item of radar; index as i\" class=\"flex items-center justify-between rounded-md border border-border px-3 py-2 text-sm\">\n <span class=\"text-muted-foreground\">Metric {{ i + 1 }}</span>\n <span class=\"font-medium\">{{ item }}</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radial'\" class=\"flex items-center justify-between gap-6\">\n <div class=\"relative flex size-44 items-center justify-center\">\n <svg viewBox=\"0 0 96 96\" class=\"size-40 -rotate-90\">\n <circle cx=\"48\" cy=\"48\" r=\"42\" fill=\"none\" stroke=\"hsl(var(--muted))\" stroke-width=\"10\"></circle>\n <circle\n cx=\"48\"\n cy=\"48\"\n r=\"42\"\n fill=\"none\"\n stroke=\"hsl(var(--primary))\"\n stroke-width=\"10\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"263.89\"\n [attr.stroke-dashoffset]=\"radialStrokeOffset\"\n ></circle>\n </svg>\n <div class=\"absolute text-center\">\n <div class=\"text-2xl font-semibold\">{{ radialValue }}%</div>\n <div class=\"text-xs text-muted-foreground\">{{ radialLabel }}</div>\n </div>\n </div>\n <div class=\"flex-1\">\n <p class=\"m-0 text-sm font-medium\">{{ radialLabel }}</p>\n <p class=\"m-0 mt-1 text-sm text-muted-foreground\">{{ radialDescription }}</p>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'tooltips'\" class=\"grid gap-3\">\n <div class=\"inline-flex w-fit min-w-56 flex-col gap-2 rounded-lg border border-border bg-card p-3 shadow-sm\">\n <p class=\"m-0 text-xs font-medium text-muted-foreground\">{{ tooltipTitle }}</p>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipPrimaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipPrimaryValue }}</span>\n </div>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipSecondaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipSecondaryValue }}</span>\n </div>\n </div>\n <p class=\"m-0 text-xs text-muted-foreground\">Tooltip style preparado para charts de l\u00EDnea, \u00E1rea y barras.</p>\n </div>\n </ng-container>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
707
707
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmChartComponent, decorators: [{
708
708
  type: Component,
709
- args: [{ selector: 'pdm-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['w-full rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))]', className]\">\n <div class=\"flex w-full items-stretch border-b border-[hsl(var(--border))]\">\n <div class=\"flex min-w-0 flex-1 flex-col gap-1 px-6 pb-3 pt-4\">\n <h3 class=\"m-0 text-sm font-semibold leading-5\">{{ title }}</h3>\n <p class=\"m-0 text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n\n <div class=\"flex h-[92px]\">\n <div class=\"flex h-full w-[171px] flex-col justify-center border-l border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-6 py-4\">\n <span class=\"text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ desktopLabel }}</span>\n <span class=\"mt-1 text-[28px] font-semibold leading-8\">{{ desktopValue }}</span>\n </div>\n <div class=\"flex h-full w-[171px] flex-col justify-center px-6 py-4\">\n <span class=\"text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ mobileLabel }}</span>\n <span class=\"mt-1 text-[28px] font-semibold leading-8\">{{ mobileValue }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"w-full p-6\">\n <ng-container [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'bar'\" class=\"flex h-[236px] w-full flex-col justify-end gap-2\">\n <div class=\"relative h-[183px] w-full overflow-hidden\">\n <div class=\"absolute bottom-0 left-0 right-0 border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[54px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[108px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[162px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute inset-x-0 bottom-0 flex h-[183px] items-end gap-[2px] px-0.5\">\n <div *ngFor=\"let bar of normalizedBars\" class=\"w-[5px] rounded-[2px] bg-[hsl(var(--primary))]\" [style.height.px]=\"bar\"></div>\n </div>\n </div>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'line'\" class=\"flex h-[236px] w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-[183px] w-full\">\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'area'\" class=\"flex h-[236px] w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-[183px] w-full\">\n <defs>\n <linearGradient id=\"pdm-chart-area-gradient\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.35\"></stop>\n <stop offset=\"100%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.02\"></stop>\n </linearGradient>\n </defs>\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"areaPath\" fill=\"url(#pdm-chart-area-gradient)\"></path>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'pie'\" class=\"flex items-center gap-6\">\n <div class=\"relative h-40 w-40 rounded-full\" [style.background]=\"pieGradient\">\n <div class=\"absolute inset-7 rounded-full bg-[hsl(var(--card))]\"></div>\n </div>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let segment of pieSegments\" class=\"flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2\">\n <div class=\"flex items-center gap-2\">\n <span class=\"size-2.5 rounded-full\" [style.background]=\"segment.color\"></span>\n <span class=\"text-sm leading-5\">{{ segment.label }}</span>\n </div>\n <span class=\"text-sm font-medium leading-5\">{{ segment.size | number: '1.0-0' }}%</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radar'\" class=\"flex items-center gap-6\">\n <svg viewBox=\"0 0 160 160\" class=\"h-44 w-44\">\n <polygon points=\"80,8 144,44 144,116 80,152 16,116 16,44\" fill=\"none\" stroke=\"hsl(var(--border))\"></polygon>\n <polygon points=\"80,28 126,54 126,106 80,132 34,106 34,54\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.75\"></polygon>\n <polygon points=\"80,48 109,64 109,96 80,112 51,96 51,64\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.55\"></polygon>\n <polygon [attr.points]=\"radarPoints\" fill=\"hsl(var(--primary))\" fill-opacity=\"0.22\" stroke=\"hsl(var(--primary))\" stroke-width=\"2\"></polygon>\n </svg>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let item of radar; index as i\" class=\"flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2 text-sm\">\n <span class=\"text-[hsl(var(--muted-foreground))]\">Metric {{ i + 1 }}</span>\n <span class=\"font-medium\">{{ item }}</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radial'\" class=\"flex items-center justify-between gap-6\">\n <div class=\"relative flex size-44 items-center justify-center\">\n <svg viewBox=\"0 0 96 96\" class=\"size-40 -rotate-90\">\n <circle cx=\"48\" cy=\"48\" r=\"42\" fill=\"none\" stroke=\"hsl(var(--muted))\" stroke-width=\"10\"></circle>\n <circle\n cx=\"48\"\n cy=\"48\"\n r=\"42\"\n fill=\"none\"\n stroke=\"hsl(var(--primary))\"\n stroke-width=\"10\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"263.89\"\n [attr.stroke-dashoffset]=\"radialStrokeOffset\"\n ></circle>\n </svg>\n <div class=\"absolute text-center\">\n <div class=\"text-[30px] font-semibold leading-9\">{{ radialValue }}%</div>\n <div class=\"text-xs text-[hsl(var(--muted-foreground))]\">{{ radialLabel }}</div>\n </div>\n </div>\n <div class=\"flex-1\">\n <p class=\"m-0 text-sm font-medium leading-5\">{{ radialLabel }}</p>\n <p class=\"m-0 mt-1 text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ radialDescription }}</p>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'tooltips'\" class=\"grid gap-3\">\n <div class=\"inline-flex w-fit min-w-[220px] flex-col gap-2 rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-3 shadow-sm\">\n <p class=\"m-0 text-xs font-medium leading-4 text-[hsl(var(--muted-foreground))]\">{{ tooltipTitle }}</p>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipPrimaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipPrimaryValue }}</span>\n </div>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipSecondaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipSecondaryValue }}</span>\n </div>\n </div>\n <p class=\"m-0 text-xs text-[hsl(var(--muted-foreground))]\">Tooltip style preparado para charts de l\u00EDnea, \u00E1rea y barras.</p>\n </div>\n </ng-container>\n </div>\n</section>\n" }]
709
+ args: [{ selector: 'pdm-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['w-full rounded-lg border border-border bg-card text-card-foreground', className]\">\n <div class=\"flex w-full items-stretch border-b border-border\">\n <div class=\"flex min-w-0 flex-1 flex-col gap-1 px-6 pb-3 pt-4\">\n <h3 class=\"m-0 text-sm font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"m-0 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n\n <div class=\"flex h-24\">\n <div class=\"flex h-full w-44 flex-col justify-center border-l border-border bg-muted px-6 py-4\">\n <span class=\"text-xs text-muted-foreground\">{{ desktopLabel }}</span>\n <span class=\"mt-1 text-2xl font-semibold\">{{ desktopValue }}</span>\n </div>\n <div class=\"flex h-full w-44 flex-col justify-center px-6 py-4\">\n <span class=\"text-xs text-muted-foreground\">{{ mobileLabel }}</span>\n <span class=\"mt-1 text-2xl font-semibold\">{{ mobileValue }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"w-full p-6\">\n <ng-container [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'bar'\" class=\"flex h-60 w-full flex-col justify-end gap-2\">\n <div class=\"relative h-48 w-full overflow-hidden\">\n <div class=\"absolute bottom-0 left-0 right-0 border-t border-border opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-1/4 border-t border-border opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-1/2 border-t border-border opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-3/4 border-t border-border opacity-50\"></div>\n <div class=\"absolute inset-x-0 bottom-0 flex h-48 items-end gap-0.5 px-0.5\">\n <div *ngFor=\"let bar of normalizedBars\" class=\"w-1.5 rounded-sm bg-primary\" [style.height.px]=\"bar\"></div>\n </div>\n </div>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs text-muted-foreground\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'line'\" class=\"flex h-60 w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-48 w-full\">\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs text-muted-foreground\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'area'\" class=\"flex h-60 w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-48 w-full\">\n <defs>\n <linearGradient id=\"pdm-chart-area-gradient\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.35\"></stop>\n <stop offset=\"100%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.02\"></stop>\n </linearGradient>\n </defs>\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"areaPath\" fill=\"url(#pdm-chart-area-gradient)\"></path>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs text-muted-foreground\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'pie'\" class=\"flex items-center gap-6\">\n <div class=\"relative h-40 w-40 rounded-full\" [style.background]=\"pieGradient\">\n <div class=\"absolute inset-7 rounded-full bg-card\"></div>\n </div>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let segment of pieSegments\" class=\"flex items-center justify-between rounded-md border border-border px-3 py-2\">\n <div class=\"flex items-center gap-2\">\n <span class=\"size-2.5 rounded-full\" [style.background]=\"segment.color\"></span>\n <span class=\"text-sm\">{{ segment.label }}</span>\n </div>\n <span class=\"text-sm font-medium\">{{ segment.size | number: '1.0-0' }}%</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radar'\" class=\"flex items-center gap-6\">\n <svg viewBox=\"0 0 160 160\" class=\"h-44 w-44\">\n <polygon points=\"80,8 144,44 144,116 80,152 16,116 16,44\" fill=\"none\" stroke=\"hsl(var(--border))\"></polygon>\n <polygon points=\"80,28 126,54 126,106 80,132 34,106 34,54\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.75\"></polygon>\n <polygon points=\"80,48 109,64 109,96 80,112 51,96 51,64\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.55\"></polygon>\n <polygon [attr.points]=\"radarPoints\" fill=\"hsl(var(--primary))\" fill-opacity=\"0.22\" stroke=\"hsl(var(--primary))\" stroke-width=\"2\"></polygon>\n </svg>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let item of radar; index as i\" class=\"flex items-center justify-between rounded-md border border-border px-3 py-2 text-sm\">\n <span class=\"text-muted-foreground\">Metric {{ i + 1 }}</span>\n <span class=\"font-medium\">{{ item }}</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radial'\" class=\"flex items-center justify-between gap-6\">\n <div class=\"relative flex size-44 items-center justify-center\">\n <svg viewBox=\"0 0 96 96\" class=\"size-40 -rotate-90\">\n <circle cx=\"48\" cy=\"48\" r=\"42\" fill=\"none\" stroke=\"hsl(var(--muted))\" stroke-width=\"10\"></circle>\n <circle\n cx=\"48\"\n cy=\"48\"\n r=\"42\"\n fill=\"none\"\n stroke=\"hsl(var(--primary))\"\n stroke-width=\"10\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"263.89\"\n [attr.stroke-dashoffset]=\"radialStrokeOffset\"\n ></circle>\n </svg>\n <div class=\"absolute text-center\">\n <div class=\"text-2xl font-semibold\">{{ radialValue }}%</div>\n <div class=\"text-xs text-muted-foreground\">{{ radialLabel }}</div>\n </div>\n </div>\n <div class=\"flex-1\">\n <p class=\"m-0 text-sm font-medium\">{{ radialLabel }}</p>\n <p class=\"m-0 mt-1 text-sm text-muted-foreground\">{{ radialDescription }}</p>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'tooltips'\" class=\"grid gap-3\">\n <div class=\"inline-flex w-fit min-w-56 flex-col gap-2 rounded-lg border border-border bg-card p-3 shadow-sm\">\n <p class=\"m-0 text-xs font-medium text-muted-foreground\">{{ tooltipTitle }}</p>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipPrimaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipPrimaryValue }}</span>\n </div>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipSecondaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipSecondaryValue }}</span>\n </div>\n </div>\n <p class=\"m-0 text-xs text-muted-foreground\">Tooltip style preparado para charts de l\u00EDnea, \u00E1rea y barras.</p>\n </div>\n </ng-container>\n </div>\n</section>\n" }]
710
710
  }], propDecorators: { type: [{
711
711
  type: Input
712
712
  }], className: [{
@@ -775,10 +775,10 @@ class PdmCheckboxComponent {
775
775
  }
776
776
  }
777
777
  PdmCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
778
- PdmCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCheckboxComponent, selector: "pdm-checkbox", inputs: { id: "id", checked: "checked", disabled: "disabled", variant: "variant", label: "label", description: "description", className: "className" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"id || null\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'w-full border-0 bg-transparent p-0 text-left outline-none focus:outline-none focus-visible:outline-none',\n variant === 'card'\n ? checked\n ? 'flex items-start gap-3 rounded-[10px] border border-foreground bg-muted p-3'\n : 'flex items-start gap-3 rounded-[10px] border border-border bg-background p-3'\n : hasDescription\n ? 'flex items-start gap-3'\n : 'flex items-center gap-3',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n (click)=\"onToggle()\"\n>\n <span\n [ngClass]=\"[\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-[6px] border shadow-sm',\n checked ? 'border-foreground bg-foreground text-background' : 'border-input bg-background text-transparent'\n ]\"\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 16 16\" class=\"h-3 w-3\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 8.5L6.4 12L13 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"['min-w-0 flex-1', hasDescription ? 'flex flex-col gap-2' : 'flex items-center']\">\n <span class=\"text-[14px] font-medium leading-5 text-foreground\">{{ label }}</span>\n <span *ngIf=\"hasDescription\" class=\"text-[14px] leading-5 text-muted-foreground\">{{ description }}</span>\n </span>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
778
+ PdmCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCheckboxComponent, selector: "pdm-checkbox", inputs: { id: "id", checked: "checked", disabled: "disabled", variant: "variant", label: "label", description: "description", className: "className" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"id || null\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'w-full border-0 bg-transparent p-0 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n variant === 'card'\n ? checked\n ? 'flex items-start gap-3 rounded-lg border border-primary bg-muted p-4'\n : 'flex items-start gap-3 rounded-lg border border-border bg-background p-4'\n : hasDescription\n ? 'flex items-start gap-3'\n : 'flex items-center gap-3',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n (click)=\"onToggle()\"\n>\n <span\n [ngClass]=\"[\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border shadow-sm',\n checked ? 'border-primary bg-primary text-primary-foreground' : 'border-input bg-background text-transparent'\n ]\"\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 16 16\" class=\"h-3 w-3\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 8.5L6.4 12L13 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"['min-w-0 flex-1', hasDescription ? 'flex flex-col gap-2' : 'flex items-center']\">\n <span class=\"text-sm font-medium text-foreground\">{{ label }}</span>\n <span *ngIf=\"hasDescription\" class=\"text-sm text-muted-foreground\">{{ description }}</span>\n </span>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
779
779
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCheckboxComponent, decorators: [{
780
780
  type: Component,
781
- args: [{ selector: 'pdm-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"id || null\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'w-full border-0 bg-transparent p-0 text-left outline-none focus:outline-none focus-visible:outline-none',\n variant === 'card'\n ? checked\n ? 'flex items-start gap-3 rounded-[10px] border border-foreground bg-muted p-3'\n : 'flex items-start gap-3 rounded-[10px] border border-border bg-background p-3'\n : hasDescription\n ? 'flex items-start gap-3'\n : 'flex items-center gap-3',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n (click)=\"onToggle()\"\n>\n <span\n [ngClass]=\"[\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-[6px] border shadow-sm',\n checked ? 'border-foreground bg-foreground text-background' : 'border-input bg-background text-transparent'\n ]\"\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 16 16\" class=\"h-3 w-3\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 8.5L6.4 12L13 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"['min-w-0 flex-1', hasDescription ? 'flex flex-col gap-2' : 'flex items-center']\">\n <span class=\"text-[14px] font-medium leading-5 text-foreground\">{{ label }}</span>\n <span *ngIf=\"hasDescription\" class=\"text-[14px] leading-5 text-muted-foreground\">{{ description }}</span>\n </span>\n</button>\n" }]
781
+ args: [{ selector: 'pdm-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"id || null\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'w-full border-0 bg-transparent p-0 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n variant === 'card'\n ? checked\n ? 'flex items-start gap-3 rounded-lg border border-primary bg-muted p-4'\n : 'flex items-start gap-3 rounded-lg border border-border bg-background p-4'\n : hasDescription\n ? 'flex items-start gap-3'\n : 'flex items-center gap-3',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n (click)=\"onToggle()\"\n>\n <span\n [ngClass]=\"[\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border shadow-sm',\n checked ? 'border-primary bg-primary text-primary-foreground' : 'border-input bg-background text-transparent'\n ]\"\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 16 16\" class=\"h-3 w-3\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 8.5L6.4 12L13 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"['min-w-0 flex-1', hasDescription ? 'flex flex-col gap-2' : 'flex items-center']\">\n <span class=\"text-sm font-medium text-foreground\">{{ label }}</span>\n <span *ngIf=\"hasDescription\" class=\"text-sm text-muted-foreground\">{{ description }}</span>\n </span>\n</button>\n" }]
782
782
  }], propDecorators: { id: [{
783
783
  type: Input
784
784
  }], checked: [{
@@ -819,10 +819,10 @@ class PdmCollapsibleComponent {
819
819
  }
820
820
  }
821
821
  PdmCollapsibleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCollapsibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
822
- PdmCollapsibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCollapsibleComponent, selector: "pdm-collapsible", inputs: { title: "title", open: "open", disabled: "disabled", items: "items", className: "className" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<div [ngClass]=\"['flex w-[350px] flex-col gap-2', className]\">\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"flex w-full items-center justify-between px-4 text-left\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]\">{{ title }}</span>\n <span class=\"inline-flex h-8 w-8 items-center justify-center text-[hsl(var(--foreground))]\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n </button>\n\n <div class=\"flex w-full flex-col gap-2\">\n <div\n *ngFor=\"let item of visibleItems\"\n class=\"w-full rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 py-2\"\n >\n <span class=\"font-mono text-[14px] leading-5 text-[hsl(var(--foreground))]\">{{ item }}</span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
822
+ PdmCollapsibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCollapsibleComponent, selector: "pdm-collapsible", inputs: { title: "title", open: "open", disabled: "disabled", items: "items", className: "className" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<div [ngClass]=\"['flex w-full max-w-sm flex-col gap-2', className]\">\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"flex w-full items-center justify-between rounded-md px-4 py-2 text-left text-sm font-medium text-foreground hover:bg-accent ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span>{{ title }}</span>\n <span class=\"inline-flex h-8 w-8 items-center justify-center text-foreground\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n </button>\n\n <div class=\"flex w-full flex-col gap-2\">\n <div\n *ngFor=\"let item of visibleItems\"\n class=\"w-full rounded-md border border-border bg-background px-4 py-2\"\n >\n <span class=\"font-mono text-sm text-foreground\">{{ item }}</span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
823
823
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCollapsibleComponent, decorators: [{
824
824
  type: Component,
825
- args: [{ selector: 'pdm-collapsible', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex w-[350px] flex-col gap-2', className]\">\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"flex w-full items-center justify-between px-4 text-left\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]\">{{ title }}</span>\n <span class=\"inline-flex h-8 w-8 items-center justify-center text-[hsl(var(--foreground))]\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n </button>\n\n <div class=\"flex w-full flex-col gap-2\">\n <div\n *ngFor=\"let item of visibleItems\"\n class=\"w-full rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 py-2\"\n >\n <span class=\"font-mono text-[14px] leading-5 text-[hsl(var(--foreground))]\">{{ item }}</span>\n </div>\n </div>\n</div>\n" }]
825
+ args: [{ selector: 'pdm-collapsible', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex w-full max-w-sm flex-col gap-2', className]\">\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"flex w-full items-center justify-between rounded-md px-4 py-2 text-left text-sm font-medium text-foreground hover:bg-accent ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span>{{ title }}</span>\n <span class=\"inline-flex h-8 w-8 items-center justify-center text-foreground\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n </button>\n\n <div class=\"flex w-full flex-col gap-2\">\n <div\n *ngFor=\"let item of visibleItems\"\n class=\"w-full rounded-md border border-border bg-background px-4 py-2\"\n >\n <span class=\"font-mono text-sm text-foreground\">{{ item }}</span>\n </div>\n </div>\n</div>\n" }]
826
826
  }], propDecorators: { title: [{
827
827
  type: Input
828
828
  }], open: [{
@@ -861,10 +861,10 @@ class PdmComboboxComponent {
861
861
  }
862
862
  }
863
863
  PdmComboboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
864
- PdmComboboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmComboboxComponent, selector: "pdm-combobox", inputs: { open: "open", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", className: "className", options: "options", value: "value", width: "width" }, outputs: { openChange: "openChange", valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['flex flex-col gap-1', className]\" [style.width.px]=\"width\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center gap-2 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-2 shadow-sm\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"min-w-0 flex-1 truncate text-left text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ selectedLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div\n *ngIf=\"open\"\n class=\"w-full rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-md\"\n >\n <div class=\"flex items-center gap-2 border-b border-[hsl(var(--border))] px-3\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--muted-foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <div class=\"h-9 flex-1 py-2 text-[14px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ searchPlaceholder }}</div>\n </div>\n\n <div class=\"p-1\">\n <button\n *ngFor=\"let option of options\"\n type=\"button\"\n class=\"flex w-full items-center gap-2 rounded-[4px] px-2 py-[6px] text-left\"\n [ngClass]=\"option === value ? 'bg-[hsl(var(--muted))]' : ''\"\n (click)=\"select(option)\"\n >\n <span [ngClass]=\"['min-w-0 flex-1 truncate text-[14px] leading-5', option === value ? 'text-[hsl(var(--foreground))]' : 'text-[hsl(var(--foreground))]']\">{{ option }}</span>\n <svg *ngIf=\"option === value\" viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
864
+ PdmComboboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmComboboxComponent, selector: "pdm-combobox", inputs: { open: "open", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", className: "className", options: "options", value: "value", width: "width" }, outputs: { openChange: "openChange", valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['flex flex-col gap-1', className]\" [style.width.px]=\"width\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"min-w-0 flex-1 truncate text-left text-sm font-medium text-foreground\">{{ selectedLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div\n *ngIf=\"open\"\n class=\"w-full rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md\"\n >\n <div class=\"flex items-center gap-2 border-b border-border px-3\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-muted-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <div class=\"h-9 flex-1 py-2 text-sm text-muted-foreground\">{{ searchPlaceholder }}</div>\n </div>\n\n <div class=\"p-1\">\n <button\n *ngFor=\"let option of options\"\n type=\"button\"\n class=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground\"\n [ngClass]=\"option === value ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"select(option)\"\n >\n <span class=\"min-w-0 flex-1 truncate\">{{ option }}</span>\n <svg *ngIf=\"option === value\" viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
865
865
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmComboboxComponent, decorators: [{
866
866
  type: Component,
867
- args: [{ selector: 'pdm-combobox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex flex-col gap-1', className]\" [style.width.px]=\"width\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center gap-2 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-2 shadow-sm\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"min-w-0 flex-1 truncate text-left text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ selectedLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div\n *ngIf=\"open\"\n class=\"w-full rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-md\"\n >\n <div class=\"flex items-center gap-2 border-b border-[hsl(var(--border))] px-3\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--muted-foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <div class=\"h-9 flex-1 py-2 text-[14px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ searchPlaceholder }}</div>\n </div>\n\n <div class=\"p-1\">\n <button\n *ngFor=\"let option of options\"\n type=\"button\"\n class=\"flex w-full items-center gap-2 rounded-[4px] px-2 py-[6px] text-left\"\n [ngClass]=\"option === value ? 'bg-[hsl(var(--muted))]' : ''\"\n (click)=\"select(option)\"\n >\n <span [ngClass]=\"['min-w-0 flex-1 truncate text-[14px] leading-5', option === value ? 'text-[hsl(var(--foreground))]' : 'text-[hsl(var(--foreground))]']\">{{ option }}</span>\n <svg *ngIf=\"option === value\" viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n </div>\n</div>\n" }]
867
+ args: [{ selector: 'pdm-combobox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex flex-col gap-1', className]\" [style.width.px]=\"width\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"min-w-0 flex-1 truncate text-left text-sm font-medium text-foreground\">{{ selectedLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div\n *ngIf=\"open\"\n class=\"w-full rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md\"\n >\n <div class=\"flex items-center gap-2 border-b border-border px-3\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-muted-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <div class=\"h-9 flex-1 py-2 text-sm text-muted-foreground\">{{ searchPlaceholder }}</div>\n </div>\n\n <div class=\"p-1\">\n <button\n *ngFor=\"let option of options\"\n type=\"button\"\n class=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground\"\n [ngClass]=\"option === value ? 'bg-accent text-accent-foreground' : ''\"\n (click)=\"select(option)\"\n >\n <span class=\"min-w-0 flex-1 truncate\">{{ option }}</span>\n <svg *ngIf=\"option === value\" viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n </div>\n</div>\n" }]
868
868
  }], propDecorators: { open: [{
869
869
  type: Input
870
870
  }], placeholder: [{
@@ -1025,10 +1025,10 @@ class PdmCommandComponent {
1025
1025
  }
1026
1026
  }
1027
1027
  PdmCommandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCommandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1028
- PdmCommandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCommandComponent, selector: "pdm-command", inputs: { open: "open", hintLabel: "hintLabel", hintKey: "hintKey", placeholder: "placeholder", emptyMessage: "emptyMessage", items: "items", className: "className" }, outputs: { itemSelect: "itemSelect", openChange: "openChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngIf=\"!open\" class=\"flex items-center gap-1\">\n <span class=\"text-[14px] font-medium leading-5 text-[hsl(var(--muted-foreground))]\">{{ hintLabel }}</span>\n <button\n type=\"button\"\n class=\"inline-flex h-5 items-center gap-0.5 rounded-[6px] border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-1.5\"\n (click)=\"toggleOpen()\"\n >\n <pdm-icon name=\"command\" [size]=\"12\" className=\"text-[hsl(var(--muted-foreground))]\" [decorative]=\"true\"></pdm-icon>\n <span class=\"text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ hintKey }}</span>\n </button>\n </div>\n\n <section\n *ngIf=\"open\"\n class=\"flex w-full flex-col overflow-hidden rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-md\"\n >\n <div class=\"flex items-center gap-2 border-b border-[hsl(var(--border))] px-3\">\n <pdm-icon name=\"search\" [size]=\"16\" className=\"text-[hsl(var(--muted-foreground))]\" [decorative]=\"true\"></pdm-icon>\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n [value]=\"query\"\n (input)=\"onQueryChange($event)\"\n class=\"h-10 w-full bg-transparent py-3 text-[14px] leading-5 text-[hsl(var(--foreground))] outline-none placeholder:text-[hsl(var(--muted-foreground))]\"\n />\n </div>\n\n <div class=\"max-h-[300px] overflow-y-auto p-1\">\n <ng-container *ngFor=\"let group of groupedItems; let groupIndex = index\">\n <div *ngIf=\"group.name\" class=\"px-2 py-[6px] text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ group.name }}</div>\n <button\n *ngFor=\"let item of group.items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex w-full items-center gap-2 rounded-[6px] px-2 py-[6px] text-left\"\n [ngClass]=\"[\n item.disabled ? 'opacity-50' : '',\n item.label === 'Calendar' ? 'bg-[hsl(var(--muted))]' : ''\n ]\"\n (click)=\"select(item.value)\"\n >\n <span class=\"inline-flex h-4 w-4 items-center justify-center text-[hsl(var(--foreground))]\">\n <pdm-icon *ngIf=\"item.icon\" [name]=\"item.icon\" [size]=\"16\" [decorative]=\"true\"></pdm-icon>\n </span>\n <span class=\"min-w-0 flex-1 text-[14px] leading-5 text-[hsl(var(--foreground))]\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ item.shortcut }}</span>\n </button>\n <div *ngIf=\"groupIndex === 0 && groupedItems.length > 1\" class=\"my-1 border-t border-[hsl(var(--border))]\"></div>\n </ng-container>\n\n <p *ngIf=\"filteredItems.length === 0\" class=\"py-6 text-center text-[14px] text-[hsl(var(--muted-foreground))]\">{{ emptyMessage }}</p>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1028
+ PdmCommandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCommandComponent, selector: "pdm-command", inputs: { open: "open", hintLabel: "hintLabel", hintKey: "hintKey", placeholder: "placeholder", emptyMessage: "emptyMessage", items: "items", className: "className" }, outputs: { itemSelect: "itemSelect", openChange: "openChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngIf=\"!open\" class=\"flex items-center gap-1\">\n <span class=\"text-sm font-medium text-muted-foreground\">{{ hintLabel }}</span>\n <button\n type=\"button\"\n class=\"inline-flex h-5 items-center gap-0.5 rounded-sm border border-border bg-muted px-1.5\"\n (click)=\"toggleOpen()\"\n >\n <pdm-icon name=\"command\" [size]=\"12\" className=\"text-muted-foreground\" [decorative]=\"true\"></pdm-icon>\n <span class=\"text-xs text-muted-foreground\">{{ hintKey }}</span>\n </button>\n </div>\n\n <section\n *ngIf=\"open\"\n class=\"flex w-full flex-col overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-md\"\n >\n <div class=\"flex items-center gap-2 border-b border-border px-3\">\n <pdm-icon name=\"search\" [size]=\"16\" className=\"text-muted-foreground\" [decorative]=\"true\"></pdm-icon>\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n [value]=\"query\"\n (input)=\"onQueryChange($event)\"\n class=\"h-10 w-full bg-transparent py-3 text-sm text-foreground outline-none placeholder:text-muted-foreground\"\n />\n </div>\n\n <div class=\"max-h-72 overflow-y-auto p-1\">\n <ng-container *ngFor=\"let group of groupedItems; let groupIndex = index\">\n <div *ngIf=\"group.name\" class=\"px-2 py-1.5 text-xs text-muted-foreground\">{{ group.name }}</div>\n <button\n *ngFor=\"let item of group.items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground\"\n [ngClass]=\"[\n item.disabled ? 'opacity-50' : '',\n item.label === 'Calendar' ? 'bg-accent text-accent-foreground' : ''\n ]\"\n (click)=\"select(item.value)\"\n >\n <span class=\"inline-flex h-4 w-4 items-center justify-center text-foreground\">\n <pdm-icon *ngIf=\"item.icon\" [name]=\"item.icon\" [size]=\"16\" [decorative]=\"true\"></pdm-icon>\n </span>\n <span class=\"min-w-0 flex-1 text-foreground\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-xs text-muted-foreground\">{{ item.shortcut }}</span>\n </button>\n <div *ngIf=\"groupIndex === 0 && groupedItems.length > 1\" class=\"my-1 border-t border-border\"></div>\n </ng-container>\n\n <p *ngIf=\"filteredItems.length === 0\" class=\"py-6 text-center text-sm text-muted-foreground\">{{ emptyMessage }}</p>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1029
1029
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCommandComponent, decorators: [{
1030
1030
  type: Component,
1031
- args: [{ selector: 'pdm-command', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngIf=\"!open\" class=\"flex items-center gap-1\">\n <span class=\"text-[14px] font-medium leading-5 text-[hsl(var(--muted-foreground))]\">{{ hintLabel }}</span>\n <button\n type=\"button\"\n class=\"inline-flex h-5 items-center gap-0.5 rounded-[6px] border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-1.5\"\n (click)=\"toggleOpen()\"\n >\n <pdm-icon name=\"command\" [size]=\"12\" className=\"text-[hsl(var(--muted-foreground))]\" [decorative]=\"true\"></pdm-icon>\n <span class=\"text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ hintKey }}</span>\n </button>\n </div>\n\n <section\n *ngIf=\"open\"\n class=\"flex w-full flex-col overflow-hidden rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-md\"\n >\n <div class=\"flex items-center gap-2 border-b border-[hsl(var(--border))] px-3\">\n <pdm-icon name=\"search\" [size]=\"16\" className=\"text-[hsl(var(--muted-foreground))]\" [decorative]=\"true\"></pdm-icon>\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n [value]=\"query\"\n (input)=\"onQueryChange($event)\"\n class=\"h-10 w-full bg-transparent py-3 text-[14px] leading-5 text-[hsl(var(--foreground))] outline-none placeholder:text-[hsl(var(--muted-foreground))]\"\n />\n </div>\n\n <div class=\"max-h-[300px] overflow-y-auto p-1\">\n <ng-container *ngFor=\"let group of groupedItems; let groupIndex = index\">\n <div *ngIf=\"group.name\" class=\"px-2 py-[6px] text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ group.name }}</div>\n <button\n *ngFor=\"let item of group.items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex w-full items-center gap-2 rounded-[6px] px-2 py-[6px] text-left\"\n [ngClass]=\"[\n item.disabled ? 'opacity-50' : '',\n item.label === 'Calendar' ? 'bg-[hsl(var(--muted))]' : ''\n ]\"\n (click)=\"select(item.value)\"\n >\n <span class=\"inline-flex h-4 w-4 items-center justify-center text-[hsl(var(--foreground))]\">\n <pdm-icon *ngIf=\"item.icon\" [name]=\"item.icon\" [size]=\"16\" [decorative]=\"true\"></pdm-icon>\n </span>\n <span class=\"min-w-0 flex-1 text-[14px] leading-5 text-[hsl(var(--foreground))]\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ item.shortcut }}</span>\n </button>\n <div *ngIf=\"groupIndex === 0 && groupedItems.length > 1\" class=\"my-1 border-t border-[hsl(var(--border))]\"></div>\n </ng-container>\n\n <p *ngIf=\"filteredItems.length === 0\" class=\"py-6 text-center text-[14px] text-[hsl(var(--muted-foreground))]\">{{ emptyMessage }}</p>\n </div>\n </section>\n</div>\n" }]
1031
+ args: [{ selector: 'pdm-command', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngIf=\"!open\" class=\"flex items-center gap-1\">\n <span class=\"text-sm font-medium text-muted-foreground\">{{ hintLabel }}</span>\n <button\n type=\"button\"\n class=\"inline-flex h-5 items-center gap-0.5 rounded-sm border border-border bg-muted px-1.5\"\n (click)=\"toggleOpen()\"\n >\n <pdm-icon name=\"command\" [size]=\"12\" className=\"text-muted-foreground\" [decorative]=\"true\"></pdm-icon>\n <span class=\"text-xs text-muted-foreground\">{{ hintKey }}</span>\n </button>\n </div>\n\n <section\n *ngIf=\"open\"\n class=\"flex w-full flex-col overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-md\"\n >\n <div class=\"flex items-center gap-2 border-b border-border px-3\">\n <pdm-icon name=\"search\" [size]=\"16\" className=\"text-muted-foreground\" [decorative]=\"true\"></pdm-icon>\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n [value]=\"query\"\n (input)=\"onQueryChange($event)\"\n class=\"h-10 w-full bg-transparent py-3 text-sm text-foreground outline-none placeholder:text-muted-foreground\"\n />\n </div>\n\n <div class=\"max-h-72 overflow-y-auto p-1\">\n <ng-container *ngFor=\"let group of groupedItems; let groupIndex = index\">\n <div *ngIf=\"group.name\" class=\"px-2 py-1.5 text-xs text-muted-foreground\">{{ group.name }}</div>\n <button\n *ngFor=\"let item of group.items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground\"\n [ngClass]=\"[\n item.disabled ? 'opacity-50' : '',\n item.label === 'Calendar' ? 'bg-accent text-accent-foreground' : ''\n ]\"\n (click)=\"select(item.value)\"\n >\n <span class=\"inline-flex h-4 w-4 items-center justify-center text-foreground\">\n <pdm-icon *ngIf=\"item.icon\" [name]=\"item.icon\" [size]=\"16\" [decorative]=\"true\"></pdm-icon>\n </span>\n <span class=\"min-w-0 flex-1 text-foreground\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-xs text-muted-foreground\">{{ item.shortcut }}</span>\n </button>\n <div *ngIf=\"groupIndex === 0 && groupedItems.length > 1\" class=\"my-1 border-t border-border\"></div>\n </ng-container>\n\n <p *ngIf=\"filteredItems.length === 0\" class=\"py-6 text-center text-sm text-muted-foreground\">{{ emptyMessage }}</p>\n </div>\n </section>\n</div>\n" }]
1032
1032
  }], propDecorators: { open: [{
1033
1033
  type: Input
1034
1034
  }], hintLabel: [{
@@ -1100,10 +1100,10 @@ class PdmContextMenuComponent {
1100
1100
  }
1101
1101
  }
1102
1102
  PdmContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1103
- PdmContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmContextMenuComponent, selector: "pdm-context-menu", inputs: { items: "items", className: "className", triggerLabel: "triggerLabel", width: "width", height: "height" }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative\" [ngClass]=\"className\" (contextmenu)=\"onContextMenu($event)\">\n <div\n class=\"flex items-center justify-center rounded-[8px] border border-dashed border-[hsl(var(--border))]\"\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n >\n <span class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ triggerLabel }}</span>\n </div>\n\n <div\n *ngIf=\"open\"\n class=\"fixed z-50 w-[208px] rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-md\"\n [style.left.px]=\"x + 4\"\n [style.top.px]=\"y + 2\"\n >\n <div class=\"px-1 pt-1\">\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"item.type === 'separator'\" class=\"my-1 border-t border-[hsl(var(--border))]\"></div>\n\n <div *ngIf=\"item.type === 'label'\" class=\"h-8 px-8 py-[6px] text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]\">\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex h-8 w-full items-center rounded-[6px] py-[6px] pr-2 text-left disabled:opacity-50\"\n [ngClass]=\"item.inset ? 'pl-8' : 'px-2'\"\n (click)=\"select(item)\"\n >\n <span class=\"mr-2 inline-flex w-4 shrink-0 items-center justify-center text-[hsl(var(--foreground))]\">\n <svg *ngIf=\"item.checked\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.selectedDot\" class=\"h-2 w-2 rounded-full bg-[hsl(var(--foreground))]\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate text-[14px] leading-5 text-[hsl(var(--foreground))]\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ item.shortcut }}</span>\n <svg *ngIf=\"item.showChevron\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1103
+ PdmContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmContextMenuComponent, selector: "pdm-context-menu", inputs: { items: "items", className: "className", triggerLabel: "triggerLabel", width: "width", height: "height" }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative\" [ngClass]=\"className\" (contextmenu)=\"onContextMenu($event)\">\n <div\n class=\"flex items-center justify-center rounded-md border border-dashed border-border\"\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n >\n <span class=\"text-sm font-medium text-foreground\">{{ triggerLabel }}</span>\n </div>\n\n <div\n *ngIf=\"open\"\n class=\"fixed z-50 w-52 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md\"\n [style.left.px]=\"x + 4\"\n [style.top.px]=\"y + 2\"\n >\n <div>\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"item.type === 'separator'\" class=\"-mx-1 my-1 h-px bg-muted\"></div>\n\n <div *ngIf=\"item.type === 'label'\" class=\"px-2 py-1.5 text-sm font-semibold text-foreground\">\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pr-2 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n [ngClass]=\"item.inset ? 'pl-8' : 'px-2'\"\n (click)=\"select(item)\"\n >\n <span class=\"mr-2 inline-flex w-4 shrink-0 items-center justify-center text-foreground\">\n <svg *ngIf=\"item.checked\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.selectedDot\" class=\"h-2 w-2 rounded-full bg-foreground\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate text-foreground\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-xs text-muted-foreground\">{{ item.shortcut }}</span>\n <svg *ngIf=\"item.showChevron\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5 text-muted-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1104
1104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmContextMenuComponent, decorators: [{
1105
1105
  type: Component,
1106
- args: [{ selector: 'pdm-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\" [ngClass]=\"className\" (contextmenu)=\"onContextMenu($event)\">\n <div\n class=\"flex items-center justify-center rounded-[8px] border border-dashed border-[hsl(var(--border))]\"\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n >\n <span class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ triggerLabel }}</span>\n </div>\n\n <div\n *ngIf=\"open\"\n class=\"fixed z-50 w-[208px] rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] shadow-md\"\n [style.left.px]=\"x + 4\"\n [style.top.px]=\"y + 2\"\n >\n <div class=\"px-1 pt-1\">\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"item.type === 'separator'\" class=\"my-1 border-t border-[hsl(var(--border))]\"></div>\n\n <div *ngIf=\"item.type === 'label'\" class=\"h-8 px-8 py-[6px] text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]\">\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex h-8 w-full items-center rounded-[6px] py-[6px] pr-2 text-left disabled:opacity-50\"\n [ngClass]=\"item.inset ? 'pl-8' : 'px-2'\"\n (click)=\"select(item)\"\n >\n <span class=\"mr-2 inline-flex w-4 shrink-0 items-center justify-center text-[hsl(var(--foreground))]\">\n <svg *ngIf=\"item.checked\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.selectedDot\" class=\"h-2 w-2 rounded-full bg-[hsl(var(--foreground))]\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate text-[14px] leading-5 text-[hsl(var(--foreground))]\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ item.shortcut }}</span>\n <svg *ngIf=\"item.showChevron\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
1106
+ args: [{ selector: 'pdm-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\" [ngClass]=\"className\" (contextmenu)=\"onContextMenu($event)\">\n <div\n class=\"flex items-center justify-center rounded-md border border-dashed border-border\"\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n >\n <span class=\"text-sm font-medium text-foreground\">{{ triggerLabel }}</span>\n </div>\n\n <div\n *ngIf=\"open\"\n class=\"fixed z-50 w-52 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md\"\n [style.left.px]=\"x + 4\"\n [style.top.px]=\"y + 2\"\n >\n <div>\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"item.type === 'separator'\" class=\"-mx-1 my-1 h-px bg-muted\"></div>\n\n <div *ngIf=\"item.type === 'label'\" class=\"px-2 py-1.5 text-sm font-semibold text-foreground\">\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pr-2 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n [ngClass]=\"item.inset ? 'pl-8' : 'px-2'\"\n (click)=\"select(item)\"\n >\n <span class=\"mr-2 inline-flex w-4 shrink-0 items-center justify-center text-foreground\">\n <svg *ngIf=\"item.checked\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.selectedDot\" class=\"h-2 w-2 rounded-full bg-foreground\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate text-foreground\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-xs text-muted-foreground\">{{ item.shortcut }}</span>\n <svg *ngIf=\"item.showChevron\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5 text-muted-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
1107
1107
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { items: [{
1108
1108
  type: Input
1109
1109
  }], className: [{
@@ -1182,10 +1182,10 @@ class PdmDataTableComponent {
1182
1182
  }
1183
1183
  }
1184
1184
  PdmDataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1185
- PdmDataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDataTableComponent, selector: "pdm-data-table", inputs: { className: "className", filterPlaceholder: "filterPlaceholder", columnsLabel: "columnsLabel", rows: "rows", page: "page", pageSize: "pageSize", query: "query" }, outputs: { queryChange: "queryChange", rowAction: "rowAction", pageChange: "pageChange", selectionChange: "selectionChange" }, ngImport: i0, template: "<section [ngClass]=\"['flex w-[590px] flex-col items-end', className]\">\n <div class=\"flex w-full items-center justify-between py-4\">\n <input\n type=\"text\"\n [placeholder]=\"filterPlaceholder\"\n [value]=\"query\"\n (input)=\"onQueryInput($event)\"\n class=\"h-9 w-[384px] rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--foreground))] shadow-sm placeholder:text-[hsl(var(--muted-foreground))] outline-none\"\n />\n\n <button type=\"button\" class=\"inline-flex h-9 items-center gap-2 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-2 shadow-sm\">\n <span class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ columnsLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div class=\"w-full overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))]\">\n <table class=\"w-full border-collapse text-[14px] leading-5 text-[hsl(var(--foreground))]\">\n <thead>\n <tr class=\"border-b border-[hsl(var(--border))]\">\n <th class=\"w-[32px] px-2 text-left font-medium\"><input type=\"checkbox\" class=\"h-4 w-4 rounded-[4px] border border-[hsl(var(--border))]\" /></th>\n <th class=\"w-[120px] px-2 py-2 text-left font-medium\">Status</th>\n <th class=\"w-[270px] px-2 py-2 text-left font-medium\">\n <button type=\"button\" class=\"inline-flex items-center gap-1 rounded-[6px] px-3 py-2\">\n <span>Email</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 6L4 10L8 14M16 18L20 14L16 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </th>\n <th class=\"w-[100px] px-2 py-2 text-right font-medium\">Amount</th>\n <th class=\"px-2 py-2\"></th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let row of pagedRows\" class=\"border-b border-[hsl(var(--border))] last:border-b-0\">\n <td class=\"px-2 py-2\"><input type=\"checkbox\" [checked]=\"row.selected\" (change)=\"onToggleRow(row, $event)\" class=\"h-4 w-4 rounded-[4px] border border-[hsl(var(--border))]\" /></td>\n <td class=\"px-2 py-2\">{{ row.status }}</td>\n <td class=\"px-2 py-2\">{{ row.email }}</td>\n <td class=\"px-2 py-2 text-right\">{{ row.amount }}</td>\n <td class=\"px-2 py-2\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center\" (click)=\"onAction(row)\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </svg>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"flex w-full items-center gap-2 py-4\">\n <p class=\"flex-1 pr-2 text-[14px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ selectedCount }} of {{ rows.length }} row(s) selected.</p>\n <button type=\"button\" class=\"h-9 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"previous()\">Previous</button>\n <button type=\"button\" class=\"h-9 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm disabled:opacity-50\" [disabled]=\"page >= totalPages\" (click)=\"next()\">Next</button>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1185
+ PdmDataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDataTableComponent, selector: "pdm-data-table", inputs: { className: "className", filterPlaceholder: "filterPlaceholder", columnsLabel: "columnsLabel", rows: "rows", page: "page", pageSize: "pageSize", query: "query" }, outputs: { queryChange: "queryChange", rowAction: "rowAction", pageChange: "pageChange", selectionChange: "selectionChange" }, ngImport: i0, template: "<section [ngClass]=\"['flex w-full max-w-3xl flex-col items-end', className]\">\n <div class=\"flex w-full items-center justify-between py-4\">\n <input\n type=\"text\"\n [placeholder]=\"filterPlaceholder\"\n [value]=\"query\"\n (input)=\"onQueryInput($event)\"\n class=\"h-9 flex-1 rounded-md border border-input bg-transparent px-3 py-1 text-sm text-foreground shadow-sm placeholder:text-muted-foreground outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n />\n\n <button type=\"button\" class=\"inline-flex h-9 items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm font-medium text-foreground shadow-sm\">\n <span>{{ columnsLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div class=\"w-full overflow-hidden rounded-md border border-border bg-background\">\n <table class=\"w-full border-collapse text-sm text-foreground\">\n <thead>\n <tr class=\"border-b border-border\">\n <th class=\"w-10 px-2 text-left font-medium\"><input type=\"checkbox\" class=\"h-4 w-4 rounded-sm border border-input\" /></th>\n <th class=\"w-32 px-2 py-2 text-left font-medium\">Status</th>\n <th class=\"px-2 py-2 text-left font-medium\">\n <button type=\"button\" class=\"inline-flex items-center gap-1 rounded-sm px-3 py-2 text-sm\">\n <span>Email</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 6L4 10L8 14M16 18L20 14L16 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </th>\n <th class=\"w-24 px-2 py-2 text-right font-medium\">Amount</th>\n <th class=\"px-2 py-2\"></th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let row of pagedRows\" class=\"border-b border-border last:border-b-0\">\n <td class=\"px-2 py-2\"><input type=\"checkbox\" [checked]=\"row.selected\" (change)=\"onToggleRow(row, $event)\" class=\"h-4 w-4 rounded-sm border border-input\" /></td>\n <td class=\"px-2 py-2\">{{ row.status }}</td>\n <td class=\"px-2 py-2\">{{ row.email }}</td>\n <td class=\"px-2 py-2 text-right\">{{ row.amount }}</td>\n <td class=\"px-2 py-2\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center\" (click)=\"onAction(row)\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </svg>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"flex w-full items-center gap-2 py-4\">\n <p class=\"flex-1 pr-2 text-sm text-muted-foreground\">{{ selectedCount }} of {{ rows.length }} row(s) selected.</p>\n <button type=\"button\" class=\"h-9 rounded-md border border-input bg-background px-4 text-sm font-medium text-foreground shadow-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"previous()\">Previous</button>\n <button type=\"button\" class=\"h-9 rounded-md border border-input bg-background px-4 text-sm font-medium text-foreground shadow-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50\" [disabled]=\"page >= totalPages\" (click)=\"next()\">Next</button>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1186
1186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDataTableComponent, decorators: [{
1187
1187
  type: Component,
1188
- args: [{ selector: 'pdm-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex w-[590px] flex-col items-end', className]\">\n <div class=\"flex w-full items-center justify-between py-4\">\n <input\n type=\"text\"\n [placeholder]=\"filterPlaceholder\"\n [value]=\"query\"\n (input)=\"onQueryInput($event)\"\n class=\"h-9 w-[384px] rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--foreground))] shadow-sm placeholder:text-[hsl(var(--muted-foreground))] outline-none\"\n />\n\n <button type=\"button\" class=\"inline-flex h-9 items-center gap-2 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-2 shadow-sm\">\n <span class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ columnsLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div class=\"w-full overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))]\">\n <table class=\"w-full border-collapse text-[14px] leading-5 text-[hsl(var(--foreground))]\">\n <thead>\n <tr class=\"border-b border-[hsl(var(--border))]\">\n <th class=\"w-[32px] px-2 text-left font-medium\"><input type=\"checkbox\" class=\"h-4 w-4 rounded-[4px] border border-[hsl(var(--border))]\" /></th>\n <th class=\"w-[120px] px-2 py-2 text-left font-medium\">Status</th>\n <th class=\"w-[270px] px-2 py-2 text-left font-medium\">\n <button type=\"button\" class=\"inline-flex items-center gap-1 rounded-[6px] px-3 py-2\">\n <span>Email</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 6L4 10L8 14M16 18L20 14L16 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </th>\n <th class=\"w-[100px] px-2 py-2 text-right font-medium\">Amount</th>\n <th class=\"px-2 py-2\"></th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let row of pagedRows\" class=\"border-b border-[hsl(var(--border))] last:border-b-0\">\n <td class=\"px-2 py-2\"><input type=\"checkbox\" [checked]=\"row.selected\" (change)=\"onToggleRow(row, $event)\" class=\"h-4 w-4 rounded-[4px] border border-[hsl(var(--border))]\" /></td>\n <td class=\"px-2 py-2\">{{ row.status }}</td>\n <td class=\"px-2 py-2\">{{ row.email }}</td>\n <td class=\"px-2 py-2 text-right\">{{ row.amount }}</td>\n <td class=\"px-2 py-2\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center\" (click)=\"onAction(row)\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </svg>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"flex w-full items-center gap-2 py-4\">\n <p class=\"flex-1 pr-2 text-[14px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ selectedCount }} of {{ rows.length }} row(s) selected.</p>\n <button type=\"button\" class=\"h-9 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"previous()\">Previous</button>\n <button type=\"button\" class=\"h-9 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm disabled:opacity-50\" [disabled]=\"page >= totalPages\" (click)=\"next()\">Next</button>\n </div>\n</section>\n" }]
1188
+ args: [{ selector: 'pdm-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex w-full max-w-3xl flex-col items-end', className]\">\n <div class=\"flex w-full items-center justify-between py-4\">\n <input\n type=\"text\"\n [placeholder]=\"filterPlaceholder\"\n [value]=\"query\"\n (input)=\"onQueryInput($event)\"\n class=\"h-9 flex-1 rounded-md border border-input bg-transparent px-3 py-1 text-sm text-foreground shadow-sm placeholder:text-muted-foreground outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n />\n\n <button type=\"button\" class=\"inline-flex h-9 items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm font-medium text-foreground shadow-sm\">\n <span>{{ columnsLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div class=\"w-full overflow-hidden rounded-md border border-border bg-background\">\n <table class=\"w-full border-collapse text-sm text-foreground\">\n <thead>\n <tr class=\"border-b border-border\">\n <th class=\"w-10 px-2 text-left font-medium\"><input type=\"checkbox\" class=\"h-4 w-4 rounded-sm border border-input\" /></th>\n <th class=\"w-32 px-2 py-2 text-left font-medium\">Status</th>\n <th class=\"px-2 py-2 text-left font-medium\">\n <button type=\"button\" class=\"inline-flex items-center gap-1 rounded-sm px-3 py-2 text-sm\">\n <span>Email</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 6L4 10L8 14M16 18L20 14L16 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </th>\n <th class=\"w-24 px-2 py-2 text-right font-medium\">Amount</th>\n <th class=\"px-2 py-2\"></th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let row of pagedRows\" class=\"border-b border-border last:border-b-0\">\n <td class=\"px-2 py-2\"><input type=\"checkbox\" [checked]=\"row.selected\" (change)=\"onToggleRow(row, $event)\" class=\"h-4 w-4 rounded-sm border border-input\" /></td>\n <td class=\"px-2 py-2\">{{ row.status }}</td>\n <td class=\"px-2 py-2\">{{ row.email }}</td>\n <td class=\"px-2 py-2 text-right\">{{ row.amount }}</td>\n <td class=\"px-2 py-2\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center\" (click)=\"onAction(row)\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </svg>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"flex w-full items-center gap-2 py-4\">\n <p class=\"flex-1 pr-2 text-sm text-muted-foreground\">{{ selectedCount }} of {{ rows.length }} row(s) selected.</p>\n <button type=\"button\" class=\"h-9 rounded-md border border-input bg-background px-4 text-sm font-medium text-foreground shadow-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"previous()\">Previous</button>\n <button type=\"button\" class=\"h-9 rounded-md border border-input bg-background px-4 text-sm font-medium text-foreground shadow-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50\" [disabled]=\"page >= totalPages\" (click)=\"next()\">Next</button>\n </div>\n</section>\n" }]
1189
1189
  }], propDecorators: { className: [{
1190
1190
  type: Input
1191
1191
  }], filterPlaceholder: [{
@@ -1237,10 +1237,10 @@ class PdmDatePickerComponent {
1237
1237
  }
1238
1238
  }
1239
1239
  PdmDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1240
- PdmDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDatePickerComponent, selector: "pdm-date-picker", inputs: { variant: "variant", className: "className", open: "open", label: "label", value: "value", month: "month", year: "year", selectedDay: "selectedDay", time: "time", naturalLanguageValue: "naturalLanguageValue", naturalLanguageHint: "naturalLanguageHint" }, outputs: { openChange: "openChange", valueChange: "valueChange" }, ngImport: i0, template: "<section [ngClass]=\"['flex flex-col gap-3', className]\" class=\"w-[250px]\">\n <label class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\n\n <div class=\"flex items-center gap-2\" *ngIf=\"variant === 'date-time'\">\n <button type=\"button\" class=\"flex h-9 w-[150px] items-center justify-between rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 shadow-sm\" (click)=\"toggle()\">\n <span class=\"truncate text-[12px] leading-4 text-[hsl(var(--foreground))]\">{{ value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n <div class=\"flex h-9 w-[92px] items-center rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[12px] leading-4 text-[hsl(var(--foreground))] shadow-sm\">{{ time }}</div>\n </div>\n\n <div *ngIf=\"variant !== 'date-time'\" class=\"flex flex-col gap-2\">\n <button type=\"button\" class=\"flex h-9 w-[192px] items-center justify-between rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 shadow-sm\" (click)=\"toggle()\">\n <span class=\"truncate text-[16px] leading-6 text-[hsl(var(--foreground))]\">{{ variant === 'natural-language' ? naturalLanguageValue : value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n\n <p *ngIf=\"variant === 'natural-language'\" class=\"max-w-[192px] text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ naturalLanguageHint }}</p>\n </div>\n\n <div *ngIf=\"open\" class=\"w-[250px] rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-3 shadow-sm\">\n <div class=\"mb-4 flex items-center justify-between\">\n <button type=\"button\" class=\"h-8 w-8 rounded-[6px] text-[hsl(var(--foreground))]\">\u2039</button>\n <div class=\"flex items-center gap-1.5\">\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-[6px] border border-[hsl(var(--border))] px-2 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm\">{{ monthLabel }} <span>\u02C5</span></button>\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-[6px] border border-[hsl(var(--border))] px-2 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm\">{{ year }} <span>\u02C5</span></button>\n </div>\n <button type=\"button\" class=\"h-8 w-8 rounded-[6px] text-[hsl(var(--foreground))]\">\u203A</button>\n </div>\n\n <pdm-calendar [month]=\"month\" [year]=\"year\" [selectedDay]=\"selectedDay\" mode=\"single\"></pdm-calendar>\n\n <div *ngIf=\"variant === 'with-input' || variant === 'natural-language'\" class=\"mt-3 flex gap-2\">\n <button type=\"button\" class=\"h-8 rounded-[8px] border border-[hsl(var(--border))] px-3 text-[12px] text-[hsl(var(--foreground))]\" (click)=\"selectPreset('Today')\">Today</button>\n <button type=\"button\" class=\"h-8 rounded-[8px] border border-[hsl(var(--border))] px-3 text-[12px] text-[hsl(var(--foreground))]\" (click)=\"selectPreset('Tomorrow')\">Tomorrow</button>\n </div>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: ["mode", "month", "year", "selectedDay", "rangeStartDay", "rangeEndDay", "className"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1240
+ PdmDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDatePickerComponent, selector: "pdm-date-picker", inputs: { variant: "variant", className: "className", open: "open", label: "label", value: "value", month: "month", year: "year", selectedDay: "selectedDay", time: "time", naturalLanguageValue: "naturalLanguageValue", naturalLanguageHint: "naturalLanguageHint" }, outputs: { openChange: "openChange", valueChange: "valueChange" }, ngImport: i0, template: "<section [ngClass]=\"['flex flex-col gap-3', className]\" class=\"w-full max-w-sm\">\n <label class=\"text-sm font-medium text-foreground\">{{ label }}</label>\n\n <div class=\"flex items-center gap-2\" *ngIf=\"variant === 'date-time'\">\n <button type=\"button\" class=\"flex h-9 flex-1 items-center justify-between rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm\" (click)=\"toggle()\">\n <span class=\"truncate text-xs text-foreground\">{{ value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n <div class=\"flex h-9 w-24 items-center rounded-md border border-input bg-transparent px-3 py-1 text-xs text-foreground shadow-sm\">{{ time }}</div>\n </div>\n\n <div *ngIf=\"variant !== 'date-time'\" class=\"flex flex-col gap-2\">\n <button type=\"button\" class=\"flex h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm\" (click)=\"toggle()\">\n <span class=\"truncate text-sm text-foreground\">{{ variant === 'natural-language' ? naturalLanguageValue : value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n\n <p *ngIf=\"variant === 'natural-language'\" class=\"text-xs text-muted-foreground\">{{ naturalLanguageHint }}</p>\n </div>\n\n <div *ngIf=\"open\" class=\"w-full rounded-lg border border-border bg-background p-3 shadow-sm\">\n <div class=\"mb-4 flex items-center justify-between\">\n <button type=\"button\" class=\"h-8 w-8 rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">\u2039</button>\n <div class=\"flex items-center gap-1.5\">\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-md border border-input px-2 text-sm font-medium text-foreground shadow-sm\">{{ monthLabel }} <span>\u02C5</span></button>\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-md border border-input px-2 text-sm font-medium text-foreground shadow-sm\">{{ year }} <span>\u02C5</span></button>\n </div>\n <button type=\"button\" class=\"h-8 w-8 rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">\u203A</button>\n </div>\n\n <pdm-calendar [month]=\"month\" [year]=\"year\" [selectedDay]=\"selectedDay\" mode=\"single\"></pdm-calendar>\n\n <div *ngIf=\"variant === 'with-input' || variant === 'natural-language'\" class=\"mt-3 flex gap-2\">\n <button type=\"button\" class=\"h-8 rounded-md border border-input px-3 text-xs text-foreground\" (click)=\"selectPreset('Today')\">Today</button>\n <button type=\"button\" class=\"h-8 rounded-md border border-input px-3 text-xs text-foreground\" (click)=\"selectPreset('Tomorrow')\">Tomorrow</button>\n </div>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: ["mode", "month", "year", "selectedDay", "rangeStartDay", "rangeEndDay", "className"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1241
1241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDatePickerComponent, decorators: [{
1242
1242
  type: Component,
1243
- args: [{ selector: 'pdm-date-picker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex flex-col gap-3', className]\" class=\"w-[250px]\">\n <label class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\n\n <div class=\"flex items-center gap-2\" *ngIf=\"variant === 'date-time'\">\n <button type=\"button\" class=\"flex h-9 w-[150px] items-center justify-between rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 shadow-sm\" (click)=\"toggle()\">\n <span class=\"truncate text-[12px] leading-4 text-[hsl(var(--foreground))]\">{{ value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n <div class=\"flex h-9 w-[92px] items-center rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[12px] leading-4 text-[hsl(var(--foreground))] shadow-sm\">{{ time }}</div>\n </div>\n\n <div *ngIf=\"variant !== 'date-time'\" class=\"flex flex-col gap-2\">\n <button type=\"button\" class=\"flex h-9 w-[192px] items-center justify-between rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 shadow-sm\" (click)=\"toggle()\">\n <span class=\"truncate text-[16px] leading-6 text-[hsl(var(--foreground))]\">{{ variant === 'natural-language' ? naturalLanguageValue : value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[hsl(var(--foreground))]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n\n <p *ngIf=\"variant === 'natural-language'\" class=\"max-w-[192px] text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ naturalLanguageHint }}</p>\n </div>\n\n <div *ngIf=\"open\" class=\"w-[250px] rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-3 shadow-sm\">\n <div class=\"mb-4 flex items-center justify-between\">\n <button type=\"button\" class=\"h-8 w-8 rounded-[6px] text-[hsl(var(--foreground))]\">\u2039</button>\n <div class=\"flex items-center gap-1.5\">\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-[6px] border border-[hsl(var(--border))] px-2 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm\">{{ monthLabel }} <span>\u02C5</span></button>\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-[6px] border border-[hsl(var(--border))] px-2 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm\">{{ year }} <span>\u02C5</span></button>\n </div>\n <button type=\"button\" class=\"h-8 w-8 rounded-[6px] text-[hsl(var(--foreground))]\">\u203A</button>\n </div>\n\n <pdm-calendar [month]=\"month\" [year]=\"year\" [selectedDay]=\"selectedDay\" mode=\"single\"></pdm-calendar>\n\n <div *ngIf=\"variant === 'with-input' || variant === 'natural-language'\" class=\"mt-3 flex gap-2\">\n <button type=\"button\" class=\"h-8 rounded-[8px] border border-[hsl(var(--border))] px-3 text-[12px] text-[hsl(var(--foreground))]\" (click)=\"selectPreset('Today')\">Today</button>\n <button type=\"button\" class=\"h-8 rounded-[8px] border border-[hsl(var(--border))] px-3 text-[12px] text-[hsl(var(--foreground))]\" (click)=\"selectPreset('Tomorrow')\">Tomorrow</button>\n </div>\n </div>\n</section>\n" }]
1243
+ args: [{ selector: 'pdm-date-picker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex flex-col gap-3', className]\" class=\"w-full max-w-sm\">\n <label class=\"text-sm font-medium text-foreground\">{{ label }}</label>\n\n <div class=\"flex items-center gap-2\" *ngIf=\"variant === 'date-time'\">\n <button type=\"button\" class=\"flex h-9 flex-1 items-center justify-between rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm\" (click)=\"toggle()\">\n <span class=\"truncate text-xs text-foreground\">{{ value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n <div class=\"flex h-9 w-24 items-center rounded-md border border-input bg-transparent px-3 py-1 text-xs text-foreground shadow-sm\">{{ time }}</div>\n </div>\n\n <div *ngIf=\"variant !== 'date-time'\" class=\"flex flex-col gap-2\">\n <button type=\"button\" class=\"flex h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm\" (click)=\"toggle()\">\n <span class=\"truncate text-sm text-foreground\">{{ variant === 'natural-language' ? naturalLanguageValue : value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n\n <p *ngIf=\"variant === 'natural-language'\" class=\"text-xs text-muted-foreground\">{{ naturalLanguageHint }}</p>\n </div>\n\n <div *ngIf=\"open\" class=\"w-full rounded-lg border border-border bg-background p-3 shadow-sm\">\n <div class=\"mb-4 flex items-center justify-between\">\n <button type=\"button\" class=\"h-8 w-8 rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">\u2039</button>\n <div class=\"flex items-center gap-1.5\">\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-md border border-input px-2 text-sm font-medium text-foreground shadow-sm\">{{ monthLabel }} <span>\u02C5</span></button>\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-md border border-input px-2 text-sm font-medium text-foreground shadow-sm\">{{ year }} <span>\u02C5</span></button>\n </div>\n <button type=\"button\" class=\"h-8 w-8 rounded-md text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\">\u203A</button>\n </div>\n\n <pdm-calendar [month]=\"month\" [year]=\"year\" [selectedDay]=\"selectedDay\" mode=\"single\"></pdm-calendar>\n\n <div *ngIf=\"variant === 'with-input' || variant === 'natural-language'\" class=\"mt-3 flex gap-2\">\n <button type=\"button\" class=\"h-8 rounded-md border border-input px-3 text-xs text-foreground\" (click)=\"selectPreset('Today')\">Today</button>\n <button type=\"button\" class=\"h-8 rounded-md border border-input px-3 text-xs text-foreground\" (click)=\"selectPreset('Tomorrow')\">Tomorrow</button>\n </div>\n </div>\n</section>\n" }]
1244
1244
  }], propDecorators: { variant: [{
1245
1245
  type: Input
1246
1246
  }], className: [{
@@ -1311,10 +1311,10 @@ class PdmDialogComponent {
1311
1311
  }
1312
1312
  }
1313
1313
  PdmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1314
- PdmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDialogComponent, selector: "pdm-dialog", inputs: { open: "open", variant: "variant", title: "title", description: "description", closeOnBackdrop: "closeOnBackdrop", closeOnEsc: "closeOnEsc", showCloseButton: "showCloseButton", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue", linkValue: "linkValue", className: "className" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div class=\"absolute inset-0 bg-[hsl(var(--foreground)/0.3)]\" (click)=\"onBackdropClick()\"></div>\n <section\n role=\"dialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[423px] rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-6 shadow-lg',\n className\n ]\"\n >\n <div class=\"flex items-start justify-between gap-3\">\n <div class=\"min-w-0\">\n <h2 class=\"m-0 text-[18px] font-semibold leading-7 text-[hsl(var(--foreground))]\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-[14px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 items-center justify-center text-[hsl(var(--foreground))] opacity-70\"\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 <ng-container *ngIf=\"variant === 'default'; else customCloseDialog\">\n <div class=\"mt-4 flex flex-col gap-4\">\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ nameLabel }}</label>\n <div class=\"h-9 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--muted-foreground))] shadow-sm\">{{ nameValue }}</div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ usernameLabel }}</label>\n <div class=\"h-9 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--muted-foreground))] shadow-sm\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <div class=\"mt-4 flex justify-end gap-2\">\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] bg-[hsl(var(--foreground))] px-4 text-[14px] font-medium leading-5 text-[hsl(var(--background))] shadow-sm\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #customCloseDialog>\n <div class=\"mt-4 h-9 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--muted-foreground))] shadow-sm\">\n {{ linkValue }}\n </div>\n <div class=\"mt-4 flex\">\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] bg-[hsl(var(--muted))] px-4 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n Close\n </button>\n </div>\n </ng-template>\n\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1314
+ PdmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDialogComponent, selector: "pdm-dialog", inputs: { open: "open", variant: "variant", title: "title", description: "description", closeOnBackdrop: "closeOnBackdrop", closeOnEsc: "closeOnEsc", showCloseButton: "showCloseButton", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue", linkValue: "linkValue", className: "className" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div class=\"absolute inset-0 bg-foreground/30\" (click)=\"onBackdropClick()\"></div>\n <section\n role=\"dialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-lg rounded-lg border border-border bg-background p-6 shadow-lg',\n className\n ]\"\n >\n <div class=\"flex items-start justify-between gap-3\">\n <div class=\"min-w-0\">\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 items-center justify-center rounded-sm 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 <ng-container *ngIf=\"variant === 'default'; else customCloseDialog\">\n <div class=\"mt-4 flex flex-col gap-4\">\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-sm font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-9 rounded-md border border-border bg-background px-3 py-1 text-sm text-muted-foreground shadow-sm\">{{ nameValue }}</div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-sm font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-9 rounded-md border border-border bg-background px-3 py-1 text-sm text-muted-foreground shadow-sm\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <div class=\"mt-4 flex justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #customCloseDialog>\n <div class=\"mt-4 h-9 rounded-md border border-border bg-background px-3 py-1 text-sm text-muted-foreground shadow-sm\">\n {{ linkValue }}\n </div>\n <div class=\"mt-4 flex\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md bg-secondary px-4 py-2 text-sm font-medium text-secondary-foreground shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n Close\n </button>\n </div>\n </ng-template>\n\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1315
1315
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogComponent, decorators: [{
1316
1316
  type: Component,
1317
- args: [{ selector: 'pdm-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div class=\"absolute inset-0 bg-[hsl(var(--foreground)/0.3)]\" (click)=\"onBackdropClick()\"></div>\n <section\n role=\"dialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[423px] rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-6 shadow-lg',\n className\n ]\"\n >\n <div class=\"flex items-start justify-between gap-3\">\n <div class=\"min-w-0\">\n <h2 class=\"m-0 text-[18px] font-semibold leading-7 text-[hsl(var(--foreground))]\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-[14px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 items-center justify-center text-[hsl(var(--foreground))] opacity-70\"\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 <ng-container *ngIf=\"variant === 'default'; else customCloseDialog\">\n <div class=\"mt-4 flex flex-col gap-4\">\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ nameLabel }}</label>\n <div class=\"h-9 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--muted-foreground))] shadow-sm\">{{ nameValue }}</div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-[14px] font-medium leading-5 text-[hsl(var(--foreground))]\">{{ usernameLabel }}</label>\n <div class=\"h-9 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--muted-foreground))] shadow-sm\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <div class=\"mt-4 flex justify-end gap-2\">\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] bg-[hsl(var(--foreground))] px-4 text-[14px] font-medium leading-5 text-[hsl(var(--background))] shadow-sm\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #customCloseDialog>\n <div class=\"mt-4 h-9 rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 py-1 text-[16px] leading-6 text-[hsl(var(--muted-foreground))] shadow-sm\">\n {{ linkValue }}\n </div>\n <div class=\"mt-4 flex\">\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] bg-[hsl(var(--muted))] px-4 text-[14px] font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n Close\n </button>\n </div>\n </ng-template>\n\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n </section>\n</div>\n" }]
1317
+ args: [{ selector: 'pdm-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div class=\"absolute inset-0 bg-foreground/30\" (click)=\"onBackdropClick()\"></div>\n <section\n role=\"dialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-lg rounded-lg border border-border bg-background p-6 shadow-lg',\n className\n ]\"\n >\n <div class=\"flex items-start justify-between gap-3\">\n <div class=\"min-w-0\">\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 items-center justify-center rounded-sm 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 <ng-container *ngIf=\"variant === 'default'; else customCloseDialog\">\n <div class=\"mt-4 flex flex-col gap-4\">\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-sm font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-9 rounded-md border border-border bg-background px-3 py-1 text-sm text-muted-foreground shadow-sm\">{{ nameValue }}</div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-sm font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-9 rounded-md border border-border bg-background px-3 py-1 text-sm text-muted-foreground shadow-sm\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <div class=\"mt-4 flex justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #customCloseDialog>\n <div class=\"mt-4 h-9 rounded-md border border-border bg-background px-3 py-1 text-sm text-muted-foreground shadow-sm\">\n {{ linkValue }}\n </div>\n <div class=\"mt-4 flex\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md bg-secondary px-4 py-2 text-sm font-medium text-secondary-foreground shadow-sm\"\n (click)=\"onSecondaryAction()\"\n >\n Close\n </button>\n </div>\n </ng-template>\n\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n </section>\n</div>\n" }]
1318
1318
  }], propDecorators: { open: [{
1319
1319
  type: Input
1320
1320
  }], variant: [{
@@ -1444,10 +1444,10 @@ class PdmDropdownMenuComponent {
1444
1444
  }
1445
1445
  }
1446
1446
  PdmDropdownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDropdownMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1447
- PdmDropdownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDropdownMenuComponent, selector: "pdm-dropdown-menu", inputs: { triggerText: "triggerText", variant: "variant", items: "items", closeOnSelect: "closeOnSelect", panelClassName: "panelClassName", className: "className" }, outputs: { itemSelect: "itemSelect", itemsChange: "itemsChange" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <div\n *ngIf=\"open\"\n [ngClass]=\"[\n 'absolute left-0 top-full z-50 mt-2 min-w-[224px] overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-1 text-[hsl(var(--foreground))] shadow-md',\n panelClassName\n ]\"\n >\n <ng-container *ngFor=\"let item of resolvedItems\">\n <div *ngIf=\"item.type === 'separator'\" class=\"my-[5px] h-px bg-[hsl(var(--muted))]\"></div>\n\n <div\n *ngIf=\"item.type === 'label'\"\n [ngClass]=\"['px-2 py-1.5 text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]', item.inset ? 'pl-8' : '']\"\n >\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative flex w-full items-center gap-2 rounded-[6px] px-2 py-1.5 text-left text-[14px] leading-5 text-[hsl(var(--foreground))] transition-colors hover:bg-[hsl(var(--muted))] disabled:pointer-events-none disabled:opacity-50',\n item.inset ? 'pl-8' : ''\n ]\"\n (click)=\"select(item)\"\n >\n <span class=\"inline-flex h-4 w-4 shrink-0 items-center justify-center\">\n <svg\n *ngIf=\"item.checked\"\n viewBox=\"0 0 24 24\"\n class=\"h-3.5 w-3.5 text-[hsl(var(--foreground))]\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.radioSelected\" class=\"h-2 w-2 rounded-full bg-[hsl(var(--foreground))]\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ item.shortcut }}</span>\n <span *ngIf=\"item.showChevron\" class=\"text-[16px] leading-none text-[hsl(var(--muted-foreground))]\">\u203A</span>\n </button>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1447
+ PdmDropdownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDropdownMenuComponent, selector: "pdm-dropdown-menu", inputs: { triggerText: "triggerText", variant: "variant", items: "items", closeOnSelect: "closeOnSelect", panelClassName: "panelClassName", className: "className" }, outputs: { itemSelect: "itemSelect", itemsChange: "itemsChange" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <div\n *ngIf=\"open\"\n [ngClass]=\"[\n 'absolute left-0 top-full z-50 mt-2 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md',\n panelClassName\n ]\"\n >\n <ng-container *ngFor=\"let item of resolvedItems\">\n <div *ngIf=\"item.type === 'separator'\" class=\"-mx-1 my-1 h-px bg-muted\"></div>\n\n <div\n *ngIf=\"item.type === 'label'\"\n [ngClass]=\"['px-2 py-1.5 text-sm font-semibold text-foreground', item.inset ? 'pl-8' : '']\"\n >\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm text-foreground outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',\n item.inset ? 'pl-8' : ''\n ]\"\n (click)=\"select(item)\"\n >\n <span class=\"inline-flex h-4 w-4 shrink-0 items-center justify-center\">\n <svg\n *ngIf=\"item.checked\"\n viewBox=\"0 0 24 24\"\n class=\"h-3.5 w-3.5 text-foreground\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.radioSelected\" class=\"h-2 w-2 rounded-full bg-foreground\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-xs text-muted-foreground\">{{ item.shortcut }}</span>\n <span *ngIf=\"item.showChevron\" class=\"text-sm text-muted-foreground\">\u203A</span>\n </button>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1448
1448
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDropdownMenuComponent, decorators: [{
1449
1449
  type: Component,
1450
- args: [{ selector: 'pdm-dropdown-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-4 text-[14px] font-medium text-[hsl(var(--foreground))] shadow-sm\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <div\n *ngIf=\"open\"\n [ngClass]=\"[\n 'absolute left-0 top-full z-50 mt-2 min-w-[224px] overflow-hidden rounded-[8px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-1 text-[hsl(var(--foreground))] shadow-md',\n panelClassName\n ]\"\n >\n <ng-container *ngFor=\"let item of resolvedItems\">\n <div *ngIf=\"item.type === 'separator'\" class=\"my-[5px] h-px bg-[hsl(var(--muted))]\"></div>\n\n <div\n *ngIf=\"item.type === 'label'\"\n [ngClass]=\"['px-2 py-1.5 text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]', item.inset ? 'pl-8' : '']\"\n >\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative flex w-full items-center gap-2 rounded-[6px] px-2 py-1.5 text-left text-[14px] leading-5 text-[hsl(var(--foreground))] transition-colors hover:bg-[hsl(var(--muted))] disabled:pointer-events-none disabled:opacity-50',\n item.inset ? 'pl-8' : ''\n ]\"\n (click)=\"select(item)\"\n >\n <span class=\"inline-flex h-4 w-4 shrink-0 items-center justify-center\">\n <svg\n *ngIf=\"item.checked\"\n viewBox=\"0 0 24 24\"\n class=\"h-3.5 w-3.5 text-[hsl(var(--foreground))]\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.radioSelected\" class=\"h-2 w-2 rounded-full bg-[hsl(var(--foreground))]\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-5 text-[hsl(var(--muted-foreground))]\">{{ item.shortcut }}</span>\n <span *ngIf=\"item.showChevron\" class=\"text-[16px] leading-none text-[hsl(var(--muted-foreground))]\">\u203A</span>\n </button>\n </ng-container>\n </div>\n</div>\n" }]
1450
+ args: [{ selector: 'pdm-dropdown-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <div\n *ngIf=\"open\"\n [ngClass]=\"[\n 'absolute left-0 top-full z-50 mt-2 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md',\n panelClassName\n ]\"\n >\n <ng-container *ngFor=\"let item of resolvedItems\">\n <div *ngIf=\"item.type === 'separator'\" class=\"-mx-1 my-1 h-px bg-muted\"></div>\n\n <div\n *ngIf=\"item.type === 'label'\"\n [ngClass]=\"['px-2 py-1.5 text-sm font-semibold text-foreground', item.inset ? 'pl-8' : '']\"\n >\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm text-foreground outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',\n item.inset ? 'pl-8' : ''\n ]\"\n (click)=\"select(item)\"\n >\n <span class=\"inline-flex h-4 w-4 shrink-0 items-center justify-center\">\n <svg\n *ngIf=\"item.checked\"\n viewBox=\"0 0 24 24\"\n class=\"h-3.5 w-3.5 text-foreground\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.radioSelected\" class=\"h-2 w-2 rounded-full bg-foreground\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-xs text-muted-foreground\">{{ item.shortcut }}</span>\n <span *ngIf=\"item.showChevron\" class=\"text-sm text-muted-foreground\">\u203A</span>\n </button>\n </ng-container>\n </div>\n</div>\n" }]
1451
1451
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { triggerText: [{
1452
1452
  type: Input
1453
1453
  }], variant: [{
@@ -1503,10 +1503,10 @@ class PdmDrawerComponent {
1503
1503
  }
1504
1504
  }
1505
1505
  PdmDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1506
- PdmDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDrawerComponent, selector: "pdm-drawer", inputs: { open: "open", variant: "variant", className: "className", title: "title", description: "description", value: "value", unit: "unit", profileTitle: "profileTitle", profileDescription: "profileDescription", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\" [ngClass]=\"className\">\n <div class=\"absolute inset-0 bg-[hsl(var(--foreground)/0.3)]\" (click)=\"close()\"></div>\n\n <section\n *ngIf=\"variant === 'drawer'; else responsiveDialog\"\n class=\"absolute inset-x-0 bottom-0 mx-auto w-full max-w-[1229px] rounded-t-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-6 shadow-lg\"\n >\n <div class=\"mx-auto mb-4 h-1 w-10 rounded-full bg-[hsl(var(--border))]\"></div>\n\n <div class=\"mx-auto flex max-w-[320px] flex-col items-center\">\n <h3 class=\"m-0 text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]\">{{ title }}</h3>\n <p class=\"m-0 mt-1 text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n\n <div class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-[hsl(var(--border))] text-[hsl(var(--muted-foreground))]\">-</button>\n <div class=\"text-center\">\n <div class=\"text-[48px] font-semibold leading-none text-[hsl(var(--foreground))]\">{{ value }}</div>\n <div class=\"mt-1 text-[10px] tracking-wide text-[hsl(var(--muted-foreground))]\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-[hsl(var(--border))] text-[hsl(var(--muted-foreground))]\">+</button>\n </div>\n\n <div class=\"mt-3 flex h-[58px] w-full items-end gap-[3px]\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-[hsl(var(--foreground))]\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-9 w-full rounded-[10px] bg-[hsl(var(--foreground))] text-[14px] font-medium text-[hsl(var(--background))]\" (click)=\"onPrimaryAction()\">Submit</button>\n <button type=\"button\" class=\"mt-2 h-9 w-full rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] text-[14px] font-medium text-[hsl(var(--foreground))]\" (click)=\"onSecondaryAction()\">Cancel</button>\n </div>\n </section>\n\n <ng-template #responsiveDialog>\n <section class=\"absolute left-1/2 top-1/2 w-full max-w-[423px] -translate-x-1/2 -translate-y-1/2 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-4 shadow-lg\">\n <div class=\"flex items-start justify-between\">\n <div>\n <h3 class=\"m-0 text-[18px] font-semibold leading-7 text-[hsl(var(--foreground))]\">{{ profileTitle }}</h3>\n <p class=\"m-0 mt-1 text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ profileDescription }}</p>\n </div>\n <button type=\"button\" class=\"h-5 w-5 text-[hsl(var(--muted-foreground))]\" (click)=\"close()\">\u00D7</button>\n </div>\n\n <div class=\"mt-3 flex flex-col gap-3\">\n <div>\n <label class=\"mb-1 block text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-[6px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-2 py-1 text-[12px] leading-4 text-[hsl(var(--foreground))]\">{{ nameValue }}</div>\n </div>\n <div>\n <label class=\"mb-1 block text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-[6px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-2 py-1 text-[12px] leading-4 text-[hsl(var(--foreground))]\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-8 w-full rounded-[8px] bg-[hsl(var(--foreground))] text-[12px] font-medium text-[hsl(var(--background))]\" (click)=\"onPrimaryAction()\">Save changes</button>\n </section>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1506
+ PdmDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDrawerComponent, selector: "pdm-drawer", inputs: { open: "open", variant: "variant", className: "className", title: "title", description: "description", value: "value", unit: "unit", profileTitle: "profileTitle", profileDescription: "profileDescription", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\" [ngClass]=\"className\">\n <div class=\"absolute inset-0 bg-foreground/30\" (click)=\"close()\"></div>\n\n <section\n *ngIf=\"variant === 'drawer'; else responsiveDialog\"\n class=\"absolute inset-x-0 bottom-0 mx-auto w-full max-w-6xl rounded-t-lg border border-border bg-background p-6 shadow-lg\"\n >\n <div class=\"mx-auto mb-4 h-1 w-10 rounded-full bg-border\"></div>\n\n <div class=\"mx-auto flex max-w-sm flex-col items-center\">\n <h3 class=\"m-0 text-sm font-semibold text-foreground\">{{ title }}</h3>\n <p class=\"m-0 mt-1 text-xs text-muted-foreground\">{{ description }}</p>\n\n <div class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-border text-muted-foreground\">-</button>\n <div class=\"text-center\">\n <div class=\"text-5xl font-semibold leading-none text-foreground\">{{ value }}</div>\n <div class=\"mt-1 text-xs tracking-wide text-muted-foreground\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-border text-muted-foreground\">+</button>\n </div>\n\n <div class=\"mt-3 flex h-14 w-full items-end gap-1\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-foreground\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-9 w-full rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">Submit</button>\n <button type=\"button\" class=\"mt-2 h-9 w-full rounded-md border border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">Cancel</button>\n </div>\n </section>\n\n <ng-template #responsiveDialog>\n <section class=\"absolute left-1/2 top-1/2 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 rounded-lg border border-border bg-background p-6 shadow-lg\">\n <div class=\"flex items-start justify-between\">\n <div>\n <h3 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ profileTitle }}</h3>\n <p class=\"m-0 mt-1 text-sm text-muted-foreground\">{{ profileDescription }}</p>\n </div>\n <button type=\"button\" class=\"h-5 w-5 text-muted-foreground\" (click)=\"close()\">\u00D7</button>\n </div>\n\n <div class=\"mt-3 flex flex-col gap-3\">\n <div>\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ nameValue }}</div>\n </div>\n <div>\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-8 w-full rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">Save changes</button>\n </section>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1507
1507
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDrawerComponent, decorators: [{
1508
1508
  type: Component,
1509
- args: [{ selector: 'pdm-drawer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\" [ngClass]=\"className\">\n <div class=\"absolute inset-0 bg-[hsl(var(--foreground)/0.3)]\" (click)=\"close()\"></div>\n\n <section\n *ngIf=\"variant === 'drawer'; else responsiveDialog\"\n class=\"absolute inset-x-0 bottom-0 mx-auto w-full max-w-[1229px] rounded-t-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-6 shadow-lg\"\n >\n <div class=\"mx-auto mb-4 h-1 w-10 rounded-full bg-[hsl(var(--border))]\"></div>\n\n <div class=\"mx-auto flex max-w-[320px] flex-col items-center\">\n <h3 class=\"m-0 text-[14px] font-semibold leading-5 text-[hsl(var(--foreground))]\">{{ title }}</h3>\n <p class=\"m-0 mt-1 text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n\n <div class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-[hsl(var(--border))] text-[hsl(var(--muted-foreground))]\">-</button>\n <div class=\"text-center\">\n <div class=\"text-[48px] font-semibold leading-none text-[hsl(var(--foreground))]\">{{ value }}</div>\n <div class=\"mt-1 text-[10px] tracking-wide text-[hsl(var(--muted-foreground))]\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-[hsl(var(--border))] text-[hsl(var(--muted-foreground))]\">+</button>\n </div>\n\n <div class=\"mt-3 flex h-[58px] w-full items-end gap-[3px]\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-[hsl(var(--foreground))]\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-9 w-full rounded-[10px] bg-[hsl(var(--foreground))] text-[14px] font-medium text-[hsl(var(--background))]\" (click)=\"onPrimaryAction()\">Submit</button>\n <button type=\"button\" class=\"mt-2 h-9 w-full rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] text-[14px] font-medium text-[hsl(var(--foreground))]\" (click)=\"onSecondaryAction()\">Cancel</button>\n </div>\n </section>\n\n <ng-template #responsiveDialog>\n <section class=\"absolute left-1/2 top-1/2 w-full max-w-[423px] -translate-x-1/2 -translate-y-1/2 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-4 shadow-lg\">\n <div class=\"flex items-start justify-between\">\n <div>\n <h3 class=\"m-0 text-[18px] font-semibold leading-7 text-[hsl(var(--foreground))]\">{{ profileTitle }}</h3>\n <p class=\"m-0 mt-1 text-[12px] leading-4 text-[hsl(var(--muted-foreground))]\">{{ profileDescription }}</p>\n </div>\n <button type=\"button\" class=\"h-5 w-5 text-[hsl(var(--muted-foreground))]\" (click)=\"close()\">\u00D7</button>\n </div>\n\n <div class=\"mt-3 flex flex-col gap-3\">\n <div>\n <label class=\"mb-1 block text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-[6px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-2 py-1 text-[12px] leading-4 text-[hsl(var(--foreground))]\">{{ nameValue }}</div>\n </div>\n <div>\n <label class=\"mb-1 block text-[12px] font-medium leading-4 text-[hsl(var(--foreground))]\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-[6px] border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-2 py-1 text-[12px] leading-4 text-[hsl(var(--foreground))]\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-8 w-full rounded-[8px] bg-[hsl(var(--foreground))] text-[12px] font-medium text-[hsl(var(--background))]\" (click)=\"onPrimaryAction()\">Save changes</button>\n </section>\n </ng-template>\n</div>\n" }]
1509
+ args: [{ selector: 'pdm-drawer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\" [ngClass]=\"className\">\n <div class=\"absolute inset-0 bg-foreground/30\" (click)=\"close()\"></div>\n\n <section\n *ngIf=\"variant === 'drawer'; else responsiveDialog\"\n class=\"absolute inset-x-0 bottom-0 mx-auto w-full max-w-6xl rounded-t-lg border border-border bg-background p-6 shadow-lg\"\n >\n <div class=\"mx-auto mb-4 h-1 w-10 rounded-full bg-border\"></div>\n\n <div class=\"mx-auto flex max-w-sm flex-col items-center\">\n <h3 class=\"m-0 text-sm font-semibold text-foreground\">{{ title }}</h3>\n <p class=\"m-0 mt-1 text-xs text-muted-foreground\">{{ description }}</p>\n\n <div class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-border text-muted-foreground\">-</button>\n <div class=\"text-center\">\n <div class=\"text-5xl font-semibold leading-none text-foreground\">{{ value }}</div>\n <div class=\"mt-1 text-xs tracking-wide text-muted-foreground\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-border text-muted-foreground\">+</button>\n </div>\n\n <div class=\"mt-3 flex h-14 w-full items-end gap-1\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-foreground\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-9 w-full rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">Submit</button>\n <button type=\"button\" class=\"mt-2 h-9 w-full rounded-md border border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">Cancel</button>\n </div>\n </section>\n\n <ng-template #responsiveDialog>\n <section class=\"absolute left-1/2 top-1/2 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 rounded-lg border border-border bg-background p-6 shadow-lg\">\n <div class=\"flex items-start justify-between\">\n <div>\n <h3 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ profileTitle }}</h3>\n <p class=\"m-0 mt-1 text-sm text-muted-foreground\">{{ profileDescription }}</p>\n </div>\n <button type=\"button\" class=\"h-5 w-5 text-muted-foreground\" (click)=\"close()\">\u00D7</button>\n </div>\n\n <div class=\"mt-3 flex flex-col gap-3\">\n <div>\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ nameValue }}</div>\n </div>\n <div>\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-8 w-full rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">Save changes</button>\n </section>\n </ng-template>\n</div>\n" }]
1510
1510
  }], propDecorators: { open: [{
1511
1511
  type: Input
1512
1512
  }], variant: [{
@@ -1557,19 +1557,19 @@ class PdmEmptyComponent {
1557
1557
  }
1558
1558
  get containerClass() {
1559
1559
  if (this.variant === 'outline') {
1560
- return 'border border-dashed border-[hsl(var(--border))] rounded-[12px]';
1560
+ return 'border border-dashed border-border rounded-[12px]';
1561
1561
  }
1562
1562
  if (this.variant === 'background') {
1563
- return 'rounded-[12px] bg-[hsl(var(--muted))]';
1563
+ return 'rounded-[12px] bg-muted';
1564
1564
  }
1565
1565
  return '';
1566
1566
  }
1567
1567
  }
1568
1568
  PdmEmptyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmEmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1569
- PdmEmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmEmptyComponent, selector: "pdm-empty", inputs: { variant: "variant", title: "title", description: "description", iconName: "iconName", primaryActionLabel: "primaryActionLabel", secondaryActionLabel: "secondaryActionLabel", linkLabel: "linkLabel", className: "className" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction", linkAction: "linkAction" }, ngImport: i0, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-[hsl(var(--foreground))]', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-[10px] bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"mx-auto max-w-[420px] text-sm leading-relaxed text-[hsl(var(--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 items-center gap-2 text-[15px] font-medium text-[hsl(var(--muted-foreground))] underline-offset-4 hover:underline\"\n (click)=\"linkAction.emit()\"\n >\n <span>{{ linkLabel }}</span>\n <pdm-icon name=\"arrow-up-right\" [size]=\"16\"></pdm-icon>\n </button>\n\n <ng-content></ng-content>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmButtonComponent, selector: "pdm-button", inputs: ["type", "variant", "state", "size", "disabled", "loading", "className"], outputs: ["pressed"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1569
+ PdmEmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmEmptyComponent, selector: "pdm-empty", inputs: { variant: "variant", title: "title", description: "description", iconName: "iconName", primaryActionLabel: "primaryActionLabel", secondaryActionLabel: "secondaryActionLabel", linkLabel: "linkLabel", className: "className" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction", linkAction: "linkAction" }, ngImport: i0, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-foreground', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"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 items-center gap-2 text-sm font-medium text-muted-foreground underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n (click)=\"linkAction.emit()\"\n >\n <span>{{ linkLabel }}</span>\n <pdm-icon name=\"arrow-up-right\" [size]=\"16\"></pdm-icon>\n </button>\n\n <ng-content></ng-content>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmButtonComponent, selector: "pdm-button", inputs: ["type", "variant", "state", "size", "disabled", "loading", "className"], outputs: ["pressed"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1570
1570
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmEmptyComponent, decorators: [{
1571
1571
  type: Component,
1572
- args: [{ selector: 'pdm-empty', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-[hsl(var(--foreground))]', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-[10px] bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"mx-auto max-w-[420px] text-sm leading-relaxed text-[hsl(var(--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 items-center gap-2 text-[15px] font-medium text-[hsl(var(--muted-foreground))] underline-offset-4 hover:underline\"\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" }]
1572
+ args: [{ selector: 'pdm-empty', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-foreground', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"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 items-center gap-2 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" }]
1573
1573
  }], propDecorators: { variant: [{
1574
1574
  type: Input
1575
1575
  }], title: [{
@@ -1625,10 +1625,10 @@ class PdmFieldComponent {
1625
1625
  }
1626
1626
  }
1627
1627
  PdmFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1628
- PdmFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmFieldComponent, selector: "pdm-field", inputs: { id: "id", label: "label", description: "description", error: "error", required: "required", disabled: "disabled", invalid: "invalid", orientation: "orientation", descriptionPosition: "descriptionPosition", className: "className", labelClassName: "labelClassName", controlClassName: "controlClassName" }, ngImport: i0, template: "<div [ngClass]=\"[rootClass, className]\">\n <div [ngClass]=\"[isHorizontal ? 'grid gap-1.5' : 'grid gap-0']\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"['text-sm font-medium leading-5 text-[hsl(var(--foreground))]', disabled ? 'opacity-70' : '', labelClassName]\"\n >\n {{ label }}\n <span *ngIf=\"required\" class=\"text-[hsl(var(--destructive))]\">*</span>\n </label>\n\n <p *ngIf=\"isHorizontal && description && !invalid\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"isHorizontal && invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n </div>\n\n <div [ngClass]=\"['grid gap-3', controlClassName]\">\n <p *ngIf=\"showDescriptionBeforeControl\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n\n <ng-content></ng-content>\n <ng-content select=\"[pdmFieldControl]\"></ng-content>\n\n <p *ngIf=\"showDescriptionAfterControl\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"!isHorizontal && invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n <ng-content select=\"[pdmFieldDescription]\"></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1628
+ PdmFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmFieldComponent, selector: "pdm-field", inputs: { id: "id", label: "label", description: "description", error: "error", required: "required", disabled: "disabled", invalid: "invalid", orientation: "orientation", descriptionPosition: "descriptionPosition", className: "className", labelClassName: "labelClassName", controlClassName: "controlClassName" }, ngImport: i0, template: "<div [ngClass]=\"[rootClass, className]\">\n <div [ngClass]=\"[isHorizontal ? 'grid gap-1.5' : 'grid gap-0']\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"['text-sm font-medium leading-none text-foreground', disabled ? 'opacity-70' : '', labelClassName]\"\n >\n {{ label }}\n <span *ngIf=\"required\" class=\"text-destructive\">*</span>\n </label>\n\n <p *ngIf=\"isHorizontal && description && !invalid\" class=\"text-sm text-muted-foreground\">{{ description }}</p>\n <p *ngIf=\"isHorizontal && invalid && error\" class=\"text-sm text-destructive\">{{ error }}</p>\n </div>\n\n <div [ngClass]=\"['grid gap-3', controlClassName]\">\n <p *ngIf=\"showDescriptionBeforeControl\" class=\"text-sm text-muted-foreground\">{{ description }}</p>\n\n <ng-content></ng-content>\n <ng-content select=\"[pdmFieldControl]\"></ng-content>\n\n <p *ngIf=\"showDescriptionAfterControl\" class=\"text-sm text-muted-foreground\">{{ description }}</p>\n <p *ngIf=\"!isHorizontal && invalid && error\" class=\"text-sm text-destructive\">{{ error }}</p>\n <ng-content select=\"[pdmFieldDescription]\"></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1629
1629
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmFieldComponent, decorators: [{
1630
1630
  type: Component,
1631
- args: [{ selector: 'pdm-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"[rootClass, className]\">\n <div [ngClass]=\"[isHorizontal ? 'grid gap-1.5' : 'grid gap-0']\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"['text-sm font-medium leading-5 text-[hsl(var(--foreground))]', disabled ? 'opacity-70' : '', labelClassName]\"\n >\n {{ label }}\n <span *ngIf=\"required\" class=\"text-[hsl(var(--destructive))]\">*</span>\n </label>\n\n <p *ngIf=\"isHorizontal && description && !invalid\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"isHorizontal && invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n </div>\n\n <div [ngClass]=\"['grid gap-3', controlClassName]\">\n <p *ngIf=\"showDescriptionBeforeControl\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n\n <ng-content></ng-content>\n <ng-content select=\"[pdmFieldControl]\"></ng-content>\n\n <p *ngIf=\"showDescriptionAfterControl\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"!isHorizontal && invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n <ng-content select=\"[pdmFieldDescription]\"></ng-content>\n </div>\n</div>\n" }]
1631
+ args: [{ selector: 'pdm-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"[rootClass, className]\">\n <div [ngClass]=\"[isHorizontal ? 'grid gap-1.5' : 'grid gap-0']\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"['text-sm font-medium leading-none text-foreground', disabled ? 'opacity-70' : '', labelClassName]\"\n >\n {{ label }}\n <span *ngIf=\"required\" class=\"text-destructive\">*</span>\n </label>\n\n <p *ngIf=\"isHorizontal && description && !invalid\" class=\"text-sm text-muted-foreground\">{{ description }}</p>\n <p *ngIf=\"isHorizontal && invalid && error\" class=\"text-sm text-destructive\">{{ error }}</p>\n </div>\n\n <div [ngClass]=\"['grid gap-3', controlClassName]\">\n <p *ngIf=\"showDescriptionBeforeControl\" class=\"text-sm text-muted-foreground\">{{ description }}</p>\n\n <ng-content></ng-content>\n <ng-content select=\"[pdmFieldControl]\"></ng-content>\n\n <p *ngIf=\"showDescriptionAfterControl\" class=\"text-sm text-muted-foreground\">{{ description }}</p>\n <p *ngIf=\"!isHorizontal && invalid && error\" class=\"text-sm text-destructive\">{{ error }}</p>\n <ng-content select=\"[pdmFieldDescription]\"></ng-content>\n </div>\n</div>\n" }]
1632
1632
  }], propDecorators: { id: [{
1633
1633
  type: Input
1634
1634
  }], label: [{
@@ -1680,10 +1680,10 @@ class PdmHoverCardComponent {
1680
1680
  }
1681
1681
  }
1682
1682
  PdmHoverCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmHoverCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1683
- PdmHoverCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmHoverCardComponent, selector: "pdm-hover-card", inputs: { className: "className", panelClassName: "panelClassName", side: "side", align: "align", panelWidth: "panelWidth" }, ngImport: i0, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-30 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-xl',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1683
+ PdmHoverCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmHoverCardComponent, selector: "pdm-hover-card", inputs: { className: "className", panelClassName: "panelClassName", side: "side", align: "align", panelWidth: "panelWidth" }, ngImport: i0, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-30 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1684
1684
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmHoverCardComponent, decorators: [{
1685
1685
  type: Component,
1686
- args: [{ selector: 'pdm-hover-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-30 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-xl',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n" }]
1686
+ args: [{ selector: 'pdm-hover-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-30 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n" }]
1687
1687
  }], propDecorators: { className: [{
1688
1688
  type: Input
1689
1689
  }], panelClassName: [{
@@ -1704,10 +1704,10 @@ class PdmItemComponent {
1704
1704
  }
1705
1705
  }
1706
1706
  PdmItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1707
- PdmItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmItemComponent, selector: "pdm-item", inputs: { className: "className", disabled: "disabled", selected: "selected" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'relative flex w-full select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',\n selected ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]' : 'text-[hsl(var(--foreground))]',\n disabled ? 'pointer-events-none opacity-50' : 'hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n className\n ]\"\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1707
+ PdmItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmItemComponent, selector: "pdm-item", inputs: { className: "className", disabled: "disabled", selected: "selected" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'relative flex w-full select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',\n selected ? 'bg-accent text-accent-foreground' : 'text-foreground',\n disabled ? 'pointer-events-none opacity-50' : 'hover:bg-accent hover:text-accent-foreground',\n className\n ]\"\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1708
1708
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmItemComponent, decorators: [{
1709
1709
  type: Component,
1710
- args: [{ selector: 'pdm-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'relative flex w-full select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',\n selected ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]' : 'text-[hsl(var(--foreground))]',\n disabled ? 'pointer-events-none opacity-50' : 'hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n className\n ]\"\n>\n <ng-content></ng-content>\n</div>\n" }]
1710
+ args: [{ selector: 'pdm-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'relative flex w-full select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',\n selected ? 'bg-accent text-accent-foreground' : 'text-foreground',\n disabled ? 'pointer-events-none opacity-50' : 'hover:bg-accent hover:text-accent-foreground',\n className\n ]\"\n>\n <ng-content></ng-content>\n</div>\n" }]
1711
1711
  }], propDecorators: { className: [{
1712
1712
  type: Input
1713
1713
  }], disabled: [{
@@ -1744,10 +1744,10 @@ class PdmInputComponent {
1744
1744
  }
1745
1745
  }
1746
1746
  PdmInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1747
- 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 *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\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-[hsl(var(--input))] focus-visible:border-[hsl(var(--ring))] focus-visible:ring-[hsl(var(--ring)/0.5)] aria-invalid:ring-[hsl(var(--destructive)/0.2)] dark:aria-invalid:ring-[hsl(var(--destructive)/0.4)] aria-invalid:border-[hsl(var(--destructive))] dark:aria-invalid:border-[hsl(var(--destructive)/0.5)] disabled:bg-[hsl(var(--input)/0.5)] dark:bg-[hsl(var(--input)/0.3)] dark:disabled:bg-[hsl(var(--input)/0.8)] file:text-[hsl(var(--foreground))] placeholder:text-[hsl(var(--muted-foreground))] w-full min-w-0 border bg-transparent transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3',\n size === 'large' ? 'h-10 px-3 py-1.5 text-base' : '',\n size === 'regular' ? 'h-8 px-2.5 py-1 text-base md:text-sm' : '',\n size === 'small' ? 'h-7 px-2 py-1 text-sm' : '',\n size === 'mini' ? 'h-6 px-2 py-0.5 text-xs' : '',\n roundness === 'round' ? 'rounded-[999px]' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-[hsl(var(--foreground))]',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ errorText }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1747
+ 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 class=\"text-sm font-medium leading-none text-foreground\"\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 rounded-lg border 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=\"text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1748
1748
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputComponent, decorators: [{
1749
1749
  type: Component,
1750
- args: [{ selector: 'pdm-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\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-[hsl(var(--input))] focus-visible:border-[hsl(var(--ring))] focus-visible:ring-[hsl(var(--ring)/0.5)] aria-invalid:ring-[hsl(var(--destructive)/0.2)] dark:aria-invalid:ring-[hsl(var(--destructive)/0.4)] aria-invalid:border-[hsl(var(--destructive))] dark:aria-invalid:border-[hsl(var(--destructive)/0.5)] disabled:bg-[hsl(var(--input)/0.5)] dark:bg-[hsl(var(--input)/0.3)] dark:disabled:bg-[hsl(var(--input)/0.8)] file:text-[hsl(var(--foreground))] placeholder:text-[hsl(var(--muted-foreground))] w-full min-w-0 border bg-transparent transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3',\n size === 'large' ? 'h-10 px-3 py-1.5 text-base' : '',\n size === 'regular' ? 'h-8 px-2.5 py-1 text-base md:text-sm' : '',\n size === 'small' ? 'h-7 px-2 py-1 text-sm' : '',\n size === 'mini' ? 'h-6 px-2 py-0.5 text-xs' : '',\n roundness === 'round' ? 'rounded-[999px]' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-[hsl(var(--foreground))]',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ errorText }}</p>\n</div>\n" }]
1750
+ 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 class=\"text-sm font-medium leading-none text-foreground\"\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 rounded-lg border 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=\"text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n" }]
1751
1751
  }], propDecorators: { id: [{
1752
1752
  type: Input
1753
1753
  }], type: [{
@@ -1821,10 +1821,10 @@ class PdmInputPasswordComponent {
1821
1821
  }
1822
1822
  }
1823
1823
  PdmInputPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1824
- PdmInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmInputPasswordComponent, selector: "pdm-input-password", inputs: { id: "id", 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 *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\n <div class=\"relative\">\n <input\n [id]=\"id\"\n [type]=\"inputType\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'border-[hsl(var(--input))] focus-visible:border-[hsl(var(--ring))] focus-visible:ring-[hsl(var(--ring)/0.5)] aria-invalid:ring-[hsl(var(--destructive)/0.2)] dark:aria-invalid:ring-[hsl(var(--destructive)/0.4)] aria-invalid:border-[hsl(var(--destructive))] dark:aria-invalid:border-[hsl(var(--destructive)/0.5)] disabled:bg-[hsl(var(--input)/0.5)] dark:bg-[hsl(var(--input)/0.3)] dark:disabled:bg-[hsl(var(--input)/0.8)] file:text-[hsl(var(--foreground))] placeholder:text-[hsl(var(--muted-foreground))] w-full min-w-0 border bg-transparent pr-10 transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3',\n size === 'large' ? 'h-10 px-3 py-1.5 text-base' : '',\n size === 'regular' ? 'h-8 px-2.5 py-1 text-base md:text-sm' : '',\n size === 'small' ? 'h-7 px-2 py-1 text-sm' : '',\n size === 'mini' ? 'h-6 px-2 py-0.5 text-xs' : '',\n roundness === 'round' ? 'rounded-[999px]' : 'rounded-lg',\n 'text-[hsl(var(--foreground))]',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <button\n type=\"button\"\n class=\"absolute right-2 top-1/2 inline-flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded border-0 bg-transparent p-0 text-[hsl(var(--muted-foreground))] outline-none transition-colors hover:text-[hsl(var(--foreground))] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-60\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"showPassword ? 'Hide password' : 'Show password'\"\n (click)=\"toggleVisibility()\"\n >\n <svg\n *ngIf=\"!showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"h-4 w-4\"\n >\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n <svg\n *ngIf=\"showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"h-4 w-4\"\n >\n <path d=\"M3 3l18 18\"></path>\n <path d=\"M10.58 10.58a2 2 0 1 0 2.83 2.83\"></path>\n <path d=\"M9.88 5.09A10.94 10.94 0 0 1 12 4.91c5.05 0 9.27 3.11 10.6 7.09a1 1 0 0 1 0 .64 11.9 11.9 0 0 1-1.84 3.2\"></path>\n <path d=\"M6.61 6.61A11.81 11.81 0 0 0 1.4 12a1 1 0 0 0 0 .64 11.83 11.83 0 0 0 8.79 7.54\"></path>\n </svg>\n </button>\n </div>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ errorText }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1824
+ PdmInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmInputPasswordComponent, selector: "pdm-input-password", inputs: { id: "id", 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 *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-none text-foreground\">{{ label }}</label>\n <div class=\"relative\">\n <input\n [id]=\"id\"\n [type]=\"inputType\"\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 file:text-foreground placeholder:text-muted-foreground w-full min-w-0 rounded-lg border bg-transparent px-3 py-1 pr-10 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 'text-foreground',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <button\n type=\"button\"\n class=\"absolute right-2 top-1/2 inline-flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded border-0 bg-transparent p-0 text-muted-foreground outline-none transition-colors hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"showPassword ? 'Hide password' : 'Show password'\"\n (click)=\"toggleVisibility()\"\n >\n <svg\n *ngIf=\"!showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"h-4 w-4\"\n >\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n <svg\n *ngIf=\"showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"h-4 w-4\"\n >\n <path d=\"M3 3l18 18\"></path>\n <path d=\"M10.58 10.58a2 2 0 1 0 2.83 2.83\"></path>\n <path d=\"M9.88 5.09A10.94 10.94 0 0 1 12 4.91c5.05 0 9.27 3.11 10.6 7.09a1 1 0 0 1 0 .64 11.9 11.9 0 0 1-1.84 3.2\"></path>\n <path d=\"M6.61 6.61A11.81 11.81 0 0 0 1.4 12a1 1 0 0 0 0 .64 11.83 11.83 0 0 0 8.79 7.54\"></path>\n </svg>\n </button>\n </div>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm text-muted-foreground\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm text-destructive\">{{ errorText }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1825
1825
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputPasswordComponent, decorators: [{
1826
1826
  type: Component,
1827
- args: [{ selector: 'pdm-input-password', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\n <div class=\"relative\">\n <input\n [id]=\"id\"\n [type]=\"inputType\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'border-[hsl(var(--input))] focus-visible:border-[hsl(var(--ring))] focus-visible:ring-[hsl(var(--ring)/0.5)] aria-invalid:ring-[hsl(var(--destructive)/0.2)] dark:aria-invalid:ring-[hsl(var(--destructive)/0.4)] aria-invalid:border-[hsl(var(--destructive))] dark:aria-invalid:border-[hsl(var(--destructive)/0.5)] disabled:bg-[hsl(var(--input)/0.5)] dark:bg-[hsl(var(--input)/0.3)] dark:disabled:bg-[hsl(var(--input)/0.8)] file:text-[hsl(var(--foreground))] placeholder:text-[hsl(var(--muted-foreground))] w-full min-w-0 border bg-transparent pr-10 transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3',\n size === 'large' ? 'h-10 px-3 py-1.5 text-base' : '',\n size === 'regular' ? 'h-8 px-2.5 py-1 text-base md:text-sm' : '',\n size === 'small' ? 'h-7 px-2 py-1 text-sm' : '',\n size === 'mini' ? 'h-6 px-2 py-0.5 text-xs' : '',\n roundness === 'round' ? 'rounded-[999px]' : 'rounded-lg',\n 'text-[hsl(var(--foreground))]',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <button\n type=\"button\"\n class=\"absolute right-2 top-1/2 inline-flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded border-0 bg-transparent p-0 text-[hsl(var(--muted-foreground))] outline-none transition-colors hover:text-[hsl(var(--foreground))] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-60\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"showPassword ? 'Hide password' : 'Show password'\"\n (click)=\"toggleVisibility()\"\n >\n <svg\n *ngIf=\"!showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"h-4 w-4\"\n >\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n <svg\n *ngIf=\"showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"h-4 w-4\"\n >\n <path d=\"M3 3l18 18\"></path>\n <path d=\"M10.58 10.58a2 2 0 1 0 2.83 2.83\"></path>\n <path d=\"M9.88 5.09A10.94 10.94 0 0 1 12 4.91c5.05 0 9.27 3.11 10.6 7.09a1 1 0 0 1 0 .64 11.9 11.9 0 0 1-1.84 3.2\"></path>\n <path d=\"M6.61 6.61A11.81 11.81 0 0 0 1.4 12a1 1 0 0 0 0 .64 11.83 11.83 0 0 0 8.79 7.54\"></path>\n </svg>\n </button>\n </div>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ errorText }}</p>\n</div>\n" }]
1827
+ args: [{ selector: 'pdm-input-password', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-none text-foreground\">{{ label }}</label>\n <div class=\"relative\">\n <input\n [id]=\"id\"\n [type]=\"inputType\"\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 file:text-foreground placeholder:text-muted-foreground w-full min-w-0 rounded-lg border bg-transparent px-3 py-1 pr-10 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 'text-foreground',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <button\n type=\"button\"\n class=\"absolute right-2 top-1/2 inline-flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded border-0 bg-transparent p-0 text-muted-foreground outline-none transition-colors hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"showPassword ? 'Hide password' : 'Show password'\"\n (click)=\"toggleVisibility()\"\n >\n <svg\n *ngIf=\"!showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"h-4 w-4\"\n >\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n <svg\n *ngIf=\"showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"h-4 w-4\"\n >\n <path d=\"M3 3l18 18\"></path>\n <path d=\"M10.58 10.58a2 2 0 1 0 2.83 2.83\"></path>\n <path d=\"M9.88 5.09A10.94 10.94 0 0 1 12 4.91c5.05 0 9.27 3.11 10.6 7.09a1 1 0 0 1 0 .64 11.9 11.9 0 0 1-1.84 3.2\"></path>\n <path d=\"M6.61 6.61A11.81 11.81 0 0 0 1.4 12a1 1 0 0 0 0 .64 11.83 11.83 0 0 0 8.79 7.54\"></path>\n </svg>\n </button>\n </div>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm text-muted-foreground\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm text-destructive\">{{ errorText }}</p>\n</div>\n" }]
1828
1828
  }], propDecorators: { id: [{
1829
1829
  type: Input
1830
1830
  }], value: [{
@@ -1884,10 +1884,10 @@ class PdmInputGroupComponent {
1884
1884
  }
1885
1885
  }
1886
1886
  PdmInputGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1887
- PdmInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmInputGroupComponent, selector: "pdm-input-group", inputs: { id: "id", type: "type", value: "value", placeholder: "placeholder", disabled: "disabled", invalid: "invalid", prefixText: "prefixText", suffixText: "suffixText", prefixIcon: "prefixIcon", suffixIcon: "suffixIcon", buttonText: "buttonText", className: "className" }, outputs: { valueChange: "valueChange", buttonClick: "buttonClick" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'flex w-full items-center gap-2',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n>\n <div\n [ngClass]=\"[\n 'flex h-9 min-w-0 flex-1 items-center overflow-hidden rounded-[8px] border bg-[hsl(var(--background))] px-3 py-1 text-base leading-6 text-[hsl(var(--foreground))] shadow-sm transition-[border-color,box-shadow]',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n !invalid && !disabled ? 'focus-within:border-[hsl(var(--ring))] focus-within:shadow-[0_0_0_3px_hsl(var(--ring)/0.5)]' : '',\n invalid && !disabled ? 'focus-within:border-[hsl(var(--destructive))] focus-within:shadow-[0_0_0_3px_hsl(var(--destructive)/0.2)]' : '',\n disabled ? 'cursor-not-allowed' : ''\n ]\"\n >\n <div\n *ngIf=\"prefixText || prefixIcon\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pr-2 text-sm leading-5 text-[hsl(var(--muted-foreground))]\"\n >\n <pdm-icon *ngIf=\"prefixIcon\" [name]=\"prefixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"prefixText\">{{ prefixText }}</span>\n <ng-content select=\"[pdmInputGroupPrefix]\"></ng-content>\n </div>\n\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-base leading-6 text-[hsl(var(--foreground))] outline-none placeholder:text-[hsl(var(--muted-foreground))]',\n type === 'file' ? 'text-sm leading-5 file:mr-1 file:border-0 file:bg-transparent file:px-[6px] file:py-px file:text-sm file:font-medium file:leading-5 file:text-[hsl(var(--foreground))]' : ''\n ]\"\n (input)=\"onInput($event)\"\n />\n\n <div\n *ngIf=\"!buttonText && (suffixText || suffixIcon)\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pl-2 text-sm leading-5 text-[hsl(var(--muted-foreground))]\"\n >\n <pdm-icon *ngIf=\"suffixIcon\" [name]=\"suffixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"suffixText\" class=\"font-medium\">{{ suffixText }}</span>\n <ng-content select=\"[pdmInputGroupSuffix]\"></ng-content>\n </div>\n </div>\n\n <button\n *ngIf=\"buttonText\"\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"inline-flex h-9 shrink-0 items-center justify-center rounded-[10px] border border-[hsl(var(--input))] bg-[hsl(var(--background))] px-4 py-2 text-sm font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm outline-none transition-[border-color,box-shadow] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed\"\n (click)=\"onButtonClick($event)\"\n >\n {{ buttonText }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1887
+ PdmInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmInputGroupComponent, selector: "pdm-input-group", inputs: { id: "id", type: "type", value: "value", placeholder: "placeholder", disabled: "disabled", invalid: "invalid", prefixText: "prefixText", suffixText: "suffixText", prefixIcon: "prefixIcon", suffixIcon: "suffixIcon", buttonText: "buttonText", className: "className" }, outputs: { valueChange: "valueChange", buttonClick: "buttonClick" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'flex w-full items-center gap-2',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n>\n <div\n [ngClass]=\"[\n 'flex h-9 min-w-0 flex-1 items-center overflow-hidden rounded-md border border-input bg-transparent px-3 py-1 text-sm text-foreground shadow-sm transition-colors focus-within:border-ring focus-within:ring-2 focus-within:ring-ring/50',\n invalid ? 'border-destructive focus-within:ring-destructive' : '',\n disabled ? 'cursor-not-allowed' : ''\n ]\"\n >\n <div\n *ngIf=\"prefixText || prefixIcon\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pr-2 text-sm text-muted-foreground\"\n >\n <pdm-icon *ngIf=\"prefixIcon\" [name]=\"prefixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"prefixText\">{{ prefixText }}</span>\n <ng-content select=\"[pdmInputGroupPrefix]\"></ng-content>\n </div>\n\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-sm text-foreground outline-none placeholder:text-muted-foreground aria-invalid:placeholder:text-destructive/70',\n type === 'file' ? 'text-sm file:mr-2 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground' : ''\n ]\"\n (input)=\"onInput($event)\"\n />\n\n <div\n *ngIf=\"!buttonText && (suffixText || suffixIcon)\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pl-2 text-sm text-muted-foreground\"\n >\n <pdm-icon *ngIf=\"suffixIcon\" [name]=\"suffixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"suffixText\" class=\"font-medium\">{{ suffixText }}</span>\n <ng-content select=\"[pdmInputGroupSuffix]\"></ng-content>\n </div>\n </div>\n\n <button\n *ngIf=\"buttonText\"\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"inline-flex h-9 shrink-0 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed\"\n (click)=\"onButtonClick($event)\"\n >\n {{ buttonText }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1888
1888
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputGroupComponent, decorators: [{
1889
1889
  type: Component,
1890
- args: [{ selector: 'pdm-input-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'flex w-full items-center gap-2',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n>\n <div\n [ngClass]=\"[\n 'flex h-9 min-w-0 flex-1 items-center overflow-hidden rounded-[8px] border bg-[hsl(var(--background))] px-3 py-1 text-base leading-6 text-[hsl(var(--foreground))] shadow-sm transition-[border-color,box-shadow]',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n !invalid && !disabled ? 'focus-within:border-[hsl(var(--ring))] focus-within:shadow-[0_0_0_3px_hsl(var(--ring)/0.5)]' : '',\n invalid && !disabled ? 'focus-within:border-[hsl(var(--destructive))] focus-within:shadow-[0_0_0_3px_hsl(var(--destructive)/0.2)]' : '',\n disabled ? 'cursor-not-allowed' : ''\n ]\"\n >\n <div\n *ngIf=\"prefixText || prefixIcon\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pr-2 text-sm leading-5 text-[hsl(var(--muted-foreground))]\"\n >\n <pdm-icon *ngIf=\"prefixIcon\" [name]=\"prefixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"prefixText\">{{ prefixText }}</span>\n <ng-content select=\"[pdmInputGroupPrefix]\"></ng-content>\n </div>\n\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-base leading-6 text-[hsl(var(--foreground))] outline-none placeholder:text-[hsl(var(--muted-foreground))]',\n type === 'file' ? 'text-sm leading-5 file:mr-1 file:border-0 file:bg-transparent file:px-[6px] file:py-px file:text-sm file:font-medium file:leading-5 file:text-[hsl(var(--foreground))]' : ''\n ]\"\n (input)=\"onInput($event)\"\n />\n\n <div\n *ngIf=\"!buttonText && (suffixText || suffixIcon)\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pl-2 text-sm leading-5 text-[hsl(var(--muted-foreground))]\"\n >\n <pdm-icon *ngIf=\"suffixIcon\" [name]=\"suffixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"suffixText\" class=\"font-medium\">{{ suffixText }}</span>\n <ng-content select=\"[pdmInputGroupSuffix]\"></ng-content>\n </div>\n </div>\n\n <button\n *ngIf=\"buttonText\"\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"inline-flex h-9 shrink-0 items-center justify-center rounded-[10px] border border-[hsl(var(--input))] bg-[hsl(var(--background))] px-4 py-2 text-sm font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm outline-none transition-[border-color,box-shadow] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed\"\n (click)=\"onButtonClick($event)\"\n >\n {{ buttonText }}\n </button>\n</div>\n" }]
1890
+ args: [{ selector: 'pdm-input-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'flex w-full items-center gap-2',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n>\n <div\n [ngClass]=\"[\n 'flex h-9 min-w-0 flex-1 items-center overflow-hidden rounded-md border border-input bg-transparent px-3 py-1 text-sm text-foreground shadow-sm transition-colors focus-within:border-ring focus-within:ring-2 focus-within:ring-ring/50',\n invalid ? 'border-destructive focus-within:ring-destructive' : '',\n disabled ? 'cursor-not-allowed' : ''\n ]\"\n >\n <div\n *ngIf=\"prefixText || prefixIcon\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pr-2 text-sm text-muted-foreground\"\n >\n <pdm-icon *ngIf=\"prefixIcon\" [name]=\"prefixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"prefixText\">{{ prefixText }}</span>\n <ng-content select=\"[pdmInputGroupPrefix]\"></ng-content>\n </div>\n\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-sm text-foreground outline-none placeholder:text-muted-foreground aria-invalid:placeholder:text-destructive/70',\n type === 'file' ? 'text-sm file:mr-2 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground' : ''\n ]\"\n (input)=\"onInput($event)\"\n />\n\n <div\n *ngIf=\"!buttonText && (suffixText || suffixIcon)\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pl-2 text-sm text-muted-foreground\"\n >\n <pdm-icon *ngIf=\"suffixIcon\" [name]=\"suffixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"suffixText\" class=\"font-medium\">{{ suffixText }}</span>\n <ng-content select=\"[pdmInputGroupSuffix]\"></ng-content>\n </div>\n </div>\n\n <button\n *ngIf=\"buttonText\"\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"inline-flex h-9 shrink-0 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed\"\n (click)=\"onButtonClick($event)\"\n >\n {{ buttonText }}\n </button>\n</div>\n" }]
1891
1891
  }], propDecorators: { id: [{
1892
1892
  type: Input
1893
1893
  }], type: [{
@@ -2063,10 +2063,10 @@ class PdmKbdComponent {
2063
2063
  }
2064
2064
  }
2065
2065
  PdmKbdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2066
- PdmKbdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmKbdComponent, selector: "pdm-kbd", inputs: { className: "className" }, ngImport: i0, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-[24px] items-center justify-center rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-1.5 font-mono text-xs font-medium text-[hsl(var(--muted-foreground))]', className]\">\n <ng-content></ng-content>\n</kbd>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2066
+ PdmKbdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmKbdComponent, selector: "pdm-kbd", inputs: { className: "className" }, ngImport: i0, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2067
2067
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdComponent, decorators: [{
2068
2068
  type: Component,
2069
- args: [{ selector: 'pdm-kbd', changeDetection: ChangeDetectionStrategy.OnPush, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-[24px] items-center justify-center rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-1.5 font-mono text-xs font-medium text-[hsl(var(--muted-foreground))]', className]\">\n <ng-content></ng-content>\n</kbd>\n" }]
2069
+ args: [{ selector: 'pdm-kbd', changeDetection: ChangeDetectionStrategy.OnPush, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n" }]
2070
2070
  }], propDecorators: { className: [{
2071
2071
  type: Input
2072
2072
  }] } });
@@ -2079,10 +2079,10 @@ class PdmLabelComponent {
2079
2079
  }
2080
2080
  }
2081
2081
  PdmLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2082
- PdmLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmLabelComponent, selector: "pdm-label", inputs: { forId: "forId", required: "required", className: "className" }, ngImport: i0, template: "<label\n [attr.for]=\"forId\"\n [ngClass]=\"['text-sm font-medium leading-5 text-[hsl(var(--foreground))] peer-disabled:cursor-not-allowed peer-disabled:opacity-70', className]\"\n>\n <ng-content></ng-content>\n <span *ngIf=\"required\" class=\"ml-1 text-[hsl(var(--destructive))]\">*</span>\n</label>\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 });
2082
+ PdmLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmLabelComponent, selector: "pdm-label", inputs: { forId: "forId", required: "required", className: "className" }, ngImport: i0, template: "<label\n [attr.for]=\"forId\"\n [ngClass]=\"['text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70', className]\"\n>\n <ng-content></ng-content>\n <span *ngIf=\"required\" class=\"ml-1 text-destructive\">*</span>\n</label>\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 });
2083
2083
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmLabelComponent, decorators: [{
2084
2084
  type: Component,
2085
- args: [{ selector: 'pdm-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n [attr.for]=\"forId\"\n [ngClass]=\"['text-sm font-medium leading-5 text-[hsl(var(--foreground))] peer-disabled:cursor-not-allowed peer-disabled:opacity-70', className]\"\n>\n <ng-content></ng-content>\n <span *ngIf=\"required\" class=\"ml-1 text-[hsl(var(--destructive))]\">*</span>\n</label>\n" }]
2085
+ args: [{ selector: 'pdm-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n [attr.for]=\"forId\"\n [ngClass]=\"['text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70', className]\"\n>\n <ng-content></ng-content>\n <span *ngIf=\"required\" class=\"ml-1 text-destructive\">*</span>\n</label>\n" }]
2086
2086
  }], propDecorators: { forId: [{
2087
2087
  type: Input
2088
2088
  }], required: [{
@@ -2113,10 +2113,10 @@ class PdmMenubarComponent {
2113
2113
  }
2114
2114
  }
2115
2115
  PdmMenubarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmMenubarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2116
- PdmMenubarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmMenubarComponent, selector: "pdm-menubar", inputs: { menus: "menus", className: "className" }, outputs: { itemSelect: "itemSelect" }, ngImport: i0, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-1 shadow-sm', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 items-center rounded-sm px-3 text-sm leading-5 text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))]\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-50 mt-1 min-w-[12rem] rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm leading-5 outline-none hover:bg-[hsl(var(--accent))] disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2116
+ PdmMenubarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmMenubarComponent, selector: "pdm-menubar", inputs: { menus: "menus", className: "className" }, outputs: { itemSelect: "itemSelect" }, ngImport: i0, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-sm', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 items-center rounded-sm px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-50 mt-1 min-w-48 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2117
2117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmMenubarComponent, decorators: [{
2118
2118
  type: Component,
2119
- args: [{ selector: 'pdm-menubar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-1 shadow-sm', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 items-center rounded-sm px-3 text-sm leading-5 text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))]\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-50 mt-1 min-w-[12rem] rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm leading-5 outline-none hover:bg-[hsl(var(--accent))] disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n" }]
2119
+ args: [{ selector: 'pdm-menubar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-sm', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 items-center rounded-sm px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-50 mt-1 min-w-48 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n" }]
2120
2120
  }], propDecorators: { menus: [{
2121
2121
  type: Input
2122
2122
  }], className: [{
@@ -2141,10 +2141,10 @@ class PdmNativeSelectComponent {
2141
2141
  }
2142
2142
  }
2143
2143
  PdmNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmNativeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2144
- PdmNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmNativeSelectComponent, selector: "pdm-native-select", inputs: { id: "id", value: "value", disabled: "disabled", invalid: "invalid", options: "options", placeholder: "placeholder", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"relative\" [ngClass]=\"className\">\n <select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n (change)=\"onChange($event)\"\n [ngClass]=\"[\n 'flex h-9 w-full appearance-none rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 pr-9 text-sm leading-5 shadow-sm ring-offset-[hsl(var(--background))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]'\n ]\"\n >\n <option value=\"\" disabled>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n </select>\n <pdm-icon className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[hsl(var(--muted-foreground))]\" name=\"chevron-down\" [size]=\"16\"></pdm-icon>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2144
+ PdmNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmNativeSelectComponent, selector: "pdm-native-select", inputs: { id: "id", value: "value", disabled: "disabled", invalid: "invalid", options: "options", placeholder: "placeholder", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"relative\" [ngClass]=\"className\">\n <select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n (change)=\"onChange($event)\"\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 flex h-9 w-full appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50'\n ]\"\n >\n <option value=\"\" disabled>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n </select>\n <pdm-icon className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground\" name=\"chevron-down\" [size]=\"16\"></pdm-icon>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2145
2145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmNativeSelectComponent, decorators: [{
2146
2146
  type: Component,
2147
- args: [{ selector: 'pdm-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\" [ngClass]=\"className\">\n <select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n (change)=\"onChange($event)\"\n [ngClass]=\"[\n 'flex h-9 w-full appearance-none rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 pr-9 text-sm leading-5 shadow-sm ring-offset-[hsl(var(--background))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]'\n ]\"\n >\n <option value=\"\" disabled>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n </select>\n <pdm-icon className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[hsl(var(--muted-foreground))]\" name=\"chevron-down\" [size]=\"16\"></pdm-icon>\n</div>\n" }]
2147
+ args: [{ selector: 'pdm-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\" [ngClass]=\"className\">\n <select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n (change)=\"onChange($event)\"\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 flex h-9 w-full appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50'\n ]\"\n >\n <option value=\"\" disabled>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n </select>\n <pdm-icon className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground\" name=\"chevron-down\" [size]=\"16\"></pdm-icon>\n</div>\n" }]
2148
2148
  }], propDecorators: { id: [{
2149
2149
  type: Input
2150
2150
  }], value: [{
@@ -2170,10 +2170,10 @@ class PdmNavigationMenuComponent {
2170
2170
  }
2171
2171
  }
2172
2172
  PdmNavigationMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmNavigationMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2173
- PdmNavigationMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmNavigationMenuComponent, selector: "pdm-navigation-menu", inputs: { items: "items", className: "className" }, ngImport: i0, template: "<nav [ngClass]=\"['relative z-10 flex max-w-max flex-1 items-center justify-center', className]\">\n <ul class=\"group flex flex-1 list-none items-center justify-center space-x-1\">\n <li *ngFor=\"let item of items\">\n <a\n [href]=\"item.href || '#'\"\n [ngClass]=\"[\n 'group inline-flex h-9 w-max items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n item.active ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]' : 'text-[hsl(var(--foreground))]'\n ]\"\n >\n {{ item.label }}\n </a>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2173
+ PdmNavigationMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmNavigationMenuComponent, selector: "pdm-navigation-menu", inputs: { items: "items", className: "className" }, ngImport: i0, template: "<nav [ngClass]=\"['relative z-10 flex max-w-max flex-1 items-center justify-center', className]\">\n <ul class=\"group flex flex-1 list-none items-center justify-center space-x-1\">\n <li *ngFor=\"let item of items\">\n <a\n [href]=\"item.href || '#'\"\n [ngClass]=\"[\n 'group inline-flex h-9 w-max items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.active ? 'bg-accent text-accent-foreground' : 'text-foreground'\n ]\"\n >\n {{ item.label }}\n </a>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2174
2174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmNavigationMenuComponent, decorators: [{
2175
2175
  type: Component,
2176
- args: [{ selector: 'pdm-navigation-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav [ngClass]=\"['relative z-10 flex max-w-max flex-1 items-center justify-center', className]\">\n <ul class=\"group flex flex-1 list-none items-center justify-center space-x-1\">\n <li *ngFor=\"let item of items\">\n <a\n [href]=\"item.href || '#'\"\n [ngClass]=\"[\n 'group inline-flex h-9 w-max items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n item.active ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]' : 'text-[hsl(var(--foreground))]'\n ]\"\n >\n {{ item.label }}\n </a>\n </li>\n </ul>\n</nav>\n" }]
2176
+ args: [{ selector: 'pdm-navigation-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav [ngClass]=\"['relative z-10 flex max-w-max flex-1 items-center justify-center', className]\">\n <ul class=\"group flex flex-1 list-none items-center justify-center space-x-1\">\n <li *ngFor=\"let item of items\">\n <a\n [href]=\"item.href || '#'\"\n [ngClass]=\"[\n 'group inline-flex h-9 w-max items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.active ? 'bg-accent text-accent-foreground' : 'text-foreground'\n ]\"\n >\n {{ item.label }}\n </a>\n </li>\n </ul>\n</nav>\n" }]
2177
2177
  }], propDecorators: { items: [{
2178
2178
  type: Input
2179
2179
  }], className: [{
@@ -2207,10 +2207,10 @@ class PdmPaginationComponent {
2207
2207
  }
2208
2208
  }
2209
2209
  PdmPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2210
- PdmPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPaginationComponent, selector: "pdm-pagination", inputs: { page: "page", pageCount: "pageCount", maxVisible: "maxVisible", className: "className" }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav aria-label=\"Pagination\" [ngClass]=\"['mx-auto flex w-full justify-center', className]\">\n <ul class=\"flex items-center gap-1\">\n <li>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center gap-1 rounded-md px-2 text-sm text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"setPage(page - 1)\">\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-6 min-w-[24px] items-center justify-center rounded-md px-2 text-sm',\n pageNumber === page\n ? 'border border-[hsl(var(--border))] bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-sm'\n : 'text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]'\n ]\"\n (click)=\"setPage(pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </li>\n <li>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center gap-1 rounded-md px-2 text-sm text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] disabled:opacity-50\" [disabled]=\"page >= pageCount\" (click)=\"setPage(page + 1)\">\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2210
+ PdmPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPaginationComponent, selector: "pdm-pagination", inputs: { page: "page", pageCount: "pageCount", maxVisible: "maxVisible", className: "className" }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav aria-label=\"Pagination\" [ngClass]=\"['mx-auto flex w-full justify-center', className]\">\n <ul class=\"flex items-center gap-1\">\n <li>\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center gap-1 rounded-md px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\" [disabled]=\"page <= 1\" (click)=\"setPage(page - 1)\">\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'border border-border bg-muted text-foreground shadow-sm'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground'\n ]\"\n (click)=\"setPage(pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </li>\n <li>\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center gap-1 rounded-md px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\" [disabled]=\"page >= pageCount\" (click)=\"setPage(page + 1)\">\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2211
2211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPaginationComponent, decorators: [{
2212
2212
  type: Component,
2213
- args: [{ selector: 'pdm-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav aria-label=\"Pagination\" [ngClass]=\"['mx-auto flex w-full justify-center', className]\">\n <ul class=\"flex items-center gap-1\">\n <li>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center gap-1 rounded-md px-2 text-sm text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"setPage(page - 1)\">\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-6 min-w-[24px] items-center justify-center rounded-md px-2 text-sm',\n pageNumber === page\n ? 'border border-[hsl(var(--border))] bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-sm'\n : 'text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]'\n ]\"\n (click)=\"setPage(pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </li>\n <li>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center gap-1 rounded-md px-2 text-sm text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] disabled:opacity-50\" [disabled]=\"page >= pageCount\" (click)=\"setPage(page + 1)\">\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n" }]
2213
+ args: [{ selector: 'pdm-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav aria-label=\"Pagination\" [ngClass]=\"['mx-auto flex w-full justify-center', className]\">\n <ul class=\"flex items-center gap-1\">\n <li>\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center gap-1 rounded-md px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\" [disabled]=\"page <= 1\" (click)=\"setPage(page - 1)\">\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'border border-border bg-muted text-foreground shadow-sm'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground'\n ]\"\n (click)=\"setPage(pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </li>\n <li>\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center gap-1 rounded-md px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\" [disabled]=\"page >= pageCount\" (click)=\"setPage(page + 1)\">\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n" }]
2214
2214
  }], propDecorators: { page: [{
2215
2215
  type: Input
2216
2216
  }], pageCount: [{
@@ -2254,10 +2254,10 @@ class PdmPopoverComponent {
2254
2254
  }
2255
2255
  }
2256
2256
  PdmPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPopoverComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2257
- PdmPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPopoverComponent, selector: "pdm-popover", inputs: { open: "open", triggerText: "triggerText", className: "className", panelClassName: "panelClassName", showTrigger: "showTrigger" }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button *ngIf=\"showTrigger\" type=\"button\" class=\"inline-flex h-8 items-center justify-center rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 text-sm font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\" [attr.aria-expanded]=\"open\" (click)=\"toggle()\">{{ triggerText }}</button>\n <div *ngIf=\"open || !showTrigger\" [ngClass]=\"['absolute left-0 top-full z-30 mt-2 min-w-[320px] rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-md', panelClassName]\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2257
+ PdmPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPopoverComponent, selector: "pdm-popover", inputs: { open: "open", triggerText: "triggerText", className: "className", panelClassName: "panelClassName", showTrigger: "showTrigger" }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button *ngIf=\"showTrigger\" type=\"button\" class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-3 text-sm font-medium text-foreground shadow-sm\" [attr.aria-expanded]=\"open\" (click)=\"toggle()\">{{ triggerText }}</button>\n <div *ngIf=\"open || !showTrigger\" [ngClass]=\"['absolute left-0 top-full z-30 mt-2 min-w-80 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md', panelClassName]\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2258
2258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPopoverComponent, decorators: [{
2259
2259
  type: Component,
2260
- args: [{ selector: 'pdm-popover', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button *ngIf=\"showTrigger\" type=\"button\" class=\"inline-flex h-8 items-center justify-center rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 text-sm font-medium leading-5 text-[hsl(var(--foreground))] shadow-sm\" [attr.aria-expanded]=\"open\" (click)=\"toggle()\">{{ triggerText }}</button>\n <div *ngIf=\"open || !showTrigger\" [ngClass]=\"['absolute left-0 top-full z-30 mt-2 min-w-[320px] rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-md', panelClassName]\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2260
+ args: [{ selector: 'pdm-popover', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button *ngIf=\"showTrigger\" type=\"button\" class=\"inline-flex h-9 items-center justify-center rounded-md border border-input bg-background px-3 text-sm font-medium text-foreground shadow-sm\" [attr.aria-expanded]=\"open\" (click)=\"toggle()\">{{ triggerText }}</button>\n <div *ngIf=\"open || !showTrigger\" [ngClass]=\"['absolute left-0 top-full z-30 mt-2 min-w-80 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md', panelClassName]\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2261
2261
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { open: [{
2262
2262
  type: Input
2263
2263
  }], triggerText: [{
@@ -2294,10 +2294,10 @@ class PdmProgressComponent {
2294
2294
  }
2295
2295
  }
2296
2296
  PdmProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2297
- PdmProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmProgressComponent, selector: "pdm-progress", inputs: { value: "value", max: "max", indeterminate: "indeterminate", className: "className" }, ngImport: i0, template: "<div\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"indeterminate ? null : value\"\n [ngClass]=\"['relative h-1.5 w-full overflow-hidden rounded-full bg-[hsl(var(--muted))]', className]\"\n>\n <div [ngClass]=\"['h-full bg-[hsl(var(--foreground))] transition-all', indeterminate ? 'animate-pulse' : '']\" [style.width]=\"width\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2297
+ PdmProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmProgressComponent, selector: "pdm-progress", inputs: { value: "value", max: "max", indeterminate: "indeterminate", className: "className" }, ngImport: i0, template: "<div\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"indeterminate ? null : value\"\n [ngClass]=\"['relative h-1.5 w-full overflow-hidden rounded-full bg-muted', className]\"\n>\n <div [ngClass]=\"['h-full bg-foreground transition-all', indeterminate ? 'animate-pulse' : '']\" [style.width]=\"width\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2298
2298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmProgressComponent, decorators: [{
2299
2299
  type: Component,
2300
- args: [{ selector: 'pdm-progress', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"indeterminate ? null : value\"\n [ngClass]=\"['relative h-1.5 w-full overflow-hidden rounded-full bg-[hsl(var(--muted))]', className]\"\n>\n <div [ngClass]=\"['h-full bg-[hsl(var(--foreground))] transition-all', indeterminate ? 'animate-pulse' : '']\" [style.width]=\"width\"></div>\n</div>\n" }]
2300
+ args: [{ selector: 'pdm-progress', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"indeterminate ? null : value\"\n [ngClass]=\"['relative h-1.5 w-full overflow-hidden rounded-full bg-muted', className]\"\n>\n <div [ngClass]=\"['h-full bg-foreground transition-all', indeterminate ? 'animate-pulse' : '']\" [style.width]=\"width\"></div>\n</div>\n" }]
2301
2301
  }], propDecorators: { value: [{
2302
2302
  type: Input
2303
2303
  }], max: [{
@@ -2325,10 +2325,10 @@ class PdmRadioGroupComponent {
2325
2325
  }
2326
2326
  }
2327
2327
  PdmRadioGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2328
- PdmRadioGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmRadioGroupComponent, selector: "pdm-radio-group", inputs: { name: "name", value: "value", options: "options", direction: "direction", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\n role=\"radiogroup\"\n [ngClass]=\"[\n 'gap-2',\n direction === 'horizontal' ? 'inline-flex items-center' : 'grid',\n className\n ]\"\n>\n <label *ngFor=\"let option of options\" [attr.for]=\"optionId(option)\" class=\"inline-flex cursor-pointer items-center gap-2\">\n <input\n [id]=\"optionId(option)\"\n type=\"radio\"\n [name]=\"name\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n [disabled]=\"option.disabled\"\n class=\"peer sr-only\"\n (change)=\"onChange($event)\"\n />\n <span class=\"relative block h-4 w-4 rounded-full border border-[hsl(var(--input))] bg-[hsl(var(--background))] peer-checked:border-[hsl(var(--foreground))] peer-focus-visible:ring-1 peer-focus-visible:ring-[hsl(var(--foreground))]\">\n <span class=\"absolute left-1/2 top-1/2 hidden h-2 w-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[hsl(var(--foreground))] peer-checked:block\"></span>\n </span>\n <span class=\"text-sm leading-5 text-[hsl(var(--foreground))]\">{{ option.label }}</span>\n </label>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2328
+ PdmRadioGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmRadioGroupComponent, selector: "pdm-radio-group", inputs: { name: "name", value: "value", options: "options", direction: "direction", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\n role=\"radiogroup\"\n [ngClass]=\"[\n 'gap-2 text-sm',\n direction === 'horizontal' ? 'inline-flex items-center' : 'grid',\n className\n ]\"\n>\n <label *ngFor=\"let option of options\" [attr.for]=\"optionId(option)\" class=\"inline-flex cursor-pointer items-center gap-2\">\n <input\n [id]=\"optionId(option)\"\n type=\"radio\"\n [name]=\"name\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n [disabled]=\"option.disabled\"\n class=\"peer sr-only\"\n (change)=\"onChange($event)\"\n />\n <span class=\"relative block h-4 w-4 rounded-full border border-input bg-background peer-checked:border-primary peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background\">\n <span class=\"absolute left-1/2 top-1/2 hidden h-2 w-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary peer-checked:block\"></span>\n </span>\n <span class=\"text-foreground\">{{ option.label }}</span>\n </label>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2329
2329
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmRadioGroupComponent, decorators: [{
2330
2330
  type: Component,
2331
- args: [{ selector: 'pdm-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n role=\"radiogroup\"\n [ngClass]=\"[\n 'gap-2',\n direction === 'horizontal' ? 'inline-flex items-center' : 'grid',\n className\n ]\"\n>\n <label *ngFor=\"let option of options\" [attr.for]=\"optionId(option)\" class=\"inline-flex cursor-pointer items-center gap-2\">\n <input\n [id]=\"optionId(option)\"\n type=\"radio\"\n [name]=\"name\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n [disabled]=\"option.disabled\"\n class=\"peer sr-only\"\n (change)=\"onChange($event)\"\n />\n <span class=\"relative block h-4 w-4 rounded-full border border-[hsl(var(--input))] bg-[hsl(var(--background))] peer-checked:border-[hsl(var(--foreground))] peer-focus-visible:ring-1 peer-focus-visible:ring-[hsl(var(--foreground))]\">\n <span class=\"absolute left-1/2 top-1/2 hidden h-2 w-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[hsl(var(--foreground))] peer-checked:block\"></span>\n </span>\n <span class=\"text-sm leading-5 text-[hsl(var(--foreground))]\">{{ option.label }}</span>\n </label>\n</div>\n" }]
2331
+ args: [{ selector: 'pdm-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n role=\"radiogroup\"\n [ngClass]=\"[\n 'gap-2 text-sm',\n direction === 'horizontal' ? 'inline-flex items-center' : 'grid',\n className\n ]\"\n>\n <label *ngFor=\"let option of options\" [attr.for]=\"optionId(option)\" class=\"inline-flex cursor-pointer items-center gap-2\">\n <input\n [id]=\"optionId(option)\"\n type=\"radio\"\n [name]=\"name\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n [disabled]=\"option.disabled\"\n class=\"peer sr-only\"\n (change)=\"onChange($event)\"\n />\n <span class=\"relative block h-4 w-4 rounded-full border border-input bg-background peer-checked:border-primary peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background\">\n <span class=\"absolute left-1/2 top-1/2 hidden h-2 w-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary peer-checked:block\"></span>\n </span>\n <span class=\"text-foreground\">{{ option.label }}</span>\n </label>\n</div>\n" }]
2332
2332
  }], propDecorators: { name: [{
2333
2333
  type: Input
2334
2334
  }], value: [{
@@ -2350,10 +2350,10 @@ class PdmScrollAreaComponent {
2350
2350
  }
2351
2351
  }
2352
2352
  PdmScrollAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmScrollAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2353
- PdmScrollAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmScrollAreaComponent, selector: "pdm-scroll-area", inputs: { maxHeight: "maxHeight", className: "className" }, ngImport: i0, template: "<div [style.maxHeight]=\"maxHeight\" [ngClass]=\"['relative overflow-auto rounded-[var(--radius)] border border-[hsl(var(--border))]', className]\">\n <div class=\"p-3\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2353
+ PdmScrollAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmScrollAreaComponent, selector: "pdm-scroll-area", inputs: { maxHeight: "maxHeight", className: "className" }, ngImport: i0, template: "<div [style.maxHeight]=\"maxHeight\" [ngClass]=\"['relative overflow-auto rounded-md border border-border', className]\">\n <div class=\"p-3\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2354
2354
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmScrollAreaComponent, decorators: [{
2355
2355
  type: Component,
2356
- args: [{ selector: 'pdm-scroll-area', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.maxHeight]=\"maxHeight\" [ngClass]=\"['relative overflow-auto rounded-[var(--radius)] border border-[hsl(var(--border))]', className]\">\n <div class=\"p-3\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2356
+ args: [{ selector: 'pdm-scroll-area', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.maxHeight]=\"maxHeight\" [ngClass]=\"['relative overflow-auto rounded-md border border-border', className]\">\n <div class=\"p-3\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2357
2357
  }], propDecorators: { maxHeight: [{
2358
2358
  type: Input
2359
2359
  }], className: [{
@@ -2375,10 +2375,10 @@ class PdmSelectComponent {
2375
2375
  }
2376
2376
  }
2377
2377
  PdmSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2378
- PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex h-9 w-full rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 text-sm leading-5 text-[hsl(var(--foreground))] shadow-sm ring-offset-[hsl(var(--background))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n className\n ]\"\n (change)=\"onChange($event)\"\n>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n</select>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2378
+ PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\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 flex h-9 w-full rounded-md border bg-transparent px-3 py-2 text-sm text-foreground shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className\n ]\"\n (change)=\"onChange($event)\"\n>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n</select>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2379
2379
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, decorators: [{
2380
2380
  type: Component,
2381
- args: [{ selector: 'pdm-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex h-9 w-full rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 text-sm leading-5 text-[hsl(var(--foreground))] shadow-sm ring-offset-[hsl(var(--background))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n className\n ]\"\n (change)=\"onChange($event)\"\n>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n</select>\n" }]
2381
+ args: [{ selector: 'pdm-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\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 flex h-9 w-full rounded-md border bg-transparent px-3 py-2 text-sm text-foreground shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className\n ]\"\n (change)=\"onChange($event)\"\n>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n</select>\n" }]
2382
2382
  }], propDecorators: { id: [{
2383
2383
  type: Input
2384
2384
  }], value: [{
@@ -2406,10 +2406,10 @@ class PdmSeparatorComponent {
2406
2406
  }
2407
2407
  }
2408
2408
  PdmSeparatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2409
- PdmSeparatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSeparatorComponent, selector: "pdm-separator", inputs: { orientation: "orientation", decorative: "decorative", className: "className" }, ngImport: i0, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-[hsl(var(--border))]', orientationClass, className]\"\n></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2409
+ PdmSeparatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSeparatorComponent, selector: "pdm-separator", inputs: { orientation: "orientation", decorative: "decorative", className: "className" }, ngImport: i0, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-border', orientationClass, className]\"\n></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2410
2410
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSeparatorComponent, decorators: [{
2411
2411
  type: Component,
2412
- args: [{ selector: 'pdm-separator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-[hsl(var(--border))]', orientationClass, className]\"\n></div>\n" }]
2412
+ args: [{ selector: 'pdm-separator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-border', orientationClass, className]\"\n></div>\n" }]
2413
2413
  }], propDecorators: { orientation: [{
2414
2414
  type: Input
2415
2415
  }], decorative: [{
@@ -2439,10 +2439,10 @@ class PdmSheetComponent {
2439
2439
  }
2440
2440
  }
2441
2441
  PdmSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2442
- PdmSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSheetComponent, selector: "pdm-sheet", inputs: { open: "open", side: "side", className: "className" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 bg-[hsl(var(--foreground))]/55\" aria-label=\"Close sheet\" (click)=\"close()\"></button>\n\n <section [ngClass]=\"['absolute bg-[hsl(var(--background))] border-[hsl(var(--border))] p-6 shadow-md', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 rounded-sm opacity-70 transition-opacity hover:opacity-100\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2442
+ PdmSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSheetComponent, selector: "pdm-sheet", inputs: { open: "open", side: "side", className: "className" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 bg-foreground/80\" aria-label=\"Close sheet\" (click)=\"close()\"></button>\n\n <section [ngClass]=\"['absolute border border-border bg-background p-6 shadow-lg', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 rounded-sm 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\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2443
2443
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSheetComponent, decorators: [{
2444
2444
  type: Component,
2445
- args: [{ selector: 'pdm-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 bg-[hsl(var(--foreground))]/55\" aria-label=\"Close sheet\" (click)=\"close()\"></button>\n\n <section [ngClass]=\"['absolute bg-[hsl(var(--background))] border-[hsl(var(--border))] p-6 shadow-md', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 rounded-sm opacity-70 transition-opacity hover:opacity-100\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n" }]
2445
+ args: [{ selector: 'pdm-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 bg-foreground/80\" aria-label=\"Close sheet\" (click)=\"close()\"></button>\n\n <section [ngClass]=\"['absolute border border-border bg-background p-6 shadow-lg', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 rounded-sm 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\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n" }]
2446
2446
  }], propDecorators: { open: [{
2447
2447
  type: Input
2448
2448
  }], side: [{
@@ -2460,10 +2460,10 @@ class PdmSidebarComponent {
2460
2460
  }
2461
2461
  }
2462
2462
  PdmSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2463
- PdmSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSidebarComponent, selector: "pdm-sidebar", inputs: { collapsed: "collapsed", className: "className" }, ngImport: i0, template: "<aside [ngClass]=\"['h-full border-r border-[hsl(var(--border))] bg-[hsl(var(--background))] transition-all', collapsed ? 'w-14' : 'w-64', className]\">\n <ng-content></ng-content>\n</aside>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2463
+ PdmSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSidebarComponent, selector: "pdm-sidebar", inputs: { collapsed: "collapsed", className: "className" }, ngImport: i0, template: "<aside [ngClass]=\"['h-full border-r border-border bg-background transition-all', collapsed ? 'w-14' : 'w-64', className]\">\n <ng-content></ng-content>\n</aside>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2464
2464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSidebarComponent, decorators: [{
2465
2465
  type: Component,
2466
- args: [{ selector: 'pdm-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside [ngClass]=\"['h-full border-r border-[hsl(var(--border))] bg-[hsl(var(--background))] transition-all', collapsed ? 'w-14' : 'w-64', className]\">\n <ng-content></ng-content>\n</aside>\n" }]
2466
+ args: [{ selector: 'pdm-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside [ngClass]=\"['h-full border-r border-border bg-background transition-all', collapsed ? 'w-14' : 'w-64', className]\">\n <ng-content></ng-content>\n</aside>\n" }]
2467
2467
  }], propDecorators: { collapsed: [{
2468
2468
  type: Input
2469
2469
  }], className: [{
@@ -2476,10 +2476,10 @@ class PdmSkeletonComponent {
2476
2476
  }
2477
2477
  }
2478
2478
  PdmSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2479
- PdmSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSkeletonComponent, selector: "pdm-skeleton", inputs: { className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-[hsl(var(--muted))]', className]\"></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2479
+ PdmSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSkeletonComponent, selector: "pdm-skeleton", inputs: { className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-muted', className]\"></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2480
2480
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSkeletonComponent, decorators: [{
2481
2481
  type: Component,
2482
- args: [{ selector: 'pdm-skeleton', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-[hsl(var(--muted))]', className]\"></div>\n" }]
2482
+ args: [{ selector: 'pdm-skeleton', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-muted', className]\"></div>\n" }]
2483
2483
  }], propDecorators: { className: [{
2484
2484
  type: Input
2485
2485
  }] } });
@@ -2507,10 +2507,10 @@ class PdmSliderComponent {
2507
2507
  }
2508
2508
  }
2509
2509
  PdmSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2510
- PdmSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSliderComponent, selector: "pdm-slider", inputs: { min: "min", max: "max", step: "step", value: "value", disabled: "disabled", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['relative h-5 w-full', className]\">\n <div class=\"absolute left-0 right-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-[hsl(var(--muted))]\"></div>\n <div class=\"absolute left-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-[hsl(var(--foreground))]\" [style.width.%]=\"percentage\"></div>\n <div class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border border-[hsl(var(--foreground))] bg-[hsl(var(--background))] shadow-sm\" [style.left.%]=\"percentage\"></div>\n <input\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n class=\"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n (input)=\"onInput($event)\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2510
+ PdmSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSliderComponent, selector: "pdm-slider", inputs: { min: "min", max: "max", step: "step", value: "value", disabled: "disabled", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['relative h-5 w-full', className]\">\n <div class=\"absolute left-0 right-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-muted\"></div>\n <div class=\"absolute left-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-foreground\" [style.width.%]=\"percentage\"></div>\n <div class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border border-foreground bg-background shadow-sm\" [style.left.%]=\"percentage\"></div>\n <input\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n class=\"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n (input)=\"onInput($event)\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2511
2511
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSliderComponent, decorators: [{
2512
2512
  type: Component,
2513
- args: [{ selector: 'pdm-slider', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative h-5 w-full', className]\">\n <div class=\"absolute left-0 right-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-[hsl(var(--muted))]\"></div>\n <div class=\"absolute left-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-[hsl(var(--foreground))]\" [style.width.%]=\"percentage\"></div>\n <div class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border border-[hsl(var(--foreground))] bg-[hsl(var(--background))] shadow-sm\" [style.left.%]=\"percentage\"></div>\n <input\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n class=\"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n (input)=\"onInput($event)\"\n />\n</div>\n" }]
2513
+ args: [{ selector: 'pdm-slider', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative h-5 w-full', className]\">\n <div class=\"absolute left-0 right-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-muted\"></div>\n <div class=\"absolute left-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-foreground\" [style.width.%]=\"percentage\"></div>\n <div class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border border-foreground bg-background shadow-sm\" [style.left.%]=\"percentage\"></div>\n <input\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n class=\"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n (input)=\"onInput($event)\"\n />\n</div>\n" }]
2514
2514
  }], propDecorators: { min: [{
2515
2515
  type: Input
2516
2516
  }], max: [{
@@ -2542,14 +2542,14 @@ class PdmSonnerComponent {
2542
2542
  return 'border-red-200 bg-red-50 text-red-900';
2543
2543
  if (this.tone === 'warning')
2544
2544
  return 'border-amber-200 bg-amber-50 text-amber-900';
2545
- return 'border-[hsl(var(--border))] bg-[hsl(var(--background))] text-[hsl(var(--foreground))]';
2545
+ return 'border-border bg-background text-foreground';
2546
2546
  }
2547
2547
  }
2548
2548
  PdmSonnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSonnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2549
- PdmSonnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSonnerComponent, selector: "pdm-sonner", inputs: { title: "title", description: "description", tone: "tone", className: "className" }, outputs: { dismissed: "dismissed" }, ngImport: i0, template: "<div [ngClass]=\"['flex w-full max-w-sm items-start gap-3 rounded-lg border p-4 shadow-lg', toneClass, className]\" role=\"status\" aria-live=\"polite\">\n <div class=\"grid gap-0.5\">\n <p *ngIf=\"title\" class=\"text-sm font-semibold\">{{ title }}</p>\n <p *ngIf=\"description\" class=\"text-sm opacity-90\">{{ description }}</p>\n <ng-content></ng-content>\n </div>\n <button type=\"button\" class=\"ml-auto rounded-sm opacity-70 transition-opacity hover:opacity-100\" (click)=\"dismissed.emit()\" aria-label=\"Dismiss\">\n <pdm-icon name=\"x\" [size]=\"14\"></pdm-icon>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2549
+ PdmSonnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSonnerComponent, selector: "pdm-sonner", inputs: { title: "title", description: "description", tone: "tone", className: "className" }, outputs: { dismissed: "dismissed" }, ngImport: i0, template: "<div [ngClass]=\"['flex w-full max-w-sm items-start gap-3 rounded-lg border p-4 shadow-lg', toneClass, className]\" role=\"status\" aria-live=\"polite\">\n <div class=\"grid gap-0.5\">\n <p *ngIf=\"title\" class=\"text-sm font-semibold\">{{ title }}</p>\n <p *ngIf=\"description\" class=\"text-sm opacity-90\">{{ description }}</p>\n <ng-content></ng-content>\n </div>\n <button type=\"button\" class=\"ml-auto rounded-sm 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\" (click)=\"dismissed.emit()\" aria-label=\"Dismiss\">\n <pdm-icon name=\"x\" [size]=\"14\"></pdm-icon>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2550
2550
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSonnerComponent, decorators: [{
2551
2551
  type: Component,
2552
- args: [{ selector: 'pdm-sonner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex w-full max-w-sm items-start gap-3 rounded-lg border p-4 shadow-lg', toneClass, className]\" role=\"status\" aria-live=\"polite\">\n <div class=\"grid gap-0.5\">\n <p *ngIf=\"title\" class=\"text-sm font-semibold\">{{ title }}</p>\n <p *ngIf=\"description\" class=\"text-sm opacity-90\">{{ description }}</p>\n <ng-content></ng-content>\n </div>\n <button type=\"button\" class=\"ml-auto rounded-sm opacity-70 transition-opacity hover:opacity-100\" (click)=\"dismissed.emit()\" aria-label=\"Dismiss\">\n <pdm-icon name=\"x\" [size]=\"14\"></pdm-icon>\n </button>\n</div>\n" }]
2552
+ args: [{ selector: 'pdm-sonner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex w-full max-w-sm items-start gap-3 rounded-lg border p-4 shadow-lg', toneClass, className]\" role=\"status\" aria-live=\"polite\">\n <div class=\"grid gap-0.5\">\n <p *ngIf=\"title\" class=\"text-sm font-semibold\">{{ title }}</p>\n <p *ngIf=\"description\" class=\"text-sm opacity-90\">{{ description }}</p>\n <ng-content></ng-content>\n </div>\n <button type=\"button\" class=\"ml-auto rounded-sm 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\" (click)=\"dismissed.emit()\" aria-label=\"Dismiss\">\n <pdm-icon name=\"x\" [size]=\"14\"></pdm-icon>\n </button>\n</div>\n" }]
2553
2553
  }], propDecorators: { title: [{
2554
2554
  type: Input
2555
2555
  }], description: [{
@@ -2593,10 +2593,10 @@ class PdmSwitchComponent {
2593
2593
  }
2594
2594
  }
2595
2595
  PdmSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2596
- PdmSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSwitchComponent, selector: "pdm-switch", inputs: { id: "id", checked: "checked", disabled: "disabled", label: "label", className: "className" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<label [attr.for]=\"id\" [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <input\n [id]=\"id\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onToggle($event)\"\n />\n <span class=\"relative inline-flex h-6 w-11 items-center rounded-full border border-transparent bg-[hsl(var(--muted))] transition-colors peer-focus-visible:ring-1 peer-focus-visible:ring-[hsl(var(--foreground))] peer-disabled:opacity-50 peer-checked:bg-[hsl(var(--foreground))]\">\n <span class=\"h-5 w-5 translate-x-0.5 rounded-full bg-[hsl(var(--background))] shadow-sm transition-transform peer-checked:translate-x-5\"></span>\n </span>\n <span *ngIf=\"label\" class=\"text-sm leading-5 text-[hsl(var(--foreground))]\">{{ label }}</span>\n</label>\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 });
2596
+ PdmSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSwitchComponent, selector: "pdm-switch", inputs: { id: "id", checked: "checked", disabled: "disabled", label: "label", className: "className" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<label [attr.for]=\"id\" [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <input\n [id]=\"id\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onToggle($event)\"\n />\n <span class=\"relative inline-flex h-6 w-11 items-center rounded-full border border-transparent bg-muted transition-colors peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background peer-disabled:opacity-50 peer-checked:bg-primary\">\n <span class=\"h-5 w-5 translate-x-0.5 rounded-full bg-background shadow-sm transition-transform peer-checked:translate-x-5\"></span>\n </span>\n <span *ngIf=\"label\" class=\"text-sm text-foreground\">{{ label }}</span>\n</label>\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 });
2597
2597
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSwitchComponent, decorators: [{
2598
2598
  type: Component,
2599
- args: [{ selector: 'pdm-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [attr.for]=\"id\" [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <input\n [id]=\"id\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onToggle($event)\"\n />\n <span class=\"relative inline-flex h-6 w-11 items-center rounded-full border border-transparent bg-[hsl(var(--muted))] transition-colors peer-focus-visible:ring-1 peer-focus-visible:ring-[hsl(var(--foreground))] peer-disabled:opacity-50 peer-checked:bg-[hsl(var(--foreground))]\">\n <span class=\"h-5 w-5 translate-x-0.5 rounded-full bg-[hsl(var(--background))] shadow-sm transition-transform peer-checked:translate-x-5\"></span>\n </span>\n <span *ngIf=\"label\" class=\"text-sm leading-5 text-[hsl(var(--foreground))]\">{{ label }}</span>\n</label>\n" }]
2599
+ args: [{ selector: 'pdm-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [attr.for]=\"id\" [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <input\n [id]=\"id\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onToggle($event)\"\n />\n <span class=\"relative inline-flex h-6 w-11 items-center rounded-full border border-transparent bg-muted transition-colors peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background peer-disabled:opacity-50 peer-checked:bg-primary\">\n <span class=\"h-5 w-5 translate-x-0.5 rounded-full bg-background shadow-sm transition-transform peer-checked:translate-x-5\"></span>\n </span>\n <span *ngIf=\"label\" class=\"text-sm text-foreground\">{{ label }}</span>\n</label>\n" }]
2600
2600
  }], propDecorators: { id: [{
2601
2601
  type: Input
2602
2602
  }], checked: [{
@@ -2639,10 +2639,10 @@ class PdmTabsComponent {
2639
2639
  }
2640
2640
  }
2641
2641
  PdmTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2642
- PdmTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTabsComponent, selector: "pdm-tabs", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex items-start rounded-[6px] bg-[hsl(var(--muted))] p-[5px]\">\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center whitespace-nowrap rounded-[3px] px-3 py-1.5 text-sm font-medium leading-5 ring-offset-[hsl(var(--background))] transition-all focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-[hsl(var(--background))] text-[hsl(var(--foreground))] shadow-sm' : 'text-[hsl(var(--muted-foreground))]'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2642
+ PdmTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTabsComponent, selector: "pdm-tabs", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex items-start rounded-md bg-muted p-1\">\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-background text-foreground shadow-sm' : 'text-muted-foreground'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2643
2643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTabsComponent, decorators: [{
2644
2644
  type: Component,
2645
- args: [{ selector: 'pdm-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex items-start rounded-[6px] bg-[hsl(var(--muted))] p-[5px]\">\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center whitespace-nowrap rounded-[3px] px-3 py-1.5 text-sm font-medium leading-5 ring-offset-[hsl(var(--background))] transition-all focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-[hsl(var(--background))] text-[hsl(var(--foreground))] shadow-sm' : 'text-[hsl(var(--muted-foreground))]'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2645
+ args: [{ selector: 'pdm-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex items-start rounded-md bg-muted p-1\">\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-background text-foreground shadow-sm' : 'text-muted-foreground'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2646
2646
  }], propDecorators: { items: [{
2647
2647
  type: Input
2648
2648
  }], value: [{
@@ -2675,10 +2675,10 @@ class PdmTextareaComponent {
2675
2675
  }
2676
2676
  }
2677
2677
  PdmTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2678
- PdmTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTextareaComponent, selector: "pdm-textarea", inputs: { id: "id", value: "value", placeholder: "placeholder", rows: "rows", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", className: "className", textareaClassName: "textareaClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex min-h-[65px] w-full rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 text-sm leading-5 shadow-sm ring-offset-[hsl(var(--background))] placeholder:text-[hsl(var(--muted-foreground))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n textareaClassName\n ]\"\n (input)=\"onInput($event)\"\n ></textarea>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ errorText }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2678
+ PdmTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTextareaComponent, selector: "pdm-textarea", inputs: { id: "id", value: "value", placeholder: "placeholder", rows: "rows", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", className: "className", textareaClassName: "textareaClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-none text-foreground\">{{ label }}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\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 flex min-h-20 w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n textareaClassName\n ]\"\n (input)=\"onInput($event)\"\n ></textarea>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm text-muted-foreground\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm text-destructive\">{{ errorText }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2679
2679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTextareaComponent, decorators: [{
2680
2680
  type: Component,
2681
- args: [{ selector: 'pdm-textarea', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex min-h-[65px] w-full rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 text-sm leading-5 shadow-sm ring-offset-[hsl(var(--background))] placeholder:text-[hsl(var(--muted-foreground))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n textareaClassName\n ]\"\n (input)=\"onInput($event)\"\n ></textarea>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ errorText }}</p>\n</div>\n" }]
2681
+ args: [{ selector: 'pdm-textarea', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-none text-foreground\">{{ label }}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\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 flex min-h-20 w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n textareaClassName\n ]\"\n (input)=\"onInput($event)\"\n ></textarea>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm text-muted-foreground\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm text-destructive\">{{ errorText }}</p>\n</div>\n" }]
2682
2682
  }], propDecorators: { id: [{
2683
2683
  type: Input
2684
2684
  }], value: [{
@@ -2731,10 +2731,10 @@ class PdmToggleComponent {
2731
2731
  }
2732
2732
  }
2733
2733
  PdmToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2734
- PdmToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmToggleComponent, selector: "pdm-toggle", inputs: { pressed: "pressed", disabled: "disabled", size: "size", className: "className" }, outputs: { pressedChange: "pressedChange" }, ngImport: i0, template: "<button\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"pressed\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n sizeClass,\n pressed\n ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]'\n : 'bg-transparent text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n className\n ]\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2734
+ PdmToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmToggleComponent, selector: "pdm-toggle", inputs: { pressed: "pressed", disabled: "disabled", size: "size", className: "className" }, outputs: { pressedChange: "pressedChange" }, ngImport: i0, template: "<button\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"pressed\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n 'ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n sizeClass,\n pressed\n ? 'bg-accent text-accent-foreground'\n : 'bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n className\n ]\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2735
2735
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmToggleComponent, decorators: [{
2736
2736
  type: Component,
2737
- args: [{ selector: 'pdm-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"pressed\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n sizeClass,\n pressed\n ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]'\n : 'bg-transparent text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n className\n ]\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</button>\n" }]
2737
+ args: [{ selector: 'pdm-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"pressed\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n 'ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n sizeClass,\n pressed\n ? 'bg-accent text-accent-foreground'\n : 'bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n className\n ]\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</button>\n" }]
2738
2738
  }], propDecorators: { pressed: [{
2739
2739
  type: Input
2740
2740
  }], disabled: [{
@@ -2761,10 +2761,10 @@ class PdmToggleGroupComponent {
2761
2761
  }
2762
2762
  }
2763
2763
  PdmToggleGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmToggleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2764
- PdmToggleGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmToggleGroupComponent, selector: "pdm-toggle-group", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['inline-flex items-center rounded-md border border-[hsl(var(--border))] p-1', className]\" role=\"group\">\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 items-center justify-center rounded-sm px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n item.value === value\n ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]'\n : 'text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]'\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2764
+ PdmToggleGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmToggleGroupComponent, selector: "pdm-toggle-group", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['inline-flex items-center rounded-md border border-border p-1', className]\" role=\"group\">\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 items-center justify-center rounded-sm px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.value === value\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground'\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2765
2765
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmToggleGroupComponent, decorators: [{
2766
2766
  type: Component,
2767
- args: [{ selector: 'pdm-toggle-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['inline-flex items-center rounded-md border border-[hsl(var(--border))] p-1', className]\" role=\"group\">\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 items-center justify-center rounded-sm px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n item.value === value\n ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]'\n : 'text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]'\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n" }]
2767
+ args: [{ selector: 'pdm-toggle-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['inline-flex items-center rounded-md border border-border p-1', className]\" role=\"group\">\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 items-center justify-center rounded-sm px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.value === value\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground'\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n" }]
2768
2768
  }], propDecorators: { items: [{
2769
2769
  type: Input
2770
2770
  }], value: [{
@@ -2793,10 +2793,10 @@ class PdmTooltipComponent {
2793
2793
  }
2794
2794
  }
2795
2795
  PdmTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2796
- PdmTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTooltipComponent, selector: "pdm-tooltip", inputs: { text: "text", side: "side", className: "className" }, ngImport: i0, template: "<span class=\"relative inline-flex\" [ngClass]=\"className\" (mouseenter)=\"open = true\" (mouseleave)=\"open = false\" (focusin)=\"open = true\" (focusout)=\"open = false\">\n <ng-content></ng-content>\n <span *ngIf=\"open\" [ngClass]=\"['pointer-events-none absolute z-50 overflow-hidden rounded-md bg-[hsl(var(--foreground))] px-3 py-1.5 text-xs text-[hsl(var(--background))] animate-in fade-in-0 zoom-in-95', positionClass]\">\n {{ text }}\n </span>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2796
+ PdmTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTooltipComponent, selector: "pdm-tooltip", inputs: { text: "text", side: "side", className: "className" }, ngImport: i0, template: "<span class=\"relative inline-flex\" [ngClass]=\"className\" (mouseenter)=\"open = true\" (mouseleave)=\"open = false\" (focusin)=\"open = true\" (focusout)=\"open = false\">\n <ng-content></ng-content>\n <span *ngIf=\"open\" [ngClass]=\"['pointer-events-none absolute z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95', positionClass]\">\n {{ text }}\n </span>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2797
2797
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTooltipComponent, decorators: [{
2798
2798
  type: Component,
2799
- args: [{ selector: 'pdm-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"relative inline-flex\" [ngClass]=\"className\" (mouseenter)=\"open = true\" (mouseleave)=\"open = false\" (focusin)=\"open = true\" (focusout)=\"open = false\">\n <ng-content></ng-content>\n <span *ngIf=\"open\" [ngClass]=\"['pointer-events-none absolute z-50 overflow-hidden rounded-md bg-[hsl(var(--foreground))] px-3 py-1.5 text-xs text-[hsl(var(--background))] animate-in fade-in-0 zoom-in-95', positionClass]\">\n {{ text }}\n </span>\n</span>\n" }]
2799
+ args: [{ selector: 'pdm-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"relative inline-flex\" [ngClass]=\"className\" (mouseenter)=\"open = true\" (mouseleave)=\"open = false\" (focusin)=\"open = true\" (focusout)=\"open = false\">\n <ng-content></ng-content>\n <span *ngIf=\"open\" [ngClass]=\"['pointer-events-none absolute z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95', positionClass]\">\n {{ text }}\n </span>\n</span>\n" }]
2800
2800
  }], propDecorators: { text: [{
2801
2801
  type: Input
2802
2802
  }], side: [{