circletone.mjs.map 142 KB

1
  1. {"version":3,"file":"circletone.mjs","sources":["../../../projects/circletone/src/lib/components/atoms/icon/icon.component.ts","../../../projects/circletone/src/lib/components/atoms/icon/icon.component.html","../../../projects/circletone/src/lib/components/atoms/button/button.component.ts","../../../projects/circletone/src/lib/components/atoms/button/button.component.html","../../../projects/circletone/src/lib/components/atoms/alert/alert.component.ts","../../../projects/circletone/src/lib/components/atoms/alert/alert.component.html","../../../projects/circletone/src/lib/pipes/safe-image.pipe.ts","../../../projects/circletone/src/lib/components/atoms/avatar/avatar.component.ts","../../../projects/circletone/src/lib/components/atoms/avatar/avatar.component.html","../../../projects/circletone/src/lib/components/atoms/icon-button/icon-button.component.ts","../../../projects/circletone/src/lib/components/atoms/icon-button/icon-button.component.html","../../../projects/circletone/src/lib/components/atoms/header/header.component.ts","../../../projects/circletone/src/lib/components/atoms/header/header.component.html","../../../projects/circletone/src/lib/directives/overlay.directive.ts","../../../projects/circletone/src/lib/components/molecules/menu/menu.component.ts","../../../projects/circletone/src/lib/components/molecules/menu/menu.component.html","../../../projects/circletone/src/lib/components/atoms/menu-item/menu-item.component.ts","../../../projects/circletone/src/lib/components/atoms/menu-item/menu-item.component.html","../../../projects/circletone/src/lib/services/accordion-registry.service.ts","../../../projects/circletone/src/lib/components/molecules/accordion/accordion.component.ts","../../../projects/circletone/src/lib/components/molecules/accordion/accordion.component.html","../../../projects/circletone/src/lib/components/atoms/accordion-item/accordion-item.component.ts","../../../projects/circletone/src/lib/components/atoms/accordion-item/accordion-item.component.html","../../../projects/circletone/src/lib/components/atoms/tab-button/tab-button.component.ts","../../../projects/circletone/src/lib/components/atoms/tab-button/tab-button.component.html","../../../projects/circletone/src/lib/components/atoms/list-item/list-item.component.ts","../../../projects/circletone/src/lib/components/atoms/list-item/list-item.component.html","../../../projects/circletone/src/lib/components/molecules/list/list.component.ts","../../../projects/circletone/src/lib/components/molecules/list/list.component.html","../../../projects/circletone/src/lib/directives/tab-panel.directive.ts","../../../projects/circletone/src/lib/components/molecules/tab-group/tab-group.component.ts","../../../projects/circletone/src/lib/components/molecules/tab-group/tab-group.component.html","../../../projects/circletone/src/lib/components/molecules/card/card.component.ts","../../../projects/circletone/src/lib/components/molecules/card/card.component.html","../../../projects/circletone/src/lib/services/form-generic.abstract.ts","../../../projects/circletone/src/lib/forms/error/error.component.ts","../../../projects/circletone/src/lib/forms/error/error.component.html","../../../projects/circletone/src/lib/forms/label/label.component.ts","../../../projects/circletone/src/lib/forms/label/label.component.html","../../../projects/circletone/src/lib/forms/option/option.component.ts","../../../projects/circletone/src/lib/forms/option/option.component.html","../../../projects/circletone/src/lib/forms/utils/form.util.ts","../../../projects/circletone/src/lib/forms/input/input.component.ts","../../../projects/circletone/src/lib/forms/input/input.component.html","../../../projects/circletone/src/lib/forms/autocomplete/autocomplete.component.ts","../../../projects/circletone/src/lib/forms/autocomplete/autocomplete.component.html","../../../projects/circletone/src/lib/forms/select/select.component.ts","../../../projects/circletone/src/lib/forms/select/select.component.html","../../../projects/circletone/src/lib/forms/utils/validators.util.ts","../../../projects/circletone/src/lib/forms/input-number/input-number.component.ts","../../../projects/circletone/src/lib/forms/toggle/toggle.component.ts","../../../projects/circletone/src/lib/forms/toggle/toggle.component.html","../../../projects/circletone/src/lib/forms/radio-button/radio-button.component.ts","../../../projects/circletone/src/lib/forms/radio-button/radio-button.component.html","../../../projects/circletone/src/lib/forms/radio-group/radio-group.component.ts","../../../projects/circletone/src/lib/forms/radio-group/radio-group.component.html","../../../projects/circletone/src/lib/model/forms/form-base.model.ts","../../../projects/circletone/src/lib/model/forms/select.model.ts","../../../projects/circletone/src/lib/model/forms/input.model.ts","../../../projects/circletone/src/lib/services/screen-size.service.ts","../../../projects/circletone/src/public-api.ts","../../../projects/circletone/src/circletone.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { ComponentSize } from '../../../model/components/component-size.type';\nimport { ComponentVariant } from '../../../model/components/component-variant.type';\n\n@Component({\n selector: 'ct-icon',\n standalone: true,\n imports: [NgClass],\n templateUrl: './icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent implements OnInit {\n @Input() icon = '';\n @Input() fill = 'currentColor';\n @Input() strokeWidth = 1.5;\n @Input() strokeColor = 'currentColor';\n @Input() size: ComponentSize = 'base';\n @Input() variant: ComponentVariant = 'outline';\n\n ngOnInit(): void {\n this.strokeColor = this.getFormattedColor(this.strokeColor);\n this.fill = this.getFormattedColor(this.fill);\n }\n\n get iconPath(): string {\n const icon = this.variant === 'solid' ? `${this.icon}-solid` : this.icon;\n return `/assets/images/icons.svg#${icon}`;\n }\n\n private getFormattedColor(color: string): string {\n if (color.startsWith('--')) {\n const rgbValue = getComputedStyle(document.documentElement).getPropertyValue(color).trim();\n return `rgb(${rgbValue})`;\n }\n return color;\n }\n}\n","<svg\n [attr.fill]=\"variant === 'solid' ? fill : 'none'\"\n [attr.stroke-width]=\"variant === 'outline' ? strokeWidth : 0\"\n [attr.stroke]=\"strokeColor\"\n class=\"flex\"\n [class.size-3]=\"size === 'xs'\"\n [class.size-4]=\"size === 'sm'\"\n [class.size-5]=\"size === 'base'\"\n [class.size-6]=\"size === 'lg'\"\n [class.size-8]=\"size === 'xl'\"\n [class.size-10]=\"size === '2xl'\"\n [class.size-20]=\"size === '3xl'\">\n <use [attr.xlink:href]=\"iconPath\"></use>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { ComponentSize } from '../../../model/components/component-size.type';\nimport { NgClass } from '@angular/common';\nimport { ComponentType } from '../../../model/components/component-type.type';\nimport { ComponentVariant } from '../../../model/components/component-variant.type';\nimport { ComponentPosition } from '../../../model/components/component-position.type';\n/**\n * This is the ButtonComponent, widely used among other components\n */\n@Component({\n selector: 'ct-button',\n standalone: true,\n imports: [NgClass, IconComponent],\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n @Input() text?: string;\n @Input() icon?: string;\n @Input() iconPosition?: ComponentPosition | string = 'left';\n @Input() role: 'button' | 'submit' | 'reset' = 'button';\n @Input() disabled = false;\n\n @Input() fullSize: boolean = false;\n @Input() size: ComponentSize = 'base';\n @Input() type: ComponentType = 'primary';\n @Input() variant: ComponentVariant = 'solid';\n\n get cssClassmap(): { [className: string]: boolean } {\n return {\n [`text-on-${this.type} dark:text-on-${this.type}-dark`]:\n this.variant === 'solid' || this.variant === 'gradient' || this.variant === 'flat',\n [`text-${this.type} dark:text-${this.type}-dark hover:text-${this.type}-variant dark:hover:text-${this.type}-variant-dark`]:\n this.variant === 'blank' || this.variant === 'outline',\n [`bg-${this.type} dark:bg-${this.type}-dark hover:bg-${this.type}-variant hover:dark:bg-${this.type}-variant-dark`]:\n this.variant === 'solid',\n [`bg-${this.type}/25 dark:bg-${this.type}-dark/25 hover:bg-${this.type}-variant/25 hover:dark:bg-${this.type}-variant-dark/25`]:\n this.variant === 'flat',\n [`from-${this.type}-variant from-30% to-${this.type} bg-gradient-to-tl hover:bg-gradient-to-br dark:from-${this.type}-variant-dark dark:to-${this.type}-dark`]:\n this.variant === 'gradient',\n [`border border-2 border-${this.type} hover:border-${this.type}-variant dark:border-${this.type}-dark`]:\n this.variant === 'outline',\n 'px-3 py-2': (this.size === 'xs' || this.size === 'sm') && !this.hasJustIcon(),\n 'px-5 py-2.5': (this.size === 'base' || this.size === 'lg') && !this.hasJustIcon(),\n 'px-6 py-3': this.size === 'xl' && !this.hasJustIcon(),\n 'p-1': this.hasJustIcon() && this.variant !== 'blank',\n 'text-xs': this.size === 'xs',\n 'text-sm': this.size === 'sm' || this.size === 'base',\n 'text-base': this.size === 'lg' || this.size === 'xl',\n 'w-full grow': this.fullSize,\n 'opacity-50 hover:none': this.disabled,\n };\n }\n\n hasJustIcon(): boolean {\n return this.icon !== undefined && this.text === undefined;\n }\n}\n","<button\n [type]=\"role\"\n class=\"flex flex-row items-center justify-center gap-1.5 rounded-md font-primary font-medium\"\n [ngClass]=\"cssClassmap\"\n [disabled]=\"disabled\">\n @if (icon) {\n <ct-icon class=\"flex\" [size]=\"size\" [icon]=\"icon\" />\n }\n @if (text) {\n <span [class.order-first]=\"iconPosition === 'right'\"> {{ text }} </span>\n }\n</button>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ComponentType } from '../../../model/components/component-type.type';\nimport { IconComponent } from '../icon/icon.component';\nimport { NgClass } from '@angular/common';\nimport { ButtonComponent } from '../button/button.component';\nimport { ComponentVariant } from '../../../model/components/component-variant.type';\nimport { ComponentSize } from '../../../model/components/component-size.type';\n/**\n * The alert component is responsible to show alerts for diverse elements. Including `FormErrorComponent` among others.\n */\n@Component({\n selector: 'ct-alert',\n standalone: true,\n imports: [IconComponent, ButtonComponent, NgClass],\n templateUrl: './alert.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlertComponent {\n @Input() dismissable: boolean = false;\n @Input() fullSize: boolean = true;\n @Input({ required: true }) text = '';\n @Input() type: ComponentType = 'primary';\n @Input() variant: ComponentVariant = 'solid';\n @Input() size: ComponentSize = 'base';\n @Input() withIcon: boolean = true;\n @Output() dismiss = new EventEmitter<void>();\n\n get icon(): string {\n switch (this.type) {\n case 'primary':\n case 'secondary':\n case 'neutral':\n return 'information-circle';\n case 'error':\n return 'exclamation-triangle';\n case 'warning':\n return 'exclamation-circle';\n case 'success':\n return 'check-circle';\n default:\n return '';\n }\n }\n}\n","<div\n class=\"flex flex-row items-center gap-1 rounded-lg font-primary\"\n [class.w-fit]=\"!fullSize\"\n [class.w-full]=\"fullSize\"\n role=\"alert\"\n [ngClass]=\"{\n 'text-xs': size === 'xs' || size === 'sm',\n 'text-sm': size === 'base',\n 'text-base': size === 'lg' || size === 'xl',\n 'text-primary dark:text-on-primary-dark': type === 'primary' && variant !== 'solid',\n 'text-neutral dark:text-on-neutral-dark': type === 'neutral' && variant !== 'solid',\n 'text-warning dark:text-warning-variant-dark': type === 'warning' && variant !== 'solid',\n 'text-error dark:text-error-variant-dark': type === 'error' && variant !== 'solid',\n 'text-success dark:texts-success-variant-dark': type === 'success' && variant !== 'solid',\n\n 'bg-primary dark:bg-primary-dark text-on-primary dark:text-on-primary-dark':\n type === 'primary' && variant === 'solid',\n 'bg-neutral dark:bg-neutral-dark text-on-neutral dark:text-on-neutral-dark':\n type === 'neutral' && variant === 'solid',\n 'bg-warning dark:bg-warning-dark text-on-warning dark:text-on-warning-dark':\n type === 'warning' && variant === 'solid',\n 'bg-error dark:bg-error-dark text-on-error dark:text-on-error-dark': type === 'error' && variant === 'solid',\n 'bg-success dark:bg-success-dark text-on-success dark:text-on-success-dark':\n type === 'success' && variant === 'solid',\n\n border: variant === 'outline',\n 'border-primary dark:border-primary-dark': type === 'primary' && variant === 'outline',\n 'border-warning dark:border-warning-dark': type === 'warning' && variant === 'outline',\n 'border-error dark:border-error-dark': type === 'error' && variant === 'outline',\n 'border-success dark:border-success-dark': type === 'success' && variant === 'outline',\n 'px-4 py-2': variant !== 'blank'\n }\">\n @if (withIcon) {\n <ct-icon [icon]=\"this.icon\" [size]=\"size\" />\n }\n <span class=\"grow font-semibold\">{{ text }}</span>\n @if (dismissable) {\n <ct-button\n icon=\"x-mark\"\n size=\"sm\"\n [variant]=\"this.variant === 'solid' ? 'solid' : 'blank'\"\n [type]=\"type\"\n (click)=\"dismiss.emit()\" />\n }\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeImage',\n standalone: true,\n})\nexport class SafeImagePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(value: any, type = 'image/webp'): SafeUrl {\n const imageBase64 = `data:${type};base64,${value}`;\n return this.sanitizer.bypassSecurityTrustUrl(imageBase64);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { SafeImagePipe } from '../../../pipes/safe-image.pipe';\nimport { ComponentSize } from '../../../model/components/component-size.type';\n\n@Component({\n selector: 'ct-avatar',\n standalone: true,\n imports: [IconComponent, SafeImagePipe],\n templateUrl: './avatar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AvatarComponent implements OnInit {\n @Input() picture = '';\n @Input() title = '';\n @Input() size: ComponentSize = 'base';\n @Input() imageType = 'image/webp';\n titleInitials = '';\n ngOnInit(): void {\n this.titleInitials = this.title\n ? this.title\n .split(' ')\n .map(word => word[0]?.toLocaleUpperCase())\n .splice(0, 2)\n .join('')\n : '';\n }\n}\n","@if (picture) {\n @if (imageType !== 'icon') {\n <img\n [src]=\"picture | safeImage: imageType\"\n alt=\"{{ title }}\"\n [class.size-40]=\"size === '3xl'\"\n [class.size-32]=\"size === '2xl'\"\n [class.size-24]=\"size === 'xl'\"\n [class.size-20]=\"size === 'lg'\"\n [class.size-14]=\"size === 'base'\"\n [class.size-10]=\"size === 'sm'\"\n [class.size-6]=\"size === 'xs'\"\n class=\"rounded-full border-2 border-primary object-cover dark:border-primary-dark\" />\n } @else {\n <div\n class=\"flex flex-row items-center justify-center rounded-full bg-surface-variant text-on-primary dark:bg-surface-variant-dark dark:text-on-primary-dark\"\n [class.size-40]=\"size === '3xl'\"\n [class.size-32]=\"size === '2xl'\"\n [class.size-24]=\"size === 'xl'\"\n [class.size-20]=\"size === 'lg'\"\n [class.size-16]=\"size === 'base'\"\n [class.size-12]=\"size === 'sm'\"\n [class.size-10]=\"size === 'xs'\">\n <ct-icon [icon]=\"picture\" [size]=\"size\" />\n </div>\n }\n} @else {\n <div\n [class.size-40]=\"size === '3xl'\"\n [class.size-32]=\"size === '2xl'\"\n [class.size-24]=\"size === 'xl'\"\n [class.size-20]=\"size === 'lg'\"\n [class.size-16]=\"size === 'base'\"\n [class.size-12]=\"size === 'sm'\"\n [class.size-10]=\"size === 'xs'\"\n class=\"flex items-center justify-center truncate rounded-full border border-primary bg-primary-container text-on-primary-container dark:bg-primary-container-dark dark:text-on-primary-container-dark\">\n <span class=\"text-2xl font-medium\"> {{ titleInitials }}</span>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { ComponentType } from '../../../model/components/component-type.type';\nimport { ComponentVariant } from '../../../model/components/component-variant.type';\nimport { ComponentSize } from '../../../model/components/component-size.type';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'ct-icon-button',\n standalone: true,\n imports: [NgClass, IconComponent],\n templateUrl: './icon-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconButtonComponent {\n @Input({ required: true }) icon = '';\n @Input({ transform: (value: string) => value as ComponentType }) type: ComponentType = 'primary';\n @Input({ transform: (value: string) => value as ComponentVariant }) variant: ComponentVariant = 'solid';\n @Input() size: ComponentSize = 'base';\n @Input() role: 'button' | 'submit' | 'reset' = 'button';\n @Input() disabled = false;\n}\n","<button\n class=\"flex w-fit rounded-full bg-primary p-2 text-on-primary dark:text-on-primary-dark\"\n [ngClass]=\"{\n 'bg-primary hover:bg-primary-variant dark:bg-primary-variant-dark hover:dark:bg-surface-dark': variant === 'solid',\n 'hover:text-primary-variant hover:dark:text-primary-variant-dark': variant === 'flat'\n }\"\n [type]=\"role\">\n <ct-icon [class.opacity-50]=\"disabled\" [icon]=\"icon\" [size]=\"size\" />\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ct-header',\n standalone: true,\n imports: [],\n templateUrl: './header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderComponent {\n @Input() title = '';\n}\n","<div\n class=\"flex h-14 w-full items-center justify-between bg-gradient-to-b from-surface to-primary px-4 py-2 dark:from-surface-variant-dark dark:to-primary-container-dark\">\n <div class=\"flex grow font-logo\">{{ title }}</div>\n <ng-content />\n</div>\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { Overlay, OverlayRef, ConnectedPosition, FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { ComponentDisposition } from '../model/components/component-disposition.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounceTime, fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[ctOverlay]',\n standalone: true,\n})\nexport class OverlayDirective {\n private verticalPositions: { [key: string]: ConnectedPosition } = {\n bottomStart: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n panelClass: 'vertical-overlay',\n },\n topStart: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'vertical-overlay',\n },\n bottomEnd: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n panelClass: 'vertical-overlay',\n },\n topEnd: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'vertical-overlay',\n },\n };\n private horizontalPositions: { [key: string]: ConnectedPosition } = {\n bottomStart: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: 7,\n },\n topStart: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n };\n private overlayRef: OverlayRef | null = null;\n @Input('ctOverlay') contentTemplate!: TemplateRef<any>;\n @Input('ctOverlayPosition') position: ComponentDisposition = 'horizontal';\n @Input('ctOverlayCloseOnClick') closeOnClick: boolean = false;\n @Output() opened = new EventEmitter<void>();\n @Output() closed = new EventEmitter<void>();\n\n constructor(\n private overlay: Overlay,\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n private readonly destroyRef: DestroyRef\n ) {}\n\n @HostListener('click')\n show(): void {\n this.openDropdown();\n this.opened.emit();\n }\n\n private openDropdown(): void {\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.getOverlayPosition(),\n });\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this.destroyRef), debounceTime(100))\n .subscribe(() => {\n this.closeDropdown();\n this.closed.emit();\n });\n\n fromEvent(this.overlayRef.hostElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.closeOnClick) this.closeDropdown();\n });\n }\n\n if (this.contentTemplate && !this.overlayRef.hasAttached()) {\n const portal = new TemplatePortal(this.contentTemplate, this.viewContainerRef);\n this.overlayRef.attach(portal);\n }\n }\n\n private closeDropdown(): void {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n }\n\n private getOverlayPosition(): FlexibleConnectedPositionStrategy {\n const positions = this.position === 'horizontal' ? this.horizontalPositions : this.verticalPositions;\n return this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions(Object.keys(positions).map(positionKey => positions[positionKey]));\n }\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MenuItemComponent } from '../../atoms/menu-item/menu-item.component';\nimport { OverlayDirective } from '../../../directives/overlay.directive';\nimport { ComponentDisposition } from '../../../model/components/component-disposition.enum';\nimport { ComponentVariant } from '../../../model/components/component-variant.type';\nimport { ComponentType } from '../../../model/components/component-type.type';\n\n@Component({\n selector: 'ct-menu',\n standalone: true,\n imports: [NgClass, MenuItemComponent, OverlayDirective],\n templateUrl: './menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuComponent {\n @Input() direction: ComponentDisposition = 'vertical';\n @Input() iconDirection: ComponentDisposition = 'horizontal';\n @Input() type: ComponentType = 'primary';\n @Input() variant: ComponentVariant = 'solid';\n @Input() gap = 2;\n @Input() fullSize: boolean = true;\n @Input() iconAlone = false;\n @Input() menusAppearVertical = false;\n}\n","<div\n class=\"flex flex-col gap-{{ gap }} z-10 rounded-md p-2 font-primary\"\n [ngClass]=\"{\n 'shadow-lg': variant === 'solid',\n 'bg-surface dark:bg-surface-dark': variant === 'solid'\n }\">\n <div\n class=\"flex justify-around\"\n [class.flex-col]=\"direction === 'vertical'\"\n [class.flex-row]=\"direction === 'horizontal'\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, ContentChildren, Input, QueryList } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ComponentSize } from '../../../model/components/component-size.type';\nimport { IconComponent } from '../icon/icon.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { OverlayDirective } from '../../../directives/overlay.directive';\nimport { ComponentDisposition } from '../../../model/components/component-disposition.enum';\nimport { MenuComponent } from '../../molecules/menu/menu.component';\nimport { BehaviorSubject } from 'rxjs';\nimport { AsyncPipe, NgClass } from '@angular/common';\n\n@Component({\n selector: 'ct-menu-item',\n standalone: true,\n imports: [RouterLink, NgClass, AsyncPipe, IconComponent, ButtonComponent, OverlayDirective],\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuItemComponent {\n @Input() text = '';\n @Input() link = '';\n @Input({ required: true }) type: string | 'internal' | 'external' = 'internal';\n @Input() size: ComponentSize = 'base';\n @Input() icon = '';\n @Input() iconSize: ComponentSize = 'base';\n @Input() iconAlone = false;\n @Input() iconDirection: ComponentDisposition = 'horizontal';\n @Input() hasSubmenu = false;\n @Input() submenuPosition: ComponentDisposition = 'horizontal';\n @Input() isActive = false;\n isOpen = new BehaviorSubject<boolean>(false);\n\n @ContentChildren(MenuComponent) menus!: QueryList<MenuComponent>;\n}\n","@if (menus.length > 0) {\n <a\n [ctOverlay]=\"dropDown\"\n [ctOverlayPosition]=\"submenuPosition\"\n (closed)=\"isOpen.next(false)\"\n (opened)=\"isOpen.next(true)\"\n [ngClass]=\"{\n 'bg-surface-variant dark:bg-surface-variant-dark': isOpen | async\n }\"\n class=\"block cursor-pointer rounded-md px-4 py-2 font-medium text-on-surface hover:bg-primary-variant dark:text-on-surface-dark hover:dark:bg-primary-dark\">\n <span\n class=\"flex items-center gap-3\"\n [class.flex-row]=\"iconDirection === 'horizontal'\"\n [class.flex-col]=\"iconDirection === 'vertical'\">\n @if (icon) {\n <ct-icon [icon]=\"icon\" [size]=\"iconSize\" />\n }\n @if (text && !iconAlone) {\n <span\n [class.text-sm]=\"size === 'xs' || size === 'sm'\"\n [class.text-base]=\"size === 'base' || size === 'lg'\"\n [class.text-xl]=\"size === 'xl'\"\n >{{ text }}</span\n >\n }\n @if (!iconAlone) {\n @if (isOpen | async) {\n <ct-icon [icon]=\"submenuPosition === 'vertical' ? 'chevron-up' : 'chevron-left'\" variant=\"blank\" />\n } @else {\n <ct-icon [icon]=\"submenuPosition === 'vertical' ? 'chevron-down' : 'chevron-right'\" variant=\"blank\" />\n }\n }\n </span>\n </a>\n <ng-template #dropDown><ng-content></ng-content></ng-template>\n} @else {\n @if (link) {\n <a\n class=\"block cursor-pointer rounded-md px-4 py-2 font-medium text-on-surface hover:bg-surface-variant dark:text-on-surface-dark dark:hover:bg-surface-variant-dark\"\n [routerLink]=\"link\"\n [ngClass]=\"{\n 'bg-surface-variant dark:bg-surface-variant-dark': isActive\n }\">\n <ng-content select=\"[hint]\" />\n <span\n class=\"flex items-center gap-3\"\n [class.flex-row]=\"iconDirection === 'horizontal'\"\n [class.flex-col]=\"iconDirection === 'vertical'\">\n @if (icon) {\n <ct-icon [icon]=\"icon\" variant=\"solid\" [size]=\"iconSize\" />\n }\n @if (text && !iconAlone) {\n <span\n [class.text-sm]=\"size === 'xs' || size === 'sm'\"\n [class.text-base]=\"size === 'base' || size === 'lg'\"\n [class.text-xl]=\"size === 'xl'\"\n >{{ text }}</span\n >\n }\n </span>\n </a>\n } @else {\n <span\n class=\"block cursor-pointer rounded-md px-4 py-2 font-medium text-on-surface hover:bg-surface-variant dark:text-on-surface-dark dark:hover:bg-surface-variant-dark\"\n [ngClass]=\"{\n 'bg-surface-variant dark:bg-surface-variant-dark': isActive\n }\">\n <ng-content select=\"[hint]\" />\n <span\n class=\"flex items-center gap-3\"\n [class.flex-row]=\"iconDirection === 'horizontal'\"\n [class.flex-col]=\"iconDirection === 'vertical'\">\n @if (icon) {\n <ct-icon [icon]=\"icon\" variant=\"solid\" [size]=\"iconSize\" />\n }\n @if (text && !iconAlone) {\n <span\n [class.text-sm]=\"size === 'xs' || size === 'sm'\"\n [class.text-base]=\"size === 'base' || size === 'lg'\"\n [class.text-xl]=\"size === 'xl'\"\n >{{ text }}</span\n >\n }\n </span>\n </span>\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AccordionComponent } from '../components/molecules/accordion/accordion.component';\nimport { AccordionItemComponent } from '../components/atoms/accordion-item/accordion-item.component';\n\n@Injectable({ providedIn: 'any' })\nexport class AccordionRegistryService {\n private accordions = new Map<string, AccordionComponent>();\n\n register(id: string, element: AccordionComponent): void {\n this.accordions.set(id, element);\n }\n\n get(id: string): AccordionComponent | undefined {\n return this.accordions.get(id);\n }\n\n unregister(id: string): void {\n this.accordions.delete(id);\n }\n\n getItem(accordionId: string, itemId: string): AccordionItemComponent {\n const accordionObject = this.accordions.get(accordionId) as AccordionComponent;\n return accordionObject.accordionItems.find(item => item.id === itemId) as AccordionItemComponent;\n }\n\n openItem(accordionId: string, itemId: string) {\n this.getItem(accordionId, itemId)?.isOpen.next(true);\n }\n\n closeItem(accordionId: string, itemId: string) {\n this.getItem(accordionId, itemId)?.isOpen.next(false);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n SkipSelf,\n inject,\n} from '@angular/core';\nimport { IconComponent } from '../../atoms/icon/icon.component';\nimport { AccordionItemComponent } from '../../atoms/accordion-item/accordion-item.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounceTime, filter, skip } from 'rxjs';\nimport { AsyncPipe } from '@angular/common';\nimport { AccordionRegistryService } from '../../../services/accordion-registry.service';\n\n@Component({\n selector: 'ct-accordion',\n standalone: true,\n imports: [AsyncPipe, IconComponent],\n templateUrl: './accordion.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionComponent implements AfterViewInit, OnDestroy {\n private readonly destroyRef = inject(DestroyRef);\n private readonly accordionRegistryService = inject(AccordionRegistryService);\n @Input() label = '';\n @Input({ required: true }) id!: string;\n @Input() policy: 'collapse' | 'open' = 'collapse';\n @Input() gap: number = 0;\n\n @ContentChildren(AccordionItemComponent) accordionItems!: QueryList<AccordionItemComponent>;\n\n constructor(@Optional() @SkipSelf() protected parent: AccordionItemComponent) {}\n\n ngAfterViewInit() {\n this.accordionItems.forEach(accordionItem => {\n accordionItem.isOpen\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n skip(1),\n filter(isOpen => isOpen),\n debounceTime(10)\n )\n .subscribe(() => {\n if (this.parent) {\n this.parent?.isOpen.next(true);\n }\n if (this.policy === 'collapse') {\n this.accordionItems.forEach(otherAccordionItem => {\n if (accordionItem.id !== otherAccordionItem.id && otherAccordionItem.isOpen.getValue()) {\n otherAccordionItem.isOpen.next(false);\n }\n });\n }\n });\n });\n this.accordionRegistryService.register(this.id, this);\n }\n\n ngOnDestroy() {\n this.accordionRegistryService.unregister(this.id);\n }\n\n closePanes() {\n this.accordionItems.forEach(accordionItem => accordionItem.isOpen.next(false));\n }\n}\n","<div class=\"flex flex-col gap-{{ gap }}\">\n <ng-content></ng-content>\n</div>\n","import { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n Input,\n QueryList,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, filter, skip } from 'rxjs';\nimport { AccordionComponent } from '../../molecules/accordion/accordion.component';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'ct-accordion-item',\n standalone: true,\n imports: [IconComponent, AsyncPipe, NgTemplateOutlet],\n templateUrl: './accordion-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionItemComponent implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n @Input({ required: true }) id = '';\n @Input() label = '';\n isOpen = new BehaviorSubject<boolean>(false);\n\n @ContentChild('header') headerTemplate!: TemplateRef<any>;\n @ContentChildren(AccordionComponent) accordions!: QueryList<AccordionComponent>;\n\n ngAfterViewInit() {\n this.isOpen\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n skip(1),\n filter(isOpen => !isOpen)\n )\n .subscribe(() => {\n this.accordions.forEach(accordion => {\n accordion.closePanes();\n });\n });\n }\n\n togglePane() {\n this.isOpen.next(!this.isOpen.getValue());\n }\n}\n","<div class=\"flex flex-col\">\n <div tabindex=\"0\" (click)=\"togglePane()\" class=\"flex cursor-pointer flex-row rounded-md\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { isOpen: (isOpen | async) }\">\n <ng-content select=\"[header]\" />\n </ng-container>\n </div>\n <!-- providing a high value for max-height -->\n <div\n [style.max-height]=\"(isOpen | async) ? '1024px' : '0px'\"\n class=\"overflow-hidden transition-[max-height] duration-500 ease-in-out\">\n @if (isOpen | async) {\n <ng-content />\n }\n </div>\n</div>\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, signal } from '@angular/core';\nimport { ComponentVariant } from '../../../model/components/component-variant.type';\n\n@Component({\n selector: 'ct-tab-button',\n standalone: true,\n imports: [NgClass, AsyncPipe],\n templateUrl: './tab-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabButtonComponent {\n @Input({ required: true }) key = '';\n @Input() title = '';\n @Input() subTitle = '';\n @Input() variant: ComponentVariant = 'solid';\n @Output() clicked = new EventEmitter<string>();\n isActive = signal(false);\n}\n","<div\n tabindex=\"0\"\n class=\"flex w-full cursor-pointer flex-col p-1 text-center\"\n [ngClass]=\"{\n 'rounded-md hover:bg-surface-variant dark:hover:bg-surface-variant-dark': variant === 'solid',\n 'bg-surface dark:bg-surface-dark': isActive() && variant === 'solid',\n 'border-b-4 rounded-t-md': variant === 'flat',\n 'border-surface-variant dark:border-surface-variant-dark': isActive() && variant === 'flat',\n 'border-transparent hover:border-surface dark:hover:border-surface-dark': !isActive() && variant === 'flat'\n }\"\n (click)=\"clicked.emit(key)\">\n <span class=\"font-bold\">{{ title }}</span>\n @if (subTitle) {\n <p class=\"text-sm\">{{ subTitle }}</p>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { MenuComponent } from '../../molecules/menu/menu.component';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { ComponentSize } from '../../../model/components/component-size.type';\n\n@Component({\n selector: 'ct-list-item',\n standalone: true,\n imports: [AvatarComponent, IconComponent, MenuComponent, MenuItemComponent],\n templateUrl: './list-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListItemComponent {\n @Input() avatar = '';\n @Input() avatarSize: ComponentSize = 'base';\n @Input() avatarType = 'image/webp';\n @Input() header = '';\n @Input() subHeader = '';\n @Input() subTitle = '';\n}\n","<li\n class=\"flex cursor-pointer flex-row items-center gap-4 px-4 py-2 hover:bg-surface-variant hover:dark:bg-surface-variant-dark\">\n <ct-avatar class=\"flex-none\" [picture]=\"avatar\" [title]=\"header\" [size]=\"avatarSize\" [imageType]=\"avatarType\" />\n <div class=\"flex grow flex-col overflow-hidden\">\n @if (header) {\n <span class=\"truncate text-lg font-medium text-on-primary dark:text-on-primary-dark\" [innerHTML]=\"header\"></span>\n }\n @if (subHeader) {\n <span class=\"truncate text-sm text-on-surface dark:text-on-surface-dark\" [innerHTML]=\"subHeader\"></span>\n }\n </div>\n <ng-content />\n</li>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ct-list',\n standalone: true,\n imports: [],\n templateUrl: './list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListComponent {\n\n}\n","<ul class=\"flex grow flex-col divide-y divide-primary-400 font-primary dark:divide-primary-700\">\n <ng-content />\n</ul>\n","import { DestroyRef, Directive, ElementRef, EventEmitter, Input, OnInit, Renderer2 } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[ctTabPanel]',\n standalone: true,\n})\nexport class TabPanelDirective implements OnInit {\n @Input() ctTabPanel = '';\n @Input() hide = new EventEmitter<boolean>();\n\n constructor(\n private elementRef: ElementRef,\n private readonly destroyRef: DestroyRef,\n private readonly renderer: Renderer2\n ) {\n this.hide.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(hide => {\n this.renderer.addClass(this.elementRef.nativeElement, hide ? 'hidden' : 'flex');\n this.renderer.removeClass(this.elementRef.nativeElement, hide ? 'flex' : 'hidden');\n });\n }\n\n ngOnInit(): void {\n this.hide.next(true);\n }\n\n show(): void {\n this.renderer.addClass(this.elementRef.nativeElement, 'flex');\n this.renderer.removeClass(this.elementRef.nativeElement, 'hidden');\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n} from '@angular/core';\nimport { TabButtonComponent } from '../../atoms/tab-button/tab-button.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TabPanelDirective } from '../../../directives/tab-panel.directive';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'ct-tab-group',\n standalone: true,\n imports: [NgClass, NgTemplateOutlet],\n templateUrl: './tab-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabGroupComponent implements AfterContentInit, OnChanges {\n private destroyRef = inject(DestroyRef);\n @Input() border = true;\n @Input() activeTab = '';\n\n @ContentChildren(TabButtonComponent) buttons!: QueryList<TabButtonComponent>;\n @ContentChildren(TabPanelDirective) panels!: QueryList<TabPanelDirective>;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['activeTab'].previousValue !== this.activeTab) {\n this.setActiveTab(this.activeTab);\n }\n }\n\n ngAfterContentInit(): void {\n this.setActiveTab(this.activeTab);\n this.buttons.forEach(button =>\n button.clicked.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(key => this.setActiveTab(key))\n );\n }\n\n setActiveTab(key: string): void {\n if (this.panels && this.buttons) {\n this.panels.forEach(panel => {\n if (panel.ctTabPanel === key) {\n panel.show();\n this.getTabButtonTrigger(panel.ctTabPanel)!.isActive.set(true);\n } else {\n this.getTabButtonTrigger(panel.ctTabPanel)!.isActive.set(false);\n panel.hide.next(true);\n }\n });\n }\n }\n\n private getTabButtonTrigger(key: string): TabButtonComponent {\n return this.buttons.find(panel => panel.key === key) as TabButtonComponent;\n }\n}\n","<div\n class=\"flex flex-row py-2 text-on-surface dark:text-on-surface-variant-dark\"\n [ngClass]=\"{\n 'my-4 gap-2 border-y border-surface-variant dark:border-surface-variant-dark': border\n }\">\n <ng-content select=\"[header]\" />\n</div>\n<ng-content select=\"[body]\" />\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AvatarComponent } from '../../atoms/avatar/avatar.component';\nimport { ButtonComponent } from '../../atoms/button/button.component';\nimport { SafeImagePipe } from '../../../pipes/safe-image.pipe';\nimport { ComponentDisposition } from '../../../model/components/component-disposition.enum';\n\n@Component({\n selector: 'ct-card',\n standalone: true,\n imports: [AvatarComponent, ButtonComponent, SafeImagePipe],\n templateUrl: './card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardComponent {\n @Input() header = '';\n @Input() subHeader = '';\n @Input() title = '';\n @Input() subTitle = '';\n @Input() avatar = '';\n @Input() image = '';\n @Input() disposition: ComponentDisposition = 'vertical';\n @Input() imageThumbnail = '';\n @Input() withActions = false;\n @Output() acceptButton = new EventEmitter<void>();\n @Output() cancelButton = new EventEmitter<void>();\n}\n","@if (disposition === 'vertical') {\n <div\n class=\"flex w-full flex-col rounded-xl bg-surface font-primary text-on-surface dark:bg-surface-dark dark:text-on-surface-dark\">\n <div class=\"flex flex-row items-center gap-4 px-4 py-2\">\n <ct-avatar [picture]=\"avatar\" [title]=\"title\" />\n <div class=\"w-fit flex-1\">\n <div class=\"flex flex-col overflow-hidden\">\n @if (header) {\n <span class=\"overflow-hidden text-ellipsis text-lg font-semibold\" [innerHTML]=\"header\"></span>\n }\n @if (subHeader) {\n <span class=\"overflow-hidden text-ellipsis text-sm\" [innerHTML]=\"subHeader\"></span>\n }\n </div>\n </div>\n <div class=\"relative flex-none rounded-r-xl\">\n @if (imageThumbnail) {\n <img class=\"flex max-w-24 rounded-tr-xl object-cover\" [src]=\"imageThumbnail\" [alt]=\"title\" />\n } @else {\n <ng-content select=\"[header-extra]\" />\n }\n </div>\n </div>\n @if (image) {\n <img class=\"size-full object-cover\" [src]=\"image\" [alt]=\"title\" />\n }\n <ng-content select=\"[image-vertical]\" />\n @if (title || subTitle) {\n <div class=\"flex w-full flex-col px-4 py-2\">\n <div class=\"text-xl font-bold\" [innerHTML]=\"title\"></div>\n <div class=\"mb-2 text-base font-semibold\" [innerHTML]=\"subTitle\"></div>\n <div class=\"flex w-fit grow-0\"><ng-content select=\"[body]\" /></div>\n </div>\n }\n @if (withActions) {\n <div class=\"flex flex-row justify-end gap-2 px-4 py-2\">\n <ct-button text=\"test\" variant=\"flat\" (click)=\"acceptButton.emit()\" />\n <ct-button text=\"test\" variant=\"flat\" type=\"neutral\" (click)=\"cancelButton.emit()\" />\n </div>\n }\n </div>\n} @else {\n <div\n class=\"flex w-full flex-row items-stretch rounded-xl bg-surface font-primary text-on-surface dark:bg-surface-dark dark:text-on-surface-dark\">\n <div class=\"h-full w-3/4 flex-none\">\n @if (image) {\n <img class=\"size-full rounded-l-xl object-cover\" [src]=\"image\" [alt]=\"title\" />\n }\n <ng-content select=\"[image-horizontal]\" />\n </div>\n <div class=\"flex w-1/4 flex-col justify-between\">\n <div class=\"flex shrink-0 flex-row items-center gap-4 px-4 py-2\">\n <div class=\"flex-none\">\n <ct-avatar [picture]=\"avatar\" [title]=\"title\" />\n </div>\n <div class=\"flex w-fit flex-1 flex-col overflow-hidden\">\n @if (header) {\n <span class=\"overflow-hidden text-lg font-semibold\" [innerHTML]=\"header\"></span>\n }\n @if (subHeader) {\n <span class=\"overflow-hidden text-ellipsis text-sm\" [innerHTML]=\"subHeader\"></span>\n }\n </div>\n </div>\n <div class=\"flex-auto overflow-y-auto\">\n <ng-content select=\"[body-horizontal]\" />\n </div>\n <article class=\"flex-none flex-col gap-2\">\n <p class=\"text-wrap px-4 text-xl font-bold\" [innerHTML]=\"title\"></p>\n <p class=\"mb-2 text-wrap px-4 text-base font-semibold\" [innerHTML]=\"subTitle\"></p>\n <ng-content select=\"[footer-horizontal]\" />\n </article>\n </div>\n </div>\n}\n","import { ChangeDetectorRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroupDirective } from '@angular/forms';\n\nexport abstract class FormGenericComponent implements ControlValueAccessor {\n private onChange: (value: any) => void = () => {};\n private onTouched: () => void = () => {};\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n abstract formControlName: string;\n\n constructor(protected formGroupDirective: FormGroupDirective) {}\n\n hasErrors(formControl: FormControl): boolean {\n return (formControl && /*!formControl.pristine &&*/ formControl.touched && !!formControl.errors) as boolean;\n }\n\n get formControl() {\n return this.formGroupDirective && (this.formGroupDirective.form.get(this.formControlName) as FormControl);\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n protected triggerChange(value: any): void {\n if (value && this.formControl) this.formControl.markAsDirty();\n this.onChange(value);\n }\n\n protected triggerTouched(): void {\n this.onTouched();\n }\n\n protected triggerMarkCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n protected triggerChangeDetection(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n abstract writeValue(value: any): void;\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AlertComponent } from '../../components/atoms/alert/alert.component';\nimport { ValidationErrors } from '@angular/forms';\nimport { KeyValuePipe } from '@angular/common';\nimport { ComponentSize } from '../../model/components/component-size.type';\nimport { IconComponent } from '../../components/atoms/icon/icon.component';\n\n@Component({\n selector: 'ct-form-alert',\n standalone: true,\n imports: [AlertComponent, KeyValuePipe, IconComponent],\n templateUrl: './error.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormErrorComponent {\n @Input({ required: true }) errors!: ValidationErrors;\n @Input() size: ComponentSize = 'base';\n @Input() hasErrors = false;\n @Input() fullSize = false;\n @Input() helper = '';\n @Input() errorMessages: { [key: string]: string } = {};\n}\n","<div\n class=\"flex min-h-4 flex-col justify-between gap-1 font-primary text-xs transition-opacity duration-500 ease-in-out sm:flex-row sm:items-center\"\n [class.w-full]=\"fullSize\"\n [class.w-fit]=\"!fullSize\"\n [class.opacity-0]=\"!hasErrors\"\n [class.opacity-100]=\"hasErrors\">\n @if (hasErrors) {\n <div class=\"flex flex-row items-center gap-1 text-error dark:text-error-variant-dark\">\n <ct-icon icon=\"exclamation-triangle\" size=\"sm\" />\n @for (error of errors | keyvalue; track error; let isLast = $last) {\n <span class=\"after:mx-1 after:inline-block after:content-[','] last:after:content-none\">{{\n errorMessages[error.key] ? errorMessages[error.key] : error.key\n }}</span>\n }\n </div>\n @if (helper) {\n <span>{{ helper }}</span>\n }\n }\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ComponentType } from '../../model/components/component-type.type';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'ct-form-label',\n standalone: true,\n imports: [NgClass],\n templateUrl: './label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LabelComponent {\n @Input({ required: true }) text = '';\n @Input() type: ComponentType = 'primary';\n @Input() formControlName = '';\n @Input() hasError = false;\n @Input() showError = false;\n}\n","<label\n class=\"flex font-primary text-sm font-medium\"\n [ngClass]=\"{\n 'text-on-primary dark:text-on-primary-dark': !hasError,\n 'text-error dark:text-error-variant-dark': type === 'error' || (hasError && showError),\n 'text-warning dark:text-warning-variant-dark': type === 'warning'\n }\"\n [for]=\"formControlName\"\n >{{ text }}</label\n>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponent } from '../../components/atoms/icon/icon.component';\n\n@Component({\n selector: 'ct-option',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './option.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OptionComponent {\n @Input({ required: true }) label = '';\n @Input() icon = '';\n}\n","<div\n class=\"flex cursor-pointer flex-row rounded-md px-4 py-2 text-sm hover:bg-surface-variant dark:hover:bg-surface-variant-dark\">\n @if (icon) {\n <ct-icon [icon]=\"icon\" />\n }\n {{ label }}\n</div>\n","import { ExistingProvider, forwardRef } from '@angular/core';\nimport { ControlContainer, FormGroupDirective, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Creates a value accessor provider for a form component.\n * @param component - The component that implements the NG_VALUE_ACCESSOR interface.\n * @returns An ExistingProvider object for the value accessor.\n */\nexport const provideValueAccessor = (component: unknown): ExistingProvider => ({\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => component),\n multi: true,\n});\n\n/**\n * Creates a control container provider using FormGroupDirective.\n * @returns An ExistingProvider object for the control container.\n */\nexport const provideControlContainer = (): ExistingProvider => ({\n provide: ControlContainer,\n useExisting: FormGroupDirective,\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Input,\n Optional,\n Output,\n forwardRef,\n} from '@angular/core';\nimport { FormGroupDirective } from '@angular/forms';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { provideControlContainer, provideValueAccessor } from '../utils/form.util';\nimport { FormGenericComponent } from '../../services/form-generic.abstract';\nimport { FormErrorComponent } from '../error/error.component';\nimport { LabelComponent } from '../label/label.component';\nimport { ComponentPosition } from '../../model/components/component-position.type';\nimport { IconComponent } from '../../components/atoms/icon/icon.component';\nimport { ComponentDisposition } from '../../model/components/component-disposition.enum';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'ct-input',\n standalone: true,\n imports: [NgClass, AsyncPipe, LabelComponent, IconComponent, FormErrorComponent],\n templateUrl: './input.component.html',\n providers: [provideValueAccessor(forwardRef(() => InputComponent))],\n viewProviders: [provideControlContainer()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputComponent extends FormGenericComponent {\n @Input() formControlName!: string;\n @Input() key = '';\n @Input() type: 'password' | 'text' | 'number' = 'text';\n @Input() value: any = '';\n\n @Input() label = '';\n @Input() icon = '';\n @Input() helper = '';\n @Input() placeholder = '';\n @Input() symbol = '';\n @Input() canDelete = false;\n @Input() fullSize = true;\n @Input() showError = false;\n @Input() min!: number;\n @Input() max!: number;\n @Input() iconPosition: ComponentPosition = 'left';\n @Input() disposition: ComponentDisposition = 'vertical';\n\n @Output() typed = new EventEmitter<string>();\n\n showDelete$ = new BehaviorSubject<boolean>(false);\n\n @HostListener('focusout')\n onFocusOut() {\n this.triggerTouched();\n }\n\n constructor(@Optional() protected override formGroupDirective: FormGroupDirective) {\n super(formGroupDirective);\n }\n\n input(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n if (this.canDelete) {\n this.showDelete$.next(!!value);\n }\n this.setValue(value);\n }\n\n clearValue() {\n this.showDelete$.next(false);\n this.triggerTouched();\n this.setValue(null);\n }\n\n setValue(value: any, propagate = true) {\n this.value = value;\n if (propagate) {\n this.triggerChange(value);\n this.typed.emit(value);\n }\n }\n\n writeValue(value: any) {\n if (value && this.canDelete) this.showDelete$.next(true);\n this.triggerMarkCheck();\n this.setValue(value, false);\n }\n}\n","<div\n class=\"flex\"\n [class.w-fit]=\"!fullSize\"\n [class.w-full]=\"fullSize\"\n [ngClass]=\"{\n 'items-center gap-4': disposition === 'horizontal',\n 'flex-col gap-0.5 items-start': disposition === 'vertical'\n }\">\n @if (label) {\n <ct-form-label [text]=\"label\" [hasError]=\"hasErrors(formControl)\" [showError]=\"showError\" />\n }\n <div\n class=\"relative inline-block rounded-md text-on-surface dark:text-on-surface-dark\"\n [class.w-fit]=\"!fullSize\"\n [class.w-full]=\"fullSize\">\n <input\n tabindex=\"0\"\n [type]=\"type\"\n [min]=\"min\"\n [max]=\"max\"\n class=\"h-9 rounded-md border bg-primary-50 font-primary text-sm outline-primary hover:border-neutral-600 dark:bg-primary-950 dark:outline-primary-dark focus:dark:border-primary-dark\"\n [class.px-4]=\"!icon || !symbol\"\n [ngClass]=\"{\n 'px-4': !icon,\n 'pr-4 pl-10': icon && iconPosition === 'left',\n 'pl-4 pr-10': (icon && iconPosition === 'right') || symbol || canDelete\n }\"\n [class.w-fit]=\"!fullSize\"\n [class.w-full]=\"fullSize\"\n [class.border-neutral-300]=\"!hasErrors(formControl) || !showError\"\n [class.border-error]=\"hasErrors(formControl) && showError\"\n [class.border-success]=\"formControl && formControl.valid && showError\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n (input)=\"input($event)\" />\n @if (icon) {\n <ct-icon\n class=\"absolute top-2\"\n [class.left-3]=\"iconPosition === 'left'\"\n [class.right-3]=\"iconPosition === 'right'\"\n [icon]=\"icon\" />\n }\n @if (symbol) {\n <span class=\"absolute right-3 top-2.5 text-xs text-neutral-600 dark:text-neutral-300\">{{ symbol }}</span>\n }\n @if (showDelete$ | async) {\n <ct-icon class=\"absolute right-3 top-2.5 cursor-pointer\" icon=\"x-mark\" size=\"sm\" (click)=\"clearValue()\" />\n }\n </div>\n @if (formControl) {\n <ct-form-alert\n [fullSize]=\"fullSize\"\n [hasErrors]=\"hasErrors(formControl)\"\n [helper]=\"helper\"\n [errors]=\"formControl.errors ?? {}\"\n size=\"xs\" />\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { FormGenericComponent } from '../../services/form-generic.abstract';\nimport { ComponentPosition } from '../../model/components/component-position.type';\nimport { FormGroupDirective } from '@angular/forms';\nimport { FormErrorComponent } from '../error/error.component';\nimport { LabelComponent } from '../label/label.component';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { IconComponent } from '../../components/atoms/icon/icon.component';\nimport { FormOptionBase } from '../../model/forms/form-base.model';\nimport { OptionComponent } from '../option/option.component';\nimport { provideControlContainer, provideValueAccessor } from '../utils/form.util';\nimport { InputComponent } from '../input/input.component';\nimport { BehaviorSubject, Subject, debounceTime } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ComponentDisposition } from '../../model/components/component-disposition.enum';\n\n@Component({\n selector: 'ct-autocomplete',\n standalone: true,\n imports: [IconComponent, FormErrorComponent, LabelComponent, OptionComponent, InputComponent, NgClass, AsyncPipe],\n templateUrl: './autocomplete.component.html',\n providers: [provideValueAccessor(forwardRef(() => AutocompleteComponent))],\n viewProviders: [provideControlContainer()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AutocompleteComponent extends FormGenericComponent {\n private readonly destroyRef = inject(DestroyRef);\n @Input() formControlName!: string;\n @Input({ required: true }) key = '';\n @Input({ required: true }) options: FormOptionBase[] = [];\n @Input() label = '';\n @Input() icon = '';\n @Input() helper = '';\n @Input() placeholder = '';\n @Input() value: any = '';\n @Input() inputValue = '';\n @Input() iconPosition: ComponentPosition = 'left';\n @Input() disposition: ComponentDisposition = 'vertical';\n @Input() fullSize = true;\n @Input() multiple = false;\n @Input() showError = false;\n\n @Output() typed = new EventEmitter<string>();\n @Output() selected = new EventEmitter<any>();\n\n focusOut$ = new Subject<any>();\n inputValue$ = new BehaviorSubject<string>('');\n\n constructor(formGroupDirective: FormGroupDirective) {\n super(formGroupDirective);\n\n this.focusOut$.pipe(takeUntilDestroyed(this.destroyRef), debounceTime(150)).subscribe(() => {\n this.options = [];\n this.triggerTouched();\n this.triggerMarkCheck();\n });\n }\n\n input(value: string) {\n if (!value) this.options = [];\n if (this.value && !this.multiple) {\n this.setValue(null);\n this.inputValue$.next('');\n return;\n }\n if (this.multiple) {\n this.inputValue$.next(value);\n }\n this.typed.emit(value);\n }\n\n setValue(value: any, propagate = true) {\n this.value = value;\n\n if (propagate) {\n this.triggerChange(value);\n this.selected.emit(value);\n }\n\n if (value) {\n const selectedOption = this.options.find(option => option.key === value)!;\n if (!this.multiple) this.inputValue$.next(selectedOption ? selectedOption.label : this.placeholder);\n else {\n const currentWords = this.inputValue$.getValue().split(' ');\n // replacing the last word with the current 'label' value\n currentWords[currentWords.length - 1] = selectedOption ? selectedOption.label : this.placeholder;\n this.inputValue$.next(currentWords.join(' '));\n }\n }\n }\n\n writeValue(value: any) {\n this.triggerMarkCheck();\n this.setValue(value, false);\n }\n}\n","<div class=\"flex gap-1 font-primary\" [class.flex-col]=\"disposition === 'vertical'\">\n @if (label) {\n <ct-form-label\n [text]=\"label\"\n [hasError]=\"hasErrors(formControl)\"\n [showError]=\"showError\"\n [formControlName]=\"formControlName\" />\n }\n <div class=\"flex flex-col\" [class.w-full]=\"fullSize\" [class.w-fit]=\"!fullSize\">\n <ct-input\n key=\"autocomplete\"\n [canDelete]=\"true\"\n [helper]=\"helper\"\n [value]=\"inputValue$ | async\"\n [placeholder]=\"placeholder\"\n (typed)=\"input($event)\"\n (focusout)=\"focusOut$.next($event)\" />\n @if (options && options.length > 0) {\n <div class=\"relative flex flex-col\">\n <div\n [class.w-full]=\"fullSize\"\n [class.w-fit]=\"!fullSize\"\n class=\"absolute top-0.5 z-10 flex max-h-72 flex-col overflow-y-auto rounded-md border border-neutral-400 bg-surface text-on-surface shadow-lg dark:bg-surface-dark dark:text-on-surface-dark\">\n @for (option of options; track option) {\n <ct-option (click)=\"setValue(option.key)\" [label]=\"option.label\" [icon]=\"option.icon!\" />\n }\n </div>\n </div>\n }\n </div>\n @if (formControl) {\n <ct-form-alert\n [hasErrors]=\"hasErrors(formControl)\"\n [helper]=\"helper\"\n [errors]=\"formControl.errors ?? {}\"\n size=\"xs\" />\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ButtonComponent } from '../../components/atoms/button/button.component';\nimport { IconComponent } from '../../components/atoms/icon/icon.component';\nimport { FormOptionBase } from '../../model/forms/form-base.model';\nimport { OptionComponent } from '../option/option.component';\nimport { Subject, debounceTime } from 'rxjs';\nimport { FormGroupDirective } from '@angular/forms';\nimport { LabelComponent } from '../label/label.component';\nimport { AlertComponent } from '../../components/atoms/alert/alert.component';\nimport { provideControlContainer, provideValueAccessor } from '../utils/form.util';\nimport { FormGenericComponent } from '../../services/form-generic.abstract';\nimport { FormErrorComponent } from '../error/error.component';\nimport { ComponentDisposition } from '../../model/components/component-disposition.enum';\nimport { OverlayDirective } from '../../directives/overlay.directive';\n\n@Component({\n selector: 'ct-select',\n standalone: true,\n imports: [\n OptionComponent,\n ButtonComponent,\n IconComponent,\n LabelComponent,\n AlertComponent,\n FormErrorComponent,\n OverlayDirective,\n ],\n templateUrl: './select.component.html',\n styles: ['vertical-overlay { @apply w-full; }'],\n providers: [provideValueAccessor(forwardRef(() => SelectComponent))],\n viewProviders: [provideControlContainer()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectComponent extends FormGenericComponent implements OnInit, OnChanges {\n focusOut$ = new Subject<any>();\n isOpen = false;\n option = '';\n\n @Input() formControlName!: string;\n @Input() key = '';\n @Input({ required: true }) options: FormOptionBase[] = [];\n @Input() label = '';\n @Input() helper = '';\n @Input() placeholder = '';\n @Input() value: any = '';\n @Input() disposition: ComponentDisposition = 'vertical';\n @Input() fullSize: boolean = true;\n @Input() showError: boolean = false;\n\n @Output() selected = new EventEmitter<any>();\n\n @ViewChild('triggerElement') trigger!: ElementRef<HTMLButtonElement>;\n @ViewChild('optionsPanel') panel!: ElementRef<HTMLDivElement>;\n\n constructor(\n @Optional() protected override formGroupDirective: FormGroupDirective,\n private readonly destroyRef: DestroyRef\n ) {\n super(formGroupDirective);\n }\n\n ngOnInit(): void {\n this.selectOption(this.value, false);\n this.focusOut$.pipe(takeUntilDestroyed(this.destroyRef), debounceTime(200)).subscribe(() => {\n this.triggerMarkCheck();\n this.close();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options']) this.selectOption(this.value, false);\n }\n\n toggle(): void {\n this.isOpen = !this.isOpen;\n if (!this.isOpen) {\n this.triggerTouched();\n }\n }\n\n close(): void {\n this.isOpen = false;\n this.triggerTouched();\n }\n\n selectOption(key: any, propagate = true) {\n const selectedOption = this.options.find(option => option.key === key)!;\n this.option = key === null ? this.placeholder : selectedOption?.label;\n if (propagate) {\n this.selected.emit(key);\n this.triggerChange(selectedOption?.key ?? null);\n this.close();\n }\n }\n\n writeValue(value: any) {\n this.triggerMarkCheck();\n this.selectOption(value, false);\n }\n}\n","<div\n class=\"flex gap-1 font-primary\"\n [class.items-start]=\"disposition === 'vertical'\"\n [class.flex-col]=\"disposition === 'vertical'\">\n @if (label) {\n <ct-form-label\n [class.grow]=\"disposition === 'horizontal'\"\n [text]=\"label\"\n [hasError]=\"hasErrors(formControl)\"\n [showError]=\"showError\" />\n }\n <div class=\"flex flex-col\" [class.w-full]=\"fullSize\" [class.w-fit]=\"!fullSize\">\n <div\n tabindex=\"0\"\n class=\"flex cursor-pointer flex-row items-center justify-between rounded-md border bg-surface px-4 py-2 text-sm text-on-surface dark:bg-surface-dark dark:text-on-surface-dark\"\n [class.border-error]=\"hasErrors(formControl) && showError\"\n [class.border-neutral-300]=\"!hasErrors(formControl) || !showError\"\n [class.text-on-surface]=\"option !== placeholder\"\n (focusout)=\"focusOut$.next($event)\"\n (click)=\"toggle()\">\n <span [class.text-neutral-500]=\"option === placeholder\">{{ option }}</span>\n <ct-icon class=\"flex\" [size]=\"'sm'\" [icon]=\"isOpen ? 'chevron-up' : 'chevron-down'\" />\n </div>\n <!-- [ctOverlay]=\"dropDown\"\n [ctOverlayCloseOnClick]=\"true\"\n ctOverlayPosition=\"vertical\"\n <ng-template #dropDown>\n <div\n [class.w-full]=\"fullSize\"\n [class.w-fit]=\"!fullSize\"\n class=\"flex max-h-72 flex-col overflow-y-auto rounded-md border border-neutral-400 bg-surface text-on-surface shadow-lg dark:bg-surface-dark dark:text-on-surface-dark\">\n @if (placeholder) {\n <ct-option (click)=\"selectOption(null)\" [label]=\"placeholder\" />\n }\n @for (option of options; track option) {\n <ct-option (click)=\"selectOption(option.key)\" [label]=\"option.label\" [icon]=\"option.icon!\" />\n }\n </div>\n </ng-template> -->\n @if (isOpen) {\n <div class=\"relative flex flex-col\">\n <div\n [class.w-full]=\"fullSize\"\n [class.w-fit]=\"!fullSize\"\n class=\"absolute top-0.5 z-10 flex max-h-72 flex-col overflow-y-auto rounded-md border border-neutral-400 bg-surface text-on-surface shadow-lg dark:bg-surface-dark dark:text-on-surface-dark\">\n @if (placeholder) {\n <ct-option (click)=\"selectOption(null)\" [label]=\"placeholder\" />\n }\n @for (option of options; track option) {\n <ct-option (click)=\"selectOption(option.key)\" [label]=\"option.label\" [icon]=\"option.icon!\" />\n }\n </div>\n </div>\n }\n </div>\n @if (formControl) {\n <ct-form-alert\n [hasErrors]=\"hasErrors(formControl)\"\n [helper]=\"helper\"\n [errors]=\"formControl.errors ?? {}\"\n size=\"xs\" />\n }\n</div>\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function integerValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value !== null && !Number.isInteger(Number(control.value))) {\n return { notInteger: true };\n }\n return null;\n };\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Input,\n OnInit,\n Optional,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { AsyncPipe, DecimalPipe, NgClass } from '@angular/common';\nimport { FormGroupDirective } from '@angular/forms';\nimport { InputComponent } from '../input/input.component';\nimport { provideControlContainer, provideValueAccessor } from '../utils/form.util';\nimport { integerValidator } from '../utils/validators.util';\nimport { LabelComponent } from '../label/label.component';\nimport { IconComponent } from '../../components/atoms/icon/icon.component';\nimport { FormErrorComponent } from '../error/error.component';\n\n@Component({\n selector: 'ct-input-number',\n standalone: true,\n imports: [NgClass, AsyncPipe, LabelComponent, IconComponent, FormErrorComponent],\n templateUrl: '../input/input.component.html',\n providers: [provideValueAccessor(forwardRef(() => InputNumberComponent)), DecimalPipe],\n viewProviders: [provideControlContainer()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputNumberComponent extends InputComponent implements OnInit, AfterViewInit {\n private readonly decimalPipe = inject(DecimalPipe);\n private rawValue!: number;\n @Input() validate: 'integer' | 'credit-card' = 'integer';\n\n constructor(@Optional() protected override formGroupDirective: FormGroupDirective) {\n super(formGroupDirective);\n }\n\n @HostListener('focusout')\n override onFocusOut() {\n this.formatNumber();\n this.triggerTouched();\n }\n\n @HostListener('focusin')\n onFocusIn() {\n this.reverseFormatNumber();\n }\n\n ngOnInit(): void {\n if (this.formControl && this.validate === 'integer') this.formControl.addValidators(integerValidator());\n }\n\n ngAfterViewInit(): void {\n this.formatNumber();\n this.triggerChangeDetection();\n }\n\n formatNumber() {\n try {\n this.value = this.decimalPipe.transform(this.value, '1.0-2') || '';\n } catch (_error) {\n return;\n }\n }\n\n reverseFormatNumber(): void {\n this.value = !isNaN(parseFloat(this.value.replace(/[^0-9.-]/g, '')))\n ? parseFloat(this.value.replace(/[^0-9.-]/g, ''))\n : '';\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n Optional,\n Output,\n forwardRef,\n} from '@angular/core';\nimport { FormGenericComponent } from '../../services/form-generic.abstract';\nimport { FormGroupDirective } from '@angular/forms';\nimport { ComponentDisposition } from '../../model/components/component-disposition.enum';\nimport { LabelComponent } from '../label/label.component';\nimport { provideControlContainer, provideValueAccessor } from '../utils/form.util';\n\n@Component({\n selector: 'ct-toggle',\n standalone: true,\n imports: [LabelComponent],\n templateUrl: './toggle.component.html',\n providers: [provideValueAccessor(forwardRef(() => ToggleComponent))],\n viewProviders: [provideControlContainer()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent extends FormGenericComponent {\n @Input() formControlName = '';\n @Input() checked: boolean = false;\n @Input() label = '';\n @Input() key = '';\n @Input() value = '';\n @Input() showError = false;\n @Input() disposition: ComponentDisposition | string = 'horizontal';\n @Output() wasChecked = new EventEmitter<boolean>();\n\n constructor(\n @Optional() protected override formGroupDirective: FormGroupDirective,\n private readonly destroyRef: DestroyRef\n ) {\n super(formGroupDirective);\n }\n\n toggle() {\n this.checked = !this.checked;\n this.triggerChange(this.checked);\n this.wasChecked.emit(this.checked);\n }\n\n writeValue(value: any) {\n this.triggerMarkCheck();\n this.checked = value === this.value;\n }\n}\n","<div\n class=\"flex flex-row gap-4\"\n [class.items-center]=\"disposition === 'horizontal'\"\n [class.flex-col]=\"disposition === 'vertical'\">\n <ct-form-label class=\"w-full\" [text]=\"label\" [hasError]=\"hasErrors(formControl) && showError\" />\n <label class=\"inline-flex cursor-pointer\">\n <input type=\"checkbox\" [value]=\"value\" [checked]=\"checked\" class=\"peer sr-only\" (change)=\"toggle()\" />\n <div\n tabindex=\"0\"\n class=\"peer relative h-6 w-11 rounded-full bg-surface-variant after:absolute after:start-[2px] after:top-[2px] after:size-5 after:rounded-full after:border after:border-transparent after:bg-neutral-50 after:transition-all after:content-[''] peer-checked:bg-primary peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none rtl:peer-checked:after:-translate-x-full dark:bg-surface-variant-dark dark:after:bg-neutral-400 dark:peer-checked:bg-primary-dark\"></div>\n </label>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n Optional,\n Output,\n forwardRef,\n} from '@angular/core';\nimport { provideControlContainer, provideValueAccessor } from '../utils/form.util';\nimport { FormGroupDirective } from '@angular/forms';\nimport { FormGenericComponent } from '../../services/form-generic.abstract';\nimport { ButtonComponent } from '../../components/atoms/button/button.component';\n\n@Component({\n selector: 'ct-radio-button',\n standalone: true,\n imports: [ButtonComponent],\n templateUrl: './radio-button.component.html',\n providers: [provideValueAccessor(forwardRef(() => RadioButtonComponent))],\n viewProviders: [provideControlContainer()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent extends FormGenericComponent {\n @Input() key = '';\n @Input() label = '';\n @Input() value: any;\n @Input() checked: boolean = false;\n @Input() formControlName = '';\n @Output() valueChange = new EventEmitter<any>();\n\n constructor(\n private readonly destroyRef: DestroyRef,\n @Optional() protected override formGroupDirective: FormGroupDirective\n ) {\n super(formGroupDirective);\n }\n\n writeValue(value: boolean): void {\n this.checked = value;\n this.triggerMarkCheck();\n }\n\n onValueChange() {\n // this.checked = true;\n this.setValue(this.value);\n this.valueChange.emit(this.value);\n }\n\n private setValue(value: any): void {\n this.triggerChange(value);\n }\n}\n","<input\n [id]=\"value\"\n class=\"hidden\"\n type=\"radio\"\n [name]=\"key\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"onValueChange()\" />\n<label class=\"w-full grow cursor-pointer\" [for]=\"value\">\n <ct-button [text]=\"label\" [type]=\"checked ? 'secondary' : 'primary'\" [fullSize]=\"true\" (click)=\"onValueChange()\" />\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n Input,\n Optional,\n Output,\n QueryList,\n forwardRef,\n} from '@angular/core';\nimport { FormGenericComponent } from '../../services/form-generic.abstract';\nimport { provideControlContainer, provideValueAccessor } from '../utils/form.util';\nimport { FormGroupDirective } from '@angular/forms';\nimport { RadioButtonComponent } from '../radio-button/radio-button.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LabelComponent } from '../label/label.component';\nimport { FormErrorComponent } from '../error/error.component';\n\n@Component({\n selector: 'ct-radio-group',\n standalone: true,\n imports: [LabelComponent, FormErrorComponent],\n templateUrl: './radio-group.component.html',\n providers: [provideValueAccessor(forwardRef(() => RadioGroupComponent))],\n viewProviders: [provideControlContainer()],\n\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent extends FormGenericComponent implements AfterContentInit {\n @Input() formControlName = '';\n @Input() key = '';\n @Input() label = '';\n @Input() value: any = '';\n @Input() helper = '';\n @Input() showError = false;\n @Output() selected = new EventEmitter<any>();\n\n @ContentChildren(RadioButtonComponent) radios!: QueryList<RadioButtonComponent>;\n\n constructor(\n private readonly destroyRef: DestroyRef,\n @Optional() protected override formGroupDirective: FormGroupDirective\n ) {\n super(formGroupDirective);\n }\n\n ngAfterContentInit(): void {\n if (this.value) this.writeValue(this.value);\n this.radios.forEach(radio =>\n radio.valueChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => this.setValue(value))\n );\n }\n\n writeValue(value: any) {\n this.value = value;\n if (this.radios) this.updateRadios(value);\n }\n\n setValue(value: any) {\n this.value = value;\n this.updateRadios(value);\n this.triggerChange(value);\n this.selected.emit(value);\n }\n\n private updateRadios(value: any): void {\n this.radios.forEach(radio => {\n radio.writeValue(radio.value === value);\n });\n }\n}\n","<div class=\"flex w-full flex-col gap-4\">\n @if (label) {\n <ct-form-label [text]=\"label\" [hasError]=\"hasErrors(formControl)\" [showError]=\"showError\" />\n }\n <div class=\"flex w-full flex-col justify-between gap-4 md:flex-row\">\n <ng-content select=\"ct-radio-button\" />\n </div>\n @if (formControl) {\n <ct-form-alert\n [hasErrors]=\"hasErrors(formControl)\"\n [helper]=\"helper\"\n [errors]=\"formControl.errors ?? {}\"\n size=\"xs\" />\n }\n</div>\n","export interface FormOptionBase {\n key: any;\n label: string;\n icon?: string;\n}\n\nexport class FormBase<T> {\n value: T | undefined;\n key: any;\n label: string;\n icon: string;\n placeholder: string;\n required: boolean;\n controlType: string;\n options: FormOptionBase[];\n\n constructor(\n options: {\n value?: T;\n key?: any;\n label?: string;\n icon?: string;\n required?: boolean;\n placeholder?: string;\n controlType?: string;\n options?: FormOptionBase[];\n } = {}\n ) {\n this.value = options.value;\n this.key = options.key || undefined;\n this.label = options.label || '';\n this.placeholder = options.placeholder || '';\n this.required = !!options.required;\n this.controlType = options.controlType || '';\n this.options = options.options || [];\n this.icon = options.icon || '';\n }\n}\n","import { FormBase } from './form-base.model';\n\nexport class SelectFormBase extends FormBase<string> {\n override controlType = 'select';\n}\n","import { FormBase } from './form-base.model';\n\nexport class InputFormBase extends FormBase<string> {\n override controlType = 'input';\n}\n","import { DestroyRef, Injectable, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, fromEvent, Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith, tap } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizeService {\n private destroyRef = inject(DestroyRef);\n private screenSizeSubject = new BehaviorSubject<string>(this.getScreenSize());\n screenSize$: Observable<string> = this.screenSizeSubject.asObservable();\n\n constructor() {\n fromEvent(window, 'resize')\n .pipe(\n distinctUntilChanged(),\n debounceTime(200),\n map(() => this.getScreenSize()),\n startWith(this.getScreenSize()),\n tap(() => console.log('test updated')),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(this.screenSizeSubject);\n }\n\n private getScreenSize(): string {\n const width = window.innerWidth;\n if (width < 640) return 'xs';\n if (width >= 640 && width < 768) return 'sm';\n if (width >= 768 && width < 1024) return 'md';\n if (width >= 1024 && width < 1280) return 'lg';\n if (width >= 1280 && width < 1536) return 'xl';\n return '2xl';\n }\n}\n","/*\n * Public API Surface of circletone\n */\n// Atoms\nexport * from './lib/components/atoms/alert/alert.component';\nexport * from './lib/components/atoms/avatar/avatar.component';\nexport * from './lib/components/atoms/button/button.component';\nexport * from './lib/components/atoms/icon-button/icon-button.component';\nexport * from './lib/components/atoms/header/header.component';\nexport * from './lib/components/atoms/icon/icon.component';\nexport * from './lib/components/atoms/menu-item/menu-item.component';\nexport * from './lib/components/atoms/accordion-item/accordion-item.component';\nexport * from './lib/components/atoms/tab-button/tab-button.component';\nexport * from './lib/components/atoms/list-item/list-item.component';\n// Molecules\nexport * from './lib/components/molecules/list/list.component';\nexport * from './lib/components/molecules/accordion/accordion.component';\nexport * from './lib/components/molecules/tab-group/tab-group.component';\nexport * from './lib/components/molecules/card/card.component';\nexport * from './lib/components/molecules/menu/menu.component';\n// Forms\nexport * from './lib/forms/autocomplete/autocomplete.component';\nexport * from './lib/forms/select/select.component';\nexport * from './lib/forms/input/input.component';\nexport * from './lib/forms/input-number/input-number.component';\nexport * from './lib/forms/toggle/toggle.component';\nexport * from './lib/forms/radio-group/radio-group.component';\nexport * from './lib/forms/radio-button/radio-button.component';\n// Directives && Pipes\nexport * from './lib/directives/tab-panel.directive';\nexport * from './lib/directives/overlay.directive';\nexport * from './lib/pipes/safe-image.pipe';\n// Models\nexport * from './lib/model/forms/form-base.model';\nexport * from './lib/model/forms/select.model';\nexport * from './lib/model/forms/input.model';\nexport * from './lib/model/components/component-size.type';\nexport * from './lib/model/components/component-type.type';\nexport * from './lib/model/components/component-variant.type';\nexport * from './lib/model/components/component-disposition.enum';\n// Services\nexport * from './lib/services/accordion-registry.service';\nexport * from './lib/services/screen-size.service';\n// Utils\nexport * from './lib/forms/utils/validators.util';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.AccordionItemComponent","debounceTime"],"mappings":"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"}