@camp2gether/c2g-ui 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -0
- package/charts/index.d.ts +199 -0
- package/fesm2022/camp2gether-c2g-ui-beach-animation-ipi3OoKW.mjs +54156 -0
- package/fesm2022/camp2gether-c2g-ui-beach-animation-ipi3OoKW.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-camping-animation-DY6XWXyF.mjs +35807 -0
- package/fesm2022/camp2gether-c2g-ui-camping-animation-DY6XWXyF.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-car-animation-DnDp7WfG.mjs +45189 -0
- package/fesm2022/camp2gether-c2g-ui-car-animation-DnDp7WfG.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-car-driving-landscape-animation-CawNeMKD.mjs +43833 -0
- package/fesm2022/camp2gether-c2g-ui-car-driving-landscape-animation-CawNeMKD.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-cat-love-animation-ewC7fZyY.mjs +30789 -0
- package/fesm2022/camp2gether-c2g-ui-cat-love-animation-ewC7fZyY.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-charts.mjs +404 -0
- package/fesm2022/camp2gether-c2g-ui-charts.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-checklist-animation-DqUkcLqI.mjs +19868 -0
- package/fesm2022/camp2gether-c2g-ui-checklist-animation-DqUkcLqI.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-coffee-time-animation-DQilaE0A.mjs +6816 -0
- package/fesm2022/camp2gether-c2g-ui-coffee-time-animation-DQilaE0A.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-error-404-pdjg-EHb.mjs +49742 -0
- package/fesm2022/camp2gether-c2g-ui-error-404-pdjg-EHb.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-fishing-animation-DwE3IF-V.mjs +38941 -0
- package/fesm2022/camp2gether-c2g-ui-fishing-animation-DwE3IF-V.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-layout.mjs +768 -0
- package/fesm2022/camp2gether-c2g-ui-layout.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-maps.mjs +223 -0
- package/fesm2022/camp2gether-c2g-ui-maps.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-mountain-search-animation-TebM1gS4.mjs +69245 -0
- package/fesm2022/camp2gether-c2g-ui-mountain-search-animation-TebM1gS4.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-planning-animation-D8QSsZk6.mjs +28330 -0
- package/fesm2022/camp2gether-c2g-ui-planning-animation-D8QSsZk6.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-presets.mjs +2855 -0
- package/fesm2022/camp2gether-c2g-ui-presets.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-share-animation-qgqs-k59.mjs +59129 -0
- package/fesm2022/camp2gether-c2g-ui-share-animation-qgqs-k59.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-summer-camp-animation-DPzirVNH.mjs +89317 -0
- package/fesm2022/camp2gether-c2g-ui-summer-camp-animation-DPzirVNH.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-theme.mjs +479 -0
- package/fesm2022/camp2gether-c2g-ui-theme.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-thinking-animation--X3er_pf.mjs +27929 -0
- package/fesm2022/camp2gether-c2g-ui-thinking-animation--X3er_pf.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-walking-avocado-animation-CQMU2C9-.mjs +4064 -0
- package/fesm2022/camp2gether-c2g-ui-walking-avocado-animation-CQMU2C9-.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-walking-orange-animation-CTJniCsF.mjs +3113 -0
- package/fesm2022/camp2gether-c2g-ui-walking-orange-animation-CTJniCsF.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui-weather-partly-cloudy-animation-Cnw3W4cS.mjs +1731 -0
- package/fesm2022/camp2gether-c2g-ui-weather-partly-cloudy-animation-Cnw3W4cS.mjs.map +1 -0
- package/fesm2022/camp2gether-c2g-ui.mjs +2099 -0
- package/fesm2022/camp2gether-c2g-ui.mjs.map +1 -0
- package/index.d.ts +578 -0
- package/layout/index.d.ts +443 -0
- package/maps/index.d.ts +62 -0
- package/package.json +51 -0
- package/presets/index.d.ts +1437 -0
- package/src/lib/styles/design-tokens.css +153 -0
- package/src/lib/styles/themes.scss +346 -0
- package/theme/index.d.ts +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camp2gether-c2g-ui.mjs","sources":["../../../projects/c2g-ui/src/lib/c2g-ui.ts","../../../projects/c2g-ui/src/lib/icons/provide-c2g-icons.ts","../../../projects/c2g-ui/src/lib/avatar/avatar.component.ts","../../../projects/c2g-ui/src/lib/avatar/avatar.component.html","../../../projects/c2g-ui/src/lib/button/button.component.ts","../../../projects/c2g-ui/src/lib/badge/badge.component.ts","../../../projects/c2g-ui/src/lib/chip/chip.component.ts","../../../projects/c2g-ui/src/lib/checkbox/checkbox.component.ts","../../../projects/c2g-ui/src/lib/loader/loader.component.ts","../../../projects/c2g-ui/src/lib/lottie-loader/lottie-loader.presets.ts","../../../projects/c2g-ui/src/lib/lottie-loader/lottie-loader.component.ts","../../../projects/c2g-ui/src/lib/skeleton/skeleton.component.ts","../../../projects/c2g-ui/src/lib/alert/alert.component.ts","../../../projects/c2g-ui/src/lib/progress/progress.component.ts","../../../projects/c2g-ui/src/lib/input/input.component.ts","../../../projects/c2g-ui/src/lib/radio-group/radio-group.component.ts","../../../projects/c2g-ui/src/lib/select/select.component.ts","../../../projects/c2g-ui/src/lib/switch/switch.component.ts","../../../projects/c2g-ui/src/lib/tag/tag.component.ts","../../../projects/c2g-ui/src/lib/textarea/textarea.component.ts","../../../projects/c2g-ui/src/lib/modal/modal.component.ts","../../../projects/c2g-ui/src/lib/modal/modal.component.html","../../../projects/c2g-ui/src/lib/toast/toast.service.ts","../../../projects/c2g-ui/src/lib/toast/toast-container.component.ts","../../../projects/c2g-ui/src/lib/toast/toast-container.component.html","../../../projects/c2g-ui/src/lib/confirm-dialog/confirm-dialog.component.ts","../../../projects/c2g-ui/src/lib/confirm-dialog/confirm-dialog.component.html","../../../projects/c2g-ui/src/lib/date-range-picker/date-range-picker.component.ts","../../../projects/c2g-ui/src/lib/date-range-picker/date-range-picker.component.html","../../../projects/c2g-ui/src/public-api.ts","../../../projects/c2g-ui/src/camp2gether-c2g-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'c2g-c2g-ui',\n imports: [],\n template: `\n <p>\n c2g-ui works!\n </p>\n `,\n styles: ``,\n})\nexport class C2gUi {\n\n}\n","import { EnvironmentProviders, makeEnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\n\nexport interface C2gIconsOptions {\n /**\n * Which Material Icons font variants to register.\n * Defaults to all four variants.\n */\n variants?: Array<'filled' | 'outlined' | 'round' | 'sharp'>;\n}\n\nconst VARIANT_MAP: Record<string, { fontClass: string; alias: string }> = {\n filled: { fontClass: 'material-icons', alias: 'material-icons' },\n outlined: { fontClass: 'material-icons-outlined', alias: 'material-icons-outlined' },\n round: { fontClass: 'material-icons-round', alias: 'material-icons-round' },\n sharp: { fontClass: 'material-icons-sharp', alias: 'material-icons-sharp' },\n};\n\n/**\n * Registers Material Icons font variants with MatIconRegistry.\n *\n * Add to your app config:\n * ```ts\n * providers: [provideC2gIcons()]\n * ```\n *\n * Then use in templates:\n * ```html\n * <mat-icon>hiking</mat-icon>\n * <mat-icon fontSet=\"material-icons-outlined\">map</mat-icon>\n * <mat-icon fontSet=\"material-icons-round\">star</mat-icon>\n * ```\n *\n * The consuming app must load the font CSS — either via Google Fonts or self-hosted:\n * ```html\n * <link href=\"https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined|Material+Icons+Round|Material+Icons+Sharp\" rel=\"stylesheet\">\n * ```\n */\nexport function provideC2gIcons(options?: C2gIconsOptions): EnvironmentProviders {\n const variants = options?.variants ?? ['filled', 'outlined', 'round', 'sharp'];\n\n return makeEnvironmentProviders([\n provideAppInitializer(() => {\n const registry = inject(MatIconRegistry);\n for (const variant of variants) {\n const { fontClass, alias } = VARIANT_MAP[variant];\n registry.registerFontClassAlias(alias, fontClass);\n }\n // Set outlined as the default font set for c2g components\n registry.setDefaultFontSetClass('material-icons-outlined');\n }),\n ]);\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { C2gAvatarBadge, C2gAvatarSize, C2gAvatarStatusTone } from './avatar.models';\n\n@Component({\n selector: 'c2g-avatar',\n standalone: true,\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AvatarComponent {\n readonly name = input('');\n readonly initials = input('');\n readonly imageUrl = input<string | null>(null);\n readonly ariaLabel = input('');\n\n readonly size = input<C2gAvatarSize>('md');\n readonly backgroundColor = input('');\n readonly textColor = input('');\n\n readonly ringTone = input<C2gAvatarStatusTone>('none');\n readonly ringColor = input('');\n readonly clickable = input(false);\n readonly disabled = input(false);\n\n readonly badge = input<C2gAvatarBadge | null>(null);\n readonly avatarClick = output<void>();\n\n readonly resolvedInitials = computed(() => {\n const explicitInitials = this.initials().trim();\n if (explicitInitials) {\n return explicitInitials.slice(0, 3).toUpperCase();\n }\n\n const name = this.name().trim();\n if (!name) {\n return '?';\n }\n\n return name\n .split(/\\s+/)\n .slice(0, 2)\n .map(part => part[0])\n .join('')\n .toUpperCase();\n });\n\n readonly resolvedAriaLabel = computed(() => this.ariaLabel().trim() || this.name().trim() || null);\n\n readonly hasImage = computed(() => !!this.imageUrl());\n\n readonly ringStyle = computed(() => {\n if (this.ringTone() !== 'custom' || !this.ringColor().trim()) {\n return null;\n }\n return this.ringColor();\n });\n\n readonly badgeBackground = computed(() => {\n const badge = this.badge();\n if (!badge) {\n return null;\n }\n if (badge.tone === 'custom' && badge.backgroundColor?.trim()) {\n return badge.backgroundColor;\n }\n return null;\n });\n\n readonly badgeColor = computed(() => {\n const badge = this.badge();\n if (!badge) {\n return null;\n }\n if (badge.tone === 'custom' && badge.color?.trim()) {\n return badge.color;\n }\n return null;\n });\n\n onAvatarClick(): void {\n if (!this.clickable() || this.disabled()) {\n return;\n }\n this.avatarClick.emit();\n }\n\n onAvatarKeydown(event: KeyboardEvent): void {\n if (!this.clickable() || this.disabled()) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.avatarClick.emit();\n }\n }\n}","<span\n class=\"c2g-avatar\"\n [class.c2g-avatar--clickable]=\"clickable() && !disabled()\"\n [class.c2g-avatar--disabled]=\"disabled()\"\n [class.c2g-avatar--sm]=\"size() === 'sm'\"\n [class.c2g-avatar--md]=\"size() === 'md'\"\n [class.c2g-avatar--lg]=\"size() === 'lg'\"\n [class.c2g-avatar--ring-neutral]=\"ringTone() === 'neutral'\"\n [class.c2g-avatar--ring-success]=\"ringTone() === 'success'\"\n [class.c2g-avatar--ring-danger]=\"ringTone() === 'danger'\"\n [class.c2g-avatar--ring-muted]=\"ringTone() === 'muted'\"\n [class.c2g-avatar--ring-custom]=\"ringTone() === 'custom'\"\n [style.--c2g-avatar-bg]=\"backgroundColor() || null\"\n [style.--c2g-avatar-color]=\"textColor() || null\"\n [style.--c2g-avatar-ring]=\"ringStyle()\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n [attr.aria-disabled]=\"clickable() && disabled() ? 'true' : null\"\n [attr.role]=\"clickable() ? 'button' : 'img'\"\n [attr.tabindex]=\"clickable() && !disabled() ? 0 : null\"\n (click)=\"onAvatarClick()\"\n (keydown)=\"onAvatarKeydown($event)\">\n @if (hasImage()) {\n <img class=\"c2g-avatar__image\" [src]=\"imageUrl()!\" [alt]=\"resolvedAriaLabel() ?? ''\" />\n } @else {\n <span class=\"c2g-avatar__initials\">{{ resolvedInitials() }}</span>\n }\n\n @if (badge()) {\n <span\n class=\"c2g-avatar__badge\"\n [class.c2g-avatar__badge--neutral]=\"badge()!.tone === 'neutral'\"\n [class.c2g-avatar__badge--success]=\"badge()!.tone === 'success'\"\n [class.c2g-avatar__badge--danger]=\"badge()!.tone === 'danger'\"\n [class.c2g-avatar__badge--muted]=\"badge()!.tone === 'muted'\"\n [class.c2g-avatar__badge--custom]=\"badge()!.tone === 'custom'\"\n [style.--c2g-avatar-badge-bg]=\"badgeBackground()\"\n [style.--c2g-avatar-badge-color]=\"badgeColor()\"\n [attr.aria-label]=\"badge()!.ariaLabel || null\">\n @if (badge()!.icon) {\n <span class=\"c2g-avatar__badge-icon\" aria-hidden=\"true\">{{ badge()!.icon }}</span>\n } @else if (badge()!.text) {\n <span class=\"c2g-avatar__badge-text\" aria-hidden=\"true\">{{ badge()!.text }}</span>\n }\n </span>\n }\n</span>","import { Component, input, output, computed, ChangeDetectionStrategy } from '@angular/core';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'destructive' | 'icon';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\nexport type IconPosition = 'start' | 'end';\n\n@Component({\n selector: 'c2g-button',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <button\n [type]=\"type()\"\n [disabled]=\"isInteractionDisabled()\"\n [class]=\"buttonClasses()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n [attr.aria-disabled]=\"isInteractionDisabled() ? 'true' : null\"\n [attr.aria-label]=\"computedAriaLabel()\"\n (click)=\"clicked.emit($event)\"\n >\n @if (showLeadingSpinner()) {\n <span class=\"c2g-btn__spinner\" aria-hidden=\"true\"></span>\n }\n\n @if (showLeadingIcon()) {\n <span class=\"c2g-btn__icon\" aria-hidden=\"true\">{{ icon() }}</span>\n }\n\n @if (!iconOnly()) {\n <span class=\"c2g-btn__content\">\n <ng-content />\n </span>\n }\n\n @if (showTrailingIcon()) {\n <span class=\"c2g-btn__icon\" aria-hidden=\"true\">{{ icon() }}</span>\n }\n\n @if (showTrailingSpinner()) {\n <span class=\"c2g-btn__spinner\" aria-hidden=\"true\"></span>\n }\n </button>\n `,\n styles: `\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--c2g-space-2, 0.5rem);\n border: none;\n cursor: pointer;\n min-height: 2rem;\n font-weight: var(--c2g-font-weight-semibold, 600);\n font-family: var(--c2g-font-family-base, \"Inter\", \"Segoe UI\", sans-serif);\n border-radius: var(--c2g-radius-sm, 0.375rem);\n transition:\n background-color var(--c2g-motion-duration-base, 200ms) var(--c2g-motion-ease-standard, ease),\n opacity var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease),\n box-shadow var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease);\n }\n button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--c2g-color-button-primary, #2563eb) 30%, transparent);\n }\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .c2g-btn--loading {\n cursor: wait;\n }\n .c2g-btn--sm {\n padding: calc(var(--c2g-space-1, 0.25rem) + var(--c2g-space-1, 0.25rem)) var(--c2g-space-3, 0.75rem);\n font-size: var(--c2g-font-size-xs, 0.75rem);\n }\n .c2g-btn--md {\n padding: calc(var(--c2g-space-2, 0.5rem) + var(--c2g-space-1, 0.25rem)) var(--c2g-space-5, 1.25rem);\n font-size: var(--c2g-font-size-sm, 0.875rem);\n }\n .c2g-btn--lg {\n padding: var(--c2g-space-4, 1rem) calc(var(--c2g-space-5, 1.25rem) + var(--c2g-space-2, 0.5rem));\n font-size: var(--c2g-font-size-md, 1rem);\n }\n .c2g-btn--primary {\n background: var(--c2g-color-button-primary, #2563eb);\n color: var(--c2g-color-button-primary-text, #1a1714);\n }\n .c2g-btn--primary:hover:not(:disabled) {\n background: var(--c2g-color-button-primary-hover, #1d4ed8);\n }\n .c2g-btn--secondary {\n background: var(--c2g-color-button-secondary, #e5e7eb);\n color: var(--c2g-color-button-secondary-text, #111827);\n }\n .c2g-btn--secondary:hover:not(:disabled) {\n background: var(--c2g-color-button-secondary-hover, #d1d5db);\n }\n .c2g-btn--ghost {\n background: transparent;\n color: var(--c2g-color-button-primary, #2563eb);\n }\n .c2g-btn--ghost:hover:not(:disabled) {\n background: var(--c2g-color-button-ghost-hover, #eff6ff);\n }\n .c2g-btn--destructive {\n background: var(--c2g-color-semantic-error, #b23a2b);\n color: var(--c2g-color-surface, #ffffff);\n }\n .c2g-btn--destructive:hover:not(:disabled) {\n background: var(--c2g-color-semantic-error-dark, #8c2d22);\n }\n .c2g-btn--icon {\n background: transparent;\n color: var(--c2g-color-text-primary, #1a1714);\n border: 1px solid var(--c2g-color-border-soft, #e7ddd5);\n padding-inline: var(--c2g-space-2, 0.5rem);\n }\n .c2g-btn--icon:hover:not(:disabled) {\n background: var(--c2g-color-bg-subtle, #f6ede7);\n }\n .c2g-btn--icon-only {\n padding: 0;\n width: 2.5rem;\n aspect-ratio: 1;\n }\n .c2g-btn--sm.c2g-btn--icon-only { width: 2rem; }\n .c2g-btn--lg.c2g-btn--icon-only { width: 3rem; }\n .c2g-btn__content {\n line-height: 1;\n }\n .c2g-btn__icon {\n display: inline-flex;\n font-size: 1.05em;\n line-height: 1;\n }\n .c2g-btn__spinner {\n width: 1em;\n height: 1em;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 999px;\n animation: c2g-btn-spin 0.7s linear infinite;\n display: inline-block;\n }\n @keyframes c2g-btn-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `,\n})\nexport class ButtonComponent {\n readonly variant = input<ButtonVariant>('primary');\n readonly size = input<ButtonSize>('md');\n readonly disabled = input(false);\n readonly loading = input(false);\n readonly icon = input('');\n readonly iconPosition = input<IconPosition>('start');\n readonly iconOnly = input(false);\n readonly ariaLabel = input('');\n readonly loadingAriaLabel = input('Lädt');\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly clicked = output<MouseEvent>();\n\n readonly isInteractionDisabled = computed(() => this.disabled() || this.loading());\n\n readonly showLeadingSpinner = computed(\n () => this.loading() && this.iconPosition() === 'start'\n );\n\n readonly showTrailingSpinner = computed(\n () => this.loading() && this.iconPosition() === 'end'\n );\n\n readonly hasIcon = computed(() => this.icon().trim().length > 0);\n\n readonly showLeadingIcon = computed(\n () => this.hasIcon() && !this.loading() && this.iconPosition() === 'start'\n );\n\n readonly showTrailingIcon = computed(\n () => this.hasIcon() && !this.loading() && this.iconPosition() === 'end'\n );\n\n readonly computedAriaLabel = computed(() => {\n if (this.loading()) {\n return this.loadingAriaLabel();\n }\n if (this.iconOnly()) {\n return this.ariaLabel().trim() || 'Aktion';\n }\n return this.ariaLabel().trim() || null;\n });\n\n readonly buttonClasses = computed(\n () =>\n `c2g-btn--${this.size()} c2g-btn--${this.variant()}${this.iconOnly() ? ' c2g-btn--icon-only' : ''}${this.loading() ? ' c2g-btn--loading' : ''}`\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type BadgeTone = 'neutral' | 'accent' | 'info' | 'success' | 'warning' | 'danger';\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline';\nexport type BadgeSize = 'sm' | 'md';\n\n@Component({\n selector: 'c2g-badge',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <span\n class=\"c2g-badge\"\n [class]=\"classes()\"\n [style.--c2g-badge-dot-color]=\"dotColor()\"\n [attr.role]=\"dot() && resolvedAriaLabel() ? 'status' : null\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n [attr.aria-hidden]=\"dot() && !resolvedAriaLabel() ? 'true' : null\"\n >\n @if (dot()) {\n <span class=\"c2g-badge__dot\" [class.c2g-badge__dot--pulse]=\"dotPulse()\" aria-hidden=\"true\"></span>\n }\n @if (!dot() || !dotOnly()) {\n <span>{{ content() }}</span>\n }\n </span>\n `,\n styles: `\n .c2g-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 999px;\n border: 1px solid transparent;\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n font-weight: var(--c2g-font-weight-semibold, 600);\n line-height: 1;\n min-width: 1.25rem;\n }\n .c2g-badge--sm {\n font-size: 0.6875rem;\n padding: 0.16rem 0.4rem;\n min-height: 1rem;\n }\n .c2g-badge--md {\n font-size: var(--c2g-font-size-xs, 0.75rem);\n padding: 0.22rem 0.5rem;\n min-height: 1.125rem;\n }\n .c2g-badge__dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: 999px;\n background: var(--c2g-badge-dot-color, currentColor);\n margin-right: var(--c2g-space-1, 0.25rem);\n flex: 0 0 auto;\n }\n .c2g-badge__dot--pulse {\n animation: c2g-badge-dot-pulse 1.5s ease-in-out infinite;\n transform-origin: center;\n }\n @keyframes c2g-badge-dot-pulse {\n 0% {\n box-shadow: 0 0 0 0 color-mix(in srgb, var(--c2g-badge-dot-color, currentColor) 45%, transparent);\n transform: scale(1);\n }\n 70% {\n box-shadow: 0 0 0 0.4rem color-mix(in srgb, var(--c2g-badge-dot-color, currentColor) 0%, transparent);\n transform: scale(1.05);\n }\n 100% {\n box-shadow: 0 0 0 0 color-mix(in srgb, var(--c2g-badge-dot-color, currentColor) 0%, transparent);\n transform: scale(1);\n }\n }\n\n .c2g-badge--dot-only {\n width: 1rem;\n height: 1rem;\n min-width: 1rem;\n min-height: 1rem;\n padding: 0;\n border-radius: 50%;\n }\n .c2g-badge--dot-only.c2g-badge--sm {\n width: 0.875rem;\n height: 0.875rem;\n min-width: 0.875rem;\n min-height: 0.875rem;\n }\n .c2g-badge--dot-only.c2g-badge--md {\n width: 1rem;\n height: 1rem;\n min-width: 1rem;\n min-height: 1rem;\n }\n .c2g-badge--dot-only .c2g-badge__dot {\n margin-right: 0;\n }\n .c2g-badge--dot-no-ring {\n border-color: transparent !important;\n background: transparent !important;\n box-shadow: none;\n }\n\n .c2g-badge--solid.c2g-badge--neutral {\n background: var(--c2g-color-text-secondary, #4a423b);\n color: #ffffff;\n }\n .c2g-badge--solid.c2g-badge--accent {\n background: var(--c2g-color-primary, #ff6b35);\n color: #ffffff;\n }\n .c2g-badge--solid.c2g-badge--info {\n background: #1565c0;\n color: #ffffff;\n }\n .c2g-badge--solid.c2g-badge--success {\n background: #2e7d32;\n color: #ffffff;\n }\n .c2g-badge--solid.c2g-badge--warning {\n background: #ef6c00;\n color: #ffffff;\n }\n .c2g-badge--solid.c2g-badge--danger {\n background: #c62828;\n color: #ffffff;\n }\n\n .c2g-badge--subtle.c2g-badge--neutral {\n background: color-mix(in srgb, var(--c2g-color-text-secondary, #4a423b) 10%, #ffffff);\n color: var(--c2g-color-text-secondary, #4a423b);\n }\n .c2g-badge--subtle.c2g-badge--accent {\n background: color-mix(in srgb, var(--c2g-color-primary, #ff6b35) 14%, #ffffff);\n color: color-mix(in srgb, var(--c2g-color-primary-dark, #e55623) 80%, #000000);\n }\n .c2g-badge--subtle.c2g-badge--info {\n background: color-mix(in srgb, #1565c0 12%, #ffffff);\n color: #0d47a1;\n }\n .c2g-badge--subtle.c2g-badge--success {\n background: color-mix(in srgb, #2e7d32 12%, #ffffff);\n color: #1b5e20;\n }\n .c2g-badge--subtle.c2g-badge--warning {\n background: color-mix(in srgb, #ef6c00 12%, #ffffff);\n color: #e65100;\n }\n .c2g-badge--subtle.c2g-badge--danger {\n background: color-mix(in srgb, #c62828 13%, #ffffff);\n color: #b71c1c;\n }\n\n .c2g-badge--outline.c2g-badge--neutral {\n border-color: color-mix(in srgb, var(--c2g-color-text-secondary, #4a423b) 35%, transparent);\n color: var(--c2g-color-text-secondary, #4a423b);\n background: transparent;\n }\n .c2g-badge--outline.c2g-badge--accent {\n border-color: color-mix(in srgb, var(--c2g-color-primary, #ff6b35) 40%, transparent);\n color: color-mix(in srgb, var(--c2g-color-primary-dark, #e55623) 80%, #000000);\n background: transparent;\n }\n .c2g-badge--outline.c2g-badge--info {\n border-color: color-mix(in srgb, #1565c0 40%, transparent);\n color: #0d47a1;\n background: transparent;\n }\n .c2g-badge--outline.c2g-badge--success {\n border-color: color-mix(in srgb, #2e7d32 40%, transparent);\n color: #1b5e20;\n background: transparent;\n }\n .c2g-badge--outline.c2g-badge--warning {\n border-color: color-mix(in srgb, #ef6c00 40%, transparent);\n color: #e65100;\n background: transparent;\n }\n .c2g-badge--outline.c2g-badge--danger {\n border-color: color-mix(in srgb, #c62828 40%, transparent);\n color: #b71c1c;\n background: transparent;\n }\n `,\n})\nexport class BadgeComponent {\n readonly value = input<string | number>('1');\n readonly tone = input<BadgeTone>('accent');\n readonly variant = input<BadgeVariant>('solid');\n readonly size = input<BadgeSize>('md');\n readonly max = input<number>(99);\n readonly dot = input(false);\n readonly dotOnly = input(false);\n readonly dotRing = input(true);\n readonly dotPulse = input(false);\n readonly dotColor = input('');\n readonly ariaLabel = input('');\n\n readonly resolvedAriaLabel = computed(() => this.ariaLabel().trim() || null);\n\n readonly content = computed(() => {\n const value = this.value();\n if (typeof value === 'number' && value > this.max()) {\n return `${this.max()}+`;\n }\n return `${value}`;\n });\n\n readonly classes = computed(\n () =>\n `c2g-badge c2g-badge--${this.size()} c2g-badge--${this.variant()} c2g-badge--${this.tone()} ${\n this.dot() && this.dotOnly() ? 'c2g-badge--dot-only' : ''\n } ${this.dot() && this.dotOnly() && !this.dotRing() ? 'c2g-badge--dot-no-ring' : ''}`\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport type ChipTone = 'neutral' | 'accent' | 'info' | 'success' | 'warning' | 'danger';\n\n@Component({\n selector: 'c2g-chip',\n standalone: true,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <span class=\"c2g-chip\" [class]=\"chipClasses()\">\n <button\n type=\"button\"\n class=\"c2g-chip__action\"\n [disabled]=\"disabled()\"\n [attr.aria-pressed]=\"isSelected() ? 'true' : 'false'\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (click)=\"toggleSelected()\"\n >\n @if (icon() || iconFontIcon()) {\n <mat-icon\n class=\"c2g-chip__icon\"\n [fontSet]=\"iconFontSet()\"\n [fontIcon]=\"iconFontIcon()\"\n [attr.aria-label]=\"iconAriaLabel() || null\"\n [attr.aria-hidden]=\"iconAriaLabel() ? null : 'true'\"\n >\n {{ icon() }}\n </mat-icon>\n }\n <span>{{ label() }}</span>\n </button>\n\n @if (removable()) {\n <button\n type=\"button\"\n class=\"c2g-chip__remove\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"removeAriaLabel()\"\n (click)=\"remove($event)\"\n >\n <mat-icon class=\"c2g-chip__remove-icon\" aria-hidden=\"true\">close</mat-icon>\n </button>\n }\n </span>\n `,\n styles: `\n .c2g-chip {\n display: inline-flex;\n align-items: center;\n border-radius: 999px;\n border: 1px solid transparent;\n overflow: hidden;\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n transition: all var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease);\n }\n .c2g-chip__action,\n .c2g-chip__remove {\n border: none;\n background: transparent;\n color: inherit;\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n font: inherit;\n line-height: 1;\n }\n .c2g-chip__action {\n gap: var(--c2g-space-1, 0.25rem);\n padding: 0.35rem 0.6rem;\n }\n .c2g-chip__remove {\n padding: 0.35rem 0.45rem 0.35rem 0.25rem;\n border-left: 1px solid color-mix(in srgb, currentColor 24%, transparent);\n }\n .c2g-chip__icon,\n .c2g-chip__remove-icon {\n width: 0.875rem;\n height: 0.875rem;\n font-size: 0.8125rem;\n line-height: 1;\n }\n .c2g-chip__action:focus-visible,\n .c2g-chip__remove:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--c2g-color-focus, #e55623) 24%, transparent);\n }\n .c2g-chip__action:disabled,\n .c2g-chip__remove:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .c2g-chip--neutral {\n background: color-mix(in srgb, var(--c2g-color-text-secondary, #4a423b) 10%, #ffffff);\n color: var(--c2g-color-text-secondary, #4a423b);\n border-color: color-mix(in srgb, var(--c2g-color-text-secondary, #4a423b) 20%, transparent);\n }\n .c2g-chip--accent {\n background: color-mix(in srgb, var(--c2g-color-primary, #ff6b35) 13%, #ffffff);\n color: color-mix(in srgb, var(--c2g-color-primary-dark, #e55623) 78%, #000000);\n border-color: color-mix(in srgb, var(--c2g-color-primary, #ff6b35) 35%, transparent);\n }\n .c2g-chip--info {\n background: color-mix(in srgb, #1565c0 12%, #ffffff);\n color: #0d47a1;\n border-color: color-mix(in srgb, #1565c0 36%, transparent);\n }\n .c2g-chip--success {\n background: color-mix(in srgb, #2e7d32 12%, #ffffff);\n color: #1b5e20;\n border-color: color-mix(in srgb, #2e7d32 36%, transparent);\n }\n .c2g-chip--warning {\n background: color-mix(in srgb, #ef6c00 13%, #ffffff);\n color: #e65100;\n border-color: color-mix(in srgb, #ef6c00 36%, transparent);\n }\n .c2g-chip--danger {\n background: color-mix(in srgb, #c62828 13%, #ffffff);\n color: #b71c1c;\n border-color: color-mix(in srgb, #c62828 36%, transparent);\n }\n\n .c2g-chip--selected {\n box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 40%, transparent);\n background: color-mix(in srgb, currentColor 18%, #ffffff);\n }\n `,\n})\nexport class ChipComponent {\n readonly label = input('Chip');\n readonly tone = input<ChipTone>('neutral');\n readonly selected = input(false);\n readonly disabled = input(false);\n readonly removable = input(false);\n readonly ariaLabel = input('');\n readonly removeAriaLabel = input('Chip entfernen');\n\n readonly icon = input('');\n readonly iconAriaLabel = input('');\n readonly iconFontSet = input('');\n readonly iconFontIcon = input('');\n\n readonly selectedChange = output<boolean>();\n readonly removed = output<void>();\n\n readonly isSelected = signal(false);\n readonly chipClasses = computed(\n () => `c2g-chip c2g-chip--${this.tone()} ${this.isSelected() ? 'c2g-chip--selected' : ''}`\n );\n\n constructor() {\n effect(() => {\n this.isSelected.set(this.selected());\n });\n }\n\n toggleSelected(): void {\n if (this.disabled()) {\n return;\n }\n const next = !this.isSelected();\n this.isSelected.set(next);\n this.selectedChange.emit(next);\n }\n\n remove(event: Event): void {\n event.stopPropagation();\n if (this.disabled()) {\n return;\n }\n this.removed.emit();\n }\n}","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet nextCheckboxId = 0;\n\n@Component({\n selector: 'c2g-checkbox',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n template: `\n <label class=\"c2g-checkbox\" [class.c2g-checkbox--disabled]=\"isDisabled()\" [attr.for]=\"checkboxId()\">\n <input\n class=\"c2g-checkbox__input\"\n type=\"checkbox\"\n [id]=\"checkboxId()\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-describedby]=\"describedBy()\"\n (change)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n <span class=\"c2g-checkbox__box\" aria-hidden=\"true\"></span>\n <span class=\"c2g-checkbox__label\">{{ label() }}</span>\n </label>\n\n @if (hint().trim()) {\n <p class=\"c2g-checkbox__hint\" [id]=\"hintId()\">{{ hint() }}</p>\n }\n `,\n styles: `\n .c2g-checkbox {\n display: inline-flex;\n align-items: center;\n gap: var(--c2g-space-2, 0.5rem);\n cursor: pointer;\n user-select: none;\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n color: var(--c2g-color-text-primary, #1a1714);\n }\n .c2g-checkbox--disabled {\n opacity: 0.55;\n cursor: not-allowed;\n }\n .c2g-checkbox__input {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n }\n .c2g-checkbox__box {\n width: 1.125rem;\n height: 1.125rem;\n border-radius: var(--c2g-radius-sm, 0.375rem);\n border: 1px solid var(--c2g-color-border-subtle, rgba(74, 66, 59, 0.18));\n background: var(--c2g-color-surface, #ffffff);\n display: inline-block;\n transition: all var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease);\n position: relative;\n }\n .c2g-checkbox__input:checked + .c2g-checkbox__box {\n border-color: var(--c2g-color-primary-dark, #e55623);\n background: var(--c2g-color-primary, #ff6b35);\n }\n .c2g-checkbox__input:checked + .c2g-checkbox__box::after {\n content: '';\n position: absolute;\n left: 0.33rem;\n top: 0.12rem;\n width: 0.27rem;\n height: 0.55rem;\n border: solid var(--c2g-color-surface, #ffffff);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n }\n .c2g-checkbox__input:focus-visible + .c2g-checkbox__box {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--c2g-color-focus, #e55623) 24%, transparent);\n }\n .c2g-checkbox__label {\n font-size: var(--c2g-font-size-sm, 0.875rem);\n }\n .c2g-checkbox__hint {\n margin: var(--c2g-space-1, 0.25rem) 0 0 1.65rem;\n color: var(--c2g-color-text-muted, #6b5e52);\n font-size: var(--c2g-font-size-xs, 0.75rem);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n `,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n readonly id = input('');\n readonly label = input('Option');\n readonly hint = input('');\n readonly disabled = input(false);\n\n readonly checkedChange = output<boolean>();\n\n readonly checked = signal(false);\n readonly cvaDisabled = signal(false);\n private readonly generatedId = `c2g-checkbox-${++nextCheckboxId}`;\n\n readonly checkboxId = computed(() => this.id().trim() || this.generatedId);\n readonly hintId = computed(() => `${this.checkboxId()}-hint`);\n readonly describedBy = computed(() => (this.hint().trim() ? this.hintId() : null));\n readonly isDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: boolean | null): void {\n this.checked.set(!!value);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n onInput(event: Event): void {\n const next = (event.target as HTMLInputElement).checked;\n this.checked.set(next);\n this.onChange(next);\n this.checkedChange.emit(next);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type C2gLoaderSize = 'sm' | 'md' | 'lg';\nexport type C2gLoaderTone = 'primary' | 'neutral' | 'inverse';\n\n@Component({\n selector: 'c2g-loader',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <span\n class=\"c2g-loader\"\n role=\"status\"\n [class.c2g-loader--inline]=\"inline()\"\n [class.c2g-loader--block]=\"!inline()\"\n [class.c2g-loader--sm]=\"size() === 'sm'\"\n [class.c2g-loader--md]=\"size() === 'md'\"\n [class.c2g-loader--lg]=\"size() === 'lg'\"\n [class.c2g-loader--primary]=\"tone() === 'primary'\"\n [class.c2g-loader--neutral]=\"tone() === 'neutral'\"\n [class.c2g-loader--inverse]=\"tone() === 'inverse'\"\n [attr.aria-label]=\"ariaLabel()\"\n >\n <span class=\"c2g-loader__spinner\" aria-hidden=\"true\"></span>\n @if (showLabel()) {\n <span class=\"c2g-loader__label\">{{ label() }}</span>\n }\n </span>\n `,\n styles: `\n .c2g-loader {\n --loader-color: var(--c2g-color-primary, #ff6b35);\n --loader-size: 1.25rem;\n display: inline-flex;\n align-items: center;\n gap: var(--c2g-space-2, 0.5rem);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n color: var(--c2g-color-text-secondary, #4a423b);\n }\n .c2g-loader--inline {\n display: inline-flex;\n }\n .c2g-loader--block {\n display: flex;\n width: 100%;\n }\n .c2g-loader--sm {\n --loader-size: 0.9rem;\n font-size: var(--c2g-font-size-xs, 0.75rem);\n }\n .c2g-loader--md {\n --loader-size: 1.25rem;\n font-size: var(--c2g-font-size-sm, 0.875rem);\n }\n .c2g-loader--lg {\n --loader-size: 1.75rem;\n font-size: var(--c2g-font-size-md, 1rem);\n }\n .c2g-loader--primary {\n --loader-color: var(--c2g-color-primary, #ff6b35);\n }\n .c2g-loader--neutral {\n --loader-color: var(--c2g-color-text-muted, #6b5e52);\n }\n .c2g-loader--inverse {\n --loader-color: var(--c2g-color-surface, #ffffff);\n color: var(--c2g-color-surface, #ffffff);\n }\n .c2g-loader__spinner {\n width: var(--loader-size);\n height: var(--loader-size);\n border-radius: 999px;\n border: 2px solid color-mix(in srgb, var(--loader-color) 24%, transparent);\n border-top-color: var(--loader-color);\n animation: c2g-loader-spin 0.8s linear infinite;\n flex-shrink: 0;\n }\n .c2g-loader__label {\n line-height: 1.2;\n }\n @keyframes c2g-loader-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n `,\n})\nexport class LoaderComponent {\n readonly size = input<C2gLoaderSize>('md');\n readonly tone = input<C2gLoaderTone>('primary');\n readonly label = input('Laden...');\n readonly showLabel = input(true);\n readonly inline = input(true);\n\n readonly ariaLabel = computed(() => this.label().trim() || 'Ladevorgang');\n}\n","export const C2G_LOTTIE_PRESET_OPTIONS = [\n 'beach',\n 'camping',\n 'car',\n 'cat-love',\n 'checklist',\n 'coffee-time',\n 'car-driving-landscape',\n 'error-404',\n 'fishing',\n 'mountain-search',\n 'planning',\n 'share',\n 'summer-camp',\n 'thinking',\n 'walking-orange',\n 'walking-avocado',\n 'weather-partly-cloudy',\n] as const;\n\nexport type C2gLottieLoaderPreset = (typeof C2G_LOTTIE_PRESET_OPTIONS)[number];\n\nexport type C2gLottieLoaderPresetMode = 'embedded' | 'path';\n\nexport const C2G_LOTTIE_PRESET_PATHS: Record<C2gLottieLoaderPreset, string> = {\n beach: '/assets/animations/beach-animation.json',\n camping: '/assets/animations/camping-animation.json',\n car: '/assets/animations/car-animation.json',\n 'cat-love': '/assets/animations/cat-love-animation.json',\n checklist: '/assets/animations/checklist-animation.json',\n 'error-404': '/assets/animations/error-404.json',\n fishing: '/assets/animations/fishing-animation.json',\n 'mountain-search': '/assets/animations/mountain-search-animation.json',\n planning: '/assets/animations/planning-animation.json',\n share: '/assets/animations/share-animation.json',\n 'summer-camp': '/assets/animations/summer-camp-animation.json',\n thinking: '/assets/animations/thinking-animation.json',\n 'coffee-time': '/assets/animations/coffee-time-animation.json',\n 'car-driving-landscape': '/assets/animations/car-driving-landscape-animation.json',\n 'walking-orange': '/assets/animations/walking-orange-animation.json',\n 'walking-avocado': '/assets/animations/walking-avocado-animation.json',\n 'weather-partly-cloudy': '/assets/animations/weather-partly-cloudy-animation.json',\n};\n\nconst C2G_LOTTIE_PRESET_IMPORTERS: Record<C2gLottieLoaderPreset, () => Promise<{ default: unknown }>> = {\n beach: () => import('./presets/beach-animation.json'),\n camping: () => import('./presets/camping-animation.json'),\n car: () => import('./presets/car-animation.json'),\n 'cat-love': () => import('./presets/cat-love-animation.json'),\n checklist: () => import('./presets/checklist-animation.json'),\n 'error-404': () => import('./presets/error-404.json'),\n fishing: () => import('./presets/fishing-animation.json'),\n 'mountain-search': () => import('./presets/mountain-search-animation.json'),\n planning: () => import('./presets/planning-animation.json'),\n share: () => import('./presets/share-animation.json'),\n 'summer-camp': () => import('./presets/summer-camp-animation.json'),\n thinking: () => import('./presets/thinking-animation.json'),\n 'coffee-time': () => import('./presets/coffee-time-animation.json'),\n 'car-driving-landscape': () => import('./presets/car-driving-landscape-animation.json'),\n 'walking-orange': () => import('./presets/walking-orange-animation.json'),\n 'walking-avocado': () => import('./presets/walking-avocado-animation.json'),\n 'weather-partly-cloudy': () => import('./presets/weather-partly-cloudy-animation.json'),\n};\n\nexport async function loadC2gLottiePresetData(preset: C2gLottieLoaderPreset): Promise<unknown> {\n const module = await C2G_LOTTIE_PRESET_IMPORTERS[preset]();\n return module.default;\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, input, signal } from '@angular/core';\nimport { AnimationOptions, LottieComponent } from 'ngx-lottie';\nimport {\n C2G_LOTTIE_PRESET_PATHS,\n C2gLottieLoaderPreset,\n C2gLottieLoaderPresetMode,\n loadC2gLottiePresetData,\n} from './lottie-loader.presets';\n\n@Component({\n selector: 'c2g-lottie-loader',\n standalone: true,\n imports: [LottieComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"c2g-lottie-loader\" role=\"status\" [attr.aria-label]=\"ariaLabel()\">\n @if (hasRenderableAnimation()) {\n <ng-lottie\n class=\"c2g-lottie-loader__animation\"\n [options]=\"options()\"\n [width]=\"width()\"\n [height]=\"height()\"\n aria-hidden=\"true\"\n ></ng-lottie>\n } @else {\n <span class=\"c2g-lottie-loader__fallback\" aria-hidden=\"true\"></span>\n }\n\n @if (showLabel()) {\n <span class=\"c2g-lottie-loader__label\">{{ label() }}</span>\n }\n </div>\n `,\n styles: `\n .c2g-lottie-loader {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--c2g-space-2, 0.5rem);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n color: var(--c2g-color-text-secondary, #4a423b);\n }\n .c2g-lottie-loader__animation {\n display: inline-block;\n line-height: 0;\n }\n .c2g-lottie-loader__fallback {\n width: 1.5rem;\n height: 1.5rem;\n border-radius: 999px;\n border: 2px solid color-mix(in srgb, var(--c2g-color-primary, #ff6b35) 24%, transparent);\n border-top-color: var(--c2g-color-primary, #ff6b35);\n animation: c2g-lottie-loader-fallback-spin 0.8s linear infinite;\n }\n .c2g-lottie-loader__label {\n font-size: var(--c2g-font-size-sm, 0.875rem);\n line-height: 1.2;\n text-align: center;\n }\n @keyframes c2g-lottie-loader-fallback-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n `,\n})\nexport class LottieLoaderComponent {\n readonly preset = input<C2gLottieLoaderPreset>('cat-love');\n readonly presetMode = input<C2gLottieLoaderPresetMode>('embedded');\n readonly animationPath = input('');\n readonly animationData = input<unknown | null>(null);\n readonly loop = input(true);\n readonly autoplay = input(true);\n readonly width = input('96px');\n readonly height = input('96px');\n readonly label = input('Lade...');\n readonly showLabel = input(true);\n\n readonly ariaLabel = computed(() => this.label().trim() || 'Ladevorgang');\n private readonly lazyPresetData = signal<unknown | null>(null);\n\n readonly hasRenderableAnimation = computed(() => {\n const animationData = this.animationData();\n if (animationData) {\n return true;\n }\n if (this.animationPath().trim()) {\n return true;\n }\n if (this.presetMode() === 'path') {\n return true;\n }\n return this.lazyPresetData() !== null;\n });\n\n constructor() {\n effect((onCleanup) => {\n const hasCustomData = this.animationData() !== null;\n const hasCustomPath = this.animationPath().trim().length > 0;\n const mode = this.presetMode();\n const preset = this.preset();\n\n if (hasCustomData || hasCustomPath || mode === 'path') {\n this.lazyPresetData.set(null);\n return;\n }\n\n let cancelled = false;\n this.lazyPresetData.set(null);\n\n void loadC2gLottiePresetData(preset)\n .then((data) => {\n if (!cancelled) {\n this.lazyPresetData.set(data);\n }\n })\n .catch(() => {\n if (!cancelled) {\n this.lazyPresetData.set(null);\n }\n });\n\n onCleanup(() => {\n cancelled = true;\n });\n });\n }\n\n private cloneAnimationData<T>(value: T): T {\n if (typeof structuredClone === 'function') {\n return structuredClone(value);\n }\n return JSON.parse(JSON.stringify(value)) as T;\n }\n\n readonly options = computed<AnimationOptions>(() => {\n const base: AnimationOptions = {\n loop: this.loop(),\n autoplay: this.autoplay(),\n };\n\n const animationData = this.animationData();\n if (animationData) {\n return {\n ...base,\n // ngx-lottie/lottie-web may mutate animationData; clone to avoid shared-state issues.\n animationData: this.cloneAnimationData(animationData),\n };\n }\n\n const explicitPath = this.animationPath().trim();\n if (explicitPath) {\n return {\n ...base,\n path: explicitPath,\n };\n }\n\n if (this.presetMode() === 'path') {\n return {\n ...base,\n path: C2G_LOTTIE_PRESET_PATHS[this.preset()],\n };\n }\n\n const lazyData = this.lazyPresetData();\n if (!lazyData) {\n return base;\n }\n\n return {\n ...base,\n animationData: this.cloneAnimationData(lazyData),\n };\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type C2gSkeletonVariant = 'text' | 'block' | 'avatar';\n\n@Component({\n selector: 'c2g-skeleton',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <span\n class=\"c2g-skeleton\"\n [class.c2g-skeleton--animated]=\"animated()\"\n [class.c2g-skeleton--text]=\"variant() === 'text'\"\n [class.c2g-skeleton--block]=\"variant() === 'block'\"\n [class.c2g-skeleton--avatar]=\"variant() === 'avatar'\"\n [style.width]=\"resolvedWidth()\"\n [style.height]=\"resolvedHeight()\"\n [style.borderRadius]=\"resolvedRadius()\"\n aria-hidden=\"true\"\n ></span>\n `,\n styles: `\n .c2g-skeleton {\n display: inline-block;\n width: 100%;\n height: 1rem;\n border-radius: var(--c2g-radius-sm, 0.375rem);\n background: linear-gradient(\n 90deg,\n color-mix(in srgb, var(--c2g-color-neutral-200, #e1d9ce) 78%, #ffffff) 0%,\n color-mix(in srgb, var(--c2g-color-neutral-200, #e1d9ce) 56%, #ffffff) 45%,\n color-mix(in srgb, var(--c2g-color-neutral-200, #e1d9ce) 78%, #ffffff) 100%\n );\n background-size: 240% 100%;\n }\n .c2g-skeleton--animated {\n animation: c2g-skeleton-shimmer 1.5s ease-in-out infinite;\n }\n .c2g-skeleton--text {\n height: 0.95rem;\n border-radius: 0.45rem;\n }\n .c2g-skeleton--block {\n height: 5.5rem;\n }\n .c2g-skeleton--avatar {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 999px;\n }\n @keyframes c2g-skeleton-shimmer {\n from {\n background-position: 200% 0;\n }\n to {\n background-position: -40% 0;\n }\n }\n `,\n})\nexport class SkeletonComponent {\n readonly variant = input<C2gSkeletonVariant>('text');\n readonly width = input('100%');\n readonly height = input('');\n readonly radius = input('');\n readonly animated = input(true);\n\n readonly resolvedWidth = computed(() => (this.width().trim() ? this.width() : '100%'));\n readonly resolvedHeight = computed(() => {\n if (this.height().trim()) {\n return this.height();\n }\n if (this.variant() === 'avatar') {\n return '2.5rem';\n }\n if (this.variant() === 'block') {\n return '5.5rem';\n }\n return '0.95rem';\n });\n readonly resolvedRadius = computed(() => {\n if (this.radius().trim()) {\n return this.radius();\n }\n return this.variant() === 'avatar' ? '999px' : '0.45rem';\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core';\n\nexport type C2gAlertTone = 'info' | 'success' | 'warning' | 'danger';\nexport type C2gAlertVariant = 'soft' | 'solid' | 'outline';\n\n@Component({\n selector: 'c2g-alert',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (visible()) {\n <section\n class=\"c2g-alert\"\n [class.c2g-alert--soft]=\"variant() === 'soft'\"\n [class.c2g-alert--solid]=\"variant() === 'solid'\"\n [class.c2g-alert--outline]=\"variant() === 'outline'\"\n [class.c2g-alert--info]=\"tone() === 'info'\"\n [class.c2g-alert--success]=\"tone() === 'success'\"\n [class.c2g-alert--warning]=\"tone() === 'warning'\"\n [class.c2g-alert--danger]=\"tone() === 'danger'\"\n [attr.role]=\"liveRole()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <span class=\"c2g-alert__icon\" aria-hidden=\"true\">{{ iconSymbol() }}</span>\n\n <div class=\"c2g-alert__content\">\n @if (title().trim()) {\n <h4 class=\"c2g-alert__title\">{{ title() }}</h4>\n }\n @if (message().trim()) {\n <p class=\"c2g-alert__message\">{{ message() }}</p>\n }\n </div>\n\n @if (dismissible()) {\n <button\n type=\"button\"\n class=\"c2g-alert__close\"\n (click)=\"dismiss()\"\n [attr.aria-label]=\"closeLabel()\"\n >\n x\n </button>\n }\n </section>\n }\n `,\n styles: `\n .c2g-alert {\n --alert-fg: #1a1714;\n --alert-bg: color-mix(in srgb, var(--c2g-color-neutral-200, #e1d9ce) 35%, #ffffff);\n --alert-border: color-mix(in srgb, var(--c2g-color-border-subtle, rgba(74, 66, 59, 0.18)) 100%, transparent);\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: start;\n gap: var(--c2g-space-3, 0.75rem);\n padding: var(--c2g-space-3, 0.75rem) var(--c2g-space-4, 1rem);\n border-radius: var(--c2g-radius-md, 0.625rem);\n border: 1px solid var(--alert-border);\n color: var(--alert-fg);\n background: var(--alert-bg);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n .c2g-alert--info {\n --alert-fg: #134a7c;\n --alert-bg: color-mix(in srgb, #4aa3ff 14%, #ffffff);\n --alert-border: color-mix(in srgb, #4aa3ff 36%, transparent);\n }\n .c2g-alert--success {\n --alert-fg: #1f6b41;\n --alert-bg: color-mix(in srgb, #43b581 14%, #ffffff);\n --alert-border: color-mix(in srgb, #43b581 36%, transparent);\n }\n .c2g-alert--warning {\n --alert-fg: #6c4a0a;\n --alert-bg: color-mix(in srgb, #ffb020 16%, #ffffff);\n --alert-border: color-mix(in srgb, #ffb020 42%, transparent);\n }\n .c2g-alert--danger {\n --alert-fg: #802e2e;\n --alert-bg: color-mix(in srgb, #ef4444 14%, #ffffff);\n --alert-border: color-mix(in srgb, #ef4444 40%, transparent);\n }\n .c2g-alert--solid {\n background: color-mix(in srgb, var(--alert-fg) 88%, #000000 0%);\n color: #ffffff;\n border-color: transparent;\n }\n .c2g-alert--outline {\n background: transparent;\n border-width: 2px;\n }\n .c2g-alert__icon {\n width: 1.25rem;\n line-height: 1.25rem;\n text-align: center;\n font-weight: 700;\n margin-top: 0.08rem;\n }\n .c2g-alert__title {\n margin: 0;\n font-size: var(--c2g-font-size-sm, 0.875rem);\n font-weight: var(--c2g-font-weight-semibold, 600);\n line-height: 1.2;\n }\n .c2g-alert__message {\n margin: 0.2rem 0 0;\n font-size: var(--c2g-font-size-sm, 0.875rem);\n line-height: 1.35;\n }\n .c2g-alert__close {\n border: none;\n background: transparent;\n color: inherit;\n font-weight: 700;\n font-size: 0.875rem;\n line-height: 1;\n cursor: pointer;\n border-radius: var(--c2g-radius-sm, 0.375rem);\n padding: 0.25rem;\n }\n .c2g-alert__close:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 24%, transparent);\n }\n `,\n})\nexport class AlertComponent {\n readonly tone = input<C2gAlertTone>('info');\n readonly variant = input<C2gAlertVariant>('soft');\n readonly title = input('Hinweis');\n readonly message = input('');\n readonly open = input<boolean | undefined>(undefined);\n readonly dismissible = input(false);\n readonly closeLabel = input('Hinweis schliessen');\n\n readonly dismissed = output<void>();\n\n readonly internalVisible = signal(true);\n readonly visible = computed(() => {\n const externallyControlled = this.open();\n return externallyControlled === undefined ? this.internalVisible() : externallyControlled;\n });\n\n readonly liveRole = computed(() => (this.tone() === 'danger' || this.tone() === 'warning' ? 'alert' : 'status'));\n readonly ariaLive = computed(() => (this.liveRole() === 'alert' ? 'assertive' : 'polite'));\n readonly iconSymbol = computed(() => {\n switch (this.tone()) {\n case 'success':\n return 'v';\n case 'warning':\n return '!';\n case 'danger':\n return 'x';\n default:\n return 'i';\n }\n });\n\n dismiss(): void {\n if (this.open() === undefined) {\n this.internalVisible.set(false);\n }\n this.dismissed.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type C2gProgressTone = 'primary' | 'success' | 'warning' | 'danger';\nexport type C2gProgressSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'c2g-progress',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"c2g-progress\" [class.c2g-progress--indeterminate]=\"indeterminate()\">\n @if (showLabel()) {\n <div class=\"c2g-progress__meta\">\n <span class=\"c2g-progress__label\">{{ label() }}</span>\n @if (!indeterminate()) {\n <span class=\"c2g-progress__value\">{{ percentLabel() }}</span>\n }\n </div>\n }\n\n <div\n class=\"c2g-progress__track\"\n role=\"progressbar\"\n [class.c2g-progress__track--sm]=\"size() === 'sm'\"\n [class.c2g-progress__track--md]=\"size() === 'md'\"\n [class.c2g-progress__track--lg]=\"size() === 'lg'\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n [attr.aria-valuemin]=\"indeterminate() ? null : 0\"\n [attr.aria-valuemax]=\"indeterminate() ? null : safeMax()\"\n [attr.aria-valuenow]=\"indeterminate() ? null : clampedValue()\"\n >\n <span\n class=\"c2g-progress__bar\"\n [class.c2g-progress__bar--primary]=\"tone() === 'primary'\"\n [class.c2g-progress__bar--success]=\"tone() === 'success'\"\n [class.c2g-progress__bar--warning]=\"tone() === 'warning'\"\n [class.c2g-progress__bar--danger]=\"tone() === 'danger'\"\n [class.c2g-progress__bar--striped]=\"striped()\"\n [class.c2g-progress__bar--animated]=\"animated()\"\n [style.width.%]=\"indeterminate() ? 38 : percent()\"\n ></span>\n </div>\n </div>\n `,\n styles: `\n .c2g-progress {\n display: grid;\n gap: var(--c2g-space-2, 0.5rem);\n width: 100%;\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n .c2g-progress__meta {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--c2g-space-3, 0.75rem);\n font-size: var(--c2g-font-size-xs, 0.75rem);\n color: var(--c2g-color-text-secondary, #4a423b);\n }\n .c2g-progress__label {\n font-weight: var(--c2g-font-weight-semibold, 600);\n }\n .c2g-progress__track {\n width: 100%;\n border-radius: 999px;\n overflow: hidden;\n background: color-mix(in srgb, var(--c2g-color-neutral-200, #e1d9ce) 70%, #ffffff);\n }\n .c2g-progress__track--sm {\n height: 0.375rem;\n }\n .c2g-progress__track--md {\n height: 0.625rem;\n }\n .c2g-progress__track--lg {\n height: 0.875rem;\n }\n .c2g-progress__bar {\n display: block;\n height: 100%;\n width: 0;\n border-radius: inherit;\n transition: width 220ms ease;\n background: var(--c2g-color-primary, #ff6b35);\n }\n .c2g-progress__bar--primary {\n background: var(--c2g-color-primary, #ff6b35);\n }\n .c2g-progress__bar--success {\n background: #43b581;\n }\n .c2g-progress__bar--warning {\n background: #ffb020;\n }\n .c2g-progress__bar--danger {\n background: #ef4444;\n }\n .c2g-progress__bar--striped {\n background-image: linear-gradient(\n 45deg,\n color-mix(in srgb, #ffffff 18%, transparent) 25%,\n transparent 25%,\n transparent 50%,\n color-mix(in srgb, #ffffff 18%, transparent) 50%,\n color-mix(in srgb, #ffffff 18%, transparent) 75%,\n transparent 75%,\n transparent\n );\n background-size: 1rem 1rem;\n }\n .c2g-progress__bar--animated {\n animation: c2g-progress-shift 900ms linear infinite;\n }\n .c2g-progress--indeterminate .c2g-progress__bar {\n animation: c2g-progress-indeterminate 1.2s ease-in-out infinite;\n transform-origin: left center;\n }\n @keyframes c2g-progress-shift {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n }\n @keyframes c2g-progress-indeterminate {\n 0% {\n transform: translateX(-120%);\n }\n 50% {\n transform: translateX(120%);\n }\n 100% {\n transform: translateX(220%);\n }\n }\n `,\n})\nexport class ProgressComponent {\n readonly value = input(0);\n readonly max = input(100);\n readonly size = input<C2gProgressSize>('md');\n readonly tone = input<C2gProgressTone>('primary');\n readonly label = input('Fortschritt');\n readonly ariaLabel = input('');\n readonly showLabel = input(true);\n readonly striped = input(false);\n readonly animated = input(false);\n readonly indeterminate = input(false);\n\n readonly safeMax = computed(() => (this.max() > 0 ? this.max() : 100));\n readonly clampedValue = computed(() => {\n const next = this.value();\n return Math.min(Math.max(next, 0), this.safeMax());\n });\n readonly percent = computed(() => (this.clampedValue() / this.safeMax()) * 100);\n readonly percentLabel = computed(() => `${Math.round(this.percent())}%`);\n readonly resolvedAriaLabel = computed(() => {\n const explicit = this.ariaLabel().trim();\n if (explicit) {\n return explicit;\n }\n const fromLabel = this.label().trim();\n return fromLabel || 'Fortschritt';\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet nextInputId = 0;\n\n@Component({\n selector: 'c2g-input',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true,\n },\n ],\n template: `\n <div class=\"c2g-field\">\n @if (label().trim()) {\n <label class=\"c2g-field__label\" [attr.for]=\"inputId()\">\n {{ label() }}\n @if (required()) {\n <span class=\"c2g-field__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"c2g-field__control-shell\" [class.c2g-field__control-shell--error]=\"!!error().trim()\">\n @if (prefix().trim()) {\n <span class=\"c2g-field__affix\" aria-hidden=\"true\">{{ prefix() }}</span>\n }\n\n <input\n class=\"c2g-field__control\"\n [id]=\"inputId()\"\n [type]=\"type()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.maxlength]=\"maxLength() || null\"\n [attr.aria-invalid]=\"error().trim() ? 'true' : null\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n @if (loading()) {\n <span class=\"c2g-field__spinner\" aria-hidden=\"true\"></span>\n }\n\n @if (suffix().trim()) {\n <span class=\"c2g-field__affix\" aria-hidden=\"true\">{{ suffix() }}</span>\n }\n </div>\n\n <div class=\"c2g-field__meta\">\n @if (error().trim()) {\n <p class=\"c2g-field__message c2g-field__message--error\" [id]=\"errorId()\">{{ error() }}</p>\n } @else if (hint().trim()) {\n <p class=\"c2g-field__message\" [id]=\"hintId()\">{{ hint() }}</p>\n }\n\n @if (showCounter()) {\n <span class=\"c2g-field__counter\" [id]=\"counterId()\">{{ valueLength() }} / {{ maxLength() }}</span>\n }\n </div>\n </div>\n `,\n styles: `\n .c2g-field {\n width: 100%;\n display: grid;\n gap: var(--c2g-space-2, 0.5rem);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n .c2g-field__label {\n color: var(--c2g-color-text-secondary, #4a423b);\n font-weight: var(--c2g-font-weight-semibold, 600);\n font-size: var(--c2g-font-size-sm, 0.875rem);\n display: inline-flex;\n align-items: center;\n gap: var(--c2g-space-1, 0.25rem);\n }\n .c2g-field__required {\n color: var(--c2g-color-error, #ff6b6b);\n line-height: 1;\n }\n .c2g-field__control-shell {\n min-height: 2.75rem;\n border: 1px solid var(--c2g-color-border-subtle, rgba(74, 66, 59, 0.18));\n border-radius: var(--c2g-radius-md, 0.625rem);\n background: var(--c2g-color-surface, #ffffff);\n display: flex;\n align-items: center;\n gap: var(--c2g-space-2, 0.5rem);\n padding: 0 var(--c2g-space-3, 0.75rem);\n transition:\n border-color var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease),\n box-shadow var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease);\n }\n .c2g-field__control-shell:focus-within {\n border-color: var(--c2g-color-focus, #e55623);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--c2g-color-focus, #e55623) 20%, transparent);\n }\n .c2g-field__control-shell--error {\n border-color: var(--c2g-color-error, #ff6b6b);\n }\n .c2g-field__control {\n width: 100%;\n min-width: 0;\n border: none;\n background: transparent;\n color: var(--c2g-color-text-primary, #1a1714);\n font-size: var(--c2g-font-size-md, 1rem);\n line-height: 1.4;\n outline: none;\n padding: 0;\n }\n .c2g-field__control::placeholder {\n color: var(--c2g-color-text-muted, #6b5e52);\n }\n .c2g-field__control:disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n .c2g-field__affix {\n color: var(--c2g-color-text-muted, #6b5e52);\n font-size: var(--c2g-font-size-sm, 0.875rem);\n white-space: nowrap;\n }\n .c2g-field__spinner {\n width: 1rem;\n height: 1rem;\n border: 2px solid var(--c2g-color-primary, #ff6b35);\n border-right-color: transparent;\n border-radius: 999px;\n animation: c2g-field-spin 0.8s linear infinite;\n flex: 0 0 auto;\n }\n .c2g-field__meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--c2g-space-2, 0.5rem);\n min-height: 1.25rem;\n }\n .c2g-field__message {\n margin: 0;\n font-size: var(--c2g-font-size-xs, 0.75rem);\n color: var(--c2g-color-text-muted, #6b5e52);\n }\n .c2g-field__message--error {\n color: var(--c2g-color-error, #ff6b6b);\n }\n .c2g-field__counter {\n margin-left: auto;\n font-size: var(--c2g-font-size-xs, 0.75rem);\n color: var(--c2g-color-text-muted, #6b5e52);\n font-variant-numeric: tabular-nums;\n }\n @keyframes c2g-field-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `,\n})\nexport class InputComponent implements ControlValueAccessor {\n readonly label = input('');\n readonly hint = input('');\n readonly error = input('');\n readonly placeholder = input('');\n readonly prefix = input('');\n readonly suffix = input('');\n readonly loading = input(false);\n readonly disabled = input(false);\n readonly required = input(false);\n readonly maxLength = input<number | null>(null);\n readonly id = input('');\n readonly type = input<'text' | 'email' | 'password' | 'search' | 'tel' | 'url'>('text');\n\n readonly valueChanged = output<string>();\n\n readonly value = signal('');\n readonly cvaDisabled = signal(false);\n private readonly generatedId = `c2g-input-${++nextInputId}`;\n\n readonly inputId = computed(() => this.id().trim() || this.generatedId);\n readonly hintId = computed(() => `${this.inputId()}-hint`);\n readonly errorId = computed(() => `${this.inputId()}-error`);\n readonly counterId = computed(() => `${this.inputId()}-counter`);\n readonly describedBy = computed(() => {\n const ids: string[] = [];\n if (this.error().trim()) {\n ids.push(this.errorId());\n } else if (this.hint().trim()) {\n ids.push(this.hintId());\n }\n if (this.showCounter()) {\n ids.push(this.counterId());\n }\n return ids.length > 0 ? ids.join(' ') : null;\n });\n readonly valueLength = computed(() => this.value().length);\n readonly showCounter = computed(() => (this.maxLength() ?? 0) > 0);\n readonly isDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: string | null): void {\n this.value.set(value ?? '');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n onInput(event: Event): void {\n const nextValue = (event.target as HTMLInputElement).value;\n this.value.set(nextValue);\n this.onChange(nextValue);\n this.valueChanged.emit(nextValue);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioOption } from './radio-group.model';\n\nlet nextRadioGroupId = 0;\n\n@Component({\n selector: 'c2g-radio-group',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n template: `\n <fieldset class=\"c2g-radio-group\" [disabled]=\"isDisabled()\">\n @if (label().trim()) {\n <legend class=\"c2g-radio-group__legend\">{{ label() }}</legend>\n }\n\n <div class=\"c2g-radio-group__options\" [class.c2g-radio-group__options--vertical]=\"orientation() === 'vertical'\">\n @for (option of options(); track option.value) {\n <label class=\"c2g-radio-group__option\" [class.c2g-radio-group__option--disabled]=\"isOptionDisabled(option)\">\n <input\n type=\"radio\"\n class=\"c2g-radio-group__input\"\n [name]=\"groupName()\"\n [value]=\"option.value\"\n [checked]=\"value() === option.value\"\n [disabled]=\"isDisabled() || !!option.disabled\"\n (change)=\"selectOption(option.value)\"\n (blur)=\"onBlur()\"\n />\n <span class=\"c2g-radio-group__dot\" aria-hidden=\"true\"></span>\n <span class=\"c2g-radio-group__text\">{{ option.label }}</span>\n </label>\n }\n </div>\n\n @if (hint().trim()) {\n <p class=\"c2g-radio-group__hint\">{{ hint() }}</p>\n }\n </fieldset>\n `,\n styles: `\n .c2g-radio-group {\n border: 0;\n margin: 0;\n padding: 0;\n min-width: 0;\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n .c2g-radio-group__legend {\n padding: 0;\n margin-bottom: var(--c2g-space-2, 0.5rem);\n font-size: var(--c2g-font-size-sm, 0.875rem);\n font-weight: var(--c2g-font-weight-semibold, 600);\n color: var(--c2g-color-text-secondary, #4a423b);\n }\n .c2g-radio-group__options {\n display: flex;\n gap: var(--c2g-space-3, 0.75rem);\n flex-wrap: wrap;\n }\n .c2g-radio-group__options--vertical {\n flex-direction: column;\n align-items: flex-start;\n }\n .c2g-radio-group__option {\n display: inline-flex;\n align-items: center;\n gap: var(--c2g-space-2, 0.5rem);\n cursor: pointer;\n color: var(--c2g-color-text-primary, #1a1714);\n user-select: none;\n }\n .c2g-radio-group__option--disabled {\n cursor: not-allowed;\n opacity: 0.55;\n }\n .c2g-radio-group__input {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n }\n .c2g-radio-group__dot {\n width: 1.125rem;\n height: 1.125rem;\n border-radius: 999px;\n border: 1px solid var(--c2g-color-border-subtle, rgba(74, 66, 59, 0.18));\n display: inline-grid;\n place-items: center;\n background: var(--c2g-color-surface, #ffffff);\n transition: all var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease);\n position: relative;\n }\n .c2g-radio-group__dot::after {\n content: '';\n width: 0.5rem;\n height: 0.5rem;\n border-radius: 999px;\n background: var(--c2g-color-primary, #ff6b35);\n transform: scale(0);\n transition: transform var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease);\n }\n .c2g-radio-group__input:checked + .c2g-radio-group__dot {\n border-color: var(--c2g-color-primary-dark, #e55623);\n }\n .c2g-radio-group__input:checked + .c2g-radio-group__dot::after {\n transform: scale(1);\n }\n .c2g-radio-group__input:focus-visible + .c2g-radio-group__dot {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--c2g-color-focus, #e55623) 24%, transparent);\n }\n .c2g-radio-group__text {\n font-size: var(--c2g-font-size-sm, 0.875rem);\n }\n .c2g-radio-group__hint {\n margin: var(--c2g-space-2, 0.5rem) 0 0;\n color: var(--c2g-color-text-muted, #6b5e52);\n font-size: var(--c2g-font-size-xs, 0.75rem);\n }\n `,\n})\nexport class RadioGroupComponent<T extends string = string> implements ControlValueAccessor {\n readonly label = input('');\n readonly hint = input('');\n readonly disabled = input(false);\n readonly orientation = input<'horizontal' | 'vertical'>('vertical');\n readonly options = input<RadioOption<T>[]>([]);\n readonly name = input('');\n\n readonly valueChange = output<T>();\n\n readonly value = signal<T | null>(null);\n readonly cvaDisabled = signal(false);\n private readonly generatedName = `c2g-radio-group-${++nextRadioGroupId}`;\n\n readonly groupName = computed(() => this.name().trim() || this.generatedName);\n readonly isDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (value: T) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: T | null): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n isOptionDisabled(option: RadioOption<T>): boolean {\n return this.isDisabled() || !!option.disabled;\n }\n\n selectOption(next: T): void {\n if (this.isDisabled()) {\n return;\n }\n this.value.set(next);\n this.onChange(next);\n this.valueChange.emit(next);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectOption, SelectValue } from './select.model';\n\nlet nextSelectId = 0;\n\n@Component({\n selector: 'c2g-select',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n template: `\n <div class=\"c2g-field\">\n @if (label().trim()) {\n <label class=\"c2g-field__label\" [attr.for]=\"selectId()\">\n {{ label() }}\n @if (required()) {\n <span class=\"c2g-field__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"c2g-field__control-shell\" [class.c2g-field__control-shell--error]=\"!!error().trim()\">\n <select\n class=\"c2g-field__control c2g-select__input\"\n [id]=\"selectId()\"\n [value]=\"value() || ''\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.aria-invalid]=\"error().trim() ? 'true' : null\"\n [attr.aria-describedby]=\"describedBy()\"\n (change)=\"onSelect($event)\"\n (blur)=\"onBlur()\"\n >\n @if (placeholder().trim()) {\n <option value=\"\">{{ placeholder() }}</option>\n }\n @for (option of options(); track option.value) {\n <option [value]=\"option.value\" [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n </select>\n </div>\n\n <div class=\"c2g-field__meta\">\n @if (error().trim()) {\n <p class=\"c2g-field__message c2g-field__message--error\" [id]=\"errorId()\">{{ error() }}</p>\n } @else if (hint().trim()) {\n <p class=\"c2g-field__message\" [id]=\"hintId()\">{{ hint() }}</p>\n }\n </div>\n </div>\n `,\n styles: `\n .c2g-field {\n width: 100%;\n display: grid;\n gap: var(--c2g-space-2, 0.5rem);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n\n .c2g-field__label {\n color: var(--c2g-color-text-secondary, #4a423b);\n font-weight: var(--c2g-font-weight-semibold, 600);\n font-size: var(--c2g-font-size-sm, 0.875rem);\n display: inline-flex;\n align-items: center;\n gap: var(--c2g-space-1, 0.25rem);\n }\n\n .c2g-field__required {\n color: var(--c2g-color-error, #ff6b6b);\n line-height: 1;\n }\n\n .c2g-field__control-shell {\n min-height: 2.75rem;\n border: 1px solid var(--c2g-color-border-subtle, rgba(74, 66, 59, 0.18));\n border-radius: var(--c2g-radius-md, 0.625rem);\n background: var(--c2g-color-surface, #ffffff);\n display: flex;\n align-items: center;\n gap: var(--c2g-space-2, 0.5rem);\n padding: 0 var(--c2g-space-3, 0.75rem);\n transition: border-color 120ms ease, box-shadow 120ms ease;\n }\n\n .c2g-field__control-shell:focus-within {\n border-color: var(--c2g-color-focus, #e55623);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--c2g-color-focus, #e55623) 20%, transparent);\n }\n\n .c2g-field__control-shell--error {\n border-color: var(--c2g-color-error, #ff6b6b);\n }\n\n .c2g-field__control {\n width: 100%;\n min-width: 0;\n border: none;\n background: transparent;\n color: var(--c2g-color-text-primary, #1a1714);\n font-size: var(--c2g-font-size-md, 1rem);\n line-height: 1.4;\n outline: none;\n padding: 0;\n font-family: inherit;\n }\n\n .c2g-field__control::placeholder {\n color: var(--c2g-color-text-muted, #6b5e52);\n }\n\n .c2g-field__control:disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n .c2g-field__meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--c2g-space-2, 0.5rem);\n min-height: 1.25rem;\n }\n\n .c2g-field__message {\n margin: 0;\n font-size: var(--c2g-font-size-xs, 0.75rem);\n color: var(--c2g-color-text-muted, #6b5e52);\n }\n\n .c2g-field__message--error {\n color: var(--c2g-color-error, #ff6b6b);\n }\n\n .c2g-select__input {\n appearance: none;\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"6 9 12 15 18 9\"></polyline></svg>');\n background-repeat: no-repeat;\n background-position: right var(--c2g-space-3, 0.75rem) center;\n background-size: 1.25rem;\n padding-right: calc(1.25rem + var(--c2g-space-4, 1rem));\n }\n\n .c2g-select__input:disabled {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(107,94,82,0.5)\" stroke-width=\"2\"><polyline points=\"6 9 12 15 18 9\"></polyline></svg>');\n }\n `,\n})\nexport class SelectComponent<T extends string = string> implements ControlValueAccessor {\n readonly label = input('');\n readonly placeholder = input('');\n readonly hint = input('');\n readonly error = input('');\n readonly options = input<SelectOption<T>[]>([]);\n readonly disabled = input(false);\n readonly required = input(false);\n readonly id = input('');\n\n readonly valueChanged = output<T | null>();\n\n readonly value = signal<T | null>(null);\n readonly cvaDisabled = signal(false);\n private readonly generatedId = `c2g-select-${++nextSelectId}`;\n\n readonly selectId = computed(() => this.id().trim() || this.generatedId);\n readonly hintId = computed(() => `${this.selectId()}-hint`);\n readonly errorId = computed(() => `${this.selectId()}-error`);\n readonly describedBy = computed(() => {\n const ids: string[] = [];\n if (this.error().trim()) {\n ids.push(this.errorId());\n } else if (this.hint().trim()) {\n ids.push(this.hintId());\n }\n return ids.length > 0 ? ids.join(' ') : null;\n });\n readonly isDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (value: T | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: T | null): void {\n this.value.set(value ?? null);\n }\n\n registerOnChange(fn: (value: T | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n onSelect(event: Event): void {\n const nextValue = (event.target as HTMLSelectElement).value as T | '';\n const typedValue: T | null = nextValue ? nextValue : null;\n this.value.set(typedValue);\n this.onChange(typedValue);\n this.valueChanged.emit(typedValue);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet nextSwitchId = 0;\n\n@Component({\n selector: 'c2g-switch',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n template: `\n <div class=\"c2g-switch\">\n <button\n type=\"button\"\n class=\"c2g-switch__control\"\n role=\"switch\"\n [id]=\"switchId()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-checked]=\"checked() ? 'true' : 'false'\"\n [attr.aria-describedby]=\"describedBy()\"\n [class.c2g-switch__control--checked]=\"checked()\"\n (click)=\"toggle()\"\n (blur)=\"markTouched()\"\n >\n <span class=\"c2g-switch__thumb\"></span>\n </button>\n\n <label class=\"c2g-switch__label\" [attr.for]=\"switchId()\">{{ label() }}</label>\n </div>\n\n @if (hint().trim()) {\n <p class=\"c2g-switch__hint\" [id]=\"hintId()\">{{ hint() }}</p>\n }\n `,\n styles: `\n .c2g-switch {\n display: inline-flex;\n align-items: center;\n gap: var(--c2g-space-3, 0.75rem);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n .c2g-switch__control {\n width: 2.75rem;\n height: 1.625rem;\n padding: 0.125rem;\n border: 1px solid var(--c2g-color-border-subtle, rgba(74, 66, 59, 0.18));\n border-radius: 999px;\n background: var(--c2g-color-neutral-200, #e1d9ce);\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n cursor: pointer;\n transition: all var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease);\n }\n .c2g-switch__control--checked {\n background: var(--c2g-color-primary, #ff6b35);\n border-color: var(--c2g-color-primary-dark, #e55623);\n justify-content: flex-end;\n }\n .c2g-switch__control:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--c2g-color-focus, #e55623) 24%, transparent);\n }\n .c2g-switch__control:disabled {\n cursor: not-allowed;\n opacity: 0.55;\n }\n .c2g-switch__thumb {\n width: 1.125rem;\n height: 1.125rem;\n border-radius: 999px;\n background: var(--c2g-color-surface, #ffffff);\n box-shadow: var(--c2g-shadow-sm, 0 0 3px rgba(31, 28, 25, 0.06));\n }\n .c2g-switch__label {\n color: var(--c2g-color-text-primary, #1a1714);\n font-size: var(--c2g-font-size-sm, 0.875rem);\n user-select: none;\n }\n .c2g-switch__hint {\n margin: var(--c2g-space-1, 0.25rem) 0 0;\n color: var(--c2g-color-text-muted, #6b5e52);\n font-size: var(--c2g-font-size-xs, 0.75rem);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n `,\n})\nexport class SwitchComponent implements ControlValueAccessor {\n readonly id = input('');\n readonly label = input('Toggle');\n readonly hint = input('');\n readonly disabled = input(false);\n\n readonly checkedChange = output<boolean>();\n\n readonly checked = signal(false);\n readonly cvaDisabled = signal(false);\n private readonly generatedId = `c2g-switch-${++nextSwitchId}`;\n\n readonly switchId = computed(() => this.id().trim() || this.generatedId);\n readonly hintId = computed(() => `${this.switchId()}-hint`);\n readonly describedBy = computed(() => (this.hint().trim() ? this.hintId() : null));\n readonly isDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: boolean | null): void {\n this.checked.set(!!value);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n toggle(): void {\n if (this.isDisabled()) {\n return;\n }\n const next = !this.checked();\n this.checked.set(next);\n this.onChange(next);\n this.checkedChange.emit(next);\n this.onTouched();\n }\n\n markTouched(): void {\n this.onTouched();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport type TagTone = 'neutral' | 'accent' | 'info' | 'success' | 'warning' | 'danger';\nexport type TagVariant = 'subtle' | 'solid' | 'outline';\nexport type TagSize = 'sm' | 'md';\n\n@Component({\n selector: 'c2g-tag',\n standalone: true,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <span class=\"c2g-tag\" [class]=\"classes()\" [attr.aria-label]=\"ariaLabel() || null\">\n @if (icon() || iconFontIcon()) {\n <mat-icon\n class=\"c2g-tag__icon\"\n [fontSet]=\"iconFontSet()\"\n [fontIcon]=\"iconFontIcon()\"\n [attr.aria-label]=\"iconAriaLabel() || null\"\n [attr.aria-hidden]=\"iconAriaLabel() ? null : 'true'\"\n >\n {{ icon() }}\n </mat-icon>\n }\n <span>{{ label() }}</span>\n </span>\n `,\n styles: `\n .c2g-tag {\n display: inline-flex;\n align-items: center;\n gap: var(--c2g-space-1, 0.25rem);\n border-radius: 999px;\n border: 1px solid transparent;\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n font-weight: var(--c2g-font-weight-medium, 500);\n line-height: 1;\n white-space: nowrap;\n }\n .c2g-tag--sm {\n padding: 0.2rem 0.45rem;\n font-size: 0.6875rem;\n }\n .c2g-tag--md {\n padding: 0.3rem 0.6rem;\n font-size: var(--c2g-font-size-xs, 0.75rem);\n }\n .c2g-tag__icon {\n width: 0.875rem;\n height: 0.875rem;\n font-size: 0.8125rem;\n line-height: 1;\n }\n\n .c2g-tag--subtle.c2g-tag--neutral {\n background: color-mix(in srgb, var(--c2g-color-text-secondary, #4a423b) 10%, #ffffff);\n color: var(--c2g-color-text-secondary, #4a423b);\n }\n .c2g-tag--subtle.c2g-tag--accent,\n .c2g-tag--subtle.c2g-tag--info {\n background: color-mix(in srgb, #1565c0 12%, #ffffff);\n color: #0d47a1;\n }\n .c2g-tag--subtle.c2g-tag--success {\n background: color-mix(in srgb, #2e7d32 12%, #ffffff);\n color: #1b5e20;\n }\n .c2g-tag--subtle.c2g-tag--warning {\n background: color-mix(in srgb, #ef6c00 14%, #ffffff);\n color: #e65100;\n }\n .c2g-tag--subtle.c2g-tag--danger {\n background: color-mix(in srgb, #c62828 13%, #ffffff);\n color: #b71c1c;\n }\n\n .c2g-tag--solid.c2g-tag--neutral {\n background: var(--c2g-color-text-secondary, #4a423b);\n color: #ffffff;\n }\n .c2g-tag--solid.c2g-tag--accent,\n .c2g-tag--solid.c2g-tag--info {\n background: #1565c0;\n color: #ffffff;\n }\n .c2g-tag--solid.c2g-tag--success {\n background: #2e7d32;\n color: #ffffff;\n }\n .c2g-tag--solid.c2g-tag--warning {\n background: #ef6c00;\n color: #ffffff;\n }\n .c2g-tag--solid.c2g-tag--danger {\n background: #c62828;\n color: #ffffff;\n }\n\n .c2g-tag--outline.c2g-tag--neutral {\n border-color: color-mix(in srgb, var(--c2g-color-text-secondary, #4a423b) 35%, transparent);\n color: var(--c2g-color-text-secondary, #4a423b);\n background: transparent;\n }\n .c2g-tag--outline.c2g-tag--accent,\n .c2g-tag--outline.c2g-tag--info {\n border-color: color-mix(in srgb, #1565c0 38%, transparent);\n color: #0d47a1;\n background: transparent;\n }\n .c2g-tag--outline.c2g-tag--success {\n border-color: color-mix(in srgb, #2e7d32 38%, transparent);\n color: #1b5e20;\n background: transparent;\n }\n .c2g-tag--outline.c2g-tag--warning {\n border-color: color-mix(in srgb, #ef6c00 38%, transparent);\n color: #e65100;\n background: transparent;\n }\n .c2g-tag--outline.c2g-tag--danger {\n border-color: color-mix(in srgb, #c62828 38%, transparent);\n color: #b71c1c;\n background: transparent;\n }\n `,\n})\nexport class TagComponent {\n readonly label = input('Tag');\n readonly tone = input<TagTone>('neutral');\n readonly variant = input<TagVariant>('subtle');\n readonly size = input<TagSize>('md');\n readonly ariaLabel = input('');\n\n readonly icon = input('');\n readonly iconAriaLabel = input('');\n readonly iconFontSet = input('');\n readonly iconFontIcon = input('');\n\n readonly classes = computed(\n () => `c2g-tag c2g-tag--${this.size()} c2g-tag--${this.variant()} c2g-tag--${this.tone()}`\n );\n}","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet nextTextareaId = 0;\n\n@Component({\n selector: 'c2g-textarea',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true,\n },\n ],\n template: `\n <div class=\"c2g-field\">\n @if (label().trim()) {\n <label class=\"c2g-field__label\" [attr.for]=\"textareaId()\">\n {{ label() }}\n @if (required()) {\n <span class=\"c2g-field__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"c2g-field__control-shell\" [class.c2g-field__control-shell--error]=\"!!error().trim()\">\n @if (prefix().trim()) {\n <span class=\"c2g-field__affix\" aria-hidden=\"true\">{{ prefix() }}</span>\n }\n\n <textarea\n class=\"c2g-field__control\"\n [id]=\"textareaId()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.maxlength]=\"maxLength() || null\"\n [rows]=\"rows()\"\n [attr.aria-invalid]=\"error().trim() ? 'true' : null\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n\n @if (loading()) {\n <span class=\"c2g-field__spinner\" aria-hidden=\"true\"></span>\n }\n\n @if (suffix().trim()) {\n <span class=\"c2g-field__affix\" aria-hidden=\"true\">{{ suffix() }}</span>\n }\n </div>\n\n <div class=\"c2g-field__meta\">\n @if (error().trim()) {\n <p class=\"c2g-field__message c2g-field__message--error\" [id]=\"errorId()\">{{ error() }}</p>\n } @else if (hint().trim()) {\n <p class=\"c2g-field__message\" [id]=\"hintId()\">{{ hint() }}</p>\n }\n\n @if (showCounter()) {\n <span class=\"c2g-field__counter\" [id]=\"counterId()\">{{ valueLength() }} / {{ maxLength() }}</span>\n }\n </div>\n </div>\n `,\n styles: `\n .c2g-field {\n width: 100%;\n display: grid;\n gap: var(--c2g-space-2, 0.5rem);\n font-family: var(--c2g-font-family-base, \"Quicksand\", \"Segoe UI\", sans-serif);\n }\n .c2g-field__label {\n color: var(--c2g-color-text-secondary, #4a423b);\n font-weight: var(--c2g-font-weight-semibold, 600);\n font-size: var(--c2g-font-size-sm, 0.875rem);\n display: inline-flex;\n align-items: center;\n gap: var(--c2g-space-1, 0.25rem);\n }\n .c2g-field__required {\n color: var(--c2g-color-error, #ff6b6b);\n line-height: 1;\n }\n .c2g-field__control-shell {\n border: 1px solid var(--c2g-color-border-subtle, rgba(74, 66, 59, 0.18));\n border-radius: var(--c2g-radius-md, 0.625rem);\n background: var(--c2g-color-surface, #ffffff);\n display: flex;\n align-items: flex-start;\n gap: var(--c2g-space-2, 0.5rem);\n padding: var(--c2g-space-2, 0.5rem) var(--c2g-space-3, 0.75rem);\n transition:\n border-color var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease),\n box-shadow var(--c2g-motion-duration-fast, 120ms) var(--c2g-motion-ease-standard, ease);\n }\n .c2g-field__control-shell:focus-within {\n border-color: var(--c2g-color-focus, #e55623);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--c2g-color-focus, #e55623) 20%, transparent);\n }\n .c2g-field__control-shell--error {\n border-color: var(--c2g-color-error, #ff6b6b);\n }\n .c2g-field__control {\n width: 100%;\n min-width: 0;\n border: none;\n background: transparent;\n color: var(--c2g-color-text-primary, #1a1714);\n font-size: var(--c2g-font-size-md, 1rem);\n line-height: 1.4;\n outline: none;\n resize: vertical;\n min-height: 5.5rem;\n padding: 0;\n margin: 0;\n font-family: inherit;\n }\n .c2g-field__control::placeholder {\n color: var(--c2g-color-text-muted, #6b5e52);\n }\n .c2g-field__control:disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n .c2g-field__affix {\n color: var(--c2g-color-text-muted, #6b5e52);\n font-size: var(--c2g-font-size-sm, 0.875rem);\n line-height: 1.5;\n white-space: nowrap;\n margin-top: var(--c2g-space-1, 0.25rem);\n }\n .c2g-field__spinner {\n width: 1rem;\n height: 1rem;\n border: 2px solid var(--c2g-color-primary, #ff6b35);\n border-right-color: transparent;\n border-radius: 999px;\n animation: c2g-field-spin 0.8s linear infinite;\n flex: 0 0 auto;\n margin-top: var(--c2g-space-1, 0.25rem);\n }\n .c2g-field__meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--c2g-space-2, 0.5rem);\n min-height: 1.25rem;\n }\n .c2g-field__message {\n margin: 0;\n font-size: var(--c2g-font-size-xs, 0.75rem);\n color: var(--c2g-color-text-muted, #6b5e52);\n }\n .c2g-field__message--error {\n color: var(--c2g-color-error, #ff6b6b);\n }\n .c2g-field__counter {\n margin-left: auto;\n font-size: var(--c2g-font-size-xs, 0.75rem);\n color: var(--c2g-color-text-muted, #6b5e52);\n font-variant-numeric: tabular-nums;\n }\n @keyframes c2g-field-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `,\n})\nexport class TextareaComponent implements ControlValueAccessor {\n readonly label = input('');\n readonly hint = input('');\n readonly error = input('');\n readonly placeholder = input('');\n readonly prefix = input('');\n readonly suffix = input('');\n readonly loading = input(false);\n readonly disabled = input(false);\n readonly required = input(false);\n readonly maxLength = input<number | null>(null);\n readonly rows = input(4);\n readonly id = input('');\n\n readonly valueChanged = output<string>();\n\n readonly value = signal('');\n readonly cvaDisabled = signal(false);\n private readonly generatedId = `c2g-textarea-${++nextTextareaId}`;\n\n readonly textareaId = computed(() => this.id().trim() || this.generatedId);\n readonly hintId = computed(() => `${this.textareaId()}-hint`);\n readonly errorId = computed(() => `${this.textareaId()}-error`);\n readonly counterId = computed(() => `${this.textareaId()}-counter`);\n readonly describedBy = computed(() => {\n const ids: string[] = [];\n if (this.error().trim()) {\n ids.push(this.errorId());\n } else if (this.hint().trim()) {\n ids.push(this.hintId());\n }\n if (this.showCounter()) {\n ids.push(this.counterId());\n }\n return ids.length > 0 ? ids.join(' ') : null;\n });\n readonly valueLength = computed(() => this.value().length);\n readonly showCounter = computed(() => (this.maxLength() ?? 0) > 0);\n readonly isDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: string | null): void {\n this.value.set(value ?? '');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n onInput(event: Event): void {\n const nextValue = (event.target as HTMLTextAreaElement).value;\n this.value.set(nextValue);\n this.onChange(nextValue);\n this.valueChanged.emit(nextValue);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n output,\n DOCUMENT\n} from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ModalSize } from './modal.models';\n\n@Component({\n selector: 'c2g-modal',\n standalone: true,\n imports: [A11yModule],\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ModalComponent {\n private readonly document = inject(DOCUMENT);\n\n readonly open = input(false);\n readonly title = input('');\n readonly size = input<ModalSize>('md');\n readonly closable = input(true);\n readonly lockBodyScroll = input(true);\n readonly ariaLabel = input('');\n\n readonly closed = output<void>();\n\n readonly effectiveAriaLabel = computed(() => this.ariaLabel() || this.title() || 'Dialog');\n\n readonly sizeClass = computed(() => `c2g-modal__panel--${this.size()}`);\n\n constructor() {\n effect(() => {\n this.document.body.style.overflow = this.open() && this.lockBodyScroll() ? 'hidden' : '';\n });\n }\n\n close(): void {\n if (!this.closable()) return;\n this.closed.emit();\n }\n\n onBackdropClick(event: MouseEvent): void {\n if ((event.target as HTMLElement).classList.contains('c2g-modal__backdrop')) {\n this.close();\n }\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.close();\n }\n }\n}\n","@if (open()) {\n <div\n class=\"c2g-modal__backdrop\"\n role=\"presentation\"\n (click)=\"onBackdropClick($event)\"\n (keydown)=\"onKeydown($event)\">\n <div\n class=\"c2g-modal__panel\"\n [class]=\"sizeClass()\"\n role=\"dialog\"\n [attr.aria-label]=\"effectiveAriaLabel()\"\n [attr.aria-modal]=\"true\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture>\n\n @if (title()) {\n <div class=\"c2g-modal__header\">\n <h2 class=\"c2g-modal__title\">{{ title() }}</h2>\n @if (closable()) {\n <button\n class=\"c2g-modal__close\"\n type=\"button\"\n aria-label=\"Schließen\"\n (click)=\"close()\">\n ✕\n </button>\n }\n </div>\n }\n\n <div class=\"c2g-modal__body\">\n <ng-content />\n </div>\n\n <ng-content select=\"[c2g-modal-footer]\" />\n </div>\n </div>\n}\n","import { Injectable, signal } from '@angular/core';\nimport { C2gToast, C2gToastTone } from './toast.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n readonly toasts = signal<C2gToast[]>([]);\n\n private show(message: string, tone: C2gToastTone, duration = 4000, action?: C2gToast['action']): void {\n const id = `toast-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n this.toasts.update(list => [...list, { id, message, tone, duration, action }]);\n if (duration > 0) {\n setTimeout(() => this.dismiss(id), duration);\n }\n }\n\n success(message: string, duration?: number) { this.show(message, 'success', duration); }\n error(message: string, duration?: number) { this.show(message, 'error', duration ?? 6000); }\n warning(message: string, duration?: number) { this.show(message, 'warning', duration); }\n info(message: string, duration?: number) { this.show(message, 'info', duration); }\n\n withAction(message: string, tone: C2gToastTone, action: C2gToast['action']): void {\n this.show(message, tone, 0, action);\n }\n\n dismiss(id: string): void {\n this.toasts.update(list => list.filter(t => t.id !== id));\n }\n\n dismissAll(): void {\n this.toasts.set([]);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ToastService } from './toast.service';\n\n@Component({\n selector: 'c2g-toast-container',\n standalone: true,\n imports: [],\n templateUrl: './toast-container.component.html',\n styleUrls: ['./toast-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToastContainerComponent {\n readonly toastService = inject(ToastService);\n readonly toasts = this.toastService.toasts;\n\n dismiss(id: string): void {\n this.toastService.dismiss(id);\n }\n\n toneIcon(tone: string): string {\n switch (tone) {\n case 'success': return '✓';\n case 'error': return '✕';\n case 'warning': return '⚠';\n default: return 'ℹ';\n }\n }\n}\n","<div class=\"c2g-toast-container\" aria-live=\"polite\" aria-atomic=\"false\">\n @for (toast of toasts(); track toast.id) {\n <div\n class=\"c2g-toast\"\n [class]=\"'c2g-toast--' + toast.tone\"\n role=\"status\"\n >\n <span class=\"c2g-toast__icon\" aria-hidden=\"true\">{{ toneIcon(toast.tone) }}</span>\n <span class=\"c2g-toast__message\">{{ toast.message }}</span>\n\n @if (toast.action) {\n <button\n class=\"c2g-toast__action\"\n type=\"button\"\n (click)=\"toast.action!.callback(); dismiss(toast.id)\"\n >\n {{ toast.action.label }}\n </button>\n }\n\n <button\n class=\"c2g-toast__close\"\n type=\"button\"\n (click)=\"dismiss(toast.id)\"\n aria-label=\"Schließen\"\n >✕</button>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { ModalComponent } from '../modal/modal.component';\nimport { C2gConfirmDialogData } from './confirm-dialog.models';\n\n@Component({\n selector: 'c2g-confirm-dialog',\n standalone: true,\n imports: [ModalComponent],\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ConfirmDialogComponent {\n readonly open = input(false);\n readonly data = input.required<C2gConfirmDialogData>();\n\n readonly confirmed = output<void>();\n readonly cancelled = output<void>();\n\n readonly confirmLabel = computed(() => this.data().confirmLabel ?? 'Bestätigen');\n readonly cancelLabel = computed(() => this.data().cancelLabel ?? 'Abbrechen');\n readonly tone = computed(() => this.data().tone ?? 'info');\n}\n","<c2g-modal\n [open]=\"open()\"\n [title]=\"data().title\"\n size=\"sm\"\n (closed)=\"cancelled.emit()\"\n>\n <div class=\"c2g-confirm-dialog\">\n @if (data().icon) {\n <div class=\"c2g-confirm-dialog__icon\" [class]=\"'c2g-confirm-dialog__icon--' + tone()\">\n {{ data().icon }}\n </div>\n }\n\n <p class=\"c2g-confirm-dialog__message\">{{ data().message }}</p>\n\n <div class=\"c2g-confirm-dialog__actions\">\n <button\n class=\"c2g-confirm-dialog__btn c2g-confirm-dialog__btn--cancel\"\n type=\"button\"\n (click)=\"cancelled.emit()\"\n >\n {{ cancelLabel() }}\n </button>\n <button\n class=\"c2g-confirm-dialog__btn\"\n [class]=\"'c2g-confirm-dialog__btn--' + tone()\"\n type=\"button\"\n (click)=\"confirmed.emit()\"\n >\n {{ confirmLabel() }}\n </button>\n </div>\n </div>\n</c2g-modal>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n output,\n signal\n} from '@angular/core';\nimport { C2gDateRange } from './date-range-picker.models';\n\ninterface CalendarDay {\n date: Date;\n currentMonth: boolean;\n today: boolean;\n inRange: boolean;\n isStart: boolean;\n isEnd: boolean;\n disabled: boolean;\n}\n\nconst WEEKDAYS = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'];\nconst MONTHS = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];\n\n@Component({\n selector: 'c2g-date-range-picker',\n standalone: true,\n imports: [],\n templateUrl: './date-range-picker.component.html',\n styleUrls: ['./date-range-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DateRangePickerComponent {\n readonly value = model<C2gDateRange>({ from: null, to: null });\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n readonly placeholder = input('Zeitraum wählen');\n\n readonly rangeChanged = output<C2gDateRange>();\n\n readonly open = signal(false);\n readonly viewDate = signal(new Date());\n readonly hoverDate = signal<Date | null>(null);\n\n readonly weekdays = WEEKDAYS;\n readonly months = MONTHS;\n\n readonly monthLabel = computed(() => {\n const d = this.viewDate();\n return `${MONTHS[d.getMonth()]} ${d.getFullYear()}`;\n });\n\n readonly days = computed((): CalendarDay[] => {\n const vd = this.viewDate();\n const year = vd.getFullYear();\n const month = vd.getMonth();\n const firstDay = new Date(year, month, 1);\n const lastDay = new Date(year, month + 1, 0);\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n // Start from Monday\n const startOffset = (firstDay.getDay() + 6) % 7;\n const cells: CalendarDay[] = [];\n\n for (let i = -startOffset; i < lastDay.getDate(); i++) {\n const date = new Date(year, month, i + 1);\n date.setHours(0, 0, 0, 0);\n const { from, to } = this.value();\n const hover = this.hoverDate();\n const rangeEnd = to ?? hover;\n\n const isStart = !!from && date.getTime() === from.getTime();\n const isEnd = !!rangeEnd && date.getTime() === rangeEnd.getTime();\n const inRange = !!from && !!rangeEnd &&\n date > (from < rangeEnd ? from : rangeEnd) &&\n date < (from < rangeEnd ? rangeEnd : from);\n\n const min = this.minDate();\n const max = this.maxDate();\n const disabled = (!!min && date < min) || (!!max && date > max);\n\n cells.push({\n date,\n currentMonth: date.getMonth() === month,\n today: date.getTime() === today.getTime(),\n inRange,\n isStart,\n isEnd,\n disabled\n });\n }\n\n // Pad to full weeks\n while (cells.length % 7 !== 0) {\n const last = cells[cells.length - 1].date;\n const next = new Date(last);\n next.setDate(next.getDate() + 1);\n cells.push({ date: next, currentMonth: false, today: false, inRange: false, isStart: false, isEnd: false, disabled: true });\n }\n\n return cells;\n });\n\n readonly displayValue = computed(() => {\n const { from, to } = this.value();\n if (!from && !to) return '';\n const fmt = (d: Date) => d.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' });\n if (from && to) return `${fmt(from)} – ${fmt(to)}`;\n if (from) return `${fmt(from)} – ...`;\n return '';\n });\n\n toggleOpen(): void {\n this.open.update(v => !v);\n }\n\n closeCalendar(): void {\n this.open.set(false);\n this.hoverDate.set(null);\n }\n\n prevMonth(): void {\n this.viewDate.update(d => new Date(d.getFullYear(), d.getMonth() - 1, 1));\n }\n\n nextMonth(): void {\n this.viewDate.update(d => new Date(d.getFullYear(), d.getMonth() + 1, 1));\n }\n\n onDayClick(day: CalendarDay): void {\n if (day.disabled) return;\n const { from, to } = this.value();\n if (!from || (from && to)) {\n this.value.set({ from: day.date, to: null });\n } else {\n const range: C2gDateRange = day.date < from\n ? { from: day.date, to: from }\n : { from, to: day.date };\n this.value.set(range);\n this.rangeChanged.emit(range);\n this.closeCalendar();\n }\n }\n\n onDayHover(day: CalendarDay): void {\n if (!this.value().from || this.value().to) return;\n this.hoverDate.set(day.date);\n }\n\n clearRange(): void {\n this.value.set({ from: null, to: null });\n this.rangeChanged.emit({ from: null, to: null });\n }\n}\n","<div class=\"c2g-drp\" [class.c2g-drp--open]=\"open()\">\n <div class=\"c2g-drp__trigger\" (click)=\"toggleOpen()\">\n <span class=\"c2g-drp__icon\" aria-hidden=\"true\">📅</span>\n <span class=\"c2g-drp__value\" [class.c2g-drp__value--placeholder]=\"!displayValue()\">\n {{ displayValue() || placeholder() }}\n </span>\n @if (value().from) {\n <button\n class=\"c2g-drp__clear\"\n type=\"button\"\n aria-label=\"Datum löschen\"\n (click)=\"$event.stopPropagation(); clearRange()\"\n >✕</button>\n }\n <span class=\"c2g-drp__chevron\" aria-hidden=\"true\">▾</span>\n </div>\n\n @if (open()) {\n <div class=\"c2g-drp__backdrop\" (click)=\"closeCalendar()\"></div>\n <div class=\"c2g-drp__calendar\" role=\"dialog\" aria-label=\"Kalender\">\n <div class=\"c2g-drp__nav\">\n <button class=\"c2g-drp__nav-btn\" type=\"button\" (click)=\"prevMonth()\" aria-label=\"Vorheriger Monat\">‹</button>\n <span class=\"c2g-drp__month-label\">{{ monthLabel() }}</span>\n <button class=\"c2g-drp__nav-btn\" type=\"button\" (click)=\"nextMonth()\" aria-label=\"Nächster Monat\">›</button>\n </div>\n\n <div class=\"c2g-drp__weekdays\">\n @for (day of weekdays; track day) {\n <span class=\"c2g-drp__weekday\">{{ day }}</span>\n }\n </div>\n\n <div class=\"c2g-drp__grid\">\n @for (day of days(); track day.date.getTime()) {\n <button\n class=\"c2g-drp__day\"\n type=\"button\"\n [class.c2g-drp__day--other-month]=\"!day.currentMonth\"\n [class.c2g-drp__day--today]=\"day.today\"\n [class.c2g-drp__day--start]=\"day.isStart\"\n [class.c2g-drp__day--end]=\"day.isEnd\"\n [class.c2g-drp__day--in-range]=\"day.inRange\"\n [class.c2g-drp__day--disabled]=\"day.disabled\"\n [disabled]=\"day.disabled || null\"\n (click)=\"onDayClick(day)\"\n (mouseenter)=\"onDayHover(day)\"\n [attr.aria-label]=\"day.date.toLocaleDateString('de-DE')\"\n >\n {{ day.date.getDate() }}\n </button>\n }\n </div>\n </div>\n }\n</div>\n","/*\n * Public API Surface of @humbeldore/c2g-ui (core)\n *\n * UI primitives — the building blocks every consumer needs.\n * Domain-specific entry points:\n * @humbeldore/c2g-ui/theme — ThemeService, design tokens, i18n\n * @humbeldore/c2g-ui/layout — ContentPanel, Hero, StatCard, ActionCard, ...\n * @humbeldore/c2g-ui/maps — MapComponent, MapMarkerComponent\n * @humbeldore/c2g-ui/charts — BarChart, LineChart, ...\n * @humbeldore/c2g-ui/presets — PackingList, MemberList, WeatherWidget, ...\n */\n\nexport * from './lib/c2g-ui';\nexport * from './lib/icons/provide-c2g-icons';\nexport * from './lib/avatar';\nexport * from './lib/button/button.component';\nexport * from './lib/badge';\nexport * from './lib/chip';\nexport * from './lib/checkbox';\nexport * from './lib/loader';\nexport * from './lib/lottie-loader';\nexport * from './lib/skeleton';\nexport * from './lib/alert';\nexport * from './lib/progress';\nexport * from './lib/input';\nexport * from './lib/radio-group';\nexport * from './lib/select';\nexport * from './lib/switch';\nexport * from './lib/tag';\nexport * from './lib/textarea';\nexport * from './lib/modal';\nexport * from './lib/toast';\nexport * from './lib/confirm-dialog';\nexport * from './lib/date-range-picker';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|