@eduboxpro/studio 0.1.36 → 0.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, signal, effect, Injectable, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, input, computed, ChangeDetectionStrategy, Component, untracked, output, PLATFORM_ID, ElementRef, contentChild, viewChild, forwardRef, DOCUMENT as DOCUMENT$1, DestroyRef, Injector, model, afterNextRender, HostListener, Renderer2, TemplateRef, ContentChild, Input, Directive, contentChildren, ViewEncapsulation } from '@angular/core';
2
+ import { InjectionToken, inject, signal, effect, Injectable, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, input, computed, ChangeDetectionStrategy, Component, ViewEncapsulation, untracked, output, PLATFORM_ID, ElementRef, contentChild, viewChild, forwardRef, DOCUMENT as DOCUMENT$1, DestroyRef, Injector, model, afterNextRender, HostListener, Renderer2, TemplateRef, ContentChild, Input, Directive, contentChildren } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { DOCUMENT, CommonModule, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';
5
5
  import * as LucideIcons from 'lucide-angular';
@@ -396,6 +396,115 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
396
396
  `, styles: [":host{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n"] }]
397
397
  }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], strokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "strokeWidth", required: false }] }], absoluteStrokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "absoluteStrokeWidth", required: false }] }], showFallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFallback", required: false }] }], fallbackIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallbackIcon", required: false }] }] } });
398
398
 
399
+ class AvatarComponent {
400
+ /** Image source URL */
401
+ src = input(...(ngDevMode ? [undefined, { debugName: "src" }] : []));
402
+ /** Alt text for image */
403
+ alt = input('', ...(ngDevMode ? [{ debugName: "alt" }] : []));
404
+ /** Name to generate initials from */
405
+ name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
406
+ /** Size variant */
407
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : []));
408
+ /** Shape variant */
409
+ shape = input('circle', ...(ngDevMode ? [{ debugName: "shape" }] : []));
410
+ /** Custom background color */
411
+ customColor = input(...(ngDevMode ? [undefined, { debugName: "customColor" }] : []));
412
+ /** Computed initials from name */
413
+ initials = computed(() => {
414
+ const name = this.name();
415
+ if (!name)
416
+ return '';
417
+ const parts = name.trim().split(/\s+/);
418
+ if (parts.length === 1) {
419
+ return parts[0].substring(0, 2);
420
+ }
421
+ return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0));
422
+ }, ...(ngDevMode ? [{ debugName: "initials" }] : []));
423
+ /** Computed background color */
424
+ backgroundColor = computed(() => {
425
+ if (this.customColor())
426
+ return this.customColor();
427
+ const name = this.name();
428
+ if (!name)
429
+ return undefined;
430
+ // Generate consistent color from name
431
+ const colors = [
432
+ '#ef4444', '#f97316', '#f59e0b', '#84cc16',
433
+ '#22c55e', '#14b8a6', '#06b6d4', '#0ea5e9',
434
+ '#3b82f6', '#6366f1', '#8b5cf6', '#a855f7',
435
+ '#d946ef', '#ec4899', '#f43f5e',
436
+ ];
437
+ let hash = 0;
438
+ for (let i = 0; i < name.length; i++) {
439
+ hash = name.charCodeAt(i) + ((hash << 5) - hash);
440
+ }
441
+ return colors[Math.abs(hash) % colors.length];
442
+ }, ...(ngDevMode ? [{ debugName: "backgroundColor" }] : []));
443
+ /** Computed CSS classes */
444
+ avatarClasses = computed(() => {
445
+ return `avatar avatar--${this.size()} avatar--${this.shape()}`;
446
+ }, ...(ngDevMode ? [{ debugName: "avatarClasses" }] : []));
447
+ /** Computed icon size based on avatar size */
448
+ iconSize = computed(() => {
449
+ const sizes = {
450
+ xs: 12,
451
+ sm: 16,
452
+ md: 20,
453
+ lg: 24,
454
+ xl: 32,
455
+ };
456
+ return sizes[this.size()];
457
+ }, ...(ngDevMode ? [{ debugName: "iconSize" }] : []));
458
+ onImageError(event) {
459
+ const img = event.target;
460
+ img.style.display = 'none';
461
+ }
462
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
463
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AvatarComponent, isStandalone: true, selector: "ui-avatar", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", 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 }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, customColor: { classPropertyName: "customColor", publicName: "customColor", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
464
+ <div
465
+ class="avatar"
466
+ [class]="avatarClasses()"
467
+ [style.background-color]="!src() ? backgroundColor() : undefined"
468
+ >
469
+ @if (src()) {
470
+ <img
471
+ class="avatar__image"
472
+ [src]="src()"
473
+ [alt]="alt()"
474
+ (error)="onImageError($event)"
475
+ />
476
+ } @else if (initials()) {
477
+ <span class="avatar__initials">{{ initials() }}</span>
478
+ } @else {
479
+ <studio-icon name="user" [size]="iconSize()" class="avatar__icon" />
480
+ }
481
+ </div>
482
+ `, isInline: true, styles: [".avatar{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:var(--studio-avatar-bg, #e5e7eb);color:var(--studio-avatar-text, #374151);font-weight:500;flex-shrink:0}.avatar--circle{border-radius:50%}.avatar--square{border-radius:8px}.avatar--xs{width:24px;height:24px;font-size:10px}.avatar--sm{width:32px;height:32px;font-size:12px}.avatar--md{width:40px;height:40px;font-size:14px}.avatar--lg{width:48px;height:48px;font-size:16px}.avatar--xl{width:64px;height:64px;font-size:20px}.avatar__image{width:100%;height:100%;object-fit:cover}.avatar__initials{text-transform:uppercase;-webkit-user-select:none;user-select:none}.avatar__icon{opacity:.6}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "studio-icon", inputs: ["name", "size", "color", "strokeWidth", "absoluteStrokeWidth", "showFallback", "fallbackIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
483
+ }
484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AvatarComponent, decorators: [{
485
+ type: Component,
486
+ args: [{ selector: 'ui-avatar', standalone: true, imports: [IconComponent], template: `
487
+ <div
488
+ class="avatar"
489
+ [class]="avatarClasses()"
490
+ [style.background-color]="!src() ? backgroundColor() : undefined"
491
+ >
492
+ @if (src()) {
493
+ <img
494
+ class="avatar__image"
495
+ [src]="src()"
496
+ [alt]="alt()"
497
+ (error)="onImageError($event)"
498
+ />
499
+ } @else if (initials()) {
500
+ <span class="avatar__initials">{{ initials() }}</span>
501
+ } @else {
502
+ <studio-icon name="user" [size]="iconSize()" class="avatar__icon" />
503
+ }
504
+ </div>
505
+ `, encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".avatar{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:var(--studio-avatar-bg, #e5e7eb);color:var(--studio-avatar-text, #374151);font-weight:500;flex-shrink:0}.avatar--circle{border-radius:50%}.avatar--square{border-radius:8px}.avatar--xs{width:24px;height:24px;font-size:10px}.avatar--sm{width:32px;height:32px;font-size:12px}.avatar--md{width:40px;height:40px;font-size:14px}.avatar--lg{width:48px;height:48px;font-size:16px}.avatar--xl{width:64px;height:64px;font-size:20px}.avatar__image{width:100%;height:100%;object-fit:cover}.avatar__initials{text-transform:uppercase;-webkit-user-select:none;user-select:none}.avatar__icon{opacity:.6}\n"] }]
506
+ }], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], alt: [{ type: i0.Input, args: [{ isSignal: true, alias: "alt", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], customColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "customColor", required: false }] }] } });
507
+
399
508
  // Минимальный набор - только для внутренних компонентов библиотеки
400
509
  const MINIMAL_ICONS = {
401
510
  X: LucideIcons.X,
@@ -3637,6 +3746,76 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
3637
3746
  `, styles: [":host{display:inline-block}.dropdown__item{width:100%;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:none;border:none;border-radius:var(--studio-radius-sm);color:var(--studio-text-primary);font-size:.875rem;cursor:pointer;transition:all var(--studio-transition-fast);text-align:left;&--disabled{opacity:.5;cursor:not-allowed}&--danger{color:var(--studio-error)}}.dropdown__item:hover:not(:disabled){background:var(--studio-bg-secondary)}.dropdown__item:active:not(:disabled){transform:scale(.98)}.dropdown__icon{flex-shrink:0;color:var(--studio-text-secondary)}.dropdown__label{flex:1}.dropdown__shortcut{font-size:.75rem;color:var(--studio-text-tertiary);font-family:var(--studio-font-family-mono, monospace)}.dropdown__divider{height:1px;background:var(--studio-border-primary);margin:.25rem 0}\n"] }]
3638
3747
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], trigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "trigger", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
3639
3748
 
3749
+ class EmptyStateComponent {
3750
+ /** Icon name from lucide icons */
3751
+ icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
3752
+ /** Title text */
3753
+ title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
3754
+ /** Description text */
3755
+ description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : []));
3756
+ /** Size variant */
3757
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : []));
3758
+ /** Computed icon size based on component size */
3759
+ iconSize = () => {
3760
+ const sizes = {
3761
+ sm: 20,
3762
+ md: 24,
3763
+ lg: 32,
3764
+ };
3765
+ return sizes[this.size()];
3766
+ };
3767
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3768
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: EmptyStateComponent, isStandalone: true, selector: "ui-empty-state", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3769
+ <div
3770
+ class="empty-state"
3771
+ [class.empty-state--sm]="size() === 'sm'"
3772
+ [class.empty-state--md]="size() === 'md'"
3773
+ [class.empty-state--lg]="size() === 'lg'"
3774
+ >
3775
+ @if (icon()) {
3776
+ <div class="empty-state__icon">
3777
+ <studio-icon [name]="icon()!" [size]="iconSize()" />
3778
+ </div>
3779
+ }
3780
+ @if (title()) {
3781
+ <h3 class="empty-state__title">{{ title() }}</h3>
3782
+ }
3783
+ @if (description()) {
3784
+ <p class="empty-state__description">{{ description() }}</p>
3785
+ }
3786
+ <div class="empty-state__actions">
3787
+ <ng-content />
3788
+ </div>
3789
+ </div>
3790
+ `, isInline: true, styles: [".empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:50%;background:var(--studio-bg-tertiary, #f3f4f6);color:var(--studio-text-tertiary, #9ca3af);margin-bottom:1rem}.empty-state--sm .empty-state__icon{width:3rem;height:3rem;margin-bottom:.75rem}.empty-state--lg .empty-state__icon{width:5rem;height:5rem;margin-bottom:1.5rem}.empty-state__title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--studio-text-primary, #111827)}.empty-state--sm .empty-state__title{font-size:1rem;margin-bottom:.25rem}.empty-state--lg .empty-state__title{font-size:1.25rem;margin-bottom:.75rem}.empty-state__description{margin:0 0 1.5rem;font-size:.875rem;color:var(--studio-text-secondary, #6b7280);max-width:24rem}.empty-state--sm .empty-state__description{font-size:.8125rem;margin-bottom:1rem}.empty-state--lg .empty-state__description{font-size:1rem;margin-bottom:2rem}.empty-state__actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.empty-state__actions:empty{display:none}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "studio-icon", inputs: ["name", "size", "color", "strokeWidth", "absoluteStrokeWidth", "showFallback", "fallbackIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3791
+ }
3792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: EmptyStateComponent, decorators: [{
3793
+ type: Component,
3794
+ args: [{ selector: 'ui-empty-state', standalone: true, imports: [IconComponent], template: `
3795
+ <div
3796
+ class="empty-state"
3797
+ [class.empty-state--sm]="size() === 'sm'"
3798
+ [class.empty-state--md]="size() === 'md'"
3799
+ [class.empty-state--lg]="size() === 'lg'"
3800
+ >
3801
+ @if (icon()) {
3802
+ <div class="empty-state__icon">
3803
+ <studio-icon [name]="icon()!" [size]="iconSize()" />
3804
+ </div>
3805
+ }
3806
+ @if (title()) {
3807
+ <h3 class="empty-state__title">{{ title() }}</h3>
3808
+ }
3809
+ @if (description()) {
3810
+ <p class="empty-state__description">{{ description() }}</p>
3811
+ }
3812
+ <div class="empty-state__actions">
3813
+ <ng-content />
3814
+ </div>
3815
+ </div>
3816
+ `, encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:50%;background:var(--studio-bg-tertiary, #f3f4f6);color:var(--studio-text-tertiary, #9ca3af);margin-bottom:1rem}.empty-state--sm .empty-state__icon{width:3rem;height:3rem;margin-bottom:.75rem}.empty-state--lg .empty-state__icon{width:5rem;height:5rem;margin-bottom:1.5rem}.empty-state__title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--studio-text-primary, #111827)}.empty-state--sm .empty-state__title{font-size:1rem;margin-bottom:.25rem}.empty-state--lg .empty-state__title{font-size:1.25rem;margin-bottom:.75rem}.empty-state__description{margin:0 0 1.5rem;font-size:.875rem;color:var(--studio-text-secondary, #6b7280);max-width:24rem}.empty-state--sm .empty-state__description{font-size:.8125rem;margin-bottom:1rem}.empty-state--lg .empty-state__description{font-size:1rem;margin-bottom:2rem}.empty-state__actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.empty-state__actions:empty{display:none}\n"] }]
3817
+ }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
3818
+
3640
3819
  /**
3641
3820
  * Input component with form control support, variants, and accessibility
3642
3821
  *
@@ -5323,6 +5502,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
5323
5502
  * Sidebar component
5324
5503
  */
5325
5504
 
5505
+ class SkeletonComponent {
5506
+ /** Variant of skeleton */
5507
+ variant = input('text', ...(ngDevMode ? [{ debugName: "variant" }] : []));
5508
+ /** Width of skeleton */
5509
+ width = input('100%', ...(ngDevMode ? [{ debugName: "width" }] : []));
5510
+ /** Height of skeleton */
5511
+ height = input(...(ngDevMode ? [undefined, { debugName: "height" }] : []));
5512
+ /** Enable animation */
5513
+ animate = input(true, ...(ngDevMode ? [{ debugName: "animate" }] : []));
5514
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: SkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5515
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.12", type: SkeletonComponent, isStandalone: true, selector: "ui-skeleton", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
5516
+ <div
5517
+ class="skeleton"
5518
+ [class.skeleton--text]="variant() === 'text'"
5519
+ [class.skeleton--circular]="variant() === 'circular'"
5520
+ [class.skeleton--rectangular]="variant() === 'rectangular'"
5521
+ [class.skeleton--rounded]="variant() === 'rounded'"
5522
+ [class.skeleton--animate]="animate()"
5523
+ [style.width]="width()"
5524
+ [style.height]="height()"
5525
+ ></div>
5526
+ `, isInline: true, styles: [".skeleton{background:var(--studio-skeleton-bg, #e5e7eb);display:block}.skeleton--animate{animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton--text{height:1em;border-radius:4px;transform-origin:0 55%;transform:scaleY(.6)}.skeleton--circular{border-radius:50%}.skeleton--rectangular{border-radius:0}.skeleton--rounded{border-radius:8px}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}:host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5527
+ }
5528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: SkeletonComponent, decorators: [{
5529
+ type: Component,
5530
+ args: [{ selector: 'ui-skeleton', standalone: true, template: `
5531
+ <div
5532
+ class="skeleton"
5533
+ [class.skeleton--text]="variant() === 'text'"
5534
+ [class.skeleton--circular]="variant() === 'circular'"
5535
+ [class.skeleton--rectangular]="variant() === 'rectangular'"
5536
+ [class.skeleton--rounded]="variant() === 'rounded'"
5537
+ [class.skeleton--animate]="animate()"
5538
+ [style.width]="width()"
5539
+ [style.height]="height()"
5540
+ ></div>
5541
+ `, encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".skeleton{background:var(--studio-skeleton-bg, #e5e7eb);display:block}.skeleton--animate{animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton--text{height:1em;border-radius:4px;transform-origin:0 55%;transform:scaleY(.6)}.skeleton--circular{border-radius:50%}.skeleton--rectangular{border-radius:0}.skeleton--rounded{border-radius:8px}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}:host{display:block}\n"] }]
5542
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }] } });
5543
+
5326
5544
  /**
5327
5545
  * Toggle switch component with customizable size and color
5328
5546
  *
@@ -8296,5 +8514,5 @@ function hasChildren(block) {
8296
8514
  * Generated bundle index. Do not edit.
8297
8515
  */
8298
8516
 
8299
- export { BadgeComponent, BadgeWrapperComponent, BottomNavigationComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, COUNTRY_OPTIONS, CardComponent, ChatComponent, ChatInputComponent, ChatMessageComponent, CheckboxComponent, ColorPickerCompactComponent, ColorPickerComponent, ConfirmDialogComponent, ConfirmDialogService, DEFAULT_COLOR_PRESETS, DrawerComponent, DrawerService, DropdownComponent, FileViewerComponent, IconComponent, InputComponent, InspectorComponent, LogoComponent, MASK_PRESETS, MaskDirective, MaskEngine, MenuComponent, ModalComponent, NavbarComponent, PaginationComponent, PhoneInputComponent, PopoverComponent, RadioButtonComponent, STUDIO_CONFIG, SelectComponent, SidebarComponent, SignalStore, 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 };
8517
+ 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 };
8300
8518
  //# sourceMappingURL=eduboxpro-studio.mjs.map