@catarina-ds/angular 0.1.2 → 0.1.3

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.
@@ -831,6 +831,7 @@ class Menu {
831
831
  if (!this.isDropdownActive) {
832
832
  this.restorePanels();
833
833
  }
834
+ this.cdr.markForCheck();
834
835
  }
835
836
  // Llamado por el botón chevron
836
837
  togglePanel() {
@@ -844,7 +845,7 @@ class Menu {
844
845
  if (!this.dropdownRef)
845
846
  return;
846
847
  const container = this.dropdownRef.panelContainer.nativeElement;
847
- const items = this.panels.map(panel => ({
848
+ const items = this.panels.map((panel) => ({
848
849
  label: panel.label,
849
850
  element: panel.elementRef.nativeElement,
850
851
  }));
@@ -859,7 +860,7 @@ class Menu {
859
860
  restorePanels() {
860
861
  this.isPanelOpen = false;
861
862
  if (this.panelsHost) {
862
- this.panels.forEach(panel => {
863
+ this.panels.forEach((panel) => {
863
864
  const el = panel.elementRef.nativeElement;
864
865
  el.style.display = '';
865
866
  this.panelsHost.nativeElement.appendChild(el);
@@ -867,11 +868,11 @@ class Menu {
867
868
  }
868
869
  }
869
870
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Menu, deps: [], target: i0.ɵɵFactoryTarget.Component });
870
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: Menu, isStandalone: true, selector: "cat-menu", queries: [{ propertyName: "panels", predicate: MenuPanel }], viewQueries: [{ propertyName: "panelsHost", first: true, predicate: ["panelsHost"], descendants: true }, { propertyName: "dropdownRef", first: true, predicate: ["dropdownRef"], descendants: true }], ngImport: i0, template: "<div class=\"menu-wrapper\">\n <div class=\"menu\">\n\n <!-- Contenido est\u00E1tico: todo lo que NO sea cat-menu-panel -->\n <div class=\"menu-static\">\n <ng-content select=\":not(cat-menu-panel)\"></ng-content>\n </div>\n\n <!-- Host de los cat-menu-panel: visible en estado inicial, oculto cuando el dropdown est\u00E1 activo -->\n <div #panelsHost class=\"menu-panels-host\" [style.display]=\"isDropdownActive ? 'none' : 'contents'\">\n <ng-content select=\"cat-menu-panel\"></ng-content>\n </div>\n\n <!-- Bot\u00F3n chevron: visible cuando isDropdownActive es true -->\n @if (isDropdownActive) {\n <div class=\"menu-toggle\">\n <cat-button variant=\"secondary\" (clicked)=\"togglePanel()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" style=\"width: 20px; height: 20px;\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </cat-button>\n </div>\n }\n\n <!-- Dropdown: siempre en el DOM cuando isDropdownActive, visible solo cuando isPanelOpen -->\n @if (isDropdownActive) {\n <cat-menu-dropdown\n #dropdownRef\n [style.display]=\"isPanelOpen ? 'block' : 'none'\"\n ></cat-menu-dropdown>\n }\n\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.menu-wrapper{position:relative;width:100%;padding-top:.75rem;padding-bottom:.75rem;box-sizing:border-box}.menu{height:auto;background-color:rgb(var(--element-color-4) / .7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.75rem 2.5rem;margin:auto;border-radius:52px;border:1px var(--neutral-color-7) solid;display:flex;gap:1em;align-items:center;position:relative;width:100%;box-sizing:border-box}.menu-static{display:flex;gap:1em;align-items:center;flex:1;flex-wrap:wrap;min-width:0}.menu-toggle{flex-shrink:0;margin-left:auto}cat-menu-dropdown{position:absolute;top:calc(100% - .75rem);right:.75rem;z-index:2}@media (max-width: 600px){:host{max-width:100vw}.menu-wrapper{max-width:100vw;padding:.5rem}.menu{padding:1rem 1.5rem;max-width:calc(100vw - 1rem);width:calc(100% - 1rem)}cat-menu-dropdown{right:.5rem;left:.5rem}}@media (min-width: 601px){:host{max-width:100%}.menu-wrapper{max-width:100%}.menu{max-width:calc(100% - 1.5rem)}}\n"], dependencies: [{ kind: "component", type: Button, selector: "cat-button", inputs: ["variant", "size", "disabled", "type", "iconLeft", "iconCenter", "iconRight", "customClass"], outputs: ["clicked"] }, { kind: "component", type: MenuDropdown, selector: "cat-menu-dropdown", inputs: ["items"] }] });
871
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: Menu, isStandalone: true, selector: "cat-menu", queries: [{ propertyName: "panels", predicate: MenuPanel }], viewQueries: [{ propertyName: "panelsHost", first: true, predicate: ["panelsHost"], descendants: true }, { propertyName: "dropdownRef", first: true, predicate: ["dropdownRef"], descendants: true }], ngImport: i0, template: "<div class=\"menu-wrapper\">\n <div class=\"menu\">\n <!-- Contenido est\u00E1tico: todo lo que NO sea cat-menu-panel -->\n <div class=\"menu-static\">\n <ng-content select=\":not(cat-menu-panel)\"></ng-content>\n </div>\n\n <!-- Host de los cat-menu-panel: visible en estado inicial, oculto cuando el dropdown est\u00E1 activo -->\n <div\n #panelsHost\n class=\"menu-panels-host\"\n [style.display]=\"isDropdownActive ? 'none' : 'contents'\"\n >\n <ng-content select=\"cat-menu-panel\"></ng-content>\n </div>\n\n <!-- Bot\u00F3n chevron: visible cuando isDropdownActive es true -->\n @if (isDropdownActive) {\n <div class=\"menu-toggle\">\n <cat-button variant=\"secondary\" (clicked)=\"togglePanel()\">\n @if (isPanelOpen) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n style=\"width: 20px; height: 20px\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m4.5 15.75 7.5-7.5 7.5 7.5\" />\n </svg>\n } @else {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n style=\"width: 20px; height: 20px\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n }\n </cat-button>\n </div>\n }\n\n <!-- Dropdown: siempre en el DOM cuando isDropdownActive, visible solo cuando isPanelOpen -->\n @if (isDropdownActive) {\n <cat-menu-dropdown\n #dropdownRef\n [style.display]=\"isPanelOpen ? 'block' : 'none'\"\n ></cat-menu-dropdown>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.menu-wrapper{position:relative;width:100%;padding-top:.75rem;padding-bottom:.75rem;box-sizing:border-box}.menu{height:auto;background-color:rgb(var(--element-color-4) / .7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.75rem 2.5rem;margin:auto;border-radius:52px;border:1px var(--neutral-color-7) solid;display:flex;gap:1em;align-items:center;position:relative;width:100%;box-sizing:border-box}.menu-static{display:flex;gap:1em;align-items:center;flex:1;flex-wrap:wrap;min-width:0}.menu-toggle{flex-shrink:0;margin-left:auto}cat-menu-dropdown{position:absolute;top:calc(100% - .75rem);right:.75rem;z-index:2}@media (max-width: 600px){:host{max-width:100vw}.menu-wrapper{max-width:100vw;padding:.5rem}.menu{padding:1rem 1.5rem;max-width:calc(100vw - 1rem);width:calc(100% - 1rem)}cat-menu-dropdown{right:.5rem;left:.5rem}}@media (min-width: 601px){:host{max-width:100%}.menu-wrapper{max-width:100%}.menu{max-width:calc(100% - 1.5rem)}}\n"], dependencies: [{ kind: "component", type: Button, selector: "cat-button", inputs: ["variant", "size", "disabled", "type", "iconLeft", "iconCenter", "iconRight", "customClass"], outputs: ["clicked"] }, { kind: "component", type: MenuDropdown, selector: "cat-menu-dropdown", inputs: ["items"] }] });
871
872
  }
872
873
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Menu, decorators: [{
873
874
  type: Component,
874
- args: [{ selector: 'cat-menu', imports: [Button, MenuDropdown], template: "<div class=\"menu-wrapper\">\n <div class=\"menu\">\n\n <!-- Contenido est\u00E1tico: todo lo que NO sea cat-menu-panel -->\n <div class=\"menu-static\">\n <ng-content select=\":not(cat-menu-panel)\"></ng-content>\n </div>\n\n <!-- Host de los cat-menu-panel: visible en estado inicial, oculto cuando el dropdown est\u00E1 activo -->\n <div #panelsHost class=\"menu-panels-host\" [style.display]=\"isDropdownActive ? 'none' : 'contents'\">\n <ng-content select=\"cat-menu-panel\"></ng-content>\n </div>\n\n <!-- Bot\u00F3n chevron: visible cuando isDropdownActive es true -->\n @if (isDropdownActive) {\n <div class=\"menu-toggle\">\n <cat-button variant=\"secondary\" (clicked)=\"togglePanel()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" style=\"width: 20px; height: 20px;\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </cat-button>\n </div>\n }\n\n <!-- Dropdown: siempre en el DOM cuando isDropdownActive, visible solo cuando isPanelOpen -->\n @if (isDropdownActive) {\n <cat-menu-dropdown\n #dropdownRef\n [style.display]=\"isPanelOpen ? 'block' : 'none'\"\n ></cat-menu-dropdown>\n }\n\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.menu-wrapper{position:relative;width:100%;padding-top:.75rem;padding-bottom:.75rem;box-sizing:border-box}.menu{height:auto;background-color:rgb(var(--element-color-4) / .7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.75rem 2.5rem;margin:auto;border-radius:52px;border:1px var(--neutral-color-7) solid;display:flex;gap:1em;align-items:center;position:relative;width:100%;box-sizing:border-box}.menu-static{display:flex;gap:1em;align-items:center;flex:1;flex-wrap:wrap;min-width:0}.menu-toggle{flex-shrink:0;margin-left:auto}cat-menu-dropdown{position:absolute;top:calc(100% - .75rem);right:.75rem;z-index:2}@media (max-width: 600px){:host{max-width:100vw}.menu-wrapper{max-width:100vw;padding:.5rem}.menu{padding:1rem 1.5rem;max-width:calc(100vw - 1rem);width:calc(100% - 1rem)}cat-menu-dropdown{right:.5rem;left:.5rem}}@media (min-width: 601px){:host{max-width:100%}.menu-wrapper{max-width:100%}.menu{max-width:calc(100% - 1.5rem)}}\n"] }]
875
+ args: [{ selector: 'cat-menu', imports: [Button, MenuDropdown], template: "<div class=\"menu-wrapper\">\n <div class=\"menu\">\n <!-- Contenido est\u00E1tico: todo lo que NO sea cat-menu-panel -->\n <div class=\"menu-static\">\n <ng-content select=\":not(cat-menu-panel)\"></ng-content>\n </div>\n\n <!-- Host de los cat-menu-panel: visible en estado inicial, oculto cuando el dropdown est\u00E1 activo -->\n <div\n #panelsHost\n class=\"menu-panels-host\"\n [style.display]=\"isDropdownActive ? 'none' : 'contents'\"\n >\n <ng-content select=\"cat-menu-panel\"></ng-content>\n </div>\n\n <!-- Bot\u00F3n chevron: visible cuando isDropdownActive es true -->\n @if (isDropdownActive) {\n <div class=\"menu-toggle\">\n <cat-button variant=\"secondary\" (clicked)=\"togglePanel()\">\n @if (isPanelOpen) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n style=\"width: 20px; height: 20px\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m4.5 15.75 7.5-7.5 7.5 7.5\" />\n </svg>\n } @else {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n style=\"width: 20px; height: 20px\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n }\n </cat-button>\n </div>\n }\n\n <!-- Dropdown: siempre en el DOM cuando isDropdownActive, visible solo cuando isPanelOpen -->\n @if (isDropdownActive) {\n <cat-menu-dropdown\n #dropdownRef\n [style.display]=\"isPanelOpen ? 'block' : 'none'\"\n ></cat-menu-dropdown>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.menu-wrapper{position:relative;width:100%;padding-top:.75rem;padding-bottom:.75rem;box-sizing:border-box}.menu{height:auto;background-color:rgb(var(--element-color-4) / .7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.75rem 2.5rem;margin:auto;border-radius:52px;border:1px var(--neutral-color-7) solid;display:flex;gap:1em;align-items:center;position:relative;width:100%;box-sizing:border-box}.menu-static{display:flex;gap:1em;align-items:center;flex:1;flex-wrap:wrap;min-width:0}.menu-toggle{flex-shrink:0;margin-left:auto}cat-menu-dropdown{position:absolute;top:calc(100% - .75rem);right:.75rem;z-index:2}@media (max-width: 600px){:host{max-width:100vw}.menu-wrapper{max-width:100vw;padding:.5rem}.menu{padding:1rem 1.5rem;max-width:calc(100vw - 1rem);width:calc(100% - 1rem)}cat-menu-dropdown{right:.5rem;left:.5rem}}@media (min-width: 601px){:host{max-width:100%}.menu-wrapper{max-width:100%}.menu{max-width:calc(100% - 1.5rem)}}\n"] }]
875
876
  }], propDecorators: { panels: [{
876
877
  type: ContentChildren,
877
878
  args: [MenuPanel]
@@ -1 +1 @@
1
- {"version":3,"file":"catarina-ds-angular.mjs","sources":["../../../projects/catarina/src/lib/design-system/icon/icon.ts","../../../projects/catarina/src/lib/design-system/icon/icon.html","../../../projects/catarina/src/lib/design-system/button/button.ts","../../../projects/catarina/src/lib/design-system/button/button.html","../../../projects/catarina/src/lib/design-system/panels/card/card.ts","../../../projects/catarina/src/lib/design-system/panels/card/card.html","../../../projects/catarina/src/lib/design-system/panels/accordion/accordion.ts","../../../projects/catarina/src/lib/design-system/panels/accordion/accordion.html","../../../projects/catarina/src/lib/design-system/panels/accordion-group/accordion-group.ts","../../../projects/catarina/src/lib/design-system/panels/accordion-group/accordion-group.html","../../../projects/catarina/src/lib/design-system/form/cat-input/cat-input.ts","../../../projects/catarina/src/lib/design-system/form/color-input/color-input.ts","../../../projects/catarina/src/lib/design-system/form/color-input/color-input.html","../../../projects/catarina/src/lib/design-system/form/select-input/select-input.ts","../../../projects/catarina/src/lib/design-system/form/select-input/select-input.html","../../../projects/catarina/src/lib/directives/drag.ts","../../../projects/catarina/src/lib/design-system/overlays/dialog/dialog.ts","../../../projects/catarina/src/lib/design-system/overlays/dialog/dialog.html","../../../projects/catarina/src/lib/design-system/overlays/drawer/drawer.ts","../../../projects/catarina/src/lib/design-system/overlays/drawer/drawer.html","../../../projects/catarina/src/lib/design-system/panels/menu/menu-dropdown/menu-dropdown.ts","../../../projects/catarina/src/lib/design-system/panels/menu/menu-dropdown/menu-dropdown.html","../../../projects/catarina/src/lib/design-system/panels/menu/menu-panel/menu-panel.ts","../../../projects/catarina/src/lib/design-system/panels/menu/menu-panel/menu-panel.html","../../../projects/catarina/src/lib/design-system/panels/menu/menu.ts","../../../projects/catarina/src/lib/design-system/panels/menu/menu.html","../../../projects/catarina/src/lib/theming/theming.ts","../../../projects/catarina/src/lib/design-system/dynamic-background/helpers/dynamic-background.service.ts","../../../projects/catarina/src/lib/design-system/dynamic-background/dynamic-background.ts","../../../projects/catarina/src/lib/design-system/dynamic-background/dynamic-background.html","../../../projects/catarina/src/public-api.ts","../../../projects/catarina/src/catarina-ds-angular.ts"],"sourcesContent":["import { Component, TemplateRef, Type } from '@angular/core';\n\nexport type IconContent = TemplateRef<unknown> | Type<unknown>;\n\n@Component({\n selector: 'cat-icon',\n imports: [],\n templateUrl: './icon.html',\n styleUrl: './icon.css',\n})\nexport class Icon {}\n","<ng-content></ng-content>\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, EventEmitter, HostBinding, Input, Output, TemplateRef } from '@angular/core';\nimport { Icon, IconContent } from '../icon/icon';\n\n@Component({\n selector: 'cat-button',\n imports: [Icon, NgComponentOutlet, NgTemplateOutlet],\n templateUrl: './button.html',\n styleUrl: './button.scss',\n})\nexport class Button {\n @Input() variant: 'primary' | 'secondary' | 'contrast' | 'outline' | 'ghost' = 'primary';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() disabled = false;\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() iconLeft?: IconContent;\n @Input() iconCenter?: IconContent;\n @Input() iconRight?: IconContent;\n @Input() customClass = '';\n\n @Output() clicked = new EventEmitter<MouseEvent>();\n\n get buttonClasses(): string {\n return `cat-button ${this.variant} ${this.size} ${this.customClass}`;\n }\n\n get iconSize(): string {\n const sizes = { sm: '16px', md: '20px', lg: '24px' };\n return sizes[this.size];\n }\n\n isTemplateRef(content: IconContent): content is TemplateRef<unknown> {\n return content instanceof TemplateRef;\n }\n\n @HostBinding('attr.data-button-class') get dataCustomClass() {\n return this.customClass;\n }\n\n handleClick(event: MouseEvent): void {\n if (!this.disabled) {\n this.clicked.emit(event);\n }\n }\n}\n","<button [class]=\"buttonClasses\" [disabled]=\"disabled\" [type]=\"type\" (click)=\"handleClick($event)\">\n @if (iconLeft) {\n <cat-icon class=\"icon-left\">\n @if (isTemplateRef(iconLeft)) {\n <ng-container [ngTemplateOutlet]=\"iconLeft\"></ng-container>\n } @else {\n <ng-container *ngComponentOutlet=\"iconLeft\"></ng-container>\n }\n </cat-icon>\n }\n\n <span class=\"button-content\">\n @if (iconCenter) {\n <cat-icon class=\"icon-center\">\n @if (isTemplateRef(iconCenter)) {\n <ng-container [ngTemplateOutlet]=\"iconCenter\"></ng-container>\n } @else {\n <ng-container *ngComponentOutlet=\"iconCenter\"></ng-container>\n }\n </cat-icon>\n }\n <ng-content></ng-content>\n </span>\n\n @if (iconRight) {\n <cat-icon class=\"icon-right\">\n @if (isTemplateRef(iconRight)) {\n <ng-container [ngTemplateOutlet]=\"iconRight\"></ng-container>\n } @else {\n <ng-container *ngComponentOutlet=\"iconRight\"></ng-container>\n }\n </cat-icon>\n }\n</button>\n","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'cat-card',\n templateUrl: './card.html',\n styleUrls: ['./card.css']\n})\nexport class Card {\n @Input() variant: 'surface' | 'outlined' | 'elevated' = 'surface';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() width: string = 'auto';\n @Input() customClass = '';\n\n // Expone las clases como atributos de datos\n @HostBinding('attr.data-card-variant') get dataVariant() {\n return this.variant;\n }\n \n @HostBinding('attr.data-card-size') get dataSize() {\n return this.size;\n }\n \n @HostBinding('attr.data-card-class') get dataCustomClass() {\n return this.customClass;\n }\n\n /*// También exponer como CSS Custom Properties\n @HostBinding('style.--card-variant') get cssVariant() {\n return this.variant;\n }\n \n @HostBinding('style.--card-custom-class') get cssCustomClass() {\n return this.customClass;\n }\n*/\n get cardClasses(): string {\n return `cat-card ${this.variant} ${this.size} ${this.customClass}`;\n }\n}","<section [class]=\"cardClasses\" [attr.data-class]=\"customClass\" [style]=\"`width: ${width};`\">\n <ng-content></ng-content>\n</section>","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Button as CButton } from '../../button/button';\nimport { IconContent } from '../../icon/icon';\nimport { NgClass, NgIf } from '@angular/common';\n\n@Component({\n selector: 'cat-accordion',\n imports: [CButton, NgClass, NgIf],\n templateUrl: './accordion.html',\n styleUrl: './accordion.css',\n})\nexport class Accordion {\n @Input() accordionId?: string;\n @Input() status: boolean = false; //false = unactive\n @Input() label: string = 'Accordion Name';\n\n @Input() disabled = false;\n @Input() customClass = '';\n\n // Propiedades del botón\n @Input() buttonVariant: 'primary' | 'secondary' | 'contrast' | 'outline' | 'ghost' = 'secondary';\n @Input() buttonSize: 'sm' | 'md' | 'lg' = 'md';\n @Input() iconLeft: IconContent | boolean = false;\n @Input() iconCenter: IconContent | boolean = false;\n @Input() iconRight: IconContent | boolean = true;\n\n // Propiedades del panel\n @Input() scrolleable: boolean = false;\n @Input() variant: 'surface' | 'outlined' | 'elevated' = 'surface';\n\n @Output() updateAccordionGroupStatusOutput = new EventEmitter<string>();\n\n @ViewChild('buttonRef', { static: false }) buttonRef!: ElementRef;\n buttonWidth: number = 0;\n\n ngAfterViewInit() {\n // Obtiene el ancho del botón después de renderizar\n setTimeout(() => {\n if (this.buttonRef) {\n const button = this.buttonRef.nativeElement.querySelector('button');\n if (button) {\n this.buttonWidth = button.offsetWidth;\n }\n }\n });\n }\n\n // Actualiza cuando cambia el label o otros inputs que afectan el tamaño\n ngOnChanges() {\n if (this.buttonRef) {\n const button = this.buttonRef.nativeElement.querySelector('button');\n if (button) {\n this.buttonWidth = button.offsetWidth;\n }\n }\n }\n updateAccordionGroupStatus() {\n this.status = !this.status;\n this.updateAccordionGroupStatusOutput.emit(this.accordionId!);\n }\n\n forceStatus(newStatus: boolean): void {\n this.status = newStatus;\n }\n\n @HostBinding('attr.data-accordion-class') get dataCustomClass() {\n return this.customClass;\n }\n\n get panelClasses(): string {\n return `${this.variant} ${this.customClass} ${this.scrolleable ? 'scrolleable' : undefined}`;\n }\n}\n","<ng-template #collapsedIcon>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"M12 5v14M5 12h14\"></path>\n </svg>\n</ng-template>\n<ng-template #expandedIcon>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"M5 12h14\"></path>\n </svg>\n</ng-template>\n\n<section class=\"accordion\">\n <div>\n <cat-button\n [iconLeft]=\"\n iconLeft === true ? (status ? expandedIcon : collapsedIcon) : iconLeft || undefined\n \"\n [iconCenter]=\"\n iconCenter === true ? (status ? expandedIcon : collapsedIcon) : iconCenter || undefined\n \"\n [iconRight]=\"\n iconRight === true ? (status ? expandedIcon : collapsedIcon) : iconRight || undefined\n \"\n (clicked)=\"updateAccordionGroupStatus()\"\n [variant]=\"buttonVariant\"\n [size]=\"buttonSize\"\n customClass=\"accordion-button\"\n [disabled]=\"disabled\"\n >\n {{ label }}\n </cat-button>\n </div>\n <div\n [class]=\"panelClasses\"\n [ngClass]=\"status ? 'accordion-panel-active' : 'accordion-panel-unactive'\"\n >\n <ng-content *ngIf=\"status\"></ng-content>\n </div>\n</section>\n","import { Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\nimport { Accordion as CAccordion } from '../accordion/accordion';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'cat-accordion-group',\n imports: [],\n templateUrl: './accordion-group.html',\n styleUrl: './accordion-group.css',\n})\nexport class AccordionGroup {\n @Input() singleExpand: boolean = true;\n @Input() customClass: string = '';\n\n @ContentChildren(CAccordion) accordions!: QueryList<CAccordion>;\n\n accordionActiveId?: String;\n\n sub?: Subscription | null;\n\n ngAfterContentInit(): void {\n if (this.singleExpand) {\n this.accordions.forEach(acc => {\n this.sub = acc.updateAccordionGroupStatusOutput.subscribe(id => {\n this.handleOpen(id);\n });\n });\n }\n }\n\n handleOpen(id: string) {\n this.accordions.forEach(acc => acc.forceStatus(false));\n const target = this.accordions.find(acc => acc.accordionId === id);\n if (this.accordionActiveId === id) {\n target?.forceStatus(false);\n this.accordionActiveId = undefined;\n } else {\n target?.forceStatus(true);\n this.accordionActiveId = id;\n }\n }\n\n @HostBinding('attr.data-accordion-group-class') get dataCustomClass() {\n return this.customClass;\n }\n\n get accordionGroupClasses() {\n return `${this.customClass}`;\n }\n}\n","<section [class]=\"accordionGroupClasses\">\n <ng-content></ng-content>\n</section>","import { Directive, ElementRef, Renderer2, OnInit, inject, Optional, Self, PLATFORM_ID } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Directive({\n selector: '[catInput]',\n standalone: true,\n host: {\n '[class.cat-input]': 'true',\n '[class.md]': 'true',\n '[class.invalid]': 'isInvalid'\n }\n})\nexport class CatInput implements OnInit {\n private el = inject(ElementRef);\n private platformId = inject(PLATFORM_ID);\n @Optional() @Self() public control: NgControl | null = inject(NgControl, { optional: true, self: true });\n\n private static stylesInjected = false;\n\n ngOnInit(): void {\n if (this.el.nativeElement.tagName.toLowerCase() !== 'input') {\n console.warn('catInput directive can only be used on <input> elements');\n return;\n }\n\n // Inyecta los estilos solo una vez\n if (!CatInput.stylesInjected && isPlatformBrowser(this.platformId)) {\n this.injectStyles();\n CatInput.stylesInjected = true;\n }\n }\n\n private injectStyles(): void {\n const style = document.createElement('style');\n style.textContent = `\n .cat-input {\n border: 1px solid var(--neutral-color-3);\n background-color: var(--neutral-color-0);\n color: var(--neutral-color-9);\n border-radius: 18px;\n outline: none;\n transition: all 0.2s;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n .cat-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .cat-input::placeholder {\n color: var(--neutral-color-6);\n transition: font-size 0.2s;\n }\n\n .cat-input:focus::placeholder {\n font-size: 0.7em;\n }\n\n .cat-input:focus {\n border: 1px solid var(--neutral-color-9);\n color: var(--neutral-color-9);\n -webkit-text-fill-color: var(--neutral-color-9);\n }\n\n .cat-input.invalid,\n .cat-input.ng-invalid.ng-touched {\n border: 1px solid red;\n }\n\n .cat-input.ng-valid.ng-touched {\n border: 1px solid green;\n }\n\n .cat-input:-webkit-autofill,\n .cat-input:-webkit-autofill:hover,\n .cat-input:-webkit-autofill:focus,\n .cat-input:-webkit-autofill:active {\n -webkit-box-shadow: 0 0 0 1000px var(--neutral-color-1) inset;\n box-shadow: 0 0 0 1000px var(--neutral-color-1) inset;\n -webkit-text-fill-color: var(--neutral-color-9);\n }\n\n\n .cat-input.md {\n padding: 0.5rem 1rem;\n font-size: 1rem;\n }\n\n .cat-input.sm {\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n }\n\n .cat-input.lg {\n padding: 0.75rem 1.5rem;\n font-size: 1.125rem;\n }\n `;\n document.head.appendChild(style);\n }\n\n get isInvalid(): boolean {\n return !!(this.control && this.control.invalid && this.control.touched);\n }\n}","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, forwardRef, Input, TemplateRef } from '@angular/core';\nimport { Icon as CIcon, IconContent } from '../../icon/icon';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'cat-color-input',\n imports: [CIcon, NgComponentOutlet, NgTemplateOutlet],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorInput),\n multi: true,\n },\n ],\n templateUrl: './color-input.html',\n styleUrl: './color-input.css',\n})\nexport class ColorInput implements ControlValueAccessor {\n value: string = '#000000';\n @Input() icon: IconContent | boolean = false;\n @Input() size: string = '2em';\n\n private onChange = (value: any) => {};\n onTouched = () => {};\n\n isTemplateRef(content: IconContent): content is TemplateRef<unknown> {\n return content instanceof TemplateRef;\n }\n\n onInput(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.onChange(newValue); // Informa al componente padre del cambio de valor\n }\n\n // Métodos requeridos por ControlValueAccessor\n writeValue(value: any): void {\n this.value = value || '#000000';\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<style>\n div {\n position: relative;\n aspect-ratio: 1/1;\n }\n\n div:hover {\n cursor: grab;\n }\n\n input {\n width: 100%;\n aspect-ratio: 1/1;\n top: 0;\n left: 0;\n }\n\n cat-icon {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n }\n</style>\n<!-- input-color.html -->\n<div [style.height]=\"size\">\n <input type=\"color\" [style]=\"icon ? 'opacity: 0;' : 'opacity: 100%;'\" [value]=\"value\" (input)=\"onInput($event)\"\n (blur)=\"onTouched()\" />\n @if (icon) {\n <cat-icon style=\"width: 100%; height: 100%;\">\n @if (icon === true) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <g id=\"SVGRepo_iconCarrier\">\n <path d=\"M10.5 10.5c.002 2.762-2.237 5-5 5s-5.002-2.238-5-5c-.002-2.76 2.237-5 5-5s5.002 2.24 5 5z\"\n color=\"#000000\" fill=\"#ff15a1\" stroke=\"#373737\" stroke-width=\".49999682600000006\"></path>\n <path\n d=\"M8 1.401a4.998 4.998 0 0 0-2.488 9.334c-.004-.078-.012-.155-.012-.234a4.998 4.998 0 0 1 7.488-4.334A4.994 4.994 0 0 0 8 1.4z\"\n fill=\"#1583ff\"></path>\n <path\n d=\"M10.5 5.5a4.998 4.998 0 0 0-5 5c0 .08.008.157.012.235A4.998 4.998 0 0 0 13 6.401c0-.079-.008-.156-.012-.234A4.975 4.975 0 0 0 10.5 5.5z\"\n fill=\"#00cf2d\"></path>\n <path\n d=\"M12.988 6.167c.004.078.012.155.012.234a4.998 4.998 0 0 1-7.489 4.334 4.994 4.994 0 0 0 4.989 4.766 4.998 4.998 0 0 0 2.488-9.334z\"\n fill=\"#f8ff15\"></path>\n <path\n d=\"M5.512 10.735a4.996 4.996 0 0 0 2.486 4.093 4.987 4.987 0 0 0 2.49-4.091A4.978 4.978 0 0 1 8 11.4a4.975 4.975 0 0 1-2.488-.666z\"\n fill=\"#ef0000\"></path>\n <path\n d=\"M7.998 6.173A4.991 4.991 0 0 0 5.5 10.5c0 .079.008.156.012.234a4.978 4.978 0 0 0 4.977.002c.003-.079.011-.157.011-.236a4.99 4.99 0 0 0-2.502-4.328z\"\n fill=\"#383027\"></path>\n <path\n d=\"M5.5 5.5c-.91 0-1.76.247-2.494.67a4.99 4.99 0 0 0 2.506 4.564c-.004-.077-.012-.154-.012-.233a4.991 4.991 0 0 1 2.498-4.328A4.975 4.975 0 0 0 5.5 5.5z\"\n fill=\"#5100cc\"></path>\n <path\n d=\"M8 1.401a4.998 4.998 0 0 0-4.994 4.77 4.998 4.998 0 1 0 4.992 8.658 4.998 4.998 0 1 0 4.99-8.662A4.994 4.994 0 0 0 8 1.4z\"\n fill=\"none\" stroke=\"#373737\" stroke-width=\".9999936520000001\"></path>\n </g>\n </svg>\n } @else if (isTemplateRef(icon)) {\n <ng-container [ngTemplateOutlet]=\"icon\"></ng-container>\n } @else {\n <ng-container *ngComponentOutlet=\"icon\"></ng-container>\n }\n </cat-icon>\n }\n</div>","import { NgClass } from '@angular/common';\nimport { Component, ElementRef, forwardRef, HostBinding, HostListener, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CatInput } from \"../cat-input/cat-input\";\nimport { Button } from '../../button/button';\n\n@Component({\n selector: 'cat-select-input',\n imports: [\n CatInput,\n NgClass,\n Button\n ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectInput),\n multi: true\n }],\n templateUrl: './select-input.html',\n styleUrl: './select-input.css',\n})\nexport class SelectInput implements ControlValueAccessor {\n @ViewChild('input') inputEl!: ElementRef<HTMLElement>;\n @ViewChild('optionsContainer', { static: false }) optionsContainer!: ElementRef<HTMLElement>;\n\n @Input() transform?: string; //This option basicly allow to the consumer put the options at the side where he wants\n @Input() options?: string[];\n @Input() placeholder: string = '';\n @Input() type: 'string' | 'number' = 'string';\n\n value: string | number = '';\n active = false;\n isInsideMenu = false;\n\n @Input() variant: 'surface' | 'elevated' | 'outlined' = 'surface';\n @Input() scrolleable: boolean = false;\n @Input() customClass: string = '';\n\n //@Output() selected = new EventEmitter<string>();\n\n // Accesibilidad\n @HostListener('document:click', ['$event'])\n outerClick(event: Event) {\n if (!this.el.nativeElement.contains(event.target)) {\n this.active = false;\n }\n };\n\n toggleActive() {\n this.active = !this.active;\n }\n\n constructor(\n private el: ElementRef,\n ) { }\n\n onChange = (value: any) => { };\n onTouched = () => { };\n\n // Aquí comienzan los eventos de ControlValueAccessor\n writeValue(value: any): void {\n this.value = value;\n };\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n // Aquí terminan los eventos de ControlValueAccessor\n\n choseValue(option: any) {\n this.value = option;\n this.onChange(option);\n this.onTouched();\n this.active = false;\n //this.selected.emit(option);\n };\n\n @HostBinding('attr.data-select-input-class') get dataCustomClass() {\n return this.customClass;\n }\n\n get selectInputClass(): string {\n return `${this.variant} ${this.scrolleable ? 'scrolleable' : ''}`;\n }\n}\n","<section class=\"select-input-container\">\n <input catInput #input [value]=\"value\" [type]=\"type\" readonly id=\"select\" (mousedown)=\"toggleActive()\"\n [placeholder]=\"placeholder\" class=\"select-input\">\n<section #optionsContainer role=\"listbox\" [class]=\"selectInputClass\" class=\"options\"\n [ngClass]=\"active ? 'options-active' : 'options-unactive'\" [style.transform]=\"transform\">\n @if (active) {\n @for (option of options; track $index) {\n <cat-button customClass=\"select-input-option\" (clicked)=\"choseValue(option)\" variant=\"ghost\">{{ option }}</cat-button>\n }\n<!-- <div role=\"option\" *ngFor=\"let option of options\" (mousedown)=\"choseValue(option)\">\n {{ option }}\n </div> -->\n }\n</section>\n</section>","import { AfterViewInit, Directive, DOCUMENT, ElementRef, Inject, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[CDrag]'\n})\nexport class Drag implements AfterViewInit {\n private offsetX = 0;\n private offsetY = 0;\n private dragging = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: Document\n ) { }\n\n ngAfterViewInit() {\n const el = this.el.nativeElement as HTMLElement;\n\n // Si el elemento no tiene position seteado, establece absolute\n if (typeof window !== 'undefined') {\n const computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'static') {\n this.renderer.setStyle(el, 'position', 'absolute');\n }\n }\n\n\n el.addEventListener('mousedown', (e: MouseEvent) => {\n this.dragging = true;\n this.offsetX = e.clientX - el.offsetLeft;\n this.offsetY = e.clientY - el.offsetTop;\n el.style.cursor = 'grabbing';\n });\n\n this.document.addEventListener('mousemove', (e: MouseEvent) => {\n if (this.dragging) {\n el.style.left = e.clientX - this.offsetX + 'px';\n el.style.top = e.clientY - this.offsetY + 'px';\n }\n });\n\n this.document.addEventListener('mouseup', () => {\n this.dragging = false;\n el.style.cursor = 'grab';\n });\n }\n\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnDestroy,\n OnInit,\n inject,\n ViewContainerRef,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Overlay, OverlayRef, OverlayConfig } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Drag } from '../../../directives/drag';\n\n@Component({\n selector: 'cat-dialog',\n imports: [Drag],\n templateUrl: './dialog.html',\n styleUrl: './dialog.css',\n})\nexport class Dialog implements OnInit, OnDestroy {\n // Inyecta el servicio Overlay del CDK\n private overlay = inject(Overlay);\n // ViewContainerRef necesario para crear el TemplatePortal\n private viewContainerRef = inject(ViewContainerRef);\n // Referencia al overlay creado\n private overlayRef?: OverlayRef;\n\n @Input() variant: 'surface' | 'outlined' | 'elevated' = 'surface';\n @Input() width: string = '300px';\n @Input() height: string = '200px';\n @Input() customClass = '';\n @Output() closs = new EventEmitter<boolean>();\n\n // Referencia al template que contiene el ng-content\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate!: TemplateRef<any>;\n\n private createOverlayConfig(): OverlayConfig {\n const positionStrategy = this.overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically();\n\n return {\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n panelClass: ['cat-dialog-overlay-panel', this.variant, this.customClass],\n };\n }\n\n private openDialog() {\n const config = this.createOverlayConfig();\n\n this.overlayRef = this.overlay.create(config);\n\n // TemplatePortal permite renderizar un template (con ng-content) dentro del overlay\n const portal = new TemplatePortal(this.dialogTemplate, this.viewContainerRef);\n\n this.overlayRef.attach(portal);\n\n // Escucha cuando se hace clic en el backdrop y cierra el dialog\n this.overlayRef.backdropClick().subscribe(() => {\n this.closeDialog();\n });\n\n // Escucha la tecla Escape para cerrar\n this.overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n this.closeDialog();\n }\n });\n }\n\n closeDialog() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n this.closs.emit(false);\n }\n }\n\n get dialogClasses(): string {\n return `${this.variant} {this.customClass}`;\n }\n\n ngOnInit() {\n this.openDialog();\n }\n\n ngOnDestroy() {\n this.closeDialog();\n }\n}\n","<!-- Template que se renderiza dentro del overlay del CDK -->\n<ng-template #dialogTemplate>\n <section [style]=\"`height: ${height}; width: ${width};`\" CDrag [class]=\"dialogClasses\">\n <ng-content></ng-content>\n </section>\n</ng-template>\n","import { Component, EventEmitter, Input, Output, OnDestroy, OnInit, inject, ViewContainerRef, TemplateRef, ViewChild } from '@angular/core';\nimport { Overlay, OverlayRef, OverlayConfig } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Button } from '../../button/button';\n\n@Component({\n selector: 'cat-drawer',\n imports: [Button],\n templateUrl: './drawer.html',\n styleUrl: './drawer.css',\n})\nexport class Drawer implements OnInit, OnDestroy {\n // Inyecta el servicio Overlay del CDK\n private overlay = inject(Overlay);\n // ViewContainerRef necesario para crear el TemplatePortal\n private viewContainerRef = inject(ViewContainerRef);\n // Referencia al overlay creado\n private overlayRef?: OverlayRef;\n\n @Input() side: 'left' | 'right' | 'top' | 'bottom' = 'left';\n @Input() variant: 'surface' | 'elevated' | 'outlined' = 'surface';\n @Input() customClass: string = '';\n @Output() closs = new EventEmitter<boolean>();\n\n // Referencia al template que contiene el ng-content\n @ViewChild('drawerTemplate', { static: true }) drawerTemplate!: TemplateRef<any>;\n\n private createOverlayConfig(): OverlayConfig {\n // Crea estrategia de posicionamiento global\n const positionStrategy = this.overlay.position().global();\n \n switch (this.side) {\n case 'left':\n positionStrategy.left('0');\n break;\n case 'right':\n positionStrategy.right('0');\n break;\n case 'top':\n positionStrategy.top('0');\n break;\n case 'bottom':\n positionStrategy.bottom('0');\n break;\n }\n\n return {\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n panelClass: ['cat-drawer-overlay-panel', this.side, this.variant, this.customClass],\n };\n }\n\n private openDrawer() {\n const config = this.createOverlayConfig();\n \n\n this.overlayRef = this.overlay.create(config);\n \n // Crea un portal con el template del drawer\n // TemplatePortal permite renderizar un template (con ng-content) dentro del overlay\n const portal = new TemplatePortal(this.drawerTemplate, this.viewContainerRef);\n \n // Adjunta el portal al overlay, esto renderiza el template dentro del overlay\n this.overlayRef.attach(portal);\n \n // Escucha cuando se hace clic en el backdrop y cierra el drawer\n this.overlayRef.backdropClick().subscribe(() => {\n this.closeDrawer();\n });\n \n // Escucha la tecla Escape para cerrar\n this.overlayRef.keydownEvents().subscribe(event => {\n if (event.key === 'Escape') {\n this.closeDrawer();\n }\n });\n }\n\n closeDrawer() {\n if (this.overlayRef) {\n // Desconecta el portal del overlay\n this.overlayRef.detach();\n // Limpia todos los recursos del overlay\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n // Emite el evento de cierre\n this.closs.emit(false);\n }\n }\n\n get drawerClasses(): string {\n return `${this.variant} ${this.side} ${this.customClass}`;\n }\n\n ngOnInit() {\n this.openDrawer();\n }\n\n ngOnDestroy() {\n this.closeDrawer();\n }\n}","<!-- Template que se renderiza dentro del overlay del CDK -->\n<ng-template #drawerTemplate>\n <ng-template #closeIcon>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 6 12 12M18 6 6 18\"></path>\n </svg>\n </ng-template>\n <section [class]=\"drawerClasses\">\n <cat-button\n [iconCenter]=\"closeIcon\"\n variant=\"contrast\"\n class=\"close-button\"\n (clicked)=\"closeDrawer()\"\n ></cat-button>\n <ng-content></ng-content>\n </section>\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { Button } from '../../../button/button';\n\nexport interface MenuDropdownItem {\n label: any;\n element: HTMLElement;\n}\n\n@Component({\n selector: 'cat-menu-dropdown',\n imports: [NgTemplateOutlet, Button],\n templateUrl: './menu-dropdown.html',\n styleUrl: './menu-dropdown.css',\n})\nexport class MenuDropdown {\n @Input() items: MenuDropdownItem[] = [];\n\n @ViewChild('panelContainer', { static: true }) panelContainer!: ElementRef<HTMLElement>;\n\n activeIndex: number = 0;\n\n get isSingle(): boolean {\n return this.items.length === 1;\n }\n\n isTemplateRef(value: any): value is TemplateRef<unknown> {\n return value instanceof TemplateRef;\n }\n\n setActive(index: number): void {\n // Oculta el panel activo actual\n this.items[this.activeIndex]?.element.style.setProperty('display', 'none');\n this.activeIndex = index;\n // Muestra el nuevo panel activo\n this.items[this.activeIndex]?.element.style.removeProperty('display');\n }\n\n showActivePanel(): void {\n this.items.forEach((item, i) => {\n item.element.style.setProperty('display', i === this.activeIndex ? '' : 'none');\n });\n }\n}\n","@if (!isSingle) {\n <!-- Tabs: solo cuando hay múltiples paneles -->\n <div class=\"dropdown-tabs\">\n @for (item of items; track $index) {\n @if (isTemplateRef(item.label)) {\n <cat-button\n variant=\"secondary\"\n [iconCenter]=\"item.label\"\n [customClass]=\"activeIndex === $index ? 'tab-active' : ''\"\n (clicked)=\"setActive($index)\"\n ></cat-button>\n } @else {\n <cat-button\n variant=\"secondary\"\n [customClass]=\"activeIndex === $index ? 'tab-active' : ''\"\n (clicked)=\"setActive($index)\"\n >{{ item.label }}</cat-button>\n }\n }\n </div>\n}\n\n<!-- Contenedor donde el Menu mueve los nodos DOM de cat-menu-panel -->\n<div class=\"dropdown-content\" #panelContainer></div>\n","import { Component, ElementRef, Input } from '@angular/core';\n\n@Component({\n selector: 'cat-menu-panel',\n templateUrl: './menu-panel.html',\n})\nexport class MenuPanel {\n @Input() label: any;\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n QueryList,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { Button } from '../../button/button';\nimport { MenuDropdown } from './menu-dropdown/menu-dropdown';\nimport { MenuPanel } from './menu-panel/menu-panel';\n\n@Component({\n selector: 'cat-menu',\n imports: [Button, MenuDropdown],\n templateUrl: './menu.html',\n styleUrl: './menu.css',\n})\nexport class Menu implements AfterContentInit, AfterViewChecked {\n @ContentChildren(MenuPanel) panels!: QueryList<MenuPanel>;\n @ViewChild('panelsHost') panelsHost!: ElementRef<HTMLElement>;\n @ViewChild('dropdownRef') dropdownRef?: MenuDropdown;\n\n private cdr = inject(ChangeDetectorRef);\n\n // Controla si los cat-menu-panel están colapsados hacia el dropdown\n isDropdownActive: boolean = false;\n\n // Controla si el panel del dropdown está visible\n isPanelOpen: boolean = false;\n\n // Flag para ejecutar el move de paneles en el próximo AfterViewChecked\n private pendingPanelMove: boolean = false;\n\n ngAfterContentInit(): void {}\n\n ngAfterViewChecked(): void {\n // Ejecuta el move cuando el dropdownRef ya está disponible en el DOM\n if (this.pendingPanelMove && this.dropdownRef) {\n this.pendingPanelMove = false;\n this.executePanelMove();\n }\n }\n\n // Llamado por el consumidor via referencia de template\n toggleContent(): void {\n this.isDropdownActive = !this.isDropdownActive;\n\n if (!this.isDropdownActive) {\n this.restorePanels();\n }\n }\n\n // Llamado por el botón chevron\n togglePanel(): void {\n this.isPanelOpen = !this.isPanelOpen;\n\n if (this.isPanelOpen) {\n // Marca el move pendiente — se ejecutará cuando dropdownRef esté disponible\n this.pendingPanelMove = true;\n }\n }\n\n private executePanelMove(): void {\n if (!this.dropdownRef) return;\n\n const container = this.dropdownRef.panelContainer.nativeElement;\n const items = this.panels.map(panel => ({\n label: panel.label,\n element: panel.elementRef.nativeElement,\n }));\n\n items.forEach((item, i) => {\n item.element.style.display = i === 0 ? '' : 'none';\n container.appendChild(item.element);\n });\n\n this.dropdownRef.items = items;\n this.dropdownRef.activeIndex = 0;\n this.cdr.detectChanges();\n }\n\n private restorePanels(): void {\n this.isPanelOpen = false;\n\n if (this.panelsHost) {\n this.panels.forEach(panel => {\n const el = panel.elementRef.nativeElement;\n el.style.display = '';\n this.panelsHost.nativeElement.appendChild(el);\n });\n }\n }\n}\n","<div class=\"menu-wrapper\">\n <div class=\"menu\">\n\n <!-- Contenido estático: todo lo que NO sea cat-menu-panel -->\n <div class=\"menu-static\">\n <ng-content select=\":not(cat-menu-panel)\"></ng-content>\n </div>\n\n <!-- Host de los cat-menu-panel: visible en estado inicial, oculto cuando el dropdown está activo -->\n <div #panelsHost class=\"menu-panels-host\" [style.display]=\"isDropdownActive ? 'none' : 'contents'\">\n <ng-content select=\"cat-menu-panel\"></ng-content>\n </div>\n\n <!-- Botón chevron: visible cuando isDropdownActive es true -->\n @if (isDropdownActive) {\n <div class=\"menu-toggle\">\n <cat-button variant=\"secondary\" (clicked)=\"togglePanel()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" style=\"width: 20px; height: 20px;\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n </cat-button>\n </div>\n }\n\n <!-- Dropdown: siempre en el DOM cuando isDropdownActive, visible solo cuando isPanelOpen -->\n @if (isDropdownActive) {\n <cat-menu-dropdown\n #dropdownRef\n [style.display]=\"isPanelOpen ? 'block' : 'none'\"\n ></cat-menu-dropdown>\n }\n\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ninterface RGB {\n red: number;\n green: number;\n blue: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Theming {\n //Light Theme = False\n private activeThemeSubject = new BehaviorSubject<boolean>(false);\n public activeTheme$ = this.activeThemeSubject.asObservable();\n\n //Palettes\n private allPalettesSubject = new BehaviorSubject<string[][]>([]);\n public allPalettes$ = this.allPalettesSubject.asObservable();\n\n generatePalettes(color: string, dark: boolean): string[][] {\n this.activeThemeSubject.next(dark);\n\n const primaryColors = this.calculatePrimaryColor(color);\n\n const dynamicPalettes = this.calculateDynamicPalettes(dark);\n\n // Asigna todas las paletas a variables locales\n let allPalettes: string[][] = [primaryColors];\n\n allPalettes = allPalettes.concat([dynamicPalettes.neutral]);\n allPalettes = allPalettes.concat([dynamicPalettes.elements]);\n\n this.allPalettesSubject.next(allPalettes);\n\n // Aplica el tema\n this.applyTheme(allPalettes);\n\n return this.allPalettesSubject.value;\n }\n\n public calculatePrimaryColor(color: string) {\n // Paso 1: Calcula el color\n const colors = this.hexToRgb(color);\n\n // Paso 2: Obtiene la paleta primaria (estática, no cambia con el tema)\n const primaryColors: string[] = this.palette(colors, false, 4); // Always use light theme\n\n const allPalettes = [\n primaryColors, // Keep primary (static)\n this.allPalettesSubject.value[1],\n this.allPalettesSubject.value[2]\n ];\n\n this.allPalettesSubject.next(allPalettes);\n\n this.applyTheme(allPalettes);\n \n return primaryColors;\n }\n\n public calculateDynamicPalettes(dark: boolean): { neutral: string[], elements: string[] } {\n const theme: boolean = dark;\n const contrastTheme: boolean = !dark;\n this.activeThemeSubject.next(dark);\n\n\n // Calcula los colores neutrales (cambian con el tema)\n const neutralColors: string[] = contrastTheme\n ? this.palette({ red: 255, green: 255, blue: 255 }, false, 9)\n : this.palette({ red: 0, green: 0, blue: 0 }, true, 9);\n\n // Calcula los colores de elementos (cambian con el tema)\n const elementsColors: string[] = this.elementsColors(theme, 3, 40);\n\n // Actualiza el array de paletas con valores dinámicos\n const allPalettes = [\n this.allPalettesSubject.value[0], // Keep primary (static)\n neutralColors,\n elementsColors\n ];\n\n this.allPalettesSubject.next(allPalettes);\n\n // Aplica el tema a las variables CSS\n this.applyTheme(allPalettes);\n\n return {\n neutral: neutralColors,\n elements: elementsColors\n };\n }\n\n private palette(colors: { red: number, green: number, blue: number }, dark: boolean, steps: number) {\n //Palette\n const colorsReturn: string[] = [];\n\n const contrastTheme: boolean = !dark;\n const target = contrastTheme ? 0 : 255;\n\n const umbralR = (target - colors.red) / steps;\n const umbralG = (target - colors.green) / steps;\n const umbralB = (target - colors.blue) / steps;\n\n for (let i = 0; i <= steps; i++) {\n const r = Math.round(colors.red + umbralR * i);\n const g = Math.round(colors.green + umbralG * i);\n const b = Math.round(colors.blue + umbralB * i);\n\n colorsReturn.push(`rgb(${r}, ${g}, ${b})`);\n }\n return colorsReturn;\n };\n\n private elementsColors(theme: boolean, iteration: number, amplitude: number) {\n amplitude = amplitude / iteration;\n const colorsReturn: string[] = [];\n for (let i = 0; i < 5; i++) {\n let r = theme ? 0 + ((85 - 0) / (5 - 1) * i) : 0 + ((255 - 0) / (5 - 1) * i);\n let g = theme ? 0 + ((85 - 0) / (5 - 1) * i) : 0 + ((255 - 0) / (5 - 1) * i);\n let b = theme ? 0 + ((85 - 0) / (5 - 1) * i) : 0 + ((255 - 0) / (5 - 1) * i);\n\n if (i <= iteration && theme === false) {\n r = r + amplitude;\n g = g + amplitude;\n b = b + amplitude;\n } else if (theme === false) {\n r = r - amplitude;\n g = g - amplitude;\n b = b - amplitude;\n }\n colorsReturn.push(`rgb(${r}, ${g},${b})`);\n };\n return colorsReturn;\n };\n\n private applyTheme(palettes: string[][]): void {\n if (typeof document === 'undefined') return;\n\n const root = document.documentElement;\n const cssVars = [\n { prefix: '--primary-color-', index: 0 },\n { prefix: '--neutral-color-', index: 1 },\n { prefix: '--element-color-', index: 2 }\n ];\n\n cssVars.forEach(({ prefix, index }) => {\n palettes[index]?.forEach((color, i) => {\n root.style.setProperty(`${prefix}${i}`, color);\n });\n });\n }\n\n private hexToRgb(hex: string): RGB {\n const value = parseInt(hex.replace('#', ''), 16);\n return {\n red: (value >> 16) & 255,\n green: (value >> 8) & 255,\n blue: value & 255,\n };\n }\n}","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class DynamicBackgroundService {\n readonly setImages$ = new Subject<string[]>();\n readonly setBackgroundImage$ = new Subject<number>();\n}\n","import { AfterViewInit, Component, effect, ElementRef, input, OnDestroy, Optional, Renderer2 } from '@angular/core';\nimport { Button } from '../button/button';\nimport { Subscription } from 'rxjs';\nimport { DynamicBackgroundService } from './helpers/dynamic-background.service';\n\n@Component({\n selector: 'cat-dynamic-background',\n imports: [Button],\n templateUrl: './dynamic-background.html',\n styleUrl: './dynamic-background.css',\n})\nexport class DynamicBackground implements AfterViewInit, OnDestroy {\n showControls = input<boolean>(true);\n images = input<string[]>();\n /** Label shown in the navigation controls next to the image counter. */\n controlsLabel = input<string>('Background Image');\n /** Slideshow interval in milliseconds. 0 = disabled. */\n slideshowInterval = input<number>(0);\n\n private backgroundElement?: HTMLElement;\n private resolvedImages: string[] = [];\n private imageIndex = 0;\n private slideshowTimer?: ReturnType<typeof setInterval>;\n\n private subscriptions = new Subscription();\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n @Optional() private bgService: DynamicBackgroundService,\n ) {\n effect(() => {\n this.startSlideshow(this.slideshowInterval());\n });\n\n if (this.bgService) {\n this.subscriptions.add(\n this.bgService.setImages$.subscribe((urls) => {\n this.resolvedImages = urls;\n this.applyBackground();\n this.startSlideshow(this.slideshowInterval());\n }),\n );\n\n this.subscriptions.add(\n this.bgService.setBackgroundImage$.subscribe((index) => {\n this.imageIndex = Math.max(0, Math.min(index, this.resolvedImages.length - 1));\n this.applyBackground();\n }),\n );\n }\n }\n\n ngAfterViewInit(): void {\n this.backgroundElement = this.el.nativeElement.querySelector('.generalBackground');\n this.resolvedImages = this.images() ?? [];\n this.applyBackground();\n this.startSlideshow(this.slideshowInterval());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n this.stopSlideshow();\n }\n\n private applyBackground(): void {\n if (!this.backgroundElement || !this.resolvedImages.length) return;\n this.renderer.setAttribute(\n this.backgroundElement,\n 'style',\n `background-image: url(${this.resolvedImages[this.imageIndex]});`,\n );\n }\n\n private startSlideshow(interval: number): void {\n this.stopSlideshow();\n if (interval <= 0 || !this.resolvedImages.length) return;\n this.slideshowTimer = setInterval(() => this.changeImageIndex(true), interval);\n }\n\n private stopSlideshow(): void {\n if (this.slideshowTimer) {\n clearInterval(this.slideshowTimer);\n this.slideshowTimer = undefined;\n }\n }\n\n changeImageIndex(increment: boolean): void {\n if (!this.resolvedImages.length) return;\n this.imageIndex += increment ? 1 : -1;\n if (this.imageIndex < 0) this.imageIndex = this.resolvedImages.length - 1;\n if (this.imageIndex >= this.resolvedImages.length) this.imageIndex = 0;\n this.applyBackground();\n }\n\n get currentIndex(): number {\n return this.imageIndex;\n }\n\n get totalImages(): number {\n return this.resolvedImages.length;\n }\n}\n","<ng-template #chevronRight>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\" />\n</svg>\n</ng-template>\n<ng-template #chevronLeft>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\n</svg>\n</ng-template>\n\n<section class=\"generalBackground\"></section>\n\n@if (showControls()) {\n<div class=\"multimedia-themes-controler\">\n <div>\n <cat-button\n variant=\"secondary\"\n (clicked)=\"changeImageIndex(false)\"\n [iconCenter]=\"chevronLeft\"\n >\n </cat-button>\n </div>\n <div>\n <p>\n <b>{{ controlsLabel() }} {{ currentIndex + 1 }} / {{ totalImages }}</b>\n </p>\n </div>\n <div>\n <cat-button\n variant=\"secondary\"\n (clicked)=\"changeImageIndex(true)\"\n [iconCenter]=\"chevronRight\"\n ></cat-button>\n </div>\n</div>\n}\n","/*\n * Public API Surface of catarina\n */\n\n// design-system\nexport * from './lib/design-system/icon/icon';\nexport * from './lib/design-system/button/button';\n\n// Panels\nexport * from './lib/design-system/panels/card/card';\nexport * from './lib/design-system/panels/accordion/accordion';\nexport * from './lib/design-system/panels/accordion-group/accordion-group';\n\n//form\nexport * from './lib/design-system/form/cat-input/cat-input';\nexport * from './lib/design-system/form/color-input/color-input';\nexport * from './lib/design-system/form/select-input/select-input';\n\n//Pending https://tecsify.com/blog/input-en-html/\n/*export * from './lib/design-system/form/date-input/date-input';\nexport * from './lib/design-system/form/file-input/file-input';\nexport * from './lib/design-system/form/password-input/password-input';\nexport * from './lib/design-system/form/range-input/range-input';\nexport * from './lib/design-system/form/text-area-input/text-area-input';\nexport * from './lib/design-system/form/time-input/time-input';*/\n/*\nimage, search, telefono, reset, radio button, checkbox, button, email\n*/\n\n//Overlays\n//Pending\nexport * from './lib/design-system/overlays/dialog/dialog';\nexport * from './lib/design-system/overlays/drawer/drawer';\nexport * from './lib/design-system/panels/menu/menu';\nexport * from './lib/design-system/panels/menu/menu-panel/menu-panel';\nexport * from './lib/design-system/panels/menu/menu-dropdown/menu-dropdown';\n\n/*Services and Directives */\n\nexport * from './lib/directives/drag';\nexport * from './lib/theming/theming';\n\n// Dynamic background\nexport * from './lib/design-system/dynamic-background/dynamic-background';\nexport * from './lib/design-system/dynamic-background/helpers/dynamic-background.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CButton","CAccordion","CIcon","i1.DynamicBackgroundService"],"mappings":"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"}
1
+ {"version":3,"file":"catarina-ds-angular.mjs","sources":["../../../projects/catarina/src/lib/design-system/icon/icon.ts","../../../projects/catarina/src/lib/design-system/icon/icon.html","../../../projects/catarina/src/lib/design-system/button/button.ts","../../../projects/catarina/src/lib/design-system/button/button.html","../../../projects/catarina/src/lib/design-system/panels/card/card.ts","../../../projects/catarina/src/lib/design-system/panels/card/card.html","../../../projects/catarina/src/lib/design-system/panels/accordion/accordion.ts","../../../projects/catarina/src/lib/design-system/panels/accordion/accordion.html","../../../projects/catarina/src/lib/design-system/panels/accordion-group/accordion-group.ts","../../../projects/catarina/src/lib/design-system/panels/accordion-group/accordion-group.html","../../../projects/catarina/src/lib/design-system/form/cat-input/cat-input.ts","../../../projects/catarina/src/lib/design-system/form/color-input/color-input.ts","../../../projects/catarina/src/lib/design-system/form/color-input/color-input.html","../../../projects/catarina/src/lib/design-system/form/select-input/select-input.ts","../../../projects/catarina/src/lib/design-system/form/select-input/select-input.html","../../../projects/catarina/src/lib/directives/drag.ts","../../../projects/catarina/src/lib/design-system/overlays/dialog/dialog.ts","../../../projects/catarina/src/lib/design-system/overlays/dialog/dialog.html","../../../projects/catarina/src/lib/design-system/overlays/drawer/drawer.ts","../../../projects/catarina/src/lib/design-system/overlays/drawer/drawer.html","../../../projects/catarina/src/lib/design-system/panels/menu/menu-dropdown/menu-dropdown.ts","../../../projects/catarina/src/lib/design-system/panels/menu/menu-dropdown/menu-dropdown.html","../../../projects/catarina/src/lib/design-system/panels/menu/menu-panel/menu-panel.ts","../../../projects/catarina/src/lib/design-system/panels/menu/menu-panel/menu-panel.html","../../../projects/catarina/src/lib/design-system/panels/menu/menu.ts","../../../projects/catarina/src/lib/design-system/panels/menu/menu.html","../../../projects/catarina/src/lib/theming/theming.ts","../../../projects/catarina/src/lib/design-system/dynamic-background/helpers/dynamic-background.service.ts","../../../projects/catarina/src/lib/design-system/dynamic-background/dynamic-background.ts","../../../projects/catarina/src/lib/design-system/dynamic-background/dynamic-background.html","../../../projects/catarina/src/public-api.ts","../../../projects/catarina/src/catarina-ds-angular.ts"],"sourcesContent":["import { Component, TemplateRef, Type } from '@angular/core';\n\nexport type IconContent = TemplateRef<unknown> | Type<unknown>;\n\n@Component({\n selector: 'cat-icon',\n imports: [],\n templateUrl: './icon.html',\n styleUrl: './icon.css',\n})\nexport class Icon {}\n","<ng-content></ng-content>\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, EventEmitter, HostBinding, Input, Output, TemplateRef } from '@angular/core';\nimport { Icon, IconContent } from '../icon/icon';\n\n@Component({\n selector: 'cat-button',\n imports: [Icon, NgComponentOutlet, NgTemplateOutlet],\n templateUrl: './button.html',\n styleUrl: './button.scss',\n})\nexport class Button {\n @Input() variant: 'primary' | 'secondary' | 'contrast' | 'outline' | 'ghost' = 'primary';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() disabled = false;\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() iconLeft?: IconContent;\n @Input() iconCenter?: IconContent;\n @Input() iconRight?: IconContent;\n @Input() customClass = '';\n\n @Output() clicked = new EventEmitter<MouseEvent>();\n\n get buttonClasses(): string {\n return `cat-button ${this.variant} ${this.size} ${this.customClass}`;\n }\n\n get iconSize(): string {\n const sizes = { sm: '16px', md: '20px', lg: '24px' };\n return sizes[this.size];\n }\n\n isTemplateRef(content: IconContent): content is TemplateRef<unknown> {\n return content instanceof TemplateRef;\n }\n\n @HostBinding('attr.data-button-class') get dataCustomClass() {\n return this.customClass;\n }\n\n handleClick(event: MouseEvent): void {\n if (!this.disabled) {\n this.clicked.emit(event);\n }\n }\n}\n","<button [class]=\"buttonClasses\" [disabled]=\"disabled\" [type]=\"type\" (click)=\"handleClick($event)\">\n @if (iconLeft) {\n <cat-icon class=\"icon-left\">\n @if (isTemplateRef(iconLeft)) {\n <ng-container [ngTemplateOutlet]=\"iconLeft\"></ng-container>\n } @else {\n <ng-container *ngComponentOutlet=\"iconLeft\"></ng-container>\n }\n </cat-icon>\n }\n\n <span class=\"button-content\">\n @if (iconCenter) {\n <cat-icon class=\"icon-center\">\n @if (isTemplateRef(iconCenter)) {\n <ng-container [ngTemplateOutlet]=\"iconCenter\"></ng-container>\n } @else {\n <ng-container *ngComponentOutlet=\"iconCenter\"></ng-container>\n }\n </cat-icon>\n }\n <ng-content></ng-content>\n </span>\n\n @if (iconRight) {\n <cat-icon class=\"icon-right\">\n @if (isTemplateRef(iconRight)) {\n <ng-container [ngTemplateOutlet]=\"iconRight\"></ng-container>\n } @else {\n <ng-container *ngComponentOutlet=\"iconRight\"></ng-container>\n }\n </cat-icon>\n }\n</button>\n","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'cat-card',\n templateUrl: './card.html',\n styleUrls: ['./card.css']\n})\nexport class Card {\n @Input() variant: 'surface' | 'outlined' | 'elevated' = 'surface';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() width: string = 'auto';\n @Input() customClass = '';\n\n // Expone las clases como atributos de datos\n @HostBinding('attr.data-card-variant') get dataVariant() {\n return this.variant;\n }\n \n @HostBinding('attr.data-card-size') get dataSize() {\n return this.size;\n }\n \n @HostBinding('attr.data-card-class') get dataCustomClass() {\n return this.customClass;\n }\n\n /*// También exponer como CSS Custom Properties\n @HostBinding('style.--card-variant') get cssVariant() {\n return this.variant;\n }\n \n @HostBinding('style.--card-custom-class') get cssCustomClass() {\n return this.customClass;\n }\n*/\n get cardClasses(): string {\n return `cat-card ${this.variant} ${this.size} ${this.customClass}`;\n }\n}","<section [class]=\"cardClasses\" [attr.data-class]=\"customClass\" [style]=\"`width: ${width};`\">\n <ng-content></ng-content>\n</section>","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Button as CButton } from '../../button/button';\nimport { IconContent } from '../../icon/icon';\nimport { NgClass, NgIf } from '@angular/common';\n\n@Component({\n selector: 'cat-accordion',\n imports: [CButton, NgClass, NgIf],\n templateUrl: './accordion.html',\n styleUrl: './accordion.css',\n})\nexport class Accordion {\n @Input() accordionId?: string;\n @Input() status: boolean = false; //false = unactive\n @Input() label: string = 'Accordion Name';\n\n @Input() disabled = false;\n @Input() customClass = '';\n\n // Propiedades del botón\n @Input() buttonVariant: 'primary' | 'secondary' | 'contrast' | 'outline' | 'ghost' = 'secondary';\n @Input() buttonSize: 'sm' | 'md' | 'lg' = 'md';\n @Input() iconLeft: IconContent | boolean = false;\n @Input() iconCenter: IconContent | boolean = false;\n @Input() iconRight: IconContent | boolean = true;\n\n // Propiedades del panel\n @Input() scrolleable: boolean = false;\n @Input() variant: 'surface' | 'outlined' | 'elevated' = 'surface';\n\n @Output() updateAccordionGroupStatusOutput = new EventEmitter<string>();\n\n @ViewChild('buttonRef', { static: false }) buttonRef!: ElementRef;\n buttonWidth: number = 0;\n\n ngAfterViewInit() {\n // Obtiene el ancho del botón después de renderizar\n setTimeout(() => {\n if (this.buttonRef) {\n const button = this.buttonRef.nativeElement.querySelector('button');\n if (button) {\n this.buttonWidth = button.offsetWidth;\n }\n }\n });\n }\n\n // Actualiza cuando cambia el label o otros inputs que afectan el tamaño\n ngOnChanges() {\n if (this.buttonRef) {\n const button = this.buttonRef.nativeElement.querySelector('button');\n if (button) {\n this.buttonWidth = button.offsetWidth;\n }\n }\n }\n updateAccordionGroupStatus() {\n this.status = !this.status;\n this.updateAccordionGroupStatusOutput.emit(this.accordionId!);\n }\n\n forceStatus(newStatus: boolean): void {\n this.status = newStatus;\n }\n\n @HostBinding('attr.data-accordion-class') get dataCustomClass() {\n return this.customClass;\n }\n\n get panelClasses(): string {\n return `${this.variant} ${this.customClass} ${this.scrolleable ? 'scrolleable' : undefined}`;\n }\n}\n","<ng-template #collapsedIcon>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"M12 5v14M5 12h14\"></path>\n </svg>\n</ng-template>\n<ng-template #expandedIcon>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"M5 12h14\"></path>\n </svg>\n</ng-template>\n\n<section class=\"accordion\">\n <div>\n <cat-button\n [iconLeft]=\"\n iconLeft === true ? (status ? expandedIcon : collapsedIcon) : iconLeft || undefined\n \"\n [iconCenter]=\"\n iconCenter === true ? (status ? expandedIcon : collapsedIcon) : iconCenter || undefined\n \"\n [iconRight]=\"\n iconRight === true ? (status ? expandedIcon : collapsedIcon) : iconRight || undefined\n \"\n (clicked)=\"updateAccordionGroupStatus()\"\n [variant]=\"buttonVariant\"\n [size]=\"buttonSize\"\n customClass=\"accordion-button\"\n [disabled]=\"disabled\"\n >\n {{ label }}\n </cat-button>\n </div>\n <div\n [class]=\"panelClasses\"\n [ngClass]=\"status ? 'accordion-panel-active' : 'accordion-panel-unactive'\"\n >\n <ng-content *ngIf=\"status\"></ng-content>\n </div>\n</section>\n","import { Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\nimport { Accordion as CAccordion } from '../accordion/accordion';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'cat-accordion-group',\n imports: [],\n templateUrl: './accordion-group.html',\n styleUrl: './accordion-group.css',\n})\nexport class AccordionGroup {\n @Input() singleExpand: boolean = true;\n @Input() customClass: string = '';\n\n @ContentChildren(CAccordion) accordions!: QueryList<CAccordion>;\n\n accordionActiveId?: String;\n\n sub?: Subscription | null;\n\n ngAfterContentInit(): void {\n if (this.singleExpand) {\n this.accordions.forEach(acc => {\n this.sub = acc.updateAccordionGroupStatusOutput.subscribe(id => {\n this.handleOpen(id);\n });\n });\n }\n }\n\n handleOpen(id: string) {\n this.accordions.forEach(acc => acc.forceStatus(false));\n const target = this.accordions.find(acc => acc.accordionId === id);\n if (this.accordionActiveId === id) {\n target?.forceStatus(false);\n this.accordionActiveId = undefined;\n } else {\n target?.forceStatus(true);\n this.accordionActiveId = id;\n }\n }\n\n @HostBinding('attr.data-accordion-group-class') get dataCustomClass() {\n return this.customClass;\n }\n\n get accordionGroupClasses() {\n return `${this.customClass}`;\n }\n}\n","<section [class]=\"accordionGroupClasses\">\n <ng-content></ng-content>\n</section>","import { Directive, ElementRef, Renderer2, OnInit, inject, Optional, Self, PLATFORM_ID } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Directive({\n selector: '[catInput]',\n standalone: true,\n host: {\n '[class.cat-input]': 'true',\n '[class.md]': 'true',\n '[class.invalid]': 'isInvalid'\n }\n})\nexport class CatInput implements OnInit {\n private el = inject(ElementRef);\n private platformId = inject(PLATFORM_ID);\n @Optional() @Self() public control: NgControl | null = inject(NgControl, { optional: true, self: true });\n\n private static stylesInjected = false;\n\n ngOnInit(): void {\n if (this.el.nativeElement.tagName.toLowerCase() !== 'input') {\n console.warn('catInput directive can only be used on <input> elements');\n return;\n }\n\n // Inyecta los estilos solo una vez\n if (!CatInput.stylesInjected && isPlatformBrowser(this.platformId)) {\n this.injectStyles();\n CatInput.stylesInjected = true;\n }\n }\n\n private injectStyles(): void {\n const style = document.createElement('style');\n style.textContent = `\n .cat-input {\n border: 1px solid var(--neutral-color-3);\n background-color: var(--neutral-color-0);\n color: var(--neutral-color-9);\n border-radius: 18px;\n outline: none;\n transition: all 0.2s;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n .cat-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .cat-input::placeholder {\n color: var(--neutral-color-6);\n transition: font-size 0.2s;\n }\n\n .cat-input:focus::placeholder {\n font-size: 0.7em;\n }\n\n .cat-input:focus {\n border: 1px solid var(--neutral-color-9);\n color: var(--neutral-color-9);\n -webkit-text-fill-color: var(--neutral-color-9);\n }\n\n .cat-input.invalid,\n .cat-input.ng-invalid.ng-touched {\n border: 1px solid red;\n }\n\n .cat-input.ng-valid.ng-touched {\n border: 1px solid green;\n }\n\n .cat-input:-webkit-autofill,\n .cat-input:-webkit-autofill:hover,\n .cat-input:-webkit-autofill:focus,\n .cat-input:-webkit-autofill:active {\n -webkit-box-shadow: 0 0 0 1000px var(--neutral-color-1) inset;\n box-shadow: 0 0 0 1000px var(--neutral-color-1) inset;\n -webkit-text-fill-color: var(--neutral-color-9);\n }\n\n\n .cat-input.md {\n padding: 0.5rem 1rem;\n font-size: 1rem;\n }\n\n .cat-input.sm {\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n }\n\n .cat-input.lg {\n padding: 0.75rem 1.5rem;\n font-size: 1.125rem;\n }\n `;\n document.head.appendChild(style);\n }\n\n get isInvalid(): boolean {\n return !!(this.control && this.control.invalid && this.control.touched);\n }\n}","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, forwardRef, Input, TemplateRef } from '@angular/core';\nimport { Icon as CIcon, IconContent } from '../../icon/icon';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'cat-color-input',\n imports: [CIcon, NgComponentOutlet, NgTemplateOutlet],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorInput),\n multi: true,\n },\n ],\n templateUrl: './color-input.html',\n styleUrl: './color-input.css',\n})\nexport class ColorInput implements ControlValueAccessor {\n value: string = '#000000';\n @Input() icon: IconContent | boolean = false;\n @Input() size: string = '2em';\n\n private onChange = (value: any) => {};\n onTouched = () => {};\n\n isTemplateRef(content: IconContent): content is TemplateRef<unknown> {\n return content instanceof TemplateRef;\n }\n\n onInput(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.onChange(newValue); // Informa al componente padre del cambio de valor\n }\n\n // Métodos requeridos por ControlValueAccessor\n writeValue(value: any): void {\n this.value = value || '#000000';\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<style>\n div {\n position: relative;\n aspect-ratio: 1/1;\n }\n\n div:hover {\n cursor: grab;\n }\n\n input {\n width: 100%;\n aspect-ratio: 1/1;\n top: 0;\n left: 0;\n }\n\n cat-icon {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n }\n</style>\n<!-- input-color.html -->\n<div [style.height]=\"size\">\n <input type=\"color\" [style]=\"icon ? 'opacity: 0;' : 'opacity: 100%;'\" [value]=\"value\" (input)=\"onInput($event)\"\n (blur)=\"onTouched()\" />\n @if (icon) {\n <cat-icon style=\"width: 100%; height: 100%;\">\n @if (icon === true) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <g id=\"SVGRepo_iconCarrier\">\n <path d=\"M10.5 10.5c.002 2.762-2.237 5-5 5s-5.002-2.238-5-5c-.002-2.76 2.237-5 5-5s5.002 2.24 5 5z\"\n color=\"#000000\" fill=\"#ff15a1\" stroke=\"#373737\" stroke-width=\".49999682600000006\"></path>\n <path\n d=\"M8 1.401a4.998 4.998 0 0 0-2.488 9.334c-.004-.078-.012-.155-.012-.234a4.998 4.998 0 0 1 7.488-4.334A4.994 4.994 0 0 0 8 1.4z\"\n fill=\"#1583ff\"></path>\n <path\n d=\"M10.5 5.5a4.998 4.998 0 0 0-5 5c0 .08.008.157.012.235A4.998 4.998 0 0 0 13 6.401c0-.079-.008-.156-.012-.234A4.975 4.975 0 0 0 10.5 5.5z\"\n fill=\"#00cf2d\"></path>\n <path\n d=\"M12.988 6.167c.004.078.012.155.012.234a4.998 4.998 0 0 1-7.489 4.334 4.994 4.994 0 0 0 4.989 4.766 4.998 4.998 0 0 0 2.488-9.334z\"\n fill=\"#f8ff15\"></path>\n <path\n d=\"M5.512 10.735a4.996 4.996 0 0 0 2.486 4.093 4.987 4.987 0 0 0 2.49-4.091A4.978 4.978 0 0 1 8 11.4a4.975 4.975 0 0 1-2.488-.666z\"\n fill=\"#ef0000\"></path>\n <path\n d=\"M7.998 6.173A4.991 4.991 0 0 0 5.5 10.5c0 .079.008.156.012.234a4.978 4.978 0 0 0 4.977.002c.003-.079.011-.157.011-.236a4.99 4.99 0 0 0-2.502-4.328z\"\n fill=\"#383027\"></path>\n <path\n d=\"M5.5 5.5c-.91 0-1.76.247-2.494.67a4.99 4.99 0 0 0 2.506 4.564c-.004-.077-.012-.154-.012-.233a4.991 4.991 0 0 1 2.498-4.328A4.975 4.975 0 0 0 5.5 5.5z\"\n fill=\"#5100cc\"></path>\n <path\n d=\"M8 1.401a4.998 4.998 0 0 0-4.994 4.77 4.998 4.998 0 1 0 4.992 8.658 4.998 4.998 0 1 0 4.99-8.662A4.994 4.994 0 0 0 8 1.4z\"\n fill=\"none\" stroke=\"#373737\" stroke-width=\".9999936520000001\"></path>\n </g>\n </svg>\n } @else if (isTemplateRef(icon)) {\n <ng-container [ngTemplateOutlet]=\"icon\"></ng-container>\n } @else {\n <ng-container *ngComponentOutlet=\"icon\"></ng-container>\n }\n </cat-icon>\n }\n</div>","import { NgClass } from '@angular/common';\nimport { Component, ElementRef, forwardRef, HostBinding, HostListener, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CatInput } from \"../cat-input/cat-input\";\nimport { Button } from '../../button/button';\n\n@Component({\n selector: 'cat-select-input',\n imports: [\n CatInput,\n NgClass,\n Button\n ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectInput),\n multi: true\n }],\n templateUrl: './select-input.html',\n styleUrl: './select-input.css',\n})\nexport class SelectInput implements ControlValueAccessor {\n @ViewChild('input') inputEl!: ElementRef<HTMLElement>;\n @ViewChild('optionsContainer', { static: false }) optionsContainer!: ElementRef<HTMLElement>;\n\n @Input() transform?: string; //This option basicly allow to the consumer put the options at the side where he wants\n @Input() options?: string[];\n @Input() placeholder: string = '';\n @Input() type: 'string' | 'number' = 'string';\n\n value: string | number = '';\n active = false;\n isInsideMenu = false;\n\n @Input() variant: 'surface' | 'elevated' | 'outlined' = 'surface';\n @Input() scrolleable: boolean = false;\n @Input() customClass: string = '';\n\n //@Output() selected = new EventEmitter<string>();\n\n // Accesibilidad\n @HostListener('document:click', ['$event'])\n outerClick(event: Event) {\n if (!this.el.nativeElement.contains(event.target)) {\n this.active = false;\n }\n };\n\n toggleActive() {\n this.active = !this.active;\n }\n\n constructor(\n private el: ElementRef,\n ) { }\n\n onChange = (value: any) => { };\n onTouched = () => { };\n\n // Aquí comienzan los eventos de ControlValueAccessor\n writeValue(value: any): void {\n this.value = value;\n };\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n // Aquí terminan los eventos de ControlValueAccessor\n\n choseValue(option: any) {\n this.value = option;\n this.onChange(option);\n this.onTouched();\n this.active = false;\n //this.selected.emit(option);\n };\n\n @HostBinding('attr.data-select-input-class') get dataCustomClass() {\n return this.customClass;\n }\n\n get selectInputClass(): string {\n return `${this.variant} ${this.scrolleable ? 'scrolleable' : ''}`;\n }\n}\n","<section class=\"select-input-container\">\n <input catInput #input [value]=\"value\" [type]=\"type\" readonly id=\"select\" (mousedown)=\"toggleActive()\"\n [placeholder]=\"placeholder\" class=\"select-input\">\n<section #optionsContainer role=\"listbox\" [class]=\"selectInputClass\" class=\"options\"\n [ngClass]=\"active ? 'options-active' : 'options-unactive'\" [style.transform]=\"transform\">\n @if (active) {\n @for (option of options; track $index) {\n <cat-button customClass=\"select-input-option\" (clicked)=\"choseValue(option)\" variant=\"ghost\">{{ option }}</cat-button>\n }\n<!-- <div role=\"option\" *ngFor=\"let option of options\" (mousedown)=\"choseValue(option)\">\n {{ option }}\n </div> -->\n }\n</section>\n</section>","import { AfterViewInit, Directive, DOCUMENT, ElementRef, Inject, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[CDrag]'\n})\nexport class Drag implements AfterViewInit {\n private offsetX = 0;\n private offsetY = 0;\n private dragging = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: Document\n ) { }\n\n ngAfterViewInit() {\n const el = this.el.nativeElement as HTMLElement;\n\n // Si el elemento no tiene position seteado, establece absolute\n if (typeof window !== 'undefined') {\n const computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'static') {\n this.renderer.setStyle(el, 'position', 'absolute');\n }\n }\n\n\n el.addEventListener('mousedown', (e: MouseEvent) => {\n this.dragging = true;\n this.offsetX = e.clientX - el.offsetLeft;\n this.offsetY = e.clientY - el.offsetTop;\n el.style.cursor = 'grabbing';\n });\n\n this.document.addEventListener('mousemove', (e: MouseEvent) => {\n if (this.dragging) {\n el.style.left = e.clientX - this.offsetX + 'px';\n el.style.top = e.clientY - this.offsetY + 'px';\n }\n });\n\n this.document.addEventListener('mouseup', () => {\n this.dragging = false;\n el.style.cursor = 'grab';\n });\n }\n\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnDestroy,\n OnInit,\n inject,\n ViewContainerRef,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Overlay, OverlayRef, OverlayConfig } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Drag } from '../../../directives/drag';\n\n@Component({\n selector: 'cat-dialog',\n imports: [Drag],\n templateUrl: './dialog.html',\n styleUrl: './dialog.css',\n})\nexport class Dialog implements OnInit, OnDestroy {\n // Inyecta el servicio Overlay del CDK\n private overlay = inject(Overlay);\n // ViewContainerRef necesario para crear el TemplatePortal\n private viewContainerRef = inject(ViewContainerRef);\n // Referencia al overlay creado\n private overlayRef?: OverlayRef;\n\n @Input() variant: 'surface' | 'outlined' | 'elevated' = 'surface';\n @Input() width: string = '300px';\n @Input() height: string = '200px';\n @Input() customClass = '';\n @Output() closs = new EventEmitter<boolean>();\n\n // Referencia al template que contiene el ng-content\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate!: TemplateRef<any>;\n\n private createOverlayConfig(): OverlayConfig {\n const positionStrategy = this.overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically();\n\n return {\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n panelClass: ['cat-dialog-overlay-panel', this.variant, this.customClass],\n };\n }\n\n private openDialog() {\n const config = this.createOverlayConfig();\n\n this.overlayRef = this.overlay.create(config);\n\n // TemplatePortal permite renderizar un template (con ng-content) dentro del overlay\n const portal = new TemplatePortal(this.dialogTemplate, this.viewContainerRef);\n\n this.overlayRef.attach(portal);\n\n // Escucha cuando se hace clic en el backdrop y cierra el dialog\n this.overlayRef.backdropClick().subscribe(() => {\n this.closeDialog();\n });\n\n // Escucha la tecla Escape para cerrar\n this.overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n this.closeDialog();\n }\n });\n }\n\n closeDialog() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n this.closs.emit(false);\n }\n }\n\n get dialogClasses(): string {\n return `${this.variant} {this.customClass}`;\n }\n\n ngOnInit() {\n this.openDialog();\n }\n\n ngOnDestroy() {\n this.closeDialog();\n }\n}\n","<!-- Template que se renderiza dentro del overlay del CDK -->\n<ng-template #dialogTemplate>\n <section [style]=\"`height: ${height}; width: ${width};`\" CDrag [class]=\"dialogClasses\">\n <ng-content></ng-content>\n </section>\n</ng-template>\n","import { Component, EventEmitter, Input, Output, OnDestroy, OnInit, inject, ViewContainerRef, TemplateRef, ViewChild } from '@angular/core';\nimport { Overlay, OverlayRef, OverlayConfig } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Button } from '../../button/button';\n\n@Component({\n selector: 'cat-drawer',\n imports: [Button],\n templateUrl: './drawer.html',\n styleUrl: './drawer.css',\n})\nexport class Drawer implements OnInit, OnDestroy {\n // Inyecta el servicio Overlay del CDK\n private overlay = inject(Overlay);\n // ViewContainerRef necesario para crear el TemplatePortal\n private viewContainerRef = inject(ViewContainerRef);\n // Referencia al overlay creado\n private overlayRef?: OverlayRef;\n\n @Input() side: 'left' | 'right' | 'top' | 'bottom' = 'left';\n @Input() variant: 'surface' | 'elevated' | 'outlined' = 'surface';\n @Input() customClass: string = '';\n @Output() closs = new EventEmitter<boolean>();\n\n // Referencia al template que contiene el ng-content\n @ViewChild('drawerTemplate', { static: true }) drawerTemplate!: TemplateRef<any>;\n\n private createOverlayConfig(): OverlayConfig {\n // Crea estrategia de posicionamiento global\n const positionStrategy = this.overlay.position().global();\n \n switch (this.side) {\n case 'left':\n positionStrategy.left('0');\n break;\n case 'right':\n positionStrategy.right('0');\n break;\n case 'top':\n positionStrategy.top('0');\n break;\n case 'bottom':\n positionStrategy.bottom('0');\n break;\n }\n\n return {\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n panelClass: ['cat-drawer-overlay-panel', this.side, this.variant, this.customClass],\n };\n }\n\n private openDrawer() {\n const config = this.createOverlayConfig();\n \n\n this.overlayRef = this.overlay.create(config);\n \n // Crea un portal con el template del drawer\n // TemplatePortal permite renderizar un template (con ng-content) dentro del overlay\n const portal = new TemplatePortal(this.drawerTemplate, this.viewContainerRef);\n \n // Adjunta el portal al overlay, esto renderiza el template dentro del overlay\n this.overlayRef.attach(portal);\n \n // Escucha cuando se hace clic en el backdrop y cierra el drawer\n this.overlayRef.backdropClick().subscribe(() => {\n this.closeDrawer();\n });\n \n // Escucha la tecla Escape para cerrar\n this.overlayRef.keydownEvents().subscribe(event => {\n if (event.key === 'Escape') {\n this.closeDrawer();\n }\n });\n }\n\n closeDrawer() {\n if (this.overlayRef) {\n // Desconecta el portal del overlay\n this.overlayRef.detach();\n // Limpia todos los recursos del overlay\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n // Emite el evento de cierre\n this.closs.emit(false);\n }\n }\n\n get drawerClasses(): string {\n return `${this.variant} ${this.side} ${this.customClass}`;\n }\n\n ngOnInit() {\n this.openDrawer();\n }\n\n ngOnDestroy() {\n this.closeDrawer();\n }\n}","<!-- Template que se renderiza dentro del overlay del CDK -->\n<ng-template #drawerTemplate>\n <ng-template #closeIcon>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 6 12 12M18 6 6 18\"></path>\n </svg>\n </ng-template>\n <section [class]=\"drawerClasses\">\n <cat-button\n [iconCenter]=\"closeIcon\"\n variant=\"contrast\"\n class=\"close-button\"\n (clicked)=\"closeDrawer()\"\n ></cat-button>\n <ng-content></ng-content>\n </section>\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { Button } from '../../../button/button';\n\nexport interface MenuDropdownItem {\n label: any;\n element: HTMLElement;\n}\n\n@Component({\n selector: 'cat-menu-dropdown',\n imports: [NgTemplateOutlet, Button],\n templateUrl: './menu-dropdown.html',\n styleUrl: './menu-dropdown.css',\n})\nexport class MenuDropdown {\n @Input() items: MenuDropdownItem[] = [];\n\n @ViewChild('panelContainer', { static: true }) panelContainer!: ElementRef<HTMLElement>;\n\n activeIndex: number = 0;\n\n get isSingle(): boolean {\n return this.items.length === 1;\n }\n\n isTemplateRef(value: any): value is TemplateRef<unknown> {\n return value instanceof TemplateRef;\n }\n\n setActive(index: number): void {\n // Oculta el panel activo actual\n this.items[this.activeIndex]?.element.style.setProperty('display', 'none');\n this.activeIndex = index;\n // Muestra el nuevo panel activo\n this.items[this.activeIndex]?.element.style.removeProperty('display');\n }\n\n showActivePanel(): void {\n this.items.forEach((item, i) => {\n item.element.style.setProperty('display', i === this.activeIndex ? '' : 'none');\n });\n }\n}\n","@if (!isSingle) {\n <!-- Tabs: solo cuando hay múltiples paneles -->\n <div class=\"dropdown-tabs\">\n @for (item of items; track $index) {\n @if (isTemplateRef(item.label)) {\n <cat-button\n variant=\"secondary\"\n [iconCenter]=\"item.label\"\n [customClass]=\"activeIndex === $index ? 'tab-active' : ''\"\n (clicked)=\"setActive($index)\"\n ></cat-button>\n } @else {\n <cat-button\n variant=\"secondary\"\n [customClass]=\"activeIndex === $index ? 'tab-active' : ''\"\n (clicked)=\"setActive($index)\"\n >{{ item.label }}</cat-button>\n }\n }\n </div>\n}\n\n<!-- Contenedor donde el Menu mueve los nodos DOM de cat-menu-panel -->\n<div class=\"dropdown-content\" #panelContainer></div>\n","import { Component, ElementRef, Input } from '@angular/core';\n\n@Component({\n selector: 'cat-menu-panel',\n templateUrl: './menu-panel.html',\n})\nexport class MenuPanel {\n @Input() label: any;\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n QueryList,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { Button } from '../../button/button';\nimport { MenuDropdown } from './menu-dropdown/menu-dropdown';\nimport { MenuPanel } from './menu-panel/menu-panel';\n\n@Component({\n selector: 'cat-menu',\n imports: [Button, MenuDropdown],\n templateUrl: './menu.html',\n styleUrl: './menu.css',\n})\nexport class Menu implements AfterContentInit, AfterViewChecked {\n @ContentChildren(MenuPanel) panels!: QueryList<MenuPanel>;\n @ViewChild('panelsHost') panelsHost!: ElementRef<HTMLElement>;\n @ViewChild('dropdownRef') dropdownRef?: MenuDropdown;\n\n private cdr = inject(ChangeDetectorRef);\n\n // Controla si los cat-menu-panel están colapsados hacia el dropdown\n isDropdownActive: boolean = false;\n\n // Controla si el panel del dropdown está visible\n isPanelOpen: boolean = false;\n\n // Flag para ejecutar el move de paneles en el próximo AfterViewChecked\n private pendingPanelMove: boolean = false;\n\n ngAfterContentInit(): void {}\n\n ngAfterViewChecked(): void {\n // Ejecuta el move cuando el dropdownRef ya está disponible en el DOM\n if (this.pendingPanelMove && this.dropdownRef) {\n this.pendingPanelMove = false;\n this.executePanelMove();\n }\n }\n\n // Llamado por el consumidor via referencia de template\n toggleContent(): void {\n this.isDropdownActive = !this.isDropdownActive;\n\n if (!this.isDropdownActive) {\n this.restorePanels();\n }\n\n this.cdr.markForCheck();\n }\n\n // Llamado por el botón chevron\n togglePanel(): void {\n this.isPanelOpen = !this.isPanelOpen;\n\n if (this.isPanelOpen) {\n // Marca el move pendiente — se ejecutará cuando dropdownRef esté disponible\n this.pendingPanelMove = true;\n }\n }\n\n private executePanelMove(): void {\n if (!this.dropdownRef) return;\n\n const container = this.dropdownRef.panelContainer.nativeElement;\n const items = this.panels.map((panel) => ({\n label: panel.label,\n element: panel.elementRef.nativeElement,\n }));\n\n items.forEach((item, i) => {\n item.element.style.display = i === 0 ? '' : 'none';\n container.appendChild(item.element);\n });\n\n this.dropdownRef.items = items;\n this.dropdownRef.activeIndex = 0;\n this.cdr.detectChanges();\n }\n\n private restorePanels(): void {\n this.isPanelOpen = false;\n\n if (this.panelsHost) {\n this.panels.forEach((panel) => {\n const el = panel.elementRef.nativeElement;\n el.style.display = '';\n this.panelsHost.nativeElement.appendChild(el);\n });\n }\n }\n}\n","<div class=\"menu-wrapper\">\n <div class=\"menu\">\n <!-- Contenido estático: todo lo que NO sea cat-menu-panel -->\n <div class=\"menu-static\">\n <ng-content select=\":not(cat-menu-panel)\"></ng-content>\n </div>\n\n <!-- Host de los cat-menu-panel: visible en estado inicial, oculto cuando el dropdown está activo -->\n <div\n #panelsHost\n class=\"menu-panels-host\"\n [style.display]=\"isDropdownActive ? 'none' : 'contents'\"\n >\n <ng-content select=\"cat-menu-panel\"></ng-content>\n </div>\n\n <!-- Botón chevron: visible cuando isDropdownActive es true -->\n @if (isDropdownActive) {\n <div class=\"menu-toggle\">\n <cat-button variant=\"secondary\" (clicked)=\"togglePanel()\">\n @if (isPanelOpen) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n style=\"width: 20px; height: 20px\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m4.5 15.75 7.5-7.5 7.5 7.5\" />\n </svg>\n } @else {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n style=\"width: 20px; height: 20px\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\" />\n </svg>\n }\n </cat-button>\n </div>\n }\n\n <!-- Dropdown: siempre en el DOM cuando isDropdownActive, visible solo cuando isPanelOpen -->\n @if (isDropdownActive) {\n <cat-menu-dropdown\n #dropdownRef\n [style.display]=\"isPanelOpen ? 'block' : 'none'\"\n ></cat-menu-dropdown>\n }\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ninterface RGB {\n red: number;\n green: number;\n blue: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Theming {\n //Light Theme = False\n private activeThemeSubject = new BehaviorSubject<boolean>(false);\n public activeTheme$ = this.activeThemeSubject.asObservable();\n\n //Palettes\n private allPalettesSubject = new BehaviorSubject<string[][]>([]);\n public allPalettes$ = this.allPalettesSubject.asObservable();\n\n generatePalettes(color: string, dark: boolean): string[][] {\n this.activeThemeSubject.next(dark);\n\n const primaryColors = this.calculatePrimaryColor(color);\n\n const dynamicPalettes = this.calculateDynamicPalettes(dark);\n\n // Asigna todas las paletas a variables locales\n let allPalettes: string[][] = [primaryColors];\n\n allPalettes = allPalettes.concat([dynamicPalettes.neutral]);\n allPalettes = allPalettes.concat([dynamicPalettes.elements]);\n\n this.allPalettesSubject.next(allPalettes);\n\n // Aplica el tema\n this.applyTheme(allPalettes);\n\n return this.allPalettesSubject.value;\n }\n\n public calculatePrimaryColor(color: string) {\n // Paso 1: Calcula el color\n const colors = this.hexToRgb(color);\n\n // Paso 2: Obtiene la paleta primaria (estática, no cambia con el tema)\n const primaryColors: string[] = this.palette(colors, false, 4); // Always use light theme\n\n const allPalettes = [\n primaryColors, // Keep primary (static)\n this.allPalettesSubject.value[1],\n this.allPalettesSubject.value[2]\n ];\n\n this.allPalettesSubject.next(allPalettes);\n\n this.applyTheme(allPalettes);\n \n return primaryColors;\n }\n\n public calculateDynamicPalettes(dark: boolean): { neutral: string[], elements: string[] } {\n const theme: boolean = dark;\n const contrastTheme: boolean = !dark;\n this.activeThemeSubject.next(dark);\n\n\n // Calcula los colores neutrales (cambian con el tema)\n const neutralColors: string[] = contrastTheme\n ? this.palette({ red: 255, green: 255, blue: 255 }, false, 9)\n : this.palette({ red: 0, green: 0, blue: 0 }, true, 9);\n\n // Calcula los colores de elementos (cambian con el tema)\n const elementsColors: string[] = this.elementsColors(theme, 3, 40);\n\n // Actualiza el array de paletas con valores dinámicos\n const allPalettes = [\n this.allPalettesSubject.value[0], // Keep primary (static)\n neutralColors,\n elementsColors\n ];\n\n this.allPalettesSubject.next(allPalettes);\n\n // Aplica el tema a las variables CSS\n this.applyTheme(allPalettes);\n\n return {\n neutral: neutralColors,\n elements: elementsColors\n };\n }\n\n private palette(colors: { red: number, green: number, blue: number }, dark: boolean, steps: number) {\n //Palette\n const colorsReturn: string[] = [];\n\n const contrastTheme: boolean = !dark;\n const target = contrastTheme ? 0 : 255;\n\n const umbralR = (target - colors.red) / steps;\n const umbralG = (target - colors.green) / steps;\n const umbralB = (target - colors.blue) / steps;\n\n for (let i = 0; i <= steps; i++) {\n const r = Math.round(colors.red + umbralR * i);\n const g = Math.round(colors.green + umbralG * i);\n const b = Math.round(colors.blue + umbralB * i);\n\n colorsReturn.push(`rgb(${r}, ${g}, ${b})`);\n }\n return colorsReturn;\n };\n\n private elementsColors(theme: boolean, iteration: number, amplitude: number) {\n amplitude = amplitude / iteration;\n const colorsReturn: string[] = [];\n for (let i = 0; i < 5; i++) {\n let r = theme ? 0 + ((85 - 0) / (5 - 1) * i) : 0 + ((255 - 0) / (5 - 1) * i);\n let g = theme ? 0 + ((85 - 0) / (5 - 1) * i) : 0 + ((255 - 0) / (5 - 1) * i);\n let b = theme ? 0 + ((85 - 0) / (5 - 1) * i) : 0 + ((255 - 0) / (5 - 1) * i);\n\n if (i <= iteration && theme === false) {\n r = r + amplitude;\n g = g + amplitude;\n b = b + amplitude;\n } else if (theme === false) {\n r = r - amplitude;\n g = g - amplitude;\n b = b - amplitude;\n }\n colorsReturn.push(`rgb(${r}, ${g},${b})`);\n };\n return colorsReturn;\n };\n\n private applyTheme(palettes: string[][]): void {\n if (typeof document === 'undefined') return;\n\n const root = document.documentElement;\n const cssVars = [\n { prefix: '--primary-color-', index: 0 },\n { prefix: '--neutral-color-', index: 1 },\n { prefix: '--element-color-', index: 2 }\n ];\n\n cssVars.forEach(({ prefix, index }) => {\n palettes[index]?.forEach((color, i) => {\n root.style.setProperty(`${prefix}${i}`, color);\n });\n });\n }\n\n private hexToRgb(hex: string): RGB {\n const value = parseInt(hex.replace('#', ''), 16);\n return {\n red: (value >> 16) & 255,\n green: (value >> 8) & 255,\n blue: value & 255,\n };\n }\n}","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class DynamicBackgroundService {\n readonly setImages$ = new Subject<string[]>();\n readonly setBackgroundImage$ = new Subject<number>();\n}\n","import { AfterViewInit, Component, effect, ElementRef, input, OnDestroy, Optional, Renderer2 } from '@angular/core';\nimport { Button } from '../button/button';\nimport { Subscription } from 'rxjs';\nimport { DynamicBackgroundService } from './helpers/dynamic-background.service';\n\n@Component({\n selector: 'cat-dynamic-background',\n imports: [Button],\n templateUrl: './dynamic-background.html',\n styleUrl: './dynamic-background.css',\n})\nexport class DynamicBackground implements AfterViewInit, OnDestroy {\n showControls = input<boolean>(true);\n images = input<string[]>();\n /** Label shown in the navigation controls next to the image counter. */\n controlsLabel = input<string>('Background Image');\n /** Slideshow interval in milliseconds. 0 = disabled. */\n slideshowInterval = input<number>(0);\n\n private backgroundElement?: HTMLElement;\n private resolvedImages: string[] = [];\n private imageIndex = 0;\n private slideshowTimer?: ReturnType<typeof setInterval>;\n\n private subscriptions = new Subscription();\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n @Optional() private bgService: DynamicBackgroundService,\n ) {\n effect(() => {\n this.startSlideshow(this.slideshowInterval());\n });\n\n if (this.bgService) {\n this.subscriptions.add(\n this.bgService.setImages$.subscribe((urls) => {\n this.resolvedImages = urls;\n this.applyBackground();\n this.startSlideshow(this.slideshowInterval());\n }),\n );\n\n this.subscriptions.add(\n this.bgService.setBackgroundImage$.subscribe((index) => {\n this.imageIndex = Math.max(0, Math.min(index, this.resolvedImages.length - 1));\n this.applyBackground();\n }),\n );\n }\n }\n\n ngAfterViewInit(): void {\n this.backgroundElement = this.el.nativeElement.querySelector('.generalBackground');\n this.resolvedImages = this.images() ?? [];\n this.applyBackground();\n this.startSlideshow(this.slideshowInterval());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n this.stopSlideshow();\n }\n\n private applyBackground(): void {\n if (!this.backgroundElement || !this.resolvedImages.length) return;\n this.renderer.setAttribute(\n this.backgroundElement,\n 'style',\n `background-image: url(${this.resolvedImages[this.imageIndex]});`,\n );\n }\n\n private startSlideshow(interval: number): void {\n this.stopSlideshow();\n if (interval <= 0 || !this.resolvedImages.length) return;\n this.slideshowTimer = setInterval(() => this.changeImageIndex(true), interval);\n }\n\n private stopSlideshow(): void {\n if (this.slideshowTimer) {\n clearInterval(this.slideshowTimer);\n this.slideshowTimer = undefined;\n }\n }\n\n changeImageIndex(increment: boolean): void {\n if (!this.resolvedImages.length) return;\n this.imageIndex += increment ? 1 : -1;\n if (this.imageIndex < 0) this.imageIndex = this.resolvedImages.length - 1;\n if (this.imageIndex >= this.resolvedImages.length) this.imageIndex = 0;\n this.applyBackground();\n }\n\n get currentIndex(): number {\n return this.imageIndex;\n }\n\n get totalImages(): number {\n return this.resolvedImages.length;\n }\n}\n","<ng-template #chevronRight>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\" />\n</svg>\n</ng-template>\n<ng-template #chevronLeft>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\n</svg>\n</ng-template>\n\n<section class=\"generalBackground\"></section>\n\n@if (showControls()) {\n<div class=\"multimedia-themes-controler\">\n <div>\n <cat-button\n variant=\"secondary\"\n (clicked)=\"changeImageIndex(false)\"\n [iconCenter]=\"chevronLeft\"\n >\n </cat-button>\n </div>\n <div>\n <p>\n <b>{{ controlsLabel() }} {{ currentIndex + 1 }} / {{ totalImages }}</b>\n </p>\n </div>\n <div>\n <cat-button\n variant=\"secondary\"\n (clicked)=\"changeImageIndex(true)\"\n [iconCenter]=\"chevronRight\"\n ></cat-button>\n </div>\n</div>\n}\n","/*\n * Public API Surface of catarina\n */\n\n// design-system\nexport * from './lib/design-system/icon/icon';\nexport * from './lib/design-system/button/button';\n\n// Panels\nexport * from './lib/design-system/panels/card/card';\nexport * from './lib/design-system/panels/accordion/accordion';\nexport * from './lib/design-system/panels/accordion-group/accordion-group';\n\n//form\nexport * from './lib/design-system/form/cat-input/cat-input';\nexport * from './lib/design-system/form/color-input/color-input';\nexport * from './lib/design-system/form/select-input/select-input';\n\n//Pending https://tecsify.com/blog/input-en-html/\n/*export * from './lib/design-system/form/date-input/date-input';\nexport * from './lib/design-system/form/file-input/file-input';\nexport * from './lib/design-system/form/password-input/password-input';\nexport * from './lib/design-system/form/range-input/range-input';\nexport * from './lib/design-system/form/text-area-input/text-area-input';\nexport * from './lib/design-system/form/time-input/time-input';*/\n/*\nimage, search, telefono, reset, radio button, checkbox, button, email\n*/\n\n//Overlays\n//Pending\nexport * from './lib/design-system/overlays/dialog/dialog';\nexport * from './lib/design-system/overlays/drawer/drawer';\nexport * from './lib/design-system/panels/menu/menu';\nexport * from './lib/design-system/panels/menu/menu-panel/menu-panel';\nexport * from './lib/design-system/panels/menu/menu-dropdown/menu-dropdown';\n\n/*Services and Directives */\n\nexport * from './lib/directives/drag';\nexport * from './lib/theming/theming';\n\n// Dynamic background\nexport * from './lib/design-system/dynamic-background/dynamic-background';\nexport * from './lib/design-system/dynamic-background/helpers/dynamic-background.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CButton","CAccordion","CIcon","i1.DynamicBackgroundService"],"mappings":";;;;;;;;MAUa,IAAI,CAAA;wGAAJ,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAJ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,IAAI,oECVjB,6BACA,EAAA,MAAA,EAAA,CAAA,wMAAA,CAAA,EAAA,CAAA;;4FDSa,IAAI,EAAA,UAAA,EAAA,CAAA;kBANhB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,EAAE,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,wMAAA,CAAA,EAAA;;;MEIA,MAAM,CAAA;IACR,OAAO,GAA+D,SAAS;IAC/E,IAAI,GAAuB,IAAI;IAC/B,QAAQ,GAAG,KAAK;IAChB,IAAI,GAAkC,QAAQ;AAC9C,IAAA,QAAQ;AACR,IAAA,UAAU;AACV,IAAA,SAAS;IACT,WAAW,GAAG,EAAE;AAEf,IAAA,OAAO,GAAG,IAAI,YAAY,EAAc;AAElD,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,EAAE;IACtE;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;AACpD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;AAEA,IAAA,aAAa,CAAC,OAAoB,EAAA;QAChC,OAAO,OAAO,YAAY,WAAW;IACvC;AAEA,IAAA,IAA2C,eAAe,GAAA;QACxD,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;IACF;wGAjCW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,yWCVnB,kkCAkCA,EAAA,MAAA,EAAA,CAAA,ikGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5BY,IAAI,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,6TAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAIxC,MAAM,EAAA,UAAA,EAAA,CAAA;kBANlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,CAAC,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,kkCAAA,EAAA,MAAA,EAAA,CAAA,ikGAAA,CAAA,EAAA;;sBAKnD;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBAeA,WAAW;uBAAC,wBAAwB;;;ME5B1B,IAAI,CAAA;IACN,OAAO,GAAwC,SAAS;IACxD,IAAI,GAAuB,IAAI;IAC/B,KAAK,GAAW,MAAM;IACtB,WAAW,GAAG,EAAE;;AAGzB,IAAA,IAA2C,WAAW,GAAA;QACpD,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,IAAwC,QAAQ,GAAA;QAC9C,OAAO,IAAI,CAAC,IAAI;IAClB;AAEA,IAAA,IAAyC,eAAe,GAAA;QACtD,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;;;;;;;AAQA;AACA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,CAAA,SAAA,EAAY,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,EAAE;IACpE;wGA9BW,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAJ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,IAAI,8TCPjB,6IAEU,EAAA,MAAA,EAAA,CAAA,6lBAAA,CAAA,EAAA,CAAA;;4FDKG,IAAI,EAAA,UAAA,EAAA,CAAA;kBALhB,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,6IAAA,EAAA,MAAA,EAAA,CAAA,6lBAAA,CAAA,EAAA;;sBAKnB;;sBACA;;sBACA;;sBACA;;sBAGA,WAAW;uBAAC,wBAAwB;;sBAIpC,WAAW;uBAAC,qBAAqB;;sBAIjC,WAAW;uBAAC,sBAAsB;;;MEHxB,SAAS,CAAA;AACX,IAAA,WAAW;AACX,IAAA,MAAM,GAAY,KAAK,CAAC;IACxB,KAAK,GAAW,gBAAgB;IAEhC,QAAQ,GAAG,KAAK;IAChB,WAAW,GAAG,EAAE;;IAGhB,aAAa,GAA+D,WAAW;IACvF,UAAU,GAAuB,IAAI;IACrC,QAAQ,GAA0B,KAAK;IACvC,UAAU,GAA0B,KAAK;IACzC,SAAS,GAA0B,IAAI;;IAGvC,WAAW,GAAY,KAAK;IAC5B,OAAO,GAAwC,SAAS;AAEvD,IAAA,gCAAgC,GAAG,IAAI,YAAY,EAAU;AAE5B,IAAA,SAAS;IACpD,WAAW,GAAW,CAAC;IAEvB,eAAe,GAAA;;QAEb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACnE,IAAI,MAAM,EAAE;AACV,oBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;gBACvC;YACF;AACF,QAAA,CAAC,CAAC;IACJ;;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC;YACnE,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;YACvC;QACF;IACF;IACA,0BAA0B,GAAA;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;QAC1B,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAY,CAAC;IAC/D;AAEA,IAAA,WAAW,CAAC,SAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS;IACzB;AAEA,IAAA,IAA8C,eAAe,GAAA;QAC3D,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,SAAS,CAAA,CAAE;IAC9F;wGA5DW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,spBCnBtB,kwCAuCA,EAAA,MAAA,EAAA,CAAA,k+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDxBYA,MAAO,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,oFAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAIrB,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,WAChB,CAACA,MAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAA,QAAA,EAAA,kwCAAA,EAAA,MAAA,EAAA,CAAA,k+BAAA,CAAA,EAAA;;sBAKhC;;sBACA;;sBACA;;sBAEA;;sBACA;;sBAGA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAGA;;sBACA;;sBAEA;;sBAEA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;sBAiCxC,WAAW;uBAAC,2BAA2B;;;ME/D7B,cAAc,CAAA;IAChB,YAAY,GAAY,IAAI;IAC5B,WAAW,GAAW,EAAE;AAEJ,IAAA,UAAU;AAEvC,IAAA,iBAAiB;AAEjB,IAAA,GAAG;IAEH,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAG;gBAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,gCAAgC,CAAC,SAAS,CAAC,EAAE,IAAG;AAC7D,oBAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACrB,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;QACJ;IACF;AAEA,IAAA,UAAU,CAAC,EAAU,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;AAClE,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE;AACjC,YAAA,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;QACpC;aAAO;AACL,YAAA,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;QAC7B;IACF;AAEA,IAAA,IAAoD,eAAe,GAAA;QACjE,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,IAAI,qBAAqB,GAAA;AACvB,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE;IAC9B;wGAtCW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAIRC,SAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd7B,wFAEU,EAAA,MAAA,EAAA,CAAA,wFAAA,CAAA,EAAA,CAAA;;4FDQG,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,WACtB,EAAE,EAAA,QAAA,EAAA,wFAAA,EAAA,MAAA,EAAA,CAAA,wFAAA,CAAA,EAAA;;sBAKV;;sBACA;;sBAEA,eAAe;uBAACA,SAAU;;sBA4B1B,WAAW;uBAAC,iCAAiC;;;ME7BnC,QAAQ,CAAA;AACX,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,IAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AACb,IAAA,OAAO,GAAqB,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEhG,IAAA,OAAO,cAAc,GAAG,KAAK;IAErC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AAC3D,YAAA,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC;YACvE;QACF;;AAGA,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAClE,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,QAAQ,CAAC,cAAc,GAAG,IAAI;QAChC;IACF;IAEQ,YAAY,GAAA;QAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QAC7C,KAAK,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiEnB;AACD,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAClC;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACzE;wGA7FW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,eAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBATpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,YAAY,EAAE,MAAM;AACpB,wBAAA,iBAAiB,EAAE;AACpB;AACF,iBAAA;;sBAIE;;sBAAY;;;MCEF,UAAU,CAAA;IACrB,KAAK,GAAW,SAAS;IAChB,IAAI,GAA0B,KAAK;IACnC,IAAI,GAAW,KAAK;AAErB,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,EAAE,CAAC;AACrC,IAAA,SAAS,GAAG,MAAK,EAAE,CAAC;AAEpB,IAAA,aAAa,CAAC,OAAoB,EAAA;QAChC,OAAO,OAAO,YAAY,WAAW;IACvC;AAEA,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,MAAM,QAAQ,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;AACzD,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS;IACjC;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;wGA7BW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAVV;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC;AACzC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdH,gnFAiEM,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,4KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1DMC,IAAK,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,6TAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAWzC,UAAU,EAAA,UAAA,EAAA,CAAA;kBAbtB,SAAS;+BACE,iBAAiB,EAAA,OAAA,EAClB,CAACA,IAAK,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAA,SAAA,EAC1C;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,gBAAgB,CAAC;AACzC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,gnFAAA,EAAA,MAAA,EAAA,CAAA,4KAAA,CAAA,EAAA;;sBAMA;;sBACA;;;MEAU,WAAW,CAAA;AAgCZ,IAAA,EAAA;AA/BU,IAAA,OAAO;AACuB,IAAA,gBAAgB;IAEzD,SAAS,CAAU;AACnB,IAAA,OAAO;IACP,WAAW,GAAW,EAAE;IACxB,IAAI,GAAwB,QAAQ;IAE7C,KAAK,GAAoB,EAAE;IAC3B,MAAM,GAAG,KAAK;IACd,YAAY,GAAG,KAAK;IAEX,OAAO,GAAwC,SAAS;IACxD,WAAW,GAAY,KAAK;IAC5B,WAAW,GAAW,EAAE;;;AAMjC,IAAA,UAAU,CAAC,KAAY,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACrB;IACF;;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;IAC5B;AAEA,IAAA,WAAA,CACU,EAAc,EAAA;QAAd,IAAA,CAAA,EAAE,GAAF,EAAE;IACR;AAEJ,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,EAAG,CAAC;AAC9B,IAAA,SAAS,GAAG,MAAK,EAAG,CAAC;;AAGrB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;;AACA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AACA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;;AAGA,IAAA,UAAU,CAAC,MAAW,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;IAErB;;AAEA,IAAA,IAAiD,eAAe,GAAA;QAC9D,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,EAAE,EAAE;IACnE;wGAhEW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,sXARX,CAAC;AACV,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,WAAW,CAAC;AAC1C,gBAAA,KAAK,EAAE;AACR,aAAA,CAAC,mOCjBJ,8xBAcU,EAAA,MAAA,EAAA,CAAA,q5BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLN,QAAQ,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,OAAO,oFACP,MAAM,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAUG,WAAW,EAAA,UAAA,EAAA,CAAA;kBAfvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,OAAA,EACnB;wBACP,QAAQ;wBACR,OAAO;wBACP;AACD,qBAAA,EAAA,SAAA,EACU,CAAC;AACV,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,iBAAiB,CAAC;AAC1C,4BAAA,KAAK,EAAE;yBACR,CAAC,EAAA,QAAA,EAAA,8xBAAA,EAAA,MAAA,EAAA,CAAA,q5BAAA,CAAA,EAAA;;sBAKD,SAAS;uBAAC,OAAO;;sBACjB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;sBAE/C;;sBACA;;sBACA;;sBACA;;sBAMA;;sBACA;;sBACA;;sBAKA,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;sBAsCzC,WAAW;uBAAC,8BAA8B;;;ME1EhC,IAAI,CAAA;AAML,IAAA,EAAA;AACA,IAAA,QAAA;AACkB,IAAA,QAAA;IAPpB,OAAO,GAAG,CAAC;IACX,OAAO,GAAG,CAAC;IACX,QAAQ,GAAG,KAAK;AAExB,IAAA,WAAA,CACU,EAAc,EACd,QAAmB,EACD,QAAkB,EAAA;QAFpC,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACU,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAChC;IAEJ,eAAe,GAAA;AACb,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B;;AAG/C,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;AACjD,YAAA,IAAI,aAAa,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC;YACpD;QACF;QAGA,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAa,KAAI;AACjD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,UAAU;YACxC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS;AACvC,YAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;AAC9B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAa,KAAI;AAC5D,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;AAC/C,gBAAA,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;YAChD;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAK;AAC7C,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;AAC1B,QAAA,CAAC,CAAC;IACJ;AAzCW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAI,qEAQL,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FARP,IAAI,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAJ,IAAI,EAAA,UAAA,EAAA,CAAA;kBAHhB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;0BASI,MAAM;2BAAC,QAAQ;;;MCSP,MAAM,CAAA;;AAET,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;;AAEzB,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAE3C,IAAA,UAAU;IAET,OAAO,GAAwC,SAAS;IACxD,KAAK,GAAW,OAAO;IACvB,MAAM,GAAW,OAAO;IACxB,WAAW,GAAG,EAAE;AACf,IAAA,KAAK,GAAG,IAAI,YAAY,EAAW;;AAGE,IAAA,cAAc;IAErD,mBAAmB,GAAA;AACzB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC3B,aAAA,QAAQ;AACR,aAAA,MAAM;AACN,aAAA,kBAAkB;AAClB,aAAA,gBAAgB,EAAE;QAErB,OAAO;YACL,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrD,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,2BAA2B;YAC1C,UAAU,EAAE,CAAC,0BAA0B,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;SACzE;IACH;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;;AAG7C,QAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAE7E,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;;QAG9B,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAK;YAC7C,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAClD,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,WAAW,EAAE;YACpB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB;IACF;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,qBAAqB;IAC7C;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE;IACnB;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,WAAW,EAAE;IACpB;wGA3EW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBnB,4PAMA,EAAA,MAAA,EAAA,CAAA,2XAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDYY,IAAI,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA;;4FAIH,MAAM,EAAA,UAAA,EAAA,CAAA;kBANlB,SAAS;+BACE,YAAY,EAAA,OAAA,EACb,CAAC,IAAI,CAAC,EAAA,QAAA,EAAA,4PAAA,EAAA,MAAA,EAAA,CAAA,2XAAA,CAAA,EAAA;;sBAYd;;sBACA;;sBACA;;sBACA;;sBACA;;sBAGA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ME1BlC,MAAM,CAAA;;AAET,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;;AAEzB,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAE3C,IAAA,UAAU;IAET,IAAI,GAAwC,MAAM;IAClD,OAAO,GAAwC,SAAS;IACxD,WAAW,GAAW,EAAE;AACvB,IAAA,KAAK,GAAG,IAAI,YAAY,EAAW;;AAGE,IAAA,cAAc;IAErD,mBAAmB,GAAA;;QAEzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AAEzD,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,MAAM;AACT,gBAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC1B;AACF,YAAA,KAAK,OAAO;AACV,gBAAA,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC3B;AACF,YAAA,KAAK,KAAK;AACR,gBAAA,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;gBACzB;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC5B;;QAGJ,OAAO;YACL,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrD,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,2BAA2B;AAC1C,YAAA,UAAU,EAAE,CAAC,0BAA0B,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;SACpF;IACH;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE;QAGzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;;;AAI7C,QAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC;;AAG7E,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;;QAG9B,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAK;YAC7C,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,KAAK,IAAG;AAChD,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,WAAW,EAAE;YACpB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;;AAEnB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;;AAExB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;AAE3B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB;IACF;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,EAAE;IAC3D;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE;IACnB;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,WAAW,EAAE;IACpB;wGA5FW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXnB,ikBAiBA,EAAA,MAAA,EAAA,CAAA,ovBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDVY,MAAM,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAIL,MAAM,EAAA,UAAA,EAAA,CAAA;kBANlB,SAAS;+BACE,YAAY,EAAA,OAAA,EACb,CAAC,MAAM,CAAC,EAAA,QAAA,EAAA,ikBAAA,EAAA,MAAA,EAAA,CAAA,ovBAAA,CAAA,EAAA;;sBAYhB;;sBACA;;sBACA;;sBACA;;sBAGA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MEVlC,YAAY,CAAA;IACd,KAAK,GAAuB,EAAE;AAEQ,IAAA,cAAc;IAE7D,WAAW,GAAW,CAAC;AAEvB,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;IAChC;AAEA,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,OAAO,KAAK,YAAY,WAAW;IACrC;AAEA,IAAA,SAAS,CAAC,KAAa,EAAA;;AAErB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC;AAC1E,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;AAExB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;IACvE;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;YAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,MAAM,CAAC;AACjF,QAAA,CAAC,CAAC;IACJ;wGA3BW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfzB,4yBAwBA,EAAA,MAAA,EAAA,CAAA,+wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDb8B,MAAM,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAIvB,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAA,QAAA,EAAA,4yBAAA,EAAA,MAAA,EAAA,CAAA,+wBAAA,CAAA,EAAA;;sBAKlC;;sBAEA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MEZlC,SAAS,CAAA;AAGD,IAAA,UAAA;AAFV,IAAA,KAAK;AAEd,IAAA,WAAA,CAAmB,UAAmC,EAAA;QAAnC,IAAA,CAAA,UAAU,GAAV,UAAU;IAA4B;wGAH9C,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,sGCNtB,6BACA,EAAA,CAAA;;4FDKa,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAIzB;;;MEcU,IAAI,CAAA;AACa,IAAA,MAAM;AACT,IAAA,UAAU;AACT,IAAA,WAAW;AAE7B,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;;IAGvC,gBAAgB,GAAY,KAAK;;IAGjC,WAAW,GAAY,KAAK;;IAGpB,gBAAgB,GAAY,KAAK;AAEzC,IAAA,kBAAkB,KAAU;IAE5B,kBAAkB,GAAA;;QAEhB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,EAAE;AAC7C,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;YAC7B,IAAI,CAAC,gBAAgB,EAAE;QACzB;IACF;;IAGA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB;AAE9C,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE;QACtB;AAEA,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AAEpC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;;AAEpB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC9B;IACF;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,aAAa;AAC/D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;YACxC,KAAK,EAAE,KAAK,CAAC,KAAK;AAClB,YAAA,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa;AACxC,SAAA,CAAC,CAAC;QAEH,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM;AAClD,YAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACrC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AAExB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC5B,gBAAA,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa;AACzC,gBAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;gBACrB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;AAC/C,YAAA,CAAC,CAAC;QACJ;IACF;wGA5EW,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAJ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,IAAI,2FACE,SAAS,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB5B,i8DAwDA,EAAA,MAAA,EAAA,CAAA,0/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvCY,MAAM,oLAAE,YAAY,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAInB,IAAI,EAAA,UAAA,EAAA,CAAA;kBANhB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EACX,CAAC,MAAM,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,i8DAAA,EAAA,MAAA,EAAA,CAAA,0/BAAA,CAAA,EAAA;;sBAK9B,eAAe;uBAAC,SAAS;;sBACzB,SAAS;uBAAC,YAAY;;sBACtB,SAAS;uBAAC,aAAa;;;MEZb,OAAO,CAAA;;AAEV,IAAA,kBAAkB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACzD,IAAA,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;;AAGpD,IAAA,kBAAkB,GAAG,IAAI,eAAe,CAAa,EAAE,CAAC;AACzD,IAAA,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IAE5D,gBAAgB,CAAC,KAAa,EAAE,IAAa,EAAA;AAC3C,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAElC,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAEvD,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;;AAG3D,QAAA,IAAI,WAAW,GAAe,CAAC,aAAa,CAAC;QAE7C,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3D,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAE5D,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGzC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAE5B,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK;IACtC;AAEO,IAAA,qBAAqB,CAAC,KAAa,EAAA;;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAGnC,QAAA,MAAM,aAAa,GAAa,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAE/D,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,aAAa;AACb,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAChC;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEzC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAE5B,QAAA,OAAO,aAAa;IACtB;AAEO,IAAA,wBAAwB,CAAC,IAAa,EAAA;QAC3C,MAAM,KAAK,GAAY,IAAI;AAC3B,QAAA,MAAM,aAAa,GAAY,CAAC,IAAI;AACpC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;;QAIlC,MAAM,aAAa,GAAa;cAC5B,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC;cAC1D,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;;AAGxD,QAAA,MAAM,cAAc,GAAa,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;;AAGlE,QAAA,MAAM,WAAW,GAAG;YAClB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,aAAa;YACb;SACD;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGzC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAE5B,OAAO;AACL,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,QAAQ,EAAE;SACX;IACH;AAEQ,IAAA,OAAO,CAAC,MAAoD,EAAE,IAAa,EAAE,KAAa,EAAA;;QAEhG,MAAM,YAAY,GAAa,EAAE;AAEjC,QAAA,MAAM,aAAa,GAAY,CAAC,IAAI;QACpC,MAAM,MAAM,GAAG,aAAa,GAAG,CAAC,GAAG,GAAG;QAEtC,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,KAAK;QAC7C,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK;QAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK;AAE9C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;AAC/B,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;AAC9C,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;YAE/C,YAAY,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,CAAG,CAAC;QAC5C;AACA,QAAA,OAAO,YAAY;IACrB;;AAEQ,IAAA,cAAc,CAAC,KAAc,EAAE,SAAiB,EAAE,SAAiB,EAAA;AACzE,QAAA,SAAS,GAAG,SAAS,GAAG,SAAS;QACjC,MAAM,YAAY,GAAa,EAAE;AACjC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,YAAA,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5E,YAAA,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5E,YAAA,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAE5E,IAAI,CAAC,IAAI,SAAS,IAAI,KAAK,KAAK,KAAK,EAAE;AACrC,gBAAA,CAAC,GAAG,CAAC,GAAG,SAAS;AACjB,gBAAA,CAAC,GAAG,CAAC,GAAG,SAAS;AACjB,gBAAA,CAAC,GAAG,CAAC,GAAG,SAAS;YACnB;AAAO,iBAAA,IAAI,KAAK,KAAK,KAAK,EAAE;AAC1B,gBAAA,CAAC,GAAG,CAAC,GAAG,SAAS;AACjB,gBAAA,CAAC,GAAG,CAAC,GAAG,SAAS;AACjB,gBAAA,CAAC,GAAG,CAAC,GAAG,SAAS;YACnB;YACA,YAAY,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG,CAAC;QAC3C;QAAC;AACD,QAAA,OAAO,YAAY;IACrB;;AAEQ,IAAA,UAAU,CAAC,QAAoB,EAAA;QACrC,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE;AAErC,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe;AACrC,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE;AACxC,YAAA,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE;AACxC,YAAA,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;SACvC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAI;YACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,KAAI;AACpC,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,EAAG,MAAM,CAAA,EAAG,CAAC,CAAA,CAAE,EAAE,KAAK,CAAC;AAChD,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,QAAQ,CAAC,GAAW,EAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,OAAO;AACL,YAAA,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,IAAI,GAAG;AACxB,YAAA,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG;YACzB,IAAI,EAAE,KAAK,GAAG,GAAG;SAClB;IACH;wGArJW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAP,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAO,cAFN,MAAM,EAAA,CAAA;;4FAEP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAHnB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCPY,wBAAwB,CAAA;AAC1B,IAAA,UAAU,GAAG,IAAI,OAAO,EAAY;AACpC,IAAA,mBAAmB,GAAG,IAAI,OAAO,EAAU;wGAFzC,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAxB,wBAAwB,EAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;;MCQY,iBAAiB,CAAA;AAgBlB,IAAA,EAAA;AACA,IAAA,QAAA;AACY,IAAA,SAAA;AAjBtB,IAAA,YAAY,GAAG,KAAK,CAAU,IAAI,wDAAC;IACnC,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAY;;AAE1B,IAAA,aAAa,GAAG,KAAK,CAAS,kBAAkB,yDAAC;;AAEjD,IAAA,iBAAiB,GAAG,KAAK,CAAS,CAAC,6DAAC;AAE5B,IAAA,iBAAiB;IACjB,cAAc,GAAa,EAAE;IAC7B,UAAU,GAAG,CAAC;AACd,IAAA,cAAc;AAEd,IAAA,aAAa,GAAG,IAAI,YAAY,EAAE;AAE1C,IAAA,WAAA,CACU,EAAc,EACd,QAAmB,EACP,SAAmC,EAAA;QAF/C,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACI,IAAA,CAAA,SAAS,GAAT,SAAS;QAE7B,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/C,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAC3C,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;gBAC1B,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/C,CAAC,CAAC,CACH;AAED,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;gBACrD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,eAAe,EAAE;YACxB,CAAC,CAAC,CACH;QACH;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,oBAAoB,CAAC;QAClF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;QACzC,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC/C;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;QAChC,IAAI,CAAC,aAAa,EAAE;IACtB;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;YAAE;QAC5D,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,IAAI,CAAC,iBAAiB,EACtB,OAAO,EACP,yBAAyB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,EAAA,CAAI,CAClE;IACH;AAEQ,IAAA,cAAc,CAAC,QAAgB,EAAA;QACrC,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;YAAE;AAClD,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChF;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAClC,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS;QACjC;IACF;AAEA,IAAA,gBAAgB,CAAC,SAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;YAAE;AACjC,QAAA,IAAI,CAAC,UAAU,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QACzE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACtE,IAAI,CAAC,eAAe,EAAE;IACxB;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM;IACnC;wGA1FW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX9B,wpCAqCA,EAAA,MAAA,EAAA,CAAA,wqBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED9BY,MAAM,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAIL,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,wBAAwB,EAAA,OAAA,EACzB,CAAC,MAAM,CAAC,EAAA,QAAA,EAAA,wpCAAA,EAAA,MAAA,EAAA,CAAA,wqBAAA,CAAA,EAAA;;0BAsBd;;;AE7BL;;AAEG;AAEH;;ACJA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@catarina-ds/angular",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "keywords": [
5
5
  "angular",
6
6
  "design-system",