cerxos-ui 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/cerxos-ui.mjs +2457 -28
- package/fesm2022/cerxos-ui.mjs.map +1 -1
- package/index.d.ts +627 -5
- package/package.json +3 -2
- package/styles/tailwind.css +3 -2
- package/tokens/theme-dark.css +16 -0
- package/tokens/theme-default.css +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cerxos-ui.mjs","sources":["../../../projects/cerxos-ui/src/lib/cerxos-ui.ts","../../../projects/cerxos-ui/src/lib/components/button/button.component.ts","../../../projects/cerxos-ui/src/lib/components/button/button.component.html","../../../projects/cerxos-ui/src/lib/components/input/input.component.ts","../../../projects/cerxos-ui/src/lib/components/input/input.component.html","../../../projects/cerxos-ui/src/lib/components/radio/radio.component.ts","../../../projects/cerxos-ui/src/lib/components/radio/radio.component.html","../../../projects/cerxos-ui/src/lib/components/select/select.component.ts","../../../projects/cerxos-ui/src/lib/components/select/select.component.html","../../../projects/cerxos-ui/src/public-api.ts","../../../projects/cerxos-ui/src/cerxos-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cxs-cerxos-ui',\r\n imports: [],\r\n template: `\r\n <p>\r\n cerxos-ui works!\r\n </p>\r\n `,\r\n styles: ``,\r\n})\r\nexport class CerxosUi {\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgIf } from '@angular/common';\n\nexport type CxsButtonVariant = 'primary' | 'secondary' | 'ghost';\nexport type CxsButtonSize = 'sm' | 'md' | 'lg';\n\nconst BASE_CLASSES =\n 'relative inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)] disabled:pointer-events-none disabled:opacity-50';\n\nconst VARIANT_CLASSES: Record<CxsButtonVariant, string> = {\n primary:\n 'bg-[var(--cxs-color-primary)] text-[var(--cxs-color-on-primary)] ' +\n 'hover:bg-[var(--cxs-color-primary-hover)] shadow-[var(--cxs-shadow-sm)]',\n secondary:\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] ' +\n 'border border-[var(--cxs-color-border)] hover:bg-[var(--cxs-color-surface-hover)]',\n ghost:\n 'bg-transparent text-[var(--cxs-color-primary)] hover:bg-[var(--cxs-color-primary-ghost)]'\n};\n\nconst SIZE_CLASSES: Record<CxsButtonSize, string> = {\n sm: 'h-8 px-3 text-sm rounded-[var(--cxs-radius-md)]',\n md: 'h-10 px-4 text-sm rounded-[var(--cxs-radius-md)]',\n lg: 'h-12 px-5 text-base rounded-[var(--cxs-radius-md)]'\n};\n\n@Component({\n selector: 'cxs-button',\n standalone: true,\n imports: [NgIf],\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsButtonComponent {\n @Input() variant: CxsButtonVariant = 'primary';\n @Input() size: CxsButtonSize = 'md';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n\n get isDisabled(): boolean {\n return this.disabled || this.loading;\n }\n\n get buttonClass(): string {\n return [BASE_CLASSES, SIZE_CLASSES[this.size], VARIANT_CLASSES[this.variant]].join(' ');\n }\n}\n","<button\n [class]=\"buttonClass\"\n [attr.type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading ? 'true' : null\"\n>\n <span\n *ngIf=\"loading\"\n class=\"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"truncate\">\n <ng-content></ng-content>\n </span>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type CxsInputVariant = 'outline' | 'filled';\nexport type CxsInputSize = 'sm' | 'md' | 'lg';\nexport type CxsInputType =\n | 'text'\n | 'email'\n | 'password'\n | 'search'\n | 'tel'\n | 'url'\n | 'number';\n\nconst BASE_CLASSES =\n 'w-full rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] ' +\n 'placeholder:text-[var(--cxs-color-on-surface-muted)] transition-colors ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)] focus-visible:border-[var(--cxs-color-focus)] ' +\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60';\n\nconst VARIANT_CLASSES: Record<CxsInputVariant, string> = {\n outline: 'bg-[var(--cxs-color-surface)]',\n filled: 'bg-[var(--cxs-color-surface-hover)]'\n};\n\nconst SIZE_CLASSES: Record<CxsInputSize, string> = {\n sm: 'h-8 px-3 text-sm',\n md: 'h-10 px-3 text-sm',\n lg: 'h-12 px-4 text-base'\n};\n\nconst INVALID_CLASSES =\n 'border-[var(--cxs-color-danger)] focus-visible:border-[var(--cxs-color-danger)] ' +\n 'focus-visible:outline-[var(--cxs-color-danger)]';\n\n@Component({\n selector: 'cxs-input',\n standalone: true,\n templateUrl: './input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CxsInputComponent),\n multi: true\n }\n ]\n})\nexport class CxsInputComponent implements ControlValueAccessor {\n @Input() value = '';\n @Input() type: CxsInputType = 'text';\n @Input() variant: CxsInputVariant = 'outline';\n @Input() size: CxsInputSize = 'md';\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() autofocus = false;\n\n @Input() id?: string;\n @Input() name?: string;\n @Input() placeholder?: string;\n @Input() autocomplete?: string;\n @Input() inputmode?: string;\n @Input() spellcheck: boolean | null = null;\n @Input() ariaLabel?: string;\n @Input() ariaDescribedby?: string;\n\n @Output() valueChange = new EventEmitter<string>();\n\n private disabledFromControl = false;\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n get isDisabled(): boolean {\n return this.disabled || this.disabledFromControl;\n }\n\n get inputClass(): string {\n return [\n BASE_CLASSES,\n SIZE_CLASSES[this.size],\n VARIANT_CLASSES[this.variant],\n this.invalid ? INVALID_CLASSES : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n writeValue(value: string | null): void {\n this.value = value ?? '';\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledFromControl = isDisabled;\n }\n\n onInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n const nextValue = target.value;\n\n this.value = nextValue;\n this.onChange(nextValue);\n this.valueChange.emit(nextValue);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\r\n","<input\n [class]=\"inputClass\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n [attr.spellcheck]=\"spellcheck === null ? null : spellcheck\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.autofocus]=\"autofocus ? true : null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n/>\r\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type CxsRadioSize = 'sm' | 'md' | 'lg';\nexport type CxsRadioVariant = 'primary' | 'secondary';\n\nconst WRAPPER_BASE = 'inline-flex items-center gap-2 select-none';\nconst WRAPPER_ENABLED = 'cursor-pointer';\nconst WRAPPER_DISABLED = 'cursor-not-allowed opacity-60';\n\nconst LABEL_BASE = 'text-[var(--cxs-color-on-surface)]';\nconst LABEL_DISABLED = 'text-[var(--cxs-color-on-surface-muted)]';\nconst LABEL_SIZE_CLASSES: Record<CxsRadioSize, string> = {\n sm: 'text-sm',\n md: 'text-sm',\n lg: 'text-base'\n};\n\nconst CONTROL_BASE =\n \"relative flex shrink-0 items-center justify-center rounded-full border \" +\n \"bg-[var(--cxs-color-surface)] transition-colors \" +\n \"after:absolute after:inset-0 after:m-auto after:rounded-full after:content-[''] \" +\n 'after:transition-transform after:scale-0 peer-checked:after:scale-100 ' +\n 'peer-focus-visible:outline peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 ' +\n 'peer-focus-visible:outline-[var(--cxs-color-focus)]';\n\nconst CONTROL_SIZE_CLASSES: Record<CxsRadioSize, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6'\n};\n\nconst CONTROL_VARIANT_CLASSES: Record<CxsRadioVariant, string> = {\n primary:\n 'peer-checked:border-[var(--cxs-color-primary)] after:bg-[var(--cxs-color-primary)]',\n secondary:\n 'peer-checked:border-[var(--cxs-color-on-surface)] after:bg-[var(--cxs-color-on-surface)]'\n};\n\nconst DOT_SIZE_CLASSES: Record<CxsRadioSize, string> = {\n sm: 'after:h-2 after:w-2',\n md: 'after:h-2.5 after:w-2.5',\n lg: 'after:h-3 after:w-3'\n};\n\nconst INVALID_CLASSES =\n 'border-[var(--cxs-color-danger)] peer-checked:border-[var(--cxs-color-danger)] ' +\n 'after:bg-[var(--cxs-color-danger)]';\n\n@Component({\n selector: 'cxs-radio',\n standalone: true,\n templateUrl: './radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CxsRadioComponent),\n multi: true\n }\n ]\n})\nexport class CxsRadioComponent implements ControlValueAccessor {\n @Input() value = '';\n @Input() name?: string;\n @Input() variant: CxsRadioVariant = 'primary';\n @Input() size: CxsRadioSize = 'md';\n @Input() disabled = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() autofocus = false;\n\n @Input() id?: string;\n @Input() ariaLabel?: string;\n @Input() ariaDescribedby?: string;\n\n @Output() valueChange = new EventEmitter<string>();\n\n private selectedValue: string | null = null;\n private disabledFromControl = false;\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n get isDisabled(): boolean {\n return this.disabled || this.disabledFromControl;\n }\n\n get isChecked(): boolean {\n return this.selectedValue !== null && this.selectedValue === this.value;\n }\n\n get wrapperClass(): string {\n return [\n WRAPPER_BASE,\n this.isDisabled ? WRAPPER_DISABLED : WRAPPER_ENABLED\n ].join(' ');\n }\n\n get labelClass(): string {\n return [\n LABEL_BASE,\n LABEL_SIZE_CLASSES[this.size],\n this.isDisabled ? LABEL_DISABLED : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n get controlClass(): string {\n return [\n CONTROL_BASE,\n CONTROL_SIZE_CLASSES[this.size],\n DOT_SIZE_CLASSES[this.size],\n CONTROL_VARIANT_CLASSES[this.variant],\n this.invalid ? INVALID_CLASSES : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n writeValue(value: string | null): void {\n this.selectedValue = value ?? null;\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledFromControl = isDisabled;\n }\n\n onRadioChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n if (!target.checked) {\n return;\n }\n\n this.selectedValue = this.value;\n this.onChange(this.value);\n this.valueChange.emit(this.value);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\n","<label [class]=\"wrapperClass\">\n <input\n class=\"peer sr-only\"\n type=\"radio\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.autofocus]=\"autofocus ? true : null\"\n [checked]=\"isChecked\"\n [disabled]=\"isDisabled\"\n [required]=\"required\"\n (change)=\"onRadioChange($event)\"\n (blur)=\"onBlur()\"\n />\n <span [class]=\"controlClass\" aria-hidden=\"true\"></span>\n <span [class]=\"labelClass\">\n <ng-content></ng-content>\n </span>\n</label>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output\n} from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type CxsSelectVariant = 'outline' | 'filled';\nexport type CxsSelectSize = 'sm' | 'md' | 'lg';\n\nconst BASE_CLASSES =\n 'w-full appearance-none rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] ' +\n 'placeholder:text-[var(--cxs-color-on-surface-muted)] transition-colors ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)] focus-visible:border-[var(--cxs-color-focus)] ' +\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60';\n\nconst VARIANT_CLASSES: Record<CxsSelectVariant, string> = {\n outline: 'bg-[var(--cxs-color-surface)]',\n filled: 'bg-[var(--cxs-color-surface-hover)]'\n};\n\nconst SIZE_CLASSES: Record<CxsSelectSize, string> = {\n sm: 'h-8 pl-3 pr-9 text-sm',\n md: 'h-10 pl-3 pr-9 text-sm',\n lg: 'h-12 pl-4 pr-10 text-base'\n};\n\nconst INVALID_CLASSES =\n 'border-[var(--cxs-color-danger)] focus-visible:border-[var(--cxs-color-danger)] ' +\n 'focus-visible:outline-[var(--cxs-color-danger)]';\n\n@Component({\n selector: 'cxs-select',\n standalone: true,\n imports: [NgIf],\n templateUrl: './select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CxsSelectComponent),\n multi: true\n }\n ]\n})\nexport class CxsSelectComponent implements ControlValueAccessor {\n @Input() value = '';\n @Input() variant: CxsSelectVariant = 'outline';\n @Input() size: CxsSelectSize = 'md';\n @Input() disabled = false;\n @Input() required = false;\n @Input() invalid = false;\n @Input() placeholder?: string;\n @Input() placeholderValue = '';\n\n @Input() id?: string;\n @Input() name?: string;\n @Input() ariaLabel?: string;\n @Input() ariaDescribedby?: string;\n\n @Output() valueChange = new EventEmitter<string>();\n\n private disabledFromControl = false;\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n get isDisabled(): boolean {\n return this.disabled || this.disabledFromControl;\n }\n\n get selectClass(): string {\n return [\n BASE_CLASSES,\n SIZE_CLASSES[this.size],\n VARIANT_CLASSES[this.variant],\n this.invalid ? INVALID_CLASSES : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n get selectValue(): string {\n if (this.placeholder && this.value === '') {\n return this.placeholderValue;\n }\n\n return this.value;\n }\n\n writeValue(value: string | null): void {\n this.value = value ?? '';\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledFromControl = isDisabled;\n }\n\n onSelectChange(event: Event): void {\n const target = event.target as HTMLSelectElement;\n const nextValue = target.value;\n\n this.value = nextValue;\n this.onChange(nextValue);\n this.valueChange.emit(nextValue);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\r\n","<div class=\"relative\">\n <select\n [class]=\"selectClass\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [disabled]=\"isDisabled\"\n [required]=\"required\"\n [value]=\"selectValue\"\n (change)=\"onSelectChange($event)\"\n (blur)=\"onBlur()\"\n >\n <option *ngIf=\"placeholder\" [value]=\"placeholderValue\" disabled>\n {{ placeholder }}\n </option>\n <ng-content></ng-content>\n </select>\n <span\n class=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[var(--cxs-color-on-surface-muted)]\"\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"h-4 w-4\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 0 1 1.06.02L10 10.94l3.71-3.71a.75.75 0 1 1 1.06 1.06l-4.24 4.25a.75.75 0 0 1-1.06 0L5.21 8.29a.75.75 0 0 1 .02-1.08Z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </span>\n</div>\r\n","/*\r\n * Public API Surface of cerxos-ui\r\n */\r\n\r\nexport * from './lib/cerxos-ui';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/input/input.component';\nexport * from './lib/components/radio/radio.component';\nexport * from './lib/components/select/select.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BASE_CLASSES","VARIANT_CLASSES","SIZE_CLASSES","INVALID_CLASSES"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cerxos-ui.mjs","sources":["../../../projects/cerxos-ui/src/lib/cerxos-ui.ts","../../../projects/cerxos-ui/src/lib/components/alert/alert.component.ts","../../../projects/cerxos-ui/src/lib/components/alert/alert.component.html","../../../projects/cerxos-ui/src/lib/components/accordion/accordion.component.ts","../../../projects/cerxos-ui/src/lib/components/accordion/accordion.component.html","../../../projects/cerxos-ui/src/lib/components/accordion/accordion-item.component.ts","../../../projects/cerxos-ui/src/lib/components/accordion/accordion-item.component.html","../../../projects/cerxos-ui/src/lib/components/badge/badge.component.ts","../../../projects/cerxos-ui/src/lib/components/badge/badge.component.html","../../../projects/cerxos-ui/src/lib/components/avatar/avatar.component.ts","../../../projects/cerxos-ui/src/lib/components/avatar/avatar.component.html","../../../projects/cerxos-ui/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/cerxos-ui/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/cerxos-ui/src/lib/components/button/button.component.ts","../../../projects/cerxos-ui/src/lib/components/button/button.component.html","../../../projects/cerxos-ui/src/lib/components/card/card.component.ts","../../../projects/cerxos-ui/src/lib/components/card/card.component.html","../../../projects/cerxos-ui/src/lib/components/checkbox/checkbox.component.ts","../../../projects/cerxos-ui/src/lib/components/checkbox/checkbox.component.html","../../../projects/cerxos-ui/src/lib/components/carousel/carousel.component.ts","../../../projects/cerxos-ui/src/lib/components/carousel/carousel.component.html","../../../projects/cerxos-ui/src/lib/components/data-table/data-table.component.ts","../../../projects/cerxos-ui/src/lib/components/data-table/data-table.component.html","../../../projects/cerxos-ui/src/lib/components/dialog/dialog.component.ts","../../../projects/cerxos-ui/src/lib/components/dialog/dialog.component.html","../../../projects/cerxos-ui/src/lib/components/datepicker/datepicker.component.ts","../../../projects/cerxos-ui/src/lib/components/datepicker/datepicker.component.html","../../../projects/cerxos-ui/src/lib/components/input/input.component.ts","../../../projects/cerxos-ui/src/lib/components/input/input.component.html","../../../projects/cerxos-ui/src/lib/components/menubar/menubar.component.ts","../../../projects/cerxos-ui/src/lib/components/menubar/menubar.component.html","../../../projects/cerxos-ui/src/lib/components/radio/radio.component.ts","../../../projects/cerxos-ui/src/lib/components/radio/radio.component.html","../../../projects/cerxos-ui/src/lib/components/select/select.component.ts","../../../projects/cerxos-ui/src/lib/components/select/select.component.html","../../../projects/cerxos-ui/src/lib/components/table/table.component.ts","../../../projects/cerxos-ui/src/lib/components/table/table.component.html","../../../projects/cerxos-ui/src/lib/components/toggle/toggle.component.ts","../../../projects/cerxos-ui/src/lib/components/toggle/toggle.component.html","../../../projects/cerxos-ui/src/lib/components/toast/toast.component.ts","../../../projects/cerxos-ui/src/lib/components/toast/toast.component.html","../../../projects/cerxos-ui/src/lib/components/tooltip/tooltip.component.ts","../../../projects/cerxos-ui/src/lib/components/tooltip/tooltip.component.html","../../../projects/cerxos-ui/src/lib/directives/theme/theme.directive.ts","../../../projects/cerxos-ui/src/public-api.ts","../../../projects/cerxos-ui/src/cerxos-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cxs-cerxos-ui',\r\n imports: [],\r\n template: `\r\n <p>\r\n cerxos-ui works!\r\n </p>\r\n `,\r\n styles: ``,\r\n})\r\nexport class CerxosUi {\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nexport type CxsAlertVariant = 'info' | 'neutral' | 'danger';\r\n\r\nconst BASE_CLASSES =\r\n 'relative flex w-full gap-3 rounded-[var(--cxs-radius-md)] border border-l-4 px-4 py-3 text-sm ' +\r\n 'text-[var(--cxs-color-on-surface)]';\r\n\r\nconst VARIANT_CLASSES: Record<CxsAlertVariant, string> = {\r\n info:\r\n 'border-[var(--cxs-color-primary)] border-l-[var(--cxs-color-primary)] ' +\r\n 'bg-[var(--cxs-color-primary-ghost)]',\r\n neutral:\r\n 'border-[var(--cxs-color-border)] border-l-[var(--cxs-color-border)] ' +\r\n 'bg-[var(--cxs-color-surface)]',\r\n danger:\r\n 'border-[var(--cxs-color-danger)] border-l-[var(--cxs-color-danger)] ' +\r\n 'bg-[var(--cxs-color-surface)]'\r\n};\r\n\r\nconst TITLE_BASE = 'font-semibold';\r\n\r\nconst TITLE_VARIANT: Record<CxsAlertVariant, string> = {\r\n info: 'text-[var(--cxs-color-primary)]',\r\n neutral: 'text-[var(--cxs-color-on-surface)]',\r\n danger: 'text-[var(--cxs-color-danger)]'\r\n};\r\n\r\nconst CLOSE_BUTTON_CLASSES =\r\n 'ml-auto inline-flex h-8 w-8 items-center justify-center rounded-[var(--cxs-radius-md)] ' +\r\n 'text-[var(--cxs-color-on-surface)] transition-colors hover:bg-[var(--cxs-color-surface-hover)] ' +\r\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\r\n 'focus-visible:outline-[var(--cxs-color-focus)]';\r\n\r\n@Component({\r\n selector: 'cxs-alert',\r\n standalone: true,\r\n templateUrl: './alert.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CxsAlertComponent {\r\n @Input() variant: CxsAlertVariant = 'info';\r\n @Input() title?: string;\r\n @Input() dismissible = false;\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n isVisible = true;\r\n\r\n get alertClass(): string {\r\n return [BASE_CLASSES, VARIANT_CLASSES[this.variant]].join(' ');\r\n }\r\n\r\n get titleClass(): string {\r\n return [TITLE_BASE, TITLE_VARIANT[this.variant]].join(' ');\r\n }\r\n\r\n get closeButtonClass(): string {\r\n return CLOSE_BUTTON_CLASSES;\r\n }\r\n\r\n onClose(): void {\r\n this.isVisible = false;\r\n this.closed.emit();\r\n }\r\n}\r\n","@if (isVisible) {\r\n <div [class]=\"alertClass\" role=\"status\" aria-live=\"polite\">\r\n <div class=\"flex flex-col gap-1\">\r\n @if (title) {\r\n <div [class]=\"titleClass\">{{ title }}</div>\r\n }\r\n <div class=\"text-[var(--cxs-color-on-surface)]\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n @if (dismissible) {\r\n <button\r\n type=\"button\"\r\n [class]=\"closeButtonClass\"\r\n aria-label=\"Dismiss alert\"\r\n (click)=\"onClose()\"\r\n >\r\n x\r\n </button>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type CxsAccordionSpacing = 'sm' | 'md' | 'lg';\n\nconst BASE_CLASSES = 'grid';\nconst SPACING_CLASSES: Record<CxsAccordionSpacing, string> = {\n sm: 'gap-2',\n md: 'gap-3',\n lg: 'gap-4'\n};\n\n@Component({\n selector: 'cxs-accordion',\n standalone: true,\n templateUrl: './accordion.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsAccordionComponent {\n @Input() spacing: CxsAccordionSpacing = 'md';\n\n get accordionClass(): string {\n return [BASE_CLASSES, SPACING_CLASSES[this.spacing]].join(' ');\n }\n}\n","<div [class]=\"accordionClass\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\n\nexport type CxsAccordionItemSize = 'sm' | 'md' | 'lg';\n\nconst ITEM_BASE =\n 'rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)]';\nconst ITEM_DISABLED = 'opacity-60';\n\nconst HEADER_BASE =\n 'flex w-full items-center justify-between gap-3 text-left font-medium transition-colors ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)]';\nconst HEADER_HOVER = 'hover:bg-[var(--cxs-color-surface-hover)]';\nconst HEADER_DISABLED = 'cursor-not-allowed';\n\nconst CONTENT_BASE = 'text-(--cxs-color-on-surface-muted)';\n\nconst SIZE_HEADER_CLASSES: Record<CxsAccordionItemSize, string> = {\n sm: 'px-3 py-2 text-sm',\n md: 'px-4 py-3 text-sm',\n lg: 'px-5 py-4 text-base'\n};\n\nconst SIZE_CONTENT_CLASSES: Record<CxsAccordionItemSize, string> = {\n sm: 'px-3 pb-3 text-sm',\n md: 'px-4 pb-4 text-sm',\n lg: 'px-5 pb-5 text-base'\n};\n\n@Component({\n selector: 'cxs-accordion-item',\n standalone: true,\n imports: [],\n templateUrl: './accordion-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsAccordionItemComponent {\n private static nextId = 0;\n\n @Input() title?: string;\n @Input() expanded = false;\n @Input() disabled = false;\n @Input() size: CxsAccordionItemSize = 'md';\n\n @Output() expandedChange = new EventEmitter<boolean>();\n\n readonly buttonId = `cxs-accordion-button-${++CxsAccordionItemComponent.nextId}`;\n readonly contentId = `cxs-accordion-panel-${CxsAccordionItemComponent.nextId}`;\n\n get itemClass(): string {\n return [ITEM_BASE, this.disabled ? ITEM_DISABLED : ''].filter(Boolean).join(' ');\n }\n\n get headerClass(): string {\n return [\n HEADER_BASE,\n SIZE_HEADER_CLASSES[this.size],\n this.disabled ? HEADER_DISABLED : HEADER_HOVER\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n get contentClass(): string {\n return [CONTENT_BASE, SIZE_CONTENT_CLASSES[this.size]].join(' ');\n }\n\n get iconClass(): string {\n return [\n 'h-4 w-4 shrink-0 text-(--cxs-color-on-surface-muted) transition-transform',\n this.expanded ? 'rotate-180' : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n toggle(): void {\n if (this.disabled) {\n return;\n }\n\n this.expanded = !this.expanded;\n this.expandedChange.emit(this.expanded);\n }\n}\n","<div [class]=\"itemClass\">\n <button\n type=\"button\"\n [class]=\"headerClass\"\n [id]=\"buttonId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n (click)=\"toggle()\"\n >\n <span class=\"flex min-w-0 flex-1 items-center gap-2\">\n <ng-content select=\"[cxsAccordionTitle]\"></ng-content>\n @if (title) {\n <span class=\"truncate\">{{ title }}</span>\n }\n </span>\n <svg aria-hidden=\"true\" [class]=\"iconClass\" viewBox=\"0 0 20 20\">\n <path\n d=\"M5 7l5 5 5-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.5\"\n ></path>\n </svg>\n </button>\n\n <div\n [id]=\"contentId\"\n role=\"region\"\n [attr.aria-labelledby]=\"buttonId\"\n [class]=\"contentClass\"\n [hidden]=\"!expanded\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nexport type CxsBadgeVariant = 'primary' | 'neutral' | 'danger';\r\nexport type CxsBadgeSize = 'sm' | 'md';\r\n\r\nconst BASE_CLASSES =\r\n 'inline-flex items-center gap-1 rounded-[var(--cxs-radius-md)] border px-2.5 py-0.5 text-xs font-medium ' +\r\n 'leading-none';\r\n\r\nconst VARIANT_CLASSES: Record<CxsBadgeVariant, string> = {\r\n primary:\r\n 'border-[var(--cxs-color-primary)] bg-[var(--cxs-color-primary-ghost)] ' +\r\n 'text-[var(--cxs-color-primary)]',\r\n neutral:\r\n 'border-[var(--cxs-color-border)] bg-[var(--cxs-color-surface)] ' +\r\n 'text-[var(--cxs-color-on-surface)]',\r\n danger:\r\n 'border-[var(--cxs-color-danger)] bg-[var(--cxs-color-surface)] ' +\r\n 'text-[var(--cxs-color-danger)]'\r\n};\r\n\r\nconst SIZE_CLASSES: Record<CxsBadgeSize, string> = {\r\n sm: 'text-[11px]',\r\n md: 'text-xs'\r\n};\r\n\r\n@Component({\r\n selector: 'cxs-badge',\r\n standalone: true,\r\n templateUrl: './badge.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CxsBadgeComponent {\r\n @Input() variant: CxsBadgeVariant = 'primary';\r\n @Input() size: CxsBadgeSize = 'md';\r\n\r\n get badgeClass(): string {\r\n return [BASE_CLASSES, VARIANT_CLASSES[this.variant], SIZE_CLASSES[this.size]].join(' ');\r\n }\r\n}\r\n","<span [class]=\"badgeClass\">\r\n <ng-content></ng-content>\r\n</span>\r\n","import {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n Input\n} from '@angular/core';\n\nexport type CxsAvatarSize = 'sm' | 'md' | 'lg';\nexport type CxsAvatarShape = 'circle' | 'square';\n\nconst BASE_CLASSES =\n 'inline-flex items-center justify-center overflow-hidden border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-primary-ghost)] text-[var(--cxs-color-primary)] font-semibold uppercase ' +\n 'select-none';\n\nconst SIZE_CLASSES: Record<CxsAvatarSize, string> = {\n sm: 'h-8 w-8 text-[11px]',\n md: 'h-10 w-10 text-xs',\n lg: 'h-14 w-14 text-sm'\n};\n\nconst SHAPE_CLASSES: Record<CxsAvatarShape, string> = {\n circle: 'rounded-full',\n square: 'rounded-[var(--cxs-radius-md)]'\n};\n\nconst FALLBACK_CLASSES = 'leading-none';\n\n@Component({\n selector: 'cxs-avatar',\n standalone: true,\n templateUrl: './avatar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsAvatarComponent {\n private _src?: string;\n\n @Input()\n set src(value: string | undefined) {\n if (value !== this._src) {\n this._src = value;\n this.imageError = false;\n }\n }\n\n get src(): string | undefined {\n return this._src;\n }\n @Input() name?: string;\n @Input() alt?: string;\n @Input() size: CxsAvatarSize = 'md';\n @Input() shape: CxsAvatarShape = 'circle';\n\n imageError = false;\n\n constructor(@Attribute('class') private readonly hostClass: string | null) {}\n\n get avatarClass(): string {\n return [BASE_CLASSES, SIZE_CLASSES[this.size], SHAPE_CLASSES[this.shape], this.hostClass]\n .filter(Boolean)\n .join(' ');\n }\n\n get fallbackClass(): string {\n return FALLBACK_CLASSES;\n }\n\n get altText(): string {\n if (this.alt !== undefined) {\n return this.alt;\n }\n\n if (this.name) {\n return this.name;\n }\n\n return 'Avatar';\n }\n\n get fallbackLabel(): string {\n if (this.name) {\n return this.name;\n }\n\n if (this.alt && this.alt.trim().length > 0) {\n return this.alt;\n }\n\n return 'Avatar';\n }\n\n get fallbackText(): string {\n if (!this.name) {\n return '?';\n }\n\n return this.getInitials(this.name);\n }\n\n get showImage(): boolean {\n return !!this.src && !this.imageError;\n }\n\n onImageError(): void {\n this.imageError = true;\n }\n\n private getInitials(value: string): string {\n const parts = value\n .trim()\n .split(/\\s+/)\n .filter(Boolean);\n\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n\n const word = parts[0] ?? '';\n return word.slice(0, 2).toUpperCase() || '?';\n }\n}\n","<div\n [class]=\"avatarClass\"\n [attr.role]=\"showImage ? null : 'img'\"\n [attr.aria-label]=\"showImage ? null : fallbackLabel\"\n>\n @if (showImage) {\n <img\n [attr.src]=\"src\"\n [attr.alt]=\"altText\"\n class=\"h-full w-full object-cover\"\n (error)=\"onImageError()\"\n />\n } @else {\n <span [class]=\"fallbackClass\" aria-hidden=\"true\">{{ fallbackText }}</span>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nexport type CxsBreadcrumbSize = 'sm' | 'md' | 'lg';\r\nexport type CxsBreadcrumbVariant = 'default' | 'muted';\r\n\r\nexport interface CxsBreadcrumbItem {\r\n label: string;\r\n href?: string;\r\n target?: string;\r\n rel?: string;\r\n ariaLabel?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst BASE_CLASSES = 'flex flex-wrap items-center gap-x-1 gap-y-1';\r\nconst ITEM_CLASSES = 'flex items-center gap-1';\r\nconst LINK_BASE_CLASSES =\r\n 'rounded-[var(--cxs-radius-md)] transition-colors focus-visible:outline focus-visible:outline-2 ' +\r\n 'focus-visible:outline-offset-2 focus-visible:outline-[var(--cxs-color-focus)]';\r\nconst NON_LINK_CLASSES = 'text-[var(--cxs-color-on-surface-muted)]';\r\nconst SEPARATOR_CLASSES = 'text-[var(--cxs-color-on-surface-muted)] select-none';\r\nconst DISABLED_CLASSES = 'text-[var(--cxs-color-on-surface-muted)] opacity-60';\r\n\r\nconst SIZE_CLASSES: Record<CxsBreadcrumbSize, string> = {\r\n sm: 'text-xs',\r\n md: 'text-sm',\r\n lg: 'text-base'\r\n};\r\n\r\nconst LINK_VARIANT_CLASSES: Record<CxsBreadcrumbVariant, string> = {\r\n default:\r\n 'text-[var(--cxs-color-primary)] hover:text-[var(--cxs-color-primary-hover)]',\r\n muted:\r\n 'text-[var(--cxs-color-on-surface-muted)] hover:text-[var(--cxs-color-on-surface)]'\r\n};\r\n\r\nconst CURRENT_VARIANT_CLASSES: Record<CxsBreadcrumbVariant, string> = {\r\n default: 'text-[var(--cxs-color-on-surface)]',\r\n muted: 'text-[var(--cxs-color-on-surface-muted)]'\r\n};\r\n\r\n@Component({\r\n selector: 'cxs-breadcrumb',\r\n standalone: true,\r\n templateUrl: './breadcrumb.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CxsBreadcrumbComponent {\r\n @Input() items: CxsBreadcrumbItem[] = [];\r\n @Input() separator = '/';\r\n @Input() ariaLabel = 'Breadcrumb';\r\n @Input() size: CxsBreadcrumbSize = 'md';\r\n @Input() variant: CxsBreadcrumbVariant = 'default';\r\n @Input() disabled = false;\r\n\r\n get listClass(): string {\r\n return [BASE_CLASSES, SIZE_CLASSES[this.size], this.disabled ? 'opacity-60' : '']\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n get itemClass(): string {\r\n return ITEM_CLASSES;\r\n }\r\n\r\n get separatorClass(): string {\r\n return SEPARATOR_CLASSES;\r\n }\r\n\r\n isLink(item: CxsBreadcrumbItem, isLast: boolean): boolean {\r\n return !!item.href && !isLast && !item.disabled && !this.disabled;\r\n }\r\n\r\n getLinkClass(item: CxsBreadcrumbItem): string {\r\n return [\r\n LINK_BASE_CLASSES,\r\n LINK_VARIANT_CLASSES[this.variant],\r\n item.disabled || this.disabled ? DISABLED_CLASSES : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n getLabelClass(item: CxsBreadcrumbItem, isLast: boolean): string {\r\n if (isLast) {\r\n return [\r\n CURRENT_VARIANT_CLASSES[this.variant],\r\n item.disabled || this.disabled ? DISABLED_CLASSES : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n return [NON_LINK_CLASSES, item.disabled || this.disabled ? DISABLED_CLASSES : '']\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n getItemRel(item: CxsBreadcrumbItem): string | null {\r\n if (item.target === '_blank') {\r\n return item.rel ?? 'noopener noreferrer';\r\n }\r\n\r\n return item.rel ?? null;\r\n }\r\n}\r\n","<nav [attr.aria-label]=\"ariaLabel\">\r\n <ol [class]=\"listClass\">\r\n @for (item of items; track item; let last = $last) {\r\n <li [class]=\"itemClass\">\r\n @if (isLink(item, last)) {\r\n <a\r\n [class]=\"getLinkClass(item)\"\r\n [attr.href]=\"item.href\"\r\n [attr.target]=\"item.target ?? null\"\r\n [attr.rel]=\"getItemRel(item)\"\r\n [attr.aria-label]=\"item.ariaLabel ?? null\"\r\n >\r\n {{ item.label }}\r\n </a>\r\n } @else {\r\n <span\r\n [class]=\"getLabelClass(item, last)\"\r\n [attr.aria-current]=\"last ? 'page' : null\"\r\n >\r\n {{ item.label }}\r\n </span>\r\n }\r\n @if (!last && separator) {\r\n <span [class]=\"separatorClass\" aria-hidden=\"true\">{{ separator }}</span>\r\n }\r\n </li>\r\n }\r\n </ol>\r\n</nav>\r\n","import { Attribute, ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nexport type CxsButtonVariant = 'primary' | 'secondary' | 'ghost';\nexport type CxsButtonSize = 'sm' | 'md' | 'lg';\r\n\r\nconst BASE_CLASSES =\r\n 'relative inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors ' +\r\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\r\n 'focus-visible:outline-[var(--cxs-color-focus)] disabled:pointer-events-none disabled:opacity-50';\r\n\r\nconst VARIANT_CLASSES: Record<CxsButtonVariant, string> = {\n primary:\n 'bg-[var(--cxs-color-primary)] text-[var(--cxs-color-on-primary)] ' +\n 'hover:bg-[var(--cxs-color-primary-hover)] shadow-[var(--cxs-shadow-sm)]',\n secondary:\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] ' +\n 'border border-[var(--cxs-color-border)] hover:bg-[var(--cxs-color-surface-hover)]',\n ghost:\n 'bg-transparent text-[var(--cxs-color-primary)] hover:bg-[var(--cxs-color-primary-ghost)]'\n};\n\r\nconst SIZE_CLASSES: Record<CxsButtonSize, string> = {\r\n sm: 'h-8 px-3 text-sm rounded-[var(--cxs-radius-md)]',\r\n md: 'h-10 px-4 text-sm rounded-[var(--cxs-radius-md)]',\r\n lg: 'h-12 px-5 text-base rounded-[var(--cxs-radius-md)]'\r\n};\r\n\r\n@Component({\r\n selector: 'cxs-button',\r\n standalone: true,\r\n templateUrl: './button.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CxsButtonComponent {\r\n @Input() variant: CxsButtonVariant = 'primary';\r\n @Input() size: CxsButtonSize = 'md';\r\n @Input() disabled = false;\r\n @Input() loading = false;\r\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\r\n\r\n constructor(@Attribute('class') private readonly hostClass: string | null) {}\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled || this.loading;\r\n }\r\n\r\n get buttonClass(): string {\r\n return [BASE_CLASSES, SIZE_CLASSES[this.size], VARIANT_CLASSES[this.variant], this.hostClass]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n}\r\n","<button\r\n [class]=\"buttonClass\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"isDisabled\"\r\n [attr.aria-busy]=\"loading ? 'true' : null\"\r\n>\r\n @if (loading) {\n <span\n class=\"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent\"\n aria-hidden=\"true\"\n ></span>\n }\n <ng-content select=\"[cxsButtonIcon]\"></ng-content>\n <span class=\"truncate\">\n <ng-content></ng-content>\n </span>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nexport type CxsCardVariant = 'surface' | 'muted' | 'outline';\r\nexport type CxsCardSize = 'sm' | 'md' | 'lg';\r\n\r\nconst BASE_CLASSES =\r\n 'rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\r\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)]';\r\n\r\nconst VARIANT_CLASSES: Record<CxsCardVariant, string> = {\r\n surface: 'bg-[var(--cxs-color-surface)]',\r\n muted: 'bg-[var(--cxs-color-surface-hover)]',\r\n outline: 'bg-transparent'\r\n};\r\n\r\nconst SIZE_CLASSES: Record<CxsCardSize, string> = {\r\n sm: 'p-3',\r\n md: 'p-5',\r\n lg: 'p-7'\r\n};\r\n\r\n@Component({\r\n selector: 'cxs-card',\r\n standalone: true,\r\n templateUrl: './card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CxsCardComponent {\r\n @Input() variant: CxsCardVariant = 'surface';\r\n @Input() size: CxsCardSize = 'md';\r\n @Input() elevated = true;\r\n @Input() ariaLabel?: string;\r\n @Input() ariaLabelledby?: string;\r\n\r\n get cardClass(): string {\r\n return [\r\n BASE_CLASSES,\r\n VARIANT_CLASSES[this.variant],\r\n SIZE_CLASSES[this.size],\r\n this.elevated ? 'shadow-[var(--cxs-shadow-sm)]' : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n}\r\n","<section\r\n [class]=\"cardClass\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n>\r\n <ng-content></ng-content>\r\n</section>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport type CxsCheckboxSize = 'sm' | 'md' | 'lg';\r\n\r\nconst WRAPPER_BASE = 'inline-flex items-center gap-2 select-none';\r\nconst WRAPPER_ENABLED = 'cursor-pointer';\r\nconst WRAPPER_DISABLED = 'cursor-not-allowed opacity-60';\r\n\r\nconst LABEL_BASE = 'text-[var(--cxs-color-on-surface)]';\r\nconst LABEL_DISABLED = 'text-[var(--cxs-color-on-surface-muted)]';\r\nconst LABEL_SIZE_CLASSES: Record<CxsCheckboxSize, string> = {\r\n sm: 'text-sm',\r\n md: 'text-sm',\r\n lg: 'text-base'\r\n};\r\n\r\nconst CONTROL_BASE =\r\n \"relative flex shrink-0 items-center justify-center rounded-[var(--cxs-radius-md)] border \" +\r\n \"border-[var(--cxs-color-border)] bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-primary)] \" +\r\n \"transition-colors after:absolute after:origin-center after:rotate-45 after:content-[''] \" +\r\n 'after:opacity-0 after:transition-opacity after:border-b-2 after:border-r-2 after:border-current ' +\r\n \"before:absolute before:content-[''] before:opacity-0 before:transition-opacity before:bg-current \" +\r\n 'peer-checked:bg-[var(--cxs-color-primary)] peer-checked:border-[var(--cxs-color-primary)] ' +\r\n 'peer-checked:after:opacity-100 ' +\r\n 'peer-indeterminate:bg-[var(--cxs-color-primary)] peer-indeterminate:border-[var(--cxs-color-primary)] ' +\r\n 'peer-indeterminate:before:opacity-100 peer-indeterminate:after:opacity-0 ' +\r\n 'peer-focus-visible:outline peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 ' +\r\n 'peer-focus-visible:outline-[var(--cxs-color-focus)]';\r\n\r\nconst CONTROL_SIZE_CLASSES: Record<CxsCheckboxSize, string> = {\r\n sm: 'h-4 w-4',\r\n md: 'h-5 w-5',\r\n lg: 'h-6 w-6'\r\n};\r\n\r\nconst MARK_SIZE_CLASSES: Record<CxsCheckboxSize, string> = {\r\n sm: 'after:h-2 after:w-1 before:h-0.5 before:w-2',\r\n md: 'after:h-2.5 after:w-1.5 before:h-0.5 before:w-3',\r\n lg: 'after:h-3 after:w-2 before:h-0.5 before:w-4'\r\n};\r\n\r\n@Component({\r\n selector: 'cxs-checkbox',\r\n standalone: true,\r\n templateUrl: './checkbox.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CxsCheckboxComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CxsCheckboxComponent implements ControlValueAccessor {\r\n @Input() checked = false;\r\n @Input() indeterminate = false;\r\n @Input() disabled = false;\r\n @Input() label?: string;\r\n @Input() size: CxsCheckboxSize = 'md';\r\n\r\n @Input() id?: string;\r\n @Input() name?: string;\r\n @Input() required = false;\r\n @Input() autofocus = false;\r\n @Input() ariaLabel?: string;\r\n @Input() ariaDescribedby?: string;\r\n\r\n @Output() valueChange = new EventEmitter<boolean>();\r\n\r\n private disabledFromControl = false;\r\n private onChange: (value: boolean) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled || this.disabledFromControl;\r\n }\r\n\r\n get wrapperClass(): string {\r\n return [\r\n WRAPPER_BASE,\r\n this.isDisabled ? WRAPPER_DISABLED : WRAPPER_ENABLED\r\n ].join(' ');\r\n }\r\n\r\n get labelClass(): string {\r\n return [\r\n LABEL_BASE,\r\n LABEL_SIZE_CLASSES[this.size],\r\n this.isDisabled ? LABEL_DISABLED : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n get controlClass(): string {\r\n return [\r\n CONTROL_BASE,\r\n CONTROL_SIZE_CLASSES[this.size],\r\n MARK_SIZE_CLASSES[this.size]\r\n ].join(' ');\r\n }\r\n\r\n get ariaChecked(): 'mixed' | null {\r\n return this.indeterminate ? 'mixed' : null;\r\n }\r\n\r\n writeValue(value: boolean | null): void {\r\n this.checked = value ?? false;\r\n }\r\n\r\n registerOnChange(fn: (value: boolean) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabledFromControl = isDisabled;\r\n }\r\n\r\n onCheckboxChange(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n const nextValue = target.checked;\r\n\r\n this.indeterminate = false;\r\n this.checked = nextValue;\r\n this.onChange(nextValue);\r\n this.valueChange.emit(nextValue);\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouched();\r\n }\r\n}\r\n","<label [class]=\"wrapperClass\">\r\n <input\r\n class=\"peer sr-only\"\r\n type=\"checkbox\"\r\n [attr.id]=\"id\"\r\n [attr.name]=\"name\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-checked]=\"ariaChecked\"\r\n [attr.autofocus]=\"autofocus ? true : null\"\r\n [checked]=\"checked\"\r\n [indeterminate]=\"indeterminate\"\r\n [disabled]=\"isDisabled\"\r\n [required]=\"required\"\r\n (change)=\"onCheckboxChange($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <span [class]=\"controlClass\" aria-hidden=\"true\"></span>\r\n @if (label) {\r\n <span [class]=\"labelClass\">{{ label }}</span>\r\n } @else {\r\n <span [class]=\"labelClass\">\r\n <ng-content></ng-content>\r\n </span>\r\n }\r\n</label>\r\n","import {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges\n} from '@angular/core';\n\nexport interface CxsCarouselItem {\n title?: string;\n description?: string;\n image?: string;\n alt?: string;\n}\n\nconst WRAPPER_BASE_CLASSES = 'relative overflow-hidden rounded-[var(--cxs-radius-md)]';\nconst TRACK_CLASSES = 'flex transition-transform duration-500 ease-out';\nconst SLIDE_BASE_CLASSES = 'w-full flex-shrink-0';\nconst IMAGE_CLASSES = 'h-56 w-full object-cover';\nconst CONTENT_CLASSES =\n 'absolute inset-x-0 bottom-0 bg-[rgba(15,23,42,0.6)] px-4 py-3 text-sm text-white';\n\nconst CONTROL_CLASSES =\n 'absolute top-1/2 -translate-y-1/2 inline-flex h-9 w-9 items-center justify-center rounded-full ' +\n 'bg-[rgba(15,23,42,0.7)] text-white transition hover:bg-[rgba(15,23,42,0.85)] ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)]';\n\nconst INDICATOR_CONTAINER_CLASSES =\n 'absolute bottom-3 left-1/2 flex -translate-x-1/2 items-center gap-2';\nconst INDICATOR_BASE_CLASSES =\n 'h-2 w-2 rounded-full bg-white/50 transition-colors';\nconst INDICATOR_ACTIVE_CLASSES = 'bg-white';\n\n@Component({\n selector: 'cxs-carousel',\n standalone: true,\n templateUrl: './carousel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsCarouselComponent implements OnChanges, AfterViewInit, OnDestroy {\n @Input() items: CxsCarouselItem[] = [];\n @Input() activeIndex = 0;\n @Input() autoplay = false;\n @Input() interval = 4000;\n @Input() loop = true;\n @Input() showControls = true;\n @Input() showIndicators = true;\n @Input() ariaLabel = 'Carousel';\n\n @Output() activeIndexChange = new EventEmitter<number>();\n\n private timerId: ReturnType<typeof setInterval> | null = null;\n\n constructor(@Attribute('class') private readonly hostClass: string | null) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['items'] || changes['autoplay'] || changes['interval']) {\n this.resetAutoplay();\n }\n if (changes['activeIndex']) {\n this.activeIndex = this.clampIndex(this.activeIndex);\n }\n }\n\n ngAfterViewInit(): void {\n this.resetAutoplay();\n }\n\n ngOnDestroy(): void {\n this.clearAutoplay();\n }\n\n get wrapperClass(): string {\n return [WRAPPER_BASE_CLASSES, this.hostClass].filter(Boolean).join(' ');\n }\n\n get trackStyle(): string {\n return `translateX(-${this.activeIndex * 100}%)`;\n }\n\n get trackClass(): string {\n return TRACK_CLASSES;\n }\n\n get slideClass(): string {\n return SLIDE_BASE_CLASSES;\n }\n\n get imageClass(): string {\n return IMAGE_CLASSES;\n }\n\n get contentClass(): string {\n return CONTENT_CLASSES;\n }\n\n get controlClass(): string {\n return CONTROL_CLASSES;\n }\n\n get indicatorContainerClass(): string {\n return INDICATOR_CONTAINER_CLASSES;\n }\n\n indicatorClass(isActive: boolean): string {\n return [INDICATOR_BASE_CLASSES, isActive ? INDICATOR_ACTIVE_CLASSES : '']\n .filter(Boolean)\n .join(' ');\n }\n\n previous(): void {\n this.goTo(this.activeIndex - 1);\n }\n\n next(): void {\n this.goTo(this.activeIndex + 1);\n }\n\n goTo(index: number): void {\n const nextIndex = this.normalizeIndex(index);\n this.activeIndex = nextIndex;\n this.activeIndexChange.emit(nextIndex);\n }\n\n private normalizeIndex(index: number): number {\n if (!this.items.length) {\n return 0;\n }\n\n if (this.loop) {\n const total = this.items.length;\n return (index + total) % total;\n }\n\n return this.clampIndex(index);\n }\n\n private clampIndex(index: number): number {\n if (!this.items.length) {\n return 0;\n }\n\n return Math.min(Math.max(0, index), this.items.length - 1);\n }\n\n private resetAutoplay(): void {\n this.clearAutoplay();\n\n if (!this.autoplay || this.items.length <= 1) {\n return;\n }\n\n const intervalMs = Math.max(1000, this.interval);\n this.timerId = setInterval(() => {\n this.next();\n }, intervalMs);\n }\n\n private clearAutoplay(): void {\n if (this.timerId) {\n clearInterval(this.timerId);\n this.timerId = null;\n }\n }\n}\n","<div [class]=\"wrapperClass\" [attr.aria-label]=\"ariaLabel\">\n <div [class]=\"trackClass\" [style.transform]=\"trackStyle\">\n @for (item of items; track item) {\n <div [class]=\"slideClass\">\n @if (item.image) {\n <img\n [class]=\"imageClass\"\n [attr.src]=\"item.image\"\n [attr.alt]=\"item.alt ?? item.title ?? 'Carousel image'\"\n />\n }\n @if (item.title || item.description) {\n <div [class]=\"contentClass\">\n @if (item.title) {\n <div class=\"text-base font-semibold\">{{ item.title }}</div>\n }\n @if (item.description) {\n <div class=\"text-sm text-white/80\">{{ item.description }}</div>\n }\n </div>\n }\n </div>\n }\n </div>\n\n @if (showControls && items.length > 1) {\n <button\n type=\"button\"\n [class]=\"controlClass\"\n style=\"left: 12px\"\n aria-label=\"Previous slide\"\n (click)=\"previous()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-3\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\n </svg>\n </button>\n <button\n type=\"button\"\n [class]=\"controlClass\"\n style=\"right: 12px\"\n aria-label=\"Next slide\"\n (click)=\"next()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-3\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\" />\n </svg>\n\n </button>\n }\n\n @if (showIndicators && items.length > 1) {\n <div [class]=\"indicatorContainerClass\">\n @for (item of items; track item; let index = $index) {\n <button\n type=\"button\"\n [class]=\"indicatorClass(index === activeIndex)\"\n [attr.aria-label]=\"'Go to slide ' + (index + 1)\"\n (click)=\"goTo(index)\"\n ></button>\n }\n </div>\n }\n</div>\n","import {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\n\nexport type CxsDataTableAlign = 'left' | 'center' | 'right';\nexport type CxsDataTableSortDirection = 'asc' | 'desc';\nexport type CxsDataTableFilterType = 'text' | 'select' | 'number';\nexport type CxsDataTablePin = 'left' | 'right';\n\nexport interface CxsDataTableColumn {\n key: string;\n label: string;\n align?: CxsDataTableAlign;\n width?: string;\n sortable?: boolean;\n filterable?: boolean;\n filterType?: CxsDataTableFilterType;\n filterOptions?: Array<{ label: string; value: string }>;\n resizable?: boolean;\n pinned?: CxsDataTablePin;\n visible?: boolean;\n minWidth?: number;\n headerClass?: string;\n cellClass?: string;\n formatter?: (value: unknown, row: Record<string, unknown>) => string;\n}\n\nexport interface CxsDataTableSort {\n key: string;\n direction: CxsDataTableSortDirection;\n}\n\nconst WRAPPER_BASE_CLASSES = 'w-full overflow-hidden';\nconst WRAPPER_BORDERED_CLASSES =\n 'rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)]';\n\nconst TABLE_BASE_CLASSES = 'w-full border-collapse text-sm text-[var(--cxs-color-on-surface)]';\nconst TABLE_COMPACT_CLASSES = 'text-xs';\n\nconst HEADER_ROW_CLASSES =\n 'border-b border-[var(--cxs-color-border)] text-xs font-semibold ' +\n 'text-[var(--cxs-color-on-surface-muted)]';\nconst HEADER_CELL_BASE_CLASSES = 'px-3 py-2 text-left';\nconst HEADER_BUTTON_CLASSES =\n 'inline-flex items-center gap-2 rounded-[var(--cxs-radius-md)] px-2 py-1 ' +\n 'transition-colors hover:bg-[var(--cxs-color-surface-hover)] ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)]';\nconst HEADER_FILTER_INPUT_CLASSES =\n 'w-full rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)] px-2 py-1 text-xs text-[var(--cxs-color-on-surface)] ' +\n 'placeholder:text-[var(--cxs-color-on-surface-muted)] focus-visible:outline focus-visible:outline-2 ' +\n 'focus-visible:outline-offset-2 focus-visible:outline-[var(--cxs-color-focus)]';\n\nconst BODY_ROW_BASE_CLASSES = 'border-b border-[var(--cxs-color-border)] last:border-b-0';\nconst BODY_ROW_STRIPED_CLASSES = 'odd:bg-[var(--cxs-color-surface)] even:bg-[var(--cxs-color-surface-hover)]';\n\nconst BODY_CELL_BASE_CLASSES = 'px-3 py-2 align-top';\nconst BODY_CELL_COMPACT_CLASSES = 'px-2 py-1.5';\n\nconst ALIGN_CLASSES: Record<CxsDataTableAlign, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right'\n};\n\nconst EMPTY_ROW_CLASSES = 'text-sm text-[var(--cxs-color-on-surface-muted)]';\nconst PAGINATION_CLASSES =\n 'mt-4 flex flex-wrap items-center justify-between gap-3 text-sm text-[var(--cxs-color-on-surface)]';\nconst PAGE_BUTTON_CLASSES =\n 'inline-flex items-center justify-center rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'px-3 py-1.5 text-sm transition-colors hover:bg-[var(--cxs-color-surface-hover)] ' +\n 'disabled:cursor-not-allowed disabled:opacity-60';\nconst PAGE_SELECT_CLASSES =\n 'rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] bg-[var(--cxs-color-surface)] ' +\n 'px-2 py-1 text-sm';\nconst TOOLBAR_CLASSES =\n 'mb-3 flex flex-wrap items-center justify-between gap-3 text-sm text-[var(--cxs-color-on-surface)]';\nconst TOOLBAR_GROUP_CLASSES = 'flex flex-wrap items-center gap-2';\nconst TOOLBAR_INPUT_CLASSES =\n 'w-full rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)] px-3 py-2 text-sm text-[var(--cxs-color-on-surface)] ' +\n 'placeholder:text-[var(--cxs-color-on-surface-muted)] focus-visible:outline focus-visible:outline-2 ' +\n 'focus-visible:outline-offset-2 focus-visible:outline-[var(--cxs-color-focus)]';\nconst TOOLBAR_BUTTON_CLASSES =\n 'inline-flex items-center justify-center rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'px-3 py-2 text-sm transition-colors hover:bg-[var(--cxs-color-surface-hover)]';\nconst BULK_BAR_CLASSES =\n 'mb-3 flex flex-wrap items-center justify-between gap-3 rounded-[var(--cxs-radius-md)] ' +\n 'border border-[var(--cxs-color-border)] bg-[var(--cxs-color-surface)] px-3 py-2 text-sm';\nconst RESIZE_HANDLE_CLASSES =\n 'absolute right-0 top-0 h-full w-2 cursor-col-resize touch-none';\n\n@Component({\n selector: 'cxs-data-table',\n standalone: true,\n templateUrl: './data-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsDataTableComponent implements OnChanges {\n @Input() columns: CxsDataTableColumn[] = [];\n @Input() data: Array<Record<string, unknown>> = [];\n @Input() caption?: string;\n @Input() ariaLabel = 'Data table';\n @Input() striped = false;\n @Input() bordered = false;\n @Input() compact = false;\n @Input() loading = false;\n @Input() emptyMessage = 'No data available';\n @Input() emptyCell = '—';\n\n @Input() pageSize = 10;\n @Input() pageIndex = 1;\n @Input() pageSizeOptions: number[] = [10, 20, 50];\n @Input() showPagination = true;\n @Input() showPageSize = true;\n @Input() manualPagination = false;\n @Input() total?: number;\n\n @Input() sortKey?: string;\n @Input() sortDirection: CxsDataTableSortDirection = 'asc';\n @Input() manualSort = false;\n\n @Input() showToolbar = true;\n @Input() showFilters = true;\n @Input() showColumnVisibility = true;\n @Input() showGlobalSearch = true;\n @Input() manualFilter = false;\n\n @Input() selectable = false;\n @Input() rowKey = 'id';\n @Input() selectedKeys: Array<string | number> = [];\n @Input() bulkActions: Array<{ id: string; label: string }> = [];\n\n @Output() pageChange = new EventEmitter<number>();\n @Output() pageSizeChange = new EventEmitter<number>();\n @Output() sortChange = new EventEmitter<CxsDataTableSort>();\n @Output() filterChange = new EventEmitter<{\n global: string;\n columns: Record<string, string>;\n }>();\n @Output() selectionChange = new EventEmitter<Array<string | number>>();\n @Output() bulkAction = new EventEmitter<{\n id: string;\n selected: Array<Record<string, unknown>>;\n }>();\n\n protected currentPage = 1;\n protected currentPageSize = 10;\n protected globalFilter = '';\n protected columnFilters: Record<string, string> = {};\n protected columnVisibility: Record<string, boolean> = {};\n protected columnWidths: Record<string, string> = {};\n protected isResizing = false;\n protected resizingColumn?: string;\n protected pinnedOffsetsLeft: Record<string, number> = {};\n protected pinnedOffsetsRight: Record<string, number> = {};\n protected filtersOpen = true;\n\n private resizeStartX = 0;\n private resizeStartWidth = 0;\n\n constructor(@Attribute('class') private readonly hostClass: string | null) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['pageIndex']) {\n this.currentPage = Math.max(1, this.pageIndex);\n }\n if (changes['pageSize']) {\n this.currentPageSize = Math.max(1, this.pageSize);\n }\n if (changes['columns']) {\n this.initializeVisibility();\n this.initializeWidths();\n this.updatePinnedOffsets();\n }\n if (changes['showFilters']) {\n this.filtersOpen = this.showFilters;\n }\n if (changes['selectedKeys']) {\n this.selectedKeys = [...this.selectedKeys];\n }\n }\n\n get wrapperClass(): string {\n return [\n WRAPPER_BASE_CLASSES,\n this.bordered ? WRAPPER_BORDERED_CLASSES : '',\n this.hostClass\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n get tableClass(): string {\n return [TABLE_BASE_CLASSES, this.compact ? TABLE_COMPACT_CLASSES : '']\n .filter(Boolean)\n .join(' ');\n }\n\n get headerRowClass(): string {\n return HEADER_ROW_CLASSES;\n }\n\n get bodyRowClass(): string {\n return [\n BODY_ROW_BASE_CLASSES,\n this.striped ? BODY_ROW_STRIPED_CLASSES : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n get emptyRowClass(): string {\n return EMPTY_ROW_CLASSES;\n }\n\n get paginationClass(): string {\n return PAGINATION_CLASSES;\n }\n\n get pageButtonClass(): string {\n return PAGE_BUTTON_CLASSES;\n }\n\n get pageSelectClass(): string {\n return PAGE_SELECT_CLASSES;\n }\n\n get toolbarClass(): string {\n return TOOLBAR_CLASSES;\n }\n\n get toolbarGroupClass(): string {\n return TOOLBAR_GROUP_CLASSES;\n }\n\n get toolbarInputClass(): string {\n return TOOLBAR_INPUT_CLASSES;\n }\n\n get toolbarButtonClass(): string {\n return TOOLBAR_BUTTON_CLASSES;\n }\n\n get bulkBarClass(): string {\n return BULK_BAR_CLASSES;\n }\n\n get resizeHandleClass(): string {\n return RESIZE_HANDLE_CLASSES;\n }\n\n get colSpan(): number {\n return Math.max(this.visibleColumns.length + (this.selectable ? 1 : 0), 1);\n }\n\n get totalItems(): number {\n if (this.manualPagination && this.total !== undefined) {\n return this.total;\n }\n\n return this.data.length;\n }\n\n get totalPages(): number {\n return Math.max(1, Math.ceil(this.totalItems / this.currentPageSize));\n }\n\n get pageLabel(): string {\n return `Page ${this.currentPage} of ${this.totalPages}`;\n }\n\n get displayRows(): Array<Record<string, unknown>> {\n const filtered = this.manualFilter ? this.data : this.getFilteredData(this.data);\n const sorted = this.manualSort ? filtered : this.getSortedData(filtered);\n if (this.manualPagination) {\n return sorted;\n }\n\n const start = (this.currentPage - 1) * this.currentPageSize;\n return sorted.slice(start, start + this.currentPageSize);\n }\n\n get visibleColumns(): CxsDataTableColumn[] {\n return this.columns.filter((column) => this.columnVisibility[column.key] !== false);\n }\n\n get selectedCount(): number {\n return this.selectedKeys.length;\n }\n\n get allVisibleSelected(): boolean {\n if (!this.displayRows.length) {\n return false;\n }\n\n return this.displayRows.every((row) => this.isSelected(row));\n }\n\n get someVisibleSelected(): boolean {\n return this.displayRows.some((row) => this.isSelected(row)) && !this.allVisibleSelected;\n }\n\n headerCellClass(column: CxsDataTableColumn): string {\n return [\n HEADER_CELL_BASE_CLASSES,\n ALIGN_CLASSES[column.align ?? 'left'],\n column.headerClass ?? ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n headerButtonClass(): string {\n return HEADER_BUTTON_CLASSES;\n }\n\n headerFilterInputClass(): string {\n return HEADER_FILTER_INPUT_CLASSES;\n }\n\n bodyCellClass(column: CxsDataTableColumn): string {\n return [\n BODY_CELL_BASE_CLASSES,\n this.compact ? BODY_CELL_COMPACT_CLASSES : '',\n ALIGN_CLASSES[column.align ?? 'left'],\n column.cellClass ?? ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n cellValue(row: Record<string, unknown>, column: CxsDataTableColumn): string {\n const value = row[column.key];\n if (column.formatter) {\n return column.formatter(value, row);\n }\n\n if (value === null || value === undefined || value === '') {\n return this.emptyCell;\n }\n\n return String(value);\n }\n\n columnWidth(column: CxsDataTableColumn): string | null {\n return this.columnWidths[column.key] ?? column.width ?? null;\n }\n\n columnMinWidth(column: CxsDataTableColumn): string | null {\n if (column.minWidth) {\n return `${column.minWidth}px`;\n }\n return null;\n }\n\n pinnedStyle(column: CxsDataTableColumn): Record<string, string> | null {\n if (!column.pinned) {\n return null;\n }\n\n if (column.pinned === 'left') {\n return { left: `${this.pinnedOffsetsLeft[column.key] ?? 0}px` };\n }\n\n return { right: `${this.pinnedOffsetsRight[column.key] ?? 0}px` };\n }\n\n pinnedLeft(column: CxsDataTableColumn): string | null {\n const style = this.pinnedStyle(column);\n return style ? style['left'] ?? null : null;\n }\n\n pinnedRight(column: CxsDataTableColumn): string | null {\n const style = this.pinnedStyle(column);\n return style ? style['right'] ?? null : null;\n }\n\n pinnedClass(column: CxsDataTableColumn): string {\n if (!column.pinned) {\n return '';\n }\n\n return 'sticky z-10';\n }\n\n ariaSort(column: CxsDataTableColumn): 'ascending' | 'descending' | 'none' | null {\n if (!column.sortable) {\n return null;\n }\n\n if (this.sortKey !== column.key) {\n return 'none';\n }\n\n return this.sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n\n onSort(column: CxsDataTableColumn): void {\n if (!column.sortable) {\n return;\n }\n\n if (this.sortKey === column.key) {\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n this.sortKey = column.key;\n this.sortDirection = 'asc';\n }\n\n this.sortChange.emit({\n key: this.sortKey,\n direction: this.sortDirection\n });\n }\n\n goToPage(page: number): void {\n const nextPage = Math.min(Math.max(1, page), this.totalPages);\n this.currentPage = nextPage;\n this.pageChange.emit(nextPage);\n }\n\n nextPage(): void {\n this.goToPage(this.currentPage + 1);\n }\n\n previousPage(): void {\n this.goToPage(this.currentPage - 1);\n }\n\n onPageSizeChange(value: string): void {\n const nextSize = Number(value);\n if (!Number.isFinite(nextSize) || nextSize <= 0) {\n return;\n }\n\n this.currentPageSize = nextSize;\n this.pageSizeChange.emit(nextSize);\n this.goToPage(1);\n }\n\n onGlobalFilterChange(value: string): void {\n this.globalFilter = value;\n this.emitFilterChange();\n this.goToPage(1);\n }\n\n onColumnFilterChange(columnKey: string, value: string): void {\n this.columnFilters[columnKey] = value;\n this.emitFilterChange();\n this.goToPage(1);\n }\n\n columnFilterValue(columnKey: string): string {\n return this.columnFilters[columnKey] || '';\n }\n\n toggleColumnVisibility(columnKey: string): void {\n this.columnVisibility[columnKey] = !this.columnVisibility[columnKey];\n this.updatePinnedOffsets();\n }\n\n toggleSelectAll(): void {\n if (this.allVisibleSelected) {\n this.selectedKeys = this.selectedKeys.filter(\n (key) => !this.displayRows.some((row) => this.rowIdentifier(row) === key)\n );\n } else {\n const keysToAdd = this.displayRows\n .map((row) => this.rowIdentifier(row))\n .filter((key) => !this.selectedKeys.includes(key));\n this.selectedKeys = [...this.selectedKeys, ...keysToAdd];\n }\n\n this.selectionChange.emit([...this.selectedKeys]);\n }\n\n toggleRowSelection(row: Record<string, unknown>): void {\n const key = this.rowIdentifier(row);\n if (this.selectedKeys.includes(key)) {\n this.selectedKeys = this.selectedKeys.filter((id) => id !== key);\n } else {\n this.selectedKeys = [...this.selectedKeys, key];\n }\n\n this.selectionChange.emit([...this.selectedKeys]);\n }\n\n isSelected(row: Record<string, unknown>): boolean {\n return this.selectedKeys.includes(this.rowIdentifier(row));\n }\n\n runBulkAction(actionId: string): void {\n this.bulkAction.emit({\n id: actionId,\n selected: this.data.filter((row) => this.selectedKeys.includes(this.rowIdentifier(row)))\n });\n }\n\n onResizeStart(event: MouseEvent, column: CxsDataTableColumn): void {\n if (column.resizable === false) {\n return;\n }\n\n event.preventDefault();\n const header = (event.target as HTMLElement).closest('th') as HTMLElement | null;\n if (!header) {\n return;\n }\n\n this.isResizing = true;\n this.resizingColumn = column.key;\n this.resizeStartX = event.clientX;\n this.resizeStartWidth = header.getBoundingClientRect().width;\n\n const onMove = (moveEvent: MouseEvent) => {\n if (!this.isResizing || !this.resizingColumn) {\n return;\n }\n const delta = moveEvent.clientX - this.resizeStartX;\n const minWidth = column.minWidth ?? 80;\n const nextWidth = Math.max(minWidth, this.resizeStartWidth + delta);\n this.columnWidths[this.resizingColumn] = `${Math.round(nextWidth)}px`;\n this.updatePinnedOffsets();\n };\n\n const onUp = () => {\n this.isResizing = false;\n this.resizingColumn = undefined;\n window.removeEventListener('mousemove', onMove);\n window.removeEventListener('mouseup', onUp);\n };\n\n window.addEventListener('mousemove', onMove);\n window.addEventListener('mouseup', onUp);\n }\n\n private getSortedData(rows: Array<Record<string, unknown>>): Array<Record<string, unknown>> {\n if (!this.sortKey) {\n return rows;\n }\n\n const direction = this.sortDirection === 'asc' ? 1 : -1;\n return [...rows].sort((a, b) => {\n const valueA = a[this.sortKey ?? ''];\n const valueB = b[this.sortKey ?? ''];\n const normalizedA = valueA === null || valueA === undefined ? '' : String(valueA);\n const normalizedB = valueB === null || valueB === undefined ? '' : String(valueB);\n return normalizedA.localeCompare(normalizedB, undefined, { numeric: true }) * direction;\n });\n }\n\n private getFilteredData(rows: Array<Record<string, unknown>>): Array<Record<string, unknown>> {\n const global = this.globalFilter.trim().toLowerCase();\n const filters = this.columnFilters;\n\n return rows.filter((row) => {\n if (global) {\n const matchesGlobal = this.visibleColumns.some((column) => {\n const value = row[column.key];\n return String(value ?? '').toLowerCase().includes(global);\n });\n if (!matchesGlobal) {\n return false;\n }\n }\n\n return this.visibleColumns.every((column) => {\n if (!column.filterable) {\n return true;\n }\n const filterValue = (filters[column.key] ?? '').trim().toLowerCase();\n if (!filterValue) {\n return true;\n }\n const raw = row[column.key];\n const normalized = String(raw ?? '').toLowerCase();\n if (column.filterType === 'select') {\n return normalized === filterValue;\n }\n return normalized.includes(filterValue);\n });\n });\n }\n\n private emitFilterChange(): void {\n this.filterChange.emit({\n global: this.globalFilter,\n columns: { ...this.columnFilters }\n });\n }\n\n private initializeVisibility(): void {\n this.columnVisibility = this.columns.reduce((acc, column) => {\n acc[column.key] = column.visible !== false;\n return acc;\n }, {} as Record<string, boolean>);\n }\n\n private initializeWidths(): void {\n this.columnWidths = this.columns.reduce((acc, column) => {\n if (column.width) {\n acc[column.key] = column.width;\n }\n return acc;\n }, {} as Record<string, string>);\n }\n\n private updatePinnedOffsets(): void {\n const leftOffsets: Record<string, number> = {};\n const rightOffsets: Record<string, number> = {};\n let left = 0;\n let right = 0;\n const columns = this.visibleColumns;\n\n columns.forEach((column) => {\n if (column.pinned === 'left') {\n leftOffsets[column.key] = left;\n left += this.getWidthValue(column);\n }\n });\n\n [...columns].reverse().forEach((column) => {\n if (column.pinned === 'right') {\n rightOffsets[column.key] = right;\n right += this.getWidthValue(column);\n }\n });\n\n this.pinnedOffsetsLeft = leftOffsets;\n this.pinnedOffsetsRight = rightOffsets;\n }\n\n private getWidthValue(column: CxsDataTableColumn): number {\n const width = this.columnWidths[column.key] ?? column.width;\n if (!width) {\n return 160;\n }\n const match = width.match(/(\\d+)(px)?/);\n if (match) {\n return Number(match[1]);\n }\n return 160;\n }\n\n private rowIdentifier(row: Record<string, unknown>): string | number {\n const value = row[this.rowKey];\n if (value === undefined || value === null) {\n return JSON.stringify(row);\n }\n return value as string | number;\n }\n}\n","@if (showToolbar) {\n <div [class]=\"toolbarClass\">\n <div [class]=\"toolbarGroupClass\">\n @if (showGlobalSearch) {\n <input\n type=\"search\"\n [class]=\"toolbarInputClass\"\n placeholder=\"Search\"\n [value]=\"globalFilter\"\n (input)=\"onGlobalFilterChange($any($event.target).value)\"\n />\n }\n </div>\n <div [class]=\"toolbarGroupClass\">\n @if (showFilters) {\n <button type=\"button\" [class]=\"toolbarButtonClass\" (click)=\"filtersOpen = !filtersOpen\">\n Filters\n </button>\n }\n @if (showColumnVisibility) {\n <details class=\"relative\">\n <summary [class]=\"toolbarButtonClass\">Columns</summary>\n <div\n class=\"absolute right-0 mt-2 w-48 rounded-(--cxs-radius-md) border border-(--cxs-color-border) bg-(--cxs-color-surface) p-2 shadow-(--cxs-shadow-sm)\"\n >\n @for (column of columns; track column) {\n <label class=\"flex items-center gap-2 px-2 py-1 text-sm\">\n <input\n type=\"checkbox\"\n [checked]=\"columnVisibility[column.key]\"\n (change)=\"toggleColumnVisibility(column.key)\"\n />\n <span>{{ column.label }}</span>\n </label>\n }\n </div>\n </details>\n }\n </div>\n </div>\n}\n\n@if (selectable && selectedCount > 0 && bulkActions.length > 0) {\n <div [class]=\"bulkBarClass\">\n <span>{{ selectedCount }} selected</span>\n <div class=\"flex flex-wrap items-center gap-2\">\n @for (action of bulkActions; track action) {\n <button type=\"button\" [class]=\"toolbarButtonClass\" (click)=\"runBulkAction(action.id)\">\n {{ action.label }}\n </button>\n }\n </div>\n </div>\n}\n\n<div [class]=\"wrapperClass\">\n <table [class]=\"tableClass\" [attr.aria-label]=\"ariaLabel\">\n @if (caption) {\n <caption class=\"sr-only\">{{ caption }}</caption>\n }\n <thead>\n <tr [class]=\"headerRowClass\">\n @if (selectable) {\n <th class=\"px-3 py-2\">\n <input\n type=\"checkbox\"\n [checked]=\"allVisibleSelected\"\n [indeterminate]=\"someVisibleSelected\"\n (change)=\"toggleSelectAll()\"\n aria-label=\"Select all rows\"\n />\n </th>\n }\n @for (column of visibleColumns; track column) {\n <th\n class=\"relative\"\n [class]=\"headerCellClass(column) + ' ' + pinnedClass(column)\"\n [style.width]=\"columnWidth(column)\"\n [style.minWidth]=\"columnMinWidth(column)\"\n [style.left]=\"pinnedLeft(column)\"\n [style.right]=\"pinnedRight(column)\"\n scope=\"col\"\n [attr.aria-sort]=\"ariaSort(column)\"\n >\n @if (column.sortable) {\n <button\n type=\"button\"\n [class]=\"headerButtonClass()\"\n (click)=\"onSort(column)\"\n >\n <span>{{ column.label }}</span>\n @if (sortKey === column.key) {\n @if (sortDirection === 'asc') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n class=\"h-4 w-4 text-(--cxs-color-on-surface-muted)\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18\"\n />\n </svg>\n } @else {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n class=\"h-4 w-4 text-(--cxs-color-on-surface-muted)\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M19.5 13.5 12 21m0 0-7.5-7.5M12 21V3\"\n />\n </svg>\n }\n }\n </button>\n } @else {\n {{ column.label }}\n }\n @if (column.resizable !== false) {\n <span\n [class]=\"resizeHandleClass\"\n (mousedown)=\"onResizeStart($event, column)\"\n ></span>\n }\n </th>\n }\n </tr>\n @if (showFilters && filtersOpen) {\n <tr [class]=\"headerRowClass\">\n @if (selectable) {\n <th class=\"px-3 py-2\"></th>\n }\n @for (column of visibleColumns; track column) {\n <th\n [class]=\"headerCellClass(column) + ' ' + pinnedClass(column)\"\n [style.left]=\"pinnedLeft(column)\"\n [style.right]=\"pinnedRight(column)\"\n >\n @if (column.filterable) {\n @if (column.filterType === 'select') {\n <select\n [class]=\"headerFilterInputClass()\"\n [value]=\"columnFilterValue(column.key)\"\n (change)=\"onColumnFilterChange(column.key, $any($event.target).value)\"\n >\n <option value=\"\">All</option>\n @for (option of column.filterOptions ?? []; track option) {\n <option [value]=\"option.value\">{{ option.label }}</option>\n }\n </select>\n } @else {\n <input\n [class]=\"headerFilterInputClass()\"\n [attr.type]=\"column.filterType === 'number' ? 'number' : 'text'\"\n placeholder=\"Filter\"\n [value]=\"columnFilterValue(column.key)\"\n (input)=\"onColumnFilterChange(column.key, $any($event.target).value)\"\n />\n }\n }\n </th>\n }\n </tr>\n }\n </thead>\n <tbody>\n @if (loading) {\n <tr [class]=\"bodyRowClass\">\n <td [class]=\"bodyCellClass({ key: '', label: '' })\" [attr.colspan]=\"colSpan\">\n <span [class]=\"emptyRowClass\">Loading...</span>\n </td>\n </tr>\n } @else if (displayRows.length === 0) {\n <tr [class]=\"bodyRowClass\">\n <td [class]=\"bodyCellClass({ key: '', label: '' })\" [attr.colspan]=\"colSpan\">\n <span [class]=\"emptyRowClass\">{{ emptyMessage }}</span>\n </td>\n </tr>\n } @else {\n @for (row of displayRows; track row) {\n <tr [class]=\"bodyRowClass\">\n @if (selectable) {\n <td class=\"px-3 py-2\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(row)\"\n (change)=\"toggleRowSelection(row)\"\n aria-label=\"Select row\"\n />\n </td>\n }\n @for (column of visibleColumns; track column) {\n <td\n [class]=\"bodyCellClass(column) + ' ' + pinnedClass(column)\"\n [style.left]=\"pinnedLeft(column)\"\n [style.right]=\"pinnedRight(column)\"\n >\n {{ cellValue(row, column) }}\n </td>\n }\n </tr>\n }\n }\n </tbody>\n </table>\n</div>\n\n@if (showPagination) {\n <div [class]=\"paginationClass\">\n <div class=\"flex items-center gap-2\">\n <button\n type=\"button\"\n [class]=\"pageButtonClass\"\n [disabled]=\"currentPage <= 1\"\n (click)=\"previousPage()\"\n >\n Previous\n </button>\n <button\n type=\"button\"\n [class]=\"pageButtonClass\"\n [disabled]=\"currentPage >= totalPages\"\n (click)=\"nextPage()\"\n >\n Next\n </button>\n <span class=\"text-(--cxs-color-on-surface-muted)\">{{ pageLabel }}</span>\n </div>\n @if (showPageSize) {\n <label class=\"flex items-center gap-2 text-(--cxs-color-on-surface-muted)\">\n <span>Rows</span>\n <select\n #pageSizeSelect\n [class]=\"pageSelectClass\"\n [value]=\"currentPageSize\"\n (change)=\"onPageSizeChange(pageSizeSelect.value)\"\n >\n @for (size of pageSizeOptions; track size) {\n <option [value]=\"size\">{{ size }}</option>\n }\n </select>\n </label>\n }\n </div>\n}\n","import {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\nexport type CxsDialogSize = 'sm' | 'md' | 'lg';\nexport type CxsDialogCloseReason = 'dismiss' | 'backdrop' | 'escape';\n\nconst OVERLAY_CLASSES =\n 'fixed inset-0 z-50 flex items-center justify-center bg-[rgba(15,23,42,0.45)] p-4';\nconst PANEL_BASE_CLASSES =\n 'w-full rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] shadow-[var(--cxs-shadow-sm)] ' +\n 'p-6 outline-none';\n\nconst PANEL_SIZE_CLASSES: Record<CxsDialogSize, string> = {\n sm: 'max-w-sm',\n md: 'max-w-lg',\n lg: 'max-w-2xl'\n};\n\nconst TITLE_CLASSES = 'text-lg font-semibold';\nconst DESCRIPTION_CLASSES = 'mt-1 text-sm text-[var(--cxs-color-on-surface-muted)]';\nconst BODY_CLASSES = 'mt-4 text-sm text-[var(--cxs-color-on-surface)]';\nconst ACTIONS_CLASSES =\n 'mt-6 flex flex-wrap items-center justify-end gap-2 ' +\n '[&>*]:flex [&>*]:flex-wrap [&>*]:items-center [&>*]:justify-end [&>*]:gap-2';\nconst CLOSE_BUTTON_CLASSES =\n 'inline-flex h-8 w-8 items-center justify-center rounded-[var(--cxs-radius-md)] ' +\n 'text-[var(--cxs-color-on-surface)] transition-colors hover:bg-[var(--cxs-color-surface-hover)] ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)]';\n\n@Component({\n selector: 'cxs-dialog',\n standalone: true,\n templateUrl: './dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsDialogComponent implements OnChanges, AfterViewInit {\n private static nextId = 0;\n\n @Input() open = false;\n @Input() title?: string;\n @Input() description?: string;\n @Input() ariaLabel = 'Dialog';\n @Input() size: CxsDialogSize = 'md';\n @Input() dismissible = true;\n @Input() closeOnBackdrop = true;\n @Input() closeOnEscape = true;\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() closed = new EventEmitter<CxsDialogCloseReason>();\n\n @ViewChild('dialogPanel') private readonly dialogPanel?: ElementRef<HTMLElement>;\n\n readonly titleId = `cxs-dialog-title-${CxsDialogComponent.nextId++}`;\n readonly descriptionId = `cxs-dialog-description-${CxsDialogComponent.nextId++}`;\n\n constructor(@Attribute('class') private readonly hostClass: string | null) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['open']?.currentValue) {\n this.focusPanelSoon();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.open) {\n this.focusPanelSoon();\n }\n }\n\n get overlayClass(): string {\n return OVERLAY_CLASSES;\n }\n\n get panelClass(): string {\n return [PANEL_BASE_CLASSES, PANEL_SIZE_CLASSES[this.size], this.hostClass]\n .filter(Boolean)\n .join(' ');\n }\n\n get titleClass(): string {\n return TITLE_CLASSES;\n }\n\n get descriptionClass(): string {\n return DESCRIPTION_CLASSES;\n }\n\n get bodyClass(): string {\n return BODY_CLASSES;\n }\n\n get actionsClass(): string {\n return ACTIONS_CLASSES;\n }\n\n get closeButtonClass(): string {\n return CLOSE_BUTTON_CLASSES;\n }\n\n get ariaLabelValue(): string | null {\n if (this.title) {\n return null;\n }\n\n return this.ariaLabel;\n }\n\n requestClose(reason: CxsDialogCloseReason): void {\n this.openChange.emit(false);\n this.closed.emit(reason);\n }\n\n onBackdropClick(event: MouseEvent): void {\n if (!this.closeOnBackdrop || !this.open) {\n return;\n }\n\n if (event.target === event.currentTarget) {\n this.requestClose('backdrop');\n }\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (!this.closeOnEscape || !this.open) {\n return;\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.requestClose('escape');\n }\n }\n\n private focusPanelSoon(): void {\n queueMicrotask(() => {\n this.dialogPanel?.nativeElement.focus();\n });\n }\n}\n","@if (open) {\n <div [class]=\"overlayClass\" (click)=\"onBackdropClick($event)\">\n <div\n #dialogPanel\n [class]=\"panelClass\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"title ? titleId : null\"\n [attr.aria-describedby]=\"description ? descriptionId : null\"\n [attr.aria-label]=\"ariaLabelValue\"\n tabindex=\"-1\"\n (keydown)=\"onKeydown($event)\"\n >\n <div class=\"flex items-start gap-3\">\n <div class=\"flex-1\">\n @if (title) {\n <h2 [id]=\"titleId\" [class]=\"titleClass\">{{ title }}</h2>\n }\n @if (description) {\n <p [id]=\"descriptionId\" [class]=\"descriptionClass\">{{ description }}</p>\n }\n </div>\n @if (dismissible) {\n <button\n type=\"button\"\n [class]=\"closeButtonClass\"\n aria-label=\"Close dialog\"\n (click)=\"requestClose('dismiss')\"\n >\n X\n </button>\n }\n </div>\n\n <div [class]=\"bodyClass\">\n <ng-content></ng-content>\n </div>\n\n <div [class]=\"actionsClass\">\n <ng-content select=\"[cxsDialogActions]\"></ng-content>\n </div>\n </div>\n </div>\n}\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n forwardRef,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport type CxsDatepickerVariant = 'outline' | 'filled';\r\nexport type CxsDatepickerSize = 'sm' | 'md' | 'lg';\r\n\r\ntype CxsCalendarDay = {\r\n date: Date;\r\n label: string;\r\n inMonth: boolean;\r\n disabled: boolean;\r\n isToday: boolean;\r\n key: string;\r\n};\r\n\r\nconst BASE_CLASSES =\r\n 'w-full rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\r\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] ' +\r\n 'placeholder:text-[var(--cxs-color-on-surface-muted)] transition-colors ' +\r\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\r\n 'focus-visible:outline-[var(--cxs-color-focus)] focus-visible:border-[var(--cxs-color-focus)] ' +\r\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60';\r\n\r\nconst VARIANT_CLASSES: Record<CxsDatepickerVariant, string> = {\r\n outline: 'bg-[var(--cxs-color-surface)]',\r\n filled: 'bg-[var(--cxs-color-surface-hover)]'\r\n};\r\n\r\nconst SIZE_CLASSES: Record<CxsDatepickerSize, string> = {\r\n sm: 'h-8 px-3 text-sm',\r\n md: 'h-10 px-3 text-sm',\r\n lg: 'h-12 px-4 text-base'\r\n};\r\n\r\nconst INVALID_CLASSES =\r\n 'border-[var(--cxs-color-danger)] focus-visible:border-[var(--cxs-color-danger)] ' +\r\n 'focus-visible:outline-[var(--cxs-color-danger)]';\r\n\r\nconst POPOVER_CLASSES =\r\n 'absolute left-0 top-full z-10 mt-2 w-full rounded-[var(--cxs-radius-md)] border ' +\r\n 'border-[var(--cxs-color-border)] bg-[var(--cxs-color-surface)] p-3 shadow-[var(--cxs-shadow-sm)]';\r\n\r\nconst NAV_BUTTON_CLASSES =\n 'inline-flex h-8 w-8 items-center justify-center rounded-[var(--cxs-radius-md)] ' +\n 'text-[var(--cxs-color-on-surface)] transition-colors hover:bg-[var(--cxs-color-surface-hover)] ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)]';\n\nconst SELECT_CLASSES =\n 'h-8 rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] text-xs px-2 ' +\n 'transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)]';\n\nconst DAY_BUTTON_BASE =\n 'flex h-8 w-8 items-center justify-center rounded-[var(--cxs-radius-md)] text-xs ' +\n 'transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)] disabled:cursor-not-allowed disabled:opacity-40';\n\r\nconst DAY_OUTSIDE_MONTH = 'text-[var(--cxs-color-on-surface-muted)]';\r\nconst DAY_TODAY = 'border border-[var(--cxs-color-primary)]';\r\nconst DAY_SELECTED = 'bg-[var(--cxs-color-primary)] text-[var(--cxs-color-on-primary)]';\r\nconst DAY_HOVER = 'hover:bg-[var(--cxs-color-surface-hover)]';\r\n\r\n@Component({\r\n selector: 'cxs-datepicker',\r\n standalone: true,\r\n templateUrl: './datepicker.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CxsDatepickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CxsDatepickerComponent implements ControlValueAccessor {\n @Input() value = '';\r\n @Input() variant: CxsDatepickerVariant = 'outline';\r\n @Input() size: CxsDatepickerSize = 'md';\r\n @Input() useNative = true;\r\n @Input() disabled = false;\r\n @Input() readonly = false;\r\n @Input() required = false;\r\n @Input() invalid = false;\r\n @Input() autofocus = false;\r\n\r\n @Input() id?: string;\r\n @Input() name?: string;\r\n @Input() min?: string;\r\n @Input() max?: string;\r\n @Input() placeholder?: string;\r\n @Input() ariaLabel?: string;\r\n @Input() ariaDescribedby?: string;\r\n\r\n @Output() valueChange = new EventEmitter<string>();\r\n\r\n private static nextId = 0;\r\n private readonly fallbackId = `cxs-datepicker-panel-${CxsDatepickerComponent.nextId++}`;\r\n private disabledFromControl = false;\r\n private onChange: (value: string) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n isOpen = false;\n displayMonth = new Date();\n calendarDays: CxsCalendarDay[] = [];\n readonly weekDayLabels = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n readonly monthOptions = Array.from({ length: 12 }, (_, index) => ({\n value: index,\n label: new Date(2020, index, 1).toLocaleString('en-US', { month: 'short' })\n }));\n\r\n get isDisabled(): boolean {\r\n return this.disabled || this.disabledFromControl;\r\n }\r\n\r\n get panelId(): string {\r\n return this.id ? `${this.id}-panel` : this.fallbackId;\r\n }\r\n\r\n get inputClass(): string {\r\n return [\r\n BASE_CLASSES,\r\n SIZE_CLASSES[this.size],\r\n VARIANT_CLASSES[this.variant],\r\n this.invalid ? INVALID_CLASSES : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n get popoverClass(): string {\r\n return POPOVER_CLASSES;\r\n }\r\n\r\n get navButtonClass(): string {\n return NAV_BUTTON_CLASSES;\n }\n\n get selectClass(): string {\n return SELECT_CLASSES;\n }\n\n get displayMonthLabel(): string {\n return this.displayMonth.toLocaleString('en-US', { month: 'long', year: 'numeric' });\n }\n\n get yearOptions(): number[] {\n const baseYear = this.displayMonth.getFullYear();\n const minYear = this.parseDate(this.min)?.getFullYear() ?? baseYear - 10;\n const maxYear = this.parseDate(this.max)?.getFullYear() ?? baseYear + 10;\n\n const start = Math.min(minYear, maxYear);\n const end = Math.max(minYear, maxYear);\n\n return Array.from({ length: end - start + 1 }, (_, index) => start + index);\n }\n\n writeValue(value: string | null): void {\r\n this.value = value ?? '';\r\n this.syncDisplayMonthWithValue();\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabledFromControl = isDisabled;\r\n }\r\n\r\n onInput(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n const nextValue = target.value;\r\n\r\n this.value = nextValue;\r\n this.onChange(nextValue);\r\n this.valueChange.emit(nextValue);\r\n }\r\n\r\n onDateSelect(day: CxsCalendarDay): void {\r\n if (day.disabled || this.isDisabled) {\r\n return;\r\n }\r\n\r\n const nextValue = this.formatDate(day.date);\r\n this.value = nextValue;\r\n this.onChange(nextValue);\r\n this.valueChange.emit(nextValue);\r\n this.isOpen = false;\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouched();\r\n }\r\n\r\n open(): void {\r\n if (this.isDisabled || this.useNative) {\r\n return;\r\n }\r\n this.isOpen = true;\r\n this.syncDisplayMonthWithValue();\r\n }\r\n\r\n toggle(): void {\r\n if (this.isOpen) {\r\n this.isOpen = false;\r\n return;\r\n }\r\n this.open();\r\n }\r\n\r\n prevMonth(): void {\n this.displayMonth = new Date(this.displayMonth.getFullYear(), this.displayMonth.getMonth() - 1, 1);\n this.updateCalendar();\n }\n\n nextMonth(): void {\n this.displayMonth = new Date(this.displayMonth.getFullYear(), this.displayMonth.getMonth() + 1, 1);\n this.updateCalendar();\n }\n\n onMonthChange(event: Event): void {\n const target = event.target as HTMLSelectElement;\n const nextMonth = Number(target.value);\n if (Number.isNaN(nextMonth)) {\n return;\n }\n this.displayMonth = new Date(this.displayMonth.getFullYear(), nextMonth, 1);\n this.updateCalendar();\n }\n\n onYearChange(event: Event): void {\n const target = event.target as HTMLSelectElement;\n const nextYear = Number(target.value);\n if (Number.isNaN(nextYear)) {\n return;\n }\n this.displayMonth = new Date(nextYear, this.displayMonth.getMonth(), 1);\n this.updateCalendar();\n }\n\n dayButtonClass(day: CxsCalendarDay): string {\r\n return [\r\n DAY_BUTTON_BASE,\r\n day.inMonth ? '' : DAY_OUTSIDE_MONTH,\r\n day.isToday ? DAY_TODAY : '',\r\n this.isSelected(day.date) ? DAY_SELECTED : DAY_HOVER\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent): void {\r\n if (this.useNative || !this.isOpen) {\r\n return;\r\n }\r\n const target = event.target as HTMLElement | null;\r\n if (target && !target.closest(`#${this.panelId}`) && !target.closest(`[data-cxs-datepicker=\"${this.panelId}\"]`)) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape')\r\n onEscape(): void {\r\n if (this.useNative || !this.isOpen) {\r\n return;\r\n }\r\n this.isOpen = false;\r\n }\r\n\r\n private syncDisplayMonthWithValue(): void {\r\n const selected = this.parseDate(this.value);\r\n this.displayMonth = selected ?? new Date();\r\n this.updateCalendar();\r\n }\r\n\r\n private updateCalendar(): void {\r\n const year = this.displayMonth.getFullYear();\r\n const month = this.displayMonth.getMonth();\r\n const startOfMonth = new Date(year, month, 1);\r\n const startDay = startOfMonth.getDay();\r\n const calendarStart = new Date(year, month, 1 - startDay);\r\n const minDate = this.parseDate(this.min);\r\n const maxDate = this.parseDate(this.max);\r\n const today = this.stripTime(new Date());\r\n\r\n this.calendarDays = Array.from({ length: 42 }, (_, index) => {\r\n const date = new Date(\r\n calendarStart.getFullYear(),\r\n calendarStart.getMonth(),\r\n calendarStart.getDate() + index\r\n );\r\n const dayValue = this.stripTime(date);\r\n const disabled =\r\n (minDate && dayValue < minDate) || (maxDate && dayValue > maxDate) || this.isDisabled;\r\n\r\n return {\r\n date,\r\n label: String(date.getDate()),\r\n inMonth: date.getMonth() === month,\r\n disabled,\r\n isToday: dayValue.getTime() === today.getTime(),\r\n key: this.formatDate(date)\r\n };\r\n });\r\n }\r\n\r\n private isSelected(date: Date): boolean {\r\n const selected = this.parseDate(this.value);\r\n if (!selected) {\r\n return false;\r\n }\r\n return (\r\n selected.getFullYear() === date.getFullYear() &&\r\n selected.getMonth() === date.getMonth() &&\r\n selected.getDate() === date.getDate()\r\n );\r\n }\r\n\r\n private parseDate(value?: string): Date | null {\r\n if (!value) {\r\n return null;\r\n }\r\n const [year, month, day] = value.split('-').map(Number);\r\n if (!year || !month || !day) {\r\n return null;\r\n }\r\n return new Date(year, month - 1, day);\r\n }\r\n\r\n private formatDate(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = `${date.getMonth() + 1}`.padStart(2, '0');\r\n const day = `${date.getDate()}`.padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n private stripTime(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n}\r\n","@if (useNative) {\r\n <input\r\n type=\"date\"\r\n [class]=\"inputClass\"\r\n [attr.id]=\"id\"\r\n [attr.name]=\"name\"\r\n [attr.min]=\"min\"\r\n [attr.max]=\"max\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.autofocus]=\"autofocus ? true : null\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"readonly\"\r\n [required]=\"required\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n} @else {\r\n <div class=\"relative w-full\">\r\n <input\r\n type=\"text\"\r\n [class]=\"inputClass\"\r\n [attr.id]=\"id\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-expanded]=\"isOpen ? 'true' : 'false'\"\r\n [attr.aria-controls]=\"panelId\"\r\n [attr.autofocus]=\"autofocus ? true : null\"\r\n [attr.data-cxs-datepicker]=\"panelId\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"true\"\r\n [required]=\"required\"\r\n (click)=\"open()\"\r\n (focus)=\"open()\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (isOpen) {\r\n <div [class]=\"popoverClass\" [attr.id]=\"panelId\" role=\"dialog\" aria-label=\"Choose date\">\r\n <div class=\"flex items-center justify-between\">\r\n <button type=\"button\" [class]=\"navButtonClass\" aria-label=\"Previous month\" (click)=\"prevMonth()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-3\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\r\n </svg>\r\n </button>\r\n <div class=\"flex items-center gap-2\">\r\n <select\r\n [class]=\"selectClass\"\r\n [disabled]=\"isDisabled\"\r\n [value]=\"displayMonth.getMonth()\"\r\n aria-label=\"Month\"\r\n (change)=\"onMonthChange($event)\"\r\n >\r\n @for (month of monthOptions; track month.value) {\r\n <option [value]=\"month.value\">{{ month.label }}</option>\r\n }\r\n </select>\r\n <select\r\n [class]=\"selectClass\"\r\n [disabled]=\"isDisabled\"\r\n [value]=\"displayMonth.getFullYear()\"\r\n aria-label=\"Year\"\r\n (change)=\"onYearChange($event)\"\r\n >\r\n @for (year of yearOptions; track year) {\r\n <option [value]=\"year\">{{ year }}</option>\r\n }\r\n </select>\r\n </div>\r\n <button type=\"button\" [class]=\"navButtonClass\" aria-label=\"Next month\" (click)=\"nextMonth()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-3\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <div class=\"mt-3 grid grid-cols-7 gap-1 text-center text-xs text-(--cxs-color-on-surface-muted)\">\r\n @for (label of weekDayLabels; track label) {\r\n <div>{{ label }}</div>\r\n }\r\n </div>\r\n\r\n <div class=\"mt-2 grid grid-cols-7 gap-1\" role=\"grid\">\r\n @for (day of calendarDays; track day.key) {\r\n <button\r\n type=\"button\"\r\n [class]=\"dayButtonClass(day)\"\r\n [disabled]=\"day.disabled\"\r\n [attr.data-date]=\"day.key\"\r\n [attr.aria-selected]=\"day.key === value ? 'true' : 'false'\"\r\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\r\n (click)=\"onDateSelect(day)\"\r\n >\r\n {{ day.label }}\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport type CxsInputVariant = 'outline' | 'filled';\r\nexport type CxsInputSize = 'sm' | 'md' | 'lg';\r\nexport type CxsInputType =\r\n | 'text'\r\n | 'email'\r\n | 'password'\r\n | 'search'\r\n | 'tel'\r\n | 'url'\r\n | 'number';\r\n\r\nconst BASE_CLASSES =\r\n 'w-full rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\r\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] ' +\r\n 'placeholder:text-[var(--cxs-color-on-surface-muted)] transition-colors ' +\r\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\r\n 'focus-visible:outline-[var(--cxs-color-focus)] focus-visible:border-[var(--cxs-color-focus)] ' +\r\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60';\r\n\r\nconst VARIANT_CLASSES: Record<CxsInputVariant, string> = {\r\n outline: 'bg-[var(--cxs-color-surface)]',\r\n filled: 'bg-[var(--cxs-color-surface-hover)]'\r\n};\r\n\r\nconst SIZE_CLASSES: Record<CxsInputSize, string> = {\r\n sm: 'h-8 px-3 text-sm',\r\n md: 'h-10 px-3 text-sm',\r\n lg: 'h-12 px-4 text-base'\r\n};\r\n\r\nconst INVALID_CLASSES =\r\n 'border-[var(--cxs-color-danger)] focus-visible:border-[var(--cxs-color-danger)] ' +\r\n 'focus-visible:outline-[var(--cxs-color-danger)]';\r\n\r\n@Component({\r\n selector: 'cxs-input',\r\n standalone: true,\r\n templateUrl: './input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CxsInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CxsInputComponent implements ControlValueAccessor {\r\n @Input() value = '';\r\n @Input() type: CxsInputType = 'text';\r\n @Input() variant: CxsInputVariant = 'outline';\r\n @Input() size: CxsInputSize = 'md';\r\n @Input() disabled = false;\r\n @Input() readonly = false;\r\n @Input() required = false;\r\n @Input() invalid = false;\r\n @Input() autofocus = false;\r\n\r\n @Input() id?: string;\r\n @Input() name?: string;\r\n @Input() placeholder?: string;\r\n @Input() autocomplete?: string;\r\n @Input() inputmode?: string;\r\n @Input() spellcheck: boolean | null = null;\r\n @Input() ariaLabel?: string;\r\n @Input() ariaDescribedby?: string;\r\n\r\n @Output() valueChange = new EventEmitter<string>();\r\n\r\n private disabledFromControl = false;\r\n private onChange: (value: string) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled || this.disabledFromControl;\r\n }\r\n\r\n get inputClass(): string {\r\n return [\r\n BASE_CLASSES,\r\n SIZE_CLASSES[this.size],\r\n VARIANT_CLASSES[this.variant],\r\n this.invalid ? INVALID_CLASSES : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n writeValue(value: string | null): void {\r\n this.value = value ?? '';\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabledFromControl = isDisabled;\r\n }\r\n\r\n onInput(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n const nextValue = target.value;\r\n\r\n this.value = nextValue;\r\n this.onChange(nextValue);\r\n this.valueChange.emit(nextValue);\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouched();\r\n }\r\n}\r\n","<input\r\n [class]=\"inputClass\"\r\n [attr.id]=\"id\"\r\n [attr.name]=\"name\"\r\n [attr.type]=\"type\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [attr.inputmode]=\"inputmode\"\r\n [attr.spellcheck]=\"spellcheck === null ? null : spellcheck\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\r\n [attr.autofocus]=\"autofocus ? true : null\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"readonly\"\r\n [required]=\"required\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onBlur()\"\r\n/>\r\n","import {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChildren\n} from '@angular/core';\n\nexport type CxsMenubarSize = 'sm' | 'md' | 'lg';\nexport type CxsMenubarVariant = 'default' | 'surface';\n\nexport interface CxsMenubarItem {\n label: string;\n href?: string;\n target?: string;\n rel?: string;\n ariaLabel?: string;\n disabled?: boolean;\n active?: boolean;\n}\n\nconst BAR_BASE_CLASSES =\n 'm-0 flex list-none flex-wrap items-center gap-1 rounded-[var(--cxs-radius-md)] border border-transparent p-1';\n\nconst BAR_SIZE_CLASSES: Record<CxsMenubarSize, string> = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base'\n};\n\nconst BAR_VARIANT_CLASSES: Record<CxsMenubarVariant, string> = {\n default: 'bg-transparent',\n surface:\n 'bg-[var(--cxs-color-surface)] border-[var(--cxs-color-border)] shadow-[var(--cxs-shadow-sm)]'\n};\n\nconst ITEM_BASE_CLASSES =\n 'inline-flex items-center gap-2 rounded-[var(--cxs-radius-md)] px-3 py-1.5 font-medium ' +\n 'transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)]';\n\nconst ITEM_SIZE_CLASSES: Record<CxsMenubarSize, string> = {\n sm: 'px-2.5 py-1 text-xs',\n md: 'px-3 py-1.5 text-sm',\n lg: 'px-4 py-2 text-base'\n};\n\nconst ITEM_ACTIVE_CLASSES =\n 'bg-[var(--cxs-color-primary-ghost)] text-[var(--cxs-color-primary)]';\nconst ITEM_INACTIVE_CLASSES =\n 'text-[var(--cxs-color-on-surface)] hover:bg-[var(--cxs-color-surface-hover)]';\nconst ITEM_DISABLED_CLASSES =\n 'text-[var(--cxs-color-on-surface-muted)] opacity-60 pointer-events-none';\n\n@Component({\n selector: 'cxs-menubar',\n standalone: true,\n templateUrl: './menubar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsMenubarComponent {\n @Input() items: CxsMenubarItem[] = [];\n @Input() ariaLabel = 'Menubar';\n @Input() size: CxsMenubarSize = 'md';\n @Input() variant: CxsMenubarVariant = 'default';\n @Input() disabled = false;\n\n @Output() itemSelected = new EventEmitter<CxsMenubarItem>();\n\n @ViewChildren('menuItem', { read: ElementRef })\n private readonly menuItems?: QueryList<ElementRef<HTMLElement>>;\n\n constructor(@Attribute('class') private readonly hostClass: string | null) {}\n\n get menubarClass(): string {\n return [\n BAR_BASE_CLASSES,\n BAR_SIZE_CLASSES[this.size],\n BAR_VARIANT_CLASSES[this.variant],\n this.hostClass\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n isItemDisabled(item: CxsMenubarItem): boolean {\n return this.disabled || !!item.disabled;\n }\n\n getItemClass(item: CxsMenubarItem): string {\n return [\n ITEM_BASE_CLASSES,\n ITEM_SIZE_CLASSES[this.size],\n item.active ? ITEM_ACTIVE_CLASSES : ITEM_INACTIVE_CLASSES,\n this.isItemDisabled(item) ? ITEM_DISABLED_CLASSES : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n getItemHref(item: CxsMenubarItem): string | null {\n if (item.href && !this.isItemDisabled(item)) {\n return item.href;\n }\n\n return null;\n }\n\n getItemRel(item: CxsMenubarItem): string | null {\n if (item.target === '_blank') {\n return item.rel ?? 'noopener noreferrer';\n }\n\n return item.rel ?? null;\n }\n\n onItemClick(item: CxsMenubarItem, event: Event): void {\n if (this.isItemDisabled(item)) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.itemSelected.emit(item);\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (this.disabled) {\n return;\n }\n\n if (typeof document === 'undefined') {\n return;\n }\n\n const keys = ['ArrowRight', 'ArrowLeft', 'Home', 'End'];\n if (!keys.includes(event.key)) {\n return;\n }\n\n const items = this.getFocusableItems();\n if (!items.length) {\n return;\n }\n\n const currentIndex = items.findIndex((item) => item === document.activeElement);\n let nextIndex = 0;\n\n switch (event.key) {\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = items.length - 1;\n break;\n case 'ArrowRight':\n nextIndex = currentIndex >= 0 ? (currentIndex + 1) % items.length : 0;\n break;\n case 'ArrowLeft':\n nextIndex = currentIndex >= 0 ? (currentIndex - 1 + items.length) % items.length : items.length - 1;\n break;\n }\n\n items[nextIndex]?.focus();\n event.preventDefault();\n }\n\n private getFocusableItems(): HTMLElement[] {\n return (this.menuItems?.toArray() ?? [])\n .map((item) => item.nativeElement)\n .filter((item) => !item.hasAttribute('data-disabled'));\n }\n}\n","<nav [attr.aria-label]=\"ariaLabel\">\n <ul [class]=\"menubarClass\" role=\"menubar\" (keydown)=\"onKeydown($event)\">\n @for (item of items; track item) {\n <li>\n @if (item.href) {\n <a\n #menuItem\n role=\"menuitem\"\n [class]=\"getItemClass(item)\"\n [attr.href]=\"getItemHref(item)\"\n [attr.target]=\"item.target ?? null\"\n [attr.rel]=\"getItemRel(item)\"\n [attr.aria-label]=\"item.ariaLabel ?? null\"\n [attr.aria-current]=\"item.active ? 'page' : null\"\n [attr.aria-disabled]=\"isItemDisabled(item) ? 'true' : null\"\n [attr.tabindex]=\"isItemDisabled(item) ? -1 : null\"\n [attr.data-disabled]=\"isItemDisabled(item) ? '' : null\"\n (click)=\"onItemClick(item, $event)\"\n >\n {{ item.label }}\n </a>\n } @else {\n <button\n #menuItem\n type=\"button\"\n role=\"menuitem\"\n [class]=\"getItemClass(item)\"\n [disabled]=\"isItemDisabled(item)\"\n [attr.aria-label]=\"item.ariaLabel ?? null\"\n [attr.aria-current]=\"item.active ? 'page' : null\"\n [attr.data-disabled]=\"isItemDisabled(item) ? '' : null\"\n (click)=\"onItemClick(item, $event)\"\n >\n {{ item.label }}\n </button>\n }\n </li>\n }\n </ul>\n</nav>\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport type CxsRadioSize = 'sm' | 'md' | 'lg';\r\nexport type CxsRadioVariant = 'primary' | 'secondary';\r\n\r\nconst WRAPPER_BASE = 'inline-flex items-center gap-2 select-none';\r\nconst WRAPPER_ENABLED = 'cursor-pointer';\r\nconst WRAPPER_DISABLED = 'cursor-not-allowed opacity-60';\r\n\r\nconst LABEL_BASE = 'text-[var(--cxs-color-on-surface)]';\r\nconst LABEL_DISABLED = 'text-[var(--cxs-color-on-surface-muted)]';\r\nconst LABEL_SIZE_CLASSES: Record<CxsRadioSize, string> = {\r\n sm: 'text-sm',\r\n md: 'text-sm',\r\n lg: 'text-base'\r\n};\r\n\r\nconst CONTROL_BASE =\r\n \"relative flex shrink-0 items-center justify-center rounded-full border \" +\r\n \"bg-[var(--cxs-color-surface)] transition-colors \" +\r\n \"after:absolute after:inset-0 after:m-auto after:rounded-full after:content-[''] \" +\r\n 'after:transition-transform after:scale-0 peer-checked:after:scale-100 ' +\r\n 'peer-focus-visible:outline peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 ' +\r\n 'peer-focus-visible:outline-[var(--cxs-color-focus)]';\r\n\r\nconst CONTROL_SIZE_CLASSES: Record<CxsRadioSize, string> = {\r\n sm: 'h-4 w-4',\r\n md: 'h-5 w-5',\r\n lg: 'h-6 w-6'\r\n};\r\n\r\nconst CONTROL_VARIANT_CLASSES: Record<CxsRadioVariant, string> = {\r\n primary:\r\n 'peer-checked:border-[var(--cxs-color-primary)] after:bg-[var(--cxs-color-primary)]',\r\n secondary:\r\n 'peer-checked:border-[var(--cxs-color-on-surface)] after:bg-[var(--cxs-color-on-surface)]'\r\n};\r\n\r\nconst DOT_SIZE_CLASSES: Record<CxsRadioSize, string> = {\r\n sm: 'after:h-2 after:w-2',\r\n md: 'after:h-2.5 after:w-2.5',\r\n lg: 'after:h-3 after:w-3'\r\n};\r\n\r\nconst INVALID_CLASSES =\r\n 'border-[var(--cxs-color-danger)] peer-checked:border-[var(--cxs-color-danger)] ' +\r\n 'after:bg-[var(--cxs-color-danger)]';\r\n\r\n@Component({\r\n selector: 'cxs-radio',\r\n standalone: true,\r\n templateUrl: './radio.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CxsRadioComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CxsRadioComponent implements ControlValueAccessor {\r\n @Input() value = '';\r\n @Input() name?: string;\r\n @Input() variant: CxsRadioVariant = 'primary';\r\n @Input() size: CxsRadioSize = 'md';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() invalid = false;\r\n @Input() autofocus = false;\r\n\r\n @Input() id?: string;\r\n @Input() ariaLabel?: string;\r\n @Input() ariaDescribedby?: string;\r\n\r\n @Output() valueChange = new EventEmitter<string>();\r\n\r\n private selectedValue: string | null = null;\r\n private disabledFromControl = false;\r\n private onChange: (value: string) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled || this.disabledFromControl;\r\n }\r\n\r\n get isChecked(): boolean {\r\n return this.selectedValue !== null && this.selectedValue === this.value;\r\n }\r\n\r\n get wrapperClass(): string {\r\n return [\r\n WRAPPER_BASE,\r\n this.isDisabled ? WRAPPER_DISABLED : WRAPPER_ENABLED\r\n ].join(' ');\r\n }\r\n\r\n get labelClass(): string {\r\n return [\r\n LABEL_BASE,\r\n LABEL_SIZE_CLASSES[this.size],\r\n this.isDisabled ? LABEL_DISABLED : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n get controlClass(): string {\r\n return [\r\n CONTROL_BASE,\r\n CONTROL_SIZE_CLASSES[this.size],\r\n DOT_SIZE_CLASSES[this.size],\r\n CONTROL_VARIANT_CLASSES[this.variant],\r\n this.invalid ? INVALID_CLASSES : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n writeValue(value: string | null): void {\r\n this.selectedValue = value ?? null;\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabledFromControl = isDisabled;\r\n }\r\n\r\n onRadioChange(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n if (!target.checked) {\r\n return;\r\n }\r\n\r\n this.selectedValue = this.value;\r\n this.onChange(this.value);\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouched();\r\n }\r\n}\r\n","<label [class]=\"wrapperClass\">\r\n <input\r\n class=\"peer sr-only\"\r\n type=\"radio\"\r\n [attr.id]=\"id\"\r\n [attr.name]=\"name\"\r\n [attr.value]=\"value\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\r\n [attr.autofocus]=\"autofocus ? true : null\"\r\n [checked]=\"isChecked\"\r\n [disabled]=\"isDisabled\"\r\n [required]=\"required\"\r\n (change)=\"onRadioChange($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <span [class]=\"controlClass\" aria-hidden=\"true\"></span>\r\n <span [class]=\"labelClass\">\r\n <ng-content></ng-content>\r\n </span>\r\n</label>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport { NgIf } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport type CxsSelectVariant = 'outline' | 'filled';\r\nexport type CxsSelectSize = 'sm' | 'md' | 'lg';\r\n\r\nconst BASE_CLASSES =\r\n 'w-full appearance-none rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\r\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)] ' +\r\n 'placeholder:text-[var(--cxs-color-on-surface-muted)] transition-colors ' +\r\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\r\n 'focus-visible:outline-[var(--cxs-color-focus)] focus-visible:border-[var(--cxs-color-focus)] ' +\r\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60';\r\n\r\nconst VARIANT_CLASSES: Record<CxsSelectVariant, string> = {\r\n outline: 'bg-[var(--cxs-color-surface)]',\r\n filled: 'bg-[var(--cxs-color-surface-hover)]'\r\n};\r\n\r\nconst SIZE_CLASSES: Record<CxsSelectSize, string> = {\r\n sm: 'h-8 pl-3 pr-9 text-sm',\r\n md: 'h-10 pl-3 pr-9 text-sm',\r\n lg: 'h-12 pl-4 pr-10 text-base'\r\n};\r\n\r\nconst INVALID_CLASSES =\r\n 'border-[var(--cxs-color-danger)] focus-visible:border-[var(--cxs-color-danger)] ' +\r\n 'focus-visible:outline-[var(--cxs-color-danger)]';\r\n\r\n@Component({\r\n selector: 'cxs-select',\r\n standalone: true,\r\n imports: [NgIf],\r\n templateUrl: './select.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CxsSelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CxsSelectComponent implements ControlValueAccessor {\r\n @Input() value = '';\r\n @Input() variant: CxsSelectVariant = 'outline';\r\n @Input() size: CxsSelectSize = 'md';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() invalid = false;\r\n @Input() placeholder?: string;\r\n @Input() placeholderValue = '';\r\n\r\n @Input() id?: string;\r\n @Input() name?: string;\r\n @Input() ariaLabel?: string;\r\n @Input() ariaDescribedby?: string;\r\n\r\n @Output() valueChange = new EventEmitter<string>();\r\n\r\n private disabledFromControl = false;\r\n private onChange: (value: string) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled || this.disabledFromControl;\r\n }\r\n\r\n get selectClass(): string {\r\n return [\r\n BASE_CLASSES,\r\n SIZE_CLASSES[this.size],\r\n VARIANT_CLASSES[this.variant],\r\n this.invalid ? INVALID_CLASSES : ''\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n get selectValue(): string {\r\n if (this.placeholder && this.value === '') {\r\n return this.placeholderValue;\r\n }\r\n\r\n return this.value;\r\n }\r\n\r\n writeValue(value: string | null): void {\r\n this.value = value ?? '';\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabledFromControl = isDisabled;\r\n }\r\n\r\n onSelectChange(event: Event): void {\r\n const target = event.target as HTMLSelectElement;\r\n const nextValue = target.value;\r\n\r\n this.value = nextValue;\r\n this.onChange(nextValue);\r\n this.valueChange.emit(nextValue);\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"relative\">\r\n <select\r\n [class]=\"selectClass\"\r\n [attr.id]=\"id\"\r\n [attr.name]=\"name\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\r\n [disabled]=\"isDisabled\"\r\n [required]=\"required\"\r\n [value]=\"selectValue\"\r\n (change)=\"onSelectChange($event)\"\r\n (blur)=\"onBlur()\"\r\n >\r\n <option *ngIf=\"placeholder\" [value]=\"placeholderValue\" disabled>\r\n {{ placeholder }}\r\n </option>\r\n <ng-content></ng-content>\r\n </select>\r\n <span\r\n class=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[var(--cxs-color-on-surface-muted)]\"\r\n aria-hidden=\"true\"\r\n >\r\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"h-4 w-4\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M5.23 7.21a.75.75 0 0 1 1.06.02L10 10.94l3.71-3.71a.75.75 0 1 1 1.06 1.06l-4.24 4.25a.75.75 0 0 1-1.06 0L5.21 8.29a.75.75 0 0 1 .02-1.08Z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n</div>\r\n","import { Attribute, ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type CxsTableAlign = 'left' | 'center' | 'right';\n\nexport interface CxsTableColumn {\n key: string;\n label: string;\n align?: CxsTableAlign;\n width?: string;\n headerClass?: string;\n cellClass?: string;\n}\n\nconst WRAPPER_BASE_CLASSES = 'w-full overflow-hidden';\nconst WRAPPER_BORDERED_CLASSES =\n 'rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)]';\n\nconst TABLE_BASE_CLASSES = 'w-full border-collapse text-sm text-[var(--cxs-color-on-surface)]';\nconst TABLE_COMPACT_CLASSES = 'text-xs';\n\nconst HEADER_ROW_CLASSES =\n 'border-b border-[var(--cxs-color-border)] text-xs uppercase tracking-[0.2em] ' +\n 'text-[var(--cxs-color-on-surface-muted)]';\nconst HEADER_CELL_BASE_CLASSES = 'px-3 py-2 text-left font-semibold';\n\nconst BODY_ROW_BASE_CLASSES = 'border-b border-[var(--cxs-color-border)] last:border-b-0';\nconst BODY_ROW_STRIPED_CLASSES = 'odd:bg-[var(--cxs-color-surface)] even:bg-[var(--cxs-color-surface-hover)]';\n\nconst BODY_CELL_BASE_CLASSES = 'px-3 py-2 align-top';\nconst BODY_CELL_COMPACT_CLASSES = 'px-2 py-1.5';\n\nconst ALIGN_CLASSES: Record<CxsTableAlign, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right'\n};\n\nconst EMPTY_ROW_CLASSES = 'text-sm text-[var(--cxs-color-on-surface-muted)]';\n\n@Component({\n selector: 'cxs-table',\n standalone: true,\n templateUrl: './table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsTableComponent {\n @Input() columns: CxsTableColumn[] = [];\n @Input() data: Array<Record<string, unknown>> = [];\n @Input() caption?: string;\n @Input() ariaLabel = 'Table';\n @Input() striped = false;\n @Input() bordered = false;\n @Input() compact = false;\n @Input() emptyMessage = 'No data available';\n @Input() emptyCell = '—';\n\n constructor(@Attribute('class') private readonly hostClass: string | null) {}\n\n get wrapperClass(): string {\n return [\n WRAPPER_BASE_CLASSES,\n this.bordered ? WRAPPER_BORDERED_CLASSES : '',\n this.hostClass\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n get tableClass(): string {\n return [TABLE_BASE_CLASSES, this.compact ? TABLE_COMPACT_CLASSES : '']\n .filter(Boolean)\n .join(' ');\n }\n\n get headerRowClass(): string {\n return HEADER_ROW_CLASSES;\n }\n\n get bodyRowClass(): string {\n return [\n BODY_ROW_BASE_CLASSES,\n this.striped ? BODY_ROW_STRIPED_CLASSES : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n get emptyRowClass(): string {\n return EMPTY_ROW_CLASSES;\n }\n\n get colSpan(): number {\n return Math.max(this.columns.length, 1);\n }\n\n headerCellClass(column: CxsTableColumn): string {\n return [\n HEADER_CELL_BASE_CLASSES,\n ALIGN_CLASSES[column.align ?? 'left'],\n column.headerClass ?? ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n bodyCellClass(column: CxsTableColumn): string {\n return [\n BODY_CELL_BASE_CLASSES,\n this.compact ? BODY_CELL_COMPACT_CLASSES : '',\n ALIGN_CLASSES[column.align ?? 'left'],\n column.cellClass ?? ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n cellValue(row: Record<string, unknown>, column: CxsTableColumn): string {\n const value = row[column.key];\n if (value === null || value === undefined || value === '') {\n return this.emptyCell;\n }\n\n return String(value);\n }\n}\n","<div [class]=\"wrapperClass\">\n <table [class]=\"tableClass\" [attr.aria-label]=\"ariaLabel\">\n @if (caption) {\n <caption class=\"sr-only\">{{ caption }}</caption>\n }\n <thead>\n <tr [class]=\"headerRowClass\">\n @for (column of columns; track column) {\n <th\n [class]=\"headerCellClass(column)\"\n [style.width]=\"column.width ?? null\"\n scope=\"col\"\n >\n {{ column.label }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (data.length === 0) {\n <tr [class]=\"bodyRowClass\">\n <td [class]=\"bodyCellClass({ key: '', label: '' })\" [attr.colspan]=\"colSpan\">\n <span [class]=\"emptyRowClass\">{{ emptyMessage }}</span>\n </td>\n </tr>\n } @else {\n @for (row of data; track row; let rowIndex = $index) {\n <tr [class]=\"bodyRowClass\">\n @for (column of columns; track column) {\n <td [class]=\"bodyCellClass(column)\">\n {{ cellValue(row, column) }}\n </td>\n }\n </tr>\n }\n }\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\n\nexport type CxsToggleSize = 'sm' | 'md' | 'lg';\n\nconst WRAPPER_CLASSES = 'inline-flex items-center gap-2';\nconst LABEL_BASE_CLASSES = 'text-sm text-[var(--cxs-color-on-surface)] select-none';\nconst LABEL_DISABLED_CLASSES = 'text-[var(--cxs-color-on-surface-muted)]';\n\nconst TRACK_BASE_CLASSES =\n 'relative inline-flex items-center rounded-full border transition-colors ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)] disabled:pointer-events-none disabled:opacity-60';\n\nconst TRACK_SIZE_CLASSES: Record<CxsToggleSize, string> = {\n sm: 'h-5 w-9 p-0.5',\n md: 'h-6 w-11 p-0.5',\n lg: 'h-8 w-14 p-0.5'\n};\n\nconst TRACK_STATE_CLASSES = {\n on: 'bg-[var(--cxs-color-primary)] border-[var(--cxs-color-primary)]',\n off: 'bg-[var(--cxs-color-surface)] border-[var(--cxs-color-border)]'\n};\n\nconst THUMB_BASE_CLASSES =\n 'absolute left-0.5 top-0.5 rounded-full transition-transform duration-200 ease-out';\n\nconst THUMB_SIZE_CLASSES: Record<CxsToggleSize, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-7 w-7'\n};\n\nconst THUMB_STATE_CLASSES = {\n on: {\n sm: 'translate-x-[18px] bg-[var(--cxs-color-on-primary)]',\n md: 'translate-x-[22px] bg-[var(--cxs-color-on-primary)]',\n lg: 'translate-x-[26px] bg-[var(--cxs-color-on-primary)]'\n },\n off: 'translate-x-0 bg-[var(--cxs-color-surface)]'\n};\n\n@Component({\n selector: 'cxs-toggle',\n standalone: true,\n templateUrl: './toggle.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsToggleComponent {\n private static nextId = 0;\n\n @Input() checked = false;\n @Input() disabled = false;\n @Input() size: CxsToggleSize = 'md';\n @Input() label?: string;\n @Input() ariaLabel = 'Toggle';\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n readonly labelId = `cxs-toggle-label-${CxsToggleComponent.nextId++}`;\n\n get wrapperClass(): string {\n return WRAPPER_CLASSES;\n }\n\n get labelClass(): string {\n return [LABEL_BASE_CLASSES, this.disabled ? LABEL_DISABLED_CLASSES : '']\n .filter(Boolean)\n .join(' ');\n }\n\n get trackClass(): string {\n return [\n TRACK_BASE_CLASSES,\n TRACK_SIZE_CLASSES[this.size],\n this.checked ? TRACK_STATE_CLASSES.on : TRACK_STATE_CLASSES.off\n ].join(' ');\n }\n\n get thumbClass(): string {\n const thumbState = this.checked\n ? THUMB_STATE_CLASSES.on[this.size]\n : THUMB_STATE_CLASSES.off;\n\n return [THUMB_BASE_CLASSES, THUMB_SIZE_CLASSES[this.size], thumbState].join(' ');\n }\n\n get ariaLabelValue(): string | null {\n if (this.label) {\n return null;\n }\n\n return this.ariaLabel;\n }\n\n toggle(): void {\n if (this.disabled) {\n return;\n }\n\n this.checkedChange.emit(!this.checked);\n }\n}\n","<div [class]=\"wrapperClass\">\n <button\n type=\"button\"\n [class]=\"trackClass\"\n role=\"switch\"\n [disabled]=\"disabled\"\n [attr.aria-checked]=\"checked ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"label ? labelId : null\"\n [attr.aria-label]=\"ariaLabelValue\"\n (click)=\"toggle()\"\n >\n <span [class]=\"thumbClass\" aria-hidden=\"true\"></span>\n </button>\n @if (label) {\n <span [id]=\"labelId\" [class]=\"labelClass\">{{ label }}</span>\n }\n</div>\n","import {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges\n} from '@angular/core';\n\nexport type CxsToastVariant = 'info' | 'neutral' | 'danger';\nexport type CxsToastCloseReason = 'dismiss' | 'timeout';\nexport type CxsToastPosition =\n | 'bottom-right'\n | 'bottom'\n | 'bottom-left'\n | 'top-right'\n | 'top'\n | 'top-left'\n | 'right'\n | 'left'\n | 'center';\nexport type CxsToastMaxWidth = 'sm' | 'md' | 'lg' | 'xl' | 'none';\n\nconst HOST_BASE_CLASSES = 'pointer-events-none';\nconst POSITION_CLASSES: Record<CxsToastPosition, string> = {\n 'bottom-right': 'fixed bottom-6 right-6 items-end',\n bottom: 'fixed bottom-6 left-1/2 -translate-x-1/2 items-end',\n 'bottom-left': 'fixed bottom-6 left-6 items-start',\n 'top-right': 'fixed top-6 right-6 items-end',\n top: 'fixed top-6 left-1/2 -translate-x-1/2 items-start',\n 'top-left': 'fixed top-6 left-6 items-start',\n right: 'fixed right-6 top-1/2 -translate-y-1/2 items-end',\n left: 'fixed left-6 top-1/2 -translate-y-1/2 items-start',\n center: 'fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 items-center'\n};\n\nconst BASE_CLASSES =\n 'pointer-events-auto flex w-full items-start gap-3 rounded-[var(--cxs-radius-md)] ' +\n 'border px-4 py-3 shadow-[var(--cxs-shadow-sm)]';\n\nconst WIDTH_CLASSES: Record<CxsToastMaxWidth, string> = {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n none: 'max-w-none'\n};\n\nconst VARIANT_CLASSES: Record<CxsToastVariant, string> = {\n info:\n 'border-[var(--cxs-color-primary)] bg-[var(--cxs-color-primary-ghost)] ' +\n 'text-[var(--cxs-color-on-surface)]',\n neutral:\n 'border-[var(--cxs-color-border)] bg-[var(--cxs-color-surface)] ' +\n 'text-[var(--cxs-color-on-surface)]',\n danger:\n 'border-[var(--cxs-color-danger)] bg-[var(--cxs-color-surface)] ' +\n 'text-[var(--cxs-color-on-surface)]'\n};\n\nconst TITLE_CLASSES = 'text-sm font-semibold';\nconst MESSAGE_CLASSES = 'mt-1 text-sm text-[var(--cxs-color-on-surface-muted)]';\nconst ACTIONS_CLASSES = 'mt-3 flex flex-wrap items-center gap-2 empty:hidden';\nconst CLOSE_BUTTON_CLASSES =\n 'inline-flex h-8 w-8 items-center justify-center rounded-[var(--cxs-radius-md)] ' +\n 'text-[var(--cxs-color-on-surface)] transition-colors hover:bg-[var(--cxs-color-surface-hover)] ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 ' +\n 'focus-visible:outline-[var(--cxs-color-focus)]';\n\n@Component({\n selector: 'cxs-toast',\n standalone: true,\n templateUrl: './toast.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsToastComponent implements OnChanges, OnDestroy {\n @Input() open = false;\n @Input() title?: string;\n @Input() message?: string;\n @Input() ariaLabel = 'Notification';\n @Input() variant: CxsToastVariant = 'info';\n @Input() dismissible = true;\n @Input() duration = 0;\n @Input() position: CxsToastPosition = 'bottom-right';\n @Input() maxWidth: CxsToastMaxWidth = 'sm';\n\n @Output() openChange = new EventEmitter<boolean>();\n @Output() dismissed = new EventEmitter<CxsToastCloseReason>();\n\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n constructor(@Attribute('class') private readonly hostClass: string | null) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['open'] || changes['duration']) {\n this.resetTimer();\n }\n }\n\n ngOnDestroy(): void {\n this.clearTimer();\n }\n\n get hostClassName(): string {\n return [HOST_BASE_CLASSES, POSITION_CLASSES[this.position]].join(' ');\n }\n\n get toastClass(): string {\n return [\n BASE_CLASSES,\n WIDTH_CLASSES[this.maxWidth],\n VARIANT_CLASSES[this.variant],\n this.hostClass\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n get titleClass(): string {\n return TITLE_CLASSES;\n }\n\n get messageClass(): string {\n return MESSAGE_CLASSES;\n }\n\n get actionsClass(): string {\n return ACTIONS_CLASSES;\n }\n\n get closeButtonClass(): string {\n return CLOSE_BUTTON_CLASSES;\n }\n\n get role(): 'status' | 'alert' {\n return this.variant === 'danger' ? 'alert' : 'status';\n }\n\n get ariaLive(): 'polite' | 'assertive' {\n return this.variant === 'danger' ? 'assertive' : 'polite';\n }\n\n get ariaLabelValue(): string | null {\n if (this.title) {\n return null;\n }\n\n return this.ariaLabel;\n }\n\n requestClose(reason: CxsToastCloseReason): void {\n this.openChange.emit(false);\n this.dismissed.emit(reason);\n }\n\n private resetTimer(): void {\n this.clearTimer();\n\n if (this.open && this.duration > 0) {\n this.timeoutId = setTimeout(() => {\n this.requestClose('timeout');\n }, this.duration);\n }\n }\n\n private clearTimer(): void {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n}\n","@if (open) {\n <div [class]=\"hostClassName\">\n <div\n [class]=\"toastClass\"\n [attr.role]=\"role\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-label]=\"ariaLabelValue\"\n >\n <div class=\"flex-1\">\n @if (title) {\n <p [class]=\"titleClass\">{{ title }}</p>\n }\n @if (message) {\n <p [class]=\"messageClass\">{{ message }}</p>\n }\n <ng-content></ng-content>\n <div [class]=\"actionsClass\">\n <ng-content select=\"[cxsToastAction]\"></ng-content>\n </div>\n </div>\n @if (dismissible) {\n <button\n type=\"button\"\n [class]=\"closeButtonClass\"\n aria-label=\"Dismiss notification\"\n (click)=\"requestClose('dismiss')\"\n >\n X\n </button>\n }\n </div>\n </div>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Input\n} from '@angular/core';\n\nexport type CxsTooltipPosition = 'top' | 'right' | 'bottom' | 'left';\n\nconst WRAPPER_CLASSES = 'relative inline-flex';\nconst TOOLTIP_BASE_CLASSES =\n 'pointer-events-none absolute z-50 max-w-xs rounded-[var(--cxs-radius-md)] px-2 py-1 text-xs ' +\n 'text-[var(--cxs-color-on-primary)] bg-[var(--cxs-color-on-surface)] shadow-[var(--cxs-shadow-sm)]';\n\nconst TOOLTIP_POSITION_CLASSES: Record<CxsTooltipPosition, string> = {\n top: 'bottom-full left-1/2 mb-2 -translate-x-1/2',\n right: 'left-full top-1/2 ml-2 -translate-y-1/2',\n bottom: 'top-full left-1/2 mt-2 -translate-x-1/2',\n left: 'right-full top-1/2 mr-2 -translate-y-1/2'\n};\n\n@Component({\n selector: 'cxs-tooltip',\n standalone: true,\n templateUrl: './tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsTooltipComponent {\n private static nextId = 0;\n\n @Input() text = '';\n @Input() position: CxsTooltipPosition = 'top';\n @Input() disabled = false;\n\n open = false;\n readonly tooltipId = `cxs-tooltip-${CxsTooltipComponent.nextId++}`;\n\n get wrapperClass(): string {\n return WRAPPER_CLASSES;\n }\n\n get tooltipClass(): string {\n return [TOOLTIP_BASE_CLASSES, TOOLTIP_POSITION_CLASSES[this.position]].join(' ');\n }\n\n get describedBy(): string | null {\n if (!this.text || this.disabled) {\n return null;\n }\n\n return this.tooltipId;\n }\n\n show(): void {\n if (this.disabled || !this.text) {\n return;\n }\n\n this.open = true;\n }\n\n hide(): void {\n this.open = false;\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.show();\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.hide();\n }\n\n @HostListener('focusin')\n onFocusIn(): void {\n this.show();\n }\n\n @HostListener('focusout')\n onFocusOut(): void {\n this.hide();\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.hide();\n }\n }\n}\n","<span [class]=\"wrapperClass\">\n <span [attr.aria-describedby]=\"describedBy\">\n <ng-content></ng-content>\n </span>\n @if (open) {\n <span [id]=\"tooltipId\" role=\"tooltip\" [class]=\"tooltipClass\">\n {{ text }}\n </span>\n }\n</span>\n","import { Directive, ElementRef, Input, OnDestroy, Renderer2 } from '@angular/core';\r\n\r\nexport type CxsThemeMode = 'light' | 'dark' | 'system';\r\n\r\nconst DEFAULT_DARK_CLASS = 'cxs-theme-dark';\r\n\r\n@Directive({\r\n selector: '[cxsTheme]',\r\n standalone: true\r\n})\r\nexport class CxsThemeDirective implements OnDestroy {\r\n private mode: CxsThemeMode = 'light';\r\n private darkClass = DEFAULT_DARK_CLASS;\r\n private mediaQuery: MediaQueryList | null = null;\r\n private mediaListener: ((event: MediaQueryListEvent) => void) | null = null;\r\n\r\n constructor(\r\n private readonly host: ElementRef<HTMLElement>,\r\n private readonly renderer: Renderer2\r\n ) {}\r\n\r\n @Input()\r\n set cxsTheme(value: CxsThemeMode | null | undefined) {\r\n this.mode = value ?? 'light';\r\n this.applyTheme();\r\n }\r\n\r\n @Input()\r\n set cxsThemeDarkClass(value: string | null | undefined) {\r\n const nextClass = value?.trim() || DEFAULT_DARK_CLASS;\r\n if (nextClass === this.darkClass) {\r\n return;\r\n }\r\n\r\n const previousClass = this.darkClass;\r\n this.darkClass = nextClass;\r\n this.renderer.removeClass(this.host.nativeElement, previousClass);\r\n this.applyTheme();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.detachMediaListener();\r\n }\r\n\r\n private applyTheme(): void {\r\n if (this.mode === 'system') {\r\n this.attachMediaListener();\r\n } else {\r\n this.detachMediaListener();\r\n }\r\n\r\n const shouldEnableDark =\r\n this.mode === 'dark' || (this.mode === 'system' && this.prefersDark());\r\n\r\n if (shouldEnableDark) {\r\n this.renderer.addClass(this.host.nativeElement, this.darkClass);\r\n } else {\r\n this.renderer.removeClass(this.host.nativeElement, this.darkClass);\r\n }\r\n }\r\n\r\n private prefersDark(): boolean {\r\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\r\n return false;\r\n }\r\n\r\n if (!this.mediaQuery) {\r\n this.mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\r\n }\r\n\r\n return this.mediaQuery.matches;\r\n }\r\n\r\n private attachMediaListener(): void {\r\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\r\n return;\r\n }\r\n\r\n if (!this.mediaQuery) {\r\n this.mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\r\n }\r\n\r\n if (this.mediaListener) {\r\n return;\r\n }\r\n\r\n this.mediaListener = () => this.applyTheme();\r\n\r\n if (typeof this.mediaQuery.addEventListener === 'function') {\r\n this.mediaQuery.addEventListener('change', this.mediaListener);\r\n } else if (typeof this.mediaQuery.addListener === 'function') {\r\n this.mediaQuery.addListener(this.mediaListener);\r\n }\r\n }\r\n\r\n private detachMediaListener(): void {\r\n if (!this.mediaQuery || !this.mediaListener) {\r\n this.mediaListener = null;\r\n return;\r\n }\r\n\r\n if (typeof this.mediaQuery.removeEventListener === 'function') {\r\n this.mediaQuery.removeEventListener('change', this.mediaListener);\r\n } else if (typeof this.mediaQuery.removeListener === 'function') {\r\n this.mediaQuery.removeListener(this.mediaListener);\r\n }\r\n\r\n this.mediaListener = null;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of cerxos-ui\r\n */\r\n\r\nexport * from './lib/cerxos-ui';\nexport * from './lib/components/alert/alert.component';\nexport * from './lib/components/accordion/accordion.component';\nexport * from './lib/components/accordion/accordion-item.component';\nexport * from './lib/components/badge/badge.component';\nexport * from './lib/components/avatar/avatar.component';\nexport * from './lib/components/breadcrumb/breadcrumb.component';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/card/card.component';\nexport * from './lib/components/checkbox/checkbox.component';\nexport * from './lib/components/carousel/carousel.component';\nexport * from './lib/components/data-table/data-table.component';\nexport * from './lib/components/dialog/dialog.component';\nexport * from './lib/components/datepicker/datepicker.component';\nexport * from './lib/components/input/input.component';\nexport * from './lib/components/menubar/menubar.component';\nexport * from './lib/components/radio/radio.component';\nexport * from './lib/components/select/select.component';\nexport * from './lib/components/table/table.component';\nexport * from './lib/components/toggle/toggle.component';\nexport * from './lib/components/toast/toast.component';\nexport * from './lib/components/tooltip/tooltip.component';\nexport * from './lib/directives/theme/theme.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BASE_CLASSES","VARIANT_CLASSES","CLOSE_BUTTON_CLASSES","SIZE_CLASSES","WRAPPER_BASE","WRAPPER_ENABLED","WRAPPER_DISABLED","LABEL_BASE","LABEL_DISABLED","LABEL_SIZE_CLASSES","CONTROL_BASE","CONTROL_SIZE_CLASSES","WRAPPER_BASE_CLASSES","WRAPPER_BORDERED_CLASSES","TABLE_BASE_CLASSES","TABLE_COMPACT_CLASSES","HEADER_ROW_CLASSES","HEADER_CELL_BASE_CLASSES","BODY_ROW_BASE_CLASSES","BODY_ROW_STRIPED_CLASSES","BODY_CELL_BASE_CLASSES","BODY_CELL_COMPACT_CLASSES","ALIGN_CLASSES","EMPTY_ROW_CLASSES","TITLE_CLASSES","ACTIONS_CLASSES","INVALID_CLASSES","WRAPPER_CLASSES"],"mappings":"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"}
|