@eui/eds 22.0.0-alpha.52 → 22.0.0-alpha.54

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":"eui-eds-eds-input-number.mjs","sources":["../../eds-input-number/eds-input-number.ts","../../eds-input-number/index.ts","../../eds-input-number/eui-eds-eds-input-number.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n signal,\n effect,\n booleanAttribute,\n numberAttribute,\n DoCheck,\n OnInit,\n LOCALE_ID,\n PLATFORM_ID,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { EdsClearableDirective, EdsLoadingDirective } from '@eui/eds/shared';\n\n/** Size variants supported by the EDS number input. */\nexport type EdsInputNumberSize = 's' | 'm' | 'l';\n\n/**\n * Returns the decimal and group separators for a given locale.\n */\nfunction getLocaleConfig(locale: string): { group: string; decimal: string } {\n const parts = new Intl.NumberFormat(locale, { useGrouping: true }).formatToParts(10000.1);\n return {\n group: parts.find(p => p.type === 'group')?.value || '',\n decimal: parts.find(p => p.type === 'decimal')?.value || '.',\n };\n}\n\n/**\n * EdsInputNumber is a directive-based component that applies number input behavior\n * to a native `<input>` element. It provides locale-aware number formatting with\n * thousand grouping, decimal precision, min/max enforcement, and reactive forms integration.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[edsInputNumber]',\n template: '',\n styleUrl: './eds-input-number.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: EdsClearableDirective,\n inputs: ['edsClearable', 'readonly', 'disabled'],\n },\n {\n directive: EdsLoadingDirective,\n inputs: ['edsLoading', 'readonly'],\n },\n ],\n host: {\n class: 'eds-input-number',\n '[attr.invalid]': '_isInvalid() || null',\n '[attr.input-size]': 'size()',\n '[attr.rounded]': 'isRounded() || null',\n '[attr.leading-zero]': 'hasLeadingZero() || null',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.inputmode]': '\"decimal\"',\n '[disabled]': '_disabled()',\n '[attr.readonly]': 'readonly() || null',\n '(input)': 'onHostInput($event)',\n '(blur)': 'onBlur()',\n '(keydown)': 'onKeyDown($event)',\n '(paste)': 'onPaste($event)',\n },\n})\nexport class EdsInputNumber implements ControlValueAccessor, DoCheck, OnInit {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-input-number'\n */\n e2eAttr = input('eds-input-number');\n\n /**\n * Controls whether the input is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the input is readonly.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the input shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Size variant of the input. Reflected as the `input-size` host attribute.\n * @default 'm'\n */\n size = input<EdsInputNumberSize>('m');\n\n /**\n * Minimum allowed value. Enforced on blur.\n */\n min = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * Maximum allowed value. Enforced on blur.\n */\n max = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * Number of digits allowed after the decimal point.\n * @default 0\n */\n fractionDigits = input<number, unknown>(0, { transform: (v: unknown) => numberAttribute(v, 0) });\n\n /**\n * Whether to fill the decimal part with trailing zeros.\n * @default false\n */\n fillFraction = input(false, { transform: booleanAttribute });\n\n /**\n * Disables thousand grouping. Number is displayed plain.\n * @default false\n */\n noFormat = input(false, { transform: booleanAttribute });\n\n /**\n * When true, values that exceed `fractionDigits` are mathematically rounded\n * to that number of decimal places (e.g. `99.932` with `fractionDigits=2`\n * becomes `99.93`, with `fractionDigits=1` becomes `99.9`). When false\n * (default) the extra digits are simply truncated.\n *\n * Only meaningful when `fractionDigits` > 0 — with the default `fractionDigits`\n * of 0 there are no decimals to round, so this option has no effect.\n * @default false\n */\n isRounded = input(false, { transform: booleanAttribute });\n\n /**\n * When true, the integer part is left-padded with leading zeros until it\n * reaches `minIntegerDigits` (e.g. `9` becomes `009` with `minIntegerDigits=3`).\n * @default false\n */\n hasLeadingZero = input(false, { transform: booleanAttribute });\n\n /**\n * Minimum number of integer digits to display when `hasLeadingZero` is enabled.\n * @default 3\n */\n minIntegerDigits = input<number, unknown>(3, { transform: (v: unknown) => numberAttribute(v, 3) });\n\n private _elementRef: ElementRef<HTMLInputElement> = inject(ElementRef);\n private _ngControl = inject(NgControl, { optional: true, self: true });\n private _localeId = inject(LOCALE_ID);\n private _document = inject<Document>(DOCUMENT);\n private _platformId = inject(PLATFORM_ID);\n protected _isInvalid = signal(false);\n /**\n * Internal disabled state. Written by both the `disabled` input (via effect)\n * and the reactive-forms `setDisabledState` callback, and drives the host\n * `[disabled]` binding — so `formControl.disable()` works without binding\n * `[disabled]` in the template.\n */\n protected _disabled = signal(false);\n private _localeConfig: { group: string; decimal: string };\n private _rawValue = '';\n\n constructor() {\n if (this._ngControl) {\n this._ngControl.valueAccessor = this;\n }\n this._localeConfig = getLocaleConfig(this._localeId || 'en');\n\n // Sync the `disabled` input into the internal signal.\n effect(() => {\n this._disabled.set(this.disabled());\n });\n }\n\n ngOnInit(): void {\n // Apply initial formatting if element has a value attribute\n const initialValue = this._elementRef.nativeElement.value;\n if (initialValue) {\n this._rawValue = initialValue;\n this._elementRef.nativeElement.value = this.formatNumber(initialValue);\n }\n }\n\n ngDoCheck(): void {\n if (this._ngControl) {\n this._isInvalid.set(this._ngControl.invalid && this._ngControl.touched);\n } else {\n this._isInvalid.set(this.isInvalid());\n }\n }\n\n // --- ControlValueAccessor ---\n\n writeValue(value: number | string | null): void {\n if (value === null || value === undefined || value === '') {\n this._rawValue = '';\n this._elementRef.nativeElement.value = '';\n return;\n }\n this._rawValue = value.toString();\n this._elementRef.nativeElement.value = this.formatNumber(this._rawValue);\n }\n\n registerOnChange(fn: (value: number | string | null) => 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._disabled.set(isDisabled);\n }\n\n // --- Event handlers ---\n\n protected onHostInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n const cursorPos = target.selectionStart;\n\n // Extract raw numeric value from formatted input\n const rawValue = this.extractRawValue(target.value);\n this._rawValue = rawValue;\n\n // Re-format the display value\n const formatted = this.formatNumber(rawValue);\n const lengthDiff = formatted.length - target.value.length;\n target.value = formatted;\n\n // Restore cursor position accounting for added/removed formatting chars\n if (cursorPos !== null) {\n const newPos = Math.max(0, cursorPos + lengthDiff);\n target.setSelectionRange(newPos, newPos);\n }\n\n // Emit parsed numeric value\n this._onChange(this.parseToOutput(rawValue));\n }\n\n protected onBlur(): void {\n this._onTouched();\n\n if (this._rawValue === '') {\n return;\n }\n\n let numericValue = parseFloat(this._rawValue);\n\n // Enforce min/max on blur\n const minVal = this.min();\n const maxVal = this.max();\n if (minVal !== undefined && !isNaN(minVal) && numericValue < minVal) {\n numericValue = minVal;\n }\n if (maxVal !== undefined && !isNaN(maxVal) && numericValue > maxVal) {\n numericValue = maxVal;\n }\n\n this._rawValue = numericValue.toString();\n\n // When rounding is enabled, snap the stored/emitted raw value to the\n // configured decimal places so the committed value matches the display.\n if (this.isRounded()) {\n this._rawValue = this.roundToDecimals(this._rawValue, this.fractionDigits());\n }\n\n this._elementRef.nativeElement.value = this.formatNumber(this._rawValue);\n this._onChange(this.parseToOutput(this._rawValue));\n }\n\n protected onKeyDown(e: KeyboardEvent): void {\n // Allow control keys\n if (e.ctrlKey || e.altKey || e.metaKey || e.key.length > 1) {\n return;\n }\n\n const allowedChars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n\n // Allow decimal separator if fractionDigits > 0\n if (this.fractionDigits() > 0) {\n allowedChars.push(this._localeConfig.decimal);\n allowedChars.push('.'); // Always allow dot as decimal input\n }\n\n // Allow minus sign if min is undefined or negative\n const minVal = this.min();\n if (minVal === undefined || isNaN(minVal) || minVal < 0) {\n allowedChars.push('-');\n }\n\n if (!allowedChars.includes(e.key)) {\n e.preventDefault();\n }\n }\n\n protected onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const pastedText = event.clipboardData?.getData('text') || '';\n // Extract only numeric characters from pasted text\n const cleaned = this.extractRawValue(pastedText);\n if (cleaned) {\n this._rawValue = cleaned;\n this._elementRef.nativeElement.value = this.formatNumber(cleaned);\n this._onChange(this.parseToOutput(cleaned));\n }\n }\n\n // --- Private helpers ---\n\n private formatNumber(rawValue: string): string {\n if (!rawValue || !isPlatformBrowser(this._platformId)) {\n return rawValue || '';\n }\n\n const num = parseFloat(rawValue);\n if (isNaN(num) && rawValue !== '-' && rawValue !== '.') {\n return rawValue;\n }\n\n // Handle incomplete input (just minus or dot)\n if (rawValue === '-' || rawValue === '.') {\n return rawValue;\n }\n\n const maxDecimals = this.fractionDigits();\n let parts = rawValue.split('.');\n let integerPart = parts[0] || '0';\n let decimalPart = parts.length > 1 ? parts[1] : '';\n\n // Round to fractionDigits when requested — do it up front so rounding can\n // carry into the integer part (e.g. 99.95 → 100.0 at 1 fraction digit).\n if (this.isRounded() && decimalPart.length > maxDecimals) {\n const rounded = this.roundToDecimals(rawValue, maxDecimals);\n parts = rounded.split('.');\n integerPart = parts[0] || '0';\n decimalPart = parts.length > 1 ? parts[1] : '';\n }\n\n const isNegative = integerPart.startsWith('-');\n if (isNegative) {\n integerPart = integerPart.substring(1);\n }\n\n // Trim decimal to fractionDigits\n if (decimalPart.length > maxDecimals && maxDecimals > 0) {\n decimalPart = decimalPart.substring(0, maxDecimals);\n }\n\n // Fill fraction with trailing zeros if requested\n if (this.fillFraction() && maxDecimals > 0) {\n decimalPart = decimalPart.padEnd(maxDecimals, '0');\n }\n\n // Pad the integer part with leading zeros when requested\n if (this.hasLeadingZero()) {\n const minDigits = this.minIntegerDigits();\n if (minDigits > 0 && integerPart.length < minDigits) {\n integerPart = integerPart.padStart(minDigits, '0');\n }\n }\n\n // Apply thousand grouping\n if (!this.noFormat()) {\n integerPart = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this._localeConfig.group);\n }\n\n let result = isNegative ? '-' + integerPart : integerPart;\n if (decimalPart || (parts.length > 1 && maxDecimals > 0)) {\n result += this._localeConfig.decimal + decimalPart;\n }\n\n return result;\n }\n\n private extractRawValue(formattedValue: string): string {\n if (!formattedValue) {\n return '';\n }\n // Remove group separators, replace locale decimal with dot\n let raw = formattedValue;\n if (this._localeConfig.group) {\n raw = raw.split(this._localeConfig.group).join('');\n }\n raw = raw.split(this._localeConfig.decimal).join('.');\n\n // Keep only digits, dot, and minus\n raw = raw.replace(/[^\\d.-]/g, '');\n\n // Ensure only one minus at the start\n if (raw.indexOf('-') > 0) {\n raw = raw.replace(/-/g, '');\n }\n\n // Ensure only one dot\n const dotIndex = raw.indexOf('.');\n if (dotIndex !== -1) {\n raw = raw.substring(0, dotIndex + 1) + raw.substring(dotIndex + 1).replace(/\\./g, '');\n }\n\n return raw;\n }\n\n /**\n * Mathematically rounds a raw numeric string to `decimals` decimal places,\n * returning a plain (dot-separated) numeric string.\n */\n private roundToDecimals(rawValue: string, decimals: number): string {\n const num = parseFloat(rawValue);\n if (isNaN(num)) {\n return rawValue;\n }\n const factor = Math.pow(10, decimals);\n const rounded = Math.round(num * factor) / factor;\n return rounded.toFixed(decimals);\n }\n\n private parseToOutput(rawValue: string): number | null {\n if (!rawValue || rawValue === '-' || rawValue === '.') {\n return null;\n }\n const num = parseFloat(rawValue);\n return isNaN(num) ? null : num;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange: (value: number | string | null) => void = () => { /* noop */ };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onTouched: () => void = () => { /* noop */ };\n}\n","import { EdsInputNumber } from './eds-input-number';\n\nexport { EdsInputNumber };\n\n/** Convenience array for importing eds-input-number. */\nexport const EDS_INPUT_NUMBER = [\n EdsInputNumber,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-eds-eds-input-number.mjs","sources":["../../eds-input-number/eds-input-number.ts","../../eds-input-number/index.ts","../../eds-input-number/eui-eds-eds-input-number.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n signal,\n effect,\n booleanAttribute,\n numberAttribute,\n DoCheck,\n OnInit,\n LOCALE_ID,\n PLATFORM_ID,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { EdsClearableDirective, EdsLoadingDirective } from '@eui/eds/shared';\n\n/** Size variants supported by the EDS number input. */\nexport type EdsInputNumberSize = 's' | 'm' | 'l';\n\n/**\n * Returns the decimal and group separators for a given locale.\n */\nfunction getLocaleConfig(locale: string): { group: string; decimal: string } {\n const parts = new Intl.NumberFormat(locale, { useGrouping: true }).formatToParts(10000.1);\n return {\n group: parts.find(p => p.type === 'group')?.value || '',\n decimal: parts.find(p => p.type === 'decimal')?.value || '.',\n };\n}\n\n/**\n * EdsInputNumber is a directive-based component that applies number input behavior\n * to a native `<input>` element. It provides locale-aware number formatting with\n * thousand grouping, decimal precision, min/max enforcement, and reactive forms integration.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[edsInputNumber]',\n template: '',\n styleUrl: './eds-input-number.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: EdsClearableDirective,\n inputs: ['edsClearable', 'readonly', 'disabled'],\n },\n {\n directive: EdsLoadingDirective,\n inputs: ['edsLoading', 'readonly'],\n },\n ],\n host: {\n class: 'eds-input-number',\n '[attr.invalid]': '_isInvalid() || null',\n '[attr.input-size]': 'size()',\n '[attr.rounded]': 'isRounded() || null',\n '[attr.leading-zero]': 'hasLeadingZero() || null',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.inputmode]': '\"decimal\"',\n '[disabled]': '_disabled()',\n '[attr.readonly]': 'readonly() || null',\n '(input)': 'onHostInput($event)',\n '(blur)': 'onBlur()',\n '(keydown)': 'onKeyDown($event)',\n '(paste)': 'onPaste($event)',\n },\n})\nexport class EdsInputNumber implements ControlValueAccessor, DoCheck, OnInit {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-input-number'\n */\n e2eAttr = input('eds-input-number');\n\n /**\n * Controls whether the input is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the input is readonly.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the input shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Size variant of the input. Reflected as the `input-size` host attribute.\n * @default 'm'\n */\n size = input<EdsInputNumberSize>('m');\n\n /**\n * Minimum allowed value. Enforced on blur.\n */\n min = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * Maximum allowed value. Enforced on blur.\n */\n max = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * Number of digits allowed after the decimal point.\n * @default 0\n */\n fractionDigits = input<number, unknown>(0, { transform: (v: unknown) => numberAttribute(v, 0) });\n\n /**\n * Whether to fill the decimal part with trailing zeros.\n * @default false\n */\n fillFraction = input(false, { transform: booleanAttribute });\n\n /**\n * Disables thousand grouping. Number is displayed plain.\n * @default false\n */\n noFormat = input(false, { transform: booleanAttribute });\n\n /**\n * When true, values that exceed `fractionDigits` are mathematically rounded\n * to that number of decimal places (e.g. `99.932` with `fractionDigits=2`\n * becomes `99.93`, with `fractionDigits=1` becomes `99.9`). When false\n * (default) the extra digits are simply truncated.\n *\n * Only meaningful when `fractionDigits` > 0 — with the default `fractionDigits`\n * of 0 there are no decimals to round, so this option has no effect.\n * @default false\n */\n isRounded = input(false, { transform: booleanAttribute });\n\n /**\n * When true, the integer part is left-padded with leading zeros until it\n * reaches `minIntegerDigits` (e.g. `9` becomes `009` with `minIntegerDigits=3`).\n * @default false\n */\n hasLeadingZero = input(false, { transform: booleanAttribute });\n\n /**\n * Minimum number of integer digits to display when `hasLeadingZero` is enabled.\n * @default 3\n */\n minIntegerDigits = input<number, unknown>(3, { transform: (v: unknown) => numberAttribute(v, 3) });\n\n private _elementRef: ElementRef<HTMLInputElement> = inject(ElementRef);\n private _ngControl = inject(NgControl, { optional: true, self: true });\n private _localeId = inject(LOCALE_ID);\n private _document = inject<Document>(DOCUMENT);\n private _platformId = inject(PLATFORM_ID);\n protected _isInvalid = signal(false);\n /**\n * Internal disabled state. Written by both the `disabled` input (via effect)\n * and the reactive-forms `setDisabledState` callback, and drives the host\n * `[disabled]` binding — so `formControl.disable()` works without binding\n * `[disabled]` in the template.\n */\n protected _disabled = signal(false);\n private _localeConfig: { group: string; decimal: string };\n private _rawValue = '';\n\n constructor() {\n if (this._ngControl) {\n this._ngControl.valueAccessor = this;\n }\n this._localeConfig = getLocaleConfig(this._localeId || 'en');\n\n // Sync the `disabled` input into the internal signal.\n effect(() => {\n this._disabled.set(this.disabled());\n });\n }\n\n ngOnInit(): void {\n // Apply initial formatting if element has a value attribute\n const initialValue = this._elementRef.nativeElement.value;\n if (initialValue) {\n this._rawValue = initialValue;\n this._elementRef.nativeElement.value = this.formatNumber(initialValue);\n }\n }\n\n ngDoCheck(): void {\n if (this._ngControl) {\n this._isInvalid.set(this._ngControl.invalid && this._ngControl.touched);\n } else {\n this._isInvalid.set(this.isInvalid());\n }\n }\n\n // --- ControlValueAccessor ---\n\n writeValue(value: number | string | null): void {\n if (value === null || value === undefined || value === '') {\n this._rawValue = '';\n this._elementRef.nativeElement.value = '';\n return;\n }\n this._rawValue = value.toString();\n this._elementRef.nativeElement.value = this.formatNumber(this._rawValue);\n }\n\n registerOnChange(fn: (value: number | string | null) => 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._disabled.set(isDisabled);\n }\n\n // --- Event handlers ---\n\n protected onHostInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n const cursorPos = target.selectionStart;\n\n // Extract raw numeric value from formatted input\n const rawValue = this.extractRawValue(target.value);\n this._rawValue = rawValue;\n\n // Re-format the display value\n const formatted = this.formatNumber(rawValue);\n const lengthDiff = formatted.length - target.value.length;\n target.value = formatted;\n\n // Restore cursor position accounting for added/removed formatting chars\n if (cursorPos !== null) {\n const newPos = Math.max(0, cursorPos + lengthDiff);\n target.setSelectionRange(newPos, newPos);\n }\n\n // Emit parsed numeric value\n this._onChange(this.parseToOutput(rawValue));\n }\n\n protected onBlur(): void {\n this._onTouched();\n\n if (this._rawValue === '') {\n return;\n }\n\n let numericValue = parseFloat(this._rawValue);\n\n // Enforce min/max on blur\n const minVal = this.min();\n const maxVal = this.max();\n if (minVal !== undefined && !isNaN(minVal) && numericValue < minVal) {\n numericValue = minVal;\n }\n if (maxVal !== undefined && !isNaN(maxVal) && numericValue > maxVal) {\n numericValue = maxVal;\n }\n\n this._rawValue = numericValue.toString();\n\n // When rounding is enabled, snap the stored/emitted raw value to the\n // configured decimal places so the committed value matches the display.\n if (this.isRounded()) {\n this._rawValue = this.roundToDecimals(this._rawValue, this.fractionDigits());\n }\n\n this._elementRef.nativeElement.value = this.formatNumber(this._rawValue);\n this._onChange(this.parseToOutput(this._rawValue));\n }\n\n protected onKeyDown(e: KeyboardEvent): void {\n // Allow control keys\n if (e.ctrlKey || e.altKey || e.metaKey || e.key.length > 1) {\n return;\n }\n\n const allowedChars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n\n // Allow decimal separator if fractionDigits > 0\n if (this.fractionDigits() > 0) {\n allowedChars.push(this._localeConfig.decimal);\n allowedChars.push('.'); // Always allow dot as decimal input\n }\n\n // Allow minus sign if min is undefined or negative\n const minVal = this.min();\n if (minVal === undefined || isNaN(minVal) || minVal < 0) {\n allowedChars.push('-');\n }\n\n if (!allowedChars.includes(e.key)) {\n e.preventDefault();\n }\n }\n\n protected onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const pastedText = event.clipboardData?.getData('text') || '';\n // Extract only numeric characters from pasted text\n const cleaned = this.extractRawValue(pastedText);\n if (cleaned) {\n this._rawValue = cleaned;\n this._elementRef.nativeElement.value = this.formatNumber(cleaned);\n this._onChange(this.parseToOutput(cleaned));\n }\n }\n\n // --- Private helpers ---\n\n private formatNumber(rawValue: string): string {\n if (!rawValue || !isPlatformBrowser(this._platformId)) {\n return rawValue || '';\n }\n\n const num = parseFloat(rawValue);\n if (isNaN(num) && rawValue !== '-' && rawValue !== '.') {\n return rawValue;\n }\n\n // Handle incomplete input (just minus or dot)\n if (rawValue === '-' || rawValue === '.') {\n return rawValue;\n }\n\n const maxDecimals = this.fractionDigits();\n let parts = rawValue.split('.');\n let integerPart = parts[0] || '0';\n let decimalPart = parts.length > 1 ? parts[1] : '';\n\n // Round to fractionDigits when requested — do it up front so rounding can\n // carry into the integer part (e.g. 99.95 → 100.0 at 1 fraction digit).\n if (this.isRounded() && decimalPart.length > maxDecimals) {\n const rounded = this.roundToDecimals(rawValue, maxDecimals);\n parts = rounded.split('.');\n integerPart = parts[0] || '0';\n decimalPart = parts.length > 1 ? parts[1] : '';\n }\n\n const isNegative = integerPart.startsWith('-');\n if (isNegative) {\n integerPart = integerPart.substring(1);\n }\n\n // Trim decimal to fractionDigits\n if (decimalPart.length > maxDecimals && maxDecimals > 0) {\n decimalPart = decimalPart.substring(0, maxDecimals);\n }\n\n // Fill fraction with trailing zeros if requested\n if (this.fillFraction() && maxDecimals > 0) {\n decimalPart = decimalPart.padEnd(maxDecimals, '0');\n }\n\n // Pad the integer part with leading zeros when requested\n if (this.hasLeadingZero()) {\n const minDigits = this.minIntegerDigits();\n if (minDigits > 0 && integerPart.length < minDigits) {\n integerPart = integerPart.padStart(minDigits, '0');\n }\n }\n\n // Apply thousand grouping\n if (!this.noFormat()) {\n integerPart = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this._localeConfig.group);\n }\n\n let result = isNegative ? '-' + integerPart : integerPart;\n if (decimalPart || (parts.length > 1 && maxDecimals > 0)) {\n result += this._localeConfig.decimal + decimalPart;\n }\n\n return result;\n }\n\n private extractRawValue(formattedValue: string): string {\n if (!formattedValue) {\n return '';\n }\n // Remove group separators, replace locale decimal with dot\n let raw = formattedValue;\n if (this._localeConfig.group) {\n raw = raw.split(this._localeConfig.group).join('');\n }\n raw = raw.split(this._localeConfig.decimal).join('.');\n\n // Keep only digits, dot, and minus\n raw = raw.replace(/[^\\d.-]/g, '');\n\n // Ensure only one minus at the start\n if (raw.indexOf('-') > 0) {\n raw = raw.replace(/-/g, '');\n }\n\n // Ensure only one dot\n const dotIndex = raw.indexOf('.');\n if (dotIndex !== -1) {\n raw = raw.substring(0, dotIndex + 1) + raw.substring(dotIndex + 1).replace(/\\./g, '');\n }\n\n return raw;\n }\n\n /**\n * Mathematically rounds a raw numeric string to `decimals` decimal places,\n * returning a plain (dot-separated) numeric string.\n */\n private roundToDecimals(rawValue: string, decimals: number): string {\n const num = parseFloat(rawValue);\n if (isNaN(num)) {\n return rawValue;\n }\n const factor = Math.pow(10, decimals);\n const rounded = Math.round(num * factor) / factor;\n return rounded.toFixed(decimals);\n }\n\n private parseToOutput(rawValue: string): number | null {\n if (!rawValue || rawValue === '-' || rawValue === '.') {\n return null;\n }\n const num = parseFloat(rawValue);\n return isNaN(num) ? null : num;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange: (value: number | string | null) => void = () => { /* noop */ };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onTouched: () => void = () => { /* noop */ };\n}\n","import { EdsInputNumber } from './eds-input-number';\n\nexport { EdsInputNumber };\n\n/** Convenience array for importing eds-input-number. */\nexport const EDS_INPUT_NUMBER = [\n EdsInputNumber,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -84,7 +84,7 @@ class EdsInputText {
84
84
  this._onChange(target.value);
85
85
  }
86
86
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsInputText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsInputText, isStandalone: true, selector: "input[edsInputText]", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "onHostInput($event)", "blur": "onTouched()" }, properties: { "attr.invalid": "_isInvalid() || null", "attr.aria-invalid": "_isInvalid() || null", "attr.input-size": "size()", "attr.data-e2e": "e2eAttr()", "disabled": "_disabled()", "attr.readonly": "readonly() || null" }, classAttribute: "eds-input-text" }, hostDirectives: [{ directive: i1.EdsClearableDirective, inputs: ["edsClearable", "edsClearable", "readonly", "readonly", "disabled", "disabled"] }, { directive: i1.EdsLoadingDirective, inputs: ["edsLoading", "edsLoading", "readonly", "readonly"] }], ngImport: i0, template: '', isInline: true, styles: [".eui-21 :host.eds-input-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-input-text:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-input-text:not([hidden]){display:block}.eui-21 :host.eds-input-text::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-input-text[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-input-text:disabled:not([readonly]),.eui-21 :host.eds-input-text--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-input-text[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-input-text--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-input-text--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-input-text--loading-icon:after,.eui-21 :host.eds-input-text--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-input-text--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-input-text--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-input-text--loading-icon--sm:after,.eui-21 :host.eds-input-text--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([invalid=true]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-input-text[input-size=s]{--_eds-input-height: calc(var(--eds-si-3xl) + var(--eds-si-2xs));--_eds-input-pad-v: var(--eds-sp-2xs);--_eds-input-pad-h: var(--eds-sp-s)}.eui-21 :host.eds-input-text[input-size=l]{--_eds-input-height: var(--eds-si-6xl);--_eds-input-pad-v: var(--eds-sp-s);--_eds-input-pad-h: var(--eds-sp-m)}.eui-21 :host.eds-input-text[readonly]{pointer-events:auto}.eui-21 :host.eds-input-text[readonly]::placeholder{color:transparent}.eui-21 :host.eds-input-text.eds-input-text--loading[readonly]{background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);padding-left:var(--eds-sp-s)}.eui-21 :host.eds-input-text.eds-input-text--clearable{padding-right:calc(var(--eds-sp-s) + 24px)}.eui-21 :host.eds-input-text.eds-input-text--loading:not(.eds-input-text--clearable){padding-right:calc(var(--eds-sp-s) + 28px)}.eui-21 :host.eds-input-text.eds-input-text--loading.eds-input-text--clearable{padding-right:calc(var(--eds-sp-s) + 28px)}.eui-21 :host.eds-input-text[type=search]::-webkit-search-cancel-button{display:none}.eui-21 :host.eds-input-text[invalid]{border-color:var(--eds-c-border-critical)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsInputText, isStandalone: true, selector: "input[edsInputText]", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "onHostInput($event)", "blur": "onTouched()" }, properties: { "attr.invalid": "_isInvalid() || null", "attr.aria-invalid": "_isInvalid() || null", "attr.input-size": "size()", "attr.data-e2e": "e2eAttr()", "disabled": "_disabled()", "attr.readonly": "readonly() || null" }, classAttribute: "eds-input-text" }, hostDirectives: [{ directive: i1.EdsClearableDirective, inputs: ["edsClearable", "edsClearable", "readonly", "readonly", "disabled", "disabled"] }, { directive: i1.EdsLoadingDirective, inputs: ["edsLoading", "edsLoading", "readonly", "readonly"] }], ngImport: i0, template: '', isInline: true, styles: [".eui-21 :host.eds-input-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-input-text:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-input-text:not([hidden]){display:block}.eui-21 :host.eds-input-text::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-input-text[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-input-text:disabled:not([readonly]),.eui-21 :host.eds-input-text--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-input-text[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-focus-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-input-text--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-input-text--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-input-text--loading-icon:after,.eui-21 :host.eds-input-text--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-input-text--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-input-text--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-input-text--loading-icon--sm:after,.eui-21 :host.eds-input-text--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]):before{background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-input-text[input-size=s]{--_eds-input-height: calc(var(--eds-si-3xl) + var(--eds-si-2xs));--_eds-input-pad-v: var(--eds-sp-2xs);--_eds-input-pad-h: var(--eds-sp-s)}.eui-21 :host.eds-input-text[input-size=l]{--_eds-input-height: var(--eds-si-6xl);--_eds-input-pad-v: var(--eds-sp-s);--_eds-input-pad-h: var(--eds-sp-m)}.eui-21 :host.eds-input-text[readonly]{pointer-events:auto}.eui-21 :host.eds-input-text[readonly]::placeholder{color:transparent}.eui-21 :host.eds-input-text.eds-input-text--loading[readonly]{background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);padding-left:var(--eds-sp-s)}.eui-21 :host.eds-input-text.eds-input-text--clearable{padding-right:calc(var(--eds-sp-s) + 24px)}.eui-21 :host.eds-input-text.eds-input-text--loading:not(.eds-input-text--clearable){padding-right:calc(var(--eds-sp-s) + 28px)}.eui-21 :host.eds-input-text.eds-input-text--loading.eds-input-text--clearable{padding-right:calc(var(--eds-sp-s) + 28px)}.eui-21 :host.eds-input-text[type=search]::-webkit-search-cancel-button{display:none}.eui-21 :host.eds-input-text[invalid]{border-color:var(--eds-c-border-critical)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsInputText, decorators: [{
90
90
  type: Component,
@@ -107,7 +107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
107
107
  '[attr.readonly]': 'readonly() || null',
108
108
  '(input)': 'onHostInput($event)',
109
109
  '(blur)': 'onTouched()',
110
- }, styles: [".eui-21 :host.eds-input-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-input-text:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-input-text:not([hidden]){display:block}.eui-21 :host.eds-input-text::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-input-text[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-input-text:disabled:not([readonly]),.eui-21 :host.eds-input-text--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-input-text[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-input-text--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-input-text--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-input-text--loading-icon:after,.eui-21 :host.eds-input-text--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-input-text--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-input-text--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-input-text--loading-icon--sm:after,.eui-21 :host.eds-input-text--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([invalid=true]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-input-text[input-size=s]{--_eds-input-height: calc(var(--eds-si-3xl) + var(--eds-si-2xs));--_eds-input-pad-v: var(--eds-sp-2xs);--_eds-input-pad-h: var(--eds-sp-s)}.eui-21 :host.eds-input-text[input-size=l]{--_eds-input-height: var(--eds-si-6xl);--_eds-input-pad-v: var(--eds-sp-s);--_eds-input-pad-h: var(--eds-sp-m)}.eui-21 :host.eds-input-text[readonly]{pointer-events:auto}.eui-21 :host.eds-input-text[readonly]::placeholder{color:transparent}.eui-21 :host.eds-input-text.eds-input-text--loading[readonly]{background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);padding-left:var(--eds-sp-s)}.eui-21 :host.eds-input-text.eds-input-text--clearable{padding-right:calc(var(--eds-sp-s) + 24px)}.eui-21 :host.eds-input-text.eds-input-text--loading:not(.eds-input-text--clearable){padding-right:calc(var(--eds-sp-s) + 28px)}.eui-21 :host.eds-input-text.eds-input-text--loading.eds-input-text--clearable{padding-right:calc(var(--eds-sp-s) + 28px)}.eui-21 :host.eds-input-text[type=search]::-webkit-search-cancel-button{display:none}.eui-21 :host.eds-input-text[invalid]{border-color:var(--eds-c-border-critical)}\n"] }]
110
+ }, styles: [".eui-21 :host.eds-input-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-input-text:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-input-text:not([hidden]){display:block}.eui-21 :host.eds-input-text::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-input-text[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-input-text:disabled:not([readonly]),.eui-21 :host.eds-input-text--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-input-text[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-focus-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-input-text--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-input-text--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-input-text--loading-icon:after,.eui-21 :host.eds-input-text--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-input-text--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-input-text--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-input-text--loading-icon--sm:after,.eui-21 :host.eds-input-text--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-input-text:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]):before{background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-input-text[input-size=s]{--_eds-input-height: calc(var(--eds-si-3xl) + var(--eds-si-2xs));--_eds-input-pad-v: var(--eds-sp-2xs);--_eds-input-pad-h: var(--eds-sp-s)}.eui-21 :host.eds-input-text[input-size=l]{--_eds-input-height: var(--eds-si-6xl);--_eds-input-pad-v: var(--eds-sp-s);--_eds-input-pad-h: var(--eds-sp-m)}.eui-21 :host.eds-input-text[readonly]{pointer-events:auto}.eui-21 :host.eds-input-text[readonly]::placeholder{color:transparent}.eui-21 :host.eds-input-text.eds-input-text--loading[readonly]{background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);padding-left:var(--eds-sp-s)}.eui-21 :host.eds-input-text.eds-input-text--clearable{padding-right:calc(var(--eds-sp-s) + 24px)}.eui-21 :host.eds-input-text.eds-input-text--loading:not(.eds-input-text--clearable){padding-right:calc(var(--eds-sp-s) + 28px)}.eui-21 :host.eds-input-text.eds-input-text--loading.eds-input-text--clearable{padding-right:calc(var(--eds-sp-s) + 28px)}.eui-21 :host.eds-input-text[type=search]::-webkit-search-cancel-button{display:none}.eui-21 :host.eds-input-text[invalid]{border-color:var(--eds-c-border-critical)}\n"] }]
111
111
  }], ctorParameters: () => [], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
112
112
 
113
113
  /** Convenience array for importing eds-input-text. */
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-input-text.mjs","sources":["../../eds-input-text/eds-input-text.ts","../../eds-input-text/index.ts","../../eds-input-text/eui-eds-eds-input-text.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n signal,\n effect,\n booleanAttribute,\n DoCheck,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { EdsClearableDirective } from '@eui/eds/shared';\nimport { EdsLoadingDirective } from '@eui/eds/shared';\n\n/** Size variants supported by the EDS text input. */\nexport type EdsInputTextSize = 's' | 'm' | 'l';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[edsInputText]',\n template: '',\n styleUrl: './eds-input-text.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: EdsClearableDirective,\n inputs: ['edsClearable', 'readonly', 'disabled'],\n },\n {\n directive: EdsLoadingDirective,\n inputs: ['edsLoading', 'readonly'],\n },\n ],\n host: {\n class: 'eds-input-text',\n '[attr.invalid]': '_isInvalid() || null',\n '[attr.aria-invalid]': '_isInvalid() || null',\n '[attr.input-size]': 'size()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[disabled]': '_disabled()',\n '[attr.readonly]': 'readonly() || null',\n '(input)': 'onHostInput($event)',\n '(blur)': 'onTouched()',\n },\n})\nexport class EdsInputText implements ControlValueAccessor, DoCheck {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-input-text'\n */\n e2eAttr = input('eds-input-text');\n\n /**\n * Controls whether the input is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the input is readonly.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the input shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Size variant of the input. Reflected as the `size` host attribute.\n * @default 'm'\n */\n size = input<EdsInputTextSize>('m');\n\n private _elementRef: ElementRef<HTMLInputElement> = inject(ElementRef);\n private _ngControl = inject(NgControl, { optional: true, self: true });\n protected _isInvalid = signal(false);\n /**\n * Internal disabled state. Written by both the `disabled` input (via effect)\n * and the reactive-forms `setDisabledState` callback, and drives the host\n * `[disabled]` binding — so `formControl.disable()` works without binding\n * `[disabled]` in the template.\n */\n protected _disabled = signal(false);\n\n constructor() {\n if (this._ngControl) {\n this._ngControl.valueAccessor = this;\n }\n\n // Sync the `disabled` input into the internal signal.\n effect(() => {\n this._disabled.set(this.disabled());\n });\n }\n\n ngDoCheck(): void {\n if (this._ngControl) {\n this._isInvalid.set(this._ngControl.invalid && this._ngControl.touched);\n } else {\n this._isInvalid.set(this.isInvalid());\n }\n }\n\n // --- ControlValueAccessor ---\n\n writeValue(value: string): void {\n this._elementRef.nativeElement.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._disabled.set(isDisabled);\n }\n\n // --- Event handlers ---\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n protected onTouched: () => void = () => { /* noop */ };\n\n protected onHostInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n this._onChange(target.value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange: (value: string) => void = () => { /* noop */ };\n}\n","import { EdsInputText } from './eds-input-text';\n\nexport { EdsInputText };\n\n/** Convenience array for importing eds-input-text. */\nexport const EDS_INPUT_TEXT = [\n EdsInputText,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-eds-eds-input-text.mjs","sources":["../../eds-input-text/eds-input-text.ts","../../eds-input-text/index.ts","../../eds-input-text/eui-eds-eds-input-text.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n signal,\n effect,\n booleanAttribute,\n DoCheck,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { EdsClearableDirective } from '@eui/eds/shared';\nimport { EdsLoadingDirective } from '@eui/eds/shared';\n\n/** Size variants supported by the EDS text input. */\nexport type EdsInputTextSize = 's' | 'm' | 'l';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[edsInputText]',\n template: '',\n styleUrl: './eds-input-text.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: EdsClearableDirective,\n inputs: ['edsClearable', 'readonly', 'disabled'],\n },\n {\n directive: EdsLoadingDirective,\n inputs: ['edsLoading', 'readonly'],\n },\n ],\n host: {\n class: 'eds-input-text',\n '[attr.invalid]': '_isInvalid() || null',\n '[attr.aria-invalid]': '_isInvalid() || null',\n '[attr.input-size]': 'size()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[disabled]': '_disabled()',\n '[attr.readonly]': 'readonly() || null',\n '(input)': 'onHostInput($event)',\n '(blur)': 'onTouched()',\n },\n})\nexport class EdsInputText implements ControlValueAccessor, DoCheck {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-input-text'\n */\n e2eAttr = input('eds-input-text');\n\n /**\n * Controls whether the input is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the input is readonly.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the input shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Size variant of the input. Reflected as the `size` host attribute.\n * @default 'm'\n */\n size = input<EdsInputTextSize>('m');\n\n private _elementRef: ElementRef<HTMLInputElement> = inject(ElementRef);\n private _ngControl = inject(NgControl, { optional: true, self: true });\n protected _isInvalid = signal(false);\n /**\n * Internal disabled state. Written by both the `disabled` input (via effect)\n * and the reactive-forms `setDisabledState` callback, and drives the host\n * `[disabled]` binding — so `formControl.disable()` works without binding\n * `[disabled]` in the template.\n */\n protected _disabled = signal(false);\n\n constructor() {\n if (this._ngControl) {\n this._ngControl.valueAccessor = this;\n }\n\n // Sync the `disabled` input into the internal signal.\n effect(() => {\n this._disabled.set(this.disabled());\n });\n }\n\n ngDoCheck(): void {\n if (this._ngControl) {\n this._isInvalid.set(this._ngControl.invalid && this._ngControl.touched);\n } else {\n this._isInvalid.set(this.isInvalid());\n }\n }\n\n // --- ControlValueAccessor ---\n\n writeValue(value: string): void {\n this._elementRef.nativeElement.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._disabled.set(isDisabled);\n }\n\n // --- Event handlers ---\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n protected onTouched: () => void = () => { /* noop */ };\n\n protected onHostInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n this._onChange(target.value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange: (value: string) => void = () => { /* noop */ };\n}\n","import { EdsInputText } from './eds-input-text';\n\nexport { EdsInputText };\n\n/** Convenience array for importing eds-input-text. */\nexport const EDS_INPUT_TEXT = [\n EdsInputText,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, inject, ElementRef, forwardRef, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, booleanAttribute, inject, ElementRef, signal, effect, forwardRef, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
 
5
5
  class EdsRadio {
@@ -32,12 +32,23 @@ class EdsRadio {
32
32
  this.size = input('m', /* @ts-ignore */
33
33
  ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
34
34
  this._elementRef = inject(ElementRef);
35
+ /**
36
+ * Internal disabled state, written by both the `disabled` input (via effect)
37
+ * and the reactive-forms `setDisabledState` callback. The host `[disabled]`
38
+ * binding reads this so `form.disable()` visually disables the radio.
39
+ */
40
+ this.internalDisabled = signal(false, /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "internalDisabled" }] : /* istanbul ignore next */ []));
35
42
  // --- Event handlers ---
36
43
  // ControlValueAccessor callbacks
37
44
  // eslint-disable-next-line @typescript-eslint/no-empty-function
38
45
  this.onTouched = () => { };
39
46
  // eslint-disable-next-line @typescript-eslint/no-empty-function
40
47
  this._onChange = () => { };
48
+ // Sync the public `disabled` input → internal state.
49
+ effect(() => {
50
+ this.internalDisabled.set(this.disabled());
51
+ });
41
52
  }
42
53
  // --- ControlValueAccessor ---
43
54
  writeValue(value) {
@@ -50,8 +61,9 @@ class EdsRadio {
50
61
  registerOnTouched(fn) {
51
62
  this.onTouched = fn;
52
63
  }
53
- setDisabledState(_isDisabled) {
54
- // Disabled is handled via the input signal binding on the host element.
64
+ setDisabledState(isDisabled) {
65
+ // Reactive forms (e.g. form.disable()) disable the control through here.
66
+ this.internalDisabled.set(isDisabled);
55
67
  }
56
68
  onHostClick(event) {
57
69
  if (this.readonly()) {
@@ -70,13 +82,13 @@ class EdsRadio {
70
82
  }
71
83
  }
72
84
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsRadio, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsRadio, isStandalone: true, selector: "input[edsRadio]", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "radio" }, listeners: { "click": "onHostClick($event)", "change": "onHostChange($event)", "blur": "onTouched()", "keydown.space": "onSpacePressed($any($event))" }, properties: { "attr.invalid": "isInvalid() || null", "attr.aria-invalid": "isInvalid() || null", "attr.size": "size()", "attr.data-e2e": "e2eAttr()", "disabled": "disabled()", "attr.readonly": "readonly() || null" }, classAttribute: "eds-radio" }, providers: [
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsRadio, isStandalone: true, selector: "input[edsRadio]", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "radio" }, listeners: { "click": "onHostClick($event)", "change": "onHostChange($event)", "blur": "onTouched()", "keydown.space": "onSpacePressed($any($event))" }, properties: { "attr.invalid": "isInvalid() || null", "attr.aria-invalid": "isInvalid() || null", "attr.size": "size()", "attr.data-e2e": "e2eAttr()", "disabled": "internalDisabled()", "attr.data-readonly": "readonly() || null" }, classAttribute: "eds-radio" }, providers: [
74
86
  {
75
87
  provide: NG_VALUE_ACCESSOR,
76
88
  useExisting: forwardRef(() => EdsRadio),
77
89
  multi: true,
78
90
  },
79
- ], ngImport: i0, template: '', isInline: true, styles: [".eui-21 :host.eds-radio{appearance:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;vertical-align:middle;cursor:pointer}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([invalid=true]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-radio{--_eds-radio-size: var(--eds-si-xl);width:var(--_eds-radio-size);height:var(--_eds-radio-size);border-radius:var(--eds-br-full);background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border)}.eui-21 :host.eds-radio:before{content:\"\";display:block;width:var(--_eds-radio-size);height:var(--_eds-radio-size);background-size:contain;background-repeat:no-repeat;background-position:center}.eui-21 :host.eds-radio[size=l]{--_eds-radio-size: var(--eds-si-2xl)}.eui-21 :host.eds-radio:checked{border-color:var(--eds-c-border-primary)}.eui-21 :host.eds-radio:checked:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%277%27 fill=%27%230e47cb%27/%3E%3C/svg%3E\")}.eui-21 :host.eds-radio:disabled{background-color:var(--eds-c-surface-disabled);border-color:var(--eds-c-border-disabled);pointer-events:none;cursor:default}.eui-21 :host.eds-radio:disabled:checked:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%277%27 fill=%27%23a0a0b1%27/%3E%3C/svg%3E\")}.eui-21 :host.eds-radio[readonly]{pointer-events:none;cursor:default}.eui-21 :host.eds-radio[readonly]:checked{background-color:var(--eds-c-surface-neutral-subtler);border-color:var(--eds-c-border)}.eui-21 :host.eds-radio[readonly]:checked:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%277%27 fill=%27%23333%27/%3E%3C/svg%3E\")}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([readonly]){border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([readonly]):checked{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([readonly]):checked:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%277%27 fill=%27%23d32f2f%27/%3E%3C/svg%3E\")}.eui-21 :host.eds-radio:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-radio[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
91
+ ], ngImport: i0, template: '', isInline: true, styles: [".eui-21 :host.eds-radio{appearance:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;vertical-align:middle;cursor:pointer}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]):before{background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-radio{--_eds-radio-size: var(--eds-si-xl);--_eds-radio-dot-size: var(--eds-si-m);width:var(--_eds-radio-size);height:var(--_eds-radio-size);border-radius:var(--eds-br-full);background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border)}.eui-21 :host.eds-radio:before{content:\"\";display:block;width:var(--_eds-radio-dot-size);height:var(--_eds-radio-dot-size);border-radius:var(--eds-br-full);background-color:transparent}.eui-21 :host.eds-radio[size=l]{--_eds-radio-size: var(--eds-si-2xl);--_eds-radio-dot-size: var(--eds-si-l)}.eui-21 :host.eds-radio:checked{border-color:var(--eds-c-border-primary)}.eui-21 :host.eds-radio:checked:before{background-color:var(--eds-c-surface-primary)}.eui-21 :host.eds-radio:disabled{background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-disabled);pointer-events:none;cursor:default}.eui-21 :host.eds-radio:disabled:checked:before{background-color:var(--eds-c-surface-disabled)}.eui-21 :host.eds-radio[data-readonly]{pointer-events:none;cursor:default;-webkit-user-select:none;user-select:none}.eui-21 :host.eds-radio[data-readonly]:checked{display:none}.eui-21 :host.eds-radio[data-readonly]:checked+::ng-deep label{display:inline}.eui-21 :host.eds-radio[data-readonly]:not(:checked){display:none}.eui-21 :host.eds-radio[data-readonly]:not(:checked)+::ng-deep label{display:none}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([data-readonly]){border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([data-readonly]):checked{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([data-readonly]):checked:before{background-color:var(--eds-c-surface-critical)}.eui-21 :host.eds-radio:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-radio[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-focus-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-radio:disabled+::ng-deep label{color:var(--eds-c-foreground-disabled)}.eui-21 :host.eds-radio+::ng-deep label{cursor:pointer}.eui-21 :host.eds-radio:disabled+::ng-deep label,.eui-21 :host.eds-radio[data-readonly]+::ng-deep label{cursor:default}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
92
  }
81
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsRadio, decorators: [{
82
94
  type: Component,
@@ -93,14 +105,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
93
105
  '[attr.aria-invalid]': 'isInvalid() || null',
94
106
  '[attr.size]': 'size()',
95
107
  '[attr.data-e2e]': 'e2eAttr()',
96
- '[disabled]': 'disabled()',
97
- '[attr.readonly]': 'readonly() || null',
108
+ // Reflect the *internal* disabled state so it reacts to both the `[disabled]`
109
+ // input and a reactive form disabling the control via `setDisabledState`.
110
+ '[disabled]': 'internalDisabled()',
111
+ // NOTE: do NOT reflect the native `readonly` attribute — it is invalid on
112
+ // `<input type="radio">` and makes Chromium force `appearance: auto`, which
113
+ // collapses the custom control (only the label shows). Reflect a non-native
114
+ // `data-readonly` attribute instead; readonly behaviour is handled in JS below.
115
+ '[attr.data-readonly]': 'readonly() || null',
98
116
  '(click)': 'onHostClick($event)',
99
117
  '(change)': 'onHostChange($event)',
100
118
  '(blur)': 'onTouched()',
101
119
  '(keydown.space)': 'onSpacePressed($any($event))',
102
- }, styles: [".eui-21 :host.eds-radio{appearance:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;vertical-align:middle;cursor:pointer}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([invalid=true]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-radio{--_eds-radio-size: var(--eds-si-xl);width:var(--_eds-radio-size);height:var(--_eds-radio-size);border-radius:var(--eds-br-full);background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border)}.eui-21 :host.eds-radio:before{content:\"\";display:block;width:var(--_eds-radio-size);height:var(--_eds-radio-size);background-size:contain;background-repeat:no-repeat;background-position:center}.eui-21 :host.eds-radio[size=l]{--_eds-radio-size: var(--eds-si-2xl)}.eui-21 :host.eds-radio:checked{border-color:var(--eds-c-border-primary)}.eui-21 :host.eds-radio:checked:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%277%27 fill=%27%230e47cb%27/%3E%3C/svg%3E\")}.eui-21 :host.eds-radio:disabled{background-color:var(--eds-c-surface-disabled);border-color:var(--eds-c-border-disabled);pointer-events:none;cursor:default}.eui-21 :host.eds-radio:disabled:checked:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%277%27 fill=%27%23a0a0b1%27/%3E%3C/svg%3E\")}.eui-21 :host.eds-radio[readonly]{pointer-events:none;cursor:default}.eui-21 :host.eds-radio[readonly]:checked{background-color:var(--eds-c-surface-neutral-subtler);border-color:var(--eds-c-border)}.eui-21 :host.eds-radio[readonly]:checked:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%277%27 fill=%27%23333%27/%3E%3C/svg%3E\")}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([readonly]){border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([readonly]):checked{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([readonly]):checked:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%277%27 fill=%27%23d32f2f%27/%3E%3C/svg%3E\")}.eui-21 :host.eds-radio:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-radio[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}\n"] }]
103
- }], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
120
+ }, styles: [".eui-21 :host.eds-radio{appearance:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;vertical-align:middle;cursor:pointer}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-radio:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]):before{background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-radio{--_eds-radio-size: var(--eds-si-xl);--_eds-radio-dot-size: var(--eds-si-m);width:var(--_eds-radio-size);height:var(--_eds-radio-size);border-radius:var(--eds-br-full);background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border)}.eui-21 :host.eds-radio:before{content:\"\";display:block;width:var(--_eds-radio-dot-size);height:var(--_eds-radio-dot-size);border-radius:var(--eds-br-full);background-color:transparent}.eui-21 :host.eds-radio[size=l]{--_eds-radio-size: var(--eds-si-2xl);--_eds-radio-dot-size: var(--eds-si-l)}.eui-21 :host.eds-radio:checked{border-color:var(--eds-c-border-primary)}.eui-21 :host.eds-radio:checked:before{background-color:var(--eds-c-surface-primary)}.eui-21 :host.eds-radio:disabled{background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-disabled);pointer-events:none;cursor:default}.eui-21 :host.eds-radio:disabled:checked:before{background-color:var(--eds-c-surface-disabled)}.eui-21 :host.eds-radio[data-readonly]{pointer-events:none;cursor:default;-webkit-user-select:none;user-select:none}.eui-21 :host.eds-radio[data-readonly]:checked{display:none}.eui-21 :host.eds-radio[data-readonly]:checked+::ng-deep label{display:inline}.eui-21 :host.eds-radio[data-readonly]:not(:checked){display:none}.eui-21 :host.eds-radio[data-readonly]:not(:checked)+::ng-deep label{display:none}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([data-readonly]){border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([data-readonly]):checked{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-radio[invalid]:not(:disabled):not([data-readonly]):checked:before{background-color:var(--eds-c-surface-critical)}.eui-21 :host.eds-radio:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-radio[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-focus-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-radio:disabled+::ng-deep label{color:var(--eds-c-foreground-disabled)}.eui-21 :host.eds-radio+::ng-deep label{cursor:pointer}.eui-21 :host.eds-radio:disabled+::ng-deep label,.eui-21 :host.eds-radio[data-readonly]+::ng-deep label{cursor:default}\n"] }]
121
+ }], ctorParameters: () => [], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
104
122
 
105
123
  /** Convenience array for importing eds-radio. */
106
124
  const EDS_RADIO = [
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-radio.mjs","sources":["../../eds-radio/eds-radio.ts","../../eds-radio/index.ts","../../eds-radio/eui-eds-eds-radio.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n booleanAttribute,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/** Local narrowed size union — the radio's size variant contract. */\nexport type EdsRadioSize = 'm' | 'l';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[edsRadio]',\n template: '',\n styleUrl: './eds-radio.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EdsRadio),\n multi: true,\n },\n ],\n host: {\n type: 'radio',\n class: 'eds-radio',\n '[attr.invalid]': 'isInvalid() || null',\n '[attr.aria-invalid]': 'isInvalid() || null',\n '[attr.size]': 'size()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[disabled]': 'disabled()',\n '[attr.readonly]': 'readonly() || null',\n '(click)': 'onHostClick($event)',\n '(change)': 'onHostChange($event)',\n '(blur)': 'onTouched()',\n '(keydown.space)': 'onSpacePressed($any($event))',\n },\n})\nexport class EdsRadio implements ControlValueAccessor {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-radio'\n */\n e2eAttr = input('eds-radio');\n\n /**\n * Controls whether the radio is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the radio is readonly.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the radio shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Controls the radio size.\n * @default 'm'\n */\n size = input<EdsRadioSize>('m');\n\n private _elementRef: ElementRef<HTMLInputElement> = inject(ElementRef);\n\n // --- ControlValueAccessor ---\n\n writeValue(value: string): void {\n // Radio is checked when its value matches the form control value\n this._elementRef.nativeElement.checked = this._elementRef.nativeElement.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 // Disabled is handled via the input signal binding on the host element.\n }\n\n // --- Event handlers ---\n\n // ControlValueAccessor callbacks\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n protected onTouched: () => void = () => { /* noop */ };\n\n protected onHostClick(event: MouseEvent): void {\n if (this.readonly()) {\n event.preventDefault();\n }\n }\n\n protected onHostChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this._onChange(target.value);\n this.onTouched();\n }\n\n protected onSpacePressed(event: KeyboardEvent): void {\n if (this.readonly()) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange: (value: string) => void = () => { /* noop */ };\n}\n","import { EdsRadio } from './eds-radio';\n\nexport { EdsRadio };\nexport type { EdsRadioSize } from './eds-radio';\n\n/** Convenience array for importing eds-radio. */\nexport const EDS_RADIO = [\n EdsRadio,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-eds-eds-radio.mjs","sources":["../../eds-radio/eds-radio.ts","../../eds-radio/index.ts","../../eds-radio/eui-eds-eds-radio.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n signal,\n effect,\n booleanAttribute,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/** Local narrowed size union — the radio's size variant contract. */\nexport type EdsRadioSize = 'm' | 'l';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[edsRadio]',\n template: '',\n styleUrl: './eds-radio.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EdsRadio),\n multi: true,\n },\n ],\n host: {\n type: 'radio',\n class: 'eds-radio',\n '[attr.invalid]': 'isInvalid() || null',\n '[attr.aria-invalid]': 'isInvalid() || null',\n '[attr.size]': 'size()',\n '[attr.data-e2e]': 'e2eAttr()',\n // Reflect the *internal* disabled state so it reacts to both the `[disabled]`\n // input and a reactive form disabling the control via `setDisabledState`.\n '[disabled]': 'internalDisabled()',\n // NOTE: do NOT reflect the native `readonly` attribute — it is invalid on\n // `<input type=\"radio\">` and makes Chromium force `appearance: auto`, which\n // collapses the custom control (only the label shows). Reflect a non-native\n // `data-readonly` attribute instead; readonly behaviour is handled in JS below.\n '[attr.data-readonly]': 'readonly() || null',\n '(click)': 'onHostClick($event)',\n '(change)': 'onHostChange($event)',\n '(blur)': 'onTouched()',\n '(keydown.space)': 'onSpacePressed($any($event))',\n },\n})\nexport class EdsRadio implements ControlValueAccessor {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-radio'\n */\n e2eAttr = input('eds-radio');\n\n /**\n * Controls whether the radio is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the radio is readonly.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the radio shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Controls the radio size.\n * @default 'm'\n */\n size = input<EdsRadioSize>('m');\n\n private _elementRef: ElementRef<HTMLInputElement> = inject(ElementRef);\n\n /**\n * Internal disabled state, written by both the `disabled` input (via effect)\n * and the reactive-forms `setDisabledState` callback. The host `[disabled]`\n * binding reads this so `form.disable()` visually disables the radio.\n */\n protected internalDisabled = signal(false);\n\n constructor() {\n // Sync the public `disabled` input → internal state.\n effect(() => {\n this.internalDisabled.set(this.disabled());\n });\n }\n\n // --- ControlValueAccessor ---\n\n writeValue(value: string): void {\n // Radio is checked when its value matches the form control value\n this._elementRef.nativeElement.checked = this._elementRef.nativeElement.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 // Reactive forms (e.g. form.disable()) disable the control through here.\n this.internalDisabled.set(isDisabled);\n }\n\n // --- Event handlers ---\n\n // ControlValueAccessor callbacks\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n protected onTouched: () => void = () => { /* noop */ };\n\n protected onHostClick(event: MouseEvent): void {\n if (this.readonly()) {\n event.preventDefault();\n }\n }\n\n protected onHostChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this._onChange(target.value);\n this.onTouched();\n }\n\n protected onSpacePressed(event: KeyboardEvent): void {\n if (this.readonly()) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange: (value: string) => void = () => { /* noop */ };\n}\n","import { EdsRadio } from './eds-radio';\n\nexport { EdsRadio };\nexport type { EdsRadioSize } from './eds-radio';\n\n/** Convenience array for importing eds-radio. */\nexport const EDS_RADIO = [\n EdsRadio,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -242,7 +242,7 @@ class EdsSelect {
242
242
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
243
243
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsSelect, isStandalone: true, selector: "select[edsSelect]", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, rowCount: { classPropertyName: "rowCount", publicName: "rowCount", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "change": "onHostChange($event)", "mousedown": "_toggleOpen()", "keydown": "_onKeydown($event)", "blur": "_setOpen(false)" }, properties: { "attr.readonly": "readonly() || null", "attr.placeholder-selected": "_isPlaceholderSelected || null", "attr.invalid": "_isInvalid() || null", "attr.aria-invalid": "_isInvalid() || null", "attr.input-size": "size()", "attr.aria-label": "ariaLabel()", "attr.data-e2e": "e2eAttr()", "attr.open": "_isOpen() || null" }, classAttribute: "eds-select" }, providers: [
244
244
  { provide: EDS_SELECT_COMPONENT, useExisting: EdsSelect },
245
- ], usesOnChanges: true, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [".eui-21 :host.eds-select{--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-select:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-select:not([hidden]){display:block}.eui-21 :host.eds-select::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-select[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-select:disabled:not([readonly]),.eui-21 :host.eds-select--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-select[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-select--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-select--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-select--loading-icon:after,.eui-21 :host.eds-select--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-select--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-select--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-select--loading-icon--sm:after,.eui-21 :host.eds-select--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-select[input-size=s]{--_eds-input-height: calc(var(--eds-si-3xl) + var(--eds-si-2xs));--_eds-input-pad-v: var(--eds-sp-2xs);--_eds-input-pad-h: var(--eds-sp-s)}.eui-21 :host.eds-select[input-size=l]{--_eds-input-height: var(--eds-si-6xl);--_eds-input-pad-v: var(--eds-sp-s);--_eds-input-pad-h: var(--eds-sp-m)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([invalid=true]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eds-select:focus:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-select{color:var(--eds-c-foreground);overflow-y:auto}.eui-21 :host.eds-select[hidden],.eui-21 :host.eds-select[readonly]{display:none}.eui-21 :host.eds-select[readonly][multiple=true] option:checked{background:none}.eui-21 :host.eds-select[readonly][multiple=true] :not(option:checked){display:none}.eui-21 :host.eds-select[multiple=true],.eui-21 :host.eds-select[size]:not([size=\"1\"]):not([size=\"0\"]){background-image:none;height:auto;overflow:auto;padding:var(--eds-sp-3xs) 0}.eui-21 :host.eds-select[placeholder-selected]{color:var(--eds-c-foreground-placeholder)}.eui-21 :host.eds-select optgroup{font:var(--eds-f-label-m);font-weight:var(--eds-f-w-semibold)}.eui-21 :host.eds-select optgroup,.eui-21 :host.eds-select option{appearance:none;color:var(--eds-c-foreground);display:block;padding:var(--eds-sp-3xs);white-space:pre}.eui-21 :host.eds-select optgroup:disabled,.eui-21 :host.eds-select option:disabled{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup.eds-select__placeholder,.eui-21 :host.eds-select option.eds-select__placeholder{color:var(--eds-c-foreground-placeholder)!important}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{appearance:none;background-color:var(--eds-c-surface-elevation)}.eui-21 :host.eds-select:not([readonly]):not([multiple]):disabled,.eui-21 :host.eds-select[size=\"1\"]:disabled,.eui-21 :host.eds-select[size=\"0\"]:disabled{background-color:var(--eds-c-surface-disabled-subtle)}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\");background-position:calc(100% - var(--eds-sp-s)) center;background-repeat:no-repeat;background-size:var(--eds-sp-l);padding-right:var(--eds-sp-3xl)}.eui-21 :host.eds-select:not([readonly]):not([multiple])[open],.eui-21 :host.eds-select[size=\"1\"][open],.eui-21 :host.eds-select[size=\"0\"][open]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z'/%3E%3C/svg%3E\")}.eui-21 :host.eds-select[invalid]{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-select[invalid]:focus:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eds-select__readonly-display{font:var(--eds-f-paragraph-m);background-color:transparent;border:none;box-shadow:none;color:var(--eds-c-foreground);padding:var(--eds-sp-xs) 0;width:100%;pointer-events:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
245
+ ], usesOnChanges: true, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [".eui-21 :host.eds-select{--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-select:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-select:not([hidden]){display:block}.eui-21 :host.eds-select::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-select[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-select:disabled:not([readonly]),.eui-21 :host.eds-select--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-select[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-focus-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-select--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-select--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-select--loading-icon:after,.eui-21 :host.eds-select--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-select--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-select--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-select--loading-icon--sm:after,.eui-21 :host.eds-select--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-select[input-size=s]{--_eds-input-height: calc(var(--eds-si-3xl) + var(--eds-si-2xs));--_eds-input-pad-v: var(--eds-sp-2xs);--_eds-input-pad-h: var(--eds-sp-s)}.eui-21 :host.eds-select[input-size=l]{--_eds-input-height: var(--eds-si-6xl);--_eds-input-pad-v: var(--eds-sp-s);--_eds-input-pad-h: var(--eds-sp-m)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]):before{background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eds-select:focus:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-select{color:var(--eds-c-foreground);overflow-y:auto}.eui-21 :host.eds-select[hidden],.eui-21 :host.eds-select[readonly]{display:none}.eui-21 :host.eds-select[readonly][multiple=true] option:checked{background:none}.eui-21 :host.eds-select[readonly][multiple=true] :not(option:checked){display:none}.eui-21 :host.eds-select[multiple=true],.eui-21 :host.eds-select[size]:not([size=\"1\"]):not([size=\"0\"]){background-image:none;height:auto;overflow:auto;padding:var(--eds-sp-3xs) 0}.eui-21 :host.eds-select[placeholder-selected]{color:var(--eds-c-foreground-placeholder)}.eui-21 :host.eds-select optgroup{font:var(--eds-f-label-m);font-weight:var(--eds-f-w-semibold)}.eui-21 :host.eds-select optgroup,.eui-21 :host.eds-select option{appearance:none;color:var(--eds-c-foreground);display:block;padding:var(--eds-sp-3xs);white-space:pre}.eui-21 :host.eds-select optgroup:disabled,.eui-21 :host.eds-select option:disabled{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup.eds-select__placeholder,.eui-21 :host.eds-select option.eds-select__placeholder{color:var(--eds-c-foreground-placeholder)!important}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{appearance:none;background-color:var(--eds-c-surface-elevation)}.eui-21 :host.eds-select:not([readonly]):not([multiple]):disabled,.eui-21 :host.eds-select[size=\"1\"]:disabled,.eui-21 :host.eds-select[size=\"0\"]:disabled{background-color:var(--eds-c-surface-disabled-subtle)}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\");background-position:calc(100% - var(--eds-sp-s)) center;background-repeat:no-repeat;background-size:var(--eds-sp-l);padding-right:var(--eds-sp-3xl)}.eui-21 :host.eds-select:not([readonly]):not([multiple])[open],.eui-21 :host.eds-select[size=\"1\"][open],.eui-21 :host.eds-select[size=\"0\"][open]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z'/%3E%3C/svg%3E\")}.eui-21 :host.eds-select[invalid]{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-select[invalid]:focus:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eds-select__readonly-display{font:var(--eds-f-paragraph-m);background-color:transparent;border:none;box-shadow:none;color:var(--eds-c-foreground);padding:var(--eds-sp-xs) 0;width:100%;pointer-events:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
246
246
  }
247
247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelect, decorators: [{
248
248
  type: Component,
@@ -266,7 +266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
266
266
  '(mousedown)': '_toggleOpen()',
267
267
  '(keydown)': '_onKeydown($event)',
268
268
  '(blur)': '_setOpen(false)',
269
- }, styles: [".eui-21 :host.eds-select{--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-select:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-select:not([hidden]){display:block}.eui-21 :host.eds-select::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-select[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-select:disabled:not([readonly]),.eui-21 :host.eds-select--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-select[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-select--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-select--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-select--loading-icon:after,.eui-21 :host.eds-select--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-select--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-select--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-select--loading-icon--sm:after,.eui-21 :host.eds-select--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-select[input-size=s]{--_eds-input-height: calc(var(--eds-si-3xl) + var(--eds-si-2xs));--_eds-input-pad-v: var(--eds-sp-2xs);--_eds-input-pad-h: var(--eds-sp-s)}.eui-21 :host.eds-select[input-size=l]{--_eds-input-height: var(--eds-si-6xl);--_eds-input-pad-v: var(--eds-sp-s);--_eds-input-pad-h: var(--eds-sp-m)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([invalid=true]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eds-select:focus:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-select{color:var(--eds-c-foreground);overflow-y:auto}.eui-21 :host.eds-select[hidden],.eui-21 :host.eds-select[readonly]{display:none}.eui-21 :host.eds-select[readonly][multiple=true] option:checked{background:none}.eui-21 :host.eds-select[readonly][multiple=true] :not(option:checked){display:none}.eui-21 :host.eds-select[multiple=true],.eui-21 :host.eds-select[size]:not([size=\"1\"]):not([size=\"0\"]){background-image:none;height:auto;overflow:auto;padding:var(--eds-sp-3xs) 0}.eui-21 :host.eds-select[placeholder-selected]{color:var(--eds-c-foreground-placeholder)}.eui-21 :host.eds-select optgroup{font:var(--eds-f-label-m);font-weight:var(--eds-f-w-semibold)}.eui-21 :host.eds-select optgroup,.eui-21 :host.eds-select option{appearance:none;color:var(--eds-c-foreground);display:block;padding:var(--eds-sp-3xs);white-space:pre}.eui-21 :host.eds-select optgroup:disabled,.eui-21 :host.eds-select option:disabled{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup.eds-select__placeholder,.eui-21 :host.eds-select option.eds-select__placeholder{color:var(--eds-c-foreground-placeholder)!important}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{appearance:none;background-color:var(--eds-c-surface-elevation)}.eui-21 :host.eds-select:not([readonly]):not([multiple]):disabled,.eui-21 :host.eds-select[size=\"1\"]:disabled,.eui-21 :host.eds-select[size=\"0\"]:disabled{background-color:var(--eds-c-surface-disabled-subtle)}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\");background-position:calc(100% - var(--eds-sp-s)) center;background-repeat:no-repeat;background-size:var(--eds-sp-l);padding-right:var(--eds-sp-3xl)}.eui-21 :host.eds-select:not([readonly]):not([multiple])[open],.eui-21 :host.eds-select[size=\"1\"][open],.eui-21 :host.eds-select[size=\"0\"][open]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z'/%3E%3C/svg%3E\")}.eui-21 :host.eds-select[invalid]{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-select[invalid]:focus:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eds-select__readonly-display{font:var(--eds-f-paragraph-m);background-color:transparent;border:none;box-shadow:none;color:var(--eds-c-foreground);padding:var(--eds-sp-xs) 0;width:100%;pointer-events:none;outline:none}\n"] }]
269
+ }, styles: [".eui-21 :host.eds-select{--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-select:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-select:not([hidden]){display:block}.eui-21 :host.eds-select::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-select[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-select:disabled:not([readonly]),.eui-21 :host.eds-select--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-select[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-focus-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-select--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-select--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-select--loading-icon:after,.eui-21 :host.eds-select--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-select--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-select--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-select--loading-icon--sm:after,.eui-21 :host.eds-select--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-select[input-size=s]{--_eds-input-height: calc(var(--eds-si-3xl) + var(--eds-si-2xs));--_eds-input-pad-v: var(--eds-sp-2xs);--_eds-input-pad-h: var(--eds-sp-s)}.eui-21 :host.eds-select[input-size=l]{--_eds-input-height: var(--eds-si-6xl);--_eds-input-pad-v: var(--eds-sp-s);--_eds-input-pad-h: var(--eds-sp-m)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-select:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]):before{background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eds-select:focus:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-select{color:var(--eds-c-foreground);overflow-y:auto}.eui-21 :host.eds-select[hidden],.eui-21 :host.eds-select[readonly]{display:none}.eui-21 :host.eds-select[readonly][multiple=true] option:checked{background:none}.eui-21 :host.eds-select[readonly][multiple=true] :not(option:checked){display:none}.eui-21 :host.eds-select[multiple=true],.eui-21 :host.eds-select[size]:not([size=\"1\"]):not([size=\"0\"]){background-image:none;height:auto;overflow:auto;padding:var(--eds-sp-3xs) 0}.eui-21 :host.eds-select[placeholder-selected]{color:var(--eds-c-foreground-placeholder)}.eui-21 :host.eds-select optgroup{font:var(--eds-f-label-m);font-weight:var(--eds-f-w-semibold)}.eui-21 :host.eds-select optgroup,.eui-21 :host.eds-select option{appearance:none;color:var(--eds-c-foreground);display:block;padding:var(--eds-sp-3xs);white-space:pre}.eui-21 :host.eds-select optgroup:disabled,.eui-21 :host.eds-select option:disabled{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup.eds-select__placeholder,.eui-21 :host.eds-select option.eds-select__placeholder{color:var(--eds-c-foreground-placeholder)!important}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{appearance:none;background-color:var(--eds-c-surface-elevation)}.eui-21 :host.eds-select:not([readonly]):not([multiple]):disabled,.eui-21 :host.eds-select[size=\"1\"]:disabled,.eui-21 :host.eds-select[size=\"0\"]:disabled{background-color:var(--eds-c-surface-disabled-subtle)}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\");background-position:calc(100% - var(--eds-sp-s)) center;background-repeat:no-repeat;background-size:var(--eds-sp-l);padding-right:var(--eds-sp-3xl)}.eui-21 :host.eds-select:not([readonly]):not([multiple])[open],.eui-21 :host.eds-select[size=\"1\"][open],.eui-21 :host.eds-select[size=\"0\"][open]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z'/%3E%3C/svg%3E\")}.eui-21 :host.eds-select[invalid]{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-select[invalid]:focus:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eds-select__readonly-display{font:var(--eds-f-paragraph-m);background-color:transparent;border:none;box-shadow:none;color:var(--eds-c-foreground);padding:var(--eds-sp-xs) 0;width:100%;pointer-events:none;outline:none}\n"] }]
270
270
  }], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], rowCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowCount", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
271
271
 
272
272
  // eslint-disable-next-line @typescript-eslint/no-explicit-any