@wdcoders/ui-ng 1.0.0 → 1.0.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"wdcoders-ui-ng.mjs","sources":["../../../projects/wdc/src/lib/components/spinner/spinner.component.ts","../../../projects/wdc/src/lib/components/spinner/spinner.component.html","../../../projects/wdc/src/lib/components/button/button.component.ts","../../../projects/wdc/src/lib/components/button/button.component.html","../../../projects/wdc/src/lib/components/icons/icons.component.ts","../../../projects/wdc/src/lib/components/icons/icons.component.html","../../../projects/wdc/src/lib/components/card/card.component.ts","../../../projects/wdc/src/lib/components/card/card.component.html","../../../projects/wdc/src/lib/components/stat-card/stat-card.component.ts","../../../projects/wdc/src/lib/components/stat-card/stat-card.component.html","../../../projects/wdc/src/lib/components/avatar/avatar.component.ts","../../../projects/wdc/src/lib/components/avatar/avatar.component.html","../../../projects/wdc/src/lib/components/badge/badge.component.ts","../../../projects/wdc/src/lib/components/badge/badge.component.html","../../../projects/wdc/src/lib/components/modal/modal.component.ts","../../../projects/wdc/src/lib/components/modal/modal.component.html","../../../projects/wdc/src/lib/components/navbar/navbar.component.ts","../../../projects/wdc/src/lib/components/navbar/navbar.component.html","../../../projects/wdc/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/wdc/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/wdc/src/lib/components/tabs/tab.component.ts","../../../projects/wdc/src/lib/components/tabs/tabs.component.ts","../../../projects/wdc/src/lib/components/tabs/tabs.component.html","../../../projects/wdc/src/lib/components/toast/toast.service.ts","../../../projects/wdc/src/lib/components/toast/toast.component.ts","../../../projects/wdc/src/lib/components/toast/toast.component.html","../../../projects/wdc/src/lib/components/table/table.component.ts","../../../projects/wdc/src/lib/components/table/table.component.html","../../../projects/wdc/src/lib/components/chart/chart.component.ts","../../../projects/wdc/src/lib/components/chart/chart.component.html","../../../projects/wdc/src/lib/components/upload/upload.component.ts","../../../projects/wdc/src/lib/components/upload/upload.component.html","../../../projects/wdc/src/lib/components/wizard/wizard.component.ts","../../../projects/wdc/src/lib/components/wizard/wizard.component.html","../../../projects/wdc/src/lib/components/drawer/drawer.component.ts","../../../projects/wdc/src/lib/components/drawer/drawer.component.html","../../../projects/wdc/src/lib/components/carousel/carousel.component.ts","../../../projects/wdc/src/lib/components/carousel/carousel.component.html","../../../projects/wdc/src/lib/components/confirm-dialog/confirm.service.ts","../../../projects/wdc/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/wdc/src/lib/components/confirm-dialog/confirm-dialog.component.html","../../../projects/wdc/src/lib/components/page-loader/page-loader.component.ts","../../../projects/wdc/src/lib/components/page-loader/page-loader.component.html","../../../projects/wdc/src/wdcoders-ui-ng.ts"],"sourcesContent":["import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-spinner',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './spinner.component.html',\r\n})\r\nexport class SpinnerComponent {\r\n size = input<'sm' | 'md' | 'lg'>('md');\r\n color = input<'current' | 'primary' | 'white'>('current');\r\n\r\n classes = computed(() => {\r\n let sizeClass = 'w-5 h-5';\r\n switch (this.size()) {\r\n case 'sm':\r\n sizeClass = 'w-4 h-4';\r\n break;\r\n case 'md':\r\n sizeClass = 'w-5 h-5';\r\n break;\r\n case 'lg':\r\n sizeClass = 'w-8 h-8';\r\n break;\r\n }\r\n\r\n let colorClass = 'text-current';\r\n switch (this.color()) {\r\n case 'primary':\r\n colorClass = 'text-blue-600';\r\n break;\r\n case 'white':\r\n colorClass = 'text-white';\r\n break;\r\n }\r\n\r\n return `${sizeClass} ${colorClass} animate-spin`;\r\n });\r\n}\r\n","<svg [class]=\"classes()\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path\r\n class=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\r\n ></path>\r\n</svg>\r\n","import { Component, input, computed, TemplateRef, output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SpinnerComponent } from '../spinner/spinner.component';\r\n\r\nexport type ButtonVariant =\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'danger'\r\n | 'warning'\r\n | 'info'\r\n | 'light'\r\n | 'dark'\r\n | 'link';\r\nexport type ButtonSize = 'sm' | 'md' | 'lg';\r\nexport type ButtonType = 'button' | 'submit' | 'reset';\r\n\r\n@Component({\r\n selector: 'wdc-button',\r\n imports: [CommonModule, SpinnerComponent],\r\n templateUrl: './button.component.html',\r\n})\r\nexport class ButtonComponent {\r\n variant = input<ButtonVariant>('primary');\r\n size = input<ButtonSize>('md');\r\n block = input<boolean>(false);\r\n outline = input<boolean>(false);\r\n loading = input<boolean>(false);\r\n rounded = input<boolean>(false);\r\n iconOnly = input<boolean>(false);\r\n disabled = input<boolean>(false);\r\n type = input<ButtonType>('button');\r\n icon = input<string | TemplateRef<any> | undefined>(undefined);\r\n\r\n clicked = output<MouseEvent>();\r\n\r\n classes = computed(() => {\r\n const baseClasses =\r\n 'inline-flex cursor-pointer items-center justify-center font-medium transition-all focus:outline-none disabled:opacity-50 disabled:pointer-events-none gap-2';\r\n\r\n let sizeClasses = '';\r\n if (this.variant() !== 'link') {\r\n switch (this.size()) {\r\n case 'sm':\r\n sizeClasses = this.iconOnly() ? 'h-8 w-8 p-0 text-xs' : 'h-8 px-3 text-xs';\r\n break;\r\n case 'md':\r\n sizeClasses = this.iconOnly() ? 'h-10 w-10 p-0 text-sm' : 'h-10 px-4 py-2 text-sm';\r\n break;\r\n case 'lg':\r\n sizeClasses = this.iconOnly() ? 'h-12 w-12 p-0 text-lg' : 'h-12 px-6 text-lg';\r\n break;\r\n }\r\n } else {\r\n switch (this.size()) {\r\n case 'sm':\r\n sizeClasses = 'text-xs';\r\n break;\r\n case 'md':\r\n sizeClasses = 'text-sm';\r\n break;\r\n case 'lg':\r\n sizeClasses = 'text-lg';\r\n break;\r\n }\r\n }\r\n\r\n const solidVariants: Record<ButtonVariant, string> = {\r\n primary: 'bg-primary text-white hover:bg-primary-hover',\r\n secondary: 'bg-secondary text-white hover:bg-secondary-hover',\r\n danger: 'bg-danger text-white hover:bg-danger-hover',\r\n success: 'bg-success text-white hover:bg-success-hover',\r\n warning: 'bg-warning text-white hover:bg-warning-hover',\r\n info: 'bg-info text-white hover:bg-info-hover',\r\n light: 'bg-light text-slate-800 hover:bg-light-hover',\r\n dark: 'bg-dark text-white hover:bg-dark-hover',\r\n link: 'text-blue-600 underline-offset-4 hover:underline px-0 h-auto min-w-0',\r\n };\r\n\r\n const outlineVariants: Record<ButtonVariant, string> = {\r\n primary: 'border border-primary text-primary hover:text-primary-light hover:bg-primary',\r\n secondary:\r\n 'border border-secondary text-secondary hover:text-secondary-light hover:bg-secondary',\r\n danger: 'border border-danger text-danger hover:text-danger-light hover:bg-danger',\r\n success: 'border border-success text-success hover:text-success-light hover:bg-success',\r\n warning: 'border border-warning text-warning hover:text-warning-light hover:bg-warning',\r\n info: 'border border-info text-info hover:text-info-light hover:bg-info',\r\n light: 'border border-slate-200 text-slate-700 hover:bg-light',\r\n dark: 'border border-slate-800 text-slate-800 hover:text-dark-light hover:bg-dark',\r\n link: 'text-primary underline-offset-4 hover:underline px-0 h-auto min-w-0',\r\n };\r\n\r\n // let variantClasses = '';\r\n // switch (this.variant()) {\r\n // case 'primary':\r\n // variantClasses = 'bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500';\r\n // break;\r\n // case 'secondary':\r\n // variantClasses = 'bg-slate-600 text-white hover:bg-slate-700 focus:ring-slate-500';\r\n // break;\r\n // case 'danger':\r\n // variantClasses = 'bg-red-600 text-white hover:bg-red-700 focus:ring-red-500';\r\n // break;\r\n // case 'success':\r\n // variantClasses = 'bg-green-600 text-white hover:bg-green-700 focus:ring-green-500';\r\n // break;\r\n // case 'warning':\r\n // variantClasses = 'bg-yellow-500 text-white hover:bg-yellow-600 focus:ring-yellow-500';\r\n // break;\r\n // case 'info':\r\n // variantClasses = 'bg-cyan-500 text-white hover:bg-cyan-600 focus:ring-cyan-500';\r\n // break;\r\n // case 'link':\r\n // variantClasses =\r\n // 'text-blue-600 underline-offset-4 hover:underline focus:ring-blue-500 px-0 h-auto min-w-0';\r\n // break;\r\n // }\r\n\r\n const variantClasses = this.outline()\r\n ? outlineVariants[this.variant()]\r\n : solidVariants[this.variant()];\r\n\r\n const roundedClass = this.rounded()\r\n ? 'rounded-full'\r\n : this.variant() === 'link'\r\n ? ''\r\n : 'rounded-lg';\r\n\r\n return `${baseClasses} ${variantClasses} ${sizeClasses} ${roundedClass}`;\r\n });\r\n\r\n isIconString = computed(() => {\r\n return typeof this.icon() === 'string';\r\n });\r\n\r\n iconTemplate = computed(() => {\r\n const icon = this.icon();\r\n return icon instanceof TemplateRef ? icon : null;\r\n });\r\n}\r\n","<!-- <button [class]=\"classes()\" [disabled]=\"disabled() || loading()\">\r\n @if (loading()) {\r\n <wdc-spinner\r\n [size]=\"size() === 'lg' ? 'md' : 'sm'\"\r\n [color]=\"variant() === 'outline' || variant() === 'ghost' ? 'primary' : 'white'\"\r\n ></wdc-spinner>\r\n }\r\n @if (!loading() && icon()) {\r\n @if (isIconString()) {\r\n <span [innerHTML]=\"icon()\"></span>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"iconTemplate()\"></ng-container>\r\n }\r\n }\r\n\r\n <ng-content></ng-content>\r\n</button> -->\r\n\r\n<button [class]=\"classes()\" [disabled]=\"disabled() || loading()\">\r\n @if (loading()) {\r\n <wdc-spinner\r\n [size]=\"size() === 'lg' ? 'md' : 'sm'\"\r\n [color]=\"outline() ? 'primary' : 'white'\"\r\n ></wdc-spinner>\r\n }\r\n @if (!loading() && icon()) {\r\n @if (isIconString()) {\r\n <span [innerHTML]=\"icon()\"></span>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"iconTemplate()\"></ng-container>\r\n }\r\n }\r\n\r\n <ng-content></ng-content>\r\n</button>\r\n","import { Component, input } from '@angular/core';\r\nimport { IconName } from './icons.type';\r\n\r\n@Component({\r\n selector: 'wdc-icons',\r\n imports: [],\r\n templateUrl: './icons.component.html',\r\n styleUrls: ['./icons.component.css'],\r\n})\r\nexport class IconsComponent {\r\n name = input.required<IconName>();\r\n class = input<string>('');\r\n size = input<'10' | '12' | '14' | '16' | '18' | '20' | '22' | '24' | '40' | '48' | '56'>('16');\r\n\r\n get sizeClass() {\r\n switch (this.size()) {\r\n case '10':\r\n return 'icon-10';\r\n case '12':\r\n return 'icon-12';\r\n case '14':\r\n return 'icon-14';\r\n case '16':\r\n return 'icon-16';\r\n case '18':\r\n return 'icon-18';\r\n case '20':\r\n return 'icon-20';\r\n case '22':\r\n return 'icon-22';\r\n case '24':\r\n return 'icon-24';\r\n case '40':\r\n return 'icon-40';\r\n case '48':\r\n return 'icon-48';\r\n case '56':\r\n return 'icon-56';\r\n default:\r\n return 'w-8 h-8';\r\n }\r\n }\r\n}\r\n","<span class=\"flex\">\r\n <span [class]=\"`material-symbols-outlined ${class} ${sizeClass}`\">{{ name() }}</span>\r\n</span>\r\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\r\n@Component({\r\n selector: 'wdc-card',\r\n imports: [],\r\n standalone: true,\r\n templateUrl: './card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CardComponent {\r\n title = input<string>('');\r\n subtitle = input<string>('');\r\n footer = input<boolean>(false);\r\n header = input<boolean>(false);\r\n noBodyPadding = input<boolean>(false);\r\n}\r\n","<!-- <div class=\"bg-white rounded-xl shadow-sm border border-gray-100 flex flex-col h-full\">\r\n @if (title()) {\r\n <div\r\n class=\"px-6 py-4 border-b border-gray-50 flex justify-between items-center rounded-t-xl bg-white shrink-0\"\r\n >\r\n <div>\r\n <h3 class=\"text-lg font-semibold text-gray-800\">{{ title() }}</h3>\r\n @if (subtitle()) {\r\n <p class=\"text-sm text-gray-500 mt-1\">{{ subtitle() }}</p>\r\n }\r\n </div>\r\n <ng-content select=\"[header-actions]\"></ng-content>\r\n </div>\r\n }\r\n <div class=\"p-6 flex-1 min-h-0\">\r\n <ng-content select=\"[card-body]\"></ng-content>\r\n </div>\r\n @if (footer()) {\r\n <div class=\"px-6 py-4 border-t border-gray-50\">\r\n <ng-content select=\"[footer]\"></ng-content>\r\n </div>\r\n }\r\n</div> -->\r\n\r\n<div class=\"bg-white rounded-xl shadow-sm flex flex-col h-full\">\r\n @if (header()) {\r\n <div\r\n class=\"px-6 py-4 flex justify-between items-center border-b border-gray-100 rounded-t-xl bg-white shrink-0\"\r\n >\r\n @if (title()) {\r\n <div class=\"leading-none\">\r\n <h3 class=\"text-lg font-bold text-gray-800\">{{ title() }}</h3>\r\n @if (subtitle()) {\r\n <p class=\"text-sm text-gray-500\">{{ subtitle() }}</p>\r\n }\r\n </div>\r\n }\r\n <div class=\"\">\r\n @if (!title()) {\r\n <ng-content select=\"[card-header]\"></ng-content>\r\n }\r\n <ng-content select=\"[card-actions]\"></ng-content>\r\n </div>\r\n </div>\r\n }\r\n <div [class]=\"noBodyPadding() ? 'flex-1' : 'p-6 flex-1'\">\r\n <ng-content select=\"[card-body]\"></ng-content>\r\n </div>\r\n @if (footer()) {\r\n <div class=\"px-6 py-4 border-t border-gray-100\">\r\n <ng-content select=\"[card-footer]\"></ng-content>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { IconName } from '../icons/icons.type';\nimport { IconsComponent } from '../icons/icons.component';\n\n@Component({\n selector: 'wdc-stat-card',\n imports: [IconsComponent],\n standalone: true,\n templateUrl: './stat-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block h-full',\n },\n})\nexport class StatCardComponent {\n label = input.required<string>();\n value = input.required<string | number>();\n trend = input<number>(0);\n // trend > 0 is up, < 0 is down\n trendLabel = input<string>('');\n iconName = input<IconName>('chart_data');\n}\n","<div\n class=\"bg-white p-6 rounded-xl shadow-sm border border-gray-100 flex items-start justify-between h-full\"\n>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex items-start justify-between\">\n <div>\n <p class=\"text-sm font-medium text-gray-500 mb-1\">{{ label() }}</p>\n <h4 class=\"text-2xl font-bold text-gray-900\">{{ value() }}</h4>\n </div>\n <div class=\"p-3 bg-indigo-50 rounded-lg text-indigo-600\">\n <wdc-icons [name]=\"iconName()\" size=\"22\"></wdc-icons>\n </div>\n </div>\n\n @if (trend() !== 0) {\n <div class=\"flex items-center mt-2 text-sm\">\n @if (trend() > 0) {\n <span\n class=\"text-emerald-600 bg-emerald-50 px-1.5 py-0.5 rounded flex items-center gap-1 font-medium\"\n >\n <svg class=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6\"\n ></path>\n </svg>\n {{ trend() }}%\n </span>\n } @else {\n <span\n class=\"text-rose-600 bg-rose-50 px-1.5 py-0.5 rounded flex items-center gap-1 font-medium\"\n >\n <svg class=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M13 17h8m0 0V9m0 8l-8-8-4 4-6-6\"\n ></path>\n </svg>\n {{ trend() }}%\n </span>\n }\n <span class=\"text-gray-400 ml-2\">{{ trendLabel() }}</span>\n </div>\n }\n </div>\n</div>\n","import { Component, Input, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-avatar',\r\n imports: [CommonModule],\r\n templateUrl: './avatar.component.html',\r\n})\r\nexport class AvatarComponent {\r\n @Input() src: string | undefined;\r\n @Input() alt: string = '';\r\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n @Input() shape: 'circle' | 'square' = 'circle';\r\n @Input() fallback: string = '';\r\n\r\n imageError = signal(false);\r\n\r\n get containerClasses(): string {\r\n let sizeClass = 'w-10 h-10 text-sm';\r\n switch (this.size) {\r\n case 'sm':\r\n sizeClass = 'w-8 h-8 text-xs';\r\n break;\r\n case 'md':\r\n sizeClass = 'w-10 h-10 text-sm';\r\n break;\r\n case 'lg':\r\n sizeClass = 'w-12 h-12 text-base';\r\n break;\r\n case 'xl':\r\n sizeClass = 'w-16 h-16 text-lg';\r\n break;\r\n }\r\n\r\n const shapeClass = this.shape === 'circle' ? 'rounded-full' : 'rounded-md';\r\n return `relative flex items-center justify-center overflow-hidden bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300 font-medium ${sizeClass} ${shapeClass}`;\r\n }\r\n\r\n handleError() {\r\n this.imageError.set(true);\r\n }\r\n}\r\n","<div [class]=\"containerClasses\">\r\n <img\r\n *ngIf=\"src && !imageError()\"\r\n [src]=\"src\"\r\n [alt]=\"alt\"\r\n class=\"h-full w-full object-cover\"\r\n (error)=\"handleError()\"\r\n />\r\n <span *ngIf=\"!src || imageError()\">{{ fallback }}</span>\r\n</div>\r\n","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n@Component({\r\n selector: 'wdc-badge',\r\n imports: [CommonModule],\r\n templateUrl: './badge.component.html',\r\n})\r\nexport class BadgeComponent {\r\n value = input<string | number | undefined>(undefined);\r\n variant = input<'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info'>('primary');\r\n size = input<'sm' | 'md' | 'lg'>('md');\r\n rounded = input<boolean>(false);\r\n\r\n classes = computed(() => {\r\n const base =\r\n 'inline-flex items-center justify-center font-medium transition-colors ring-1 ring-inset';\r\n\r\n let variantClasses = '';\r\n switch (this.variant()) {\r\n case 'primary':\r\n variantClasses =\r\n 'bg-blue-50 text-blue-700 ring-blue-700/10 dark:bg-blue-400/10 dark:text-blue-400 dark:ring-blue-400/30';\r\n break;\r\n case 'secondary':\r\n variantClasses =\r\n 'bg-slate-50 text-slate-600 ring-slate-500/10 dark:bg-slate-400/10 dark:text-slate-400 dark:ring-slate-400/20';\r\n break;\r\n case 'success':\r\n variantClasses =\r\n 'bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-500/10 dark:text-green-400 dark:ring-green-500/20';\r\n break;\r\n case 'danger':\r\n variantClasses =\r\n 'bg-red-50 text-red-700 ring-red-600/10 dark:bg-red-400/10 dark:text-red-400 dark:ring-red-400/20';\r\n break;\r\n case 'warning':\r\n variantClasses =\r\n 'bg-yellow-50 text-yellow-800 ring-yellow-600/20 dark:bg-yellow-400/10 dark:text-yellow-500 dark:ring-yellow-400/20';\r\n break;\r\n case 'info':\r\n variantClasses =\r\n 'bg-indigo-50 text-indigo-700 ring-indigo-700/10 dark:bg-indigo-400/10 dark:text-indigo-400 dark:ring-indigo-400/30';\r\n break;\r\n }\r\n\r\n let sizeClasses = '';\r\n switch (this.size()) {\r\n case 'sm':\r\n sizeClasses = 'text-xs px-2 py-1';\r\n break;\r\n case 'md':\r\n sizeClasses = 'text-sm px-2.5 py-0.5';\r\n break;\r\n case 'lg':\r\n sizeClasses = 'text-base px-3 py-1';\r\n break;\r\n }\r\n\r\n const roundedClass = this.rounded() ? 'rounded-full' : 'rounded-md';\r\n\r\n return `${base} ${variantClasses} ${sizeClasses} ${roundedClass}`;\r\n });\r\n}\r\n","<span [class]=\"classes()\">\r\n <ng-content></ng-content>\r\n @if (value()) {\r\n <span>{{ value() }}</span>\r\n }\r\n</span>\r\n","import { Component, input, model, computed, output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n// import { trigger, transition, style, animate } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'wdc-modal',\r\n imports: [],\r\n templateUrl: './modal.component.html',\r\n})\r\nexport class ModalComponent {\r\n title = input<string>('');\r\n size = input<'sm' | 'md' | 'lg' | 'xl' | 'full'>('md');\r\n isOpen = model<boolean>(false);\r\n closeOnBackdropClick = input<boolean>(true);\r\n\r\n onClose = output<void>();\r\n\r\n closeModal() {\r\n this.isOpen.set(false);\r\n this.onClose.emit();\r\n }\r\n\r\n onBackdropClick() {\r\n if (this.closeOnBackdropClick()) {\r\n this.closeModal();\r\n }\r\n }\r\n\r\n sizeClasses = computed(() => {\r\n switch (this.size()) {\r\n case 'sm':\r\n return 'sm:max-w-sm';\r\n case 'md':\r\n return 'sm:max-w-md';\r\n case 'lg':\r\n return 'sm:max-w-lg';\r\n case 'xl':\r\n return 'sm:max-w-xl';\r\n case 'full':\r\n return 'sm:max-w-full sm:m-4';\r\n default:\r\n return 'sm:max-w-md';\r\n }\r\n });\r\n}\r\n","@if (isOpen()) {\r\n <div class=\"relative z-50\" aria-labelledby=\"modal-title\" role=\"dialog\" aria-modal=\"true\">\r\n <!-- Backdrop -->\r\n <div\r\n [@fadeAnimation]\r\n class=\"fixed inset-0 bg-slate-900/40 backdrop-blur-sm transition-opacity\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n\r\n <!-- Panel -->\r\n <div class=\"fixed inset-0 z-10 overflow-y-auto w-screen overflow-x-hidden\">\r\n <div class=\"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0\">\r\n <div\r\n [@modalAnimation]\r\n class=\"relative transform overflow-hidden rounded-lg bg-white dark:bg-slate-900 px-4 pb-4 pt-5 text-left shadow-xl sm:my-8 w-full sm:p-6\"\r\n [class]=\"sizeClasses()\"\r\n >\r\n <!-- Header -->\r\n @if (title()) {\r\n <div class=\"mb-4 sm:flex sm:items-start justify-between\">\r\n <h3\r\n class=\"text-lg font-semibold leading-6 text-slate-900 dark:text-white\"\r\n id=\"modal-title\"\r\n >\r\n {{ title() }}\r\n </h3>\r\n <button\r\n type=\"button\"\r\n class=\"rounded-md bg-white dark:bg-slate-900 text-slate-400 hover:text-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-slate-900\"\r\n (click)=\"closeModal()\"\r\n >\r\n <span class=\"sr-only\">Close</span>\r\n <svg\r\n class=\"h-6 w-6\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n }\r\n\r\n <!-- Body -->\r\n <div class=\"mt-2\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-navbar',\r\n imports: [],\r\n templateUrl: './navbar.component.html',\r\n})\r\nexport class NavbarComponent {}\r\n","<p>navbar works!</p>\r\n","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-progress-bar',\r\n imports: [CommonModule],\r\n templateUrl: './progress-bar.component.html',\r\n})\r\nexport class ProgressBarComponent {\r\n value = input<number>(0);\r\n showValue = input<boolean>(false);\r\n variant = input<'primary' | 'success' | 'warning' | 'danger' | 'info'>('primary');\r\n\r\n colorClass = computed(() => {\r\n switch (this.variant()) {\r\n case 'primary':\r\n return 'bg-blue-600 dark:bg-blue-500';\r\n case 'success':\r\n return 'bg-green-600 dark:bg-green-500';\r\n case 'warning':\r\n return 'bg-yellow-500 dark:bg-yellow-400';\r\n case 'danger':\r\n return 'bg-red-600 dark:bg-red-500';\r\n case 'info':\r\n return 'bg-cyan-500 dark:bg-cyan-400';\r\n default:\r\n return 'bg-blue-600 dark:bg-blue-500';\r\n }\r\n });\r\n}\r\n","<div class=\"w-full bg-slate-200 dark:bg-slate-700 rounded-full h-2.5 overflow-hidden\">\r\n <div\r\n class=\"h-2.5 rounded-full transition-all duration-300 ease-out\"\r\n [class]=\"colorClass()\"\r\n [style.width.%]=\"value()\"\r\n ></div>\r\n</div>\r\n@if (showValue()) {\r\n <div class=\"text-xs text-slate-500 dark:text-slate-400 mt-1 text-right\">{{ value() }}%</div>\r\n}\r\n","import { Component, input, signal, TemplateRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\ntype TabOrientation = 'horizontal' | 'vertical';\r\n\r\n@Component({\r\n selector: 'wdc-tab',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: ``,\r\n})\r\nexport class TabComponent {\r\n label = input<string>();\r\n disabled = input(false);\r\n active = input(false);\r\n headerTemplate = input<TemplateRef<any> | null>(null);\r\n contentTemplate = input<TemplateRef<any> | null>(null);\r\n}\r\n","import { Component, contentChildren, effect, output, input, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TabComponent } from './tab.component';\r\n\r\nexport type TabVariant = 'underline' | 'pills';\r\nexport type TabOrientation = 'horizontal' | 'vertical';\r\n\r\n@Component({\r\n selector: 'wdc-tabs',\r\n imports: [CommonModule],\r\n templateUrl: './tabs.component.html',\r\n})\r\nexport class TabsComponent {\r\n variant = input<TabVariant>('underline');\r\n orientation = input<TabOrientation>('horizontal');\r\n activeTab = signal<TabComponent | null>(null);\r\n tabs = contentChildren(TabComponent);\r\n\r\n constructor() {\r\n effect(() => {\r\n const allTabs = this.tabs();\r\n if (allTabs.length === 0) return;\r\n ``;\r\n let activeTab = allTabs.find((tab) => tab.active());\r\n this.activeTab.set(activeTab || allTabs[0]);\r\n });\r\n }\r\n\r\n selectTab(tab: TabComponent) {\r\n if (!tab.disabled()) this.activeTab.set(tab);\r\n }\r\n}\r\n","<!-- <div [class]=\"containerClasses\">\r\n <div role=\"tablist\" [class]=\"listClasses\">\r\n @for (tab of tabs(); track tab.label()) {\r\n <button\r\n type=\"button\"\r\n role=\"tab\"\r\n [attr.aria-selected]=\"tab.active()\"\r\n (click)=\"selectTab(tab)\"\r\n [disabled]=\"tab.disabled()\"\r\n [class]=\"getTabStyle(tab)\"\r\n [class.border-indigo-500]=\"activeTab() === tab.label()\"\r\n [class.text-indigo-600]=\"activeTab() === tab.label()\"\r\n [class.border-transparent]=\"activeTab() !== tab.label()\"\r\n [class.text-gray-500]=\"activeTab() !== tab.label()\"\r\n class=\"group flex items-center gap-2 px-4 py-2 text-sm font-medium transition-all duration-200 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap\"\r\n >\r\n {{ tab.label() }}\r\n </button>\r\n }\r\n </div>\r\n\r\n <div class=\"flex-1 p-1\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div> -->\r\n\r\n<div\r\n [class]=\"\r\n `w-full flex bg-white p-4 rounded-lg border border-gray-100 ${orientation() === 'vertical' ? 'flex-row gap-6' : 'flex-col'}`\r\n \"\r\n>\r\n <div\r\n [class]=\"\r\n `flex flex-shrink-0 border-gray-200 ${orientation() === 'vertical' ? 'border-r w-42 flex-col' : 'border-b'}`\r\n \"\r\n >\r\n <nav\r\n [class]=\"\r\n `flex ${orientation() === 'vertical' ? 'flex-col -mr-px flex-shrink-0' : '-mb-px space-x-8'}`\r\n \"\r\n >\r\n @for (item of tabs(); track $index; let i = $index) {\r\n <button\r\n (click)=\"selectTab(item)\"\r\n [class.border-indigo-500]=\"activeTab() === item\"\r\n [class.text-indigo-600]=\"activeTab() === item\"\r\n [class.border-transparent]=\"activeTab() !== item\"\r\n [class.text-gray-500]=\"activeTab() !== item\"\r\n [class.hover:text-gray-700]=\"activeTab() !== item\"\r\n [class.hover:border-gray-300]=\"activeTab() !== item\"\r\n [class]=\"\r\n `whitespace-nowrap flex cursor-pointer py-4 px-1 font-medium text-sm transition-all focus:outline-none ${\r\n orientation() === 'vertical' ? 'border-r-2' : 'border-b-2'\r\n }`\r\n \"\r\n >\r\n @if (item.headerTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"item.headerTemplate()\"></ng-container>\r\n } @else {\r\n {{ item.label() }}\r\n }\r\n </button>\r\n }\r\n </nav>\r\n </div>\r\n\r\n @if (activeTab(); as active) {\r\n <div [class]=\"`${orientation() === 'vertical' ? 'flex-1 h-full overflow-y-auto' : 'mt-4'}`\">\r\n <ng-container *ngTemplateOutlet=\"active.contentTemplate()\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\nexport type ToastType = 'success' | 'error' | 'warning' | 'info';\r\n\r\nexport interface Toast {\r\n id: number;\r\n message: string;\r\n type: ToastType;\r\n duration?: number;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ToastService {\r\n toasts = signal<Toast[]>([]);\r\n private nextId = 0;\r\n\r\n show(message: string, type: ToastType = 'info', duration: number = 3000) {\r\n const id = this.nextId++;\r\n const toast: Toast = { id, message, type, duration };\r\n\r\n this.toasts.update((current) => [...current, toast]);\r\n\r\n if (duration > 0) {\r\n setTimeout(() => {\r\n this.remove(id);\r\n }, duration);\r\n }\r\n }\r\n\r\n remove(id: number) {\r\n this.toasts.update((current) => current.filter((t) => t.id !== id));\r\n }\r\n\r\n success(message: string, duration?: number) {\r\n this.show(message, 'success', duration);\r\n }\r\n\r\n error(message: string, duration?: number) {\r\n this.show(message, 'error', duration);\r\n }\r\n\r\n warning(message: string, duration?: number) {\r\n this.show(message, 'warning', duration);\r\n }\r\n\r\n info(message: string, duration?: number) {\r\n this.show(message, 'info', duration);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToastService, Toast, ToastType } from './toast.service';\r\n\r\n@Component({\r\n selector: 'wdc-toast',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './toast.component.html',\r\n})\r\nexport class ToastComponent {\r\n constructor(public toastService: ToastService) {}\r\n\r\n getIcon(type: ToastType): string {\r\n switch (type) {\r\n case 'success':\r\n return 'check_circle';\r\n case 'error':\r\n return 'error';\r\n case 'warning':\r\n return 'warning';\r\n case 'info':\r\n return 'info';\r\n }\r\n }\r\n\r\n getClasses(type: ToastType): string {\r\n switch (type) {\r\n case 'success':\r\n return 'bg-green-50 text-green-800 border-green-200 dark:bg-green-900/30 dark:text-green-300 dark:border-green-800';\r\n case 'error':\r\n return 'bg-red-50 text-red-800 border-red-200 dark:bg-red-900/30 dark:text-red-300 dark:border-red-800';\r\n case 'warning':\r\n return 'bg-yellow-50 text-yellow-800 border-yellow-200 dark:bg-yellow-900/30 dark:text-yellow-300 dark:border-yellow-800';\r\n case 'info':\r\n return 'bg-blue-50 text-blue-800 border-blue-200 dark:bg-blue-900/30 dark:text-blue-300 dark:border-blue-800';\r\n }\r\n }\r\n}\r\n","<div class=\"fixed top-4 right-4 z-[100] flex flex-col gap-2 pointer-events-none\">\r\n <div\r\n *ngFor=\"let toast of toastService.toasts()\"\r\n class=\"pointer-events-auto flex items-center w-full max-w-xs p-4 rounded-lg shadow-lg border animate-in slide-in-from-right fade-in duration-300\"\r\n [class]=\"getClasses(toast.type)\"\r\n role=\"alert\"\r\n >\r\n <div class=\"inline-flex items-center justify-center flex-shrink-0 w-8 h-8\">\r\n <span class=\"material-icons-outlined text-xl\">{{ getIcon(toast.type) }}</span>\r\n </div>\r\n <div class=\"ml-3 text-sm font-normal\">{{ toast.message }}</div>\r\n <button\r\n type=\"button\"\r\n class=\"ml-auto -mx-1.5 -my-1.5 rounded-lg focus:ring-2 p-1.5 hover:bg-black/5 dark:hover:bg-white/10 inline-flex items-center justify-center h-8 w-8 transition-colors\"\r\n aria-label=\"Close\"\r\n (click)=\"toastService.remove(toast.id)\"\r\n [class]=\"\r\n 'text-' +\r\n (toast.type === 'info'\r\n ? 'blue'\r\n : toast.type === 'error'\r\n ? 'red'\r\n : toast.type === 'success'\r\n ? 'green'\r\n : 'yellow') +\r\n '-500'\r\n \"\r\n >\r\n <span class=\"sr-only\">Close</span>\r\n <svg\r\n class=\"w-3 h-3\"\r\n aria-hidden=\"true\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 14 14\"\r\n >\r\n <path\r\n stroke=\"currentColor\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-table',\r\n imports: [],\r\n templateUrl: './table.component.html',\r\n})\r\nexport class TableComponent {}\r\n","<p>table works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-chart',\r\n imports: [],\r\n templateUrl: './chart.component.html',\r\n})\r\nexport class ChartComponent {}\r\n","<p>chart works!</p>\r\n","import { Component, input, output, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-upload',\r\n imports: [CommonModule],\r\n templateUrl: './upload.component.html',\r\n})\r\nexport class UploadComponent {\r\n accept = input<string>('*/*');\r\n maxSize = input<number>(10000000); // 10MB default\r\n multiple = input<boolean>(false);\r\n\r\n onSelect = output<File[]>();\r\n onUpload = output<File[]>(); // If manual upload\r\n\r\n files = signal<File[]>([]);\r\n isDragging = signal(false);\r\n\r\n onDragOver(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging.set(true);\r\n }\r\n\r\n onDragLeave(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging.set(false);\r\n }\r\n\r\n onDrop(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging.set(false);\r\n\r\n if (event.dataTransfer?.files) {\r\n this.handleFiles(Array.from(event.dataTransfer.files));\r\n }\r\n }\r\n\r\n onFileSelect(event: any) {\r\n if (event.target.files) {\r\n this.handleFiles(Array.from(event.target.files));\r\n }\r\n }\r\n\r\n private handleFiles(newFiles: File[]) {\r\n const validFiles = newFiles.filter((file) => {\r\n // Check size\r\n if (file.size > this.maxSize()) {\r\n console.warn(`File ${file.name} exceeds max size`);\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n if (this.multiple()) {\r\n this.files.update((current) => [...current, ...validFiles]);\r\n } else {\r\n if (validFiles.length > 0) {\r\n this.files.set([validFiles[0]]);\r\n }\r\n }\r\n\r\n this.onSelect.emit(this.files());\r\n }\r\n\r\n removeFile(index: number, event: Event) {\r\n event.stopPropagation();\r\n this.files.update((files) => files.filter((_, i) => i !== index));\r\n this.onSelect.emit(this.files());\r\n }\r\n\r\n upload() {\r\n this.onUpload.emit(this.files());\r\n // Clear after upload? keeping for now.\r\n }\r\n\r\n formatBytes(bytes: number, decimals = 2) {\r\n if (!+bytes) return '0 Bytes';\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\r\n }\r\n}\r\n","<div class=\"w-full\">\r\n <!-- Drop Zone -->\r\n <div\r\n class=\"border-2 border-dashed rounded-xl p-8 text-center transition-colors cursor-pointer flex flex-col items-center justify-center gap-4 bg-slate-50 dark:bg-slate-900/50\"\r\n [class.border-indigo-500]=\"isDragging()\"\r\n [class.bg-indigo-50]=\"isDragging()\"\r\n [class.dark:bg-indigo-500/10]=\"isDragging()\"\r\n [class.border-slate-300]=\"!isDragging()\"\r\n [class.dark:border-slate-700]=\"!isDragging()\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"fileInput.click()\"\r\n >\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n [accept]=\"accept()\"\r\n [multiple]=\"multiple()\"\r\n class=\"hidden\"\r\n (change)=\"onFileSelect($event)\"\r\n />\r\n\r\n <div\r\n class=\"h-12 w-12 rounded-full bg-slate-100 dark:bg-slate-800 flex items-center justify-center mb-2\"\r\n >\r\n <svg\r\n class=\"w-6 h-6 text-slate-500 dark:text-slate-400\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path>\r\n <polyline points=\"17 8 12 3 7 8\"></polyline>\r\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"></line>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"space-y-1\">\r\n <p class=\"text-sm font-medium text-slate-900 dark:text-white\">\r\n Drag & drop files here, or\r\n <span class=\"text-indigo-600 dark:text-indigo-400 hover:text-indigo-500\">browse</span>\r\n </p>\r\n <p class=\"text-xs text-slate-500 dark:text-slate-400\">\r\n Supports: {{ accept() === '*/*' ? 'All files' : accept() }} (Max\r\n {{ formatBytes(maxSize()) }})\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <!-- File List -->\r\n @if (files().length > 0) {\r\n <div class=\"mt-4 space-y-2\">\r\n @for (file of files(); track file.name) {\r\n <div\r\n class=\"flex items-center justify-between p-3 bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-lg shadow-sm\"\r\n >\r\n <div class=\"flex items-center gap-3 overflow-hidden\">\r\n <div\r\n class=\"h-10 w-10 flex-shrink-0 bg-indigo-50 dark:bg-indigo-500/10 rounded-lg flex items-center justify-center text-indigo-600 dark:text-indigo-400 font-bold text-xs uppercase\"\r\n >\r\n {{ file.name.split('.').pop() || 'FILE' }}\r\n </div>\r\n <div class=\"min-w-0\">\r\n <p class=\"text-sm font-medium text-slate-900 dark:text-white truncate\">\r\n {{ file.name }}\r\n </p>\r\n <p class=\"text-xs text-slate-500 dark:text-slate-400\">{{ formatBytes(file.size) }}</p>\r\n </div>\r\n </div>\r\n\r\n <button\r\n (click)=\"removeFile($index, $event)\"\r\n type=\"button\"\r\n class=\"p-1.5 text-slate-400 hover:text-red-500 hover:bg-red-50 dark:hover:bg-red-500/10 rounded-lg transition-colors\"\r\n >\r\n <svg\r\n class=\"w-5 h-5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <path d=\"M18 6L6 18M6 6l12 12\"></path>\r\n </svg>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-wizard',\r\n imports: [],\r\n templateUrl: './wizard.component.html',\r\n})\r\nexport class WizardComponent {}\r\n","<p>wizard works!</p>\r\n","import { Component, input, model } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-drawer',\r\n imports: [CommonModule],\r\n templateUrl: './drawer.component.html',\r\n})\r\nexport class DrawerComponent {\r\n isOpen = model<boolean>(false);\r\n position = input<'left' | 'right'>('right');\r\n\r\n close() {\r\n this.isOpen.set(false);\r\n }\r\n\r\n get transformParams() {\r\n return {\r\n value: this.isOpen(),\r\n params: {\r\n transform: this.position() === 'right' ? 'translateX(100%)' : 'translateX(-100%)',\r\n },\r\n };\r\n }\r\n}\r\n","@if (isOpen()) {\r\n <div class=\"relative z-50\" aria-labelledby=\"slide-over-title\" role=\"dialog\" aria-modal=\"true\">\r\n <!-- Backdrop -->\r\n <div\r\n [@fadeAnimation]\r\n class=\"fixed inset-0 bg-slate-900/40 backdrop-blur-sm transition-opacity\"\r\n (click)=\"close()\"\r\n ></div>\r\n\r\n <!-- Panel -->\r\n <div class=\"fixed inset-0 overflow-hidden pointer-events-none\">\r\n <div class=\"absolute inset-0 overflow-hidden\">\r\n <div\r\n class=\"pointer-events-auto fixed inset-y-0 flex max-w-full\"\r\n [class.right-0]=\"position() === 'right'\"\r\n [class.left-0]=\"position() === 'left'\"\r\n [class.pl-10]=\"position() === 'right'\"\r\n [class.sm:pl-16]=\"position() === 'right'\"\r\n [class.pr-10]=\"position() === 'left'\"\r\n [class.sm:pr-16]=\"position() === 'left'\"\r\n >\r\n <div\r\n [@drawerAnimation]=\"transformParams\"\r\n class=\"flex w-screen max-w-md flex-col overflow-y-scroll bg-white dark:bg-slate-900 py-6 shadow-2xl\"\r\n >\r\n <div class=\"px-4 sm:px-6 flex items-center justify-between\">\r\n <h2\r\n class=\"text-base font-semibold leading-6 text-slate-900 dark:text-white\"\r\n id=\"slide-over-title\"\r\n >\r\n <ng-content select=\"[header]\"></ng-content>\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"rounded-md text-slate-400 hover:text-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500\"\r\n (click)=\"close()\"\r\n >\r\n <span class=\"sr-only\">Close panel</span>\r\n <svg\r\n class=\"h-6 w-6\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"relative mt-6 flex-1 px-4 sm:px-6 text-slate-600 dark:text-slate-400\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-carousel',\r\n imports: [],\r\n templateUrl: './carousel.component.html',\r\n})\r\nexport class CarouselComponent {}\r\n","<p>carousel works!</p>\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\nexport interface Confirmation {\r\n message?: string;\r\n header?: string;\r\n icon?: string;\r\n acceptLabel?: string;\r\n rejectLabel?: string;\r\n accept?: () => void;\r\n reject?: () => void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmService {\r\n private _state = signal<Confirmation | null>(null);\r\n\r\n state = this._state.asReadonly();\r\n\r\n confirm(confirmation: Confirmation) {\r\n this._state.set(confirmation);\r\n }\r\n\r\n close() {\r\n this._state.set(null);\r\n }\r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConfirmService } from './confirm.service';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { ModalComponent } from '../modal/modal.component';\r\n\r\n@Component({\r\n selector: 'wdc-confirm-dialog',\r\n imports: [CommonModule, ButtonComponent, ModalComponent],\r\n templateUrl: './confirm-dialog.component.html',\r\n})\r\nexport class ConfirmDialogComponent {\r\n private confirmService = inject(ConfirmService);\r\n state = this.confirmService.state;\r\n\r\n onClose() {\r\n this.confirmService.close();\r\n }\r\n\r\n onAccept() {\r\n this.state()?.accept?.();\r\n this.confirmService.close();\r\n }\r\n\r\n onReject() {\r\n this.state()?.reject?.();\r\n this.confirmService.close();\r\n }\r\n}\r\n","<wdc-modal\r\n [isOpen]=\"!!state()\"\r\n (isOpenChange)=\"!$event && onClose()\"\r\n [title]=\"state()?.header || 'Confirmation'\"\r\n size=\"sm\"\r\n>\r\n <div class=\"flex items-start gap-4\">\r\n @if (state()?.icon) {\r\n <div class=\"flex-shrink-0 text-amber-500\">\r\n <i [class]=\"state()?.icon\" class=\"text-2xl\"></i>\r\n </div>\r\n }\r\n <div class=\"text-slate-600 dark:text-slate-400\">\r\n {{ state()?.message }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-6 flex justify-end gap-3\">\r\n <wdc-button variant=\"light\" (click)=\"onReject()\">\r\n {{ state()?.rejectLabel || 'Cancel' }}\r\n </wdc-button>\r\n <wdc-button (click)=\"onAccept()\">\r\n {{ state()?.acceptLabel || 'Confirm' }}\r\n </wdc-button>\r\n </div>\r\n</wdc-modal>\r\n","import { Component, input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SpinnerComponent } from '../spinner/spinner.component';\r\n\r\n@Component({\r\n selector: 'wdc-page-loader',\r\n imports: [CommonModule, SpinnerComponent],\r\n templateUrl: './page-loader.component.html',\r\n})\r\nexport class PageLoaderComponent {\r\n message = input<string>('');\r\n fullScreen = input<boolean>(true);\r\n}\r\n","<div\r\n class=\"fixed inset-0 z-50 flex flex-col items-center justify-center bg-white/80 dark:bg-slate-900/80 backdrop-blur-md transition-all duration-300\"\r\n [class.absolute]=\"!fullScreen()\"\r\n [class.fixed]=\"fullScreen()\"\r\n>\r\n <wdc-spinner size=\"lg\" color=\"primary\"></wdc-spinner>\r\n @if (message()) {\r\n <p class=\"mt-4 text-sm font-medium text-slate-600 dark:text-slate-400 animate-pulse\">\r\n {{ message() }}\r\n </p>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ToastService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"wdcoders-ui-ng.mjs","sources":["../../../projects/wdc/src/lib/components/spinner/spinner.component.ts","../../../projects/wdc/src/lib/components/spinner/spinner.component.html","../../../projects/wdc/src/lib/components/button/button.component.ts","../../../projects/wdc/src/lib/components/button/button.component.html","../../../projects/wdc/src/lib/components/icons/icons.component.ts","../../../projects/wdc/src/lib/components/icons/icons.component.html","../../../projects/wdc/src/lib/components/card/card.component.ts","../../../projects/wdc/src/lib/components/card/card.component.html","../../../projects/wdc/src/lib/components/stat-card/stat-card.component.ts","../../../projects/wdc/src/lib/components/stat-card/stat-card.component.html","../../../projects/wdc/src/lib/components/avatar/avatar.component.ts","../../../projects/wdc/src/lib/components/avatar/avatar.component.html","../../../projects/wdc/src/lib/components/badge/badge.component.ts","../../../projects/wdc/src/lib/components/badge/badge.component.html","../../../projects/wdc/src/lib/components/modal/modal.component.ts","../../../projects/wdc/src/lib/components/modal/modal.component.html","../../../projects/wdc/src/lib/components/navbar/navbar.component.ts","../../../projects/wdc/src/lib/components/navbar/navbar.component.html","../../../projects/wdc/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/wdc/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/wdc/src/lib/components/tabs/tab.component.ts","../../../projects/wdc/src/lib/components/tabs/tabs.component.ts","../../../projects/wdc/src/lib/components/tabs/tabs.component.html","../../../projects/wdc/src/lib/components/toast/toast.service.ts","../../../projects/wdc/src/lib/components/toast/toast.component.ts","../../../projects/wdc/src/lib/components/toast/toast.component.html","../../../projects/wdc/src/lib/components/table/table.component.ts","../../../projects/wdc/src/lib/components/table/table.component.html","../../../projects/wdc/src/lib/components/chart/chart.component.ts","../../../projects/wdc/src/lib/components/chart/chart.component.html","../../../projects/wdc/src/lib/components/upload/upload.component.ts","../../../projects/wdc/src/lib/components/upload/upload.component.html","../../../projects/wdc/src/lib/components/wizard/wizard.component.ts","../../../projects/wdc/src/lib/components/wizard/wizard.component.html","../../../projects/wdc/src/lib/components/drawer/drawer.component.ts","../../../projects/wdc/src/lib/components/drawer/drawer.component.html","../../../projects/wdc/src/lib/components/carousel/carousel.component.ts","../../../projects/wdc/src/lib/components/carousel/carousel.component.html","../../../projects/wdc/src/lib/components/confirm-dialog/confirm.service.ts","../../../projects/wdc/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/wdc/src/lib/components/confirm-dialog/confirm-dialog.component.html","../../../projects/wdc/src/lib/components/page-loader/page-loader.component.ts","../../../projects/wdc/src/lib/components/page-loader/page-loader.component.html","../../../projects/wdc/src/lib/components/accordion/accordion.component.ts","../../../projects/wdc/src/lib/components/accordion/accordion.component.html","../../../projects/wdc/src/lib/components/accordion/accordion-item.component.ts","../../../projects/wdc/src/lib/components/accordion/accordion-item.component.html","../../../projects/wdc/src/lib/components/sidebar/sidebar.component.ts","../../../projects/wdc/src/lib/components/sidebar/sidebar.component.html","../../../projects/wdc/src/lib/components/forms/text-input/text-input.component.ts","../../../projects/wdc/src/lib/components/forms/text-input/text-input.component.html","../../../projects/wdc/src/lib/components/forms/select-input/select-input.component.ts","../../../projects/wdc/src/lib/components/forms/select-input/select-input.component.html","../../../projects/wdc/src/lib/components/forms/checkbox-input/checkbox-input.component.ts","../../../projects/wdc/src/lib/components/forms/checkbox-input/checkbox-input.component.html","../../../projects/wdc/src/lib/components/forms/radio-input/radio-input.component.ts","../../../projects/wdc/src/lib/components/forms/radio-input/radio-input.component.html","../../../projects/wdc/src/lib/components/forms/switch-input/switch-input.component.ts","../../../projects/wdc/src/lib/components/forms/switch-input/switch-input.component.html","../../../projects/wdc/src/lib/components/forms/textarea-input/textarea-input.component.ts","../../../projects/wdc/src/lib/components/forms/textarea-input/textarea-input.component.html","../../../projects/wdc/src/lib/components/forms/file-input/file-input.component.ts","../../../projects/wdc/src/lib/components/forms/file-input/file-input.component.html","../../../projects/wdc/src/lib/components/forms/date-input/date-input.component.ts","../../../projects/wdc/src/lib/components/forms/date-input/date-input.component.html","../../../projects/wdc/src/lib/components/forms/range-input/range-input.component.ts","../../../projects/wdc/src/lib/components/forms/range-input/range-input.component.html","../../../projects/wdc/src/lib/components/forms/color-input/color-input.component.ts","../../../projects/wdc/src/lib/components/forms/color-input/color-input.component.html","../../../projects/wdc/src/lib/components/forms/rich-text-editor/rich-text-editor.component.ts","../../../projects/wdc/src/lib/components/forms/rich-text-editor/rich-text-editor.component.html","../../../projects/wdc/src/lib/components/forms/markdown-editor/markdown-editor.component.ts","../../../projects/wdc/src/lib/components/forms/markdown-editor/markdown-editor.component.html","../../../projects/wdc/src/wdcoders-ui-ng.ts"],"sourcesContent":["import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-spinner',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './spinner.component.html',\r\n})\r\nexport class SpinnerComponent {\r\n size = input<'sm' | 'md' | 'lg'>('md');\r\n color = input<'current' | 'primary' | 'white'>('current');\r\n\r\n classes = computed(() => {\r\n let sizeClass = 'w-5 h-5';\r\n switch (this.size()) {\r\n case 'sm':\r\n sizeClass = 'w-4 h-4';\r\n break;\r\n case 'md':\r\n sizeClass = 'w-5 h-5';\r\n break;\r\n case 'lg':\r\n sizeClass = 'w-8 h-8';\r\n break;\r\n }\r\n\r\n let colorClass = 'text-current';\r\n switch (this.color()) {\r\n case 'primary':\r\n colorClass = 'text-blue-600';\r\n break;\r\n case 'white':\r\n colorClass = 'text-white';\r\n break;\r\n }\r\n\r\n return `${sizeClass} ${colorClass} animate-spin`;\r\n });\r\n}\r\n","<svg [class]=\"classes()\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path\r\n class=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\r\n ></path>\r\n</svg>\r\n","import { Component, input, computed, TemplateRef, output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SpinnerComponent } from '../spinner/spinner.component';\r\n\r\nexport type ButtonVariant =\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'danger'\r\n | 'warning'\r\n | 'info'\r\n | 'light'\r\n | 'dark'\r\n | 'link';\r\nexport type ButtonSize = 'sm' | 'md' | 'lg';\r\nexport type ButtonType = 'button' | 'submit' | 'reset';\r\n\r\n@Component({\r\n selector: 'wdc-button',\r\n imports: [CommonModule, SpinnerComponent],\r\n templateUrl: './button.component.html',\r\n})\r\nexport class ButtonComponent {\r\n variant = input<ButtonVariant>('primary');\r\n size = input<ButtonSize>('md');\r\n block = input<boolean>(false);\r\n outline = input<boolean>(false);\r\n loading = input<boolean>(false);\r\n rounded = input<boolean>(false);\r\n iconOnly = input<boolean>(false);\r\n disabled = input<boolean>(false);\r\n type = input<ButtonType>('button');\r\n icon = input<string | TemplateRef<any> | undefined>(undefined);\r\n\r\n clicked = output<MouseEvent>();\r\n\r\n classes = computed(() => {\r\n const baseClasses =\r\n 'inline-flex cursor-pointer items-center justify-center font-medium transition-all focus:outline-none disabled:opacity-50 disabled:pointer-events-none gap-2';\r\n\r\n let sizeClasses = '';\r\n if (this.variant() !== 'link') {\r\n switch (this.size()) {\r\n case 'sm':\r\n sizeClasses = this.iconOnly() ? 'h-8 w-8 p-0 text-xs' : 'h-8 px-3 text-xs';\r\n break;\r\n case 'md':\r\n sizeClasses = this.iconOnly() ? 'h-10 w-10 p-0 text-sm' : 'h-10 px-4 py-2 text-sm';\r\n break;\r\n case 'lg':\r\n sizeClasses = this.iconOnly() ? 'h-12 w-12 p-0 text-lg' : 'h-12 px-6 text-lg';\r\n break;\r\n }\r\n } else {\r\n switch (this.size()) {\r\n case 'sm':\r\n sizeClasses = 'text-xs';\r\n break;\r\n case 'md':\r\n sizeClasses = 'text-sm';\r\n break;\r\n case 'lg':\r\n sizeClasses = 'text-lg';\r\n break;\r\n }\r\n }\r\n\r\n const solidVariants: Record<ButtonVariant, string> = {\r\n primary: 'bg-primary text-white hover:bg-primary-hover',\r\n secondary: 'bg-secondary text-white hover:bg-secondary-hover',\r\n danger: 'bg-danger text-white hover:bg-danger-hover',\r\n success: 'bg-success text-white hover:bg-success-hover',\r\n warning: 'bg-warning text-white hover:bg-warning-hover',\r\n info: 'bg-info text-white hover:bg-info-hover',\r\n light: 'bg-light text-slate-800 hover:bg-light-hover',\r\n dark: 'bg-dark text-white hover:bg-dark-hover',\r\n link: 'text-blue-600 underline-offset-4 hover:underline px-0 h-auto min-w-0',\r\n };\r\n\r\n const outlineVariants: Record<ButtonVariant, string> = {\r\n primary: 'border border-primary text-primary hover:text-primary-light hover:bg-primary',\r\n secondary:\r\n 'border border-secondary text-secondary hover:text-secondary-light hover:bg-secondary',\r\n danger: 'border border-danger text-danger hover:text-danger-light hover:bg-danger',\r\n success: 'border border-success text-success hover:text-success-light hover:bg-success',\r\n warning: 'border border-warning text-warning hover:text-warning-light hover:bg-warning',\r\n info: 'border border-info text-info hover:text-info-light hover:bg-info',\r\n light: 'border border-slate-200 text-slate-700 hover:bg-light',\r\n dark: 'border border-slate-800 text-slate-800 hover:text-dark-light hover:bg-dark',\r\n link: 'text-primary underline-offset-4 hover:underline px-0 h-auto min-w-0',\r\n };\r\n\r\n // let variantClasses = '';\r\n // switch (this.variant()) {\r\n // case 'primary':\r\n // variantClasses = 'bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500';\r\n // break;\r\n // case 'secondary':\r\n // variantClasses = 'bg-slate-600 text-white hover:bg-slate-700 focus:ring-slate-500';\r\n // break;\r\n // case 'danger':\r\n // variantClasses = 'bg-red-600 text-white hover:bg-red-700 focus:ring-red-500';\r\n // break;\r\n // case 'success':\r\n // variantClasses = 'bg-green-600 text-white hover:bg-green-700 focus:ring-green-500';\r\n // break;\r\n // case 'warning':\r\n // variantClasses = 'bg-yellow-500 text-white hover:bg-yellow-600 focus:ring-yellow-500';\r\n // break;\r\n // case 'info':\r\n // variantClasses = 'bg-cyan-500 text-white hover:bg-cyan-600 focus:ring-cyan-500';\r\n // break;\r\n // case 'link':\r\n // variantClasses =\r\n // 'text-blue-600 underline-offset-4 hover:underline focus:ring-blue-500 px-0 h-auto min-w-0';\r\n // break;\r\n // }\r\n\r\n const variantClasses = this.outline()\r\n ? outlineVariants[this.variant()]\r\n : solidVariants[this.variant()];\r\n\r\n const roundedClass = this.rounded()\r\n ? 'rounded-full'\r\n : this.variant() === 'link'\r\n ? ''\r\n : 'rounded-lg';\r\n\r\n return `${baseClasses} ${variantClasses} ${sizeClasses} ${roundedClass}`;\r\n });\r\n\r\n isIconString = computed(() => {\r\n return typeof this.icon() === 'string';\r\n });\r\n\r\n iconTemplate = computed(() => {\r\n const icon = this.icon();\r\n return icon instanceof TemplateRef ? icon : null;\r\n });\r\n}\r\n","<!-- <button [class]=\"classes()\" [disabled]=\"disabled() || loading()\">\r\n @if (loading()) {\r\n <wdc-spinner\r\n [size]=\"size() === 'lg' ? 'md' : 'sm'\"\r\n [color]=\"variant() === 'outline' || variant() === 'ghost' ? 'primary' : 'white'\"\r\n ></wdc-spinner>\r\n }\r\n @if (!loading() && icon()) {\r\n @if (isIconString()) {\r\n <span [innerHTML]=\"icon()\"></span>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"iconTemplate()\"></ng-container>\r\n }\r\n }\r\n\r\n <ng-content></ng-content>\r\n</button> -->\r\n\r\n<button [class]=\"classes()\" [disabled]=\"disabled() || loading()\">\r\n @if (loading()) {\r\n <wdc-spinner\r\n [size]=\"size() === 'lg' ? 'md' : 'sm'\"\r\n [color]=\"outline() ? 'primary' : 'white'\"\r\n ></wdc-spinner>\r\n }\r\n @if (!loading() && icon()) {\r\n @if (isIconString()) {\r\n <span [innerHTML]=\"icon()\"></span>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"iconTemplate()\"></ng-container>\r\n }\r\n }\r\n\r\n <ng-content></ng-content>\r\n</button>\r\n","import { Component, input } from '@angular/core';\r\nimport { IconName } from './icons.type';\r\n\r\ntype IconSize = '10' | '12' | '14' | '16' | '18' | '20' | '22' | '24' | '40' | '48' | '56';\r\n\r\n@Component({\r\n selector: 'wdc-icons',\r\n imports: [],\r\n templateUrl: './icons.component.html',\r\n styleUrls: ['./icons.component.css'],\r\n})\r\nexport class IconsComponent {\r\n name = input.required<IconName>();\r\n customClass = input<string>('');\r\n size = input<IconSize>('16');\r\n ariaLabel = input<string | null>(null);\r\n\r\n get sizeClass() {\r\n return `icon-${this.size()}`;\r\n }\r\n}\r\n","<span class=\"flex\">\r\n <span [class]=\"`material-symbols-outlined ${customClass} ${sizeClass}`\" aria-hidden=\"true\">{{\r\n name()\r\n }}</span>\r\n</span>\r\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\r\n@Component({\r\n selector: 'wdc-card',\r\n imports: [],\r\n standalone: true,\r\n templateUrl: './card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CardComponent {\r\n title = input<string>('');\r\n subtitle = input<string>('');\r\n footer = input<boolean>(false);\r\n header = input<boolean>(false);\r\n noBodyPadding = input<boolean>(false);\r\n}\r\n","<!-- <div class=\"bg-white rounded-xl shadow-sm border border-gray-100 flex flex-col h-full\">\r\n @if (title()) {\r\n <div\r\n class=\"px-6 py-4 border-b border-gray-50 flex justify-between items-center rounded-t-xl bg-white shrink-0\"\r\n >\r\n <div>\r\n <h3 class=\"text-lg font-semibold text-gray-800\">{{ title() }}</h3>\r\n @if (subtitle()) {\r\n <p class=\"text-sm text-gray-500 mt-1\">{{ subtitle() }}</p>\r\n }\r\n </div>\r\n <ng-content select=\"[header-actions]\"></ng-content>\r\n </div>\r\n }\r\n <div class=\"p-6 flex-1 min-h-0\">\r\n <ng-content select=\"[card-body]\"></ng-content>\r\n </div>\r\n @if (footer()) {\r\n <div class=\"px-6 py-4 border-t border-gray-50\">\r\n <ng-content select=\"[footer]\"></ng-content>\r\n </div>\r\n }\r\n</div> -->\r\n\r\n<div class=\"bg-white rounded-xl shadow-sm flex flex-col h-full\">\r\n @if (header()) {\r\n <div\r\n class=\"px-6 py-4 flex justify-between items-center border-b border-gray-100 rounded-t-xl bg-white shrink-0\"\r\n >\r\n @if (title()) {\r\n <div class=\"leading-none\">\r\n <h3 class=\"text-lg font-bold text-gray-800\">{{ title() }}</h3>\r\n @if (subtitle()) {\r\n <p class=\"text-sm text-gray-500\">{{ subtitle() }}</p>\r\n }\r\n </div>\r\n }\r\n <div class=\"\">\r\n @if (!title()) {\r\n <ng-content select=\"[card-header]\"></ng-content>\r\n }\r\n <ng-content select=\"[card-actions]\"></ng-content>\r\n </div>\r\n </div>\r\n }\r\n <div [class]=\"noBodyPadding() ? 'flex-1' : 'p-6 flex-1'\">\r\n <ng-content select=\"[card-body]\"></ng-content>\r\n </div>\r\n @if (footer()) {\r\n <div class=\"px-6 py-4 border-t border-gray-100\">\r\n <ng-content select=\"[card-footer]\"></ng-content>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { IconName } from '../icons/icons.type';\nimport { IconsComponent } from '../icons/icons.component';\n\n@Component({\n selector: 'wdc-stat-card',\n imports: [IconsComponent],\n standalone: true,\n templateUrl: './stat-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block h-full',\n },\n})\nexport class StatCardComponent {\n label = input.required<string>();\n value = input.required<string | number>();\n trend = input<number>(0);\n // trend > 0 is up, < 0 is down\n trendLabel = input<string>('');\n iconName = input<IconName>('chart_data');\n}\n","<div\n class=\"bg-white p-6 rounded-xl shadow-sm border border-gray-100 flex items-start justify-between h-full\"\n>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex items-start justify-between\">\n <div>\n <p class=\"text-sm font-medium text-gray-500 mb-1\">{{ label() }}</p>\n <h4 class=\"text-2xl font-bold text-gray-900\">{{ value() }}</h4>\n </div>\n <div class=\"p-3 bg-indigo-50 rounded-lg text-indigo-600\">\n <wdc-icons [name]=\"iconName()\" size=\"22\"></wdc-icons>\n </div>\n </div>\n\n @if (trend() !== 0) {\n <div class=\"flex items-center mt-2 text-sm\">\n @if (trend() > 0) {\n <span\n class=\"text-emerald-600 bg-emerald-50 px-1.5 py-0.5 rounded flex items-center gap-1 font-medium\"\n >\n <svg class=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6\"\n ></path>\n </svg>\n {{ trend() }}%\n </span>\n } @else {\n <span\n class=\"text-rose-600 bg-rose-50 px-1.5 py-0.5 rounded flex items-center gap-1 font-medium\"\n >\n <svg class=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M13 17h8m0 0V9m0 8l-8-8-4 4-6-6\"\n ></path>\n </svg>\n {{ trend() }}%\n </span>\n }\n <span class=\"text-gray-400 ml-2\">{{ trendLabel() }}</span>\n </div>\n }\n </div>\n</div>\n","import { Component, Input, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-avatar',\r\n imports: [CommonModule],\r\n templateUrl: './avatar.component.html',\r\n})\r\nexport class AvatarComponent {\r\n @Input() src: string | undefined;\r\n @Input() alt: string = '';\r\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n @Input() shape: 'circle' | 'square' = 'circle';\r\n @Input() fallback: string = '';\r\n\r\n imageError = signal(false);\r\n\r\n get containerClasses(): string {\r\n let sizeClass = 'w-10 h-10 text-sm';\r\n switch (this.size) {\r\n case 'sm':\r\n sizeClass = 'w-8 h-8 text-xs';\r\n break;\r\n case 'md':\r\n sizeClass = 'w-10 h-10 text-sm';\r\n break;\r\n case 'lg':\r\n sizeClass = 'w-12 h-12 text-base';\r\n break;\r\n case 'xl':\r\n sizeClass = 'w-16 h-16 text-lg';\r\n break;\r\n }\r\n\r\n const shapeClass = this.shape === 'circle' ? 'rounded-full' : 'rounded-md';\r\n return `relative flex items-center justify-center overflow-hidden bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300 font-medium ${sizeClass} ${shapeClass}`;\r\n }\r\n\r\n handleError() {\r\n this.imageError.set(true);\r\n }\r\n}\r\n","<div [class]=\"containerClasses\">\r\n <img\r\n *ngIf=\"src && !imageError()\"\r\n [src]=\"src\"\r\n [alt]=\"alt\"\r\n class=\"h-full w-full object-cover\"\r\n (error)=\"handleError()\"\r\n />\r\n <span *ngIf=\"!src || imageError()\">{{ fallback }}</span>\r\n</div>\r\n","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n@Component({\r\n selector: 'wdc-badge',\r\n imports: [CommonModule],\r\n templateUrl: './badge.component.html',\r\n})\r\nexport class BadgeComponent {\r\n value = input<string | number | undefined>(undefined);\r\n variant = input<'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info'>('primary');\r\n size = input<'sm' | 'md' | 'lg'>('md');\r\n rounded = input<boolean>(false);\r\n\r\n classes = computed(() => {\r\n const base =\r\n 'inline-flex items-center justify-center font-medium transition-colors ring-1 ring-inset';\r\n\r\n let variantClasses = '';\r\n switch (this.variant()) {\r\n case 'primary':\r\n variantClasses =\r\n 'bg-blue-50 text-blue-700 ring-blue-700/10 dark:bg-blue-400/10 dark:text-blue-400 dark:ring-blue-400/30';\r\n break;\r\n case 'secondary':\r\n variantClasses =\r\n 'bg-slate-50 text-slate-600 ring-slate-500/10 dark:bg-slate-400/10 dark:text-slate-400 dark:ring-slate-400/20';\r\n break;\r\n case 'success':\r\n variantClasses =\r\n 'bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-500/10 dark:text-green-400 dark:ring-green-500/20';\r\n break;\r\n case 'danger':\r\n variantClasses =\r\n 'bg-red-50 text-red-700 ring-red-600/10 dark:bg-red-400/10 dark:text-red-400 dark:ring-red-400/20';\r\n break;\r\n case 'warning':\r\n variantClasses =\r\n 'bg-yellow-50 text-yellow-800 ring-yellow-600/20 dark:bg-yellow-400/10 dark:text-yellow-500 dark:ring-yellow-400/20';\r\n break;\r\n case 'info':\r\n variantClasses =\r\n 'bg-indigo-50 text-indigo-700 ring-indigo-700/10 dark:bg-indigo-400/10 dark:text-indigo-400 dark:ring-indigo-400/30';\r\n break;\r\n }\r\n\r\n let sizeClasses = '';\r\n switch (this.size()) {\r\n case 'sm':\r\n sizeClasses = 'text-xs px-2 py-1';\r\n break;\r\n case 'md':\r\n sizeClasses = 'text-sm px-2.5 py-0.5';\r\n break;\r\n case 'lg':\r\n sizeClasses = 'text-base px-3 py-1';\r\n break;\r\n }\r\n\r\n const roundedClass = this.rounded() ? 'rounded-full' : 'rounded-md';\r\n\r\n return `${base} ${variantClasses} ${sizeClasses} ${roundedClass}`;\r\n });\r\n}\r\n","<span [class]=\"classes()\">\r\n <ng-content></ng-content>\r\n @if (value()) {\r\n <span>{{ value() }}</span>\r\n }\r\n</span>\r\n","import { Component, input, model, computed, output, signal, effect } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IconsComponent } from '../icons/icons.component';\r\n\r\n@Component({\r\n selector: 'wdc-modal',\r\n standalone: true,\r\n imports: [CommonModule, IconsComponent],\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.css'],\r\n})\r\nexport class ModalComponent {\r\n title = input<string>('');\r\n size = input<'sm' | 'md' | 'lg' | 'xl' | 'full'>('md');\r\n isOpen = model<boolean>(false);\r\n closeOnBackdropClick = input<boolean>(true);\r\n\r\n onClose = output<void>();\r\n isRendered = signal(false);\r\n isClosing = signal(false);\r\n\r\n constructor() {\r\n // 3. Effect to watch Input changes\r\n effect(() => {\r\n if (this.isOpen()) {\r\n // OPENING LOGIC\r\n this.isClosing.set(false);\r\n this.isRendered.set(true); // Turant DOM mein lao\r\n } else {\r\n // CLOSING LOGIC\r\n // Pehle 'closing' flag set karo taaki exit animation play ho\r\n this.isClosing.set(true);\r\n\r\n // 200ms wait karo (CSS animation duration match honi chahiye)\r\n setTimeout(() => {\r\n this.isRendered.set(false); // Ab DOM se hatao\r\n }, 200);\r\n }\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.isOpen.set(false);\r\n this.onClose.emit();\r\n }\r\n\r\n onBackdropClick() {\r\n if (this.closeOnBackdropClick()) {\r\n this.closeModal();\r\n }\r\n }\r\n\r\n sizeClasses = computed(() => {\r\n switch (this.size()) {\r\n case 'sm':\r\n return 'sm:max-w-sm';\r\n case 'md':\r\n return 'sm:max-w-md';\r\n case 'lg':\r\n return 'sm:max-w-lg';\r\n case 'xl':\r\n return 'sm:max-w-xl';\r\n case 'full':\r\n return 'sm:max-w-full sm:m-4';\r\n default:\r\n return 'sm:max-w-md';\r\n }\r\n });\r\n}\r\n","@if (isRendered()) {\r\n <div class=\"relative z-50\" aria-labelledby=\"modal-title\" role=\"dialog\" aria-modal=\"true\">\r\n <!-- Backdrop -->\r\n <div\r\n class=\"fixed inset-0 bg-slate-900/40 backdrop-blur-sm transition-opacity\"\r\n [class]=\"isClosing() ? 'wdc-animate-exit' : 'wdc-animate-enter'\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n\r\n <!-- Panel -->\r\n <div class=\"fixed inset-0 z-10 overflow-y-auto w-screen overflow-x-hidden\">\r\n <div class=\"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0\">\r\n <div\r\n class=\"relative transform overflow-hidden rounded-lg bg-white dark:bg-slate-900 px-4 pb-4 pt-5 text-left shadow-xl sm:my-8 w-full sm:p-6\"\r\n [class]=\"(isClosing() ? 'wdc-zoom-exit' : 'wdc-zoom-enter') + ' ' + sizeClasses()\"\r\n >\r\n <!-- Header -->\r\n @if (title()) {\r\n <div class=\"mb-4 sm:flex sm:items-start justify-between\">\r\n <h3\r\n class=\"text-lg font-semibold leading-6 text-slate-900 dark:text-white\"\r\n id=\"modal-title\"\r\n >\r\n {{ title() }}\r\n </h3>\r\n <button\r\n type=\"button\"\r\n class=\"rounded-md cursor-pointer bg-white dark:bg-slate-900 text-slate-400 hover:text-slate-500 focus:outline-none\"\r\n (click)=\"closeModal()\"\r\n >\r\n <wdc-icons name=\"close\" size=\"20\"></wdc-icons>\r\n </button>\r\n </div>\r\n }\r\n\r\n <!-- Body -->\r\n <div class=\"mt-2\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-navbar',\r\n imports: [],\r\n templateUrl: './navbar.component.html',\r\n})\r\nexport class NavbarComponent {}\r\n","<p>navbar works!</p>\r\n","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-progress-bar',\r\n imports: [CommonModule],\r\n templateUrl: './progress-bar.component.html',\r\n})\r\nexport class ProgressBarComponent {\r\n value = input<number>(0);\r\n showValue = input<boolean>(false);\r\n variant = input<'primary' | 'success' | 'warning' | 'danger' | 'info'>('primary');\r\n\r\n colorClass = computed(() => {\r\n switch (this.variant()) {\r\n case 'primary':\r\n return 'bg-blue-600 dark:bg-blue-500';\r\n case 'success':\r\n return 'bg-green-600 dark:bg-green-500';\r\n case 'warning':\r\n return 'bg-yellow-500 dark:bg-yellow-400';\r\n case 'danger':\r\n return 'bg-red-600 dark:bg-red-500';\r\n case 'info':\r\n return 'bg-cyan-500 dark:bg-cyan-400';\r\n default:\r\n return 'bg-blue-600 dark:bg-blue-500';\r\n }\r\n });\r\n}\r\n","<div class=\"w-full bg-slate-200 dark:bg-slate-700 rounded-full h-2.5 overflow-hidden\">\r\n <div\r\n class=\"h-2.5 rounded-full transition-all duration-300 ease-out\"\r\n [class]=\"colorClass()\"\r\n [style.width.%]=\"value()\"\r\n ></div>\r\n</div>\r\n@if (showValue()) {\r\n <div class=\"text-xs text-slate-500 dark:text-slate-400 mt-1 text-right\">{{ value() }}%</div>\r\n}\r\n","import { Component, input, signal, TemplateRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-tab',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: ``,\r\n})\r\nexport class TabComponent {\r\n label = input<string>();\r\n disabled = input(false);\r\n active = input(false);\r\n headerTemplate = input<TemplateRef<any> | null>(null);\r\n contentTemplate = input<TemplateRef<any> | null>(null);\r\n}\r\n","import { Component, contentChildren, effect, output, input, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TabComponent } from './tab.component';\r\n\r\nexport type TabVariant = 'underline' | 'pills';\r\nexport type TabOrientation = 'horizontal' | 'vertical';\r\n\r\n@Component({\r\n selector: 'wdc-tabs',\r\n imports: [CommonModule],\r\n templateUrl: './tabs.component.html',\r\n})\r\nexport class TabsComponent {\r\n variant = input<TabVariant>('underline');\r\n orientation = input<TabOrientation>('horizontal');\r\n activeTab = signal<TabComponent | null>(null);\r\n tabs = contentChildren(TabComponent);\r\n\r\n constructor() {\r\n effect(() => {\r\n const allTabs = this.tabs();\r\n if (allTabs.length === 0) return;\r\n ``;\r\n let activeTab = allTabs.find((tab) => tab.active());\r\n this.activeTab.set(activeTab || allTabs[0]);\r\n });\r\n }\r\n\r\n selectTab(tab: TabComponent) {\r\n if (!tab.disabled()) this.activeTab.set(tab);\r\n }\r\n}\r\n","<div\r\n [class]=\"\r\n `w-full flex bg-white p-4 rounded-lg border border-gray-100 ${orientation() === 'vertical' ? 'flex-row gap-6' : 'flex-col'}`\r\n \"\r\n>\r\n <div\r\n [class]=\"\r\n `flex flex-shrink-0 border-gray-200 ${orientation() === 'vertical' ? 'border-r w-42 flex-col' : 'border-b'}`\r\n \"\r\n >\r\n <nav\r\n [class]=\"\r\n `flex ${orientation() === 'vertical' ? 'flex-col -mr-px flex-shrink-0' : '-mb-px space-x-8'}`\r\n \"\r\n >\r\n @for (item of tabs(); track $index; let i = $index) {\r\n <button\r\n (click)=\"selectTab(item)\"\r\n [class.border-indigo-500]=\"activeTab() === item\"\r\n [class.text-indigo-600]=\"activeTab() === item\"\r\n [class.border-transparent]=\"activeTab() !== item\"\r\n [class.text-gray-500]=\"activeTab() !== item\"\r\n [class.hover:text-gray-700]=\"activeTab() !== item\"\r\n [class.hover:border-gray-300]=\"activeTab() !== item\"\r\n [class]=\"\r\n `whitespace-nowrap flex cursor-pointer py-4 px-1 font-medium text-sm transition-all focus:outline-none ${\r\n orientation() === 'vertical' ? 'border-r-2' : 'border-b-2'\r\n }`\r\n \"\r\n >\r\n @if (item.headerTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"item.headerTemplate()\"></ng-container>\r\n } @else {\r\n {{ item.label() }}\r\n }\r\n </button>\r\n }\r\n </nav>\r\n </div>\r\n\r\n @if (activeTab(); as active) {\r\n <div [class]=\"`${orientation() === 'vertical' ? 'flex-1 h-full overflow-y-auto' : 'mt-4'}`\">\r\n <ng-container *ngTemplateOutlet=\"active.contentTemplate()\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { Toast, ToastPosition, ToastType } from './toast.type';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ToastService {\r\n toasts = signal<Toast[]>([]);\r\n\r\n private nextId = 0;\r\n private defaultPosition: ToastPosition = 'top-center';\r\n private toastTimeouts = new Map<number, any>();\r\n private readonly MAX_TOASTS = 5;\r\n\r\n show(\r\n message: string,\r\n type: ToastType = 'info',\r\n duration: number = 3000,\r\n position?: ToastPosition,\r\n ) {\r\n const id = this.nextId++;\r\n const finalPosition = position || this.defaultPosition;\r\n\r\n const toast: Toast = { id, message, type, duration, position: finalPosition };\r\n\r\n this.toasts.update((current) => {\r\n // Optional: Limit max toasts to prevent UI clutter\r\n if (current.length >= this.MAX_TOASTS) {\r\n this.remove(current[0].id);\r\n }\r\n return [...current, toast];\r\n });\r\n\r\n if (duration > 0) {\r\n const timer = setTimeout(() => this.remove(id), duration);\r\n this.toastTimeouts.set(id, timer);\r\n }\r\n }\r\n\r\n // Confirm your remove method looks like this:\r\n remove(id: number) {\r\n const currentToasts = this.toasts();\r\n const toastExists = currentToasts.find((t) => t.id === id);\r\n\r\n if (!toastExists || toastExists.closing) return;\r\n\r\n // 1. Set Closing Flag (Triggers .animate-out CSS)\r\n this.toasts.update((current) =>\r\n current.map((t) => (t.id === id ? { ...t, closing: true } : t)),\r\n );\r\n\r\n // 2. Wait 300ms (Matches CSS duration) then delete\r\n setTimeout(() => {\r\n this.toasts.update((current) => current.filter((t) => t.id !== id));\r\n }, 300);\r\n }\r\n // --- Helper Methods ---\r\n\r\n success(message: string, duration?: number, position?: ToastPosition) {\r\n this.show(message, 'success', duration, position);\r\n }\r\n\r\n error(message: string, duration?: number, position?: ToastPosition) {\r\n this.show(message, 'error', duration, position);\r\n }\r\n\r\n warning(message: string, duration?: number, position?: ToastPosition) {\r\n this.show(message, 'warning', duration, position);\r\n }\r\n\r\n info(message: string, duration?: number, position?: ToastPosition) {\r\n this.show(message, 'info', duration, position);\r\n }\r\n}\r\n","import { Component, computed, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToastService } from './toast.service';\r\nimport { IconsComponent } from '../icons/icons.component';\r\nimport { IconName } from '../icons/icons.type';\r\nimport { ToastPosition, ToastType } from './toast.type';\r\n\r\n@Component({\r\n selector: 'wdc-toast',\r\n standalone: true,\r\n imports: [CommonModule, IconsComponent],\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.css'],\r\n})\r\nexport class ToastComponent {\r\n toastService = inject(ToastService);\r\n\r\n // 1. Identify which positions currently have active toasts\r\n activePositions = computed(() => {\r\n const toasts = this.toastService.toasts();\r\n // Returns unique positions (e.g., ['top-right', 'bottom-center'])\r\n return [...new Set(toasts.map((t) => t.position))];\r\n });\r\n\r\n // 2. Helper to get toasts for a specific position loop\r\n getToastsByPosition(pos: ToastPosition) {\r\n return this.toastService.toasts().filter((t) => t.position === pos);\r\n }\r\n\r\n // 3. Get CSS for the Container (The fixed wrapper)\r\n getPositionClasses(pos: ToastPosition): string {\r\n const base = 'fixed z-[100] flex flex-col gap-2 pointer-events-none p-4 max-w-full';\r\n\r\n const positions: Record<ToastPosition, string> = {\r\n 'top-left': 'top-0 left-0 items-start',\r\n 'top-center': 'top-0 left-1/2 -translate-x-1/2 items-center',\r\n 'top-right': 'top-0 right-0 items-end',\r\n 'bottom-left': 'bottom-0 left-0 items-start',\r\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2 items-center',\r\n 'bottom-right': 'bottom-0 right-0 items-end',\r\n };\r\n\r\n return `${base} ${positions[pos]}`;\r\n }\r\n\r\n // 4. Get Animation based on position\r\n getAnimationClass(pos: ToastPosition, isClosing?: boolean): string {\r\n const duration = 'duration-300'; // Common duration\r\n\r\n // 1. EXIT ANIMATIONS (Jab closing: true ho)\r\n if (isClosing) {\r\n if (pos.includes('left')) return `animate-out fade-out slide-out-to-left ${duration}`;\r\n if (pos.includes('right')) return `animate-out fade-out slide-out-to-right ${duration}`;\r\n if (pos.includes('top')) return `animate-out fade-out slide-out-to-top ${duration}`;\r\n return `animate-out fade-out slide-out-to-bottom ${duration}`;\r\n }\r\n\r\n // 2. ENTER ANIMATIONS (Jab naya aaye)\r\n if (pos.includes('left')) return `animate-in slide-in-from-left ${duration}`;\r\n if (pos.includes('right')) return `animate-in slide-in-from-right ${duration}`;\r\n if (pos.includes('top')) return `animate-in slide-in-from-top ${duration}`;\r\n return `animate-in slide-in-from-bottom ${duration}`;\r\n }\r\n\r\n getIcon(type: ToastType): IconName {\r\n switch (type) {\r\n case 'success':\r\n return 'check_circle';\r\n case 'error':\r\n return 'error';\r\n case 'warning':\r\n return 'warning';\r\n case 'info':\r\n return 'info';\r\n }\r\n }\r\n\r\n // Helper for container colors\r\n getClasses(type: ToastType): string {\r\n const base =\r\n 'pointer-events-auto flex items-center gap-2 w-full max-w-xs px-4 py-3 rounded-lg shadow-lg border duration-300';\r\n let colorClass = '';\r\n switch (type) {\r\n case 'success':\r\n colorClass =\r\n 'bg-green-50 text-green-800 border-green-200 dark:bg-green-900/30 dark:text-green-300 dark:border-green-800';\r\n break;\r\n case 'error':\r\n colorClass =\r\n 'bg-red-50 text-red-800 border-red-200 dark:bg-red-900/30 dark:text-red-300 dark:border-red-800';\r\n break;\r\n case 'warning':\r\n colorClass =\r\n 'bg-yellow-50 text-yellow-800 border-yellow-200 dark:bg-yellow-900/30 dark:text-yellow-300 dark:border-yellow-800';\r\n break;\r\n case 'info':\r\n colorClass =\r\n 'bg-blue-50 text-blue-800 border-blue-200 dark:bg-blue-900/30 dark:text-blue-300 dark:border-blue-800';\r\n break;\r\n }\r\n return `${base} ${colorClass}`;\r\n }\r\n\r\n // Helper for Close button colors (Tailwind safe)\r\n getCloseButtonClass(type: ToastType): string {\r\n const base =\r\n 'ml-auto -mx-1.5 -my-1.5 rounded-lg cursor-pointer focus:outline-none p-1.5 hover:bg-black/5 dark:hover:bg-white/10 inline-flex items-center justify-center h-8 w-8 transition-colors';\r\n switch (type) {\r\n case 'success':\r\n return `${base} text-green-500`;\r\n case 'error':\r\n return `${base} text-red-500`;\r\n case 'warning':\r\n return `${base} text-yellow-500`;\r\n case 'info':\r\n return `${base} text-blue-500`;\r\n }\r\n }\r\n}\r\n","@for (pos of activePositions(); track pos) {\r\n <div [class]=\"getPositionClasses(pos)\">\r\n @for (toast of getToastsByPosition(pos); track toast.id) {\r\n <div\r\n [class]=\"getClasses(toast.type) + ' ' + getAnimationClass(pos, toast.closing)\"\r\n role=\"alert\"\r\n >\r\n <div class=\"inline-flex items-center justify-center flex-shrink-0 w-8 h-8\">\r\n <wdc-icons [name]=\"getIcon(toast.type)\" size=\"24\"></wdc-icons>\r\n </div>\r\n\r\n <div class=\"text-sm font-normal\">{{ toast.message }}</div>\r\n\r\n <button\r\n type=\"button\"\r\n (click)=\"toastService.remove(toast.id)\"\r\n [class]=\"getCloseButtonClass(toast.type)\"\r\n aria-label=\"Close\"\r\n >\r\n <wdc-icons name=\"close\"></wdc-icons>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-table',\r\n imports: [],\r\n templateUrl: './table.component.html',\r\n})\r\nexport class TableComponent {}\r\n","<p>table works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-chart',\r\n imports: [],\r\n templateUrl: './chart.component.html',\r\n})\r\nexport class ChartComponent {}\r\n","<p>chart works!</p>\r\n","import { Component, input, output, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'wdc-upload',\r\n imports: [CommonModule],\r\n templateUrl: './upload.component.html',\r\n})\r\nexport class UploadComponent {\r\n accept = input<string>('*/*');\r\n maxSize = input<number>(10000000); // 10MB default\r\n multiple = input<boolean>(false);\r\n\r\n onSelect = output<File[]>();\r\n onUpload = output<File[]>(); // If manual upload\r\n\r\n files = signal<File[]>([]);\r\n isDragging = signal(false);\r\n\r\n onDragOver(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging.set(true);\r\n }\r\n\r\n onDragLeave(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging.set(false);\r\n }\r\n\r\n onDrop(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging.set(false);\r\n\r\n if (event.dataTransfer?.files) {\r\n this.handleFiles(Array.from(event.dataTransfer.files));\r\n }\r\n }\r\n\r\n onFileSelect(event: any) {\r\n if (event.target.files) {\r\n this.handleFiles(Array.from(event.target.files));\r\n }\r\n }\r\n\r\n private handleFiles(newFiles: File[]) {\r\n const validFiles = newFiles.filter((file) => {\r\n // Check size\r\n if (file.size > this.maxSize()) {\r\n console.warn(`File ${file.name} exceeds max size`);\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n if (this.multiple()) {\r\n this.files.update((current) => [...current, ...validFiles]);\r\n } else {\r\n if (validFiles.length > 0) {\r\n this.files.set([validFiles[0]]);\r\n }\r\n }\r\n\r\n this.onSelect.emit(this.files());\r\n }\r\n\r\n removeFile(index: number, event: Event) {\r\n event.stopPropagation();\r\n this.files.update((files) => files.filter((_, i) => i !== index));\r\n this.onSelect.emit(this.files());\r\n }\r\n\r\n upload() {\r\n this.onUpload.emit(this.files());\r\n // Clear after upload? keeping for now.\r\n }\r\n\r\n formatBytes(bytes: number, decimals = 2) {\r\n if (!+bytes) return '0 Bytes';\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\r\n }\r\n}\r\n","<div class=\"w-full\">\r\n <!-- Drop Zone -->\r\n <div\r\n class=\"border-2 border-dashed rounded-xl p-8 text-center transition-colors cursor-pointer flex flex-col items-center justify-center gap-4 bg-slate-50 dark:bg-slate-900/50\"\r\n [class.border-indigo-500]=\"isDragging()\"\r\n [class.bg-indigo-50]=\"isDragging()\"\r\n [class.dark:bg-indigo-500/10]=\"isDragging()\"\r\n [class.border-slate-300]=\"!isDragging()\"\r\n [class.dark:border-slate-700]=\"!isDragging()\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"fileInput.click()\"\r\n >\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n [accept]=\"accept()\"\r\n [multiple]=\"multiple()\"\r\n class=\"hidden\"\r\n (change)=\"onFileSelect($event)\"\r\n />\r\n\r\n <div\r\n class=\"h-12 w-12 rounded-full bg-slate-100 dark:bg-slate-800 flex items-center justify-center mb-2\"\r\n >\r\n <svg\r\n class=\"w-6 h-6 text-slate-500 dark:text-slate-400\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path>\r\n <polyline points=\"17 8 12 3 7 8\"></polyline>\r\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"></line>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"space-y-1\">\r\n <p class=\"text-sm font-medium text-slate-900 dark:text-white\">\r\n Drag & drop files here, or\r\n <span class=\"text-indigo-600 dark:text-indigo-400 hover:text-indigo-500\">browse</span>\r\n </p>\r\n <p class=\"text-xs text-slate-500 dark:text-slate-400\">\r\n Supports: {{ accept() === '*/*' ? 'All files' : accept() }} (Max\r\n {{ formatBytes(maxSize()) }})\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <!-- File List -->\r\n @if (files().length > 0) {\r\n <div class=\"mt-4 space-y-2\">\r\n @for (file of files(); track file.name) {\r\n <div\r\n class=\"flex items-center justify-between p-3 bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-lg shadow-sm\"\r\n >\r\n <div class=\"flex items-center gap-3 overflow-hidden\">\r\n <div\r\n class=\"h-10 w-10 flex-shrink-0 bg-indigo-50 dark:bg-indigo-500/10 rounded-lg flex items-center justify-center text-indigo-600 dark:text-indigo-400 font-bold text-xs uppercase\"\r\n >\r\n {{ file.name.split('.').pop() || 'FILE' }}\r\n </div>\r\n <div class=\"min-w-0\">\r\n <p class=\"text-sm font-medium text-slate-900 dark:text-white truncate\">\r\n {{ file.name }}\r\n </p>\r\n <p class=\"text-xs text-slate-500 dark:text-slate-400\">{{ formatBytes(file.size) }}</p>\r\n </div>\r\n </div>\r\n\r\n <button\r\n (click)=\"removeFile($index, $event)\"\r\n type=\"button\"\r\n class=\"p-1.5 text-slate-400 hover:text-red-500 hover:bg-red-50 dark:hover:bg-red-500/10 rounded-lg transition-colors\"\r\n >\r\n <svg\r\n class=\"w-5 h-5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <path d=\"M18 6L6 18M6 6l12 12\"></path>\r\n </svg>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-wizard',\r\n imports: [],\r\n templateUrl: './wizard.component.html',\r\n})\r\nexport class WizardComponent {}\r\n","<p>wizard works!</p>\r\n","import { Component, input, signal, effect, output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nexport type DrawerPosition = 'left' | 'right'; // Abhi ke liye Left/Right focus karte hain\r\n\r\n@Component({\r\n selector: 'wdc-drawer',\r\n imports: [CommonModule],\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.css'],\r\n standalone: true,\r\n})\r\nexport class DrawerComponent {\r\n isOpen = input.required<boolean>();\r\n position = input<DrawerPosition>('left');\r\n footer = input<boolean>(false);\r\n closeOnBackdropClick = input<boolean>(true);\r\n close = output<void>();\r\n width = input<string>('w-80 max-w-[80vw]');\r\n\r\n isRendered = signal(false);\r\n isClosing = signal(false);\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.isOpen()) {\r\n this.isClosing.set(false);\r\n this.isRendered.set(true);\r\n } else {\r\n this.isClosing.set(true);\r\n setTimeout(() => this.isRendered.set(false), 300);\r\n }\r\n });\r\n }\r\n\r\n // 1. Parent Container ka Alignment (Left vs Right)\r\n getFlexDirection() {\r\n return this.position() === 'right' ? 'justify-end' : 'justify-start';\r\n }\r\n\r\n // 2. Sidebar ki Width\r\n getWidthClass() {\r\n return 'w-80 max-w-[80vw]'; // Mobile responsive width\r\n }\r\n\r\n // 3. Animation Class (Sirf Transform wali classes)\r\n getAnimationClass(): string {\r\n const pos = this.position();\r\n const closing = this.isClosing();\r\n\r\n if (pos === 'left') {\r\n return closing ? 'wdc-slide-out-left' : 'wdc-slide-in-left';\r\n }\r\n\r\n if (pos === 'right') {\r\n return closing ? 'wdc-slide-out-right' : 'wdc-slide-in-right';\r\n }\r\n return '';\r\n }\r\n}\r\n","@if (isRendered()) {\r\n <div class=\"fixed inset-0 z-50 flex pointer-events-none\" [ngClass]=\"getFlexDirection()\">\r\n <div\r\n class=\"fixed inset-0 bg-black/30 backdrop-blur-sm transition-opacity pointer-events-auto\"\r\n [class]=\"isClosing() ? 'wdc-animate-exit' : 'wdc-animate-enter'\"\r\n (click)=\"close.emit()\"\r\n ></div>\r\n\r\n <div\r\n class=\"relative pointer-events-auto bg-white dark:bg-slate-900 shadow-2xl flex flex-col h-full\"\r\n [class]=\"getAnimationClass() + ' ' + width()\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <div>\r\n <ng-content select=\"[drawer-header]\"></ng-content>\r\n </div>\r\n <div>\r\n <ng-content select=\"[drawer-body]\"></ng-content>\r\n </div>\r\n @if (footer()) {\r\n <div>\r\n <ng-content select=\"[drawer-footer]\"></ng-content>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-carousel',\r\n imports: [],\r\n templateUrl: './carousel.component.html',\r\n})\r\nexport class CarouselComponent {}\r\n","<p>carousel works!</p>\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\nexport interface Confirmation {\r\n message?: string;\r\n header?: string;\r\n icon?: string;\r\n acceptLabel?: string;\r\n rejectLabel?: string;\r\n accept?: () => void;\r\n reject?: () => void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmService {\r\n private _state = signal<Confirmation | null>(null);\r\n\r\n state = this._state.asReadonly();\r\n\r\n confirm(confirmation: Confirmation) {\r\n this._state.set(confirmation);\r\n }\r\n\r\n close() {\r\n this._state.set(null);\r\n }\r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConfirmService } from './confirm.service';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { ModalComponent } from '../modal/modal.component';\r\n\r\n@Component({\r\n selector: 'wdc-confirm-dialog',\r\n imports: [CommonModule, ButtonComponent, ModalComponent],\r\n templateUrl: './confirm-dialog.component.html',\r\n})\r\nexport class ConfirmDialogComponent {\r\n private confirmService = inject(ConfirmService);\r\n state = this.confirmService.state;\r\n\r\n onClose() {\r\n this.confirmService.close();\r\n }\r\n\r\n onAccept() {\r\n this.state()?.accept?.();\r\n this.confirmService.close();\r\n }\r\n\r\n onReject() {\r\n this.state()?.reject?.();\r\n this.confirmService.close();\r\n }\r\n}\r\n","<wdc-modal\r\n [isOpen]=\"!!state()\"\r\n (isOpenChange)=\"!$event && onClose()\"\r\n [title]=\"state()?.header || 'Confirmation'\"\r\n size=\"sm\"\r\n>\r\n <div class=\"flex items-start gap-4\">\r\n @if (state()?.icon) {\r\n <div class=\"flex-shrink-0 text-amber-500\">\r\n <i [class]=\"state()?.icon\" class=\"text-2xl\"></i>\r\n </div>\r\n }\r\n <div class=\"text-slate-600 dark:text-slate-400\">\r\n {{ state()?.message }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-6 flex justify-end gap-3\">\r\n <wdc-button variant=\"light\" (click)=\"onReject()\">\r\n {{ state()?.rejectLabel || 'Cancel' }}\r\n </wdc-button>\r\n <wdc-button (click)=\"onAccept()\">\r\n {{ state()?.acceptLabel || 'Confirm' }}\r\n </wdc-button>\r\n </div>\r\n</wdc-modal>\r\n","import { Component, input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SpinnerComponent } from '../spinner/spinner.component';\r\n\r\n@Component({\r\n selector: 'wdc-page-loader',\r\n imports: [CommonModule, SpinnerComponent],\r\n templateUrl: './page-loader.component.html',\r\n})\r\nexport class PageLoaderComponent {\r\n message = input<string>('');\r\n fullScreen = input<boolean>(true);\r\n}\r\n","<div\r\n class=\"fixed inset-0 z-50 flex flex-col items-center justify-center bg-white/80 dark:bg-slate-900/80 backdrop-blur-md transition-all duration-300\"\r\n [class.absolute]=\"!fullScreen()\"\r\n [class.fixed]=\"fullScreen()\"\r\n>\r\n <wdc-spinner size=\"lg\" color=\"primary\"></wdc-spinner>\r\n @if (message()) {\r\n <p class=\"mt-4 text-sm font-medium text-slate-600 dark:text-slate-400 animate-pulse\">\r\n {{ message() }}\r\n </p>\r\n }\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wdc-accordion',\r\n imports: [],\r\n templateUrl: './accordion.component.html',\r\n})\r\nexport class AccordionComponent {}\r\n","<div class=\"flex flex-col space-y-4\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { Component, effect, input, OnInit, signal, booleanAttribute } from '@angular/core';\r\nimport { IconsComponent } from '../icons/icons.component';\r\n\r\n@Component({\r\n selector: 'wdc-accordion-item',\r\n standalone: true,\r\n imports: [IconsComponent],\r\n templateUrl: './accordion-item.component.html',\r\n})\r\nexport class AccordionItemComponent implements OnInit {\r\n open = input(false);\r\n active = signal(false);\r\n noPaddingBody = input(false);\r\n customActions = input(false);\r\n\r\n ngOnInit(): void {\r\n this.active.set(this.open());\r\n }\r\n\r\n toggleAccordion() {\r\n this.active.set(!this.active());\r\n }\r\n}\r\n","<div class=\"flex flex-col bg-white rounded-xl shadow-sm overflow-hidden\">\r\n <button\r\n class=\"flex cursor-pointer items-center justify-between w-full px-4 py-4 border-b border-gray-100 font-medium hover:bg-gray-100\"\r\n (click)=\"toggleAccordion()\"\r\n >\r\n <div>\r\n <ng-content select=\"[accordion-header]\"></ng-content>\r\n </div>\r\n @if (customActions()) {\r\n <ng-content select=\"[accordion-actions]\"></ng-content>\r\n } @else {\r\n <div class=\"transition-transform duration-200\" [class]=\"{ 'rotate-180': active() }\">\r\n <wdc-icons name=\"keyboard_arrow_down\" size=\"24\"></wdc-icons>\r\n </div>\r\n }\r\n </button>\r\n @if (active()) {\r\n <div [class]=\"noPaddingBody() ? '' : 'p-4'\">\r\n <ng-content select=\"[accordion-body]\"></ng-content>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, input, signal, effect, output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nexport type SidebarPosition = 'left' | 'right'; // Abhi ke liye Left/Right focus karte hain\r\n\r\n@Component({\r\n selector: 'wdc-sidebar',\r\n standalone: true,\r\n imports: [CommonModule],\r\n styleUrls: ['./sidebar.component.css'],\r\n templateUrl: './sidebar.component.html',\r\n})\r\nexport class SidebarComponent {\r\n isOpen = input.required<boolean>();\r\n position = input<SidebarPosition>('left');\r\n footer = input<boolean>(false);\r\n closeOnBackdropClick = input<boolean>(true);\r\n close = output<void>();\r\n\r\n isRendered = signal(false);\r\n isClosing = signal(false);\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.isOpen()) {\r\n this.isClosing.set(false);\r\n this.isRendered.set(true);\r\n } else {\r\n this.isClosing.set(true);\r\n setTimeout(() => this.isRendered.set(false), 300);\r\n }\r\n });\r\n }\r\n\r\n // 1. Parent Container ka Alignment (Left vs Right)\r\n getFlexDirection() {\r\n return this.position() === 'right' ? 'justify-end' : 'justify-start';\r\n }\r\n\r\n // 2. Sidebar ki Width\r\n getWidthClass() {\r\n return 'w-80 max-w-[80vw]'; // Mobile responsive width\r\n }\r\n\r\n // 3. Animation Class (Sirf Transform wali classes)\r\n getAnimationClass(): string {\r\n const pos = this.position();\r\n const closing = this.isClosing();\r\n\r\n if (pos === 'left') {\r\n return closing ? 'wdc-slide-out-left' : 'wdc-slide-in-left';\r\n }\r\n\r\n if (pos === 'right') {\r\n return closing ? 'wdc-slide-out-right' : 'wdc-slide-in-right';\r\n }\r\n return '';\r\n }\r\n}\r\n","@if (isRendered()) {\r\n <div class=\"fixed inset-0 z-50 flex pointer-events-none\" [ngClass]=\"getFlexDirection()\">\r\n <div\r\n class=\"fixed inset-0 bg-black/30 backdrop-blur-sm transition-opacity pointer-events-auto\"\r\n [class]=\"isClosing() ? 'wdc-animate-exit' : 'wdc-animate-enter'\"\r\n (click)=\"close.emit()\"\r\n ></div>\r\n\r\n <div\r\n class=\"relative pointer-events-auto bg-white dark:bg-slate-900 shadow-2xl flex flex-col h-full\"\r\n [class]=\"getAnimationClass() + ' ' + getWidthClass()\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <div>\r\n <ng-content select=\"[sidebar-header]\"></ng-content>\r\n </div>\r\n <div>\r\n <ng-content select=\"[sidebar-body]\"></ng-content>\r\n </div>\r\n @if (footer()) {\r\n <div>\r\n <ng-content select=\"[sidebar-footer]\"></ng-content>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n","import {\r\n Component,\r\n input,\r\n signal,\r\n forwardRef,\r\n ChangeDetectionStrategy,\r\n Input,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n} from '@angular/forms';\r\n\r\ntype TextInputType = 'text' | 'number' | 'email' | 'password';\r\n\r\n@Component({\r\n selector: 'wdc-text-input',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\r\n templateUrl: './text-input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextInputComponent implements ControlValueAccessor {\r\n label = input<string>('');\r\n type = input<TextInputType>('text');\r\n placeholder = input<string>('');\r\n error = input<string | null>(null);\r\n\r\n value = signal<string>('');\r\n isDisabled = signal<boolean>(false);\r\n\r\n @Input()\r\n set disabled(val: boolean) {\r\n this.isDisabled.set(val);\r\n }\r\n\r\n onChange = (value: string) => {};\r\n onTouched = () => {};\r\n\r\n onInput(event: Event) {\r\n const val = (event.target as HTMLInputElement).value;\r\n this.value.set(val);\r\n this.onChange(val);\r\n }\r\n\r\n onBlur() {\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.value.set(value || '');\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"w-full\">\r\n @if (label()) {\r\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{ label() }}</label>\r\n }\r\n <input\r\n [type]=\"type()\"\r\n [value]=\"value()\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"isDisabled()\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur()\"\r\n [class.border-rose-300]=\"error()\"\r\n [class.focus:ring-rose-500]=\"error()\"\r\n [class.focus:border-rose-500]=\"error()\"\r\n [class.border-gray-200]=\"!error()\"\r\n [class.focus:ring-indigo-500]=\"!error()\"\r\n [class.focus:border-indigo-500]=\"!error()\"\r\n class=\"w-full px-3 py-2 bg-white border-2 rounded-lg focus:ring-0 outline-none transition-all disabled:bg-gray-100 disabled:text-gray-500\"\r\n />\r\n @if (error()) {\r\n <p class=\"mt-1 text-sm text-rose-600\">{{ error() }}</p>\r\n }\r\n</div>\r\n","import {\r\n Component,\r\n input,\r\n signal,\r\n forwardRef,\r\n ChangeDetectionStrategy,\r\n computed,\r\n ElementRef,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'wdc-select-input',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './select-input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectInputComponent implements ControlValueAccessor {\r\n label = input<string>('');\r\n error = input<string | null>(null);\r\n options = input<{ label: string; value: any }[]>([]);\r\n multiple = input<boolean>(false);\r\n searchable = input<boolean>(false);\r\n placeholder = input<string>('Select an option');\r\n\r\n // State\r\n value = signal<any>(null); // Single value or Array\r\n disabled = signal<boolean>(false);\r\n isOpen = signal<boolean>(false);\r\n searchTerm = signal<string>('');\r\n\r\n // Computed\r\n filteredOptions = computed(() => {\r\n const term = this.searchTerm().toLowerCase();\r\n const opts = this.options();\r\n if (!term) return opts;\r\n return opts.filter((o) => o.label.toLowerCase().includes(term));\r\n });\r\n\r\n displayValue = computed(() => {\r\n const val = this.value();\r\n const opts = this.options();\r\n\r\n if (this.multiple()) {\r\n if (!Array.isArray(val) || val.length === 0) return '';\r\n return val.map((v) => opts.find((o) => o.value == v)?.label || v).join(', ');\r\n } else {\r\n return opts.find((o) => o.value == val)?.label || '';\r\n }\r\n });\r\n\r\n selectedLabels = computed(() => {\r\n if (!this.multiple() || !Array.isArray(this.value())) return [];\r\n const opts = this.options();\r\n return this.value().map((v: any) => ({\r\n value: v,\r\n label: opts.find((o) => o.value == v)?.label || v,\r\n }));\r\n });\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n toggleDropdown() {\r\n if (this.disabled()) return;\r\n this.isOpen.update((v) => !v);\r\n if (this.isOpen()) {\r\n this.searchTerm.set(''); // Reset search on open\r\n } else {\r\n this.onTouched();\r\n }\r\n }\r\n\r\n closeDropdown() {\r\n this.isOpen.set(false);\r\n this.onTouched();\r\n }\r\n\r\n selectOption(optValue: any) {\r\n if (this.multiple()) {\r\n const current = Array.isArray(this.value()) ? [...this.value()] : [];\r\n const index = current.indexOf(optValue);\r\n\r\n if (index > -1) {\r\n current.splice(index, 1);\r\n } else {\r\n current.push(optValue);\r\n }\r\n\r\n this.value.set(current);\r\n this.onChange(current);\r\n } else {\r\n this.value.set(optValue);\r\n this.onChange(optValue);\r\n this.closeDropdown();\r\n }\r\n }\r\n\r\n isSelected(optValue: any): boolean {\r\n if (this.multiple()) {\r\n return Array.isArray(this.value()) && this.value().includes(optValue);\r\n }\r\n return this.value() == optValue; // Loose equality for number/string mix\r\n }\r\n\r\n removeValue(optValue: any, event: Event) {\r\n event.stopPropagation();\r\n if (this.disabled()) return;\r\n const current = [...this.value()];\r\n const index = current.indexOf(optValue);\r\n if (index > -1) {\r\n current.splice(index, 1);\r\n this.value.set(current);\r\n this.onChange(current);\r\n }\r\n }\r\n\r\n // CVA Implementation\r\n writeValue(value: any): void {\r\n if (this.multiple() && !Array.isArray(value)) {\r\n this.value.set(value ? [value] : []);\r\n } else {\r\n this.value.set(value);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"w-full relative\">\r\n @if (label()) {\r\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{ label() }}</label>\r\n }\r\n\r\n <!-- Trigger -->\r\n <div\r\n (click)=\"toggleDropdown()\"\r\n [class.border-rose-300]=\"error()\"\r\n [class.focus-within:border-rose-500]=\"error()\"\r\n [class.border-gray-200]=\"!error()\"\r\n [class.focus-within:border-indigo-500]=\"!error()\"\r\n class=\"relative w-full min-h-[42px] px-3 py-2 border-2 rounded-lg bg-white cursor-pointer transition-all flex items-center justify-between gap-2 focus-within:ring-0\"\r\n [class.opacity-60]=\"disabled()\"\r\n [class.cursor-not-allowed]=\"disabled()\"\r\n [class.border-indigo-500]=\"isOpen() && !error()\"\r\n >\r\n <div class=\"flex-1 flex flex-wrap gap-1.5 items-center overflow-hidden\">\r\n @if (multiple() && selectedLabels().length > 0) {\r\n @for (item of selectedLabels(); track item.value) {\r\n <span\r\n class=\"inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-indigo-50 text-indigo-700 border border-indigo-100\"\r\n >\r\n {{ item.label }}\r\n <button\r\n (click)=\"removeValue(item.value, $event)\"\r\n type=\"button\"\r\n class=\"ml-1 text-indigo-400 hover:text-indigo-900 focus:outline-none\"\r\n >\r\n <svg class=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\"\r\n ></path>\r\n </svg>\r\n </button>\r\n </span>\r\n }\r\n } @else if (!multiple() && displayValue()) {\r\n <span class=\"text-gray-900 text-sm truncate\">{{ displayValue() }}</span>\r\n } @else {\r\n <span class=\"text-gray-400 text-sm\">{{ placeholder() }}</span>\r\n }\r\n </div>\r\n\r\n <!-- Arrow -->\r\n <svg\r\n [class.rotate-180]=\"isOpen()\"\r\n class=\"w-4 h-4 text-gray-500 transition-transform duration-200 shrink-0\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M19 9l-7 7-7-7\"\r\n ></path>\r\n </svg>\r\n </div>\r\n\r\n <!-- Error Message -->\r\n @if (error()) {\r\n <p class=\"mt-1 text-sm text-rose-600\">{{ error() }}</p>\r\n }\r\n\r\n <!-- Dropdown -->\r\n @if (isOpen()) {\r\n <!-- Backdrop for click outside -->\r\n <div\r\n (click)=\"closeDropdown()\"\r\n class=\"fixed inset-0 z-10 cursor-default\"\r\n style=\"background: transparent\"\r\n ></div>\r\n\r\n <div\r\n class=\"absolute z-20 mt-1 w-full bg-white rounded-xl border-2 border-gray-100 shadow-xl py-1 overflow-hidden animate-in fade-in zoom-in-95 duration-100 origin-top\"\r\n >\r\n <!-- Search Input -->\r\n @if (searchable() || options().length > 10) {\r\n <div class=\"px-2 pb-2 pt-2 border-b border-gray-100\">\r\n <input\r\n type=\"text\"\r\n [ngModel]=\"searchTerm()\"\r\n (ngModelChange)=\"searchTerm.set($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n placeholder=\"Search options...\"\r\n class=\"w-full px-3 py-1.5 text-sm border-2 border-gray-200 rounded-md focus:outline-none focus:border-indigo-500 transition-colors\"\r\n autoFocus\r\n />\r\n </div>\r\n }\r\n\r\n <!-- Options List -->\r\n <div class=\"max-h-60 overflow-y-auto\">\r\n @for (opt of filteredOptions(); track opt.value) {\r\n <div\r\n (click)=\"selectOption(opt.value)\"\r\n class=\"px-4 py-2 text-sm text-gray-700 hover:bg-indigo-50 hover:text-indigo-700 cursor-pointer flex items-center justify-between group transition-colors\"\r\n [class.bg-indigo-50]=\"isSelected(opt.value)\"\r\n [class.text-indigo-700]=\"isSelected(opt.value)\"\r\n >\r\n <span>{{ opt.label }}</span>\r\n\r\n @if (isSelected(opt.value)) {\r\n <svg\r\n class=\"w-4 h-4 text-indigo-600\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M5 13l4 4L19 7\"\r\n ></path>\r\n </svg>\r\n }\r\n </div>\r\n } @empty {\r\n <div class=\"px-4 py-3 text-sm text-gray-400 text-center\">No options found.</div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, input, signal, forwardRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'wdc-checkbox-input',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './checkbox-input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CheckboxInputComponent implements ControlValueAccessor {\r\n label = input<string>('');\r\n indeterminate = input<boolean>(false);\r\n\r\n value = signal<boolean>(false);\r\n disabled = signal<boolean>(false);\r\n\r\n onChange = (value: boolean) => {};\r\n onTouched = () => {};\r\n\r\n onInput(event: Event) {\r\n const val = (event.target as HTMLInputElement).checked;\r\n this.value.set(val);\r\n this.onChange(val);\r\n }\r\n\r\n toggle() {\r\n if (this.disabled()) return;\r\n const newVal = !this.value();\r\n this.value.set(newVal);\r\n this.onChange(newVal);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: boolean): void {\r\n this.value.set(!!value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"flex items-center group\">\r\n <!-- Hidden native input for form accessibility -->\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"value()\"\r\n [disabled]=\"disabled()\"\r\n (change)=\"onInput($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"sr-only\"\r\n />\r\n\r\n <!-- Custom Checkbox UI -->\r\n <div\r\n (click)=\"toggle()\"\r\n [class.cursor-not-allowed]=\"disabled()\"\r\n [class.cursor-pointer]=\"!disabled()\"\r\n class=\"w-5 h-5 rounded border flex items-center justify-center transition-all duration-200\"\r\n [class.bg-indigo-600]=\"(value() || indeterminate()) && !disabled()\"\r\n [class.border-indigo-600]=\"(value() || indeterminate()) && !disabled()\"\r\n [class.bg-gray-100]=\"disabled()\"\r\n [class.border-gray-200]=\"disabled()\"\r\n [class.bg-white]=\"!value() && !indeterminate() && !disabled()\"\r\n [class.border-gray-300]=\"!value() && !indeterminate() && !disabled()\"\r\n [class.group-hover:border-indigo-400]=\"!value() && !indeterminate() && !disabled()\"\r\n >\r\n @if (indeterminate()) {\r\n <!-- Indeterminate Dash -->\r\n <svg class=\"w-3.5 h-3.5 text-white\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"3\" d=\"M20 12H4\"></path>\r\n </svg>\r\n } @else if (value()) {\r\n <!-- Checkmark -->\r\n <svg class=\"w-3.5 h-3.5 text-white\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"3\"\r\n d=\"M5 13l4 4L19 7\"\r\n ></path>\r\n </svg>\r\n }\r\n </div>\r\n\r\n @if (label()) {\r\n <label\r\n (click)=\"toggle()\"\r\n class=\"ml-3 block text-sm text-gray-700 select-none transition-colors\"\r\n [class.cursor-not-allowed]=\"disabled()\"\r\n [class.cursor-pointer]=\"!disabled()\"\r\n [class.opacity-50]=\"disabled()\"\r\n [class.text-gray-900]=\"value()\"\r\n >\r\n {{ label() }}\r\n </label>\r\n }\r\n</div>\r\n","import { Component, input, signal, forwardRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'wdc-radio-input',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './radio-input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RadioInputComponent implements ControlValueAccessor {\r\n options = input.required<{ label: string; value: any }[]>();\r\n name = input<string>('radio-group-' + Math.random());\r\n\r\n value = signal<any>(null);\r\n disabled = signal<boolean>(false);\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n select(val: any) {\r\n if (this.disabled()) return;\r\n this.value.set(val);\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value.set(value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-3\">\r\n @for (option of options(); track option.value) {\r\n <div class=\"flex items-center group\">\r\n <!-- Hidden native input -->\r\n <input\r\n type=\"radio\"\r\n [name]=\"name()\"\r\n [checked]=\"value() === option.value\"\r\n [disabled]=\"disabled()\"\r\n (change)=\"select(option.value)\"\r\n class=\"sr-only\"\r\n />\r\n\r\n <!-- Custom Radio UI -->\r\n <div\r\n (click)=\"!disabled() && select(option.value)\"\r\n [class.cursor-not-allowed]=\"disabled()\"\r\n [class.cursor-pointer]=\"!disabled()\"\r\n class=\"w-5 h-5 rounded-full border flex items-center justify-center transition-all duration-200 relative\"\r\n [class.border-indigo-600]=\"value() === option.value && !disabled()\"\r\n [class.border-gray-300]=\"value() !== option.value && !disabled()\"\r\n [class.border-gray-200]=\"disabled()\"\r\n [class.bg-white]=\"!disabled()\"\r\n [class.bg-gray-100]=\"disabled()\"\r\n [class.group-hover:border-indigo-400]=\"value() !== option.value && !disabled()\"\r\n >\r\n <!-- Inner Dot -->\r\n <div\r\n class=\"w-2.5 h-2.5 rounded-full bg-indigo-600 transition-transform duration-200 transform scale-0\"\r\n [class.scale-100]=\"value() === option.value\"\r\n [class.bg-gray-400]=\"disabled()\"\r\n ></div>\r\n </div>\r\n\r\n <label\r\n (click)=\"!disabled() && select(option.value)\"\r\n class=\"ml-3 block text-sm text-gray-700 cursor-pointer select-none transition-colors\"\r\n [class.opacity-50]=\"disabled()\"\r\n [class.text-indigo-900]=\"value() === option.value && !disabled()\"\r\n [class.font-medium]=\"value() === option.value\"\r\n >\r\n {{ option.label }}\r\n </label>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, input, signal, forwardRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'wdc-switch-input',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './switch-input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SwitchInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SwitchInputComponent implements ControlValueAccessor {\r\n label = input<string>('');\r\n description = input<string>('');\r\n\r\n value = signal<boolean>(false);\r\n disabled = signal<boolean>(false);\r\n\r\n onChange = (value: boolean) => {};\r\n onTouched = () => {};\r\n\r\n toggle() {\r\n if (this.disabled()) return;\r\n const newVal = !this.value();\r\n this.value.set(newVal);\r\n this.onChange(newVal);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: boolean): void {\r\n this.value.set(!!value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"flex items-center justify-between\">\r\n <div>\r\n @if (label()) {\r\n <h4 class=\"text-sm font-medium text-gray-900\">{{ label() }}</h4>\r\n }\r\n @if (description()) {\r\n <p class=\"text-sm text-gray-500\">{{ description() }}</p>\r\n }\r\n </div>\r\n <button\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n [disabled]=\"disabled()\"\r\n [class.bg-indigo-600]=\"value()\"\r\n [class.bg-gray-200]=\"!value()\"\r\n [class.opacity-50]=\"disabled()\"\r\n class=\"relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none\"\r\n >\r\n <span\r\n [class.translate-x-5]=\"value()\"\r\n [class.translate-x-0]=\"!value()\"\r\n class=\"pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out\"\r\n >\r\n </span>\r\n </button>\r\n</div>\r\n","import { Component, input, signal, forwardRef, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'wdc-textarea-input',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './textarea-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaInputComponent),\n multi: true,\n },\n ],\n})\nexport class TextareaInputComponent implements ControlValueAccessor {\n label = input<string>('');\n placeholder = input<string>('');\n rows = input<number>(3);\n error = input<string | null>(null);\n hint = input<string>('');\n\n value = signal<string>('');\n disabled = signal<boolean>(false);\n\n onChange = (value: string) => {};\n onTouched = () => {};\n\n onInput(event: Event) {\n const val = (event.target as HTMLTextAreaElement).value;\n this.value.set(val);\n this.onChange(val);\n }\n\n onBlur() {\n this.onTouched();\n }\n\n writeValue(value: string): void {\n this.value.set(value || '');\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<div class=\"w-full\">\n @if (label()) {\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{ label() }}</label>\n }\n <textarea\n [rows]=\"rows()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n [class.border-rose-300]=\"error()\"\n [class.focus:ring-rose-500]=\"error()\"\n [class.focus:border-rose-500]=\"error()\"\n [class.border-gray-200]=\"!error()\"\n [class.focus:ring-indigo-500]=\"!error()\"\n [class.focus:border-indigo-500]=\"!error()\"\n class=\"w-full px-3 py-2 bg-white border-2 rounded-lg focus:ring-0 outline-none transition-all disabled:bg-gray-100 disabled:text-gray-500\"\n ></textarea>\n @if (error()) {\n <p class=\"mt-1 text-sm text-rose-600\">{{ error() }}</p>\n }\n @if (hint() && !error()) {\n <p class=\"mt-1 text-xs text-gray-500\">{{ hint() }}</p>\n }\n</div>\n","import { Component, input, signal, forwardRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'wdc-file-input',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './file-input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FileInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class FileInputComponent implements ControlValueAccessor {\r\n label = input<string>('');\r\n accept = input<string>('*/*');\r\n\r\n fileName = signal<string | null>(null);\r\n disabled = signal<boolean>(false);\r\n isDragging = signal(false);\r\n\r\n onChange = (value: File | null) => {};\r\n onTouched = () => {};\r\n\r\n onFileSelected(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n if (input.files && input.files.length > 0) {\r\n const file = input.files[0];\r\n this.handleFile(file);\r\n }\r\n }\r\n\r\n onDragOver(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (!this.disabled()) {\r\n this.isDragging.set(true);\r\n }\r\n }\r\n\r\n onDragLeave(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging.set(false);\r\n }\r\n\r\n onDrop(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging.set(false);\r\n\r\n if (this.disabled()) return;\r\n\r\n if (event.dataTransfer && event.dataTransfer.files.length > 0) {\r\n this.handleFile(event.dataTransfer.files[0]);\r\n }\r\n }\r\n\r\n handleFile(file: File) {\r\n this.fileName.set(file.name);\r\n this.onChange(file);\r\n this.onTouched();\r\n }\r\n\r\n clear(event: Event) {\r\n event.stopPropagation();\r\n this.fileName.set(null);\r\n this.onChange(null);\r\n }\r\n\r\n writeValue(value: any): void {\r\n // If we were handling real files, we might set a preview URL here.\r\n // For now, we assume null or File object.\r\n if (!value) this.fileName.set(null);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"w-full\">\r\n @if (label()) {\r\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{ label() }}</label>\r\n }\r\n\r\n <div\r\n class=\"relative flex items-center justify-center w-full border-2 border-dashed rounded-lg p-6 transition-colors\"\r\n [class.border-indigo-400]=\"isDragging()\"\r\n [class.bg-indigo-50]=\"isDragging()\"\r\n [class.border-gray-300]=\"!isDragging() && !disabled()\"\r\n [class.bg-white]=\"!isDragging() && !disabled()\"\r\n [class.bg-gray-100]=\"disabled()\"\r\n [class.cursor-pointer]=\"!disabled()\"\r\n [class.cursor-not-allowed]=\"disabled()\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n >\r\n <input\r\n type=\"file\"\r\n [accept]=\"accept()\"\r\n [disabled]=\"disabled()\"\r\n (change)=\"onFileSelected($event)\"\r\n class=\"absolute inset-0 w-full h-full opacity-0 cursor-pointer disabled:cursor-not-allowed\"\r\n />\r\n\r\n <div class=\"text-center pointer-events-none\">\r\n @if (fileName()) {\r\n <div class=\"flex items-center gap-2 text-indigo-600\">\r\n <svg class=\"w-8 h-8 mx-auto mb-2\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\r\n ></path>\r\n </svg>\r\n <span class=\"font-medium text-sm truncate max-w-[200px]\">{{ fileName() }}</span>\r\n </div>\r\n <p class=\"text-xs text-gray-500 mt-1\">Click to replace or drag new file</p>\r\n } @else {\r\n <svg\r\n class=\"w-10 h-10 mx-auto text-gray-400 mb-2\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12\"\r\n ></path>\r\n </svg>\r\n <p class=\"text-sm text-gray-600\">\r\n <span class=\"font-semibold text-indigo-600\">Click to upload</span> or drag and drop\r\n </p>\r\n <p class=\"text-xs text-gray-500 mt-1\">SVG, PNG, JPG or GIF</p>\r\n }\r\n </div>\r\n\r\n @if (fileName() && !disabled()) {\r\n <button\r\n type=\"button\"\r\n (click)=\"clear($event)\"\r\n class=\"absolute top-2 right-2 p-1 bg-white rounded-full shadow hover:bg-rose-50 text-gray-400 hover:text-rose-600 transition-colors z-10\"\r\n >\r\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\"\r\n ></path>\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n","import { Component, input, signal, forwardRef, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'wdc-date-input',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './date-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateInputComponent),\n multi: true,\n },\n ],\n})\nexport class DateInputComponent implements ControlValueAccessor {\n label = input<string>('');\n error = input<string | null>(null);\n min = input<string>('');\n max = input<string>('');\n\n value = signal<string>('');\n disabled = signal<boolean>(false);\n\n onChange = (value: string) => {};\n onTouched = () => {};\n\n onInput(event: Event) {\n const val = (event.target as HTMLInputElement).value;\n this.value.set(val);\n this.onChange(val);\n }\n\n writeValue(value: string): void {\n this.value.set(value || '');\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<div class=\"w-full\">\n @if (label()) {\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n type=\"date\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [min]=\"min()\"\n [max]=\"max()\"\n (input)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n [class.border-rose-300]=\"error()\"\n [class.focus:ring-rose-500]=\"error()\"\n [class.focus:border-rose-500]=\"error()\"\n [class.border-gray-300]=\"!error()\"\n [class.focus:ring-indigo-500]=\"!error()\"\n [class.focus:border-indigo-500]=\"!error()\"\n class=\"w-full px-3 py-2 bg-white border-2 rounded-lg focus:ring-0 outline-none transition-all disabled:bg-gray-100 disabled:text-gray-500\"\n />\n <!-- Calendar Icon overlay for nicer look (pointer-events-none lets click pass to input) -->\n <div class=\"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none text-gray-400\">\n <!-- <svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n ></path>\n </svg> -->\n </div>\n </div>\n @if (error()) {\n <p class=\"mt-1 text-sm text-rose-600\">{{ error() }}</p>\n }\n</div>\n","import { Component, input, signal, forwardRef, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'wdc-range-input',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './range-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeInputComponent),\n multi: true,\n },\n ],\n})\nexport class RangeInputComponent implements ControlValueAccessor {\n label = input<string>('');\n min = input<number>(0);\n max = input<number>(100);\n step = input<number>(1);\n unit = input<string>('');\n\n value = signal<number>(0);\n disabled = signal<boolean>(false);\n\n onChange = (value: number) => {};\n onTouched = () => {};\n\n onInput(event: Event) {\n const val = Number((event.target as HTMLInputElement).value);\n this.value.set(val);\n this.onChange(val);\n }\n\n writeValue(value: number): void {\n this.value.set(value || 0);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n get percentage() {\n return ((this.value() - this.min()) / (this.max() - this.min())) * 100;\n }\n}\n","\n<div class=\"w-full\">\n <div class=\"flex justify-between items-center mb-1\">\n @if (label()) {\n <label class=\"block text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"text-sm font-medium text-indigo-600\">{{ value() }}{{ unit() }}</span>\n </div>\n \n <div class=\"relative w-full h-6 flex items-center\">\n <!-- Track background -->\n <div class=\"absolute w-full h-2 bg-gray-200 rounded-full overflow-hidden\">\n <!-- Progress fill -->\n <div class=\"h-full bg-indigo-600\" [style.width.%]=\"percentage\"></div>\n </div>\n \n <!-- Native Range Input -->\n <input \n type=\"range\" \n [min]=\"min()\" \n [max]=\"max()\" \n [step]=\"step()\" \n [value]=\"value()\" \n [disabled]=\"disabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n class=\"absolute w-full h-full opacity-0 cursor-pointer disabled:cursor-not-allowed z-10\"\n >\n \n <!-- Custom Thumb (Visual only, position calculated) -->\n <div \n class=\"absolute w-4 h-4 bg-white border-2 border-indigo-600 rounded-full shadow pointer-events-none transition-transform active:scale-110\"\n [style.left.%]=\"percentage\"\n [style.transform]=\"'translateX(-50%)'\"\n ></div>\n </div>\n \n <div class=\"flex justify-between text-xs text-gray-400 mt-1\">\n <span>{{ min() }}</span>\n <span>{{ max() }}</span>\n </div>\n</div>\n","import { Component, input, signal, forwardRef, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'wdc-color-input',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './color-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorInputComponent),\n multi: true,\n },\n ],\n})\nexport class ColorInputComponent implements ControlValueAccessor {\n label = input<string>('');\n error = input<string | null>(null);\n\n value = signal<string>('#4f46e5');\n disabled = signal<boolean>(false);\n\n onChange = (value: string) => {};\n onTouched = () => {};\n\n onInput(event: Event) {\n const val = (event.target as HTMLInputElement).value;\n this.value.set(val);\n this.onChange(val);\n }\n\n // Handle text input changes (e.g. typing hex)\n onTextInput(event: Event) {\n const val = (event.target as HTMLInputElement).value;\n this.value.set(val);\n this.onChange(val);\n }\n\n writeValue(value: string): void {\n this.value.set(value || '#000000');\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<div class=\"w-full\">\n @if (label()) {\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{ label() }}</label>\n }\n\n <div class=\"flex items-center gap-2\">\n <!-- Color Swatch / Native Picker Trigger -->\n <div class=\"relative w-11 h-11 rounded-lg overflow-hidden border-2 border-gray-300 shrink-0\">\n <input\n type=\"color\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n class=\"absolute -top-2 -left-2 w-16 h-16 p-0 border-0 cursor-pointer\"\n />\n </div>\n\n <!-- Hex Input -->\n <input\n type=\"text\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n (input)=\"onTextInput($event)\"\n (blur)=\"onTouched()\"\n [class.border-rose-300]=\"error()\"\n [class.focus:ring-rose-500]=\"error()\"\n [class.focus:border-rose-500]=\"error()\"\n [class.border-gray-200]=\"!error()\"\n [class.focus:ring-indigo-500]=\"!error()\"\n [class.focus:border-indigo-500]=\"!error()\"\n placeholder=\"#000000\"\n class=\"w-full px-3 py-2 bg-white flex-1 border-2 border-gray-300 rounded-lg focus:ring-0 outline-none transition-all disabled:bg-gray-100 disabled:text-gray-500\"\n />\n </div>\n</div>\n","import {\n Component,\n input,\n signal,\n forwardRef,\n ChangeDetectionStrategy,\n ElementRef,\n viewChild,\n AfterViewInit,\n OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\ndeclare const Quill: any;\n\n@Component({\n selector: 'wdc-rich-text-editor',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './rich-text-editor.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RichTextEditorComponent),\n multi: true,\n },\n ],\n})\nexport class RichTextEditorComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n label = input<string>('');\n error = input<string | null>(null);\n\n editorContainer = viewChild<ElementRef>('editorContainer');\n quill: any;\n\n value = signal<string>('');\n disabled = signal<boolean>(false);\n\n onChange = (value: string) => {};\n onTouched = () => {};\n\n ngAfterViewInit() {\n if (typeof Quill === 'undefined') {\n console.error('Quill library not loaded');\n return;\n }\n\n this.quill = new Quill(this.editorContainer()?.nativeElement, {\n theme: 'snow',\n placeholder: 'Write something amazing...',\n modules: {\n toolbar: [\n [{ header: [1, 2, 3, false] }],\n ['bold', 'italic', 'underline', 'strike'],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['link', 'image', 'clean'],\n ],\n },\n });\n\n this.quill.on('text-change', () => {\n const html = this.editorContainer()?.nativeElement.querySelector('.ql-editor').innerHTML;\n this.value.set(html);\n this.onChange(html);\n });\n\n // Set initial value if available\n if (this.value()) {\n this.quill.clipboard.dangerouslyPasteHTML(this.value());\n }\n\n // Set disabled state\n if (this.disabled()) {\n this.quill.enable(false);\n }\n }\n\n ngOnDestroy() {\n // Quill cleanup usually not strictly necessary for simple use cases,\n // but good practice if bindings exist.\n }\n\n writeValue(value: string): void {\n this.value.set(value || '');\n if (this.quill) {\n // Prevent infinite loop if update comes from inside\n if (value !== this.editorContainer()?.nativeElement.querySelector('.ql-editor').innerHTML) {\n this.quill.clipboard.dangerouslyPasteHTML(value || '');\n }\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n if (this.quill) {\n this.quill.enable(!isDisabled);\n }\n }\n}\n","\n<div class=\"w-full\">\n @if (label()) {\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{ label() }}</label>\n }\n \n <div \n [class.border-rose-300]=\"error()\"\n [class.ring-rose-500]=\"error()\"\n class=\"bg-white rounded-lg overflow-hidden border-2 border-gray-200 focus-within:border-indigo-500 transition-all\">\n <div #editorContainer class=\"h-64 font-sans text-base\"></div>\n </div>\n\n @if (error()) {\n <p class=\"mt-1 text-sm text-rose-600\">{{ error() }}</p>\n }\n</div>\n","import {\r\n Component,\r\n input,\r\n signal,\r\n forwardRef,\r\n ChangeDetectionStrategy,\r\n computed,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\ndeclare const marked: any;\r\n\r\n@Component({\r\n selector: 'wdc-markdown-editor',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './markdown-editor.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MarkdownEditorComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MarkdownEditorComponent implements ControlValueAccessor {\r\n label = input<string>('');\r\n error = input<string | null>(null);\r\n\r\n value = signal<string>('');\r\n disabled = signal<boolean>(false);\r\n\r\n // Preview\r\n previewHtml = computed(() => {\r\n if (typeof marked === 'undefined') return this.value();\r\n return marked.parse(this.value());\r\n });\r\n\r\n onChange = (value: string) => {};\r\n onTouched = () => {};\r\n\r\n onInput(event: Event) {\r\n const val = (event.target as HTMLTextAreaElement).value;\r\n this.value.set(val);\r\n this.onChange(val);\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.value.set(value || '');\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"w-full\">\r\n @if (label()) {\r\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{ label() }}</label>\r\n }\r\n\r\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4 h-[500px]\">\r\n <!-- Editor -->\r\n <div class=\"flex flex-col h-full\">\r\n <div\r\n class=\"bg-gray-100 px-3 py-2 border-t-2 border-l-2 border-r-2 border-gray-200 rounded-t-lg text-xs font-semibold text-gray-600 uppercase tracking-wide\"\r\n >\r\n Markdown Input\r\n </div>\r\n <textarea\r\n [value]=\"value()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onTouched()\"\r\n [class.border-rose-300]=\"error()\"\r\n [class.focus:border-rose-500]=\"error()\"\r\n [class.border-gray-200]=\"!error()\"\r\n [class.focus:border-indigo-500]=\"!error()\"\r\n class=\"w-full flex-1 p-4 border-2 rounded-b-lg md:rounded-bl-lg md:rounded-br-none focus:ring-0 outline-none transition-all disabled:bg-gray-100 disabled:text-gray-500 font-mono text-sm resize-none\"\r\n placeholder=\"# Hello World...\"\r\n ></textarea>\r\n </div>\r\n\r\n <!-- Preview -->\r\n <div class=\"flex flex-col h-full\">\r\n <div\r\n class=\"bg-gray-100 px-3 py-2 border-t-2 border-l-2 border-r-2 border-gray-200 rounded-t-lg text-xs font-semibold text-gray-600 uppercase tracking-wide\"\r\n >\r\n Live Preview\r\n </div>\r\n <div\r\n class=\"flex-1 p-4 border-2 border-gray-200 rounded-b-lg md:rounded-br-lg md:rounded-bl-none bg-white overflow-y-auto prose prose-sm max-w-none prose-indigo\"\r\n [innerHTML]=\"previewHtml()\"\r\n ></div>\r\n </div>\r\n </div>\r\n\r\n @if (error()) {\r\n <p class=\"mt-1 text-sm text-rose-600\">{{ error() }}</p>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}