1 |
- {"version":3,"file":"circletone.mjs","sources":["../../../projects/circletone/src/lib/model/components/type.enum.ts","../../../projects/circletone/src/lib/model/components/size.enum.ts","../../../projects/circletone/src/lib/model/components/variant.enum.ts","../../../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/header/header.component.ts","../../../projects/circletone/src/lib/components/atoms/header/header.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/molecules/card/card.component.ts","../../../projects/circletone/src/lib/components/molecules/card/card.component.html","../../../projects/circletone/src/lib/directives/dropdown.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/forms/option/option.component.ts","../../../projects/circletone/src/lib/forms/option/option.component.html","../../../projects/circletone/src/lib/forms/label/label.component.ts","../../../projects/circletone/src/lib/forms/label/label.component.html","../../../projects/circletone/src/lib/utils/form.util.ts","../../../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/select/select.component.ts","../../../projects/circletone/src/lib/forms/select/select.component.html","../../../projects/circletone/src/lib/forms/input/input.component.ts","../../../projects/circletone/src/lib/forms/input/input.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":["/**\n * Used for some components to determine colouring of various elements. Relates to CSS classes to facilitate dev's life\n */\nexport enum TypeEnum {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n TERTIARY = 'tertiary',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n","/**\n * Used for some components to determine sizing of various elements. Relates to 'tailwind' classes to facilitate dev's life\n */\nexport enum SizeEnum {\n /** extra-small */\n XS = 'xs',\n /** small */\n SM = 'sm',\n /** default size */\n BASE = 'base',\n /** large */\n LG = 'lg',\n /** extra-large */\n XL = 'xl',\n}\n","/**\n * Used for some components to determine the variance of diverse elements.\n */\nexport enum VariantEnum {\n /** produces a non-styled element */\n BLANK = 'blank',\n /** produces a solid element */\n SOLID = 'solid',\n /** produces a bordered element */\n OUTLINE = 'outline',\n /** produces a solid-gradient element */\n GRADIENT = 'gradient',\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { SizeEnum } from '../../../model/components/size.enum';\nimport { VariantEnum } from '../../../model/components/variant.enum';\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: SizeEnum | string = SizeEnum.BASE;\n @Input() variant: VariantEnum | string = VariantEnum.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 === VariantEnum.SOLID ? `${this.icon}-solid` : this.icon;\n return `/assets/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 <use [attr.xlink:href]=\"iconPath\"></use>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { SizeEnum } from '../../../model/components/size.enum';\nimport { NgClass } from '@angular/common';\nimport { TypeEnum } from '../../../model/components/type.enum';\nimport { VariantEnum } from '../../../model/components/variant.enum';\nimport { PositionEnum } from '../../../model/components/position.enum';\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?: PositionEnum | string = 'left';\n\n @Input() fullSize: boolean = false;\n @Input() size: SizeEnum | string = 'base';\n @Input() type: TypeEnum | string = 'primary';\n @Input() variant: VariantEnum | string = 'solid';\n\n get cssClassmap(): { [className: string]: boolean } {\n return {\n [`text-on-${this.type} dark:text-on-${this.type}-dark`]:\n this.variant === VariantEnum.SOLID || this.variant === VariantEnum.GRADIENT,\n [`text-neutral-950 dark:text-neutral-50 hover:text-${this.type}-dark dark:hover:text-${this.type}`]:\n this.variant === VariantEnum.GRADIENT || this.variant === VariantEnum.BLANK,\n [`bg-${this.type} dark:bg-${this.type}-dark hover:bg-${this.type}-variant hover:dark:bg-${this.type}-variant-dark`]:\n this.variant === VariantEnum.SOLID,\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 === VariantEnum.GRADIENT,\n [`border border-2 border-${this.type} hover:border-${this.type}-variant dark:border-${this.type}-dark`]:\n this.variant === VariantEnum.OUTLINE,\n 'px-3 py-2': (this.size === SizeEnum.XS || this.size === SizeEnum.SM) && !this.hasJustIcon(),\n 'px-5 py-2.5': (this.size === SizeEnum.BASE || this.size === SizeEnum.LG) && !this.hasJustIcon(),\n 'px-6 py-3': this.size === SizeEnum.XL && !this.hasJustIcon(),\n 'p-2': this.hasJustIcon() && this.variant !== 'blank',\n 'text-xs': this.size === SizeEnum.XS,\n 'text-sm': this.size === SizeEnum.SM || this.size === SizeEnum.BASE,\n 'text-base': this.size === SizeEnum.LG || this.size === SizeEnum.XL,\n 'w-full': this.fullSize,\n };\n }\n\n hasJustIcon(): boolean {\n return this.icon !== undefined && this.text === undefined;\n }\n}\n","<button class=\"flex flex-row items-center justify-center gap-1.5 rounded-md font-medium\" [ngClass]=\"cssClassmap\">\n @if (icon) {\n <ct-icon class=\"flex\" [size]=\"size\" [icon]=\"icon\" />\n }\n @if (text) {\n <span [class.order-first]=\"iconPosition === 'right'\">\n {{ text }}\n </span>\n }\n</button>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TypeEnum } from '../../../model/components/type.enum';\nimport { IconComponent } from '../icon/icon.component';\nimport { NgClass } from '@angular/common';\nimport { ButtonComponent } from '../button/button.component';\nimport { VariantEnum } from '../../../model/components/variant.enum';\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: TypeEnum | string = TypeEnum.PRIMARY;\n @Input() variant: VariantEnum | string = VariantEnum.SOLID;\n @Input() withIcon: boolean = true;\n @Output() dismiss = new EventEmitter<void>();\n\n get icon(): string {\n switch (this.type) {\n case TypeEnum.PRIMARY:\n case TypeEnum.SECONDARY:\n return 'information-circle';\n case TypeEnum.ERROR:\n return 'exclamation-triangle';\n case TypeEnum.WARNING:\n return 'exclamation-circle';\n case TypeEnum.SUCCESS:\n return 'check-circle';\n default:\n return '';\n }\n }\n}\n","<div\n class=\"mb-4 flex flex-row items-center gap-1 rounded-lg\"\n [class.w-fit]=\"!fullSize\"\n [class.w-full]=\"fullSize\"\n role=\"alert\"\n [ngClass]=\"{\n 'bg-surface-variant dark:bg-surface-variant-dark text-on-surface dark:text-on-surface-dark':\n type === 'primary' && 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 border: variant === 'outline',\n 'border-surface-variant dark:border-surface-variant-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\" />\n }\n <span class=\"grow text-sm font-semibold\">{{ text }}</span>\n @if (dismissable) {\n <ct-button icon=\"x-mark\" size=\"sm\" variant=\"blank\" [type]=\"type\" (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';\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 titleInitials = '';\n ngOnInit(): void {\n this.titleInitials = this.title\n .split(' ')\n .map(word => word[0]?.toLocaleUpperCase())\n .splice(0, 2)\n .join('');\n }\n}\n","@if (picture) {\n <img\n [src]=\"picture\"\n alt=\"{{ title }}\"\n class=\"size-16 rounded-full border-2 border-primary object-cover dark:border-primary-dark\" />\n} @else {\n <div\n class=\"size-16 truncate text-ellipsis rounded-full border border-primary bg-primary-container p-4 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';\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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { SizeEnum } from '../../../model/components/size.enum';\nimport { IconComponent } from '../icon/icon.component';\nimport { ButtonComponent } from '../button/button.component';\n\n@Component({\n selector: 'ct-menu-item',\n standalone: true,\n imports: [RouterLink, IconComponent, ButtonComponent],\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuItemComponent {\n @Input() text = '';\n @Input({ required: true }) link = '';\n @Input({ required: true }) type: string | 'internal' | 'external' = 'internal';\n @Input() icon?: string = undefined;\n @Input() iconSize?: SizeEnum | string = SizeEnum.BASE;\n @Input() iconAlone = false;\n @Input() iconDirection: string | 'vertical' | 'horizontal' = 'horizontal';\n}\n","<a\n [routerLink]=\"(type === 'internal' && link)! || null\"\n [attr.href]=\"type === 'external' && link\"\n class=\"block rounded-md px-4 py-2 text-on-surface hover:bg-primary/25 dark:text-on-surface-dark dark:hover:bg-primary-dark/25\">\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=\"xl\" />\n }\n @if (text && !iconAlone) {\n <span>{{ text }}</span>\n }\n </span>\n</a>\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(accordion: string, itemId: string): AccordionItemComponent {\n const accordionObject = this.accordions.get(accordion) as AccordionComponent;\n return accordionObject.accordionItems.find(item => item.id === itemId) as AccordionItemComponent;\n }\n\n openItem(accordion: string, itemId: string) {\n this.accordions\n .get(accordion)\n ?.accordionItems.find(item => item.id === itemId)\n ?.isOpen.next(true);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n Input,\n OnDestroy,\n QueryList,\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, skip, withLatestFrom } 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: string | 'collapse' | 'open' = 'collapse';\n @Input() gap: number = 0;\n @Input() parentAccordion = '';\n @Input() parentTrigger = '';\n\n @ContentChildren(AccordionItemComponent) accordionItems!: QueryList<AccordionItemComponent>;\n\n ngAfterViewInit() {\n this.accordionItems.forEach(accordionItem => {\n accordionItem.toggle\n .pipe(takeUntilDestroyed(this.destroyRef), withLatestFrom(accordionItem.isOpen), debounceTime(10))\n .subscribe(([_, isOpen]) => {\n accordionItem.isOpen.next(!isOpen);\n });\n\n accordionItem.isOpen.pipe(takeUntilDestroyed(this.destroyRef), skip(1), debounceTime(10)).subscribe(isOpen => {\n if (isOpen) {\n if (this.parentTrigger) {\n this.accordionRegistryService.getItem(this.parentAccordion, this.parentTrigger)?.isOpen.next(true);\n }\n if (this.policy === 'collapse') {\n this.accordionItems.forEach(otherAccordionItem => {\n if (accordionItem.id !== otherAccordionItem.id && otherAccordionItem.isOpen) {\n otherAccordionItem.isOpen.next(false);\n }\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 } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\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],\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 @Input() isOpen = new BehaviorSubject<boolean>(false);\n @Output() toggle = new EventEmitter<void>();\n\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","<div\n tabindex=\"0\"\n class=\"flex cursor-pointer flex-row items-center justify-between gap-1.5 bg-surface px-4 py-2 text-on-surface hover:bg-primary/50 dark:bg-surface-dark dark:text-on-surface-dark hover:dark:bg-surface-variant-dark\"\n [class.rounded-t-md]=\"isOpen | async\"\n [class.rounded-md]=\"(isOpen | async) === false\"\n (click)=\"toggle.emit()\">\n <span class=\"grow\">{{ label }}</span>\n <ct-icon size=\"sm\" [icon]=\"(isOpen | async) ? 'chevron-up' : 'chevron-down'\" />\n</div>\n@if (isOpen | async) {\n <div class=\"flex flex-col rounded-b-md bg-surface/35 p-4 dark:bg-surface-dark/50\">\n <ng-content></ng-content>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AvatarComponent } from '../../atoms/avatar/avatar.component';\nimport { ButtonComponent } from '../../atoms/button/button.component';\nimport { SafeImagePipe } from '../../../pipes/safe-image.pipe';\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() imageThumbnail = '';\n @Input() withActions = false;\n}\n","<div class=\"flex w-full flex-col rounded-xl bg-surface text-on-surface dark:bg-surface-dark dark:text-on-surface-dark\">\n <div class=\"flex w-full flex-row items-stretch rounded-md\">\n <div class=\"flex w-full grow flex-row items-center gap-4 px-4 py-2\">\n <div class=\"items-center\">\n <ct-avatar [picture]=\"avatar\" [title]=\"title\" />\n </div>\n <div class=\"flex grow flex-col\">\n @if (header) {\n <span class=\"grow text-lg font-semibold\" [innerHTML]=\"header\"></span>\n }\n @if (subHeader) {\n <span class=\"grow text-sm\" [innerHTML]=\"subHeader\"></span>\n }\n </div>\n </div>\n <div class=\"flex flex-col justify-between 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 @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\" />\n <ct-button text=\"test\" type=\"secondary\" />\n </div>\n }\n</div>\n","import { Directive, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[ctDropdown]',\n standalone: true,\n})\nexport class DropdownDirective {\n @Input({ required: true }) targetId = '';\n\n isVisible = false;\n\n constructor(\n //private element: ElementRef,\n private readonly renderer: Renderer2\n ) {}\n\n @HostListener('blur')\n @HostListener('focusout')\n onBlur(): void {\n this.close(document.getElementById(this.targetId) as HTMLElement);\n }\n\n @HostListener('click')\n onClick(): void {\n this.toggle(document.getElementById(this.targetId) as HTMLElement);\n }\n\n toggle(element: HTMLElement): void {\n this.isVisible = !this.isVisible;\n this.renderer.addClass(element, this.isVisible ? 'block' : 'hidden');\n this.renderer.removeClass(element, this.isVisible ? 'hidden' : 'block');\n }\n\n close(element: HTMLElement): void {\n this.isVisible = false;\n this.renderer.addClass(element, 'hidden');\n this.renderer.removeClass(element, 'block');\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MenuItem } from '../../../model/components/menu-item.model';\nimport { MenuItemComponent } from '../../atoms/menu-item/menu-item.component';\nimport { DropdownDirective } from '../../../directives/dropdown.directive';\n\n@Component({\n selector: 'ct-menu',\n standalone: true,\n imports: [MenuItemComponent, DropdownDirective],\n templateUrl: './menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuComponent {\n @Input({ required: true }) items: MenuItem[] = [];\n @Input() fullSize: boolean = true;\n @Input() direction: string | 'horizontal' | 'vertical' = 'vertical';\n @Input() iconAlone = false;\n @Input() iconDirection: string | 'horizontal' | 'vertical' = 'horizontal';\n}\n","<div\n class=\"z-10 flex flex-col rounded-md bg-surface p-2 text-on-surface shadow-lg dark:bg-surface-dark\"\n [class.w-fit]=\"!fullSize\"\n [class.w-full]=\"fullSize\">\n <ul\n class=\"flex justify-around\"\n [class.flex-col]=\"direction === 'vertical'\"\n [class.flex-row]=\"direction === 'horizontal'\">\n @for (item of items; track item) {\n <li>\n <!-- @if (item.subMenu && item.subMenu.length > 0) {\n <button ctDropdown [targetId]=\"'test'\">{{ item.text }}</button>\n <ct-menu class=\"absolute hidden\" [id]=\"'test'\" [items]=\"item.subMenu\" />\n } @else { -->\n <ct-menu-item\n [text]=\"item.text\"\n [link]=\"item.link\"\n [type]=\"item.type\"\n [icon]=\"item.icon!\"\n [iconAlone]=\"iconAlone\"\n [iconDirection]=\"iconDirection\" />\n <!-- } -->\n </li>\n }\n </ul>\n</div>\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/35 dark:hover:bg-surface-dark/35\">\n @if (icon) {\n <ct-icon [icon]=\"icon\" />\n }\n {{ label }}\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TypeEnum } from '../../model/components/type.enum';\n\n@Component({\n selector: 'ct-form-label',\n standalone: true,\n imports: [],\n templateUrl: './label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LabelComponent {\n @Input({ required: true }) text = '';\n @Input() type: TypeEnum | string = TypeEnum.PRIMARY;\n @Input() formControlName = '';\n @Input() hasError = false;\n}\n","<label\n class=\"mb-1 flex font-medium\"\n [class.text-on-surface]=\"type === 'primary' && !hasError\"\n [class.text-secondary]=\"type === 'secondary'\"\n [class.text-warning-variation]=\"type === 'warning'\"\n [class.text-error-variation]=\"type === 'error' || hasError\"\n [class.text-success-variation]=\"type === 'success'\"\n [for]=\"formControlName\"\n >{{ text }}</label\n>\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 { 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.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 this.onChange(value);\n }\n\n protected triggerTouched(): void {\n this.onTouched();\n }\n\n protected triggerChangeDetection(): void {\n this.changeDetectorRef.markForCheck();\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 { JsonPipe, KeyValuePipe } from '@angular/common';\n\n@Component({\n selector: 'ct-form-error',\n standalone: true,\n imports: [AlertComponent, KeyValuePipe, JsonPipe],\n templateUrl: './error.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormErrorComponent {\n @Input({ required: true }) errors!: ValidationErrors;\n}\n","<div class=\"my-2 flex flex-col gap-1\">\n @for (error of errors | keyvalue; track error) {\n @if (error.key === 'required') {\n <ct-alert [text]=\"'Field is required'\" type=\"error\" [withIcon]=\"true\" variant=\"blank\" />\n } @else {\n <ct-alert [text]=\"error.key\" type=\"error\" [withIcon]=\"true\" variant=\"blank\" />\n }\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n signal,\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 { TypeEnum } from '../../model/components/type.enum';\nimport { provideControlContainer, provideValueAccessor } from '../../utils/form.util';\nimport { FormGenericComponent } from '../../services/form-generic.abstract';\nimport { FormErrorComponent } from '../error/error.component';\n\n@Component({\n selector: 'ct-select',\n standalone: true,\n imports: [OptionComponent, ButtonComponent, IconComponent, LabelComponent, AlertComponent, FormErrorComponent],\n templateUrl: './select.component.html',\n providers: [provideValueAccessor(forwardRef(() => SelectComponent))],\n viewProviders: [provideControlContainer()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectComponent extends FormGenericComponent implements OnInit {\n focusOut$ = new Subject<any>();\n isOpen = false;\n option = '';\n option$ = signal('');\n\n @Input() formControlName!: string;\n @Input() placeholder = '';\n @Input() label = '';\n @Input() value: any = '';\n @Input() type: TypeEnum | string = TypeEnum.PRIMARY;\n @Input() fullSize: boolean = true;\n @Input() shouldShowError: boolean = true;\n @Input({ required: true }) key = '';\n @Input({ required: true }) options: FormOptionBase[] = [];\n @Output() selected = new EventEmitter<any>();\n\n @ViewChild('triggerElement') trigger!: ElementRef<HTMLButtonElement>;\n @ViewChild('optionsPanel') panel!: ElementRef<HTMLDivElement>;\n\n constructor(\n 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.triggerChangeDetection();\n this.close();\n });\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.triggerChangeDetection();\n this.selectOption(value, false);\n }\n}\n","<ct-form-label [text]=\"label\" [hasError]=\"hasErrors(formControl)\" />\n<div\n class=\"flex flex-row items-center justify-between gap-1.5 rounded-md border bg-surface-variant px-4 py-2 text-sm text-on-surface-variant dark:bg-surface-variant-dark dark:text-on-surface-variant-dark\"\n [class.border-error]=\"hasErrors(formControl)\"\n [class.border-neutral-300]=\"!hasErrors(formControl)\"\n [class.text-neutral-400]=\"option === placeholder\"\n [class.text-on-surface-variant]=\"option !== placeholder\"\n #triggerElement\n tabindex=\"0\"\n (focusout)=\"focusOut$.next($event)\"\n (click)=\"toggle()\">\n {{ option }}\n <ct-icon class=\"flex\" [size]=\"'sm'\" [icon]=\"isOpen ? 'chevron-up' : 'chevron-down'\" />\n</div>\n@if (isOpen) {\n <div class=\"relative\">\n <div\n #optionsPanel\n [class.w-full]=\"fullSize\"\n [class.w-fit]=\"!fullSize\"\n class=\"absolute top-1 z-10 flex flex-col rounded-md border border-neutral-400 bg-surface-variant text-on-surface-variant dark:bg-surface-variant-dark dark:text-on-surface-variant-dark\">\n <ct-option (click)=\"selectOption(null)\" [label]=\"placeholder\" />\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@if (hasErrors(formControl)) {\n <ct-form-error [errors]=\"formControl.errors ?? {}\" />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n forwardRef,\n} from '@angular/core';\nimport { TypeEnum } from '../../model/components/type.enum';\nimport { FormGroupDirective } from '@angular/forms';\nimport { 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';\n\n@Component({\n selector: 'ct-input',\n standalone: true,\n imports: [NgClass, LabelComponent, 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({ required: true }) formControlName!: string;\n @Input({ required: true }) key = '';\n @Input() label = '';\n @Input() placeholder = '';\n @Input() value: any = '';\n @Input() type: TypeEnum | string = TypeEnum.PRIMARY;\n @Input() fullSize: boolean = true;\n @Output() typed = new EventEmitter<string>();\n\n @HostListener('focusout')\n onFocusOut() {\n this.triggerTouched();\n }\n\n constructor(formGroupDirective: FormGroupDirective) {\n super(formGroupDirective);\n }\n\n input(event: Event) {\n this.setValue((event as any).target.value);\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 this.triggerChangeDetection();\n this.setValue(value, false);\n }\n}\n","<ct-form-label [text]=\"label\" [hasError]=\"hasErrors(formControl)\" />\n<input\n tabindex=\"0\"\n class=\"rounded-md border bg-surface-variant px-4 py-2 text-sm text-on-surface-variant outline-none dark:bg-surface-variant-dark dark:text-on-surface-variant-dark\"\n [class.w-fit]=\"!fullSize\"\n [class.w-full]=\"fullSize\"\n [class.border-neutral-400]=\"formControl && (formControl.pristine || formControl.valid)\"\n [class.border-error]=\"hasErrors(formControl)\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n (input)=\"input($event)\" />\n@if (hasErrors(formControl)) {\n <ct-form-error [errors]=\"formControl.errors ?? {}\" />\n}\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 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 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 }\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, map, startWith } 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 debounceTime(100),\n map(() => this.getScreenSize()),\n startWith(this.getScreenSize()),\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/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';\n// Molecules\nexport * from './lib/components/molecules/accordion/accordion.component';\nexport * from './lib/components/molecules/card/card.component';\nexport * from './lib/components/molecules/menu/menu.component';\n// Forms\nexport * from './lib/forms/select/select.component';\nexport * from './lib/forms/input/input.component';\n// Directives && Pipes\nexport * from './lib/directives/dropdown.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/size.enum';\nexport * from './lib/model/components/type.enum';\nexport * from './lib/model/components/variant.enum';\n// Services\nexport * from './lib/services/accordion-registry.service';\nexport * from './lib/services/screen-size.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","debounceTime"],"mappings":"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"}
|