@camp2gether/c2g-ui 0.0.10 → 0.0.12
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.
|
@@ -349,12 +349,11 @@ const de = {
|
|
|
349
349
|
},
|
|
350
350
|
private: { title: 'Private Artikel' },
|
|
351
351
|
empty: 'Keine Artikel vorhanden',
|
|
352
|
-
category: { stats: '{{packed}}/{{total}} eingepackt' },
|
|
352
|
+
category: { stats: '{{packed}}/{{total}} eingepackt', label: 'Kategorie' },
|
|
353
353
|
delete: { confirm: 'Artikel wirklich löschen?' },
|
|
354
354
|
addItem: 'Artikel hinzufügen',
|
|
355
355
|
createItem: 'Artikel erstellen',
|
|
356
356
|
itemName: 'Bezeichnung',
|
|
357
|
-
category_label: 'Kategorie',
|
|
358
357
|
visibility: 'Sichtbarkeit',
|
|
359
358
|
essential: 'Pflichtartikel',
|
|
360
359
|
quantity: 'Menge',
|
|
@@ -366,7 +365,7 @@ const de = {
|
|
|
366
365
|
categories: {
|
|
367
366
|
shelter: 'Unterkunft',
|
|
368
367
|
sleeping: 'Schlafen',
|
|
369
|
-
|
|
368
|
+
cookingEating: 'Kochen & Essen',
|
|
370
369
|
clothing: 'Kleidung',
|
|
371
370
|
safety: 'Sicherheit',
|
|
372
371
|
navigation: 'Navigation',
|
|
@@ -376,6 +375,12 @@ const de = {
|
|
|
376
375
|
documents: 'Dokumente',
|
|
377
376
|
entertainment: 'Unterhaltung',
|
|
378
377
|
other: 'Sonstiges',
|
|
378
|
+
lighting: 'Beleuchtung',
|
|
379
|
+
furniture: 'Möbel & Ausstattung',
|
|
380
|
+
hydration: 'Getränke',
|
|
381
|
+
mobility: 'Transport',
|
|
382
|
+
tools: 'Werkzeug',
|
|
383
|
+
activity: 'Aktivitäten',
|
|
379
384
|
},
|
|
380
385
|
},
|
|
381
386
|
};
|
|
@@ -439,12 +444,11 @@ const en = {
|
|
|
439
444
|
},
|
|
440
445
|
private: { title: 'Private Items' },
|
|
441
446
|
empty: 'No items yet',
|
|
442
|
-
category: { stats: '{{packed}}/{{total}} packed' },
|
|
447
|
+
category: { stats: '{{packed}}/{{total}} packed', label: 'Category' },
|
|
443
448
|
delete: { confirm: 'Delete this item?' },
|
|
444
449
|
addItem: 'Add item',
|
|
445
450
|
createItem: 'Create item',
|
|
446
451
|
itemName: 'Name',
|
|
447
|
-
category_label: 'Category',
|
|
448
452
|
visibility: 'Visibility',
|
|
449
453
|
essential: 'Essential',
|
|
450
454
|
quantity: 'Quantity',
|
|
@@ -456,7 +460,7 @@ const en = {
|
|
|
456
460
|
categories: {
|
|
457
461
|
shelter: 'Shelter',
|
|
458
462
|
sleeping: 'Sleeping',
|
|
459
|
-
|
|
463
|
+
cookingEating: 'Cooking & Eating',
|
|
460
464
|
clothing: 'Clothing',
|
|
461
465
|
safety: 'Safety',
|
|
462
466
|
navigation: 'Navigation',
|
|
@@ -466,6 +470,12 @@ const en = {
|
|
|
466
470
|
documents: 'Documents',
|
|
467
471
|
entertainment: 'Entertainment',
|
|
468
472
|
other: 'Other',
|
|
473
|
+
lighting: 'Lighting',
|
|
474
|
+
furniture: 'Furniture & Equipment',
|
|
475
|
+
hydration: 'Hydration',
|
|
476
|
+
mobility: 'Transport',
|
|
477
|
+
tools: 'Tools',
|
|
478
|
+
activity: 'Activities',
|
|
469
479
|
},
|
|
470
480
|
},
|
|
471
481
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camp2gether-c2g-ui-theme.mjs","sources":["../../../projects/c2g-ui/theme/theme/theme.service.ts","../../../projects/c2g-ui/theme/theme/theme-switcher.component.ts","../../../projects/c2g-ui/theme/theme/theme.providers.ts","../../../projects/c2g-ui/theme/i18n/translations.ts","../../../projects/c2g-ui/theme/camp2gether-c2g-ui-theme.ts"],"sourcesContent":["import { Injectable, PLATFORM_ID, inject, signal, computed, effect, DestroyRef } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport type ThemeMode = 'light' | 'dark' | 'auto' | 'high-contrast';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n \n // Initialize signals in the injection context\n private readonly _currentTheme = signal<ThemeMode>(this.getInitialTheme());\n private readonly _isSystemDark = signal<boolean>(this.getInitialSystemPreference());\n \n // Media query listener cleanup\n private mediaQueryCleanup?: () => void;\n\n // Public signals\n readonly currentTheme = this._currentTheme.asReadonly();\n readonly isSystemDark = this._isSystemDark.asReadonly();\n\n // Computed signal for effective theme\n readonly effectiveTheme = computed<ThemeMode>(() => {\n const current = this._currentTheme();\n if (current === 'auto') {\n return this._isSystemDark() ? 'dark' : 'light';\n }\n return current;\n });\n\n // Computed signals for theme checks\n readonly isLightTheme = computed(() => this.effectiveTheme() === 'light');\n readonly isDarkTheme = computed(() => this.effectiveTheme() === 'dark');\n readonly isHighContrastTheme = computed(() => this._currentTheme() === 'high-contrast');\n\n constructor() {\n // Set up effects and watchers only in browser environment\n if (isPlatformBrowser(this.platformId)) {\n this.initializeBrowserFeatures();\n }\n \n // Register cleanup on destroy\n this.destroyRef.onDestroy(() => {\n this.cleanup();\n });\n }\n\n private initializeBrowserFeatures(): void {\n // Effect to apply theme changes to DOM\n effect(() => {\n const theme = this._currentTheme();\n this.applyThemeToDOM(theme);\n });\n\n // Effect to persist theme changes to localStorage\n effect(() => {\n const theme = this._currentTheme();\n localStorage.setItem('c2g-theme', theme);\n });\n\n // Watch for system preference changes\n this.watchSystemPreference();\n }\n\n private getInitialTheme(): ThemeMode {\n if (!isPlatformBrowser(this.platformId)) {\n return 'light';\n }\n \n try {\n const stored = localStorage.getItem('c2g-theme') as ThemeMode;\n return ['light', 'dark', 'auto', 'high-contrast'].includes(stored) ? stored : 'light';\n } catch {\n return 'light';\n }\n }\n\n private getInitialSystemPreference(): boolean {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n \n try {\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n } catch {\n return false;\n }\n }\n\n private watchSystemPreference(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n try {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n \n const handler = (event: MediaQueryListEvent) => {\n this._isSystemDark.set(event.matches);\n };\n\n // Set initial value\n this._isSystemDark.set(mediaQuery.matches);\n \n // Listen for changes\n mediaQuery.addEventListener('change', handler);\n \n // Store cleanup function\n this.mediaQueryCleanup = () => {\n mediaQuery.removeEventListener('change', handler);\n };\n } catch (error) {\n console.warn('Failed to watch system preference changes:', error);\n }\n }\n\n private applyThemeToDOM(theme: ThemeMode): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n try {\n const body = document.body;\n \n // Remove all theme classes\n body.classList.remove('theme-light', 'theme-dark', 'theme-auto', 'theme-high-contrast');\n \n // Add the new theme class\n body.classList.add(`theme-${theme}`);\n } catch (error) {\n console.warn('Failed to apply theme to DOM:', error);\n }\n }\n\n // Public methods\n setTheme(theme: ThemeMode): void {\n this._currentTheme.set(theme);\n }\n\n toggleTheme(): void {\n const current = this._currentTheme();\n const next = current === 'light' ? 'dark' : 'light';\n this.setTheme(next);\n }\n\n resetToSystemPreference(): void {\n this.setTheme('auto');\n }\n\n // Legacy method compatibility (if needed)\n getCurrentTheme(): ThemeMode {\n return this._currentTheme();\n }\n\n getEffectiveTheme(): ThemeMode {\n return this.effectiveTheme();\n }\n\n private cleanup(): void {\n // Clean up media query listeners\n if (this.mediaQueryCleanup) {\n this.mediaQueryCleanup();\n this.mediaQueryCleanup = undefined;\n }\n }\n}","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ThemeService, ThemeMode } from './theme.service';\n\n@Component({\n selector: 'c2g-theme-switcher',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n MatTooltipModule,\n TranslateModule\n ],\n template: `\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"themeMenu\"\n [matTooltip]=\"'theme.switcher.tooltip' | translate\"\n class=\"theme-switcher-button\"\n aria-label=\"Choose theme\">\n <mat-icon>{{ themeIcon() }}</mat-icon>\n </button>\n\n <mat-menu #themeMenu=\"matMenu\" class=\"theme-menu\">\n @for (option of themeOptions; track option.value) {\n <button\n mat-menu-item\n (click)=\"selectTheme(option.value)\"\n [class.active]=\"currentTheme() === option.value\">\n <mat-icon>{{ option.icon }}</mat-icon>\n <span>{{ option.label | translate }}</span>\n @if (currentTheme() === option.value) {\n <mat-icon class=\"selected-indicator\">\n check\n </mat-icon>\n }\n </button>\n }\n </mat-menu>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [`\n .theme-switcher-button {\n color: var(--c2g-color-text-primary);\n transition: color var(--c2g-transition-fast);\n }\n\n .theme-switcher-button:hover {\n color: var(--c2g-color-primary);\n }\n\n .theme-menu {\n .mat-mdc-menu-item {\n display: flex;\n align-items: center;\n gap: var(--c2g-space-2);\n color: var(--c2g-color-text-primary);\n \n &.active {\n background-color: var(--c2g-color-primary-container);\n color: var(--c2g-color-on-primary-container);\n }\n\n &:hover {\n background-color: var(--c2g-color-surface-container-high);\n }\n\n .selected-indicator {\n margin-left: auto;\n color: var(--c2g-color-primary);\n }\n }\n }\n `]\n})\nexport class ThemeSwitcherComponent {\n protected readonly themeService = inject(ThemeService);\n\n // Use signals for reactive updates\n protected readonly currentTheme = this.themeService.currentTheme;\n \n // Computed signal for theme icon\n protected readonly themeIcon = computed(() => {\n const current = this.currentTheme();\n const option = this.themeOptions.find(opt => opt.value === current);\n return option?.icon || 'brightness_auto';\n });\n\n protected readonly themeOptions = [\n { \n value: 'light' as ThemeMode, \n label: 'theme.options.light', \n icon: 'light_mode' \n },\n { \n value: 'dark' as ThemeMode, \n label: 'theme.options.dark', \n icon: 'dark_mode' \n },\n { \n value: 'auto' as ThemeMode, \n label: 'theme.options.auto', \n icon: 'brightness_auto' \n },\n { \n value: 'high-contrast' as ThemeMode, \n label: 'theme.options.highContrast', \n icon: 'contrast' \n }\n ];\n\n protected selectTheme(theme: ThemeMode): void {\n this.themeService.setTheme(theme);\n }\n}","import { Provider } from '@angular/core';\nimport { HighContrastModeDetector } from '@angular/cdk/a11y';\n\n/**\n * Providers for the C2G Theme system that includes all necessary CDK dependencies\n */\nexport const C2G_THEME_PROVIDERS: Provider[] = [\n HighContrastModeDetector,\n];\n\n/**\n * Mock providers for testing or SSR environments where CDK might not be needed\n */\nexport const C2G_THEME_MOCK_PROVIDERS: Provider[] = [\n {\n provide: HighContrastModeDetector,\n useValue: {\n _platform: { isBrowser: false },\n isHighContrast: () => false\n }\n }\n];\n\n/**\n * Smart provider factory that chooses appropriate providers based on environment\n */\nexport function getC2GThemeProviders(): Provider[] {\n try {\n // Try to create HighContrastModeDetector - if it fails, use mock\n return C2G_THEME_PROVIDERS;\n } catch {\n return C2G_THEME_MOCK_PROVIDERS;\n }\n}","const de = {\n c2g: {\n loader: { label: 'Laden...' },\n skeleton: { loading: 'Inhalt wird geladen...' },\n alert: {\n close: 'Schliessen',\n demo: {\n info_title: 'Reisehinweis',\n info_message: 'Deine Packliste wurde mit den aktuellen Wetterdaten synchronisiert.',\n success_title: 'Liste gespeichert',\n success_message: 'Deine Packliste wurde erfolgreich gespeichert.',\n warning_title: 'Reisepass erforderlich',\n warning_message: 'Denke daran, deine Reisedokumente einzupacken.',\n danger_title: 'Artikel fehlt',\n danger_message: 'Drei erforderliche Artikel sind noch nicht eingepackt.',\n },\n },\n progress: { label: 'Fortschritt' },\n lottie: { label: 'Ladeanimation' },\n button: {\n submit: 'Absenden',\n cancel: 'Abbrechen',\n save: 'Speichern',\n add_item: 'Artikel hinzufügen',\n invite: 'Mitglied einladen',\n },\n danger_zone: {\n default: { heading: 'Gefahrenzone' },\n group: {\n transfer_ownership: { title: 'Eigentümerschaft übertragen', description: 'Gruppe an ein anderes Mitglied übergeben', action: 'Übertragen', aria_label: 'Eigentümerschaft übertragen' },\n delete_group: { title: 'Gruppe löschen', description: 'Löscht die Gruppe dauerhaft. Diese Aktion kann nicht rückgängig gemacht werden.', action: 'Löschen', aria_label: 'Gruppe löschen' },\n leave_group: { title: 'Gruppe verlassen', description: 'Du verlässt diese Gruppe. Du kannst später wieder beitreten.', action: 'Verlassen', aria_label: 'Gruppe verlassen' },\n },\n },\n input: {\n destination: { label: 'Reiseziel', placeholder: 'z.B. Barcelona', hint: 'Gib die Stadt oder Region deiner Reise ein' },\n email: { label: 'E-Mail-Adresse', placeholder: 'du@beispiel.com', hint: 'Wir senden deine Reisebestätigung hierher' },\n },\n textarea: {\n notes: { label: 'Packnotizen', placeholder: 'Notizen zur Packliste hinzufügen...', hint: 'Wird mit allen Gruppenmitgliedern geteilt' },\n },\n badge: { new: 'Neu', required: 'Pflichtangabe', optional: 'Optional', packed: 'Eingepackt', missing: 'Fehlt' },\n chip: { remove_label: 'Entfernen' },\n tag: { clothing: 'Kleidung', documents: 'Dokumente', electronics: 'Elektronik', toiletries: 'Pflegeartikel' },\n switch: { label: 'Aktiv', notifications: 'Reise-Benachrichtigungen', shared: 'Geteilte Liste' },\n checkbox: { packed: 'Als eingepackt markieren', agree: 'Ich stimme den Bedingungen zu', required: 'Pflichtartikel' },\n radio: {\n legend: 'Optionen',\n trip_type: { legend: 'Reiseart', beach: 'Strand', city: 'Städtereise', hiking: 'Wandern', business: 'Geschäftsreise' },\n },\n segmented_toggle: { view_list: 'Liste', view_grid: 'Raster', view_map: 'Karte' },\n },\n packingList: {\n search: { placeholder: 'Artikel suchen...' },\n filters: {\n essentialsOnly: 'Nur Pflichtartikel',\n visibility: { all: 'Alle', shared: 'Geteilt', personal: 'Persönlich', private: 'Privat' },\n },\n private: { title: 'Private Artikel' },\n empty: 'Keine Artikel vorhanden',\n category: { stats: '{{packed}}/{{total}} eingepackt' },\n delete: { confirm: 'Artikel wirklich löschen?' },\n addItem: 'Artikel hinzufügen',\n createItem: 'Artikel erstellen',\n itemName: 'Bezeichnung',\n category_label: 'Kategorie',\n visibility: 'Sichtbarkeit',\n essential: 'Pflichtartikel',\n quantity: 'Menge',\n weight: 'Gewicht (kg)',\n volume: 'Volumen (L)',\n hint: 'Hinweis',\n cancel: 'Abbrechen',\n create: 'Erstellen',\n categories: {\n shelter: 'Unterkunft',\n sleeping: 'Schlafen',\n cooking: 'Kochen',\n clothing: 'Kleidung',\n safety: 'Sicherheit',\n navigation: 'Navigation',\n hygiene: 'Hygiene',\n medical: 'Medizin',\n electronics: 'Elektronik',\n documents: 'Dokumente',\n entertainment: 'Unterhaltung',\n other: 'Sonstiges',\n },\n },\n};\n\nconst en = {\n c2g: {\n loader: { label: 'Loading...' },\n skeleton: { loading: 'Content loading...' },\n alert: {\n close: 'Dismiss',\n demo: {\n info_title: 'Trip Update',\n info_message: 'Your packing list has been synced with the latest weather data.',\n success_title: 'List Saved',\n success_message: 'Your packing list was saved successfully.',\n warning_title: 'Passport Required',\n warning_message: 'Remember to pack your travel documents.',\n danger_title: 'Item Missing',\n danger_message: 'Three required items are still unpacked.',\n },\n },\n progress: { label: 'Progress' },\n lottie: { label: 'Loading animation' },\n button: {\n submit: 'Submit',\n cancel: 'Cancel',\n save: 'Save',\n add_item: 'Add Item',\n invite: 'Invite Member',\n },\n danger_zone: {\n default: { heading: 'Danger Zone' },\n group: {\n transfer_ownership: { title: 'Transfer ownership', description: 'Hand the group over to another member.', action: 'Transfer', aria_label: 'Transfer ownership' },\n delete_group: { title: 'Delete group', description: 'Deletes the group permanently. This action cannot be undone.', action: 'Delete', aria_label: 'Delete group' },\n leave_group: { title: 'Leave group', description: 'You leave this group. You can join again later.', action: 'Leave', aria_label: 'Leave group' },\n },\n },\n input: {\n destination: { label: 'Destination', placeholder: 'e.g. Barcelona', hint: 'Enter the city or region of your trip' },\n email: { label: 'Email address', placeholder: 'you@example.com', hint: 'We will send your trip confirmation here' },\n },\n textarea: {\n notes: { label: 'Packing notes', placeholder: 'Add notes about your packing list...', hint: 'Shared with all group members' },\n },\n badge: { new: 'New', required: 'Required', optional: 'Optional', packed: 'Packed', missing: 'Missing' },\n chip: { remove_label: 'Remove' },\n tag: { clothing: 'Clothing', documents: 'Documents', electronics: 'Electronics', toiletries: 'Toiletries' },\n switch: { label: 'Active', notifications: 'Trip notifications', shared: 'Shared list' },\n checkbox: { packed: 'Marked as packed', agree: 'I agree to the terms', required: 'Required item' },\n radio: {\n legend: 'Options',\n trip_type: { legend: 'Trip type', beach: 'Beach', city: 'City trip', hiking: 'Hiking', business: 'Business' },\n },\n segmented_toggle: { view_list: 'List', view_grid: 'Grid', view_map: 'Map' },\n },\n packingList: {\n search: { placeholder: 'Search items...' },\n filters: {\n essentialsOnly: 'Essentials only',\n visibility: { all: 'All', shared: 'Shared', personal: 'Personal', private: 'Private' },\n },\n private: { title: 'Private Items' },\n empty: 'No items yet',\n category: { stats: '{{packed}}/{{total}} packed' },\n delete: { confirm: 'Delete this item?' },\n addItem: 'Add item',\n createItem: 'Create item',\n itemName: 'Name',\n category_label: 'Category',\n visibility: 'Visibility',\n essential: 'Essential',\n quantity: 'Quantity',\n weight: 'Weight (kg)',\n volume: 'Volume (L)',\n hint: 'Hint',\n cancel: 'Cancel',\n create: 'Create',\n categories: {\n shelter: 'Shelter',\n sleeping: 'Sleeping',\n cooking: 'Cooking',\n clothing: 'Clothing',\n safety: 'Safety',\n navigation: 'Navigation',\n hygiene: 'Hygiene',\n medical: 'Medical',\n electronics: 'Electronics',\n documents: 'Documents',\n entertainment: 'Entertainment',\n other: 'Other',\n },\n },\n};\n\nexport const C2G_TRANSLATIONS: Record<string, Record<string, unknown>> = { de, en };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"camp2gether-c2g-ui-theme.mjs","sources":["../../../projects/c2g-ui/theme/theme/theme.service.ts","../../../projects/c2g-ui/theme/theme/theme-switcher.component.ts","../../../projects/c2g-ui/theme/theme/theme.providers.ts","../../../projects/c2g-ui/theme/i18n/translations.ts","../../../projects/c2g-ui/theme/camp2gether-c2g-ui-theme.ts"],"sourcesContent":["import { Injectable, PLATFORM_ID, inject, signal, computed, effect, DestroyRef } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport type ThemeMode = 'light' | 'dark' | 'auto' | 'high-contrast';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n \n // Initialize signals in the injection context\n private readonly _currentTheme = signal<ThemeMode>(this.getInitialTheme());\n private readonly _isSystemDark = signal<boolean>(this.getInitialSystemPreference());\n \n // Media query listener cleanup\n private mediaQueryCleanup?: () => void;\n\n // Public signals\n readonly currentTheme = this._currentTheme.asReadonly();\n readonly isSystemDark = this._isSystemDark.asReadonly();\n\n // Computed signal for effective theme\n readonly effectiveTheme = computed<ThemeMode>(() => {\n const current = this._currentTheme();\n if (current === 'auto') {\n return this._isSystemDark() ? 'dark' : 'light';\n }\n return current;\n });\n\n // Computed signals for theme checks\n readonly isLightTheme = computed(() => this.effectiveTheme() === 'light');\n readonly isDarkTheme = computed(() => this.effectiveTheme() === 'dark');\n readonly isHighContrastTheme = computed(() => this._currentTheme() === 'high-contrast');\n\n constructor() {\n // Set up effects and watchers only in browser environment\n if (isPlatformBrowser(this.platformId)) {\n this.initializeBrowserFeatures();\n }\n \n // Register cleanup on destroy\n this.destroyRef.onDestroy(() => {\n this.cleanup();\n });\n }\n\n private initializeBrowserFeatures(): void {\n // Effect to apply theme changes to DOM\n effect(() => {\n const theme = this._currentTheme();\n this.applyThemeToDOM(theme);\n });\n\n // Effect to persist theme changes to localStorage\n effect(() => {\n const theme = this._currentTheme();\n localStorage.setItem('c2g-theme', theme);\n });\n\n // Watch for system preference changes\n this.watchSystemPreference();\n }\n\n private getInitialTheme(): ThemeMode {\n if (!isPlatformBrowser(this.platformId)) {\n return 'light';\n }\n \n try {\n const stored = localStorage.getItem('c2g-theme') as ThemeMode;\n return ['light', 'dark', 'auto', 'high-contrast'].includes(stored) ? stored : 'light';\n } catch {\n return 'light';\n }\n }\n\n private getInitialSystemPreference(): boolean {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n \n try {\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n } catch {\n return false;\n }\n }\n\n private watchSystemPreference(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n try {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n \n const handler = (event: MediaQueryListEvent) => {\n this._isSystemDark.set(event.matches);\n };\n\n // Set initial value\n this._isSystemDark.set(mediaQuery.matches);\n \n // Listen for changes\n mediaQuery.addEventListener('change', handler);\n \n // Store cleanup function\n this.mediaQueryCleanup = () => {\n mediaQuery.removeEventListener('change', handler);\n };\n } catch (error) {\n console.warn('Failed to watch system preference changes:', error);\n }\n }\n\n private applyThemeToDOM(theme: ThemeMode): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n try {\n const body = document.body;\n \n // Remove all theme classes\n body.classList.remove('theme-light', 'theme-dark', 'theme-auto', 'theme-high-contrast');\n \n // Add the new theme class\n body.classList.add(`theme-${theme}`);\n } catch (error) {\n console.warn('Failed to apply theme to DOM:', error);\n }\n }\n\n // Public methods\n setTheme(theme: ThemeMode): void {\n this._currentTheme.set(theme);\n }\n\n toggleTheme(): void {\n const current = this._currentTheme();\n const next = current === 'light' ? 'dark' : 'light';\n this.setTheme(next);\n }\n\n resetToSystemPreference(): void {\n this.setTheme('auto');\n }\n\n // Legacy method compatibility (if needed)\n getCurrentTheme(): ThemeMode {\n return this._currentTheme();\n }\n\n getEffectiveTheme(): ThemeMode {\n return this.effectiveTheme();\n }\n\n private cleanup(): void {\n // Clean up media query listeners\n if (this.mediaQueryCleanup) {\n this.mediaQueryCleanup();\n this.mediaQueryCleanup = undefined;\n }\n }\n}","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ThemeService, ThemeMode } from './theme.service';\n\n@Component({\n selector: 'c2g-theme-switcher',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n MatTooltipModule,\n TranslateModule\n ],\n template: `\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"themeMenu\"\n [matTooltip]=\"'theme.switcher.tooltip' | translate\"\n class=\"theme-switcher-button\"\n aria-label=\"Choose theme\">\n <mat-icon>{{ themeIcon() }}</mat-icon>\n </button>\n\n <mat-menu #themeMenu=\"matMenu\" class=\"theme-menu\">\n @for (option of themeOptions; track option.value) {\n <button\n mat-menu-item\n (click)=\"selectTheme(option.value)\"\n [class.active]=\"currentTheme() === option.value\">\n <mat-icon>{{ option.icon }}</mat-icon>\n <span>{{ option.label | translate }}</span>\n @if (currentTheme() === option.value) {\n <mat-icon class=\"selected-indicator\">\n check\n </mat-icon>\n }\n </button>\n }\n </mat-menu>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [`\n .theme-switcher-button {\n color: var(--c2g-color-text-primary);\n transition: color var(--c2g-transition-fast);\n }\n\n .theme-switcher-button:hover {\n color: var(--c2g-color-primary);\n }\n\n .theme-menu {\n .mat-mdc-menu-item {\n display: flex;\n align-items: center;\n gap: var(--c2g-space-2);\n color: var(--c2g-color-text-primary);\n \n &.active {\n background-color: var(--c2g-color-primary-container);\n color: var(--c2g-color-on-primary-container);\n }\n\n &:hover {\n background-color: var(--c2g-color-surface-container-high);\n }\n\n .selected-indicator {\n margin-left: auto;\n color: var(--c2g-color-primary);\n }\n }\n }\n `]\n})\nexport class ThemeSwitcherComponent {\n protected readonly themeService = inject(ThemeService);\n\n // Use signals for reactive updates\n protected readonly currentTheme = this.themeService.currentTheme;\n \n // Computed signal for theme icon\n protected readonly themeIcon = computed(() => {\n const current = this.currentTheme();\n const option = this.themeOptions.find(opt => opt.value === current);\n return option?.icon || 'brightness_auto';\n });\n\n protected readonly themeOptions = [\n { \n value: 'light' as ThemeMode, \n label: 'theme.options.light', \n icon: 'light_mode' \n },\n { \n value: 'dark' as ThemeMode, \n label: 'theme.options.dark', \n icon: 'dark_mode' \n },\n { \n value: 'auto' as ThemeMode, \n label: 'theme.options.auto', \n icon: 'brightness_auto' \n },\n { \n value: 'high-contrast' as ThemeMode, \n label: 'theme.options.highContrast', \n icon: 'contrast' \n }\n ];\n\n protected selectTheme(theme: ThemeMode): void {\n this.themeService.setTheme(theme);\n }\n}","import { Provider } from '@angular/core';\nimport { HighContrastModeDetector } from '@angular/cdk/a11y';\n\n/**\n * Providers for the C2G Theme system that includes all necessary CDK dependencies\n */\nexport const C2G_THEME_PROVIDERS: Provider[] = [\n HighContrastModeDetector,\n];\n\n/**\n * Mock providers for testing or SSR environments where CDK might not be needed\n */\nexport const C2G_THEME_MOCK_PROVIDERS: Provider[] = [\n {\n provide: HighContrastModeDetector,\n useValue: {\n _platform: { isBrowser: false },\n isHighContrast: () => false\n }\n }\n];\n\n/**\n * Smart provider factory that chooses appropriate providers based on environment\n */\nexport function getC2GThemeProviders(): Provider[] {\n try {\n // Try to create HighContrastModeDetector - if it fails, use mock\n return C2G_THEME_PROVIDERS;\n } catch {\n return C2G_THEME_MOCK_PROVIDERS;\n }\n}","const de = {\n c2g: {\n loader: { label: 'Laden...' },\n skeleton: { loading: 'Inhalt wird geladen...' },\n alert: {\n close: 'Schliessen',\n demo: {\n info_title: 'Reisehinweis',\n info_message: 'Deine Packliste wurde mit den aktuellen Wetterdaten synchronisiert.',\n success_title: 'Liste gespeichert',\n success_message: 'Deine Packliste wurde erfolgreich gespeichert.',\n warning_title: 'Reisepass erforderlich',\n warning_message: 'Denke daran, deine Reisedokumente einzupacken.',\n danger_title: 'Artikel fehlt',\n danger_message: 'Drei erforderliche Artikel sind noch nicht eingepackt.',\n },\n },\n progress: { label: 'Fortschritt' },\n lottie: { label: 'Ladeanimation' },\n button: {\n submit: 'Absenden',\n cancel: 'Abbrechen',\n save: 'Speichern',\n add_item: 'Artikel hinzufügen',\n invite: 'Mitglied einladen',\n },\n danger_zone: {\n default: { heading: 'Gefahrenzone' },\n group: {\n transfer_ownership: { title: 'Eigentümerschaft übertragen', description: 'Gruppe an ein anderes Mitglied übergeben', action: 'Übertragen', aria_label: 'Eigentümerschaft übertragen' },\n delete_group: { title: 'Gruppe löschen', description: 'Löscht die Gruppe dauerhaft. Diese Aktion kann nicht rückgängig gemacht werden.', action: 'Löschen', aria_label: 'Gruppe löschen' },\n leave_group: { title: 'Gruppe verlassen', description: 'Du verlässt diese Gruppe. Du kannst später wieder beitreten.', action: 'Verlassen', aria_label: 'Gruppe verlassen' },\n },\n },\n input: {\n destination: { label: 'Reiseziel', placeholder: 'z.B. Barcelona', hint: 'Gib die Stadt oder Region deiner Reise ein' },\n email: { label: 'E-Mail-Adresse', placeholder: 'du@beispiel.com', hint: 'Wir senden deine Reisebestätigung hierher' },\n },\n textarea: {\n notes: { label: 'Packnotizen', placeholder: 'Notizen zur Packliste hinzufügen...', hint: 'Wird mit allen Gruppenmitgliedern geteilt' },\n },\n badge: { new: 'Neu', required: 'Pflichtangabe', optional: 'Optional', packed: 'Eingepackt', missing: 'Fehlt' },\n chip: { remove_label: 'Entfernen' },\n tag: { clothing: 'Kleidung', documents: 'Dokumente', electronics: 'Elektronik', toiletries: 'Pflegeartikel' },\n switch: { label: 'Aktiv', notifications: 'Reise-Benachrichtigungen', shared: 'Geteilte Liste' },\n checkbox: { packed: 'Als eingepackt markieren', agree: 'Ich stimme den Bedingungen zu', required: 'Pflichtartikel' },\n radio: {\n legend: 'Optionen',\n trip_type: { legend: 'Reiseart', beach: 'Strand', city: 'Städtereise', hiking: 'Wandern', business: 'Geschäftsreise' },\n },\n segmented_toggle: { view_list: 'Liste', view_grid: 'Raster', view_map: 'Karte' },\n },\n packingList: {\n search: { placeholder: 'Artikel suchen...' },\n filters: {\n essentialsOnly: 'Nur Pflichtartikel',\n visibility: { all: 'Alle', shared: 'Geteilt', personal: 'Persönlich', private: 'Privat' },\n },\n private: { title: 'Private Artikel' },\n empty: 'Keine Artikel vorhanden',\n category: { stats: '{{packed}}/{{total}} eingepackt', label: 'Kategorie' },\n delete: { confirm: 'Artikel wirklich löschen?' },\n addItem: 'Artikel hinzufügen',\n createItem: 'Artikel erstellen',\n itemName: 'Bezeichnung',\n visibility: 'Sichtbarkeit',\n essential: 'Pflichtartikel',\n quantity: 'Menge',\n weight: 'Gewicht (kg)',\n volume: 'Volumen (L)',\n hint: 'Hinweis',\n cancel: 'Abbrechen',\n create: 'Erstellen',\n categories: {\n shelter: 'Unterkunft',\n sleeping: 'Schlafen',\n cookingEating: 'Kochen & Essen',\n clothing: 'Kleidung',\n safety: 'Sicherheit',\n navigation: 'Navigation',\n hygiene: 'Hygiene',\n medical: 'Medizin',\n electronics: 'Elektronik',\n documents: 'Dokumente',\n entertainment: 'Unterhaltung',\n other: 'Sonstiges',\n lighting: 'Beleuchtung',\n furniture: 'Möbel & Ausstattung',\n hydration: 'Getränke',\n mobility: 'Transport',\n tools: 'Werkzeug',\n activity: 'Aktivitäten',\n },\n },\n};\n\nconst en = {\n c2g: {\n loader: { label: 'Loading...' },\n skeleton: { loading: 'Content loading...' },\n alert: {\n close: 'Dismiss',\n demo: {\n info_title: 'Trip Update',\n info_message: 'Your packing list has been synced with the latest weather data.',\n success_title: 'List Saved',\n success_message: 'Your packing list was saved successfully.',\n warning_title: 'Passport Required',\n warning_message: 'Remember to pack your travel documents.',\n danger_title: 'Item Missing',\n danger_message: 'Three required items are still unpacked.',\n },\n },\n progress: { label: 'Progress' },\n lottie: { label: 'Loading animation' },\n button: {\n submit: 'Submit',\n cancel: 'Cancel',\n save: 'Save',\n add_item: 'Add Item',\n invite: 'Invite Member',\n },\n danger_zone: {\n default: { heading: 'Danger Zone' },\n group: {\n transfer_ownership: { title: 'Transfer ownership', description: 'Hand the group over to another member.', action: 'Transfer', aria_label: 'Transfer ownership' },\n delete_group: { title: 'Delete group', description: 'Deletes the group permanently. This action cannot be undone.', action: 'Delete', aria_label: 'Delete group' },\n leave_group: { title: 'Leave group', description: 'You leave this group. You can join again later.', action: 'Leave', aria_label: 'Leave group' },\n },\n },\n input: {\n destination: { label: 'Destination', placeholder: 'e.g. Barcelona', hint: 'Enter the city or region of your trip' },\n email: { label: 'Email address', placeholder: 'you@example.com', hint: 'We will send your trip confirmation here' },\n },\n textarea: {\n notes: { label: 'Packing notes', placeholder: 'Add notes about your packing list...', hint: 'Shared with all group members' },\n },\n badge: { new: 'New', required: 'Required', optional: 'Optional', packed: 'Packed', missing: 'Missing' },\n chip: { remove_label: 'Remove' },\n tag: { clothing: 'Clothing', documents: 'Documents', electronics: 'Electronics', toiletries: 'Toiletries' },\n switch: { label: 'Active', notifications: 'Trip notifications', shared: 'Shared list' },\n checkbox: { packed: 'Marked as packed', agree: 'I agree to the terms', required: 'Required item' },\n radio: {\n legend: 'Options',\n trip_type: { legend: 'Trip type', beach: 'Beach', city: 'City trip', hiking: 'Hiking', business: 'Business' },\n },\n segmented_toggle: { view_list: 'List', view_grid: 'Grid', view_map: 'Map' },\n },\n packingList: {\n search: { placeholder: 'Search items...' },\n filters: {\n essentialsOnly: 'Essentials only',\n visibility: { all: 'All', shared: 'Shared', personal: 'Personal', private: 'Private' },\n },\n private: { title: 'Private Items' },\n empty: 'No items yet',\n category: { stats: '{{packed}}/{{total}} packed', label: 'Category' },\n delete: { confirm: 'Delete this item?' },\n addItem: 'Add item',\n createItem: 'Create item',\n itemName: 'Name',\n visibility: 'Visibility',\n essential: 'Essential',\n quantity: 'Quantity',\n weight: 'Weight (kg)',\n volume: 'Volume (L)',\n hint: 'Hint',\n cancel: 'Cancel',\n create: 'Create',\n categories: {\n shelter: 'Shelter',\n sleeping: 'Sleeping',\n cookingEating: 'Cooking & Eating',\n clothing: 'Clothing',\n safety: 'Safety',\n navigation: 'Navigation',\n hygiene: 'Hygiene',\n medical: 'Medical',\n electronics: 'Electronics',\n documents: 'Documents',\n entertainment: 'Entertainment',\n other: 'Other',\n lighting: 'Lighting',\n furniture: 'Furniture & Equipment',\n hydration: 'Hydration',\n mobility: 'Transport',\n tools: 'Tools',\n activity: 'Activities',\n },\n },\n};\n\nexport const C2G_TRANSLATIONS: Record<string, Record<string, unknown>> = { de, en };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|