@koobiq/components-experimental 19.8.1 → 20.0.0

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 +0,0 @@
1
- {"version":3,"file":"koobiq-components-experimental-form-field.mjs","sources":["../../../packages/components-experimental/form-field/cleaner.ts","../../../packages/components-experimental/form-field/hint.ts","../../../packages/components-experimental/form-field/hint.html","../../../packages/components-experimental/form-field/label.ts","../../../packages/components-experimental/form-field/password-toggle.ts","../../../packages/components-experimental/form-field/prefix.ts","../../../packages/components-experimental/form-field/stepper.ts","../../../packages/components-experimental/form-field/suffix.ts","../../../packages/components-experimental/form-field/form-field.ts","../../../packages/components-experimental/form-field/form-field.html","../../../packages/components-experimental/form-field/form-field.module.ts","../../../packages/components-experimental/form-field/koobiq-components-experimental-form-field.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqFormField } from './form-field';\n\n/**\n * KbqCleaner to be placed in end of the form field.\n * Resets form control by click.\n */\n@Component({\n selector: 'kbq-cleaner',\n imports: [KbqIconModule],\n template: `\n <i color=\"contrast-fade\" kbq-icon-button=\"kbq-circle-xmark_16\" [autoColor]=\"true\"></i>\n `,\n styleUrl: './cleaner.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqCleaner',\n host: {\n class: 'kbq-cleaner___EXPERIMENTAL',\n '(click)': 'clean($event)',\n '[style.visibility]': 'visible ? \"visible\" : \"hidden\"',\n '[attr.aria-hidden]': '!visible'\n }\n})\nexport class KbqCleaner {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Whether to display the cleaner. */\n get visible(): boolean {\n return !this.formField?.disabled && !!this.formField?.control?.ngControl?.value;\n }\n\n /** Clean the form field control. */\n protected clean(event: MouseEvent): void {\n event.stopPropagation();\n\n this.formField?.control?.ngControl?.reset();\n this.formField?.control?.focus();\n }\n}\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF, KbqComponentColors } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqFormField } from './form-field';\n\nlet nextUniqueId = 0;\n\n/** Hint text to be shown below the form field control. */\n@Component({\n selector: 'kbq-hint',\n exportAs: 'kbqHint',\n templateUrl: './hint.html',\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n host: {\n class: 'kbq-hint___EXPERIMENTAL',\n '[attr.id]': 'id',\n '[class.kbq-error]': 'color === colors.Error',\n '[class.kbq-contrast-fade]': 'color === colors.ContrastFade',\n '[class.kbq-success]': 'color === colors.Success',\n '[class.kbq-warning]': 'color === colors.Warning',\n '[class.kbq-hint_fill-text-off]': 'fillTextOff',\n '[class.kbq-hint_compact]': 'compact'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqHint {\n /** Unique ID for the hint. */\n @Input() id: string = `kbq-hint-${nextUniqueId++}`;\n\n /** Component colors */\n protected colors = KbqComponentColors;\n\n /** Hint color */\n @Input()\n get color(): KbqComponentColors | undefined {\n return this._color;\n }\n\n set color(color: KbqComponentColors) {\n this._color = color;\n }\n\n private _color: KbqComponentColors | undefined;\n\n /** Disables `color` for the hint text. */\n @Input({ transform: booleanAttribute })\n get fillTextOff(): boolean {\n return this._fillTextOff;\n }\n\n set fillTextOff(fillTextOff: boolean) {\n this._fillTextOff = fillTextOff;\n }\n\n private _fillTextOff: boolean = false;\n\n /** Makes the hint size smaller. */\n @Input({ transform: booleanAttribute }) compact: boolean = false;\n}\n\n/** Error text to be shown below the form field control. */\n@Component({\n selector: 'kbq-error',\n exportAs: 'kbqError',\n templateUrl: './hint.html',\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqError extends KbqHint {\n /** @docs-private */\n /** Overrides the hint `color` property. */\n @Input()\n get color(): KbqComponentColors.Error {\n return KbqComponentColors.Error;\n }\n\n set color(_color: null) {}\n\n /** @docs-private */\n /** Overrides the hint `fillTextOff` property. */\n @Input()\n get fillTextOff(): boolean {\n return false;\n }\n\n set fillTextOff(_fillTextOff: null) {}\n}\n\n/** Password hint to be shown below the password form field control. */\n@Component({\n selector: 'kbq-password-hint',\n imports: [NgClass, KbqIconModule],\n template: `\n <i kbq-icon=\"\" [ngClass]=\"icon\"></i>\n\n <span class=\"kbq-hint__text\">\n <ng-content />\n </span>\n `,\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-password-hint___EXPERIMENTAL'\n }\n})\nexport class KbqPasswordHint extends KbqHint {\n /** Whether the form field control has an error. */\n @Input({ transform: booleanAttribute }) hasError: boolean = false;\n\n /** @docs-private */\n /** Overrides the hint `fillTextOff` property. */\n @Input()\n get fillTextOff(): boolean {\n return true;\n }\n\n set fillTextOff(_fillTextOff: null) {}\n\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** @docs-private */\n /** Overrides the hint `color` property. */\n @Input()\n get color(): KbqComponentColors {\n if (this.formField?.invalid && this.hasError) {\n return KbqComponentColors.Error;\n }\n\n if ((!this.formField?.invalid && !this.hasError) || !this.hasError) {\n return KbqComponentColors.Success;\n }\n\n return KbqComponentColors.ContrastFade;\n }\n\n set color(_color: null) {}\n\n /** The form field hint icon. */\n protected get icon(): string {\n return this.hasError ? 'kbq-xmark-s_16' : 'kbq-check-s_16';\n }\n}\n","<ng-content select=\"[kbq-icon]\" />\n\n<span class=\"kbq-hint__text\">\n <ng-content />\n</span>\n","import { Directive, Input } from '@angular/core';\n\nlet nextUniqueId = 0;\n\n/** Label for the form field. */\n@Directive({\n selector: 'kbq-label',\n host: {\n class: 'kbq-label___EXPERIMENTAL',\n '[attr.id]': 'id'\n }\n})\nexport class KbqLabel {\n /** Unique id for the label. */\n @Input() id: string = `kbq-label-${nextUniqueId++}`;\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInputPassword } from '@koobiq/components/input';\nimport { KbqFormField } from './form-field';\n\nconst getKbqPasswordToggleMissingControlError = (): Error => {\n return Error('kbq-password-toggle should use with kbqInputPassword');\n};\n\n/** Component which changes password visibility. */\n@Component({\n selector: `kbq-password-toggle`,\n imports: [NgClass, KbqIconModule],\n template: `\n <i color=\"contrast-fade\" kbq-icon-button=\"\" [ngClass]=\"icon\" [autoColor]=\"true\"></i>\n `,\n styleUrl: './password-toggle.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqPasswordToggle',\n host: {\n class: 'kbq-password-toggle___EXPERIMENTAL',\n '[style.visibility]': 'visible ? \"visible\" : \"hidden\"',\n '[attr.aria-hidden]': '!visible',\n '(click)': 'toggleType($event)',\n '(keydown.ENTER)': 'toggleType($event)',\n '(keydown.SPACE)': 'toggleType($event)'\n }\n})\nexport class KbqPasswordToggle {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Form field password control. */\n protected get control(): KbqInputPassword {\n const control = this.formField?.control;\n\n if (!(control instanceof KbqInputPassword)) {\n throw getKbqPasswordToggleMissingControlError();\n }\n\n return control;\n }\n\n /** The icon selector. */\n protected get icon(): string {\n return this.control.elementType === 'password' ? 'kbq-eye_16' : 'kbq-eye-slash_16';\n }\n\n /** Whether to display the password toggle. */\n get visible(): boolean {\n return !this.formField?.disabled;\n }\n\n /** Toggles the password visibility. */\n protected toggleType(event: KeyboardEvent | MouseEvent): void {\n event.stopPropagation();\n\n this.control.toggleType();\n }\n}\n","import { Directive } from '@angular/core';\n\n/** KbqPrefix to be placed in front of the form field. */\n@Directive({\n selector: '[kbqPrefix]',\n host: {\n class: 'kbq-prefix___EXPERIMENTAL'\n }\n})\nexport class KbqPrefix {}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqNumberInput } from '@koobiq/components/input';\nimport { KbqFormField } from './form-field';\n\nconst getKbqStepperToggleMissingControlError = (): Error => {\n return Error('kbq-stepper should use with kbqNumberInput');\n};\n\n/** Component which allow to increment or decrement number value. */\n@Component({\n selector: 'kbq-stepper',\n imports: [KbqIconModule],\n template: `\n <i\n class=\"kbq-stepper__step-up\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-up-s_16\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n [disabled]=\"control.disabled\"\n (mousedown)=\"stepUp($event)\"\n ></i>\n <i\n class=\"kbq-stepper__step-down\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-down-s_16\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n [disabled]=\"control.disabled\"\n (mousedown)=\"stepDown($event)\"\n ></i>\n `,\n styleUrl: './stepper.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqStepper',\n host: {\n class: 'kbq-stepper___EXPERIMENTAL'\n }\n})\nexport class KbqStepper {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Whether the stepper is visible.\n * @deprecated stepper should be always visible when provided, so this parameter is redundant */\n visible = true;\n\n /** Form field number control. */\n protected get control(): KbqNumberInput {\n const control = this.formField?.control;\n\n if (!(control instanceof KbqInput && control.numberInput)) {\n throw getKbqStepperToggleMissingControlError();\n }\n\n return control.numberInput;\n }\n\n protected stepUp(event: MouseEvent) {\n event.stopPropagation();\n this.control.stepUp(this.control.step);\n }\n\n protected stepDown(event: MouseEvent) {\n event.stopPropagation();\n this.control.stepDown(this.control.step);\n }\n}\n","import { Directive } from '@angular/core';\n\n/** KbqSuffix to be placed at the end of the form field. */\n@Directive({\n selector: '[kbqSuffix]',\n host: {\n class: 'kbq-suffix___EXPERIMENTAL'\n }\n})\nexport class KbqSuffix {}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n afterNextRender,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n InjectionToken,\n Input,\n OnDestroy,\n Provider,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControlDirective } from '@angular/forms';\nimport { ESCAPE, F8 } from '@koobiq/cdk/keycodes';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { EMPTY, merge } from 'rxjs';\nimport { KbqCleaner } from './cleaner';\nimport { KbqError, KbqHint, KbqPasswordHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\n/**\n * Default options for the kbq-form-field that can be configured using the `KBQ_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport type KbqFormFieldDefaultOptions = Partial<{\n /** Disables form field borders and shadows. */\n noBorders: boolean;\n}>;\n\n/** Injection token that can be used to configure the default options for all kbq-form-field's. */\nexport const KBQ_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken<KbqFormFieldDefaultOptions>(\n 'KBQ_FORM_FIELD_DEFAULT_OPTIONS___EXPERIMENTAL'\n);\n\n/** Utility provider for `KBQ_FORM_FIELD_DEFAULT_OPTIONS`. */\nexport const kbqFormFieldDefaultOptionsProvider = (options: KbqFormFieldDefaultOptions): Provider => ({\n provide: KBQ_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: options\n});\n\n/** @docs-private */\nexport const getKbqFormFieldMissingControlError = (): Error => {\n return Error('kbq-form-field must contain a KbqFormFieldControl');\n};\n\n/** Container for form controls that applies styling and behavior. */\n@Component({\n selector: 'kbq-form-field',\n exportAs: 'kbqFormField',\n templateUrl: './form-field.html',\n styleUrls: [\n './form-field.scss',\n './form-field-tokens.scss',\n /**\n * KbqInput is a directive and can't have styles, so we need to include its styles here.\n * The KbqInput styles are fairly minimal so it shouldn't be a big deal for people who aren't using KbqInput.\n * @TODO should be refactored (#DS-2910)\n */\n './../../components/input/input.scss',\n './../../components/input/input-tokens.scss',\n './../../components/tags/tag-input-tokens.scss',\n './../../components/timepicker/timepicker.scss',\n './../../components/datepicker/datepicker-input.scss',\n './../../components/textarea/textarea.scss',\n './../../components/textarea/textarea-tokens.scss'\n ],\n host: {\n class: 'kbq-form-field___EXPERIMENTAL',\n '[class.kbq-form-field_invalid]': 'invalid',\n '[class.kbq-form-field_disabled]': 'disabled',\n '[class.kbq-form-field_no-borders]': 'noBorders',\n\n '[class.ng-untouched]': 'shouldBeForwarded(\"untouched\")',\n '[class.ng-touched]': 'shouldBeForwarded(\"touched\")',\n '[class.ng-pristine]': 'shouldBeForwarded(\"pristine\")',\n '[class.ng-dirty]': 'shouldBeForwarded(\"dirty\")',\n '[class.ng-valid]': 'shouldBeForwarded(\"valid\")',\n '[class.ng-invalid]': 'shouldBeForwarded(\"invalid\")',\n '[class.ng-pending]': 'shouldBeForwarded(\"pending\")',\n\n '(keydown)': 'onKeyDown($event)',\n '(mouseenter)': 'mouseenter($event)',\n '(mouseleave)': 'mouseleave($event)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }]\n})\nexport class KbqFormField implements AfterContentInit, AfterViewInit, OnDestroy {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly defaultOptions = inject(KBQ_FORM_FIELD_DEFAULT_OPTIONS, { optional: true });\n private readonly focusMonitor = inject(FocusMonitor);\n\n /** Disables form field borders and shadows. */\n @Input({ transform: booleanAttribute }) noBorders: boolean | undefined = this.defaultOptions?.noBorders;\n\n @ContentChild(KbqFormFieldControl) private readonly _control: KbqFormFieldControl<unknown>;\n @ViewChild('connectionContainer') private readonly connectionContainerRef: ElementRef;\n @ContentChild(KbqStepper) private readonly stepper: KbqStepper;\n @ContentChild(KbqCleaner) private readonly cleaner: KbqCleaner | null;\n @ContentChild(KbqLabel) private readonly label: KbqLabel | null;\n @ContentChild(KbqPasswordToggle) private readonly passwordToggle: KbqPasswordToggle | null;\n @ContentChildren(KbqHint) private readonly hint: QueryList<KbqHint>;\n @ContentChildren(KbqPasswordHint) private readonly passwordHint: QueryList<KbqPasswordHint>;\n @ContentChildren(KbqSuffix) private readonly suffix: QueryList<KbqSuffix>;\n @ContentChildren(KbqPrefix) private readonly prefix: QueryList<KbqPrefix>;\n @ContentChildren(KbqError) private readonly error: QueryList<KbqError>;\n\n /**\n * @docs-private\n */\n canCleanerClearByEsc: boolean = true;\n\n /** The form field control. */\n get control() {\n if (!this._control) {\n throw getKbqFormFieldMissingControlError();\n }\n\n return this._control;\n }\n\n /**\n * Whether the form field control is focused.\n *\n * @docs-private\n */\n get focused(): boolean {\n return !!this.control?.focused;\n }\n\n /**\n * Whether the form field is hovered.\n *\n * @docs-private\n */\n get hovered(): boolean {\n return !!this._hovered;\n }\n\n private _hovered: boolean = false;\n\n /** Whether the form field is invalid. */\n get invalid(): boolean {\n return !!this.control?.errorState;\n }\n\n /**\n * Whether the form-field contains kbq-hint.\n *\n * @docs-private\n */\n get hasHint(): boolean {\n return this.hint?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-password-hint.\n *\n * @docs-private\n */\n get hasPasswordHint(): boolean {\n return this.passwordHint?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-password-toggle.\n *\n * @docs-private\n */\n get hasPasswordToggle(): boolean {\n return !!this.passwordToggle;\n }\n\n /**\n * Whether the form-field contains kbq-label.\n *\n * @docs-private\n */\n get hasLabel(): boolean {\n return !!this.label;\n }\n\n /**\n * Whether the form-field contains kbqSuffix.\n *\n * @docs-private\n */\n get hasSuffix(): boolean {\n return this.suffix?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbqPrefix.\n *\n * @docs-private\n */\n get hasPrefix(): boolean {\n return this.prefix?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-cleaner.\n *\n * @docs-private\n */\n get hasCleaner(): boolean {\n return !!this.cleaner;\n }\n\n /**\n * Whether the form-field contains kbq-stepper.\n *\n * @docs-private\n */\n get hasStepper(): boolean {\n return !!this.stepper;\n }\n\n /**\n * Whether the form-field contains kbq-error.\n *\n * @docs-private\n */\n get hasError(): boolean {\n return this.error.length > 0;\n }\n\n /** Whether the form field is disabled. */\n get disabled(): boolean {\n return !!this.control?.disabled;\n }\n\n /**\n * Current focus origin state.\n *\n * @docs-private\n */\n get focusOrigin(): FocusOrigin {\n return this._focusOrigin;\n }\n\n private _focusOrigin: FocusOrigin = null;\n\n constructor() {\n afterNextRender(() => {\n // Should be called after the view has been initialized\n this.changeDetectorRef.detectChanges();\n });\n }\n\n ngAfterContentInit(): void {\n this.initializeControl();\n this.initializePrefixAndSuffix();\n this.initializeHint();\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n }\n\n ngOnDestroy(): void {\n this.stopFocusMonitor();\n }\n\n /** Focuses the control. */\n focus(options?: FocusOptions): void {\n this.control.focus(options);\n }\n\n /**\n * @deprecated Use `focus` instead.\n */\n focusViaKeyboard(options?: FocusOptions): void {\n this.control.focus(options);\n }\n\n /**\n * Runs the focus monitor for the form field.\n *\n * @docs-private\n */\n runFocusMonitor(): void {\n this.focusMonitor.monitor(this.elementRef, true).subscribe((origin) => {\n this._focusOrigin = origin;\n });\n }\n\n /**\n * Stops the focus monitor for the form field.\n *\n * @docs-private\n */\n stopFocusMonitor(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n /** Handles a click on the control's container. */\n protected onContainerClick(event: MouseEvent): void {\n if (this.control.onContainerClick) {\n this.control.onContainerClick(event);\n }\n }\n\n /**\n * Handles keydown events.\n *\n * @docs-private\n */\n protected onKeyDown(event: KeyboardEvent): void {\n // @TODO should move into KbqPasswordToggle (#DS-2910)\n if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {\n (this.control as unknown as { toggleType(): void }).toggleType();\n }\n\n // @TODO should move into KbqCleaner (#DS-2910)\n if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.focused && this.hasCleaner) {\n this.control?.ngControl?.reset();\n event.preventDefault();\n }\n }\n\n /**\n * Handles mouseenter events.\n *\n * @docs-private\n */\n protected mouseenter(_event: MouseEvent): void {\n this._hovered = true;\n }\n\n /**\n * Handles mouseleave events.\n *\n * @docs-private\n */\n protected mouseleave(_event: MouseEvent): void {\n this._hovered = false;\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.connectionContainerRef || this.elementRef;\n }\n\n /**\n * Determines whether a class from the AbstractControlDirective should be forwarded to the host element.\n *\n * @docs-private\n */\n protected shouldBeForwarded(property: keyof AbstractControlDirective): boolean {\n return this.control.ngControl?.[property];\n }\n\n /** Initializes the kbqPrefix and kbqSuffix containers. */\n private initializePrefixAndSuffix(): void {\n // Mark the form field as dirty whenever the prefix or suffix children change. This is necessary because we\n // conditionally display the prefix/suffix containers based on whether there is projected content.\n merge(this.prefix.changes, this.suffix.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /** Initializes the KbqHint, KbqError and KbqPasswordHint containers. */\n private initializeHint(): void {\n merge(this.hint.changes, this.error.changes, this.passwordHint.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /** Initializes the form field control. */\n private initializeControl(): void {\n if (this.control.controlType) {\n this.elementRef.nativeElement.classList.add(`kbq-form-field-type-${this.control.controlType}`);\n }\n\n merge(this.control.stateChanges, this.control.ngControl?.valueChanges || EMPTY)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","@if (hasLabel) {\n <label class=\"kbq-form-field__label\" [attr.for]=\"control.id\">\n <ng-content select=\"kbq-label\" />\n </label>\n}\n\n<div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__control\">\n <ng-content />\n </div>\n\n @if (hasSuffix || hasCleaner || hasPasswordToggle || hasStepper) {\n <div class=\"kbq-form-field__suffix\">\n <ng-content select=\"kbq-cleaner\" />\n\n <ng-content select=\"kbq-password-toggle\" />\n\n <ng-content select=\"kbq-stepper\" />\n\n <ng-content select=\"[kbqSuffix]\" />\n </div>\n }\n</div>\n\n@if (hasHint || hasPasswordHint || hasError) {\n <div class=\"kbq-form-field__hint\">\n @if (invalid) {\n <ng-content select=\"kbq-error\" />\n }\n\n <ng-content select=\"kbq-hint, kbq-password-hint\" />\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { KbqCleaner } from './cleaner';\nimport { KbqFormField } from './form-field';\nimport { KbqError, KbqHint, KbqPasswordHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\nconst COMPONENTS = [\n KbqFormField,\n KbqHint,\n KbqError,\n KbqPrefix,\n KbqSuffix,\n KbqCleaner,\n KbqStepper,\n KbqPasswordToggle,\n KbqLabel,\n KbqPasswordHint\n];\n\n/**\n * @deprecated Will be removed in the next major release.\n * Module functionality has been moved to the original package (`@koobiq/components/form-field`).\n */\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId"],"mappings":"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"}
@@ -1,93 +0,0 @@
1
- @use '../../components/core/styles/common/tokens';
2
-
3
- @mixin kbq-form-field-state($state-name) {
4
- .kbq-form-field__container {
5
- border-color: var(--kbq-form-field-#{$state-name}-border-color);
6
- background-color: var(--kbq-form-field-#{$state-name}-background);
7
- }
8
-
9
- .kbq-input,
10
- .kbq-tag-input,
11
- .kbq-textarea {
12
- color: var(--kbq-form-field-#{$state-name}-text);
13
-
14
- &::placeholder {
15
- color: var(--kbq-form-field-#{$state-name}-placeholder);
16
- }
17
-
18
- &::-ms-input-placeholder {
19
- color: var(--kbq-form-field-#{$state-name}-placeholder);
20
- }
21
-
22
- &::-webkit-input-placeholder {
23
- color: var(--kbq-form-field-#{$state-name}-placeholder);
24
- }
25
- }
26
- }
27
-
28
- @mixin kbq-form-field-theme() {
29
- .kbq-form-field___EXPERIMENTAL {
30
- @include kbq-form-field-state(default);
31
-
32
- & .kbq-input {
33
- &:-webkit-autofill,
34
- &:-webkit-autofill:hover,
35
- &:-webkit-autofill:focus {
36
- -webkit-box-shadow: inset 0 0 0 40rem var(--kbq-form-field-states-autofill-background);
37
- -webkit-text-fill-color: var(--kbq-form-field-states-autofill-text);
38
- caret-color: var(--kbq-form-field-states-autofill-text);
39
- }
40
- }
41
-
42
- &.cdk-focused:not(.kbq-form-field-type-select),
43
- &.cdk-keyboard-focused.kbq-form-field-type-select {
44
- @include kbq-form-field-state(states-focused);
45
-
46
- .kbq-form-field__container {
47
- box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-focused-focus-outline);
48
- }
49
-
50
- &.kbq-form-field_invalid {
51
- @include kbq-form-field-state(states-error);
52
-
53
- .kbq-form-field__container {
54
- box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
55
- }
56
- }
57
- }
58
-
59
- &.kbq-form-field_invalid {
60
- @include kbq-form-field-state(states-error);
61
- }
62
-
63
- &.kbq-form-field_disabled {
64
- @include kbq-form-field-state(states-disabled);
65
-
66
- .kbq-icon.kbq-empty {
67
- color: var(--kbq-form-field-states-disabled-text);
68
- -webkit-text-fill-color: var(--kbq-form-field-states-disabled-text);
69
- }
70
- }
71
-
72
- .kbq-hint___EXPERIMENTAL {
73
- color: var(--kbq-form-field-hint-text);
74
- }
75
-
76
- .kbq-form-field__prefix,
77
- .kbq-form-field__suffix {
78
- .kbq-icon.kbq-empty {
79
- color: var(--kbq-icon-contrast-fade);
80
- }
81
- }
82
- }
83
- }
84
-
85
- @mixin kbq-form-field-typography() {
86
- .kbq-form-field___EXPERIMENTAL {
87
- @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
88
-
89
- .kbq-hint___EXPERIMENTAL:not(.kbq-password-hint___EXPERIMENTAL) .kbq-hint__text {
90
- @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
91
- }
92
- }
93
- }
@@ -1,59 +0,0 @@
1
- @use '../../components/core/styles/common/tokens';
2
-
3
- @mixin kbq-hint-color($type, $style-name) {
4
- color: var(--kbq-hint-#{$type}-#{$style-name}-text);
5
-
6
- & .kbq-icon.kbq-empty {
7
- color: var(--kbq-hint-#{$type}-#{$style-name}-icon);
8
- }
9
- }
10
-
11
- @mixin kbq-hint-theme() {
12
- .kbq-hint___EXPERIMENTAL {
13
- &.kbq-contrast-fade {
14
- @include kbq-hint-color(fill-text-on, fade-contrast);
15
- }
16
-
17
- &.kbq-success {
18
- @include kbq-hint-color(fill-text-on, success);
19
- }
20
-
21
- &.kbq-warning {
22
- @include kbq-hint-color(fill-text-on, warning);
23
- }
24
-
25
- &.kbq-error {
26
- @include kbq-hint-color(fill-text-on, error);
27
- }
28
-
29
- &.kbq-hint_fill-text-off {
30
- &.kbq-contrast-fade {
31
- @include kbq-hint-color(fill-text-off, fade-contrast);
32
- }
33
-
34
- &.kbq-success {
35
- @include kbq-hint-color(fill-text-off, success);
36
- }
37
-
38
- &.kbq-warning {
39
- @include kbq-hint-color(fill-text-off, warning);
40
- }
41
-
42
- &.kbq-error {
43
- @include kbq-hint-color(fill-text-off, error);
44
- }
45
- }
46
- }
47
- }
48
-
49
- @mixin kbq-hint-typography() {
50
- .kbq-hint___EXPERIMENTAL {
51
- .kbq-hint__text {
52
- @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
53
- }
54
-
55
- &.kbq-hint_compact .kbq-hint__text {
56
- @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
57
- }
58
- }
59
- }
@@ -1,14 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- /**
3
- * KbqCleaner to be placed in end of the form field.
4
- * Resets form control by click.
5
- */
6
- export declare class KbqCleaner {
7
- private readonly formField;
8
- /** Whether to display the cleaner. */
9
- get visible(): boolean;
10
- /** Clean the form field control. */
11
- protected clean(event: MouseEvent): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqCleaner, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqCleaner, "kbq-cleaner", ["kbqCleaner"], {}, {}, never, never, true, never>;
14
- }
@@ -1,5 +0,0 @@
1
- .kbq-cleaner___EXPERIMENTAL {
2
- display: flex;
3
- align-items: center;
4
- justify-content: center;
5
- }
@@ -1,44 +0,0 @@
1
- .kbq-form-field___EXPERIMENTAL {
2
- --kbq-form-field-size-height: var(--kbq-size-3xl);
3
- --kbq-form-field-size-border-width: 1px;
4
- --kbq-form-field-size-border-radius: var(--kbq-size-border-radius);
5
- --kbq-form-field-size-icon-size: var(--kbq-size-l);
6
- --kbq-form-field-size-icon-margin-left: var(--kbq-size-s);
7
- --kbq-form-field-size-icon-margin-right: var(--kbq-size-s);
8
- --kbq-form-field-size-icon-button-size: var(--kbq-size-xxl);
9
- --kbq-form-field-size-icon-button-margin-left: var(--kbq-size-xxs);
10
- --kbq-form-field-hint-size-margin-top: var(--kbq-size-m);
11
- --kbq-form-field-hint-size-gap: var(--kbq-size-s);
12
- --kbq-form-field-size-container-left-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
13
- --kbq-form-field-size-container-right-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
14
- --kbq-form-field-size-infix-left-padding: var(--kbq-size-xs);
15
- --kbq-form-field-size-infix-right-padding: var(--kbq-size-xxs);
16
- /* THEME TOKENS */
17
- --kbq-form-field-default-border-color: var(--kbq-line-contrast-fade);
18
- --kbq-form-field-default-background: var(--kbq-background-bg);
19
- --kbq-form-field-default-placeholder: var(--kbq-foreground-contrast-tertiary);
20
- --kbq-form-field-default-text: var(--kbq-foreground-contrast);
21
- --kbq-form-field-states-focused-border-color: var(--kbq-states-line-focus-theme);
22
- --kbq-form-field-states-focused-background: var(--kbq-background-bg);
23
- --kbq-form-field-states-focused-placeholder: var(--kbq-foreground-contrast-tertiary);
24
- --kbq-form-field-states-focused-text: var(--kbq-foreground-contrast);
25
- --kbq-form-field-states-focused-focus-outline: var(--kbq-states-line-focus-theme);
26
- --kbq-form-field-states-error-border-color: var(--kbq-line-error);
27
- --kbq-form-field-states-error-background: var(--kbq-background-error-less);
28
- --kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-tertiary);
29
- --kbq-form-field-states-error-text: var(--kbq-foreground-error);
30
- --kbq-form-field-states-error-focused-focus-outline: var(--kbq-states-line-focus-error);
31
- --kbq-form-field-states-autofill-border-color: var(--kbq-states-line-focus-theme);
32
- --kbq-form-field-states-autofill-background: var(--kbq-background-theme-less);
33
- --kbq-form-field-states-autofill-placeholder: var(--kbq-foreground-contrast-tertiary);
34
- --kbq-form-field-states-autofill-text: var(--kbq-foreground-contrast);
35
- --kbq-form-field-states-disabled-border-color: var(--kbq-states-line-disabled);
36
- --kbq-form-field-states-disabled-background: var(--kbq-states-background-disabled);
37
- --kbq-form-field-states-disabled-placeholder: var(--kbq-states-foreground-disabled);
38
- --kbq-form-field-states-disabled-text: var(--kbq-states-foreground-disabled);
39
- --kbq-form-field-hint-text: var(--kbq-foreground-contrast-secondary);
40
- }
41
-
42
- :where(.kbq-dark) {
43
- --kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-secondary);
44
- }
@@ -1,187 +0,0 @@
1
- import { FocusOrigin } from '@angular/cdk/a11y';
2
- import { AfterContentInit, AfterViewInit, ElementRef, InjectionToken, OnDestroy, Provider } from '@angular/core';
3
- import { AbstractControlDirective } from '@angular/forms';
4
- import { KbqFormFieldControl } from '@koobiq/components/form-field';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Default options for the kbq-form-field that can be configured using the `KBQ_FORM_FIELD_DEFAULT_OPTIONS` injection token.
8
- */
9
- export type KbqFormFieldDefaultOptions = Partial<{
10
- /** Disables form field borders and shadows. */
11
- noBorders: boolean;
12
- }>;
13
- /** Injection token that can be used to configure the default options for all kbq-form-field's. */
14
- export declare const KBQ_FORM_FIELD_DEFAULT_OPTIONS: InjectionToken<Partial<{
15
- /** Disables form field borders and shadows. */
16
- noBorders: boolean;
17
- }>>;
18
- /** Utility provider for `KBQ_FORM_FIELD_DEFAULT_OPTIONS`. */
19
- export declare const kbqFormFieldDefaultOptionsProvider: (options: KbqFormFieldDefaultOptions) => Provider;
20
- /** @docs-private */
21
- export declare const getKbqFormFieldMissingControlError: () => Error;
22
- /** Container for form controls that applies styling and behavior. */
23
- export declare class KbqFormField implements AfterContentInit, AfterViewInit, OnDestroy {
24
- private readonly changeDetectorRef;
25
- private readonly destroyRef;
26
- private readonly elementRef;
27
- private readonly defaultOptions;
28
- private readonly focusMonitor;
29
- /** Disables form field borders and shadows. */
30
- noBorders: boolean | undefined;
31
- private readonly _control;
32
- private readonly connectionContainerRef;
33
- private readonly stepper;
34
- private readonly cleaner;
35
- private readonly label;
36
- private readonly passwordToggle;
37
- private readonly hint;
38
- private readonly passwordHint;
39
- private readonly suffix;
40
- private readonly prefix;
41
- private readonly error;
42
- /**
43
- * @docs-private
44
- */
45
- canCleanerClearByEsc: boolean;
46
- /** The form field control. */
47
- get control(): KbqFormFieldControl<unknown>;
48
- /**
49
- * Whether the form field control is focused.
50
- *
51
- * @docs-private
52
- */
53
- get focused(): boolean;
54
- /**
55
- * Whether the form field is hovered.
56
- *
57
- * @docs-private
58
- */
59
- get hovered(): boolean;
60
- private _hovered;
61
- /** Whether the form field is invalid. */
62
- get invalid(): boolean;
63
- /**
64
- * Whether the form-field contains kbq-hint.
65
- *
66
- * @docs-private
67
- */
68
- get hasHint(): boolean;
69
- /**
70
- * Whether the form-field contains kbq-password-hint.
71
- *
72
- * @docs-private
73
- */
74
- get hasPasswordHint(): boolean;
75
- /**
76
- * Whether the form-field contains kbq-password-toggle.
77
- *
78
- * @docs-private
79
- */
80
- get hasPasswordToggle(): boolean;
81
- /**
82
- * Whether the form-field contains kbq-label.
83
- *
84
- * @docs-private
85
- */
86
- get hasLabel(): boolean;
87
- /**
88
- * Whether the form-field contains kbqSuffix.
89
- *
90
- * @docs-private
91
- */
92
- get hasSuffix(): boolean;
93
- /**
94
- * Whether the form-field contains kbqPrefix.
95
- *
96
- * @docs-private
97
- */
98
- get hasPrefix(): boolean;
99
- /**
100
- * Whether the form-field contains kbq-cleaner.
101
- *
102
- * @docs-private
103
- */
104
- get hasCleaner(): boolean;
105
- /**
106
- * Whether the form-field contains kbq-stepper.
107
- *
108
- * @docs-private
109
- */
110
- get hasStepper(): boolean;
111
- /**
112
- * Whether the form-field contains kbq-error.
113
- *
114
- * @docs-private
115
- */
116
- get hasError(): boolean;
117
- /** Whether the form field is disabled. */
118
- get disabled(): boolean;
119
- /**
120
- * Current focus origin state.
121
- *
122
- * @docs-private
123
- */
124
- get focusOrigin(): FocusOrigin;
125
- private _focusOrigin;
126
- constructor();
127
- ngAfterContentInit(): void;
128
- ngAfterViewInit(): void;
129
- ngOnDestroy(): void;
130
- /** Focuses the control. */
131
- focus(options?: FocusOptions): void;
132
- /**
133
- * @deprecated Use `focus` instead.
134
- */
135
- focusViaKeyboard(options?: FocusOptions): void;
136
- /**
137
- * Runs the focus monitor for the form field.
138
- *
139
- * @docs-private
140
- */
141
- runFocusMonitor(): void;
142
- /**
143
- * Stops the focus monitor for the form field.
144
- *
145
- * @docs-private
146
- */
147
- stopFocusMonitor(): void;
148
- /** Handles a click on the control's container. */
149
- protected onContainerClick(event: MouseEvent): void;
150
- /**
151
- * Handles keydown events.
152
- *
153
- * @docs-private
154
- */
155
- protected onKeyDown(event: KeyboardEvent): void;
156
- /**
157
- * Handles mouseenter events.
158
- *
159
- * @docs-private
160
- */
161
- protected mouseenter(_event: MouseEvent): void;
162
- /**
163
- * Handles mouseleave events.
164
- *
165
- * @docs-private
166
- */
167
- protected mouseleave(_event: MouseEvent): void;
168
- /**
169
- * Gets an ElementRef for the element that a overlay attached to the form-field should be positioned relative to.
170
- */
171
- getConnectedOverlayOrigin(): ElementRef;
172
- /**
173
- * Determines whether a class from the AbstractControlDirective should be forwarded to the host element.
174
- *
175
- * @docs-private
176
- */
177
- protected shouldBeForwarded(property: keyof AbstractControlDirective): boolean;
178
- /** Initializes the kbqPrefix and kbqSuffix containers. */
179
- private initializePrefixAndSuffix;
180
- /** Initializes the KbqHint, KbqError and KbqPasswordHint containers. */
181
- private initializeHint;
182
- /** Initializes the form field control. */
183
- private initializeControl;
184
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqFormField, never>;
185
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqFormField, "kbq-form-field", ["kbqFormField"], { "noBorders": { "alias": "noBorders"; "required": false; }; }, {}, ["_control", "stepper", "cleaner", "label", "passwordToggle", "hint", "passwordHint", "suffix", "prefix", "error"], ["kbq-label", "[kbqPrefix]", "*", "kbq-cleaner", "kbq-password-toggle", "kbq-stepper", "[kbqSuffix]", "kbq-error", "kbq-hint, kbq-password-hint"], true, never>;
186
- static ngAcceptInputType_noBorders: unknown;
187
- }
@@ -1,18 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./form-field";
3
- import * as i2 from "./hint";
4
- import * as i3 from "./prefix";
5
- import * as i4 from "./suffix";
6
- import * as i5 from "./cleaner";
7
- import * as i6 from "./stepper";
8
- import * as i7 from "./password-toggle";
9
- import * as i8 from "./label";
10
- /**
11
- * @deprecated Will be removed in the next major release.
12
- * Module functionality has been moved to the original package (`@koobiq/components/form-field`).
13
- */
14
- export declare class KbqFormFieldModule {
15
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqFormFieldModule, never>;
16
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqFormFieldModule, never, [typeof i1.KbqFormField, typeof i2.KbqHint, typeof i2.KbqError, typeof i3.KbqPrefix, typeof i4.KbqSuffix, typeof i5.KbqCleaner, typeof i6.KbqStepper, typeof i7.KbqPasswordToggle, typeof i8.KbqLabel, typeof i2.KbqPasswordHint], [typeof i1.KbqFormField, typeof i2.KbqHint, typeof i2.KbqError, typeof i3.KbqPrefix, typeof i4.KbqSuffix, typeof i5.KbqCleaner, typeof i6.KbqStepper, typeof i7.KbqPasswordToggle, typeof i8.KbqLabel, typeof i2.KbqPasswordHint]>;
17
- static ɵinj: i0.ɵɵInjectorDeclaration<KbqFormFieldModule>;
18
- }
@@ -1,89 +0,0 @@
1
- @use './form-field-theme' as theme;
2
-
3
- .kbq-form-field___EXPERIMENTAL {
4
- display: inline-block;
5
- width: 100%;
6
-
7
- .kbq-form-field__container {
8
- box-sizing: border-box;
9
- display: flex;
10
- justify-content: space-between;
11
- align-items: center;
12
- border-width: var(--kbq-form-field-size-border-width);
13
- border-style: solid;
14
- border-color: transparent;
15
- border-radius: var(--kbq-form-field-size-border-radius);
16
-
17
- padding-left: var(--kbq-form-field-size-container-left-padding);
18
- padding-right: var(--kbq-form-field-size-container-right-padding);
19
- }
20
-
21
- .kbq-form-field:not(.kbq-form-field-type-textarea) {
22
- height: var(--kbq-form-field-size-height);
23
- }
24
-
25
- &,
26
- .kbq-input,
27
- .kbq-textarea {
28
- border-radius: var(--kbq-form-field-size-border-radius);
29
- }
30
-
31
- &.kbq-form-field_no-borders .kbq-form-field__container {
32
- border-color: transparent !important;
33
- box-shadow: none !important;
34
- }
35
-
36
- .kbq-form-field__control {
37
- width: 100%;
38
- flex-grow: 1;
39
-
40
- padding-left: var(--kbq-form-field-size-infix-left-padding);
41
-
42
- &:has(.kbq-select_multiple, .kbq-select_multiline):not(:has(.kbq-select__trigger_empty)),
43
- &:has(.kbq-tag-list) {
44
- padding-left: 0;
45
-
46
- max-width: 100%;
47
- }
48
-
49
- & .kbq-input,
50
- & .kbq-tag-input {
51
- padding-right: var(--kbq-form-field-size-infix-right-padding);
52
- }
53
- }
54
-
55
- .kbq-form-field__label {
56
- display: flex;
57
- margin-bottom: var(--kbq-size-s);
58
- }
59
-
60
- .kbq-form-field__prefix,
61
- .kbq-form-field__suffix {
62
- display: flex;
63
- justify-content: center;
64
- align-items: center;
65
- gap: var(--kbq-size-xxs);
66
- }
67
-
68
- .kbq-form-field__prefix {
69
- margin-left: var(--kbq-size-s);
70
- }
71
-
72
- .kbq-form-field__suffix {
73
- margin-right: var(--kbq-size-s);
74
-
75
- &:has(> .kbq-stepper___EXPERIMENTAL) {
76
- margin-right: 0;
77
- }
78
- }
79
-
80
- .kbq-form-field__hint {
81
- display: flex;
82
- flex-direction: column;
83
- margin-top: var(--kbq-form-field-hint-size-margin-top);
84
- gap: var(--kbq-size-xxs);
85
- }
86
- }
87
-
88
- @include theme.kbq-form-field-theme();
89
- @include theme.kbq-form-field-typography();
@@ -1,23 +0,0 @@
1
- .kbq-hint___EXPERIMENTAL {
2
- --kbq-hint-size-normal-margin-top: var(--kbq-size-3xs);
3
- --kbq-hint-size-normal-content-padding: var(--kbq-size-xxs);
4
- --kbq-hint-size-compact-margin-top: 0;
5
- --kbq-hint-size-compact-content-padding: var(--kbq-size-xxs);
6
- /* THEME TOKENS */
7
- --kbq-hint-fill-text-off-fade-contrast-text: var(--kbq-foreground-contrast);
8
- --kbq-hint-fill-text-off-fade-contrast-icon: var(--kbq-icon-contrast-fade);
9
- --kbq-hint-fill-text-off-success-text: var(--kbq-foreground-contrast);
10
- --kbq-hint-fill-text-off-success-icon: var(--kbq-icon-success);
11
- --kbq-hint-fill-text-off-warning-text: var(--kbq-foreground-contrast);
12
- --kbq-hint-fill-text-off-warning-icon: var(--kbq-icon-warning);
13
- --kbq-hint-fill-text-off-error-text: var(--kbq-foreground-contrast);
14
- --kbq-hint-fill-text-off-error-icon: var(--kbq-icon-error);
15
- --kbq-hint-fill-text-on-fade-contrast-text: var(--kbq-foreground-contrast);
16
- --kbq-hint-fill-text-on-fade-contrast-icon: var(--kbq-icon-contrast-fade);
17
- --kbq-hint-fill-text-on-success-text: var(--kbq-foreground-success);
18
- --kbq-hint-fill-text-on-success-icon: var(--kbq-icon-success);
19
- --kbq-hint-fill-text-on-warning-text: var(--kbq-foreground-warning);
20
- --kbq-hint-fill-text-on-warning-icon: var(--kbq-icon-warning);
21
- --kbq-hint-fill-text-on-error-text: var(--kbq-foreground-error);
22
- --kbq-hint-fill-text-on-error-icon: var(--kbq-icon-error);
23
- }