cerxos-ui 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"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/badge/badge.component.ts","../../../projects/cerxos-ui/src/lib/components/badge/badge.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/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/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/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 {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\n\nexport type CxsAlertVariant = 'info' | 'neutral' | 'danger';\n\nconst BASE_CLASSES =\n 'relative flex w-full gap-3 rounded-[var(--cxs-radius-md)] border border-l-4 px-4 py-3 text-sm ' +\n 'text-[var(--cxs-color-on-surface)]';\n\nconst VARIANT_CLASSES: Record<CxsAlertVariant, string> = {\n info:\n 'border-[var(--cxs-color-primary)] border-l-[var(--cxs-color-primary)] ' +\n 'bg-[var(--cxs-color-primary-ghost)]',\n neutral:\n 'border-[var(--cxs-color-border)] border-l-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)]',\n danger:\n 'border-[var(--cxs-color-danger)] border-l-[var(--cxs-color-danger)] ' +\n 'bg-[var(--cxs-color-surface)]'\n};\n\nconst TITLE_BASE = 'font-semibold';\n\nconst TITLE_VARIANT: Record<CxsAlertVariant, string> = {\n info: 'text-[var(--cxs-color-primary)]',\n neutral: 'text-[var(--cxs-color-on-surface)]',\n danger: 'text-[var(--cxs-color-danger)]'\n};\n\nconst CLOSE_BUTTON_CLASSES =\n 'ml-auto 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-alert',\n standalone: true,\n templateUrl: './alert.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsAlertComponent {\n @Input() variant: CxsAlertVariant = 'info';\n @Input() title?: string;\n @Input() dismissible = false;\n\n @Output() closed = new EventEmitter<void>();\n\n isVisible = true;\n\n get alertClass(): string {\n return [BASE_CLASSES, VARIANT_CLASSES[this.variant]].join(' ');\n }\n\n get titleClass(): string {\n return [TITLE_BASE, TITLE_VARIANT[this.variant]].join(' ');\n }\n\n get closeButtonClass(): string {\n return CLOSE_BUTTON_CLASSES;\n }\n\n onClose(): void {\n this.isVisible = false;\n this.closed.emit();\n }\n}\n","@if (isVisible) {\n <div [class]=\"alertClass\" role=\"status\" aria-live=\"polite\">\n <div class=\"flex flex-col gap-1\">\n @if (title) {\n <div [class]=\"titleClass\">{{ title }}</div>\n }\n <div class=\"text-[var(--cxs-color-on-surface)]\">\n <ng-content></ng-content>\n </div>\n </div>\n @if (dismissible) {\n <button\n type=\"button\"\n [class]=\"closeButtonClass\"\n aria-label=\"Dismiss alert\"\n (click)=\"onClose()\"\n >\n x\n </button>\n }\n </div>\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type CxsBadgeVariant = 'primary' | 'neutral' | 'danger';\nexport type CxsBadgeSize = 'sm' | 'md';\n\nconst BASE_CLASSES =\n 'inline-flex items-center gap-1 rounded-[var(--cxs-radius-md)] border px-2.5 py-0.5 text-xs font-medium ' +\n 'leading-none';\n\nconst VARIANT_CLASSES: Record<CxsBadgeVariant, string> = {\n primary:\n 'border-[var(--cxs-color-primary)] bg-[var(--cxs-color-primary-ghost)] ' +\n 'text-[var(--cxs-color-primary)]',\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-danger)]'\n};\n\nconst SIZE_CLASSES: Record<CxsBadgeSize, string> = {\n sm: 'text-[11px]',\n md: 'text-xs'\n};\n\n@Component({\n selector: 'cxs-badge',\n standalone: true,\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsBadgeComponent {\n @Input() variant: CxsBadgeVariant = 'primary';\n @Input() size: CxsBadgeSize = 'md';\n\n get badgeClass(): string {\n return [BASE_CLASSES, VARIANT_CLASSES[this.variant], SIZE_CLASSES[this.size]].join(' ');\n }\n}\n","<span [class]=\"badgeClass\">\n <ng-content></ng-content>\n</span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type CxsBreadcrumbSize = 'sm' | 'md' | 'lg';\nexport type CxsBreadcrumbVariant = 'default' | 'muted';\n\nexport interface CxsBreadcrumbItem {\n label: string;\n href?: string;\n target?: string;\n rel?: string;\n ariaLabel?: string;\n disabled?: boolean;\n}\n\nconst BASE_CLASSES = 'flex flex-wrap items-center gap-x-1 gap-y-1';\nconst ITEM_CLASSES = 'flex items-center gap-1';\nconst LINK_BASE_CLASSES =\n 'rounded-[var(--cxs-radius-md)] transition-colors focus-visible:outline focus-visible:outline-2 ' +\n 'focus-visible:outline-offset-2 focus-visible:outline-[var(--cxs-color-focus)]';\nconst NON_LINK_CLASSES = 'text-[var(--cxs-color-on-surface-muted)]';\nconst SEPARATOR_CLASSES = 'text-[var(--cxs-color-on-surface-muted)] select-none';\nconst DISABLED_CLASSES = 'text-[var(--cxs-color-on-surface-muted)] opacity-60';\n\nconst SIZE_CLASSES: Record<CxsBreadcrumbSize, string> = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base'\n};\n\nconst LINK_VARIANT_CLASSES: Record<CxsBreadcrumbVariant, string> = {\n default:\n 'text-[var(--cxs-color-primary)] hover:text-[var(--cxs-color-primary-hover)]',\n muted:\n 'text-[var(--cxs-color-on-surface-muted)] hover:text-[var(--cxs-color-on-surface)]'\n};\n\nconst CURRENT_VARIANT_CLASSES: Record<CxsBreadcrumbVariant, string> = {\n default: 'text-[var(--cxs-color-on-surface)]',\n muted: 'text-[var(--cxs-color-on-surface-muted)]'\n};\n\n@Component({\n selector: 'cxs-breadcrumb',\n standalone: true,\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsBreadcrumbComponent {\n @Input() items: CxsBreadcrumbItem[] = [];\n @Input() separator = '/';\n @Input() ariaLabel = 'Breadcrumb';\n @Input() size: CxsBreadcrumbSize = 'md';\n @Input() variant: CxsBreadcrumbVariant = 'default';\n @Input() disabled = false;\n\n get listClass(): string {\n return [BASE_CLASSES, SIZE_CLASSES[this.size], this.disabled ? 'opacity-60' : '']\n .filter(Boolean)\n .join(' ');\n }\n\n get itemClass(): string {\n return ITEM_CLASSES;\n }\n\n get separatorClass(): string {\n return SEPARATOR_CLASSES;\n }\n\n isLink(item: CxsBreadcrumbItem, isLast: boolean): boolean {\n return !!item.href && !isLast && !item.disabled && !this.disabled;\n }\n\n getLinkClass(item: CxsBreadcrumbItem): string {\n return [\n LINK_BASE_CLASSES,\n LINK_VARIANT_CLASSES[this.variant],\n item.disabled || this.disabled ? DISABLED_CLASSES : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n getLabelClass(item: CxsBreadcrumbItem, isLast: boolean): string {\n if (isLast) {\n return [\n CURRENT_VARIANT_CLASSES[this.variant],\n item.disabled || this.disabled ? DISABLED_CLASSES : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n return [NON_LINK_CLASSES, item.disabled || this.disabled ? DISABLED_CLASSES : '']\n .filter(Boolean)\n .join(' ');\n }\n\n getItemRel(item: CxsBreadcrumbItem): string | null {\n if (item.target === '_blank') {\n return item.rel ?? 'noopener noreferrer';\n }\n\n return item.rel ?? null;\n }\n}\n","<nav [attr.aria-label]=\"ariaLabel\">\n <ol [class]=\"listClass\">\n @for (item of items; track item; let last = $last) {\n <li [class]=\"itemClass\">\n @if (isLink(item, last)) {\n <a\n [class]=\"getLinkClass(item)\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target ?? null\"\n [attr.rel]=\"getItemRel(item)\"\n [attr.aria-label]=\"item.ariaLabel ?? null\"\n >\n {{ item.label }}\n </a>\n } @else {\n <span\n [class]=\"getLabelClass(item, last)\"\n [attr.aria-current]=\"last ? 'page' : null\"\n >\n {{ item.label }}\n </span>\n }\n @if (!last && separator) {\n <span [class]=\"separatorClass\" aria-hidden=\"true\">{{ separator }}</span>\n }\n </li>\n }\n </ol>\n</nav>\n","import { Attribute, ChangeDetectionStrategy, Component, Input } from '@angular/core';\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 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 constructor(@Attribute('class') private readonly hostClass: string | null) {}\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], this.hostClass]\n .filter(Boolean)\n .join(' ');\n }\n}\n","<button\n [class]=\"buttonClass\"\n [attr.type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading ? 'true' : null\"\n>\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 <span class=\"truncate\">\n <ng-content></ng-content>\n </span>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type CxsCardVariant = 'surface' | 'muted' | 'outline';\nexport type CxsCardSize = 'sm' | 'md' | 'lg';\n\nconst BASE_CLASSES =\n 'rounded-[var(--cxs-radius-md)] border border-[var(--cxs-color-border)] ' +\n 'bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-surface)]';\n\nconst VARIANT_CLASSES: Record<CxsCardVariant, string> = {\n surface: 'bg-[var(--cxs-color-surface)]',\n muted: 'bg-[var(--cxs-color-surface-hover)]',\n outline: 'bg-transparent'\n};\n\nconst SIZE_CLASSES: Record<CxsCardSize, string> = {\n sm: 'p-3',\n md: 'p-5',\n lg: 'p-7'\n};\n\n@Component({\n selector: 'cxs-card',\n standalone: true,\n templateUrl: './card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CxsCardComponent {\n @Input() variant: CxsCardVariant = 'surface';\n @Input() size: CxsCardSize = 'md';\n @Input() elevated = true;\n @Input() ariaLabel?: string;\n @Input() ariaLabelledby?: string;\n\n get cardClass(): string {\n return [\n BASE_CLASSES,\n VARIANT_CLASSES[this.variant],\n SIZE_CLASSES[this.size],\n this.elevated ? 'shadow-[var(--cxs-shadow-sm)]' : ''\n ]\n .filter(Boolean)\n .join(' ');\n }\n}\n","<section\n [class]=\"cardClass\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n>\n <ng-content></ng-content>\n</section>\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 CxsCheckboxSize = 'sm' | 'md' | 'lg';\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<CxsCheckboxSize, 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-[var(--cxs-radius-md)] border \" +\n \"border-[var(--cxs-color-border)] bg-[var(--cxs-color-surface)] text-[var(--cxs-color-on-primary)] \" +\n \"transition-colors after:absolute after:origin-center after:rotate-45 after:content-[''] \" +\n 'after:opacity-0 after:transition-opacity after:border-b-2 after:border-r-2 after:border-current ' +\n \"before:absolute before:content-[''] before:opacity-0 before:transition-opacity before:bg-current \" +\n 'peer-checked:bg-[var(--cxs-color-primary)] peer-checked:border-[var(--cxs-color-primary)] ' +\n 'peer-checked:after:opacity-100 ' +\n 'peer-indeterminate:bg-[var(--cxs-color-primary)] peer-indeterminate:border-[var(--cxs-color-primary)] ' +\n 'peer-indeterminate:before:opacity-100 peer-indeterminate:after:opacity-0 ' +\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<CxsCheckboxSize, string> = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6'\n};\n\nconst MARK_SIZE_CLASSES: Record<CxsCheckboxSize, string> = {\n sm: 'after:h-2 after:w-1 before:h-0.5 before:w-2',\n md: 'after:h-2.5 after:w-1.5 before:h-0.5 before:w-3',\n lg: 'after:h-3 after:w-2 before:h-0.5 before:w-4'\n};\n\n@Component({\n selector: 'cxs-checkbox',\n standalone: true,\n templateUrl: './checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CxsCheckboxComponent),\n multi: true\n }\n ]\n})\nexport class CxsCheckboxComponent implements ControlValueAccessor {\n @Input() checked = false;\n @Input() indeterminate = false;\n @Input() disabled = false;\n @Input() label?: string;\n @Input() size: CxsCheckboxSize = 'md';\n\n @Input() id?: string;\n @Input() name?: string;\n @Input() required = false;\n @Input() autofocus = false;\n @Input() ariaLabel?: string;\n @Input() ariaDescribedby?: string;\n\n @Output() valueChange = new EventEmitter<boolean>();\n\n private disabledFromControl = false;\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n get isDisabled(): boolean {\n return this.disabled || this.disabledFromControl;\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 MARK_SIZE_CLASSES[this.size]\n ].join(' ');\n }\n\n get ariaChecked(): 'mixed' | null {\n return this.indeterminate ? 'mixed' : null;\n }\n\n writeValue(value: boolean | null): void {\n this.checked = value ?? false;\n }\n\n registerOnChange(fn: (value: boolean) => 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 onCheckboxChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n const nextValue = target.checked;\n\n this.indeterminate = false;\n this.checked = nextValue;\n this.onChange(nextValue);\n this.valueChange.emit(nextValue);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\n","<label [class]=\"wrapperClass\">\n <input\n class=\"peer sr-only\"\n type=\"checkbox\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.autofocus]=\"autofocus ? true : null\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"isDisabled\"\n [required]=\"required\"\n (change)=\"onCheckboxChange($event)\"\n (blur)=\"onBlur()\"\n />\n <span [class]=\"controlClass\" aria-hidden=\"true\"></span>\n @if (label) {\n <span [class]=\"labelClass\">{{ label }}</span>\n } @else {\n <span [class]=\"labelClass\">\n <ng-content></ng-content>\n </span>\n }\n</label>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n forwardRef,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type CxsDatepickerVariant = 'outline' | 'filled';\nexport type CxsDatepickerSize = 'sm' | 'md' | 'lg';\n\ntype CxsCalendarDay = {\n date: Date;\n label: string;\n inMonth: boolean;\n disabled: boolean;\n isToday: boolean;\n key: string;\n};\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<CxsDatepickerVariant, string> = {\n outline: 'bg-[var(--cxs-color-surface)]',\n filled: 'bg-[var(--cxs-color-surface-hover)]'\n};\n\nconst SIZE_CLASSES: Record<CxsDatepickerSize, 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\nconst POPOVER_CLASSES =\n 'absolute left-0 top-full z-10 mt-2 w-full rounded-[var(--cxs-radius-md)] border ' +\n 'border-[var(--cxs-color-border)] bg-[var(--cxs-color-surface)] p-3 shadow-[var(--cxs-shadow-sm)]';\n\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 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\nconst DAY_OUTSIDE_MONTH = 'text-[var(--cxs-color-on-surface-muted)]';\nconst DAY_TODAY = 'border border-[var(--cxs-color-primary)]';\nconst DAY_SELECTED = 'bg-[var(--cxs-color-primary)] text-[var(--cxs-color-on-primary)]';\nconst DAY_HOVER = 'hover:bg-[var(--cxs-color-surface-hover)]';\n\n@Component({\n selector: 'cxs-datepicker',\n standalone: true,\n templateUrl: './datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CxsDatepickerComponent),\n multi: true\n }\n ]\n})\nexport class CxsDatepickerComponent implements ControlValueAccessor {\n @Input() value = '';\n @Input() variant: CxsDatepickerVariant = 'outline';\n @Input() size: CxsDatepickerSize = 'md';\n @Input() useNative = true;\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() min?: string;\n @Input() max?: string;\n @Input() placeholder?: string;\n @Input() ariaLabel?: string;\n @Input() ariaDescribedby?: string;\n\n @Output() valueChange = new EventEmitter<string>();\n\n private static nextId = 0;\n private readonly fallbackId = `cxs-datepicker-panel-${CxsDatepickerComponent.nextId++}`;\n private disabledFromControl = false;\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n isOpen = false;\n displayMonth = new Date();\n calendarDays: CxsCalendarDay[] = [];\n readonly weekDayLabels = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n get isDisabled(): boolean {\n return this.disabled || this.disabledFromControl;\n }\n\n get panelId(): string {\n return this.id ? `${this.id}-panel` : this.fallbackId;\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 get popoverClass(): string {\n return POPOVER_CLASSES;\n }\n\n get navButtonClass(): string {\n return NAV_BUTTON_CLASSES;\n }\n\n get displayMonthLabel(): string {\n return this.displayMonth.toLocaleString('en-US', { month: 'long', year: 'numeric' });\n }\n\n writeValue(value: string | null): void {\n this.value = value ?? '';\n this.syncDisplayMonthWithValue();\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 onDateSelect(day: CxsCalendarDay): void {\n if (day.disabled || this.isDisabled) {\n return;\n }\n\n const nextValue = this.formatDate(day.date);\n this.value = nextValue;\n this.onChange(nextValue);\n this.valueChange.emit(nextValue);\n this.isOpen = false;\n }\n\n onBlur(): void {\n this.onTouched();\n }\n\n open(): void {\n if (this.isDisabled || this.useNative) {\n return;\n }\n this.isOpen = true;\n this.syncDisplayMonthWithValue();\n }\n\n toggle(): void {\n if (this.isOpen) {\n this.isOpen = false;\n return;\n }\n this.open();\n }\n\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 dayButtonClass(day: CxsCalendarDay): string {\n return [\n DAY_BUTTON_BASE,\n day.inMonth ? '' : DAY_OUTSIDE_MONTH,\n day.isToday ? DAY_TODAY : '',\n this.isSelected(day.date) ? DAY_SELECTED : DAY_HOVER\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (this.useNative || !this.isOpen) {\n return;\n }\n const target = event.target as HTMLElement | null;\n if (target && !target.closest(`#${this.panelId}`) && !target.closest(`[data-cxs-datepicker=\"${this.panelId}\"]`)) {\n this.isOpen = false;\n }\n }\n\n @HostListener('document:keydown.escape')\n onEscape(): void {\n if (this.useNative || !this.isOpen) {\n return;\n }\n this.isOpen = false;\n }\n\n private syncDisplayMonthWithValue(): void {\n const selected = this.parseDate(this.value);\n this.displayMonth = selected ?? new Date();\n this.updateCalendar();\n }\n\n private updateCalendar(): void {\n const year = this.displayMonth.getFullYear();\n const month = this.displayMonth.getMonth();\n const startOfMonth = new Date(year, month, 1);\n const startDay = startOfMonth.getDay();\n const calendarStart = new Date(year, month, 1 - startDay);\n const minDate = this.parseDate(this.min);\n const maxDate = this.parseDate(this.max);\n const today = this.stripTime(new Date());\n\n this.calendarDays = Array.from({ length: 42 }, (_, index) => {\n const date = new Date(\n calendarStart.getFullYear(),\n calendarStart.getMonth(),\n calendarStart.getDate() + index\n );\n const dayValue = this.stripTime(date);\n const disabled =\n (minDate && dayValue < minDate) || (maxDate && dayValue > maxDate) || this.isDisabled;\n\n return {\n date,\n label: String(date.getDate()),\n inMonth: date.getMonth() === month,\n disabled,\n isToday: dayValue.getTime() === today.getTime(),\n key: this.formatDate(date)\n };\n });\n }\n\n private isSelected(date: Date): boolean {\n const selected = this.parseDate(this.value);\n if (!selected) {\n return false;\n }\n return (\n selected.getFullYear() === date.getFullYear() &&\n selected.getMonth() === date.getMonth() &&\n selected.getDate() === date.getDate()\n );\n }\n\n private parseDate(value?: string): Date | null {\n if (!value) {\n return null;\n }\n const [year, month, day] = value.split('-').map(Number);\n if (!year || !month || !day) {\n return null;\n }\n return new Date(year, month - 1, day);\n }\n\n private formatDate(date: Date): string {\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, '0');\n const day = `${date.getDate()}`.padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n\n private stripTime(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n }\n}\n","@if (useNative) {\n <input\n type=\"date\"\n [class]=\"inputClass\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.autofocus]=\"autofocus ? true : null\"\n [value]=\"value\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n} @else {\n <div class=\"relative w-full\">\n <input\n type=\"text\"\n [class]=\"inputClass\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-expanded]=\"isOpen ? 'true' : 'false'\"\n [attr.aria-controls]=\"panelId\"\n [attr.autofocus]=\"autofocus ? true : null\"\n [attr.data-cxs-datepicker]=\"panelId\"\n [value]=\"value\"\n [disabled]=\"isDisabled\"\n [readonly]=\"true\"\n [required]=\"required\"\n (click)=\"open()\"\n (focus)=\"open()\"\n (blur)=\"onBlur()\"\n />\n @if (isOpen) {\n <div [class]=\"popoverClass\" [attr.id]=\"panelId\" role=\"dialog\" aria-label=\"Choose date\">\n <div class=\"flex items-center justify-between\">\n <button type=\"button\" [class]=\"navButtonClass\" aria-label=\"Previous month\" (click)=\"prevMonth()\">\n <\n </button>\n <div class=\"text-sm font-semibold text-[var(--cxs-color-on-surface)]\">\n {{ displayMonthLabel }}\n </div>\n <button type=\"button\" [class]=\"navButtonClass\" aria-label=\"Next month\" (click)=\"nextMonth()\">\n >\n </button>\n </div>\n\n <div class=\"mt-3 grid grid-cols-7 gap-1 text-center text-xs text-[var(--cxs-color-on-surface-muted)]\">\n @for (label of weekDayLabels; track label) {\n <div>{{ label }}</div>\n }\n </div>\n\n <div class=\"mt-2 grid grid-cols-7 gap-1\" role=\"grid\">\n @for (day of calendarDays; track day.key) {\n <button\n type=\"button\"\n [class]=\"dayButtonClass(day)\"\n [disabled]=\"day.disabled\"\n [attr.data-date]=\"day.key\"\n [attr.aria-selected]=\"day.key === value ? 'true' : 'false'\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n (click)=\"onDateSelect(day)\"\n >\n {{ day.label }}\n </button>\n }\n </div>\n </div>\n }\n </div>\n}\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","import { Directive, ElementRef, Input, OnDestroy, Renderer2 } from '@angular/core';\n\nexport type CxsThemeMode = 'light' | 'dark' | 'system';\n\nconst DEFAULT_DARK_CLASS = 'cxs-theme-dark';\n\n@Directive({\n selector: '[cxsTheme]',\n standalone: true\n})\nexport class CxsThemeDirective implements OnDestroy {\n private mode: CxsThemeMode = 'light';\n private darkClass = DEFAULT_DARK_CLASS;\n private mediaQuery: MediaQueryList | null = null;\n private mediaListener: ((event: MediaQueryListEvent) => void) | null = null;\n\n constructor(\n private readonly host: ElementRef<HTMLElement>,\n private readonly renderer: Renderer2\n ) {}\n\n @Input()\n set cxsTheme(value: CxsThemeMode | null | undefined) {\n this.mode = value ?? 'light';\n this.applyTheme();\n }\n\n @Input()\n set cxsThemeDarkClass(value: string | null | undefined) {\n const nextClass = value?.trim() || DEFAULT_DARK_CLASS;\n if (nextClass === this.darkClass) {\n return;\n }\n\n const previousClass = this.darkClass;\n this.darkClass = nextClass;\n this.renderer.removeClass(this.host.nativeElement, previousClass);\n this.applyTheme();\n }\n\n ngOnDestroy(): void {\n this.detachMediaListener();\n }\n\n private applyTheme(): void {\n if (this.mode === 'system') {\n this.attachMediaListener();\n } else {\n this.detachMediaListener();\n }\n\n const shouldEnableDark =\n this.mode === 'dark' || (this.mode === 'system' && this.prefersDark());\n\n if (shouldEnableDark) {\n this.renderer.addClass(this.host.nativeElement, this.darkClass);\n } else {\n this.renderer.removeClass(this.host.nativeElement, this.darkClass);\n }\n }\n\n private prefersDark(): boolean {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n\n if (!this.mediaQuery) {\n this.mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n }\n\n return this.mediaQuery.matches;\n }\n\n private attachMediaListener(): void {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return;\n }\n\n if (!this.mediaQuery) {\n this.mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n }\n\n if (this.mediaListener) {\n return;\n }\n\n this.mediaListener = () => this.applyTheme();\n\n if (typeof this.mediaQuery.addEventListener === 'function') {\n this.mediaQuery.addEventListener('change', this.mediaListener);\n } else if (typeof this.mediaQuery.addListener === 'function') {\n this.mediaQuery.addListener(this.mediaListener);\n }\n }\n\n private detachMediaListener(): void {\n if (!this.mediaQuery || !this.mediaListener) {\n this.mediaListener = null;\n return;\n }\n\n if (typeof this.mediaQuery.removeEventListener === 'function') {\n this.mediaQuery.removeEventListener('change', this.mediaListener);\n } else if (typeof this.mediaQuery.removeListener === 'function') {\n this.mediaQuery.removeListener(this.mediaListener);\n }\n\n this.mediaListener = null;\n }\n}\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/badge/badge.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/datepicker/datepicker.component';\nexport * from './lib/components/input/input.component';\nexport * from './lib/components/radio/radio.component';\nexport * from './lib/components/select/select.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","SIZE_CLASSES","WRAPPER_BASE","WRAPPER_ENABLED","WRAPPER_DISABLED","LABEL_BASE","LABEL_DISABLED","LABEL_SIZE_CLASSES","CONTROL_BASE","CONTROL_SIZE_CLASSES","INVALID_CLASSES"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter } from '@angular/core';
2
+ import { EventEmitter, OnDestroy, ElementRef, Renderer2 } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
 
5
5
  declare class CerxosUi {
@@ -7,20 +7,187 @@ declare class CerxosUi {
7
7
  static ɵcmp: i0.ɵɵComponentDeclaration<CerxosUi, "cxs-cerxos-ui", never, {}, {}, never, never, true, never>;
8
8
  }
9
9
 
10
+ type CxsAlertVariant = 'info' | 'neutral' | 'danger';
11
+ declare class CxsAlertComponent {
12
+ variant: CxsAlertVariant;
13
+ title?: string;
14
+ dismissible: boolean;
15
+ closed: EventEmitter<void>;
16
+ isVisible: boolean;
17
+ get alertClass(): string;
18
+ get titleClass(): string;
19
+ get closeButtonClass(): string;
20
+ onClose(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsAlertComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsAlertComponent, "cxs-alert", never, { "variant": { "alias": "variant"; "required": false; }; "title": { "alias": "title"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
23
+ }
24
+
25
+ type CxsBadgeVariant = 'primary' | 'neutral' | 'danger';
26
+ type CxsBadgeSize = 'sm' | 'md';
27
+ declare class CxsBadgeComponent {
28
+ variant: CxsBadgeVariant;
29
+ size: CxsBadgeSize;
30
+ get badgeClass(): string;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsBadgeComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsBadgeComponent, "cxs-badge", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
33
+ }
34
+
35
+ type CxsBreadcrumbSize = 'sm' | 'md' | 'lg';
36
+ type CxsBreadcrumbVariant = 'default' | 'muted';
37
+ interface CxsBreadcrumbItem {
38
+ label: string;
39
+ href?: string;
40
+ target?: string;
41
+ rel?: string;
42
+ ariaLabel?: string;
43
+ disabled?: boolean;
44
+ }
45
+ declare class CxsBreadcrumbComponent {
46
+ items: CxsBreadcrumbItem[];
47
+ separator: string;
48
+ ariaLabel: string;
49
+ size: CxsBreadcrumbSize;
50
+ variant: CxsBreadcrumbVariant;
51
+ disabled: boolean;
52
+ get listClass(): string;
53
+ get itemClass(): string;
54
+ get separatorClass(): string;
55
+ isLink(item: CxsBreadcrumbItem, isLast: boolean): boolean;
56
+ getLinkClass(item: CxsBreadcrumbItem): string;
57
+ getLabelClass(item: CxsBreadcrumbItem, isLast: boolean): string;
58
+ getItemRel(item: CxsBreadcrumbItem): string | null;
59
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsBreadcrumbComponent, never>;
60
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsBreadcrumbComponent, "cxs-breadcrumb", never, { "items": { "alias": "items"; "required": false; }; "separator": { "alias": "separator"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
61
+ }
62
+
10
63
  type CxsButtonVariant = 'primary' | 'secondary' | 'ghost';
11
64
  type CxsButtonSize = 'sm' | 'md' | 'lg';
12
65
  declare class CxsButtonComponent {
66
+ private readonly hostClass;
13
67
  variant: CxsButtonVariant;
14
68
  size: CxsButtonSize;
15
69
  disabled: boolean;
16
70
  loading: boolean;
17
71
  type: 'button' | 'submit' | 'reset';
72
+ constructor(hostClass: string | null);
18
73
  get isDisabled(): boolean;
19
74
  get buttonClass(): string;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<CxsButtonComponent, never>;
75
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsButtonComponent, [{ attribute: "class"; }]>;
21
76
  static ɵcmp: i0.ɵɵComponentDeclaration<CxsButtonComponent, "cxs-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, ["*"], true, never>;
22
77
  }
23
78
 
79
+ type CxsCardVariant = 'surface' | 'muted' | 'outline';
80
+ type CxsCardSize = 'sm' | 'md' | 'lg';
81
+ declare class CxsCardComponent {
82
+ variant: CxsCardVariant;
83
+ size: CxsCardSize;
84
+ elevated: boolean;
85
+ ariaLabel?: string;
86
+ ariaLabelledby?: string;
87
+ get cardClass(): string;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsCardComponent, never>;
89
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsCardComponent, "cxs-card", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "elevated": { "alias": "elevated"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; }, {}, never, ["*"], true, never>;
90
+ }
91
+
92
+ type CxsCheckboxSize = 'sm' | 'md' | 'lg';
93
+ declare class CxsCheckboxComponent implements ControlValueAccessor {
94
+ checked: boolean;
95
+ indeterminate: boolean;
96
+ disabled: boolean;
97
+ label?: string;
98
+ size: CxsCheckboxSize;
99
+ id?: string;
100
+ name?: string;
101
+ required: boolean;
102
+ autofocus: boolean;
103
+ ariaLabel?: string;
104
+ ariaDescribedby?: string;
105
+ valueChange: EventEmitter<boolean>;
106
+ private disabledFromControl;
107
+ private onChange;
108
+ private onTouched;
109
+ get isDisabled(): boolean;
110
+ get wrapperClass(): string;
111
+ get labelClass(): string;
112
+ get controlClass(): string;
113
+ get ariaChecked(): 'mixed' | null;
114
+ writeValue(value: boolean | null): void;
115
+ registerOnChange(fn: (value: boolean) => void): void;
116
+ registerOnTouched(fn: () => void): void;
117
+ setDisabledState(isDisabled: boolean): void;
118
+ onCheckboxChange(event: Event): void;
119
+ onBlur(): void;
120
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsCheckboxComponent, never>;
121
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsCheckboxComponent, "cxs-checkbox", never, { "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>;
122
+ }
123
+
124
+ type CxsDatepickerVariant = 'outline' | 'filled';
125
+ type CxsDatepickerSize = 'sm' | 'md' | 'lg';
126
+ type CxsCalendarDay = {
127
+ date: Date;
128
+ label: string;
129
+ inMonth: boolean;
130
+ disabled: boolean;
131
+ isToday: boolean;
132
+ key: string;
133
+ };
134
+ declare class CxsDatepickerComponent implements ControlValueAccessor {
135
+ value: string;
136
+ variant: CxsDatepickerVariant;
137
+ size: CxsDatepickerSize;
138
+ useNative: boolean;
139
+ disabled: boolean;
140
+ readonly: boolean;
141
+ required: boolean;
142
+ invalid: boolean;
143
+ autofocus: boolean;
144
+ id?: string;
145
+ name?: string;
146
+ min?: string;
147
+ max?: string;
148
+ placeholder?: string;
149
+ ariaLabel?: string;
150
+ ariaDescribedby?: string;
151
+ valueChange: EventEmitter<string>;
152
+ private static nextId;
153
+ private readonly fallbackId;
154
+ private disabledFromControl;
155
+ private onChange;
156
+ private onTouched;
157
+ isOpen: boolean;
158
+ displayMonth: Date;
159
+ calendarDays: CxsCalendarDay[];
160
+ readonly weekDayLabels: string[];
161
+ get isDisabled(): boolean;
162
+ get panelId(): string;
163
+ get inputClass(): string;
164
+ get popoverClass(): string;
165
+ get navButtonClass(): string;
166
+ get displayMonthLabel(): string;
167
+ writeValue(value: string | null): void;
168
+ registerOnChange(fn: (value: string) => void): void;
169
+ registerOnTouched(fn: () => void): void;
170
+ setDisabledState(isDisabled: boolean): void;
171
+ onInput(event: Event): void;
172
+ onDateSelect(day: CxsCalendarDay): void;
173
+ onBlur(): void;
174
+ open(): void;
175
+ toggle(): void;
176
+ prevMonth(): void;
177
+ nextMonth(): void;
178
+ dayButtonClass(day: CxsCalendarDay): string;
179
+ onDocumentClick(event: MouseEvent): void;
180
+ onEscape(): void;
181
+ private syncDisplayMonthWithValue;
182
+ private updateCalendar;
183
+ private isSelected;
184
+ private parseDate;
185
+ private formatDate;
186
+ private stripTime;
187
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsDatepickerComponent, never>;
188
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsDatepickerComponent, "cxs-datepicker", never, { "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "useNative": { "alias": "useNative"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
189
+ }
190
+
24
191
  type CxsInputVariant = 'outline' | 'filled';
25
192
  type CxsInputSize = 'sm' | 'md' | 'lg';
26
193
  type CxsInputType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url' | 'number';
@@ -124,5 +291,25 @@ declare class CxsSelectComponent implements ControlValueAccessor {
124
291
  static ɵcmp: i0.ɵɵComponentDeclaration<CxsSelectComponent, "cxs-select", never, { "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "placeholderValue": { "alias": "placeholderValue"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>;
125
292
  }
126
293
 
127
- export { CerxosUi, CxsButtonComponent, CxsInputComponent, CxsRadioComponent, CxsSelectComponent };
128
- export type { CxsButtonSize, CxsButtonVariant, CxsInputSize, CxsInputType, CxsInputVariant, CxsRadioSize, CxsRadioVariant, CxsSelectSize, CxsSelectVariant };
294
+ type CxsThemeMode = 'light' | 'dark' | 'system';
295
+ declare class CxsThemeDirective implements OnDestroy {
296
+ private readonly host;
297
+ private readonly renderer;
298
+ private mode;
299
+ private darkClass;
300
+ private mediaQuery;
301
+ private mediaListener;
302
+ constructor(host: ElementRef<HTMLElement>, renderer: Renderer2);
303
+ set cxsTheme(value: CxsThemeMode | null | undefined);
304
+ set cxsThemeDarkClass(value: string | null | undefined);
305
+ ngOnDestroy(): void;
306
+ private applyTheme;
307
+ private prefersDark;
308
+ private attachMediaListener;
309
+ private detachMediaListener;
310
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsThemeDirective, never>;
311
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CxsThemeDirective, "[cxsTheme]", never, { "cxsTheme": { "alias": "cxsTheme"; "required": false; }; "cxsThemeDarkClass": { "alias": "cxsThemeDarkClass"; "required": false; }; }, {}, never, never, true, never>;
312
+ }
313
+
314
+ export { CerxosUi, CxsAlertComponent, CxsBadgeComponent, CxsBreadcrumbComponent, CxsButtonComponent, CxsCardComponent, CxsCheckboxComponent, CxsDatepickerComponent, CxsInputComponent, CxsRadioComponent, CxsSelectComponent, CxsThemeDirective };
315
+ export type { CxsAlertVariant, CxsBadgeSize, CxsBadgeVariant, CxsBreadcrumbItem, CxsBreadcrumbSize, CxsBreadcrumbVariant, CxsButtonSize, CxsButtonVariant, CxsCardSize, CxsCardVariant, CxsCheckboxSize, CxsDatepickerSize, CxsDatepickerVariant, CxsInputSize, CxsInputType, CxsInputVariant, CxsRadioSize, CxsRadioVariant, CxsSelectSize, CxsSelectVariant, CxsThemeMode };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cerxos-ui",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0",
6
6
  "@angular/core": "^20.3.0"
@@ -9,15 +9,18 @@
9
9
  "tslib": "^2.3.0"
10
10
  },
11
11
  "sideEffects": false,
12
- "module": "fesm2022/cerxos-ui.mjs",
13
- "typings": "index.d.ts",
14
12
  "exports": {
15
- "./package.json": {
16
- "default": "./package.json"
17
- },
18
13
  ".": {
19
14
  "types": "./index.d.ts",
20
15
  "default": "./fesm2022/cerxos-ui.mjs"
21
- }
22
- }
16
+ },
17
+ "./package.json": {
18
+ "default": "./package.json"
19
+ },
20
+ "./styles/tailwind.css": "./styles/tailwind.css",
21
+ "./tokens/theme-default.css": "./tokens/theme-default.css",
22
+ "./tokens/theme-dark.css": "./tokens/theme-dark.css"
23
+ },
24
+ "module": "fesm2022/cerxos-ui.mjs",
25
+ "typings": "index.d.ts"
23
26
  }
@@ -1,2 +1,3 @@
1
1
  @import "../tokens/theme-default.css";
2
+ @import "../tokens/theme-dark.css";
2
3
  @import "tailwindcss";
@@ -0,0 +1,16 @@
1
+ .cxs-theme-dark {
2
+ color-scheme: dark;
3
+ --cxs-color-primary: #22c55e;
4
+ --cxs-color-primary-hover: #16a34a;
5
+ --cxs-color-primary-ghost: rgba(34, 197, 94, 0.16);
6
+ --cxs-color-on-primary: #0b0f0e;
7
+ --cxs-color-surface: #0b0f0e;
8
+ --cxs-color-surface-hover: #111827;
9
+ --cxs-color-on-surface: #e2e8f0;
10
+ --cxs-color-on-surface-muted: #94a3b8;
11
+ --cxs-color-border: #1f2937;
12
+ --cxs-color-danger: #f87171;
13
+ --cxs-color-focus: #f59e0b;
14
+ --cxs-radius-md: 8px;
15
+ --cxs-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
16
+ }
File without changes