{"version":3,"file":"shival99-z-ui-components-z-input.mjs","sources":["../../../../libs/core-ui/components/z-input/z-input.utils.ts","../../../../libs/core-ui/components/z-input/z-input.variants.ts","../../../../libs/core-ui/components/z-input/z-input.component.ts","../../../../libs/core-ui/components/z-input/z-input.component.html","../../../../libs/core-ui/components/z-input/shival99-z-ui-components-z-input.ts"],"sourcesContent":["import type { ValidationErrors } from '@angular/forms';\n\nexport interface ZInputErrorInfo {\n  key: string;\n  params?: Record<string, string | number>;\n}\n\ntype ZInputErrorHandler = [string, (errors: ValidationErrors) => ZInputErrorInfo];\n\nconst ERROR_HANDLERS: ZInputErrorHandler[] = [\n  ['required', () => ({ key: 'i18n_z_ui_input_required' })],\n  ['min', e => ({ key: 'i18n_z_ui_input_min', params: { min: e['min'].min } })],\n  ['max', e => ({ key: 'i18n_z_ui_input_max', params: { max: e['max'].max } })],\n  ['minlength', e => ({ key: 'i18n_z_ui_input_min_length', params: { min: e['minlength'].requiredLength } })],\n  ['maxlength', e => ({ key: 'i18n_z_ui_input_max_length', params: { max: e['maxlength'].requiredLength } })],\n  ['email', () => ({ key: 'i18n_z_ui_input_email' })],\n  ['pattern', () => ({ key: 'i18n_z_ui_input_pattern' })],\n];\n\nexport const getDefaultErrorInfo = (errors: ValidationErrors): ZInputErrorInfo =>\n  ERROR_HANDLERS.find(([key]) => errors[key])?.[1](errors) ?? { key: 'i18n_z_ui_input_pattern' };\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zInputVariants = cva(\n  [\n    'flex w-full rounded-sm border border-input bg-white shadow-xs',\n    'transition-[border-color,box-shadow,background-color,color,opacity] duration-200',\n    'dark:bg-input/30 dark:border-input',\n    'file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground',\n    'outline-none',\n    'text-sm',\n  ],\n  {\n    variants: {\n      zSize: {\n        sm: 'h-8 px-2 gap-2 text-xs',\n        default: 'h-9 px-2 gap-2 text-sm',\n        lg: 'h-10 px-2 gap-2.5 text-sm',\n      },\n      zStatus: {\n        default: 'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n        error:\n          'border-destructive! ring-destructive/20 ring-[3px] focus-within:border-destructive! focus-within:ring-destructive/30',\n        disabled: 'opacity-50 cursor-not-allowed bg-muted! text-muted-foreground',\n        readonly: 'bg-muted/50! text-muted-foreground cursor-default',\n      },\n    },\n    defaultVariants: {\n      zSize: 'default',\n      zStatus: 'default',\n    },\n  }\n);\n\nexport type ZInputVariants = VariantProps<typeof zInputVariants>;\n\nexport const zTextareaVariants = cva(\n  [\n    'w-full rounded-sm border border-input bg-white shadow-xs transition-colors duration-200',\n    'dark:bg-input/30 dark:border-input',\n    'outline-none',\n    'text-sm',\n  ],\n  {\n    variants: {\n      zStatus: {\n        default: 'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n        error:\n          'border-destructive! ring-destructive/20 ring-[3px] focus-within:border-destructive! focus-within:ring-destructive/30',\n        disabled: 'opacity-50 cursor-not-allowed bg-muted! text-muted-foreground',\n        readonly: 'bg-muted/50! text-muted-foreground cursor-default',\n      },\n    },\n    defaultVariants: {\n      zStatus: 'default',\n    },\n  }\n);\n\nexport type ZTextareaVariants = VariantProps<typeof zTextareaVariants>;\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  DestroyRef,\n  ElementRef,\n  forwardRef,\n  inject,\n  Injector,\n  input,\n  type OnInit,\n  output,\n  signal,\n  TemplateRef,\n  viewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n  type AbstractControl,\n  ControlValueAccessor,\n  FormsModule,\n  NG_VALUE_ACCESSOR,\n  NgControl,\n  NgModel,\n  PristineChangeEvent,\n  ReactiveFormsModule,\n  TouchedChangeEvent,\n} from '@angular/forms';\nimport {\n  BlossomColorPickerComponent,\n  DEFAULT_COLORS,\n  hexToHsl,\n  lightnessToSliderValue,\n  type BlossomColorPickerColor,\n  type ColorInput,\n  type BlossomColorPickerValue,\n} from '@dayflow/blossom-color-picker-angular';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZButtonComponent } from '@shival99/z-ui/components/z-button';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZPopoverDirective } from '@shival99/z-ui/components/z-popover';\nimport type { ZPopoverControl } from '@shival99/z-ui/components/z-popover';\nimport { ZSelectComponent, type ZSelectOption } from '@shival99/z-ui/components/z-select';\nimport { ZToastService } from '@shival99/z-ui/components/z-toast';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { Z_NGX_MASK_CONFIG } from '@shival99/z-ui/providers';\nimport { ZTranslateService, ZCacheService } from '@shival99/z-ui/services';\nimport { zUuid, zMergeClasses, zTransform, zCreateEvent, type ZEvent } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\nimport { catchError, debounceTime, filter, firstValueFrom, isObservable, merge, of, Subject, takeUntil } from 'rxjs';\nimport type {\n  ZAsyncValidateOn,\n  ZAsyncValidator,\n  ZInputAlign,\n  ZInputColorConfig,\n  ZInputColorFormat,\n  ZInputControl,\n  ZInputMaskConfig,\n  ZInputSize,\n  ZInputSlotConfig,\n  ZInputStatus,\n  ZInputType,\n  ZInputTypeConfig,\n  ZInputValidator,\n} from './z-input.types';\nimport { getDefaultErrorInfo } from './z-input.utils';\nimport { zInputVariants, zTextareaVariants } from './z-input.variants';\n\n@Component({\n  selector: 'z-input',\n  imports: [\n    BlossomColorPickerComponent,\n    FormsModule,\n    ReactiveFormsModule,\n    NgxMaskDirective,\n    ZButtonComponent,\n    ZIconComponent,\n    ZPopoverDirective,\n    ZSelectComponent,\n    ZTooltipDirective,\n    NgTemplateOutlet,\n    TranslatePipe,\n    forwardRef(() => ZInputComponent),\n  ],\n  standalone: true,\n  templateUrl: './z-input.component.html',\n  styleUrl: './z-input.component.scss',\n  providers: [\n    provideNgxMask(),\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ZInputComponent),\n      multi: true,\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  exportAs: 'zInput',\n})\nexport class ZInputComponent implements OnInit, ControlValueAccessor {\n  private readonly _injector = inject(Injector);\n  private readonly _destroyRef = inject(DestroyRef);\n  private readonly _toastService = inject(ZToastService);\n  private readonly _zTranslate = inject(ZTranslateService);\n  private readonly _maskConfig = inject(Z_NGX_MASK_CONFIG, { optional: true });\n\n  protected readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n  protected readonly nativeColorInputRef = viewChild<ElementRef<HTMLInputElement>>('nativeColorInputEl');\n\n  public readonly zOnSearch = output<string | number | null>();\n  public readonly zOnChange = output<string | number | null>();\n  public readonly zOnBlur = output<FocusEvent>();\n  public readonly zOnFocus = output<FocusEvent>();\n  public readonly zOnKeydown = output<KeyboardEvent>();\n  public readonly zOnEnter = output<string | number | null>();\n  public readonly zOnColorCollapse = output<BlossomColorPickerColor>();\n  public readonly zControl = output<ZInputControl>();\n  public readonly zEvent = output<ZEvent>();\n\n  public readonly class = input<ClassValue>('');\n  public readonly zType = input<ZInputType>('text');\n  public readonly zSize = input<ZInputSize>('default');\n  public readonly zAlign = input<ZInputAlign>('left');\n  public readonly zLabel = input<string>('');\n  public readonly zLabelClass = input<string>('');\n  public readonly zPlaceholder = input<string>('');\n  public readonly zRequired = input(false, { transform: zTransform });\n  public readonly zDisabled = input(false, { transform: zTransform });\n  public readonly zReadonly = input(false, { transform: zTransform });\n  public readonly zLoading = input(false, { transform: zTransform });\n  public readonly zLoadingOutline = input(false, { transform: zTransform });\n  public readonly zPrefix = input<string | TemplateRef<unknown>>('');\n  public readonly zSuffix = input<string | TemplateRef<unknown>>('');\n\n  public readonly zMin = input<number | undefined>(undefined);\n  public readonly zMax = input<number | undefined>(undefined);\n  public readonly zStep = input<number>(1);\n  public readonly zShowArrows = input(true, { transform: zTransform });\n\n  public readonly zMask = input<string>('');\n  public readonly zDecimalPlaces = input<number | undefined>(undefined);\n  public readonly zAllowNegative = input(false, { transform: zTransform });\n  public readonly zThousandSeparator = input<string | undefined>(undefined);\n  public readonly zDecimalMarker = input<'.' | ',' | ['.', ','] | undefined>(undefined);\n\n  public readonly zValidators = input<ZInputValidator[]>([]);\n  public readonly zAsyncValidators = input<ZAsyncValidator[]>([]);\n  public readonly zAsyncDebounce = input<number>(300);\n  public readonly zAsyncValidateOn = input<ZAsyncValidateOn>('change');\n  public readonly zShowPasswordToggle = input(true, { transform: zTransform });\n\n  public readonly zSearch = input(false, { transform: zTransform });\n  public readonly zDebounce = input<number>(300);\n  public readonly zAutofocus = input(false, { transform: zTransform });\n  public readonly zAutoComplete = input<string>('off');\n  public readonly zAllowClear = input(false, { transform: zTransform });\n\n  public readonly zAutoSizeContent = input(false, { transform: zTransform });\n  public readonly zRows = input<number>(3);\n  public readonly zResize = input(true, { transform: zTransform });\n  public readonly zMaxLength = input<number | undefined>(undefined);\n  public readonly zAutoSuggest = input<string | undefined>(undefined);\n  public readonly zColorConfig = input<ZInputColorConfig>({});\n\n  private readonly _value = signal<string | number | null>(null);\n  private readonly _disabled = signal(false);\n  private readonly _formControl = signal<AbstractControl | null>(null);\n  private readonly _formStateVersion = signal(0);\n  private readonly _isNgModel = signal(false);\n  private readonly _asyncErrors = signal<Map<string, string>>(new Map());\n  private readonly _customError = signal<string | null>(null);\n  protected readonly isLoading = computed(() => this.zLoading() || this.isValidating());\n  private readonly _blossomColor = signal<BlossomColorPickerValue>({\n    hue: 330,\n    saturation: 70,\n    alpha: 100,\n    layer: 'outer',\n  });\n\n  private readonly _colorPickerHsv = signal({ hue: 258, saturation: 65, value: 85 });\n  private readonly _colorPickerRgb = signal({ red: 79, green: 70, blue: 229 });\n  private readonly _colorPickerHsl = signal({ hue: 243, saturation: 75, lightness: 59 });\n  private readonly _colorPickerAlpha = signal(100);\n  private readonly _colorPickerFormat = signal<ZInputColorFormat>('hex');\n  private readonly _colorPickerSavedColors = signal<string[]>([]);\n\n  protected readonly inputId = zUuid('z-input');\n  protected readonly suggestHistory = signal<string[]>([]);\n  protected readonly suggestActiveIndex = signal(-1);\n  protected readonly isValidating = signal(false);\n\n  protected readonly uiState = signal({\n    passwordVisible: false,\n    isFocused: false,\n    touched: false,\n    dirty: false,\n    showSuggestPopover: false,\n    colorCopied: false,\n  });\n\n  protected readonly typeConfig = computed<ZInputTypeConfig>(() => {\n    const type = this.zType();\n    return {\n      isPassword: type === 'password',\n      isColor: type === 'color',\n      isTextarea: type === 'textarea',\n      isNumber: type === 'number',\n    };\n  });\n\n  protected readonly slotConfig = computed<ZInputSlotConfig>(() => {\n    const prefix = this.zPrefix();\n    const suffix = this.zSuffix();\n    return {\n      isPrefixTemplate: prefix instanceof TemplateRef,\n      isSuffixTemplate: suffix instanceof TemplateRef,\n      hasPrefix: this.zSearch() || !!prefix,\n      hasSuffix: !!suffix,\n    };\n  });\n\n  protected readonly maskConfig = computed<ZInputMaskConfig>(() => {\n    const effectiveMask = this._getEffectiveMask();\n    const effectiveType = this._getEffectiveType(effectiveMask);\n    const effectiveThousandSeparator = this._getEffectiveThousandSeparator();\n    const effectiveDecimalMarker = this._getEffectiveDecimalMarker();\n    return { effectiveMask, effectiveType, effectiveThousandSeparator, effectiveDecimalMarker };\n  });\n\n  protected readonly displayValue = computed(() => {\n    const val = this._value();\n    return val === null || val === undefined ? '' : String(val);\n  });\n\n  protected readonly normalizedColorValue = computed(() => this._normalizeHexColor(this._value()));\n  protected readonly colorMode = computed(() => this.zColorConfig().mode ?? 'blossom');\n  protected readonly isBlossomColorMode = computed(() => this.colorMode() === 'blossom');\n  protected readonly blossomCoreBorderColor = computed(() => {\n    const color = this.normalizedColorValue();\n    if (color === '#FFFFFF' || color === '#000000') {\n      return 'var(--border)';\n    }\n\n    return color;\n  });\n\n  protected readonly blossomColor = this._blossomColor.asReadonly();\n  protected readonly colorPickerHsv = this._colorPickerHsv.asReadonly();\n  protected readonly colorPickerRgbValue = this._colorPickerRgb.asReadonly();\n  protected readonly colorPickerHslValue = this._colorPickerHsl.asReadonly();\n  protected readonly colorPickerAlpha = this._colorPickerAlpha.asReadonly();\n  protected readonly colorPickerFormat = this._colorPickerFormat.asReadonly();\n  protected readonly colorPickerFormatOptions: ZSelectOption<ZInputColorFormat>[] = [\n    { label: 'HEX', value: 'hex' },\n    { label: 'RGB', value: 'rgb' },\n    { label: 'HSL', value: 'hsl' },\n    { label: 'HSV', value: 'hsv' },\n  ];\n\n  protected readonly colorPickerHueColor = computed(() => `hsl(${this.colorPickerHsv().hue} 100% 50%)`);\n  protected readonly colorPickerSvStyle = computed(() => ({\n    background: `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, ${this.colorPickerHueColor()})`,\n  }));\n\n  protected readonly colorPickerCursorStyle = computed(() => {\n    const hsv = this.colorPickerHsv();\n    return {\n      left: `${hsv.saturation}%`,\n      top: `${100 - hsv.value}%`,\n    };\n  });\n\n  protected readonly defaultColorPickerSavedColors = computed(() => {\n    const { savedColors } = this.zColorConfig();\n    if (savedColors) {\n      return this._normalizeColorList(savedColors);\n    }\n\n    return this._normalizeColorList([\n      '#16A34A',\n      '#2563EB',\n      '#4F46E5',\n      '#7C3AED',\n      '#C026D3',\n      '#DB2777',\n      '#DC2626',\n      '#EA580C',\n      '#7F56D9',\n      '#111827',\n      '#155E75',\n      '#A3A310',\n      '#0EA5E9',\n      '#D946EF',\n      '#E11D48',\n      '#22C55E',\n    ]);\n  });\n\n  protected readonly colorPickerSavedColors = computed(() => {\n    const cachedColors = this._colorPickerSavedColors();\n    const fallbackColors = this.defaultColorPickerSavedColors();\n    return this._normalizeColorList([...cachedColors, ...fallbackColors]).slice(0, 8);\n  });\n\n  protected readonly colorPickerSavedSwatches = computed(() =>\n    this.colorPickerSavedColors().map(color => ({\n      color,\n      isLight: this._isLightHexColor(color),\n    }))\n  );\n\n  protected readonly blossomCoreSize = computed(() => {\n    const size = this.zSize();\n    if (size === 'sm') {\n      return 22;\n    }\n    if (size === 'lg') {\n      return 30;\n    }\n    return 26;\n  });\n\n  protected readonly blossomOptions = computed(() => {\n    const config = this.zColorConfig();\n    return {\n      defaultValue: config.defaultValue,\n      openOnHover: config.openOnHover ?? false,\n      initialExpanded: config.initialExpanded ?? false,\n      animationDuration: config.animationDuration ?? 300,\n      showAlphaSlider: config.showAlphaSlider ?? true,\n      showCoreColor: config.showCoreColor ?? true,\n      adaptivePositioning: config.adaptivePositioning ?? true,\n      sliderPosition: config.sliderPosition || 'bottom',\n      coreSize: config.coreSize ?? this.blossomCoreSize(),\n      petalSize: config.petalSize ?? 32,\n    };\n  });\n\n  protected readonly blossomColors = computed<ColorInput[] | undefined>(() => {\n    const customColors = this.zColorConfig().colors ?? [];\n    if (customColors.length > 0) {\n      return customColors;\n    }\n\n    const count = this.zColorConfig().count ?? 20;\n    if (!count || count < 1) {\n      return undefined;\n    }\n\n    return this._generateColorPalette(count);\n  });\n\n  protected readonly hasValue = computed(() => {\n    const value = this._value();\n    return value !== null && value !== undefined && value !== '';\n  });\n\n  protected readonly isDisabled = computed(() => this._disabled() || this.zDisabled());\n  protected readonly showArrows = computed(() => this.typeConfig().isNumber && this.zShowArrows());\n  protected readonly hasAutoSuggest = computed(() => {\n    const key = this.zAutoSuggest();\n    return key !== undefined && key.length > 0;\n  });\n\n  protected readonly showClearButton = computed(\n    () => this.zAllowClear() && this.hasValue() && !this.isDisabled() && !this.zReadonly()\n  );\n\n  protected readonly currentStatus = computed<ZInputStatus>(() => {\n    if (this.isDisabled()) {\n      return 'disabled';\n    }\n\n    if (this.zReadonly()) {\n      return 'readonly';\n    }\n\n    if (this.hasError()) {\n      return 'error';\n    }\n    return 'default';\n  });\n\n  protected readonly alignClass = computed(() => {\n    const align = this.zAlign();\n    return align === 'center'\n      ? '[&_.z-input-native]:text-center'\n      : align === 'right'\n        ? '[&_.z-input-native]:text-right'\n        : '';\n  });\n\n  protected readonly inputClasses = computed(() =>\n    zMergeClasses(\n      zInputVariants({ zSize: this.zSize(), zStatus: this.currentStatus() }),\n      this.loadingOutlineClass(),\n      this.alignClass(),\n      this.class()\n    )\n  );\n\n  protected readonly textareaClasses = computed(() =>\n    zMergeClasses(\n      zTextareaVariants({ zStatus: this.currentStatus() }),\n      this.loadingOutlineClass(),\n      this.alignClass(),\n      this.class()\n    )\n  );\n\n  protected readonly loadingOutlineClass = computed(() =>\n    this.zLoading() && this.zLoadingOutline() ? 'z-loading-outline-active !ring-ring/50 !ring-[3px]' : ''\n  );\n\n  protected readonly filteredSuggestHistory = computed(() => {\n    const history = this.suggestHistory();\n    const currentValue = String(this._value() ?? '')\n      .toLowerCase()\n      .trim();\n\n    if (!currentValue) {\n      return history;\n    }\n\n    const matching: string[] = [];\n    const nonMatching: string[] = [];\n\n    for (const item of history) {\n      const target = item.toLowerCase().includes(currentValue) ? matching : nonMatching;\n      target.push(item);\n    }\n\n    return [...matching, ...nonMatching];\n  });\n\n  private readonly _shouldShowValidation = computed(() => {\n    const control = this._formControl();\n    this._formStateVersion();\n\n    if (this._isNgModel()) {\n      return this.uiState().dirty || this.uiState().touched;\n    }\n\n    if (control) {\n      return control.dirty;\n    }\n\n    return this.uiState().dirty || this.uiState().touched;\n  });\n\n  protected readonly hasError = computed(() => {\n    if (this._customError()) {\n      return true;\n    }\n\n    const asyncErrors = this._asyncErrors();\n    if (asyncErrors.size > 0 && this._shouldShowValidation()) {\n      return true;\n    }\n\n    const customErrors = this._getValidationErrors();\n    if (customErrors.length > 0) {\n      return true;\n    }\n\n    const control = this._formControl();\n    this._formStateVersion();\n    if (!control) {\n      return false;\n    }\n\n    return control.invalid && this._shouldShowValidation();\n  });\n\n  protected readonly errorMessage = computed(() => {\n    const customError = this._customError();\n    if (customError) {\n      return customError;\n    }\n\n    const asyncErrors = this._asyncErrors();\n    if (asyncErrors.size > 0) {\n      return this._translateValidationMessage(asyncErrors.values().next().value as string);\n    }\n\n    const customErrors = this._getValidationErrors();\n    if (customErrors.length > 0) {\n      return this._translateValidationMessage(customErrors[0]);\n    }\n\n    const control = this._formControl();\n    const errors = control?.errors;\n    if (!errors) {\n      return '';\n    }\n\n    const validators = this.zValidators();\n    for (const validator of validators) {\n      if (errors[validator.error]) {\n        return this._translateValidationMessage(validator.message);\n      }\n    }\n\n    this._zTranslate.currentLang();\n    const errorInfo = getDefaultErrorInfo(errors);\n    return this._zTranslate.instant(errorInfo.key, errorInfo.params);\n  });\n\n  private _translateValidationMessage(message: string): string {\n    this._zTranslate.currentLang();\n    return this._zTranslate.instant(message);\n  }\n\n  private readonly _searchSubject = new Subject<string | number | null>();\n  private readonly _changeSubject = new Subject<string | number | null>();\n  private readonly _asyncValidationSubject = new Subject<string | number | null>();\n  private readonly _asyncCancelSubject = new Subject<void>();\n  private _asyncValidationAbortController: AbortController | null = null;\n  private _onChange: (value: string | number | null) => void = () => void 0;\n  private _onTouched: () => void = () => void 0;\n  private _ngControl: NgControl | null = null;\n  private _colorPickerPopoverControl: ZPopoverControl | null = null;\n\n  ngOnInit(): void {\n    this._loadColorPickerSavedColors();\n\n    queueMicrotask(() => {\n      try {\n        this._ngControl = this._injector.get(NgControl, null);\n        this._isNgModel.set(this._ngControl instanceof NgModel);\n\n        if (this._ngControl?.control) {\n          const { control } = this._ngControl;\n          this._formControl.set(control);\n          merge(\n            control.statusChanges,\n            control.valueChanges,\n            control.events.pipe(\n              filter(event => event instanceof PristineChangeEvent || event instanceof TouchedChangeEvent)\n            )\n          )\n            .pipe(takeUntilDestroyed(this._destroyRef))\n            .subscribe(() => {\n              this._formStateVersion.update(v => v + 1);\n            });\n        }\n      } catch {\n        this._ngControl = null;\n      }\n    });\n\n    this._searchSubject.pipe(debounceTime(this.zDebounce()), takeUntilDestroyed(this._destroyRef)).subscribe(value => {\n      this.zOnSearch.emit(value);\n    });\n\n    this._changeSubject.pipe(debounceTime(this.zDebounce()), takeUntilDestroyed(this._destroyRef)).subscribe(value => {\n      this.zOnChange.emit(value);\n    });\n\n    const asyncValidators = this.zAsyncValidators();\n    if (asyncValidators.length > 0) {\n      const debounceMs = this.zAsyncDebounce() || 300;\n      this._asyncValidationSubject\n        .pipe(debounceTime(debounceMs), takeUntilDestroyed(this._destroyRef))\n        .subscribe(value => {\n          void this._runAsyncValidation(value);\n        });\n    }\n\n    this._emitControl();\n    if (this.zAutofocus()) {\n      setTimeout(() => {\n        this.focus();\n      }, 20);\n    }\n  }\n\n  public writeValue(value: string | number | null): void {\n    this._value.set(value);\n    if (this.zType() === 'color') {\n      this._syncColorStateFromHex(this._normalizeHexColor(value));\n    }\n  }\n\n  public registerOnChange(fn: (value: string | number | null) => void): void {\n    this._onChange = fn;\n  }\n\n  public registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  public setDisabledState(isDisabled: boolean): void {\n    this._disabled.set(isDisabled);\n  }\n\n  public focus(): void {\n    this.inputRef()?.nativeElement.focus();\n  }\n\n  public blur(): void {\n    this.inputRef()?.nativeElement.blur();\n  }\n\n  /** @deprecated Use `valid()` for boolean form-submit checks. */\n  public validate(): boolean {\n    this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n    this._onTouched();\n\n    if (this._ngControl?.control) {\n      this._ngControl.control.markAsDirty();\n      this._ngControl.control.markAsTouched();\n    }\n\n    return this.hasError();\n  }\n\n  public valid(): boolean {\n    return !this.validate();\n  }\n\n  public reset(): void {\n    this._cancelAsyncValidation();\n    this.isValidating.set(false);\n    this._asyncErrors.set(new Map());\n    this._customError.set(null);\n\n    this._value.set(null);\n    this.uiState.update(s => ({ ...s, touched: false, dirty: false }));\n    this._onChange(null);\n\n    if (this._ngControl?.control) {\n      this._ngControl.control.markAsPristine();\n      this._ngControl.control.markAsUntouched();\n    }\n  }\n\n  public setValue(value: string | number | null): void {\n    this._value.set(value);\n    this._onChange(value);\n  }\n\n  public setErrorMessage(message: string | null): void {\n    this._customError.set(message);\n    if (message) {\n      this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n    }\n  }\n\n  public getValue(): string | number | null {\n    return this._value();\n  }\n\n  public saveToSuggestHistory(value: string): void {\n    const key = this.zAutoSuggest();\n    if (!key || !value || value.trim() === '') {\n      return;\n    }\n\n    const cacheKey = `autosuggest-${key}`;\n    let history: string[] = ZCacheService.get<string[]>(cacheKey, []) ?? [];\n\n    const trimmedValue = value.trim();\n    history = history.filter(item => item !== trimmedValue);\n    history.unshift(trimmedValue);\n\n    if (history.length > 5) {\n      history = history.slice(0, 5);\n    }\n\n    ZCacheService.set(cacheKey, history);\n    this.suggestHistory.set(history);\n  }\n\n  protected clearValue(event: MouseEvent): void {\n    event.stopPropagation();\n    this._value.set(null);\n    this.uiState.update(s => ({ ...s, dirty: true }));\n    this._onChange(null);\n    this._changeSubject.next(null);\n    if (this.zSearch()) {\n      this._searchSubject.next(null);\n    }\n    this.focus();\n  }\n\n  protected onInput(event: Event): void {\n    const { value: rawValue } = event.target as HTMLInputElement;\n    let value: string | number | null = rawValue;\n\n    if (this.zType() === 'number') {\n      value = this._parseNumberValue(value);\n    }\n\n    this._value.set(value);\n    this.uiState.update(s => ({ ...s, dirty: true }));\n    this._onChange(value);\n\n    if (this.zSearch()) {\n      this._searchSubject.next(value);\n    }\n  }\n\n  protected onModelChange(rawValue: string | number | null): void {\n    let value: string | number | null = rawValue;\n\n    if (this.zType() === 'color' && typeof rawValue === 'string') {\n      value = this._normalizeHexColor(rawValue);\n      this._syncColorStateFromHex(value);\n    }\n\n    if (this.zType() === 'number' && typeof rawValue === 'string') {\n      value = this._parseNumberValue(rawValue);\n    }\n\n    this._value.set(value);\n    this.uiState.update(s => ({ ...s, dirty: true }));\n    this._onChange(value);\n\n    this._changeSubject.next(value);\n    if (this.zSearch()) {\n      this._searchSubject.next(value);\n    }\n\n    if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'change') {\n      this._asyncValidationSubject.next(value);\n    }\n\n    if (this.hasAutoSuggest() && this.uiState().isFocused) {\n      this._loadSuggestHistory();\n      if (this.suggestHistory().length > 0) {\n        this._showSuggestPopover();\n        this.suggestActiveIndex.set(-1);\n      }\n    }\n  }\n\n  protected onBlur(event: FocusEvent): void {\n    if (this.uiState().dirty) {\n      this.uiState.update(s => ({ ...s, touched: true }));\n    }\n\n    this._onTouched();\n    this.uiState.update(s => ({ ...s, isFocused: false }));\n    this.zOnBlur.emit(event);\n    this.zEvent.emit(zCreateEvent('blur', event));\n    this.closeSuggestPopover();\n\n    if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'blur') {\n      this._asyncValidationSubject.next(this._value());\n    }\n\n    const el = this.inputRef()?.nativeElement;\n    if (el) {\n      if (el.value && !el.classList.contains('z-input-auto-fill')) {\n        el.classList.add('z-input-auto-fill');\n        const currentValue = el.value;\n        el.value = '';\n        el.value = currentValue;\n      }\n    }\n  }\n\n  protected onFocus(event: FocusEvent): void {\n    this.uiState.update(s => ({ ...s, isFocused: true }));\n    this.zOnFocus.emit(event);\n    this.zEvent.emit(zCreateEvent('focus', event));\n    this._loadSuggestHistory();\n    if (this.hasAutoSuggest() && this.suggestHistory().length > 0) {\n      this._showSuggestPopover();\n    }\n  }\n\n  protected onKeydown(event: KeyboardEvent): void {\n    this.zOnKeydown.emit(event);\n    this.zEvent.emit(zCreateEvent('keydown', event));\n\n    if (event.key === 'Enter') {\n      this.zOnEnter.emit(this._value());\n    }\n\n    if (this.zType() !== 'number') {\n      return;\n    }\n\n    if (event.key === 'ArrowUp') {\n      event.preventDefault();\n      this._incrementValue(1);\n      return;\n    }\n\n    if (event.key === 'ArrowDown') {\n      event.preventDefault();\n      this._incrementValue(-1);\n    }\n  }\n\n  protected onSuggestKeydown(event: KeyboardEvent): void {\n    if (event.key === 'Enter' && this.hasAutoSuggest()) {\n      const activeIndex = this.suggestActiveIndex();\n      const history = this.filteredSuggestHistory();\n\n      if (this.uiState().showSuggestPopover && activeIndex >= 0 && activeIndex < history.length) {\n        event.preventDefault();\n        this.selectSuggestItem(history[activeIndex]);\n        return;\n      }\n\n      const currentValue = String(this._value() ?? '').trim();\n      if (currentValue) {\n        this.saveToSuggestHistory(currentValue);\n        this._hideSuggestPopover();\n        this.suggestActiveIndex.set(-1);\n        if (this.zSearch()) {\n          this.zOnSearch.emit(currentValue);\n        }\n      }\n      return;\n    }\n\n    if (!this.hasAutoSuggest() || !this.uiState().showSuggestPopover) {\n      return;\n    }\n\n    const history = this.filteredSuggestHistory();\n    if (history.length === 0) {\n      return;\n    }\n\n    if (event.key === 'ArrowDown') {\n      event.preventDefault();\n      const currentIndex = this.suggestActiveIndex();\n      const newIndex = currentIndex < history.length - 1 ? currentIndex + 1 : 0;\n      this.suggestActiveIndex.set(newIndex);\n      return;\n    }\n\n    if (event.key === 'ArrowUp') {\n      event.preventDefault();\n      const currentIndex = this.suggestActiveIndex();\n      const newIndex = currentIndex > 0 ? currentIndex - 1 : history.length - 1;\n      this.suggestActiveIndex.set(newIndex);\n      return;\n    }\n\n    if (event.key === 'Escape') {\n      this._hideSuggestPopover();\n      this.suggestActiveIndex.set(-1);\n    }\n  }\n\n  protected selectSuggestItem(item: string): void {\n    this._value.set(item);\n    this.uiState.update(s => ({ ...s, dirty: true }));\n    this._onChange(item);\n    this._hideSuggestPopover();\n    this.suggestActiveIndex.set(-1);\n    this.saveToSuggestHistory(item);\n\n    if (this.zSearch()) {\n      this._searchSubject.next(item);\n    }\n  }\n\n  protected closeSuggestPopover(): void {\n    setTimeout(() => {\n      this._hideSuggestPopover();\n      this.suggestActiveIndex.set(-1);\n    }, 150);\n  }\n\n  protected onArrowClick(event: MouseEvent, direction: 'up' | 'down'): void {\n    event.preventDefault();\n    const multiplier = direction === 'up' ? 1 : -1;\n    this._incrementValue(multiplier);\n    this.focus();\n  }\n\n  protected togglePasswordVisibility(): void {\n    this.uiState.update(s => ({ ...s, passwordVisible: !s.passwordVisible }));\n  }\n\n  protected copyColorToClipboard(): void {\n    const colorValue = this.normalizedColorValue();\n    void navigator.clipboard.writeText(colorValue).then(() => {\n      this.uiState.update(s => ({ ...s, colorCopied: true }));\n      this._toastService.success(`Copied ${colorValue}`);\n      setTimeout(() => {\n        this.uiState.update(s => ({ ...s, colorCopied: false }));\n      }, 1500);\n    });\n  }\n\n  protected onBlossomColorChange(color: BlossomColorPickerColor): void {\n    this._blossomColor.set(color);\n    this.onModelChange(color.hex);\n  }\n\n  protected onBlossomColorCollapse(color: BlossomColorPickerColor): void {\n    this._blossomColor.set(color);\n    this.zOnColorCollapse.emit(color);\n  }\n\n  protected onColorPickerControl(control: ZPopoverControl): void {\n    this._colorPickerPopoverControl = control;\n  }\n\n  protected onColorPickerOpen(): void {\n    this._syncColorPickerFromHex(this.normalizedColorValue());\n    this._loadColorPickerSavedColors();\n  }\n\n  protected onColorPickerFormatChange(value: ZInputColorFormat | ZInputColorFormat[] | null): void {\n    if (!value || Array.isArray(value)) {\n      return;\n    }\n\n    this._colorPickerFormat.set(value);\n  }\n\n  protected onColorPickerHexChange(value: string | number | null): void {\n    const raw = String(value ?? '').trim();\n    if (!/^#?[0-9a-fA-F]{3}$/.test(raw) && !/^#?[0-9a-fA-F]{6}$/.test(raw)) {\n      return;\n    }\n\n    this._commitColor(this._normalizeHexColor(raw.startsWith('#') ? raw : `#${raw}`));\n  }\n\n  protected onColorPickerAlphaValueChange(value: string | number | null): void {\n    const alpha = Number(value ?? 100);\n    if (Number.isNaN(alpha)) {\n      return;\n    }\n\n    this._setColorPickerAlpha(alpha);\n  }\n\n  protected onColorPickerRgbChange(channel: 'red' | 'green' | 'blue', value: string | number | null): void {\n    const channelValue = this._parseBoundedNumber(value, 0, 255);\n    if (channelValue === null) {\n      return;\n    }\n\n    const rgb = this.colorPickerRgbValue();\n    const nextRgb = { ...rgb, [channel]: channelValue };\n    this._commitColor(this._rgbToHex(nextRgb));\n  }\n\n  protected onColorPickerHslChange(channel: 'hue' | 'saturation' | 'lightness', value: string | number | null): void {\n    const max = channel === 'hue' ? 360 : 100;\n    const channelValue = this._parseBoundedNumber(value, 0, max);\n    if (channelValue === null) {\n      return;\n    }\n\n    const hsl = this.colorPickerHslValue();\n    const nextHsl = { ...hsl, [channel]: channelValue };\n    this._commitColor(this._hslToHex(nextHsl));\n  }\n\n  protected onColorPickerHsvValueChange(channel: 'hue' | 'saturation' | 'value', value: string | number | null): void {\n    const max = channel === 'hue' ? 360 : 100;\n    const channelValue = this._parseBoundedNumber(value, 0, max);\n    if (channelValue === null) {\n      return;\n    }\n\n    const nextHsv = { ...this.colorPickerHsv(), [channel]: channelValue };\n    this._colorPickerHsv.set(nextHsv);\n    this._commitColor(this._hsvToHex(nextHsv));\n  }\n\n  protected onColorPickerHueInput(event: Event): void {\n    const input = event.target as HTMLInputElement | null;\n    const hue = Number(input?.value ?? 0);\n    this._colorPickerHsv.update(color => ({ ...color, hue }));\n    this._commitColor(this._hsvToHex(this._colorPickerHsv()));\n  }\n\n  protected onColorPickerAlphaInput(event: Event): void {\n    const input = event.target as HTMLInputElement | null;\n    const alpha = Number(input?.value ?? 100);\n    this._setColorPickerAlpha(alpha);\n  }\n\n  protected onColorPickerSvPointerDown(event: PointerEvent): void {\n    this._updateColorPickerSv(event);\n    const target = event.currentTarget as HTMLElement;\n    target.setPointerCapture(event.pointerId);\n  }\n\n  protected onColorPickerSvPointerMove(event: PointerEvent): void {\n    if (!event.buttons) {\n      return;\n    }\n\n    this._updateColorPickerSv(event);\n  }\n\n  protected selectSavedColor(color: string): void {\n    this._commitColor(color);\n  }\n\n  protected addCurrentColorToSaved(): void {\n    const color = this.normalizedColorValue();\n    if (!/^#[0-9A-F]{6}$/.test(color)) {\n      return;\n    }\n\n    const nextColors = this._normalizeColorList([color, ...this.colorPickerSavedColors()]).slice(0, 8);\n    this._colorPickerSavedColors.set(nextColors);\n    ZCacheService.set(this._colorPickerCacheKey(), nextColors);\n  }\n\n  protected async openNativeColorPicker(): Promise<void> {\n    const eyeDropper = this._getEyeDropper();\n    if (eyeDropper) {\n      const result = await eyeDropper.open();\n      this._commitColor(result.sRGBHex);\n      return;\n    }\n\n    this.nativeColorInputRef()?.nativeElement.click();\n  }\n\n  protected closeColorPicker(): void {\n    this._colorPickerPopoverControl?.close();\n  }\n\n  private _emitControl(): void {\n    this.zControl.emit({\n      valid: () => this.valid(),\n      validate: () => this.validate(),\n      reset: () => this.reset(),\n      focus: () => this.focus(),\n      blur: () => this.blur(),\n      setValue: (value: string | number | null) => this.setValue(value),\n      setErrorMessage: (message: string | null) => this.setErrorMessage(message),\n      hasError: this.hasError,\n      isValidating: this.isValidating,\n      value: this._value.asReadonly(),\n      errorMessage: this.errorMessage,\n    });\n  }\n\n  private async _runAsyncValidation(value: string | number | null): Promise<void> {\n    const asyncValidators = this.zAsyncValidators();\n    if (asyncValidators.length === 0) {\n      return;\n    }\n\n    if ((value === null || value === undefined || value === '') && !this.zRequired()) {\n      this._asyncErrors.set(new Map());\n      this.isValidating.set(false);\n      return;\n    }\n\n    this._cancelAsyncValidation();\n    this._asyncValidationAbortController = new AbortController();\n    const { signal } = this._asyncValidationAbortController;\n\n    this.isValidating.set(true);\n    const errors = new Map<string, string>();\n\n    try {\n      const validationPromises = asyncValidators.map(async validator => {\n        if (signal.aborted) {\n          return null;\n        }\n\n        try {\n          const result = validator.validate(value);\n          if (!isObservable(result)) {\n            const isValid = await result;\n            if (signal.aborted) {\n              return null;\n            }\n\n            return { validator, isValid };\n          }\n\n          const safeResult$ = result.pipe(\n            takeUntil(this._asyncCancelSubject),\n            catchError(err => {\n              console.error(`Async validation error for ${validator.error}:`, err);\n              return of(false);\n            })\n          );\n\n          const isValid = await firstValueFrom(safeResult$);\n          if (signal.aborted) {\n            return null;\n          }\n\n          return { validator, isValid };\n        } catch (error) {\n          if (!signal.aborted) {\n            console.error(`Async validation error for ${validator.error}:`, error);\n            return {\n              validator,\n              isValid: false,\n              error: true,\n            };\n          }\n          return null;\n        }\n      });\n\n      const results = await Promise.all(validationPromises);\n\n      if (signal.aborted) {\n        return;\n      }\n\n      for (const result of results) {\n        if (result && !result.isValid) {\n          errors.set(result.validator.error, result.validator.message);\n        }\n      }\n\n      this._asyncErrors.set(errors);\n    } catch (error) {\n      if (!signal.aborted) {\n        console.error('Async validation error:', error);\n      }\n    } finally {\n      if (!signal.aborted) {\n        this.isValidating.set(false);\n      }\n    }\n  }\n\n  private _cancelAsyncValidation(): void {\n    if (this._asyncValidationAbortController) {\n      this._asyncValidationAbortController.abort();\n      this._asyncValidationAbortController = null;\n    }\n    this._asyncCancelSubject.next();\n  }\n\n  private _showSuggestPopover(): void {\n    this.uiState.update(s => ({ ...s, showSuggestPopover: true }));\n  }\n\n  private _hideSuggestPopover(): void {\n    this.uiState.update(s => ({ ...s, showSuggestPopover: false }));\n  }\n\n  private _loadSuggestHistory(): void {\n    const key = this.zAutoSuggest();\n    if (!key) {\n      this.suggestHistory.set([]);\n      return;\n    }\n\n    const cacheKey = `autosuggest-${key}`;\n    const history = ZCacheService.get<string[]>(cacheKey, []) ?? [];\n    this.suggestHistory.set(history);\n  }\n\n  private _colorPickerCacheKey(): string {\n    const configuredKey = this.zColorConfig().cacheKey;\n    if (configuredKey) {\n      return `input-color-picker-${configuredKey}`;\n    }\n\n    return 'input-color-picker-saved-colors';\n  }\n\n  private _loadColorPickerSavedColors(): void {\n    const savedColors = ZCacheService.get<string[]>(this._colorPickerCacheKey(), []) ?? [];\n    this._colorPickerSavedColors.set(this._normalizeColorList(savedColors).slice(0, 8));\n  }\n\n  private _incrementValue(multiplier: number): void {\n    const currentValue = this._value();\n    const numValue = typeof currentValue === 'number' ? currentValue : parseFloat(String(currentValue)) || 0;\n    const step = this.zStep();\n    let newValue = numValue + step * multiplier;\n\n    const min = this.zMin();\n    const max = this.zMax();\n\n    if (min !== undefined && newValue < min) {\n      newValue = min;\n    }\n    if (max !== undefined && newValue > max) {\n      newValue = max;\n    }\n\n    if (!this.zAllowNegative() && newValue < 0) {\n      newValue = 0;\n    }\n\n    this._value.set(newValue);\n    this._onChange(newValue);\n  }\n\n  private _cleanNumberValue(value: string): string {\n    const thousandSep = this._getEffectiveThousandSeparator();\n    let cleaned = value;\n\n    if (thousandSep) {\n      const escapedSep = thousandSep.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n      cleaned = cleaned.replace(new RegExp(escapedSep, 'g'), '');\n    }\n\n    const decimalMarker = this._getEffectiveDecimalMarker();\n    if (typeof decimalMarker === 'string' && decimalMarker !== '.') {\n      cleaned = cleaned.replace(decimalMarker, '.');\n    }\n\n    return cleaned;\n  }\n\n  private _parseNumberValue(value: string): number | null {\n    const cleanValue = this._cleanNumberValue(value);\n    if (cleanValue === '') {\n      return null;\n    }\n\n    let numberValue = parseFloat(cleanValue);\n    if (isNaN(numberValue)) {\n      return null;\n    }\n\n    const min = this.zMin();\n    const max = this.zMax();\n\n    if (min !== undefined && numberValue < min) {\n      numberValue = min;\n    }\n\n    if (max !== undefined && numberValue > max) {\n      numberValue = max;\n    }\n\n    if (!this.zAllowNegative() && numberValue < 0) {\n      return 0;\n    }\n\n    return numberValue;\n  }\n\n  private _getEffectiveMask(): string {\n    const mask = this.zMask();\n    if (mask) {\n      return mask;\n    }\n\n    if (this.zType() !== 'number') {\n      return '';\n    }\n\n    const decimalPlaces = this.zDecimalPlaces() ?? this._maskConfig?.decimalPlaces;\n    const thousandSep = this._getEffectiveThousandSeparator();\n    if (decimalPlaces !== undefined || thousandSep === '.' || thousandSep === ',') {\n      return `separator.${decimalPlaces ?? 0}`;\n    }\n\n    return '';\n  }\n\n  private _getEffectiveType(effectiveMask: string): ZInputType {\n    const type = this.zType();\n\n    if (type === 'password' && this.uiState().passwordVisible) {\n      return 'text';\n    }\n\n    if (type === 'number' && effectiveMask) {\n      return 'text';\n    }\n\n    return type;\n  }\n\n  private _getEffectiveThousandSeparator(): string {\n    return this.zThousandSeparator() ?? this._maskConfig?.thousandSeparator ?? '';\n  }\n\n  private _getEffectiveDecimalMarker(): '.' | ',' | ['.', ','] {\n    const decimalMarker = this.zDecimalMarker();\n    if (decimalMarker) {\n      return decimalMarker;\n    }\n\n    const configDecimalMarker = this._maskConfig?.decimalMarker;\n    if (configDecimalMarker === '.' || configDecimalMarker === ',') {\n      return configDecimalMarker;\n    }\n\n    const thousandSep = this._getEffectiveThousandSeparator();\n\n    if (thousandSep === '.') {\n      return ',';\n    }\n\n    if (thousandSep === ',') {\n      return '.';\n    }\n\n    return '.';\n  }\n\n  private _getValidationErrors(): string[] {\n    const errors: string[] = [];\n    const value = this._value();\n    const validators = this.zValidators();\n\n    if (!this._shouldShowValidation()) {\n      return errors;\n    }\n\n    const isRequired = this.zRequired() || this._formControl()?.errors?.['required'];\n    if (isRequired && (value === null || value === undefined || value === '')) {\n      this._zTranslate.currentLang();\n      errors.push(this._zTranslate.instant('i18n_z_ui_input_required'));\n    }\n\n    for (const validator of validators) {\n      if (validator.validate && !validator.validate(value)) {\n        errors.push(validator.message);\n        continue;\n      }\n\n      if (validator.error === 'required') {\n        continue;\n      }\n\n      if (validator.error === 'number' && value !== null && value !== '') {\n        const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n        if (isNaN(numValue)) {\n          errors.push(validator.message);\n        }\n      }\n\n      if (validator.error === 'min' && validator.min !== undefined && value !== null && value !== '') {\n        const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n        if (!isNaN(numValue) && numValue < validator.min) {\n          errors.push(validator.message);\n        }\n      }\n\n      if (validator.error === 'max' && validator.max !== undefined && value !== null && value !== '') {\n        const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n        if (!isNaN(numValue) && numValue > validator.max) {\n          errors.push(validator.message);\n        }\n      }\n\n      if (validator.error === 'pattern' && validator.pattern && value !== null && value !== '') {\n        if (!validator.pattern.test(String(value))) {\n          errors.push(validator.message);\n        }\n      }\n    }\n\n    return errors;\n  }\n\n  private _normalizeHexColor(value: string | number | null): string {\n    return this._tryNormalizeHexColor(value) ?? '#000000';\n  }\n\n  private _tryNormalizeHexColor(value: string | number | null): string | null {\n    const raw = String(value ?? '')\n      .trim()\n      .toUpperCase();\n\n    if (/^#[0-9A-F]{6}$/.test(raw)) {\n      return raw;\n    }\n\n    if (/^#[0-9A-F]{3}$/.test(raw)) {\n      const [r, g, b] = raw.slice(1).split('');\n      return `#${r}${r}${g}${g}${b}${b}`;\n    }\n\n    return null;\n  }\n\n  private _syncBlossomColorFromHex(hex: string): void {\n    const { h, s, l } = hexToHsl(hex);\n    const current = this._blossomColor();\n\n    this._blossomColor.set({\n      hue: h,\n      saturation: lightnessToSliderValue(l),\n      lightness: l,\n      originalSaturation: s,\n      alpha: current.alpha,\n      layer: current.layer,\n    });\n  }\n\n  private _syncColorStateFromHex(hex: string): void {\n    this._syncBlossomColorFromHex(hex);\n    this._syncColorPickerFromHex(hex);\n  }\n\n  private _syncColorPickerFromHex(hex: string): void {\n    const hsv = this._hexToHsv(hex);\n    const rgb = this._hsvToRgb(hsv);\n    this._colorPickerHsv.set(hsv);\n    this._colorPickerRgb.set(rgb);\n    this._colorPickerHsl.set(this._rgbToHsl(rgb));\n  }\n\n  private _commitColor(hex: string): void {\n    const color = this._normalizeHexColor(hex);\n    this._value.set(color);\n    this._syncColorStateFromHex(color);\n    this.uiState.update(s => ({ ...s, dirty: true }));\n    this._onChange(color);\n    this._changeSubject.next(color);\n\n    if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'change') {\n      this._asyncValidationSubject.next(color);\n    }\n  }\n\n  private _setColorPickerAlpha(alpha: number): void {\n    const boundedAlpha = Math.min(100, Math.max(0, Math.round(alpha)));\n    this._colorPickerAlpha.set(boundedAlpha);\n  }\n\n  private _parseBoundedNumber(value: string | number | null, min: number, max: number): number | null {\n    const numericValue = Number(value);\n    if (Number.isNaN(numericValue)) {\n      return null;\n    }\n\n    return Math.min(max, Math.max(min, Math.round(numericValue)));\n  }\n\n  private _normalizeColorList(colors: readonly string[]): string[] {\n    const result: string[] = [];\n\n    for (const color of colors) {\n      const normalized = this._tryNormalizeHexColor(color);\n      if (!normalized) {\n        continue;\n      }\n\n      if (result.includes(normalized)) {\n        continue;\n      }\n\n      result.push(normalized);\n    }\n\n    return result;\n  }\n\n  private _isLightHexColor(hex: string): boolean {\n    const normalized = this._normalizeHexColor(hex).slice(1);\n    const red = parseInt(normalized.slice(0, 2), 16);\n    const green = parseInt(normalized.slice(2, 4), 16);\n    const blue = parseInt(normalized.slice(4, 6), 16);\n    const luminance = (0.299 * red + 0.587 * green + 0.114 * blue) / 255;\n    return luminance > 0.82;\n  }\n\n  private _getEyeDropper(): { open: () => Promise<{ sRGBHex: string }> } | null {\n    const maybeWindow = window as unknown as {\n      EyeDropper?: new () => { open: () => Promise<{ sRGBHex: string }> };\n    };\n\n    if (!maybeWindow.EyeDropper) {\n      return null;\n    }\n\n    return new maybeWindow.EyeDropper();\n  }\n\n  private _updateColorPickerSv(event: PointerEvent): void {\n    const target = event.currentTarget as HTMLElement;\n    const rect = target.getBoundingClientRect();\n    const saturation = ((event.clientX - rect.left) / rect.width) * 100;\n    const value = 100 - ((event.clientY - rect.top) / rect.height) * 100;\n\n    this._colorPickerHsv.update(color => ({\n      ...color,\n      saturation: Math.min(100, Math.max(0, saturation)),\n      value: Math.min(100, Math.max(0, value)),\n    }));\n    this._commitColor(this._hsvToHex(this._colorPickerHsv()));\n  }\n\n  private _hexToHsv(hex: string): { hue: number; saturation: number; value: number } {\n    const normalized = this._normalizeHexColor(hex).slice(1);\n    const red = parseInt(normalized.slice(0, 2), 16) / 255;\n    const green = parseInt(normalized.slice(2, 4), 16) / 255;\n    const blue = parseInt(normalized.slice(4, 6), 16) / 255;\n    const max = Math.max(red, green, blue);\n    const min = Math.min(red, green, blue);\n    const delta = max - min;\n\n    let hue = 0;\n    if (delta !== 0) {\n      if (max === red) {\n        hue = ((green - blue) / delta) % 6;\n      }\n\n      if (max === green) {\n        hue = (blue - red) / delta + 2;\n      }\n\n      if (max === blue) {\n        hue = (red - green) / delta + 4;\n      }\n\n      hue = Math.round(hue * 60);\n      if (hue < 0) {\n        hue += 360;\n      }\n    }\n\n    return {\n      hue,\n      saturation: max === 0 ? 0 : Math.round((delta / max) * 100),\n      value: Math.round(max * 100),\n    };\n  }\n\n  private _hsvToRgb(color: { hue: number; saturation: number; value: number }): {\n    red: number;\n    green: number;\n    blue: number;\n  } {\n    const hex = this._hsvToHex(color).slice(1);\n    return {\n      red: parseInt(hex.slice(0, 2), 16),\n      green: parseInt(hex.slice(2, 4), 16),\n      blue: parseInt(hex.slice(4, 6), 16),\n    };\n  }\n\n  private _rgbToHex(color: { red: number; green: number; blue: number }): string {\n    return [color.red, color.green, color.blue]\n      .map(channel => Math.min(255, Math.max(0, channel)).toString(16).padStart(2, '0'))\n      .join('')\n      .toUpperCase()\n      .replace(/^/, '#');\n  }\n\n  private _rgbToHsl(color: { red: number; green: number; blue: number }): {\n    hue: number;\n    saturation: number;\n    lightness: number;\n  } {\n    const red = color.red / 255;\n    const green = color.green / 255;\n    const blue = color.blue / 255;\n    const max = Math.max(red, green, blue);\n    const min = Math.min(red, green, blue);\n    const delta = max - min;\n    const lightness = (max + min) / 2;\n    let hue = 0;\n    let saturation = 0;\n\n    if (delta !== 0) {\n      saturation = delta / (1 - Math.abs(2 * lightness - 1));\n\n      if (max === red) {\n        hue = ((green - blue) / delta) % 6;\n      }\n\n      if (max === green) {\n        hue = (blue - red) / delta + 2;\n      }\n\n      if (max === blue) {\n        hue = (red - green) / delta + 4;\n      }\n\n      hue = Math.round(hue * 60);\n      if (hue < 0) {\n        hue += 360;\n      }\n    }\n\n    return {\n      hue,\n      saturation: Math.round(saturation * 100),\n      lightness: Math.round(lightness * 100),\n    };\n  }\n\n  private _hslToHex(color: { hue: number; saturation: number; lightness: number }): string {\n    const saturation = color.saturation / 100;\n    const lightness = color.lightness / 100;\n    const chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n    const hueSection = color.hue / 60;\n    const x = chroma * (1 - Math.abs((hueSection % 2) - 1));\n    const match = lightness - chroma / 2;\n    let red = chroma;\n    let green = 0;\n    let blue = x;\n\n    if (hueSection < 1) {\n      red = chroma;\n      green = x;\n      blue = 0;\n    }\n\n    if (hueSection >= 1 && hueSection < 2) {\n      red = x;\n      green = chroma;\n      blue = 0;\n    }\n\n    if (hueSection >= 2 && hueSection < 3) {\n      red = 0;\n      green = chroma;\n      blue = x;\n    }\n\n    if (hueSection >= 3 && hueSection < 4) {\n      red = 0;\n      green = x;\n      blue = chroma;\n    }\n\n    if (hueSection >= 4 && hueSection < 5) {\n      red = x;\n      green = 0;\n      blue = chroma;\n    }\n\n    return [red, green, blue]\n      .map(channel =>\n        Math.round((channel + match) * 255)\n          .toString(16)\n          .padStart(2, '0')\n      )\n      .join('')\n      .toUpperCase()\n      .replace(/^/, '#');\n  }\n\n  private _hsvToHex(color: { hue: number; saturation: number; value: number }): string {\n    const saturation = color.saturation / 100;\n    const value = color.value / 100;\n    const chroma = value * saturation;\n    const hueSection = color.hue / 60;\n    const x = chroma * (1 - Math.abs((hueSection % 2) - 1));\n    const match = value - chroma;\n    let red = chroma;\n    let green = 0;\n    let blue = x;\n\n    if (hueSection < 1) {\n      red = chroma;\n      green = x;\n      blue = 0;\n    }\n\n    if (hueSection >= 1 && hueSection < 2) {\n      red = x;\n      green = chroma;\n      blue = 0;\n    }\n\n    if (hueSection >= 2 && hueSection < 3) {\n      red = 0;\n      green = chroma;\n      blue = x;\n    }\n\n    if (hueSection >= 3 && hueSection < 4) {\n      red = 0;\n      green = x;\n      blue = chroma;\n    }\n\n    if (hueSection >= 4 && hueSection < 5) {\n      red = x;\n      green = 0;\n      blue = chroma;\n    }\n\n    return [red, green, blue]\n      .map(channel =>\n        Math.round((channel + match) * 255)\n          .toString(16)\n          .padStart(2, '0')\n      )\n      .join('')\n      .toUpperCase()\n      .replace(/^/, '#');\n  }\n\n  private _generateColorPalette(count: number): ColorInput[] {\n    const safeCount = Math.max(1, Math.floor(count));\n    const basePalette = [...DEFAULT_COLORS];\n\n    if (safeCount <= basePalette.length) {\n      if (safeCount === basePalette.length) {\n        return basePalette;\n      }\n\n      const step = basePalette.length / safeCount;\n      return Array.from({ length: safeCount }, (_, index) => basePalette[Math.floor(index * step)]);\n    }\n\n    const generated = [...basePalette];\n    const clamp = (value: number, min: number, max: number): number => Math.min(max, Math.max(min, value));\n\n    for (let index = basePalette.length; index < safeCount; index++) {\n      const phase = index - basePalette.length;\n      const hue = Math.round((phase * 137.508 + 17) % 360);\n      const saturation = clamp(Math.round(70 + 10 * Math.sin(phase * 0.7)), 58, 84);\n      const lightness = clamp(Math.round(55 + 8 * Math.cos(phase * 0.55)), 44, 66);\n\n      generated.push({ h: hue, s: saturation, l: lightness });\n    }\n\n    return generated.slice(0, safeCount);\n  }\n}\n","<div class=\"z-input-wrapper flex w-full flex-col gap-2\">\n  @if (zLabel()) {\n    <label [for]=\"inputId\" class=\"text-xs leading-none font-medium\" [class]=\"zLabelClass()\">\n      {{ zLabel() | translate }}\n      @if (zRequired()) {\n        <span class=\"text-destructive! ml-0.5\">*</span>\n      }\n    </label>\n  }\n\n  @if (typeConfig().isTextarea) {\n    <div class=\"relative w-full\" [class]=\"textareaClasses()\" [class.overflow-auto]=\"zAutoSizeContent()\">\n      <textarea\n        #inputEl\n        [id]=\"inputId\"\n        [placeholder]=\"zPlaceholder() | translate\"\n        class=\"z-input-native placeholder:text-muted-foreground m-0 block min-h-14 w-full resize-none bg-transparent p-2 text-sm outline-none\"\n        [class.resize-y]=\"zResize() && !isDisabled() && !zReadonly()\"\n        [class.field-sizing-content]=\"zAutoSizeContent()\"\n        [disabled]=\"isDisabled()\"\n        [readonly]=\"zReadonly()\"\n        [autocomplete]=\"zAutoComplete()\"\n        [rows]=\"zRows()\"\n        [attr.maxlength]=\"zMaxLength()\"\n        [ngModel]=\"displayValue()\"\n        (ngModelChange)=\"onModelChange($event)\"\n        (blur)=\"onBlur($event)\"\n        (focus)=\"onFocus($event)\"\n        (keydown)=\"onKeydown($event)\"></textarea>\n      @if (zMaxLength()) {\n        <div class=\"flex justify-end pr-1 pb-1\">\n          <span class=\"text-muted-foreground text-xs\">{{ displayValue().length }} / {{ zMaxLength() }}</span>\n        </div>\n      }\n      @if (zResize() && !isDisabled() && !zReadonly() && !zMaxLength()) {\n        <svg\n          class=\"text-muted-foreground pointer-events-none absolute right-0.5 bottom-0.5 opacity-40\"\n          width=\"12\"\n          height=\"12\"\n          viewBox=\"0 0 12 12\"\n          fill=\"none\"\n          stroke=\"currentColor\"\n          stroke-width=\"1.5\">\n          <path d=\"M10 2L2 10\" />\n          <path d=\"M10 6L6 10\" />\n        </svg>\n      }\n    </div>\n  } @else {\n    <div class=\"relative w-full\">\n      <div\n        class=\"z-input-container flex w-full items-center\"\n        [class]=\"inputClasses()\"\n        z-tooltip\n        [zContent]=\"displayValue()\"\n        [zTooltipDisabled]=\"typeConfig().isColor || uiState().isFocused || uiState().showSuggestPopover || !hasValue()\"\n        [zTriggerElement]=\"inputEl\">\n        <!-- Color picker square (prefix for color type) -->\n        @if (typeConfig().isColor) {\n          <div class=\"z-[10] shrink-0\">\n            @if (isBlossomColorMode()) {\n              <blossom-color-picker\n                class=\"z-input-blossom flex items-center justify-center [&>div:first-child]:flex\"\n                [style.--z-bcp-core-size.px]=\"blossomOptions().coreSize\"\n                [style.--z-bcp-core-border-color]=\"blossomCoreBorderColor()\"\n                [value]=\"blossomColor()\"\n                [defaultValue]=\"blossomOptions().defaultValue\"\n                [colors]=\"blossomColors()\"\n                [disabled]=\"isDisabled() || zReadonly()\"\n                [openOnHover]=\"blossomOptions().openOnHover\"\n                [initialExpanded]=\"blossomOptions().initialExpanded\"\n                [animationDuration]=\"blossomOptions().animationDuration\"\n                [showAlphaSlider]=\"blossomOptions().showAlphaSlider\"\n                [coreSize]=\"blossomOptions().coreSize\"\n                [petalSize]=\"blossomOptions().petalSize\"\n                [showCoreColor]=\"blossomOptions().showCoreColor\"\n                [sliderPosition]=\"blossomOptions().sliderPosition\"\n                [adaptivePositioning]=\"blossomOptions().adaptivePositioning\"\n                (colorChange)=\"onBlossomColorChange($event)\"\n                (colorCollapse)=\"onBlossomColorCollapse($event)\" />\n            } @else {\n              <button\n                type=\"button\"\n                class=\"z-input-color-trigger\"\n                z-popover\n                [zPopoverContent]=\"colorPickerPopover\"\n                zTrigger=\"click\"\n                zPosition=\"bottom-left\"\n                zClass=\"z-input-color-picker-popover\"\n                [zOffset]=\"8\"\n                [zPopoverWidth]=\"330\"\n                [zDisabled]=\"isDisabled() || zReadonly()\"\n                [style.--z-bcp-core-size.px]=\"blossomOptions().coreSize\"\n                [style.background]=\"normalizedColorValue()\"\n                (zControl)=\"onColorPickerControl($event)\"\n                (zShow)=\"onColorPickerOpen()\"\n                (mousedown)=\"$event.preventDefault()\"\n                [attr.aria-label]=\"'Color picker'\"></button>\n            }\n          </div>\n        }\n\n        @if (slotConfig().hasPrefix && !typeConfig().isColor) {\n          <div class=\"text-muted-foreground left-3 flex items-center justify-center\">\n            @if (zSearch()) {\n              <z-icon zType=\"lucideSearch\" zSize=\"16\" />\n            } @else if (slotConfig().isPrefixTemplate) {\n              <ng-container *ngTemplateOutlet=\"$any(zPrefix())\" />\n            } @else {\n              {{ zPrefix() }}\n            }\n          </div>\n        }\n\n        <input\n          #inputEl\n          [id]=\"inputId\"\n          [type]=\"typeConfig().isColor ? 'text' : maskConfig().effectiveType\"\n          [placeholder]=\"zPlaceholder() | translate\"\n          class=\"z-input-native placeholder:text-muted-foreground h-full min-w-0 flex-1 bg-transparent text-sm outline-none\"\n          [disabled]=\"isDisabled()\"\n          [readonly]=\"typeConfig().isColor ? true : zReadonly()\"\n          [attr.min]=\"zMin()\"\n          [attr.max]=\"zMax()\"\n          [attr.step]=\"zStep()\"\n          [autocomplete]=\"zAutoComplete()\"\n          [ngModel]=\"typeConfig().isColor ? normalizedColorValue() : displayValue()\"\n          (ngModelChange)=\"onModelChange($event)\"\n          (blur)=\"onBlur($event)\"\n          (focus)=\"onFocus($event)\"\n          (keydown)=\"onKeydown($event); onSuggestKeydown($event)\"\n          [mask]=\"maskConfig().effectiveMask\"\n          [thousandSeparator]=\"maskConfig().effectiveThousandSeparator\"\n          [decimalMarker]=\"maskConfig().effectiveDecimalMarker\"\n          [allowNegativeNumbers]=\"zAllowNegative()\"\n          [dropSpecialCharacters]=\"false\" />\n\n        @if (slotConfig().hasSuffix && !typeConfig().isColor) {\n          <div class=\"text-muted-foreground flex items-center justify-center text-sm\">\n            @if (slotConfig().isSuffixTemplate) {\n              <ng-container *ngTemplateOutlet=\"$any(zSuffix())\" />\n            } @else {\n              {{ zSuffix() }}\n            }\n          </div>\n        }\n\n        @if (isLoading()) {\n          <div class=\"text-muted-foreground flex items-center justify-center\">\n            <z-icon zType=\"lucideLoader2\" zSize=\"16\" class=\"animate-spin\" />\n          </div>\n        }\n\n        <!-- Clear button -->\n        @if (showClearButton()) {\n          <button\n            type=\"button\"\n            tabindex=\"-1\"\n            class=\"text-muted-foreground hover:text-foreground flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n            (mousedown)=\"$event.preventDefault()\"\n            (click)=\"clearValue($event)\">\n            <z-icon zType=\"lucideX\" zSize=\"14\" />\n          </button>\n        }\n\n        <!-- Copy button for color type -->\n        @if (typeConfig().isColor) {\n          <input\n            #nativeColorInputEl\n            type=\"color\"\n            class=\"z-input-native-color\"\n            [ngModel]=\"normalizedColorValue()\"\n            (ngModelChange)=\"onColorPickerHexChange($event)\"\n            tabindex=\"-1\"\n            aria-hidden=\"true\" />\n\n          <button\n            type=\"button\"\n            tabindex=\"-1\"\n            class=\"text-muted-foreground hover:text-foreground hover:bg-accent flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-all\"\n            (mousedown)=\"$event.preventDefault()\"\n            (click)=\"copyColorToClipboard()\">\n            <span class=\"relative flex size-4 items-center justify-center\">\n              <z-icon\n                zType=\"lucideCopy\"\n                [class]=\"uiState().colorCopied ? 'scale-0 rotate-90 opacity-0' : 'scale-100 rotate-0 opacity-100'\"\n                class=\"absolute transition-all duration-200 ease-out\"\n                zSize=\"14\" />\n              <z-icon\n                zType=\"lucideCheck\"\n                [class]=\"\n                  uiState().colorCopied ? 'text-success scale-100 rotate-0 opacity-100' : 'scale-0 -rotate-90 opacity-0'\n                \"\n                class=\"absolute transition-all duration-200 ease-out\"\n                zSize=\"14\" />\n            </span>\n          </button>\n        }\n\n        @if (showArrows() && !isDisabled()) {\n          <div class=\"-mr-1 flex h-[calc(100%-0.25rem)] shrink-0 flex-col\">\n            <button\n              type=\"button\"\n              tabindex=\"-1\"\n              class=\"text-muted-foreground hover:bg-accent hover:text-foreground flex w-5 flex-1 cursor-pointer items-center justify-center rounded-sm transition-all\"\n              (mousedown)=\"$event.preventDefault()\"\n              (click)=\"onArrowClick($event, 'up')\">\n              <z-icon zType=\"lucideChevronUp\" zSize=\"12\" />\n            </button>\n            <button\n              type=\"button\"\n              tabindex=\"-1\"\n              class=\"text-muted-foreground hover:bg-accent hover:text-foreground flex w-5 flex-1 cursor-pointer items-center justify-center rounded-sm transition-all\"\n              (mousedown)=\"$event.preventDefault()\"\n              (click)=\"onArrowClick($event, 'down')\">\n              <z-icon zType=\"lucideChevronDown\" zSize=\"12\" />\n            </button>\n          </div>\n        }\n\n        @if (typeConfig().isPassword && zShowPasswordToggle()) {\n          <button\n            type=\"button\"\n            tabindex=\"-1\"\n            class=\"text-muted-foreground hover:text-foreground flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-all\"\n            (mousedown)=\"$event.preventDefault()\"\n            (click)=\"togglePasswordVisibility()\">\n            @if (uiState().passwordVisible) {\n              <z-icon zType=\"lucideEyeOff\" zSize=\"16\" />\n            } @else {\n              <z-icon zType=\"lucideEye\" zSize=\"16\" />\n            }\n          </button>\n        }\n      </div>\n\n      @if (hasAutoSuggest() && uiState().showSuggestPopover && suggestHistory().length > 0) {\n        <div\n          class=\"bg-popover text-popover-foreground border-border z-animate-in z-fade-in z-duration-200 z-slide-in-from-top-4 absolute top-full left-0 z-50 mt-1 flex w-full flex-col gap-[0.1875rem] rounded-sm border p-1 shadow-md\">\n          @for (item of filteredSuggestHistory(); track item; let i = $index) {\n            <button\n              type=\"button\"\n              class=\"hover:bg-primary/10 hover:text-foreground flex w-full cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm transition-colors\"\n              [class.bg-primary/15]=\"suggestActiveIndex() === i\"\n              [class.text-primary]=\"suggestActiveIndex() === i\"\n              (mousedown)=\"selectSuggestItem(item)\">\n              <z-icon zType=\"lucideClock\" zSize=\"14\" class=\"text-muted-foreground shrink-0\" />\n              <span class=\"truncate\">{{ item }}</span>\n            </button>\n          }\n        </div>\n      }\n    </div>\n  }\n\n  <ng-template #colorPickerPopover>\n    <div class=\"z-input-color-picker\" [style.--z-input-color-picker-current]=\"normalizedColorValue()\">\n      <div\n        class=\"z-input-color-picker-plane\"\n        [style]=\"colorPickerSvStyle()\"\n        (pointerdown)=\"onColorPickerSvPointerDown($event)\"\n        (pointermove)=\"onColorPickerSvPointerMove($event)\">\n        <span class=\"z-input-color-picker-cursor\" [style]=\"colorPickerCursorStyle()\"></span>\n      </div>\n\n      <div class=\"z-input-color-picker-controls\">\n        <button\n          type=\"button\"\n          z-button\n          zType=\"outline\"\n          zSize=\"sm\"\n          aria-label=\"Pick color\"\n          zTypeIcon=\"lucidePencil\"\n          (click)=\"openNativeColorPicker()\"></button>\n        <div class=\"z-input-color-picker-sliders\">\n          <input\n            type=\"range\"\n            min=\"0\"\n            max=\"360\"\n            [ngModel]=\"colorPickerHsv().hue\"\n            class=\"z-input-color-picker-hue\"\n            (input)=\"onColorPickerHueInput($event)\" />\n          <input\n            type=\"range\"\n            min=\"0\"\n            max=\"100\"\n            [ngModel]=\"colorPickerAlpha()\"\n            class=\"z-input-color-picker-alpha\"\n            (input)=\"onColorPickerAlphaInput($event)\" />\n        </div>\n      </div>\n\n      <div class=\"flex flex-col gap-2\">\n        <div class=\"z-input-color-picker-fields\">\n          <z-select\n            zSize=\"sm\"\n            class=\"z-input-color-picker-format\"\n            [zOptions]=\"colorPickerFormatOptions\"\n            [zShowSearch]=\"false\"\n            [zTranslateLabels]=\"false\"\n            [ngModel]=\"colorPickerFormat()\"\n            (ngModelChange)=\"onColorPickerFormatChange($event)\" />\n          <div class=\"z-input-color-picker-value-group\">\n            @switch (colorPickerFormat()) {\n              @case ('rgb') {\n                <div class=\"z-input-color-picker-channel-group\">\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"R\"\n                    [zMin]=\"0\"\n                    [zMax]=\"255\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerRgbValue().red\"\n                    (ngModelChange)=\"onColorPickerRgbChange('red', $event)\" />\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"G\"\n                    [zMin]=\"0\"\n                    [zMax]=\"255\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerRgbValue().green\"\n                    (ngModelChange)=\"onColorPickerRgbChange('green', $event)\" />\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"B\"\n                    [zMin]=\"0\"\n                    [zMax]=\"255\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerRgbValue().blue\"\n                    (ngModelChange)=\"onColorPickerRgbChange('blue', $event)\" />\n                </div>\n              }\n              @case ('hsl') {\n                <div class=\"z-input-color-picker-channel-group\">\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"H\"\n                    [zMin]=\"0\"\n                    [zMax]=\"360\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerHslValue().hue\"\n                    (ngModelChange)=\"onColorPickerHslChange('hue', $event)\" />\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"S\"\n                    [zMin]=\"0\"\n                    [zMax]=\"100\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerHslValue().saturation\"\n                    (ngModelChange)=\"onColorPickerHslChange('saturation', $event)\" />\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"L\"\n                    [zMin]=\"0\"\n                    [zMax]=\"100\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerHslValue().lightness\"\n                    (ngModelChange)=\"onColorPickerHslChange('lightness', $event)\" />\n                </div>\n              }\n              @case ('hsv') {\n                <div class=\"z-input-color-picker-channel-group\">\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"H\"\n                    [zMin]=\"0\"\n                    [zMax]=\"360\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerHsv().hue\"\n                    (ngModelChange)=\"onColorPickerHsvValueChange('hue', $event)\" />\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"S\"\n                    [zMin]=\"0\"\n                    [zMax]=\"100\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerHsv().saturation\"\n                    (ngModelChange)=\"onColorPickerHsvValueChange('saturation', $event)\" />\n                  <z-input\n                    zType=\"number\"\n                    zSize=\"sm\"\n                    zPlaceholder=\"V\"\n                    [zMin]=\"0\"\n                    [zMax]=\"100\"\n                    [zShowArrows]=\"false\"\n                    [ngModel]=\"colorPickerHsv().value\"\n                    (ngModelChange)=\"onColorPickerHsvValueChange('value', $event)\" />\n                </div>\n              }\n              @default {\n                <z-input\n                  zSize=\"sm\"\n                  class=\"z-input-color-picker-hex-input\"\n                  [ngModel]=\"normalizedColorValue()\"\n                  (ngModelChange)=\"onColorPickerHexChange($event)\" />\n              }\n            }\n            <z-input\n              zType=\"number\"\n              zSize=\"sm\"\n              class=\"z-input-color-picker-alpha-input\"\n              [zMin]=\"0\"\n              [zMax]=\"100\"\n              zSuffix=\"%\"\n              [zShowArrows]=\"false\"\n              [ngModel]=\"colorPickerAlpha()\"\n              (ngModelChange)=\"onColorPickerAlphaValueChange($event)\" />\n          </div>\n        </div>\n\n        <div class=\"z-input-color-picker-saved-head\">\n          <span>{{ 'i18n_z_ui_input_saved_colors' | translate }}</span>\n          <button type=\"button\" z-button zType=\"ghost\" zSize=\"sm\" (click)=\"addCurrentColorToSaved()\">\n            {{ 'i18n_z_ui_input_add_color' | translate }}\n          </button>\n        </div>\n        <div class=\"z-input-color-picker-swatches\">\n          @for (swatch of colorPickerSavedSwatches(); track swatch.color) {\n            <button\n              type=\"button\"\n              class=\"z-input-color-picker-swatch rounded-[3px]!\"\n              [class.z-input-color-picker-swatch-active]=\"swatch.color === normalizedColorValue()\"\n              [class.z-input-color-picker-swatch-light]=\"swatch.isLight\"\n              [style.--z-input-color-picker-swatch-color]=\"swatch.color\"\n              [attr.aria-label]=\"swatch.color\"\n              (click)=\"selectSavedColor(swatch.color)\"></button>\n          }\n        </div>\n      </div>\n    </div>\n  </ng-template>\n\n  @if (hasError()) {\n    <p class=\"text-destructive animate-in fade-in slide-in-from-top-1 m-0 text-xs duration-200\">\n      {{ errorMessage() }}\n    </p>\n  }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}