@eduboxpro/studio 0.1.40 → 0.1.41

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.
@@ -5702,6 +5702,189 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
5702
5702
  * Switch component
5703
5703
  */
5704
5704
 
5705
+ /**
5706
+ * Tags Input component with form control support
5707
+ *
5708
+ * @example
5709
+ * <studio-tags-input [(ngModel)]="tags" label="Tags" />
5710
+ * <studio-tags-input [formControl]="tagsControl" placeholder="Add tags..." />
5711
+ */
5712
+ class TagsInputComponent {
5713
+ configService = inject(StudioConfigService);
5714
+ tagsInputDefaults = computed(() => this.configService.config().components?.tagsInput, ...(ngDevMode ? [{ debugName: "tagsInputDefaults" }] : []));
5715
+ inputRef = viewChild('inputElement', ...(ngDevMode ? [{ debugName: "inputRef" }] : []));
5716
+ sizeInput = input(undefined, ...(ngDevMode ? [{ debugName: "sizeInput", alias: 'size' }] : [{ alias: 'size' }]));
5717
+ variantInput = input(undefined, ...(ngDevMode ? [{ debugName: "variantInput", alias: 'variant' }] : [{ alias: 'variant' }]));
5718
+ size = withConfigDefault(this.sizeInput, computed(() => this.tagsInputDefaults()?.size), 'md');
5719
+ variant = withConfigDefault(this.variantInput, computed(() => this.tagsInputDefaults()?.variant), 'outline');
5720
+ label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
5721
+ placeholder = input('Добавьте теги...', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
5722
+ hint = input(...(ngDevMode ? [undefined, { debugName: "hint" }] : []));
5723
+ tagPrefix = input('#', ...(ngDevMode ? [{ debugName: "tagPrefix" }] : []));
5724
+ tagColor = input('primary', ...(ngDevMode ? [{ debugName: "tagColor" }] : []));
5725
+ maxTags = input(...(ngDevMode ? [undefined, { debugName: "maxTags" }] : []));
5726
+ minLength = input(1, ...(ngDevMode ? [{ debugName: "minLength" }] : []));
5727
+ maxLength = input(50, ...(ngDevMode ? [{ debugName: "maxLength" }] : []));
5728
+ allowDuplicates = input(false, ...(ngDevMode ? [{ debugName: "allowDuplicates" }] : []));
5729
+ separators = input([',', 'Enter'], ...(ngDevMode ? [{ debugName: "separators" }] : []));
5730
+ transform = input('none', ...(ngDevMode ? [{ debugName: "transform" }] : []));
5731
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
5732
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
5733
+ error = input(false, ...(ngDevMode ? [{ debugName: "error" }] : []));
5734
+ errorMessage = input(...(ngDevMode ? [undefined, { debugName: "errorMessage" }] : []));
5735
+ fullWidth = input(false, ...(ngDevMode ? [{ debugName: "fullWidth" }] : []));
5736
+ tagsChange = output();
5737
+ tagAdded = output();
5738
+ tagRemoved = output();
5739
+ tags = signal([], ...(ngDevMode ? [{ debugName: "tags" }] : []));
5740
+ inputValue = signal('', ...(ngDevMode ? [{ debugName: "inputValue" }] : []));
5741
+ isFocused = signal(false, ...(ngDevMode ? [{ debugName: "isFocused" }] : []));
5742
+ inputId = `studio-tags-input-${Math.random().toString(36).substr(2, 9)}`;
5743
+ onChange = () => { };
5744
+ onTouched = () => { };
5745
+ badgeSize = computed(() => {
5746
+ const size = this.size();
5747
+ if (size === 'lg')
5748
+ return 'md';
5749
+ return 'sm';
5750
+ }, ...(ngDevMode ? [{ debugName: "badgeSize" }] : []));
5751
+ hostClasses = computed(() => classNames('studio-tags-input', `studio-tags-input--${this.size()}`, `studio-tags-input--${this.variant()}`, this.fullWidth() && 'studio-tags-input--full-width', this.disabled() && 'studio-tags-input--disabled', this.error() && 'studio-tags-input--error'), ...(ngDevMode ? [{ debugName: "hostClasses" }] : []));
5752
+ focusInput() {
5753
+ this.inputRef()?.nativeElement.focus();
5754
+ }
5755
+ onInput(event) {
5756
+ const value = event.target.value;
5757
+ const separators = this.separators().filter(s => s !== 'Enter');
5758
+ for (const sep of separators) {
5759
+ if (value.includes(sep)) {
5760
+ const parts = value.split(sep);
5761
+ const tagToAdd = parts[0].trim();
5762
+ if (tagToAdd) {
5763
+ this.addTag(tagToAdd);
5764
+ }
5765
+ this.inputValue.set(parts.slice(1).join(sep));
5766
+ return;
5767
+ }
5768
+ }
5769
+ this.inputValue.set(value);
5770
+ }
5771
+ onKeydown(event) {
5772
+ if (event.key === 'Enter' && this.separators().includes('Enter')) {
5773
+ event.preventDefault();
5774
+ const value = this.inputValue().trim();
5775
+ if (value) {
5776
+ this.addTag(value);
5777
+ this.inputValue.set('');
5778
+ }
5779
+ }
5780
+ else if (event.key === 'Backspace' && !this.inputValue()) {
5781
+ const currentTags = this.tags();
5782
+ if (currentTags.length > 0) {
5783
+ const removed = currentTags[currentTags.length - 1];
5784
+ this.removeTag(removed);
5785
+ }
5786
+ }
5787
+ }
5788
+ onPaste(event) {
5789
+ const pastedText = event.clipboardData?.getData('text');
5790
+ if (!pastedText)
5791
+ return;
5792
+ const separators = this.separators().filter(s => s !== 'Enter');
5793
+ let hasSeparator = false;
5794
+ for (const sep of separators) {
5795
+ if (pastedText.includes(sep)) {
5796
+ hasSeparator = true;
5797
+ event.preventDefault();
5798
+ const parts = pastedText.split(sep);
5799
+ parts.forEach(part => {
5800
+ const tag = part.trim();
5801
+ if (tag) {
5802
+ this.addTag(tag);
5803
+ }
5804
+ });
5805
+ break;
5806
+ }
5807
+ }
5808
+ }
5809
+ onFocus() {
5810
+ this.isFocused.set(true);
5811
+ }
5812
+ onBlur() {
5813
+ this.isFocused.set(false);
5814
+ this.onTouched();
5815
+ const value = this.inputValue().trim();
5816
+ if (value) {
5817
+ this.addTag(value);
5818
+ this.inputValue.set('');
5819
+ }
5820
+ }
5821
+ addTag(tag) {
5822
+ let processedTag = tag.replace(/^#/, '').trim();
5823
+ if (processedTag.length < this.minLength() || processedTag.length > this.maxLength()) {
5824
+ return;
5825
+ }
5826
+ const transform = this.transform();
5827
+ if (transform === 'lowercase') {
5828
+ processedTag = processedTag.toLowerCase();
5829
+ }
5830
+ else if (transform === 'uppercase') {
5831
+ processedTag = processedTag.toUpperCase();
5832
+ }
5833
+ const currentTags = this.tags();
5834
+ if (!this.allowDuplicates() && currentTags.includes(processedTag)) {
5835
+ return;
5836
+ }
5837
+ const max = this.maxTags();
5838
+ if (max && currentTags.length >= max) {
5839
+ return;
5840
+ }
5841
+ const newTags = [...currentTags, processedTag];
5842
+ this.tags.set(newTags);
5843
+ this.onChange(newTags);
5844
+ this.tagsChange.emit(newTags);
5845
+ this.tagAdded.emit(processedTag);
5846
+ }
5847
+ removeTag(tag) {
5848
+ if (this.disabled())
5849
+ return;
5850
+ const newTags = this.tags().filter(t => t !== tag);
5851
+ this.tags.set(newTags);
5852
+ this.onChange(newTags);
5853
+ this.tagsChange.emit(newTags);
5854
+ this.tagRemoved.emit(tag);
5855
+ }
5856
+ writeValue(value) {
5857
+ this.tags.set(value || []);
5858
+ }
5859
+ registerOnChange(fn) {
5860
+ this.onChange = fn;
5861
+ }
5862
+ registerOnTouched(fn) {
5863
+ this.onTouched = fn;
5864
+ }
5865
+ setDisabledState(isDisabled) { }
5866
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: TagsInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5867
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: TagsInputComponent, isStandalone: true, selector: "studio-tags-input", inputs: { sizeInput: { classPropertyName: "sizeInput", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variantInput: { classPropertyName: "variantInput", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, tagPrefix: { classPropertyName: "tagPrefix", publicName: "tagPrefix", isSignal: true, isRequired: false, transformFunction: null }, tagColor: { classPropertyName: "tagColor", publicName: "tagColor", isSignal: true, isRequired: false, transformFunction: null }, maxTags: { classPropertyName: "maxTags", publicName: "maxTags", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, allowDuplicates: { classPropertyName: "allowDuplicates", publicName: "allowDuplicates", isSignal: true, isRequired: false, transformFunction: null }, separators: { classPropertyName: "separators", publicName: "separators", isSignal: true, isRequired: false, transformFunction: null }, transform: { classPropertyName: "transform", publicName: "transform", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tagsChange: "tagsChange", tagAdded: "tagAdded", tagRemoved: "tagRemoved" }, host: { properties: { "class": "hostClasses()" } }, providers: [
5868
+ {
5869
+ provide: NG_VALUE_ACCESSOR,
5870
+ useExisting: forwardRef(() => TagsInputComponent),
5871
+ multi: true,
5872
+ },
5873
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"studio-tags-input__wrapper\">\n @if (label()) {\n <label class=\"studio-tags-input__label\" [for]=\"inputId\">\n {{ label() }}\n @if (required()) {\n <span class=\"studio-tags-input__required\">*</span>\n }\n </label>\n }\n\n <div\n class=\"studio-tags-input__container\"\n [class.studio-tags-input__container--focused]=\"isFocused()\"\n [class.studio-tags-input__container--disabled]=\"disabled()\"\n [class.studio-tags-input__container--error]=\"error()\"\n (click)=\"focusInput()\"\n >\n @for (tag of tags(); track tag) {\n <studio-badge\n variant=\"soft\"\n [color]=\"tagColor()\"\n [size]=\"badgeSize()\"\n [removable]=\"!disabled()\"\n (removed)=\"removeTag(tag)\"\n >\n @if (tagPrefix()) {\n {{ tagPrefix() }}\n }\n {{ tag }}\n </studio-badge>\n }\n\n <input\n #inputElement\n [id]=\"inputId\"\n type=\"text\"\n class=\"studio-tags-input__input\"\n [placeholder]=\"tags().length === 0 ? placeholder() : ''\"\n [disabled]=\"disabled()\"\n [value]=\"inputValue()\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (paste)=\"onPaste($event)\"\n />\n </div>\n\n @if (hint() && !error()) {\n <p class=\"studio-tags-input__hint\">{{ hint() }}</p>\n }\n\n @if (error() && errorMessage()) {\n <p class=\"studio-tags-input__error\">{{ errorMessage() }}</p>\n }\n</div>\n", styles: [":host{display:inline-block}.studio-tags-input--full-width{display:block;width:100%}.studio-tags-input--full-width .studio-tags-input__container{width:100%}.studio-tags-input__wrapper{display:flex;flex-direction:column;gap:.25rem}.studio-tags-input__label{display:block;font-size:.875rem;font-weight:500;color:var(--studio-text-primary, #374151);margin-bottom:.25rem}:host-context(.dark) .studio-tags-input__label{color:var(--studio-text-primary-dark, #d1d5db)}.studio-tags-input__required{color:var(--studio-color-error, #ef4444);margin-left:.125rem}.studio-tags-input__container{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;padding:.5rem .75rem;min-height:2.5rem;border:1px solid var(--studio-border-color, #d1d5db);border-radius:var(--studio-radius-md, .5rem);background:var(--studio-bg-primary, #ffffff);cursor:text;transition:all .15s ease}:host-context(.dark) .studio-tags-input__container{background:var(--studio-bg-primary-dark, #1f2937);border-color:var(--studio-border-color-dark, #4b5563)}.studio-tags-input__container--focused{border-color:var(--studio-color-primary, #3b82f6);box-shadow:0 0 0 2px var(--studio-color-primary-alpha, rgba(59, 130, 246, .2))}.studio-tags-input__container--disabled{opacity:.6;cursor:not-allowed;background:var(--studio-bg-disabled, #f3f4f6)}:host-context(.dark) .studio-tags-input__container--disabled{background:var(--studio-bg-disabled-dark, #374151)}.studio-tags-input__container--error{border-color:var(--studio-color-error, #ef4444)}.studio-tags-input__container--error.studio-tags-input__container--focused{box-shadow:0 0 0 2px var(--studio-color-error-alpha, rgba(239, 68, 68, .2))}.studio-tags-input__input{flex:1;min-width:120px;border:none;outline:none;background:transparent;font-size:.875rem;color:var(--studio-text-primary, #111827);padding:0}:host-context(.dark) .studio-tags-input__input{color:var(--studio-text-primary-dark, #f9fafb)}.studio-tags-input__input::placeholder{color:var(--studio-text-muted, #9ca3af)}.studio-tags-input__input:disabled{cursor:not-allowed}.studio-tags-input__hint{font-size:.75rem;color:var(--studio-text-muted, #6b7280);margin:0}.studio-tags-input__error{font-size:.75rem;color:var(--studio-color-error, #ef4444);margin:0}:host(.studio-tags-input--sm) .studio-tags-input__container{min-height:2rem;padding:.25rem .5rem;gap:.25rem}:host(.studio-tags-input--sm) .studio-tags-input__input{font-size:.75rem}:host(.studio-tags-input--sm) .studio-tags-input__label{font-size:.75rem}:host(.studio-tags-input--lg) .studio-tags-input__container{min-height:3rem;padding:.625rem 1rem;gap:.5rem}:host(.studio-tags-input--lg) .studio-tags-input__input{font-size:1rem}:host(.studio-tags-input--lg) .studio-tags-input__label{font-size:1rem}:host(.studio-tags-input--filled) .studio-tags-input__container{background:var(--studio-bg-secondary, #f3f4f6);border-color:transparent}:host-context(.dark) :host(.studio-tags-input--filled) .studio-tags-input__container{background:var(--studio-bg-secondary-dark, #374151)}:host(.studio-tags-input--filled) .studio-tags-input__container--focused{background:var(--studio-bg-primary, #ffffff);border-color:var(--studio-color-primary, #3b82f6)}:host-context(.dark) :host(.studio-tags-input--filled) .studio-tags-input__container--focused{background:var(--studio-bg-primary-dark, #1f2937)}:host(.studio-tags-input--ghost) .studio-tags-input__container{background:transparent;border-color:transparent}:host(.studio-tags-input--ghost) .studio-tags-input__container--focused{background:var(--studio-bg-secondary, #f3f4f6)}:host-context(.dark) :host(.studio-tags-input--ghost) .studio-tags-input__container--focused{background:var(--studio-bg-secondary-dark, #374151)}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "studio-badge", inputs: ["variant", "size", "color", "radius", "icon", "iconPosition", "dot", "dotColor", "removable", "href", "target", "disabled", "value", "max", "showZero", "uppercase", "bold", "pulse", "autoColor"], outputs: ["removed", "clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5874
+ }
5875
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: TagsInputComponent, decorators: [{
5876
+ type: Component,
5877
+ args: [{ selector: 'studio-tags-input', standalone: true, imports: [BadgeComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
5878
+ {
5879
+ provide: NG_VALUE_ACCESSOR,
5880
+ useExisting: forwardRef(() => TagsInputComponent),
5881
+ multi: true,
5882
+ },
5883
+ ], host: {
5884
+ '[class]': 'hostClasses()',
5885
+ }, template: "<div class=\"studio-tags-input__wrapper\">\n @if (label()) {\n <label class=\"studio-tags-input__label\" [for]=\"inputId\">\n {{ label() }}\n @if (required()) {\n <span class=\"studio-tags-input__required\">*</span>\n }\n </label>\n }\n\n <div\n class=\"studio-tags-input__container\"\n [class.studio-tags-input__container--focused]=\"isFocused()\"\n [class.studio-tags-input__container--disabled]=\"disabled()\"\n [class.studio-tags-input__container--error]=\"error()\"\n (click)=\"focusInput()\"\n >\n @for (tag of tags(); track tag) {\n <studio-badge\n variant=\"soft\"\n [color]=\"tagColor()\"\n [size]=\"badgeSize()\"\n [removable]=\"!disabled()\"\n (removed)=\"removeTag(tag)\"\n >\n @if (tagPrefix()) {\n {{ tagPrefix() }}\n }\n {{ tag }}\n </studio-badge>\n }\n\n <input\n #inputElement\n [id]=\"inputId\"\n type=\"text\"\n class=\"studio-tags-input__input\"\n [placeholder]=\"tags().length === 0 ? placeholder() : ''\"\n [disabled]=\"disabled()\"\n [value]=\"inputValue()\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (paste)=\"onPaste($event)\"\n />\n </div>\n\n @if (hint() && !error()) {\n <p class=\"studio-tags-input__hint\">{{ hint() }}</p>\n }\n\n @if (error() && errorMessage()) {\n <p class=\"studio-tags-input__error\">{{ errorMessage() }}</p>\n }\n</div>\n", styles: [":host{display:inline-block}.studio-tags-input--full-width{display:block;width:100%}.studio-tags-input--full-width .studio-tags-input__container{width:100%}.studio-tags-input__wrapper{display:flex;flex-direction:column;gap:.25rem}.studio-tags-input__label{display:block;font-size:.875rem;font-weight:500;color:var(--studio-text-primary, #374151);margin-bottom:.25rem}:host-context(.dark) .studio-tags-input__label{color:var(--studio-text-primary-dark, #d1d5db)}.studio-tags-input__required{color:var(--studio-color-error, #ef4444);margin-left:.125rem}.studio-tags-input__container{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;padding:.5rem .75rem;min-height:2.5rem;border:1px solid var(--studio-border-color, #d1d5db);border-radius:var(--studio-radius-md, .5rem);background:var(--studio-bg-primary, #ffffff);cursor:text;transition:all .15s ease}:host-context(.dark) .studio-tags-input__container{background:var(--studio-bg-primary-dark, #1f2937);border-color:var(--studio-border-color-dark, #4b5563)}.studio-tags-input__container--focused{border-color:var(--studio-color-primary, #3b82f6);box-shadow:0 0 0 2px var(--studio-color-primary-alpha, rgba(59, 130, 246, .2))}.studio-tags-input__container--disabled{opacity:.6;cursor:not-allowed;background:var(--studio-bg-disabled, #f3f4f6)}:host-context(.dark) .studio-tags-input__container--disabled{background:var(--studio-bg-disabled-dark, #374151)}.studio-tags-input__container--error{border-color:var(--studio-color-error, #ef4444)}.studio-tags-input__container--error.studio-tags-input__container--focused{box-shadow:0 0 0 2px var(--studio-color-error-alpha, rgba(239, 68, 68, .2))}.studio-tags-input__input{flex:1;min-width:120px;border:none;outline:none;background:transparent;font-size:.875rem;color:var(--studio-text-primary, #111827);padding:0}:host-context(.dark) .studio-tags-input__input{color:var(--studio-text-primary-dark, #f9fafb)}.studio-tags-input__input::placeholder{color:var(--studio-text-muted, #9ca3af)}.studio-tags-input__input:disabled{cursor:not-allowed}.studio-tags-input__hint{font-size:.75rem;color:var(--studio-text-muted, #6b7280);margin:0}.studio-tags-input__error{font-size:.75rem;color:var(--studio-color-error, #ef4444);margin:0}:host(.studio-tags-input--sm) .studio-tags-input__container{min-height:2rem;padding:.25rem .5rem;gap:.25rem}:host(.studio-tags-input--sm) .studio-tags-input__input{font-size:.75rem}:host(.studio-tags-input--sm) .studio-tags-input__label{font-size:.75rem}:host(.studio-tags-input--lg) .studio-tags-input__container{min-height:3rem;padding:.625rem 1rem;gap:.5rem}:host(.studio-tags-input--lg) .studio-tags-input__input{font-size:1rem}:host(.studio-tags-input--lg) .studio-tags-input__label{font-size:1rem}:host(.studio-tags-input--filled) .studio-tags-input__container{background:var(--studio-bg-secondary, #f3f4f6);border-color:transparent}:host-context(.dark) :host(.studio-tags-input--filled) .studio-tags-input__container{background:var(--studio-bg-secondary-dark, #374151)}:host(.studio-tags-input--filled) .studio-tags-input__container--focused{background:var(--studio-bg-primary, #ffffff);border-color:var(--studio-color-primary, #3b82f6)}:host-context(.dark) :host(.studio-tags-input--filled) .studio-tags-input__container--focused{background:var(--studio-bg-primary-dark, #1f2937)}:host(.studio-tags-input--ghost) .studio-tags-input__container{background:transparent;border-color:transparent}:host(.studio-tags-input--ghost) .studio-tags-input__container--focused{background:var(--studio-bg-secondary, #f3f4f6)}:host-context(.dark) :host(.studio-tags-input--ghost) .studio-tags-input__container--focused{background:var(--studio-bg-secondary-dark, #374151)}\n"] }]
5886
+ }], propDecorators: { inputRef: [{ type: i0.ViewChild, args: ['inputElement', { isSignal: true }] }], sizeInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variantInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], tagPrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagPrefix", required: false }] }], tagColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagColor", required: false }] }], maxTags: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxTags", required: false }] }], minLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLength", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], allowDuplicates: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowDuplicates", required: false }] }], separators: [{ type: i0.Input, args: [{ isSignal: true, alias: "separators", required: false }] }], transform: [{ type: i0.Input, args: [{ isSignal: true, alias: "transform", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], errorMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorMessage", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], tagsChange: [{ type: i0.Output, args: ["tagsChange"] }], tagAdded: [{ type: i0.Output, args: ["tagAdded"] }], tagRemoved: [{ type: i0.Output, args: ["tagRemoved"] }] } });
5887
+
5705
5888
  /**
5706
5889
  * Pagination component for navigating through pages of data
5707
5890
  *
@@ -8530,5 +8713,5 @@ function hasChildren(block) {
8530
8713
  * Generated bundle index. Do not edit.
8531
8714
  */
8532
8715
 
8533
- export { AvatarComponent, BadgeComponent, BadgeWrapperComponent, BottomNavigationComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, COUNTRY_OPTIONS, CardComponent, ChatComponent, ChatInputComponent, ChatMessageComponent, CheckboxComponent, ColorPickerCompactComponent, ColorPickerComponent, ConfirmDialogComponent, ConfirmDialogService, DEFAULT_COLOR_PRESETS, DrawerComponent, DrawerService, DropdownComponent, EmptyStateComponent, FileViewerComponent, IconComponent, InputComponent, InspectorComponent, LogoComponent, MASK_PRESETS, MaskDirective, MaskEngine, MenuComponent, ModalComponent, NavbarComponent, PaginationComponent, PhoneInputComponent, PopoverComponent, RadioButtonComponent, STUDIO_CONFIG, SelectComponent, SidebarComponent, SignalStore, SkeletonComponent, StudioConfigService, SwitchComponent, TableColumnDirective, TableComponent, TabsComponent, TextareaComponent, ThemeSwitchComponent, ToastComponent, ToastService, TooltipComponent, classNames, defaultFileViewerLabels, hasChildren, isContentBlock, isFormBlock, isInteractiveBlock, isLayoutBlock, isSafeUrl, isStudioBlock, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
8716
+ export { AvatarComponent, BadgeComponent, BadgeWrapperComponent, BottomNavigationComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, COUNTRY_OPTIONS, CardComponent, ChatComponent, ChatInputComponent, ChatMessageComponent, CheckboxComponent, ColorPickerCompactComponent, ColorPickerComponent, ConfirmDialogComponent, ConfirmDialogService, DEFAULT_COLOR_PRESETS, DrawerComponent, DrawerService, DropdownComponent, EmptyStateComponent, FileViewerComponent, IconComponent, InputComponent, InspectorComponent, LogoComponent, MASK_PRESETS, MaskDirective, MaskEngine, MenuComponent, ModalComponent, NavbarComponent, PaginationComponent, PhoneInputComponent, PopoverComponent, RadioButtonComponent, STUDIO_CONFIG, SelectComponent, SidebarComponent, SignalStore, SkeletonComponent, StudioConfigService, SwitchComponent, TableColumnDirective, TableComponent, TabsComponent, TagsInputComponent, TextareaComponent, ThemeSwitchComponent, ToastComponent, ToastService, TooltipComponent, classNames, defaultFileViewerLabels, hasChildren, isContentBlock, isFormBlock, isInteractiveBlock, isLayoutBlock, isSafeUrl, isStudioBlock, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
8534
8717
  //# sourceMappingURL=eduboxpro-studio.mjs.map