otimus-library 0.3.39 → 0.3.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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, Input, Directive, HostBinding, ContentChild, ViewEncapsulation, EventEmitter, Output, ViewChildren, ViewChild, ChangeDetectionStrategy, forwardRef, ContentChildren } from '@angular/core';
2
+ import { Injectable, Component, Input, Directive, input, EventEmitter, Output, HostBinding, ContentChild, ViewEncapsulation, ViewChildren, ViewChild, ChangeDetectionStrategy, forwardRef, ContentChildren } from '@angular/core';
3
3
  import * as i2$1 from '@angular/cdk/menu';
4
4
  import { CdkMenuModule } from '@angular/cdk/menu';
5
5
  import * as i1 from '@angular/common';
@@ -8,7 +8,7 @@ import * as i2 from '@angular/platform-browser';
8
8
  import * as i5 from '@angular/forms';
9
9
  import { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
10
10
  import * as i1$1 from '@angular/common/http';
11
- import { ComponentPortal } from '@angular/cdk/portal';
11
+ import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
12
12
  import * as i3 from '@angular/cdk/overlay';
13
13
 
14
14
  class OtimusLibraryService {
@@ -539,6 +539,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
539
539
  type: Input
540
540
  }] } });
541
541
 
542
+ class OcCardComponent {
543
+ constructor() {
544
+ this.ocSelected = input(false, ...(ngDevMode ? [{ debugName: "ocSelected" }] : []));
545
+ this.ocColor = input('default', ...(ngDevMode ? [{ debugName: "ocColor" }] : []));
546
+ this.ocClickable = input(false, ...(ngDevMode ? [{ debugName: "ocClickable" }] : []));
547
+ this.ocClick = new EventEmitter();
548
+ }
549
+ onClick() {
550
+ this.ocClick.emit();
551
+ }
552
+ get color() {
553
+ return 'oc-' + this.ocColor();
554
+ }
555
+ get isSelected() {
556
+ return this.ocSelected() ? 'oc-card-selected' : '';
557
+ }
558
+ get isClickable() {
559
+ return this.ocClickable() ? 'oc-card-clickable' : '';
560
+ }
561
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OcCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
562
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.9", type: OcCardComponent, isStandalone: true, selector: "oc-card", inputs: { ocSelected: { classPropertyName: "ocSelected", publicName: "ocSelected", isSignal: true, isRequired: false, transformFunction: null }, ocColor: { classPropertyName: "ocColor", publicName: "ocColor", isSignal: true, isRequired: false, transformFunction: null }, ocClickable: { classPropertyName: "ocClickable", publicName: "ocClickable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ocClick: "ocClick" }, ngImport: i0, template: "<div\n class=\"oc-card\"\n [ngClass]=\"[color, isSelected, isClickable]\"\n (click)=\"onClick()\"\n>\n <div class=\"oc-card-header\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n <div class=\"oc-card-body\">\n <ng-content></ng-content>\n </div>\n <div class=\"oc-card-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.oc-card{border-radius:4px 8px 8px 4px;padding:1.5rem;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto 1fr;grid-row-gap:.5rem}.oc-card .oc-card-header{grid-area:1/1/1/1}.oc-card .oc-card-body{grid-area:2/1/2/1}.oc-card .oc-card-footer{grid-area:3/1/3/1}.oc-default{background-color:#f7f7f7;border-left:4px solid #8f9596;color:#8f9596}.oc-red{background-color:#fff3f3;border-left:4px solid #ed3a3a;color:#ed3a3a}.oc-green{background-color:#eefff7fc;border-left:4px solid #00dda3;color:#00dda3}.oc-card-selected{transform:translateY(-6px) scale(1.01);box-shadow:0 20px 30px #0000001f,0 6px 12px #0000000f,inset 0 1px #ffffff05;border-left-width:6px;outline:3px solid rgba(0,0,0,.04);outline-offset:6px;position:relative;z-index:1}.oc-card-selected:after{content:\"\\2713\";position:absolute;top:10px;right:10px;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;font-size:12px;font-weight:700;color:#fff;background:#00dda3;box-shadow:0 3px 6px #0000001f}.oc-card-clickable{transition:transform .18s cubic-bezier(.2,.9,.2,1),box-shadow .18s,border-left-width .18s,outline-offset .18s,background-color .18s;cursor:pointer}.oc-card-clickable:active{transform:translateY(1px) scale(.998)}.oc-card-clickable:focus-visible{outline:3px solid rgba(0,0,0,.06);outline-offset:4px}.oc-card-clickable:not(.oc-card-selected):hover{transform:translateY(-6px) scale(1.01);box-shadow:0 26px 40px #00000024,0 8px 18px #0000000f}.oc-card-clickable.oc-card-selected:hover{transform:translateY(-8px) scale(1.012);box-shadow:0 30px 48px #00000026,0 10px 20px #0000000f}.oc-card.disabled{cursor:default;pointer-events:none;opacity:.7}@media (prefers-reduced-motion: reduce){.oc-card-clickable,.oc-card-clickable:not(.oc-card-selected):hover,.oc-card-clickable.oc-card-selected:hover{transition:none!important;transform:none!important;box-shadow:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
563
+ }
564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OcCardComponent, decorators: [{
565
+ type: Component,
566
+ args: [{ selector: 'oc-card', standalone: true, imports: [CommonModule], template: "<div\n class=\"oc-card\"\n [ngClass]=\"[color, isSelected, isClickable]\"\n (click)=\"onClick()\"\n>\n <div class=\"oc-card-header\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n <div class=\"oc-card-body\">\n <ng-content></ng-content>\n </div>\n <div class=\"oc-card-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.oc-card{border-radius:4px 8px 8px 4px;padding:1.5rem;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto 1fr;grid-row-gap:.5rem}.oc-card .oc-card-header{grid-area:1/1/1/1}.oc-card .oc-card-body{grid-area:2/1/2/1}.oc-card .oc-card-footer{grid-area:3/1/3/1}.oc-default{background-color:#f7f7f7;border-left:4px solid #8f9596;color:#8f9596}.oc-red{background-color:#fff3f3;border-left:4px solid #ed3a3a;color:#ed3a3a}.oc-green{background-color:#eefff7fc;border-left:4px solid #00dda3;color:#00dda3}.oc-card-selected{transform:translateY(-6px) scale(1.01);box-shadow:0 20px 30px #0000001f,0 6px 12px #0000000f,inset 0 1px #ffffff05;border-left-width:6px;outline:3px solid rgba(0,0,0,.04);outline-offset:6px;position:relative;z-index:1}.oc-card-selected:after{content:\"\\2713\";position:absolute;top:10px;right:10px;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;font-size:12px;font-weight:700;color:#fff;background:#00dda3;box-shadow:0 3px 6px #0000001f}.oc-card-clickable{transition:transform .18s cubic-bezier(.2,.9,.2,1),box-shadow .18s,border-left-width .18s,outline-offset .18s,background-color .18s;cursor:pointer}.oc-card-clickable:active{transform:translateY(1px) scale(.998)}.oc-card-clickable:focus-visible{outline:3px solid rgba(0,0,0,.06);outline-offset:4px}.oc-card-clickable:not(.oc-card-selected):hover{transform:translateY(-6px) scale(1.01);box-shadow:0 26px 40px #00000024,0 8px 18px #0000000f}.oc-card-clickable.oc-card-selected:hover{transform:translateY(-8px) scale(1.012);box-shadow:0 30px 48px #00000026,0 10px 20px #0000000f}.oc-card.disabled{cursor:default;pointer-events:none;opacity:.7}@media (prefers-reduced-motion: reduce){.oc-card-clickable,.oc-card-clickable:not(.oc-card-selected):hover,.oc-card-clickable.oc-card-selected:hover{transition:none!important;transform:none!important;box-shadow:none!important}}\n"] }]
567
+ }], propDecorators: { ocSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "ocSelected", required: false }] }], ocColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "ocColor", required: false }] }], ocClickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "ocClickable", required: false }] }], ocClick: [{
568
+ type: Output
569
+ }] } });
570
+
542
571
  class OcFilterComponent {
543
572
  constructor(styleThemeService) {
544
573
  this.styleThemeService = styleThemeService;
@@ -2619,6 +2648,231 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
2619
2648
  type: Input
2620
2649
  }] } });
2621
2650
 
2651
+ class OcOverlayComponent {
2652
+ constructor(overlay, viewContainerRef) {
2653
+ this.overlay = overlay;
2654
+ this.viewContainerRef = viewContainerRef;
2655
+ this.ocContent = null;
2656
+ this.ocTrigger = 'click';
2657
+ this.ocPosition = 'center';
2658
+ this.ocShowBackdrop = true;
2659
+ this.ocCloseOnBackdropClick = true;
2660
+ this.ocWidth = 'auto';
2661
+ this.ocHeight = 'auto';
2662
+ this.ocStyle = 'otimus';
2663
+ this.ocDisabled = false;
2664
+ this.ocZIndex = 1000;
2665
+ this.ocOpen = new EventEmitter();
2666
+ this.ocClose = new EventEmitter();
2667
+ this.ocToggle = new EventEmitter();
2668
+ this.overlayRef = null;
2669
+ this.portal = null;
2670
+ this.isOverlayOpen = false;
2671
+ }
2672
+ ngAfterViewInit() {
2673
+ this.setupEventListeners();
2674
+ }
2675
+ ngOnDestroy() {
2676
+ this.closeOverlay();
2677
+ }
2678
+ setupEventListeners() {
2679
+ if (!this.trigger || this.ocDisabled)
2680
+ return;
2681
+ const triggerElement = this.trigger.nativeElement;
2682
+ if (this.ocTrigger === 'click') {
2683
+ triggerElement.addEventListener('click', (event) => {
2684
+ event.stopPropagation();
2685
+ this.toggleOverlay();
2686
+ });
2687
+ }
2688
+ else if (this.ocTrigger === 'hover') {
2689
+ triggerElement.addEventListener('mouseenter', () => {
2690
+ this.openOverlay();
2691
+ });
2692
+ triggerElement.addEventListener('mouseleave', () => {
2693
+ // Add a small delay before closing to allow moving into the overlay
2694
+ setTimeout(() => {
2695
+ this.closeOverlay();
2696
+ }, 100);
2697
+ });
2698
+ }
2699
+ }
2700
+ toggleOverlay() {
2701
+ if (this.isOverlayOpen) {
2702
+ this.closeOverlay();
2703
+ }
2704
+ else {
2705
+ this.openOverlay();
2706
+ }
2707
+ }
2708
+ openOverlay() {
2709
+ if (this.isOverlayOpen || this.ocDisabled || !this.overlayTemplate) {
2710
+ return;
2711
+ }
2712
+ const overlayConfig = this.getOverlayConfig();
2713
+ this.overlayRef = this.overlay.create(overlayConfig);
2714
+ this.portal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);
2715
+ this.overlayRef.attach(this.portal);
2716
+ this.isOverlayOpen = true;
2717
+ // Handle backdrop click
2718
+ if (this.ocShowBackdrop && this.ocCloseOnBackdropClick) {
2719
+ this.overlayRef.backdropClick().subscribe(() => {
2720
+ this.closeOverlay();
2721
+ });
2722
+ }
2723
+ this.ocOpen.emit();
2724
+ this.ocToggle.emit(true);
2725
+ }
2726
+ closeOverlay() {
2727
+ if (!this.overlayRef || !this.isOverlayOpen) {
2728
+ return;
2729
+ }
2730
+ this.overlayRef.detach();
2731
+ this.overlayRef.dispose();
2732
+ this.overlayRef = null;
2733
+ this.portal = null;
2734
+ this.isOverlayOpen = false;
2735
+ this.ocClose.emit();
2736
+ this.ocToggle.emit(false);
2737
+ }
2738
+ getOverlayConfig() {
2739
+ const positionStrategy = this.overlay.position()
2740
+ .flexibleConnectedTo(this.trigger.nativeElement)
2741
+ .withPositions(this.getPositions())
2742
+ .withFlexibleDimensions(true)
2743
+ .withPush(false);
2744
+ return {
2745
+ positionStrategy,
2746
+ hasBackdrop: this.ocShowBackdrop,
2747
+ backdropClass: this.ocShowBackdrop ? undefined : 'cdk-overlay-transparent-backdrop',
2748
+ panelClass: ['oc-overlay-panel', `oc-overlay-${this.ocStyle}`],
2749
+ width: this.parseSize(this.ocWidth),
2750
+ height: this.parseSize(this.ocHeight),
2751
+ disposeOnNavigation: true
2752
+ };
2753
+ }
2754
+ getPositions() {
2755
+ const basePositions = [
2756
+ {
2757
+ originX: 'center',
2758
+ originY: 'bottom',
2759
+ overlayX: 'center',
2760
+ overlayY: 'top',
2761
+ offsetX: 0,
2762
+ offsetY: 8
2763
+ },
2764
+ {
2765
+ originX: 'center',
2766
+ originY: 'top',
2767
+ overlayX: 'center',
2768
+ overlayY: 'bottom',
2769
+ offsetX: 0,
2770
+ offsetY: -8
2771
+ },
2772
+ {
2773
+ originX: 'end',
2774
+ originY: 'center',
2775
+ overlayX: 'start',
2776
+ overlayY: 'center',
2777
+ offsetX: -8,
2778
+ offsetY: 0
2779
+ },
2780
+ {
2781
+ originX: 'start',
2782
+ originY: 'center',
2783
+ overlayX: 'end',
2784
+ overlayY: 'center',
2785
+ offsetX: 8,
2786
+ offsetY: 0
2787
+ }
2788
+ ];
2789
+ // Position-specific configurations
2790
+ switch (this.ocPosition) {
2791
+ case 'top':
2792
+ return [
2793
+ {
2794
+ originX: 'center',
2795
+ originY: 'top',
2796
+ overlayX: 'center',
2797
+ overlayY: 'bottom',
2798
+ offsetX: 0,
2799
+ offsetY: -8
2800
+ },
2801
+ basePositions[0]
2802
+ ];
2803
+ case 'bottom':
2804
+ return [
2805
+ basePositions[0],
2806
+ basePositions[1]
2807
+ ];
2808
+ case 'left':
2809
+ return [
2810
+ {
2811
+ originX: 'start',
2812
+ originY: 'center',
2813
+ overlayX: 'end',
2814
+ overlayY: 'center',
2815
+ offsetX: -8,
2816
+ offsetY: 0
2817
+ },
2818
+ basePositions[2]
2819
+ ];
2820
+ case 'right':
2821
+ return [
2822
+ basePositions[2],
2823
+ basePositions[3]
2824
+ ];
2825
+ case 'center':
2826
+ default:
2827
+ return basePositions;
2828
+ }
2829
+ }
2830
+ parseSize(size) {
2831
+ if (size === 'auto' || size === undefined) {
2832
+ return undefined;
2833
+ }
2834
+ return typeof size === 'number' ? `${size}px` : size;
2835
+ }
2836
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OcOverlayComponent, deps: [{ token: i3.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
2837
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: OcOverlayComponent, isStandalone: true, selector: "oc-overlay", inputs: { ocContent: "ocContent", ocTrigger: "ocTrigger", ocPosition: "ocPosition", ocShowBackdrop: "ocShowBackdrop", ocCloseOnBackdropClick: "ocCloseOnBackdropClick", ocWidth: "ocWidth", ocHeight: "ocHeight", ocStyle: "ocStyle", ocDisabled: "ocDisabled", ocZIndex: "ocZIndex" }, outputs: { ocOpen: "ocOpen", ocClose: "ocClose", ocToggle: "ocToggle" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "overlayTemplate", first: true, predicate: ["overlayTemplate"], descendants: true }], ngImport: i0, template: "<!-- Trigger element -->\n<div #trigger class=\"oc-overlay-trigger\" [ngClass]=\"{\n 'disabled': ocDisabled,\n 'shui': ocStyle === 'shui'\n}\">\n <ng-content select=\"[ocTrigger]\"></ng-content>\n</div>\n\n<!-- Template for overlay content -->\n<ng-template #overlayTemplate>\n <div class=\"oc-overlay-content\" [ngClass]=\"{\n 'shui': ocStyle === 'shui'\n }\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".oc-overlay-trigger{display:inline-block;cursor:pointer;transition:opacity .2s ease}.oc-overlay-trigger.disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.oc-overlay-trigger:hover:not(.disabled){opacity:.8}.oc-overlay-panel{border-radius:0 8px 8px;box-shadow:0 4px 8.7px #00000021;z-index:1000;max-width:90vw;max-height:90vh;overflow:auto;animation:showUp .15s ease}.oc-overlay-content{padding:16px;font-family:inherit;font-size:1rem;line-height:1.5;color:#8f9596;background-color:#f8f9ff;border:2px solid #ffffff;border-radius:12px}.oc-overlay-panel.oc-overlay-otimus .oc-overlay-content{color:#8f9596}.oc-overlay-panel.oc-overlay-shui{background-color:#f5f5f5;border:2px solid #ebebeb}.oc-overlay-panel.oc-overlay-shui .oc-overlay-content{color:#7d7d7d}.oc-overlay-backdrop{background-color:#00000052;animation:backdropFadeIn .2s ease-out}@keyframes showUp{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 768px){.oc-overlay-panel{max-width:95vw;max-height:95vh}.oc-overlay-content{padding:12px;font-size:.875rem}}@media (prefers-contrast: high){.oc-overlay-panel{border-width:2px}}@media (prefers-reduced-motion: reduce){.oc-overlay-panel,.oc-overlay-backdrop{animation:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
2838
+ }
2839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OcOverlayComponent, decorators: [{
2840
+ type: Component,
2841
+ args: [{ selector: 'oc-overlay', imports: [CommonModule], template: "<!-- Trigger element -->\n<div #trigger class=\"oc-overlay-trigger\" [ngClass]=\"{\n 'disabled': ocDisabled,\n 'shui': ocStyle === 'shui'\n}\">\n <ng-content select=\"[ocTrigger]\"></ng-content>\n</div>\n\n<!-- Template for overlay content -->\n<ng-template #overlayTemplate>\n <div class=\"oc-overlay-content\" [ngClass]=\"{\n 'shui': ocStyle === 'shui'\n }\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".oc-overlay-trigger{display:inline-block;cursor:pointer;transition:opacity .2s ease}.oc-overlay-trigger.disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.oc-overlay-trigger:hover:not(.disabled){opacity:.8}.oc-overlay-panel{border-radius:0 8px 8px;box-shadow:0 4px 8.7px #00000021;z-index:1000;max-width:90vw;max-height:90vh;overflow:auto;animation:showUp .15s ease}.oc-overlay-content{padding:16px;font-family:inherit;font-size:1rem;line-height:1.5;color:#8f9596;background-color:#f8f9ff;border:2px solid #ffffff;border-radius:12px}.oc-overlay-panel.oc-overlay-otimus .oc-overlay-content{color:#8f9596}.oc-overlay-panel.oc-overlay-shui{background-color:#f5f5f5;border:2px solid #ebebeb}.oc-overlay-panel.oc-overlay-shui .oc-overlay-content{color:#7d7d7d}.oc-overlay-backdrop{background-color:#00000052;animation:backdropFadeIn .2s ease-out}@keyframes showUp{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 768px){.oc-overlay-panel{max-width:95vw;max-height:95vh}.oc-overlay-content{padding:12px;font-size:.875rem}}@media (prefers-contrast: high){.oc-overlay-panel{border-width:2px}}@media (prefers-reduced-motion: reduce){.oc-overlay-panel,.oc-overlay-backdrop{animation:none}}\n"] }]
2842
+ }], ctorParameters: () => [{ type: i3.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { ocContent: [{
2843
+ type: Input
2844
+ }], ocTrigger: [{
2845
+ type: Input
2846
+ }], ocPosition: [{
2847
+ type: Input
2848
+ }], ocShowBackdrop: [{
2849
+ type: Input
2850
+ }], ocCloseOnBackdropClick: [{
2851
+ type: Input
2852
+ }], ocWidth: [{
2853
+ type: Input
2854
+ }], ocHeight: [{
2855
+ type: Input
2856
+ }], ocStyle: [{
2857
+ type: Input
2858
+ }], ocDisabled: [{
2859
+ type: Input
2860
+ }], ocZIndex: [{
2861
+ type: Input
2862
+ }], ocOpen: [{
2863
+ type: Output
2864
+ }], ocClose: [{
2865
+ type: Output
2866
+ }], ocToggle: [{
2867
+ type: Output
2868
+ }], trigger: [{
2869
+ type: ViewChild,
2870
+ args: ['trigger']
2871
+ }], overlayTemplate: [{
2872
+ type: ViewChild,
2873
+ args: ['overlayTemplate']
2874
+ }] } });
2875
+
2622
2876
  /*
2623
2877
  * Public API Surface of otimus-library
2624
2878
  */
@@ -2627,5 +2881,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
2627
2881
  * Generated bundle index. Do not edit.
2628
2882
  */
2629
2883
 
2630
- export { OcAccordionComponent, OcAccordionItemComponent, OcAutocompleteComponent, OcBadgeComponent, OcButtonMenuComponent, OcCheckboxComponent, OcChipComponent, OcDateSelectComponent, OcFilterComponent, OcInputComponent, OcKeyValueComponent, OcLogComponent, OcMenuComponent, OcMenuHorizComponent, OcMenuHorizDirective, OcMessageComponent, OcModalComponent, OcModalFooterComponent, OcNotFoundComponent, OcPaginationComponent, OcProfileComponent, OcProgressComponent, OcStepComponent, OcStepperComponent, OcTabComponent, OcTabsComponent, OcToastComponent, OcToastService, OcToggleComponent, OcTooltipDirective, OtimusLibraryComponent, OtimusLibraryService, StyleThemeService };
2884
+ export { OcAccordionComponent, OcAccordionItemComponent, OcAutocompleteComponent, OcBadgeComponent, OcButtonMenuComponent, OcCardComponent, OcCheckboxComponent, OcChipComponent, OcDateSelectComponent, OcFilterComponent, OcInputComponent, OcKeyValueComponent, OcLogComponent, OcMenuComponent, OcMenuHorizComponent, OcMenuHorizDirective, OcMessageComponent, OcModalComponent, OcModalFooterComponent, OcNotFoundComponent, OcOverlayComponent, OcPaginationComponent, OcProfileComponent, OcProgressComponent, OcStepComponent, OcStepperComponent, OcTabComponent, OcTabsComponent, OcToastComponent, OcToastService, OcToggleComponent, OcTooltipDirective, OtimusLibraryComponent, OtimusLibraryService, StyleThemeService };
2631
2885
  //# sourceMappingURL=otimus-library.mjs.map