pdm-ui-kit 0.1.20 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/button/button.component.mjs +45 -13
- package/esm2020/lib/components/icon/icon.component.mjs +3 -3
- package/fesm2015/pdm-ui-kit.mjs +46 -14
- package/fesm2015/pdm-ui-kit.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit.mjs +46 -14
- package/fesm2020/pdm-ui-kit.mjs.map +1 -1
- package/lib/components/button/button.component.d.ts +8 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdm-ui-kit.mjs","sources":["../../../src/lib/components/accordion/accordion.component.ts","../../../src/lib/components/accordion/accordion.component.html","../../../src/lib/components/alert/alert.component.ts","../../../src/lib/components/alert/alert.component.html","../../../src/lib/components/alert-dialog/alert-dialog.component.ts","../../../src/lib/components/alert-dialog/alert-dialog.component.html","../../../src/lib/components/aspect-ratio/aspect-ratio.component.ts","../../../src/lib/components/aspect-ratio/aspect-ratio.component.html","../../../src/lib/components/avatar/avatar.component.ts","../../../src/lib/components/avatar/avatar.component.html","../../../src/lib/components/badge/badge.component.ts","../../../src/lib/components/badge/badge.component.html","../../../src/lib/components/breadcrumb/breadcrumb.component.ts","../../../src/lib/components/breadcrumb/breadcrumb.component.html","../../../src/lib/components/button-group/button-group.component.ts","../../../src/lib/components/button-group/button-group.component.html","../../../src/lib/components/button/button.component.ts","../../../src/lib/components/button/button.component.html","../../../src/lib/components/calendar/calendar.component.ts","../../../src/lib/components/calendar/calendar.component.html","../../../src/lib/components/carousel/carousel.component.ts","../../../src/lib/components/carousel/carousel.component.html","../../../src/lib/components/card/card.component.ts","../../../src/lib/components/card/card.component.html","../../../src/lib/components/chart/chart.component.ts","../../../src/lib/components/chart/chart.component.html","../../../src/lib/components/checkbox/checkbox.component.ts","../../../src/lib/components/checkbox/checkbox.component.html","../../../src/lib/components/collapsible/collapsible.component.ts","../../../src/lib/components/collapsible/collapsible.component.html","../../../src/lib/components/combobox/combobox.component.ts","../../../src/lib/components/combobox/combobox.component.html","../../../src/lib/components/icon/icon.component.ts","../../../src/lib/components/icon/icon.component.html","../../../src/lib/components/command/command.component.ts","../../../src/lib/components/command/command.component.html","../../../src/lib/components/context-menu/context-menu.component.ts","../../../src/lib/components/context-menu/context-menu.component.html","../../../src/lib/components/data-table/data-table.component.ts","../../../src/lib/components/data-table/data-table.component.html","../../../src/lib/components/date-picker/date-picker.component.ts","../../../src/lib/components/date-picker/date-picker.component.html","../../../src/lib/components/dialog/dialog.component.ts","../../../src/lib/components/dialog/dialog.component.html","../../../src/lib/components/dropdown-menu/dropdown-menu.component.ts","../../../src/lib/components/dropdown-menu/dropdown-menu.component.html","../../../src/lib/components/drawer/drawer.component.ts","../../../src/lib/components/drawer/drawer.component.html","../../../src/lib/components/empty/empty.component.ts","../../../src/lib/components/empty/empty.component.html","../../../src/lib/components/field/field.component.ts","../../../src/lib/components/field/field.component.html","../../../src/lib/components/hover-card/hover-card.component.ts","../../../src/lib/components/hover-card/hover-card.component.html","../../../src/lib/components/item/item.component.ts","../../../src/lib/components/item/item.component.html","../../../src/lib/components/input/input.component.ts","../../../src/lib/components/input/input.component.html","../../../src/lib/components/input-password/input-password.component.ts","../../../src/lib/components/input-password/input-password.component.html","../../../src/lib/components/input-group/input-group.component.ts","../../../src/lib/components/input-group/input-group.component.html","../../../src/lib/components/input-otp/input-otp.component.ts","../../../src/lib/components/input-otp/input-otp.component.html","../../../src/lib/components/kbd/kbd.component.ts","../../../src/lib/components/kbd/kbd.component.html","../../../src/lib/components/label/label.component.ts","../../../src/lib/components/label/label.component.html","../../../src/lib/components/menubar/menubar.component.ts","../../../src/lib/components/menubar/menubar.component.html","../../../src/lib/components/native-select/native-select.component.ts","../../../src/lib/components/native-select/native-select.component.html","../../../src/lib/components/navigation-menu/navigation-menu.component.ts","../../../src/lib/components/navigation-menu/navigation-menu.component.html","../../../src/lib/components/pagination/pagination.component.ts","../../../src/lib/components/pagination/pagination.component.html","../../../src/lib/components/popover/popover.component.ts","../../../src/lib/components/popover/popover.component.html","../../../src/lib/components/progress/progress.component.ts","../../../src/lib/components/progress/progress.component.html","../../../src/lib/components/radio-group/radio-group.component.ts","../../../src/lib/components/radio-group/radio-group.component.html","../../../src/lib/components/scroll-area/scroll-area.component.ts","../../../src/lib/components/scroll-area/scroll-area.component.html","../../../src/lib/components/select/select.component.ts","../../../src/lib/components/select/select.component.html","../../../src/lib/components/separator/separator.component.ts","../../../src/lib/components/separator/separator.component.html","../../../src/lib/components/sheet/sheet.component.ts","../../../src/lib/components/sheet/sheet.component.html","../../../src/lib/components/sidebar/sidebar.component.ts","../../../src/lib/components/sidebar/sidebar.component.html","../../../src/lib/components/skeleton/skeleton.component.ts","../../../src/lib/components/skeleton/skeleton.component.html","../../../src/lib/components/slider/slider.component.ts","../../../src/lib/components/slider/slider.component.html","../../../src/lib/components/sonner/sonner.component.ts","../../../src/lib/components/sonner/sonner.component.html","../../../src/lib/components/spinner/spinner.component.ts","../../../src/lib/components/spinner/spinner.component.html","../../../src/lib/components/switch/switch.component.ts","../../../src/lib/components/switch/switch.component.html","../../../src/lib/components/table/table.component.ts","../../../src/lib/components/table/table.component.html","../../../src/lib/components/tabs/tabs.component.ts","../../../src/lib/components/tabs/tabs.component.html","../../../src/lib/components/textarea/textarea.component.ts","../../../src/lib/components/textarea/textarea.component.html","../../../src/lib/components/toggle/toggle.component.ts","../../../src/lib/components/toggle/toggle.component.html","../../../src/lib/components/toggle-group/toggle-group.component.ts","../../../src/lib/components/toggle-group/toggle-group.component.html","../../../src/lib/components/tooltip/tooltip.component.ts","../../../src/lib/components/tooltip/tooltip.component.html","../../../src/lib/pdm-ui-kit.module.ts","../../../src/pdm-ui-kit.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmAccordionItem {\n id: string;\n title: string;\n content: string | string[];\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-accordion',\n templateUrl: './accordion.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAccordionComponent {\n @Input() items: PdmAccordionItem[] = [];\n @Input() expandedIndex = -1;\n @Input() className = '';\n\n @Output() expandedIndexChange = new EventEmitter<number>();\n\n isExpanded(index: number): boolean {\n return this.expandedIndex === index;\n }\n\n contentLines(content: string | string[]): string[] {\n if (Array.isArray(content)) return content;\n return content\n .split('\\n')\n .map((line) => line.trim())\n .filter((line) => line.length > 0);\n }\n\n toggle(index: number): void {\n if (this.items[index]?.disabled) return;\n this.expandedIndexChange.emit(this.expandedIndex === index ? -1 : index);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmAlertVariant = 'default' | 'title-only' | 'destructive';\n\n@Component({\n selector: 'pdm-alert',\n templateUrl: './alert.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAlertComponent {\n @Input() variant: PdmAlertVariant = 'default';\n @Input() title = 'Success! Your changes have been saved';\n @Input() description = 'This is an alert with icon, title and description.';\n @Input() details: string[] = [];\n @Input() className = '';\n\n get isDestructive(): boolean {\n return this.variant === 'destructive';\n }\n\n get isTitleOnly(): boolean {\n return this.variant === 'title-only';\n }\n}\n\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAlertDialogComponent {\n @Input() open = false;\n @Input() showTrigger = false;\n @Input() triggerText = 'Show dialog';\n @Input() title = 'Are you absolutely sure?';\n @Input() description = '';\n @Input() confirmText = 'Continue';\n @Input() cancelText = 'Cancel';\n @Input() className = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() confirm = new EventEmitter<void>();\n @Output() cancel = new EventEmitter<void>();\n\n onTriggerClick(): void {\n this.open = true;\n this.openChange.emit(true);\n }\n\n onCancel(): void {\n this.cancel.emit();\n this.open = false;\n this.openChange.emit(false);\n }\n\n onConfirm(): void {\n this.confirm.emit();\n this.open = false;\n this.openChange.emit(false);\n }\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n if (this.open) {\n this.onCancel();\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-aspect-ratio',\n templateUrl: './aspect-ratio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAspectRatioComponent {\n @Input() ratio = 16 / 9;\n @Input() imageSrc = '';\n @Input() imageAlt = '';\n @Input() className = '';\n\n get paddingTop(): string {\n if (!this.ratio || this.ratio <= 0) return '56.25%';\n return (100 / this.ratio).toFixed(4) + '%';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmAvatarShape = 'circle' | 'square';\n\n@Component({\n selector: 'pdm-avatar',\n templateUrl: './avatar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAvatarComponent {\n @Input() src = '';\n @Input() alt = 'Avatar';\n @Input() fallback = 'U';\n @Input() shape: PdmAvatarShape = 'circle';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() groupSources: string[] = [];\n @Input() className = '';\n\n readonly sizeClasses = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12'\n };\n\n get isGroup(): boolean {\n return this.groupSources.length > 0;\n }\n\n get radiusClass(): string {\n return this.shape === 'square' ? 'rounded-[8px]' : 'rounded-full';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmBadgeVariant =\n | 'default'\n | 'secondary'\n | 'destructive'\n | 'outline'\n | 'icon'\n | 'number'\n | 'destructive-number'\n | 'secondary-number';\n\n@Component({\n selector: 'pdm-badge',\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmBadgeComponent {\n @Input() variant: PdmBadgeVariant = 'default';\n @Input() text = 'Badge';\n @Input() className = '';\n}\n\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmBreadcrumbMode =\n | 'custom-separator'\n | 'dropdown'\n | 'collapsed'\n | 'link-component'\n | 'responsive';\n\n@Component({\n selector: 'pdm-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmBreadcrumbComponent {\n @Input() mode: PdmBreadcrumbMode = 'link-component';\n @Input() items: string[] = ['Home', 'Components', 'Breadcrumb'];\n @Input() className = '';\n\n get renderedItems(): string[] {\n if ((this.mode === 'collapsed' || this.mode === 'responsive') && this.items.length > 3) {\n return [this.items[0], '...', this.items[this.items.length - 2], this.items[this.items.length - 1]];\n }\n return this.items;\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmButtonGroupVariant = 'default' | 'group' | 'orientation' | 'separator';\nexport type PdmButtonGroupOrientation = 'horizontal' | 'vertical';\n\n@Component({\n selector: 'pdm-button-group',\n templateUrl: './button-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmButtonGroupComponent {\n @Input() variant: PdmButtonGroupVariant = 'default';\n @Input() orientation?: PdmButtonGroupOrientation;\n @Input() direction?: PdmButtonGroupOrientation;\n @Input() separated = true;\n @Input() className = '';\n\n get rootClasses(): string[] {\n const effectiveOrientation = this.orientation ?? this.direction ?? 'horizontal';\n const isVertical = this.variant === 'orientation' || effectiveOrientation === 'vertical';\n const isGroup = this.variant === 'group';\n const isAttached = !this.separated && this.variant !== 'default';\n const isSeparator = this.variant === 'separator';\n\n const attachedClasses = isAttached && !isGroup\n ? isVertical\n ? [\n '[&>*]:rounded-none',\n '[&>*:first-child]:rounded-t-md',\n '[&>*:last-child]:rounded-b-md',\n '[&>*:not(:first-child)]:border-t-0',\n '[&>*:not(:first-child)]:-mt-px'\n ].join(' ')\n : [\n '[&>*]:rounded-none',\n '[&>*:first-child]:rounded-l-md',\n '[&>*:last-child]:rounded-r-md',\n '[&>*:not(:first-child)]:border-l-0',\n '[&>*:not(:first-child)]:-ml-px'\n ].join(' ')\n : '';\n\n const groupHorizontalClasses = isGroup && !isVertical && !this.separated\n ? [\n '[&>*:not(:first-child)]:-ml-px',\n '[&>pdm-button]:flex',\n '[&>pdm-button>button]:h-9',\n '[&>pdm-input]:flex-1',\n '[&>pdm-input>div]:w-full',\n '[&>pdm-button>button]:!rounded-none',\n '[&>pdm-button:first-child>button]:!rounded-l-md',\n '[&>pdm-button:last-child>button]:!rounded-r-md',\n '[&>pdm-input>div>input]:!rounded-none',\n '[&>pdm-input:first-child>div>input]:!rounded-l-md',\n '[&>pdm-input:last-child>div>input]:!rounded-r-md',\n '[&>pdm-input-group>div]:!rounded-none',\n '[&>pdm-input-group:first-child>div]:!rounded-l-md',\n '[&>pdm-input-group:last-child>div]:!rounded-r-md',\n '[&>pdm-input>div>input]:bg-background',\n '[&>pdm-input>div>input]:shadow-none',\n '[&>pdm-button>button]:rounded-l-none',\n '[&>pdm-button>button]:shadow-none'\n ].join(' ')\n : '';\n\n const groupVerticalClasses = isGroup && isVertical && !this.separated\n ? [\n '[&>*:not(:first-child)]:-mt-px',\n '[&>pdm-button]:flex',\n '[&>pdm-button>button]:h-9',\n '[&>pdm-button>button]:!rounded-none',\n '[&>pdm-button:first-child>button]:!rounded-t-md',\n '[&>pdm-button:last-child>button]:!rounded-b-md',\n '[&>pdm-input>div>input]:!rounded-none',\n '[&>pdm-input:first-child>div>input]:!rounded-t-md',\n '[&>pdm-input:last-child>div>input]:!rounded-b-md',\n '[&>pdm-input-group>div]:!rounded-none',\n '[&>pdm-input-group:first-child>div]:!rounded-t-md',\n '[&>pdm-input-group:last-child>div]:!rounded-b-md',\n '[&>pdm-input>div>input]:bg-background',\n '[&>pdm-input>div>input]:shadow-none',\n '[&>pdm-button>button]:shadow-none'\n ].join(' ')\n : '';\n\n return [\n 'inline-flex w-fit',\n isVertical ? 'flex-col items-stretch' : 'items-center',\n this.variant === 'default' || this.separated ? 'gap-2' : 'gap-0',\n isGroup ? '*:focus-visible:relative *:focus-visible:z-10' : '',\n attachedClasses,\n groupHorizontalClasses,\n groupVerticalClasses,\n isSeparator\n ? 'overflow-hidden rounded-md border border-border bg-secondary shadow-sm'\n : '',\n this.className\n ];\n }\n}\n","<div\n role=\"group\"\n [attr.aria-orientation]=\"variant === 'orientation' || orientation === 'vertical' || direction === 'vertical' ? 'vertical' : 'horizontal'\"\n [ngClass]=\"rootClasses\"\n>\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmButtonVariant =\n | 'default'\n | 'primary'\n | 'destructive'\n | 'outline'\n | 'subtle'\n | 'secondary'\n | 'ghost'\n | 'link'\n | 'with-icon'\n | 'icon'\n | 'icon-circle'\n | 'rounded'\n | 'loading';\nexport type PdmButtonState = 'default' | 'hover';\nexport type PdmButtonSize = 'small' | 'default' | 'large';\n\n@Component({\n selector: 'pdm-button',\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmButtonComponent {\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() variant: PdmButtonVariant = 'default';\n @Input() state: PdmButtonState = 'default';\n @Input() size: PdmButtonSize = 'default';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() className = '';\n\n @Output() pressed = new EventEmitter<MouseEvent>();\n\n readonly toneClassMap: Record<PdmButtonVariant, { default: string; hover: string }> = {\n default: { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n primary: { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n destructive: { default: 'border-border bg-destructive text-destructive-foreground', hover: 'border-border bg-destructive text-destructive-foreground opacity-90' },\n outline: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-muted text-foreground' },\n subtle: { default: 'border-secondary bg-secondary text-secondary-foreground', hover: 'border-accent bg-accent text-accent-foreground' },\n secondary: { default: 'border-secondary bg-secondary text-secondary-foreground', hover: 'border-accent bg-accent text-accent-foreground' },\n ghost: { default: 'border-border bg-transparent text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n link: { default: 'border-border bg-transparent text-primary', hover: 'border-border bg-transparent text-primary underline underline-offset-4' },\n 'with-icon': { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n icon: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n 'icon-circle': { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n rounded: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n loading: { default: 'border-primary bg-primary text-primary-foreground opacity-70', hover: 'border-primary bg-primary text-primary-foreground opacity-70' }\n };\n\n get isDisabled(): boolean {\n return this.disabled || this.loading || this.variant === 'loading';\n }\n\n get rootClasses(): string[] {\n const currentState = this.state === 'hover' ? 'hover' : 'default';\n const toneClass = this.toneClassMap[this.variant][currentState];\n\n return [\n 'inline-flex items-center justify-center gap-2 rounded-md border text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-clip-padding',\n this.variant === 'link' ? 'px-4 py-2 h-9' : '',\n this.variant === 'icon' ? 'h-9 w-9 p-0' : '',\n this.variant === 'icon-circle' ? 'h-10 w-10 rounded-full p-0' : '',\n this.variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',\n this.variant !== 'icon' && this.variant !== 'icon-circle' && this.variant !== 'rounded'\n ? this.size === 'small'\n ? 'h-8 px-3 text-xs'\n : this.size === 'large'\n ? 'h-10 px-8'\n : 'h-9 px-4'\n : '',\n this.variant === 'link' && this.state === 'hover' ? 'underline underline-offset-4' : '',\n toneClass,\n this.className\n ];\n }\n\n onClick(event: MouseEvent): void {\n if (!this.isDisabled) {\n this.pressed.emit(event);\n }\n }\n}\n","<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded'\"></ng-content>\n <ng-content></ng-content>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmCalendarMode = 'single' | 'range';\n\ninterface CalendarCell {\n date: Date;\n day: number;\n outside: boolean;\n selected: boolean;\n inRange: boolean;\n}\n\n@Component({\n selector: 'pdm-calendar',\n templateUrl: './calendar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCalendarComponent {\n @Input() mode: PdmCalendarMode = 'single';\n @Input() month = 6;\n @Input() year = 2025;\n @Input() selectedDay = 25;\n @Input() rangeStartDay = 25;\n @Input() rangeEndDay = 9;\n @Input() className = '';\n\n readonly weekdays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n get leftMonthName(): string {\n return this.monthName(this.month - 1);\n }\n\n get rightMonthName(): string {\n const rightMonth = this.month % 12;\n return this.monthName(rightMonth);\n }\n\n get leftCells(): CalendarCell[] {\n return this.buildMonthCells(this.year, this.month - 1, this.selectedDay, this.mode === 'range' ? this.rangeStartDay : undefined, this.mode === 'range' ? 31 : undefined);\n }\n\n get rightCells(): CalendarCell[] {\n const rightMonth = this.month % 12;\n const rightYear = this.month === 12 ? this.year + 1 : this.year;\n return this.buildMonthCells(rightYear, rightMonth, this.mode === 'range' ? this.rangeEndDay : undefined, 1, this.mode === 'range' ? this.rangeEndDay : undefined);\n }\n\n private monthName(monthIndex: number): string {\n const safe = ((monthIndex % 12) + 12) % 12;\n return new Date(this.year, safe, 1).toLocaleString('en-US', { month: 'long' });\n }\n\n private buildMonthCells(\n year: number,\n monthIndex: number,\n selectedDay?: number,\n rangeStartDay?: number,\n rangeEndDay?: number\n ): CalendarCell[] {\n const firstDay = new Date(year, monthIndex, 1);\n const startWeekday = firstDay.getDay();\n const daysInMonth = new Date(year, monthIndex + 1, 0).getDate();\n const cells: CalendarCell[] = [];\n\n for (let i = 0; i < 42; i += 1) {\n const dayNumber = i - startWeekday + 1;\n const date = new Date(year, monthIndex, dayNumber);\n const outside = dayNumber < 1 || dayNumber > daysInMonth;\n const day = date.getDate();\n const selected = !outside && !!selectedDay && day === selectedDay;\n const inRange = !outside && !!rangeStartDay && !!rangeEndDay && day >= rangeStartDay && day <= rangeEndDay;\n cells.push({ date, day, outside, selected, inRange });\n }\n\n return cells;\n }\n}\n\n","<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\">‹</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' ? '' : '›' }}</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\">›</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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmCarouselVariant = 'default' | 'sizes' | 'orientation' | 'api';\n\n@Component({\n selector: 'pdm-carousel',\n templateUrl: './carousel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCarouselComponent {\n @Input() variant: PdmCarouselVariant = 'default';\n @Input() className = '';\n @Input() slides: Array<string | number> = [];\n @Input() startIndex = 0;\n @Input() loop = false;\n @Input() windowSize?: number;\n @Input() showCounter = false;\n\n @Output() indexChange = new EventEmitter<number>();\n\n private _index = 0;\n\n ngOnInit(): void {\n this._index = this.normalizeIndex(this.startIndex);\n }\n\n get index(): number {\n return this._index;\n }\n\n get canPrev(): boolean {\n return this.loop || this._index > 0;\n }\n\n get canNext(): boolean {\n return this.loop || this._index < this.maxIndex;\n }\n\n get maxIndex(): number {\n if (this.slides.length === 0) {\n return 0;\n }\n return Math.max(0, this.slides.length - this.currentWindowSize);\n }\n\n get visibleSlides(): Array<string | number> {\n if (this.slides.length === 0) {\n return [];\n }\n\n return this.sliceWindow(this.currentWindowSize);\n }\n\n get currentWindowSize(): number {\n if (typeof this.windowSize === 'number' && this.windowSize > 0) {\n return Math.max(1, Math.floor(this.windowSize));\n }\n if (this.variant === 'sizes') {\n return 3;\n }\n if (this.variant === 'orientation') {\n return 2;\n }\n return 1;\n }\n\n onPrev(): void {\n if (!this.canPrev) {\n return;\n }\n\n const next = this._index - 1;\n this.setIndex(this.loop && next < 0 ? this.maxIndex : next);\n }\n\n onNext(): void {\n if (!this.canNext) {\n return;\n }\n\n const next = this._index + 1;\n this.setIndex(this.loop && next > this.maxIndex ? 0 : next);\n }\n\n private setIndex(value: number): void {\n const normalized = this.normalizeIndex(value);\n this._index = normalized;\n this.indexChange.emit(this._index);\n }\n\n private normalizeIndex(value: number): number {\n if (this.slides.length === 0) {\n return 0;\n }\n return Math.min(this.maxIndex, Math.max(0, value));\n }\n\n private sliceWindow(size: number): Array<string | number> {\n return this.slides.slice(this._index, this._index + size);\n }\n}\n","<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 <div 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 <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 <p *ngIf=\"variant !== 'orientation' && showCounter\" class=\"m-0 pt-2 text-sm font-medium text-muted-foreground\">\n {{ slides.length ? (index + 1) : 0 }} / {{ slides.length }}\n </p>\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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmCardVariant = 'default' | 'login';\n\n@Component({\n selector: 'pdm-card',\n templateUrl: './card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCardComponent {\n @Input() variant: PdmCardVariant = 'default';\n @Input() className = '';\n\n @Input() title = 'Login to your account';\n @Input() description = 'Enter your email below to login to your account';\n @Input() actionText = 'Sign up';\n @Input() emailLabel = 'Email';\n @Input() emailPlaceholder = 'm@example.com';\n @Input() passwordLabel = 'Password';\n @Input() passwordHint = 'Forgot password?';\n @Input() primaryActionText = 'Login';\n @Input() secondaryActionText = 'Login with Google';\n\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n @Output() actionPressed = new EventEmitter<void>();\n\n onPrimaryAction(): void {\n this.primaryAction.emit();\n }\n\n onSecondaryAction(): void {\n this.secondaryAction.emit();\n }\n\n onActionPressed(): void {\n this.actionPressed.emit();\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmChartType = 'area' | 'bar' | 'line' | 'pie' | 'radar' | 'radial' | 'tooltips';\n\n@Component({\n selector: 'pdm-chart',\n templateUrl: './chart.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmChartComponent {\n @Input() type: PdmChartType = 'bar';\n @Input() className = '';\n @Input() title = '';\n @Input() description = '';\n\n @Input() desktopLabel = '';\n @Input() desktopValue = '';\n @Input() mobileLabel = '';\n @Input() mobileValue = '';\n\n @Input() labels: string[] = [];\n\n @Input() bars: number[] = [];\n @Input() line: number[] = [];\n @Input() pie: number[] = [];\n @Input() radar: number[] = [];\n @Input() radialValue = 0;\n @Input() radialLabel = '';\n @Input() radialDescription = '';\n @Input() tooltipTitle = '';\n @Input() tooltipPrimaryLabel = '';\n @Input() tooltipPrimaryValue = '';\n @Input() tooltipSecondaryLabel = '';\n @Input() tooltipSecondaryValue = '';\n @Input() pieLabels: string[] = [];\n @Input() tooltipHint = '';\n @Input() radarMetricPrefix = 'Metric';\n @Input() emptyLabel = 'No data available';\n\n get normalizedBars(): number[] {\n if (!this.bars.length) {\n return [];\n }\n\n const max = Math.max(...this.bars);\n if (max === 0) {\n return this.bars.map(() => 0);\n }\n\n return this.bars.map((value) => Math.max(8, Math.round((value / max) * 183)));\n }\n\n get normalizedLine(): number[] {\n if (!this.line.length) {\n return [];\n }\n\n const max = Math.max(...this.line);\n if (max === 0) {\n return this.line.map(() => 170);\n }\n\n return this.line.map((value) => 180 - Math.round((value / max) * 150));\n }\n\n get linePath(): string {\n const points = this.normalizedLine;\n if (!points.length) {\n return '';\n }\n\n const step = points.length > 1 ? 320 / (points.length - 1) : 0;\n return points\n .map((y, index) => `${index === 0 ? 'M' : 'L'} ${Math.round(index * step)} ${y}`)\n .join(' ');\n }\n\n get areaPath(): string {\n const linePath = this.linePath;\n if (!linePath) {\n return '';\n }\n\n return `${linePath} L 320 180 L 0 180 Z`;\n }\n\n get pieSegments(): { color: string; size: number; offset: number; label: string }[] {\n const total = this.pie.reduce((acc, value) => acc + Math.max(value, 0), 0);\n if (total === 0) {\n return [];\n }\n\n let offset = 0;\n const colors = ['hsl(var(--chart-1))', 'hsl(var(--chart-2))', 'hsl(var(--chart-3))', 'hsl(var(--chart-4))'];\n return this.pie.map((value, index) => {\n const size = (Math.max(value, 0) / total) * 100;\n const segment = {\n color: colors[index % colors.length],\n size,\n offset,\n label: this.pieLabels[index] ?? `Series ${index + 1}`\n };\n offset += size;\n return segment;\n });\n }\n\n get pieGradient(): string {\n const segments = this.pieSegments;\n if (!segments.length) {\n return 'conic-gradient(hsl(var(--muted)) 0 100%)';\n }\n\n return `conic-gradient(${segments\n .map((segment) => `${segment.color} ${segment.offset}% ${segment.offset + segment.size}%`)\n .join(', ')})`;\n }\n\n get radarPoints(): string {\n const values = this.radar.slice(0, 6);\n if (!values.length) {\n return '';\n }\n\n const max = Math.max(...values, 1);\n const radius = 72;\n const center = 80;\n return values\n .map((value, index) => {\n const angle = ((Math.PI * 2) / values.length) * index - Math.PI / 2;\n const valueRadius = (Math.max(value, 0) / max) * radius;\n const x = center + Math.cos(angle) * valueRadius;\n const y = center + Math.sin(angle) * valueRadius;\n return `${x},${y}`;\n })\n .join(' ');\n }\n\n get radialStrokeOffset(): number {\n const bounded = Math.max(0, Math.min(this.radialValue, 100));\n const circumference = 2 * Math.PI * 42;\n return circumference - (bounded / 100) * circumference;\n }\n}\n","<section [ngClass]=\"['w-full rounded-lg border border-border bg-card text-card-foreground', className]\">\n <div *ngIf=\"title || description || desktopLabel || desktopValue || mobileLabel || mobileValue\" 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 *ngIf=\"title\" class=\"m-0 text-sm font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p *ngIf=\"description\" class=\"m-0 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n\n <div *ngIf=\"desktopLabel || desktopValue || mobileLabel || mobileValue\" 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 <p *ngIf=\"normalizedBars.length === 0\" class=\"m-0 text-sm text-muted-foreground\">{{ emptyLabel }}</p>\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 *ngIf=\"labels.length\" 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 <p *ngIf=\"normalizedLine.length === 0\" class=\"m-0 text-sm text-muted-foreground\">{{ emptyLabel }}</p>\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 *ngIf=\"labels.length\" 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 <p *ngIf=\"normalizedLine.length === 0\" class=\"m-0 text-sm text-muted-foreground\">{{ emptyLabel }}</p>\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 *ngIf=\"labels.length\" 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\">{{ radarMetricPrefix }} {{ 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 *ngIf=\"tooltipHint\" class=\"m-0 text-xs text-muted-foreground\">{{ tooltipHint }}</p>\n </div>\n </ng-container>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmCheckboxVariant = 'default' | 'subtext' | 'card';\n\n@Component({\n selector: 'pdm-checkbox',\n templateUrl: './checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCheckboxComponent {\n @Input() id = '';\n @Input() checked = false;\n @Input() disabled = false;\n @Input() variant: PdmCheckboxVariant = 'default';\n @Input() label = 'Accept terms and conditions';\n @Input() description = '';\n @Input() className = '';\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n get hasDescription(): boolean {\n return this.variant === 'subtext' || this.variant === 'card' ? !!this.description : false;\n }\n\n onToggle(): void {\n if (this.disabled) {\n return;\n }\n\n this.checkedChange.emit(!this.checked);\n }\n}\n","<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-border 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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-collapsible',\n templateUrl: './collapsible.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCollapsibleComponent {\n @Input() title = '@peduarte starred 3 repositories';\n @Input() open = false;\n @Input() disabled = false;\n @Input() items: string[] = ['@radix-ui/primitives', '@radix-ui/colors', '@stitches/react'];\n @Input() className = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n get visibleItems(): string[] {\n if (!this.items.length) {\n return [];\n }\n return this.open ? this.items : this.items.slice(0, 1);\n }\n\n toggle(): void {\n if (!this.disabled) {\n this.openChange.emit(!this.open);\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-combobox',\n templateUrl: './combobox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmComboboxComponent {\n @Input() open = false;\n @Input() placeholder = 'Select framework...';\n @Input() searchPlaceholder = 'Search framework';\n @Input() className = '';\n @Input() options: string[] = ['Next.js', 'SvelteKit', 'Nuxt.js', 'Remix', 'Astro'];\n @Input() value = '';\n @Input() width = 200;\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() valueChange = new EventEmitter<string>();\n\n get selectedLabel(): string {\n return this.value || this.placeholder;\n }\n\n toggle(): void {\n this.openChange.emit(!this.open);\n }\n\n select(option: string): void {\n this.valueChange.emit(option);\n this.openChange.emit(false);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { icons, type IconNode } from 'lucide';\n\nexport type PdmIconLibrary = 'lucide' | 'tabler' | 'hugeicons' | 'phosphor' | 'remix';\n\nexport type PdmIconName =\n | 'command'\n | 'check'\n | 'check-circle'\n | 'circle'\n | 'dot'\n | 'x'\n | 'alert-circle'\n | 'info'\n | 'loader-2'\n | 'menu'\n | 'search'\n | 'calendar'\n | 'panel-left'\n | 'monitor'\n | 'laptop'\n | 'sun'\n | 'moon'\n | 'chevron-down'\n | 'chevron-up'\n | 'chevron-left'\n | 'chevron-right'\n | 'chevrons-left'\n | 'chevrons-right'\n | 'chevrons-up-down'\n | 'arrow-up-down'\n | 'ellipsis'\n | 'filter'\n | 'sort-asc'\n | 'sort-desc'\n | 'plus'\n | 'minus'\n | 'copy'\n | 'pencil'\n | 'trash-2'\n | 'download'\n | 'upload'\n | 'home'\n | 'mail'\n | 'phone'\n | 'log-in'\n | 'log-out'\n | 'user'\n | 'settings'\n | 'credit-card'\n | 'smile'\n | 'calculator'\n | 'external-link'\n | 'folder'\n | 'arrow-up-right';\n\nconst FALLBACK_NODE: IconNode = [['circle', { cx: '12', cy: '12', r: '9' }]];\n\n@Component({\n selector: 'pdm-icon',\n templateUrl: './icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmIconComponent {\n @Input() name: PdmIconName | string = 'check';\n @Input() library: PdmIconLibrary = 'lucide';\n @Input() assetUrl: string | null = null;\n @Input() size = 16;\n @Input() strokeWidth = 1.5;\n @Input() className = '';\n @Input() ariaLabel: string | null = null;\n @Input() decorative = false;\n\n private readonly lucideIndex = this.buildLucideIndex();\n\n private readonly aliasMapByLibrary: Record<PdmIconLibrary, Record<string, string>> = {\n lucide: {\n 'check-circle': 'circle-check',\n 'alert-circle': 'circle-alert',\n info: 'circle-info',\n 'sort-asc': 'arrow-up-a-z',\n 'sort-desc': 'arrow-down-z-a'\n },\n tabler: {\n 'alert-triangle': 'triangle-alert',\n 'user-circle': 'circle-user',\n 'settings-2': 'settings-2',\n 'external-link': 'external-link'\n },\n hugeicons: {\n 'alert-02': 'circle-alert',\n 'user-circle': 'circle-user',\n 'search-01': 'search',\n 'settings-01': 'settings',\n 'arrow-right-01': 'chevron-right',\n 'arrow-down-01': 'chevron-down'\n },\n phosphor: {\n 'warning-circle': 'circle-alert',\n 'caret-down': 'chevron-down',\n 'caret-right': 'chevron-right',\n 'user-circle': 'circle-user',\n gear: 'settings',\n 'arrow-square-out': 'external-link'\n },\n remix: {\n 'alert-line': 'circle-alert',\n 'arrow-right-line': 'chevron-right',\n 'arrow-down-s-line': 'chevron-down',\n 'external-link-line': 'external-link',\n 'user-line': 'user',\n 'settings-3-line': 'settings'\n }\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n get resolvedStrokeWidth(): number {\n const value = Number(this.strokeWidth);\n if (Number.isFinite(value) && value > 0) {\n return value;\n }\n\n if (this.library === 'phosphor') {\n return 1.6;\n }\n\n if (this.library === 'tabler') {\n return 1.8;\n }\n\n return 1.5;\n }\n\n get resolvedSize(): number {\n const value = Number(this.size);\n return Number.isFinite(value) && value > 0 ? value : 16;\n }\n\n get iconKey(): string {\n const raw = `${this.name || ''}`.trim();\n if (!raw) {\n return 'circle';\n }\n\n const trimmed = raw.replace(/^(lucide|tabler|hugeicons|phosphor|remix)\\//, '');\n const aliases = this.aliasMapByLibrary[this.library] ?? {};\n return aliases[trimmed] ?? trimmed;\n }\n\n get svgMarkup(): SafeHtml {\n const node = this.resolveIconNode(this.iconKey) ?? FALLBACK_NODE;\n const strokeWidth = this.escapeAttr(this.resolvedStrokeWidth);\n const size = this.escapeAttr(this.resolvedSize);\n\n const body = node\n .map(([tag, attrs]) => {\n const serializedAttrs = Object.entries(attrs)\n .map(([key, value]) => `${key}=\"${this.escapeAttr(value)}\"`)\n .join(' ');\n\n return serializedAttrs ? `<${tag} ${serializedAttrs}></${tag}>` : `<${tag}></${tag}>`;\n })\n .join('');\n\n const svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"${strokeWidth}\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${body}</svg>`;\n\n return this.sanitizer.bypassSecurityTrustHtml(svg);\n }\n\n private resolveIconNode(iconName: string): IconNode | null {\n const normalized = this.normalizeIconName(iconName);\n return this.lucideIndex.get(normalized) ?? null;\n }\n\n private normalizeIconName(name: string): string {\n return `${name || ''}`.toLowerCase().replace(/[^a-z0-9]/g, '');\n }\n\n private buildLucideIndex(): Map<string, IconNode> {\n const map = new Map<string, IconNode>();\n\n Object.entries(icons).forEach(([iconName, iconNode]) => {\n map.set(this.normalizeIconName(iconName), iconNode as IconNode);\n });\n\n return map;\n }\n\n private escapeAttr(value: unknown): string {\n return `${value ?? ''}`\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n }\n}\n","<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport type { PdmIconName } from '../icon/icon.component';\n\nexport interface PdmCommandItem {\n label: string;\n value: string;\n group?: string;\n icon?: PdmIconName;\n shortcut?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-command',\n templateUrl: './command.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCommandComponent {\n @Input() open = true;\n @Input() hintLabel = 'Press';\n @Input() hintKey = 'J';\n @Input() placeholder = 'Type a command or search...';\n @Input() emptyMessage = 'No results found.';\n @Input() items: PdmCommandItem[] = [\n { label: 'Calendar', value: 'calendar', group: 'Suggestions', icon: 'calendar' },\n { label: 'Search emoji', value: 'emoji', group: 'Suggestions', icon: 'smile' },\n { label: 'Calculator', value: 'calculator', group: 'Suggestions', icon: 'calculator', disabled: true },\n { label: 'Profile', value: 'profile', group: 'Settings', icon: 'user', shortcut: '⌘P' },\n { label: 'Billing', value: 'billing', group: 'Settings', icon: 'credit-card', shortcut: '⌘B' },\n { label: 'Settings', value: 'settings', group: 'Settings', icon: 'settings', shortcut: '⌘S' }\n ];\n @Input() className = '';\n\n @Output() itemSelect = new EventEmitter<string>();\n @Output() openChange = new EventEmitter<boolean>();\n\n query = '';\n\n get filteredItems(): PdmCommandItem[] {\n const q = this.query.toLowerCase().trim();\n if (!q) return this.items;\n return this.items.filter((item) => item.label.toLowerCase().includes(q));\n }\n\n get groupedItems(): { name: string; items: PdmCommandItem[] }[] {\n const map = new Map<string, PdmCommandItem[]>();\n for (const item of this.filteredItems) {\n const key = item.group || '';\n const arr = map.get(key) ?? [];\n arr.push(item);\n map.set(key, arr);\n }\n return Array.from(map.entries()).map(([name, items]) => ({ name, items }));\n }\n\n onQueryChange(event: Event): void {\n this.query = (event.target as HTMLInputElement).value;\n }\n\n toggleOpen(): void {\n this.openChange.emit(!this.open);\n }\n\n select(value: string): void {\n this.itemSelect.emit(value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { PdmMenuItem } from '../dropdown-menu/dropdown-menu.component';\n\nexport interface PdmContextMenuItem extends PdmMenuItem {\n checked?: boolean;\n selectedDot?: boolean;\n}\n\n@Component({\n selector: 'pdm-context-menu',\n templateUrl: './context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmContextMenuComponent {\n @Input() items: PdmContextMenuItem[] = [\n { type: 'item', label: 'Back', value: 'back', inset: true, shortcut: '⌘[' },\n { type: 'item', label: 'Forward', value: 'forward', inset: true, shortcut: '⌘]', disabled: true },\n { type: 'item', label: 'Reload', value: 'reload', inset: true, shortcut: '⌘R' },\n { type: 'item', label: 'More Tools', value: 'more-tools', inset: true, showChevron: true },\n { type: 'separator' },\n { type: 'item', label: 'Show Bookmarks Bar', value: 'show-bookmarks', checked: true },\n { type: 'item', label: 'Show Full URLs', value: 'show-urls', inset: true },\n { type: 'separator' },\n { type: 'label', label: 'People' },\n { type: 'separator' },\n { type: 'item', label: 'Pedro Duarte', value: 'pedro', selectedDot: true },\n { type: 'item', label: 'Colm Tuite', value: 'colm', inset: true }\n ];\n @Input() className = '';\n @Input() triggerLabel = 'Right click here';\n @Input() width = 300;\n @Input() height = 150;\n @Output() itemSelect = new EventEmitter<string>();\n\n open = false;\n x = 0;\n y = 0;\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n this.x = event.clientX;\n this.y = event.clientY;\n this.open = true;\n }\n\n select(item: PdmContextMenuItem): void {\n if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value) return;\n this.itemSelect.emit(item.value);\n this.open = false;\n }\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n this.open = false;\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.open) return;\n const target = event.target as Node | null;\n if (target && !this.elementRef.nativeElement.contains(target)) {\n this.open = false;\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmDataTableRow {\n id: string;\n status: string;\n email: string;\n amount: string;\n selected?: boolean;\n}\n\n@Component({\n selector: 'pdm-data-table',\n templateUrl: './data-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDataTableComponent {\n @Input() className = '';\n @Input() filterPlaceholder = 'Filter...';\n @Input() columnsLabel = 'Columns';\n @Input() statusLabel = 'Status';\n @Input() emailLabel = 'Email';\n @Input() amountLabel = 'Amount';\n @Input() previousLabel = 'Previous';\n @Input() nextLabel = 'Next';\n @Input() emptyLabel = 'No results.';\n @Input() rows: PdmDataTableRow[] = [];\n\n @Input() page = 1;\n @Input() pageSize = 5;\n @Input() query = '';\n\n @Output() queryChange = new EventEmitter<string>();\n @Output() rowAction = new EventEmitter<string>();\n @Output() pageChange = new EventEmitter<number>();\n @Output() selectionChange = new EventEmitter<{ id: string; selected: boolean }>();\n\n get filteredRows(): PdmDataTableRow[] {\n const q = this.query.trim().toLowerCase();\n if (!q) return this.rows;\n return this.rows.filter((r) => r.email.toLowerCase().includes(q));\n }\n\n get pagedRows(): PdmDataTableRow[] {\n const start = (this.page - 1) * this.pageSize;\n return this.filteredRows.slice(start, start + this.pageSize);\n }\n\n get totalPages(): number {\n return Math.max(1, Math.ceil(this.filteredRows.length / this.pageSize));\n }\n\n get selectedCount(): number {\n return this.rows.filter((row) => row.selected).length;\n }\n\n onQueryInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.queryChange.emit(value);\n }\n\n onToggleRow(row: PdmDataTableRow, event: Event): void {\n this.selectionChange.emit({ id: row.id, selected: (event.target as HTMLInputElement).checked });\n }\n\n previous(): void {\n if (this.page <= 1) return;\n this.pageChange.emit(this.page - 1);\n }\n\n next(): void {\n if (this.page >= this.totalPages) return;\n this.pageChange.emit(this.page + 1);\n }\n\n onAction(row: PdmDataTableRow): void {\n this.rowAction.emit(row.id);\n }\n}\n","<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\">{{ statusLabel }}</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>{{ emailLabel }}</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\">{{ amountLabel }}</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 <tr *ngIf=\"pagedRows.length === 0\">\n <td colspan=\"5\" class=\"px-3 py-6 text-center text-sm text-muted-foreground\">{{ emptyLabel }}</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()\">{{ previousLabel }}</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()\">{{ nextLabel }}</button>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmDatePickerVariant = 'default' | 'with-input' | 'date-time' | 'natural-language';\n\n@Component({\n selector: 'pdm-date-picker',\n templateUrl: './date-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDatePickerComponent {\n @Input() variant: PdmDatePickerVariant = 'default';\n @Input() className = '';\n @Input() open = false;\n\n @Input() label = 'Date of Birth';\n @Input() value = 'Select a date';\n @Input() month = 6;\n @Input() year = 2025;\n @Input() selectedDay = 25;\n @Input() time = '10:30:00';\n @Input() naturalLanguageValue = 'In 2 days';\n @Input() naturalLanguageHint = 'Your post will be published on June 21, 2025.';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() valueChange = new EventEmitter<string>();\n\n toggle(): void {\n this.openChange.emit(!this.open);\n }\n\n selectPreset(value: string): void {\n this.valueChange.emit(value);\n }\n\n get monthLabel(): string {\n return new Date(this.year, this.month - 1, 1).toLocaleString('en-US', { month: 'short' });\n }\n}\n","<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\">‹</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>˅</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>˅</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\">›</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","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\nexport type PdmDialogVariant = 'default' | 'custom-close';\n\n@Component({\n selector: 'pdm-dialog',\n templateUrl: './dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDialogComponent {\n @Input() open = false;\n @Input() variant: PdmDialogVariant = 'default';\n @Input() title = 'Edit profile';\n @Input() description = 'Make changes to your profile here. Click save when you\\'re done.';\n @Input() closeOnBackdrop = true;\n @Input() closeOnEsc = true;\n @Input() showCloseButton = true;\n @Input() primaryActionText = 'Save changes';\n @Input() secondaryActionText = 'Cancel';\n @Input() nameLabel = 'Name';\n @Input() nameValue = 'Pedro Duarte';\n @Input() usernameLabel = 'Username';\n @Input() usernameValue = '@peduarte';\n @Input() linkValue = 'https://ui.shadcn.com/docs/installation';\n @Input() className = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n if (this.open && this.closeOnEsc) {\n this.close();\n }\n }\n\n close(): void {\n this.openChange.emit(false);\n }\n\n onPrimaryAction(): void {\n this.primaryAction.emit();\n }\n\n onSecondaryAction(): void {\n this.secondaryAction.emit();\n }\n\n onBackdropClick(): void {\n if (this.closeOnBackdrop) {\n this.close();\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\nexport type PdmDropdownMenuVariant = 'default' | 'checkboxes' | 'radio-group';\n\nexport interface PdmMenuItem {\n type?: 'item' | 'label' | 'separator';\n label?: string;\n value?: string;\n shortcut?: string;\n disabled?: boolean;\n inset?: boolean;\n showChevron?: boolean;\n checked?: boolean;\n radioSelected?: boolean;\n}\n\n@Component({\n selector: 'pdm-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDropdownMenuComponent {\n @Input() triggerText = 'Open';\n @Input() variant: PdmDropdownMenuVariant = 'default';\n @Input() items: PdmMenuItem[] = [];\n @Input() closeOnSelect = true;\n @Input() panelClassName = '';\n @Input() className = '';\n\n @Output() itemSelect = new EventEmitter<string>();\n @Output() itemsChange = new EventEmitter<PdmMenuItem[]>();\n\n open = false;\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n toggle(): void {\n this.open = !this.open;\n }\n\n get resolvedItems(): PdmMenuItem[] {\n if (this.items.length) {\n return this.items;\n }\n\n if (this.variant === 'checkboxes') {\n return [\n { type: 'label', label: 'Appearance' },\n { type: 'separator' },\n { type: 'item', label: 'Status Bar', value: 'status-bar', checked: true },\n { type: 'item', label: 'Activity Bar', value: 'activity-bar', checked: false },\n { type: 'item', label: 'Panel', value: 'panel', checked: false }\n ];\n }\n\n if (this.variant === 'radio-group') {\n return [\n { type: 'label', label: 'Panel Position' },\n { type: 'separator' },\n { type: 'item', label: 'Top', value: 'top', radioSelected: true },\n { type: 'item', label: 'Bottom', value: 'bottom', radioSelected: false },\n { type: 'item', label: 'Right', value: 'right', radioSelected: false }\n ];\n }\n\n return [\n { type: 'label', label: 'My Account', inset: true },\n { type: 'separator' },\n { type: 'item', label: 'Profile', value: 'profile', shortcut: '⇧⌘P' },\n { type: 'item', label: 'Billing', value: 'billing', shortcut: '⌘B' },\n { type: 'item', label: 'Settings', value: 'settings', shortcut: '⌘S' },\n { type: 'item', label: 'Keyboard shortcuts', value: 'shortcuts', shortcut: '⌘K' },\n { type: 'separator' },\n { type: 'item', label: 'Team', value: 'team' },\n { type: 'item', label: 'Invite users', value: 'invite', showChevron: true },\n { type: 'item', label: 'New Team', value: 'new-team', shortcut: '⌘+T' },\n { type: 'separator' },\n { type: 'item', label: 'GitHub', value: 'github' },\n { type: 'item', label: 'Support', value: 'support' },\n { type: 'item', label: 'API', value: 'api', disabled: true },\n { type: 'separator' },\n { type: 'item', label: 'Log out', value: 'logout', shortcut: '⇧⌘Q' }\n ];\n }\n\n select(item: PdmMenuItem): void {\n if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value) return;\n\n if (this.variant === 'checkboxes') {\n const updated = this.resolvedItems.map((entry) =>\n entry.value === item.value ? { ...entry, checked: !entry.checked } : entry\n );\n this.itemsChange.emit(updated);\n }\n\n if (this.variant === 'radio-group') {\n const updated = this.resolvedItems.map((entry) =>\n entry.type === 'item'\n ? { ...entry, radioSelected: entry.value === item.value }\n : entry\n );\n this.itemsChange.emit(updated);\n }\n\n this.itemSelect.emit(item.value);\n\n const shouldClose = this.variant === 'default' ? this.closeOnSelect : false;\n if (shouldClose) {\n this.open = false;\n }\n }\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n this.open = false;\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.open) return;\n const target = event.target as Node | null;\n if (target && !this.elementRef.nativeElement.contains(target)) {\n this.open = false;\n }\n }\n}\n","<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\">›</span>\n </button>\n </ng-container>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmDrawerVariant = 'drawer' | 'responsive-dialog';\n\n@Component({\n selector: 'pdm-drawer',\n templateUrl: './drawer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDrawerComponent {\n @Input() open = false;\n @Input() variant: PdmDrawerVariant = 'drawer';\n @Input() className = '';\n @Input() title = '';\n @Input() description = '';\n @Input() value: number | string = '';\n @Input() unit = '';\n @Input() decrementLabel = '-';\n @Input() incrementLabel = '+';\n @Input() primaryLabel = '';\n @Input() secondaryLabel = '';\n\n @Input() profileTitle = '';\n @Input() profileDescription = '';\n @Input() nameLabel = 'Name';\n @Input() nameValue = '';\n @Input() usernameLabel = 'Username';\n @Input() usernameValue = '';\n @Input() responsivePrimaryLabel = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n\n @Input() bars: number[] = [];\n\n close(): void {\n this.openChange.emit(false);\n }\n\n onPrimaryAction(): void {\n this.primaryAction.emit();\n }\n\n onSecondaryAction(): void {\n this.secondaryAction.emit();\n }\n}\n","<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\">{{ decrementLabel }}</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\">{{ incrementLabel }}</button>\n </div>\n\n <div *ngIf=\"bars.length\" 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 *ngIf=\"primaryLabel\" type=\"button\" class=\"mt-3 h-9 w-full rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ primaryLabel }}</button>\n <button *ngIf=\"secondaryLabel\" type=\"button\" class=\"mt-2 h-9 w-full rounded-md border border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">{{ secondaryLabel }}</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()\">×</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 *ngIf=\"responsivePrimaryLabel\" type=\"button\" class=\"mt-3 h-8 w-full rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ responsivePrimaryLabel }}</button>\n </section>\n </ng-template>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmEmptyVariant = 'default' | 'outline' | 'background';\n\n@Component({\n selector: 'pdm-empty',\n templateUrl: './empty.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmEmptyComponent {\n @Input() variant: PdmEmptyVariant = 'default';\n @Input() title = 'No Projects Yet';\n @Input() description = \"You haven't created any projects yet. Get started by creating your first project.\";\n @Input() iconName = 'folder';\n @Input() primaryActionLabel = '';\n @Input() secondaryActionLabel = '';\n @Input() linkLabel = '';\n @Input() className = '';\n\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n @Output() linkAction = new EventEmitter<void>();\n\n get containerClass(): string {\n if (this.variant === 'outline') {\n return 'border border-dashed border-border rounded-[12px]';\n }\n\n if (this.variant === 'background') {\n return 'rounded-[12px] bg-muted';\n }\n\n return '';\n }\n}\n","<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-foreground', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmFieldOrientation = 'vertical' | 'horizontal';\nexport type PdmFieldDescriptionPosition = 'before' | 'after';\n\n@Component({\n selector: 'pdm-field',\n templateUrl: './field.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmFieldComponent {\n @Input() id = '';\n @Input() label = '';\n @Input() description = '';\n @Input() error = '';\n @Input() required = false;\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() orientation: PdmFieldOrientation = 'vertical';\n @Input() descriptionPosition: PdmFieldDescriptionPosition = 'after';\n @Input() className = '';\n @Input() labelClassName = '';\n @Input() controlClassName = '';\n\n get rootClass(): string {\n return this.orientation === 'horizontal'\n ? 'grid items-start gap-3 sm:grid-cols-[200px_minmax(0,1fr)] sm:gap-4'\n : 'grid w-full gap-3';\n }\n\n get isHorizontal(): boolean {\n return this.orientation === 'horizontal';\n }\n\n get showDescriptionBeforeControl(): boolean {\n return !this.isHorizontal && this.descriptionPosition === 'before' && !!this.description && !this.invalid;\n }\n\n get showDescriptionAfterControl(): boolean {\n return !this.isHorizontal && !this.showDescriptionBeforeControl && !!this.description && !this.invalid;\n }\n}\n","<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]=\"[\n 'text-sm font-medium leading-none',\n disabled ? 'opacity-70' : '',\n invalid ? 'text-destructive' : 'text-foreground',\n labelClassName\n ]\"\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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmHoverCardSide = 'top' | 'right' | 'bottom' | 'left';\nexport type PdmHoverCardAlign = 'start' | 'center' | 'end';\n\n@Component({\n selector: 'pdm-hover-card',\n templateUrl: './hover-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmHoverCardComponent {\n @Input() className = '';\n @Input() panelClassName = '';\n @Input() side: PdmHoverCardSide = 'bottom';\n @Input() align: PdmHoverCardAlign = 'start';\n @Input() panelWidth = 304;\n\n open = false;\n\n get positionClass(): string {\n const sideClassMap: Record<PdmHoverCardSide, string> = {\n top: 'bottom-full mb-2',\n right: 'left-full ml-2',\n bottom: 'top-full mt-2',\n left: 'right-full mr-2'\n };\n\n const alignClassMap: Record<PdmHoverCardAlign, string> = {\n start: this.side === 'top' || this.side === 'bottom' ? 'left-0' : 'top-0',\n center: this.side === 'top' || this.side === 'bottom' ? 'left-1/2 -translate-x-1/2' : 'top-1/2 -translate-y-1/2',\n end: this.side === 'top' || this.side === 'bottom' ? 'right-0' : 'bottom-0'\n };\n\n return `${sideClassMap[this.side]} ${alignClassMap[this.align]}`;\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-item',\n templateUrl: './item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmItemComponent {\n @Input() className = '';\n @Input() disabled = false;\n @Input() selected = false;\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmInputSize = 'mini' | 'small' | 'regular' | 'large';\nexport type PdmInputRoundness = 'default' | 'round';\n\n@Component({\n selector: 'pdm-input',\n templateUrl: './input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmInputComponent {\n @Input() id = '';\n @Input() type = 'text';\n @Input() value = '';\n @Input() placeholder = '';\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() size: PdmInputSize = 'regular';\n @Input() roundness: PdmInputRoundness = 'default';\n @Input() className = '';\n @Input() inputClassName = '';\n @Input() label = '';\n @Input() helperText = '';\n @Input() errorText = '';\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() blurred = new EventEmitter<FocusEvent>();\n\n onInput(event: Event): void {\n this.valueChange.emit((event.target as HTMLInputElement).value);\n }\n\n onBlur(event: FocusEvent): void {\n this.blurred.emit(event);\n }\n}\n","<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground'\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PdmInputRoundness, PdmInputSize } from '../input/input.component';\n\n@Component({\n selector: 'pdm-input-password',\n templateUrl: './input-password.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmInputPasswordComponent {\n @Input() id = '';\n @Input() value = '';\n @Input() placeholder = '';\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() size: PdmInputSize = 'regular';\n @Input() roundness: PdmInputRoundness = 'default';\n @Input() className = '';\n @Input() inputClassName = '';\n @Input() label = '';\n @Input() helperText = '';\n @Input() errorText = '';\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() blurred = new EventEmitter<FocusEvent>();\n\n showPassword = false;\n\n get inputType(): 'text' | 'password' {\n return this.showPassword ? 'text' : 'password';\n }\n\n onInput(event: Event): void {\n this.valueChange.emit((event.target as HTMLInputElement).value);\n }\n\n onBlur(event: FocusEvent): void {\n this.blurred.emit(event);\n }\n\n toggleVisibility(): void {\n if (this.disabled) {\n return;\n }\n\n this.showPassword = !this.showPassword;\n }\n}\n","<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground'\n ]\"\n >{{ label }}</label>\n <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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-input-group',\n templateUrl: './input-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmInputGroupComponent {\n @Input() id = '';\n @Input() type = 'text';\n @Input() value = '';\n @Input() placeholder = '';\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() prefixText = '';\n @Input() suffixText = '';\n @Input() prefixIcon = '';\n @Input() suffixIcon = '';\n @Input() buttonText = '';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() buttonClick = new EventEmitter<MouseEvent>();\n\n onInput(event: Event): void {\n this.valueChange.emit((event.target as HTMLInputElement).value);\n }\n\n onButtonClick(event: MouseEvent): void {\n this.buttonClick.emit(event);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChildren } from '@angular/core';\n\n@Component({\n selector: 'pdm-input-otp',\n templateUrl: './input-otp.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmInputOtpComponent {\n @Input() length = 6;\n @Input() groupSize = 3;\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() completed = new EventEmitter<string>();\n\n @ViewChildren('otpInput') private readonly inputs?: QueryList<ElementRef<HTMLInputElement>>;\n\n values: string[] = Array.from({ length: this.length }, () => '');\n\n ngOnChanges(): void {\n if (this.values.length !== this.length) {\n this.values = Array.from({ length: this.length }, (_, index) => this.values[index] ?? '');\n }\n }\n\n trackByIndex(index: number): number {\n return index;\n }\n\n onInput(index: number, event: Event): void {\n const input = event.target as HTMLInputElement;\n const char = (input.value || '').replace(/\\D+/g, '').slice(-1);\n\n this.values[index] = char;\n input.value = char;\n this.emit();\n\n if (char) {\n this.focusInput(index + 1, true);\n }\n }\n\n onKeyDown(index: number, event: KeyboardEvent): void {\n if (event.key === 'Backspace' && !this.values[index]) {\n this.focusInput(index - 1);\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.focusInput(index - 1);\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.focusInput(index + 1);\n }\n }\n\n onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n\n const pastedText = (event.clipboardData?.getData('text') ?? '').replace(/\\D+/g, '').slice(0, this.length);\n\n if (!pastedText) {\n return;\n }\n\n this.values = Array.from({ length: this.length }, (_, index) => pastedText[index] ?? '');\n this.emit();\n\n const nextIndex = Math.min(pastedText.length, this.length - 1);\n this.focusInput(nextIndex);\n }\n\n getInputClasses(index: number): string {\n const classes = [\n 'h-9 w-9 appearance-none border bg-background text-center text-sm font-normal text-foreground outline-none transition focus:outline-none focus-visible:outline-none',\n 'shadow-sm',\n 'focus:border-input focus:ring-1 focus:ring-primary/30',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n ];\n\n if (this.invalid) {\n classes.push('border-destructive focus:border-destructive focus:ring-destructive');\n } else {\n classes.push('border-input');\n }\n\n if (this.isGroupStart(index)) {\n classes.push('rounded-l-md border-l');\n } else {\n classes.push('border-l-0');\n }\n\n if (this.isGroupEnd(index)) {\n classes.push('rounded-r-md');\n }\n\n return classes.join(' ');\n }\n\n shouldShowSeparator(index: number): boolean {\n return this.groupSize > 0 && (index + 1) % this.groupSize === 0 && index < this.length - 1;\n }\n\n private isGroupStart(index: number): boolean {\n return this.groupSize <= 0 || index % this.groupSize === 0;\n }\n\n private isGroupEnd(index: number): boolean {\n if (this.groupSize <= 0) {\n return index === this.length - 1;\n }\n return (index + 1) % this.groupSize === 0 || index === this.length - 1;\n }\n\n private emit(): void {\n const value = this.values.join('');\n this.valueChange.emit(value);\n\n if (value.length === this.length && !this.values.includes('')) {\n this.completed.emit(value);\n }\n }\n\n private focusInput(index: number, deferred = false): void {\n if (deferred) {\n requestAnimationFrame(() => this.focusInput(index, false));\n return;\n }\n\n if (!this.inputs || index < 0 || index >= this.length) {\n return;\n }\n\n const input = this.inputs.get(index)?.nativeElement;\n if (input) {\n input.focus();\n input.select();\n }\n }\n}\n","<div [ngClass]=\"['inline-flex items-center justify-center', className]\" (paste)=\"onPaste($event)\">\n <ng-container *ngFor=\"let value of values; let index = index; trackBy: trackByIndex\">\n <input\n #otpInput\n [class]=\"getInputClasses(index)\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n [attr.name]=\"'otp-digit-' + index\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-label]=\"'OTP digit ' + (index + 1)\"\n (input)=\"onInput(index, $event)\"\n (keydown)=\"onKeyDown(index, $event)\"\n />\n <span\n *ngIf=\"shouldShowSeparator(index)\"\n class=\"mx-2 mt-[-1px] h-px w-6 bg-foreground opacity-80\"\n aria-hidden=\"true\"\n ></span>\n </ng-container>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-kbd',\n templateUrl: './kbd.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmKbdComponent {\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-label',\n templateUrl: './label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmLabelComponent {\n @Input() forId = '';\n @Input() required = false;\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PdmMenuItem } from '../dropdown-menu/dropdown-menu.component';\n\nexport interface PdmMenubarItem {\n label: string;\n items: PdmMenuItem[];\n}\n\n@Component({\n selector: 'pdm-menubar',\n templateUrl: './menubar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmMenubarComponent {\n @Input() menus: PdmMenubarItem[] = [];\n @Input() className = '';\n @Output() itemSelect = new EventEmitter<string>();\n\n openIndex = -1;\n\n toggle(index: number): void {\n this.openIndex = this.openIndex === index ? -1 : index;\n }\n\n select(value: string): void {\n this.itemSelect.emit(value);\n this.openIndex = -1;\n }\n\n selectItem(item: PdmMenuItem): void {\n if (item.disabled || !item.value) {\n return;\n }\n\n this.select(item.value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmNativeSelectOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-native-select',\n templateUrl: './native-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmNativeSelectComponent {\n @Input() id = '';\n @Input() value = '';\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() options: PdmNativeSelectOption[] = [];\n @Input() placeholder = 'Select an option';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n onChange(event: Event): void {\n this.valueChange.emit((event.target as HTMLSelectElement).value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport interface PdmNavigationItem {\n label: string;\n href?: string;\n active?: boolean;\n}\n\n@Component({\n selector: 'pdm-navigation-menu',\n templateUrl: './navigation-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmNavigationMenuComponent {\n @Input() items: PdmNavigationItem[] = [];\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmPaginationComponent {\n @Input() page = 1;\n @Input() pageCount = 1;\n @Input() maxVisible = 5;\n @Input() className = '';\n\n @Output() pageChange = new EventEmitter<number>();\n\n get visiblePages(): number[] {\n const total = Math.max(1, this.pageCount);\n const visible = Math.max(1, this.maxVisible);\n const half = Math.floor(visible / 2);\n let start = Math.max(1, this.page - half);\n let end = Math.min(total, start + visible - 1);\n\n if (end - start + 1 < visible) {\n start = Math.max(1, end - visible + 1);\n }\n\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n }\n\n setPage(next: number): void {\n if (next < 1 || next > this.pageCount || next === this.page) {\n return;\n }\n\n this.pageChange.emit(next);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-popover',\n templateUrl: './popover.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmPopoverComponent {\n @Input() open = false;\n @Input() triggerText = 'Open';\n @Input() className = '';\n @Input() panelClassName = '';\n @Input() showTrigger = true;\n @Output() openChange = new EventEmitter<boolean>();\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n toggle(): void {\n this.open = !this.open;\n this.openChange.emit(this.open);\n }\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n if (this.open) {\n this.open = false;\n this.openChange.emit(false);\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.open) return;\n const target = event.target as Node | null;\n if (target && !this.elementRef.nativeElement.contains(target)) {\n this.open = false;\n this.openChange.emit(false);\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-progress',\n templateUrl: './progress.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmProgressComponent {\n @Input() value = 0;\n @Input() max = 100;\n @Input() indeterminate = false;\n @Input() className = '';\n\n get width(): string {\n if (this.indeterminate) return '100%';\n const safeMax = this.max > 0 ? this.max : 100;\n const pct = Math.min(100, Math.max(0, (this.value / safeMax) * 100));\n return pct + '%';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmRadioOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-radio-group',\n templateUrl: './radio-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmRadioGroupComponent {\n @Input() name = 'pdm-radio-group';\n @Input() value = '';\n @Input() options: PdmRadioOption[] = [];\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n optionId(option: PdmRadioOption): string {\n return `${this.name}-${option.value}`;\n }\n\n onChange(event: Event): void {\n this.valueChange.emit((event.target as HTMLInputElement).value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-scroll-area',\n templateUrl: './scroll-area.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmScrollAreaComponent {\n @Input() maxHeight = '16rem';\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmSelectOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-select',\n templateUrl: './select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSelectComponent {\n @Input() id = '';\n @Input() value = '';\n @Input() options: PdmSelectOption[] = [];\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n onChange(event: Event): void {\n this.valueChange.emit((event.target as HTMLSelectElement).value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-separator',\n templateUrl: './separator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSeparatorComponent {\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n @Input() decorative = true;\n @Input() className = '';\n\n get orientationClass(): string {\n return this.orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full';\n }\n}\n","<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-border', orientationClass, className]\"\n></div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmSheetSide = 'top' | 'right' | 'bottom' | 'left';\n\n@Component({\n selector: 'pdm-sheet',\n templateUrl: './sheet.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSheetComponent {\n @Input() open = false;\n @Input() side: PdmSheetSide = 'right';\n @Input() className = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n close(): void {\n this.openChange.emit(false);\n }\n\n get panelClass(): string {\n if (this.side === 'left') return 'left-0 top-0 h-full w-full max-w-[360px] border-r';\n if (this.side === 'top') return 'top-0 left-0 w-full border-b';\n if (this.side === 'bottom') return 'bottom-0 left-0 w-full border-t';\n\n return 'right-0 top-0 h-full w-full max-w-[360px] border-l';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-sidebar',\n templateUrl: './sidebar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSidebarComponent {\n @Input() collapsed = false;\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-skeleton',\n templateUrl: './skeleton.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSkeletonComponent {\n @Input() className = '';\n}\n","<div [ngClass]=\"['animate-pulse rounded-md bg-muted', className]\"></div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-slider',\n templateUrl: './slider.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSliderComponent {\n @Input() min = 0;\n @Input() max = 100;\n @Input() step = 1;\n @Input() value = 0;\n @Input() disabled = false;\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<number>();\n\n get percentage(): number {\n const safeRange = this.max - this.min;\n if (safeRange <= 0) {\n return 0;\n }\n\n const bounded = Math.min(this.max, Math.max(this.min, this.value));\n return ((bounded - this.min) / safeRange) * 100;\n }\n\n onInput(event: Event): void {\n this.valueChange.emit(Number((event.target as HTMLInputElement).value));\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmToastTone = 'default' | 'success' | 'error' | 'warning';\n\n@Component({\n selector: 'pdm-sonner',\n templateUrl: './sonner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSonnerComponent {\n @Input() title = '';\n @Input() description = '';\n @Input() tone: PdmToastTone = 'default';\n @Input() className = '';\n\n @Output() dismissed = new EventEmitter<void>();\n\n get toneClass(): string {\n if (this.tone === 'success') return 'border-emerald-200 bg-emerald-50 text-emerald-900';\n if (this.tone === 'error') return 'border-red-200 bg-red-50 text-red-900';\n if (this.tone === 'warning') return 'border-amber-200 bg-amber-50 text-amber-900';\n\n return 'border-border bg-background text-foreground';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-spinner',\n templateUrl: './spinner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSpinnerComponent {\n @Input() size = 16;\n @Input() className = '';\n}\n","<span\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"['inline-block animate-spin rounded-full border-2 border-current border-r-transparent', className]\"\n aria-hidden=\"true\"\n></span>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmSwitchSize = 'default' | 'sm';\n\n@Component({\n selector: 'pdm-switch',\n templateUrl: './switch.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSwitchComponent {\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n @Input() id = '';\n @Input() checked = false;\n @Input() disabled = false;\n @Input() label = '';\n @Input() className = '';\n @Input() size: PdmSwitchSize = 'default';\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n get rootClasses(): string[] {\n return [\n 'peer relative inline-flex shrink-0 items-center rounded-full border border-transparent outline-none transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50',\n this.size === 'sm' ? 'h-[14px] w-[24px]' : 'h-[18.4px] w-[32px]',\n this.checked ? 'bg-primary' : 'bg-input dark:bg-input/80'\n ];\n }\n\n get thumbClasses(): string[] {\n return [\n 'pointer-events-none block rounded-full bg-background ring-0 transition-transform',\n this.size === 'sm' ? 'size-3' : 'size-4',\n this.checked ? 'translate-x-[calc(100%-2px)]' : 'translate-x-0'\n ];\n }\n\n onToggle(): void {\n if (this.disabled) return;\n const next = !this.checked;\n this.checked = next;\n this.checkedChange.emit(next);\n this.cdr.markForCheck();\n }\n}\n","<div [ngClass]=\"['flex items-center space-x-2', className]\">\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled\"\n [attr.data-state]=\"checked ? 'checked' : 'unchecked'\"\n [attr.data-disabled]=\"disabled ? 'true' : 'false'\"\n [attr.data-size]=\"size\"\n [attr.data-slot]=\"'switch'\"\n [attr.value]=\"checked ? 'on' : 'off'\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [ngClass]=\"rootClasses\"\n (click)=\"onToggle()\"\n >\n <span\n [attr.data-state]=\"checked ? 'checked' : 'unchecked'\"\n [attr.data-slot]=\"'switch-thumb'\"\n [ngClass]=\"thumbClasses\"\n ></span>\n </button>\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [attr.data-slot]=\"'label'\"\n class=\"flex cursor-pointer items-center gap-2 text-sm leading-none font-medium select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50\"\n (click)=\"onToggle()\"\n >\n {{ label }}\n </label>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\nexport type PdmTableVariant = 'default' | 'data' | 'interactive';\n\n@Component({\n selector: 'pdm-table',\n templateUrl: './table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmTableComponent {\n @Input() variant: PdmTableVariant = 'default';\n @Input() reorderRows = false;\n @Input() dragHandleSelector = '[data-drag-handle],[data-slot=row-drag-handle],.row-drag-handle,[data-auto-drag-handle]';\n @Input() className = '';\n @Output() rowOrderChange = new EventEmitter<string[]>();\n\n @ViewChild('tableElement') tableElement?: ElementRef<HTMLTableElement>;\n\n private cleanupListeners: Array<() => void> = [];\n private observer?: MutationObserver;\n private draggedRow: HTMLTableRowElement | null = null;\n\n constructor(private readonly renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.syncReorderBehavior();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['reorderRows'] || changes['variant']) {\n this.syncReorderBehavior();\n }\n }\n\n ngOnDestroy(): void {\n this.cleanupReorderBehavior();\n }\n\n get wrapperClasses(): string[] {\n return [\n 'relative w-full overflow-auto',\n this.variant === 'interactive' ? 'overflow-x-auto overflow-y-hidden rounded-xl border border-border bg-background' : '',\n this.variant === 'data' ? 'overflow-hidden rounded-md border border-border bg-background' : '',\n this.className\n ];\n }\n\n get tableClasses(): string[] {\n return [\n 'w-full caption-bottom text-sm',\n this.variant === 'data'\n ? 'border-collapse text-foreground [&_thead_tr]:border-b [&_thead_tr]:border-border [&_tbody_tr]:border-b [&_tbody_tr]:border-border [&_tbody_tr:last-child]:border-b-0 [&_th]:h-10 [&_th]:px-2 [&_th]:text-left [&_th]:align-middle [&_th]:font-medium [&_td]:p-2 [&_td]:align-middle'\n : '',\n this.variant === 'interactive'\n ? 'text-foreground [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10 [&_thead]:bg-muted/70 [&_thead_tr]:border-b [&_thead_tr]:border-border [&_th]:h-12 [&_th]:px-4 [&_th]:text-left [&_th]:align-middle [&_th]:text-sm [&_th]:font-medium [&_th]:whitespace-nowrap [&_tbody_tr]:border-b [&_tbody_tr]:border-border [&_tbody_tr]:transition-colors [&_tbody_tr:hover]:bg-muted/50 [&_tbody_tr:last-child]:border-b-0 [&_td]:h-14 [&_td]:px-4 [&_td]:align-middle [&_td]:text-sm [&_td]:whitespace-nowrap [&_td:first-child]:w-10 [&_td:last-child]:w-10 [&_svg]:text-muted-foreground'\n : ''\n ];\n }\n\n private syncReorderBehavior(): void {\n this.cleanupReorderBehavior();\n\n if (!this.isReorderEnabled) {\n return;\n }\n\n const tbody = this.getTbody();\n if (!tbody) {\n return;\n }\n\n this.setRowsDraggable(tbody, true);\n\n this.cleanupListeners.push(\n this.renderer.listen(tbody, 'mousedown', (event: MouseEvent) => this.armDragFromHandle(event)),\n this.renderer.listen(tbody, 'dragstart', (event: DragEvent) => this.onDragStart(event)),\n this.renderer.listen(tbody, 'dragover', (event: DragEvent) => this.onDragOver(event, tbody)),\n this.renderer.listen(tbody, 'drop', (event: DragEvent) => this.onDrop(event)),\n this.renderer.listen(tbody, 'dragend', () => this.onDragEnd())\n );\n\n this.observer = new MutationObserver(() => this.setRowsDraggable(tbody, true));\n this.observer.observe(tbody, { childList: true });\n }\n\n private cleanupReorderBehavior(): void {\n this.cleanupListeners.forEach((dispose) => dispose());\n this.cleanupListeners = [];\n\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n\n const tbody = this.getTbody();\n if (tbody) {\n this.setRowsDraggable(tbody, false);\n }\n\n this.draggedRow = null;\n }\n\n private get isReorderEnabled(): boolean {\n return this.reorderRows;\n }\n\n private getTbody(): HTMLTableSectionElement | null {\n return this.tableElement?.nativeElement.tBodies.item(0) ?? null;\n }\n\n private setRowsDraggable(tbody: HTMLTableSectionElement, enabled: boolean): void {\n const rows = Array.from(tbody.rows);\n rows.forEach((row) => {\n this.syncAutoDragHandle(row, enabled);\n row.draggable = false;\n if (!enabled) {\n delete row.dataset['dragging'];\n delete row.dataset['dragArmed'];\n }\n });\n }\n\n private syncAutoDragHandle(row: HTMLTableRowElement, enabled: boolean): void {\n const firstCell = row.cells.item(0);\n if (!firstCell) {\n return;\n }\n\n const existingAutoHandle = firstCell.querySelector('[data-auto-drag-handle]');\n if (!enabled) {\n existingAutoHandle?.remove();\n return;\n }\n\n const hasCustomHandle = !!firstCell.querySelector('[data-drag-handle],[data-slot=row-drag-handle],.row-drag-handle');\n if (hasCustomHandle || existingAutoHandle) {\n return;\n }\n\n const button = this.renderer.createElement('button') as HTMLButtonElement;\n this.renderer.setAttribute(button, 'type', 'button');\n this.renderer.setAttribute(button, 'aria-label', 'Drag row');\n this.renderer.setAttribute(button, 'data-auto-drag-handle', 'true');\n this.renderer.addClass(button, 'inline-flex');\n this.renderer.addClass(button, 'h-7');\n this.renderer.addClass(button, 'w-7');\n this.renderer.addClass(button, 'items-center');\n this.renderer.addClass(button, 'justify-center');\n this.renderer.addClass(button, 'cursor-grab');\n this.renderer.addClass(button, 'active:cursor-grabbing');\n this.renderer.addClass(button, 'text-muted-foreground');\n\n const dots = this.renderer.createElement('span');\n this.renderer.addClass(dots, 'text-sm');\n this.renderer.addClass(dots, 'leading-none');\n this.renderer.setProperty(dots, 'textContent', '⋮⋮');\n this.renderer.appendChild(button, dots);\n\n this.renderer.insertBefore(firstCell, button, firstCell.firstChild);\n }\n\n private onDragStart(event: DragEvent): void {\n const target = event.target as HTMLElement | null;\n const row = target?.closest('tr');\n if (!row) {\n return;\n }\n\n const handle = target?.closest(this.dragHandleSelector);\n const isArmed = row.dataset['dragArmed'] === 'true';\n if ((!handle || !row.contains(handle)) && !isArmed) {\n event.preventDefault();\n return;\n }\n\n this.draggedRow = row as HTMLTableRowElement;\n this.draggedRow.dataset['dragging'] = 'true';\n\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', '');\n }\n }\n\n private onDragOver(event: DragEvent, tbody: HTMLTableSectionElement): void {\n if (!this.draggedRow) {\n return;\n }\n\n event.preventDefault();\n const target = event.target as HTMLElement | null;\n const targetRow = target?.closest('tr') as HTMLTableRowElement | null;\n\n if (!targetRow || targetRow === this.draggedRow) {\n return;\n }\n\n const rect = targetRow.getBoundingClientRect();\n const shouldInsertBefore = event.clientY < rect.top + rect.height / 2;\n tbody.insertBefore(this.draggedRow, shouldInsertBefore ? targetRow : targetRow.nextSibling);\n }\n\n private onDrop(event: DragEvent): void {\n event.preventDefault();\n }\n\n private onDragEnd(): void {\n const tbody = this.getTbody();\n if (tbody) {\n Array.from(tbody.rows).forEach((row) => {\n row.draggable = false;\n delete row.dataset['dragArmed'];\n });\n }\n\n if (this.draggedRow) {\n delete this.draggedRow.dataset['dragging'];\n this.draggedRow = null;\n }\n\n if (!tbody) {\n return;\n }\n\n const order = Array.from(tbody.rows).map((row, index) => row.getAttribute('data-row-id') || String(index));\n this.rowOrderChange.emit(order);\n }\n\n private armDragFromHandle(event: MouseEvent): void {\n const target = event.target as HTMLElement | null;\n const handle = target?.closest(this.dragHandleSelector);\n if (!handle) {\n return;\n }\n\n const row = handle.closest('tr') as HTMLTableRowElement | null;\n if (!row) {\n return;\n }\n\n row.draggable = true;\n row.dataset['dragArmed'] = 'true';\n }\n}\n","<div [ngClass]=\"wrapperClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table-container' : null\">\n <table #tableElement [ngClass]=\"tableClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table' : null\">\n <ng-content></ng-content>\n </table>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmTabItem {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-tabs',\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmTabsComponent {\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n @Input() items: PdmTabItem[] = [];\n @Input() value = '';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n select(item: PdmTabItem): void {\n if (!item.disabled) {\n this.value = item.value;\n this.valueChange.emit(item.value);\n this.cdr.markForCheck();\n }\n }\n}\n","<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex h-8 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground\">\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 'relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium transition-all focus-visible:border-ring focus-visible:outline-none focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-background text-foreground shadow-sm' : 'bg-transparent 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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-textarea',\n templateUrl: './textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmTextareaComponent {\n @Input() id = '';\n @Input() value = '';\n @Input() placeholder = '';\n @Input() rows = 4;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() className = '';\n @Input() textareaClassName = '';\n @Input() label = '';\n @Input() helperText = '';\n @Input() errorText = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n onInput(event: Event): void {\n this.valueChange.emit((event.target as HTMLTextAreaElement).value);\n }\n}\n","<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground'\n ]\"\n >{{ label }}</label>\n <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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmToggleSize = 'sm' | 'default' | 'lg';\n\n@Component({\n selector: 'pdm-toggle',\n templateUrl: './toggle.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmToggleComponent {\n @Input() pressed = false;\n @Input() disabled = false;\n @Input() size: PdmToggleSize = 'default';\n @Input() className = '';\n\n @Output() pressedChange = new EventEmitter<boolean>();\n\n toggle(): void {\n if (!this.disabled) {\n this.pressedChange.emit(!this.pressed);\n }\n }\n\n get sizeClass(): string {\n if (this.size === 'sm') return 'h-8 px-2.5 min-w-[32px]';\n if (this.size === 'lg') return 'h-10 px-4 min-w-[40px]';\n return 'h-9 px-3 min-w-[36px]';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmToggleGroupItem {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-toggle-group',\n templateUrl: './toggle-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmToggleGroupComponent {\n @Input() items: PdmToggleGroupItem[] = [];\n @Input() value = '';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n onSelect(next: string, disabled?: boolean): void {\n if (!disabled && next !== this.value) {\n this.valueChange.emit(next);\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-tooltip',\n templateUrl: './tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmTooltipComponent {\n @Input() text = '';\n @Input() side: 'top' | 'right' | 'bottom' | 'left' = 'top';\n @Input() className = '';\n open = false;\n\n get positionClass(): string {\n if (this.side === 'bottom') return 'top-full left-1/2 -translate-x-1/2 mt-2';\n if (this.side === 'left') return 'right-full top-1/2 -translate-y-1/2 mr-2';\n if (this.side === 'right') return 'left-full top-1/2 -translate-y-1/2 ml-2';\n return 'bottom-full left-1/2 -translate-x-1/2 mb-2';\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PdmAccordionComponent } from './components/accordion/accordion.component';\nimport { PdmAlertComponent } from './components/alert/alert.component';\nimport { PdmAlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { PdmAspectRatioComponent } from './components/aspect-ratio/aspect-ratio.component';\nimport { PdmAvatarComponent } from './components/avatar/avatar.component';\nimport { PdmBadgeComponent } from './components/badge/badge.component';\nimport { PdmBreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { PdmButtonGroupComponent } from './components/button-group/button-group.component';\nimport { PdmButtonComponent } from './components/button/button.component';\nimport { PdmCalendarComponent } from './components/calendar/calendar.component';\nimport { PdmCarouselComponent } from './components/carousel/carousel.component';\nimport { PdmCardComponent } from './components/card/card.component';\nimport { PdmChartComponent } from './components/chart/chart.component';\nimport { PdmCheckboxComponent } from './components/checkbox/checkbox.component';\nimport { PdmCollapsibleComponent } from './components/collapsible/collapsible.component';\nimport { PdmComboboxComponent } from './components/combobox/combobox.component';\nimport { PdmCommandComponent } from './components/command/command.component';\nimport { PdmContextMenuComponent } from './components/context-menu/context-menu.component';\nimport { PdmDataTableComponent } from './components/data-table/data-table.component';\nimport { PdmDatePickerComponent } from './components/date-picker/date-picker.component';\nimport { PdmDialogComponent } from './components/dialog/dialog.component';\nimport { PdmDropdownMenuComponent } from './components/dropdown-menu/dropdown-menu.component';\nimport { PdmDrawerComponent } from './components/drawer/drawer.component';\nimport { PdmEmptyComponent } from './components/empty/empty.component';\nimport { PdmFieldComponent } from './components/field/field.component';\nimport { PdmHoverCardComponent } from './components/hover-card/hover-card.component';\nimport { PdmIconComponent } from './components/icon/icon.component';\nimport { PdmItemComponent } from './components/item/item.component';\nimport { PdmInputComponent } from './components/input/input.component';\nimport { PdmInputPasswordComponent } from './components/input-password/input-password.component';\nimport { PdmInputGroupComponent } from './components/input-group/input-group.component';\nimport { PdmInputOtpComponent } from './components/input-otp/input-otp.component';\nimport { PdmKbdComponent } from './components/kbd/kbd.component';\nimport { PdmLabelComponent } from './components/label/label.component';\nimport { PdmMenubarComponent } from './components/menubar/menubar.component';\nimport { PdmNativeSelectComponent } from './components/native-select/native-select.component';\nimport { PdmNavigationMenuComponent } from './components/navigation-menu/navigation-menu.component';\nimport { PdmPaginationComponent } from './components/pagination/pagination.component';\nimport { PdmPopoverComponent } from './components/popover/popover.component';\nimport { PdmProgressComponent } from './components/progress/progress.component';\nimport { PdmRadioGroupComponent } from './components/radio-group/radio-group.component';\nimport { PdmScrollAreaComponent } from './components/scroll-area/scroll-area.component';\nimport { PdmSelectComponent } from './components/select/select.component';\nimport { PdmSeparatorComponent } from './components/separator/separator.component';\nimport { PdmSheetComponent } from './components/sheet/sheet.component';\nimport { PdmSidebarComponent } from './components/sidebar/sidebar.component';\nimport { PdmSkeletonComponent } from './components/skeleton/skeleton.component';\nimport { PdmSliderComponent } from './components/slider/slider.component';\nimport { PdmSonnerComponent } from './components/sonner/sonner.component';\nimport { PdmSpinnerComponent } from './components/spinner/spinner.component';\nimport { PdmSwitchComponent } from './components/switch/switch.component';\nimport { PdmTableComponent } from './components/table/table.component';\nimport { PdmTabsComponent } from './components/tabs/tabs.component';\nimport { PdmTextareaComponent } from './components/textarea/textarea.component';\nimport { PdmToggleComponent } from './components/toggle/toggle.component';\nimport { PdmToggleGroupComponent } from './components/toggle-group/toggle-group.component';\nimport { PdmTooltipComponent } from './components/tooltip/tooltip.component';\n\nconst COMPONENTS = [\n PdmAccordionComponent,\n PdmAlertComponent,\n PdmAlertDialogComponent,\n PdmAspectRatioComponent,\n PdmAvatarComponent,\n PdmBadgeComponent,\n PdmBreadcrumbComponent,\n PdmButtonGroupComponent,\n PdmButtonComponent,\n PdmCalendarComponent,\n PdmCarouselComponent,\n PdmCardComponent,\n PdmChartComponent,\n PdmCheckboxComponent,\n PdmCollapsibleComponent,\n PdmComboboxComponent,\n PdmCommandComponent,\n PdmContextMenuComponent,\n PdmDataTableComponent,\n PdmDatePickerComponent,\n PdmDialogComponent,\n PdmDropdownMenuComponent,\n PdmDrawerComponent,\n PdmEmptyComponent,\n PdmFieldComponent,\n PdmHoverCardComponent,\n PdmIconComponent,\n PdmItemComponent,\n PdmInputComponent,\n PdmInputPasswordComponent,\n PdmInputGroupComponent,\n PdmInputOtpComponent,\n PdmKbdComponent,\n PdmLabelComponent,\n PdmMenubarComponent,\n PdmNativeSelectComponent,\n PdmNavigationMenuComponent,\n PdmPaginationComponent,\n PdmPopoverComponent,\n PdmProgressComponent,\n PdmRadioGroupComponent,\n PdmScrollAreaComponent,\n PdmSelectComponent,\n PdmSeparatorComponent,\n PdmSheetComponent,\n PdmSidebarComponent,\n PdmSkeletonComponent,\n PdmSliderComponent,\n PdmSonnerComponent,\n PdmSpinnerComponent,\n PdmSwitchComponent,\n PdmTableComponent,\n PdmTabsComponent,\n PdmTextareaComponent,\n PdmToggleComponent,\n PdmToggleGroupComponent,\n PdmTooltipComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class PdmUiKitModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.PdmIconComponent","i2.PdmCalendarComponent","i2.PdmButtonComponent","i3.PdmIconComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pdm-ui-kit.mjs","sources":["../../../src/lib/components/accordion/accordion.component.ts","../../../src/lib/components/accordion/accordion.component.html","../../../src/lib/components/alert/alert.component.ts","../../../src/lib/components/alert/alert.component.html","../../../src/lib/components/alert-dialog/alert-dialog.component.ts","../../../src/lib/components/alert-dialog/alert-dialog.component.html","../../../src/lib/components/aspect-ratio/aspect-ratio.component.ts","../../../src/lib/components/aspect-ratio/aspect-ratio.component.html","../../../src/lib/components/avatar/avatar.component.ts","../../../src/lib/components/avatar/avatar.component.html","../../../src/lib/components/badge/badge.component.ts","../../../src/lib/components/badge/badge.component.html","../../../src/lib/components/breadcrumb/breadcrumb.component.ts","../../../src/lib/components/breadcrumb/breadcrumb.component.html","../../../src/lib/components/button-group/button-group.component.ts","../../../src/lib/components/button-group/button-group.component.html","../../../src/lib/components/button/button.component.ts","../../../src/lib/components/button/button.component.html","../../../src/lib/components/calendar/calendar.component.ts","../../../src/lib/components/calendar/calendar.component.html","../../../src/lib/components/carousel/carousel.component.ts","../../../src/lib/components/carousel/carousel.component.html","../../../src/lib/components/card/card.component.ts","../../../src/lib/components/card/card.component.html","../../../src/lib/components/chart/chart.component.ts","../../../src/lib/components/chart/chart.component.html","../../../src/lib/components/checkbox/checkbox.component.ts","../../../src/lib/components/checkbox/checkbox.component.html","../../../src/lib/components/collapsible/collapsible.component.ts","../../../src/lib/components/collapsible/collapsible.component.html","../../../src/lib/components/combobox/combobox.component.ts","../../../src/lib/components/combobox/combobox.component.html","../../../src/lib/components/icon/icon.component.ts","../../../src/lib/components/icon/icon.component.html","../../../src/lib/components/command/command.component.ts","../../../src/lib/components/command/command.component.html","../../../src/lib/components/context-menu/context-menu.component.ts","../../../src/lib/components/context-menu/context-menu.component.html","../../../src/lib/components/data-table/data-table.component.ts","../../../src/lib/components/data-table/data-table.component.html","../../../src/lib/components/date-picker/date-picker.component.ts","../../../src/lib/components/date-picker/date-picker.component.html","../../../src/lib/components/dialog/dialog.component.ts","../../../src/lib/components/dialog/dialog.component.html","../../../src/lib/components/dropdown-menu/dropdown-menu.component.ts","../../../src/lib/components/dropdown-menu/dropdown-menu.component.html","../../../src/lib/components/drawer/drawer.component.ts","../../../src/lib/components/drawer/drawer.component.html","../../../src/lib/components/empty/empty.component.ts","../../../src/lib/components/empty/empty.component.html","../../../src/lib/components/field/field.component.ts","../../../src/lib/components/field/field.component.html","../../../src/lib/components/hover-card/hover-card.component.ts","../../../src/lib/components/hover-card/hover-card.component.html","../../../src/lib/components/item/item.component.ts","../../../src/lib/components/item/item.component.html","../../../src/lib/components/input/input.component.ts","../../../src/lib/components/input/input.component.html","../../../src/lib/components/input-password/input-password.component.ts","../../../src/lib/components/input-password/input-password.component.html","../../../src/lib/components/input-group/input-group.component.ts","../../../src/lib/components/input-group/input-group.component.html","../../../src/lib/components/input-otp/input-otp.component.ts","../../../src/lib/components/input-otp/input-otp.component.html","../../../src/lib/components/kbd/kbd.component.ts","../../../src/lib/components/kbd/kbd.component.html","../../../src/lib/components/label/label.component.ts","../../../src/lib/components/label/label.component.html","../../../src/lib/components/menubar/menubar.component.ts","../../../src/lib/components/menubar/menubar.component.html","../../../src/lib/components/native-select/native-select.component.ts","../../../src/lib/components/native-select/native-select.component.html","../../../src/lib/components/navigation-menu/navigation-menu.component.ts","../../../src/lib/components/navigation-menu/navigation-menu.component.html","../../../src/lib/components/pagination/pagination.component.ts","../../../src/lib/components/pagination/pagination.component.html","../../../src/lib/components/popover/popover.component.ts","../../../src/lib/components/popover/popover.component.html","../../../src/lib/components/progress/progress.component.ts","../../../src/lib/components/progress/progress.component.html","../../../src/lib/components/radio-group/radio-group.component.ts","../../../src/lib/components/radio-group/radio-group.component.html","../../../src/lib/components/scroll-area/scroll-area.component.ts","../../../src/lib/components/scroll-area/scroll-area.component.html","../../../src/lib/components/select/select.component.ts","../../../src/lib/components/select/select.component.html","../../../src/lib/components/separator/separator.component.ts","../../../src/lib/components/separator/separator.component.html","../../../src/lib/components/sheet/sheet.component.ts","../../../src/lib/components/sheet/sheet.component.html","../../../src/lib/components/sidebar/sidebar.component.ts","../../../src/lib/components/sidebar/sidebar.component.html","../../../src/lib/components/skeleton/skeleton.component.ts","../../../src/lib/components/skeleton/skeleton.component.html","../../../src/lib/components/slider/slider.component.ts","../../../src/lib/components/slider/slider.component.html","../../../src/lib/components/sonner/sonner.component.ts","../../../src/lib/components/sonner/sonner.component.html","../../../src/lib/components/spinner/spinner.component.ts","../../../src/lib/components/spinner/spinner.component.html","../../../src/lib/components/switch/switch.component.ts","../../../src/lib/components/switch/switch.component.html","../../../src/lib/components/table/table.component.ts","../../../src/lib/components/table/table.component.html","../../../src/lib/components/tabs/tabs.component.ts","../../../src/lib/components/tabs/tabs.component.html","../../../src/lib/components/textarea/textarea.component.ts","../../../src/lib/components/textarea/textarea.component.html","../../../src/lib/components/toggle/toggle.component.ts","../../../src/lib/components/toggle/toggle.component.html","../../../src/lib/components/toggle-group/toggle-group.component.ts","../../../src/lib/components/toggle-group/toggle-group.component.html","../../../src/lib/components/tooltip/tooltip.component.ts","../../../src/lib/components/tooltip/tooltip.component.html","../../../src/lib/pdm-ui-kit.module.ts","../../../src/pdm-ui-kit.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmAccordionItem {\n id: string;\n title: string;\n content: string | string[];\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-accordion',\n templateUrl: './accordion.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAccordionComponent {\n @Input() items: PdmAccordionItem[] = [];\n @Input() expandedIndex = -1;\n @Input() className = '';\n\n @Output() expandedIndexChange = new EventEmitter<number>();\n\n isExpanded(index: number): boolean {\n return this.expandedIndex === index;\n }\n\n contentLines(content: string | string[]): string[] {\n if (Array.isArray(content)) return content;\n return content\n .split('\\n')\n .map((line) => line.trim())\n .filter((line) => line.length > 0);\n }\n\n toggle(index: number): void {\n if (this.items[index]?.disabled) return;\n this.expandedIndexChange.emit(this.expandedIndex === index ? -1 : index);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmAlertVariant = 'default' | 'title-only' | 'destructive';\n\n@Component({\n selector: 'pdm-alert',\n templateUrl: './alert.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAlertComponent {\n @Input() variant: PdmAlertVariant = 'default';\n @Input() title = 'Success! Your changes have been saved';\n @Input() description = 'This is an alert with icon, title and description.';\n @Input() details: string[] = [];\n @Input() className = '';\n\n get isDestructive(): boolean {\n return this.variant === 'destructive';\n }\n\n get isTitleOnly(): boolean {\n return this.variant === 'title-only';\n }\n}\n\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAlertDialogComponent {\n @Input() open = false;\n @Input() showTrigger = false;\n @Input() triggerText = 'Show dialog';\n @Input() title = 'Are you absolutely sure?';\n @Input() description = '';\n @Input() confirmText = 'Continue';\n @Input() cancelText = 'Cancel';\n @Input() className = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() confirm = new EventEmitter<void>();\n @Output() cancel = new EventEmitter<void>();\n\n onTriggerClick(): void {\n this.open = true;\n this.openChange.emit(true);\n }\n\n onCancel(): void {\n this.cancel.emit();\n this.open = false;\n this.openChange.emit(false);\n }\n\n onConfirm(): void {\n this.confirm.emit();\n this.open = false;\n this.openChange.emit(false);\n }\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n if (this.open) {\n this.onCancel();\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-aspect-ratio',\n templateUrl: './aspect-ratio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAspectRatioComponent {\n @Input() ratio = 16 / 9;\n @Input() imageSrc = '';\n @Input() imageAlt = '';\n @Input() className = '';\n\n get paddingTop(): string {\n if (!this.ratio || this.ratio <= 0) return '56.25%';\n return (100 / this.ratio).toFixed(4) + '%';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmAvatarShape = 'circle' | 'square';\n\n@Component({\n selector: 'pdm-avatar',\n templateUrl: './avatar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmAvatarComponent {\n @Input() src = '';\n @Input() alt = 'Avatar';\n @Input() fallback = 'U';\n @Input() shape: PdmAvatarShape = 'circle';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() groupSources: string[] = [];\n @Input() className = '';\n\n readonly sizeClasses = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12'\n };\n\n get isGroup(): boolean {\n return this.groupSources.length > 0;\n }\n\n get radiusClass(): string {\n return this.shape === 'square' ? 'rounded-[8px]' : 'rounded-full';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmBadgeVariant =\n | 'default'\n | 'secondary'\n | 'destructive'\n | 'outline'\n | 'icon'\n | 'number'\n | 'destructive-number'\n | 'secondary-number';\n\n@Component({\n selector: 'pdm-badge',\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmBadgeComponent {\n @Input() variant: PdmBadgeVariant = 'default';\n @Input() text = 'Badge';\n @Input() className = '';\n}\n\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmBreadcrumbMode =\n | 'custom-separator'\n | 'dropdown'\n | 'collapsed'\n | 'link-component'\n | 'responsive';\n\n@Component({\n selector: 'pdm-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmBreadcrumbComponent {\n @Input() mode: PdmBreadcrumbMode = 'link-component';\n @Input() items: string[] = ['Home', 'Components', 'Breadcrumb'];\n @Input() className = '';\n\n get renderedItems(): string[] {\n if ((this.mode === 'collapsed' || this.mode === 'responsive') && this.items.length > 3) {\n return [this.items[0], '...', this.items[this.items.length - 2], this.items[this.items.length - 1]];\n }\n return this.items;\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmButtonGroupVariant = 'default' | 'group' | 'orientation' | 'separator';\nexport type PdmButtonGroupOrientation = 'horizontal' | 'vertical';\n\n@Component({\n selector: 'pdm-button-group',\n templateUrl: './button-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmButtonGroupComponent {\n @Input() variant: PdmButtonGroupVariant = 'default';\n @Input() orientation?: PdmButtonGroupOrientation;\n @Input() direction?: PdmButtonGroupOrientation;\n @Input() separated = true;\n @Input() className = '';\n\n get rootClasses(): string[] {\n const effectiveOrientation = this.orientation ?? this.direction ?? 'horizontal';\n const isVertical = this.variant === 'orientation' || effectiveOrientation === 'vertical';\n const isGroup = this.variant === 'group';\n const isAttached = !this.separated && this.variant !== 'default';\n const isSeparator = this.variant === 'separator';\n\n const attachedClasses = isAttached && !isGroup\n ? isVertical\n ? [\n '[&>*]:rounded-none',\n '[&>*:first-child]:rounded-t-md',\n '[&>*:last-child]:rounded-b-md',\n '[&>*:not(:first-child)]:border-t-0',\n '[&>*:not(:first-child)]:-mt-px'\n ].join(' ')\n : [\n '[&>*]:rounded-none',\n '[&>*:first-child]:rounded-l-md',\n '[&>*:last-child]:rounded-r-md',\n '[&>*:not(:first-child)]:border-l-0',\n '[&>*:not(:first-child)]:-ml-px'\n ].join(' ')\n : '';\n\n const groupHorizontalClasses = isGroup && !isVertical && !this.separated\n ? [\n '[&>*:not(:first-child)]:-ml-px',\n '[&>pdm-button]:flex',\n '[&>pdm-button>button]:h-9',\n '[&>pdm-input]:flex-1',\n '[&>pdm-input>div]:w-full',\n '[&>pdm-button>button]:!rounded-none',\n '[&>pdm-button:first-child>button]:!rounded-l-md',\n '[&>pdm-button:last-child>button]:!rounded-r-md',\n '[&>pdm-input>div>input]:!rounded-none',\n '[&>pdm-input:first-child>div>input]:!rounded-l-md',\n '[&>pdm-input:last-child>div>input]:!rounded-r-md',\n '[&>pdm-input-group>div]:!rounded-none',\n '[&>pdm-input-group:first-child>div]:!rounded-l-md',\n '[&>pdm-input-group:last-child>div]:!rounded-r-md',\n '[&>pdm-input>div>input]:bg-background',\n '[&>pdm-input>div>input]:shadow-none',\n '[&>pdm-button>button]:rounded-l-none',\n '[&>pdm-button>button]:shadow-none'\n ].join(' ')\n : '';\n\n const groupVerticalClasses = isGroup && isVertical && !this.separated\n ? [\n '[&>*:not(:first-child)]:-mt-px',\n '[&>pdm-button]:flex',\n '[&>pdm-button>button]:h-9',\n '[&>pdm-button>button]:!rounded-none',\n '[&>pdm-button:first-child>button]:!rounded-t-md',\n '[&>pdm-button:last-child>button]:!rounded-b-md',\n '[&>pdm-input>div>input]:!rounded-none',\n '[&>pdm-input:first-child>div>input]:!rounded-t-md',\n '[&>pdm-input:last-child>div>input]:!rounded-b-md',\n '[&>pdm-input-group>div]:!rounded-none',\n '[&>pdm-input-group:first-child>div]:!rounded-t-md',\n '[&>pdm-input-group:last-child>div]:!rounded-b-md',\n '[&>pdm-input>div>input]:bg-background',\n '[&>pdm-input>div>input]:shadow-none',\n '[&>pdm-button>button]:shadow-none'\n ].join(' ')\n : '';\n\n return [\n 'inline-flex w-fit',\n isVertical ? 'flex-col items-stretch' : 'items-center',\n this.variant === 'default' || this.separated ? 'gap-2' : 'gap-0',\n isGroup ? '*:focus-visible:relative *:focus-visible:z-10' : '',\n attachedClasses,\n groupHorizontalClasses,\n groupVerticalClasses,\n isSeparator\n ? 'overflow-hidden rounded-md border border-border bg-secondary shadow-sm'\n : '',\n this.className\n ];\n }\n}\n","<div\n role=\"group\"\n [attr.aria-orientation]=\"variant === 'orientation' || orientation === 'vertical' || direction === 'vertical' ? 'vertical' : 'horizontal'\"\n [ngClass]=\"rootClasses\"\n>\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmButtonVariant =\n | 'default'\n | 'primary'\n | 'destructive'\n | 'outline'\n | 'subtle'\n | 'secondary'\n | 'ghost'\n | 'link'\n | 'with-icon'\n | 'icon'\n | 'icon-circle'\n | 'rounded'\n | 'loading';\nexport type PdmButtonState = 'default' | 'hover';\nexport type PdmButtonSize = 'small' | 'default' | 'large';\n\n@Component({\n selector: 'pdm-button',\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmButtonComponent {\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() variant: PdmButtonVariant | string = 'default';\n @Input() state: PdmButtonState | string = 'default';\n @Input() size: PdmButtonSize | string = 'default';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() className = '';\n\n @Output() pressed = new EventEmitter<MouseEvent>();\n\n readonly toneClassMap: Record<PdmButtonVariant, { default: string; hover: string }> = {\n default: { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n primary: { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n destructive: { default: 'border-border bg-destructive text-destructive-foreground', hover: 'border-border bg-destructive text-destructive-foreground opacity-90' },\n outline: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-muted text-foreground' },\n subtle: { default: 'border-secondary bg-secondary text-secondary-foreground', hover: 'border-accent bg-accent text-accent-foreground' },\n secondary: { default: 'border-secondary bg-secondary text-secondary-foreground', hover: 'border-accent bg-accent text-accent-foreground' },\n ghost: { default: 'border-border bg-transparent text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n link: { default: 'border-border bg-transparent text-primary', hover: 'border-border bg-transparent text-primary underline underline-offset-4' },\n 'with-icon': { default: 'border-primary bg-primary text-primary-foreground', hover: 'border-primary bg-primary text-primary-foreground opacity-90' },\n icon: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n 'icon-circle': { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n rounded: { default: 'border-border bg-background text-foreground', hover: 'border-border bg-accent text-accent-foreground' },\n loading: { default: 'border-primary bg-primary text-primary-foreground opacity-70', hover: 'border-primary bg-primary text-primary-foreground opacity-70' }\n };\n\n get isDisabled(): boolean {\n return this.disabled || this.loading || this.variant === 'loading';\n }\n\n get resolvedVariant(): PdmButtonVariant {\n return this.isValidVariant(this.variant) ? this.variant : 'default';\n }\n\n get resolvedState(): PdmButtonState {\n return this.state === 'hover' ? 'hover' : 'default';\n }\n\n get resolvedSize(): PdmButtonSize {\n if (this.size === 'small' || this.size === 'large') {\n return this.size;\n }\n\n return 'default';\n }\n\n get showsIconSlot(): boolean {\n const variant = this.resolvedVariant;\n return variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded';\n }\n\n get rootClasses(): string[] {\n const currentState = this.resolvedState;\n const variant = this.resolvedVariant;\n const toneClass = this.toneClassMap[variant][currentState];\n\n return [\n 'inline-flex items-center justify-center gap-2 rounded-md border text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-clip-padding',\n variant === 'link' ? 'px-4 py-2 h-9' : '',\n variant === 'icon' ? 'h-9 w-9 p-0' : '',\n variant === 'icon-circle' ? 'h-10 w-10 rounded-full p-0' : '',\n variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',\n variant !== 'icon' && variant !== 'icon-circle' && variant !== 'rounded'\n ? this.resolvedSize === 'small'\n ? 'h-8 px-3 text-xs'\n : this.resolvedSize === 'large'\n ? 'h-10 px-8'\n : 'h-9 px-4'\n : '',\n variant === 'link' && currentState === 'hover' ? 'underline underline-offset-4' : '',\n toneClass,\n this.className\n ];\n }\n\n onClick(event: MouseEvent): void {\n if (!this.isDisabled) {\n this.pressed.emit(event);\n }\n }\n\n private isValidVariant(value: unknown): value is PdmButtonVariant {\n return (\n value === 'default' ||\n value === 'primary' ||\n value === 'destructive' ||\n value === 'outline' ||\n value === 'subtle' ||\n value === 'secondary' ||\n value === 'ghost' ||\n value === 'link' ||\n value === 'with-icon' ||\n value === 'icon' ||\n value === 'icon-circle' ||\n value === 'rounded' ||\n value === 'loading'\n );\n }\n}\n","<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"showsIconSlot\"></ng-content>\n <ng-content></ng-content>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmCalendarMode = 'single' | 'range';\n\ninterface CalendarCell {\n date: Date;\n day: number;\n outside: boolean;\n selected: boolean;\n inRange: boolean;\n}\n\n@Component({\n selector: 'pdm-calendar',\n templateUrl: './calendar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCalendarComponent {\n @Input() mode: PdmCalendarMode = 'single';\n @Input() month = 6;\n @Input() year = 2025;\n @Input() selectedDay = 25;\n @Input() rangeStartDay = 25;\n @Input() rangeEndDay = 9;\n @Input() className = '';\n\n readonly weekdays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n get leftMonthName(): string {\n return this.monthName(this.month - 1);\n }\n\n get rightMonthName(): string {\n const rightMonth = this.month % 12;\n return this.monthName(rightMonth);\n }\n\n get leftCells(): CalendarCell[] {\n return this.buildMonthCells(this.year, this.month - 1, this.selectedDay, this.mode === 'range' ? this.rangeStartDay : undefined, this.mode === 'range' ? 31 : undefined);\n }\n\n get rightCells(): CalendarCell[] {\n const rightMonth = this.month % 12;\n const rightYear = this.month === 12 ? this.year + 1 : this.year;\n return this.buildMonthCells(rightYear, rightMonth, this.mode === 'range' ? this.rangeEndDay : undefined, 1, this.mode === 'range' ? this.rangeEndDay : undefined);\n }\n\n private monthName(monthIndex: number): string {\n const safe = ((monthIndex % 12) + 12) % 12;\n return new Date(this.year, safe, 1).toLocaleString('en-US', { month: 'long' });\n }\n\n private buildMonthCells(\n year: number,\n monthIndex: number,\n selectedDay?: number,\n rangeStartDay?: number,\n rangeEndDay?: number\n ): CalendarCell[] {\n const firstDay = new Date(year, monthIndex, 1);\n const startWeekday = firstDay.getDay();\n const daysInMonth = new Date(year, monthIndex + 1, 0).getDate();\n const cells: CalendarCell[] = [];\n\n for (let i = 0; i < 42; i += 1) {\n const dayNumber = i - startWeekday + 1;\n const date = new Date(year, monthIndex, dayNumber);\n const outside = dayNumber < 1 || dayNumber > daysInMonth;\n const day = date.getDate();\n const selected = !outside && !!selectedDay && day === selectedDay;\n const inRange = !outside && !!rangeStartDay && !!rangeEndDay && day >= rangeStartDay && day <= rangeEndDay;\n cells.push({ date, day, outside, selected, inRange });\n }\n\n return cells;\n }\n}\n\n","<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\">‹</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' ? '' : '›' }}</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\">›</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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmCarouselVariant = 'default' | 'sizes' | 'orientation' | 'api';\n\n@Component({\n selector: 'pdm-carousel',\n templateUrl: './carousel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCarouselComponent {\n @Input() variant: PdmCarouselVariant = 'default';\n @Input() className = '';\n @Input() slides: Array<string | number> = [];\n @Input() startIndex = 0;\n @Input() loop = false;\n @Input() windowSize?: number;\n @Input() showCounter = false;\n\n @Output() indexChange = new EventEmitter<number>();\n\n private _index = 0;\n\n ngOnInit(): void {\n this._index = this.normalizeIndex(this.startIndex);\n }\n\n get index(): number {\n return this._index;\n }\n\n get canPrev(): boolean {\n return this.loop || this._index > 0;\n }\n\n get canNext(): boolean {\n return this.loop || this._index < this.maxIndex;\n }\n\n get maxIndex(): number {\n if (this.slides.length === 0) {\n return 0;\n }\n return Math.max(0, this.slides.length - this.currentWindowSize);\n }\n\n get visibleSlides(): Array<string | number> {\n if (this.slides.length === 0) {\n return [];\n }\n\n return this.sliceWindow(this.currentWindowSize);\n }\n\n get currentWindowSize(): number {\n if (typeof this.windowSize === 'number' && this.windowSize > 0) {\n return Math.max(1, Math.floor(this.windowSize));\n }\n if (this.variant === 'sizes') {\n return 3;\n }\n if (this.variant === 'orientation') {\n return 2;\n }\n return 1;\n }\n\n onPrev(): void {\n if (!this.canPrev) {\n return;\n }\n\n const next = this._index - 1;\n this.setIndex(this.loop && next < 0 ? this.maxIndex : next);\n }\n\n onNext(): void {\n if (!this.canNext) {\n return;\n }\n\n const next = this._index + 1;\n this.setIndex(this.loop && next > this.maxIndex ? 0 : next);\n }\n\n private setIndex(value: number): void {\n const normalized = this.normalizeIndex(value);\n this._index = normalized;\n this.indexChange.emit(this._index);\n }\n\n private normalizeIndex(value: number): number {\n if (this.slides.length === 0) {\n return 0;\n }\n return Math.min(this.maxIndex, Math.max(0, value));\n }\n\n private sliceWindow(size: number): Array<string | number> {\n return this.slides.slice(this._index, this._index + size);\n }\n}\n","<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 <div 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 <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 <p *ngIf=\"variant !== 'orientation' && showCounter\" class=\"m-0 pt-2 text-sm font-medium text-muted-foreground\">\n {{ slides.length ? (index + 1) : 0 }} / {{ slides.length }}\n </p>\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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmCardVariant = 'default' | 'login';\n\n@Component({\n selector: 'pdm-card',\n templateUrl: './card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCardComponent {\n @Input() variant: PdmCardVariant = 'default';\n @Input() className = '';\n\n @Input() title = 'Login to your account';\n @Input() description = 'Enter your email below to login to your account';\n @Input() actionText = 'Sign up';\n @Input() emailLabel = 'Email';\n @Input() emailPlaceholder = 'm@example.com';\n @Input() passwordLabel = 'Password';\n @Input() passwordHint = 'Forgot password?';\n @Input() primaryActionText = 'Login';\n @Input() secondaryActionText = 'Login with Google';\n\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n @Output() actionPressed = new EventEmitter<void>();\n\n onPrimaryAction(): void {\n this.primaryAction.emit();\n }\n\n onSecondaryAction(): void {\n this.secondaryAction.emit();\n }\n\n onActionPressed(): void {\n this.actionPressed.emit();\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmChartType = 'area' | 'bar' | 'line' | 'pie' | 'radar' | 'radial' | 'tooltips';\n\n@Component({\n selector: 'pdm-chart',\n templateUrl: './chart.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmChartComponent {\n @Input() type: PdmChartType = 'bar';\n @Input() className = '';\n @Input() title = '';\n @Input() description = '';\n\n @Input() desktopLabel = '';\n @Input() desktopValue = '';\n @Input() mobileLabel = '';\n @Input() mobileValue = '';\n\n @Input() labels: string[] = [];\n\n @Input() bars: number[] = [];\n @Input() line: number[] = [];\n @Input() pie: number[] = [];\n @Input() radar: number[] = [];\n @Input() radialValue = 0;\n @Input() radialLabel = '';\n @Input() radialDescription = '';\n @Input() tooltipTitle = '';\n @Input() tooltipPrimaryLabel = '';\n @Input() tooltipPrimaryValue = '';\n @Input() tooltipSecondaryLabel = '';\n @Input() tooltipSecondaryValue = '';\n @Input() pieLabels: string[] = [];\n @Input() tooltipHint = '';\n @Input() radarMetricPrefix = 'Metric';\n @Input() emptyLabel = 'No data available';\n\n get normalizedBars(): number[] {\n if (!this.bars.length) {\n return [];\n }\n\n const max = Math.max(...this.bars);\n if (max === 0) {\n return this.bars.map(() => 0);\n }\n\n return this.bars.map((value) => Math.max(8, Math.round((value / max) * 183)));\n }\n\n get normalizedLine(): number[] {\n if (!this.line.length) {\n return [];\n }\n\n const max = Math.max(...this.line);\n if (max === 0) {\n return this.line.map(() => 170);\n }\n\n return this.line.map((value) => 180 - Math.round((value / max) * 150));\n }\n\n get linePath(): string {\n const points = this.normalizedLine;\n if (!points.length) {\n return '';\n }\n\n const step = points.length > 1 ? 320 / (points.length - 1) : 0;\n return points\n .map((y, index) => `${index === 0 ? 'M' : 'L'} ${Math.round(index * step)} ${y}`)\n .join(' ');\n }\n\n get areaPath(): string {\n const linePath = this.linePath;\n if (!linePath) {\n return '';\n }\n\n return `${linePath} L 320 180 L 0 180 Z`;\n }\n\n get pieSegments(): { color: string; size: number; offset: number; label: string }[] {\n const total = this.pie.reduce((acc, value) => acc + Math.max(value, 0), 0);\n if (total === 0) {\n return [];\n }\n\n let offset = 0;\n const colors = ['hsl(var(--chart-1))', 'hsl(var(--chart-2))', 'hsl(var(--chart-3))', 'hsl(var(--chart-4))'];\n return this.pie.map((value, index) => {\n const size = (Math.max(value, 0) / total) * 100;\n const segment = {\n color: colors[index % colors.length],\n size,\n offset,\n label: this.pieLabels[index] ?? `Series ${index + 1}`\n };\n offset += size;\n return segment;\n });\n }\n\n get pieGradient(): string {\n const segments = this.pieSegments;\n if (!segments.length) {\n return 'conic-gradient(hsl(var(--muted)) 0 100%)';\n }\n\n return `conic-gradient(${segments\n .map((segment) => `${segment.color} ${segment.offset}% ${segment.offset + segment.size}%`)\n .join(', ')})`;\n }\n\n get radarPoints(): string {\n const values = this.radar.slice(0, 6);\n if (!values.length) {\n return '';\n }\n\n const max = Math.max(...values, 1);\n const radius = 72;\n const center = 80;\n return values\n .map((value, index) => {\n const angle = ((Math.PI * 2) / values.length) * index - Math.PI / 2;\n const valueRadius = (Math.max(value, 0) / max) * radius;\n const x = center + Math.cos(angle) * valueRadius;\n const y = center + Math.sin(angle) * valueRadius;\n return `${x},${y}`;\n })\n .join(' ');\n }\n\n get radialStrokeOffset(): number {\n const bounded = Math.max(0, Math.min(this.radialValue, 100));\n const circumference = 2 * Math.PI * 42;\n return circumference - (bounded / 100) * circumference;\n }\n}\n","<section [ngClass]=\"['w-full rounded-lg border border-border bg-card text-card-foreground', className]\">\n <div *ngIf=\"title || description || desktopLabel || desktopValue || mobileLabel || mobileValue\" 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 *ngIf=\"title\" class=\"m-0 text-sm font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p *ngIf=\"description\" class=\"m-0 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n\n <div *ngIf=\"desktopLabel || desktopValue || mobileLabel || mobileValue\" 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 <p *ngIf=\"normalizedBars.length === 0\" class=\"m-0 text-sm text-muted-foreground\">{{ emptyLabel }}</p>\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 *ngIf=\"labels.length\" 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 <p *ngIf=\"normalizedLine.length === 0\" class=\"m-0 text-sm text-muted-foreground\">{{ emptyLabel }}</p>\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 *ngIf=\"labels.length\" 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 <p *ngIf=\"normalizedLine.length === 0\" class=\"m-0 text-sm text-muted-foreground\">{{ emptyLabel }}</p>\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 *ngIf=\"labels.length\" 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\">{{ radarMetricPrefix }} {{ 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 *ngIf=\"tooltipHint\" class=\"m-0 text-xs text-muted-foreground\">{{ tooltipHint }}</p>\n </div>\n </ng-container>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmCheckboxVariant = 'default' | 'subtext' | 'card';\n\n@Component({\n selector: 'pdm-checkbox',\n templateUrl: './checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCheckboxComponent {\n @Input() id = '';\n @Input() checked = false;\n @Input() disabled = false;\n @Input() variant: PdmCheckboxVariant = 'default';\n @Input() label = 'Accept terms and conditions';\n @Input() description = '';\n @Input() className = '';\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n get hasDescription(): boolean {\n return this.variant === 'subtext' || this.variant === 'card' ? !!this.description : false;\n }\n\n onToggle(): void {\n if (this.disabled) {\n return;\n }\n\n this.checkedChange.emit(!this.checked);\n }\n}\n","<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-border 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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-collapsible',\n templateUrl: './collapsible.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCollapsibleComponent {\n @Input() title = '@peduarte starred 3 repositories';\n @Input() open = false;\n @Input() disabled = false;\n @Input() items: string[] = ['@radix-ui/primitives', '@radix-ui/colors', '@stitches/react'];\n @Input() className = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n get visibleItems(): string[] {\n if (!this.items.length) {\n return [];\n }\n return this.open ? this.items : this.items.slice(0, 1);\n }\n\n toggle(): void {\n if (!this.disabled) {\n this.openChange.emit(!this.open);\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-combobox',\n templateUrl: './combobox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmComboboxComponent {\n @Input() open = false;\n @Input() placeholder = 'Select framework...';\n @Input() searchPlaceholder = 'Search framework';\n @Input() className = '';\n @Input() options: string[] = ['Next.js', 'SvelteKit', 'Nuxt.js', 'Remix', 'Astro'];\n @Input() value = '';\n @Input() width = 200;\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() valueChange = new EventEmitter<string>();\n\n get selectedLabel(): string {\n return this.value || this.placeholder;\n }\n\n toggle(): void {\n this.openChange.emit(!this.open);\n }\n\n select(option: string): void {\n this.valueChange.emit(option);\n this.openChange.emit(false);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { icons, type IconNode } from 'lucide';\n\nexport type PdmIconLibrary = 'lucide' | 'tabler' | 'hugeicons' | 'phosphor' | 'remix';\n\nexport type PdmIconName =\n | 'command'\n | 'check'\n | 'check-circle'\n | 'circle'\n | 'dot'\n | 'x'\n | 'alert-circle'\n | 'info'\n | 'loader-2'\n | 'menu'\n | 'search'\n | 'calendar'\n | 'panel-left'\n | 'monitor'\n | 'laptop'\n | 'sun'\n | 'moon'\n | 'chevron-down'\n | 'chevron-up'\n | 'chevron-left'\n | 'chevron-right'\n | 'chevrons-left'\n | 'chevrons-right'\n | 'chevrons-up-down'\n | 'arrow-up-down'\n | 'ellipsis'\n | 'filter'\n | 'sort-asc'\n | 'sort-desc'\n | 'plus'\n | 'minus'\n | 'copy'\n | 'pencil'\n | 'trash-2'\n | 'download'\n | 'upload'\n | 'home'\n | 'mail'\n | 'phone'\n | 'log-in'\n | 'log-out'\n | 'user'\n | 'settings'\n | 'credit-card'\n | 'smile'\n | 'calculator'\n | 'external-link'\n | 'folder'\n | 'arrow-up-right';\n\nconst FALLBACK_NODE: IconNode = [['circle', { cx: '12', cy: '12', r: '9' }]];\n\n@Component({\n selector: 'pdm-icon',\n templateUrl: './icon.component.html',\n styles: [\n `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n flex-shrink: 0;\n }\n\n :host svg {\n display: block;\n }\n `\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmIconComponent {\n @Input() name: PdmIconName | string = 'check';\n @Input() library: PdmIconLibrary = 'lucide';\n @Input() assetUrl: string | null = null;\n @Input() size = 16;\n @Input() strokeWidth = 1.5;\n @Input() className = '';\n @Input() ariaLabel: string | null = null;\n @Input() decorative = false;\n\n private readonly lucideIndex = this.buildLucideIndex();\n\n private readonly aliasMapByLibrary: Record<PdmIconLibrary, Record<string, string>> = {\n lucide: {\n 'check-circle': 'circle-check',\n 'alert-circle': 'circle-alert',\n info: 'circle-info',\n 'sort-asc': 'arrow-up-a-z',\n 'sort-desc': 'arrow-down-z-a'\n },\n tabler: {\n 'alert-triangle': 'triangle-alert',\n 'user-circle': 'circle-user',\n 'settings-2': 'settings-2',\n 'external-link': 'external-link'\n },\n hugeicons: {\n 'alert-02': 'circle-alert',\n 'user-circle': 'circle-user',\n 'search-01': 'search',\n 'settings-01': 'settings',\n 'arrow-right-01': 'chevron-right',\n 'arrow-down-01': 'chevron-down'\n },\n phosphor: {\n 'warning-circle': 'circle-alert',\n 'caret-down': 'chevron-down',\n 'caret-right': 'chevron-right',\n 'user-circle': 'circle-user',\n gear: 'settings',\n 'arrow-square-out': 'external-link'\n },\n remix: {\n 'alert-line': 'circle-alert',\n 'arrow-right-line': 'chevron-right',\n 'arrow-down-s-line': 'chevron-down',\n 'external-link-line': 'external-link',\n 'user-line': 'user',\n 'settings-3-line': 'settings'\n }\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n get resolvedStrokeWidth(): number {\n const value = Number(this.strokeWidth);\n if (Number.isFinite(value) && value > 0) {\n return value;\n }\n\n if (this.library === 'phosphor') {\n return 1.6;\n }\n\n if (this.library === 'tabler') {\n return 1.8;\n }\n\n return 1.5;\n }\n\n get resolvedSize(): number {\n const value = Number(this.size);\n return Number.isFinite(value) && value > 0 ? value : 16;\n }\n\n get iconKey(): string {\n const raw = `${this.name || ''}`.trim();\n if (!raw) {\n return 'circle';\n }\n\n const trimmed = raw.replace(/^(lucide|tabler|hugeicons|phosphor|remix)\\//, '');\n const aliases = this.aliasMapByLibrary[this.library] ?? {};\n return aliases[trimmed] ?? trimmed;\n }\n\n get svgMarkup(): SafeHtml {\n const node = this.resolveIconNode(this.iconKey) ?? FALLBACK_NODE;\n const strokeWidth = this.escapeAttr(this.resolvedStrokeWidth);\n const size = this.escapeAttr(this.resolvedSize);\n\n const body = node\n .map(([tag, attrs]) => {\n const serializedAttrs = Object.entries(attrs)\n .map(([key, value]) => `${key}=\"${this.escapeAttr(value)}\"`)\n .join(' ');\n\n return serializedAttrs ? `<${tag} ${serializedAttrs}></${tag}>` : `<${tag}></${tag}>`;\n })\n .join('');\n\n const svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"${strokeWidth}\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${body}</svg>`;\n\n return this.sanitizer.bypassSecurityTrustHtml(svg);\n }\n\n private resolveIconNode(iconName: string): IconNode | null {\n const normalized = this.normalizeIconName(iconName);\n return this.lucideIndex.get(normalized) ?? null;\n }\n\n private normalizeIconName(name: string): string {\n return `${name || ''}`.toLowerCase().replace(/[^a-z0-9]/g, '');\n }\n\n private buildLucideIndex(): Map<string, IconNode> {\n const map = new Map<string, IconNode>();\n\n Object.entries(icons).forEach(([iconName, iconNode]) => {\n map.set(this.normalizeIconName(iconName), iconNode as IconNode);\n });\n\n return map;\n }\n\n private escapeAttr(value: unknown): string {\n return `${value ?? ''}`\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n }\n}\n","<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport type { PdmIconName } from '../icon/icon.component';\n\nexport interface PdmCommandItem {\n label: string;\n value: string;\n group?: string;\n icon?: PdmIconName;\n shortcut?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-command',\n templateUrl: './command.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmCommandComponent {\n @Input() open = true;\n @Input() hintLabel = 'Press';\n @Input() hintKey = 'J';\n @Input() placeholder = 'Type a command or search...';\n @Input() emptyMessage = 'No results found.';\n @Input() items: PdmCommandItem[] = [\n { label: 'Calendar', value: 'calendar', group: 'Suggestions', icon: 'calendar' },\n { label: 'Search emoji', value: 'emoji', group: 'Suggestions', icon: 'smile' },\n { label: 'Calculator', value: 'calculator', group: 'Suggestions', icon: 'calculator', disabled: true },\n { label: 'Profile', value: 'profile', group: 'Settings', icon: 'user', shortcut: '⌘P' },\n { label: 'Billing', value: 'billing', group: 'Settings', icon: 'credit-card', shortcut: '⌘B' },\n { label: 'Settings', value: 'settings', group: 'Settings', icon: 'settings', shortcut: '⌘S' }\n ];\n @Input() className = '';\n\n @Output() itemSelect = new EventEmitter<string>();\n @Output() openChange = new EventEmitter<boolean>();\n\n query = '';\n\n get filteredItems(): PdmCommandItem[] {\n const q = this.query.toLowerCase().trim();\n if (!q) return this.items;\n return this.items.filter((item) => item.label.toLowerCase().includes(q));\n }\n\n get groupedItems(): { name: string; items: PdmCommandItem[] }[] {\n const map = new Map<string, PdmCommandItem[]>();\n for (const item of this.filteredItems) {\n const key = item.group || '';\n const arr = map.get(key) ?? [];\n arr.push(item);\n map.set(key, arr);\n }\n return Array.from(map.entries()).map(([name, items]) => ({ name, items }));\n }\n\n onQueryChange(event: Event): void {\n this.query = (event.target as HTMLInputElement).value;\n }\n\n toggleOpen(): void {\n this.openChange.emit(!this.open);\n }\n\n select(value: string): void {\n this.itemSelect.emit(value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { PdmMenuItem } from '../dropdown-menu/dropdown-menu.component';\n\nexport interface PdmContextMenuItem extends PdmMenuItem {\n checked?: boolean;\n selectedDot?: boolean;\n}\n\n@Component({\n selector: 'pdm-context-menu',\n templateUrl: './context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmContextMenuComponent {\n @Input() items: PdmContextMenuItem[] = [\n { type: 'item', label: 'Back', value: 'back', inset: true, shortcut: '⌘[' },\n { type: 'item', label: 'Forward', value: 'forward', inset: true, shortcut: '⌘]', disabled: true },\n { type: 'item', label: 'Reload', value: 'reload', inset: true, shortcut: '⌘R' },\n { type: 'item', label: 'More Tools', value: 'more-tools', inset: true, showChevron: true },\n { type: 'separator' },\n { type: 'item', label: 'Show Bookmarks Bar', value: 'show-bookmarks', checked: true },\n { type: 'item', label: 'Show Full URLs', value: 'show-urls', inset: true },\n { type: 'separator' },\n { type: 'label', label: 'People' },\n { type: 'separator' },\n { type: 'item', label: 'Pedro Duarte', value: 'pedro', selectedDot: true },\n { type: 'item', label: 'Colm Tuite', value: 'colm', inset: true }\n ];\n @Input() className = '';\n @Input() triggerLabel = 'Right click here';\n @Input() width = 300;\n @Input() height = 150;\n @Output() itemSelect = new EventEmitter<string>();\n\n open = false;\n x = 0;\n y = 0;\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n this.x = event.clientX;\n this.y = event.clientY;\n this.open = true;\n }\n\n select(item: PdmContextMenuItem): void {\n if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value) return;\n this.itemSelect.emit(item.value);\n this.open = false;\n }\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n this.open = false;\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.open) return;\n const target = event.target as Node | null;\n if (target && !this.elementRef.nativeElement.contains(target)) {\n this.open = false;\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmDataTableRow {\n id: string;\n status: string;\n email: string;\n amount: string;\n selected?: boolean;\n}\n\n@Component({\n selector: 'pdm-data-table',\n templateUrl: './data-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDataTableComponent {\n @Input() className = '';\n @Input() filterPlaceholder = 'Filter...';\n @Input() columnsLabel = 'Columns';\n @Input() statusLabel = 'Status';\n @Input() emailLabel = 'Email';\n @Input() amountLabel = 'Amount';\n @Input() previousLabel = 'Previous';\n @Input() nextLabel = 'Next';\n @Input() emptyLabel = 'No results.';\n @Input() rows: PdmDataTableRow[] = [];\n\n @Input() page = 1;\n @Input() pageSize = 5;\n @Input() query = '';\n\n @Output() queryChange = new EventEmitter<string>();\n @Output() rowAction = new EventEmitter<string>();\n @Output() pageChange = new EventEmitter<number>();\n @Output() selectionChange = new EventEmitter<{ id: string; selected: boolean }>();\n\n get filteredRows(): PdmDataTableRow[] {\n const q = this.query.trim().toLowerCase();\n if (!q) return this.rows;\n return this.rows.filter((r) => r.email.toLowerCase().includes(q));\n }\n\n get pagedRows(): PdmDataTableRow[] {\n const start = (this.page - 1) * this.pageSize;\n return this.filteredRows.slice(start, start + this.pageSize);\n }\n\n get totalPages(): number {\n return Math.max(1, Math.ceil(this.filteredRows.length / this.pageSize));\n }\n\n get selectedCount(): number {\n return this.rows.filter((row) => row.selected).length;\n }\n\n onQueryInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.queryChange.emit(value);\n }\n\n onToggleRow(row: PdmDataTableRow, event: Event): void {\n this.selectionChange.emit({ id: row.id, selected: (event.target as HTMLInputElement).checked });\n }\n\n previous(): void {\n if (this.page <= 1) return;\n this.pageChange.emit(this.page - 1);\n }\n\n next(): void {\n if (this.page >= this.totalPages) return;\n this.pageChange.emit(this.page + 1);\n }\n\n onAction(row: PdmDataTableRow): void {\n this.rowAction.emit(row.id);\n }\n}\n","<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\">{{ statusLabel }}</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>{{ emailLabel }}</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\">{{ amountLabel }}</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 <tr *ngIf=\"pagedRows.length === 0\">\n <td colspan=\"5\" class=\"px-3 py-6 text-center text-sm text-muted-foreground\">{{ emptyLabel }}</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()\">{{ previousLabel }}</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()\">{{ nextLabel }}</button>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmDatePickerVariant = 'default' | 'with-input' | 'date-time' | 'natural-language';\n\n@Component({\n selector: 'pdm-date-picker',\n templateUrl: './date-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDatePickerComponent {\n @Input() variant: PdmDatePickerVariant = 'default';\n @Input() className = '';\n @Input() open = false;\n\n @Input() label = 'Date of Birth';\n @Input() value = 'Select a date';\n @Input() month = 6;\n @Input() year = 2025;\n @Input() selectedDay = 25;\n @Input() time = '10:30:00';\n @Input() naturalLanguageValue = 'In 2 days';\n @Input() naturalLanguageHint = 'Your post will be published on June 21, 2025.';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() valueChange = new EventEmitter<string>();\n\n toggle(): void {\n this.openChange.emit(!this.open);\n }\n\n selectPreset(value: string): void {\n this.valueChange.emit(value);\n }\n\n get monthLabel(): string {\n return new Date(this.year, this.month - 1, 1).toLocaleString('en-US', { month: 'short' });\n }\n}\n","<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\">‹</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>˅</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>˅</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\">›</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","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\nexport type PdmDialogVariant = 'default' | 'custom-close';\n\n@Component({\n selector: 'pdm-dialog',\n templateUrl: './dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDialogComponent {\n @Input() open = false;\n @Input() variant: PdmDialogVariant = 'default';\n @Input() title = 'Edit profile';\n @Input() description = 'Make changes to your profile here. Click save when you\\'re done.';\n @Input() closeOnBackdrop = true;\n @Input() closeOnEsc = true;\n @Input() showCloseButton = true;\n @Input() primaryActionText = 'Save changes';\n @Input() secondaryActionText = 'Cancel';\n @Input() nameLabel = 'Name';\n @Input() nameValue = 'Pedro Duarte';\n @Input() usernameLabel = 'Username';\n @Input() usernameValue = '@peduarte';\n @Input() linkValue = 'https://ui.shadcn.com/docs/installation';\n @Input() className = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n if (this.open && this.closeOnEsc) {\n this.close();\n }\n }\n\n close(): void {\n this.openChange.emit(false);\n }\n\n onPrimaryAction(): void {\n this.primaryAction.emit();\n }\n\n onSecondaryAction(): void {\n this.secondaryAction.emit();\n }\n\n onBackdropClick(): void {\n if (this.closeOnBackdrop) {\n this.close();\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\nexport type PdmDropdownMenuVariant = 'default' | 'checkboxes' | 'radio-group';\n\nexport interface PdmMenuItem {\n type?: 'item' | 'label' | 'separator';\n label?: string;\n value?: string;\n shortcut?: string;\n disabled?: boolean;\n inset?: boolean;\n showChevron?: boolean;\n checked?: boolean;\n radioSelected?: boolean;\n}\n\n@Component({\n selector: 'pdm-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDropdownMenuComponent {\n @Input() triggerText = 'Open';\n @Input() variant: PdmDropdownMenuVariant = 'default';\n @Input() items: PdmMenuItem[] = [];\n @Input() closeOnSelect = true;\n @Input() panelClassName = '';\n @Input() className = '';\n\n @Output() itemSelect = new EventEmitter<string>();\n @Output() itemsChange = new EventEmitter<PdmMenuItem[]>();\n\n open = false;\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n toggle(): void {\n this.open = !this.open;\n }\n\n get resolvedItems(): PdmMenuItem[] {\n if (this.items.length) {\n return this.items;\n }\n\n if (this.variant === 'checkboxes') {\n return [\n { type: 'label', label: 'Appearance' },\n { type: 'separator' },\n { type: 'item', label: 'Status Bar', value: 'status-bar', checked: true },\n { type: 'item', label: 'Activity Bar', value: 'activity-bar', checked: false },\n { type: 'item', label: 'Panel', value: 'panel', checked: false }\n ];\n }\n\n if (this.variant === 'radio-group') {\n return [\n { type: 'label', label: 'Panel Position' },\n { type: 'separator' },\n { type: 'item', label: 'Top', value: 'top', radioSelected: true },\n { type: 'item', label: 'Bottom', value: 'bottom', radioSelected: false },\n { type: 'item', label: 'Right', value: 'right', radioSelected: false }\n ];\n }\n\n return [\n { type: 'label', label: 'My Account', inset: true },\n { type: 'separator' },\n { type: 'item', label: 'Profile', value: 'profile', shortcut: '⇧⌘P' },\n { type: 'item', label: 'Billing', value: 'billing', shortcut: '⌘B' },\n { type: 'item', label: 'Settings', value: 'settings', shortcut: '⌘S' },\n { type: 'item', label: 'Keyboard shortcuts', value: 'shortcuts', shortcut: '⌘K' },\n { type: 'separator' },\n { type: 'item', label: 'Team', value: 'team' },\n { type: 'item', label: 'Invite users', value: 'invite', showChevron: true },\n { type: 'item', label: 'New Team', value: 'new-team', shortcut: '⌘+T' },\n { type: 'separator' },\n { type: 'item', label: 'GitHub', value: 'github' },\n { type: 'item', label: 'Support', value: 'support' },\n { type: 'item', label: 'API', value: 'api', disabled: true },\n { type: 'separator' },\n { type: 'item', label: 'Log out', value: 'logout', shortcut: '⇧⌘Q' }\n ];\n }\n\n select(item: PdmMenuItem): void {\n if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value) return;\n\n if (this.variant === 'checkboxes') {\n const updated = this.resolvedItems.map((entry) =>\n entry.value === item.value ? { ...entry, checked: !entry.checked } : entry\n );\n this.itemsChange.emit(updated);\n }\n\n if (this.variant === 'radio-group') {\n const updated = this.resolvedItems.map((entry) =>\n entry.type === 'item'\n ? { ...entry, radioSelected: entry.value === item.value }\n : entry\n );\n this.itemsChange.emit(updated);\n }\n\n this.itemSelect.emit(item.value);\n\n const shouldClose = this.variant === 'default' ? this.closeOnSelect : false;\n if (shouldClose) {\n this.open = false;\n }\n }\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n this.open = false;\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.open) return;\n const target = event.target as Node | null;\n if (target && !this.elementRef.nativeElement.contains(target)) {\n this.open = false;\n }\n }\n}\n","<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\">›</span>\n </button>\n </ng-container>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmDrawerVariant = 'drawer' | 'responsive-dialog';\n\n@Component({\n selector: 'pdm-drawer',\n templateUrl: './drawer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmDrawerComponent {\n @Input() open = false;\n @Input() variant: PdmDrawerVariant = 'drawer';\n @Input() className = '';\n @Input() title = '';\n @Input() description = '';\n @Input() value: number | string = '';\n @Input() unit = '';\n @Input() decrementLabel = '-';\n @Input() incrementLabel = '+';\n @Input() primaryLabel = '';\n @Input() secondaryLabel = '';\n\n @Input() profileTitle = '';\n @Input() profileDescription = '';\n @Input() nameLabel = 'Name';\n @Input() nameValue = '';\n @Input() usernameLabel = 'Username';\n @Input() usernameValue = '';\n @Input() responsivePrimaryLabel = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n\n @Input() bars: number[] = [];\n\n close(): void {\n this.openChange.emit(false);\n }\n\n onPrimaryAction(): void {\n this.primaryAction.emit();\n }\n\n onSecondaryAction(): void {\n this.secondaryAction.emit();\n }\n}\n","<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\">{{ decrementLabel }}</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\">{{ incrementLabel }}</button>\n </div>\n\n <div *ngIf=\"bars.length\" 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 *ngIf=\"primaryLabel\" type=\"button\" class=\"mt-3 h-9 w-full rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ primaryLabel }}</button>\n <button *ngIf=\"secondaryLabel\" type=\"button\" class=\"mt-2 h-9 w-full rounded-md border border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">{{ secondaryLabel }}</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()\">×</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 *ngIf=\"responsivePrimaryLabel\" type=\"button\" class=\"mt-3 h-8 w-full rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ responsivePrimaryLabel }}</button>\n </section>\n </ng-template>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmEmptyVariant = 'default' | 'outline' | 'background';\n\n@Component({\n selector: 'pdm-empty',\n templateUrl: './empty.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmEmptyComponent {\n @Input() variant: PdmEmptyVariant = 'default';\n @Input() title = 'No Projects Yet';\n @Input() description = \"You haven't created any projects yet. Get started by creating your first project.\";\n @Input() iconName = 'folder';\n @Input() primaryActionLabel = '';\n @Input() secondaryActionLabel = '';\n @Input() linkLabel = '';\n @Input() className = '';\n\n @Output() primaryAction = new EventEmitter<void>();\n @Output() secondaryAction = new EventEmitter<void>();\n @Output() linkAction = new EventEmitter<void>();\n\n get containerClass(): string {\n if (this.variant === 'outline') {\n return 'border border-dashed border-border rounded-[12px]';\n }\n\n if (this.variant === 'background') {\n return 'rounded-[12px] bg-muted';\n }\n\n return '';\n }\n}\n","<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-foreground', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmFieldOrientation = 'vertical' | 'horizontal';\nexport type PdmFieldDescriptionPosition = 'before' | 'after';\n\n@Component({\n selector: 'pdm-field',\n templateUrl: './field.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmFieldComponent {\n @Input() id = '';\n @Input() label = '';\n @Input() description = '';\n @Input() error = '';\n @Input() required = false;\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() orientation: PdmFieldOrientation = 'vertical';\n @Input() descriptionPosition: PdmFieldDescriptionPosition = 'after';\n @Input() className = '';\n @Input() labelClassName = '';\n @Input() controlClassName = '';\n\n get rootClass(): string {\n return this.orientation === 'horizontal'\n ? 'grid items-start gap-3 sm:grid-cols-[200px_minmax(0,1fr)] sm:gap-4'\n : 'grid w-full gap-3';\n }\n\n get isHorizontal(): boolean {\n return this.orientation === 'horizontal';\n }\n\n get showDescriptionBeforeControl(): boolean {\n return !this.isHorizontal && this.descriptionPosition === 'before' && !!this.description && !this.invalid;\n }\n\n get showDescriptionAfterControl(): boolean {\n return !this.isHorizontal && !this.showDescriptionBeforeControl && !!this.description && !this.invalid;\n }\n}\n","<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]=\"[\n 'text-sm font-medium leading-none',\n disabled ? 'opacity-70' : '',\n invalid ? 'text-destructive' : 'text-foreground',\n labelClassName\n ]\"\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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type PdmHoverCardSide = 'top' | 'right' | 'bottom' | 'left';\nexport type PdmHoverCardAlign = 'start' | 'center' | 'end';\n\n@Component({\n selector: 'pdm-hover-card',\n templateUrl: './hover-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmHoverCardComponent {\n @Input() className = '';\n @Input() panelClassName = '';\n @Input() side: PdmHoverCardSide = 'bottom';\n @Input() align: PdmHoverCardAlign = 'start';\n @Input() panelWidth = 304;\n\n open = false;\n\n get positionClass(): string {\n const sideClassMap: Record<PdmHoverCardSide, string> = {\n top: 'bottom-full mb-2',\n right: 'left-full ml-2',\n bottom: 'top-full mt-2',\n left: 'right-full mr-2'\n };\n\n const alignClassMap: Record<PdmHoverCardAlign, string> = {\n start: this.side === 'top' || this.side === 'bottom' ? 'left-0' : 'top-0',\n center: this.side === 'top' || this.side === 'bottom' ? 'left-1/2 -translate-x-1/2' : 'top-1/2 -translate-y-1/2',\n end: this.side === 'top' || this.side === 'bottom' ? 'right-0' : 'bottom-0'\n };\n\n return `${sideClassMap[this.side]} ${alignClassMap[this.align]}`;\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-item',\n templateUrl: './item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmItemComponent {\n @Input() className = '';\n @Input() disabled = false;\n @Input() selected = false;\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmInputSize = 'mini' | 'small' | 'regular' | 'large';\nexport type PdmInputRoundness = 'default' | 'round';\n\n@Component({\n selector: 'pdm-input',\n templateUrl: './input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmInputComponent {\n @Input() id = '';\n @Input() type = 'text';\n @Input() value = '';\n @Input() placeholder = '';\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() size: PdmInputSize = 'regular';\n @Input() roundness: PdmInputRoundness = 'default';\n @Input() className = '';\n @Input() inputClassName = '';\n @Input() label = '';\n @Input() helperText = '';\n @Input() errorText = '';\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() blurred = new EventEmitter<FocusEvent>();\n\n onInput(event: Event): void {\n this.valueChange.emit((event.target as HTMLInputElement).value);\n }\n\n onBlur(event: FocusEvent): void {\n this.blurred.emit(event);\n }\n}\n","<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground'\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PdmInputRoundness, PdmInputSize } from '../input/input.component';\n\n@Component({\n selector: 'pdm-input-password',\n templateUrl: './input-password.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmInputPasswordComponent {\n @Input() id = '';\n @Input() value = '';\n @Input() placeholder = '';\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() size: PdmInputSize = 'regular';\n @Input() roundness: PdmInputRoundness = 'default';\n @Input() className = '';\n @Input() inputClassName = '';\n @Input() label = '';\n @Input() helperText = '';\n @Input() errorText = '';\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() blurred = new EventEmitter<FocusEvent>();\n\n showPassword = false;\n\n get inputType(): 'text' | 'password' {\n return this.showPassword ? 'text' : 'password';\n }\n\n onInput(event: Event): void {\n this.valueChange.emit((event.target as HTMLInputElement).value);\n }\n\n onBlur(event: FocusEvent): void {\n this.blurred.emit(event);\n }\n\n toggleVisibility(): void {\n if (this.disabled) {\n return;\n }\n\n this.showPassword = !this.showPassword;\n }\n}\n","<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground'\n ]\"\n >{{ label }}</label>\n <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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-input-group',\n templateUrl: './input-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmInputGroupComponent {\n @Input() id = '';\n @Input() type = 'text';\n @Input() value = '';\n @Input() placeholder = '';\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() prefixText = '';\n @Input() suffixText = '';\n @Input() prefixIcon = '';\n @Input() suffixIcon = '';\n @Input() buttonText = '';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() buttonClick = new EventEmitter<MouseEvent>();\n\n onInput(event: Event): void {\n this.valueChange.emit((event.target as HTMLInputElement).value);\n }\n\n onButtonClick(event: MouseEvent): void {\n this.buttonClick.emit(event);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChildren } from '@angular/core';\n\n@Component({\n selector: 'pdm-input-otp',\n templateUrl: './input-otp.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmInputOtpComponent {\n @Input() length = 6;\n @Input() groupSize = 3;\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() completed = new EventEmitter<string>();\n\n @ViewChildren('otpInput') private readonly inputs?: QueryList<ElementRef<HTMLInputElement>>;\n\n values: string[] = Array.from({ length: this.length }, () => '');\n\n ngOnChanges(): void {\n if (this.values.length !== this.length) {\n this.values = Array.from({ length: this.length }, (_, index) => this.values[index] ?? '');\n }\n }\n\n trackByIndex(index: number): number {\n return index;\n }\n\n onInput(index: number, event: Event): void {\n const input = event.target as HTMLInputElement;\n const char = (input.value || '').replace(/\\D+/g, '').slice(-1);\n\n this.values[index] = char;\n input.value = char;\n this.emit();\n\n if (char) {\n this.focusInput(index + 1, true);\n }\n }\n\n onKeyDown(index: number, event: KeyboardEvent): void {\n if (event.key === 'Backspace' && !this.values[index]) {\n this.focusInput(index - 1);\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.focusInput(index - 1);\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.focusInput(index + 1);\n }\n }\n\n onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n\n const pastedText = (event.clipboardData?.getData('text') ?? '').replace(/\\D+/g, '').slice(0, this.length);\n\n if (!pastedText) {\n return;\n }\n\n this.values = Array.from({ length: this.length }, (_, index) => pastedText[index] ?? '');\n this.emit();\n\n const nextIndex = Math.min(pastedText.length, this.length - 1);\n this.focusInput(nextIndex);\n }\n\n getInputClasses(index: number): string {\n const classes = [\n 'h-9 w-9 appearance-none border bg-background text-center text-sm font-normal text-foreground outline-none transition focus:outline-none focus-visible:outline-none',\n 'shadow-sm',\n 'focus:border-input focus:ring-1 focus:ring-primary/30',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n ];\n\n if (this.invalid) {\n classes.push('border-destructive focus:border-destructive focus:ring-destructive');\n } else {\n classes.push('border-input');\n }\n\n if (this.isGroupStart(index)) {\n classes.push('rounded-l-md border-l');\n } else {\n classes.push('border-l-0');\n }\n\n if (this.isGroupEnd(index)) {\n classes.push('rounded-r-md');\n }\n\n return classes.join(' ');\n }\n\n shouldShowSeparator(index: number): boolean {\n return this.groupSize > 0 && (index + 1) % this.groupSize === 0 && index < this.length - 1;\n }\n\n private isGroupStart(index: number): boolean {\n return this.groupSize <= 0 || index % this.groupSize === 0;\n }\n\n private isGroupEnd(index: number): boolean {\n if (this.groupSize <= 0) {\n return index === this.length - 1;\n }\n return (index + 1) % this.groupSize === 0 || index === this.length - 1;\n }\n\n private emit(): void {\n const value = this.values.join('');\n this.valueChange.emit(value);\n\n if (value.length === this.length && !this.values.includes('')) {\n this.completed.emit(value);\n }\n }\n\n private focusInput(index: number, deferred = false): void {\n if (deferred) {\n requestAnimationFrame(() => this.focusInput(index, false));\n return;\n }\n\n if (!this.inputs || index < 0 || index >= this.length) {\n return;\n }\n\n const input = this.inputs.get(index)?.nativeElement;\n if (input) {\n input.focus();\n input.select();\n }\n }\n}\n","<div [ngClass]=\"['inline-flex items-center justify-center', className]\" (paste)=\"onPaste($event)\">\n <ng-container *ngFor=\"let value of values; let index = index; trackBy: trackByIndex\">\n <input\n #otpInput\n [class]=\"getInputClasses(index)\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n [attr.name]=\"'otp-digit-' + index\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-label]=\"'OTP digit ' + (index + 1)\"\n (input)=\"onInput(index, $event)\"\n (keydown)=\"onKeyDown(index, $event)\"\n />\n <span\n *ngIf=\"shouldShowSeparator(index)\"\n class=\"mx-2 mt-[-1px] h-px w-6 bg-foreground opacity-80\"\n aria-hidden=\"true\"\n ></span>\n </ng-container>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-kbd',\n templateUrl: './kbd.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmKbdComponent {\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-label',\n templateUrl: './label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmLabelComponent {\n @Input() forId = '';\n @Input() required = false;\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PdmMenuItem } from '../dropdown-menu/dropdown-menu.component';\n\nexport interface PdmMenubarItem {\n label: string;\n items: PdmMenuItem[];\n}\n\n@Component({\n selector: 'pdm-menubar',\n templateUrl: './menubar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmMenubarComponent {\n @Input() menus: PdmMenubarItem[] = [];\n @Input() className = '';\n @Output() itemSelect = new EventEmitter<string>();\n\n openIndex = -1;\n\n toggle(index: number): void {\n this.openIndex = this.openIndex === index ? -1 : index;\n }\n\n select(value: string): void {\n this.itemSelect.emit(value);\n this.openIndex = -1;\n }\n\n selectItem(item: PdmMenuItem): void {\n if (item.disabled || !item.value) {\n return;\n }\n\n this.select(item.value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmNativeSelectOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-native-select',\n templateUrl: './native-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmNativeSelectComponent {\n @Input() id = '';\n @Input() value = '';\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() options: PdmNativeSelectOption[] = [];\n @Input() placeholder = 'Select an option';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n onChange(event: Event): void {\n this.valueChange.emit((event.target as HTMLSelectElement).value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport interface PdmNavigationItem {\n label: string;\n href?: string;\n active?: boolean;\n}\n\n@Component({\n selector: 'pdm-navigation-menu',\n templateUrl: './navigation-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmNavigationMenuComponent {\n @Input() items: PdmNavigationItem[] = [];\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmPaginationComponent {\n @Input() page = 1;\n @Input() pageCount = 1;\n @Input() maxVisible = 5;\n @Input() className = '';\n\n @Output() pageChange = new EventEmitter<number>();\n\n get visiblePages(): number[] {\n const total = Math.max(1, this.pageCount);\n const visible = Math.max(1, this.maxVisible);\n const half = Math.floor(visible / 2);\n let start = Math.max(1, this.page - half);\n let end = Math.min(total, start + visible - 1);\n\n if (end - start + 1 < visible) {\n start = Math.max(1, end - visible + 1);\n }\n\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n }\n\n setPage(next: number): void {\n if (next < 1 || next > this.pageCount || next === this.page) {\n return;\n }\n\n this.pageChange.emit(next);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-popover',\n templateUrl: './popover.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmPopoverComponent {\n @Input() open = false;\n @Input() triggerText = 'Open';\n @Input() className = '';\n @Input() panelClassName = '';\n @Input() showTrigger = true;\n @Output() openChange = new EventEmitter<boolean>();\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n toggle(): void {\n this.open = !this.open;\n this.openChange.emit(this.open);\n }\n\n @HostListener('document:keydown.escape')\n onEsc(): void {\n if (this.open) {\n this.open = false;\n this.openChange.emit(false);\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.open) return;\n const target = event.target as Node | null;\n if (target && !this.elementRef.nativeElement.contains(target)) {\n this.open = false;\n this.openChange.emit(false);\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-progress',\n templateUrl: './progress.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmProgressComponent {\n @Input() value = 0;\n @Input() max = 100;\n @Input() indeterminate = false;\n @Input() className = '';\n\n get width(): string {\n if (this.indeterminate) return '100%';\n const safeMax = this.max > 0 ? this.max : 100;\n const pct = Math.min(100, Math.max(0, (this.value / safeMax) * 100));\n return pct + '%';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmRadioOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-radio-group',\n templateUrl: './radio-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmRadioGroupComponent {\n @Input() name = 'pdm-radio-group';\n @Input() value = '';\n @Input() options: PdmRadioOption[] = [];\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n optionId(option: PdmRadioOption): string {\n return `${this.name}-${option.value}`;\n }\n\n onChange(event: Event): void {\n this.valueChange.emit((event.target as HTMLInputElement).value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-scroll-area',\n templateUrl: './scroll-area.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmScrollAreaComponent {\n @Input() maxHeight = '16rem';\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmSelectOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-select',\n templateUrl: './select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSelectComponent {\n @Input() id = '';\n @Input() value = '';\n @Input() options: PdmSelectOption[] = [];\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n onChange(event: Event): void {\n this.valueChange.emit((event.target as HTMLSelectElement).value);\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-separator',\n templateUrl: './separator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSeparatorComponent {\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n @Input() decorative = true;\n @Input() className = '';\n\n get orientationClass(): string {\n return this.orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full';\n }\n}\n","<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-border', orientationClass, className]\"\n></div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmSheetSide = 'top' | 'right' | 'bottom' | 'left';\n\n@Component({\n selector: 'pdm-sheet',\n templateUrl: './sheet.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSheetComponent {\n @Input() open = false;\n @Input() side: PdmSheetSide = 'right';\n @Input() className = '';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n close(): void {\n this.openChange.emit(false);\n }\n\n get panelClass(): string {\n if (this.side === 'left') return 'left-0 top-0 h-full w-full max-w-[360px] border-r';\n if (this.side === 'top') return 'top-0 left-0 w-full border-b';\n if (this.side === 'bottom') return 'bottom-0 left-0 w-full border-t';\n\n return 'right-0 top-0 h-full w-full max-w-[360px] border-l';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-sidebar',\n templateUrl: './sidebar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSidebarComponent {\n @Input() collapsed = false;\n @Input() className = '';\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-skeleton',\n templateUrl: './skeleton.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSkeletonComponent {\n @Input() className = '';\n}\n","<div [ngClass]=\"['animate-pulse rounded-md bg-muted', className]\"></div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-slider',\n templateUrl: './slider.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSliderComponent {\n @Input() min = 0;\n @Input() max = 100;\n @Input() step = 1;\n @Input() value = 0;\n @Input() disabled = false;\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<number>();\n\n get percentage(): number {\n const safeRange = this.max - this.min;\n if (safeRange <= 0) {\n return 0;\n }\n\n const bounded = Math.min(this.max, Math.max(this.min, this.value));\n return ((bounded - this.min) / safeRange) * 100;\n }\n\n onInput(event: Event): void {\n this.valueChange.emit(Number((event.target as HTMLInputElement).value));\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmToastTone = 'default' | 'success' | 'error' | 'warning';\n\n@Component({\n selector: 'pdm-sonner',\n templateUrl: './sonner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSonnerComponent {\n @Input() title = '';\n @Input() description = '';\n @Input() tone: PdmToastTone = 'default';\n @Input() className = '';\n\n @Output() dismissed = new EventEmitter<void>();\n\n get toneClass(): string {\n if (this.tone === 'success') return 'border-emerald-200 bg-emerald-50 text-emerald-900';\n if (this.tone === 'error') return 'border-red-200 bg-red-50 text-red-900';\n if (this.tone === 'warning') return 'border-amber-200 bg-amber-50 text-amber-900';\n\n return 'border-border bg-background text-foreground';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-spinner',\n templateUrl: './spinner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSpinnerComponent {\n @Input() size = 16;\n @Input() className = '';\n}\n","<span\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"['inline-block animate-spin rounded-full border-2 border-current border-r-transparent', className]\"\n aria-hidden=\"true\"\n></span>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmSwitchSize = 'default' | 'sm';\n\n@Component({\n selector: 'pdm-switch',\n templateUrl: './switch.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmSwitchComponent {\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n @Input() id = '';\n @Input() checked = false;\n @Input() disabled = false;\n @Input() label = '';\n @Input() className = '';\n @Input() size: PdmSwitchSize = 'default';\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n get rootClasses(): string[] {\n return [\n 'peer relative inline-flex shrink-0 items-center rounded-full border border-transparent outline-none transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50',\n this.size === 'sm' ? 'h-[14px] w-[24px]' : 'h-[18.4px] w-[32px]',\n this.checked ? 'bg-primary' : 'bg-input dark:bg-input/80'\n ];\n }\n\n get thumbClasses(): string[] {\n return [\n 'pointer-events-none block rounded-full bg-background ring-0 transition-transform',\n this.size === 'sm' ? 'size-3' : 'size-4',\n this.checked ? 'translate-x-[calc(100%-2px)]' : 'translate-x-0'\n ];\n }\n\n onToggle(): void {\n if (this.disabled) return;\n const next = !this.checked;\n this.checked = next;\n this.checkedChange.emit(next);\n this.cdr.markForCheck();\n }\n}\n","<div [ngClass]=\"['flex items-center space-x-2', className]\">\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled\"\n [attr.data-state]=\"checked ? 'checked' : 'unchecked'\"\n [attr.data-disabled]=\"disabled ? 'true' : 'false'\"\n [attr.data-size]=\"size\"\n [attr.data-slot]=\"'switch'\"\n [attr.value]=\"checked ? 'on' : 'off'\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [ngClass]=\"rootClasses\"\n (click)=\"onToggle()\"\n >\n <span\n [attr.data-state]=\"checked ? 'checked' : 'unchecked'\"\n [attr.data-slot]=\"'switch-thumb'\"\n [ngClass]=\"thumbClasses\"\n ></span>\n </button>\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [attr.data-slot]=\"'label'\"\n class=\"flex cursor-pointer items-center gap-2 text-sm leading-none font-medium select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50\"\n (click)=\"onToggle()\"\n >\n {{ label }}\n </label>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\nexport type PdmTableVariant = 'default' | 'data' | 'interactive';\n\n@Component({\n selector: 'pdm-table',\n templateUrl: './table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmTableComponent {\n @Input() variant: PdmTableVariant = 'default';\n @Input() reorderRows = false;\n @Input() dragHandleSelector = '[data-drag-handle],[data-slot=row-drag-handle],.row-drag-handle,[data-auto-drag-handle]';\n @Input() className = '';\n @Output() rowOrderChange = new EventEmitter<string[]>();\n\n @ViewChild('tableElement') tableElement?: ElementRef<HTMLTableElement>;\n\n private cleanupListeners: Array<() => void> = [];\n private observer?: MutationObserver;\n private draggedRow: HTMLTableRowElement | null = null;\n\n constructor(private readonly renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.syncReorderBehavior();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['reorderRows'] || changes['variant']) {\n this.syncReorderBehavior();\n }\n }\n\n ngOnDestroy(): void {\n this.cleanupReorderBehavior();\n }\n\n get wrapperClasses(): string[] {\n return [\n 'relative w-full overflow-auto',\n this.variant === 'interactive' ? 'overflow-x-auto overflow-y-hidden rounded-xl border border-border bg-background' : '',\n this.variant === 'data' ? 'overflow-hidden rounded-md border border-border bg-background' : '',\n this.className\n ];\n }\n\n get tableClasses(): string[] {\n return [\n 'w-full caption-bottom text-sm',\n this.variant === 'data'\n ? 'border-collapse text-foreground [&_thead_tr]:border-b [&_thead_tr]:border-border [&_tbody_tr]:border-b [&_tbody_tr]:border-border [&_tbody_tr:last-child]:border-b-0 [&_th]:h-10 [&_th]:px-2 [&_th]:text-left [&_th]:align-middle [&_th]:font-medium [&_td]:p-2 [&_td]:align-middle'\n : '',\n this.variant === 'interactive'\n ? 'text-foreground [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10 [&_thead]:bg-muted/70 [&_thead_tr]:border-b [&_thead_tr]:border-border [&_th]:h-12 [&_th]:px-4 [&_th]:text-left [&_th]:align-middle [&_th]:text-sm [&_th]:font-medium [&_th]:whitespace-nowrap [&_tbody_tr]:border-b [&_tbody_tr]:border-border [&_tbody_tr]:transition-colors [&_tbody_tr:hover]:bg-muted/50 [&_tbody_tr:last-child]:border-b-0 [&_td]:h-14 [&_td]:px-4 [&_td]:align-middle [&_td]:text-sm [&_td]:whitespace-nowrap [&_td:first-child]:w-10 [&_td:last-child]:w-10 [&_svg]:text-muted-foreground'\n : ''\n ];\n }\n\n private syncReorderBehavior(): void {\n this.cleanupReorderBehavior();\n\n if (!this.isReorderEnabled) {\n return;\n }\n\n const tbody = this.getTbody();\n if (!tbody) {\n return;\n }\n\n this.setRowsDraggable(tbody, true);\n\n this.cleanupListeners.push(\n this.renderer.listen(tbody, 'mousedown', (event: MouseEvent) => this.armDragFromHandle(event)),\n this.renderer.listen(tbody, 'dragstart', (event: DragEvent) => this.onDragStart(event)),\n this.renderer.listen(tbody, 'dragover', (event: DragEvent) => this.onDragOver(event, tbody)),\n this.renderer.listen(tbody, 'drop', (event: DragEvent) => this.onDrop(event)),\n this.renderer.listen(tbody, 'dragend', () => this.onDragEnd())\n );\n\n this.observer = new MutationObserver(() => this.setRowsDraggable(tbody, true));\n this.observer.observe(tbody, { childList: true });\n }\n\n private cleanupReorderBehavior(): void {\n this.cleanupListeners.forEach((dispose) => dispose());\n this.cleanupListeners = [];\n\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n\n const tbody = this.getTbody();\n if (tbody) {\n this.setRowsDraggable(tbody, false);\n }\n\n this.draggedRow = null;\n }\n\n private get isReorderEnabled(): boolean {\n return this.reorderRows;\n }\n\n private getTbody(): HTMLTableSectionElement | null {\n return this.tableElement?.nativeElement.tBodies.item(0) ?? null;\n }\n\n private setRowsDraggable(tbody: HTMLTableSectionElement, enabled: boolean): void {\n const rows = Array.from(tbody.rows);\n rows.forEach((row) => {\n this.syncAutoDragHandle(row, enabled);\n row.draggable = false;\n if (!enabled) {\n delete row.dataset['dragging'];\n delete row.dataset['dragArmed'];\n }\n });\n }\n\n private syncAutoDragHandle(row: HTMLTableRowElement, enabled: boolean): void {\n const firstCell = row.cells.item(0);\n if (!firstCell) {\n return;\n }\n\n const existingAutoHandle = firstCell.querySelector('[data-auto-drag-handle]');\n if (!enabled) {\n existingAutoHandle?.remove();\n return;\n }\n\n const hasCustomHandle = !!firstCell.querySelector('[data-drag-handle],[data-slot=row-drag-handle],.row-drag-handle');\n if (hasCustomHandle || existingAutoHandle) {\n return;\n }\n\n const button = this.renderer.createElement('button') as HTMLButtonElement;\n this.renderer.setAttribute(button, 'type', 'button');\n this.renderer.setAttribute(button, 'aria-label', 'Drag row');\n this.renderer.setAttribute(button, 'data-auto-drag-handle', 'true');\n this.renderer.addClass(button, 'inline-flex');\n this.renderer.addClass(button, 'h-7');\n this.renderer.addClass(button, 'w-7');\n this.renderer.addClass(button, 'items-center');\n this.renderer.addClass(button, 'justify-center');\n this.renderer.addClass(button, 'cursor-grab');\n this.renderer.addClass(button, 'active:cursor-grabbing');\n this.renderer.addClass(button, 'text-muted-foreground');\n\n const dots = this.renderer.createElement('span');\n this.renderer.addClass(dots, 'text-sm');\n this.renderer.addClass(dots, 'leading-none');\n this.renderer.setProperty(dots, 'textContent', '⋮⋮');\n this.renderer.appendChild(button, dots);\n\n this.renderer.insertBefore(firstCell, button, firstCell.firstChild);\n }\n\n private onDragStart(event: DragEvent): void {\n const target = event.target as HTMLElement | null;\n const row = target?.closest('tr');\n if (!row) {\n return;\n }\n\n const handle = target?.closest(this.dragHandleSelector);\n const isArmed = row.dataset['dragArmed'] === 'true';\n if ((!handle || !row.contains(handle)) && !isArmed) {\n event.preventDefault();\n return;\n }\n\n this.draggedRow = row as HTMLTableRowElement;\n this.draggedRow.dataset['dragging'] = 'true';\n\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', '');\n }\n }\n\n private onDragOver(event: DragEvent, tbody: HTMLTableSectionElement): void {\n if (!this.draggedRow) {\n return;\n }\n\n event.preventDefault();\n const target = event.target as HTMLElement | null;\n const targetRow = target?.closest('tr') as HTMLTableRowElement | null;\n\n if (!targetRow || targetRow === this.draggedRow) {\n return;\n }\n\n const rect = targetRow.getBoundingClientRect();\n const shouldInsertBefore = event.clientY < rect.top + rect.height / 2;\n tbody.insertBefore(this.draggedRow, shouldInsertBefore ? targetRow : targetRow.nextSibling);\n }\n\n private onDrop(event: DragEvent): void {\n event.preventDefault();\n }\n\n private onDragEnd(): void {\n const tbody = this.getTbody();\n if (tbody) {\n Array.from(tbody.rows).forEach((row) => {\n row.draggable = false;\n delete row.dataset['dragArmed'];\n });\n }\n\n if (this.draggedRow) {\n delete this.draggedRow.dataset['dragging'];\n this.draggedRow = null;\n }\n\n if (!tbody) {\n return;\n }\n\n const order = Array.from(tbody.rows).map((row, index) => row.getAttribute('data-row-id') || String(index));\n this.rowOrderChange.emit(order);\n }\n\n private armDragFromHandle(event: MouseEvent): void {\n const target = event.target as HTMLElement | null;\n const handle = target?.closest(this.dragHandleSelector);\n if (!handle) {\n return;\n }\n\n const row = handle.closest('tr') as HTMLTableRowElement | null;\n if (!row) {\n return;\n }\n\n row.draggable = true;\n row.dataset['dragArmed'] = 'true';\n }\n}\n","<div [ngClass]=\"wrapperClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table-container' : null\">\n <table #tableElement [ngClass]=\"tableClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table' : null\">\n <ng-content></ng-content>\n </table>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmTabItem {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-tabs',\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmTabsComponent {\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n @Input() items: PdmTabItem[] = [];\n @Input() value = '';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n select(item: PdmTabItem): void {\n if (!item.disabled) {\n this.value = item.value;\n this.valueChange.emit(item.value);\n this.cdr.markForCheck();\n }\n }\n}\n","<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex h-8 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground\">\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 'relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium transition-all focus-visible:border-ring focus-visible:outline-none focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-background text-foreground shadow-sm' : 'bg-transparent 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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'pdm-textarea',\n templateUrl: './textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmTextareaComponent {\n @Input() id = '';\n @Input() value = '';\n @Input() placeholder = '';\n @Input() rows = 4;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() className = '';\n @Input() textareaClassName = '';\n @Input() label = '';\n @Input() helperText = '';\n @Input() errorText = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n onInput(event: Event): void {\n this.valueChange.emit((event.target as HTMLTextAreaElement).value);\n }\n}\n","<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground'\n ]\"\n >{{ label }}</label>\n <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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport type PdmToggleSize = 'sm' | 'default' | 'lg';\n\n@Component({\n selector: 'pdm-toggle',\n templateUrl: './toggle.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmToggleComponent {\n @Input() pressed = false;\n @Input() disabled = false;\n @Input() size: PdmToggleSize = 'default';\n @Input() className = '';\n\n @Output() pressedChange = new EventEmitter<boolean>();\n\n toggle(): void {\n if (!this.disabled) {\n this.pressedChange.emit(!this.pressed);\n }\n }\n\n get sizeClass(): string {\n if (this.size === 'sm') return 'h-8 px-2.5 min-w-[32px]';\n if (this.size === 'lg') return 'h-10 px-4 min-w-[40px]';\n return 'h-9 px-3 min-w-[36px]';\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PdmToggleGroupItem {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'pdm-toggle-group',\n templateUrl: './toggle-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmToggleGroupComponent {\n @Input() items: PdmToggleGroupItem[] = [];\n @Input() value = '';\n @Input() className = '';\n\n @Output() valueChange = new EventEmitter<string>();\n\n onSelect(next: string, disabled?: boolean): void {\n if (!disabled && next !== this.value) {\n this.valueChange.emit(next);\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pdm-tooltip',\n templateUrl: './tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PdmTooltipComponent {\n @Input() text = '';\n @Input() side: 'top' | 'right' | 'bottom' | 'left' = 'top';\n @Input() className = '';\n open = false;\n\n get positionClass(): string {\n if (this.side === 'bottom') return 'top-full left-1/2 -translate-x-1/2 mt-2';\n if (this.side === 'left') return 'right-full top-1/2 -translate-y-1/2 mr-2';\n if (this.side === 'right') return 'left-full top-1/2 -translate-y-1/2 ml-2';\n return 'bottom-full left-1/2 -translate-x-1/2 mb-2';\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PdmAccordionComponent } from './components/accordion/accordion.component';\nimport { PdmAlertComponent } from './components/alert/alert.component';\nimport { PdmAlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { PdmAspectRatioComponent } from './components/aspect-ratio/aspect-ratio.component';\nimport { PdmAvatarComponent } from './components/avatar/avatar.component';\nimport { PdmBadgeComponent } from './components/badge/badge.component';\nimport { PdmBreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { PdmButtonGroupComponent } from './components/button-group/button-group.component';\nimport { PdmButtonComponent } from './components/button/button.component';\nimport { PdmCalendarComponent } from './components/calendar/calendar.component';\nimport { PdmCarouselComponent } from './components/carousel/carousel.component';\nimport { PdmCardComponent } from './components/card/card.component';\nimport { PdmChartComponent } from './components/chart/chart.component';\nimport { PdmCheckboxComponent } from './components/checkbox/checkbox.component';\nimport { PdmCollapsibleComponent } from './components/collapsible/collapsible.component';\nimport { PdmComboboxComponent } from './components/combobox/combobox.component';\nimport { PdmCommandComponent } from './components/command/command.component';\nimport { PdmContextMenuComponent } from './components/context-menu/context-menu.component';\nimport { PdmDataTableComponent } from './components/data-table/data-table.component';\nimport { PdmDatePickerComponent } from './components/date-picker/date-picker.component';\nimport { PdmDialogComponent } from './components/dialog/dialog.component';\nimport { PdmDropdownMenuComponent } from './components/dropdown-menu/dropdown-menu.component';\nimport { PdmDrawerComponent } from './components/drawer/drawer.component';\nimport { PdmEmptyComponent } from './components/empty/empty.component';\nimport { PdmFieldComponent } from './components/field/field.component';\nimport { PdmHoverCardComponent } from './components/hover-card/hover-card.component';\nimport { PdmIconComponent } from './components/icon/icon.component';\nimport { PdmItemComponent } from './components/item/item.component';\nimport { PdmInputComponent } from './components/input/input.component';\nimport { PdmInputPasswordComponent } from './components/input-password/input-password.component';\nimport { PdmInputGroupComponent } from './components/input-group/input-group.component';\nimport { PdmInputOtpComponent } from './components/input-otp/input-otp.component';\nimport { PdmKbdComponent } from './components/kbd/kbd.component';\nimport { PdmLabelComponent } from './components/label/label.component';\nimport { PdmMenubarComponent } from './components/menubar/menubar.component';\nimport { PdmNativeSelectComponent } from './components/native-select/native-select.component';\nimport { PdmNavigationMenuComponent } from './components/navigation-menu/navigation-menu.component';\nimport { PdmPaginationComponent } from './components/pagination/pagination.component';\nimport { PdmPopoverComponent } from './components/popover/popover.component';\nimport { PdmProgressComponent } from './components/progress/progress.component';\nimport { PdmRadioGroupComponent } from './components/radio-group/radio-group.component';\nimport { PdmScrollAreaComponent } from './components/scroll-area/scroll-area.component';\nimport { PdmSelectComponent } from './components/select/select.component';\nimport { PdmSeparatorComponent } from './components/separator/separator.component';\nimport { PdmSheetComponent } from './components/sheet/sheet.component';\nimport { PdmSidebarComponent } from './components/sidebar/sidebar.component';\nimport { PdmSkeletonComponent } from './components/skeleton/skeleton.component';\nimport { PdmSliderComponent } from './components/slider/slider.component';\nimport { PdmSonnerComponent } from './components/sonner/sonner.component';\nimport { PdmSpinnerComponent } from './components/spinner/spinner.component';\nimport { PdmSwitchComponent } from './components/switch/switch.component';\nimport { PdmTableComponent } from './components/table/table.component';\nimport { PdmTabsComponent } from './components/tabs/tabs.component';\nimport { PdmTextareaComponent } from './components/textarea/textarea.component';\nimport { PdmToggleComponent } from './components/toggle/toggle.component';\nimport { PdmToggleGroupComponent } from './components/toggle-group/toggle-group.component';\nimport { PdmTooltipComponent } from './components/tooltip/tooltip.component';\n\nconst COMPONENTS = [\n PdmAccordionComponent,\n PdmAlertComponent,\n PdmAlertDialogComponent,\n PdmAspectRatioComponent,\n PdmAvatarComponent,\n PdmBadgeComponent,\n PdmBreadcrumbComponent,\n PdmButtonGroupComponent,\n PdmButtonComponent,\n PdmCalendarComponent,\n PdmCarouselComponent,\n PdmCardComponent,\n PdmChartComponent,\n PdmCheckboxComponent,\n PdmCollapsibleComponent,\n PdmComboboxComponent,\n PdmCommandComponent,\n PdmContextMenuComponent,\n PdmDataTableComponent,\n PdmDatePickerComponent,\n PdmDialogComponent,\n PdmDropdownMenuComponent,\n PdmDrawerComponent,\n PdmEmptyComponent,\n PdmFieldComponent,\n PdmHoverCardComponent,\n PdmIconComponent,\n PdmItemComponent,\n PdmInputComponent,\n PdmInputPasswordComponent,\n PdmInputGroupComponent,\n PdmInputOtpComponent,\n PdmKbdComponent,\n PdmLabelComponent,\n PdmMenubarComponent,\n PdmNativeSelectComponent,\n PdmNavigationMenuComponent,\n PdmPaginationComponent,\n PdmPopoverComponent,\n PdmProgressComponent,\n PdmRadioGroupComponent,\n PdmScrollAreaComponent,\n PdmSelectComponent,\n PdmSeparatorComponent,\n PdmSheetComponent,\n PdmSidebarComponent,\n PdmSkeletonComponent,\n PdmSliderComponent,\n PdmSonnerComponent,\n PdmSpinnerComponent,\n PdmSwitchComponent,\n PdmTableComponent,\n PdmTabsComponent,\n PdmTextareaComponent,\n PdmToggleComponent,\n PdmToggleGroupComponent,\n PdmTooltipComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class PdmUiKitModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.PdmIconComponent","i2.PdmCalendarComponent","i2.PdmButtonComponent","i3.PdmIconComponent"],"mappings":"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"}
|