@crowdfarming/oliva-ds 1.73.0-rc.2 → 1.73.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.
@@ -8,7 +8,6 @@ import { RouterModule, RouterLink, Router, NavigationStart } from '@angular/rout
8
8
  import * as i1$3 from '@angular/forms';
9
9
  import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormControl, FormsModule } from '@angular/forms';
10
10
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
- import { map, distinctUntilChanged } from 'rxjs/operators';
12
11
  import { filter } from 'rxjs';
13
12
  import { ComponentPortal } from '@angular/cdk/portal';
14
13
  import * as i1$4 from '@angular/cdk/overlay';
@@ -4511,7 +4510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
4511
4510
  type: Output
4512
4511
  }] } });
4513
4512
 
4514
- class InputCounterComponent {
4513
+ class InputNumberComponent {
4515
4514
  initialValue = input(undefined);
4516
4515
  label = '';
4517
4516
  placeholder = '';
@@ -4618,18 +4617,18 @@ class InputCounterComponent {
4618
4617
  onBlur() {
4619
4618
  this.onTouchedFn();
4620
4619
  }
4621
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: InputCounterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4622
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.7", type: InputCounterComponent, isStandalone: true, selector: "lib-input-counter", inputs: { initialValue: { classPropertyName: "initialValue", publicName: "initialValue", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, helperText: { classPropertyName: "helperText", publicName: "helperText", isSignal: false, isRequired: false, transformFunction: null }, alertText: { classPropertyName: "alertText", publicName: "alertText", isSignal: false, isRequired: false, transformFunction: null }, successText: { classPropertyName: "successText", publicName: "successText", isSignal: false, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: false, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, optionalLabel: { classPropertyName: "optionalLabel", publicName: "optionalLabel", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: false, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: false, isRequired: false, transformFunction: null }, minimum: { classPropertyName: "minimum", publicName: "minimum", isSignal: false, isRequired: false, transformFunction: null }, maximum: { classPropertyName: "maximum", publicName: "maximum", isSignal: false, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { emitValue: "emitValue" }, providers: [
4620
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: InputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4621
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.7", type: InputNumberComponent, isStandalone: true, selector: "lib-input-number", inputs: { initialValue: { classPropertyName: "initialValue", publicName: "initialValue", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, helperText: { classPropertyName: "helperText", publicName: "helperText", isSignal: false, isRequired: false, transformFunction: null }, alertText: { classPropertyName: "alertText", publicName: "alertText", isSignal: false, isRequired: false, transformFunction: null }, successText: { classPropertyName: "successText", publicName: "successText", isSignal: false, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: false, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, optionalLabel: { classPropertyName: "optionalLabel", publicName: "optionalLabel", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: false, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: false, isRequired: false, transformFunction: null }, minimum: { classPropertyName: "minimum", publicName: "minimum", isSignal: false, isRequired: false, transformFunction: null }, maximum: { classPropertyName: "maximum", publicName: "maximum", isSignal: false, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { emitValue: "emitValue" }, providers: [
4623
4622
  {
4624
4623
  provide: NG_VALUE_ACCESSOR,
4625
- useExisting: forwardRef(() => InputCounterComponent),
4624
+ useExisting: forwardRef(() => InputNumberComponent),
4626
4625
  multi: true,
4627
4626
  },
4628
4627
  ], ngImport: i0, template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <div\n class=\"c-text-input__wrapper\"\n [class.c-text-input__wrapper--right]=\"variant === 'right'\"\n >\n <input\n type=\"number\"\n [value]=\"isLoading ? '' : value()\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [class]=\"inputClass.join(' ')\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [required]=\"required\"\n aria-label=\"number\"\n (input)=\"onType($event)\"\n (blur)=\"onBlur()\"\n />\n <lib-button-icon\n ariaLabel=\"menos\"\n [disabled]=\"disabled || readonly || isAtMinimum() || isLoading\"\n [loading]=\"false\"\n variant=\"neutral\"\n size=\"sm\"\n class=\"c-text-input__less\"\n iconName=\"minus-regular\"\n (click)=\"downNumber()\"\n >\n </lib-button-icon>\n <lib-button-icon\n ariaLabel=\"m\u00E1s\"\n [disabled]=\"disabled || readonly || isAtMaximum() || isLoading\"\n [loading]=\"false\"\n variant=\"neutral\"\n size=\"sm\"\n class=\"c-text-input__up\"\n iconName=\"plus-regular\"\n (click)=\"upNumber()\"\n >\n </lib-button-icon>\n </div>\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"search-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n</div>\n", styles: [".c-text-input{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-component-gap-sm);max-width:300px}.c-text-input--full-width{max-width:100%}.c-text-input__input{--input-padding-y: var(--space-component-padding-md);--input-padding-x: 2rem;width:100%;height:48px;box-sizing:border-box;border-radius:var(--size-textfield-border-radius);border:var(--size-textfield-border-width) solid var(--color-textfield-border-default);background:var(--color-textfield-background-default);padding:var(--input-padding-y) var(--input-padding-x);align-items:center;gap:var(--space-component-gap-sm);align-self:stretch;color:var(--color-textfield-content-default);font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing);text-align:center}.c-text-input__input:focus-visible{border-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: 2rem}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: 2rem}.c-text-input__input.is-error{border-color:var(--color-textfield-border-error)}.c-text-input__input.is-success{border-color:var(--color-feedback-success-strong)}.c-text-input__input.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-text-input__input.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-text-input__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.c-text-input__alert{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-danger-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__success{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-success-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper{color:var(--color-core-content-soft);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper.is-error{color:var(--color-textfield-helper-error)}.c-text-input__helper.is-success{color:var(--color-textfield-helper-success)}.c-text-input__helper.is-default{color:var(--color-textfield-helper-default)}.c-text-input__up{position:absolute;top:50%;right:var(--space-component-padding-sm);transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.c-text-input__less{position:absolute;top:50%;left:var(--space-component-padding-sm);transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.c-text-input__wrapper{display:flex;position:relative;width:100%}.c-text-input__wrapper--right .c-text-input__input{text-align:left}.c-text-input__wrapper--right .c-text-input__less{position:absolute;top:50%;right:calc(2rem + var(--space-component-padding-sm));transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;left:initial}.c-text-input__wrapper--right .c-text-input__up{position:absolute;top:50%;right:var(--space-component-padding-sm);transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML", "isLoading", "textOptional"] }, { kind: "component", type: ButtonIconComponent, selector: "lib-button-icon", inputs: ["ariaLabel", "variant", "size", "iconName", "disabled", "loading", "skeletonActive"], outputs: ["clicked"] }, { kind: "component", type: HelperTextComponent, selector: "lib-helper-text", inputs: ["variant", "text", "extraClass", "disabled", "isLoading"] }] });
4629
4628
  }
4630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: InputCounterComponent, decorators: [{
4629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: InputNumberComponent, decorators: [{
4631
4630
  type: Component,
4632
- args: [{ selector: 'lib-input-counter', standalone: true, imports: [
4631
+ args: [{ selector: 'lib-input-number', standalone: true, imports: [
4633
4632
  CommonModule,
4634
4633
  ReactiveFormsModule,
4635
4634
  InputLabelComponent,
@@ -4638,7 +4637,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
4638
4637
  ], providers: [
4639
4638
  {
4640
4639
  provide: NG_VALUE_ACCESSOR,
4641
- useExisting: forwardRef(() => InputCounterComponent),
4640
+ useExisting: forwardRef(() => InputNumberComponent),
4642
4641
  multi: true,
4643
4642
  },
4644
4643
  ], template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <div\n class=\"c-text-input__wrapper\"\n [class.c-text-input__wrapper--right]=\"variant === 'right'\"\n >\n <input\n type=\"number\"\n [value]=\"isLoading ? '' : value()\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [class]=\"inputClass.join(' ')\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [required]=\"required\"\n aria-label=\"number\"\n (input)=\"onType($event)\"\n (blur)=\"onBlur()\"\n />\n <lib-button-icon\n ariaLabel=\"menos\"\n [disabled]=\"disabled || readonly || isAtMinimum() || isLoading\"\n [loading]=\"false\"\n variant=\"neutral\"\n size=\"sm\"\n class=\"c-text-input__less\"\n iconName=\"minus-regular\"\n (click)=\"downNumber()\"\n >\n </lib-button-icon>\n <lib-button-icon\n ariaLabel=\"m\u00E1s\"\n [disabled]=\"disabled || readonly || isAtMaximum() || isLoading\"\n [loading]=\"false\"\n variant=\"neutral\"\n size=\"sm\"\n class=\"c-text-input__up\"\n iconName=\"plus-regular\"\n (click)=\"upNumber()\"\n >\n </lib-button-icon>\n </div>\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"search-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n</div>\n", styles: [".c-text-input{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-component-gap-sm);max-width:300px}.c-text-input--full-width{max-width:100%}.c-text-input__input{--input-padding-y: var(--space-component-padding-md);--input-padding-x: 2rem;width:100%;height:48px;box-sizing:border-box;border-radius:var(--size-textfield-border-radius);border:var(--size-textfield-border-width) solid var(--color-textfield-border-default);background:var(--color-textfield-background-default);padding:var(--input-padding-y) var(--input-padding-x);align-items:center;gap:var(--space-component-gap-sm);align-self:stretch;color:var(--color-textfield-content-default);font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing);text-align:center}.c-text-input__input:focus-visible{border-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: 2rem}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: 2rem}.c-text-input__input.is-error{border-color:var(--color-textfield-border-error)}.c-text-input__input.is-success{border-color:var(--color-feedback-success-strong)}.c-text-input__input.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-text-input__input.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-text-input__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.c-text-input__alert{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-danger-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__success{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-success-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper{color:var(--color-core-content-soft);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper.is-error{color:var(--color-textfield-helper-error)}.c-text-input__helper.is-success{color:var(--color-textfield-helper-success)}.c-text-input__helper.is-default{color:var(--color-textfield-helper-default)}.c-text-input__up{position:absolute;top:50%;right:var(--space-component-padding-sm);transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.c-text-input__less{position:absolute;top:50%;left:var(--space-component-padding-sm);transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.c-text-input__wrapper{display:flex;position:relative;width:100%}.c-text-input__wrapper--right .c-text-input__input{text-align:left}.c-text-input__wrapper--right .c-text-input__less{position:absolute;top:50%;right:calc(2rem + var(--space-component-padding-sm));transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;left:initial}.c-text-input__wrapper--right .c-text-input__up{position:absolute;top:50%;right:var(--space-component-padding-sm);transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"] }]
@@ -4682,292 +4681,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
4682
4681
  type: Output
4683
4682
  }] } });
4684
4683
 
4685
- class TextInputComponent {
4686
- label = '';
4687
- name = '';
4688
- placeholder = '';
4689
- helperText = '';
4690
- error = false;
4691
- success = false;
4692
- successText = '';
4693
- alertText = '';
4694
- disabled = false;
4695
- readonly = false;
4696
- required = false;
4697
- optionalLabel = '';
4698
- isLoading = false;
4699
- type = 'text';
4700
- inputmode;
4701
- step;
4702
- size = 'md';
4703
- fullWidth = false;
4704
- autocomplete = 'off';
4705
- regex;
4706
- emitValue = new EventEmitter();
4707
- _value = '';
4708
- onChangeFn = () => { };
4709
- onTouchedFn = () => { };
4710
- isFullPattern() {
4711
- return (!!this.regex &&
4712
- this.regex.startsWith('^') &&
4713
- this.regex.endsWith('$'));
4714
- }
4715
- testRegex(value) {
4716
- if (!this.regex)
4717
- return true;
4718
- return new RegExp(this.regex).test(value);
4719
- }
4720
- writeValue(value) {
4721
- this._value = value ?? '';
4722
- }
4723
- registerOnChange(fn) {
4724
- this.onChangeFn = fn;
4725
- }
4726
- registerOnTouched(fn) {
4727
- this.onTouchedFn = fn;
4728
- }
4729
- setDisabledState(isDisabled) {
4730
- this.disabled = isDisabled;
4731
- }
4732
- get inputClass() {
4733
- return [
4734
- 'c-text-input__input',
4735
- `c-text-input__input--${this.size}`,
4736
- this.error ? 'is-error' : this.success ? 'is-success' : 'is-default',
4737
- this.disabled ? 'is-disabled' : '',
4738
- this.readonly ? 'is-readonly' : '',
4739
- this.isLoading ? 'is-loading' : '',
4740
- ].filter(Boolean);
4741
- }
4742
- get ariaDescribedBy() {
4743
- return this.helperText ? 'text-input-helper' : null;
4744
- }
4745
- // Blocks chars (no visual feedback), input sanitizes as fallback
4746
- onBeforeInput(event) {
4747
- if (!this.regex || !event.data)
4748
- return;
4749
- // For full string patterns, validate the entire resulting value
4750
- if (this.isFullPattern()) {
4751
- const input = event.target;
4752
- const start = input.selectionStart ?? 0;
4753
- const end = input.selectionEnd ?? 0;
4754
- const newValue = input.value.slice(0, start) + event.data + input.value.slice(end);
4755
- if (!this.testRegex(newValue)) {
4756
- event.preventDefault();
4757
- }
4758
- }
4759
- else {
4760
- // For char patterns, block invalid characters
4761
- if (!this.testRegex(event.data)) {
4762
- event.preventDefault();
4763
- }
4764
- }
4765
- }
4766
- onInput(event) {
4767
- const input = event.target;
4768
- // Sanitize if regex exists
4769
- if (this.regex) {
4770
- const sanitized = this.isFullPattern()
4771
- ? this.testRegex(input.value)
4772
- ? input.value
4773
- : this._value
4774
- : this.sanitizeValue(input.value);
4775
- if (sanitized !== input.value) {
4776
- input.value = sanitized;
4777
- }
4778
- this._value = sanitized;
4779
- }
4780
- else {
4781
- this._value = input.value;
4782
- }
4783
- this.onChangeFn(this._value);
4784
- this.emitValue.emit(this._value);
4785
- }
4786
- sanitizeValue(value) {
4787
- if (!this.regex)
4788
- return value;
4789
- return [...value].filter((char) => this.testRegex(char)).join('');
4790
- }
4791
- onBlur() {
4792
- this.onTouchedFn();
4793
- }
4794
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4795
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TextInputComponent, isStandalone: true, selector: "lib-text-input", inputs: { label: "label", name: "name", placeholder: "placeholder", helperText: "helperText", error: "error", success: "success", successText: "successText", alertText: "alertText", disabled: "disabled", readonly: "readonly", required: "required", optionalLabel: "optionalLabel", isLoading: "isLoading", type: "type", inputmode: "inputmode", step: "step", size: "size", fullWidth: "fullWidth", autocomplete: "autocomplete", regex: "regex" }, outputs: { emitValue: "emitValue" }, providers: [
4796
- {
4797
- provide: NG_VALUE_ACCESSOR,
4798
- useExisting: forwardRef(() => TextInputComponent),
4799
- multi: true,
4800
- },
4801
- ], ngImport: i0, template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <input\n [attr.autocomplete]=\"autocomplete\"\n [id]=\"name\"\n [name]=\"name\"\n [type]=\"type\"\n [attr.inputmode]=\"inputmode\"\n [attr.step]=\"step\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [value]=\"isLoading ? '' : _value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"name\"\n [attr.aria-labelledby]=\"name\"\n (beforeinput)=\"onBeforeInput($event)\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"text-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n</div>\n", styles: [".c-text-input{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-component-gap-sm);max-width:300px}.c-text-input--full-width{max-width:100%}.c-text-input__input{--input-padding-y: var(--space-component-padding-md);--input-padding-x: var(--space-component-padding-lg);height:48px;box-sizing:border-box;border-radius:var(--size-textfield-border-radius);border:var(--size-textfield-border-width) solid var(--color-textfield-border-default);background:var(--color-textfield-background-default);padding:var(--input-padding-y) var(--input-padding-x);align-items:center;gap:var(--space-component-gap-sm);align-self:stretch;color:var(--color-textfield-content-default);font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing)}.c-text-input__input:focus-visible{border-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-sm)}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-md)}.c-text-input__input.is-error{border-color:var(--color-textfield-border-error)}.c-text-input__input.is-success{border-color:var(--color-feedback-success-strong)}.c-text-input__input.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-text-input__input.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-text-input__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.c-text-input__alert{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-danger-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__success{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-success-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper{color:var(--color-core-content-soft);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper.is-error{color:var(--color-textfield-helper-error)}.c-text-input__helper.is-success{color:var(--color-textfield-helper-success)}.c-text-input__helper.is-default{color:var(--color-textfield-helper-default)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML", "isLoading", "textOptional"] }, { kind: "component", type: HelperTextComponent, selector: "lib-helper-text", inputs: ["variant", "text", "extraClass", "disabled", "isLoading"] }] });
4802
- }
4803
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, decorators: [{
4804
- type: Component,
4805
- args: [{ selector: 'lib-text-input', standalone: true, imports: [
4806
- CommonModule,
4807
- ReactiveFormsModule,
4808
- InputLabelComponent,
4809
- HelperTextComponent,
4810
- ], providers: [
4811
- {
4812
- provide: NG_VALUE_ACCESSOR,
4813
- useExisting: forwardRef(() => TextInputComponent),
4814
- multi: true,
4815
- },
4816
- ], template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <input\n [attr.autocomplete]=\"autocomplete\"\n [id]=\"name\"\n [name]=\"name\"\n [type]=\"type\"\n [attr.inputmode]=\"inputmode\"\n [attr.step]=\"step\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [value]=\"isLoading ? '' : _value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"name\"\n [attr.aria-labelledby]=\"name\"\n (beforeinput)=\"onBeforeInput($event)\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"text-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n</div>\n", styles: [".c-text-input{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-component-gap-sm);max-width:300px}.c-text-input--full-width{max-width:100%}.c-text-input__input{--input-padding-y: var(--space-component-padding-md);--input-padding-x: var(--space-component-padding-lg);height:48px;box-sizing:border-box;border-radius:var(--size-textfield-border-radius);border:var(--size-textfield-border-width) solid var(--color-textfield-border-default);background:var(--color-textfield-background-default);padding:var(--input-padding-y) var(--input-padding-x);align-items:center;gap:var(--space-component-gap-sm);align-self:stretch;color:var(--color-textfield-content-default);font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing)}.c-text-input__input:focus-visible{border-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-sm)}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-md)}.c-text-input__input.is-error{border-color:var(--color-textfield-border-error)}.c-text-input__input.is-success{border-color:var(--color-feedback-success-strong)}.c-text-input__input.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-text-input__input.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-text-input__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.c-text-input__alert{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-danger-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__success{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-success-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper{color:var(--color-core-content-soft);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper.is-error{color:var(--color-textfield-helper-error)}.c-text-input__helper.is-success{color:var(--color-textfield-helper-success)}.c-text-input__helper.is-default{color:var(--color-textfield-helper-default)}\n"] }]
4817
- }], propDecorators: { label: [{
4818
- type: Input
4819
- }], name: [{
4820
- type: Input
4821
- }], placeholder: [{
4822
- type: Input
4823
- }], helperText: [{
4824
- type: Input
4825
- }], error: [{
4826
- type: Input
4827
- }], success: [{
4828
- type: Input
4829
- }], successText: [{
4830
- type: Input
4831
- }], alertText: [{
4832
- type: Input
4833
- }], disabled: [{
4834
- type: Input
4835
- }], readonly: [{
4836
- type: Input
4837
- }], required: [{
4838
- type: Input
4839
- }], optionalLabel: [{
4840
- type: Input
4841
- }], isLoading: [{
4842
- type: Input
4843
- }], type: [{
4844
- type: Input
4845
- }], inputmode: [{
4846
- type: Input
4847
- }], step: [{
4848
- type: Input
4849
- }], size: [{
4850
- type: Input
4851
- }], fullWidth: [{
4852
- type: Input
4853
- }], autocomplete: [{
4854
- type: Input
4855
- }], regex: [{
4856
- type: Input
4857
- }], emitValue: [{
4858
- type: Output
4859
- }] } });
4860
-
4861
- /**
4862
- * Number input component with automatic comma/dot conversion and validation
4863
- * Wraps lib-text-input with number formatting logic
4864
- */
4865
- class InputNumberComponent {
4866
- // Inputs
4867
- label = input('');
4868
- placeholder = input('');
4869
- required = input(false);
4870
- fullWidth = input(true);
4871
- error = input(false);
4872
- alertText = input('');
4873
- helperText = input('');
4874
- readonly = input(false);
4875
- name = input('');
4876
- size = input('md');
4877
- autocomplete = input('off');
4878
- success = input(false);
4879
- successText = input('');
4880
- isLoading = input(false);
4881
- allowDecimals = input(true);
4882
- allowNegative = input(false);
4883
- inputmode = input(undefined);
4884
- regex = input('');
4885
- decimalSeparator = input('comma');
4886
- maxDecimals = input(undefined);
4887
- // Computed values
4888
- effectiveInputmode = computed(() => this.inputmode() ?? (this.allowDecimals() ? 'decimal' : 'numeric'));
4889
- regexPattern = computed(() => {
4890
- if (this.regex())
4891
- return this.regex();
4892
- const negative = this.allowNegative() ? '-?' : '';
4893
- const integer = '[0-9]*';
4894
- if (!this.allowDecimals())
4895
- return `^${negative}${integer}$`;
4896
- const separator = this.decimalSeparator() === 'comma' ? ',' : '\\.';
4897
- const decimal = this.maxDecimals() !== undefined
4898
- ? `[0-9]{0,${this.maxDecimals()}}`
4899
- : '[0-9]*';
4900
- return `^${negative}${integer}${separator}?${decimal}$`;
4901
- });
4902
- // Internal control
4903
- internalControl = new FormControl('', { nonNullable: true });
4904
- // ControlValueAccessor callbacks
4905
- onChange = () => { };
4906
- onTouched = () => { };
4907
- constructor() {
4908
- // Parse on every change; distinctUntilChanged prevents redundant emissions
4909
- this.internalControl.valueChanges
4910
- .pipe(map((value) => this.parseNumber(value)), distinctUntilChanged(), takeUntilDestroyed())
4911
- .subscribe((value) => this.onChange(value));
4912
- }
4913
- // Convert string to number
4914
- parseNumber(value) {
4915
- if (!value)
4916
- return null;
4917
- if (value.endsWith('.') || value.endsWith(',')) {
4918
- return null;
4919
- }
4920
- const normalized = value.replace(',', '.');
4921
- const parsed = parseFloat(normalized);
4922
- return isNaN(parsed) ? null : parsed;
4923
- }
4924
- // Convert number to display string
4925
- formatNumber(value) {
4926
- const str = value.toString();
4927
- return this.decimalSeparator() === 'comma' ? str.replace('.', ',') : str;
4928
- }
4929
- // Write value
4930
- writeValue(value) {
4931
- const formatted = value === null || value === undefined ? '' : this.formatNumber(value);
4932
- this.internalControl.setValue(formatted, { emitEvent: false });
4933
- }
4934
- // Register change
4935
- registerOnChange(fn) {
4936
- this.onChange = fn;
4937
- }
4938
- // Register touched
4939
- registerOnTouched(fn) {
4940
- this.onTouched = fn;
4941
- }
4942
- // Disabled state
4943
- setDisabledState(isDisabled) {
4944
- if (isDisabled) {
4945
- this.internalControl.disable({ emitEvent: false });
4946
- }
4947
- else {
4948
- this.internalControl.enable({ emitEvent: false });
4949
- }
4950
- }
4951
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: InputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4952
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.7", type: InputNumberComponent, isStandalone: true, selector: "lib-input-number", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, alertText: { classPropertyName: "alertText", publicName: "alertText", isSignal: true, isRequired: false, transformFunction: null }, helperText: { classPropertyName: "helperText", publicName: "helperText", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null }, successText: { classPropertyName: "successText", publicName: "successText", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, allowDecimals: { classPropertyName: "allowDecimals", publicName: "allowDecimals", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, inputmode: { classPropertyName: "inputmode", publicName: "inputmode", isSignal: true, isRequired: false, transformFunction: null }, regex: { classPropertyName: "regex", publicName: "regex", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, maxDecimals: { classPropertyName: "maxDecimals", publicName: "maxDecimals", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
4953
- {
4954
- provide: NG_VALUE_ACCESSOR,
4955
- useExisting: forwardRef(() => InputNumberComponent),
4956
- multi: true,
4957
- },
4958
- ], ngImport: i0, template: "<lib-text-input\n [formControl]=\"internalControl\"\n [label]=\"label()\"\n [name]=\"name()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [fullWidth]=\"fullWidth()\"\n [error]=\"error()\"\n [alertText]=\"alertText()\"\n [helperText]=\"helperText()\"\n [readonly]=\"readonly()\"\n [size]=\"size()\"\n [autocomplete]=\"autocomplete()\"\n [success]=\"success()\"\n [successText]=\"successText()\"\n [isLoading]=\"isLoading()\"\n type=\"text\"\n [inputmode]=\"effectiveInputmode()\"\n [regex]=\"regexPattern()\"\n>\n</lib-text-input>\n", styles: [""], dependencies: [{ kind: "component", type: TextInputComponent, selector: "lib-text-input", inputs: ["label", "name", "placeholder", "helperText", "error", "success", "successText", "alertText", "disabled", "readonly", "required", "optionalLabel", "isLoading", "type", "inputmode", "step", "size", "fullWidth", "autocomplete", "regex"], outputs: ["emitValue"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
4959
- }
4960
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: InputNumberComponent, decorators: [{
4961
- type: Component,
4962
- args: [{ selector: 'lib-input-number', standalone: true, imports: [TextInputComponent, ReactiveFormsModule], providers: [
4963
- {
4964
- provide: NG_VALUE_ACCESSOR,
4965
- useExisting: forwardRef(() => InputNumberComponent),
4966
- multi: true,
4967
- },
4968
- ], template: "<lib-text-input\n [formControl]=\"internalControl\"\n [label]=\"label()\"\n [name]=\"name()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [fullWidth]=\"fullWidth()\"\n [error]=\"error()\"\n [alertText]=\"alertText()\"\n [helperText]=\"helperText()\"\n [readonly]=\"readonly()\"\n [size]=\"size()\"\n [autocomplete]=\"autocomplete()\"\n [success]=\"success()\"\n [successText]=\"successText()\"\n [isLoading]=\"isLoading()\"\n type=\"text\"\n [inputmode]=\"effectiveInputmode()\"\n [regex]=\"regexPattern()\"\n>\n</lib-text-input>\n" }]
4969
- }], ctorParameters: () => [] });
4970
-
4971
4684
  class InputPaymentComponent {
4972
4685
  label = '';
4973
4686
  placeholder = '';
@@ -7436,6 +7149,152 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
7436
7149
  args: [{ selector: 'lib-tabs', standalone: true, imports: [IconComponent, BadgeComponent], template: "<div class=\"c-tabs\">\n <div class=\"c-tabs__scroll-container\" #tabsRef>\n <ul\n class=\"c-tabs__list\"\n [class.c-tabs__list--center]=\"alignment() === 'center'\"\n role=\"tablist\"\n >\n @for (option of options(); track option.value) {\n <li\n class=\"c-tabs__tab\"\n [class.c-tabs__tab--selected]=\"option.value === selectedValue()\"\n role=\"tab\"\n [attr.aria-selected]=\"option.value === selectedValue()\"\n tabindex=\"0\"\n (click)=\"onClick($event, option.value)\"\n (keydown)=\"onKeydown($event, option.value)\"\n >\n @if (option.iconName) {\n <lib-icon\n [name]=\"option.iconName\"\n size=\"lg\"\n color=\"core-content-default\"\n />\n }\n {{ option.label }}\n @if (option.showBadge) {\n <lib-badge />\n }\n </li>\n }\n </ul>\n </div>\n</div>\n", styles: [".c-tabs{width:100%}.c-tabs__scroll-container{width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}.c-tabs__scroll-container::-webkit-scrollbar{display:none}.c-tabs__list{width:100%;height:40px;display:flex;align-items:flex-start;border-bottom:var(--size-border-width-sm) solid var(--color-core-border-soft);margin:0;padding:0;list-style:none;box-sizing:border-box;min-width:max-content}.c-tabs__list--center{justify-content:center}.c-tabs__tab{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:72px;flex-shrink:0;white-space:nowrap;box-sizing:border-box;color:var(--color-action-neutral-content-default);text-align:center;font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing);padding:var(--space-component-padding-sm) var(--space-component-padding-md);background:var(--color-action-primary-background-default);gap:var(--space-component-gap-sm);margin:0;list-style:none}.c-tabs__tab:hover{color:var(--color-action-neutral-content-hover);background:var(--color-action-neutral-background-hover)}.c-tabs__tab:active{color:var(--color-action-neutral-content-pressed);background-color:var(--color-action-neutral-background-pressed)}.c-tabs__tab:focus-visible{box-shadow:var(--focus-inset);outline:none}.c-tabs__tab--selected{position:relative;color:var(--color-core-content-default);font-family:var(--typography-label-md-strong-family);font-size:var(--typography-label-md-strong-size);font-style:normal;font-weight:var(--typography-label-md-strong-weight);line-height:var(--typography-label-md-strong-line-height);letter-spacing:var(--typography-label-md-strong-letter-spacing)}.c-tabs__tab--selected:before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:.125rem;background:var(--color-action-primary-selected-background-default)}\n"] }]
7437
7150
  }] });
7438
7151
 
7152
+ class TextInputComponent {
7153
+ label = '';
7154
+ name = '';
7155
+ placeholder = '';
7156
+ helperText = '';
7157
+ error = false;
7158
+ success = false;
7159
+ successText = '';
7160
+ alertText = '';
7161
+ disabled = false;
7162
+ readonly = false;
7163
+ required = false;
7164
+ optionalLabel = '';
7165
+ isLoading = false;
7166
+ type = 'text';
7167
+ size = 'md';
7168
+ fullWidth = false;
7169
+ autocomplete = 'off';
7170
+ regex;
7171
+ emitValue = new EventEmitter();
7172
+ _value = '';
7173
+ onChangeFn = () => { };
7174
+ onTouchedFn = () => { };
7175
+ writeValue(value) {
7176
+ this._value = value ?? '';
7177
+ }
7178
+ registerOnChange(fn) {
7179
+ this.onChangeFn = fn;
7180
+ }
7181
+ registerOnTouched(fn) {
7182
+ this.onTouchedFn = fn;
7183
+ }
7184
+ setDisabledState(isDisabled) {
7185
+ this.disabled = isDisabled;
7186
+ }
7187
+ get inputClass() {
7188
+ return [
7189
+ 'c-text-input__input',
7190
+ `c-text-input__input--${this.size}`,
7191
+ this.error ? 'is-error' : this.success ? 'is-success' : 'is-default',
7192
+ this.disabled ? 'is-disabled' : '',
7193
+ this.readonly ? 'is-readonly' : '',
7194
+ this.isLoading ? 'is-loading' : '',
7195
+ ].filter(Boolean);
7196
+ }
7197
+ get ariaDescribedBy() {
7198
+ return this.helperText ? 'text-input-helper' : null;
7199
+ }
7200
+ onInput(event) {
7201
+ const input = event.target;
7202
+ let newValue = input.value;
7203
+ if (this.regex) {
7204
+ try {
7205
+ const charPattern = (() => {
7206
+ if (this.regex.startsWith('^') && this.regex.endsWith('$')) {
7207
+ const charClassMatch = this.regex.match(/\[([^\]]+)\]/);
7208
+ if (charClassMatch) {
7209
+ return `[${charClassMatch[1]}]`;
7210
+ }
7211
+ }
7212
+ return this.regex;
7213
+ })();
7214
+ const regex = new RegExp(charPattern);
7215
+ const filteredValue = newValue
7216
+ .split('')
7217
+ .filter((char) => regex.test(char))
7218
+ .join('');
7219
+ if (filteredValue !== newValue) {
7220
+ input.value = filteredValue;
7221
+ newValue = filteredValue;
7222
+ }
7223
+ }
7224
+ catch (error) {
7225
+ console.warn('Invalid regex:', this.regex, error);
7226
+ }
7227
+ }
7228
+ this._value = newValue;
7229
+ this.onChangeFn(this._value);
7230
+ this.emitValue.emit(this._value);
7231
+ }
7232
+ onBlur() {
7233
+ this.onTouchedFn();
7234
+ }
7235
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7236
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TextInputComponent, isStandalone: true, selector: "lib-text-input", inputs: { label: "label", name: "name", placeholder: "placeholder", helperText: "helperText", error: "error", success: "success", successText: "successText", alertText: "alertText", disabled: "disabled", readonly: "readonly", required: "required", optionalLabel: "optionalLabel", isLoading: "isLoading", type: "type", size: "size", fullWidth: "fullWidth", autocomplete: "autocomplete", regex: "regex" }, outputs: { emitValue: "emitValue" }, providers: [
7237
+ {
7238
+ provide: NG_VALUE_ACCESSOR,
7239
+ useExisting: forwardRef(() => TextInputComponent),
7240
+ multi: true,
7241
+ },
7242
+ ], ngImport: i0, template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <input\n [attr.autocomplete]=\"autocomplete\"\n [id]=\"name\"\n [name]=\"name\"\n [type]=\"type\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [value]=\"isLoading ? '' : _value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"name\"\n [attr.aria-labelledby]=\"name\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"text-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n</div>\n", styles: [".c-text-input{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-component-gap-sm);max-width:300px}.c-text-input--full-width{max-width:100%}.c-text-input__input{--input-padding-y: var(--space-component-padding-md);--input-padding-x: var(--space-component-padding-lg);height:48px;box-sizing:border-box;border-radius:var(--size-textfield-border-radius);border:var(--size-textfield-border-width) solid var(--color-textfield-border-default);background:var(--color-textfield-background-default);padding:var(--input-padding-y) var(--input-padding-x);align-items:center;gap:var(--space-component-gap-sm);align-self:stretch;color:var(--color-textfield-content-default);font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing)}.c-text-input__input:focus-visible{border-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-sm)}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-md)}.c-text-input__input.is-error{border-color:var(--color-textfield-border-error)}.c-text-input__input.is-success{border-color:var(--color-feedback-success-strong)}.c-text-input__input.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-text-input__input.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-text-input__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.c-text-input__alert{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-danger-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__success{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-success-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper{color:var(--color-core-content-soft);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper.is-error{color:var(--color-textfield-helper-error)}.c-text-input__helper.is-success{color:var(--color-textfield-helper-success)}.c-text-input__helper.is-default{color:var(--color-textfield-helper-default)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML", "isLoading", "textOptional"] }, { kind: "component", type: HelperTextComponent, selector: "lib-helper-text", inputs: ["variant", "text", "extraClass", "disabled", "isLoading"] }] });
7243
+ }
7244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, decorators: [{
7245
+ type: Component,
7246
+ args: [{ selector: 'lib-text-input', standalone: true, imports: [
7247
+ CommonModule,
7248
+ ReactiveFormsModule,
7249
+ InputLabelComponent,
7250
+ HelperTextComponent,
7251
+ ], providers: [
7252
+ {
7253
+ provide: NG_VALUE_ACCESSOR,
7254
+ useExisting: forwardRef(() => TextInputComponent),
7255
+ multi: true,
7256
+ },
7257
+ ], template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <input\n [attr.autocomplete]=\"autocomplete\"\n [id]=\"name\"\n [name]=\"name\"\n [type]=\"type\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [value]=\"isLoading ? '' : _value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"name\"\n [attr.aria-labelledby]=\"name\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"text-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n</div>\n", styles: [".c-text-input{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-component-gap-sm);max-width:300px}.c-text-input--full-width{max-width:100%}.c-text-input__input{--input-padding-y: var(--space-component-padding-md);--input-padding-x: var(--space-component-padding-lg);height:48px;box-sizing:border-box;border-radius:var(--size-textfield-border-radius);border:var(--size-textfield-border-width) solid var(--color-textfield-border-default);background:var(--color-textfield-background-default);padding:var(--input-padding-y) var(--input-padding-x);align-items:center;gap:var(--space-component-gap-sm);align-self:stretch;color:var(--color-textfield-content-default);font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing)}.c-text-input__input:focus-visible{border-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-sm)}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-md)}.c-text-input__input.is-error{border-color:var(--color-textfield-border-error)}.c-text-input__input.is-success{border-color:var(--color-feedback-success-strong)}.c-text-input__input.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-text-input__input.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-text-input__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.c-text-input__alert{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-danger-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__success{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-success-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper{color:var(--color-core-content-soft);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper.is-error{color:var(--color-textfield-helper-error)}.c-text-input__helper.is-success{color:var(--color-textfield-helper-success)}.c-text-input__helper.is-default{color:var(--color-textfield-helper-default)}\n"] }]
7258
+ }], propDecorators: { label: [{
7259
+ type: Input
7260
+ }], name: [{
7261
+ type: Input
7262
+ }], placeholder: [{
7263
+ type: Input
7264
+ }], helperText: [{
7265
+ type: Input
7266
+ }], error: [{
7267
+ type: Input
7268
+ }], success: [{
7269
+ type: Input
7270
+ }], successText: [{
7271
+ type: Input
7272
+ }], alertText: [{
7273
+ type: Input
7274
+ }], disabled: [{
7275
+ type: Input
7276
+ }], readonly: [{
7277
+ type: Input
7278
+ }], required: [{
7279
+ type: Input
7280
+ }], optionalLabel: [{
7281
+ type: Input
7282
+ }], isLoading: [{
7283
+ type: Input
7284
+ }], type: [{
7285
+ type: Input
7286
+ }], size: [{
7287
+ type: Input
7288
+ }], fullWidth: [{
7289
+ type: Input
7290
+ }], autocomplete: [{
7291
+ type: Input
7292
+ }], regex: [{
7293
+ type: Input
7294
+ }], emitValue: [{
7295
+ type: Output
7296
+ }] } });
7297
+
7439
7298
  class TextareaComponent {
7440
7299
  label = '';
7441
7300
  placeholder = '';
@@ -7851,5 +7710,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
7851
7710
  * Generated bundle index. Do not edit.
7852
7711
  */
7853
7712
 
7854
- export { AccordionComponent, AlertComponent, ArrowsComponent, AvatarComponent, BadgeComponent, BasicSidebarMenuComponent, BreadcrumbComponent, ButtonComponent, ButtonIconComponent, ButtonSetComponent, CheckboxComponent, CheckboxGroupComponent, ChipsComponent, DesignTokensComponent, DropdownActionComponent, DropdownActionTriggerDirective, DropdownSelectComponent, DropdownSelectTriggerDirective, HelperTextComponent, IconComponent, InputCounterComponent, InputDateComponent, InputLabelComponent, InputNumberComponent, InputPaymentComponent, InputSearchComponent, InputUploadComponent, LinkActionComponent, LinkComponent, MenuChildItemComponent, MenuItemComponent, MenuItemSectionComponent, ModalComponent, ModalService, OverlayComponent, OverlayTriggerDirective, PaginationComponent, PasswordInputComponent, RadioComponent, RadioGroupComponent, SegmentedControlComponent, SelectComponent, SidebarComponent, SidebarProgrammaticComponent, SidebarProgrammaticExamplesComponent, SidebarService, SidebarWithFooterComponent, SocialLoginComponent, SpinnerComponent, SwitchComponent, TabsComponent, TagComponent, TextInputComponent, TextareaComponent, ThumbnailComponent, TileComponent, ToastComponent, TooltipComponent, TooltipDirective, TooltipPosition };
7713
+ export { AccordionComponent, AlertComponent, ArrowsComponent, AvatarComponent, BadgeComponent, BasicSidebarMenuComponent, BreadcrumbComponent, ButtonComponent, ButtonIconComponent, ButtonSetComponent, CheckboxComponent, CheckboxGroupComponent, ChipsComponent, DesignTokensComponent, DropdownActionComponent, DropdownActionTriggerDirective, DropdownSelectComponent, DropdownSelectTriggerDirective, HelperTextComponent, IconComponent, InputDateComponent, InputLabelComponent, InputNumberComponent, InputPaymentComponent, InputSearchComponent, InputUploadComponent, LinkActionComponent, LinkComponent, MenuChildItemComponent, MenuItemComponent, MenuItemSectionComponent, ModalComponent, ModalService, OverlayComponent, OverlayTriggerDirective, PaginationComponent, PasswordInputComponent, RadioComponent, RadioGroupComponent, SegmentedControlComponent, SelectComponent, SidebarComponent, SidebarProgrammaticComponent, SidebarProgrammaticExamplesComponent, SidebarService, SidebarWithFooterComponent, SocialLoginComponent, SpinnerComponent, SwitchComponent, TabsComponent, TagComponent, TextInputComponent, TextareaComponent, ThumbnailComponent, TileComponent, ToastComponent, TooltipComponent, TooltipDirective, TooltipPosition };
7855
7714
  //# sourceMappingURL=crowdfarming-oliva-ds.mjs.map