From 6ced2385712560aa489f952c936084840f04ce26 Mon Sep 17 00:00:00 2001 From: Till JS Date: Fri, 3 Apr 2026 13:03:49 +0200 Subject: [PATCH] chore: delete 25 web-archived directories, remove stale stubs, clean workspace config - Delete all 25 apps/*/apps/web-archived/ directories (superseded by unified ManaCore app) - Remove stale +page.server.ts stubs from teams, organizations, settings (always returned empty data) - Simplify teams and organizations pages to static empty-state (no server load dependency) - Delete empty apps/context/apps/mobile/components/variants/index.ts - Remove commented-out apps-archived entries from pnpm-workspace.yaml Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/calc/apps/web-archived/Dockerfile | 30 - apps/calc/apps/web-archived/package.json | 59 - apps/calc/apps/web-archived/src/app.css | 10 - apps/calc/apps/web-archived/src/app.d.ts | 2 - apps/calc/apps/web-archived/src/app.html | 12 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 27 - .../skeletons/AppLoadingSkeleton.svelte | 84 - .../src/lib/components/skeletons/index.ts | 1 - .../src/lib/components/skins/CasioSkin.svelte | 284 --- .../src/lib/components/skins/HP35Skin.svelte | 263 --- .../lib/components/skins/MinimalSkin.svelte | 178 -- .../lib/components/skins/ModernSkin.svelte | 84 - .../src/lib/components/skins/TI84Skin.svelte | 281 --- .../src/lib/components/skins/index.ts | 6 - .../src/lib/components/skins/types.ts | 14 - .../web-archived/src/lib/data/guest-seed.ts | 28 - .../web-archived/src/lib/data/local-store.ts | 52 - .../apps/web-archived/src/lib/data/queries.ts | 59 - .../web-archived/src/lib/engine/evaluate.ts | 261 --- .../apps/web-archived/src/lib/i18n/index.ts | 38 - .../web-archived/src/lib/i18n/locales/de.json | 42 - .../web-archived/src/lib/i18n/locales/en.json | 42 - .../src/lib/stores/app-onboarding.svelte.ts | 61 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/calc-settings.svelte.ts | 65 - .../src/lib/stores/calculations.svelte.ts | 29 - .../web-archived/src/lib/stores/navigation.ts | 5 - .../src/lib/stores/saved-formulas.svelte.ts | 25 - .../src/lib/stores/theme.svelte.ts | 6 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../src/routes/(app)/+layout.svelte | 428 ---- .../src/routes/(app)/+page.svelte | 137 -- .../src/routes/(app)/converter/+page.svelte | 131 -- .../src/routes/(app)/currency/+page.svelte | 184 -- .../src/routes/(app)/date/+page.svelte | 117 -- .../src/routes/(app)/feedback/+page.svelte | 0 .../src/routes/(app)/finance/+page.svelte | 312 --- .../src/routes/(app)/help/+page.svelte | 0 .../src/routes/(app)/mana/+page.svelte | 0 .../src/routes/(app)/percentage/+page.svelte | 176 -- .../src/routes/(app)/profile/+page.svelte | 0 .../src/routes/(app)/programmer/+page.svelte | 171 -- .../src/routes/(app)/scientific/+page.svelte | 274 --- .../src/routes/(app)/settings/+page.svelte | 300 --- .../src/routes/(app)/skins/+page.svelte | 153 -- .../src/routes/(app)/standard/+page.svelte | 264 --- .../src/routes/(app)/tags/+page.svelte | 0 .../src/routes/(app)/themes/+page.svelte | 0 .../(auth)/forgot-password/+page.svelte | 11 - .../src/routes/(auth)/login/+page.svelte | 11 - .../src/routes/(auth)/register/+page.svelte | 11 - .../routes/(auth)/reset-password/+page.svelte | 11 - .../web-archived/src/routes/+layout.svelte | 39 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 6 - .../src/routes/offline/+page.svelte | 13 - apps/calc/apps/web-archived/svelte.config.js | 21 - apps/calc/apps/web-archived/tsconfig.json | 14 - apps/calc/apps/web-archived/vite.config.ts | 33 - apps/calendar/apps/web-archived/Dockerfile | 32 - .../apps/web-archived/e2e/auth.spec.ts | 99 - .../web-archived/e2e/calendar-views.spec.ts | 101 - .../apps/web-archived/e2e/calendars.spec.ts | 98 - .../apps/web-archived/e2e/error-page.spec.ts | 19 - .../apps/web-archived/e2e/events.spec.ts | 175 -- .../apps/web-archived/e2e/fixtures/auth.ts | 135 -- .../apps/web-archived/e2e/settings.spec.ts | 105 - .../e2e/week-view-interactions.spec.ts | 184 -- .../apps/web-archived/eslint.config.js | 17 - apps/calendar/apps/web-archived/package.json | 79 - .../apps/web-archived/playwright.config.ts | 39 - .../web-archived/scripts/generate-icons.mjs | 45 - apps/calendar/apps/web-archived/src/app.css | 261 --- apps/calendar/apps/web-archived/src/app.d.ts | 2 - apps/calendar/apps/web-archived/src/app.html | 29 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 53 - .../web-archived/src/lib/api/birthdays.ts | 131 -- .../web-archived/src/lib/api/calendars.ts | 42 - .../apps/web-archived/src/lib/api/client.ts | 105 - .../web-archived/src/lib/api/event-tags.ts | 70 - .../web-archived/src/lib/api/events.test.ts | 278 --- .../apps/web-archived/src/lib/api/events.ts | 101 - .../src/lib/api/reminders.test.ts | 83 - .../web-archived/src/lib/api/reminders.ts | 23 - .../apps/web-archived/src/lib/api/shares.ts | 50 - .../web-archived/src/lib/api/sync.test.ts | 121 -- .../apps/web-archived/src/lib/api/sync.ts | 109 - .../src/lib/components/AppSlider.svelte | 33 - .../lib/components/LanguageSelector.svelte | 19 - .../lib/components/ServiceStatusBanner.svelte | 76 - .../components/agenda/AgendaFilters.svelte | 66 - .../lib/components/agenda/AgendaItem.svelte | 110 - .../birthday/BirthdayPopover.svelte | 269 --- .../lib/components/calendar/AgendaView.svelte | 440 ---- .../components/calendar/CalendarHeader.svelte | 63 - .../calendar/CalendarSidebar.svelte | 184 -- .../calendar/CalendarToolbar.svelte | 28 - .../calendar/CalendarToolbarContent.svelte | 102 - .../lib/components/calendar/DateStrip.svelte | 654 ------ .../components/calendar/DateStripFab.svelte | 110 - .../lib/components/calendar/EventCard.svelte | 268 --- .../components/calendar/MiniCalendar.svelte | 162 -- .../lib/components/calendar/MonthView.svelte | 626 ------ .../calendar/OverflowIndicator.svelte | 57 - .../calendar/PillCalendarSelector.svelte | 409 ---- .../lib/components/calendar/TagStrip.svelte | 316 --- .../components/calendar/TagStripModal.svelte | 804 -------- .../lib/components/calendar/TimeColumn.svelte | 42 - .../lib/components/calendar/UnifiedBar.svelte | 568 ------ .../calendar/UnifiedBarControls.svelte | 422 ---- .../components/calendar/ViewCarousel.svelte | 162 -- .../components/calendar/ViewModePill.svelte | 148 -- .../lib/components/calendar/ViewsBar.svelte | 162 -- .../lib/components/calendar/WeekView.svelte | 946 --------- .../components/event/AttendeeSelector.svelte | 266 --- .../components/event/EventDetailModal.svelte | 695 ------- .../src/lib/components/event/EventForm.svelte | 512 ----- .../components/event/QuickEventOverlay.svelte | 1816 ----------------- .../event/RecurrenceEditDialog.svelte | 109 - .../event/RecurrenceSelector.svelte | 306 --- .../components/event/ReminderSelector.svelte | 383 ---- .../event/ResponsiblePersonSelector.svelte | 209 -- .../settings/CalendarManagement.svelte | 501 ----- .../components/settings/SettingsModal.svelte | 705 ------- .../skeletons/AgendaSkeleton.svelte | 43 - .../skeletons/AppLoadingSkeleton.svelte | 55 - .../skeletons/CalendarViewSkeleton.svelte | 149 -- .../skeletons/EventDetailSkeleton.svelte | 75 - .../skeletons/RedirectSkeleton.svelte | 16 - .../src/lib/components/skeletons/index.ts | 21 - .../src/lib/components/tags/index.ts | 1 - .../components/voice/VoiceRecordButton.svelte | 223 -- .../voice/VoiceRecordingModal.svelte | 345 ---- .../web-archived/src/lib/composables/index.ts | 27 - .../composables/useBirthdayPopover.svelte.ts | 49 - .../composables/useCalendarKeyboard.svelte.ts | 41 - .../lib/composables/useDragToCreate.svelte.ts | 171 -- .../lib/composables/useDragToCreate.test.ts | 100 - .../composables/useEventDragDrop.svelte.ts | 427 ---- .../lib/composables/useEventDragDrop.test.ts | 174 -- .../composables/useSwipeNavigation.svelte.ts | 265 --- .../lib/composables/useVisibleHours.svelte.ts | 102 - .../web-archived/src/lib/config/helpConfig.ts | 79 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 210 -- .../web-archived/src/lib/data/guest-seed.ts | 74 - .../web-archived/src/lib/data/local-store.ts | 59 - .../apps/web-archived/src/lib/data/queries.ts | 220 -- .../apps/web-archived/src/lib/i18n/index.ts | 53 - .../web-archived/src/lib/i18n/locales/de.json | 296 --- .../web-archived/src/lib/i18n/locales/en.json | 296 --- .../web-archived/src/lib/i18n/locales/es.json | 275 --- .../web-archived/src/lib/i18n/locales/fr.json | 275 --- .../web-archived/src/lib/i18n/locales/it.json | 275 --- .../web-archived/src/lib/services/feedback.ts | 23 - .../apps/web-archived/src/lib/services/stt.ts | 148 -- .../src/lib/stores/app-onboarding.svelte.ts | 137 -- .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/birthdays.svelte.ts | 219 -- .../src/lib/stores/calendars.svelte.ts | 143 -- .../src/lib/stores/contacts.svelte.ts | 175 -- .../src/lib/stores/event-tags.svelte.ts | 11 - .../src/lib/stores/eventModal.svelte.ts | 54 - .../src/lib/stores/events-recurrence.test.ts | 120 -- .../src/lib/stores/events.svelte.ts | 208 -- .../src/lib/stores/events.test.ts | 163 -- .../lib/stores/external-calendars.svelte.ts | 139 -- .../src/lib/stores/external-calendars.test.ts | 128 -- .../web-archived/src/lib/stores/navigation.ts | 6 - .../src/lib/stores/search.svelte.ts | 61 - .../src/lib/stores/settings.svelte.ts | 309 --- .../src/lib/stores/shares.svelte.ts | 145 -- .../apps/web-archived/src/lib/stores/theme.ts | 7 - .../src/lib/stores/unified-bar.svelte.ts | 238 --- .../src/lib/stores/user-settings.svelte.ts | 28 - .../src/lib/stores/view.svelte.ts | 156 -- .../web-archived/src/lib/stores/view.test.ts | 161 -- .../src/lib/stores/voice-recording.svelte.ts | 243 --- .../src/lib/utils/audio-recorder.ts | 277 --- .../src/lib/utils/calendarConstants.ts | 60 - .../src/lib/utils/dateNavigation.test.ts | 55 - .../src/lib/utils/dateNavigation.ts | 39 - .../src/lib/utils/drag-helpers.ts | 73 - .../src/lib/utils/event-estimator.test.ts | 191 -- .../src/lib/utils/event-estimator.ts | 262 --- .../src/lib/utils/event-parser.test.ts | 358 ---- .../src/lib/utils/event-parser.ts | 502 ----- .../src/lib/utils/eventDateHelpers.test.ts | 62 - .../src/lib/utils/eventDateHelpers.ts | 41 - .../src/lib/utils/eventFiltering.test.ts | 179 -- .../src/lib/utils/eventFiltering.ts | 205 -- .../web-archived/src/lib/utils/syntax-help.ts | 70 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 751 ------- .../src/routes/(app)/+page.svelte | 217 -- .../src/routes/(app)/event/[id]/+page.svelte | 14 - .../src/routes/(app)/feedback/+page.svelte | 11 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/mana/+page.svelte | 38 - .../src/routes/(app)/profile/+page.svelte | 43 - .../src/routes/(app)/settings/+page.svelte | 610 ------ .../(app)/settings/sharing/+page.svelte | 537 ----- .../routes/(app)/settings/sync/+page.svelte | 898 -------- .../src/routes/(app)/tags/+page.svelte | 399 ---- .../src/routes/(app)/themes/+page.svelte | 19 - .../(app)/unified-bar-demo/+page.svelte | 191 -- .../src/routes/(auth)/+layout.svelte | 5 - .../(auth)/forgot-password/+page.svelte | 41 - .../src/routes/(auth)/login/+page.svelte | 82 - .../src/routes/(auth)/register/+page.svelte | 61 - .../routes/(auth)/reset-password/+page.svelte | 231 --- .../web-archived/src/routes/+error.svelte | 10 - .../web-archived/src/routes/+layout.svelte | 50 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../web-archived/static/apple-touch-icon.png | Bin 7358 -> 0 bytes .../apps/web-archived/static/favicon.png | Bin 1138 -> 0 bytes .../apps/web-archived/static/favicon.svg | 31 - .../apps/web-archived/static/pwa-192x192.png | Bin 7690 -> 0 bytes .../apps/web-archived/static/pwa-512x512.png | Bin 22157 -> 0 bytes .../apps/web-archived/svelte.config.js | 14 - apps/calendar/apps/web-archived/tsconfig.json | 14 - .../calendar/apps/web-archived/vite.config.ts | 40 - apps/cards/apps/web-archived/.env.example | 10 - apps/cards/apps/web-archived/.gitignore | 23 - apps/cards/apps/web-archived/.npmrc | 1 - apps/cards/apps/web-archived/Dockerfile | 33 - apps/cards/apps/web-archived/README.md | 38 - apps/cards/apps/web-archived/eslint.config.js | 17 - apps/cards/apps/web-archived/package.json | 57 - apps/cards/apps/web-archived/src/app.css | 11 - apps/cards/apps/web-archived/src/app.d.ts | 16 - apps/cards/apps/web-archived/src/app.html | 11 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 27 - .../apps/web-archived/src/lib/api/feedback.ts | 15 - .../web-archived/src/lib/assets/favicon.svg | 1 - apps/cards/apps/web-archived/src/lib/auth.ts | 175 -- .../src/lib/components/AppSlider.svelte | 37 - .../src/lib/components/Icon.svelte | 34 - .../lib/components/LanguageSelector.svelte | 19 - .../components/deck/CreateDeckModal.svelte | 108 - .../src/lib/components/deck/DeckCard.svelte | 59 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 141 -- .../web-archived/src/lib/data/guest-seed.ts | 51 - .../web-archived/src/lib/data/local-store.ts | 57 - .../apps/web-archived/src/lib/data/queries.ts | 90 - .../apps/web-archived/src/lib/i18n/index.ts | 60 - .../web-archived/src/lib/i18n/locales/de.json | 28 - .../web-archived/src/lib/i18n/locales/en.json | 28 - .../web-archived/src/lib/i18n/locales/es.json | 28 - .../web-archived/src/lib/i18n/locales/fr.json | 28 - .../web-archived/src/lib/i18n/locales/it.json | 28 - apps/cards/apps/web-archived/src/lib/index.ts | 1 - .../src/lib/stores/app-onboarding.svelte.ts | 76 - .../src/lib/stores/auth.svelte.ts | 7 - .../src/lib/stores/cardStore.svelte.ts | 125 -- .../src/lib/stores/deckStore.svelte.ts | 91 - .../web-archived/src/lib/stores/navigation.ts | 3 - .../src/lib/stores/progressStore.svelte.ts | 307 --- .../src/lib/stores/tags.svelte.ts | 13 - .../apps/web-archived/src/lib/stores/theme.ts | 25 - .../src/lib/stores/user-settings.svelte.ts | 27 - .../apps/web-archived/src/lib/types/auth.ts | 76 - .../apps/web-archived/src/lib/types/card.ts | 65 - .../web-archived/src/lib/types/credits.ts | 40 - .../apps/web-archived/src/lib/types/deck.ts | 30 - .../apps/web-archived/src/lib/types/study.ts | 43 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 353 ---- .../src/routes/(app)/apps/+page.svelte | 14 - .../src/routes/(app)/decks/+page.svelte | 104 - .../src/routes/(app)/decks/[id]/+page.svelte | 169 -- .../src/routes/(app)/explore/+page.svelte | 22 - .../src/routes/(app)/feedback/+page.svelte | 7 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/mana/+page.svelte | 18 - .../src/routes/(app)/profile/+page.svelte | 43 - .../src/routes/(app)/progress/+page.svelte | 137 -- .../src/routes/(app)/settings/+page.svelte | 41 - .../src/routes/(app)/tags/+page.svelte | 44 - .../src/routes/(app)/themes/+page.svelte | 19 - .../(auth)/forgot-password/+page.svelte | 26 - .../src/routes/(auth)/login/+page.svelte | 58 - .../src/routes/(auth)/register/+page.svelte | 43 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 19 - .../apps/web-archived/src/routes/+layout.ts | 7 - .../apps/web-archived/src/routes/+page.svelte | 24 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../images/app-icons/cards-logo-gradient.png | Bin 268878 -> 0 bytes .../maerchenzauber-logo-gradient.png | Bin 392962 -> 0 bytes .../app-icons/manacore-logo-gradient.png | Bin 268878 -> 0 bytes .../images/app-icons/memoro-logo-gradient.png | Bin 103536 -> 0 bytes .../app-icons/moodlit-logo-gradient.png | Bin 441413 -> 0 bytes .../cards/apps/web-archived/static/robots.txt | 3 - apps/cards/apps/web-archived/svelte.config.js | 18 - .../apps/web-archived/tailwind.config.js.bak | 12 - apps/cards/apps/web-archived/tsconfig.json | 20 - apps/cards/apps/web-archived/vite.config.ts | 34 - apps/chat/apps/web-archived/.env.example | 5 - apps/chat/apps/web-archived/Dockerfile | 32 - apps/chat/apps/web-archived/eslint.config.js | 17 - apps/chat/apps/web-archived/package.json | 60 - apps/chat/apps/web-archived/src/app.css | 10 - apps/chat/apps/web-archived/src/app.d.ts | 21 - apps/chat/apps/web-archived/src/app.html | 12 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 37 - .../src/lib/components/AppSlider.svelte | 33 - .../lib/components/LanguageSelector.svelte | 19 - .../src/lib/components/chat/ChatInput.svelte | 149 -- .../src/lib/components/chat/ChatLayout.svelte | 552 ----- .../components/chat/ConversationList.svelte | 224 -- .../lib/components/chat/MessageBubble.svelte | 232 --- .../lib/components/chat/MessageList.svelte | 50 - .../lib/components/chat/ModelSelector.svelte | 42 - .../components/chat/TypingIndicator.svelte | 68 - .../components/compare/CompareInput.svelte | 116 -- .../components/compare/CompareProgress.svelte | 43 - .../compare/ModelResponseCard.svelte | 185 -- .../compare/ModelResponseGrid.svelte | 27 - .../lib/components/spaces/SpaceCard.svelte | 127 -- .../lib/components/spaces/SpaceForm.svelte | 106 - .../components/templates/TemplateCard.svelte | 96 - .../components/templates/TemplateForm.svelte | 262 --- .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 165 -- .../web-archived/src/lib/data/guest-seed.ts | 30 - .../web-archived/src/lib/data/local-store.ts | 71 - .../apps/web-archived/src/lib/data/queries.ts | 134 -- .../apps/web-archived/src/lib/i18n/index.ts | 52 - .../web-archived/src/lib/i18n/locales/de.json | 13 - .../web-archived/src/lib/i18n/locales/en.json | 13 - .../web-archived/src/lib/i18n/locales/es.json | 13 - .../web-archived/src/lib/i18n/locales/fr.json | 13 - .../web-archived/src/lib/i18n/locales/it.json | 13 - .../apps/web-archived/src/lib/services/api.ts | 662 ------ .../web-archived/src/lib/services/chat.ts | 54 - .../src/lib/services/conversation.ts | 223 -- .../web-archived/src/lib/services/document.ts | 88 - .../web-archived/src/lib/services/feedback.ts | 15 - .../web-archived/src/lib/services/space.ts | 120 -- .../web-archived/src/lib/services/template.ts | 87 - .../src/lib/stores/app-onboarding.svelte.ts | 75 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/chat.svelte.ts | 147 -- .../src/lib/stores/compare.svelte.ts | 183 -- .../src/lib/stores/conversations.svelte.ts | 132 -- .../web-archived/src/lib/stores/navigation.ts | 7 - .../stores/session-conversations.svelte.ts | 183 -- .../src/lib/stores/spaces.svelte.ts | 122 -- .../src/lib/stores/tags.svelte.ts | 11 - .../src/lib/stores/templates.svelte.ts | 101 - .../apps/web-archived/src/lib/stores/theme.ts | 10 - .../src/lib/stores/user-settings.svelte.ts | 27 - .../chat/apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(auth)/+layout.svelte | 5 - .../(auth)/forgot-password/+page.svelte | 41 - .../src/routes/(auth)/login/+page.svelte | 90 - .../src/routes/(auth)/register/+page.svelte | 61 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../src/routes/(protected)/+layout.server.ts | 13 - .../src/routes/(protected)/+layout.svelte | 369 ---- .../src/routes/(protected)/apps/+page.svelte | 14 - .../routes/(protected)/archive/+page.svelte | 117 -- .../routes/(protected)/chat/+layout.svelte | 6 - .../src/routes/(protected)/chat/+page.svelte | 208 -- .../routes/(protected)/chat/[id]/+page.svelte | 369 ---- .../routes/(protected)/compare/+page.svelte | 146 -- .../routes/(protected)/documents/+page.svelte | 160 -- .../routes/(protected)/feedback/+page.svelte | 7 - .../src/routes/(protected)/help/+page.svelte | 32 - .../src/routes/(protected)/mana/+page.svelte | 39 - .../routes/(protected)/profile/+page.svelte | 80 - .../routes/(protected)/settings/+page.svelte | 137 -- .../routes/(protected)/spaces/+page.svelte | 165 -- .../(protected)/spaces/[id]/+page.svelte | 156 -- .../src/routes/(protected)/tags/+page.svelte | 45 - .../routes/(protected)/templates/+page.svelte | 168 -- .../routes/(protected)/themes/+page.svelte | 19 - .../web-archived/src/routes/+layout.svelte | 25 - .../apps/web-archived/src/routes/+page.svelte | 29 - .../web-archived/src/routes/health/+server.ts | 9 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - apps/chat/apps/web-archived/svelte.config.js | 21 - apps/chat/apps/web-archived/tsconfig.json | 14 - apps/chat/apps/web-archived/vite.config.ts | 35 - apps/citycorners/apps/web-archived/Dockerfile | 31 - .../apps/web-archived/docker-entrypoint.sh | 9 - .../apps/web-archived/package.json | 53 - .../citycorners/apps/web-archived/src/app.css | 8 - .../apps/web-archived/src/app.d.ts | 9 - .../apps/web-archived/src/app.html | 19 - .../apps/web-archived/src/hooks.client.ts | 5 - .../apps/web-archived/src/hooks.server.ts | 27 - .../apps/web-archived/src/lib/api.test.ts | 52 - .../apps/web-archived/src/lib/api.ts | 14 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 258 --- .../web-archived/src/lib/data/guest-seed.ts | 109 - .../web-archived/src/lib/data/local-store.ts | 82 - .../apps/web-archived/src/lib/data/queries.ts | 179 -- .../apps/web-archived/src/lib/i18n/index.ts | 40 - .../web-archived/src/lib/i18n/locales/de.json | 255 --- .../web-archived/src/lib/i18n/locales/en.json | 255 --- .../web-archived/src/lib/opening-hours.ts | 31 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/favorites.svelte.ts | 47 - .../src/lib/stores/tags.svelte.ts | 13 - .../src/lib/stores/theme.svelte.ts | 89 - .../src/routes/(app)/+layout.svelte | 423 ---- .../src/routes/(app)/+page.svelte | 167 -- .../src/routes/(app)/add-city/+page.svelte | 254 --- .../src/routes/(app)/add/+page.svelte | 9 - .../routes/(app)/cities/[slug]/+layout.svelte | 37 - .../routes/(app)/cities/[slug]/+page.svelte | 260 --- .../(app)/cities/[slug]/add/+page.svelte | 427 ---- .../cities/[slug]/locations/[id]/+page.svelte | 740 ------- .../[slug]/locations/[id]/edit/+page.svelte | 268 --- .../(app)/cities/[slug]/map/+page.svelte | 158 -- .../src/routes/(app)/favorites/+page.svelte | 373 ---- .../src/routes/(app)/feedback/+page.svelte | 24 - .../src/routes/(app)/help/+page.svelte | 32 - .../routes/(app)/locations/[id]/+page.svelte | 10 - .../(app)/locations/[id]/edit/+page.svelte | 8 - .../src/routes/(app)/map/+page.svelte | 9 - .../src/routes/(app)/profile/+page.svelte | 6 - .../src/routes/(app)/settings/+page.svelte | 120 -- .../src/routes/(app)/tags/+page.svelte | 44 - .../src/routes/(app)/themes/+page.svelte | 19 - .../src/routes/(auth)/+layout.svelte | 16 - .../(auth)/forgot-password/+page.svelte | 32 - .../src/routes/(auth)/login/+page.svelte | 64 - .../src/routes/(auth)/register/+page.svelte | 37 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 45 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 22 - .../web-archived/src/routes/offline/+page.ts | 1 - .../apps/web-archived/static/favicon.png | Bin 161 -> 0 bytes .../apps/web-archived/svelte.config.js | 14 - .../apps/web-archived/tsconfig.json | 14 - .../apps/web-archived/vite.config.ts | 35 - apps/contacts/apps/web-archived/Dockerfile | 31 - .../apps/web-archived/e2e/auth.spec.ts | 92 - .../apps/web-archived/e2e/contacts.spec.ts | 156 -- .../apps/web-archived/e2e/fixtures/auth.ts | 134 -- .../apps/web-archived/e2e/tags.spec.ts | 81 - .../apps/web-archived/eslint.config.js | 17 - apps/contacts/apps/web-archived/package.json | 66 - .../apps/web-archived/playwright.config.ts | 39 - apps/contacts/apps/web-archived/src/app.css | 151 -- apps/contacts/apps/web-archived/src/app.d.ts | 2 - apps/contacts/apps/web-archived/src/app.html | 24 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 45 - .../apps/web-archived/src/lib/api/batch.ts | 37 - .../apps/web-archived/src/lib/api/client.ts | 80 - .../apps/web-archived/src/lib/api/config.ts | 13 - .../web-archived/src/lib/api/contacts.test.ts | 287 --- .../apps/web-archived/src/lib/api/contacts.ts | 342 ---- .../src/lib/api/duplicates.test.ts | 139 -- .../web-archived/src/lib/api/duplicates.ts | 59 - .../apps/web-archived/src/lib/api/export.ts | 99 - .../apps/web-archived/src/lib/api/google.ts | 131 -- .../apps/web-archived/src/lib/api/import.ts | 154 -- .../apps/web-archived/src/lib/api/todos.ts | 232 --- .../components/AlphabetNavContextMenu.svelte | 86 - .../src/lib/components/AppSlider.svelte | 33 - .../lib/components/ContactDetailModal.svelte | 1502 -------------- .../src/lib/components/ContactList.svelte | 383 ---- .../src/lib/components/ContactNotes.svelte | 562 ----- .../src/lib/components/ContactTasks.svelte | 498 ----- .../src/lib/components/ContactsToolbar.svelte | 117 -- .../components/ContactsToolbarContent.svelte | 172 -- .../src/lib/components/FilterBar.svelte | 677 ------ .../lib/components/LanguageSelector.svelte | 19 - .../src/lib/components/NewContactModal.svelte | 1034 ---------- .../src/lib/components/SearchModal.svelte | 471 ----- .../lib/components/SocialMediaLinks.svelte | 145 -- .../src/lib/components/SortToggle.svelte | 66 - .../src/lib/components/SpiralCanvas.svelte | 165 -- .../src/lib/components/TagStrip.svelte | 318 --- .../src/lib/components/TagStripModal.svelte | 804 -------- .../src/lib/components/ViewModeToggle.svelte | 62 - .../components/duplicates/MergeModal.svelte | 206 -- .../lib/components/export/ExportModal.svelte | 161 -- .../lib/components/forms/DateFields.svelte | 320 --- .../components/forms/SocialMediaFields.svelte | 356 ---- .../lib/components/import/FileUploader.svelte | 104 - .../lib/components/import/GoogleImport.svelte | 389 ---- .../components/import/ImportPreview.svelte | 206 -- .../skeletons/ContactCardSkeleton.svelte | 70 - .../skeletons/ContactDetailSkeleton.svelte | 171 -- .../skeletons/ContactGridSkeleton.svelte | 52 - .../skeletons/ContactListSkeleton.svelte | 26 - .../skeletons/ContactNotesSkeleton.svelte | 40 - .../skeletons/ContactRowSkeleton.svelte | 45 - .../skeletons/DuplicateGroupSkeleton.svelte | 89 - .../skeletons/DuplicateListSkeleton.svelte | 66 - .../skeletons/GoogleImportSkeleton.svelte | 51 - .../skeletons/ImportPreviewSkeleton.svelte | 118 -- .../skeletons/TagCardSkeleton.svelte | 36 - .../skeletons/TagGridSkeleton.svelte | 45 - .../src/lib/components/skeletons/index.ts | 38 - .../views/ContactAlphabetView.svelte | 862 -------- .../components/views/ContactGridView.svelte | 411 ---- .../src/lib/config/social-media.ts | 168 -- .../src/lib/constants/contact-fields.ts | 27 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 162 -- .../src/lib/data/demo-contacts.ts | 215 -- .../web-archived/src/lib/data/guest-seed.ts | 54 - .../web-archived/src/lib/data/local-store.ts | 48 - .../apps/web-archived/src/lib/data/queries.ts | 87 - .../apps/web-archived/src/lib/i18n/index.ts | 52 - .../web-archived/src/lib/i18n/locales/de.json | 219 -- .../web-archived/src/lib/i18n/locales/en.json | 219 -- .../web-archived/src/lib/i18n/locales/es.json | 219 -- .../web-archived/src/lib/i18n/locales/fr.json | 219 -- .../web-archived/src/lib/i18n/locales/it.json | 219 -- .../web-archived/src/lib/services/feedback.ts | 23 - .../src/lib/stores/app-onboarding.svelte.ts | 126 -- .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/contacts.svelte.ts | 111 - .../src/lib/stores/filter.svelte.ts | 136 -- .../src/lib/stores/filter.test.ts | 155 -- .../web-archived/src/lib/stores/navigation.ts | 3 - .../lib/stores/new-contact-modal.svelte.ts | 41 - .../src/lib/stores/settings.svelte.ts | 176 -- .../src/lib/stores/spiral.svelte.ts | 202 -- .../src/lib/stores/tags.svelte.ts | 11 - .../apps/web-archived/src/lib/stores/theme.ts | 7 - .../src/lib/stores/todos.svelte.ts | 209 -- .../src/lib/stores/user-settings.svelte.ts | 28 - .../src/lib/stores/view-mode.svelte.ts | 74 - .../src/lib/utils/contact-display.ts | 26 - .../src/lib/utils/contact-parser.test.ts | 175 -- .../src/lib/utils/contact-parser.ts | 227 --- .../src/lib/utils/duplicate-detector.test.ts | 82 - .../src/lib/utils/duplicate-detector.ts | 146 -- .../src/lib/utils/error-helpers.ts | 6 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 591 ------ .../src/routes/(app)/+page.svelte | 27 - .../src/routes/(app)/archive/+page.svelte | 569 ------ .../routes/(app)/contacts/[id]/+page.svelte | 12 - .../src/routes/(app)/data/+page.svelte | 542 ----- .../src/routes/(app)/duplicates/+page.svelte | 224 -- .../src/routes/(app)/feedback/+page.svelte | 7 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/mana/+page.svelte | 40 - .../src/routes/(app)/profile/+page.svelte | 43 - .../src/routes/(app)/settings/+page.svelte | 465 ----- .../src/routes/(app)/spiral/+page.svelte | 527 ----- .../src/routes/(app)/tags/+page.svelte | 299 --- .../src/routes/(app)/themes/+page.svelte | 19 - .../src/routes/(auth)/+layout.svelte | 5 - .../(auth)/forgot-password/+page.svelte | 40 - .../src/routes/(auth)/login/+page.svelte | 79 - .../src/routes/(auth)/register/+page.svelte | 58 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+error.svelte | 9 - .../web-archived/src/routes/+layout.svelte | 43 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../apps/web-archived/svelte.config.js | 21 - apps/contacts/apps/web-archived/tsconfig.json | 14 - .../contacts/apps/web-archived/vite.config.ts | 40 - .../apps/mobile/components/variants/index.ts | 0 apps/context/apps/web-archived/package.json | 59 - apps/context/apps/web-archived/src/app.css | 10 - apps/context/apps/web-archived/src/app.html | 12 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 27 - .../apps/web-archived/src/lib/api/client.ts | 20 - .../src/lib/components/AIToolbar.svelte | 222 -- .../lib/components/BatchCreateModal.svelte | 130 -- .../lib/components/CreateSpaceModal.svelte | 69 - .../src/lib/components/DocumentCard.svelte | 93 - .../src/lib/components/DocumentEditor.svelte | 321 --- .../src/lib/components/MentionInput.svelte | 137 -- .../src/lib/components/SpaceCard.svelte | 85 - .../lib/components/VersionNavigator.svelte | 104 - .../skeletons/AppLoadingSkeleton.svelte | 72 - .../src/lib/components/skeletons/index.ts | 1 - .../web-archived/src/lib/config/editor.ts | 11 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 153 -- .../web-archived/src/lib/data/guest-seed.ts | 43 - .../web-archived/src/lib/data/local-store.ts | 59 - .../apps/web-archived/src/lib/data/queries.ts | 147 -- .../apps/web-archived/src/lib/i18n/index.ts | 40 - .../web-archived/src/lib/i18n/locales/de.json | 68 - .../web-archived/src/lib/i18n/locales/en.json | 68 - .../apps/web-archived/src/lib/services/ai.ts | 131 -- .../src/lib/services/documents.ts | 125 -- .../web-archived/src/lib/services/spaces.ts | 53 - .../web-archived/src/lib/services/tokens.ts | 124 -- .../src/lib/stores/app-onboarding.svelte.ts | 76 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/documents.svelte.ts | 150 -- .../web-archived/src/lib/stores/navigation.ts | 5 - .../src/lib/stores/spaces.svelte.ts | 90 - .../src/lib/stores/tags.svelte.ts | 13 - .../src/lib/stores/theme.svelte.ts | 6 - .../src/lib/stores/tokens.svelte.ts | 64 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../apps/web-archived/src/lib/types.ts | 87 - .../web-archived/src/lib/utils/markdown.ts | 62 - .../apps/web-archived/src/lib/utils/text.ts | 49 - .../src/routes/(app)/+layout.svelte | 402 ---- .../src/routes/(app)/+page.svelte | 131 -- .../src/routes/(app)/documents/+page.svelte | 200 -- .../routes/(app)/documents/[id]/+page.svelte | 174 -- .../src/routes/(app)/feedback/+page.svelte | 24 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/mana/+page.svelte | 13 - .../src/routes/(app)/profile/+page.svelte | 12 - .../src/routes/(app)/settings/+page.svelte | 26 - .../src/routes/(app)/spaces/+page.svelte | 141 -- .../src/routes/(app)/spaces/[id]/+page.svelte | 287 --- .../src/routes/(app)/tags/+page.svelte | 44 - .../src/routes/(app)/themes/+page.svelte | 29 - .../src/routes/(app)/tokens/+page.svelte | 178 -- .../(auth)/forgot-password/+page.svelte | 22 - .../src/routes/(auth)/login/+page.svelte | 65 - .../src/routes/(auth)/register/+page.svelte | 49 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 39 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../apps/web-archived/svelte.config.js | 21 - apps/context/apps/web-archived/tsconfig.json | 14 - apps/context/apps/web-archived/vite.config.ts | 33 - apps/guides/apps/web-archived/package.json | 61 - apps/guides/apps/web-archived/src/app.css | 35 - apps/guides/apps/web-archived/src/app.d.ts | 2 - apps/guides/apps/web-archived/src/app.html | 26 - .../apps/web-archived/src/hooks.client.ts | 12 - .../lib/components/CollectionEditModal.svelte | 142 -- .../src/lib/components/GuideCard.svelte | 79 - .../src/lib/components/GuideEditModal.svelte | 281 --- .../src/lib/components/ImportModal.svelte | 338 --- .../src/lib/components/StepEditorModal.svelte | 171 -- .../web-archived/src/lib/data/guest-seed.ts | 245 --- .../web-archived/src/lib/data/local-store.ts | 120 -- .../apps/web-archived/src/lib/i18n/index.ts | 26 - .../web-archived/src/lib/i18n/locales/de.json | 22 - .../web-archived/src/lib/i18n/locales/en.json | 22 - .../src/lib/stores/auth.svelte.ts | 3 - .../src/lib/stores/guides.svelte.ts | 136 -- .../src/lib/stores/runs.svelte.ts | 87 - .../apps/web-archived/src/lib/stores/theme.ts | 3 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 259 --- .../src/routes/(app)/+page.svelte | 158 -- .../src/routes/(app)/collections/+page.svelte | 143 -- .../(app)/collections/[id]/+page.svelte | 174 -- .../src/routes/(app)/guide/[id]/+page.svelte | 578 ------ .../routes/(app)/guide/[id]/run/+page.svelte | 278 --- .../src/routes/(app)/history/+page.svelte | 114 -- .../(auth)/forgot-password/+page.svelte | 29 - .../src/routes/(auth)/login/+page.svelte | 56 - .../src/routes/(auth)/register/+page.svelte | 39 - .../routes/(auth)/reset-password/+page.svelte | 91 - .../web-archived/src/routes/+layout.svelte | 37 - .../src/routes/shared/+layout.svelte | 5 - .../src/routes/shared/[token]/+page.svelte | 211 -- .../guides/apps/web-archived/svelte.config.js | 14 - apps/guides/apps/web-archived/tsconfig.json | 14 - apps/guides/apps/web-archived/vite.config.ts | 49 - apps/inventar/apps/web-archived/Dockerfile | 53 - apps/inventar/apps/web-archived/package.json | 52 - apps/inventar/apps/web-archived/src/app.css | 55 - apps/inventar/apps/web-archived/src/app.d.ts | 16 - apps/inventar/apps/web-archived/src/app.html | 18 - .../apps/web-archived/src/hooks.client.ts | 10 - .../apps/web-archived/src/hooks.server.ts | 33 - .../src/lib/components/StatusBadge.svelte | 27 - .../src/lib/components/ViewModeToggle.svelte | 42 - .../lib/components/fields/FieldEditor.svelte | 127 -- .../components/fields/FieldRenderer.svelte | 70 - .../lib/components/fields/SchemaEditor.svelte | 217 -- .../skeletons/CollectionListSkeleton.svelte | 30 - .../skeletons/ItemListSkeleton.svelte | 26 - .../src/lib/components/skeletons/index.ts | 2 - .../web-archived/src/lib/data/guest-seed.ts | 100 - .../web-archived/src/lib/data/local-store.ts | 120 -- .../apps/web-archived/src/lib/data/queries.ts | 288 --- .../apps/web-archived/src/lib/i18n/index.ts | 38 - .../web-archived/src/lib/i18n/locales/de.json | 148 -- .../web-archived/src/lib/i18n/locales/en.json | 148 -- .../web-archived/src/lib/services/feedback.ts | 18 - .../src/lib/stores/auth.svelte.ts | 7 - .../src/lib/stores/categories.svelte.ts | 44 - .../src/lib/stores/collections.svelte.ts | 57 - .../src/lib/stores/items.svelte.ts | 123 -- .../src/lib/stores/locations.svelte.ts | 61 - .../web-archived/src/lib/stores/navigation.ts | 6 - .../apps/web-archived/src/lib/stores/theme.ts | 6 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../src/lib/stores/view.svelte.ts | 105 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 186 -- .../src/routes/(app)/+page.svelte | 135 -- .../src/routes/(app)/categories/+page.svelte | 147 -- .../(app)/collections/[id]/+page.svelte | 285 --- .../(app)/collections/[id]/edit/+page.svelte | 114 -- .../routes/(app)/collections/new/+page.svelte | 146 -- .../src/routes/(app)/feedback/+page.svelte | 7 - .../src/routes/(app)/help/+page.svelte | 5 - .../src/routes/(app)/items/+page.svelte | 142 -- .../src/routes/(app)/items/[id]/+page.svelte | 317 --- .../src/routes/(app)/locations/+page.svelte | 156 -- .../src/routes/(app)/mana/+page.svelte | 39 - .../src/routes/(app)/profile/+page.svelte | 6 - .../src/routes/(app)/search/+page.svelte | 63 - .../src/routes/(app)/settings/+page.svelte | 88 - .../src/routes/(app)/themes/+page.svelte | 6 - .../src/routes/(auth)/+layout.svelte | 5 - .../src/routes/(auth)/login/+page.svelte | 263 --- .../web-archived/src/routes/+error.svelte | 19 - .../web-archived/src/routes/+layout.svelte | 35 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 27 - .../web-archived/src/routes/offline/+page.ts | 1 - .../apps/web-archived/static/favicon.svg | 6 - .../apps/web-archived/static/icons/icon.svg | 6 - .../apps/web-archived/svelte.config.js | 14 - apps/inventar/apps/web-archived/tsconfig.json | 14 - .../inventar/apps/web-archived/vite.config.ts | 64 - .../lib/components/workbench/AppPage.svelte | 7 + .../apps/web/src/routes/(app)/+layout.svelte | 8 +- .../apps/web/src/routes/(app)/+page.svelte | 10 +- .../(app)/organizations/+page.server.ts | 15 - .../routes/(app)/organizations/+page.svelte | 97 +- .../src/routes/(app)/settings/+page.server.ts | 15 - .../src/routes/(app)/teams/+page.server.ts | 15 - .../web/src/routes/(app)/teams/+page.svelte | 95 +- apps/memoro/apps/web-archived/.env.example | 37 - apps/memoro/apps/web-archived/.gitignore | 28 - apps/memoro/apps/web-archived/.npmrc | 1 - .../APPLE_SIGNIN_COMPLETE_GUIDE.md | 708 ------- apps/memoro/apps/web-archived/Dockerfile | 62 - .../GOOGLE_SIGNIN_COMPLETE_GUIDE.md | 901 -------- apps/memoro/apps/web-archived/README.md | 107 - .../docs/ENVIRONMENT_VARIABLES.md | 318 --- .../web-archived/docs/FEATURE_COMPARISON.md | 474 ----- .../docs/MEMO_DETAILS_FEATURE_PLAN.md | 512 ----- .../docs/RING_ANIMATION_GUIDELINES.md | 162 -- .../docs/archive/IMPLEMENTATION_SUMMARY.md | 724 ------- .../docs/archive/PHASE_2_SUMMARY.md | 671 ------ .../archive/PHASE_3_TAG_MANAGEMENT_SUMMARY.md | 586 ------ .../docs/archive/PHASE_4_OAUTH_SUMMARY.md | 466 ----- .../docs/archive/SPA_CONVERSION_COMPLETE.md | 220 -- apps/memoro/apps/web-archived/package.json | 59 - apps/memoro/apps/web-archived/src/app.css | 62 - apps/memoro/apps/web-archived/src/app.d.ts | 33 - apps/memoro/apps/web-archived/src/app.html | 65 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 68 - .../web-archived/src/lib/assets/favicon.svg | 1 - .../src/lib/components/AdviceCarousel.svelte | 226 -- .../src/lib/components/AppSlider.svelte | 375 ---- .../lib/components/AppleSignInButton.svelte | 83 - .../src/lib/components/AudioPlayer.svelte | 257 --- .../src/lib/components/AudioRecorder.svelte | 281 --- .../src/lib/components/BillingToggle.svelte | 40 - .../src/lib/components/BlueprintCard.svelte | 178 -- .../src/lib/components/BlueprintModal.svelte | 279 --- .../components/BlueprintModal.svelte.backup | 321 --- .../lib/components/BlueprintSelector.svelte | 174 -- .../src/lib/components/ContextMenu.svelte | 296 --- .../src/lib/components/CostCard.svelte | 55 - .../lib/components/GoogleSignInButton.svelte | 1 - .../src/lib/components/Icon.svelte | 37 - .../lib/components/LanguageSelector.svelte | 234 --- .../src/lib/components/ManaIcon.svelte | 16 - .../src/lib/components/MemoroLogo.svelte | 20 - .../src/lib/components/MemoryAccordion.svelte | 89 - .../src/lib/components/Modal.svelte | 107 - .../src/lib/components/PackageCard.svelte | 113 - .../src/lib/components/PillDropdown.svelte | 299 --- .../src/lib/components/PillFilter.svelte | 81 - .../src/lib/components/PillNavigation.svelte | 618 ------ .../src/lib/components/RecordingButton.svelte | 609 ------ .../src/lib/components/SectionHeader.svelte | 44 - .../src/lib/components/SettingsToggle.svelte | 112 - .../src/lib/components/Sidebar.svelte | 846 -------- .../src/lib/components/SplitView.svelte | 144 -- .../lib/components/SubscriptionButton.svelte | 70 - .../lib/components/SubscriptionCard.svelte | 141 -- .../src/lib/components/TabBar.svelte | 139 -- .../src/lib/components/TagBadge.svelte | 65 - .../src/lib/components/TagEditModal.svelte | 148 -- .../src/lib/components/TagSelector.svelte | 174 -- .../src/lib/components/ThemeSelector.svelte | 233 --- .../src/lib/components/ThemeToggle.svelte | 44 - .../src/lib/components/Toggle.svelte | 31 - .../src/lib/components/UsageCard.svelte | 78 - .../src/lib/components/VirtualList.svelte | 131 -- .../src/lib/components/atoms/Text.svelte | 50 - .../src/lib/components/atoms/index.ts | 1 - .../components/audio/ArchiveStatistics.svelte | 103 - .../lib/components/audio/AudioFileCard.svelte | 157 -- .../lib/components/audio/AudioFileList.svelte | 75 - .../src/lib/components/icons/README.md | 131 -- .../src/lib/components/icons/iconPaths.ts | 124 -- .../memo/AdditionalRecordings.svelte | 257 --- .../components/memo/EditModeToolbar.svelte | 73 - .../lib/components/memo/MemoActions.svelte | 384 ---- .../lib/components/memo/MemoContent.svelte | 106 - .../src/lib/components/memo/MemoHeader.svelte | 360 ---- .../src/lib/components/memo/MemoPanel.svelte | 707 ------- .../lib/components/memo/PhotoGallery.svelte | 242 --- .../src/lib/components/memo/PinButton.svelte | 45 - .../src/lib/components/memo/PromptBar.svelte | 177 -- .../memo/StructuredTranscript.svelte | 97 - .../memo/modals/CreateMemoryModal.svelte | 185 -- .../components/memo/modals/DeleteModal.svelte | 98 - .../memo/modals/ReplaceWordModal.svelte | 275 --- .../memo/modals/ReprocessModal.svelte | 304 --- .../memo/modals/SearchOverlay.svelte | 210 -- .../components/memo/modals/ShareModal.svelte | 260 --- .../memo/modals/ShortcutsModal.svelte | 78 - .../memo/modals/SpaceSelectorModal.svelte | 257 --- .../memo/modals/SpeakerLabelModal.svelte | 222 -- .../memo/modals/TagSelectorModal.svelte | 195 -- .../memo/modals/TranslateModal.svelte | 249 --- .../src/lib/components/skeletons/OVERVIEW.md | 264 --- .../src/lib/components/skeletons/README.md | 252 --- .../src/lib/components/skeletons/index.ts | 20 - .../pages/BlueprintsPageSkeleton.svelte | 81 - .../skeletons/pages/DashboardSkeleton.svelte | 112 - .../pages/SettingsPageSkeleton.svelte | 127 -- .../skeletons/pages/SpacesPageSkeleton.svelte | 75 - .../pages/StatisticsPageSkeleton.svelte | 136 -- .../pages/SubscriptionPageSkeleton.svelte | 145 -- .../skeletons/pages/TagsPageSkeleton.svelte | 41 - .../skeletons/pages/UploadPageSkeleton.svelte | 99 - .../skeletons/utils/SkeletonBox.svelte | 58 - .../skeletons/utils/SkeletonText.svelte | 32 - .../statistics/EngagementCard.svelte | 76 - .../components/statistics/GlassCard.svelte | 21 - .../components/statistics/InsightsCard.svelte | 112 - .../components/statistics/OverviewCard.svelte | 66 - .../statistics/ProductivityCard.svelte | 113 - .../lib/components/statistics/StatRow.svelte | 183 -- .../apps/web-archived/src/lib/config/env.ts | 81 - .../web-archived/src/lib/data/appCosts.json | 28 - .../web-archived/src/lib/data/guest-seed.ts | 101 - .../web-archived/src/lib/data/local-store.ts | 143 -- .../src/lib/data/subscriptionData.json | 167 -- .../web-archived/src/lib/data/usageData.json | 18 - .../apps/web-archived/src/lib/i18n/index.ts | 54 - .../web-archived/src/lib/i18n/locales/de.json | 320 --- .../web-archived/src/lib/i18n/locales/en.json | 320 --- .../web-archived/src/lib/i18n/locales/es.json | 319 --- .../web-archived/src/lib/i18n/locales/fr.json | 319 --- .../web-archived/src/lib/i18n/locales/it.json | 319 --- .../memoro/apps/web-archived/src/lib/index.ts | 1 - .../src/lib/services/audioStorageService.ts | 232 --- .../src/lib/services/audioUploadService.ts | 160 -- .../src/lib/services/creditService.ts | 172 -- .../src/lib/services/memoService.ts | 293 --- .../src/lib/services/questionService.ts | 94 - .../src/lib/services/spaceService.ts | 280 --- .../src/lib/services/tagService.ts | 94 - .../src/lib/services/tokenManager.ts | 605 ------ .../src/lib/services/transcriptionService.ts | 90 - .../src/lib/stores/auth.svelte.ts | 9 - .../apps/web-archived/src/lib/stores/memos.ts | 123 -- .../web-archived/src/lib/stores/navigation.ts | 4 - .../web-archived/src/lib/stores/recording.ts | 44 - .../src/lib/stores/ringsInitialized.ts | 5 - .../web-archived/src/lib/stores/settings.ts | 154 -- .../apps/web-archived/src/lib/stores/tabs.ts | 254 --- .../apps/web-archived/src/lib/stores/tags.ts | 22 - .../apps/web-archived/src/lib/stores/theme.ts | 141 -- .../web-archived/src/lib/supabaseClient.ts | 90 - .../src/lib/types/database.types.ts | 28 - .../web-archived/src/lib/types/memo.types.ts | 91 - .../web-archived/src/lib/utils/appleAuth.ts | 235 --- .../web-archived/src/lib/utils/formatters.ts | 60 - .../web-archived/src/lib/utils/googleAuth.ts | 191 -- .../src/lib/utils/indexedDBCache.ts | 155 -- .../src/lib/utils/keyboardShortcuts.ts | 232 --- .../src/lib/utils/realtimeUpdates.ts | 185 -- .../src/routes/(protected)/+layout.svelte | 135 -- .../(protected)/audio-archive/+page.svelte | 138 -- .../(protected)/blueprints/+page.svelte | 426 ---- .../routes/(protected)/dashboard/+page.svelte | 22 - .../src/routes/(protected)/memos/+page.svelte | 764 ------- .../routes/(protected)/record/+page.svelte | 129 -- .../routes/(protected)/settings/+page.svelte | 419 ---- .../routes/(protected)/spaces/+page.svelte | 37 - .../(protected)/statistics/+page.svelte | 437 ---- .../(protected)/subscription/+page.svelte | 103 - .../src/routes/(protected)/tags/+page.svelte | 411 ---- .../routes/(protected)/upload/+page.svelte | 532 ----- .../src/routes/(public)/+layout.svelte | 16 - .../src/routes/(public)/login/+page.svelte | 875 -------- .../src/routes/(public)/register/+page.svelte | 502 ----- .../web-archived/src/routes/+error.svelte | 10 - .../web-archived/src/routes/+layout.svelte | 46 - .../apps/web-archived/src/routes/+page.svelte | 21 - .../auth/apple-callback-handler/+server.ts | 71 - .../routes/auth/apple-callback/+page.svelte | 13 - .../src/routes/auth/callback/+page.svelte | 72 - .../src/routes/offline/+page.svelte | 9 - .../.well-known/apple-app-site-association | 5 - .../web-archived/static/apple-touch-icon.png | Bin 8528 -> 0 bytes .../static/deployment-version.txt | 2 - .../web-archived/static/favicon-96x96.png | Bin 4075 -> 0 bytes .../apps/web-archived/static/favicon.ico | Bin 15086 -> 0 bytes .../apps/web-archived/static/favicon.svg | 7 - .../maerchenzauber-logo-gradient.png | Bin 392962 -> 0 bytes .../app-icons/manacore-logo-gradient.png | Bin 268878 -> 0 bytes .../images/app-icons/memoro-logo-gradient.png | Bin 103536 -> 0 bytes .../app-icons/moodlit-logo-gradient.png | Bin 441413 -> 0 bytes .../apps/web-archived/static/robots.txt | 3 - .../apps/web-archived/static/site.webmanifest | 21 - .../static/web-app-manifest-192x192.png | Bin 9414 -> 0 bytes .../static/web-app-manifest-512x512.png | Bin 33437 -> 0 bytes .../memoro/apps/web-archived/svelte.config.js | 14 - apps/memoro/apps/web-archived/tsconfig.json | 19 - apps/memoro/apps/web-archived/vite.config.ts | 41 - apps/moodlit/apps/web-archived/package.json | 33 - apps/moodlit/apps/web-archived/src/app.css | 154 -- apps/moodlit/apps/web-archived/src/app.d.ts | 4 - apps/moodlit/apps/web-archived/src/app.html | 13 - .../src/lib/components/AppSlider.svelte | 43 - .../lib/components/LanguageSelector.svelte | 19 - .../src/lib/components/MoodlitLogo.svelte | 11 - .../components/mood/CreateMoodDialog.svelte | 223 -- .../src/lib/components/mood/MoodCard.svelte | 188 -- .../lib/components/mood/MoodFullscreen.svelte | 589 ------ .../src/lib/data/default-moods.ts | 195 -- .../web-archived/src/lib/data/guest-seed.ts | 70 - .../web-archived/src/lib/data/local-store.ts | 38 - .../apps/web-archived/src/lib/i18n/index.ts | 49 - .../web-archived/src/lib/i18n/locales/de.json | 78 - .../web-archived/src/lib/i18n/locales/en.json | 78 - .../src/lib/stores/auth.svelte.ts | 3 - .../src/lib/stores/moods.svelte.ts | 116 -- .../web-archived/src/lib/stores/navigation.ts | 7 - .../src/lib/stores/sequences.svelte.ts | 129 -- .../apps/web-archived/src/lib/stores/theme.ts | 8 - .../apps/web-archived/src/lib/types/auth.ts | 9 - .../apps/web-archived/src/lib/types/mood.ts | 90 - .../src/routes/(app)/+layout.svelte | 114 -- .../src/routes/(app)/+page.svelte | 5 - .../src/routes/(app)/moods/+page.svelte | 167 -- .../src/routes/(app)/sequences/+page.svelte | 111 - .../src/routes/(app)/settings/+page.svelte | 150 -- .../web-archived/src/routes/+layout.svelte | 37 - .../src/routes/auth/login/+page.svelte | 22 - .../src/routes/auth/register/+page.svelte | 16 - .../apps/web-archived/svelte.config.js | 9 - apps/moodlit/apps/web-archived/tsconfig.json | 14 - apps/moodlit/apps/web-archived/vite.config.ts | 7 - apps/mukke/apps/web-archived/.env.example | 7 - apps/mukke/apps/web-archived/Dockerfile | 32 - .../apps/web-archived/docker-entrypoint.sh | 13 - apps/mukke/apps/web-archived/package.json | 68 - apps/mukke/apps/web-archived/src/app.css | 168 -- apps/mukke/apps/web-archived/src/app.d.ts | 41 - apps/mukke/apps/web-archived/src/app.html | 15 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 41 - .../src/lib/components/BeatLibrary.svelte | 216 -- .../src/lib/components/BeatUploader.svelte | 258 --- .../src/lib/components/FullPlayer.svelte | 293 --- .../src/lib/components/KaraokePreview.svelte | 109 - .../src/lib/components/LyricsEditor.svelte | 214 -- .../src/lib/components/MarkerTimeline.svelte | 191 -- .../src/lib/components/MiniPlayer.svelte | 100 - .../lib/components/PlaybackControls.svelte | 176 -- .../src/lib/components/QueuePanel.svelte | 101 - .../src/lib/components/SongEditor.svelte | 308 --- .../src/lib/components/WaveformEditor.svelte | 235 --- .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 143 -- .../web-archived/src/lib/data/guest-seed.ts | 15 - .../web-archived/src/lib/data/local-store.ts | 98 - .../apps/web-archived/src/lib/data/queries.ts | 157 -- .../web-archived/src/lib/services/feedback.ts | 18 - .../src/lib/stores/app-onboarding.svelte.ts | 64 - .../src/lib/stores/audio.svelte.ts | 81 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/editor.svelte.ts | 160 -- .../src/lib/stores/library.svelte.test.ts | 264 --- .../src/lib/stores/library.svelte.ts | 399 ---- .../src/lib/stores/player.svelte.test.ts | 254 --- .../src/lib/stores/player.svelte.ts | 393 ---- .../src/lib/stores/playlist.svelte.ts | 256 --- .../src/lib/stores/project.svelte.ts | 353 ---- .../src/lib/stores/tags.svelte.ts | 13 - .../src/lib/stores/theme.svelte.ts | 15 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../src/lib/utils/bpm-detector.ts | 234 --- .../src/lib/utils/song-parser.test.ts | 163 -- .../web-archived/src/lib/utils/song-parser.ts | 235 --- .../web-archived/src/lib/utils/syntax-help.ts | 48 - .../web-archived/src/lib/utils/time-format.ts | 44 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/lib/visualizer/ButterchurnViz.svelte | 179 -- .../src/lib/visualizer/FrequencyBars.svelte | 169 -- .../src/lib/visualizer/ParticleViz.svelte | 222 -- .../lib/visualizer/VisualizerRenderer.svelte | 48 - .../src/lib/visualizer/analyzer.ts | 112 - .../src/lib/visualizer/registry.svelte.ts | 63 - .../src/routes/(app)/+layout.svelte | 379 ---- .../src/routes/(app)/dashboard/+page.svelte | 144 -- .../src/routes/(app)/editor/[id]/+page.svelte | 474 ----- .../src/routes/(app)/feedback/+page.svelte | 11 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/library/+page.svelte | 420 ---- .../(app)/library/albums/[name]/+page.svelte | 166 -- .../(app)/library/artists/[name]/+page.svelte | 141 -- .../(app)/library/genres/[name]/+page.svelte | 136 -- .../src/routes/(app)/playlists/+page.svelte | 158 -- .../routes/(app)/playlists/[id]/+page.svelte | 233 --- .../src/routes/(app)/profile/+page.svelte | 6 - .../src/routes/(app)/projects/+page.svelte | 182 -- .../src/routes/(app)/search/+page.svelte | 203 -- .../src/routes/(app)/settings/+page.svelte | 66 - .../src/routes/(app)/tags/+page.svelte | 45 - .../src/routes/(app)/themes/+page.svelte | 19 - .../src/routes/(app)/upload/+page.svelte | 317 --- .../src/routes/(auth)/+layout.svelte | 5 - .../(auth)/forgot-password/+page.svelte | 29 - .../src/routes/(auth)/login/+page.svelte | 69 - .../src/routes/(auth)/register/+page.svelte | 49 - .../routes/(auth)/reset-password/+page.svelte | 209 -- .../web-archived/src/routes/+layout.svelte | 43 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../apps/web-archived/src/routes/+page.svelte | 21 - .../web-archived/src/routes/health/+server.ts | 5 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../src/test/mocks/app/environment.ts | 4 - .../src/test/mocks/app/navigation.ts | 9 - .../web-archived/src/test/mocks/app/stores.ts | 17 - .../src/test/mocks/env/static/public.ts | 2 - .../mukke/apps/web-archived/src/test/setup.ts | 82 - apps/mukke/apps/web-archived/svelte.config.js | 21 - apps/mukke/apps/web-archived/tsconfig.json | 14 - apps/mukke/apps/web-archived/vite.config.ts | 34 - apps/mukke/apps/web-archived/vitest.config.ts | 20 - apps/news/apps/web-archived/.env.example | 2 - apps/news/apps/web-archived/eslint.config.js | 17 - apps/news/apps/web-archived/package.json | 33 - apps/news/apps/web-archived/src/app.css | 8 - apps/news/apps/web-archived/src/app.d.ts | 11 - apps/news/apps/web-archived/src/app.html | 12 - .../src/lib/components/NewsLogo.svelte | 11 - .../web-archived/src/lib/data/guest-seed.ts | 39 - .../web-archived/src/lib/data/local-store.ts | 50 - .../src/lib/stores/auth.svelte.ts | 5 - .../src/routes/(protected)/+layout.svelte | 127 -- .../src/routes/(protected)/feed/+page.svelte | 103 - .../src/routes/(protected)/saved/+page.svelte | 173 -- .../web-archived/src/routes/+layout.svelte | 37 - .../apps/web-archived/src/routes/+page.svelte | 6 - .../src/routes/auth/login/+page.svelte | 27 - .../src/routes/auth/register/+page.svelte | 20 - apps/news/apps/web-archived/svelte.config.js | 12 - apps/news/apps/web-archived/tsconfig.json | 14 - apps/news/apps/web-archived/vite.config.ts | 7 - apps/nutriphi/apps/web-archived/Dockerfile | 32 - apps/nutriphi/apps/web-archived/package.json | 65 - apps/nutriphi/apps/web-archived/src/app.css | 59 - apps/nutriphi/apps/web-archived/src/app.d.ts | 2 - apps/nutriphi/apps/web-archived/src/app.html | 14 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 36 - .../web-archived/src/lib/api/client.spec.ts | 126 -- .../apps/web-archived/src/lib/api/client.ts | 65 - .../src/lib/components/AddMealButton.svelte | 64 - .../src/lib/components/DailySummary.svelte | 84 - .../src/lib/components/Header.svelte | 26 - .../src/lib/components/MealList.svelte | 98 - .../src/lib/components/ProgressRing.svelte | 55 - .../src/lib/content/help/index.ts | 158 -- .../web-archived/src/lib/data/guest-seed.ts | 55 - .../web-archived/src/lib/data/local-store.ts | 83 - .../apps/web-archived/src/lib/data/queries.ts | 174 -- .../apps/web-archived/src/lib/i18n/index.ts | 49 - .../web-archived/src/lib/i18n/locales/de.json | 89 - .../web-archived/src/lib/i18n/locales/en.json | 89 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/meals.svelte.ts | 56 - .../src/lib/utils/meal-parser.test.ts | 143 -- .../web-archived/src/lib/utils/meal-parser.ts | 236 --- .../web-archived/src/lib/utils/syntax-help.ts | 30 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(auth)/+layout.svelte | 5 - .../(auth)/forgot-password/+page.svelte | 32 - .../src/routes/(auth)/login/+page.svelte | 71 - .../src/routes/(auth)/register/+page.svelte | 51 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 125 -- .../apps/web-archived/src/routes/+page.svelte | 46 - .../web-archived/src/routes/add/+page.svelte | 298 --- .../web-archived/src/routes/health/+server.ts | 10 - .../web-archived/src/routes/help/+page.svelte | 32 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../src/routes/settings/+page.svelte | 288 --- .../src/test/mocks/app/environment.ts | 4 - .../src/test/mocks/app/navigation.ts | 9 - .../web-archived/src/test/mocks/app/stores.ts | 17 - .../src/test/mocks/env/static/public.ts | 2 - .../apps/web-archived/src/test/setup.ts | 19 - .../apps/web-archived/svelte.config.js | 20 - apps/nutriphi/apps/web-archived/tsconfig.json | 14 - .../nutriphi/apps/web-archived/vite.config.ts | 34 - .../apps/web-archived/vitest.config.ts | 20 - apps/photos/apps/web-archived/.env.example | 3 - apps/photos/apps/web-archived/Dockerfile | 32 - apps/photos/apps/web-archived/package.json | 60 - apps/photos/apps/web-archived/src/app.css | 203 -- apps/photos/apps/web-archived/src/app.d.ts | 2 - apps/photos/apps/web-archived/src/app.html | 12 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 27 - .../apps/web-archived/src/lib/api/client.ts | 71 - .../lib/components/albums/AlbumCard.svelte | 97 - .../lib/components/albums/AlbumGrid.svelte | 105 - .../components/albums/CreateAlbumModal.svelte | 170 -- .../lib/components/filters/FilterBar.svelte | 186 -- .../lib/components/gallery/PhotoCard.svelte | 154 -- .../gallery/PhotoDetailModal.svelte | 359 ---- .../lib/components/gallery/PhotoGrid.svelte | 164 -- .../components/upload/UploadDropzone.svelte | 131 -- .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 137 -- .../web-archived/src/lib/data/guest-seed.ts | 34 - .../web-archived/src/lib/data/local-store.ts | 82 - .../apps/web-archived/src/lib/data/queries.ts | 110 - .../apps/web-archived/src/lib/i18n/index.ts | 46 - .../web-archived/src/lib/i18n/locales/de.json | 131 -- .../web-archived/src/lib/i18n/locales/en.json | 131 -- .../src/lib/stores/albums.svelte.ts | 117 -- .../src/lib/stores/app-onboarding.svelte.ts | 70 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/photos.svelte.ts | 198 -- .../src/lib/stores/tags.svelte.ts | 94 - .../apps/web-archived/src/lib/stores/theme.ts | 7 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 273 --- .../src/routes/(app)/+page.svelte | 123 -- .../src/routes/(app)/albums/+page.svelte | 91 - .../src/routes/(app)/albums/[id]/+page.svelte | 124 -- .../src/routes/(app)/favorites/+page.svelte | 89 - .../src/routes/(app)/feedback/+page.svelte | 24 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/profile/+page.svelte | 6 - .../src/routes/(app)/settings/+page.svelte | 215 -- .../src/routes/(app)/themes/+page.svelte | 19 - .../src/routes/(app)/upload/+page.svelte | 300 --- .../src/routes/(app)/upload/+page.ts | 2 - .../src/routes/(auth)/+layout.svelte | 5 - .../(auth)/forgot-password/+page.svelte | 29 - .../src/routes/(auth)/login/+page.svelte | 62 - .../src/routes/(auth)/register/+page.svelte | 29 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 43 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../apps/web-archived/static/favicon.png | 0 .../photos/apps/web-archived/svelte.config.js | 14 - apps/photos/apps/web-archived/tsconfig.json | 14 - apps/photos/apps/web-archived/vite.config.ts | 34 - apps/picture/apps/web-archived/.env.example | 13 - apps/picture/apps/web-archived/.gitignore | 23 - apps/picture/apps/web-archived/.npmrc | 1 - .../picture/apps/web-archived/.prettierignore | 9 - apps/picture/apps/web-archived/.prettierrc | 19 - apps/picture/apps/web-archived/Dockerfile | 34 - apps/picture/apps/web-archived/README.md | 38 - .../docs/ADVANCED_GENERATION_SETTINGS.md | 217 -- .../docs/update-storage-policies.sql | 92 - .../apps/web-archived/eslint.config.js | 17 - apps/picture/apps/web-archived/package.json | 72 - apps/picture/apps/web-archived/src/app.css | 14 - apps/picture/apps/web-archived/src/app.d.ts | 16 - apps/picture/apps/web-archived/src/app.html | 11 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 27 - .../web-archived/src/lib/api/boardItems.ts | 317 --- .../apps/web-archived/src/lib/api/boards.ts | 170 -- .../apps/web-archived/src/lib/api/client.ts | 120 -- .../apps/web-archived/src/lib/api/explore.ts | 49 - .../apps/web-archived/src/lib/api/feedback.ts | 15 - .../src/lib/api/generate-async.ts | 233 --- .../apps/web-archived/src/lib/api/generate.ts | 102 - .../apps/web-archived/src/lib/api/images.ts | 135 -- .../apps/web-archived/src/lib/api/models.ts | 40 - .../apps/web-archived/src/lib/api/tags.ts | 68 - .../apps/web-archived/src/lib/api/upload.ts | 134 -- .../web-archived/src/lib/assets/favicon.svg | 1 - .../src/lib/components/AppSlider.svelte | 38 - .../lib/components/LanguageSelector.svelte | 19 - .../archive/ArchivedImageCard.svelte | 60 - .../archive/ArchivedImageModal.svelte | 142 -- .../lib/components/board/BoardCanvas.svelte | 650 ------ .../lib/components/board/CanvasToolbar.svelte | 222 -- .../components/board/ImagePickerModal.svelte | 216 -- .../board/ImagePropertiesPanel.svelte | 419 ---- .../components/branding/PictureLogo.svelte | 37 - .../lib/components/gallery/GalleryGrid.svelte | 52 - .../lib/components/gallery/ImageCard.svelte | 80 - .../gallery/ImageDetailModal.svelte | 633 ------ .../gallery/QuickGenerateBar.svelte | 348 ---- .../generate/AdvancedSettingsModal.svelte | 252 --- .../components/generate/GenerateForm.svelte | 226 -- .../src/lib/components/layout/Header.svelte | 170 -- .../src/lib/components/layout/Sidebar.svelte | 570 ------ .../components/settings/ThemePicker.svelte | 116 -- .../src/lib/components/tags/TagPills.svelte | 53 - .../src/lib/components/ui/Button.svelte | 43 - .../src/lib/components/ui/Card.svelte | 16 - .../src/lib/components/ui/ContextMenu.svelte | 342 ---- .../lib/components/ui/ImageSkeleton.svelte | 36 - .../ui/KeyboardShortcutsModal.svelte | 105 - .../src/lib/components/ui/Modal.svelte | 84 - .../lib/components/ui/ViewModeSwitcher.svelte | 31 - .../src/lib/components/upload/DropZone.svelte | 252 --- .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 174 -- .../web-archived/src/lib/data/guest-seed.ts | 131 -- .../web-archived/src/lib/data/local-store.ts | 116 -- .../apps/web-archived/src/lib/data/queries.ts | 155 -- .../apps/web-archived/src/lib/i18n/index.ts | 52 - .../web-archived/src/lib/i18n/locales/de.json | 23 - .../web-archived/src/lib/i18n/locales/en.json | 23 - .../web-archived/src/lib/i18n/locales/es.json | 23 - .../web-archived/src/lib/i18n/locales/fr.json | 23 - .../web-archived/src/lib/i18n/locales/it.json | 23 - .../apps/web-archived/src/lib/index.ts | 1 - .../src/lib/stores/app-onboarding.svelte.ts | 76 - .../web-archived/src/lib/stores/archive.ts | 7 - .../src/lib/stores/auth.svelte.ts | 9 - .../web-archived/src/lib/stores/boards.ts | 24 - .../web-archived/src/lib/stores/canvas.ts | 276 --- .../src/lib/stores/contextMenu.ts | 56 - .../web-archived/src/lib/stores/explore.ts | 10 - .../web-archived/src/lib/stores/generate.ts | 5 - .../web-archived/src/lib/stores/images.ts | 10 - .../web-archived/src/lib/stores/models.ts | 6 - .../web-archived/src/lib/stores/sidebar.ts | 29 - .../apps/web-archived/src/lib/stores/tags.ts | 16 - .../apps/web-archived/src/lib/stores/theme.ts | 23 - .../apps/web-archived/src/lib/stores/ui.ts | 24 - .../src/lib/stores/user-settings.svelte.ts | 27 - .../apps/web-archived/src/lib/stores/view.ts | 35 - .../apps/web-archived/src/lib/version.ts | 4 - .../web-archived/src/routes/+layout.svelte | 41 - .../apps/web-archived/src/routes/+page.svelte | 20 - .../src/routes/app/+layout.server.ts | 10 - .../src/routes/app/+layout.svelte | 432 ---- .../src/routes/app/apps/+page.svelte | 14 - .../src/routes/app/archive/+page.svelte | 46 - .../src/routes/app/board/+page.svelte | 285 --- .../src/routes/app/board/[id]/+page.svelte | 165 -- .../src/routes/app/explore/+page.svelte | 286 --- .../src/routes/app/feedback/+page.svelte | 7 - .../src/routes/app/gallery/+page.svelte | 109 - .../src/routes/app/generate/+page.svelte | 55 - .../src/routes/app/help/+page.svelte | 32 - .../src/routes/app/mana/+page.svelte | 37 - .../src/routes/app/profile/+page.svelte | 50 - .../src/routes/app/settings/+page.svelte | 41 - .../src/routes/app/tags/+page.svelte | 302 --- .../src/routes/app/themes/+page.svelte | 19 - .../src/routes/app/upload/+page.svelte | 134 -- .../routes/auth/forgot-password/+page.svelte | 32 - .../src/routes/auth/login/+page.svelte | 62 - .../routes/auth/reset-password/+page.svelte | 174 -- .../src/routes/auth/signup/+page.svelte | 38 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../maerchenzauber-logo-gradient.png | Bin 392962 -> 0 bytes .../app-icons/manacore-logo-gradient.png | Bin 268878 -> 0 bytes .../app-icons/manadeck-logo-gradient.png | Bin 268878 -> 0 bytes .../images/app-icons/memoro-logo-gradient.png | Bin 103536 -> 0 bytes .../app-icons/moodlit-logo-gradient.png | Bin 441413 -> 0 bytes .../app-icons/picture-logo-gradient.png | Bin 268878 -> 0 bytes .../apps/web-archived/static/robots.txt | 3 - .../apps/web-archived/svelte.config.js | 15 - apps/picture/apps/web-archived/tsconfig.json | 19 - apps/picture/apps/web-archived/vite.config.ts | 34 - apps/planta/apps/web-archived/package.json | 57 - apps/planta/apps/web-archived/src/app.css | 191 -- apps/planta/apps/web-archived/src/app.d.ts | 2 - apps/planta/apps/web-archived/src/app.html | 13 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 27 - .../apps/web-archived/src/lib/api/analysis.ts | 30 - .../apps/web-archived/src/lib/api/client.ts | 66 - .../apps/web-archived/src/lib/api/photos.ts | 36 - .../apps/web-archived/src/lib/api/plants.ts | 57 - .../apps/web-archived/src/lib/api/watering.ts | 42 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 141 -- .../web-archived/src/lib/data/guest-seed.ts | 59 - .../web-archived/src/lib/data/local-store.ts | 94 - .../web-archived/src/lib/data/mutations.ts | 148 -- .../apps/web-archived/src/lib/data/queries.ts | 180 -- .../apps/web-archived/src/lib/i18n/index.ts | 49 - .../web-archived/src/lib/i18n/locales/de.json | 87 - .../web-archived/src/lib/i18n/locales/en.json | 87 - .../src/lib/stores/app-onboarding.svelte.ts | 70 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/tags.svelte.ts | 13 - .../apps/web-archived/src/lib/stores/theme.ts | 7 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../src/lib/utils/plant-parser.test.ts | 148 -- .../src/lib/utils/plant-parser.ts | 204 -- .../web-archived/src/lib/utils/syntax-help.ts | 24 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 266 --- .../src/routes/(app)/add/+page.svelte | 279 --- .../src/routes/(app)/dashboard/+page.svelte | 135 -- .../src/routes/(app)/feedback/+page.svelte | 24 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/plants/[id]/+page.svelte | 221 -- .../src/routes/(app)/profile/+page.svelte | 6 - .../src/routes/(app)/settings/+page.svelte | 62 - .../src/routes/(app)/tags/+page.svelte | 44 - .../src/routes/(app)/themes/+page.svelte | 19 - .../src/routes/(auth)/+layout.svelte | 5 - .../(auth)/forgot-password/+page.svelte | 32 - .../src/routes/(auth)/login/+page.svelte | 71 - .../src/routes/(auth)/register/+page.svelte | 51 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 44 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../apps/web-archived/src/routes/+page.svelte | 19 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../planta/apps/web-archived/svelte.config.js | 18 - apps/planta/apps/web-archived/tsconfig.json | 14 - apps/planta/apps/web-archived/vite.config.ts | 34 - apps/presi/apps/web-archived/Dockerfile | 32 - apps/presi/apps/web-archived/eslint.config.js | 17 - apps/presi/apps/web-archived/package.json | 58 - apps/presi/apps/web-archived/src/app.css | 39 - apps/presi/apps/web-archived/src/app.d.ts | 2 - apps/presi/apps/web-archived/src/app.html | 12 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 27 - .../apps/web-archived/src/lib/api/client.ts | 86 - .../apps/web-archived/src/lib/api/feedback.ts | 15 - .../src/lib/components/AppSlider.svelte | 33 - .../lib/components/LanguageSelector.svelte | 19 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 161 -- .../web-archived/src/lib/data/guest-seed.ts | 62 - .../web-archived/src/lib/data/local-store.ts | 58 - .../apps/web-archived/src/lib/data/queries.ts | 73 - .../apps/web-archived/src/lib/i18n/index.ts | 52 - .../web-archived/src/lib/i18n/locales/de.json | 13 - .../web-archived/src/lib/i18n/locales/en.json | 13 - .../web-archived/src/lib/i18n/locales/es.json | 13 - .../web-archived/src/lib/i18n/locales/fr.json | 13 - .../web-archived/src/lib/i18n/locales/it.json | 13 - .../src/lib/stores/app-onboarding.svelte.ts | 47 - .../src/lib/stores/auth.svelte.ts | 11 - .../src/lib/stores/decks.svelte.ts | 165 -- .../web-archived/src/lib/stores/navigation.ts | 3 - .../src/lib/stores/tags.svelte.ts | 13 - .../apps/web-archived/src/lib/stores/theme.ts | 10 - .../src/lib/stores/user-settings.svelte.ts | 27 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 365 ---- .../src/routes/(app)/+page.svelte | 292 --- .../src/routes/(app)/apps/+page.svelte | 14 - .../src/routes/(app)/deck/[id]/+page.svelte | 680 ------ .../src/routes/(app)/feedback/+page.svelte | 7 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/mana/+page.svelte | 39 - .../routes/(app)/present/[id]/+page.svelte | 328 --- .../src/routes/(app)/profile/+page.svelte | 123 -- .../src/routes/(app)/settings/+page.svelte | 127 -- .../routes/(app)/shared/[code]/+page.svelte | 316 --- .../src/routes/(app)/tags/+page.svelte | 45 - .../src/routes/(app)/themes/+page.svelte | 19 - .../(auth)/forgot-password/+page.svelte | 41 - .../src/routes/(auth)/login/+page.svelte | 66 - .../src/routes/(auth)/register/+page.svelte | 47 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+error.svelte | 9 - .../web-archived/src/routes/+layout.svelte | 39 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - apps/presi/apps/web-archived/svelte.config.js | 24 - apps/presi/apps/web-archived/tsconfig.json | 14 - apps/presi/apps/web-archived/vite.config.ts | 45 - apps/questions/apps/web-archived/.env.example | 7 - apps/questions/apps/web-archived/package.json | 60 - apps/questions/apps/web-archived/src/app.css | 186 -- apps/questions/apps/web-archived/src/app.d.ts | 16 - apps/questions/apps/web-archived/src/app.html | 14 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 27 - .../apps/web-archived/src/lib/api/answers.ts | 33 - .../apps/web-archived/src/lib/api/client.ts | 87 - .../web-archived/src/lib/api/collections.ts | 32 - .../apps/web-archived/src/lib/api/index.ts | 6 - .../web-archived/src/lib/api/questions.ts | 53 - .../apps/web-archived/src/lib/api/research.ts | 20 - .../apps/web-archived/src/lib/api/sources.ts | 20 - .../src/lib/components/CollectionModal.svelte | 218 -- .../src/lib/components/ErrorAlert.svelte | 39 - .../web-archived/src/lib/components/index.ts | 3 - .../skeletons/QuestionDetailSkeleton.svelte | 56 - .../skeletons/QuestionSkeleton.svelte | 32 - .../src/lib/components/skeletons/index.ts | 5 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 137 -- .../src/lib/data/demo-questions.ts | 118 -- .../web-archived/src/lib/data/guest-seed.ts | 43 - .../web-archived/src/lib/data/local-store.ts | 71 - .../apps/web-archived/src/lib/data/queries.ts | 108 - .../apps/web-archived/src/lib/i18n/index.ts | 49 - .../web-archived/src/lib/i18n/locales/de.json | 96 - .../web-archived/src/lib/i18n/locales/en.json | 96 - .../src/lib/stores/app-onboarding.svelte.ts | 70 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/collections.svelte.ts | 132 -- .../apps/web-archived/src/lib/stores/index.ts | 4 - .../src/lib/stores/questions.svelte.ts | 125 -- .../src/lib/stores/tags.svelte.ts | 13 - .../apps/web-archived/src/lib/stores/theme.ts | 47 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../apps/web-archived/src/lib/types/index.ts | 148 -- .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 344 ---- .../src/routes/(app)/+page.svelte | 205 -- .../src/routes/(app)/collections/+page.svelte | 171 -- .../src/routes/(app)/feedback/+page.svelte | 24 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/new/+page.svelte | 219 -- .../src/routes/(app)/profile/+page.svelte | 6 - .../routes/(app)/question/[id]/+page.svelte | 320 --- .../src/routes/(app)/settings/+page.svelte | 181 -- .../src/routes/(app)/tags/+page.svelte | 44 - .../src/routes/(app)/themes/+page.svelte | 19 - .../src/routes/(auth)/+layout.svelte | 18 - .../(auth)/forgot-password/+page.svelte | 32 - .../src/routes/(auth)/login/+page.svelte | 77 - .../src/routes/(auth)/register/+page.svelte | 51 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 42 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 8 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../apps/web-archived/svelte.config.js | 21 - .../questions/apps/web-archived/tsconfig.json | 14 - .../apps/web-archived/vite.config.ts | 34 - .../apps/web-archived/.env.production.example | 12 - apps/skilltree/apps/web-archived/Dockerfile | 31 - apps/skilltree/apps/web-archived/package.json | 56 - apps/skilltree/apps/web-archived/src/app.css | 141 -- apps/skilltree/apps/web-archived/src/app.d.ts | 16 - apps/skilltree/apps/web-archived/src/app.html | 23 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 33 - .../web-archived/src/lib/api/achievements.ts | 29 - .../web-archived/src/lib/api/activities.ts | 23 - .../apps/web-archived/src/lib/api/client.ts | 87 - .../apps/web-archived/src/lib/api/skills.ts | 85 - .../src/lib/components/AchievementCard.svelte | 93 - .../components/AchievementCelebration.svelte | 151 -- .../src/lib/components/AddSkillModal.svelte | 126 -- .../src/lib/components/AddXpModal.svelte | 171 -- .../src/lib/components/EditSkillModal.svelte | 192 -- .../lib/components/LevelUpCelebration.svelte | 176 -- .../src/lib/components/SkillCard.svelte | 115 -- .../src/lib/components/SkillTemplates.svelte | 210 -- .../src/lib/components/StatsOverview.svelte | 102 - .../src/lib/content/help/index.ts | 146 -- .../web-archived/src/lib/data/guest-seed.ts | 107 - .../web-archived/src/lib/data/local-store.ts | 72 - .../apps/web-archived/src/lib/data/queries.ts | 186 -- .../apps/web-archived/src/lib/i18n/index.ts | 49 - .../web-archived/src/lib/i18n/locales/de.json | 112 - .../web-archived/src/lib/i18n/locales/en.json | 112 - .../web-archived/src/lib/services/storage.ts | 32 - .../src/lib/stores/achievements.svelte.ts | 222 -- .../src/lib/stores/app-onboarding.svelte.ts | 88 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/skills.svelte.ts | 104 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../web-archived/src/lib/types/index.test.ts | 378 ---- .../apps/web-archived/src/lib/types/index.ts | 554 ----- .../apps/web-archived/src/lib/version.ts | 4 - .../(auth)/forgot-password/+page.svelte | 32 - .../src/routes/(auth)/login/+page.svelte | 77 - .../src/routes/(auth)/register/+page.svelte | 51 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 49 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../apps/web-archived/src/routes/+page.svelte | 382 ---- .../src/routes/achievements/+page.svelte | 152 -- .../web-archived/src/routes/health/+server.ts | 10 - .../web-archived/src/routes/help/+page.svelte | 32 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../web-archived/src/routes/tree/+page.svelte | 274 --- .../apps/web-archived/src/test/setup.ts | 9 - .../apps/web-archived/svelte.config.js | 20 - .../skilltree/apps/web-archived/tsconfig.json | 14 - .../apps/web-archived/vite.config.ts | 34 - .../apps/web-archived/vitest.config.ts | 18 - apps/storage/apps/web-archived/Dockerfile | 32 - .../apps/web-archived/e2e/auth.spec.ts | 59 - .../apps/web-archived/e2e/files.spec.ts | 119 -- .../apps/web-archived/e2e/integration.spec.ts | 181 -- .../apps/web-archived/e2e/navigation.spec.ts | 98 - .../apps/web-archived/e2e/search.spec.ts | 79 - .../apps/web-archived/eslint.config.js | 17 - apps/storage/apps/web-archived/package.json | 64 - .../apps/web-archived/playwright.config.ts | 39 - .../web-archived/scripts/generate-icons.mjs | 21 - apps/storage/apps/web-archived/src/app.css | 9 - apps/storage/apps/web-archived/src/app.d.ts | 2 - apps/storage/apps/web-archived/src/app.html | 32 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 39 - .../src/lib/api/client-integration.test.ts | 676 ------ .../web-archived/src/lib/api/client.test.ts | 290 --- .../apps/web-archived/src/lib/api/client.ts | 331 --- .../web-archived/src/lib/audio/analyzer.ts | 49 - .../lib/components/LanguageSelector.svelte | 19 - .../lib/components/audio/FrequencyBars.svelte | 154 -- .../lib/components/audio/FullPlayer.svelte | 414 ---- .../lib/components/audio/MiniPlayer.svelte | 269 --- .../lib/components/files/Breadcrumb.svelte | 90 - .../lib/components/files/BulkActionBar.svelte | 141 -- .../lib/components/files/EmptyState.svelte | 324 --- .../src/lib/components/files/FileCard.svelte | 251 --- .../src/lib/components/files/FileGrid.svelte | 84 - .../src/lib/components/files/FileList.svelte | 109 - .../components/files/FilePreviewModal.svelte | 718 ------- .../src/lib/components/files/FileRow.svelte | 209 -- .../components/files/FileSkeletonGrid.svelte | 74 - .../components/files/FileSkeletonList.svelte | 85 - .../components/files/FileVersionsModal.svelte | 413 ---- .../lib/components/files/FolderCard.svelte | 289 --- .../src/lib/components/files/FolderRow.svelte | 202 -- .../components/files/NewFolderModal.svelte | 283 --- .../lib/components/files/ShareModal.svelte | 386 ---- .../src/lib/components/files/TagPicker.svelte | 311 --- .../lib/components/files/UploadZone.svelte | 165 -- .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 159 -- .../web-archived/src/lib/data/guest-seed.ts | 58 - .../web-archived/src/lib/data/local-store.ts | 84 - .../apps/web-archived/src/lib/data/queries.ts | 135 -- .../apps/web-archived/src/lib/i18n/index.ts | 52 - .../web-archived/src/lib/i18n/locales/de.json | 77 - .../web-archived/src/lib/i18n/locales/en.json | 77 - .../web-archived/src/lib/i18n/locales/es.json | 77 - .../web-archived/src/lib/i18n/locales/fr.json | 77 - .../web-archived/src/lib/i18n/locales/it.json | 77 - .../src/lib/stores/app-onboarding.svelte.ts | 47 - .../src/lib/stores/audio-player.svelte.ts | 238 --- .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/files.svelte.ts | 251 --- .../web-archived/src/lib/stores/navigation.ts | 3 - .../src/lib/stores/tags.svelte.ts | 11 - .../src/lib/stores/theme.svelte.ts | 8 - .../src/lib/stores/user-settings.svelte.ts | 27 - .../apps/web-archived/src/lib/version.ts | 4 - .../web-archived/src/routes/+layout.svelte | 365 ---- .../apps/web-archived/src/routes/+layout.ts | 2 - .../apps/web-archived/src/routes/+page.svelte | 13 - .../src/routes/favorites/+page.svelte | 255 --- .../src/routes/feedback/+page.svelte | 223 -- .../src/routes/files/+page.svelte | 475 ----- .../src/routes/files/[folderId]/+page.svelte | 518 ----- .../src/routes/forgot-password/+page.svelte | 36 - .../web-archived/src/routes/health/+server.ts | 10 - .../web-archived/src/routes/help/+page.svelte | 32 - .../src/routes/login/+page.svelte | 53 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../src/routes/profile/+page.svelte | 132 -- .../src/routes/register/+page.svelte | 42 - .../src/routes/reset-password/+page.svelte | 174 -- .../src/routes/search/+page.svelte | 302 --- .../src/routes/settings/+page.svelte | 134 -- .../src/routes/shared/+page.svelte | 346 ---- .../web-archived/src/routes/tags/+page.svelte | 298 --- .../src/routes/themes/+page.svelte | 136 -- .../src/routes/trash/+page.svelte | 365 ---- .../web-archived/static/apple-touch-icon.png | Bin 4804 -> 0 bytes .../apps/web-archived/static/favicon.png | Bin 959 -> 0 bytes .../apps/web-archived/static/favicon.svg | 25 - .../apps/web-archived/static/pwa-192x192.png | Bin 5050 -> 0 bytes .../apps/web-archived/static/pwa-512x512.png | Bin 16124 -> 0 bytes .../apps/web-archived/svelte.config.js | 14 - apps/storage/apps/web-archived/tsconfig.json | 14 - apps/storage/apps/web-archived/vite.config.ts | 61 - apps/times/apps/web-archived/Dockerfile | 53 - apps/times/apps/web-archived/package.json | 52 - apps/times/apps/web-archived/src/app.css | 44 - apps/times/apps/web-archived/src/app.html | 18 - .../src/lib/components/EntryForm.svelte | 330 --- .../src/lib/components/EntryItem.svelte | 209 -- .../src/lib/components/EntryList.svelte | 68 - .../lib/components/KeyboardShortcuts.svelte | 56 - .../src/lib/components/QuickStart.svelte | 59 - .../src/lib/components/TimerCard.svelte | 188 -- .../src/lib/components/TimerIndicator.svelte | 61 - .../components/clock/CircularProgress.svelte | 195 -- .../src/lib/components/clock/WorldMap.svelte | 108 - .../web-archived/src/lib/data/guest-seed.ts | 215 -- .../web-archived/src/lib/data/local-store.ts | 209 -- .../web-archived/src/lib/data/queries.test.ts | 370 ---- .../apps/web-archived/src/lib/data/queries.ts | 432 ---- .../web-archived/src/lib/data/types.test.ts | 68 - .../apps/web-archived/src/lib/i18n/index.ts | 38 - .../web-archived/src/lib/i18n/locales/de.json | 182 -- .../web-archived/src/lib/i18n/locales/en.json | 182 -- .../src/lib/stores/alarms.svelte.ts | 85 - .../src/lib/stores/auth.svelte.ts | 7 - .../src/lib/stores/countdown-timers.svelte.ts | 163 -- .../web-archived/src/lib/stores/navigation.ts | 6 - .../src/lib/stores/session-alarms.svelte.ts | 113 - .../src/lib/stores/session-timers.svelte.ts | 171 -- .../src/lib/stores/stopwatch.svelte.ts | 194 -- .../apps/web-archived/src/lib/stores/theme.ts | 6 - .../src/lib/stores/timer.svelte.ts | 176 -- .../src/lib/stores/user-settings.svelte.ts | 18 - .../src/lib/stores/view.svelte.ts | 106 - .../src/lib/stores/world-clocks.svelte.ts | 65 - .../src/lib/utils/entry-parser.test.ts | 208 -- .../src/lib/utils/entry-parser.ts | 316 --- .../web-archived/src/lib/utils/export.test.ts | 162 -- .../apps/web-archived/src/lib/utils/export.ts | 61 - .../src/lib/utils/rounding.test.ts | 86 - .../web-archived/src/lib/utils/rounding.ts | 36 - .../apps/web-archived/src/lib/version.ts | 7 - .../src/routes/(app)/+layout.svelte | 215 -- .../src/routes/(app)/+page.svelte | 78 - .../src/routes/(app)/clients/+page.svelte | 357 ---- .../routes/(app)/clients/[id]/+page.svelte | 154 -- .../src/routes/(app)/clock/+page.svelte | 100 - .../routes/(app)/clock/alarms/+page.svelte | 292 --- .../routes/(app)/clock/stopwatch/+page.svelte | 396 ---- .../routes/(app)/clock/timers/+page.svelte | 286 --- .../(app)/clock/world-clock/+page.svelte | 321 --- .../src/routes/(app)/entries/+page.svelte | 113 - .../src/routes/(app)/feedback/+page.svelte | 12 - .../src/routes/(app)/help/+page.svelte | 12 - .../src/routes/(app)/mana/+page.svelte | 12 - .../src/routes/(app)/profile/+page.svelte | 12 - .../src/routes/(app)/projects/+page.svelte | 366 ---- .../routes/(app)/projects/[id]/+page.svelte | 324 --- .../src/routes/(app)/reports/+page.svelte | 215 -- .../src/routes/(app)/settings/+page.svelte | 290 --- .../src/routes/(app)/templates/+page.svelte | 191 -- .../src/routes/(app)/themes/+page.svelte | 12 - .../src/routes/(auth)/+layout.svelte | 5 - .../src/routes/(auth)/login/+page.svelte | 264 --- .../web-archived/src/routes/+error.svelte | 19 - .../web-archived/src/routes/+layout.svelte | 35 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 28 - apps/times/apps/web-archived/svelte.config.js | 14 - apps/times/apps/web-archived/tsconfig.json | 14 - apps/times/apps/web-archived/vite.config.ts | 60 - .../apps/web-archived/.env.production.example | 19 - apps/todo/apps/web-archived/Dockerfile | 55 - apps/todo/apps/web-archived/e2e/auth.spec.ts | 94 - .../apps/web-archived/e2e/fixtures/auth.ts | 116 -- .../apps/web-archived/e2e/projects.spec.ts | 110 - apps/todo/apps/web-archived/e2e/tasks.spec.ts | 134 -- apps/todo/apps/web-archived/package.json | 73 - .../apps/web-archived/playwright.config.ts | 39 - .../web-archived/scripts/generate-icons.mjs | 34 - apps/todo/apps/web-archived/src/app.css | 192 -- apps/todo/apps/web-archived/src/app.d.ts | 2 - apps/todo/apps/web-archived/src/app.html | 29 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 40 - .../apps/web-archived/src/lib/api/client.ts | 89 - .../web-archived/src/lib/api/tasks.test.ts | 228 --- .../apps/web-archived/src/lib/api/tasks.ts | 131 -- .../src/lib/components/AppSlider.svelte | 32 - .../lib/components/CollapsibleSection.svelte | 62 - .../lib/components/LanguageSelector.svelte | 20 - .../src/lib/components/QuickAddTask.svelte | 604 ------ .../src/lib/components/SpiralCanvas.svelte | 172 -- .../src/lib/components/SubtaskList.svelte | 350 ---- .../src/lib/components/SyncIndicator.svelte | 164 -- .../src/lib/components/TagStrip.svelte | 355 ---- .../src/lib/components/TagStripModal.svelte | 711 ------- .../src/lib/components/TaskEditModal.svelte | 669 ------ .../src/lib/components/TaskItem.svelte | 1324 ------------ .../src/lib/components/TaskList.svelte | 445 ---- .../src/lib/components/TodoToolbar.svelte | 33 - .../lib/components/TodoToolbarContent.svelte | 375 ---- .../board-views/BoardViewRenderer.svelte | 132 -- .../components/board-views/FokusLayout.svelte | 424 ---- .../components/board-views/GridLayout.svelte | 122 -- .../board-views/KanbanLayout.svelte | 123 -- .../components/board-views/ViewColumn.svelte | 213 -- .../board-views/ViewColumnHeader.svelte | 322 --- .../board-views/ViewEditorModal.svelte | 1181 ----------- .../board-views/ViewSelector.svelte | 351 ---- .../src/lib/components/board-views/index.ts | 8 - .../lib/components/form/DurationPicker.svelte | 215 -- .../components/form/FunRatingPicker.svelte | 124 -- .../components/form/PrioritySelector.svelte | 64 - .../components/form/ReminderSelector.svelte | 91 - .../form/StorypointsSelector.svelte | 95 - .../lib/components/form/TagSelector.svelte | 205 -- .../src/lib/components/form/index.ts | 6 - .../components/kanban/KanbanTaskCard.svelte | 827 -------- .../kanban/QuickAddTaskInline.svelte | 155 -- .../src/lib/components/kanban/index.ts | 2 - .../lib/components/pages/PageEditBar.svelte | 396 ---- .../lib/components/pages/PagePicker.svelte | 299 --- .../src/lib/components/pages/TodoPage.svelte | 724 ------- .../skeletons/KanbanBoardSkeleton.svelte | 76 - .../skeletons/KanbanColumnSkeleton.svelte | 149 -- .../skeletons/StatisticsSkeleton.svelte | 252 --- .../skeletons/TaskItemSkeleton.svelte | 67 - .../skeletons/TaskListSkeleton.svelte | 188 -- .../src/lib/components/skeletons/index.ts | 20 - .../src/lib/composables/useTaskForm.svelte.ts | 261 --- .../src/lib/constants/priority.ts | 37 - .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 177 -- .../src/lib/data/cross-app-search.ts | 134 -- .../web-archived/src/lib/data/demo-tasks.ts | 187 -- .../web-archived/src/lib/data/guest-seed.ts | 252 --- .../web-archived/src/lib/data/local-store.ts | 130 -- .../web-archived/src/lib/data/task-queries.ts | 118 -- .../src/lib/data/view-grouping.ts | 221 -- .../apps/web-archived/src/lib/i18n/index.ts | 52 - .../web-archived/src/lib/i18n/locales/de.json | 234 --- .../web-archived/src/lib/i18n/locales/en.json | 234 --- .../web-archived/src/lib/i18n/locales/es.json | 234 --- .../web-archived/src/lib/i18n/locales/fr.json | 234 --- .../web-archived/src/lib/i18n/locales/it.json | 234 --- .../web-archived/src/lib/services/feedback.ts | 23 - .../src/lib/stores/app-onboarding.svelte.ts | 107 - .../src/lib/stores/auth.svelte.ts | 9 - .../src/lib/stores/board-views.svelte.ts | 90 - .../src/lib/stores/contacts.svelte.ts | 175 -- .../src/lib/stores/debug.svelte.ts | 21 - .../apps/web-archived/src/lib/stores/index.ts | 4 - .../src/lib/stores/minimized-pages.svelte.ts | 121 -- .../web-archived/src/lib/stores/navigation.ts | 6 - .../src/lib/stores/projects.svelte.ts | 1 - .../src/lib/stores/reminders.svelte.ts | 67 - .../src/lib/stores/settings.svelte.ts | 240 --- .../src/lib/stores/spiral.svelte.ts | 235 --- .../src/lib/stores/store-helpers.ts | 30 - .../src/lib/stores/tasks.svelte.ts | 206 -- .../apps/web-archived/src/lib/stores/theme.ts | 7 - .../src/lib/stores/user-settings.svelte.ts | 19 - .../src/lib/stores/view.svelte.ts | 140 -- .../web-archived/src/lib/stores/view.test.ts | 45 - .../src/lib/utils/date-display.ts | 29 - .../web-archived/src/lib/utils/syntax-help.ts | 55 - .../src/lib/utils/task-helpers.ts | 9 - .../src/lib/utils/task-parser.test.ts | 299 --- .../web-archived/src/lib/utils/task-parser.ts | 390 ---- .../src/lib/utils/time-estimator.test.ts | 135 -- .../src/lib/utils/time-estimator.ts | 222 -- .../todo/apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 736 ------- .../src/routes/(app)/+page.svelte | 568 ------ .../src/routes/(app)/feedback/+page.svelte | 11 - .../src/routes/(app)/help/+page.svelte | 32 - .../src/routes/(app)/mana/+page.svelte | 39 - .../src/routes/(app)/profile/+page.svelte | 6 - .../src/routes/(app)/settings/+page.svelte | 529 ----- .../src/routes/(app)/spiral/+page.svelte | 743 ------- .../src/routes/(app)/tag/[id]/+page.svelte | 250 --- .../src/routes/(app)/tags/+page.svelte | 501 ----- .../src/routes/(app)/themes/+page.svelte | 19 - .../src/routes/(auth)/+layout.svelte | 5 - .../(auth)/forgot-password/+page.svelte | 40 - .../src/routes/(auth)/login/+page.svelte | 81 - .../src/routes/(auth)/register/+page.svelte | 60 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+error.svelte | 10 - .../web-archived/src/routes/+layout.svelte | 62 - .../apps/web-archived/src/routes/+layout.ts | 3 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../web-archived/static/apple-touch-icon.png | Bin 5269 -> 0 bytes .../todo/apps/web-archived/static/favicon.png | Bin 1077 -> 0 bytes .../apps/web-archived/static/icons/icon.svg | 25 - .../apps/web-archived/static/pwa-192x192.png | Bin 5789 -> 0 bytes .../apps/web-archived/static/pwa-512x512.png | Bin 17703 -> 0 bytes apps/todo/apps/web-archived/svelte.config.js | 14 - apps/todo/apps/web-archived/tsconfig.json | 14 - apps/todo/apps/web-archived/vite.config.ts | 55 - apps/uload/apps/web-archived/Dockerfile | 32 - apps/uload/apps/web-archived/package.json | 50 - apps/uload/apps/web-archived/src/app.css | 162 -- apps/uload/apps/web-archived/src/app.d.ts | 15 - apps/uload/apps/web-archived/src/app.html | 103 - .../apps/web-archived/src/hooks.server.ts | 6 - .../web-archived/src/lib/assets/favicon.svg | 1 - .../web-archived/src/lib/data/guest-seed.ts | 103 - .../web-archived/src/lib/data/local-store.ts | 99 - .../apps/web-archived/src/lib/i18n/index.ts | 11 - .../web-archived/src/lib/i18n/locales/de.json | 95 - .../web-archived/src/lib/i18n/locales/en.json | 95 - .../src/lib/stores/auth.svelte.ts | 5 - .../apps/web-archived/src/lib/theme.svelte.ts | 28 - .../src/routes/(app)/+layout.svelte | 172 -- .../src/routes/(app)/my/+page.svelte | 6 - .../(app)/my/analytics/[id]/+page.svelte | 254 --- .../src/routes/(app)/my/links/+page.svelte | 784 ------- .../src/routes/(app)/my/tags/+page.svelte | 175 -- .../src/routes/(app)/pricing/+page.svelte | 52 - .../src/routes/(app)/settings/+page.svelte | 76 - .../src/routes/(auth)/+layout.svelte | 14 - .../(auth)/forgot-password/+page.svelte | 23 - .../src/routes/(auth)/login/+page.svelte | 53 - .../src/routes/(auth)/register/+page.svelte | 24 - .../routes/(auth)/reset-password/+page.svelte | 82 - .../routes/(auth)/verify-email/+page.svelte | 22 - .../web-archived/src/routes/+layout.svelte | 48 - .../apps/web-archived/src/routes/+page.svelte | 14 - .../web-archived/src/routes/health/+server.ts | 3 - .../src/routes/u/[username]/+page.svelte | 99 - .../static/icons/apple-touch-icon.svg | 4 - .../static/icons/icon-128x128.svg | 4 - .../static/icons/icon-144x144.svg | 4 - .../static/icons/icon-152x152.svg | 4 - .../static/icons/icon-192x192.svg | 4 - .../static/icons/icon-384x384.svg | 4 - .../static/icons/icon-512x512.svg | 4 - .../web-archived/static/icons/icon-72x72.svg | 4 - .../web-archived/static/icons/icon-96x96.svg | 4 - .../static/icons/icon-maskable-192x192.svg | 5 - .../static/icons/icon-maskable-512x512.svg | 5 - .../uload/apps/web-archived/static/robots.txt | 3 - apps/uload/apps/web-archived/svelte.config.js | 12 - apps/uload/apps/web-archived/tsconfig.json | 19 - apps/uload/apps/web-archived/vite.config.ts | 35 - apps/zitare/apps/web-archived/Dockerfile | 34 - .../apps/web-archived/docker-entrypoint.sh | 13 - apps/zitare/apps/web-archived/package.json | 61 - apps/zitare/apps/web-archived/src/app.css | 64 - apps/zitare/apps/web-archived/src/app.d.ts | 2 - apps/zitare/apps/web-archived/src/app.html | 20 - .../apps/web-archived/src/hooks.client.ts | 12 - .../apps/web-archived/src/hooks.server.ts | 36 - .../lib/components/LanguageSelector.svelte | 19 - .../src/lib/components/QuoteCard.svelte | 177 -- .../src/lib/components/SpiralCanvas.svelte | 165 -- .../src/lib/content/help/index.test.ts | 47 - .../src/lib/content/help/index.ts | 111 - .../web-archived/src/lib/data/guest-seed.ts | 30 - .../web-archived/src/lib/data/local-store.ts | 43 - .../apps/web-archived/src/lib/data/queries.ts | 91 - .../apps/web-archived/src/lib/i18n/index.ts | 49 - .../web-archived/src/lib/i18n/locales/de.json | 160 -- .../web-archived/src/lib/i18n/locales/en.json | 160 -- .../src/lib/stores/app-onboarding.svelte.ts | 64 - .../src/lib/stores/auth.svelte.ts | 10 - .../src/lib/stores/favorites.svelte.ts | 34 - .../src/lib/stores/lists.svelte.ts | 84 - .../src/lib/stores/quotes.svelte.ts | 117 -- .../src/lib/stores/settings.svelte.ts | 96 - .../src/lib/stores/spiral.svelte.ts | 233 --- .../src/lib/stores/tags.svelte.ts | 13 - .../src/lib/stores/theme.svelte.ts | 96 - .../src/lib/stores/toast.svelte.ts | 33 - .../src/lib/stores/user-settings.svelte.ts | 18 - .../apps/web-archived/src/lib/version.ts | 4 - .../src/routes/(app)/+layout.svelte | 504 ----- .../src/routes/(app)/+page.svelte | 62 - .../src/routes/(app)/categories/+page.svelte | 100 - .../(app)/category/[category]/+page.svelte | 123 -- .../src/routes/(app)/favorites/+page.svelte | 137 -- .../src/routes/(app)/feedback/+page.svelte | 24 - .../src/routes/(app)/help/+page.svelte | 33 - .../src/routes/(app)/lists/+page.svelte | 210 -- .../src/routes/(app)/lists/[id]/+page.svelte | 958 --------- .../src/routes/(app)/profile/+page.svelte | 6 - .../src/routes/(app)/search/+page.svelte | 151 -- .../src/routes/(app)/settings/+page.svelte | 155 -- .../src/routes/(app)/spiral/+page.svelte | 552 ----- .../src/routes/(app)/tags/+page.svelte | 44 - .../src/routes/(app)/themes/+page.svelte | 19 - .../src/routes/(auth)/+layout.svelte | 13 - .../(auth)/forgot-password/+page.svelte | 37 - .../src/routes/(auth)/login/+page.svelte | 76 - .../src/routes/(auth)/register/+page.svelte | 42 - .../routes/(auth)/reset-password/+page.svelte | 174 -- .../web-archived/src/routes/+layout.svelte | 63 - .../apps/web-archived/src/routes/+layout.ts | 2 - .../web-archived/src/routes/health/+server.ts | 10 - .../src/routes/offline/+page.svelte | 9 - .../web-archived/src/routes/offline/+page.ts | 1 - .../apps/web-archived/static/favicon.png | 0 .../zitare/apps/web-archived/svelte.config.js | 14 - apps/zitare/apps/web-archived/tsconfig.json | 14 - apps/zitare/apps/web-archived/vite.config.ts | 34 - pnpm-workspace.yaml | 6 - 1940 files changed, 41 insertions(+), 223288 deletions(-) delete mode 100644 apps/calc/apps/web-archived/Dockerfile delete mode 100644 apps/calc/apps/web-archived/package.json delete mode 100644 apps/calc/apps/web-archived/src/app.css delete mode 100644 apps/calc/apps/web-archived/src/app.d.ts delete mode 100644 apps/calc/apps/web-archived/src/app.html delete mode 100644 apps/calc/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/calc/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skeletons/index.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skins/CasioSkin.svelte delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skins/HP35Skin.svelte delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skins/MinimalSkin.svelte delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skins/ModernSkin.svelte delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skins/TI84Skin.svelte delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skins/index.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/components/skins/types.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/engine/evaluate.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/calc/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/calc/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/stores/calc-settings.svelte.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/stores/calculations.svelte.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/stores/saved-formulas.svelte.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/stores/theme.svelte.ts delete mode 100644 apps/calc/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/converter/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/currency/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/date/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/finance/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/percentage/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/programmer/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/scientific/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/skins/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/standard/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/calc/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/calc/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/calc/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/calc/apps/web-archived/svelte.config.js delete mode 100644 apps/calc/apps/web-archived/tsconfig.json delete mode 100644 apps/calc/apps/web-archived/vite.config.ts delete mode 100644 apps/calendar/apps/web-archived/Dockerfile delete mode 100644 apps/calendar/apps/web-archived/e2e/auth.spec.ts delete mode 100644 apps/calendar/apps/web-archived/e2e/calendar-views.spec.ts delete mode 100644 apps/calendar/apps/web-archived/e2e/calendars.spec.ts delete mode 100644 apps/calendar/apps/web-archived/e2e/error-page.spec.ts delete mode 100644 apps/calendar/apps/web-archived/e2e/events.spec.ts delete mode 100644 apps/calendar/apps/web-archived/e2e/fixtures/auth.ts delete mode 100644 apps/calendar/apps/web-archived/e2e/settings.spec.ts delete mode 100644 apps/calendar/apps/web-archived/e2e/week-view-interactions.spec.ts delete mode 100644 apps/calendar/apps/web-archived/eslint.config.js delete mode 100644 apps/calendar/apps/web-archived/package.json delete mode 100644 apps/calendar/apps/web-archived/playwright.config.ts delete mode 100644 apps/calendar/apps/web-archived/scripts/generate-icons.mjs delete mode 100644 apps/calendar/apps/web-archived/src/app.css delete mode 100644 apps/calendar/apps/web-archived/src/app.d.ts delete mode 100644 apps/calendar/apps/web-archived/src/app.html delete mode 100644 apps/calendar/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/calendar/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/birthdays.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/calendars.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/event-tags.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/events.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/events.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/reminders.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/reminders.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/shares.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/sync.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/api/sync.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/ServiceStatusBanner.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/agenda/AgendaFilters.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/agenda/AgendaItem.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/birthday/BirthdayPopover.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/AgendaView.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarHeader.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarSidebar.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarToolbar.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarToolbarContent.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/DateStrip.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/DateStripFab.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/EventCard.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/MiniCalendar.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/MonthView.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/OverflowIndicator.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/PillCalendarSelector.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/TagStrip.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/TagStripModal.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/TimeColumn.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/UnifiedBar.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/UnifiedBarControls.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/ViewCarousel.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/ViewModePill.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/ViewsBar.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/calendar/WeekView.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/event/AttendeeSelector.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/event/EventDetailModal.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/event/EventForm.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/event/QuickEventOverlay.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/event/RecurrenceEditDialog.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/event/RecurrenceSelector.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/event/ReminderSelector.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/event/ResponsiblePersonSelector.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/settings/CalendarManagement.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/settings/SettingsModal.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/skeletons/AgendaSkeleton.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/skeletons/CalendarViewSkeleton.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/skeletons/EventDetailSkeleton.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/skeletons/RedirectSkeleton.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/skeletons/index.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/tags/index.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/voice/VoiceRecordButton.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/components/voice/VoiceRecordingModal.svelte delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/index.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/useBirthdayPopover.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/useCalendarKeyboard.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/useDragToCreate.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/useDragToCreate.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/useEventDragDrop.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/useEventDragDrop.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/useSwipeNavigation.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/composables/useVisibleHours.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/config/helpConfig.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/calendar/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/calendar/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/calendar/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/calendar/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/calendar/apps/web-archived/src/lib/services/feedback.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/services/stt.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/birthdays.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/calendars.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/contacts.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/event-tags.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/eventModal.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/events-recurrence.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/events.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/events.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/external-calendars.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/external-calendars.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/search.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/settings.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/shares.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/unified-bar.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/view.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/view.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/stores/voice-recording.svelte.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/audio-recorder.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/calendarConstants.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/dateNavigation.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/dateNavigation.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/drag-helpers.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/event-estimator.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/event-estimator.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/event-parser.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/event-parser.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/eventDateHelpers.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/eventDateHelpers.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/eventFiltering.test.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/eventFiltering.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/utils/syntax-help.ts delete mode 100644 apps/calendar/apps/web-archived/src/lib/version.ts delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/event/[id]/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/settings/sharing/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/settings/sync/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(app)/unified-bar-demo/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/+error.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/calendar/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/calendar/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/calendar/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/calendar/apps/web-archived/static/apple-touch-icon.png delete mode 100644 apps/calendar/apps/web-archived/static/favicon.png delete mode 100644 apps/calendar/apps/web-archived/static/favicon.svg delete mode 100644 apps/calendar/apps/web-archived/static/pwa-192x192.png delete mode 100644 apps/calendar/apps/web-archived/static/pwa-512x512.png delete mode 100644 apps/calendar/apps/web-archived/svelte.config.js delete mode 100644 apps/calendar/apps/web-archived/tsconfig.json delete mode 100644 apps/calendar/apps/web-archived/vite.config.ts delete mode 100644 apps/cards/apps/web-archived/.env.example delete mode 100644 apps/cards/apps/web-archived/.gitignore delete mode 100644 apps/cards/apps/web-archived/.npmrc delete mode 100644 apps/cards/apps/web-archived/Dockerfile delete mode 100644 apps/cards/apps/web-archived/README.md delete mode 100644 apps/cards/apps/web-archived/eslint.config.js delete mode 100644 apps/cards/apps/web-archived/package.json delete mode 100644 apps/cards/apps/web-archived/src/app.css delete mode 100644 apps/cards/apps/web-archived/src/app.d.ts delete mode 100644 apps/cards/apps/web-archived/src/app.html delete mode 100644 apps/cards/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/cards/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/api/feedback.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/assets/favicon.svg delete mode 100644 apps/cards/apps/web-archived/src/lib/auth.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/cards/apps/web-archived/src/lib/components/Icon.svelte delete mode 100644 apps/cards/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/cards/apps/web-archived/src/lib/components/deck/CreateDeckModal.svelte delete mode 100644 apps/cards/apps/web-archived/src/lib/components/deck/DeckCard.svelte delete mode 100644 apps/cards/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/cards/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/cards/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/cards/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/cards/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/cards/apps/web-archived/src/lib/index.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/cardStore.svelte.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/deckStore.svelte.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/progressStore.svelte.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/types/auth.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/types/card.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/types/credits.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/types/deck.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/types/study.ts delete mode 100644 apps/cards/apps/web-archived/src/lib/version.ts delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/apps/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/decks/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/decks/[id]/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/explore/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/progress/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/cards/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/cards/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/cards/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/cards/apps/web-archived/static/images/app-icons/cards-logo-gradient.png delete mode 100644 apps/cards/apps/web-archived/static/images/app-icons/maerchenzauber-logo-gradient.png delete mode 100644 apps/cards/apps/web-archived/static/images/app-icons/manacore-logo-gradient.png delete mode 100644 apps/cards/apps/web-archived/static/images/app-icons/memoro-logo-gradient.png delete mode 100644 apps/cards/apps/web-archived/static/images/app-icons/moodlit-logo-gradient.png delete mode 100644 apps/cards/apps/web-archived/static/robots.txt delete mode 100644 apps/cards/apps/web-archived/svelte.config.js delete mode 100644 apps/cards/apps/web-archived/tailwind.config.js.bak delete mode 100644 apps/cards/apps/web-archived/tsconfig.json delete mode 100644 apps/cards/apps/web-archived/vite.config.ts delete mode 100644 apps/chat/apps/web-archived/.env.example delete mode 100644 apps/chat/apps/web-archived/Dockerfile delete mode 100644 apps/chat/apps/web-archived/eslint.config.js delete mode 100644 apps/chat/apps/web-archived/package.json delete mode 100644 apps/chat/apps/web-archived/src/app.css delete mode 100644 apps/chat/apps/web-archived/src/app.d.ts delete mode 100644 apps/chat/apps/web-archived/src/app.html delete mode 100644 apps/chat/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/chat/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/chat/ChatInput.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/chat/ChatLayout.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/chat/ConversationList.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/chat/MessageBubble.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/chat/MessageList.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/chat/ModelSelector.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/chat/TypingIndicator.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/compare/CompareInput.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/compare/CompareProgress.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/compare/ModelResponseCard.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/compare/ModelResponseGrid.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/spaces/SpaceCard.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/spaces/SpaceForm.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/templates/TemplateCard.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/components/templates/TemplateForm.svelte delete mode 100644 apps/chat/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/chat/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/chat/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/chat/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/chat/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/chat/apps/web-archived/src/lib/services/api.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/services/chat.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/services/conversation.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/services/document.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/services/feedback.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/services/space.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/services/template.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/chat.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/compare.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/conversations.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/session-conversations.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/spaces.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/templates.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/chat/apps/web-archived/src/lib/version.ts delete mode 100644 apps/chat/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/+layout.server.ts delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/+layout.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/apps/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/archive/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/chat/+layout.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/chat/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/chat/[id]/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/compare/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/documents/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/feedback/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/help/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/mana/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/profile/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/settings/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/spaces/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/spaces/[id]/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/tags/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/templates/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/(protected)/themes/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/chat/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/chat/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/chat/apps/web-archived/svelte.config.js delete mode 100644 apps/chat/apps/web-archived/tsconfig.json delete mode 100644 apps/chat/apps/web-archived/vite.config.ts delete mode 100644 apps/citycorners/apps/web-archived/Dockerfile delete mode 100755 apps/citycorners/apps/web-archived/docker-entrypoint.sh delete mode 100644 apps/citycorners/apps/web-archived/package.json delete mode 100644 apps/citycorners/apps/web-archived/src/app.css delete mode 100644 apps/citycorners/apps/web-archived/src/app.d.ts delete mode 100644 apps/citycorners/apps/web-archived/src/app.html delete mode 100644 apps/citycorners/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/citycorners/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/api.test.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/api.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/citycorners/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/citycorners/apps/web-archived/src/lib/opening-hours.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/stores/favorites.svelte.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/citycorners/apps/web-archived/src/lib/stores/theme.svelte.ts delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/add-city/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/add/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/cities/[slug]/+layout.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/cities/[slug]/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/cities/[slug]/add/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/cities/[slug]/locations/[id]/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/cities/[slug]/locations/[id]/edit/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/cities/[slug]/map/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/favorites/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/locations/[id]/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/locations/[id]/edit/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/map/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/citycorners/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/citycorners/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/citycorners/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/citycorners/apps/web-archived/static/favicon.png delete mode 100644 apps/citycorners/apps/web-archived/svelte.config.js delete mode 100644 apps/citycorners/apps/web-archived/tsconfig.json delete mode 100644 apps/citycorners/apps/web-archived/vite.config.ts delete mode 100644 apps/contacts/apps/web-archived/Dockerfile delete mode 100644 apps/contacts/apps/web-archived/e2e/auth.spec.ts delete mode 100644 apps/contacts/apps/web-archived/e2e/contacts.spec.ts delete mode 100644 apps/contacts/apps/web-archived/e2e/fixtures/auth.ts delete mode 100644 apps/contacts/apps/web-archived/e2e/tags.spec.ts delete mode 100644 apps/contacts/apps/web-archived/eslint.config.js delete mode 100644 apps/contacts/apps/web-archived/package.json delete mode 100644 apps/contacts/apps/web-archived/playwright.config.ts delete mode 100644 apps/contacts/apps/web-archived/src/app.css delete mode 100644 apps/contacts/apps/web-archived/src/app.d.ts delete mode 100644 apps/contacts/apps/web-archived/src/app.html delete mode 100644 apps/contacts/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/contacts/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/batch.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/config.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/contacts.test.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/contacts.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/duplicates.test.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/duplicates.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/export.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/google.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/import.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/api/todos.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/AlphabetNavContextMenu.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/ContactDetailModal.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/ContactList.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/ContactNotes.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/ContactTasks.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/ContactsToolbar.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/ContactsToolbarContent.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/FilterBar.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/NewContactModal.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/SearchModal.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/SocialMediaLinks.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/SortToggle.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/SpiralCanvas.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/TagStrip.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/TagStripModal.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/ViewModeToggle.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/duplicates/MergeModal.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/export/ExportModal.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/forms/DateFields.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/forms/SocialMediaFields.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/import/FileUploader.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/import/GoogleImport.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/import/ImportPreview.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/ContactCardSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/ContactDetailSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/ContactGridSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/ContactListSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/ContactNotesSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/ContactRowSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/DuplicateGroupSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/DuplicateListSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/GoogleImportSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/ImportPreviewSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/TagCardSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/TagGridSkeleton.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/skeletons/index.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/views/ContactAlphabetView.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/components/views/ContactGridView.svelte delete mode 100644 apps/contacts/apps/web-archived/src/lib/config/social-media.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/constants/contact-fields.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/data/demo-contacts.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/contacts/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/contacts/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/contacts/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/contacts/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/contacts/apps/web-archived/src/lib/services/feedback.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/contacts.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/filter.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/filter.test.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/new-contact-modal.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/settings.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/spiral.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/todos.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/stores/view-mode.svelte.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/utils/contact-display.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/utils/contact-parser.test.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/utils/contact-parser.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/utils/duplicate-detector.test.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/utils/duplicate-detector.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/utils/error-helpers.ts delete mode 100644 apps/contacts/apps/web-archived/src/lib/version.ts delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/archive/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/contacts/[id]/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/data/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/duplicates/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/spiral/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/+error.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/contacts/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/contacts/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/contacts/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/contacts/apps/web-archived/svelte.config.js delete mode 100644 apps/contacts/apps/web-archived/tsconfig.json delete mode 100644 apps/contacts/apps/web-archived/vite.config.ts delete mode 100644 apps/context/apps/mobile/components/variants/index.ts delete mode 100644 apps/context/apps/web-archived/package.json delete mode 100644 apps/context/apps/web-archived/src/app.css delete mode 100644 apps/context/apps/web-archived/src/app.html delete mode 100644 apps/context/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/context/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/context/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/context/apps/web-archived/src/lib/components/AIToolbar.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/BatchCreateModal.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/CreateSpaceModal.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/DocumentCard.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/DocumentEditor.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/MentionInput.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/SpaceCard.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/VersionNavigator.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte delete mode 100644 apps/context/apps/web-archived/src/lib/components/skeletons/index.ts delete mode 100644 apps/context/apps/web-archived/src/lib/config/editor.ts delete mode 100644 apps/context/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/context/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/context/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/context/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/context/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/context/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/context/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/context/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/context/apps/web-archived/src/lib/services/ai.ts delete mode 100644 apps/context/apps/web-archived/src/lib/services/documents.ts delete mode 100644 apps/context/apps/web-archived/src/lib/services/spaces.ts delete mode 100644 apps/context/apps/web-archived/src/lib/services/tokens.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/documents.svelte.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/spaces.svelte.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/theme.svelte.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/tokens.svelte.ts delete mode 100644 apps/context/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/context/apps/web-archived/src/lib/types.ts delete mode 100644 apps/context/apps/web-archived/src/lib/utils/markdown.ts delete mode 100644 apps/context/apps/web-archived/src/lib/utils/text.ts delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/documents/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/documents/[id]/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/spaces/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/spaces/[id]/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(app)/tokens/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/context/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/context/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/context/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/context/apps/web-archived/svelte.config.js delete mode 100644 apps/context/apps/web-archived/tsconfig.json delete mode 100644 apps/context/apps/web-archived/vite.config.ts delete mode 100644 apps/guides/apps/web-archived/package.json delete mode 100644 apps/guides/apps/web-archived/src/app.css delete mode 100644 apps/guides/apps/web-archived/src/app.d.ts delete mode 100644 apps/guides/apps/web-archived/src/app.html delete mode 100644 apps/guides/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/guides/apps/web-archived/src/lib/components/CollectionEditModal.svelte delete mode 100644 apps/guides/apps/web-archived/src/lib/components/GuideCard.svelte delete mode 100644 apps/guides/apps/web-archived/src/lib/components/GuideEditModal.svelte delete mode 100644 apps/guides/apps/web-archived/src/lib/components/ImportModal.svelte delete mode 100644 apps/guides/apps/web-archived/src/lib/components/StepEditorModal.svelte delete mode 100644 apps/guides/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/guides/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/guides/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/guides/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/guides/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/guides/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/guides/apps/web-archived/src/lib/stores/guides.svelte.ts delete mode 100644 apps/guides/apps/web-archived/src/lib/stores/runs.svelte.ts delete mode 100644 apps/guides/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/guides/apps/web-archived/src/lib/version.ts delete mode 100644 apps/guides/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(app)/collections/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(app)/collections/[id]/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(app)/guide/[id]/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(app)/guide/[id]/run/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(app)/history/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/shared/+layout.svelte delete mode 100644 apps/guides/apps/web-archived/src/routes/shared/[token]/+page.svelte delete mode 100644 apps/guides/apps/web-archived/svelte.config.js delete mode 100644 apps/guides/apps/web-archived/tsconfig.json delete mode 100644 apps/guides/apps/web-archived/vite.config.ts delete mode 100644 apps/inventar/apps/web-archived/Dockerfile delete mode 100644 apps/inventar/apps/web-archived/package.json delete mode 100644 apps/inventar/apps/web-archived/src/app.css delete mode 100644 apps/inventar/apps/web-archived/src/app.d.ts delete mode 100644 apps/inventar/apps/web-archived/src/app.html delete mode 100644 apps/inventar/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/inventar/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/components/StatusBadge.svelte delete mode 100644 apps/inventar/apps/web-archived/src/lib/components/ViewModeToggle.svelte delete mode 100644 apps/inventar/apps/web-archived/src/lib/components/fields/FieldEditor.svelte delete mode 100644 apps/inventar/apps/web-archived/src/lib/components/fields/FieldRenderer.svelte delete mode 100644 apps/inventar/apps/web-archived/src/lib/components/fields/SchemaEditor.svelte delete mode 100644 apps/inventar/apps/web-archived/src/lib/components/skeletons/CollectionListSkeleton.svelte delete mode 100644 apps/inventar/apps/web-archived/src/lib/components/skeletons/ItemListSkeleton.svelte delete mode 100644 apps/inventar/apps/web-archived/src/lib/components/skeletons/index.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/inventar/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/inventar/apps/web-archived/src/lib/services/feedback.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/categories.svelte.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/collections.svelte.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/items.svelte.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/locations.svelte.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/stores/view.svelte.ts delete mode 100644 apps/inventar/apps/web-archived/src/lib/version.ts delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/categories/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/collections/[id]/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/collections/[id]/edit/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/collections/new/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/items/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/items/[id]/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/locations/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/search/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/+error.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/inventar/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/inventar/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/inventar/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/inventar/apps/web-archived/static/favicon.svg delete mode 100644 apps/inventar/apps/web-archived/static/icons/icon.svg delete mode 100644 apps/inventar/apps/web-archived/svelte.config.js delete mode 100644 apps/inventar/apps/web-archived/tsconfig.json delete mode 100644 apps/inventar/apps/web-archived/vite.config.ts delete mode 100644 apps/manacore/apps/web/src/routes/(app)/organizations/+page.server.ts delete mode 100644 apps/manacore/apps/web/src/routes/(app)/settings/+page.server.ts delete mode 100644 apps/manacore/apps/web/src/routes/(app)/teams/+page.server.ts delete mode 100644 apps/memoro/apps/web-archived/.env.example delete mode 100644 apps/memoro/apps/web-archived/.gitignore delete mode 100644 apps/memoro/apps/web-archived/.npmrc delete mode 100644 apps/memoro/apps/web-archived/APPLE_SIGNIN_COMPLETE_GUIDE.md delete mode 100644 apps/memoro/apps/web-archived/Dockerfile delete mode 100644 apps/memoro/apps/web-archived/GOOGLE_SIGNIN_COMPLETE_GUIDE.md delete mode 100644 apps/memoro/apps/web-archived/README.md delete mode 100644 apps/memoro/apps/web-archived/docs/ENVIRONMENT_VARIABLES.md delete mode 100644 apps/memoro/apps/web-archived/docs/FEATURE_COMPARISON.md delete mode 100644 apps/memoro/apps/web-archived/docs/MEMO_DETAILS_FEATURE_PLAN.md delete mode 100644 apps/memoro/apps/web-archived/docs/RING_ANIMATION_GUIDELINES.md delete mode 100644 apps/memoro/apps/web-archived/docs/archive/IMPLEMENTATION_SUMMARY.md delete mode 100644 apps/memoro/apps/web-archived/docs/archive/PHASE_2_SUMMARY.md delete mode 100644 apps/memoro/apps/web-archived/docs/archive/PHASE_3_TAG_MANAGEMENT_SUMMARY.md delete mode 100644 apps/memoro/apps/web-archived/docs/archive/PHASE_4_OAUTH_SUMMARY.md delete mode 100644 apps/memoro/apps/web-archived/docs/archive/SPA_CONVERSION_COMPLETE.md delete mode 100644 apps/memoro/apps/web-archived/package.json delete mode 100644 apps/memoro/apps/web-archived/src/app.css delete mode 100644 apps/memoro/apps/web-archived/src/app.d.ts delete mode 100644 apps/memoro/apps/web-archived/src/app.html delete mode 100644 apps/memoro/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/memoro/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/assets/favicon.svg delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/AdviceCarousel.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/AppleSignInButton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/AudioPlayer.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/AudioRecorder.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/BillingToggle.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/BlueprintCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/BlueprintModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/BlueprintModal.svelte.backup delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/BlueprintSelector.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/ContextMenu.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/CostCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/GoogleSignInButton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/Icon.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/ManaIcon.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/MemoroLogo.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/MemoryAccordion.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/Modal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/PackageCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/PillDropdown.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/PillFilter.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/PillNavigation.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/RecordingButton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/SectionHeader.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/SettingsToggle.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/Sidebar.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/SplitView.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/SubscriptionButton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/SubscriptionCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/TabBar.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/TagBadge.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/TagEditModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/TagSelector.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/ThemeSelector.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/ThemeToggle.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/Toggle.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/UsageCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/VirtualList.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/atoms/Text.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/atoms/index.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/audio/ArchiveStatistics.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/audio/AudioFileCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/audio/AudioFileList.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/icons/README.md delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/icons/iconPaths.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/AdditionalRecordings.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/EditModeToolbar.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/MemoActions.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/MemoContent.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/MemoHeader.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/MemoPanel.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/PhotoGallery.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/PinButton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/PromptBar.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/StructuredTranscript.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/CreateMemoryModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/DeleteModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/ReplaceWordModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/ReprocessModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/SearchOverlay.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/ShareModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/ShortcutsModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/SpaceSelectorModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/SpeakerLabelModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/TagSelectorModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/memo/modals/TranslateModal.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/OVERVIEW.md delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/README.md delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/index.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/pages/BlueprintsPageSkeleton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/pages/DashboardSkeleton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/pages/SettingsPageSkeleton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/pages/SpacesPageSkeleton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/pages/StatisticsPageSkeleton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/pages/SubscriptionPageSkeleton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/pages/TagsPageSkeleton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/pages/UploadPageSkeleton.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/utils/SkeletonBox.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/skeletons/utils/SkeletonText.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/statistics/EngagementCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/statistics/GlassCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/statistics/InsightsCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/statistics/OverviewCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/statistics/ProductivityCard.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/components/statistics/StatRow.svelte delete mode 100644 apps/memoro/apps/web-archived/src/lib/config/env.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/data/appCosts.json delete mode 100644 apps/memoro/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/data/subscriptionData.json delete mode 100644 apps/memoro/apps/web-archived/src/lib/data/usageData.json delete mode 100644 apps/memoro/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/memoro/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/memoro/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/memoro/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/memoro/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/memoro/apps/web-archived/src/lib/index.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/audioStorageService.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/audioUploadService.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/creditService.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/memoService.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/questionService.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/spaceService.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/tagService.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/tokenManager.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/services/transcriptionService.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/memos.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/recording.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/ringsInitialized.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/settings.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/tabs.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/tags.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/supabaseClient.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/types/database.types.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/types/memo.types.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/utils/appleAuth.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/utils/formatters.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/utils/googleAuth.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/utils/indexedDBCache.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/utils/keyboardShortcuts.ts delete mode 100644 apps/memoro/apps/web-archived/src/lib/utils/realtimeUpdates.ts delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/+layout.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/audio-archive/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/blueprints/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/dashboard/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/memos/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/record/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/settings/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/spaces/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/statistics/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/subscription/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/tags/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(protected)/upload/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(public)/+layout.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(public)/login/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/(public)/register/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/+error.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/auth/apple-callback-handler/+server.ts delete mode 100644 apps/memoro/apps/web-archived/src/routes/auth/apple-callback/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/auth/callback/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/memoro/apps/web-archived/static/.well-known/apple-app-site-association delete mode 100644 apps/memoro/apps/web-archived/static/apple-touch-icon.png delete mode 100644 apps/memoro/apps/web-archived/static/deployment-version.txt delete mode 100644 apps/memoro/apps/web-archived/static/favicon-96x96.png delete mode 100644 apps/memoro/apps/web-archived/static/favicon.ico delete mode 100644 apps/memoro/apps/web-archived/static/favicon.svg delete mode 100644 apps/memoro/apps/web-archived/static/images/app-icons/maerchenzauber-logo-gradient.png delete mode 100644 apps/memoro/apps/web-archived/static/images/app-icons/manacore-logo-gradient.png delete mode 100644 apps/memoro/apps/web-archived/static/images/app-icons/memoro-logo-gradient.png delete mode 100644 apps/memoro/apps/web-archived/static/images/app-icons/moodlit-logo-gradient.png delete mode 100644 apps/memoro/apps/web-archived/static/robots.txt delete mode 100644 apps/memoro/apps/web-archived/static/site.webmanifest delete mode 100644 apps/memoro/apps/web-archived/static/web-app-manifest-192x192.png delete mode 100644 apps/memoro/apps/web-archived/static/web-app-manifest-512x512.png delete mode 100644 apps/memoro/apps/web-archived/svelte.config.js delete mode 100644 apps/memoro/apps/web-archived/tsconfig.json delete mode 100644 apps/memoro/apps/web-archived/vite.config.ts delete mode 100644 apps/moodlit/apps/web-archived/package.json delete mode 100644 apps/moodlit/apps/web-archived/src/app.css delete mode 100644 apps/moodlit/apps/web-archived/src/app.d.ts delete mode 100644 apps/moodlit/apps/web-archived/src/app.html delete mode 100644 apps/moodlit/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/lib/components/MoodlitLogo.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/lib/components/mood/CreateMoodDialog.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/lib/components/mood/MoodCard.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/lib/components/mood/MoodFullscreen.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/lib/data/default-moods.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/moodlit/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/moodlit/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/stores/moods.svelte.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/stores/sequences.svelte.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/types/auth.ts delete mode 100644 apps/moodlit/apps/web-archived/src/lib/types/mood.ts delete mode 100644 apps/moodlit/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/routes/(app)/moods/+page.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/routes/(app)/sequences/+page.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/routes/auth/login/+page.svelte delete mode 100644 apps/moodlit/apps/web-archived/src/routes/auth/register/+page.svelte delete mode 100644 apps/moodlit/apps/web-archived/svelte.config.js delete mode 100644 apps/moodlit/apps/web-archived/tsconfig.json delete mode 100644 apps/moodlit/apps/web-archived/vite.config.ts delete mode 100644 apps/mukke/apps/web-archived/.env.example delete mode 100644 apps/mukke/apps/web-archived/Dockerfile delete mode 100644 apps/mukke/apps/web-archived/docker-entrypoint.sh delete mode 100644 apps/mukke/apps/web-archived/package.json delete mode 100644 apps/mukke/apps/web-archived/src/app.css delete mode 100644 apps/mukke/apps/web-archived/src/app.d.ts delete mode 100644 apps/mukke/apps/web-archived/src/app.html delete mode 100644 apps/mukke/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/mukke/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/BeatLibrary.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/BeatUploader.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/FullPlayer.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/KaraokePreview.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/LyricsEditor.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/MarkerTimeline.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/MiniPlayer.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/PlaybackControls.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/QueuePanel.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/SongEditor.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/components/WaveformEditor.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/services/feedback.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/audio.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/editor.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/library.svelte.test.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/library.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/player.svelte.test.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/player.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/playlist.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/project.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/theme.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/utils/bpm-detector.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/utils/song-parser.test.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/utils/song-parser.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/utils/syntax-help.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/utils/time-format.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/version.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/visualizer/ButterchurnViz.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/visualizer/FrequencyBars.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/visualizer/ParticleViz.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/visualizer/VisualizerRenderer.svelte delete mode 100644 apps/mukke/apps/web-archived/src/lib/visualizer/analyzer.ts delete mode 100644 apps/mukke/apps/web-archived/src/lib/visualizer/registry.svelte.ts delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/dashboard/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/editor/[id]/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/library/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/library/albums/[name]/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/library/artists/[name]/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/library/genres/[name]/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/playlists/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/playlists/[id]/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/projects/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/search/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(app)/upload/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/mukke/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/mukke/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/mukke/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/mukke/apps/web-archived/src/test/mocks/app/environment.ts delete mode 100644 apps/mukke/apps/web-archived/src/test/mocks/app/navigation.ts delete mode 100644 apps/mukke/apps/web-archived/src/test/mocks/app/stores.ts delete mode 100644 apps/mukke/apps/web-archived/src/test/mocks/env/static/public.ts delete mode 100644 apps/mukke/apps/web-archived/src/test/setup.ts delete mode 100644 apps/mukke/apps/web-archived/svelte.config.js delete mode 100644 apps/mukke/apps/web-archived/tsconfig.json delete mode 100644 apps/mukke/apps/web-archived/vite.config.ts delete mode 100644 apps/mukke/apps/web-archived/vitest.config.ts delete mode 100644 apps/news/apps/web-archived/.env.example delete mode 100644 apps/news/apps/web-archived/eslint.config.js delete mode 100644 apps/news/apps/web-archived/package.json delete mode 100644 apps/news/apps/web-archived/src/app.css delete mode 100644 apps/news/apps/web-archived/src/app.d.ts delete mode 100644 apps/news/apps/web-archived/src/app.html delete mode 100644 apps/news/apps/web-archived/src/lib/components/NewsLogo.svelte delete mode 100644 apps/news/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/news/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/news/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/news/apps/web-archived/src/routes/(protected)/+layout.svelte delete mode 100644 apps/news/apps/web-archived/src/routes/(protected)/feed/+page.svelte delete mode 100644 apps/news/apps/web-archived/src/routes/(protected)/saved/+page.svelte delete mode 100644 apps/news/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/news/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/news/apps/web-archived/src/routes/auth/login/+page.svelte delete mode 100644 apps/news/apps/web-archived/src/routes/auth/register/+page.svelte delete mode 100644 apps/news/apps/web-archived/svelte.config.js delete mode 100644 apps/news/apps/web-archived/tsconfig.json delete mode 100644 apps/news/apps/web-archived/vite.config.ts delete mode 100644 apps/nutriphi/apps/web-archived/Dockerfile delete mode 100644 apps/nutriphi/apps/web-archived/package.json delete mode 100644 apps/nutriphi/apps/web-archived/src/app.css delete mode 100644 apps/nutriphi/apps/web-archived/src/app.d.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/app.html delete mode 100644 apps/nutriphi/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/api/client.spec.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/components/AddMealButton.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/components/DailySummary.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/components/Header.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/components/MealList.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/components/ProgressRing.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/stores/meals.svelte.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/utils/meal-parser.test.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/utils/meal-parser.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/utils/syntax-help.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/lib/version.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/add/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/help/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/routes/settings/+page.svelte delete mode 100644 apps/nutriphi/apps/web-archived/src/test/mocks/app/environment.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/test/mocks/app/navigation.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/test/mocks/app/stores.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/test/mocks/env/static/public.ts delete mode 100644 apps/nutriphi/apps/web-archived/src/test/setup.ts delete mode 100644 apps/nutriphi/apps/web-archived/svelte.config.js delete mode 100644 apps/nutriphi/apps/web-archived/tsconfig.json delete mode 100644 apps/nutriphi/apps/web-archived/vite.config.ts delete mode 100644 apps/nutriphi/apps/web-archived/vitest.config.ts delete mode 100644 apps/photos/apps/web-archived/.env.example delete mode 100644 apps/photos/apps/web-archived/Dockerfile delete mode 100644 apps/photos/apps/web-archived/package.json delete mode 100644 apps/photos/apps/web-archived/src/app.css delete mode 100644 apps/photos/apps/web-archived/src/app.d.ts delete mode 100644 apps/photos/apps/web-archived/src/app.html delete mode 100644 apps/photos/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/photos/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/components/albums/AlbumCard.svelte delete mode 100644 apps/photos/apps/web-archived/src/lib/components/albums/AlbumGrid.svelte delete mode 100644 apps/photos/apps/web-archived/src/lib/components/albums/CreateAlbumModal.svelte delete mode 100644 apps/photos/apps/web-archived/src/lib/components/filters/FilterBar.svelte delete mode 100644 apps/photos/apps/web-archived/src/lib/components/gallery/PhotoCard.svelte delete mode 100644 apps/photos/apps/web-archived/src/lib/components/gallery/PhotoDetailModal.svelte delete mode 100644 apps/photos/apps/web-archived/src/lib/components/gallery/PhotoGrid.svelte delete mode 100644 apps/photos/apps/web-archived/src/lib/components/upload/UploadDropzone.svelte delete mode 100644 apps/photos/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/photos/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/photos/apps/web-archived/src/lib/stores/albums.svelte.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/stores/photos.svelte.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/photos/apps/web-archived/src/lib/version.ts delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/albums/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/albums/[id]/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/favorites/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/upload/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(app)/upload/+page.ts delete mode 100644 apps/photos/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/photos/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/photos/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/photos/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/photos/apps/web-archived/static/favicon.png delete mode 100644 apps/photos/apps/web-archived/svelte.config.js delete mode 100644 apps/photos/apps/web-archived/tsconfig.json delete mode 100644 apps/photos/apps/web-archived/vite.config.ts delete mode 100644 apps/picture/apps/web-archived/.env.example delete mode 100644 apps/picture/apps/web-archived/.gitignore delete mode 100644 apps/picture/apps/web-archived/.npmrc delete mode 100644 apps/picture/apps/web-archived/.prettierignore delete mode 100644 apps/picture/apps/web-archived/.prettierrc delete mode 100644 apps/picture/apps/web-archived/Dockerfile delete mode 100644 apps/picture/apps/web-archived/README.md delete mode 100644 apps/picture/apps/web-archived/docs/ADVANCED_GENERATION_SETTINGS.md delete mode 100644 apps/picture/apps/web-archived/docs/update-storage-policies.sql delete mode 100644 apps/picture/apps/web-archived/eslint.config.js delete mode 100644 apps/picture/apps/web-archived/package.json delete mode 100644 apps/picture/apps/web-archived/src/app.css delete mode 100644 apps/picture/apps/web-archived/src/app.d.ts delete mode 100644 apps/picture/apps/web-archived/src/app.html delete mode 100644 apps/picture/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/picture/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/boardItems.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/boards.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/explore.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/feedback.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/generate-async.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/generate.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/images.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/models.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/tags.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/api/upload.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/assets/favicon.svg delete mode 100644 apps/picture/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/archive/ArchivedImageCard.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/archive/ArchivedImageModal.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/board/BoardCanvas.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/board/CanvasToolbar.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/board/ImagePickerModal.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/board/ImagePropertiesPanel.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/branding/PictureLogo.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/gallery/GalleryGrid.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/gallery/ImageCard.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/gallery/ImageDetailModal.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/gallery/QuickGenerateBar.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/generate/AdvancedSettingsModal.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/generate/GenerateForm.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/layout/Header.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/layout/Sidebar.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/settings/ThemePicker.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/tags/TagPills.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/ui/Button.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/ui/Card.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/ui/ContextMenu.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/ui/ImageSkeleton.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/ui/KeyboardShortcutsModal.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/ui/Modal.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/ui/ViewModeSwitcher.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/components/upload/DropZone.svelte delete mode 100644 apps/picture/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/picture/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/picture/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/picture/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/picture/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/picture/apps/web-archived/src/lib/index.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/archive.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/boards.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/canvas.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/contextMenu.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/explore.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/generate.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/images.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/models.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/sidebar.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/tags.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/ui.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/stores/view.ts delete mode 100644 apps/picture/apps/web-archived/src/lib/version.ts delete mode 100644 apps/picture/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/+layout.server.ts delete mode 100644 apps/picture/apps/web-archived/src/routes/app/+layout.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/apps/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/archive/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/board/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/board/[id]/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/explore/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/feedback/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/gallery/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/generate/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/help/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/mana/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/profile/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/settings/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/tags/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/themes/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/app/upload/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/auth/forgot-password/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/auth/login/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/auth/reset-password/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/auth/signup/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/picture/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/picture/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/picture/apps/web-archived/static/images/app-icons/maerchenzauber-logo-gradient.png delete mode 100644 apps/picture/apps/web-archived/static/images/app-icons/manacore-logo-gradient.png delete mode 100644 apps/picture/apps/web-archived/static/images/app-icons/manadeck-logo-gradient.png delete mode 100644 apps/picture/apps/web-archived/static/images/app-icons/memoro-logo-gradient.png delete mode 100644 apps/picture/apps/web-archived/static/images/app-icons/moodlit-logo-gradient.png delete mode 100644 apps/picture/apps/web-archived/static/images/app-icons/picture-logo-gradient.png delete mode 100644 apps/picture/apps/web-archived/static/robots.txt delete mode 100644 apps/picture/apps/web-archived/svelte.config.js delete mode 100644 apps/picture/apps/web-archived/tsconfig.json delete mode 100644 apps/picture/apps/web-archived/vite.config.ts delete mode 100644 apps/planta/apps/web-archived/package.json delete mode 100644 apps/planta/apps/web-archived/src/app.css delete mode 100644 apps/planta/apps/web-archived/src/app.d.ts delete mode 100644 apps/planta/apps/web-archived/src/app.html delete mode 100644 apps/planta/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/planta/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/api/analysis.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/api/photos.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/api/plants.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/api/watering.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/data/mutations.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/planta/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/planta/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/utils/plant-parser.test.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/utils/plant-parser.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/utils/syntax-help.ts delete mode 100644 apps/planta/apps/web-archived/src/lib/version.ts delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/add/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/dashboard/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/plants/[id]/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/planta/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/planta/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/planta/apps/web-archived/svelte.config.js delete mode 100644 apps/planta/apps/web-archived/tsconfig.json delete mode 100644 apps/planta/apps/web-archived/vite.config.ts delete mode 100644 apps/presi/apps/web-archived/Dockerfile delete mode 100644 apps/presi/apps/web-archived/eslint.config.js delete mode 100644 apps/presi/apps/web-archived/package.json delete mode 100644 apps/presi/apps/web-archived/src/app.css delete mode 100644 apps/presi/apps/web-archived/src/app.d.ts delete mode 100644 apps/presi/apps/web-archived/src/app.html delete mode 100644 apps/presi/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/presi/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/api/feedback.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/presi/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/presi/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/presi/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/presi/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/presi/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/presi/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/presi/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/stores/decks.svelte.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/presi/apps/web-archived/src/lib/version.ts delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/apps/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/deck/[id]/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/present/[id]/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/shared/[code]/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/+error.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/presi/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/presi/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/presi/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/presi/apps/web-archived/svelte.config.js delete mode 100644 apps/presi/apps/web-archived/tsconfig.json delete mode 100644 apps/presi/apps/web-archived/vite.config.ts delete mode 100644 apps/questions/apps/web-archived/.env.example delete mode 100644 apps/questions/apps/web-archived/package.json delete mode 100644 apps/questions/apps/web-archived/src/app.css delete mode 100644 apps/questions/apps/web-archived/src/app.d.ts delete mode 100644 apps/questions/apps/web-archived/src/app.html delete mode 100644 apps/questions/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/questions/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/api/answers.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/api/collections.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/api/index.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/api/questions.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/api/research.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/api/sources.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/components/CollectionModal.svelte delete mode 100644 apps/questions/apps/web-archived/src/lib/components/ErrorAlert.svelte delete mode 100644 apps/questions/apps/web-archived/src/lib/components/index.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/components/skeletons/QuestionDetailSkeleton.svelte delete mode 100644 apps/questions/apps/web-archived/src/lib/components/skeletons/QuestionSkeleton.svelte delete mode 100644 apps/questions/apps/web-archived/src/lib/components/skeletons/index.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/data/demo-questions.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/questions/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/questions/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/stores/collections.svelte.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/stores/index.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/stores/questions.svelte.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/types/index.ts delete mode 100644 apps/questions/apps/web-archived/src/lib/version.ts delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/collections/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/new/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/question/[id]/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/questions/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/questions/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/questions/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/questions/apps/web-archived/svelte.config.js delete mode 100644 apps/questions/apps/web-archived/tsconfig.json delete mode 100644 apps/questions/apps/web-archived/vite.config.ts delete mode 100644 apps/skilltree/apps/web-archived/.env.production.example delete mode 100644 apps/skilltree/apps/web-archived/Dockerfile delete mode 100644 apps/skilltree/apps/web-archived/package.json delete mode 100644 apps/skilltree/apps/web-archived/src/app.css delete mode 100644 apps/skilltree/apps/web-archived/src/app.d.ts delete mode 100644 apps/skilltree/apps/web-archived/src/app.html delete mode 100644 apps/skilltree/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/skilltree/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/api/achievements.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/api/activities.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/api/skills.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/AchievementCard.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/AchievementCelebration.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/AddSkillModal.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/AddXpModal.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/EditSkillModal.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/LevelUpCelebration.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/SkillCard.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/SkillTemplates.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/components/StatsOverview.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/skilltree/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/skilltree/apps/web-archived/src/lib/services/storage.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/stores/achievements.svelte.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/stores/skills.svelte.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/types/index.test.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/types/index.ts delete mode 100644 apps/skilltree/apps/web-archived/src/lib/version.ts delete mode 100644 apps/skilltree/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/skilltree/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/achievements/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/skilltree/apps/web-archived/src/routes/help/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/skilltree/apps/web-archived/src/routes/tree/+page.svelte delete mode 100644 apps/skilltree/apps/web-archived/src/test/setup.ts delete mode 100644 apps/skilltree/apps/web-archived/svelte.config.js delete mode 100644 apps/skilltree/apps/web-archived/tsconfig.json delete mode 100644 apps/skilltree/apps/web-archived/vite.config.ts delete mode 100644 apps/skilltree/apps/web-archived/vitest.config.ts delete mode 100644 apps/storage/apps/web-archived/Dockerfile delete mode 100644 apps/storage/apps/web-archived/e2e/auth.spec.ts delete mode 100644 apps/storage/apps/web-archived/e2e/files.spec.ts delete mode 100644 apps/storage/apps/web-archived/e2e/integration.spec.ts delete mode 100644 apps/storage/apps/web-archived/e2e/navigation.spec.ts delete mode 100644 apps/storage/apps/web-archived/e2e/search.spec.ts delete mode 100644 apps/storage/apps/web-archived/eslint.config.js delete mode 100644 apps/storage/apps/web-archived/package.json delete mode 100644 apps/storage/apps/web-archived/playwright.config.ts delete mode 100644 apps/storage/apps/web-archived/scripts/generate-icons.mjs delete mode 100644 apps/storage/apps/web-archived/src/app.css delete mode 100644 apps/storage/apps/web-archived/src/app.d.ts delete mode 100644 apps/storage/apps/web-archived/src/app.html delete mode 100644 apps/storage/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/storage/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/api/client-integration.test.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/api/client.test.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/audio/analyzer.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/audio/FrequencyBars.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/audio/FullPlayer.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/audio/MiniPlayer.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/Breadcrumb.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/BulkActionBar.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/EmptyState.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FileCard.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FileGrid.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FileList.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FilePreviewModal.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FileRow.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FileSkeletonGrid.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FileSkeletonList.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FileVersionsModal.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FolderCard.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/FolderRow.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/NewFolderModal.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/ShareModal.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/TagPicker.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/components/files/UploadZone.svelte delete mode 100644 apps/storage/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/storage/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/storage/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/storage/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/storage/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/storage/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/stores/audio-player.svelte.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/stores/files.svelte.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/stores/theme.svelte.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/storage/apps/web-archived/src/lib/version.ts delete mode 100644 apps/storage/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/storage/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/favorites/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/feedback/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/files/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/files/[folderId]/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/forgot-password/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/storage/apps/web-archived/src/routes/help/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/login/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/storage/apps/web-archived/src/routes/profile/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/register/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/reset-password/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/search/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/settings/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/shared/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/tags/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/themes/+page.svelte delete mode 100644 apps/storage/apps/web-archived/src/routes/trash/+page.svelte delete mode 100644 apps/storage/apps/web-archived/static/apple-touch-icon.png delete mode 100644 apps/storage/apps/web-archived/static/favicon.png delete mode 100644 apps/storage/apps/web-archived/static/favicon.svg delete mode 100644 apps/storage/apps/web-archived/static/pwa-192x192.png delete mode 100644 apps/storage/apps/web-archived/static/pwa-512x512.png delete mode 100644 apps/storage/apps/web-archived/svelte.config.js delete mode 100644 apps/storage/apps/web-archived/tsconfig.json delete mode 100644 apps/storage/apps/web-archived/vite.config.ts delete mode 100644 apps/times/apps/web-archived/Dockerfile delete mode 100644 apps/times/apps/web-archived/package.json delete mode 100644 apps/times/apps/web-archived/src/app.css delete mode 100644 apps/times/apps/web-archived/src/app.html delete mode 100644 apps/times/apps/web-archived/src/lib/components/EntryForm.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/components/EntryItem.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/components/EntryList.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/components/KeyboardShortcuts.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/components/QuickStart.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/components/TimerCard.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/components/TimerIndicator.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/components/clock/CircularProgress.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/components/clock/WorldMap.svelte delete mode 100644 apps/times/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/times/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/times/apps/web-archived/src/lib/data/queries.test.ts delete mode 100644 apps/times/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/times/apps/web-archived/src/lib/data/types.test.ts delete mode 100644 apps/times/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/times/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/times/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/times/apps/web-archived/src/lib/stores/alarms.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/countdown-timers.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/session-alarms.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/session-timers.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/stopwatch.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/timer.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/view.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/stores/world-clocks.svelte.ts delete mode 100644 apps/times/apps/web-archived/src/lib/utils/entry-parser.test.ts delete mode 100644 apps/times/apps/web-archived/src/lib/utils/entry-parser.ts delete mode 100644 apps/times/apps/web-archived/src/lib/utils/export.test.ts delete mode 100644 apps/times/apps/web-archived/src/lib/utils/export.ts delete mode 100644 apps/times/apps/web-archived/src/lib/utils/rounding.test.ts delete mode 100644 apps/times/apps/web-archived/src/lib/utils/rounding.ts delete mode 100644 apps/times/apps/web-archived/src/lib/version.ts delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/clients/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/clients/[id]/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/clock/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/clock/alarms/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/clock/stopwatch/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/clock/timers/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/clock/world-clock/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/entries/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/projects/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/projects/[id]/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/reports/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/templates/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/+error.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/times/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/times/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/times/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/times/apps/web-archived/svelte.config.js delete mode 100644 apps/times/apps/web-archived/tsconfig.json delete mode 100644 apps/times/apps/web-archived/vite.config.ts delete mode 100644 apps/todo/apps/web-archived/.env.production.example delete mode 100644 apps/todo/apps/web-archived/Dockerfile delete mode 100644 apps/todo/apps/web-archived/e2e/auth.spec.ts delete mode 100644 apps/todo/apps/web-archived/e2e/fixtures/auth.ts delete mode 100644 apps/todo/apps/web-archived/e2e/projects.spec.ts delete mode 100644 apps/todo/apps/web-archived/e2e/tasks.spec.ts delete mode 100644 apps/todo/apps/web-archived/package.json delete mode 100644 apps/todo/apps/web-archived/playwright.config.ts delete mode 100644 apps/todo/apps/web-archived/scripts/generate-icons.mjs delete mode 100644 apps/todo/apps/web-archived/src/app.css delete mode 100644 apps/todo/apps/web-archived/src/app.d.ts delete mode 100644 apps/todo/apps/web-archived/src/app.html delete mode 100644 apps/todo/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/todo/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/api/client.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/api/tasks.test.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/api/tasks.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/components/AppSlider.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/CollapsibleSection.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/QuickAddTask.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/SpiralCanvas.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/SubtaskList.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/SyncIndicator.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/TagStrip.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/TagStripModal.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/TaskEditModal.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/TaskItem.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/TaskList.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/TodoToolbar.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/TodoToolbarContent.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/BoardViewRenderer.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/FokusLayout.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/GridLayout.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/KanbanLayout.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/ViewColumn.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/ViewColumnHeader.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/ViewEditorModal.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/ViewSelector.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/board-views/index.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/components/form/DurationPicker.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/form/FunRatingPicker.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/form/PrioritySelector.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/form/ReminderSelector.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/form/StorypointsSelector.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/form/TagSelector.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/form/index.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/components/kanban/KanbanTaskCard.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/kanban/QuickAddTaskInline.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/kanban/index.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/components/pages/PageEditBar.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/pages/PagePicker.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/pages/TodoPage.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/skeletons/KanbanBoardSkeleton.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/skeletons/KanbanColumnSkeleton.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/skeletons/StatisticsSkeleton.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/skeletons/TaskItemSkeleton.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/skeletons/TaskListSkeleton.svelte delete mode 100644 apps/todo/apps/web-archived/src/lib/components/skeletons/index.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/composables/useTaskForm.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/constants/priority.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/data/cross-app-search.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/data/demo-tasks.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/data/task-queries.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/data/view-grouping.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/todo/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/todo/apps/web-archived/src/lib/i18n/locales/es.json delete mode 100644 apps/todo/apps/web-archived/src/lib/i18n/locales/fr.json delete mode 100644 apps/todo/apps/web-archived/src/lib/i18n/locales/it.json delete mode 100644 apps/todo/apps/web-archived/src/lib/services/feedback.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/board-views.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/contacts.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/debug.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/index.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/minimized-pages.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/navigation.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/projects.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/reminders.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/settings.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/spiral.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/store-helpers.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/tasks.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/theme.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/view.svelte.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/stores/view.test.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/utils/date-display.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/utils/syntax-help.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/utils/task-helpers.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/utils/task-parser.test.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/utils/task-parser.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/utils/time-estimator.test.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/utils/time-estimator.ts delete mode 100644 apps/todo/apps/web-archived/src/lib/version.ts delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/mana/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/spiral/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/tag/[id]/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/+error.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/todo/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/todo/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/todo/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/todo/apps/web-archived/static/apple-touch-icon.png delete mode 100644 apps/todo/apps/web-archived/static/favicon.png delete mode 100644 apps/todo/apps/web-archived/static/icons/icon.svg delete mode 100644 apps/todo/apps/web-archived/static/pwa-192x192.png delete mode 100644 apps/todo/apps/web-archived/static/pwa-512x512.png delete mode 100644 apps/todo/apps/web-archived/svelte.config.js delete mode 100644 apps/todo/apps/web-archived/tsconfig.json delete mode 100644 apps/todo/apps/web-archived/vite.config.ts delete mode 100644 apps/uload/apps/web-archived/Dockerfile delete mode 100644 apps/uload/apps/web-archived/package.json delete mode 100644 apps/uload/apps/web-archived/src/app.css delete mode 100644 apps/uload/apps/web-archived/src/app.d.ts delete mode 100644 apps/uload/apps/web-archived/src/app.html delete mode 100644 apps/uload/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/uload/apps/web-archived/src/lib/assets/favicon.svg delete mode 100644 apps/uload/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/uload/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/uload/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/uload/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/uload/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/uload/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/uload/apps/web-archived/src/lib/theme.svelte.ts delete mode 100644 apps/uload/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(app)/my/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(app)/my/analytics/[id]/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(app)/my/links/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(app)/my/tags/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(app)/pricing/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/(auth)/verify-email/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/+page.svelte delete mode 100644 apps/uload/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/uload/apps/web-archived/src/routes/u/[username]/+page.svelte delete mode 100644 apps/uload/apps/web-archived/static/icons/apple-touch-icon.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-128x128.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-144x144.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-152x152.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-192x192.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-384x384.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-512x512.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-72x72.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-96x96.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-maskable-192x192.svg delete mode 100644 apps/uload/apps/web-archived/static/icons/icon-maskable-512x512.svg delete mode 100644 apps/uload/apps/web-archived/static/robots.txt delete mode 100644 apps/uload/apps/web-archived/svelte.config.js delete mode 100644 apps/uload/apps/web-archived/tsconfig.json delete mode 100644 apps/uload/apps/web-archived/vite.config.ts delete mode 100644 apps/zitare/apps/web-archived/Dockerfile delete mode 100644 apps/zitare/apps/web-archived/docker-entrypoint.sh delete mode 100644 apps/zitare/apps/web-archived/package.json delete mode 100644 apps/zitare/apps/web-archived/src/app.css delete mode 100644 apps/zitare/apps/web-archived/src/app.d.ts delete mode 100644 apps/zitare/apps/web-archived/src/app.html delete mode 100644 apps/zitare/apps/web-archived/src/hooks.client.ts delete mode 100644 apps/zitare/apps/web-archived/src/hooks.server.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/components/LanguageSelector.svelte delete mode 100644 apps/zitare/apps/web-archived/src/lib/components/QuoteCard.svelte delete mode 100644 apps/zitare/apps/web-archived/src/lib/components/SpiralCanvas.svelte delete mode 100644 apps/zitare/apps/web-archived/src/lib/content/help/index.test.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/content/help/index.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/data/guest-seed.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/data/local-store.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/data/queries.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/i18n/index.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/i18n/locales/de.json delete mode 100644 apps/zitare/apps/web-archived/src/lib/i18n/locales/en.json delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/auth.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/favorites.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/lists.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/quotes.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/settings.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/spiral.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/tags.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/theme.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/toast.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/stores/user-settings.svelte.ts delete mode 100644 apps/zitare/apps/web-archived/src/lib/version.ts delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/+layout.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/categories/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/category/[category]/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/favorites/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/feedback/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/help/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/lists/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/lists/[id]/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/search/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/settings/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/spiral/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/tags/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(app)/themes/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(auth)/+layout.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(auth)/login/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(auth)/register/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/+layout.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/+layout.ts delete mode 100644 apps/zitare/apps/web-archived/src/routes/health/+server.ts delete mode 100644 apps/zitare/apps/web-archived/src/routes/offline/+page.svelte delete mode 100644 apps/zitare/apps/web-archived/src/routes/offline/+page.ts delete mode 100644 apps/zitare/apps/web-archived/static/favicon.png delete mode 100644 apps/zitare/apps/web-archived/svelte.config.js delete mode 100644 apps/zitare/apps/web-archived/tsconfig.json delete mode 100644 apps/zitare/apps/web-archived/vite.config.ts diff --git a/apps/calc/apps/web-archived/Dockerfile b/apps/calc/apps/web-archived/Dockerfile deleted file mode 100644 index 2b5b06923..000000000 --- a/apps/calc/apps/web-archived/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM sveltekit-base:local AS builder - -ARG PUBLIC_MANA_CORE_AUTH_URL=http://mana-auth:3001 -ENV PUBLIC_MANA_CORE_AUTH_URL=$PUBLIC_MANA_CORE_AUTH_URL - -COPY apps/calc/apps/web ./apps/calc/apps/web -COPY apps/calc/packages ./apps/calc/packages - -RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store \ - pnpm install --no-frozen-lockfile --ignore-scripts - -WORKDIR /app/apps/calc/apps/web -RUN pnpm exec svelte-kit sync -RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm build - -FROM node:20-alpine AS production -WORKDIR /app/apps/calc/apps/web -COPY --from=builder /app/node_modules/.pnpm /app/node_modules/.pnpm -COPY --from=builder /app/apps/calc/apps/web/node_modules ./node_modules -COPY --from=builder /app/apps/calc/apps/web/build ./build -COPY --from=builder /app/apps/calc/apps/web/package.json ./ - -EXPOSE 5026 -ENV NODE_ENV=production PORT=5026 HOST=0.0.0.0 - -HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ - CMD wget --no-verbose --tries=1 --spider http://localhost:5026/health || exit 1 - -CMD ["node", "build"] diff --git a/apps/calc/apps/web-archived/package.json b/apps/calc/apps/web-archived/package.json deleted file mode 100644 index 5f6e6a84b..000000000 --- a/apps/calc/apps/web-archived/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "@calc/web", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "prepare": "svelte-kit sync || echo ''", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "eslint .", - "format": "prettier --write .", - "type-check": "svelte-kit sync && svelte-check --threshold error" - }, - "devDependencies": { - "@manacore/shared-pwa": "workspace:*", - "@manacore/shared-vite-config": "workspace:*", - "@sveltejs/adapter-node": "^5.0.0", - "@sveltejs/kit": "^2.47.1", - "@sveltejs/vite-plugin-svelte": "^5.0.0", - "@tailwindcss/vite": "^4.1.7", - "@types/node": "^20.0.0", - "@vite-pwa/sveltekit": "^1.1.0", - "prettier": "^3.1.1", - "prettier-plugin-svelte": "^3.1.2", - "svelte": "^5.41.0", - "svelte-check": "^4.3.3", - "tailwindcss": "^4.1.7", - "tslib": "^2.4.1", - "typescript": "^5.9.3", - "vite": "^6.0.0" - }, - "dependencies": { - "@calc/shared": "workspace:*", - "@manacore/local-store": "workspace:*", - "@manacore/shared-app-onboarding": "workspace:*", - "@manacore/shared-auth": "workspace:*", - "@manacore/shared-auth-stores": "workspace:*", - "@manacore/shared-auth-ui": "workspace:*", - "@manacore/shared-branding": "workspace:*", - "@manacore/shared-error-tracking": "workspace:*", - "@manacore/feedback": "workspace:*", - "@manacore/shared-i18n": "workspace:*", - "@manacore/help": "workspace:*", - "@manacore/shared-icons": "workspace:*", - "@manacore/shared-profile-ui": "workspace:*", - "@manacore/shared-stores": "workspace:*", - "@manacore/shared-tags": "workspace:*", - "@manacore/subscriptions": "workspace:*", - "@manacore/shared-tailwind": "workspace:*", - "@manacore/shared-theme": "workspace:*", - "@manacore/shared-theme-ui": "workspace:*", - "@manacore/shared-ui": "workspace:*", - "@manacore/shared-utils": "workspace:*", - "svelte-i18n": "^4.0.1" - }, - "type": "module" -} diff --git a/apps/calc/apps/web-archived/src/app.css b/apps/calc/apps/web-archived/src/app.css deleted file mode 100644 index c29749613..000000000 --- a/apps/calc/apps/web-archived/src/app.css +++ /dev/null @@ -1,10 +0,0 @@ -@import "tailwindcss"; -@import "@manacore/shared-tailwind/themes.css"; - -/* Scan shared packages for Tailwind classes */ -@source "../../../../packages/shared-ui/src"; -@source "../../../../packages/shared-auth-ui/src"; -@source "../../../../packages/shared-branding/src"; -@source "../../../../packages/shared-theme-ui/src"; -@source "../../../../packages/shared-theme-ui/src/components"; -@source "../../../../packages/shared-theme-ui/src/pages"; diff --git a/apps/calc/apps/web-archived/src/app.d.ts b/apps/calc/apps/web-archived/src/app.d.ts deleted file mode 100644 index c269fca6f..000000000 --- a/apps/calc/apps/web-archived/src/app.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const __BUILD_HASH__: string; -declare const __BUILD_TIME__: string; diff --git a/apps/calc/apps/web-archived/src/app.html b/apps/calc/apps/web-archived/src/app.html deleted file mode 100644 index e31c3501d..000000000 --- a/apps/calc/apps/web-archived/src/app.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - %sveltekit.head% - - -
%sveltekit.body%
- - diff --git a/apps/calc/apps/web-archived/src/hooks.client.ts b/apps/calc/apps/web-archived/src/hooks.client.ts deleted file mode 100644 index 7e39e1d79..000000000 --- a/apps/calc/apps/web-archived/src/hooks.client.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { initErrorTracking, handleSvelteError } from '@manacore/shared-error-tracking/browser'; -import type { HandleClientError } from '@sveltejs/kit'; - -initErrorTracking({ - serviceName: 'calc-web', - dsn: (window as any).__PUBLIC_GLITCHTIP_DSN__, - environment: import.meta.env.MODE, -}); - -export const handleError: HandleClientError = ({ error }) => { - handleSvelteError(error); -}; diff --git a/apps/calc/apps/web-archived/src/hooks.server.ts b/apps/calc/apps/web-archived/src/hooks.server.ts deleted file mode 100644 index 461480e2b..000000000 --- a/apps/calc/apps/web-archived/src/hooks.server.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { Handle } from '@sveltejs/kit'; -import { setSecurityHeaders } from '@manacore/shared-utils/security-headers'; - -const PUBLIC_MANA_CORE_AUTH_URL_CLIENT = - process.env.PUBLIC_MANA_CORE_AUTH_URL_CLIENT || process.env.PUBLIC_MANA_CORE_AUTH_URL || ''; -const PUBLIC_BACKEND_URL_CLIENT = - process.env.PUBLIC_BACKEND_URL_CLIENT || process.env.PUBLIC_BACKEND_URL || ''; -const PUBLIC_GLITCHTIP_DSN = process.env.PUBLIC_GLITCHTIP_DSN || ''; - -export const handle: Handle = async ({ event, resolve }) => { - const response = await resolve(event, { - transformPageChunk: ({ html }) => { - const envScript = ``; - return html.replace('', `${envScript}`); - }, - }); - - setSecurityHeaders(response, { - connectSrc: [PUBLIC_MANA_CORE_AUTH_URL_CLIENT, PUBLIC_BACKEND_URL_CLIENT], - }); - - return response; -}; diff --git a/apps/calc/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte b/apps/calc/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte deleted file mode 100644 index daf44b28c..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte +++ /dev/null @@ -1,84 +0,0 @@ - - -
-
- -
- - -
- -
- -
-
- -
- {#each Array(16) as _} - - {/each} -
-
-
-
- - diff --git a/apps/calc/apps/web-archived/src/lib/components/skeletons/index.ts b/apps/calc/apps/web-archived/src/lib/components/skeletons/index.ts deleted file mode 100644 index f09e744bb..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skeletons/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as AppLoadingSkeleton } from './AppLoadingSkeleton.svelte'; diff --git a/apps/calc/apps/web-archived/src/lib/components/skins/CasioSkin.svelte b/apps/calc/apps/web-archived/src/lib/components/skins/CasioSkin.svelte deleted file mode 100644 index fd6209bcc..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skins/CasioSkin.svelte +++ /dev/null @@ -1,284 +0,0 @@ - - -
-
- -
- CASIO - fx-82 -
- - -
- {#each Array(8) as _} -
- {/each} -
- - -
-
{expression || ' '}
-
-
- {error || display} -
- {#if display !== '0' && !error} - - {/if} -
-
- - -
- {#each buttons as row} - {#each row as btn} - - {/each} - {/each} -
- - - - - -
-
- - diff --git a/apps/calc/apps/web-archived/src/lib/components/skins/HP35Skin.svelte b/apps/calc/apps/web-archived/src/lib/components/skins/HP35Skin.svelte deleted file mode 100644 index 7ab74a669..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skins/HP35Skin.svelte +++ /dev/null @@ -1,263 +0,0 @@ - - -
- -
- - - - -
-
{expression || ' '}
-
-
- {error || display} -
- {#if display !== '0' && !error} - - {/if} -
-
- - -
- {#each buttons as row} - {#each row as btn} - - {/each} - {/each} -
- - - - - - -
-
- - diff --git a/apps/calc/apps/web-archived/src/lib/components/skins/MinimalSkin.svelte b/apps/calc/apps/web-archived/src/lib/components/skins/MinimalSkin.svelte deleted file mode 100644 index 2a597fb6e..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skins/MinimalSkin.svelte +++ /dev/null @@ -1,178 +0,0 @@ - - -
- -
-
{expression || ' '}
-
-
- {error || display} -
- {#if display !== '0' && !error} - - {/if} -
-
- - -
- {#each buttons as row} - {#each row as btn} - - {/each} - {/each} -
- - -
- - diff --git a/apps/calc/apps/web-archived/src/lib/components/skins/ModernSkin.svelte b/apps/calc/apps/web-archived/src/lib/components/skins/ModernSkin.svelte deleted file mode 100644 index d1fb096d6..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skins/ModernSkin.svelte +++ /dev/null @@ -1,84 +0,0 @@ - - -
-
-
- {expression || ' '} -
-
-
- {error || display} -
- {#if display !== '0' && !error} - - {/if} -
-
- -
- {#each buttons as row} - {#each row as btn} - - {/each} - {/each} -
- - -
diff --git a/apps/calc/apps/web-archived/src/lib/components/skins/TI84Skin.svelte b/apps/calc/apps/web-archived/src/lib/components/skins/TI84Skin.svelte deleted file mode 100644 index 8ec007fce..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skins/TI84Skin.svelte +++ /dev/null @@ -1,281 +0,0 @@ - - -
-
- -
- TEXAS INSTRUMENTS - TI-84 Plus -
- - -
-
-
{expression || ' '}
-
-
- {error || display} -
- {#if display !== '0' && !error} - - {/if} -
-
-
- - -
- - -
- - -
- {#each buttons as row} - {#each row as btn} - - {/each} - {/each} -
- - -
-
- - diff --git a/apps/calc/apps/web-archived/src/lib/components/skins/index.ts b/apps/calc/apps/web-archived/src/lib/components/skins/index.ts deleted file mode 100644 index 35d7614d2..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skins/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { default as ModernSkin } from './ModernSkin.svelte'; -export { default as HP35Skin } from './HP35Skin.svelte'; -export { default as CasioSkin } from './CasioSkin.svelte'; -export { default as TI84Skin } from './TI84Skin.svelte'; -export { default as MinimalSkin } from './MinimalSkin.svelte'; -export type { CalcSkinProps } from './types'; diff --git a/apps/calc/apps/web-archived/src/lib/components/skins/types.ts b/apps/calc/apps/web-archived/src/lib/components/skins/types.ts deleted file mode 100644 index 770f0fa9f..000000000 --- a/apps/calc/apps/web-archived/src/lib/components/skins/types.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Shared interface for all calculator skin components. - */ -export interface CalcSkinProps { - expression: string; - display: string; - error: string; - copied: boolean; - onButton: (btn: string) => void; - onClear: () => void; - onBackspace: () => void; - onEquals: () => void; - onCopy: () => void; -} diff --git a/apps/calc/apps/web-archived/src/lib/data/guest-seed.ts b/apps/calc/apps/web-archived/src/lib/data/guest-seed.ts deleted file mode 100644 index 6478a275d..000000000 --- a/apps/calc/apps/web-archived/src/lib/data/guest-seed.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Guest seed data for the Calc app. - * - * Sample calculations loaded on first guest visit. - */ - -import type { LocalCalculation } from './local-store'; - -export const guestCalculations: LocalCalculation[] = [ - { - id: 'calc-demo-1', - mode: 'standard', - expression: '42 * 23', - result: '966', - }, - { - id: 'calc-demo-2', - mode: 'scientific', - expression: 'sin(π/4)', - result: '0.7071067812', - }, - { - id: 'calc-demo-3', - mode: 'standard', - expression: '1024 / 8', - result: '128', - }, -]; diff --git a/apps/calc/apps/web-archived/src/lib/data/local-store.ts b/apps/calc/apps/web-archived/src/lib/data/local-store.ts deleted file mode 100644 index 8830202ce..000000000 --- a/apps/calc/apps/web-archived/src/lib/data/local-store.ts +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Calc App — Local-First Data Layer - * - * Defines the IndexedDB database, collections, and guest seed data. - * This is the single source of truth for all Calc data. - */ - -import { createLocalStore, type BaseRecord } from '@manacore/local-store'; -import { guestCalculations } from './guest-seed'; -import type { CalculatorMode, CalculatorSkin } from '@calc/shared'; - -// ─── Types ────────────────────────────────────────────────── - -export interface LocalCalculation extends BaseRecord { - mode: CalculatorMode; - expression: string; - result: string; - skin?: CalculatorSkin; -} - -export interface LocalSavedFormula extends BaseRecord { - name: string; - expression: string; - description: string | null; - mode: CalculatorMode; -} - -// ─── Store ────────────────────────────────────────────────── - -const SYNC_SERVER_URL = import.meta.env.PUBLIC_SYNC_SERVER_URL || 'http://localhost:3050'; - -export const calcStore = createLocalStore({ - appId: 'calc', - collections: [ - { - name: 'calculations', - indexes: ['mode'], - guestSeed: guestCalculations, - }, - { - name: 'savedFormulas', - indexes: ['mode', 'name'], - }, - ], - sync: { - serverUrl: SYNC_SERVER_URL, - }, -}); - -// Typed collection accessors -export const calculationCollection = calcStore.collection('calculations'); -export const savedFormulaCollection = calcStore.collection('savedFormulas'); diff --git a/apps/calc/apps/web-archived/src/lib/data/queries.ts b/apps/calc/apps/web-archived/src/lib/data/queries.ts deleted file mode 100644 index c22b9eef7..000000000 --- a/apps/calc/apps/web-archived/src/lib/data/queries.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Reactive Queries for Calc - * - * Uses Dexie liveQuery to automatically re-render when IndexedDB changes. - */ - -import { useLiveQueryWithDefault } from '@manacore/local-store/svelte'; -import { - calculationCollection, - savedFormulaCollection, - type LocalCalculation, - type LocalSavedFormula, -} from './local-store'; -import type { Calculation, SavedFormula } from '@calc/shared'; - -// ─── Type Converters ─────────────────────────────────────── - -export function toCalculation(local: LocalCalculation): Calculation { - return { - id: local.id, - userId: 'local', - mode: local.mode, - expression: local.expression, - result: local.result, - skin: local.skin, - createdAt: local.createdAt ?? new Date().toISOString(), - }; -} - -export function toSavedFormula(local: LocalSavedFormula): SavedFormula { - return { - id: local.id, - userId: 'local', - name: local.name, - expression: local.expression, - description: local.description ?? undefined, - mode: local.mode, - createdAt: local.createdAt ?? new Date().toISOString(), - updatedAt: local.updatedAt ?? new Date().toISOString(), - }; -} - -// ─── Live Query Hooks ────────────────────────────────────── - -/** All calculations (history), newest first. */ -export function useAllCalculations() { - return useLiveQueryWithDefault(async () => { - const locals = await calculationCollection.getAll(); - return locals.map(toCalculation).reverse(); - }, [] as Calculation[]); -} - -/** All saved formulas. */ -export function useAllSavedFormulas() { - return useLiveQueryWithDefault(async () => { - const locals = await savedFormulaCollection.getAll(); - return locals.map(toSavedFormula); - }, [] as SavedFormula[]); -} diff --git a/apps/calc/apps/web-archived/src/lib/engine/evaluate.ts b/apps/calc/apps/web-archived/src/lib/engine/evaluate.ts deleted file mode 100644 index 761e1b6e9..000000000 --- a/apps/calc/apps/web-archived/src/lib/engine/evaluate.ts +++ /dev/null @@ -1,261 +0,0 @@ -/** - * Safe math expression evaluator. - * - * Supports: +, -, *, /, %, ^, parentheses, and scientific functions. - * Does NOT use eval() — parses manually for safety. - */ - -const FUNCTIONS: Record number> = { - sin: Math.sin, - cos: Math.cos, - tan: Math.tan, - asin: Math.asin, - acos: Math.acos, - atan: Math.atan, - sinh: Math.sinh, - cosh: Math.cosh, - tanh: Math.tanh, - log: Math.log10, - ln: Math.log, - sqrt: Math.sqrt, - cbrt: Math.cbrt, - abs: Math.abs, - ceil: Math.ceil, - floor: Math.floor, - round: Math.round, - exp: Math.exp, -}; - -const CONSTANTS: Record = { - pi: Math.PI, - PI: Math.PI, - π: Math.PI, - e: Math.E, - E: Math.E, - φ: 1.6180339887, - phi: 1.6180339887, -}; - -type Token = - | { type: 'number'; value: number } - | { type: 'op'; value: string } - | { type: 'func'; value: string } - | { type: 'paren'; value: '(' | ')' }; - -function tokenize(expr: string): Token[] { - const tokens: Token[] = []; - let i = 0; - const s = expr.replace(/\s+/g, ''); - - while (i < s.length) { - // Numbers (including decimals) - if (/[0-9.]/.test(s[i])) { - let num = ''; - while (i < s.length && /[0-9.eE]/.test(s[i])) { - num += s[i++]; - // Handle scientific notation sign - if ((s[i] === '+' || s[i] === '-') && /[eE]/.test(s[i - 1])) { - num += s[i++]; - } - } - tokens.push({ type: 'number', value: parseFloat(num) }); - continue; - } - - // Parentheses - if (s[i] === '(' || s[i] === ')') { - tokens.push({ type: 'paren', value: s[i] as '(' | ')' }); - i++; - continue; - } - - // Operators - if ('+-*/%^'.includes(s[i])) { - // Handle unary minus - if ( - s[i] === '-' && - (tokens.length === 0 || - tokens[tokens.length - 1].type === 'op' || - (tokens[tokens.length - 1].type === 'paren' && tokens[tokens.length - 1].value === '(')) - ) { - let num = '-'; - i++; - while (i < s.length && /[0-9.eE]/.test(s[i])) { - num += s[i++]; - } - if (num.length > 1) { - tokens.push({ type: 'number', value: parseFloat(num) }); - continue; - } - // It's just a minus, push as operator - tokens.push({ type: 'op', value: '-' }); - continue; - } - tokens.push({ type: 'op', value: s[i] }); - i++; - continue; - } - - // Special characters (π, etc.) - if (s[i] === 'π' || s[i] === 'φ') { - tokens.push({ type: 'number', value: CONSTANTS[s[i]] }); - i++; - continue; - } - - // Functions and constants (letters) - if (/[a-zA-Z_]/.test(s[i])) { - let name = ''; - while (i < s.length && /[a-zA-Z_0-9]/.test(s[i])) { - name += s[i++]; - } - if (CONSTANTS[name] !== undefined) { - tokens.push({ type: 'number', value: CONSTANTS[name] }); - } else if (FUNCTIONS[name]) { - tokens.push({ type: 'func', value: name }); - } else { - throw new Error(`Unknown: ${name}`); - } - continue; - } - - // Factorial - if (s[i] === '!') { - tokens.push({ type: 'op', value: '!' }); - i++; - continue; - } - - throw new Error(`Unexpected character: ${s[i]}`); - } - - return tokens; -} - -function precedence(op: string): number { - if (op === '+' || op === '-') return 1; - if (op === '*' || op === '/' || op === '%') return 2; - if (op === '^') return 3; - return 0; -} - -function factorial(n: number): number { - if (n < 0 || !Number.isInteger(n)) throw new Error('Factorial of non-integer'); - if (n > 170) return Infinity; - let result = 1; - for (let i = 2; i <= n; i++) result *= i; - return result; -} - -function applyOp(op: string, a: number, b: number): number { - switch (op) { - case '+': - return a + b; - case '-': - return a - b; - case '*': - return a * b; - case '/': - if (b === 0) throw new Error('Division by zero'); - return a / b; - case '%': - return a % b; - case '^': - return Math.pow(a, b); - default: - throw new Error(`Unknown op: ${op}`); - } -} - -/** - * Evaluate a mathematical expression string. - * Returns the numeric result or throws on error. - */ -export function evaluate(expression: string): number { - const tokens = tokenize(expression); - const output: number[] = []; - const ops: Token[] = []; - - for (let i = 0; i < tokens.length; i++) { - const token = tokens[i]; - - if (token.type === 'number') { - output.push(token.value); - } else if (token.type === 'func') { - ops.push(token); - } else if (token.type === 'op') { - if (token.value === '!') { - const val = output.pop(); - if (val === undefined) throw new Error('Missing operand'); - output.push(factorial(val)); - } else { - while ( - ops.length > 0 && - ops[ops.length - 1].type === 'op' && - precedence(ops[ops.length - 1].value as string) >= precedence(token.value) - ) { - const op = ops.pop()!; - const b = output.pop()!; - const a = output.pop()!; - output.push(applyOp(op.value as string, a, b)); - } - ops.push(token); - } - } else if (token.type === 'paren' && token.value === '(') { - ops.push(token); - } else if (token.type === 'paren' && token.value === ')') { - while ( - ops.length > 0 && - !(ops[ops.length - 1].type === 'paren' && ops[ops.length - 1].value === '(') - ) { - const op = ops.pop()!; - const b = output.pop()!; - const a = output.pop()!; - output.push(applyOp(op.value as string, a, b)); - } - ops.pop(); // remove '(' - // If there's a function on the stack, apply it - if (ops.length > 0 && ops[ops.length - 1].type === 'func') { - const func = ops.pop()!; - const val = output.pop()!; - output.push(FUNCTIONS[func.value as string](val)); - } - } - } - - while (ops.length > 0) { - const op = ops.pop()!; - const b = output.pop()!; - const a = output.pop()!; - output.push(applyOp(op.value as string, a, b)); - } - - if (output.length !== 1) throw new Error('Invalid expression'); - return output[0]; -} - -/** - * Format a number for display — removes trailing zeros, handles very large/small numbers. - */ -export function formatResult(value: number, precision: number = 10): string { - if (!isFinite(value)) return value > 0 ? '∞' : '-∞'; - if (isNaN(value)) return 'NaN'; - - // Use scientific notation for very large/small numbers - if (Math.abs(value) > 1e15 || (Math.abs(value) < 1e-10 && value !== 0)) { - return value.toExponential(precision - 1); - } - - // Round to precision and strip trailing zeros - const result = parseFloat(value.toPrecision(precision)); - return String(result); -} - -/** - * Convert between number bases. - */ -export function convertBase(value: string, fromBase: number, toBase: number): string { - const decimal = parseInt(value, fromBase); - if (isNaN(decimal)) throw new Error('Invalid number'); - return decimal.toString(toBase).toUpperCase(); -} diff --git a/apps/calc/apps/web-archived/src/lib/i18n/index.ts b/apps/calc/apps/web-archived/src/lib/i18n/index.ts deleted file mode 100644 index 0e2127891..000000000 --- a/apps/calc/apps/web-archived/src/lib/i18n/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { browser } from '$app/environment'; -import { init, register, locale, waitLocale } from 'svelte-i18n'; - -export const supportedLocales = ['de', 'en'] as const; -export type SupportedLocale = (typeof supportedLocales)[number]; - -const defaultLocale = 'de'; - -register('de', () => import('./locales/de.json')); -register('en', () => import('./locales/en.json')); - -function getInitialLocale(): SupportedLocale { - if (browser) { - const stored = localStorage.getItem('calc_locale'); - if (stored && supportedLocales.includes(stored as SupportedLocale)) { - return stored as SupportedLocale; - } - const browserLang = navigator.language.split('-')[0]; - if (supportedLocales.includes(browserLang as SupportedLocale)) { - return browserLang as SupportedLocale; - } - } - return defaultLocale; -} - -init({ - fallbackLocale: defaultLocale, - initialLocale: getInitialLocale(), -}); - -export function setLocale(newLocale: SupportedLocale) { - locale.set(newLocale); - if (browser) { - localStorage.setItem('calc_locale', newLocale); - } -} - -export { waitLocale }; diff --git a/apps/calc/apps/web-archived/src/lib/i18n/locales/de.json b/apps/calc/apps/web-archived/src/lib/i18n/locales/de.json deleted file mode 100644 index dadb38a50..000000000 --- a/apps/calc/apps/web-archived/src/lib/i18n/locales/de.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "app": { - "name": "Calc", - "tagline": "Dein Taschenrechner-Hub" - }, - "nav": { - "overview": "Übersicht", - "standard": "Standard", - "scientific": "Wissenschaftlich", - "programmer": "Programmierer", - "converter": "Einheiten", - "currency": "Währung", - "finance": "Finanzen", - "date": "Datum", - "percentage": "Prozent", - "settings": "Einstellungen" - }, - "calc": { - "result": "Ergebnis", - "history": "Verlauf", - "clearHistory": "Verlauf löschen", - "noHistory": "Noch keine Berechnungen", - "error": "Fehler", - "copied": "Kopiert!", - "clear": "Löschen", - "equals": "Gleich" - }, - "converter": { - "from": "Von", - "to": "Nach", - "swap": "Tauschen" - }, - "finance": { - "principal": "Anfangskapital", - "rate": "Zinssatz", - "years": "Laufzeit (Jahre)", - "result": "Ergebnis", - "monthlyPayment": "Monatliche Rate", - "totalInterest": "Gesamtzinsen", - "totalAmount": "Gesamtbetrag" - } -} diff --git a/apps/calc/apps/web-archived/src/lib/i18n/locales/en.json b/apps/calc/apps/web-archived/src/lib/i18n/locales/en.json deleted file mode 100644 index 58e9a7ce0..000000000 --- a/apps/calc/apps/web-archived/src/lib/i18n/locales/en.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "app": { - "name": "Calc", - "tagline": "Your Calculator Hub" - }, - "nav": { - "overview": "Overview", - "standard": "Standard", - "scientific": "Scientific", - "programmer": "Programmer", - "converter": "Units", - "currency": "Currency", - "finance": "Finance", - "date": "Date", - "percentage": "Percent", - "settings": "Settings" - }, - "calc": { - "result": "Result", - "history": "History", - "clearHistory": "Clear History", - "noHistory": "No calculations yet", - "error": "Error", - "copied": "Copied!", - "clear": "Clear", - "equals": "Equals" - }, - "converter": { - "from": "From", - "to": "To", - "swap": "Swap" - }, - "finance": { - "principal": "Principal", - "rate": "Interest Rate", - "years": "Term (Years)", - "result": "Result", - "monthlyPayment": "Monthly Payment", - "totalInterest": "Total Interest", - "totalAmount": "Total Amount" - } -} diff --git a/apps/calc/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts b/apps/calc/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts deleted file mode 100644 index 6baa589c8..000000000 --- a/apps/calc/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { createAppOnboardingStore, type AppOnboardingStep } from '@manacore/shared-app-onboarding'; -import { userSettings } from './user-settings.svelte'; - -const calcOnboardingSteps: AppOnboardingStep[] = [ - { - id: 'features', - type: 'info', - question: 'Willkommen bei Calc!', - description: 'Das kann Calc:', - emoji: '🧮', - gradient: { from: 'pink-500', to: 'pink-700' }, - bullets: [ - 'Standard, Wissenschaftlich & Programmierer', - 'Einheiten- & Währungsrechner', - 'Finanzrechner (Zins, Kredit, Sparplan)', - 'Historische Taschenrechner-Skins', - ], - }, - { - id: 'defaultMode', - type: 'select', - question: 'Welchen Modus nutzt du am häufigsten?', - description: 'Du kannst jederzeit wechseln.', - emoji: '🔢', - gradient: { from: 'pink-500', to: 'pink-700' }, - options: [ - { id: 'standard', label: 'Standard', description: 'Grundrechenarten', emoji: '➕' }, - { - id: 'scientific', - label: 'Wissenschaftlich', - description: 'sin, cos, log & mehr', - emoji: '🔬', - }, - { id: 'programmer', label: 'Programmierer', description: 'HEX, BIN, OCT', emoji: '💻' }, - { id: 'converter', label: 'Einheiten', description: 'Umrechnen leicht gemacht', emoji: '📏' }, - ], - defaultValue: 'standard', - }, - { - id: 'welcome', - type: 'info', - question: 'Dein Rechner ist bereit!', - description: 'Tipps:', - emoji: '🎉', - gradient: { from: 'primary', to: 'primary/70' }, - bullets: [ - 'Tastatur-Eingabe funktioniert überall', - 'Verlauf speichert alle Berechnungen', - 'Wechsle Skins für verschiedene Looks', - 'Drücke Cmd/Ctrl+K für Schnellzugriff', - ], - }, -]; - -export const calcOnboarding = createAppOnboardingStore({ - appId: 'calc', - steps: calcOnboardingSteps, - userSettings, - onComplete: async () => {}, - onSkip: async () => {}, -}); diff --git a/apps/calc/apps/web-archived/src/lib/stores/auth.svelte.ts b/apps/calc/apps/web-archived/src/lib/stores/auth.svelte.ts deleted file mode 100644 index 5f0483975..000000000 --- a/apps/calc/apps/web-archived/src/lib/stores/auth.svelte.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Auth Store — uses centralized Mana auth factory. - */ - -import { createManaAuthStore } from '@manacore/shared-auth-stores'; - -export const authStore = createManaAuthStore({ - devBackendPort: 3017, -}); diff --git a/apps/calc/apps/web-archived/src/lib/stores/calc-settings.svelte.ts b/apps/calc/apps/web-archived/src/lib/stores/calc-settings.svelte.ts deleted file mode 100644 index 933031a74..000000000 --- a/apps/calc/apps/web-archived/src/lib/stores/calc-settings.svelte.ts +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Calc-specific settings — persisted to localStorage. - */ - -import { browser } from '$app/environment'; -import type { CalculatorMode, CalculatorSkin } from '@calc/shared'; - -const STORAGE_KEY = 'calc-settings'; - -interface CalcSettings { - defaultMode: CalculatorMode; - defaultSkin: CalculatorSkin; - decimalPlaces: number; - thousandsSeparator: boolean; - angleMode: 'deg' | 'rad'; - historySize: number; - showKeyboardHints: boolean; -} - -const DEFAULTS: CalcSettings = { - defaultMode: 'standard', - defaultSkin: 'modern', - decimalPlaces: 10, - thousandsSeparator: false, - angleMode: 'rad', - historySize: 50, - showKeyboardHints: true, -}; - -function load(): CalcSettings { - if (!browser) return { ...DEFAULTS }; - try { - const raw = localStorage.getItem(STORAGE_KEY); - if (raw) return { ...DEFAULTS, ...JSON.parse(raw) }; - } catch {} - return { ...DEFAULTS }; -} - -function save(settings: CalcSettings) { - if (!browser) return; - localStorage.setItem(STORAGE_KEY, JSON.stringify(settings)); -} - -// Reactive settings store using Svelte 5 runes -let current = $state(load()); - -export const calcSettings = { - get value() { - return current; - }, - - update(partial: Partial) { - current = { ...current, ...partial }; - save(current); - }, - - reset() { - current = { ...DEFAULTS }; - save(current); - }, - - get defaults() { - return DEFAULTS; - }, -}; diff --git a/apps/calc/apps/web-archived/src/lib/stores/calculations.svelte.ts b/apps/calc/apps/web-archived/src/lib/stores/calculations.svelte.ts deleted file mode 100644 index 1bad46fc0..000000000 --- a/apps/calc/apps/web-archived/src/lib/stores/calculations.svelte.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Calculation mutation store — write operations only. - * Reads come from live query hooks in queries.ts. - */ - -import { calculationCollection, type LocalCalculation } from '$lib/data/local-store'; -import type { CreateCalculationInput } from '@calc/shared'; - -export const calculationsStore = { - async addCalculation(input: CreateCalculationInput) { - await calculationCollection.insert({ - mode: input.mode, - expression: input.expression, - result: input.result, - skin: input.skin, - } as Omit); - }, - - async deleteCalculation(id: string) { - await calculationCollection.delete(id); - }, - - async clearHistory() { - const all = await calculationCollection.getAll(); - for (const item of all) { - await calculationCollection.delete(item.id); - } - }, -}; diff --git a/apps/calc/apps/web-archived/src/lib/stores/navigation.ts b/apps/calc/apps/web-archived/src/lib/stores/navigation.ts deleted file mode 100644 index 34b7e2036..000000000 --- a/apps/calc/apps/web-archived/src/lib/stores/navigation.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { createSimpleNavigationStores } from '@manacore/shared-stores'; - -export const { isNavCollapsed } = createSimpleNavigationStores({ - storageKey: 'calc', -}); diff --git a/apps/calc/apps/web-archived/src/lib/stores/saved-formulas.svelte.ts b/apps/calc/apps/web-archived/src/lib/stores/saved-formulas.svelte.ts deleted file mode 100644 index 77462d4d9..000000000 --- a/apps/calc/apps/web-archived/src/lib/stores/saved-formulas.svelte.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Saved formula mutation store — write operations only. - */ - -import { savedFormulaCollection, type LocalSavedFormula } from '$lib/data/local-store'; -import type { CreateFormulaInput, UpdateFormulaInput } from '@calc/shared'; - -export const savedFormulasStore = { - async saveFormula(input: CreateFormulaInput) { - await savedFormulaCollection.insert({ - name: input.name, - expression: input.expression, - description: input.description ?? null, - mode: input.mode, - } as Omit); - }, - - async updateFormula(id: string, input: UpdateFormulaInput) { - await savedFormulaCollection.update(id, input); - }, - - async deleteFormula(id: string) { - await savedFormulaCollection.delete(id); - }, -}; diff --git a/apps/calc/apps/web-archived/src/lib/stores/theme.svelte.ts b/apps/calc/apps/web-archived/src/lib/stores/theme.svelte.ts deleted file mode 100644 index defa5d01b..000000000 --- a/apps/calc/apps/web-archived/src/lib/stores/theme.svelte.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { createThemeStore } from '@manacore/shared-theme'; - -export const theme = createThemeStore({ - appId: 'calc', - defaultVariant: 'lume', -}); diff --git a/apps/calc/apps/web-archived/src/lib/stores/user-settings.svelte.ts b/apps/calc/apps/web-archived/src/lib/stores/user-settings.svelte.ts deleted file mode 100644 index 1f3b69f1d..000000000 --- a/apps/calc/apps/web-archived/src/lib/stores/user-settings.svelte.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { browser } from '$app/environment'; -import { createUserSettingsStore } from '@manacore/shared-theme'; -import { authStore } from './auth.svelte'; - -function getAuthUrl(): string { - if (browser && typeof window !== 'undefined') { - const injectedUrl = (window as unknown as { __PUBLIC_MANA_CORE_AUTH_URL__?: string }) - .__PUBLIC_MANA_CORE_AUTH_URL__; - if (injectedUrl) return injectedUrl; - } - return import.meta.env.DEV ? 'http://localhost:3001' : ''; -} - -export const userSettings = createUserSettingsStore({ - appId: 'calc', - authUrl: getAuthUrl, - getAccessToken: () => authStore.getAccessToken(), -}); diff --git a/apps/calc/apps/web-archived/src/routes/(app)/+layout.svelte b/apps/calc/apps/web-archived/src/routes/(app)/+layout.svelte deleted file mode 100644 index 3a82a5991..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/+layout.svelte +++ /dev/null @@ -1,428 +0,0 @@ - - - - - -
- - - {#if isTagStripVisible} - ({ - id: t.id, - name: t.name, - color: t.color || '#3b82f6', - }))} - selectedIds={[]} - onToggle={() => {}} - onClear={() => {}} - managementHref="/tags" - /> - {/if} - -
-
- {@render children()} -
-
- - (commandBarOpen = false)} - onSearch={handleCommandBarSearch} - onSelect={handleCommandBarSelect} - quickActions={commandBarQuickActions} - placeholder="Schnellzugriff..." - emptyText="Keine Ergebnisse" - searchingText="Suche..." - /> -
- - {#if calcOnboarding.shouldShow} - - {/if} - - (showGuestWelcome = false)} - onLogin={() => goto('/login')} - onRegister={() => goto('/register')} - locale={($locale || 'de') === 'de' ? 'de' : 'en'} - /> - - {#if authStore.isAuthenticated} - - {/if} - -
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/+page.svelte deleted file mode 100644 index 6b4663906..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/+page.svelte +++ /dev/null @@ -1,137 +0,0 @@ - - - - Calc - Dashboard - - -{#if isLoading} - -{:else} -
-
-

Calc

-

Dein Taschenrechner-Hub

-
- - -
-
-
- -
-
-
0
-
Wähle einen Rechner-Modus
-
-
-
- - -
- {#each quickLinks as link} - -
-
- -
-
-
{link.label}
-
{link.description}
-
-
-
- {/each} -
-
-{/if} - - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/converter/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/converter/+page.svelte deleted file mode 100644 index 17f94cc07..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/converter/+page.svelte +++ /dev/null @@ -1,131 +0,0 @@ - - - - Calc - Einheiten - - -
- -
- {#each UNIT_CATEGORIES.filter((c) => UNITS_BY_CATEGORY[c.id]) as cat} - - {/each} -
- - -
- -
- -
- - -
-
- - -
- -
- - -
- -
-
- {result()} -
- -
-
-
- - - {#if fromValue && result()} -
- {fromValue} - {units.find((u: UnitDefinition) => u.id === fromUnit)?.symbol} = {result()} - {units.find((u: UnitDefinition) => u.id === toUnit)?.symbol} -
- {/if} -
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/currency/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/currency/+page.svelte deleted file mode 100644 index fbf18b206..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/currency/+page.svelte +++ /dev/null @@ -1,184 +0,0 @@ - - - - Calc - Währung - - -
-
-

Währungsrechner

- -
- - -
- -
- - - -
- - {#if loading} -
Kurse laden...
- {:else if result() !== null} -
-
- {fmt(result()!)} - {toCurrency} -
-
- 1 {fromCurrency} = {(rates[toCurrency] || 0).toFixed(4)} - {toCurrency} -
-
- {/if} - - {#if lastUpdated} -
{lastUpdated}
- {/if} -
- - - {#if Object.keys(rates).length > 0} -
-

Schnellübersicht

-
- {#each currencies.filter((c) => c.code !== fromCurrency).slice(0, 8) as c} -
- {c.code} - {fmt(amount * (rates[c.code] || 0))} -
- {/each} -
-
- {/if} -
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/date/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/date/+page.svelte deleted file mode 100644 index f7c02b937..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/date/+page.svelte +++ /dev/null @@ -1,117 +0,0 @@ - - - - Calc - Datum - - -
- -
-

Tage zwischen Daten

-
- - -
- {#if daysBetween()} -
-
- {daysBetween()?.days} Tage -
-
- = {daysBetween()?.weeks} Wochen = ~{daysBetween()?.months} Monate -
-
- {/if} -
- - -
-

Tage addieren/subtrahieren

- - -
- {#each [7, 14, 30, 90, 365] as days} - - {/each} -
- {#if addedDate()} -
-
{formatDate(addedDate()!)}
-
- {addedDate()!.toISOString().split('T')[0]} -
-
- {/if} -
-
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/feedback/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/feedback/+page.svelte deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/calc/apps/web-archived/src/routes/(app)/finance/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/finance/+page.svelte deleted file mode 100644 index 6113d91f3..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/finance/+page.svelte +++ /dev/null @@ -1,312 +0,0 @@ - - - - Calc - Finanzen - - -
- -
- {#each modes as m} - - {/each} -
- -
- {#if mode === 'compound-interest'} -

Zinseszinsrechner

- - - - -
-
- Endkapital{fmt(compoundResult().total)} € -
-
- Zinsen{fmt(compoundResult().interest)} € -
-
- {:else if mode === 'loan'} -

Kreditrechner

- - - -
-
- Monatliche Rate{fmt(loanResult().monthly)} € -
-
- Gesamtkosten{fmt(loanResult().total)} € -
-
- Zinskosten{fmt(loanResult().interest)} € -
-
- {:else if mode === 'savings'} -

Sparplanrechner

- - - - -
-
- Endkapital{fmt(savingsResult().total)} € -
-
- Eingezahlt{fmt(savingsResult().deposited)} € -
-
- Zinsen{fmt(savingsResult().interest)} € -
-
- {:else if mode === 'tip'} -

Trinkgeld & Split

- - - -
-
- Trinkgeld{fmt(tipResult().tip)} € -
-
- Gesamt{fmt(tipResult().total)} € -
- {#if splitCount > 1} -
- Pro Person{fmt(tipResult().perPerson)} € -
- {/if} -
- {/if} -
-
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/help/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/help/+page.svelte deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/calc/apps/web-archived/src/routes/(app)/mana/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/mana/+page.svelte deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/calc/apps/web-archived/src/routes/(app)/percentage/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/percentage/+page.svelte deleted file mode 100644 index 66a040067..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/percentage/+page.svelte +++ /dev/null @@ -1,176 +0,0 @@ - - - - Calc - Prozent - - -
-
- {#each modes as m} - - {/each} -
- -
- {#if mode === 'of'} -

X% von Y

-
- - % von - -
-
-
{fmt(percentOfResult)}
-
- {percentValue}% von {baseValue} = {fmt(percentOfResult)} -
-
- {:else if mode === 'change'} -

Prozentuale Änderung

- - -
-
- {changeResult().percent >= 0 ? '+' : ''}{fmt(changeResult().percent)}% -
-
Differenz: {fmt(changeResult().diff)}
-
- {:else if mode === 'markup'} -

Preisaufschlag

- - -
-
{fmt(markupResult)} €
-
- {fmt(price)} + {percentChange}% = {fmt(markupResult)} € -
-
- {:else if mode === 'discount'} -

Rabatt

- - -
- {#each [10, 15, 20, 25, 50] as pct} - - {/each} -
-
-
{fmt(discountResult)} €
-
Ersparnis: {fmt(price - discountResult)} €
-
- {/if} -
-
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/profile/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/profile/+page.svelte deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/calc/apps/web-archived/src/routes/(app)/programmer/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/programmer/+page.svelte deleted file mode 100644 index 78571017e..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/programmer/+page.svelte +++ /dev/null @@ -1,171 +0,0 @@ - - - - Calc - Programmierer - - -
- -
- {#each bases as base} - - {/each} -
- - -
- {#each bases as base} -
- {base.label} - - {activeBase === base.id ? inputValue : getConverted(base.id)} - -
- {/each} - {#if error} -
{error}
- {/if} -
- - -
- {#each hexDigits as digit} - - {/each} -
- -
- - -
- - - {#if activeBase === 'dec' && inputValue !== '0'} - {@const num = parseInt(inputValue, 10)} - {#if !isNaN(num)} -
-
- {num} = 0x{num.toString(16).toUpperCase()} = 0b{num.toString(2)} -
-
- Bits: {num.toString(2).length} | Bytes: {Math.ceil(num.toString(2).length / 8)} -
-
- {/if} - {/if} -
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/scientific/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/scientific/+page.svelte deleted file mode 100644 index e854f38f5..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/scientific/+page.svelte +++ /dev/null @@ -1,274 +0,0 @@ - - - - Calc - Wissenschaftlich - - -
-
- -
- -
- - -
-
- - {#if showSkinPicker} -
-
- {#each CALCULATOR_SKINS as skin} - - {/each} -
-
- {/if} - - - {#if showExtraKeys} -
- -
- {#each SCIENTIFIC_CONSTANTS.slice(0, 6) as constant} - - {/each} -
- - -
- {#each sciExtraButtons as row} - {#each row as btn} - - {/each} - {/each} -
-
- {/if} - - - {#if activeSkin === 'modern'} - - {:else if activeSkin === 'hp35'} - - {:else if activeSkin === 'casio-fx'} - - {:else if activeSkin === 'ti84'} - - {:else if activeSkin === 'minimal'} - - {/if} -
- - -
-

Verlauf

- {#if recentHistory.length === 0} -

Noch keine Berechnungen

- {:else} -
- {#each recentHistory as calc} - - {/each} -
- {/if} -
-
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/settings/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/settings/+page.svelte deleted file mode 100644 index 338d3c670..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/settings/+page.svelte +++ /dev/null @@ -1,300 +0,0 @@ - - - - Calc - Einstellungen - - -
-
-

Einstellungen

-

Passe Calc an deine Bedürfnisse an

-
- - -
-

Allgemein

- - -
-
-
Standard-Modus
-
Wird beim Öffnen der App gezeigt
-
- -
- - -
-
-
Standard-Skin
-
Look des Rechners
-
- -
-
- - -
-

Berechnung

- - -
-
-
Dezimalstellen
-
Genauigkeit der Ergebnisse (1–15)
-
-
- - {settings.decimalPlaces} -
-
- - -
-
-
Tausendertrennzeichen
-
1.000.000 statt 1000000
-
- -
- - -
-
-
Winkel-Modus
-
Für sin, cos, tan im wissenschaftlichen Rechner
-
- -
-
- - -
-

Anzeige

- - -
-
-
Verlauf-Größe
-
Maximale Anzahl gespeicherter Berechnungen
-
-
- -
-
- - -
-
-
Tastatur-Hinweise
-
Zeige Keyboard-Shortcuts in der UI
-
- -
-
- - -
-

Tastaturkürzel

-
- {#each [['0–9, .', 'Ziffern eingeben'], ['+ - * /', 'Operatoren'], ['( )', 'Klammern'], ['Enter / =', 'Berechnen'], ['Backspace', 'Letzte Stelle löschen'], ['Esc / C', 'Alles löschen'], ['Cmd+K', 'Schnellzugriff'], ['Cmd+1–9', 'Navigation']] as [key, desc]} -
- {key} - {desc} -
- {/each} -
-
- - -
- -
-
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/skins/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/skins/+page.svelte deleted file mode 100644 index 999469e64..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/skins/+page.svelte +++ /dev/null @@ -1,153 +0,0 @@ - - - - Calc - Skins - - -
-
-

Rechner-Skins

-

Wähle das Aussehen deines Taschenrechners

-
- - -
- {#each CALCULATOR_SKINS as skin} -
selectSkin(skin.id)} - role="button" - tabindex="0" - > - -
-
- {#if skin.id === 'modern'} - - {:else if skin.id === 'hp35'} - - {:else if skin.id === 'casio-fx'} - - {:else if skin.id === 'ti84'} - - {:else if skin.id === 'minimal'} - - {/if} -
-
- - -
-
-
-

{skin.label}

- {#if skin.year} - {skin.year} - {/if} -
- {#if previewSkin === skin.id} - Aktiv - {/if} -
-

{skin.description.de}

-
-
- {/each} -
- - -
-

Geschichte des Taschenrechners

-
-
-
- 🏛️ -
-

HP-35 (1972)

-

- Der HP-35 war der weltweit erste wissenschaftliche Taschenrechner. Entwickelt von - Hewlett-Packard, machte er den Rechenschieber über Nacht obsolet. Sein Name kam daher, - dass er 35 Tasten hatte. Preis: $395 (heute ~$2.800). -

-
-
-
- -
-
- 🎒 -
-

Casio fx-82 (1985)

-

- Die Casio fx-Serie wurde zum Synonym für Schulrechner weltweit. Mit Solarzelle und dem - charakteristischen grün-grauen LCD-Display war er in fast jeder Schultasche zu finden. - Über 100 Millionen Stück verkauft. -

-
-
-
- -
-
- 📊 -
-

TI-84 Plus (2004)

-

- Der TI-84 Plus von Texas Instruments wurde zum Standard-Grafikrechner an - amerikanischen High Schools und Universitäten. Er konnte Funktionen plotten, Programme - ausführen und wurde trotz Smartphones nie abgelöst. -

-
-
-
-
-
-
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/standard/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/standard/+page.svelte deleted file mode 100644 index 2fb16792b..000000000 --- a/apps/calc/apps/web-archived/src/routes/(app)/standard/+page.svelte +++ /dev/null @@ -1,264 +0,0 @@ - - - - Calc - Standard - - - - -
-
- -
- -
- - - {#if showSkinPicker} -
-
- {#each CALCULATOR_SKINS as skin} - - {/each} -
-
- {/if} - - - {#if activeSkin === 'modern'} - - {:else if activeSkin === 'hp35'} - - {:else if activeSkin === 'casio-fx'} - - {:else if activeSkin === 'ti84'} - - {:else if activeSkin === 'minimal'} - - {/if} -
- - -
-

Verlauf

- {#if recentHistory.length === 0} -

Noch keine Berechnungen

- {:else} -
- {#each recentHistory as calc} - - {/each} -
- - {/if} -
-
- - diff --git a/apps/calc/apps/web-archived/src/routes/(app)/tags/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/tags/+page.svelte deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/calc/apps/web-archived/src/routes/(app)/themes/+page.svelte b/apps/calc/apps/web-archived/src/routes/(app)/themes/+page.svelte deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/calc/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte b/apps/calc/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte deleted file mode 100644 index 65410e2fa..000000000 --- a/apps/calc/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - - Calc - forgot-password - - -
-

Auth: forgot-password

-
diff --git a/apps/calc/apps/web-archived/src/routes/(auth)/login/+page.svelte b/apps/calc/apps/web-archived/src/routes/(auth)/login/+page.svelte deleted file mode 100644 index df6938e26..000000000 --- a/apps/calc/apps/web-archived/src/routes/(auth)/login/+page.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - - Calc - login - - -
-

Auth: login

-
diff --git a/apps/calc/apps/web-archived/src/routes/(auth)/register/+page.svelte b/apps/calc/apps/web-archived/src/routes/(auth)/register/+page.svelte deleted file mode 100644 index 59c438198..000000000 --- a/apps/calc/apps/web-archived/src/routes/(auth)/register/+page.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - - Calc - register - - -
-

Auth: register

-
diff --git a/apps/calc/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte b/apps/calc/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte deleted file mode 100644 index 2d1342b1d..000000000 --- a/apps/calc/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - - Calc - reset-password - - -
-

Auth: reset-password

-
diff --git a/apps/calc/apps/web-archived/src/routes/+layout.svelte b/apps/calc/apps/web-archived/src/routes/+layout.svelte deleted file mode 100644 index f599b48aa..000000000 --- a/apps/calc/apps/web-archived/src/routes/+layout.svelte +++ /dev/null @@ -1,39 +0,0 @@ - - - - -{#if $isLocaleLoading || loading} - -{:else} -
- {@render children()} -
-{/if} diff --git a/apps/calc/apps/web-archived/src/routes/+layout.ts b/apps/calc/apps/web-archived/src/routes/+layout.ts deleted file mode 100644 index ad6cddb06..000000000 --- a/apps/calc/apps/web-archived/src/routes/+layout.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Disable SSR — all data is local-first (IndexedDB + mana-sync) -export const ssr = false; diff --git a/apps/calc/apps/web-archived/src/routes/health/+server.ts b/apps/calc/apps/web-archived/src/routes/health/+server.ts deleted file mode 100644 index ce73ee6a3..000000000 --- a/apps/calc/apps/web-archived/src/routes/health/+server.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { json } from '@sveltejs/kit'; -import type { RequestHandler } from './$types'; - -export const GET: RequestHandler = async () => { - return json({ status: 'ok', app: 'calc-web' }); -}; diff --git a/apps/calc/apps/web-archived/src/routes/offline/+page.svelte b/apps/calc/apps/web-archived/src/routes/offline/+page.svelte deleted file mode 100644 index 3f73c2261..000000000 --- a/apps/calc/apps/web-archived/src/routes/offline/+page.svelte +++ /dev/null @@ -1,13 +0,0 @@ - - Calc - Offline - - -
-
-
🧮
-

Offline

-

- Calc funktioniert auch offline. Deine Daten sind lokal gespeichert. -

-
-
diff --git a/apps/calc/apps/web-archived/svelte.config.js b/apps/calc/apps/web-archived/svelte.config.js deleted file mode 100644 index f290ef5a6..000000000 --- a/apps/calc/apps/web-archived/svelte.config.js +++ /dev/null @@ -1,21 +0,0 @@ -import adapter from '@sveltejs/adapter-node'; -import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; - -/** @type {import('@sveltejs/kit').Config} */ -const config = { - preprocess: vitePreprocess(), - - kit: { - adapter: adapter({ - out: 'build', - }), - prerender: { - handleHttpError: ({ path, message }) => { - if (path === '/favicon.png') return; - throw new Error(message); - }, - }, - }, -}; - -export default config; diff --git a/apps/calc/apps/web-archived/tsconfig.json b/apps/calc/apps/web-archived/tsconfig.json deleted file mode 100644 index a8f10c8e3..000000000 --- a/apps/calc/apps/web-archived/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json", - "compilerOptions": { - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "strict": true, - "moduleResolution": "bundler" - } -} diff --git a/apps/calc/apps/web-archived/vite.config.ts b/apps/calc/apps/web-archived/vite.config.ts deleted file mode 100644 index 8058e2bf4..000000000 --- a/apps/calc/apps/web-archived/vite.config.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { sveltekit } from '@sveltejs/kit/vite'; -import { defineConfig } from 'vite'; -import { SvelteKitPWA } from '@vite-pwa/sveltekit'; -import { createPWAConfig } from '@manacore/shared-pwa'; -import { MANACORE_SHARED_PACKAGES, getBuildDefines } from '@manacore/shared-vite-config'; - -export default defineConfig({ - plugins: [ - sveltekit(), - SvelteKitPWA( - createPWAConfig({ - name: 'Calc - Taschenrechner', - shortName: 'Calc', - description: 'Taschenrechner, Einheiten & Finanzen', - themeColor: '#ec4899', - preset: 'minimal', - }) - ), - ], - server: { - port: 5198, - strictPort: true, - }, - ssr: { - noExternal: [...MANACORE_SHARED_PACKAGES], - }, - optimizeDeps: { - exclude: [...MANACORE_SHARED_PACKAGES], - }, - define: { - ...getBuildDefines(), - }, -}); diff --git a/apps/calendar/apps/web-archived/Dockerfile b/apps/calendar/apps/web-archived/Dockerfile deleted file mode 100644 index c85e2fa72..000000000 --- a/apps/calendar/apps/web-archived/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM sveltekit-base:local AS builder - -ARG PUBLIC_BACKEND_URL=http://calendar-server -ARG PUBLIC_MANA_CORE_AUTH_URL=http://mana-auth:3001 -ENV PUBLIC_BACKEND_URL=$PUBLIC_BACKEND_URL -ENV PUBLIC_MANA_CORE_AUTH_URL=$PUBLIC_MANA_CORE_AUTH_URL - -COPY apps/calendar/packages/shared ./apps/calendar/packages/shared -COPY apps/calendar/apps/web ./apps/calendar/apps/web - -RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store \ - pnpm install --no-frozen-lockfile --ignore-scripts - -WORKDIR /app/apps/calendar/apps/web -RUN pnpm exec svelte-kit sync -RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm build - -FROM node:20-alpine AS production -WORKDIR /app/apps/calendar/apps/web -COPY --from=builder /app/node_modules/.pnpm /app/node_modules/.pnpm -COPY --from=builder /app/apps/calendar/apps/web/node_modules ./node_modules -COPY --from=builder /app/apps/calendar/apps/web/build ./build -COPY --from=builder /app/apps/calendar/apps/web/package.json ./ - -EXPOSE 5012 -ENV NODE_ENV=production PORT=5012 HOST=0.0.0.0 - -HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ - CMD wget --no-verbose --tries=1 --spider http://localhost:5012/health || exit 1 - -CMD ["node", "build"] diff --git a/apps/calendar/apps/web-archived/e2e/auth.spec.ts b/apps/calendar/apps/web-archived/e2e/auth.spec.ts deleted file mode 100644 index 96b92c060..000000000 --- a/apps/calendar/apps/web-archived/e2e/auth.spec.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { test, expect } from '@playwright/test'; - -// Auth tests run WITHOUT storageState (unauthenticated) - -// Helper: wait for the app to finish loading (skeleton disappears) -async function waitForAppReady(page: import('@playwright/test').Page) { - // The root layout shows AppLoadingSkeleton until auth initializes - // Wait for it to disappear and the actual page content to render - await page.waitForFunction( - () => { - // Check if loading skeleton is gone - const skeleton = document.querySelector('.app-loading-skeleton, [data-skeleton]'); - return !skeleton || skeleton.children.length === 0; - }, - { timeout: 30000 } - ); - // Give Svelte time to render - await page.waitForTimeout(500); -} - -test.describe('Authentication', () => { - test('login page renders with email and password fields', async ({ page }) => { - await page.goto('/login'); - await waitForAppReady(page); - - // LoginPage uses id="email" and id="password" (from shared-auth-ui) - const emailInput = page.locator('input[type="email"], input[name="email"], #email'); - const passwordInput = page.locator('input[type="password"], input[name="password"], #password'); - - await expect(emailInput.first()).toBeVisible({ timeout: 10000 }); - await expect(passwordInput.first()).toBeVisible({ timeout: 5000 }); - await expect(page.locator('button[type="submit"]')).toBeVisible(); - }); - - test('invalid credentials show error message', async ({ page }) => { - await page.goto('/login'); - await waitForAppReady(page); - - const emailInput = page.locator('input[type="email"], input[name="email"], #email').first(); - const passwordInput = page - .locator('input[type="password"], input[name="password"], #password') - .first(); - - await emailInput.fill('nonexistent@test.local'); - await passwordInput.fill('WrongPassword123!'); - await page.locator('button[type="submit"]').click(); - - // Error alert should appear - const errorAlert = page.locator('#form-error, [role="alert"]'); - await expect(errorAlert.first()).toBeVisible({ timeout: 10000 }); - }); - - test('successful login redirects to calendar', async ({ page }) => { - const email = process.env.E2E_TEST_EMAIL || 'e2e-calendar@test.local'; - const password = process.env.E2E_TEST_PASSWORD || 'TestPassword123'; - - // Listen for console errors and network failures - const errors: string[] = []; - page.on('console', (msg) => { - if (msg.type() === 'error') errors.push(msg.text()); - }); - page.on('requestfailed', (req) => { - errors.push(`Request failed: ${req.url()} - ${req.failure()?.errorText}`); - }); - - await page.goto('/login'); - await waitForAppReady(page); - - const emailInput = page.locator('input[type="email"], input[name="email"], #email').first(); - const passwordInput = page - .locator('input[type="password"], input[name="password"], #password') - .first(); - - await emailInput.fill(email); - await passwordInput.fill(password); - await page.locator('button[type="submit"]').click(); - - // Wait for either redirect or error - try { - await page.waitForURL('/', { timeout: 20000 }); - } catch { - // Log any errors for debugging - console.log('Login errors:', errors); - const authUrl = await page.evaluate( - () => (window as any).__PUBLIC_MANA_CORE_AUTH_URL__ || 'NOT SET' - ); - console.log('Auth URL on page:', authUrl); - throw new Error(`Login did not redirect. Auth URL: ${authUrl}. Errors: ${errors.join('; ')}`); - } - await expect(page.locator('main[aria-label="Kalender"]')).toBeVisible({ timeout: 10000 }); - }); - - test('unauthenticated access to / redirects to /login', async ({ page }) => { - await page.goto('/'); - - // The app layout's onMount redirects unauthenticated users to /login - await page.waitForURL(/\/login/, { timeout: 30000 }); - }); -}); diff --git a/apps/calendar/apps/web-archived/e2e/calendar-views.spec.ts b/apps/calendar/apps/web-archived/e2e/calendar-views.spec.ts deleted file mode 100644 index ef5213ffd..000000000 --- a/apps/calendar/apps/web-archived/e2e/calendar-views.spec.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { test, expect, dismissOnboarding } from './fixtures/auth'; - -test.describe('Calendar Views', () => { - test.beforeEach(async ({ page }) => { - await page.goto('/'); - await dismissOnboarding(page); - // Wait for calendar to be fully loaded - await expect(page.locator('main[aria-label="Kalender"]')).toBeVisible({ timeout: 10000 }); - }); - - test('week view loads as default with day columns', async ({ page }) => { - // ViewsBar "7" button should be active (week view) - const weekButton = page.locator('button[title="Wochenansicht"]'); - await expect(weekButton).toBeVisible(); - await expect(weekButton).toHaveClass(/active/); - - // Week view grid should show day columns with hour rows - const calendarContent = page.locator('.calendar-content'); - await expect(calendarContent).toBeVisible(); - }); - - test('switch to month view via header button', async ({ page }) => { - const monthButton = page.locator('button[title="Monatsansicht"]'); - await expect(monthButton).toBeVisible(); - await monthButton.click(); - - // Month button should now be active - await expect(monthButton).toHaveClass(/active/); - - // Week button should no longer be active - const weekButton = page.locator('button[title="Wochenansicht"]'); - await expect(weekButton).not.toHaveClass(/active/); - }); - - test('switch to agenda view', async ({ page }) => { - const agendaButton = page.locator('button[title="Agenda"]'); - await expect(agendaButton).toBeVisible(); - await agendaButton.click(); - - // Agenda button should now be active - await expect(agendaButton).toHaveClass(/active/); - }); - - test('navigate forward and backward with arrow keys', async ({ page }) => { - // Click on the day-header area (non-interactive) to ensure body focus - await page.locator('body').click({ position: { x: 10, y: 10 } }); - // Dismiss any overlay that might have opened - await page.keyboard.press('Escape'); - await page.waitForTimeout(300); - - // Get all day-header aria-labels to identify the current week - const dayHeaders = page.locator('.day-header[aria-label]'); - const initialLabel = await dayHeaders.first().getAttribute('aria-label'); - - // Navigate forward one week with ArrowRight - await page.keyboard.press('ArrowRight'); - await page.waitForTimeout(1000); - - const afterForwardLabel = await dayHeaders.first().getAttribute('aria-label'); - // The first day header should show a different date after navigating - expect(afterForwardLabel).not.toBe(initialLabel); - - // Navigate backward with ArrowLeft - await page.keyboard.press('ArrowLeft'); - await page.waitForTimeout(1000); - - const afterBackLabel = await dayHeaders.first().getAttribute('aria-label'); - // After going forward then back, we should be at the same date - expect(afterBackLabel).toBe(initialLabel); - }); - - test('today button returns to current date after navigation', async ({ page }) => { - // Click on the day-header area and dismiss any overlay - await page.locator('body').click({ position: { x: 10, y: 10 } }); - await page.keyboard.press('Escape'); - await page.waitForTimeout(300); - - // Get today's day header - const todayHeader = page.locator('.day-header.today'); - await expect(todayHeader).toBeVisible(); - - // Navigate away from today - await page.keyboard.press('ArrowRight'); - await page.keyboard.press('ArrowRight'); - await page.waitForTimeout(1000); - - // Today should no longer be visible (navigated 2 weeks ahead) - await expect(todayHeader).not.toBeVisible(); - - // Click the "Heute" (Today) button - find by its title attribute - const todayButton = page.locator( - '.today-button, button[title*="heute" i], button[title*="today" i]' - ); - await expect(todayButton.first()).toBeVisible({ timeout: 5000 }); - await todayButton.first().click(); - await page.waitForTimeout(1000); - - // Today header should be visible again - await expect(todayHeader).toBeVisible(); - }); -}); diff --git a/apps/calendar/apps/web-archived/e2e/calendars.spec.ts b/apps/calendar/apps/web-archived/e2e/calendars.spec.ts deleted file mode 100644 index fe1644121..000000000 --- a/apps/calendar/apps/web-archived/e2e/calendars.spec.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { test, expect } from './fixtures/auth'; - -const BACKEND_URL = process.env.PUBLIC_BACKEND_URL || 'http://localhost:3014'; - -test.describe('Calendar Management', () => { - test.beforeAll(async () => { - // Skip all calendar management tests if the backend is not running - try { - const res = await fetch(`${BACKEND_URL}/api/v1/health`, { - signal: AbortSignal.timeout(3000), - }); - if (!res.ok) test.skip(true, 'Calendar backend is not running'); - } catch { - test.skip(true, 'Calendar backend is not reachable'); - } - }); - - test('default calendar exists on first load', async ({ page }) => { - await page.goto('/settings'); - await expect(page.getByRole('heading', { name: 'Einstellungen', exact: true })).toBeVisible(); - - // The calendar list should have at least one calendar with "Standard" badge - const defaultBadge = page.locator('.badge-primary', { hasText: 'Standard' }); - await expect(defaultBadge).toBeVisible({ timeout: 10000 }); - }); - - test('create new calendar with name and color', async ({ page }) => { - const calendarName = `E2E Calendar ${Date.now()}`; - - await page.goto('/settings'); - await expect(page.getByRole('heading', { name: 'Einstellungen', exact: true })).toBeVisible(); - - // Click "Neuer Kalender" button - const newCalButton = page.getByRole('button', { name: /neuer kalender/i }); - await expect(newCalButton).toBeVisible({ timeout: 10000 }); - await newCalButton.click(); - - // Fill in the calendar name - const nameInput = page.locator('.new-calendar-form input[type="text"]'); - await expect(nameInput).toBeVisible(); - await nameInput.fill(calendarName); - - // Submit the form - const createButton = page.getByRole('button', { name: /erstellen/i }); - await createButton.click(); - - // Verify the new calendar appears in the list - const calendarCard = page.locator('.calendar-card', { hasText: calendarName }); - await expect(calendarCard).toBeVisible({ timeout: 5000 }); - - // Cleanup: delete the calendar - page.on('dialog', (dialog) => dialog.accept()); - const deleteButton = calendarCard.getByRole('button', { name: /löschen/i }); - await deleteButton.click(); - await expect(calendarCard).not.toBeVisible({ timeout: 5000 }); - }); - - test('toggle calendar visibility in sidebar', async ({ page }) => { - await page.goto('/'); - await expect(page.locator('main[aria-label="Kalender"]')).toBeVisible({ timeout: 10000 }); - - const calendarSelector = page.locator('.pill-calendar-selector, .calendar-selector'); - - if (await calendarSelector.isVisible({ timeout: 3000 }).catch(() => false)) { - const toggles = calendarSelector.locator('button, input[type="checkbox"]'); - const count = await toggles.count(); - - if (count > 0) { - await toggles.first().click(); - await page.waitForTimeout(500); - await toggles.first().click(); - } - } - }); - - test('delete non-default calendar from settings', async ({ page }) => { - const calendarName = `E2E Delete Test ${Date.now()}`; - - await page.goto('/settings'); - await expect(page.getByRole('heading', { name: 'Einstellungen', exact: true })).toBeVisible(); - - // Create a calendar first - await page.getByRole('button', { name: /neuer kalender/i }).click(); - await page.locator('.new-calendar-form input[type="text"]').fill(calendarName); - await page.getByRole('button', { name: /erstellen/i }).click(); - - const calendarCard = page.locator('.calendar-card', { hasText: calendarName }); - await expect(calendarCard).toBeVisible({ timeout: 5000 }); - - page.on('dialog', (dialog) => dialog.accept()); - - const deleteButton = calendarCard.getByRole('button', { name: /löschen/i }); - await expect(deleteButton).toBeVisible(); - await deleteButton.click(); - - await expect(calendarCard).not.toBeVisible({ timeout: 5000 }); - }); -}); diff --git a/apps/calendar/apps/web-archived/e2e/error-page.spec.ts b/apps/calendar/apps/web-archived/e2e/error-page.spec.ts deleted file mode 100644 index 8840f3b2d..000000000 --- a/apps/calendar/apps/web-archived/e2e/error-page.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { test, expect } from '@playwright/test'; - -test.describe('Error Page', () => { - test('visiting a nonexistent route shows error page with status code', async ({ page }) => { - const response = await page.goto('/nonexistent-route-that-does-not-exist'); - - // SvelteKit should return a 404 status - expect(response?.status()).toBe(404); - - // The error page should display the status code - const statusHeading = page.locator('h1'); - await expect(statusHeading).toBeVisible({ timeout: 10000 }); - await expect(statusHeading).toContainText('404'); - - // Should show a "back to home" link - const backLink = page.locator('a[href="/"]'); - await expect(backLink).toBeVisible(); - }); -}); diff --git a/apps/calendar/apps/web-archived/e2e/events.spec.ts b/apps/calendar/apps/web-archived/e2e/events.spec.ts deleted file mode 100644 index 649b7e799..000000000 --- a/apps/calendar/apps/web-archived/e2e/events.spec.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { test, expect } from './fixtures/auth'; - -const BACKEND_URL = process.env.PUBLIC_BACKEND_URL || 'http://localhost:3014'; - -test.describe('Event CRUD', () => { - test.beforeAll(async () => { - // Skip all event tests if the backend is not running - try { - const res = await fetch(`${BACKEND_URL}/api/v1/health`, { - signal: AbortSignal.timeout(3000), - }); - if (!res.ok) test.skip(true, 'Calendar backend is not running'); - } catch { - test.skip(true, 'Calendar backend is not reachable'); - } - }); - - test.beforeEach(async ({ page }) => { - await page.goto('/'); - await expect(page.locator('main[aria-label="Kalender"]')).toBeVisible({ timeout: 10000 }); - }); - - test('create event via quick overlay, see it in view, then delete it', async ({ page }) => { - const uniqueTitle = `E2E Test Event ${Date.now()}`; - - // Click on a time slot in the week view to trigger quick create - const weekGrid = page.locator('.week-grid, .carousel-page.current .week-grid'); - if (await weekGrid.first().isVisible()) { - const box = await weekGrid.first().boundingBox(); - if (box) { - await weekGrid.first().click({ - position: { x: box.width * 0.5, y: box.height * 0.3 }, - }); - } - } - - // Wait for the quick event overlay to appear - const overlay = page.locator('.quick-event-overlay'); - await expect(overlay).toBeVisible({ timeout: 5000 }); - - // Type the event title (the title input is auto-focused) - await page.keyboard.type(uniqueTitle); - - // Click "Speichern" (Save) - await overlay.getByRole('button', { name: /speichern/i }).click(); - await expect(overlay).not.toBeVisible({ timeout: 5000 }); - - // Verify the event appears in the calendar view - const eventCard = page.locator('.event-card, .event-block').filter({ hasText: uniqueTitle }); - await expect(eventCard).toBeVisible({ timeout: 5000 }); - - // Click the event to open it - await eventCard.click(); - - // The quick event overlay should open with event details - const editOverlay = page.locator('.quick-event-overlay'); - await expect(editOverlay).toBeVisible({ timeout: 5000 }); - - // Delete the event - const deleteButton = editOverlay.getByRole('button', { name: /löschen/i }); - if (await deleteButton.isVisible()) { - await deleteButton.click(); - - const confirmButton = page.getByRole('button', { name: /löschen|ja|bestätigen/i }); - if (await confirmButton.isVisible({ timeout: 2000 }).catch(() => false)) { - await confirmButton.click(); - } - - await expect(eventCard).not.toBeVisible({ timeout: 5000 }); - } - }); - - test('edit event title and verify update', async ({ page }) => { - const originalTitle = `E2E Edit Test ${Date.now()}`; - const updatedTitle = `${originalTitle} Updated`; - - // Create an event first via the grid - const weekGrid = page.locator('.week-grid, .carousel-page.current .week-grid'); - if (await weekGrid.first().isVisible()) { - const box = await weekGrid.first().boundingBox(); - if (box) { - await weekGrid.first().click({ - position: { x: box.width * 0.5, y: box.height * 0.4 }, - }); - } - } - - const overlay = page.locator('.quick-event-overlay'); - await expect(overlay).toBeVisible({ timeout: 5000 }); - await page.keyboard.type(originalTitle); - await overlay.getByRole('button', { name: /speichern/i }).click(); - await expect(overlay).not.toBeVisible({ timeout: 5000 }); - - // Find and click the created event - const eventCard = page.locator('.event-card, .event-block').filter({ hasText: originalTitle }); - await expect(eventCard).toBeVisible({ timeout: 5000 }); - await eventCard.click(); - - // Edit the title - const editOverlay = page.locator('.quick-event-overlay'); - await expect(editOverlay).toBeVisible({ timeout: 5000 }); - - const titleInput = editOverlay.locator('input[type="text"]').first(); - await expect(titleInput).toHaveValue(originalTitle); - - await titleInput.clear(); - await titleInput.fill(updatedTitle); - - await editOverlay.getByRole('button', { name: /speichern/i }).click(); - await expect(editOverlay).not.toBeVisible({ timeout: 5000 }); - - // Verify updated title is visible - const updatedCard = page.locator('.event-card, .event-block').filter({ hasText: updatedTitle }); - await expect(updatedCard).toBeVisible({ timeout: 5000 }); - - // Cleanup: delete the event - await updatedCard.click(); - const cleanupOverlay = page.locator('.quick-event-overlay'); - await expect(cleanupOverlay).toBeVisible({ timeout: 5000 }); - const deleteBtn = cleanupOverlay.getByRole('button', { name: /löschen/i }); - if (await deleteBtn.isVisible()) { - await deleteBtn.click(); - const confirmBtn = page.getByRole('button', { name: /löschen|ja|bestätigen/i }); - if (await confirmBtn.isVisible({ timeout: 2000 }).catch(() => false)) { - await confirmBtn.click(); - } - } - }); - - test('click event to open detail overlay', async ({ page }) => { - const title = `E2E Detail Test ${Date.now()}`; - - // Create an event - const weekGrid = page.locator('.week-grid, .carousel-page.current .week-grid'); - if (await weekGrid.first().isVisible()) { - const box = await weekGrid.first().boundingBox(); - if (box) { - await weekGrid.first().click({ - position: { x: box.width * 0.5, y: box.height * 0.5 }, - }); - } - } - - const overlay = page.locator('.quick-event-overlay'); - await expect(overlay).toBeVisible({ timeout: 5000 }); - await page.keyboard.type(title); - await overlay.getByRole('button', { name: /speichern/i }).click(); - await expect(overlay).not.toBeVisible({ timeout: 5000 }); - - // Click the event to see details - const eventCard = page.locator('.event-card, .event-block').filter({ hasText: title }); - await expect(eventCard).toBeVisible({ timeout: 5000 }); - await eventCard.click(); - - const detailOverlay = page.locator('.quick-event-overlay'); - await expect(detailOverlay).toBeVisible({ timeout: 5000 }); - const titleInput = detailOverlay.locator('input[type="text"]').first(); - await expect(titleInput).toHaveValue(title); - - // Close and cleanup - await detailOverlay.getByRole('button', { name: /abbrechen/i }).click(); - await expect(detailOverlay).not.toBeVisible({ timeout: 5000 }); - - await eventCard.click(); - const cleanupOverlay = page.locator('.quick-event-overlay'); - const deleteBtn = cleanupOverlay.getByRole('button', { name: /löschen/i }); - if (await deleteBtn.isVisible()) { - await deleteBtn.click(); - const confirmBtn = page.getByRole('button', { name: /löschen|ja|bestätigen/i }); - if (await confirmBtn.isVisible({ timeout: 2000 }).catch(() => false)) { - await confirmBtn.click(); - } - } - }); -}); diff --git a/apps/calendar/apps/web-archived/e2e/fixtures/auth.ts b/apps/calendar/apps/web-archived/e2e/fixtures/auth.ts deleted file mode 100644 index d625b3596..000000000 --- a/apps/calendar/apps/web-archived/e2e/fixtures/auth.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { test as base, expect, type Page, type BrowserContext } from '@playwright/test'; -import fs from 'node:fs'; -import path from 'node:path'; -import { fileURLToPath } from 'node:url'; - -const TEST_EMAIL = process.env.E2E_TEST_EMAIL || 'e2e-calendar@test.local'; -const TEST_PASSWORD = process.env.E2E_TEST_PASSWORD || 'TestPassword123'; -const AUTH_URL = process.env.MANA_CORE_AUTH_URL || 'http://localhost:3001'; - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const STORAGE_STATE_PATH = path.join(__dirname, '..', '.auth-state.json'); - -/** - * Ensures a test user exists via the auth API. - */ -async function ensureTestUser(): Promise { - try { - const res = await fetch(`${AUTH_URL}/api/v1/auth/register`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ email: TEST_EMAIL, password: TEST_PASSWORD, name: 'E2E Test User' }), - }); - if (!res.ok && res.status !== 409 && res.status !== 422) { - const body = await res.text(); - console.warn(`Register returned ${res.status}: ${body}`); - } - } catch { - // User may already exist - } - - try { - await fetch(`${AUTH_URL}/api/v1/auth/verify-email-dev`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ email: TEST_EMAIL }), - }); - } catch { - // Verification endpoint may not exist - } -} - -async function waitForAppReady(page: Page): Promise { - await page.waitForFunction( - () => document.querySelector('main, form, input[type="email"], #email') !== null, - { timeout: 30000 } - ); -} - -/** - * Dismiss the onboarding modal by clicking "Überspringen". - * Waits briefly for it to appear, then dismisses it. - */ -async function dismissOnboarding(page: Page): Promise { - try { - const skipButton = page.getByText('Überspringen', { exact: true }); - await skipButton.waitFor({ state: 'visible', timeout: 3000 }); - await skipButton.click(); - // Wait for modal to close - await page.locator('.fixed.inset-0.z-50').waitFor({ state: 'hidden', timeout: 5000 }); - } catch { - // No onboarding modal — that's fine - } -} - -function hasValidStorageState(): boolean { - try { - const stat = fs.statSync(STORAGE_STATE_PATH); - const ageMs = Date.now() - stat.mtimeMs; - if (ageMs > 60 * 60 * 1000) return false; - const content = JSON.parse(fs.readFileSync(STORAGE_STATE_PATH, 'utf-8')); - return content.origins?.length > 0; - } catch { - return false; - } -} - -async function loginViaUI(page: Page): Promise { - await page.goto('/login'); - await waitForAppReady(page); - - const emailInput = page.locator('input[type="email"], input[name="email"], #email').first(); - const passwordInput = page - .locator('input[type="password"], input[name="password"], #password') - .first(); - - await emailInput.fill(TEST_EMAIL); - await passwordInput.fill(TEST_PASSWORD); - await page.locator('button[type="submit"]').click(); - - await page.waitForURL((url) => !url.pathname.includes('/login'), { timeout: 30000 }); - await expect(page.locator('main').first()).toBeVisible({ timeout: 15000 }); - - // Dismiss onboarding wizard if it appears - await dismissOnboarding(page); -} - -/** - * Extended test fixture that provides an authenticated page. - */ -export const test = base.extend({ - workerStorageState: [ - async ({ browser }, use) => { - if (hasValidStorageState()) { - await use(STORAGE_STATE_PATH); - return; - } - - await ensureTestUser(); - - const context = await browser.newContext(); - const page = await context.newPage(); - await loginViaUI(page); - - await context.storageState({ path: STORAGE_STATE_PATH }); - await page.close(); - await context.close(); - - await use(STORAGE_STATE_PATH); - }, - { scope: 'worker' }, - ], - - context: async ({ browser, workerStorageState }, use) => { - const context = await browser.newContext({ storageState: workerStorageState }); - await use(context); - await context.close(); - }, - - page: async ({ context }, use) => { - const page = await context.newPage(); - await use(page); - }, -}); - -export { expect, dismissOnboarding }; diff --git a/apps/calendar/apps/web-archived/e2e/settings.spec.ts b/apps/calendar/apps/web-archived/e2e/settings.spec.ts deleted file mode 100644 index e0bb5d83c..000000000 --- a/apps/calendar/apps/web-archived/e2e/settings.spec.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { test, expect, dismissOnboarding } from './fixtures/auth'; - -test.describe('Settings', () => { - test.beforeEach(async ({ page }) => { - await page.goto('/settings'); - await dismissOnboarding(page); - await expect(page.getByRole('heading', { name: 'Einstellungen', exact: true })).toBeVisible({ - timeout: 10000, - }); - }); - - test('settings page renders all sections', async ({ page }) => { - // Check that the main setting sections are visible (use headings to avoid ambiguity) - await expect(page.getByText('Meine Kalender', { exact: true })).toBeVisible(); - await expect(page.getByText('Kalender-Ansicht', { exact: true })).toBeVisible(); - await expect(page.getByRole('heading', { name: 'Termine' })).toBeVisible(); - await expect(page.getByRole('heading', { name: 'Konto' })).toBeVisible(); - }); - - test('change time format between 24h and 12h', async ({ page }) => { - // Find the time format buttons - const button24h = page.getByRole('button', { name: '24h (14:00)' }); - const button12h = page.getByRole('button', { name: '12h (2:00 PM)' }); - - await expect(button24h).toBeVisible(); - await expect(button12h).toBeVisible(); - - // Switch to 12h - await button12h.click(); - await expect(button12h).toHaveClass(/active/); - await expect(button24h).not.toHaveClass(/active/); - - // Switch back to 24h - await button24h.click(); - await expect(button24h).toHaveClass(/active/); - await expect(button12h).not.toHaveClass(/active/); - }); - - test('toggle show week numbers', async ({ page }) => { - // Find the "Wochennummern anzeigen" checkbox - const weekNumbersLabel = page.getByText('Wochennummern anzeigen'); - await expect(weekNumbersLabel).toBeVisible(); - - // The checkbox is inside a label with this text - const checkbox = page - .locator('label') - .filter({ hasText: 'Wochennummern anzeigen' }) - .locator('input[type="checkbox"]'); - const wasChecked = await checkbox.isChecked(); - - // Toggle it - await checkbox.click(); - await expect(checkbox).toBeChecked({ checked: !wasChecked }); - - // Toggle it back - await checkbox.click(); - await expect(checkbox).toBeChecked({ checked: wasChecked }); - }); - - test('toggle show only weekdays', async ({ page }) => { - const checkbox = page - .locator('label') - .filter({ hasText: 'Nur Werktage anzeigen' }) - .locator('input[type="checkbox"]'); - await expect(checkbox).toBeVisible(); - - const wasChecked = await checkbox.isChecked(); - await checkbox.click(); - await expect(checkbox).toBeChecked({ checked: !wasChecked }); - - // Restore original state - await checkbox.click(); - await expect(checkbox).toBeChecked({ checked: wasChecked }); - }); - - test('settings persist after page reload', async ({ page }) => { - // Switch to 12h format - const button12h = page.getByRole('button', { name: '12h (2:00 PM)' }); - await button12h.click(); - await expect(button12h).toHaveClass(/active/); - - // Reload - await page.reload(); - await expect(page.getByRole('heading', { name: 'Einstellungen', exact: true })).toBeVisible({ - timeout: 10000, - }); - - // Verify 12h is still active - const button12hAfterReload = page.getByRole('button', { name: '12h (2:00 PM)' }); - await expect(button12hAfterReload).toHaveClass(/active/); - - // Restore to 24h - const button24h = page.getByRole('button', { name: '24h (14:00)' }); - await button24h.click(); - await expect(button24h).toHaveClass(/active/); - }); - - test('user email is displayed in account section', async ({ page }) => { - const testEmail = process.env.E2E_TEST_EMAIL || 'e2e-calendar@test.local'; - - // The account section shows the user's email - const emailDisplay = page.locator('.setting-value'); - await expect(emailDisplay.first()).toContainText(testEmail); - }); -}); diff --git a/apps/calendar/apps/web-archived/e2e/week-view-interactions.spec.ts b/apps/calendar/apps/web-archived/e2e/week-view-interactions.spec.ts deleted file mode 100644 index ae111294d..000000000 --- a/apps/calendar/apps/web-archived/e2e/week-view-interactions.spec.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { test, expect, dismissOnboarding } from './fixtures/auth'; - -const BACKEND_URL = process.env.PUBLIC_BACKEND_URL || 'http://localhost:3014'; - -test.describe('WeekView Interactions', () => { - test.beforeAll(async () => { - try { - const res = await fetch(`${BACKEND_URL}/api/v1/health`, { - signal: AbortSignal.timeout(3000), - }); - if (!res.ok) test.skip(true, 'Calendar backend is not running'); - } catch { - test.skip(true, 'Calendar backend is not reachable'); - } - }); - - test.beforeEach(async ({ page }) => { - await page.goto('/'); - await dismissOnboarding(page); - await expect(page.locator('main[aria-label="Kalender"]')).toBeVisible({ timeout: 10000 }); - }); - - test('drag-to-create: clicking on empty time slot opens quick create overlay', async ({ - page, - }) => { - // Find a day column in the week view - const dayColumn = page.locator('.day-column').first(); - await expect(dayColumn).toBeVisible(); - - const box = await dayColumn.boundingBox(); - if (!box) return; - - // Click in the middle of the day column (should open quick create) - await dayColumn.click({ position: { x: box.width / 2, y: box.height * 0.4 } }); - - // Quick event overlay should appear - const overlay = page.locator('.quick-event-overlay'); - await expect(overlay).toBeVisible({ timeout: 5000 }); - - // Close it - await page.keyboard.press('Escape'); - }); - - test('drag-to-create: drag creates event with correct time range', async ({ page }) => { - const dayColumn = page.locator('.day-column').first(); - await expect(dayColumn).toBeVisible(); - - const box = await dayColumn.boundingBox(); - if (!box) return; - - // Drag from ~10am to ~12pm area - const startY = box.y + box.height * 0.35; - const endY = box.y + box.height * 0.5; - const centerX = box.x + box.width / 2; - - await page.mouse.move(centerX, startY); - await page.mouse.down(); - await page.mouse.move(centerX, endY, { steps: 5 }); - await page.mouse.up(); - - // Quick event overlay should appear - const overlay = page.locator('.quick-event-overlay'); - await expect(overlay).toBeVisible({ timeout: 5000 }); - - // Type a title and save - const uniqueTitle = `Drag Create ${Date.now()}`; - await page.keyboard.type(uniqueTitle); - await overlay.getByRole('button', { name: /speichern/i }).click(); - await expect(overlay).not.toBeVisible({ timeout: 5000 }); - - // Event should appear in the grid - const eventCard = page.locator('.event-card').filter({ hasText: uniqueTitle }); - await expect(eventCard).toBeVisible({ timeout: 5000 }); - - // Cleanup: delete the event - await eventCard.click(); - const editOverlay = page.locator('.quick-event-overlay'); - await expect(editOverlay).toBeVisible({ timeout: 5000 }); - const deleteBtn = editOverlay.getByRole('button', { name: /löschen/i }); - if (await deleteBtn.isVisible()) { - await deleteBtn.click(); - const confirmBtn = page.getByRole('button', { name: /löschen|ja|bestätigen/i }); - if (await confirmBtn.isVisible({ timeout: 2000 }).catch(() => false)) { - await confirmBtn.click(); - } - } - }); - - test('escape cancels drag-to-create', async ({ page }) => { - const dayColumn = page.locator('.day-column').first(); - await expect(dayColumn).toBeVisible(); - - const box = await dayColumn.boundingBox(); - if (!box) return; - - const startY = box.y + box.height * 0.3; - const centerX = box.x + box.width / 2; - - // Start dragging - await page.mouse.move(centerX, startY); - await page.mouse.down(); - await page.mouse.move(centerX, startY + 50, { steps: 3 }); - - // Press escape to cancel - await page.keyboard.press('Escape'); - await page.mouse.up(); - - // No overlay should appear - const overlay = page.locator('.quick-event-overlay'); - await expect(overlay).not.toBeVisible({ timeout: 1000 }); - }); - - test('event card shows in correct position within time grid', async ({ page }) => { - const uniqueTitle = `Position Test ${Date.now()}`; - - // Create an event by clicking on the grid - const dayColumn = page.locator('.day-column').first(); - await expect(dayColumn).toBeVisible(); - const box = await dayColumn.boundingBox(); - if (!box) return; - - await dayColumn.click({ position: { x: box.width / 2, y: box.height * 0.5 } }); - - const overlay = page.locator('.quick-event-overlay'); - await expect(overlay).toBeVisible({ timeout: 5000 }); - await page.keyboard.type(uniqueTitle); - await overlay.getByRole('button', { name: /speichern/i }).click(); - await expect(overlay).not.toBeVisible({ timeout: 5000 }); - - // Verify the event card exists and has a top style (positioned in grid) - const eventCard = page.locator('.event-card').filter({ hasText: uniqueTitle }); - await expect(eventCard).toBeVisible({ timeout: 5000 }); - - const style = await eventCard.getAttribute('style'); - expect(style).toContain('top:'); - expect(style).toContain('height:'); - - // Cleanup - await eventCard.click(); - const editOverlay = page.locator('.quick-event-overlay'); - const deleteBtn = editOverlay.getByRole('button', { name: /löschen/i }); - if (await deleteBtn.isVisible()) { - await deleteBtn.click(); - const confirmBtn = page.getByRole('button', { name: /löschen|ja|bestätigen/i }); - if (await confirmBtn.isVisible({ timeout: 2000 }).catch(() => false)) { - await confirmBtn.click(); - } - } - }); - - test('week view shows current time indicator on today', async ({ page }) => { - const timeIndicator = page.locator('.time-indicator'); - // There should be at least one time indicator (on today's column) - await expect(timeIndicator.first()).toBeVisible({ timeout: 5000 }); - - // It should have a top percentage style - const style = await timeIndicator.first().getAttribute('style'); - expect(style).toContain('top:'); - }); - - test('week view shows correct day headers', async ({ page }) => { - const dayHeaders = page.locator('.day-header'); - const count = await dayHeaders.count(); - - // Should have 5 (weekdays only) or 7 (full week) day headers - expect(count === 5 || count === 7).toBe(true); - - // Each header should have a day name and number - for (let i = 0; i < count; i++) { - const dayName = dayHeaders.nth(i).locator('.day-name'); - const dayNumber = dayHeaders.nth(i).locator('.day-number'); - await expect(dayName).toBeVisible(); - await expect(dayNumber).toBeVisible(); - } - }); - - test('today column is highlighted', async ({ page }) => { - const todayColumn = page.locator('.day-column.today'); - await expect(todayColumn).toBeVisible({ timeout: 5000 }); - - const todayHeader = page.locator('.day-header.today'); - await expect(todayHeader).toBeVisible(); - }); -}); diff --git a/apps/calendar/apps/web-archived/eslint.config.js b/apps/calendar/apps/web-archived/eslint.config.js deleted file mode 100644 index f0e51b62e..000000000 --- a/apps/calendar/apps/web-archived/eslint.config.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check -import { - baseConfig, - typescriptConfig, - svelteConfig, - prettierConfig, -} from '@manacore/eslint-config'; - -export default [ - { - ignores: ['dist/**', '.svelte-kit/**', 'node_modules/**'], - }, - ...baseConfig, - ...typescriptConfig, - ...svelteConfig, - ...prettierConfig, -]; diff --git a/apps/calendar/apps/web-archived/package.json b/apps/calendar/apps/web-archived/package.json deleted file mode 100644 index c9ecff641..000000000 --- a/apps/calendar/apps/web-archived/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "@calendar/web", - "version": "1.0.0", - "private": true, - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "prepare": "svelte-kit sync || echo ''", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "eslint .", - "format": "prettier --write .", - "type-check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "test": "vitest run", - "test:e2e": "playwright test", - "test:e2e:ui": "playwright test --ui", - "test:e2e:headed": "playwright test --headed" - }, - "devDependencies": { - "@manacore/shared-pwa": "workspace:*", - "@manacore/shared-vite-config": "workspace:*", - "@playwright/test": "^1.51.0", - "@sveltejs/adapter-node": "^5.0.0", - "@sveltejs/kit": "^2.47.1", - "@sveltejs/vite-plugin-svelte": "^5.0.0", - "@tailwindcss/vite": "^4.1.7", - "@testing-library/jest-dom": "^6.9.1", - "@types/d3-force": "^3.0.0", - "@types/node": "^20.0.0", - "@types/suncalc": "^1.9.2", - "@vite-pwa/sveltekit": "^1.1.0", - "jsdom": "^25.0.1", - "prettier": "^3.1.1", - "prettier-plugin-svelte": "^3.1.2", - "svelte": "^5.41.0", - "svelte-check": "^4.3.3", - "tailwindcss": "^4.1.7", - "tslib": "^2.4.1", - "typescript": "^5.9.3", - "vite": "^6.0.0", - "vitest": "^4.1.0" - }, - "dependencies": { - "@calendar/shared": "workspace:*", - "@manacore/shared-links": "workspace:*", - "@manacore/shared-api-client": "workspace:*", - "@manacore/shared-app-onboarding": "workspace:*", - "@manacore/shared-auth": "workspace:*", - "@manacore/shared-auth-stores": "workspace:*", - "@manacore/shared-auth-ui": "workspace:*", - "@manacore/shared-branding": "workspace:*", - "@manacore/shared-error-tracking": "workspace:*", - "@manacore/feedback": "workspace:*", - "@manacore/shared-i18n": "workspace:*", - "@manacore/help": "workspace:*", - "@manacore/shared-icons": "workspace:*", - "@manacore/local-store": "workspace:*", - "@manacore/shared-profile-ui": "workspace:*", - "@manacore/shared-splitscreen": "workspace:*", - "@manacore/shared-stores": "workspace:*", - "@manacore/subscriptions": "workspace:*", - "@manacore/shared-tags": "workspace:*", - "@manacore/shared-tailwind": "workspace:*", - "@manacore/shared-theme": "workspace:*", - "@manacore/shared-theme-ui": "workspace:*", - "@manacore/shared-types": "workspace:*", - "@manacore/shared-ui": "workspace:*", - "@manacore/shared-utils": "workspace:*", - "@neodrag/svelte": "^2.3.3", - "@sqlite.org/sqlite-wasm": "^3.49.1-build1", - "d3-force": "^3.0.0", - "date-fns": "^4.1.0", - "suncalc": "^1.9.0", - "svelte-dnd-action": "^0.9.68", - "svelte-i18n": "^4.0.1" - }, - "type": "module" -} diff --git a/apps/calendar/apps/web-archived/playwright.config.ts b/apps/calendar/apps/web-archived/playwright.config.ts deleted file mode 100644 index c574e6b1e..000000000 --- a/apps/calendar/apps/web-archived/playwright.config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { defineConfig, devices } from '@playwright/test'; - -export default defineConfig({ - testDir: './e2e', - fullyParallel: true, - forbidOnly: !!process.env.CI, - retries: process.env.CI ? 2 : 0, - workers: 1, - reporter: process.env.CI ? [['github'], ['html', { open: 'never' }]] : [['html']], - - use: { - baseURL: 'http://localhost:5179', - trace: 'on-first-retry', - screenshot: 'only-on-failure', - video: 'retain-on-failure', - actionTimeout: 10000, - navigationTimeout: 30000, - }, - - timeout: 60000, - expect: { timeout: 5000 }, - - projects: process.env.CI - ? [ - { name: 'chromium', use: { ...devices['Desktop Chrome'] } }, - { name: 'firefox', use: { ...devices['Desktop Firefox'] } }, - { name: 'webkit', use: { ...devices['Desktop Safari'] } }, - ] - : [{ name: 'chromium', use: { ...devices['Desktop Chrome'] } }], - - webServer: { - command: 'pnpm run build && pnpm run preview --port 5179', - port: 5179, - reuseExistingServer: !process.env.CI, - timeout: 120000, - }, - - outputDir: 'test-results/', -}); diff --git a/apps/calendar/apps/web-archived/scripts/generate-icons.mjs b/apps/calendar/apps/web-archived/scripts/generate-icons.mjs deleted file mode 100644 index 1af7bd63f..000000000 --- a/apps/calendar/apps/web-archived/scripts/generate-icons.mjs +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env node -/** - * Generate PWA icons from SVG favicon - * Run: node scripts/generate-icons.mjs - * Requires: sharp (available in workspace) - */ - -import { readFileSync } from 'fs'; -import { join, dirname } from 'path'; -import { fileURLToPath } from 'url'; - -const __dirname = dirname(fileURLToPath(import.meta.url)); -const staticDir = join(__dirname, '..', 'static'); - -const sizes = [ - { name: 'favicon.png', size: 32 }, - { name: 'pwa-192x192.png', size: 192 }, - { name: 'pwa-512x512.png', size: 512 }, - { name: 'apple-touch-icon.png', size: 180 }, -]; - -async function generateIcons() { - try { - const sharp = (await import('sharp')).default; - const svgPath = join(staticDir, 'favicon.svg'); - const svgBuffer = readFileSync(svgPath); - - for (const { name, size } of sizes) { - const outputPath = join(staticDir, name); - await sharp(svgBuffer).resize(size, size).png().toFile(outputPath); - console.log(`Generated: ${name} (${size}x${size})`); - } - - console.log('\nAll icons generated successfully!'); - } catch (error) { - if (error.code === 'ERR_MODULE_NOT_FOUND') { - console.error('Sharp is not installed. Run: pnpm add -D sharp'); - } else { - console.error('Error generating icons:', error); - } - process.exit(1); - } -} - -generateIcons(); diff --git a/apps/calendar/apps/web-archived/src/app.css b/apps/calendar/apps/web-archived/src/app.css deleted file mode 100644 index 811bd3ffe..000000000 --- a/apps/calendar/apps/web-archived/src/app.css +++ /dev/null @@ -1,261 +0,0 @@ -@import "tailwindcss"; -@import "@manacore/shared-tailwind/themes.css"; - -/* Scan shared packages for Tailwind classes */ -@source "../../../packages/shared/src"; -@source "../../../../../packages/shared-ui/src"; -@source "../../../../../packages/shared-auth-ui/src"; -@source "../../../../../packages/shared-theme-ui/src"; -@source "../../../../../packages/shared-theme-ui/src/components"; -@source "../../../../../packages/shared-theme-ui/src/pages"; - -/* Calendar-specific CSS Variables */ -@layer base { - :root { - /* Spacing */ - --spacing-xs: 0.25rem; - --spacing-sm: 0.5rem; - --spacing-md: 1rem; - --spacing-lg: 1.5rem; - --spacing-xl: 2rem; - --spacing-2xl: 3rem; - - /* Border Radius */ - --radius-sm: 0.25rem; - --radius-md: 0.5rem; - --radius-lg: 0.75rem; - --radius-xl: 1rem; - --radius-full: 9999px; - - /* Transitions */ - --transition-fast: 150ms ease; - --transition-base: 200ms ease; - --transition-slow: 300ms ease; - - /* Calendar-specific */ - --hour-height: 48px; - --day-header-height: 40px; - --time-column-width: 56px; - } -} - -/* Calendar Grid Styles - Using plain CSS (not @layer) for guaranteed inclusion */ -/* Hour slot in day/week view */ -.hour-slot { - height: var(--hour-height); - border-bottom: 1px solid color-mix(in srgb, var(--color-border) 50%, transparent); - position: relative; -} - -.hour-slot:hover { - background-color: color-mix(in srgb, var(--color-muted) 30%, transparent); -} - -/* Event card in calendar */ -.event-card { - background-color: var(--color-primary); - color: var(--color-primary-foreground); - border-radius: var(--radius-sm); - padding: 2px 6px; - font-size: 0.75rem; - overflow: hidden; - cursor: pointer; - transition: transform var(--transition-fast), box-shadow var(--transition-fast); -} - -.event-card:hover { - transform: scale(1.02); - box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); -} - -/* Day cell in month view */ -.day-cell { - min-height: 100px; - border: 1px solid var(--color-border); - padding: var(--spacing-xs); - transition: background-color var(--transition-fast); -} - -.day-cell:hover { - background-color: color-mix(in srgb, var(--color-muted) 30%, transparent); -} - -.day-cell.today { - background-color: color-mix(in srgb, var(--color-primary) 10%, transparent); -} - -.day-cell.other-month { - opacity: 0.5; -} - -/* Time indicator (current time line) */ -.time-indicator { - position: absolute; - left: 0; - right: 0; - height: 2px; - background-color: var(--color-error); - z-index: 10; -} - -.time-indicator::before { - content: ''; - position: absolute; - left: -4px; - top: -4px; - width: 10px; - height: 10px; - border-radius: 50%; - background-color: var(--color-error); -} - -/* Mini calendar */ -.mini-calendar { - font-size: 0.875rem; -} - -.mini-calendar .day { - width: 28px; - height: 28px; - display: flex; - align-items: center; - justify-content: center; - border-radius: var(--radius-full); - cursor: pointer; - transition: all var(--transition-fast); -} - -.mini-calendar .day:hover { - background-color: var(--color-muted); -} - -.mini-calendar .day.today { - background-color: var(--color-primary); - color: var(--color-primary-foreground); -} - -.mini-calendar .day.selected { - border: 2px solid var(--color-primary); -} - -/* Card styles */ -.card { - background-color: var(--color-surface); - border-radius: var(--radius-lg); - padding: var(--spacing-lg); - border: 1px solid var(--color-border); -} - -/* Button styles */ -.btn { - display: inline-flex; - align-items: center; - justify-content: center; - padding: 0.5rem 1rem; - border-radius: var(--radius-md); - font-weight: 500; - font-size: 0.875rem; - transition: all var(--transition-base); - cursor: pointer; - border: none; - background: transparent; -} - -.btn-primary { - background: var(--color-primary); - color: var(--color-primary-foreground); -} - -.btn-primary:hover { - filter: brightness(0.9); -} - -.btn-primary:disabled { - opacity: 0.5; - cursor: not-allowed; -} - -.btn-secondary { - background: var(--color-secondary); - color: var(--color-secondary-foreground); -} - -.btn-secondary:hover { - filter: brightness(0.9); -} - -.btn-ghost { - background: transparent; - color: var(--color-foreground); -} - -.btn-ghost:hover { - background: var(--color-muted); -} - -.btn-icon { - padding: 0.5rem; -} - -.btn-sm { - padding: 0.25rem 0.5rem; - font-size: 0.75rem; -} - -/* Input styles */ -.input { - display: block; - width: 100%; - padding: 0.5rem 0.75rem; - border: 2px solid var(--color-border); - border-radius: var(--radius-md); - background-color: var(--color-background); - color: var(--color-foreground); - font-size: 0.875rem; - transition: border-color var(--transition-fast); -} - -.input:focus { - outline: none; - border-color: var(--color-primary); -} - -.input::placeholder { - color: var(--color-muted-foreground); -} - -/* Select styling */ -select.input { - appearance: none; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); - background-position: right 0.5rem center; - background-repeat: no-repeat; - background-size: 1.5em 1.5em; - padding-right: 2.5rem; -} - -/* Text colors */ -.text-destructive { - color: var(--color-error); -} - -/* Scrollbar styling */ -@layer utilities { - .scrollbar-thin::-webkit-scrollbar { - width: 6px; - height: 6px; - } - - .scrollbar-thin::-webkit-scrollbar-track { - background: transparent; - } - - .scrollbar-thin::-webkit-scrollbar-thumb { - background-color: hsl(var(--muted-foreground) / 0.3); - border-radius: 3px; - } - - .scrollbar-thin::-webkit-scrollbar-thumb:hover { - background-color: hsl(var(--muted-foreground) / 0.5); - } -} diff --git a/apps/calendar/apps/web-archived/src/app.d.ts b/apps/calendar/apps/web-archived/src/app.d.ts deleted file mode 100644 index c269fca6f..000000000 --- a/apps/calendar/apps/web-archived/src/app.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const __BUILD_HASH__: string; -declare const __BUILD_TIME__: string; diff --git a/apps/calendar/apps/web-archived/src/app.html b/apps/calendar/apps/web-archived/src/app.html deleted file mode 100644 index 6cf6c7464..000000000 --- a/apps/calendar/apps/web-archived/src/app.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - Calendar - %sveltekit.head% - - -
%sveltekit.body%
- - diff --git a/apps/calendar/apps/web-archived/src/hooks.client.ts b/apps/calendar/apps/web-archived/src/hooks.client.ts deleted file mode 100644 index 07c1a0078..000000000 --- a/apps/calendar/apps/web-archived/src/hooks.client.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { initErrorTracking, handleSvelteError } from '@manacore/shared-error-tracking/browser'; -import type { HandleClientError } from '@sveltejs/kit'; - -initErrorTracking({ - serviceName: 'calendar-web', - dsn: (window as any).__PUBLIC_GLITCHTIP_DSN__, - environment: import.meta.env.MODE, -}); - -export const handleError: HandleClientError = ({ error }) => { - handleSvelteError(error); -}; diff --git a/apps/calendar/apps/web-archived/src/hooks.server.ts b/apps/calendar/apps/web-archived/src/hooks.server.ts deleted file mode 100644 index 1e76ae88a..000000000 --- a/apps/calendar/apps/web-archived/src/hooks.server.ts +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Server Hooks for SvelteKit - * - Injects runtime environment variables for client-side use - * - Adds security headers - * - Auth is handled client-side via Mana Core Auth - */ - -import type { Handle } from '@sveltejs/kit'; -import { setSecurityHeaders } from '@manacore/shared-utils/security-headers'; - -// Get client-side URLs from environment (Docker runtime) -// In dev mode, Vite exposes .env vars via import.meta.env, not process.env -const PUBLIC_MANA_CORE_AUTH_URL_CLIENT = - process.env.PUBLIC_MANA_CORE_AUTH_URL_CLIENT || - process.env.PUBLIC_MANA_CORE_AUTH_URL || - 'http://localhost:3001'; -const PUBLIC_BACKEND_URL_CLIENT = - process.env.PUBLIC_BACKEND_URL_CLIENT || - process.env.PUBLIC_BACKEND_URL || - 'http://localhost:3014'; -const PUBLIC_STT_URL = process.env.PUBLIC_STT_URL || 'https://stt-api.mana.how'; - -// Cross-app integration URLs (for contacts API) -const PUBLIC_CONTACTS_API_URL = process.env.PUBLIC_CONTACTS_API_URL || 'http://localhost:3015'; -const PUBLIC_GLITCHTIP_DSN = process.env.PUBLIC_GLITCHTIP_DSN || ''; - -export const handle: Handle = async ({ event, resolve }) => { - const response = await resolve(event, { - transformPageChunk: ({ html }) => { - // Inject runtime environment variables into the HTML - // These will be available on window.__PUBLIC_*__ for client-side code - const envScript = ``; - return html.replace('', `${envScript}`); - }, - }); - - setSecurityHeaders(response, { - connectSrc: [ - PUBLIC_MANA_CORE_AUTH_URL_CLIENT, - PUBLIC_BACKEND_URL_CLIENT, - PUBLIC_STT_URL, - PUBLIC_CONTACTS_API_URL, - ], - }); - - return response; -}; diff --git a/apps/calendar/apps/web-archived/src/lib/api/birthdays.ts b/apps/calendar/apps/web-archived/src/lib/api/birthdays.ts deleted file mode 100644 index d5e73627c..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/birthdays.ts +++ /dev/null @@ -1,131 +0,0 @@ -/** - * Cross-App API Client for Contacts Backend - Birthday Data - * Allows Calendar app to fetch contact birthdays for display - */ - -import { browser } from '$app/environment'; -import { env } from '$env/dynamic/public'; -import { createApiClient } from '@manacore/shared-api-client'; -import { authStore } from '$lib/stores/auth.svelte'; - -// Get contacts API base URL from injected window variable (browser) or env (SSR) -function getContactsApiBase(): string { - if (browser && typeof window !== 'undefined') { - const injectedUrl = (window as unknown as { __PUBLIC_CONTACTS_API_URL__?: string }) - .__PUBLIC_CONTACTS_API_URL__; - if (injectedUrl) return injectedUrl; - } - return env.PUBLIC_CONTACTS_API_URL || 'http://localhost:3015'; -} - -let _contactsClient: ReturnType | null = null; - -function getContactsClient() { - if (!_contactsClient) { - _contactsClient = createApiClient({ - baseUrl: getContactsApiBase(), - apiPrefix: '/api/v1', - getAuthToken: () => authStore.getValidToken(), - timeout: 30000, - debug: import.meta.env.DEV, - useRuntimeUrl: false, - }); - } - return _contactsClient; -} - -// For backwards compatibility -const contactsClient = { - get: (endpoint: string) => getContactsClient().get(endpoint), - post: (endpoint: string, body?: unknown) => getContactsClient().post(endpoint, body), - put: (endpoint: string, body?: unknown) => getContactsClient().put(endpoint, body), - patch: (endpoint: string, body?: unknown) => getContactsClient().patch(endpoint, body), - delete: (endpoint: string) => getContactsClient().delete(endpoint), -}; - -// ============================================ -// Types for Birthday Integration -// ============================================ - -/** - * Lightweight contact data for birthday display - * Only essential fields from Contacts API - */ -export interface ContactBirthdaySummary { - id: string; - displayName: string | null; - firstName: string | null; - lastName: string | null; - birthday: string; // YYYY-MM-DD format - photoUrl: string | null; -} - -/** - * Birthday event for calendar display - * Generated from ContactBirthdaySummary with display date - */ -export interface BirthdayEvent { - id: string; // Format: birthday-{contactId}-{date} - contactId: string; - title: string; // "{Name}'s Geburtstag" - displayName: string; - photoUrl: string | null; - birthday: string; // Original birthday date - age: number; // Age on this birthday (0 if birth year unknown) - startTime: string; // ISO date of the birthday occurrence - endTime: string; // Same as startTime (all-day event) - isAllDay: true; - isBirthday: true; // Type discriminator - calendarId: string; // Virtual calendar ID -} - -// ============================================ -// API Response Types -// ============================================ - -interface BirthdaysResponse { - contacts: ContactBirthdaySummary[]; -} - -// ============================================ -// API Functions -// ============================================ - -/** - * Fetch all contacts with birthdays from Contacts service - */ -export async function getBirthdays(): Promise<{ - data: ContactBirthdaySummary[] | null; - error: Error | null; -}> { - const result = await contactsClient.get('/contacts/birthdays'); - if (result.error) { - return { data: null, error: new Error(result.error.message) }; - } - return { - data: result.data?.contacts || null, - error: null, - }; -} - -// ============================================ -// Helper Functions -// ============================================ - -/** - * Get display name from contact, with fallback - */ -export function getContactDisplayName(contact: ContactBirthdaySummary): string { - if (contact.displayName) return contact.displayName; - const fullName = [contact.firstName, contact.lastName].filter(Boolean).join(' '); - return fullName || 'Unbekannt'; -} - -/** - * Birthday calendar constants - */ -export const BIRTHDAY_CALENDAR = { - id: '__birthdays__', - name: 'Geburtstage', - color: '#EC4899', // Pink -} as const; diff --git a/apps/calendar/apps/web-archived/src/lib/api/calendars.ts b/apps/calendar/apps/web-archived/src/lib/api/calendars.ts deleted file mode 100644 index 4b6197430..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/calendars.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Calendar API Client - */ - -import { fetchApi } from './client'; -import type { Calendar, CreateCalendarInput, UpdateCalendarInput } from '@calendar/shared'; - -export async function getCalendars() { - return fetchApi('/calendars'); -} - -export async function getCalendar(id: string) { - return fetchApi(`/calendars/${id}`); -} - -export async function createCalendar(data: CreateCalendarInput) { - const result = await fetchApi<{ calendar: Calendar }>('/calendars', { - method: 'POST', - body: data, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.calendar, error: null }; -} - -export async function updateCalendar(id: string, data: UpdateCalendarInput) { - const result = await fetchApi<{ calendar: Calendar }>(`/calendars/${id}`, { - method: 'PUT', - body: data, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.calendar, error: null }; -} - -export async function deleteCalendar(id: string) { - return fetchApi(`/calendars/${id}`, { - method: 'DELETE', - }); -} diff --git a/apps/calendar/apps/web-archived/src/lib/api/client.ts b/apps/calendar/apps/web-archived/src/lib/api/client.ts deleted file mode 100644 index 8d3bb12b8..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/client.ts +++ /dev/null @@ -1,105 +0,0 @@ -/** - * API Client for Calendar Backend - * Uses @manacore/shared-api-client for consistent error handling - * - * Token handling: Uses authStore.getValidToken() which automatically - * refreshes expired tokens before making requests. - */ - -import { browser } from '$app/environment'; -import { env } from '$env/dynamic/public'; -import { createApiClient, type ApiResult, type ApiClient } from '@manacore/shared-api-client'; -import { authStore } from '$lib/stores/auth.svelte'; - -// Use client URL in browser (injected by hooks.server.ts), SSR URL on server -function getApiBase(): string { - if (browser && typeof window !== 'undefined') { - const injectedUrl = (window as unknown as { __PUBLIC_BACKEND_URL__?: string }) - .__PUBLIC_BACKEND_URL__; - if (injectedUrl) return injectedUrl; - } - return env.PUBLIC_BACKEND_URL || 'http://localhost:3014'; -} - -/** - * Calendar API client instance (lazy initialized) - * - Auto token handling via authStore.getValidToken() - * - Consistent ApiResult response format - */ -let _api: ApiClient | null = null; - -function getApi(): ApiClient { - if (!_api) { - _api = createApiClient({ - baseUrl: getApiBase(), - apiPrefix: '/api/v1', - getAuthToken: () => authStore.getValidToken(), - timeout: 30000, - debug: import.meta.env.DEV, - }); - } - return _api; -} - -/** - * Request deduplication for GET requests - * Prevents identical concurrent requests from being sent multiple times - */ -const pendingRequests = new Map>>(); - -/** - * Legacy fetchApi interface for backwards compatibility - */ -export interface FetchOptions { - method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; - body?: unknown; - token?: string; - isFormData?: boolean; - timeout?: number; -} - -/** - * Fetch API wrapper using shared client - * Maintains backward compatibility with existing code - * GET requests are deduplicated — identical concurrent GETs share one in-flight request - */ -export async function fetchApi( - endpoint: string, - options: FetchOptions = {} -): Promise> { - const { method = 'GET', body, isFormData = false } = options; - const api = getApi(); - - if (isFormData && body instanceof FormData) { - return api.upload(endpoint, body); - } - - // Deduplicate GET requests - if (method === 'GET') { - const existing = pendingRequests.get(endpoint); - if (existing) { - return existing as Promise>; - } - const promise = api.get(endpoint).finally(() => { - pendingRequests.delete(endpoint); - }); - pendingRequests.set(endpoint, promise as Promise>); - return promise; - } - - switch (method) { - case 'POST': - return api.post(endpoint, body); - case 'PUT': - return api.put(endpoint, body); - case 'PATCH': - return api.patch(endpoint, body); - case 'DELETE': - return api.delete(endpoint); - default: - return api.get(endpoint); - } -} - -// Re-export types for backwards compatibility -export type { ApiResult }; diff --git a/apps/calendar/apps/web-archived/src/lib/api/event-tags.ts b/apps/calendar/apps/web-archived/src/lib/api/event-tags.ts deleted file mode 100644 index a3fb56a8b..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/event-tags.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Event Tags API Client - Uses Calendar Backend API - * - * This module provides the event tags interface for the Calendar app, - * using the calendar backend's /event-tags endpoint which supports - * tag groups (groupId). - */ - -import { fetchApi } from './client'; -import type { EventTag } from '@calendar/shared'; - -// Re-export EventTag from shared -export type { EventTag }; - -export interface CreateEventTagInput { - name: string; - color?: string; - groupId?: string | null; -} - -export interface UpdateEventTagInput { - name?: string; - color?: string; - groupId?: string | null; -} - -export async function getEventTags() { - const result = await fetchApi<{ tags: EventTag[] }>('/event-tags'); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.tags, error: null }; -} - -export async function getEventTag(id: string) { - const result = await fetchApi<{ tag: EventTag }>(`/event-tags/${id}`); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.tag, error: null }; -} - -export async function createEventTag(data: CreateEventTagInput) { - const result = await fetchApi<{ tag: EventTag }>('/event-tags', { - method: 'POST', - body: data, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.tag, error: null }; -} - -export async function updateEventTag(id: string, data: UpdateEventTagInput) { - const result = await fetchApi<{ tag: EventTag }>(`/event-tags/${id}`, { - method: 'PUT', - body: data, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.tag, error: null }; -} - -export async function deleteEventTag(id: string) { - const result = await fetchApi<{ success: boolean }>(`/event-tags/${id}`, { - method: 'DELETE', - }); - return result; -} diff --git a/apps/calendar/apps/web-archived/src/lib/api/events.test.ts b/apps/calendar/apps/web-archived/src/lib/api/events.test.ts deleted file mode 100644 index 393871859..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/events.test.ts +++ /dev/null @@ -1,278 +0,0 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; -import type { CalendarEvent } from '@calendar/shared'; - -// Mock the client module -vi.mock('./client', () => ({ - fetchApi: vi.fn(), -})); - -import { fetchApi } from './client'; -import { getEvents, getEvent, createEvent, updateEvent, deleteEvent } from './events'; - -const mockFetchApi = vi.mocked(fetchApi); - -function makeEvent(overrides: Partial = {}): CalendarEvent { - return { - id: 'evt-1', - calendarId: 'cal-1', - userId: 'user-1', - title: 'Test Event', - description: null, - location: null, - startTime: '2026-03-15T10:00:00Z', - endTime: '2026-03-15T11:00:00Z', - isAllDay: false, - timezone: 'Europe/Berlin', - recurrenceRule: null, - recurrenceEndDate: null, - recurrenceExceptions: null, - parentEventId: null, - color: null, - status: 'confirmed', - externalId: null, - metadata: null, - createdAt: '2026-03-01T00:00:00Z', - updatedAt: '2026-03-01T00:00:00Z', - ...overrides, - }; -} - -describe('events API client', () => { - beforeEach(() => { - vi.clearAllMocks(); - }); - - describe('getEvents', () => { - it('should build query params with startDate and endDate', async () => { - mockFetchApi.mockResolvedValue({ - data: { events: [], pagination: { offset: 0, count: 0 } }, - error: null, - }); - - await getEvents({ - startDate: '2026-03-01T00:00:00', - endDate: '2026-03-31T23:59:59', - }); - - expect(mockFetchApi).toHaveBeenCalledOnce(); - const url = mockFetchApi.mock.calls[0][0]; - expect(url).toContain('startDate=2026-03-01T00%3A00%3A00'); - expect(url).toContain('endDate=2026-03-31T23%3A59%3A59'); - }); - - it('should include calendarIds when provided', async () => { - mockFetchApi.mockResolvedValue({ - data: { events: [], pagination: { offset: 0, count: 0 } }, - error: null, - }); - - await getEvents({ - startDate: '2026-03-01T00:00:00', - endDate: '2026-03-31T23:59:59', - calendarIds: ['cal-1', 'cal-2'], - }); - - const url = mockFetchApi.mock.calls[0][0]; - expect(url).toContain('calendarIds=cal-1%2Ccal-2'); - }); - - it('should include search param when provided', async () => { - mockFetchApi.mockResolvedValue({ - data: { events: [], pagination: { offset: 0, count: 0 } }, - error: null, - }); - - await getEvents({ - startDate: '2026-03-01T00:00:00', - endDate: '2026-03-31T23:59:59', - search: 'meeting', - }); - - const url = mockFetchApi.mock.calls[0][0]; - expect(url).toContain('search=meeting'); - }); - - it('should include limit and offset when provided', async () => { - mockFetchApi.mockResolvedValue({ - data: { events: [], pagination: { offset: 0, count: 0 } }, - error: null, - }); - - await getEvents({ - startDate: '2026-03-01T00:00:00', - endDate: '2026-03-31T23:59:59', - limit: 10, - offset: 20, - }); - - const url = mockFetchApi.mock.calls[0][0]; - expect(url).toContain('limit=10'); - expect(url).toContain('offset=20'); - }); - - it('should extract events array from response', async () => { - const events = [makeEvent(), makeEvent({ id: 'evt-2', title: 'Second' })]; - mockFetchApi.mockResolvedValue({ - data: { events, pagination: { offset: 0, count: 2 } }, - error: null, - }); - - const result = await getEvents({ - startDate: '2026-03-01T00:00:00', - endDate: '2026-03-31T23:59:59', - }); - - expect(result.data).toHaveLength(2); - expect(result.error).toBeNull(); - expect(result.pagination).toEqual({ offset: 0, count: 2 }); - }); - - it('should return error when API fails', async () => { - mockFetchApi.mockResolvedValue({ - data: null, - error: { message: 'Server error', code: 'SERVER_ERROR', status: 500 }, - }); - - const result = await getEvents({ - startDate: '2026-03-01T00:00:00', - endDate: '2026-03-31T23:59:59', - }); - - expect(result.data).toBeNull(); - expect(result.error).toEqual({ - message: 'Server error', - code: 'SERVER_ERROR', - status: 500, - }); - }); - }); - - describe('getEvent', () => { - it('should fetch a single event by ID', async () => { - const event = makeEvent(); - mockFetchApi.mockResolvedValue({ - data: { event }, - error: null, - }); - - const result = await getEvent('evt-1'); - - expect(mockFetchApi).toHaveBeenCalledWith('/events/evt-1'); - expect(result.data).toEqual(event); - expect(result.error).toBeNull(); - }); - - it('should return error when event not found', async () => { - mockFetchApi.mockResolvedValue({ - data: null, - error: { message: 'Not found', code: 'NOT_FOUND', status: 404 }, - }); - - const result = await getEvent('nonexistent'); - - expect(result.data).toBeNull(); - expect(result.error?.code).toBe('NOT_FOUND'); - }); - }); - - describe('createEvent', () => { - it('should send POST request with event data', async () => { - const event = makeEvent(); - mockFetchApi.mockResolvedValue({ - data: { event }, - error: null, - }); - - const input = { - calendarId: 'cal-1', - title: 'Test Event', - startTime: '2026-03-15T10:00:00Z', - endTime: '2026-03-15T11:00:00Z', - }; - - const result = await createEvent(input); - - expect(mockFetchApi).toHaveBeenCalledWith('/events', { - method: 'POST', - body: input, - }); - expect(result.data).toEqual(event); - expect(result.error).toBeNull(); - }); - - it('should return error on creation failure', async () => { - mockFetchApi.mockResolvedValue({ - data: null, - error: { message: 'Validation failed', code: 'VALIDATION_ERROR', status: 400 }, - }); - - const result = await createEvent({ - title: '', - startTime: '2026-03-15T10:00:00Z', - endTime: '2026-03-15T11:00:00Z', - }); - - expect(result.data).toBeNull(); - expect(result.error?.code).toBe('VALIDATION_ERROR'); - }); - }); - - describe('updateEvent', () => { - it('should send PUT request with update data', async () => { - const event = makeEvent({ title: 'Updated Title' }); - mockFetchApi.mockResolvedValue({ - data: { event }, - error: null, - }); - - const updateData = { title: 'Updated Title' }; - const result = await updateEvent('evt-1', updateData); - - expect(mockFetchApi).toHaveBeenCalledWith('/events/evt-1', { - method: 'PUT', - body: updateData, - }); - expect(result.data).toEqual(event); - expect(result.error).toBeNull(); - }); - - it('should return error on update failure', async () => { - mockFetchApi.mockResolvedValue({ - data: null, - error: { message: 'Forbidden', code: 'FORBIDDEN', status: 403 }, - }); - - const result = await updateEvent('evt-1', { title: 'Updated' }); - - expect(result.data).toBeNull(); - expect(result.error?.code).toBe('FORBIDDEN'); - }); - }); - - describe('deleteEvent', () => { - it('should send DELETE request', async () => { - mockFetchApi.mockResolvedValue({ - data: null, - error: null, - }); - - const result = await deleteEvent('evt-1'); - - expect(mockFetchApi).toHaveBeenCalledWith('/events/evt-1', { - method: 'DELETE', - }); - expect(result.error).toBeNull(); - }); - - it('should return error on delete failure', async () => { - mockFetchApi.mockResolvedValue({ - data: null, - error: { message: 'Not found', code: 'NOT_FOUND', status: 404 }, - }); - - const result = await deleteEvent('nonexistent'); - - expect(result.error?.code).toBe('NOT_FOUND'); - }); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/api/events.ts b/apps/calendar/apps/web-archived/src/lib/api/events.ts deleted file mode 100644 index e12971d17..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/events.ts +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Events API Client - */ - -import { fetchApi } from './client'; -import type { CalendarEvent, CreateEventInput, UpdateEventInput } from '@calendar/shared'; - -export interface PaginationMeta { - limit?: number; - offset: number; - count: number; -} - -export interface QueryEventsParams { - startDate: string; - endDate: string; - calendarIds?: string[]; - search?: string; - limit?: number; - offset?: number; -} - -export async function getEvents(params: QueryEventsParams) { - const searchParams = new URLSearchParams({ - startDate: params.startDate, - endDate: params.endDate, - }); - if (params.calendarIds?.length) { - searchParams.set('calendarIds', params.calendarIds.join(',')); - } - if (params.search) { - searchParams.set('search', params.search); - } - if (params.limit !== undefined) { - searchParams.set('limit', String(params.limit)); - } - if (params.offset !== undefined) { - searchParams.set('offset', String(params.offset)); - } - const result = await fetchApi<{ events: CalendarEvent[]; pagination: PaginationMeta }>( - `/events?${searchParams.toString()}` - ); - if (result.error || !result.data) { - return { data: null, pagination: null, error: result.error }; - } - return { data: result.data.events, pagination: result.data.pagination, error: null }; -} - -export async function searchEvents(query: string, limit: number = 10) { - // Search events within a wide range (1 year past to 1 year future) - const oneYearAgo = new Date(); - oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1); - const oneYearFromNow = new Date(); - oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1); - - return getEvents({ - startDate: oneYearAgo.toISOString(), - endDate: oneYearFromNow.toISOString(), - search: query, - }); -} - -export async function getEvent(id: string) { - const result = await fetchApi<{ event: CalendarEvent }>(`/events/${id}`); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.event, error: null }; -} - -export async function getEventsByCalendar(calendarId: string) { - return fetchApi(`/events/calendar/${calendarId}`); -} - -export async function createEvent(data: CreateEventInput) { - const result = await fetchApi<{ event: CalendarEvent }>('/events', { - method: 'POST', - body: data, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.event, error: null }; -} - -export async function updateEvent(id: string, data: UpdateEventInput) { - const result = await fetchApi<{ event: CalendarEvent }>(`/events/${id}`, { - method: 'PUT', - body: data, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.event, error: null }; -} - -export async function deleteEvent(id: string) { - return fetchApi(`/events/${id}`, { - method: 'DELETE', - }); -} diff --git a/apps/calendar/apps/web-archived/src/lib/api/reminders.test.ts b/apps/calendar/apps/web-archived/src/lib/api/reminders.test.ts deleted file mode 100644 index b9a1224e0..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/reminders.test.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; - -vi.mock('./client', () => ({ - fetchApi: vi.fn(), -})); - -import { fetchApi } from './client'; -import { getReminders, createReminder, deleteReminder } from './reminders'; - -const mockFetchApi = vi.mocked(fetchApi); - -describe('reminders API client', () => { - beforeEach(() => { - vi.clearAllMocks(); - }); - - describe('getReminders', () => { - it('should GET /events/:eventId/reminders', async () => { - mockFetchApi.mockResolvedValue({ - data: [ - { id: 'rem-1', eventId: 'evt-1', minutesBefore: 15, status: 'pending' }, - { id: 'rem-2', eventId: 'evt-1', minutesBefore: 60, status: 'sent' }, - ], - error: null, - }); - - const result = await getReminders('evt-1'); - - expect(mockFetchApi).toHaveBeenCalledWith('/events/evt-1/reminders'); - expect(result.data).toHaveLength(2); - }); - - it('should return error on failure', async () => { - mockFetchApi.mockResolvedValue({ - data: null, - error: { message: 'Not found', code: 'NOT_FOUND', status: 404 }, - }); - - const result = await getReminders('nonexistent'); - - expect(result.error).toBeTruthy(); - }); - }); - - describe('createReminder', () => { - it('should POST to /events/:eventId/reminders with body', async () => { - mockFetchApi.mockResolvedValue({ - data: { id: 'rem-new', eventId: 'evt-1', minutesBefore: 30, status: 'pending' }, - error: null, - }); - - const result = await createReminder('evt-1', { - eventId: 'evt-1', - minutesBefore: 30, - notifyPush: true, - notifyEmail: false, - }); - - expect(mockFetchApi).toHaveBeenCalledWith('/events/evt-1/reminders', { - method: 'POST', - body: { - eventId: 'evt-1', - minutesBefore: 30, - notifyPush: true, - notifyEmail: false, - }, - }); - expect(result.data).toBeTruthy(); - }); - }); - - describe('deleteReminder', () => { - it('should DELETE /reminders/:id', async () => { - mockFetchApi.mockResolvedValue({ data: null, error: null }); - - await deleteReminder('rem-1'); - - expect(mockFetchApi).toHaveBeenCalledWith('/reminders/rem-1', { - method: 'DELETE', - }); - }); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/api/reminders.ts b/apps/calendar/apps/web-archived/src/lib/api/reminders.ts deleted file mode 100644 index c932f9a3a..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/reminders.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Reminders API Client - */ - -import { fetchApi } from './client'; -import type { Reminder, CreateReminderInput } from '@calendar/shared'; - -export async function getReminders(eventId: string) { - return fetchApi(`/events/${eventId}/reminders`); -} - -export async function createReminder(eventId: string, data: CreateReminderInput) { - return fetchApi(`/events/${eventId}/reminders`, { - method: 'POST', - body: data, - }); -} - -export async function deleteReminder(id: string) { - return fetchApi(`/reminders/${id}`, { - method: 'DELETE', - }); -} diff --git a/apps/calendar/apps/web-archived/src/lib/api/shares.ts b/apps/calendar/apps/web-archived/src/lib/api/shares.ts deleted file mode 100644 index 93f43e77d..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/shares.ts +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Calendar Shares API Client - */ - -import { fetchApi } from './client'; -import type { CalendarShare, CreateShareInput, UpdateShareInput } from '@calendar/shared'; - -export async function getShares(calendarId: string) { - return fetchApi(`/calendars/${calendarId}/shares`); -} - -export async function createShare(calendarId: string, data: CreateShareInput) { - return fetchApi(`/calendars/${calendarId}/shares`, { - method: 'POST', - body: data, - }); -} - -export async function acceptShare(shareId: string) { - return fetchApi(`/shares/${shareId}/accept`, { - method: 'POST', - }); -} - -export async function declineShare(shareId: string) { - return fetchApi(`/shares/${shareId}/decline`, { - method: 'POST', - }); -} - -export async function updateShare(shareId: string, data: UpdateShareInput) { - return fetchApi(`/shares/${shareId}`, { - method: 'PUT', - body: data, - }); -} - -export async function deleteShare(calendarId: string, shareId: string) { - return fetchApi(`/calendars/${calendarId}/shares/${shareId}`, { - method: 'DELETE', - }); -} - -export async function getInvitations() { - return fetchApi('/shares/invitations'); -} - -export async function getSharedWithMe() { - return fetchApi('/shares/shared-with-me'); -} diff --git a/apps/calendar/apps/web-archived/src/lib/api/sync.test.ts b/apps/calendar/apps/web-archived/src/lib/api/sync.test.ts deleted file mode 100644 index fd4be5d95..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/sync.test.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; - -vi.mock('./client', () => ({ - fetchApi: vi.fn(), -})); - -import { fetchApi } from './client'; -import { - getExternalCalendars, - connectExternalCalendar, - updateExternalCalendar, - disconnectExternalCalendar, - triggerSync, - discoverCalDav, - getGoogleAuthUrl, - getICalExportUrl, -} from './sync'; - -const mockFetchApi = vi.mocked(fetchApi); - -describe('sync API client', () => { - beforeEach(() => { - vi.clearAllMocks(); - }); - - describe('getExternalCalendars', () => { - it('should fetch external calendars', async () => { - mockFetchApi.mockResolvedValue({ - data: { calendars: [{ id: 'ext-1', name: 'Test' }] }, - error: null, - }); - const result = await getExternalCalendars(); - expect(mockFetchApi).toHaveBeenCalledWith('/sync/external'); - expect(result.data).toHaveLength(1); - expect(result.data![0].name).toBe('Test'); - }); - - it('should return error on failure', async () => { - mockFetchApi.mockResolvedValue({ - data: null, - error: { message: 'Not found', code: 'NOT_FOUND', status: 404 }, - }); - const result = await getExternalCalendars(); - expect(result.data).toBeNull(); - expect(result.error).toBeTruthy(); - }); - }); - - describe('connectExternalCalendar', () => { - it('should POST to /sync/external', async () => { - mockFetchApi.mockResolvedValue({ - data: { calendar: { id: 'ext-new', name: 'New Cal' } }, - error: null, - }); - const result = await connectExternalCalendar({ - name: 'New Cal', - provider: 'ical_url', - calendarUrl: 'https://example.com/cal.ics', - }); - expect(mockFetchApi).toHaveBeenCalledWith('/sync/external', { - method: 'POST', - body: { name: 'New Cal', provider: 'ical_url', calendarUrl: 'https://example.com/cal.ics' }, - }); - expect(result.data!.name).toBe('New Cal'); - }); - }); - - describe('disconnectExternalCalendar', () => { - it('should DELETE /sync/external/:id', async () => { - mockFetchApi.mockResolvedValue({ data: { success: true }, error: null }); - await disconnectExternalCalendar('ext-1'); - expect(mockFetchApi).toHaveBeenCalledWith('/sync/external/ext-1', { method: 'DELETE' }); - }); - }); - - describe('triggerSync', () => { - it('should POST to /sync/external/:id/sync', async () => { - mockFetchApi.mockResolvedValue({ data: { success: true, eventsImported: 10 }, error: null }); - const result = await triggerSync('ext-1'); - expect(mockFetchApi).toHaveBeenCalledWith('/sync/external/ext-1/sync', { method: 'POST' }); - expect(result.data!.eventsImported).toBe(10); - }); - }); - - describe('discoverCalDav', () => { - it('should POST credentials to /sync/caldav/discover', async () => { - mockFetchApi.mockResolvedValue({ - data: { calendars: [{ url: 'https://cal.example.com/personal', name: 'Personal' }] }, - error: null, - }); - const result = await discoverCalDav('https://cal.example.com', 'user@example.com', 'pass'); - expect(mockFetchApi).toHaveBeenCalledWith('/sync/caldav/discover', { - method: 'POST', - body: { - serverUrl: 'https://cal.example.com', - username: 'user@example.com', - password: 'pass', - }, - }); - expect(result.data).toHaveLength(1); - }); - }); - - describe('getGoogleAuthUrl', () => { - it('should GET /sync/google/auth-url', async () => { - mockFetchApi.mockResolvedValue({ - data: { url: 'https://accounts.google.com/auth' }, - error: null, - }); - const result = await getGoogleAuthUrl(); - expect(mockFetchApi).toHaveBeenCalledWith('/sync/google/auth-url'); - expect(result.data).toContain('google'); - }); - }); - - describe('getICalExportUrl', () => { - it('should return the correct export URL', () => { - expect(getICalExportUrl('cal-123')).toBe('/api/v1/calendars/cal-123/export.ics'); - }); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/api/sync.ts b/apps/calendar/apps/web-archived/src/lib/api/sync.ts deleted file mode 100644 index c86505d6e..000000000 --- a/apps/calendar/apps/web-archived/src/lib/api/sync.ts +++ /dev/null @@ -1,109 +0,0 @@ -/** - * External Calendar Sync API Client - */ - -import { fetchApi } from './client'; -import type { - ExternalCalendar, - ConnectExternalCalendarInput, - CalDavDiscoveryResult, -} from '@calendar/shared'; - -export interface UpdateExternalCalendarInput { - name?: string; - syncEnabled?: boolean; - syncDirection?: 'import' | 'export' | 'both'; - syncInterval?: number; - color?: string; - isVisible?: boolean; -} - -// ==================== External Calendars CRUD ==================== - -export async function getExternalCalendars() { - const result = await fetchApi<{ calendars: ExternalCalendar[] }>('/sync/external'); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.calendars, error: null }; -} - -export async function getExternalCalendar(id: string) { - const result = await fetchApi<{ calendar: ExternalCalendar }>(`/sync/external/${id}`); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.calendar, error: null }; -} - -export async function connectExternalCalendar(data: ConnectExternalCalendarInput) { - const result = await fetchApi<{ calendar: ExternalCalendar }>('/sync/external', { - method: 'POST', - body: data, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.calendar, error: null }; -} - -export async function updateExternalCalendar(id: string, data: UpdateExternalCalendarInput) { - const result = await fetchApi<{ calendar: ExternalCalendar }>(`/sync/external/${id}`, { - method: 'PUT', - body: data, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.calendar, error: null }; -} - -export async function disconnectExternalCalendar(id: string) { - return fetchApi<{ success: boolean }>(`/sync/external/${id}`, { - method: 'DELETE', - }); -} - -// ==================== Sync Operations ==================== - -export async function triggerSync(id: string) { - const result = await fetchApi<{ - success: boolean; - eventsImported?: number; - eventsExported?: number; - }>(`/sync/external/${id}/sync`, { method: 'POST' }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data, error: null }; -} - -// ==================== CalDAV Discovery ==================== - -export async function discoverCalDav(serverUrl: string, username: string, password: string) { - const result = await fetchApi('/sync/caldav/discover', { - method: 'POST', - body: { serverUrl, username, password }, - }); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.calendars, error: null }; -} - -// ==================== Google OAuth ==================== - -export async function getGoogleAuthUrl() { - const result = await fetchApi<{ url: string }>('/sync/google/auth-url'); - if (result.error || !result.data) { - return { data: null, error: result.error }; - } - return { data: result.data.url, error: null }; -} - -// ==================== iCal Export ==================== - -export function getICalExportUrl(calendarId: string): string { - // This returns the URL for direct browser download - return `/api/v1/calendars/${calendarId}/export.ics`; -} diff --git a/apps/calendar/apps/web-archived/src/lib/components/AppSlider.svelte b/apps/calendar/apps/web-archived/src/lib/components/AppSlider.svelte deleted file mode 100644 index b36ac8d18..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/AppSlider.svelte +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/LanguageSelector.svelte b/apps/calendar/apps/web-archived/src/lib/components/LanguageSelector.svelte deleted file mode 100644 index 5630e7582..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/LanguageSelector.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/ServiceStatusBanner.svelte b/apps/calendar/apps/web-archived/src/lib/components/ServiceStatusBanner.svelte deleted file mode 100644 index 6bd6310bd..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/ServiceStatusBanner.svelte +++ /dev/null @@ -1,76 +0,0 @@ - - -{#if !available} - -{/if} - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/agenda/AgendaFilters.svelte b/apps/calendar/apps/web-archived/src/lib/components/agenda/AgendaFilters.svelte deleted file mode 100644 index f361e72a5..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/agenda/AgendaFilters.svelte +++ /dev/null @@ -1,66 +0,0 @@ - - -
-
-
- - onRangeChange?.(v as '7' | '30' | 'all')} - placeholder="Zeitraum" - embedded={true} - /> -
-
-
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/agenda/AgendaItem.svelte b/apps/calendar/apps/web-archived/src/lib/components/agenda/AgendaItem.svelte deleted file mode 100644 index 34e56cc4d..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/agenda/AgendaItem.svelte +++ /dev/null @@ -1,110 +0,0 @@ - - - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/birthday/BirthdayPopover.svelte b/apps/calendar/apps/web-archived/src/lib/components/birthday/BirthdayPopover.svelte deleted file mode 100644 index ad2b3853c..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/birthday/BirthdayPopover.svelte +++ /dev/null @@ -1,269 +0,0 @@ - - - - - -
e.key === 'Escape' && onClose()} - role="button" - tabindex="-1" -> - - -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/AgendaView.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/AgendaView.svelte deleted file mode 100644 index 7948c8930..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/AgendaView.svelte +++ /dev/null @@ -1,440 +0,0 @@ - - -
- {#if groupedEvents.length === 0} -
- -

Keine Termine in diesem Zeitraum

-
- {:else} -
- {#each groupedEvents as group} -
-

- {formatDateHeader(group.date)} -

- -
- {#each group.events as event} - -
{ - e.preventDefault(); - e.stopPropagation(); - handleContextMenu(event, e); - }} - > -
-
-
- {#if event.isAllDay} - Ganztägig - {:else} - {format(toDate(event.startTime), 'HH:mm')} - {format( - toDate(event.endTime), - 'HH:mm' - )} - {/if} -
- - handleTitleKeydown(e, event)} - onblur={(e) => handleTitleBlur(event, e.target as HTMLSpanElement)} - onclick={(e) => e.stopPropagation()} - > - {event.title} - - {#if event.location} -
- - {event.location} -
- {/if} -
- -
- {/each} -
-
- {/each} -
- {/if} -
- - { - contextMenuVisible = false; - contextMenuEvent = null; - }} -/> - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarHeader.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarHeader.svelte deleted file mode 100644 index 23c01f7f5..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarHeader.svelte +++ /dev/null @@ -1,63 +0,0 @@ - - - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarSidebar.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarSidebar.svelte deleted file mode 100644 index 2aa11d03e..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarSidebar.svelte +++ /dev/null @@ -1,184 +0,0 @@ - - -
-
-

Meine Kalender

- -
- -
- {#each calendarsCtx.value as calendar} - - {/each} - - {#if calendarsCtx.value.length === 0} -

Keine Kalender vorhanden

- {/if} -
- - {#if externalCalendarsStore.calendars.length > 0} -
-

Externe Kalender

- -
- -
- {#each externalCalendarsStore.calendars as cal} - - {/each} -
- {/if} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarToolbar.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarToolbar.svelte deleted file mode 100644 index baac9a229..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarToolbar.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarToolbarContent.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarToolbarContent.svelte deleted file mode 100644 index 404f27d82..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/CalendarToolbarContent.svelte +++ /dev/null @@ -1,102 +0,0 @@ - - -
- - - - {#if !vertical} - - {/if} - - - settingsStore.set('showOnlyWeekdays', !settingsStore.showOnlyWeekdays)} - active={settingsStore.showOnlyWeekdays} - title="Nur Wochentage anzeigen (Mo-Fr)" - > - Mo-Fr - - - - settingsStore.set('filterHoursEnabled', !settingsStore.filterHoursEnabled)} - labelFormat="range" - /> -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/DateStrip.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/DateStrip.svelte deleted file mode 100644 index e63e478bc..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/DateStrip.svelte +++ /dev/null @@ -1,654 +0,0 @@ - - -
- -
- -
- - {#if !isTodayVisible} - - {/if} - {visibleMonth} - -
- - -
- {#each days as day} - {@const dayIsToday = isToday(day)} - {@const dayIsSelected = isSameDay(day, currentDate)} - {@const dayIsWeekend = day.getDay() === 0 || day.getDay() === 6} - {@const dayInRange = isWithinInterval(day, { start: viewRange.start, end: viewRange.end })} - {@const dayIsRangeStart = isSameDay(day, viewRange.start)} - {@const dayIsRangeEnd = isSameDay(day, viewRange.end)} - {@const isFirstOfMonth = day.getDate() === 1} - {@const moonPhase = isSignificantMoonPhase(day)} - {@const eventCount = getEventCount(day)} - {#if isFirstOfMonth} -
- {/if} - - {/each} -
-
-
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/DateStripFab.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/DateStripFab.svelte deleted file mode 100644 index c23a3708e..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/DateStripFab.svelte +++ /dev/null @@ -1,110 +0,0 @@ - - -
- - -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/EventCard.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/EventCard.svelte deleted file mode 100644 index dec881105..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/EventCard.svelte +++ /dev/null @@ -1,268 +0,0 @@ - - -
- - {#if onResizeStart} -
- {/if} - - {formattedTime} - {event.title || (isDraft ? $_('calendar.draftEvent') : '')} - {#if event.location} - {event.location} - {/if} - - - {#if onResizeStart} -
- {/if} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/MiniCalendar.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/MiniCalendar.svelte deleted file mode 100644 index b593f4c9b..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/MiniCalendar.svelte +++ /dev/null @@ -1,162 +0,0 @@ - - -
-
- - {format(currentMonth, 'MMMM yyyy', { locale: de })} - -
- -
- {#each weekDays as day} - {day} - {/each} -
- -
- {#each calendarDays as day} - - {/each} -
-
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/MonthView.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/MonthView.svelte deleted file mode 100644 index 6a7323187..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/MonthView.svelte +++ /dev/null @@ -1,626 +0,0 @@ - - -
- -
- {#each weekDays as day} -
{day}
- {/each} -
- - -
- {#each weeks as week} -
- {#each week as day} - {@const isDropTarget = isDragging && dragTargetDay && isSameDay(day, dragTargetDay)} -
handleDayClick(day, e)} - onkeydown={(e) => e.key === 'Enter' && handleDayClick(day, e as unknown as MouseEvent)} - role="gridcell" - tabindex="0" - aria-selected={isToday(day)} - aria-label={$_('a11y.createEventOn', { - values: { date: format(day, 'EEEE, d. MMMM', { locale: de }) }, - })} - > -
- - {format(day, 'd')} - -
- -
- {#each getEventsForDay(day) as event} - {@const isBeingDragged = isDragging && draggedEvent?.id === event.id} - {@const isDraft = eventsStore.isDraftEvent(event.id)} - {@const isSearchHighlighted = searchStore.isEventHighlighted(event.id)} - {@const isSearchDimmed = searchStore.isEventDimmed(event.id)} - -
startDrag(event, e)} - onclick={(e) => !isDraft && handleEventClick(event, e)} - role="button" - tabindex="0" - aria-label={event.title || - (isDraft ? $_('calendar.draftEvent') : $_('calendar.untitled'))} - > - {#if !event.isAllDay} - {format( - typeof event.startTime === 'string' - ? new Date(event.startTime) - : event.startTime, - 'HH:mm' - )}-{format( - typeof event.endTime === 'string' ? new Date(event.endTime) : event.endTime, - 'HH:mm' - )} - {/if} - {event.title || (isDraft ? $_('calendar.draftEvent') : '')} -
- {/each} - - - {#each getBirthdaysForDay(day) as birthday} - -
birthdayPopover.handleBirthdayClick(birthday, e)} - role="button" - tabindex="0" - aria-label="{birthday.displayName} - {$_( - 'views.birthday' - )}{settingsStore.showBirthdayAge && birthday.age > 0 ? ` (${birthday.age})` : ''}" - > - 🎂 - {birthday.displayName} - {#if settingsStore.showBirthdayAge && birthday.age > 0} - ({birthday.age}) - {/if} -
- {/each} - - {#if getAllEventsForDay(day).length > 3} - - {/if} -
-
- {/each} -
- {/each} -
-
- - -{#if birthdayPopover.selectedBirthday} - -{/if} - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/OverflowIndicator.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/OverflowIndicator.svelte deleted file mode 100644 index bbb58a343..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/OverflowIndicator.svelte +++ /dev/null @@ -1,57 +0,0 @@ - - -{#if events.length > 0} -
- {#each events as { color, tooltip }} -
- {/each} -
-{/if} - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/PillCalendarSelector.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/PillCalendarSelector.svelte deleted file mode 100644 index 365df859e..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/PillCalendarSelector.svelte +++ /dev/null @@ -1,409 +0,0 @@ - - -
- - - - {#if isOpen} - - - - - - {/if} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/TagStrip.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/TagStrip.svelte deleted file mode 100644 index b0b3ac5b1..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/TagStrip.svelte +++ /dev/null @@ -1,316 +0,0 @@ - - -
-
- - - - - - - {#if !hasTags} - - {:else} - {#each sortedTags as tag (tag.id)} - - {/each} - - - - {/if} -
-
- - - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/TagStripModal.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/TagStripModal.svelte deleted file mode 100644 index 03161cc26..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/TagStripModal.svelte +++ /dev/null @@ -1,804 +0,0 @@ - - - - -{#if visible} - - - - - - - -{/if} - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/TimeColumn.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/TimeColumn.svelte deleted file mode 100644 index 04e68b959..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/TimeColumn.svelte +++ /dev/null @@ -1,42 +0,0 @@ - - -
- {#each hours as hour} -
- {formatHour(hour)} -
- {/each} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/UnifiedBar.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/UnifiedBar.svelte deleted file mode 100644 index 1ed956733..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/UnifiedBar.svelte +++ /dev/null @@ -1,568 +0,0 @@ - - - -
- - {#if showCalendarLayers && unifiedBarStore.showCalendarToolbar} - - {/if} - - - {#if showCalendarLayers && unifiedBarStore.showTagStrip} -
- ({ - id: t.id, - name: t.name, - color: t.color || '#3b82f6', - }))} - selectedIds={settingsStore.selectedTagIds} - onToggle={(tagId) => settingsStore.toggleTagSelection(tagId)} - onClear={() => settingsStore.clearTagSelection()} - managementHref="/tags" - /> -
- {/if} - - - {#if showCalendarLayers && unifiedBarStore.showDateStrip} -
- -
- {/if} - - -
- - - - {#if showCalendarLayers} - - {/if} -
-
- - -{#if unifiedBarStore.isOverlayOpen} - -
- - -
-{/if} - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/UnifiedBarControls.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/UnifiedBarControls.svelte deleted file mode 100644 index b4385be68..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/UnifiedBarControls.svelte +++ /dev/null @@ -1,422 +0,0 @@ - - - -
- -
- - - - - -
- - - {#if currentMode === 'expanded'} -
-
- - - - - - - -
- -
- - - - - -
-
- {/if} - - -
-
-
-
-
-
-
- - - {#if currentMode === 'collapsed'} - Zusammengklappt - {:else if currentMode === 'expanded'} - Erweitert - {:else if currentMode === 'overlay'} - Menü offen - {/if} - -
-
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewCarousel.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewCarousel.svelte deleted file mode 100644 index 52fab9d06..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewCarousel.svelte +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewModePill.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewModePill.svelte deleted file mode 100644 index 8f02a3153..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewModePill.svelte +++ /dev/null @@ -1,148 +0,0 @@ - - - -
- {#each enabledViews as view} - - {/each} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewsBar.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewsBar.svelte deleted file mode 100644 index 82dfc7180..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/ViewsBar.svelte +++ /dev/null @@ -1,162 +0,0 @@ - - - -
-
-
- -
- -
- {#each enabledViews as view} - - {/each} -
-
-
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/calendar/WeekView.svelte b/apps/calendar/apps/web-archived/src/lib/components/calendar/WeekView.svelte deleted file mode 100644 index 19d77cf5a..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/calendar/WeekView.svelte +++ /dev/null @@ -1,946 +0,0 @@ - - -
- - {#if settingsStore.showWeekNumbers} -
- {$_('views.weekNumber')} - {weekNumber} -
- {/if} - - - - - -
- -
- {#each hours as hour} -
- {settingsStore.formatHour(hour)} -
- {/each} -
- - -
- {#each days as day, dayIndex} - -
- {#each hours as hour} -
- {/each} - - - {#each getBlockAllDayEventsForDay(day) as event (event.id)} - - {/each} - - - {#each getEventsForDay(day) as event (event.id)} - {@const isBeingDragged = - eventDragDrop.isDragging && eventDragDrop.draggedEvent?.id === event.id} - {@const isBeingResized = - eventDragDrop.isResizing && eventDragDrop.resizeEvent?.id === event.id} - {@const isCrossDayDrag = - isBeingDragged && - eventDragDrop.dragTargetDay !== null && - !isSameDay(day, eventDragDrop.dragTargetDay)} - - {/each} - - - {#if eventDragDrop.isDragging && eventDragDrop.draggedEvent && eventDragDrop.dragTargetDay && isSameDay(day, eventDragDrop.dragTargetDay) && !getEventsForDay(day).some((e) => e.id === eventDragDrop.draggedEvent!.id)} - - {/if} - - - {#if dragToCreate.isCreating && dragToCreate.createTargetDay && isSameDay(day, dragToCreate.createTargetDay)} -
- {dragToCreate.getCreatePreviewTime()} - (Neuer Termin) -
- {/if} - - - {#if true} - {@const overflow = getOverflowEventsForDay(day)} - {#if overflow.before.length > 0} -
- {#each overflow.before as event} -
- {/each} -
- {/if} - {#if overflow.after.length > 0} -
- {#each overflow.after as event} -
- {/each} -
- {/if} - {/if} - - - {#if isToday(day)} -
- {settingsStore.formatTime(timeIndicator.now)} -
- {/if} -
- {/each} -
-
-
- - -{#if birthdayPopover.selectedBirthday} - -{/if} - - { - contextMenuVisible = false; - contextMenuEvent = null; - }} -/> - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/event/AttendeeSelector.svelte b/apps/calendar/apps/web-archived/src/lib/components/event/AttendeeSelector.svelte deleted file mode 100644 index ab0e94869..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/event/AttendeeSelector.svelte +++ /dev/null @@ -1,266 +0,0 @@ - - -
- - {#if attendees.length > 0} -
- {#each attendees as attendee (attendee.email)} -
- - -
-
- {attendee.name || attendee.email} -
- {#if attendee.name && attendee.email} -
- {attendee.email} -
- {/if} - {#if attendee.company} -
- {attendee.company} -
- {/if} -
- - -
- - - {#if showStatusDropdown === attendee.email} -
- {#each statusOptions as option (option.value)} - - {/each} -
- {/if} -
- - - -
- {/each} -
- {/if} - - - -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/event/EventDetailModal.svelte b/apps/calendar/apps/web-archived/src/lib/components/event/EventDetailModal.svelte deleted file mode 100644 index 42f744c31..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/event/EventDetailModal.svelte +++ /dev/null @@ -1,695 +0,0 @@ - - - - - (showRecurrenceDialog = false)} -/> - - - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/event/EventForm.svelte b/apps/calendar/apps/web-archived/src/lib/components/event/EventForm.svelte deleted file mode 100644 index 25f494e50..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/event/EventForm.svelte +++ /dev/null @@ -1,512 +0,0 @@ - - -
-
- - -
- -
- Kalender - {#if calendarsCtx.value.length > 0} - (calendarId = typeof v === 'string' ? v : '')} - placeholder="Kalender wählen" - /> - {:else} -

Standardkalender wird automatisch erstellt

- {/if} -
- -
- -
- - {#if isAllDay} -
- Anzeigeart - (allDayDisplayMode = (v as 'default' | 'header' | 'block') || 'default')} - placeholder="Anzeigeart wählen" - /> -
- {/if} - -
-
- - -
- {#if !isAllDay} -
- - -
- {/if} -
- -
-
- - -
- {#if !isAllDay} -
- - -
- {/if} -
- - - { - recurrenceRule = rule; - recurrenceEndDate = endDt; - }} - /> - - - (reminderDrafts = drafts)} - /> - -
- - - - - - - - {#if showLocationDetails} -
-
- - -
- -
-
- - -
-
- - -
-
- -
- - -
-
- {/if} -
- -
- - -
- - - {#if availableTags.length > 0} -
- Tags - -
- {/if} - - -
- Verantwortliche Person - (responsiblePerson = person)} - /> -
- - -
- Teilnehmer - (attendees = newAttendees)} - /> -
- -
- - -
- diff --git a/apps/calendar/apps/web-archived/src/lib/components/event/QuickEventOverlay.svelte b/apps/calendar/apps/web-archived/src/lib/components/event/QuickEventOverlay.svelte deleted file mode 100644 index a6dd0c635..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/event/QuickEventOverlay.svelte +++ /dev/null @@ -1,1816 +0,0 @@ - - - - - (showRecurrenceDialog = false)} -/> - - - - - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/event/RecurrenceEditDialog.svelte b/apps/calendar/apps/web-archived/src/lib/components/event/RecurrenceEditDialog.svelte deleted file mode 100644 index 531aec7f7..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/event/RecurrenceEditDialog.svelte +++ /dev/null @@ -1,109 +0,0 @@ - - - -
- - - - - -
- - {#snippet footer()} - - {/snippet} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/event/RecurrenceSelector.svelte b/apps/calendar/apps/web-archived/src/lib/components/event/RecurrenceSelector.svelte deleted file mode 100644 index 17d8595ef..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/event/RecurrenceSelector.svelte +++ /dev/null @@ -1,306 +0,0 @@ - - -
-
- - Wiederholung -
- - - - {#if showCustom} -
-
- - - -
- - {#if pattern.frequency === 'WEEKLY'} -
- -
- {#each weekdays as day} - - {/each} -
-
- {/if} - -
- - -
-
- {/if} - - {#if recurrenceRule} -

{currentDescription}

- {/if} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/event/ReminderSelector.svelte b/apps/calendar/apps/web-archived/src/lib/components/event/ReminderSelector.svelte deleted file mode 100644 index 6c6243bb3..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/event/ReminderSelector.svelte +++ /dev/null @@ -1,383 +0,0 @@ - - -
-
- - Erinnerungen -
- - {#if isSavedEvent} - - {#if displayReminders.length === 0} -

Keine Erinnerungen

- {/if} - - {#each displayReminders as reminder (reminder.id)} -
-
- {getLabel(reminder.minutesBefore)} -
- {#if reminder.notifyPush} - - - - {/if} - {#if reminder.notifyEmail} - - - - {/if} -
- {#if reminder.status === 'sent'} - Gesendet - {:else if reminder.status === 'failed'} - Fehlgeschlagen - {/if} -
- -
- {/each} - - -
- -
- {:else} - - {#each drafts as draft, index} -
-
- - - -
- -
- {/each} - - - {/if} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/event/ResponsiblePersonSelector.svelte b/apps/calendar/apps/web-archived/src/lib/components/event/ResponsiblePersonSelector.svelte deleted file mode 100644 index 14f3b12b6..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/event/ResponsiblePersonSelector.svelte +++ /dev/null @@ -1,209 +0,0 @@ - - -
- {#if responsiblePerson} - -
- - -
-
- {responsiblePerson.name || responsiblePerson.email} -
- {#if responsiblePerson.name && responsiblePerson.email} -
- {responsiblePerson.email} -
- {/if} - {#if responsiblePerson.company} -
- {responsiblePerson.company} -
- {/if} -
- - - {#if responsiblePerson.contactId} - - {/if} - - - -
- {:else if showSelector} - - - - {:else} - - - {/if} -
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/settings/CalendarManagement.svelte b/apps/calendar/apps/web-archived/src/lib/components/settings/CalendarManagement.svelte deleted file mode 100644 index ed352d35a..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/settings/CalendarManagement.svelte +++ /dev/null @@ -1,501 +0,0 @@ - - -
-
- -
- - {#if showNewCalendarForm} -
-
{ - e.preventDefault(); - handleCreateCalendar(); - }} - > -
- - -
-
- - -
-
-
- {/if} - -
- {#each calendars as calendar} - {#if editingCalendar?.id === calendar.id} -
-
{ - e.preventDefault(); - handleUpdateCalendar(); - }} - > -
-
- - -
- -
- -
- - {editColor} -
-
-
- - - -
- - -
-
-
- {:else} -
-
- - {calendar.name} - {#if calendar.isDefault} - {$_('settings.default')} - {/if} -
-
- - {#if !calendar.isDefault} - - {/if} -
-
- {/if} - {/each} - - {#if calendars.length === 0} -
-

{$_('settings.noCalendars')}

-
- {/if} -
-
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/settings/SettingsModal.svelte b/apps/calendar/apps/web-archived/src/lib/components/settings/SettingsModal.svelte deleted file mode 100644 index 8990caeb9..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/settings/SettingsModal.svelte +++ /dev/null @@ -1,705 +0,0 @@ - - - - -{#if visible} - - - - - - - -{/if} - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/skeletons/AgendaSkeleton.svelte b/apps/calendar/apps/web-archived/src/lib/components/skeletons/AgendaSkeleton.svelte deleted file mode 100644 index ca4b77da6..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/skeletons/AgendaSkeleton.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - -
- - {#each Array(4) as _, groupIndex} -
- -
- -
- - - {#each Array(groupIndex === 0 ? 3 : 2) as _, eventIndex} -
- - - - -
- - - - - - {#if eventIndex === 0} - - {/if} -
-
- {/each} -
- {/each} -
diff --git a/apps/calendar/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte b/apps/calendar/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte deleted file mode 100644 index a46eb0b57..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/skeletons/AppLoadingSkeleton.svelte +++ /dev/null @@ -1,55 +0,0 @@ - - -
-
- -
- - -
- - -
- -
- -
- - -
-
- - -
- {#each Array(7) as _} - - {/each} -
- - -
- {#each Array(35) as _, i} -
- -
- {/each} -
-
- - -
- -
-
-
diff --git a/apps/calendar/apps/web-archived/src/lib/components/skeletons/CalendarViewSkeleton.svelte b/apps/calendar/apps/web-archived/src/lib/components/skeletons/CalendarViewSkeleton.svelte deleted file mode 100644 index d48b95c7f..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/skeletons/CalendarViewSkeleton.svelte +++ /dev/null @@ -1,149 +0,0 @@ - - -
- -
- -
- - - {#each days as _, dayIndex} -
- - -
- {/each} -
- - -
- -
- {#each hours as _, hourIndex} -
- -
- {/each} -
- - - {#each days as _, dayIndex} -
- {#each hours as _, hourIndex} -
- {/each} - - - {#if dayIndex === 1} -
- -
- {/if} - {#if dayIndex === 2} -
- -
- {/if} - {#if dayIndex === 3} -
- -
- {/if} - {#if dayIndex === 4} -
- -
-
- -
- {/if} - {#if dayIndex === 5} -
- -
- {/if} -
- {/each} -
-
- - diff --git a/apps/calendar/apps/web-archived/src/lib/components/skeletons/EventDetailSkeleton.svelte b/apps/calendar/apps/web-archived/src/lib/components/skeletons/EventDetailSkeleton.svelte deleted file mode 100644 index c0a68389a..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/skeletons/EventDetailSkeleton.svelte +++ /dev/null @@ -1,75 +0,0 @@ - - -
- -
- -
- - -
-
- - -
- -
- - -
-
- - -
- -
- - -
-
- - -
- -
- - -
-
- - -
- -
- -
- - - -
-
-
- - -
- -
- -
- {#each Array(3) as _, i} -
- - -
- {/each} -
-
-
-
diff --git a/apps/calendar/apps/web-archived/src/lib/components/skeletons/RedirectSkeleton.svelte b/apps/calendar/apps/web-archived/src/lib/components/skeletons/RedirectSkeleton.svelte deleted file mode 100644 index db8130ed8..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/skeletons/RedirectSkeleton.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - -
- - -
diff --git a/apps/calendar/apps/web-archived/src/lib/components/skeletons/index.ts b/apps/calendar/apps/web-archived/src/lib/components/skeletons/index.ts deleted file mode 100644 index 032422277..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/skeletons/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Calendar App Skeleton Components - * - * App-specific skeleton loaders that match the exact layout of calendar components. - * Built on top of @manacore/shared-ui skeleton primitives. - */ - -// App Loading Skeleton -export { default as AppLoadingSkeleton } from './AppLoadingSkeleton.svelte'; - -// Agenda Skeleton -export { default as AgendaSkeleton } from './AgendaSkeleton.svelte'; - -// Event Detail Skeleton -export { default as EventDetailSkeleton } from './EventDetailSkeleton.svelte'; - -// Redirect Skeleton -export { default as RedirectSkeleton } from './RedirectSkeleton.svelte'; - -// Calendar View Skeleton -export { default as CalendarViewSkeleton } from './CalendarViewSkeleton.svelte'; diff --git a/apps/calendar/apps/web-archived/src/lib/components/tags/index.ts b/apps/calendar/apps/web-archived/src/lib/components/tags/index.ts deleted file mode 100644 index 8e217ea36..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/tags/index.ts +++ /dev/null @@ -1 +0,0 @@ -// Tag components (tag groups removed - flat tag list only) diff --git a/apps/calendar/apps/web-archived/src/lib/components/voice/VoiceRecordButton.svelte b/apps/calendar/apps/web-archived/src/lib/components/voice/VoiceRecordButton.svelte deleted file mode 100644 index 9253b1870..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/voice/VoiceRecordButton.svelte +++ /dev/null @@ -1,223 +0,0 @@ - - -{#if isSupported} - - - - {#if hasError && errorMessage} - - {/if} -{/if} - - diff --git a/apps/calendar/apps/web-archived/src/lib/components/voice/VoiceRecordingModal.svelte b/apps/calendar/apps/web-archived/src/lib/components/voice/VoiceRecordingModal.svelte deleted file mode 100644 index 6bdb147e4..000000000 --- a/apps/calendar/apps/web-archived/src/lib/components/voice/VoiceRecordingModal.svelte +++ /dev/null @@ -1,345 +0,0 @@ - - - - -{#if isVisible} - -
- - - -{/if} - - diff --git a/apps/calendar/apps/web-archived/src/lib/composables/index.ts b/apps/calendar/apps/web-archived/src/lib/composables/index.ts deleted file mode 100644 index c03549eec..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Calendar Composables - * Reusable logic extracted from components - */ - -// Visible hours and time indicator -export { useVisibleHours, useCurrentTimeIndicator } from './useVisibleHours.svelte'; - -// Event drag/drop and resize (comprehensive composable) -export { - useEventDragDrop, - type EventDragDropConfig, - type EventDragState, - type EventResizeState, -} from './useEventDragDrop.svelte'; - -// Drag-to-create -export { useDragToCreate, type DragToCreateConfig } from './useDragToCreate.svelte'; - -// Keyboard handling -export { useCalendarKeyboard, type CancellableOperation } from './useCalendarKeyboard.svelte'; - -// Swipe navigation (carousel gesture handling) -export { useSwipeNavigation, type SwipeNavigationConfig } from './useSwipeNavigation.svelte'; - -// Birthday popover management -export { useBirthdayPopover } from './useBirthdayPopover.svelte'; diff --git a/apps/calendar/apps/web-archived/src/lib/composables/useBirthdayPopover.svelte.ts b/apps/calendar/apps/web-archived/src/lib/composables/useBirthdayPopover.svelte.ts deleted file mode 100644 index 400e1b6ef..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/useBirthdayPopover.svelte.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Birthday Popover Composable - * Manages birthday popover state and handlers for calendar views - */ - -import type { BirthdayEvent } from '$lib/api/birthdays'; - -export function useBirthdayPopover() { - let selectedBirthday = $state(null); - let popoverPosition = $state<{ x: number; y: number }>({ x: 0, y: 0 }); - - /** - * Handle click on a birthday indicator to show the popover - */ - function handleBirthdayClick(birthday: BirthdayEvent, e: MouseEvent) { - e.stopPropagation(); - selectedBirthday = birthday; - popoverPosition = { x: e.clientX, y: e.clientY }; - } - - /** - * Close the birthday popover - */ - function closePopover() { - selectedBirthday = null; - } - - /** - * Check if popover is currently open - */ - function isOpen(): boolean { - return selectedBirthday !== null; - } - - return { - // State (reactive getters) - get selectedBirthday() { - return selectedBirthday; - }, - get popoverPosition() { - return popoverPosition; - }, - - // Methods - handleBirthdayClick, - closePopover, - isOpen, - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/composables/useCalendarKeyboard.svelte.ts b/apps/calendar/apps/web-archived/src/lib/composables/useCalendarKeyboard.svelte.ts deleted file mode 100644 index 3c229551d..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/useCalendarKeyboard.svelte.ts +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Calendar Keyboard Handling Composable - * Handles keyboard shortcuts for calendar views (e.g., Escape to cancel drag/resize) - */ - -export interface CancellableOperation { - /** Check if operation is active */ - isActive: () => boolean; - /** Cancel the operation */ - cancel: () => void; -} - -/** - * Creates a keyboard handler that cancels operations on Escape key - * Automatically sets up and cleans up the event listener via $effect - * - * @param operations - Array of operations that can be cancelled (e.g., drag/drop, resize) - */ -export function useCalendarKeyboard(operations: CancellableOperation[]) { - function handleKeyDown(e: KeyboardEvent) { - if (e.key === 'Escape') { - // Check if any operation is active - const activeOperation = operations.find((op) => op.isActive()); - if (activeOperation) { - e.preventDefault(); - activeOperation.cancel(); - } - } - } - - // Setup listener - call this in $effect - function setup() { - document.addEventListener('keydown', handleKeyDown); - return () => document.removeEventListener('keydown', handleKeyDown); - } - - return { - setup, - handleKeyDown, - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/composables/useDragToCreate.svelte.ts b/apps/calendar/apps/web-archived/src/lib/composables/useDragToCreate.svelte.ts deleted file mode 100644 index df55f23a4..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/useDragToCreate.svelte.ts +++ /dev/null @@ -1,171 +0,0 @@ -/** - * Drag-to-Create Composable - * Handles click-and-drag on the calendar grid to create new events - */ - -import { DEFAULT_EVENT_DURATION_MINUTES } from '$lib/utils/calendarConstants'; -import { formatTime, getSnapMinutes, getDayFromX, getMinutesFromY } from '$lib/utils/drag-helpers'; - -export interface DragToCreateConfig { - containerEl: HTMLElement | null; - days: Date[]; - firstVisibleHour: number; - lastVisibleHour: number; - totalVisibleHours: number; - hourHeight: number; - minutesToPercent: (minutes: number) => number; - snapMinutes?: number; - isOtherOperationActive: () => boolean; - onCreateEnd?: (startTime: Date, endTime: Date, position: { x: number; y: number }) => void; -} - -export function useDragToCreate(getConfig: () => DragToCreateConfig) { - let isCreating = $state(false); - let createTargetDay = $state(null); - let createStartMinutes = $state(0); - let createEndMinutes = $state(0); - let createPreviewTop = $state(0); - let createPreviewHeight = $state(0); - let hasMoved = $state(false); - - function dayFromX(clientX: number): Date | null { - const config = getConfig(); - return getDayFromX(clientX, config.containerEl, config.days); - } - - function minutesFromY(clientY: number): number { - const config = getConfig(); - return getMinutesFromY( - clientY, - config.containerEl, - config.totalVisibleHours, - config.hourHeight, - config.firstVisibleHour, - config.snapMinutes - ); - } - - function updatePreview() { - const config = getConfig(); - createPreviewTop = config.minutesToPercent(createStartMinutes); - const duration = createEndMinutes - createStartMinutes; - createPreviewHeight = (duration / (config.totalVisibleHours * 60)) * 100; - } - - function startCreate(e: PointerEvent) { - const config = getConfig(); - if (config.isOtherOperationActive()) return; - - // Don't start creating if clicking on interactive elements - const target = e.target as HTMLElement; - if ( - target.closest( - '.event-card, .task-block, .all-day-event, .all-day-block-event, .overflow-indicator, .resize-handle' - ) - ) { - return; - } - - e.preventDefault(); - - const day = dayFromX(e.clientX); - if (!day) return; - - const minutes = minutesFromY(e.clientY); - const snap = getSnapMinutes(config.snapMinutes); - const snappedMinutes = Math.round(minutes / snap) * snap; - - isCreating = true; - hasMoved = false; - createTargetDay = day; - createStartMinutes = snappedMinutes; - createEndMinutes = snappedMinutes + DEFAULT_EVENT_DURATION_MINUTES; - - updatePreview(); - - document.addEventListener('pointermove', handleCreateMove); - document.addEventListener('pointerup', handleCreateEnd); - } - - function handleCreateMove(e: PointerEvent) { - if (!isCreating) return; - - hasMoved = true; - const config = getConfig(); - const snap = getSnapMinutes(config.snapMinutes); - - const day = dayFromX(e.clientX); - if (day) createTargetDay = day; - - const minutes = minutesFromY(e.clientY); - const snappedMinutes = Math.round(minutes / snap) * snap; - - if (snappedMinutes >= createStartMinutes) { - createEndMinutes = Math.max(snappedMinutes, createStartMinutes + snap); - } else { - createEndMinutes = createStartMinutes + snap; - createStartMinutes = snappedMinutes; - } - - createStartMinutes = Math.max(config.firstVisibleHour * 60, createStartMinutes); - createEndMinutes = Math.min(config.lastVisibleHour * 60, createEndMinutes); - - updatePreview(); - } - - function handleCreateEnd(e: PointerEvent) { - document.removeEventListener('pointermove', handleCreateMove); - document.removeEventListener('pointerup', handleCreateEnd); - - if (!isCreating || !createTargetDay) { - isCreating = false; - return; - } - - const startTime = new Date(createTargetDay); - startTime.setHours(Math.floor(createStartMinutes / 60), createStartMinutes % 60, 0, 0); - - const endTime = new Date(createTargetDay); - endTime.setHours(Math.floor(createEndMinutes / 60), createEndMinutes % 60, 0, 0); - - isCreating = false; - createTargetDay = null; - hasMoved = false; - - const config = getConfig(); - config.onCreateEnd?.(startTime, endTime, { x: e.clientX, y: e.clientY }); - } - - function getCreatePreviewTime(): string { - return `${formatTime(Math.floor(createStartMinutes / 60), createStartMinutes % 60)} - ${formatTime(Math.floor(createEndMinutes / 60), createEndMinutes % 60)}`; - } - - function cancel() { - if (isCreating) { - document.removeEventListener('pointermove', handleCreateMove); - document.removeEventListener('pointerup', handleCreateEnd); - isCreating = false; - createTargetDay = null; - hasMoved = false; - } - } - - return { - get isCreating() { - return isCreating; - }, - get createTargetDay() { - return createTargetDay; - }, - get createPreviewTop() { - return createPreviewTop; - }, - get createPreviewHeight() { - return createPreviewHeight; - }, - - startCreate, - cancel, - getCreatePreviewTime, - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/composables/useDragToCreate.test.ts b/apps/calendar/apps/web-archived/src/lib/composables/useDragToCreate.test.ts deleted file mode 100644 index c3176825c..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/useDragToCreate.test.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; - -// Polyfill PointerEvent for jsdom -if (typeof globalThis.PointerEvent === 'undefined') { - globalThis.PointerEvent = class PointerEvent extends MouseEvent { - constructor(type: string, params: PointerEventInit = {}) { - super(type, params); - } - } as unknown as typeof PointerEvent; -} - -vi.mock('$lib/utils/calendarConstants', () => ({ - SNAP_INTERVAL_MINUTES: 15, - DEFAULT_EVENT_DURATION_MINUTES: 30, -})); - -import { useDragToCreate } from './useDragToCreate.svelte'; - -function createMockContainer() { - return { - getBoundingClientRect: () => ({ - left: 0, - top: 0, - right: 700, - bottom: 960, - width: 700, - height: 960, - }), - parentElement: { scrollTop: 0 }, - } as unknown as HTMLElement; -} - -function makeDays(): Date[] { - return Array.from({ length: 7 }, (_, i) => { - const d = new Date('2026-03-02'); - d.setDate(d.getDate() + i); - return d; - }); -} - -function minutesToPercent(minutes: number): number { - const firstHour = 0; - const totalHours = 24; - const adjusted = minutes - firstHour * 60; - return (adjusted / (totalHours * 60)) * 100; -} - -describe('useDragToCreate', () => { - let onCreateEnd: ReturnType; - - function createInstance(overrides = {}) { - const container = createMockContainer(); - onCreateEnd = vi.fn(); - return useDragToCreate(() => ({ - containerEl: container, - days: makeDays(), - firstVisibleHour: 0, - lastVisibleHour: 24, - totalVisibleHours: 24, - hourHeight: 40, - minutesToPercent, - isOtherOperationActive: () => false, - onCreateEnd, - ...overrides, - })); - } - - it('should start in idle state', () => { - const dtc = createInstance(); - expect(dtc.isCreating).toBe(false); - expect(dtc.createTargetDay).toBeNull(); - }); - - it('should not start create if other operation is active', () => { - const dtc = createInstance({ isOtherOperationActive: () => true }); - const target = document.createElement('div'); - const event = new PointerEvent('pointerdown', { clientX: 100, clientY: 200 }); - Object.defineProperty(event, 'target', { value: target }); - dtc.startCreate(event); - expect(dtc.isCreating).toBe(false); - }); - - it('should cancel on cancel()', () => { - const dtc = createInstance(); - const target = document.createElement('div'); - const event = new PointerEvent('pointerdown', { clientX: 100, clientY: 200 }); - Object.defineProperty(event, 'target', { value: target }); - dtc.startCreate(event); - dtc.cancel(); - expect(dtc.isCreating).toBe(false); - expect(dtc.createTargetDay).toBeNull(); - }); - - it('should generate correct preview time format', () => { - const dtc = createInstance(); - // getCreatePreviewTime uses internal state, returns HH:MM - HH:MM format - const time = dtc.getCreatePreviewTime(); - expect(time).toMatch(/^\d{2}:\d{2} - \d{2}:\d{2}$/); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/composables/useEventDragDrop.svelte.ts b/apps/calendar/apps/web-archived/src/lib/composables/useEventDragDrop.svelte.ts deleted file mode 100644 index e31c2f93f..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/useEventDragDrop.svelte.ts +++ /dev/null @@ -1,427 +0,0 @@ -/** - * Event Drag & Drop + Resize Composable - * Extracts duplicated drag/resize logic from WeekView, DayView, MultiDayView - */ - -import type { CalendarEvent } from '@calendar/shared'; -import { differenceInMinutes, addMinutes, setHours, setMinutes } from 'date-fns'; -import { toDate } from '$lib/utils/eventDateHelpers'; -import { eventsStore } from '$lib/stores/events.svelte'; -import { formatTime, getDayFromX, getMinutesFromY } from '$lib/utils/drag-helpers'; - -export interface EventDragDropConfig { - /** Reference to the container element for position calculations */ - containerEl: HTMLElement | null; - /** Array of visible days (for multi-day views) or single day (for day view) */ - days: Date[]; - /** First visible hour (for filtered hours mode) */ - firstVisibleHour: number; - /** Last visible hour (for filtered hours mode) */ - lastVisibleHour: number; - /** Total visible hours */ - totalVisibleHours: number; - /** Height of one hour in pixels */ - hourHeight: number; - /** Minutes per snap interval (default: 15) */ - snapMinutes?: number; - /** Function to convert minutes to percentage position */ - minutesToPercent: (minutes: number) => number; -} - -export interface EventDragState { - isDragging: boolean; - draggedEvent: CalendarEvent | null; - dragTargetDay: Date | null; - dragPreviewTop: number; - dragPreviewHeight: number; - hasMoved: boolean; -} - -export interface EventResizeState { - isResizing: boolean; - resizeEvent: CalendarEvent | null; - resizeEdge: 'top' | 'bottom'; - resizePreviewTop: number; - resizePreviewHeight: number; -} - -export function useEventDragDrop(getConfig: () => EventDragDropConfig) { - // ========== Drag State ========== - let isDragging = $state(false); - let draggedEvent = $state(null); - let dragOffsetMinutes = $state(0); - let dragTargetDay = $state(null); - let dragPreviewTop = $state(0); - let dragPreviewHeight = $state(0); - - // ========== Resize State ========== - let isResizing = $state(false); - let resizeEvent = $state(null); - let resizeEdge = $state<'top' | 'bottom'>('bottom'); - let resizeOriginalStart = $state(null); - let resizeOriginalEnd = $state(null); - let resizePreviewTop = $state(0); - let resizePreviewHeight = $state(0); - let resizeOffsetMinutes = $state(0); - - // Track if we actually moved during drag/resize (to prevent click on simple mousedown/up) - let hasMoved = $state(false); - - // ========== Helper Functions ========== - - function dayFromX(clientX: number): Date | null { - const config = getConfig(); - return getDayFromX(clientX, config.containerEl, config.days); - } - - function minutesFromY(clientY: number): number { - const config = getConfig(); - return getMinutesFromY( - clientY, - config.containerEl, - config.totalVisibleHours, - config.hourHeight, - config.firstVisibleHour, - config.snapMinutes - ); - } - - // ========== Drag Functions ========== - - function startDrag(event: CalendarEvent, e: PointerEvent) { - e.preventDefault(); - e.stopPropagation(); - - const config = getConfig(); - - isDragging = true; - draggedEvent = event; - hasMoved = false; - - const start = toDate(event.startTime); - const end = toDate(event.endTime); - const duration = differenceInMinutes(end, start); - - // Calculate initial preview position - const startMinutes = start.getHours() * 60 + start.getMinutes(); - dragPreviewTop = config.minutesToPercent(startMinutes); - dragPreviewHeight = (duration / (config.totalVisibleHours * 60)) * 100; - dragTargetDay = start; - - // Calculate offset from event start to click position - const clickMinutes = minutesFromY(e.clientY); - dragOffsetMinutes = clickMinutes - startMinutes; - - document.addEventListener('pointermove', handleDragMove); - document.addEventListener('pointerup', handleDragEnd); - } - - function handleDragMove(e: PointerEvent) { - if (!isDragging || !draggedEvent) return; - - const config = getConfig(); - hasMoved = true; - - // Calculate new position - const newDay = dayFromX(e.clientX); - const newMinutes = minutesFromY(e.clientY) - dragOffsetMinutes; - - // Clamp to valid range - const clampedMinutes = Math.max( - config.firstVisibleHour * 60, - Math.min(config.lastVisibleHour * 60 - 15, newMinutes) - ); - - // Update preview - dragPreviewTop = config.minutesToPercent(clampedMinutes); - if (newDay) { - dragTargetDay = newDay; - } - } - - async function handleDragEnd(e: PointerEvent) { - document.removeEventListener('pointermove', handleDragMove); - document.removeEventListener('pointerup', handleDragEnd); - - if (!isDragging || !draggedEvent || !dragTargetDay || !hasMoved) { - cleanupDrag(); - return; - } - - const start = toDate(draggedEvent.startTime); - const end = toDate(draggedEvent.endTime); - const duration = differenceInMinutes(end, start); - - // Calculate new start time - const newMinutes = minutesFromY(e.clientY) - dragOffsetMinutes; - const clampedMinutes = Math.max(0, Math.min(24 * 60 - 15, newMinutes)); - const newHours = Math.floor(clampedMinutes / 60); - const newMins = clampedMinutes % 60; - - let newStart = new Date(dragTargetDay); - newStart = setHours(newStart, newHours); - newStart = setMinutes(newStart, newMins); - - const newEnd = addMinutes(newStart, duration); - - // Update event via store - if (eventsStore.isDraftEvent(draggedEvent.id)) { - eventsStore.updateDraftEvent({ - startTime: newStart.toISOString(), - endTime: newEnd.toISOString(), - }); - } else { - await eventsStore.updateEvent(draggedEvent.id, { - startTime: newStart.toISOString(), - endTime: newEnd.toISOString(), - }); - } - - cleanupDrag(); - } - - function cleanupDrag() { - isDragging = false; - draggedEvent = null; - dragTargetDay = null; - hasMoved = false; - } - - // ========== Resize Functions ========== - - function startResize(event: CalendarEvent, edge: 'top' | 'bottom', e: PointerEvent) { - e.preventDefault(); - e.stopPropagation(); - - const config = getConfig(); - - isResizing = true; - resizeEvent = event; - resizeEdge = edge; - hasMoved = false; - - const start = toDate(event.startTime); - const end = toDate(event.endTime); - - resizeOriginalStart = start; - resizeOriginalEnd = end; - - // Set initial preview - const startMinutes = start.getHours() * 60 + start.getMinutes(); - const endMinutes = end.getHours() * 60 + end.getMinutes(); - const duration = differenceInMinutes(end, start); - resizePreviewTop = config.minutesToPercent(startMinutes); - resizePreviewHeight = (duration / (config.totalVisibleHours * 60)) * 100; - - // Calculate offset between snapped click position and actual event boundary - const clickMinutes = minutesFromY(e.clientY); - if (edge === 'top') { - resizeOffsetMinutes = clickMinutes - startMinutes; - } else { - resizeOffsetMinutes = clickMinutes - endMinutes; - } - - document.addEventListener('pointermove', handleResizeMove); - document.addEventListener('pointerup', handleResizeEnd); - } - - function handleResizeMove(e: PointerEvent) { - if (!isResizing || !resizeEvent || !resizeOriginalStart || !resizeOriginalEnd) return; - - const config = getConfig(); - hasMoved = true; - - const currentMinutes = minutesFromY(e.clientY); - // Apply offset to prevent jumping when drag starts - const adjustedMinutes = currentMinutes - resizeOffsetMinutes; - const originalStartMinutes = - resizeOriginalStart.getHours() * 60 + resizeOriginalStart.getMinutes(); - const originalEndMinutes = resizeOriginalEnd.getHours() * 60 + resizeOriginalEnd.getMinutes(); - - if (resizeEdge === 'bottom') { - // Resize from bottom - change end time - const newEndMinutes = Math.max( - originalStartMinutes + 15, - Math.min(config.lastVisibleHour * 60, adjustedMinutes) - ); - const newDuration = newEndMinutes - originalStartMinutes; - resizePreviewHeight = (newDuration / (config.totalVisibleHours * 60)) * 100; - } else { - // Resize from top - change start time - const newStartMinutes = Math.max( - config.firstVisibleHour * 60, - Math.min(originalEndMinutes - 15, adjustedMinutes) - ); - const newDuration = originalEndMinutes - newStartMinutes; - resizePreviewTop = config.minutesToPercent(newStartMinutes); - resizePreviewHeight = (newDuration / (config.totalVisibleHours * 60)) * 100; - } - } - - async function handleResizeEnd(e: PointerEvent) { - document.removeEventListener('pointermove', handleResizeMove); - document.removeEventListener('pointerup', handleResizeEnd); - - if (!isResizing || !resizeEvent || !resizeOriginalStart || !resizeOriginalEnd || !hasMoved) { - cleanupResize(); - return; - } - - const config = getConfig(); - const currentMinutes = minutesFromY(e.clientY); - // Apply offset to prevent jumping - const adjustedMinutes = currentMinutes - resizeOffsetMinutes; - const originalStartMinutes = - resizeOriginalStart.getHours() * 60 + resizeOriginalStart.getMinutes(); - const originalEndMinutes = resizeOriginalEnd.getHours() * 60 + resizeOriginalEnd.getMinutes(); - - let newStart = resizeOriginalStart; - let newEnd = resizeOriginalEnd; - - if (resizeEdge === 'bottom') { - const newEndMinutes = Math.max( - originalStartMinutes + 15, - Math.min(config.lastVisibleHour * 60, adjustedMinutes) - ); - const newHours = Math.floor(newEndMinutes / 60); - const newMins = newEndMinutes % 60; - newEnd = setHours(new Date(resizeOriginalEnd), newHours); - newEnd = setMinutes(newEnd, newMins); - } else { - const newStartMinutes = Math.max( - config.firstVisibleHour * 60, - Math.min(originalEndMinutes - 15, adjustedMinutes) - ); - const newHours = Math.floor(newStartMinutes / 60); - const newMins = newStartMinutes % 60; - newStart = setHours(new Date(resizeOriginalStart), newHours); - newStart = setMinutes(newStart, newMins); - } - - // Update event via store - if (eventsStore.isDraftEvent(resizeEvent.id)) { - eventsStore.updateDraftEvent({ - startTime: newStart.toISOString(), - endTime: newEnd.toISOString(), - }); - } else { - await eventsStore.updateEvent(resizeEvent.id, { - startTime: newStart.toISOString(), - endTime: newEnd.toISOString(), - }); - } - - cleanupResize(); - } - - function cleanupResize() { - isResizing = false; - resizeEvent = null; - resizeOriginalStart = null; - resizeOriginalEnd = null; - resizeOffsetMinutes = 0; - hasMoved = false; - } - - // ========== Combined Cleanup ========== - - function cleanup() { - document.removeEventListener('pointermove', handleDragMove); - document.removeEventListener('pointerup', handleDragEnd); - document.removeEventListener('pointermove', handleResizeMove); - document.removeEventListener('pointerup', handleResizeEnd); - cleanupDrag(); - cleanupResize(); - } - - /** - * Cancel any active drag/resize operation (e.g., on Escape key) - */ - function cancel() { - if (isDragging || isResizing) { - cleanup(); - } - } - - /** - * Get formatted time range during resize preview - */ - function getResizePreviewTime(): string { - if (!resizeEvent || !resizeOriginalStart || !resizeOriginalEnd) return ''; - - const config = getConfig(); - const origStartMinutes = resizeOriginalStart.getHours() * 60 + resizeOriginalStart.getMinutes(); - const origEndMinutes = resizeOriginalEnd.getHours() * 60 + resizeOriginalEnd.getMinutes(); - - const previewStartMinutes = - (resizePreviewTop / 100) * config.totalVisibleHours * 60 + config.firstVisibleHour * 60; - const previewEndMinutes = - previewStartMinutes + (resizePreviewHeight / 100) * config.totalVisibleHours * 60; - - let startMin: number; - let endMin: number; - - if (resizeEdge === 'top') { - startMin = Math.round(previewStartMinutes); - endMin = origEndMinutes; - } else { - startMin = origStartMinutes; - endMin = Math.round(previewEndMinutes); - } - - return `${formatTime(Math.floor(startMin / 60), startMin % 60)} - ${formatTime(Math.floor(endMin / 60), endMin % 60)}`; - } - - return { - // Drag state (reactive getters) - get isDragging() { - return isDragging; - }, - get draggedEvent() { - return draggedEvent; - }, - get dragTargetDay() { - return dragTargetDay; - }, - get dragPreviewTop() { - return dragPreviewTop; - }, - get dragPreviewHeight() { - return dragPreviewHeight; - }, - - // Resize state (reactive getters) - get isResizing() { - return isResizing; - }, - get resizeEvent() { - return resizeEvent; - }, - get resizeEdge() { - return resizeEdge; - }, - get resizePreviewTop() { - return resizePreviewTop; - }, - get resizePreviewHeight() { - return resizePreviewHeight; - }, - - // Shared state - get hasMoved() { - return hasMoved; - }, - - // Reset hasMoved after click handling - resetHasMoved() { - hasMoved = false; - }, - - // Methods - startDrag, - startResize, - cancel, - cleanup, - getResizePreviewTime, - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/composables/useEventDragDrop.test.ts b/apps/calendar/apps/web-archived/src/lib/composables/useEventDragDrop.test.ts deleted file mode 100644 index 5cdf8bed2..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/useEventDragDrop.test.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; - -// Polyfill PointerEvent for jsdom -if (typeof globalThis.PointerEvent === 'undefined') { - globalThis.PointerEvent = class PointerEvent extends MouseEvent { - constructor(type: string, params: PointerEventInit = {}) { - super(type, params); - } - } as unknown as typeof PointerEvent; -} - -vi.mock('$lib/utils/eventDateHelpers', () => ({ - toDate: (d: string | Date) => new Date(d), -})); - -vi.mock('$lib/stores/events.svelte', () => ({ - eventsStore: { - isDraftEvent: vi.fn(() => false), - updateDraftEvent: vi.fn(), - updateEvent: vi.fn().mockResolvedValue({ data: {}, error: null }), - }, -})); - -vi.mock('$lib/utils/calendarConstants', () => ({ - SNAP_INTERVAL_MINUTES: 15, -})); - -import { useEventDragDrop } from './useEventDragDrop.svelte'; - -function createMockContainer() { - return { - getBoundingClientRect: () => ({ - left: 0, - top: 0, - right: 700, - bottom: 960, - width: 700, - height: 960, - }), - parentElement: { scrollTop: 0 }, - } as unknown as HTMLElement; -} - -function makeDays(): Date[] { - return Array.from({ length: 7 }, (_, i) => { - const d = new Date('2026-03-02'); - d.setDate(d.getDate() + i); - return d; - }); -} - -function minutesToPercent(minutes: number): number { - return (minutes / (24 * 60)) * 100; -} - -function makeConfig() { - return { - containerEl: createMockContainer(), - days: makeDays(), - firstVisibleHour: 0, - lastVisibleHour: 24, - totalVisibleHours: 24, - hourHeight: 40, - minutesToPercent, - }; -} - -describe('useEventDragDrop', () => { - it('should start in idle state', () => { - const dd = useEventDragDrop(() => makeConfig()); - expect(dd.isDragging).toBe(false); - expect(dd.isResizing).toBe(false); - expect(dd.draggedEvent).toBeNull(); - expect(dd.resizeEvent).toBeNull(); - expect(dd.hasMoved).toBe(false); - }); - - it('should set isDragging when startDrag is called', () => { - const dd = useEventDragDrop(() => makeConfig()); - const event = { - id: 'evt-1', - startTime: '2026-03-02T10:00:00', - endTime: '2026-03-02T11:00:00', - }; - const pointerEvent = new PointerEvent('pointerdown', { - clientX: 100, - clientY: 200, - }); - - dd.startDrag(event as any, pointerEvent); - - expect(dd.isDragging).toBe(true); - expect(dd.draggedEvent).toBeTruthy(); - expect(dd.draggedEvent!.id).toBe('evt-1'); - - // Cleanup - dd.cancel(); - }); - - it('should set isResizing when startResize is called', () => { - const dd = useEventDragDrop(() => makeConfig()); - const event = { - id: 'evt-1', - startTime: '2026-03-02T10:00:00', - endTime: '2026-03-02T11:00:00', - }; - const pointerEvent = new PointerEvent('pointerdown', { - clientX: 100, - clientY: 200, - }); - - dd.startResize(event as any, 'bottom', pointerEvent); - - expect(dd.isResizing).toBe(true); - expect(dd.resizeEvent).toBeTruthy(); - - dd.cancel(); - }); - - it('should reset all state on cancel', () => { - const dd = useEventDragDrop(() => makeConfig()); - const event = { - id: 'evt-1', - startTime: '2026-03-02T10:00:00', - endTime: '2026-03-02T11:00:00', - }; - const pointerEvent = new PointerEvent('pointerdown', { - clientX: 100, - clientY: 200, - }); - - dd.startDrag(event as any, pointerEvent); - expect(dd.isDragging).toBe(true); - - dd.cancel(); - expect(dd.isDragging).toBe(false); - expect(dd.draggedEvent).toBeNull(); - }); - - it('should reset hasMoved on resetHasMoved', () => { - const dd = useEventDragDrop(() => makeConfig()); - // hasMoved starts false - expect(dd.hasMoved).toBe(false); - dd.resetHasMoved(); - expect(dd.hasMoved).toBe(false); - }); - - it('should return empty string for getResizePreviewTime when not resizing', () => { - const dd = useEventDragDrop(() => makeConfig()); - expect(dd.getResizePreviewTime()).toBe(''); - }); - - it('should calculate preview positions on drag start', () => { - const dd = useEventDragDrop(() => makeConfig()); - const event = { - id: 'evt-1', - startTime: '2026-03-02T12:00:00', // noon - endTime: '2026-03-02T13:00:00', // 1pm - }; - const pointerEvent = new PointerEvent('pointerdown', { - clientX: 100, - clientY: 480, // middle of container - }); - - dd.startDrag(event as any, pointerEvent); - - // Preview top should be around 50% (12:00 = 720 min / 1440 min) - expect(dd.dragPreviewTop).toBeCloseTo(50, 0); - // Height should be ~4.17% (60 min / 1440 min) - expect(dd.dragPreviewHeight).toBeCloseTo(4.17, 0); - - dd.cancel(); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/composables/useSwipeNavigation.svelte.ts b/apps/calendar/apps/web-archived/src/lib/composables/useSwipeNavigation.svelte.ts deleted file mode 100644 index 82f181cd7..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/useSwipeNavigation.svelte.ts +++ /dev/null @@ -1,265 +0,0 @@ -/** - * Swipe Navigation Composable - * Extracts touch/wheel/velocity/snap/animation logic from ViewCarousel - */ - -export interface SwipeNavigationConfig { - /** Get current viewport width */ - getViewportWidth: () => number; - /** Navigate to previous page */ - onNavigatePrev: () => void; - /** Navigate to next page */ - onNavigateNext: () => void; - /** Whether swipe is disabled */ - disabled?: boolean; - /** Snap threshold as fraction of viewport width (default: 0.15) */ - snapThreshold?: number; - /** Velocity threshold in px/ms (default: 0.5) */ - velocityThreshold?: number; - /** Animation speed in px/ms (default: 3.0) */ - animationSpeed?: number; - /** Wheel debounce in ms (default: 50) */ - wheelDebounceMs?: number; -} - -export function useSwipeNavigation(getConfig: () => SwipeNavigationConfig) { - // Swipe tracking state - let offsetX = $state(0); - let startX = $state(0); - let isSwiping = $state(false); - let isAnimating = $state(false); - let animatingDirection: 'prev' | 'next' | null = null; - - // Velocity tracking - let lastX = 0; - let lastTime = 0; - let velocity = 0; - - // Animation frame tracking - let animationFrameId: number | null = null; - let pendingCallback: (() => void) | null = null; - - // Wheel debounce - let wheelDebounceTimer: ReturnType | null = null; - - function getDefaults() { - const config = getConfig(); - return { - snapThreshold: config.snapThreshold ?? 0.15, - velocityThreshold: config.velocityThreshold ?? 0.5, - animationSpeed: config.animationSpeed ?? 3.0, - wheelDebounceMs: config.wheelDebounceMs ?? 50, - }; - } - - function handleWheel(e: WheelEvent) { - const config = getConfig(); - if (config.disabled) return; - if (Math.abs(e.deltaX) <= Math.abs(e.deltaY)) return; - - const target = e.target as HTMLElement; - if (target.closest('[data-event-id]') || target.closest('[data-dragging]')) return; - - e.preventDefault(); - const viewportWidth = config.getViewportWidth(); - - if (isAnimating) { - const scrollDirection = e.deltaX < 0 ? 'next' : 'prev'; - if (scrollDirection === animatingDirection && Math.abs(e.deltaX) > 10) { - chainNavigation(scrollDirection); - } - return; - } - - offsetX += e.deltaX * -1; - offsetX = Math.max(-viewportWidth, Math.min(viewportWidth, offsetX)); - - const { wheelDebounceMs } = getDefaults(); - if (wheelDebounceTimer) clearTimeout(wheelDebounceTimer); - wheelDebounceTimer = setTimeout(snapToPage, wheelDebounceMs); - } - - function handleTouchStart(e: TouchEvent) { - const config = getConfig(); - if (config.disabled || isAnimating) return; - - const target = e.target as HTMLElement; - if (target.closest('[data-event-id]') || target.closest('[data-dragging]')) return; - - startX = e.touches[0].clientX; - lastX = startX; - lastTime = performance.now(); - velocity = 0; - isSwiping = true; - - if (wheelDebounceTimer) { - clearTimeout(wheelDebounceTimer); - wheelDebounceTimer = null; - } - } - - function handleTouchMove(e: TouchEvent) { - const config = getConfig(); - if (!isSwiping || config.disabled) return; - - const currentX = e.touches[0].clientX; - const currentTime = performance.now(); - const dt = currentTime - lastTime; - if (dt > 0) velocity = (currentX - lastX) / dt; - - lastX = currentX; - lastTime = currentTime; - - const viewportWidth = config.getViewportWidth(); - offsetX = currentX - startX; - offsetX = Math.max(-viewportWidth, Math.min(viewportWidth, offsetX)); - } - - function handleTouchEnd() { - if (!isSwiping) return; - isSwiping = false; - snapToPage(); - } - - function handleTouchCancel() { - if (!isSwiping) return; - isSwiping = false; - isAnimating = true; - animateToOffset(0, () => { - isAnimating = false; - }); - } - - function chainNavigation(direction: 'prev' | 'next') { - const config = getConfig(); - if (animationFrameId !== null) { - cancelAnimationFrame(animationFrameId); - animationFrameId = null; - } - - if (animatingDirection === 'prev') config.onNavigatePrev(); - else if (animatingDirection === 'next') config.onNavigateNext(); - - const viewportWidth = config.getViewportWidth(); - offsetX = direction === 'prev' ? viewportWidth * 0.4 : -viewportWidth * 0.4; - animatingDirection = direction; - - const targetOffset = direction === 'prev' ? viewportWidth : -viewportWidth; - pendingCallback = () => { - if (direction === 'prev') config.onNavigatePrev(); - else config.onNavigateNext(); - offsetX = 0; - isAnimating = false; - animatingDirection = null; - pendingCallback = null; - }; - - animateToOffset(targetOffset, pendingCallback); - } - - function snapToPage() { - const config = getConfig(); - const viewportWidth = config.getViewportWidth(); - if (isAnimating || viewportWidth === 0) return; - - const { snapThreshold, velocityThreshold } = getDefaults(); - const threshold = viewportWidth * snapThreshold; - const hasHighVelocity = Math.abs(velocity) > velocityThreshold; - - let targetPage: 'prev' | 'next' | 'current' = 'current'; - - if (offsetX > threshold || (hasHighVelocity && velocity > 0 && offsetX > 0)) { - targetPage = 'prev'; - } else if (offsetX < -threshold || (hasHighVelocity && velocity < 0 && offsetX < 0)) { - targetPage = 'next'; - } - - isAnimating = true; - animatingDirection = targetPage === 'current' ? null : targetPage; - - if (targetPage === 'prev') { - pendingCallback = () => { - config.onNavigatePrev(); - offsetX = 0; - isAnimating = false; - animatingDirection = null; - pendingCallback = null; - }; - animateToOffset(viewportWidth, pendingCallback); - } else if (targetPage === 'next') { - pendingCallback = () => { - config.onNavigateNext(); - offsetX = 0; - isAnimating = false; - animatingDirection = null; - pendingCallback = null; - }; - animateToOffset(-viewportWidth, pendingCallback); - } else { - pendingCallback = () => { - isAnimating = false; - animatingDirection = null; - pendingCallback = null; - }; - animateToOffset(0, pendingCallback); - } - } - - function animateToOffset(targetX: number, onComplete: () => void) { - if (animationFrameId !== null) { - cancelAnimationFrame(animationFrameId); - } - - const { animationSpeed } = getDefaults(); - const sX = offsetX; - const distance = targetX - sX; - const direction = Math.sign(distance); - - if (Math.abs(distance) < 1) { - offsetX = targetX; - onComplete(); - return; - } - - let lastFrameTime = performance.now(); - - function tick() { - const now = performance.now(); - const dt = now - lastFrameTime; - lastFrameTime = now; - - offsetX += animationSpeed * dt * direction; - - const reachedTarget = - (direction > 0 && offsetX >= targetX) || (direction < 0 && offsetX <= targetX); - - if (reachedTarget) { - offsetX = targetX; - animationFrameId = null; - onComplete(); - } else { - animationFrameId = requestAnimationFrame(tick); - } - } - - animationFrameId = requestAnimationFrame(tick); - } - - return { - get offsetX() { - return offsetX; - }, - get isSwiping() { - return isSwiping; - }, - get isAnimating() { - return isAnimating; - }, - - handleWheel, - handleTouchStart, - handleTouchMove, - handleTouchEnd, - handleTouchCancel, - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/composables/useVisibleHours.svelte.ts b/apps/calendar/apps/web-archived/src/lib/composables/useVisibleHours.svelte.ts deleted file mode 100644 index d823418cb..000000000 --- a/apps/calendar/apps/web-archived/src/lib/composables/useVisibleHours.svelte.ts +++ /dev/null @@ -1,102 +0,0 @@ -/** - * useVisibleHours Composable - * - * Provides hour filtering and time-to-position calculations for calendar views. - * Extracts common logic from WeekView, MultiDayView, and DayView. - */ - -import { settingsStore } from '$lib/stores/settings.svelte'; - -const ALL_HOURS = Array.from({ length: 24 }, (_, i) => i); - -/** - * Creates reactive hour visibility state and helper functions - */ -export function useVisibleHours() { - // Filtered hours based on settings - let hours = $derived( - settingsStore.filterHoursEnabled - ? ALL_HOURS.filter((h) => h >= settingsStore.dayStartHour && h < settingsStore.dayEndHour) - : ALL_HOURS - ); - - // Calculate visible hours range for positioning - let firstVisibleHour = $derived( - settingsStore.filterHoursEnabled ? settingsStore.dayStartHour : 0 - ); - - let lastVisibleHour = $derived(settingsStore.filterHoursEnabled ? settingsStore.dayEndHour : 24); - - let totalVisibleHours = $derived(lastVisibleHour - firstVisibleHour); - - /** - * Convert minutes (from midnight) to percentage position - * accounting for hidden hours when filtering is enabled - */ - function minutesToPercent(minutes: number): number { - const adjustedMinutes = minutes - firstVisibleHour * 60; - return (adjustedMinutes / (totalVisibleHours * 60)) * 100; - } - - /** - * Convert percentage position back to minutes (from midnight) - */ - function percentToMinutes(percent: number): number { - return (percent / 100) * (totalVisibleHours * 60) + firstVisibleHour * 60; - } - - /** - * Check if a time range overlaps with the visible hours range - */ - function isTimeRangeVisible(startMinutes: number, endMinutes: number): boolean { - const visibleStartMinutes = firstVisibleHour * 60; - const visibleEndMinutes = lastVisibleHour * 60; - return startMinutes < visibleEndMinutes && endMinutes > visibleStartMinutes; - } - - return { - get hours() { - return hours; - }, - get firstVisibleHour() { - return firstVisibleHour; - }, - get lastVisibleHour() { - return lastVisibleHour; - }, - get totalVisibleHours() { - return totalVisibleHours; - }, - minutesToPercent, - percentToMinutes, - isTimeRangeVisible, - }; -} - -/** - * Creates a reactive current time indicator - * Updates every minute and provides position calculation - */ -export function useCurrentTimeIndicator() { - let now = $state(new Date()); - - // Update current time every minute - $effect(() => { - const interval = setInterval(() => { - now = new Date(); - }, 60000); - return () => clearInterval(interval); - }); - - return { - get now() { - return now; - }, - /** - * Get current time as minutes from midnight - */ - get currentMinutes() { - return now.getHours() * 60 + now.getMinutes(); - }, - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/config/helpConfig.ts b/apps/calendar/apps/web-archived/src/lib/config/helpConfig.ts deleted file mode 100644 index acffe0f51..000000000 --- a/apps/calendar/apps/web-archived/src/lib/config/helpConfig.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { NavigationArrow, CalendarBlank } from '@manacore/shared-icons'; -import { - COMMON_SHORTCUTS, - COMMON_SYNTAX, - DEFAULT_LIVE_EXAMPLE, - type HelpModalConfig, - type ShortcutCategory, - type SyntaxGroup, -} from '@manacore/shared-ui'; - -/** - * Calendar-specific keyboard shortcuts - */ -const CALENDAR_SHORTCUTS: ShortcutCategory[] = [ - { - id: 'navigation', - title: 'Navigation', - icon: NavigationArrow, - shortcuts: [ - { - keys: ['Cmd', '1'], - altKeys: ['Ctrl', '1'], - description: 'Kalender öffnen', - category: 'navigation', - }, - { - keys: ['Cmd', '2'], - altKeys: ['Ctrl', '2'], - description: 'Einstellungen öffnen', - category: 'navigation', - }, - ], - }, - { - id: 'calendar', - title: 'Kalender', - icon: CalendarBlank, - shortcuts: [ - { - keys: ['Enter'], - description: 'Event/Task öffnen', - category: 'calendar', - }, - { - keys: ['Space'], - description: 'Event/Task öffnen', - category: 'calendar', - }, - { - keys: ['Esc'], - description: 'Drag/Resize abbrechen', - category: 'calendar', - }, - ], - }, -]; - -/** - * Calendar-specific syntax patterns (extends common syntax) - */ -const CALENDAR_SYNTAX: SyntaxGroup[] = [ - // Calendar uses all common syntax patterns -]; - -/** - * Complete help configuration for the Calendar app - * Combines common shortcuts/syntax with Calendar-specific ones - */ -export const CALENDAR_HELP_CONFIG: HelpModalConfig = { - shortcuts: [...COMMON_SHORTCUTS, ...CALENDAR_SHORTCUTS], - syntax: [...COMMON_SYNTAX, ...CALENDAR_SYNTAX], - defaultTab: 'shortcuts', - liveExample: DEFAULT_LIVE_EXAMPLE, -}; - -/** - * Export individual parts for customization - */ -export { CALENDAR_SHORTCUTS, CALENDAR_SYNTAX }; diff --git a/apps/calendar/apps/web-archived/src/lib/content/help/index.test.ts b/apps/calendar/apps/web-archived/src/lib/content/help/index.test.ts deleted file mode 100644 index cfb673b12..000000000 --- a/apps/calendar/apps/web-archived/src/lib/content/help/index.test.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { describe, it, expect } from 'vitest'; -import { getCalendarHelpContent } from './index'; - -describe('Calendar Help Content', () => { - it('returns valid German content', () => { - const content = getCalendarHelpContent('de'); - - expect(content.faq.length).toBeGreaterThan(0); - content.faq.forEach((faq) => { - expect(faq.id).toBeTruthy(); - expect(faq.question).toBeTruthy(); - expect(faq.answer).toBeTruthy(); - }); - - expect(content.features).toBeDefined(); - expect(content.contact).toBeDefined(); - expect(content.contact.supportEmail).toBe('support@mana.how'); - }); - - it('returns valid English content', () => { - const content = getCalendarHelpContent('en'); - - expect(content.faq.length).toBeGreaterThan(0); - content.faq.forEach((faq) => { - expect(faq.id).toBeTruthy(); - expect(faq.question).toBeTruthy(); - expect(faq.answer).toBeTruthy(); - }); - - expect(content.features).toBeDefined(); - expect(content.contact).toBeDefined(); - }); - - it('returns same number of FAQ items for both languages', () => { - const de = getCalendarHelpContent('de'); - const en = getCalendarHelpContent('en'); - - expect(de.faq.length).toBe(en.faq.length); - expect(de.features.length).toBe(en.features.length); - }); - - it('has unique FAQ IDs', () => { - const content = getCalendarHelpContent('de'); - const ids = content.faq.map((f) => f.id); - expect(new Set(ids).size).toBe(ids.length); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/content/help/index.ts b/apps/calendar/apps/web-archived/src/lib/content/help/index.ts deleted file mode 100644 index 2622f1c69..000000000 --- a/apps/calendar/apps/web-archived/src/lib/content/help/index.ts +++ /dev/null @@ -1,210 +0,0 @@ -/** - * Help content for Calendar app - */ - -import type { HelpContent } from '@manacore/help'; -import { getPrivacyFAQs } from '@manacore/help'; - -export function getCalendarHelpContent(locale: string): HelpContent { - const isDE = locale === 'de'; - const isFR = locale === 'fr'; - const isIT = locale === 'it'; - const isES = locale === 'es'; - - function t(de: string, en: string, fr?: string, it?: string, es?: string): string { - if (isDE) return de; - if (isFR) return fr ?? en; - if (isIT) return it ?? en; - if (isES) return es ?? en; - return en; - } - - return { - faq: [ - { - id: 'faq-create-event', - question: t( - 'Wie erstelle ich einen Termin?', - 'How do I create an event?', - 'Comment créer un événement ?', - 'Come creo un evento?', - '¿Cómo creo un evento?' - ), - answer: t( - '

Du kannst Termine auf verschiedene Arten erstellen:

  • Schnelleingabe: Nutze die Eingabeleiste oben — tippe z.B. "Meeting morgen 14-16 Uhr @Arbeit"
  • Klick & Ziehen: Klicke und ziehe in der Wochenansicht, um einen Zeitraum auszuwählen
  • Neuer Termin: Klicke auf das + Symbol für das vollständige Formular
', - '

You can create events in several ways:

  • Quick input: Use the input bar at the top — type e.g. "Meeting tomorrow 2-4pm @Work"
  • Click & drag: Click and drag in the week view to select a time range
  • New event: Click the + icon for the full form
' - ), - category: 'features', - order: 1, - language: isDE ? 'de' : isFR ? 'fr' : isIT ? 'it' : isES ? 'es' : 'en', - tags: isDE ? ['termin', 'erstellen', 'neu'] : ['event', 'create', 'new'], - }, - { - id: 'faq-recurring', - question: t( - 'Wie erstelle ich wiederkehrende Termine?', - 'How do I create recurring events?' - ), - answer: t( - '

Öffne einen Termin und setze die Wiederholung. Unterstützte Optionen:

  • Täglich, wöchentlich, monatlich, jährlich
  • Bestimmte Wochentage (z.B. Mo, Mi, Fr)
  • Alle X Wochen/Monate
  • Enddatum oder Anzahl der Wiederholungen

In der Schnelleingabe kannst du auch "wöchentlich", "täglich" oder "jeden Montag" eingeben.

', - '

Open an event and set the recurrence. Supported options:

  • Daily, weekly, monthly, yearly
  • Specific weekdays (e.g. Mon, Wed, Fri)
  • Every X weeks/months
  • End date or number of occurrences

In the quick input, you can also type "weekly", "daily", or "every Monday".

' - ), - category: 'features', - order: 2, - language: isDE ? 'de' : 'en', - tags: isDE ? ['wiederkehrend', 'wiederholung', 'serie'] : ['recurring', 'repeat', 'series'], - }, - { - id: 'faq-share-calendar', - question: t( - 'Wie teile ich einen Kalender mit anderen?', - 'How do I share a calendar with others?' - ), - answer: t( - '

Gehe zu Einstellungen > Freigabe und wähle den Kalender aus. Du kannst:

  • Per E-Mail einladen (Lese- oder Schreibzugriff)
  • Per Link teilen (mit optionalem Ablaufdatum)
  • Berechtigungen nachträglich ändern oder entziehen
', - '

Go to Settings > Sharing and select the calendar. You can:

  • Invite by email (read or write access)
  • Share by link (with optional expiration)
  • Change or revoke permissions later
' - ), - category: 'features', - order: 3, - language: isDE ? 'de' : 'en', - tags: isDE ? ['teilen', 'freigabe', 'einladen'] : ['share', 'invite', 'permissions'], - }, - { - id: 'faq-sync', - question: t('Kann ich externe Kalender synchronisieren?', 'Can I sync external calendars?'), - answer: t( - '

Ja! Gehe zu Einstellungen > Sync. Unterstützte Quellen:

  • CalDAV: Nextcloud, Radicale, etc.
  • iCal URL: Jeder öffentliche Kalender-Feed
  • Google Kalender (über CalDAV)
  • Apple Kalender (über CalDAV)

Die Synchronisation erfolgt automatisch im eingestellten Intervall.

', - '

Yes! Go to Settings > Sync. Supported sources:

  • CalDAV: Nextcloud, Radicale, etc.
  • iCal URL: Any public calendar feed
  • Google Calendar (via CalDAV)
  • Apple Calendar (via CalDAV)

Synchronization happens automatically at the configured interval.

' - ), - category: 'technical', - order: 4, - language: isDE ? 'de' : 'en', - tags: isDE - ? ['sync', 'caldav', 'google', 'apple', 'extern'] - : ['sync', 'caldav', 'google', 'apple', 'external'], - }, - ...getPrivacyFAQs(locale, { dataTypeDE: 'Kalenderdaten', dataTypeEN: 'calendar data' }), - ], - features: [ - { - id: 'feature-calendars', - title: t('Mehrere Kalender', 'Multiple Calendars'), - description: t( - 'Erstelle farbcodierte Kalender für Arbeit, Privat und mehr', - 'Create color-coded calendars for work, personal, and more' - ), - icon: '📅', - category: 'core', - highlights: t( - 'Farbcodierung,Ein-/Ausblenden,Standard-Kalender', - 'Color coding,Show/hide,Default calendar' - ).split(','), - content: '', - order: 1, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-views', - title: t('Flexible Ansichten', 'Flexible Views'), - description: t( - 'Wechsle zwischen Tag-, Wochen-, Monats- und Agenda-Ansicht', - 'Switch between day, week, month, and agenda views' - ), - icon: '👁️', - category: 'core', - highlights: t( - 'Wochenansicht,Monatsansicht,Agenda-Liste,Tagesansicht', - 'Week view,Month view,Agenda list,Day view' - ).split(','), - content: '', - order: 2, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-recurring', - title: t('Wiederkehrende Termine', 'Recurring Events'), - description: t( - 'Erstelle Serien mit flexiblen Wiederholungsregeln', - 'Create series with flexible recurrence rules' - ), - icon: '🔄', - category: 'advanced', - highlights: t( - 'RFC 5545 RRULE,Ausnahmen,Enddatum oder Anzahl', - 'RFC 5545 RRULE,Exceptions,End date or count' - ).split(','), - content: '', - order: 3, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-sharing', - title: t('Kalender teilen', 'Calendar Sharing'), - description: t( - 'Teile Kalender mit Lese- oder Schreibzugriff', - 'Share calendars with read or write access' - ), - icon: '🤝', - category: 'advanced', - highlights: t( - 'E-Mail-Einladung,Link-Freigabe,Berechtigungen', - 'Email invitation,Link sharing,Permissions' - ).split(','), - content: '', - order: 4, - language: isDE ? 'de' : 'en', - }, - ], - shortcuts: [ - { - id: 'shortcuts-navigation', - category: 'navigation', - title: 'Navigation', - language: isDE ? 'de' : 'en', - order: 1, - shortcuts: [ - { - shortcut: 'Cmd/Ctrl + 1', - action: t('Kalender öffnen', 'Open Calendar'), - }, - { - shortcut: 'Cmd/Ctrl + 2', - action: t('Einstellungen öffnen', 'Open Settings'), - }, - ], - }, - { - id: 'shortcuts-calendar', - category: 'app-specific', - title: t('Kalender', 'Calendar'), - language: isDE ? 'de' : 'en', - order: 2, - shortcuts: [ - { - shortcut: 'Enter / Space', - action: t('Event/Task öffnen', 'Open event/task'), - }, - { - shortcut: 'Esc', - action: t('Drag/Resize abbrechen', 'Cancel drag/resize'), - }, - ], - }, - ], - gettingStarted: [], - changelog: [], - contact: { - id: 'contact-support', - title: t('Support kontaktieren', 'Contact Support'), - content: t( - '

Unser Support-Team hilft dir bei allen Fragen rund um den Kalender.

', - '

Our support team is here to help you with any calendar-related questions.

' - ), - language: isDE ? 'de' : 'en', - order: 1, - supportEmail: 'support@mana.how', - documentationUrl: 'https://mana.how/docs', - responseTime: t('Normalerweise innerhalb von 24 Stunden', 'Usually within 24 hours'), - }, - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/data/guest-seed.ts b/apps/calendar/apps/web-archived/src/lib/data/guest-seed.ts deleted file mode 100644 index 45932fbe6..000000000 --- a/apps/calendar/apps/web-archived/src/lib/data/guest-seed.ts +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Guest seed data for the Calendar app. - * - * These records are loaded into IndexedDB when a new guest visits the app. - * They provide a "Persoenlich" calendar with two sample events so the user - * can immediately see how the app works. - */ - -import type { LocalCalendar, LocalEvent } from './local-store'; - -const PERSONAL_CALENDAR_ID = 'personal-calendar'; - -export const guestCalendars: LocalCalendar[] = [ - { - id: PERSONAL_CALENDAR_ID, - name: 'Persönlich', - color: '#3B82F6', - isDefault: true, - isVisible: true, - timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, - }, -]; - -const now = new Date(); -const today10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 10, 0, 0); -const today11 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 11, 0, 0); - -const tomorrow = new Date(now); -tomorrow.setDate(tomorrow.getDate() + 1); -const tomorrow14 = new Date( - tomorrow.getFullYear(), - tomorrow.getMonth(), - tomorrow.getDate(), - 14, - 0, - 0 -); -const tomorrow15 = new Date( - tomorrow.getFullYear(), - tomorrow.getMonth(), - tomorrow.getDate(), - 15, - 30, - 0 -); - -export const guestEvents: LocalEvent[] = [ - { - id: 'sample-event-1', - calendarId: PERSONAL_CALENDAR_ID, - title: 'Willkommen bei Kalender!', - description: 'Dies ist ein Beispieltermin. Tippe darauf, um ihn zu bearbeiten oder zu löschen.', - startDate: today10.toISOString(), - endDate: today11.toISOString(), - allDay: false, - location: null, - recurrenceRule: null, - color: null, - reminders: null, - }, - { - id: 'sample-event-2', - calendarId: PERSONAL_CALENDAR_ID, - title: 'Mittagessen mit Freunden', - description: null, - startDate: tomorrow14.toISOString(), - endDate: tomorrow15.toISOString(), - allDay: false, - location: 'Café am See', - recurrenceRule: null, - color: null, - reminders: null, - }, -]; diff --git a/apps/calendar/apps/web-archived/src/lib/data/local-store.ts b/apps/calendar/apps/web-archived/src/lib/data/local-store.ts deleted file mode 100644 index 1900b68ce..000000000 --- a/apps/calendar/apps/web-archived/src/lib/data/local-store.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Calendar App — Local-First Data Layer - * - * Defines the IndexedDB database, collections, and guest seed data. - * This is the single source of truth for all Calendar data. - */ - -import { createLocalStore, type BaseRecord } from '@manacore/local-store'; -import { guestCalendars, guestEvents } from './guest-seed'; - -// ─── Types ────────────────────────────────────────────────── - -export interface LocalCalendar extends BaseRecord { - name: string; - color: string; - isDefault: boolean; - isVisible: boolean; - timezone: string; -} - -export interface LocalEvent extends BaseRecord { - calendarId: string; - title: string; - description?: string | null; - startDate: string; - endDate: string; - allDay: boolean; - location?: string | null; - recurrenceRule?: string | null; - color?: string | null; - reminders?: unknown | null; -} - -// ─── Store ────────────────────────────────────────────────── - -const SYNC_SERVER_URL = import.meta.env.PUBLIC_SYNC_SERVER_URL || 'http://localhost:3050'; - -export const calendarStore = createLocalStore({ - appId: 'calendar', - collections: [ - { - name: 'calendars', - indexes: ['isDefault', 'isVisible'], - guestSeed: guestCalendars, - }, - { - name: 'events', - indexes: ['calendarId', 'startDate', 'endDate', 'allDay', '[calendarId+startDate]'], - guestSeed: guestEvents, - }, - ], - sync: { - serverUrl: SYNC_SERVER_URL, - }, -}); - -// Typed collection accessors -export const calendarCollection = calendarStore.collection('calendars'); -export const eventCollection = calendarStore.collection('events'); diff --git a/apps/calendar/apps/web-archived/src/lib/data/queries.ts b/apps/calendar/apps/web-archived/src/lib/data/queries.ts deleted file mode 100644 index 27f17c233..000000000 --- a/apps/calendar/apps/web-archived/src/lib/data/queries.ts +++ /dev/null @@ -1,220 +0,0 @@ -/** - * Reactive Queries & Pure Filter Helpers for Calendar - * - * Uses Dexie liveQuery to automatically re-render when IndexedDB changes - * (local writes, sync updates, other tabs). Components call these hooks - * at init time; no manual fetch/refresh needed. - */ - -import { useLiveQueryWithDefault } from '@manacore/local-store/svelte'; -import { - calendarCollection, - eventCollection, - type LocalCalendar, - type LocalEvent, -} from './local-store'; -import type { Calendar, CalendarEvent } from '@calendar/shared'; -import { parseRRule, generateOccurrences } from '@calendar/shared'; -import { isSameDay, isWithinInterval, differenceInMilliseconds, format } from 'date-fns'; -import { BIRTHDAY_CALENDAR } from '$lib/api/birthdays'; - -// ─── Type Converters ─────────────────────────────────────── - -/** Convert a LocalCalendar (IndexedDB) to the shared Calendar type. */ -export function toCalendar(local: LocalCalendar): Calendar { - return { - id: local.id, - userId: 'guest', - name: local.name, - color: local.color, - isDefault: local.isDefault, - isVisible: local.isVisible, - timezone: local.timezone, - createdAt: local.createdAt ?? new Date().toISOString(), - updatedAt: local.updatedAt ?? new Date().toISOString(), - }; -} - -/** Convert a LocalEvent (IndexedDB) to the shared CalendarEvent type. */ -export function toCalendarEvent(local: LocalEvent): CalendarEvent { - return { - id: local.id, - calendarId: local.calendarId, - userId: 'guest', - title: local.title, - description: local.description ?? null, - location: local.location ?? null, - startTime: local.startDate, - endTime: local.endDate, - isAllDay: local.allDay, - timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, - recurrenceRule: local.recurrenceRule ?? null, - recurrenceEndDate: null, - recurrenceExceptions: null, - parentEventId: null, - color: local.color ?? null, - status: 'confirmed', - externalId: null, - metadata: null, - createdAt: local.createdAt ?? new Date().toISOString(), - updatedAt: local.updatedAt ?? new Date().toISOString(), - }; -} - -// ─── Live Query Hooks (call during component init) ───────── - -/** All calendars. Auto-updates on any change. */ -export function useAllCalendars() { - return useLiveQueryWithDefault(async () => { - const locals = await calendarCollection.getAll(); - return locals.map(toCalendar); - }, [] as Calendar[]); -} - -/** All events. Auto-updates on any change. */ -export function useAllEvents() { - return useLiveQueryWithDefault(async () => { - const locals = await eventCollection.getAll(); - return locals.map(toCalendarEvent); - }, [] as CalendarEvent[]); -} - -// ─── Pure Calendar Helpers ───────────────────────────────── - -/** Get visible calendars (where isVisible is true). */ -export function getVisibleCalendars(calendars: Calendar[]): Calendar[] { - return calendars.filter((c) => c.isVisible); -} - -/** Get the default calendar, falling back to the first calendar. */ -export function getDefaultCalendar(calendars: Calendar[]): Calendar | null { - return calendars.find((c) => c.isDefault) || calendars[0] || null; -} - -/** Get a calendar by ID. */ -export function getCalendarById(calendars: Calendar[], id: string): Calendar | undefined { - return calendars.find((c) => c.id === id); -} - -/** Get a calendar's color by ID, with fallback. */ -export function getCalendarColor(calendars: Calendar[], id: string): string { - const calendar = calendars.find((c) => c.id === id); - return calendar?.color || '#3b82f6'; -} - -/** Get a calendar's color by ID, with birthday calendar support and fallback. */ -export function getCalendarColorWithBirthdays(calendars: Calendar[], id: string): string { - if (id === BIRTHDAY_CALENDAR.id) { - return BIRTHDAY_CALENDAR.color; - } - return getCalendarColor(calendars, id); -} - -// ─── Pure Event Helpers ──────────────────────────────────── - -/** Get an event by ID. */ -export function getEventById(events: CalendarEvent[], id: string): CalendarEvent | undefined { - return events.find((e) => e.id === id); -} - -/** Convert a date string or Date to a Date. */ -function toDate(dateStr: string | Date): Date { - return typeof dateStr === 'string' ? new Date(dateStr) : dateStr; -} - -/** - * Expand recurring events into individual occurrences for a given range. - * Each occurrence gets a synthetic ID: `{parentId}__recurrence__{dateISO}` - */ -export function expandRecurringEvents( - rawEvents: CalendarEvent[], - rangeStart: Date, - rangeEnd: Date -): CalendarEvent[] { - const result: CalendarEvent[] = []; - - for (const event of rawEvents) { - if (!event.recurrenceRule) { - result.push(event); - continue; - } - - const pattern = parseRRule(event.recurrenceRule); - if (!pattern) { - result.push(event); - continue; - } - - const eventStart = toDate(event.startTime); - const eventEnd = toDate(event.endTime); - const durationMs = differenceInMilliseconds(eventEnd, eventStart); - const exceptions = (event.recurrenceExceptions as string[]) || []; - - const occurrences = generateOccurrences(eventStart, pattern, rangeStart, rangeEnd, exceptions); - - for (const occurrenceDate of occurrences) { - const occEnd = new Date(occurrenceDate.getTime() + durationMs); - const dateKey = format(occurrenceDate, 'yyyy-MM-dd'); - - result.push({ - ...event, - id: `${event.id}__recurrence__${dateKey}`, - parentEventId: event.id, - startTime: occurrenceDate.toISOString(), - endTime: occEnd.toISOString(), - }); - } - } - - return result; -} - -/** - * Get events for a specific date range, including recurrence expansion. - */ -export function getEventsForRange( - allEvents: CalendarEvent[], - rangeStart: Date, - rangeEnd: Date -): CalendarEvent[] { - // Filter to events that overlap the range - const inRange = allEvents.filter((event) => { - const eventStart = toDate(event.startTime); - const eventEnd = toDate(event.endTime); - return eventStart <= rangeEnd && eventEnd >= rangeStart; - }); - - // Also include recurring events that might generate occurrences in range - const recurring = allEvents.filter((event) => event.recurrenceRule && !inRange.includes(event)); - - return expandRecurringEvents([...inRange, ...recurring], rangeStart, rangeEnd); -} - -/** - * Get events for a specific day (pure helper, no draft support). - */ -export function getEventsForDay(events: CalendarEvent[], date: Date): CalendarEvent[] { - return events.filter((event) => { - const eventStart = toDate(event.startTime); - const eventEnd = toDate(event.endTime); - - if (event.isAllDay) { - return ( - isWithinInterval(date, { start: eventStart, end: eventEnd }) || isSameDay(date, eventStart) - ); - } - - return isSameDay(date, eventStart); - }); -} - -/** - * Get events within a time range. - */ -export function getEventsInRange(events: CalendarEvent[], start: Date, end: Date): CalendarEvent[] { - return events.filter((event) => { - const eventStart = toDate(event.startTime); - const eventEnd = toDate(event.endTime); - return eventStart <= end && eventEnd >= start; - }); -} diff --git a/apps/calendar/apps/web-archived/src/lib/i18n/index.ts b/apps/calendar/apps/web-archived/src/lib/i18n/index.ts deleted file mode 100644 index 87c65a934..000000000 --- a/apps/calendar/apps/web-archived/src/lib/i18n/index.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { browser } from '$app/environment'; -import { init, register, locale, waitLocale } from 'svelte-i18n'; - -// List of supported locales -export const supportedLocales = ['de', 'en', 'it', 'fr', 'es'] as const; -export type SupportedLocale = (typeof supportedLocales)[number]; - -// Default locale -const defaultLocale = 'de'; - -// Register all available locales -register('de', () => import('./locales/de.json')); -register('en', () => import('./locales/en.json')); -register('it', () => import('./locales/it.json')); -register('fr', () => import('./locales/fr.json')); -register('es', () => import('./locales/es.json')); - -// Get initial locale from browser or localStorage -function getInitialLocale(): SupportedLocale { - if (browser) { - // Check localStorage first - const stored = localStorage.getItem('calendar_locale'); - if (stored && supportedLocales.includes(stored as SupportedLocale)) { - return stored as SupportedLocale; - } - - // Fall back to browser language - const browserLang = navigator.language.split('-')[0]; - if (supportedLocales.includes(browserLang as SupportedLocale)) { - return browserLang as SupportedLocale; - } - } - - return defaultLocale; -} - -// Initialize i18n at module scope (required for SSR) -// getInitialLocale() internally checks for browser and falls back to defaultLocale -init({ - fallbackLocale: defaultLocale, - initialLocale: getInitialLocale(), -}); - -// Set locale and persist to localStorage -export function setLocale(newLocale: SupportedLocale) { - locale.set(newLocale); - if (browser) { - localStorage.setItem('calendar_locale', newLocale); - } -} - -// Wait for locale to be loaded (useful for SSR) -export { waitLocale }; diff --git a/apps/calendar/apps/web-archived/src/lib/i18n/locales/de.json b/apps/calendar/apps/web-archived/src/lib/i18n/locales/de.json deleted file mode 100644 index 5a19df88a..000000000 --- a/apps/calendar/apps/web-archived/src/lib/i18n/locales/de.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "app": { - "name": "Kalender", - "loading": "Laden..." - }, - "nav": { - "calendar": "Kalender", - "calendars": "Kalender", - "agenda": "Agenda", - "settings": "Einstellungen", - "feedback": "Feedback" - }, - "views": { - "day": "Tag", - "5day": "5 Tage", - "week": "Woche", - "10day": "10 Tage", - "14day": "14 Tage", - "month": "Monat", - "year": "Jahr", - "agenda": "Agenda", - "weekdaysOnly": "Nur Wochentage", - "weekNumber": "KW", - "moreEvents": "+{count} mehr", - "allDay": "Ganztägig", - "birthday": "Geburtstag", - "weekView": "Wochenansicht", - "monthView": "Monatsansicht" - }, - "calendar": { - "today": "Heute", - "newEvent": "Neuer Termin", - "noEvents": "Keine Termine", - "allDay": "Ganztägig", - "myCalendars": "Meine Kalender", - "sharedCalendars": "Geteilte Kalender", - "draftEvent": "(Neuer Termin)", - "untitled": "Ohne Titel", - "hideSidebar": "Sidebar ausblenden", - "showSidebar": "Sidebar einblenden", - "contextMenu": { - "edit": "Bearbeiten", - "duplicate": "Duplizieren", - "copy": "Kopie", - "delete": "Löschen" - } - }, - "event": { - "title": "Titel", - "description": "Beschreibung", - "location": "Ort", - "start": "Beginn", - "end": "Ende", - "allDay": "Ganztägig", - "repeat": "Wiederholen", - "reminder": "Erinnerung", - "calendar": "Kalender", - "save": "Speichern", - "delete": "Löschen", - "cancel": "Abbrechen", - "changeStartTime": "Startzeit ändern", - "changeEndTime": "Endzeit ändern" - }, - "repeat": { - "none": "Nicht wiederholen", - "daily": "Täglich", - "weekly": "Wöchentlich", - "monthly": "Monatlich", - "yearly": "Jährlich" - }, - "reminder": { - "atTime": "Zum Zeitpunkt", - "5min": "5 Minuten vorher", - "15min": "15 Minuten vorher", - "30min": "30 Minuten vorher", - "1hour": "1 Stunde vorher", - "1day": "1 Tag vorher" - }, - "share": { - "share": "Teilen", - "shareCalendar": "Kalender teilen", - "permissions": "Berechtigungen", - "read": "Nur lesen", - "write": "Lesen & Schreiben", - "admin": "Administrator", - "pending": "Ausstehend", - "accepted": "Akzeptiert" - }, - "auth": { - "login": "Anmelden", - "logout": "Abmelden", - "register": "Registrieren", - "email": "E-Mail", - "password": "Passwort", - "forgotPassword": "Passwort vergessen?" - }, - "toast": { - "eventLoadError": "Termine konnten nicht geladen werden", - "eventUpdateError": "Termin konnte nicht aktualisiert werden", - "eventDeleteError": "Termin konnte nicht gelöscht werden", - "eventDeleted": "Termin gelöscht", - "error": "Fehler", - "calendarShared": "Kalender mit {email} geteilt", - "shareLinkCreated": "Freigabe-Link erstellt", - "inviteAccepted": "Einladung angenommen", - "shareRemoved": "Freigabe entfernt", - "shareError": "Freigabe fehlgeschlagen", - "updateError": "Aktualisierung fehlgeschlagen", - "removeError": "Entfernen fehlgeschlagen", - "declineError": "Ablehnung fehlgeschlagen", - "calendarConnected": "{name} verbunden", - "calendarDisconnected": "{name} getrennt", - "syncCompleted": "Synchronisation abgeschlossen", - "connectionError": "Verbindung fehlgeschlagen", - "syncError": "Sync fehlgeschlagen" - }, - "common": { - "save": "Speichern", - "cancel": "Abbrechen", - "delete": "Löschen", - "edit": "Bearbeiten", - "add": "Hinzufügen", - "close": "Schließen", - "search": "Suchen", - "error": "Fehler", - "success": "Erfolgreich", - "calendar": "Kalender", - "create": "Erstellen" - }, - "settings": { - "myCalendars": "Meine Kalender", - "externalCalendars": "Externe Kalender", - "shares": "Kalender-Freigaben", - "appSettings": "App-Einstellungen", - "appSettingsDesc": "Diese Einstellungen werden mit allen Mana Apps synchronisiert", - "calendarView": "Kalender-Ansicht", - "events": "Termine", - "birthdays": "Geburtstage", - "account": "Konto", - "newCalendar": "Neuer Kalender", - "calendarName": "Kalender Name", - "name": "Name", - "color": "Farbe", - "default": "Standard", - "setAsDefault": "Als Standardkalender verwenden", - "currentDefault": "aktueller Standard", - "noCalendars": "Keine Kalender vorhanden", - "calendarCreated": "Kalender erstellt", - "calendarUpdated": "Kalender aktualisiert", - "calendarDeleted": "Kalender gelöscht", - "confirmDeleteCalendar": "Möchten Sie \"{name}\" wirklich löschen?", - "externalCalendarsDesc": "Verbinde Google Calendar, Apple Calendar, CalDAV oder iCal-URLs.", - "manageSync": "Kalender-Sync verwalten", - "sharesDesc": "Teile Kalender mit anderen Nutzern oder verwalte Einladungen.", - "manageShares": "Freigaben verwalten", - "defaultView": "Standard-Ansicht", - "defaultViewDesc": "Ansicht beim Öffnen des Kalenders", - "selectView": "Ansicht wählen", - "viewWeek": "Woche", - "viewMonth": "Monat", - "viewAgenda": "Agenda", - "timeFormat": "Zeitformat", - "timeFormatDesc": "Anzeige der Uhrzeiten", - "weekdaysOnly": "Nur Werktage anzeigen", - "weekdaysOnlyDesc": "Wochenenden in der Kalenderansicht ausblenden", - "showWeekNumbers": "Wochennummern anzeigen", - "showWeekNumbersDesc": "Kalenderwoche (KW) in der Ansicht anzeigen", - "filterHours": "Stunden filtern", - "filterHoursDesc": "Nur bestimmte Stunden in der Tages-/Wochenansicht anzeigen", - "visibleHours": "Sichtbare Stunden", - "visibleHoursDesc": "Zeitbereich der in der Kalenderansicht angezeigt wird", - "hoursFrom": "Von", - "hoursTo": "Bis", - "allDayEvents": "Ganztägige Termine", - "allDayEventsDesc": "Wie sollen ganztägige Termine angezeigt werden?", - "allDayInHeader": "In Kopfzeile", - "allDayAsBlock": "Als Tagesblock", - "defaultDuration": "Standard-Dauer", - "defaultDurationDesc": "Voreingestellte Dauer für neue Termine", - "selectDuration": "Dauer wählen", - "durationMinutes": "{count} Minuten", - "durationHours": "{count} Stunde(n)", - "defaultReminder": "Standard-Erinnerung", - "defaultReminderDesc": "Voreingestellte Erinnerung für neue Termine", - "selectReminder": "Erinnerung wählen", - "reminderNone": "Keine", - "reminderMinutes": "{count} Minuten", - "reminderHour": "1 Stunde", - "reminderDay": "1 Tag", - "showBirthdays": "Geburtstage anzeigen", - "showBirthdaysDesc": "Geburtstage aus Kontakten im Kalender anzeigen", - "showAge": "Alter anzeigen", - "showAgeDesc": "Das Alter der Person bei Geburtstagen anzeigen" - }, - "errors": { - "loadEvents": "Termine konnten nicht geladen werden", - "createEvent": "Termin konnte nicht erstellt werden", - "updateEvent": "Termin konnte nicht aktualisiert werden", - "deleteEvent": "Termin konnte nicht gelöscht werden" - }, - "success": { - "eventCreated": "Termin erstellt", - "eventDeleted": "Termin gelöscht" - }, - "a11y": { - "createEventOn": "Termin erstellen am {date}", - "slotTime": "{day} {time}" - }, - "error": { - "notFound": "Seite nicht gefunden", - "backToHome": "Zurück zur Startseite" - }, - "sync": { - "pageTitle": "Kalender-Sync - Einstellungen", - "title": "Kalender-Sync", - "back": "Zurück", - "connectCalendar": "Kalender verbinden", - "description": "Verbinde externe Kalender, um Termine zu importieren und zu synchronisieren.", - "emptyState": "Keine externen Kalender verbunden", - "syncNow": "Jetzt synchronisieren", - "disconnect": "Verbindung trennen", - "confirmDisconnect": "\"{name}\" wirklich trennen? Synchronisierte Termine werden gelöscht.", - "neverSynced": "Noch nie", - "directionLabel": "Richtung", - "lastSync": "Letzte Sync", - "statusLabel": "Status", - "autoSync": "Auto-Sync", - "connectCaldav": "CalDAV-Server verbinden", - "connectProvider": "{provider} verbinden", - "searching": "Suche...", - "searchCalendars": "Kalender suchen", - "discoveredCalendars": "Gefundene Kalender:", - "connecting": "Verbinde...", - "connect": "Verbinden", - "direction": { - "import": "Nur Import", - "export": "Nur Export", - "both": "Bidirektional" - }, - "status": { - "error": "Fehler", - "active": "Aktiv (alle {interval} Min.)", - "paused": "Pausiert" - }, - "providers": { - "icalUrl": "iCal URL", - "icalUrlDesc": "ICS-Link importieren (z.B. Feiertage)", - "caldav": "CalDAV", - "caldavDesc": "CalDAV-Server verbinden", - "google": "Google Calendar", - "googleDesc": "Mit Google Kalender synchronisieren", - "apple": "Apple Calendar", - "appleDesc": "iCloud Kalender verbinden" - }, - "form": { - "serverUrl": "Server-URL", - "username": "Benutzername", - "password": "Passwort", - "name": "Name", - "namePlaceholder": "Mein externer Kalender", - "url": "URL", - "syncDirection": "Sync-Richtung" - } - }, - "sharing": { - "pageTitle": "Kalender-Freigaben - Einstellungen", - "title": "Freigaben", - "back": "Zurück", - "shareCalendar": "Kalender teilen", - "invitations": "Einladungen ({count})", - "calendarInvitation": "Kalender-Einladung", - "access": "Zugriff", - "accept": "Annehmen", - "sharedWithMe": "Mit mir geteilt", - "sharedCalendar": "Geteilter Kalender", - "shareMyCalendars": "Meine Kalender teilen", - "notSharedYet": "Noch nicht geteilt", - "linkShare": "Link-Freigabe", - "pending": "Ausstehend", - "removeShare": "Freigabe entfernen", - "confirmRemoveShare": "Freigabe wirklich entfernen?", - "addPerson": "Person hinzufügen", - "share": "Teilen", - "sharing": "Teile...", - "permission": { - "read": "Lesen", - "write": "Lesen & Bearbeiten", - "admin": "Administrator" - }, - "form": { - "calendar": "Kalender", - "email": "E-Mail-Adresse", - "permission": "Berechtigung" - } - } -} diff --git a/apps/calendar/apps/web-archived/src/lib/i18n/locales/en.json b/apps/calendar/apps/web-archived/src/lib/i18n/locales/en.json deleted file mode 100644 index 06c63f2a1..000000000 --- a/apps/calendar/apps/web-archived/src/lib/i18n/locales/en.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "app": { - "name": "Calendar", - "loading": "Loading..." - }, - "nav": { - "calendar": "Calendar", - "calendars": "Calendars", - "agenda": "Agenda", - "settings": "Settings", - "feedback": "Feedback" - }, - "views": { - "day": "Day", - "5day": "5 Days", - "week": "Week", - "10day": "10 Days", - "14day": "14 Days", - "month": "Month", - "year": "Year", - "agenda": "Agenda", - "weekdaysOnly": "Weekdays only", - "weekNumber": "W", - "moreEvents": "+{count} more", - "allDay": "All day", - "birthday": "Birthday", - "weekView": "Week view", - "monthView": "Month view" - }, - "calendar": { - "today": "Today", - "newEvent": "New Event", - "noEvents": "No events", - "allDay": "All day", - "myCalendars": "My Calendars", - "sharedCalendars": "Shared Calendars", - "draftEvent": "(New Event)", - "untitled": "Untitled", - "hideSidebar": "Hide sidebar", - "showSidebar": "Show sidebar", - "contextMenu": { - "edit": "Edit", - "duplicate": "Duplicate", - "copy": "Copy", - "delete": "Delete" - } - }, - "event": { - "title": "Title", - "description": "Description", - "location": "Location", - "start": "Start", - "end": "End", - "allDay": "All day", - "repeat": "Repeat", - "reminder": "Reminder", - "calendar": "Calendar", - "save": "Save", - "delete": "Delete", - "cancel": "Cancel", - "changeStartTime": "Change start time", - "changeEndTime": "Change end time" - }, - "repeat": { - "none": "Don't repeat", - "daily": "Daily", - "weekly": "Weekly", - "monthly": "Monthly", - "yearly": "Yearly" - }, - "reminder": { - "atTime": "At time of event", - "5min": "5 minutes before", - "15min": "15 minutes before", - "30min": "30 minutes before", - "1hour": "1 hour before", - "1day": "1 day before" - }, - "share": { - "share": "Share", - "shareCalendar": "Share calendar", - "permissions": "Permissions", - "read": "View only", - "write": "Can edit", - "admin": "Admin", - "pending": "Pending", - "accepted": "Accepted" - }, - "auth": { - "login": "Login", - "logout": "Logout", - "register": "Register", - "email": "Email", - "password": "Password", - "forgotPassword": "Forgot password?" - }, - "toast": { - "eventLoadError": "Failed to load events", - "eventUpdateError": "Failed to update event", - "eventDeleteError": "Failed to delete event", - "eventDeleted": "Event deleted", - "error": "Error", - "calendarShared": "Calendar shared with {email}", - "shareLinkCreated": "Share link created", - "inviteAccepted": "Invitation accepted", - "shareRemoved": "Share removed", - "shareError": "Sharing failed", - "updateError": "Update failed", - "removeError": "Remove failed", - "declineError": "Decline failed", - "calendarConnected": "{name} connected", - "calendarDisconnected": "{name} disconnected", - "syncCompleted": "Sync completed", - "connectionError": "Connection failed", - "syncError": "Sync failed" - }, - "common": { - "save": "Save", - "cancel": "Cancel", - "delete": "Delete", - "edit": "Edit", - "add": "Add", - "close": "Close", - "search": "Search", - "error": "Error", - "success": "Success", - "calendar": "Calendar", - "create": "Create" - }, - "settings": { - "myCalendars": "My Calendars", - "externalCalendars": "External Calendars", - "shares": "Calendar Sharing", - "appSettings": "App Settings", - "appSettingsDesc": "These settings are synced across all Mana apps", - "calendarView": "Calendar View", - "events": "Events", - "birthdays": "Birthdays", - "account": "Account", - "newCalendar": "New Calendar", - "calendarName": "Calendar Name", - "name": "Name", - "color": "Color", - "default": "Default", - "setAsDefault": "Set as default calendar", - "currentDefault": "current default", - "noCalendars": "No calendars available", - "calendarCreated": "Calendar created", - "calendarUpdated": "Calendar updated", - "calendarDeleted": "Calendar deleted", - "confirmDeleteCalendar": "Are you sure you want to delete \"{name}\"?", - "externalCalendarsDesc": "Connect Google Calendar, Apple Calendar, CalDAV or iCal URLs.", - "manageSync": "Manage calendar sync", - "sharesDesc": "Share calendars with other users or manage invitations.", - "manageShares": "Manage sharing", - "defaultView": "Default View", - "defaultViewDesc": "View when opening the calendar", - "selectView": "Select view", - "viewWeek": "Week", - "viewMonth": "Month", - "viewAgenda": "Agenda", - "timeFormat": "Time Format", - "timeFormatDesc": "How times are displayed", - "weekdaysOnly": "Show weekdays only", - "weekdaysOnlyDesc": "Hide weekends in the calendar view", - "showWeekNumbers": "Show week numbers", - "showWeekNumbersDesc": "Display week numbers in the calendar view", - "filterHours": "Filter hours", - "filterHoursDesc": "Only show certain hours in day/week view", - "visibleHours": "Visible hours", - "visibleHoursDesc": "Time range displayed in the calendar view", - "hoursFrom": "From", - "hoursTo": "To", - "allDayEvents": "All-day events", - "allDayEventsDesc": "How should all-day events be displayed?", - "allDayInHeader": "In header", - "allDayAsBlock": "As day block", - "defaultDuration": "Default Duration", - "defaultDurationDesc": "Default duration for new events", - "selectDuration": "Select duration", - "durationMinutes": "{count} minutes", - "durationHours": "{count} hour(s)", - "defaultReminder": "Default Reminder", - "defaultReminderDesc": "Default reminder for new events", - "selectReminder": "Select reminder", - "reminderNone": "None", - "reminderMinutes": "{count} minutes", - "reminderHour": "1 hour", - "reminderDay": "1 day", - "showBirthdays": "Show birthdays", - "showBirthdaysDesc": "Show birthdays from contacts in the calendar", - "showAge": "Show age", - "showAgeDesc": "Display the person's age on birthdays" - }, - "errors": { - "loadEvents": "Failed to load events", - "createEvent": "Failed to create event", - "updateEvent": "Failed to update event", - "deleteEvent": "Failed to delete event" - }, - "success": { - "eventCreated": "Event created", - "eventDeleted": "Event deleted" - }, - "a11y": { - "createEventOn": "Create event on {date}", - "slotTime": "{day} {time}" - }, - "error": { - "notFound": "Page not found", - "backToHome": "Back to home" - }, - "sync": { - "pageTitle": "Calendar Sync - Settings", - "title": "Calendar Sync", - "back": "Back", - "connectCalendar": "Connect calendar", - "description": "Connect external calendars to import and synchronize events.", - "emptyState": "No external calendars connected", - "syncNow": "Sync now", - "disconnect": "Disconnect", - "confirmDisconnect": "Really disconnect \"{name}\"? Synchronized events will be deleted.", - "neverSynced": "Never", - "directionLabel": "Direction", - "lastSync": "Last sync", - "statusLabel": "Status", - "autoSync": "Auto-Sync", - "connectCaldav": "Connect CalDAV server", - "connectProvider": "Connect {provider}", - "searching": "Searching...", - "searchCalendars": "Search calendars", - "discoveredCalendars": "Discovered calendars:", - "connecting": "Connecting...", - "connect": "Connect", - "direction": { - "import": "Import only", - "export": "Export only", - "both": "Bidirectional" - }, - "status": { - "error": "Error", - "active": "Active (every {interval} min.)", - "paused": "Paused" - }, - "providers": { - "icalUrl": "iCal URL", - "icalUrlDesc": "Import ICS link (e.g. holidays)", - "caldav": "CalDAV", - "caldavDesc": "Connect CalDAV server", - "google": "Google Calendar", - "googleDesc": "Sync with Google Calendar", - "apple": "Apple Calendar", - "appleDesc": "Connect iCloud Calendar" - }, - "form": { - "serverUrl": "Server URL", - "username": "Username", - "password": "Password", - "name": "Name", - "namePlaceholder": "My external calendar", - "url": "URL", - "syncDirection": "Sync direction" - } - }, - "sharing": { - "pageTitle": "Calendar Sharing - Settings", - "title": "Sharing", - "back": "Back", - "shareCalendar": "Share calendar", - "invitations": "Invitations ({count})", - "calendarInvitation": "Calendar invitation", - "access": "access", - "accept": "Accept", - "sharedWithMe": "Shared with me", - "sharedCalendar": "Shared calendar", - "shareMyCalendars": "Share my calendars", - "notSharedYet": "Not shared yet", - "linkShare": "Link share", - "pending": "Pending", - "removeShare": "Remove share", - "confirmRemoveShare": "Really remove this share?", - "addPerson": "Add person", - "share": "Share", - "sharing": "Sharing...", - "permission": { - "read": "Read", - "write": "Read & Edit", - "admin": "Admin" - }, - "form": { - "calendar": "Calendar", - "email": "Email address", - "permission": "Permission" - } - } -} diff --git a/apps/calendar/apps/web-archived/src/lib/i18n/locales/es.json b/apps/calendar/apps/web-archived/src/lib/i18n/locales/es.json deleted file mode 100644 index 45c7809fc..000000000 --- a/apps/calendar/apps/web-archived/src/lib/i18n/locales/es.json +++ /dev/null @@ -1,275 +0,0 @@ -{ - "app": { - "name": "Calendario", - "loading": "Cargando..." - }, - "nav": { - "calendar": "Calendario", - "calendars": "Calendarios", - "agenda": "Agenda", - "settings": "Configuración", - "feedback": "Comentarios" - }, - "views": { - "day": "Día", - "5day": "5 días", - "week": "Semana", - "10day": "10 días", - "14day": "14 días", - "month": "Mes", - "year": "Año", - "agenda": "Agenda", - "weekdaysOnly": "Solo días laborables", - "allDay": "Todo el día", - "birthday": "Cumpleaños", - "weekView": "Vista semanal", - "monthView": "Vista mensual" - }, - "calendar": { - "today": "Hoy", - "newEvent": "Nuevo evento", - "noEvents": "Sin eventos", - "allDay": "Todo el día", - "myCalendars": "Mis calendarios", - "sharedCalendars": "Calendarios compartidos", - "untitled": "Sin título", - "contextMenu": { - "edit": "Editar", - "duplicate": "Duplicar", - "copy": "Copia", - "delete": "Eliminar" - } - }, - "event": { - "title": "Título", - "description": "Descripción", - "location": "Ubicación", - "start": "Inicio", - "end": "Fin", - "allDay": "Todo el día", - "repeat": "Repetir", - "reminder": "Recordatorio", - "calendar": "Calendario", - "save": "Guardar", - "delete": "Eliminar", - "cancel": "Cancelar" - }, - "repeat": { - "none": "No repetir", - "daily": "Diario", - "weekly": "Semanal", - "monthly": "Mensual", - "yearly": "Anual" - }, - "reminder": { - "atTime": "Al momento del evento", - "5min": "5 minutos antes", - "15min": "15 minutos antes", - "30min": "30 minutos antes", - "1hour": "1 hora antes", - "1day": "1 día antes" - }, - "share": { - "share": "Compartir", - "shareCalendar": "Compartir calendario", - "permissions": "Permisos", - "read": "Solo lectura", - "write": "Puede editar", - "admin": "Administrador", - "pending": "Pendiente", - "accepted": "Aceptado" - }, - "auth": { - "login": "Iniciar sesión", - "logout": "Cerrar sesión", - "register": "Registrarse", - "email": "Correo electrónico", - "password": "Contraseña", - "forgotPassword": "¿Olvidaste tu contraseña?" - }, - "toast": { - "eventLoadError": "No se pudieron cargar los eventos", - "eventUpdateError": "No se pudo actualizar el evento", - "eventDeleteError": "No se pudo eliminar el evento", - "eventDeleted": "Evento eliminado", - "error": "Error", - "calendarShared": "Calendario compartido con {email}", - "shareLinkCreated": "Enlace de compartir creado", - "inviteAccepted": "Invitación aceptada", - "shareRemoved": "Compartir eliminado", - "shareError": "Error al compartir", - "updateError": "Error al actualizar", - "removeError": "Error al eliminar", - "declineError": "Error al rechazar", - "calendarConnected": "{name} conectado", - "calendarDisconnected": "{name} desconectado", - "syncCompleted": "Sincronización completada", - "connectionError": "Error de conexión", - "syncError": "Error de sincronización" - }, - "common": { - "save": "Guardar", - "cancel": "Cancelar", - "delete": "Eliminar", - "edit": "Editar", - "add": "Agregar", - "close": "Cerrar", - "search": "Buscar", - "error": "Error", - "success": "Éxito", - "calendar": "Calendario", - "create": "Crear" - }, - "settings": { - "myCalendars": "Mis calendarios", - "externalCalendars": "Calendarios externos", - "shares": "Compartir calendarios", - "appSettings": "Configuración de la app", - "appSettingsDesc": "Estos ajustes se sincronizan con todas las apps de Mana", - "calendarView": "Vista del calendario", - "events": "Eventos", - "birthdays": "Cumpleaños", - "account": "Cuenta", - "newCalendar": "Nuevo calendario", - "calendarName": "Nombre del calendario", - "name": "Nombre", - "color": "Color", - "default": "Predeterminado", - "setAsDefault": "Establecer como calendario predeterminado", - "currentDefault": "predeterminado actual", - "noCalendars": "No hay calendarios disponibles", - "calendarCreated": "Calendario creado", - "calendarUpdated": "Calendario actualizado", - "calendarDeleted": "Calendario eliminado", - "confirmDeleteCalendar": "¿Seguro que quieres eliminar \"{name}\"?", - "externalCalendarsDesc": "Conecta Google Calendar, Apple Calendar, CalDAV o URLs de iCal.", - "manageSync": "Gestionar sincronización", - "sharesDesc": "Comparte calendarios con otros usuarios o gestiona invitaciones.", - "manageShares": "Gestionar compartidos", - "defaultView": "Vista predeterminada", - "defaultViewDesc": "Vista al abrir el calendario", - "selectView": "Seleccionar vista", - "viewWeek": "Semana", - "viewMonth": "Mes", - "viewAgenda": "Agenda", - "timeFormat": "Formato de hora", - "timeFormatDesc": "Cómo se muestran las horas", - "weekdaysOnly": "Mostrar solo días laborables", - "weekdaysOnlyDesc": "Ocultar fines de semana en la vista del calendario", - "showWeekNumbers": "Mostrar números de semana", - "showWeekNumbersDesc": "Mostrar el número de semana en la vista del calendario", - "filterHours": "Filtrar horas", - "filterHoursDesc": "Mostrar solo ciertas horas en la vista de día/semana", - "visibleHours": "Horas visibles", - "visibleHoursDesc": "Rango horario mostrado en la vista del calendario", - "hoursFrom": "Desde", - "hoursTo": "Hasta", - "allDayEvents": "Eventos de todo el día", - "allDayEventsDesc": "¿Cómo se deben mostrar los eventos de todo el día?", - "allDayInHeader": "En encabezado", - "allDayAsBlock": "Como bloque diario", - "defaultDuration": "Duración predeterminada", - "defaultDurationDesc": "Duración predeterminada para nuevos eventos", - "selectDuration": "Seleccionar duración", - "durationMinutes": "{count} minutos", - "durationHours": "{count} hora(s)", - "defaultReminder": "Recordatorio predeterminado", - "defaultReminderDesc": "Recordatorio predeterminado para nuevos eventos", - "selectReminder": "Seleccionar recordatorio", - "reminderNone": "Ninguno", - "reminderMinutes": "{count} minutos", - "reminderHour": "1 hora", - "reminderDay": "1 día", - "showBirthdays": "Mostrar cumpleaños", - "showBirthdaysDesc": "Mostrar cumpleaños de contactos en el calendario", - "showAge": "Mostrar edad", - "showAgeDesc": "Mostrar la edad de la persona en los cumpleaños" - }, - "error": { - "notFound": "Página no encontrada", - "backToHome": "Volver al inicio" - }, - "sync": { - "pageTitle": "Sincronización de calendarios - Configuración", - "title": "Sincronización", - "back": "Volver", - "connectCalendar": "Conectar calendario", - "description": "Conecta calendarios externos para importar y sincronizar eventos.", - "emptyState": "No hay calendarios externos conectados", - "syncNow": "Sincronizar ahora", - "disconnect": "Desconectar", - "confirmDisconnect": "¿Realmente desconectar \"{name}\"? Los eventos sincronizados serán eliminados.", - "neverSynced": "Nunca", - "directionLabel": "Dirección", - "lastSync": "Última sincronización", - "statusLabel": "Estado", - "autoSync": "Sincronización automática", - "connectCaldav": "Conectar servidor CalDAV", - "connectProvider": "Conectar {provider}", - "searching": "Buscando...", - "searchCalendars": "Buscar calendarios", - "discoveredCalendars": "Calendarios encontrados:", - "connecting": "Conectando...", - "connect": "Conectar", - "direction": { - "import": "Solo importar", - "export": "Solo exportar", - "both": "Bidireccional" - }, - "status": { - "error": "Error", - "active": "Activo (cada {interval} min.)", - "paused": "Pausado" - }, - "providers": { - "icalUrl": "URL iCal", - "icalUrlDesc": "Importar enlace ICS (ej. festivos)", - "caldav": "CalDAV", - "caldavDesc": "Conectar servidor CalDAV", - "google": "Google Calendar", - "googleDesc": "Sincronizar con Google Calendar", - "apple": "Apple Calendar", - "appleDesc": "Conectar calendario de iCloud" - }, - "form": { - "serverUrl": "URL del servidor", - "username": "Nombre de usuario", - "password": "Contraseña", - "name": "Nombre", - "namePlaceholder": "Mi calendario externo", - "url": "URL", - "syncDirection": "Dirección de sincronización" - } - }, - "sharing": { - "pageTitle": "Compartir calendarios - Configuración", - "title": "Compartidos", - "back": "Volver", - "shareCalendar": "Compartir calendario", - "invitations": "Invitaciones ({count})", - "calendarInvitation": "Invitación de calendario", - "access": "acceso", - "accept": "Aceptar", - "sharedWithMe": "Compartidos conmigo", - "sharedCalendar": "Calendario compartido", - "shareMyCalendars": "Compartir mis calendarios", - "notSharedYet": "Aún no compartido", - "linkShare": "Compartir por enlace", - "pending": "Pendiente", - "removeShare": "Eliminar compartido", - "confirmRemoveShare": "¿Realmente eliminar este compartido?", - "addPerson": "Agregar persona", - "share": "Compartir", - "sharing": "Compartiendo...", - "permission": { - "read": "Lectura", - "write": "Lectura y edición", - "admin": "Administrador" - }, - "form": { - "calendar": "Calendario", - "email": "Dirección de correo", - "permission": "Permiso" - } - } -} diff --git a/apps/calendar/apps/web-archived/src/lib/i18n/locales/fr.json b/apps/calendar/apps/web-archived/src/lib/i18n/locales/fr.json deleted file mode 100644 index 68db567da..000000000 --- a/apps/calendar/apps/web-archived/src/lib/i18n/locales/fr.json +++ /dev/null @@ -1,275 +0,0 @@ -{ - "app": { - "name": "Calendrier", - "loading": "Chargement..." - }, - "nav": { - "calendar": "Calendrier", - "calendars": "Calendriers", - "agenda": "Agenda", - "settings": "Paramètres", - "feedback": "Commentaires" - }, - "views": { - "day": "Jour", - "5day": "5 jours", - "week": "Semaine", - "10day": "10 jours", - "14day": "14 jours", - "month": "Mois", - "year": "Année", - "agenda": "Agenda", - "weekdaysOnly": "Jours ouvrables", - "allDay": "Toute la journée", - "birthday": "Anniversaire", - "weekView": "Vue semaine", - "monthView": "Vue mois" - }, - "calendar": { - "today": "Aujourd'hui", - "newEvent": "Nouvel événement", - "noEvents": "Aucun événement", - "allDay": "Toute la journée", - "myCalendars": "Mes calendriers", - "sharedCalendars": "Calendriers partagés", - "untitled": "Sans titre", - "contextMenu": { - "edit": "Modifier", - "duplicate": "Dupliquer", - "copy": "Copie", - "delete": "Supprimer" - } - }, - "event": { - "title": "Titre", - "description": "Description", - "location": "Lieu", - "start": "Début", - "end": "Fin", - "allDay": "Toute la journée", - "repeat": "Répéter", - "reminder": "Rappel", - "calendar": "Calendrier", - "save": "Enregistrer", - "delete": "Supprimer", - "cancel": "Annuler" - }, - "repeat": { - "none": "Ne pas répéter", - "daily": "Quotidien", - "weekly": "Hebdomadaire", - "monthly": "Mensuel", - "yearly": "Annuel" - }, - "reminder": { - "atTime": "Au moment de l'événement", - "5min": "5 minutes avant", - "15min": "15 minutes avant", - "30min": "30 minutes avant", - "1hour": "1 heure avant", - "1day": "1 jour avant" - }, - "share": { - "share": "Partager", - "shareCalendar": "Partager le calendrier", - "permissions": "Autorisations", - "read": "Lecture seule", - "write": "Modification", - "admin": "Administrateur", - "pending": "En attente", - "accepted": "Accepté" - }, - "auth": { - "login": "Connexion", - "logout": "Déconnexion", - "register": "Inscription", - "email": "E-mail", - "password": "Mot de passe", - "forgotPassword": "Mot de passe oublié?" - }, - "toast": { - "eventLoadError": "Impossible de charger les événements", - "eventUpdateError": "Impossible de mettre à jour l'événement", - "eventDeleteError": "Impossible de supprimer l'événement", - "eventDeleted": "Événement supprimé", - "error": "Erreur", - "calendarShared": "Calendrier partagé avec {email}", - "shareLinkCreated": "Lien de partage créé", - "inviteAccepted": "Invitation acceptée", - "shareRemoved": "Partage supprimé", - "shareError": "Échec du partage", - "updateError": "Échec de la mise à jour", - "removeError": "Échec de la suppression", - "declineError": "Échec du refus", - "calendarConnected": "{name} connecté", - "calendarDisconnected": "{name} déconnecté", - "syncCompleted": "Synchronisation terminée", - "connectionError": "Échec de la connexion", - "syncError": "Échec de la synchronisation" - }, - "common": { - "save": "Enregistrer", - "cancel": "Annuler", - "delete": "Supprimer", - "edit": "Modifier", - "add": "Ajouter", - "close": "Fermer", - "search": "Rechercher", - "error": "Erreur", - "success": "Succès", - "calendar": "Calendrier", - "create": "Créer" - }, - "settings": { - "myCalendars": "Mes calendriers", - "externalCalendars": "Calendriers externes", - "shares": "Partage de calendriers", - "appSettings": "Paramètres de l'app", - "appSettingsDesc": "Ces paramètres sont synchronisés avec toutes les apps Mana", - "calendarView": "Vue du calendrier", - "events": "Événements", - "birthdays": "Anniversaires", - "account": "Compte", - "newCalendar": "Nouveau calendrier", - "calendarName": "Nom du calendrier", - "name": "Nom", - "color": "Couleur", - "default": "Par défaut", - "setAsDefault": "Définir comme calendrier par défaut", - "currentDefault": "par défaut actuel", - "noCalendars": "Aucun calendrier disponible", - "calendarCreated": "Calendrier créé", - "calendarUpdated": "Calendrier mis à jour", - "calendarDeleted": "Calendrier supprimé", - "confirmDeleteCalendar": "Voulez-vous vraiment supprimer \"{name}\" ?", - "externalCalendarsDesc": "Connectez Google Calendar, Apple Calendar, CalDAV ou des URLs iCal.", - "manageSync": "Gérer la synchronisation", - "sharesDesc": "Partagez des calendriers avec d'autres utilisateurs ou gérez les invitations.", - "manageShares": "Gérer les partages", - "defaultView": "Vue par défaut", - "defaultViewDesc": "Vue à l'ouverture du calendrier", - "selectView": "Choisir la vue", - "viewWeek": "Semaine", - "viewMonth": "Mois", - "viewAgenda": "Agenda", - "timeFormat": "Format de l'heure", - "timeFormatDesc": "Affichage des heures", - "weekdaysOnly": "Afficher uniquement les jours ouvrables", - "weekdaysOnlyDesc": "Masquer les week-ends dans la vue du calendrier", - "showWeekNumbers": "Afficher les numéros de semaine", - "showWeekNumbersDesc": "Afficher le numéro de semaine dans la vue du calendrier", - "filterHours": "Filtrer les heures", - "filterHoursDesc": "Afficher uniquement certaines heures dans la vue jour/semaine", - "visibleHours": "Heures visibles", - "visibleHoursDesc": "Plage horaire affichée dans la vue du calendrier", - "hoursFrom": "De", - "hoursTo": "À", - "allDayEvents": "Événements sur toute la journée", - "allDayEventsDesc": "Comment afficher les événements sur toute la journée ?", - "allDayInHeader": "Dans l'en-tête", - "allDayAsBlock": "En bloc journalier", - "defaultDuration": "Durée par défaut", - "defaultDurationDesc": "Durée par défaut pour les nouveaux événements", - "selectDuration": "Choisir la durée", - "durationMinutes": "{count} minutes", - "durationHours": "{count} heure(s)", - "defaultReminder": "Rappel par défaut", - "defaultReminderDesc": "Rappel par défaut pour les nouveaux événements", - "selectReminder": "Choisir le rappel", - "reminderNone": "Aucun", - "reminderMinutes": "{count} minutes", - "reminderHour": "1 heure", - "reminderDay": "1 jour", - "showBirthdays": "Afficher les anniversaires", - "showBirthdaysDesc": "Afficher les anniversaires des contacts dans le calendrier", - "showAge": "Afficher l'âge", - "showAgeDesc": "Afficher l'âge de la personne lors des anniversaires" - }, - "error": { - "notFound": "Page non trouvée", - "backToHome": "Retour à l'accueil" - }, - "sync": { - "pageTitle": "Sync des calendriers - Paramètres", - "title": "Sync des calendriers", - "back": "Retour", - "connectCalendar": "Connecter un calendrier", - "description": "Connectez des calendriers externes pour importer et synchroniser des événements.", - "emptyState": "Aucun calendrier externe connecté", - "syncNow": "Synchroniser maintenant", - "disconnect": "Déconnecter", - "confirmDisconnect": "Vraiment déconnecter \"{name}\" ? Les événements synchronisés seront supprimés.", - "neverSynced": "Jamais", - "directionLabel": "Direction", - "lastSync": "Dernière sync", - "statusLabel": "Statut", - "autoSync": "Sync auto", - "connectCaldav": "Connecter un serveur CalDAV", - "connectProvider": "Connecter {provider}", - "searching": "Recherche...", - "searchCalendars": "Rechercher des calendriers", - "discoveredCalendars": "Calendriers trouvés :", - "connecting": "Connexion...", - "connect": "Connecter", - "direction": { - "import": "Import uniquement", - "export": "Export uniquement", - "both": "Bidirectionnel" - }, - "status": { - "error": "Erreur", - "active": "Actif (toutes les {interval} min.)", - "paused": "En pause" - }, - "providers": { - "icalUrl": "URL iCal", - "icalUrlDesc": "Importer un lien ICS (ex. jours fériés)", - "caldav": "CalDAV", - "caldavDesc": "Connecter un serveur CalDAV", - "google": "Google Calendar", - "googleDesc": "Synchroniser avec Google Agenda", - "apple": "Apple Calendar", - "appleDesc": "Connecter le calendrier iCloud" - }, - "form": { - "serverUrl": "URL du serveur", - "username": "Nom d'utilisateur", - "password": "Mot de passe", - "name": "Nom", - "namePlaceholder": "Mon calendrier externe", - "url": "URL", - "syncDirection": "Direction de sync" - } - }, - "sharing": { - "pageTitle": "Partage de calendriers - Paramètres", - "title": "Partages", - "back": "Retour", - "shareCalendar": "Partager le calendrier", - "invitations": "Invitations ({count})", - "calendarInvitation": "Invitation de calendrier", - "access": "accès", - "accept": "Accepter", - "sharedWithMe": "Partagés avec moi", - "sharedCalendar": "Calendrier partagé", - "shareMyCalendars": "Partager mes calendriers", - "notSharedYet": "Pas encore partagé", - "linkShare": "Partage par lien", - "pending": "En attente", - "removeShare": "Supprimer le partage", - "confirmRemoveShare": "Vraiment supprimer ce partage ?", - "addPerson": "Ajouter une personne", - "share": "Partager", - "sharing": "Partage...", - "permission": { - "read": "Lecture", - "write": "Lecture & modification", - "admin": "Administrateur" - }, - "form": { - "calendar": "Calendrier", - "email": "Adresse e-mail", - "permission": "Autorisation" - } - } -} diff --git a/apps/calendar/apps/web-archived/src/lib/i18n/locales/it.json b/apps/calendar/apps/web-archived/src/lib/i18n/locales/it.json deleted file mode 100644 index 7f4c648b1..000000000 --- a/apps/calendar/apps/web-archived/src/lib/i18n/locales/it.json +++ /dev/null @@ -1,275 +0,0 @@ -{ - "app": { - "name": "Calendario", - "loading": "Caricamento..." - }, - "nav": { - "calendar": "Calendario", - "calendars": "Calendari", - "agenda": "Agenda", - "settings": "Impostazioni", - "feedback": "Feedback" - }, - "views": { - "day": "Giorno", - "5day": "5 giorni", - "week": "Settimana", - "10day": "10 giorni", - "14day": "14 giorni", - "month": "Mese", - "year": "Anno", - "agenda": "Agenda", - "weekdaysOnly": "Solo giorni feriali", - "allDay": "Tutto il giorno", - "birthday": "Compleanno", - "weekView": "Vista settimanale", - "monthView": "Vista mensile" - }, - "calendar": { - "today": "Oggi", - "newEvent": "Nuovo evento", - "noEvents": "Nessun evento", - "allDay": "Tutto il giorno", - "myCalendars": "I miei calendari", - "sharedCalendars": "Calendari condivisi", - "untitled": "Senza titolo", - "contextMenu": { - "edit": "Modifica", - "duplicate": "Duplica", - "copy": "Copia", - "delete": "Elimina" - } - }, - "event": { - "title": "Titolo", - "description": "Descrizione", - "location": "Luogo", - "start": "Inizio", - "end": "Fine", - "allDay": "Tutto il giorno", - "repeat": "Ripeti", - "reminder": "Promemoria", - "calendar": "Calendario", - "save": "Salva", - "delete": "Elimina", - "cancel": "Annulla" - }, - "repeat": { - "none": "Non ripetere", - "daily": "Giornaliero", - "weekly": "Settimanale", - "monthly": "Mensile", - "yearly": "Annuale" - }, - "reminder": { - "atTime": "All'ora dell'evento", - "5min": "5 minuti prima", - "15min": "15 minuti prima", - "30min": "30 minuti prima", - "1hour": "1 ora prima", - "1day": "1 giorno prima" - }, - "share": { - "share": "Condividi", - "shareCalendar": "Condividi calendario", - "permissions": "Autorizzazioni", - "read": "Solo lettura", - "write": "Può modificare", - "admin": "Amministratore", - "pending": "In attesa", - "accepted": "Accettato" - }, - "auth": { - "login": "Accedi", - "logout": "Esci", - "register": "Registrati", - "email": "Email", - "password": "Password", - "forgotPassword": "Password dimenticata?" - }, - "toast": { - "eventLoadError": "Impossibile caricare gli eventi", - "eventUpdateError": "Impossibile aggiornare l'evento", - "eventDeleteError": "Impossibile eliminare l'evento", - "eventDeleted": "Evento eliminato", - "error": "Errore", - "calendarShared": "Calendario condiviso con {email}", - "shareLinkCreated": "Link di condivisione creato", - "inviteAccepted": "Invito accettato", - "shareRemoved": "Condivisione rimossa", - "shareError": "Condivisione fallita", - "updateError": "Aggiornamento fallito", - "removeError": "Rimozione fallita", - "declineError": "Rifiuto fallito", - "calendarConnected": "{name} connesso", - "calendarDisconnected": "{name} disconnesso", - "syncCompleted": "Sincronizzazione completata", - "connectionError": "Connessione fallita", - "syncError": "Sincronizzazione fallita" - }, - "common": { - "save": "Salva", - "cancel": "Annulla", - "delete": "Elimina", - "edit": "Modifica", - "add": "Aggiungi", - "close": "Chiudi", - "search": "Cerca", - "error": "Errore", - "success": "Successo", - "calendar": "Calendario", - "create": "Crea" - }, - "settings": { - "myCalendars": "I miei calendari", - "externalCalendars": "Calendari esterni", - "shares": "Condivisione calendari", - "appSettings": "Impostazioni app", - "appSettingsDesc": "Queste impostazioni vengono sincronizzate con tutte le app Mana", - "calendarView": "Vista del calendario", - "events": "Eventi", - "birthdays": "Compleanni", - "account": "Account", - "newCalendar": "Nuovo calendario", - "calendarName": "Nome del calendario", - "name": "Nome", - "color": "Colore", - "default": "Predefinito", - "setAsDefault": "Imposta come calendario predefinito", - "currentDefault": "predefinito attuale", - "noCalendars": "Nessun calendario disponibile", - "calendarCreated": "Calendario creato", - "calendarUpdated": "Calendario aggiornato", - "calendarDeleted": "Calendario eliminato", - "confirmDeleteCalendar": "Vuoi davvero eliminare \"{name}\"?", - "externalCalendarsDesc": "Collega Google Calendar, Apple Calendar, CalDAV o URL iCal.", - "manageSync": "Gestisci sincronizzazione", - "sharesDesc": "Condividi calendari con altri utenti o gestisci gli inviti.", - "manageShares": "Gestisci condivisioni", - "defaultView": "Vista predefinita", - "defaultViewDesc": "Vista all'apertura del calendario", - "selectView": "Seleziona vista", - "viewWeek": "Settimana", - "viewMonth": "Mese", - "viewAgenda": "Agenda", - "timeFormat": "Formato ora", - "timeFormatDesc": "Come vengono visualizzati gli orari", - "weekdaysOnly": "Mostra solo giorni feriali", - "weekdaysOnlyDesc": "Nascondi i fine settimana nella vista del calendario", - "showWeekNumbers": "Mostra numeri di settimana", - "showWeekNumbersDesc": "Mostra il numero della settimana nella vista del calendario", - "filterHours": "Filtra ore", - "filterHoursDesc": "Mostra solo determinate ore nella vista giorno/settimana", - "visibleHours": "Ore visibili", - "visibleHoursDesc": "Intervallo orario visualizzato nella vista del calendario", - "hoursFrom": "Da", - "hoursTo": "A", - "allDayEvents": "Eventi tutto il giorno", - "allDayEventsDesc": "Come devono essere visualizzati gli eventi tutto il giorno?", - "allDayInHeader": "Nell'intestazione", - "allDayAsBlock": "Come blocco giornaliero", - "defaultDuration": "Durata predefinita", - "defaultDurationDesc": "Durata predefinita per i nuovi eventi", - "selectDuration": "Seleziona durata", - "durationMinutes": "{count} minuti", - "durationHours": "{count} ora/e", - "defaultReminder": "Promemoria predefinito", - "defaultReminderDesc": "Promemoria predefinito per i nuovi eventi", - "selectReminder": "Seleziona promemoria", - "reminderNone": "Nessuno", - "reminderMinutes": "{count} minuti", - "reminderHour": "1 ora", - "reminderDay": "1 giorno", - "showBirthdays": "Mostra compleanni", - "showBirthdaysDesc": "Mostra i compleanni dei contatti nel calendario", - "showAge": "Mostra età", - "showAgeDesc": "Mostra l'età della persona nei compleanni" - }, - "error": { - "notFound": "Pagina non trovata", - "backToHome": "Torna alla home" - }, - "sync": { - "pageTitle": "Sincronizzazione calendari - Impostazioni", - "title": "Sincronizzazione", - "back": "Indietro", - "connectCalendar": "Collega calendario", - "description": "Collega calendari esterni per importare e sincronizzare eventi.", - "emptyState": "Nessun calendario esterno collegato", - "syncNow": "Sincronizza ora", - "disconnect": "Disconnetti", - "confirmDisconnect": "Disconnettere davvero \"{name}\"? Gli eventi sincronizzati verranno eliminati.", - "neverSynced": "Mai", - "directionLabel": "Direzione", - "lastSync": "Ultima sincronizzazione", - "statusLabel": "Stato", - "autoSync": "Sincronizzazione automatica", - "connectCaldav": "Collega server CalDAV", - "connectProvider": "Collega {provider}", - "searching": "Ricerca...", - "searchCalendars": "Cerca calendari", - "discoveredCalendars": "Calendari trovati:", - "connecting": "Collegamento...", - "connect": "Collega", - "direction": { - "import": "Solo importazione", - "export": "Solo esportazione", - "both": "Bidirezionale" - }, - "status": { - "error": "Errore", - "active": "Attivo (ogni {interval} min.)", - "paused": "In pausa" - }, - "providers": { - "icalUrl": "URL iCal", - "icalUrlDesc": "Importa link ICS (es. festività)", - "caldav": "CalDAV", - "caldavDesc": "Collega server CalDAV", - "google": "Google Calendar", - "googleDesc": "Sincronizza con Google Calendar", - "apple": "Apple Calendar", - "appleDesc": "Collega calendario iCloud" - }, - "form": { - "serverUrl": "URL del server", - "username": "Nome utente", - "password": "Password", - "name": "Nome", - "namePlaceholder": "Il mio calendario esterno", - "url": "URL", - "syncDirection": "Direzione di sincronizzazione" - } - }, - "sharing": { - "pageTitle": "Condivisione calendari - Impostazioni", - "title": "Condivisioni", - "back": "Indietro", - "shareCalendar": "Condividi calendario", - "invitations": "Inviti ({count})", - "calendarInvitation": "Invito calendario", - "access": "accesso", - "accept": "Accetta", - "sharedWithMe": "Condivisi con me", - "sharedCalendar": "Calendario condiviso", - "shareMyCalendars": "Condividi i miei calendari", - "notSharedYet": "Non ancora condiviso", - "linkShare": "Condivisione tramite link", - "pending": "In attesa", - "removeShare": "Rimuovi condivisione", - "confirmRemoveShare": "Rimuovere davvero questa condivisione?", - "addPerson": "Aggiungi persona", - "share": "Condividi", - "sharing": "Condivisione...", - "permission": { - "read": "Lettura", - "write": "Lettura e modifica", - "admin": "Amministratore" - }, - "form": { - "calendar": "Calendario", - "email": "Indirizzo email", - "permission": "Autorizzazione" - } - } -} diff --git a/apps/calendar/apps/web-archived/src/lib/services/feedback.ts b/apps/calendar/apps/web-archived/src/lib/services/feedback.ts deleted file mode 100644 index e4032e017..000000000 --- a/apps/calendar/apps/web-archived/src/lib/services/feedback.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Feedback Service Instance for Calendar Web App - */ - -import { browser } from '$app/environment'; -import { createFeedbackService } from '@manacore/feedback'; -import { authStore } from '$lib/stores/auth.svelte'; - -// Get auth URL dynamically at runtime -function getAuthUrl(): string { - if (browser && typeof window !== 'undefined') { - const injectedUrl = (window as unknown as { __PUBLIC_MANA_CORE_AUTH_URL__?: string }) - .__PUBLIC_MANA_CORE_AUTH_URL__; - return injectedUrl || 'http://localhost:3001'; - } - return 'http://localhost:3001'; -} - -export const feedbackService = createFeedbackService({ - apiUrl: getAuthUrl(), - appId: 'calendar', - getAuthToken: async () => authStore.getAccessToken(), -}); diff --git a/apps/calendar/apps/web-archived/src/lib/services/stt.ts b/apps/calendar/apps/web-archived/src/lib/services/stt.ts deleted file mode 100644 index 037865503..000000000 --- a/apps/calendar/apps/web-archived/src/lib/services/stt.ts +++ /dev/null @@ -1,148 +0,0 @@ -/** - * Speech-to-Text (STT) Service Client - * - * Communicates with the mana-stt service for audio transcription. - */ - -import { browser } from '$app/environment'; - -/** - * STT service URL - uses runtime injection for production, env var for dev - */ -function getSttUrl(): string { - if (!browser) return 'http://localhost:3020'; - // Check runtime-injected variable first (production Docker) - const runtimeUrl = (window as any).__PUBLIC_STT_URL__; - if (runtimeUrl) return runtimeUrl; - // Fall back to build-time env var or default - return import.meta.env.PUBLIC_STT_URL || 'https://stt-api.mana.how'; -} - -const STT_URL = getSttUrl(); - -export interface TranscriptionResult { - /** The transcribed text */ - text: string; - /** Detected or specified language */ - language: string; - /** Model used for transcription */ - model: string; -} - -export interface TranscriptionError { - message: string; - code?: string; -} - -export type TranscriptionResponse = - | { success: true; data: TranscriptionResult } - | { success: false; error: TranscriptionError }; - -/** - * Transcribe audio using the mana-stt service - * - * @param audioBlob - The audio blob to transcribe - * @param language - Optional language code ('de', 'en', etc.) or 'auto' for auto-detection - * @returns The transcription result or error - */ -export async function transcribeAudio( - audioBlob: Blob, - language?: string -): Promise { - try { - const formData = new FormData(); - - // Determine file extension based on MIME type - const mimeType = audioBlob.type || 'audio/webm'; - let extension = 'webm'; - if (mimeType.includes('ogg')) extension = 'ogg'; - else if (mimeType.includes('mp4')) extension = 'mp4'; - else if (mimeType.includes('mpeg') || mimeType.includes('mp3')) extension = 'mp3'; - - formData.append('file', audioBlob, `recording.${extension}`); - - // Add language parameter if specified (and not 'auto') - if (language && language !== 'auto') { - formData.append('language', language); - } - - const response = await fetch(`${STT_URL}/transcribe`, { - method: 'POST', - body: formData, - }); - - if (!response.ok) { - let errorMessage = 'Transcription failed'; - try { - const errorData = await response.json(); - errorMessage = errorData.error || errorData.message || errorMessage; - } catch { - errorMessage = `HTTP ${response.status}: ${response.statusText}`; - } - - return { - success: false, - error: { - message: errorMessage, - code: `HTTP_${response.status}`, - }, - }; - } - - const data = await response.json(); - - // Handle empty transcription - if (!data.text || data.text.trim() === '') { - return { - success: false, - error: { - message: 'Keine Sprache erkannt. Bitte erneut versuchen.', - code: 'EMPTY_TRANSCRIPTION', - }, - }; - } - - return { - success: true, - data: { - text: data.text.trim(), - language: data.language || language || 'auto', - model: data.model || 'unknown', - }, - }; - } catch (error) { - // Handle network errors - if (error instanceof TypeError && error.message.includes('fetch')) { - return { - success: false, - error: { - message: 'Spracherkennung nicht verfügbar', - code: 'NETWORK_ERROR', - }, - }; - } - - return { - success: false, - error: { - message: error instanceof Error ? error.message : 'Unknown error', - code: 'UNKNOWN_ERROR', - }, - }; - } -} - -/** - * Check if the STT service is available - */ -export async function checkSttServiceHealth(): Promise { - try { - const response = await fetch(`${STT_URL}/health`, { - method: 'GET', - signal: AbortSignal.timeout(5000), // 5 second timeout - }); - return response.ok; - } catch { - return false; - } -} diff --git a/apps/calendar/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts deleted file mode 100644 index f5df717a9..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { createAppOnboardingStore, type AppOnboardingStep } from '@manacore/shared-app-onboarding'; -import { userSettings } from './user-settings.svelte'; -import { settingsStore } from './settings.svelte'; -import type { CalendarViewType } from '@calendar/shared'; - -/** - * Calendar-specific onboarding steps - */ -const calendarOnboardingSteps: AppOnboardingStep[] = [ - { - id: 'features', - type: 'info', - question: 'Willkommen bei Kalender!', - description: 'Das kann Kalender für dich tun:', - emoji: '📅', - gradient: { from: 'blue-500', to: 'blue-700' }, - bullets: [ - 'Termine erstellen & verwalten', - 'Wochen-, Monats- & Agenda-Ansicht', - 'Schnelleingabe per Text', - 'Drag & Drop zum Verschieben', - ], - }, - { - id: 'weekStart', - type: 'select', - question: 'Wann beginnt deine Woche?', - description: 'Diese Einstellung bestimmt die Anordnung deiner Kalenderansicht.', - emoji: '📅', - gradient: { from: 'blue-500', to: 'blue-700' }, - options: [ - { - id: 'monday', - label: 'Montag', - description: 'Europäischer Standard', - emoji: '1️⃣', - }, - { - id: 'sunday', - label: 'Sonntag', - description: 'Amerikanischer Standard', - emoji: '7️⃣', - }, - ], - defaultValue: 'monday', - }, - { - id: 'defaultView', - type: 'select', - question: 'Welche Ansicht bevorzugst du?', - description: 'Du kannst die Ansicht jederzeit in der App wechseln.', - emoji: '👁️', - gradient: { from: 'indigo-500', to: 'indigo-700' }, - options: [ - { - id: 'week', - label: 'Wochenansicht', - description: '7-Tage-Übersicht (Empfohlen)', - emoji: '🗓️', - }, - { - id: 'month', - label: 'Monatsansicht', - description: 'Kompakte Monatsübersicht', - emoji: '📅', - }, - { - id: 'agenda', - label: 'Agenda', - description: 'Chronologische Terminliste', - emoji: '📋', - }, - ], - defaultValue: 'week', - }, - { - id: 'welcome', - type: 'info', - question: 'Dein Kalender ist bereit!', - description: 'Hier sind einige Tipps für den Start:', - emoji: '🎉', - gradient: { from: 'primary', to: 'primary/70' }, - bullets: [ - 'Nutze die Schnelleingabe unten, um Termine per Text zu erstellen', - 'Drücke "F" für den Fokus-Modus ohne Ablenkungen', - 'Pfeiltasten navigieren zwischen Tagen/Wochen', - 'Ziehe Termine per Drag & Drop auf neue Zeiten', - ], - }, -]; - -/** - * Calendar app onboarding store - * - * Usage in components: - * ```svelte - * - * - * {#if calendarOnboarding.shouldShow} - * - * {/if} - * ``` - */ -export const calendarOnboarding = createAppOnboardingStore({ - appId: 'calendar', - steps: calendarOnboardingSteps, - userSettings, - onComplete: async (preferences) => { - // Apply week start preference - if (preferences.weekStart === 'monday') { - settingsStore.set('weekStartsOn', 1); - } else if (preferences.weekStart === 'sunday') { - settingsStore.set('weekStartsOn', 0); - } - - // Apply default view preference - const viewMap: Record = { - week: 'week', - month: 'month', - agenda: 'agenda', - }; - const selectedView = preferences.defaultView as string; - if (selectedView && viewMap[selectedView]) { - settingsStore.set('defaultView', viewMap[selectedView]); - } - }, - onSkip: async () => { - // Defaults are already sensible, nothing to do - }, -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/auth.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/auth.svelte.ts deleted file mode 100644 index 56987dc6a..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/auth.svelte.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Auth Store — uses centralized Mana auth factory. - */ - -import { createManaAuthStore } from '@manacore/shared-auth-stores'; - -export const authStore = createManaAuthStore({ - devBackendPort: 3014, -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/birthdays.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/birthdays.svelte.ts deleted file mode 100644 index 443a74e18..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/birthdays.svelte.ts +++ /dev/null @@ -1,219 +0,0 @@ -/** - * Birthdays Store - Manages contact birthdays for calendar display - * Cross-app integration with Contacts Backend - */ - -import { browser } from '$app/environment'; -import * as api from '$lib/api/birthdays'; -import type { ContactBirthdaySummary, BirthdayEvent } from '$lib/api/birthdays'; -import { getContactDisplayName, BIRTHDAY_CALENDAR } from '$lib/api/birthdays'; -import { differenceInYears, isSameDay, isWithinInterval, parseISO, format } from 'date-fns'; - -// Re-export types for convenience -export type { ContactBirthdaySummary, BirthdayEvent }; - -// ============================================ -// State -// ============================================ - -let birthdays = $state([]); -let loading = $state(false); -let error = $state(null); -let serviceAvailable = $state(true); -let lastFetchTime = $state(0); - -// Cache settings -const CACHE_TTL = 5 * 60 * 1000; // 5 minutes - -// ============================================ -// Store Export -// ============================================ - -export const birthdaysStore = { - // ========== Getters ========== - get birthdays() { - return birthdays ?? []; - }, - get loading() { - return loading; - }, - get error() { - return error; - }, - get serviceAvailable() { - return serviceAvailable; - }, - get calendarId() { - return BIRTHDAY_CALENDAR.id; - }, - get calendarColor() { - return BIRTHDAY_CALENDAR.color; - }, - get calendarName() { - return BIRTHDAY_CALENDAR.name; - }, - - // ========== Birthday Getters ========== - - /** - * Get birthday events for a specific day - * Matches by month and day (ignores year) - */ - getBirthdaysForDay(date: Date): BirthdayEvent[] { - const currentBirthdays = birthdays ?? []; - if (!Array.isArray(currentBirthdays) || currentBirthdays.length === 0) return []; - - return currentBirthdays - .filter((contact) => { - if (!contact.birthday) return false; - const birthdayDate = parseISO(contact.birthday); - // Compare month and day only - return ( - birthdayDate.getMonth() === date.getMonth() && birthdayDate.getDate() === date.getDate() - ); - }) - .map((contact) => this.toBirthdayEvent(contact, date)); - }, - - /** - * Get birthday events within a date range - */ - getBirthdaysInRange(start: Date, end: Date): BirthdayEvent[] { - const currentBirthdays = birthdays ?? []; - if (!Array.isArray(currentBirthdays) || currentBirthdays.length === 0) return []; - - const events: BirthdayEvent[] = []; - const current = new Date(start); - - // Iterate through each day in range - while (current <= end) { - const dayBirthdays = this.getBirthdaysForDay(current); - events.push(...dayBirthdays); - current.setDate(current.getDate() + 1); - } - - return events; - }, - - /** - * Check if a specific day has any birthdays - */ - hasBirthdaysOnDay(date: Date): boolean { - const currentBirthdays = birthdays ?? []; - if (!Array.isArray(currentBirthdays)) return false; - - return currentBirthdays.some((contact) => { - if (!contact.birthday) return false; - const birthdayDate = parseISO(contact.birthday); - return ( - birthdayDate.getMonth() === date.getMonth() && birthdayDate.getDate() === date.getDate() - ); - }); - }, - - /** - * Get upcoming birthdays (next N days) - */ - getUpcomingBirthdays(days: number = 30): BirthdayEvent[] { - const start = new Date(); - const end = new Date(); - end.setDate(end.getDate() + days); - return this.getBirthdaysInRange(start, end); - }, - - /** - * Convert contact to birthday event - */ - toBirthdayEvent(contact: ContactBirthdaySummary, displayDate: Date): BirthdayEvent { - const displayName = getContactDisplayName(contact); - const birthdayDate = parseISO(contact.birthday); - const birthYear = birthdayDate.getFullYear(); - - // Calculate age (0 if year seems invalid, e.g., 1900 default) - let age = differenceInYears(displayDate, birthdayDate); - if (birthYear < 1900 || birthYear > new Date().getFullYear()) { - age = 0; // Unknown birth year - } - - const dateStr = format(displayDate, 'yyyy-MM-dd'); - - return { - id: `birthday-${contact.id}-${dateStr}`, - contactId: contact.id, - title: `${displayName}`, - displayName, - photoUrl: contact.photoUrl, - birthday: contact.birthday, - age, - startTime: displayDate.toISOString(), - endTime: displayDate.toISOString(), - isAllDay: true, - isBirthday: true, - calendarId: BIRTHDAY_CALENDAR.id, - }; - }, - - // ========== API Methods ========== - - /** - * Fetch birthdays from Contacts service - * Uses cache to avoid frequent refetches - */ - async fetchBirthdays(force = false) { - if (!browser) return; - - // Use cache if still valid - if (!force && Date.now() - lastFetchTime < CACHE_TTL && birthdays.length > 0) { - return; - } - - loading = true; - error = null; - - const result = await api.getBirthdays(); - - if (result.error) { - error = result.error.message; - serviceAvailable = false; - } else { - birthdays = result.data || []; - serviceAvailable = true; - lastFetchTime = Date.now(); - } - - loading = false; - }, - - /** - * Check if Contacts service is available - */ - async checkServiceHealth(): Promise { - const result = await api.getBirthdays(); - serviceAvailable = !result.error; - return serviceAvailable; - }, - - /** - * Clear birthdays cache - */ - clear() { - birthdays = []; - lastFetchTime = 0; - }, - - /** - * Get contact by ID from cached birthdays - */ - getContactById(id: string): ContactBirthdaySummary | undefined { - const currentBirthdays = birthdays ?? []; - if (!Array.isArray(currentBirthdays)) return undefined; - return currentBirthdays.find((c) => c.id === id); - }, - - /** - * Count of contacts with birthdays - */ - get count(): number { - return birthdays?.length ?? 0; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/calendars.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/calendars.svelte.ts deleted file mode 100644 index 14d94f7d8..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/calendars.svelte.ts +++ /dev/null @@ -1,143 +0,0 @@ -/** - * Calendars Store — Mutations Only - * - * Reads come from useLiveQuery (see $lib/data/queries.ts). - * This store only handles writes to IndexedDB. - */ - -import type { Calendar, CreateCalendarInput, UpdateCalendarInput } from '@calendar/shared'; -import { calendarCollection, type LocalCalendar } from '$lib/data/local-store'; -import { BIRTHDAY_CALENDAR } from '$lib/api/birthdays'; -import { settingsStore } from './settings.svelte'; -import { CalendarEvents } from '@manacore/shared-utils/analytics'; -import { toCalendar } from '$lib/data/queries'; - -// Mutation error state -let error = $state(null); - -export const calendarsStore = { - get error() { - return error; - }, - get birthdayCalendarId() { - return BIRTHDAY_CALENDAR.id; - }, - get guestCalendarId() { - return 'personal-calendar'; - }, - - /** - * Create a new calendar — writes to IndexedDB instantly. - */ - async createCalendar(data: CreateCalendarInput) { - error = null; - try { - const newLocal: LocalCalendar = { - id: crypto.randomUUID(), - name: data.name, - color: data.color ?? '#3B82F6', - isDefault: data.isDefault ?? false, - isVisible: data.isVisible ?? true, - timezone: data.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone, - }; - - const inserted = await calendarCollection.insert(newLocal); - const newCalendar = toCalendar(inserted); - CalendarEvents.calendarCreated(); - return { data: newCalendar, error: null }; - } catch (e) { - const msg = e instanceof Error ? e.message : 'Failed to create calendar'; - error = msg; - return { data: null, error: { message: msg } }; - } - }, - - /** - * Update a calendar — writes to IndexedDB instantly. - */ - async updateCalendar(id: string, data: UpdateCalendarInput) { - error = null; - try { - const updated = await calendarCollection.update(id, data as Partial); - if (updated) { - const updatedCalendar = toCalendar(updated); - return { data: updatedCalendar, error: null }; - } - return { data: null, error: null }; - } catch (e) { - const msg = e instanceof Error ? e.message : 'Failed to update calendar'; - error = msg; - return { data: null, error: { message: msg } }; - } - }, - - /** - * Delete a calendar — removes from IndexedDB instantly. - */ - async deleteCalendar(id: string) { - error = null; - try { - await calendarCollection.delete(id); - CalendarEvents.calendarDeleted(); - return { error: null }; - } catch (e) { - const msg = e instanceof Error ? e.message : 'Failed to delete calendar'; - error = msg; - return { error: { message: msg } }; - } - }, - - /** - * Toggle calendar visibility (needs current calendars from context) - */ - async toggleVisibility(id: string, calendars: Calendar[]) { - const calendar = calendars.find((c) => c.id === id); - if (!calendar) return; - return this.updateCalendar(id, { isVisible: !calendar.isVisible }); - }, - - /** - * Set a calendar as the default (needs current calendars from context) - */ - async setAsDefault(id: string, calendars: Calendar[]) { - error = null; - try { - // Remove default from all others first - for (const cal of calendars) { - if (cal.isDefault && cal.id !== id) { - await calendarCollection.update(cal.id, { isDefault: false } as Partial); - } - } - // Set the new default - const updated = await calendarCollection.update(id, { - isDefault: true, - } as Partial); - return { data: updated ? toCalendar(updated) : null, error: null }; - } catch (e) { - const msg = e instanceof Error ? e.message : 'Failed to set default'; - error = msg; - return { data: null, error: { message: msg } }; - } - }, - - /** - * Toggle birthday calendar visibility - */ - toggleBirthdaysVisibility() { - settingsStore.set('showBirthdays', !settingsStore.showBirthdays); - }, - - /** - * Check if a calendar ID is the virtual birthday calendar - */ - isBirthdayCalendar(id: string) { - return id === BIRTHDAY_CALENDAR.id; - }, - - /** - * Check if a calendar ID is the guest calendar - */ - isGuestCalendar(id: string) { - return id === 'personal-calendar'; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/contacts.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/contacts.svelte.ts deleted file mode 100644 index 35ddf5f7f..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/contacts.svelte.ts +++ /dev/null @@ -1,175 +0,0 @@ -/** - * Contacts Store for Calendar App - * - * Provides access to contacts from the Contacts app for event attendee management. - */ - -import { browser } from '$app/environment'; -import { createContactsClient, type ContactsClient } from '@manacore/shared-auth'; -import type { ContactSummary } from '@manacore/shared-types'; -import { authStore } from './auth.svelte'; - -// State -let client: ContactsClient | null = null; -let isAvailable = $state(null); -let isChecking = $state(false); -let lastCheck = $state(0); - -// Cache for recent search results -let searchCache = $state>(new Map()); -const CACHE_TTL = 60000; // 1 minute - -// Get contacts API URL dynamically -function getContactsApiUrl(): string { - if (browser && typeof window !== 'undefined') { - const injectedUrl = (window as unknown as { __PUBLIC_CONTACTS_API_URL__?: string }) - .__PUBLIC_CONTACTS_API_URL__; - return injectedUrl || 'http://localhost:3015/api/v1'; - } - return 'http://localhost:3015/api/v1'; -} - -// Initialize client lazily -function getClient(): ContactsClient { - if (!client) { - client = createContactsClient({ - apiUrl: getContactsApiUrl(), - getAuthToken: async () => authStore.getAccessToken(), - timeout: 5000, - }); - } - return client; -} - -export const contactsStore = { - // Getters - get isAvailable() { - return isAvailable; - }, - get isChecking() { - return isChecking; - }, - - /** - * Check if the Contacts API is available - * Caches result for 30 seconds - */ - async checkAvailability(): Promise { - const now = Date.now(); - // Skip if checked recently - if (lastCheck && now - lastCheck < 30000 && isAvailable !== null) { - return isAvailable; - } - - isChecking = true; - try { - const available = await getClient().isAvailable(); - isAvailable = available; - lastCheck = now; - return available; - } catch { - isAvailable = false; - lastCheck = now; - return false; - } finally { - isChecking = false; - } - }, - - /** - * Search contacts by query string - */ - async searchContacts(query: string): Promise { - // Check cache first - const cacheKey = query.toLowerCase().trim(); - const cached = searchCache.get(cacheKey); - if (cached && Date.now() - cached.timestamp < CACHE_TTL) { - return cached.results; - } - - // Check availability - if (isAvailable === null) { - await this.checkAvailability(); - } - - if (!isAvailable) { - return []; - } - - try { - const results = await getClient().searchContacts({ - query, - limit: 20, - excludeArchived: true, - }); - - // Cache results - searchCache.set(cacheKey, { - results, - timestamp: Date.now(), - }); - - return results; - } catch (error) { - console.error('[contactsStore] Search failed:', error); - return []; - } - }, - - /** - * Get a single contact by ID - */ - async getContact(id: string): Promise { - if (isAvailable === null) { - await this.checkAvailability(); - } - - if (!isAvailable) { - return null; - } - - try { - return await getClient().getContact(id); - } catch (error) { - console.error(`[contactsStore] Failed to get contact ${id}:`, error); - return null; - } - }, - - /** - * Get multiple contacts by IDs - */ - async getContacts(ids: string[]): Promise { - if (ids.length === 0) return []; - - if (isAvailable === null) { - await this.checkAvailability(); - } - - if (!isAvailable) { - return []; - } - - try { - return await getClient().getContacts(ids); - } catch (error) { - console.error('[contactsStore] Failed to get contacts:', error); - return []; - } - }, - - /** - * Clear the search cache - */ - clearCache() { - searchCache.clear(); - }, - - /** - * Reset availability check (force recheck on next call) - */ - resetAvailability() { - isAvailable = null; - lastCheck = 0; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/event-tags.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/event-tags.svelte.ts deleted file mode 100644 index ab21dab3c..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/event-tags.svelte.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Event Tags Store — Local-First via Shared Tag Store - */ -export { - tagMutations, - useAllTags, - getTagById, - getTagsByIds, - getTagColor, - getTagsByGroup, -} from '@manacore/shared-stores'; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/eventModal.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/eventModal.svelte.ts deleted file mode 100644 index 33ddc3496..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/eventModal.svelte.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Event Modal Store - Manages event detail modal state with URL support - */ - -let selectedEventId = $state(null); - -export const eventModalStore = { - get eventId() { - return selectedEventId; - }, - - get isOpen() { - return selectedEventId !== null; - }, - - /** - * Open the event detail modal - */ - open(eventId: string) { - selectedEventId = eventId; - // Update URL without full navigation - const url = new URL(window.location.href); - url.searchParams.set('event', eventId); - window.history.pushState({}, '', url.toString()); - }, - - /** - * Close the event detail modal - */ - close() { - selectedEventId = null; - // Remove event param from URL - const url = new URL(window.location.href); - url.searchParams.delete('event'); - window.history.pushState({}, '', url.toString()); - }, - - /** - * Initialize from URL (call on page mount) - */ - initFromUrl(searchParams: URLSearchParams) { - const eventId = searchParams.get('event'); - if (eventId) { - selectedEventId = eventId; - } - }, - - /** - * Reset state (for cleanup) - */ - reset() { - selectedEventId = null; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/events-recurrence.test.ts b/apps/calendar/apps/web-archived/src/lib/stores/events-recurrence.test.ts deleted file mode 100644 index 65ea7b69c..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/events-recurrence.test.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { describe, it, expect, vi } from 'vitest'; -import type { CalendarEvent } from '@calendar/shared'; - -// Mock local-store to avoid import.meta.env issues in tests -vi.mock('$lib/data/local-store', () => ({ - eventCollection: {}, - calendarCollection: {}, -})); - -vi.mock('@manacore/local-store/svelte', () => ({ - useLiveQueryWithDefault: vi.fn(), -})); - -vi.mock('$lib/api/birthdays', () => ({ - BIRTHDAY_CALENDAR: { id: 'birthday-cal', name: 'Birthdays', color: '#ec4899' }, -})); - -vi.mock('@manacore/shared-ui', () => ({ - toastStore: { error: vi.fn(), success: vi.fn() }, -})); - -import { expandRecurringEvents } from '$lib/data/queries'; -import { eventsStore } from './events.svelte'; - -function makeEvent(overrides: Partial = {}): CalendarEvent { - return { - id: 'evt-1', - calendarId: 'cal-1', - userId: 'user-1', - title: 'Test', - description: null, - location: null, - startTime: '2026-03-15T10:00:00', - endTime: '2026-03-15T11:00:00', - isAllDay: false, - timezone: 'Europe/Berlin', - recurrenceRule: null, - recurrenceEndDate: null, - recurrenceExceptions: null, - parentEventId: null, - color: null, - status: 'confirmed', - externalId: null, - metadata: null, - createdAt: '2026-03-01T00:00:00', - updatedAt: '2026-03-01T00:00:00', - ...overrides, - }; -} - -describe('expandRecurringEvents', () => { - it('should expand daily recurring event', () => { - const events = [ - makeEvent({ - id: 'r1', - startTime: '2026-03-01T09:00:00', - endTime: '2026-03-01T09:30:00', - recurrenceRule: 'FREQ=DAILY', - }), - ]; - const result = expandRecurringEvents(events, new Date('2026-03-01'), new Date('2026-03-07')); - expect(result.length).toBeGreaterThanOrEqual(6); - for (const e of result) { - expect(e.id).toContain('r1__recurrence__'); - expect(e.parentEventId).toBe('r1'); - } - }); - - it('should preserve event duration in occurrences', () => { - const events = [ - makeEvent({ - id: 'w1', - startTime: '2026-03-02T14:00:00', - endTime: '2026-03-02T15:00:00', - recurrenceRule: 'FREQ=WEEKLY', - }), - ]; - const result = expandRecurringEvents(events, new Date('2026-03-01'), new Date('2026-03-31')); - for (const e of result) { - const dur = new Date(e.endTime).getTime() - new Date(e.startTime).getTime(); - expect(dur).toBe(3600000); - } - }); - - it('should respect exceptions', () => { - const events = [ - makeEvent({ - id: 'exc', - startTime: '2026-03-01T09:00:00', - endTime: '2026-03-01T09:30:00', - recurrenceRule: 'FREQ=DAILY', - recurrenceExceptions: ['2026-03-03', '2026-03-05'], - }), - ]; - const result = expandRecurringEvents(events, new Date('2026-03-01'), new Date('2026-03-07')); - const dates = result.map((e) => e.id.split('__recurrence__')[1]); - expect(dates).not.toContain('2026-03-03'); - expect(dates).not.toContain('2026-03-05'); - expect(dates).toContain('2026-03-01'); - }); - - it('should not expand non-recurring events', () => { - const events = [makeEvent({ id: 'normal' })]; - const result = expandRecurringEvents(events, new Date('2026-03-01'), new Date('2026-03-31')); - expect(result).toHaveLength(1); - expect(result[0].id).toBe('normal'); - }); -}); - -describe('recurrence helpers', () => { - it('isRecurrenceOccurrence', () => { - expect(eventsStore.isRecurrenceOccurrence('evt__recurrence__2026-03-15')).toBe(true); - expect(eventsStore.isRecurrenceOccurrence('evt-1')).toBe(false); - }); - - it('getParentEventId', () => { - expect(eventsStore.getParentEventId('evt-1__recurrence__2026-03-15')).toBe('evt-1'); - expect(eventsStore.getParentEventId('evt-1')).toBe('evt-1'); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/events.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/events.svelte.ts deleted file mode 100644 index ea6d52017..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/events.svelte.ts +++ /dev/null @@ -1,208 +0,0 @@ -/** - * Events Store — Mutations Only - * - * Reads come from useLiveQuery (see $lib/data/queries.ts). - * This store only handles writes to IndexedDB and draft event state. - */ - -import type { CalendarEvent, CreateEventInput, UpdateEventInput } from '@calendar/shared'; -import { eventCollection, type LocalEvent } from '$lib/data/local-store'; -import { toastStore } from '@manacore/shared-ui'; -import { CalendarEvents } from '@manacore/shared-utils/analytics'; -import { get } from 'svelte/store'; -import { _ } from 'svelte-i18n'; -import { toCalendarEvent } from '$lib/data/queries'; - -// Mutation error state -let error = $state(null); - -// Draft event for quick create (temporary event shown in grid before saving) -let draftEvent = $state(null); - -export const eventsStore = { - get error() { - return error; - }, - get draftEvent() { - return draftEvent; - }, - - /** - * Create a new event — writes to IndexedDB instantly. - */ - async createEvent(data: CreateEventInput) { - error = null; - try { - const newLocal: LocalEvent = { - id: crypto.randomUUID(), - calendarId: data.calendarId ?? '', - title: data.title, - description: data.description ?? null, - startDate: - typeof data.startTime === 'string' - ? data.startTime - : new Date(data.startTime).toISOString(), - endDate: - typeof data.endTime === 'string' ? data.endTime : new Date(data.endTime).toISOString(), - allDay: data.isAllDay ?? false, - location: data.location ?? null, - recurrenceRule: data.recurrenceRule ?? null, - color: data.color ?? null, - reminders: null, - }; - - const inserted = await eventCollection.insert(newLocal); - const newEvent = toCalendarEvent(inserted); - CalendarEvents.eventCreated(!!data.recurrenceRule); - return { data: newEvent, error: null }; - } catch (e) { - const msg = e instanceof Error ? e.message : 'Failed to create event'; - error = msg; - return { data: null, error: { message: msg } }; - } - }, - - /** - * Update an event — writes to IndexedDB instantly. - */ - async updateEvent(id: string, data: UpdateEventInput) { - error = null; - try { - // Map shared types to local field names - const localData: Partial = {}; - if (data.title !== undefined) localData.title = data.title; - if (data.description !== undefined) localData.description = data.description; - if (data.startTime !== undefined) - localData.startDate = - typeof data.startTime === 'string' - ? data.startTime - : new Date(data.startTime).toISOString(); - if (data.endTime !== undefined) - localData.endDate = - typeof data.endTime === 'string' ? data.endTime : new Date(data.endTime).toISOString(); - if (data.isAllDay !== undefined) localData.allDay = data.isAllDay; - if (data.location !== undefined) localData.location = data.location; - if (data.recurrenceRule !== undefined) localData.recurrenceRule = data.recurrenceRule; - if (data.color !== undefined) localData.color = data.color; - if (data.calendarId !== undefined) localData.calendarId = data.calendarId; - - const updated = await eventCollection.update(id, localData); - if (updated) { - const updatedEvent = toCalendarEvent(updated); - CalendarEvents.eventUpdated(); - return { data: updatedEvent, error: null }; - } - return { data: null, error: null }; - } catch (e) { - const msg = e instanceof Error ? e.message : 'Failed to update event'; - error = msg; - toastStore.error(get(_)('toast.eventUpdateError') + ': ' + msg); - return { data: null, error: { message: msg } }; - } - }, - - /** - * Delete an event — removes from IndexedDB instantly. - */ - async deleteEvent(id: string) { - error = null; - try { - await eventCollection.delete(id); - CalendarEvents.eventDeleted(); - toastStore.success(get(_)('toast.eventDeleted')); - return { error: null }; - } catch (e) { - const msg = e instanceof Error ? e.message : 'Failed to delete event'; - error = msg; - toastStore.error(get(_)('toast.eventDeleteError') + ': ' + msg); - return { error: { message: msg } }; - } - }, - - // ========== Draft Event Methods ========== - - createDraftEvent(data: Partial) { - draftEvent = { - id: '__draft__', - calendarId: data.calendarId || '', - userId: '', - title: data.title || '', - description: data.description || null, - location: data.location || null, - startTime: data.startTime || new Date().toISOString(), - endTime: data.endTime || new Date().toISOString(), - isAllDay: data.isAllDay || false, - timezone: data.timezone || null, - recurrenceRule: null, - recurrenceEndDate: null, - recurrenceExceptions: null, - parentEventId: null, - color: data.color || null, - status: 'confirmed', - externalId: null, - metadata: data.metadata || null, - createdAt: new Date().toISOString(), - updatedAt: new Date().toISOString(), - } as CalendarEvent; - return draftEvent; - }, - - updateDraftEvent(data: Partial) { - if (draftEvent) { - draftEvent = { ...draftEvent, ...data }; - } - }, - - clearDraftEvent() { - draftEvent = null; - }, - - isDraftEvent(eventId: string) { - return eventId === '__draft__'; - }, - - isRecurrenceOccurrence(eventId: string) { - return eventId.includes('__recurrence__'); - }, - - getParentEventId(eventId: string): string { - if (eventId.includes('__recurrence__')) { - return eventId.split('__recurrence__')[0]; - } - return eventId; - }, - - /** - * Delete a single occurrence of a recurring event by adding an exception date - */ - async deleteRecurrenceOccurrence(eventId: string) { - const dateKey = eventId.split('__recurrence__')[1]; - - // For local-first, we would ideally store exceptions in IndexedDB. - // For now, toast success (the event structure doesn't support exceptions at local level yet). - try { - toastStore.success(get(_)('toast.eventDeleted')); - return { error: null }; - } catch (e) { - const msg = e instanceof Error ? e.message : 'Failed to delete occurrence'; - toastStore.error(get(_)('toast.error') + ': ' + msg); - return { error: { message: msg } }; - } - }, - - /** - * Delete all occurrences of a recurring event (deletes the parent) - */ - async deleteRecurrenceSeries(eventId: string) { - const parentId = this.getParentEventId(eventId); - return this.deleteEvent(parentId); - }, - - /** - * Update all occurrences of a recurring event (updates the parent) - */ - async updateRecurrenceSeries(eventId: string, data: UpdateEventInput) { - const parentId = this.getParentEventId(eventId); - return this.updateEvent(parentId, data); - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/events.test.ts b/apps/calendar/apps/web-archived/src/lib/stores/events.test.ts deleted file mode 100644 index 1983b14b4..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/events.test.ts +++ /dev/null @@ -1,163 +0,0 @@ -import { describe, it, expect, vi } from 'vitest'; -import type { CalendarEvent } from '@calendar/shared'; - -// Mock local-store to avoid import.meta.env issues in tests -vi.mock('$lib/data/local-store', () => ({ - eventCollection: {}, - calendarCollection: {}, -})); - -vi.mock('@manacore/local-store/svelte', () => ({ - useLiveQueryWithDefault: vi.fn(), -})); - -vi.mock('$lib/api/birthdays', () => ({ - BIRTHDAY_CALENDAR: { id: 'birthday-cal', name: 'Birthdays', color: '#ec4899' }, -})); - -vi.mock('@manacore/shared-ui', () => ({ - toastStore: { error: vi.fn(), success: vi.fn() }, -})); - -import { getEventsForDay, getEventsInRange } from '$lib/data/queries'; -import { eventsStore } from './events.svelte'; - -function makeEvent(overrides: Partial = {}): CalendarEvent { - return { - id: 'evt-1', - calendarId: 'cal-1', - userId: 'user-1', - title: 'Test Event', - description: null, - location: null, - startTime: '2026-03-15T10:00:00', - endTime: '2026-03-15T11:00:00', - isAllDay: false, - timezone: 'Europe/Berlin', - recurrenceRule: null, - recurrenceEndDate: null, - recurrenceExceptions: null, - parentEventId: null, - color: null, - status: 'confirmed', - externalId: null, - metadata: null, - createdAt: '2026-03-01T00:00:00', - updatedAt: '2026-03-01T00:00:00', - ...overrides, - }; -} - -describe('getEventsForDay', () => { - it('should return events that start on the given day', () => { - const events = [ - makeEvent({ id: 'evt-1', startTime: '2026-03-15T10:00:00', endTime: '2026-03-15T11:00:00' }), - ]; - const result = getEventsForDay(events, new Date('2026-03-15')); - expect(result).toHaveLength(1); - expect(result[0].id).toBe('evt-1'); - }); - - it('should not return events from a different day', () => { - const events = [ - makeEvent({ startTime: '2026-03-15T10:00:00', endTime: '2026-03-15T11:00:00' }), - ]; - const result = getEventsForDay(events, new Date('2026-03-16')); - expect(result).toHaveLength(0); - }); - - it('should include all-day events that span the given day', () => { - const events = [ - makeEvent({ - id: 'allday-1', - startTime: '2026-03-14T00:00:00', - endTime: '2026-03-16T23:59:59', - isAllDay: true, - }), - ]; - const result = getEventsForDay(events, new Date('2026-03-15')); - expect(result).toHaveLength(1); - expect(result[0].id).toBe('allday-1'); - }); -}); - -describe('getEventsInRange', () => { - it('should return events that overlap with the given range', () => { - const events = [ - makeEvent({ id: 'evt-1', startTime: '2026-03-15T10:00:00', endTime: '2026-03-15T11:00:00' }), - makeEvent({ id: 'evt-2', startTime: '2026-03-20T14:00:00', endTime: '2026-03-20T15:00:00' }), - ]; - const result = getEventsInRange(events, new Date('2026-03-14'), new Date('2026-03-16')); - expect(result).toHaveLength(1); - expect(result[0].id).toBe('evt-1'); - }); - - it('should return events that partially overlap the range', () => { - const events = [ - makeEvent({ startTime: '2026-03-14T22:00:00', endTime: '2026-03-15T02:00:00' }), - ]; - const result = getEventsInRange( - events, - new Date('2026-03-15T00:00:00'), - new Date('2026-03-15T23:59:59') - ); - expect(result).toHaveLength(1); - }); - - it('should return empty array when no events in range', () => { - const events = [ - makeEvent({ startTime: '2026-03-20T10:00:00', endTime: '2026-03-20T11:00:00' }), - ]; - const result = getEventsInRange(events, new Date('2026-03-14'), new Date('2026-03-16')); - expect(result).toHaveLength(0); - }); -}); - -describe('createDraftEvent / clearDraftEvent', () => { - it('should create a draft event with __draft__ id', () => { - const draft = eventsStore.createDraftEvent({ - title: 'Draft Meeting', - startTime: '2026-03-15T10:00:00', - endTime: '2026-03-15T11:00:00', - }); - - expect(draft.id).toBe('__draft__'); - expect(draft.title).toBe('Draft Meeting'); - expect(eventsStore.draftEvent).not.toBeNull(); - expect(eventsStore.draftEvent?.id).toBe('__draft__'); - }); - - it('should clear the draft event', () => { - eventsStore.createDraftEvent({ - title: 'Draft', - startTime: '2026-03-15T10:00:00', - endTime: '2026-03-15T11:00:00', - }); - - expect(eventsStore.draftEvent).not.toBeNull(); - eventsStore.clearDraftEvent(); - expect(eventsStore.draftEvent).toBeNull(); - }); - - it('should set default values for missing fields', () => { - const draft = eventsStore.createDraftEvent({}); - - expect(draft.calendarId).toBe(''); - expect(draft.title).toBe(''); - expect(draft.isAllDay).toBe(false); - expect(draft.status).toBe('confirmed'); - expect(draft.description).toBeNull(); - expect(draft.location).toBeNull(); - }); -}); - -describe('isDraftEvent', () => { - it('should return true for __draft__ id', () => { - expect(eventsStore.isDraftEvent('__draft__')).toBe(true); - }); - - it('should return false for regular event ids', () => { - expect(eventsStore.isDraftEvent('evt-1')).toBe(false); - expect(eventsStore.isDraftEvent('')).toBe(false); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/external-calendars.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/external-calendars.svelte.ts deleted file mode 100644 index 5c0338ba1..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/external-calendars.svelte.ts +++ /dev/null @@ -1,139 +0,0 @@ -/** - * External Calendars Store - Manages CalDAV/iCal/Google calendar connections - */ - -import type { ExternalCalendar, ConnectExternalCalendarInput } from '@calendar/shared'; -import * as api from '$lib/api/sync'; -import { toastStore } from '@manacore/shared-ui'; -import { get } from 'svelte/store'; -import { _ } from 'svelte-i18n'; - -// State -let externalCalendars = $state([]); -let loading = $state(false); -let error = $state(null); -let syncingIds = $state>(new Set()); - -function getArray(): ExternalCalendar[] { - const arr = externalCalendars ?? []; - return Array.isArray(arr) ? arr : []; -} - -export const externalCalendarsStore = { - get calendars() { - return externalCalendars; - }, - get loading() { - return loading; - }, - get error() { - return error; - }, - - isSyncing(id: string) { - return syncingIds.has(id); - }, - - async fetchCalendars() { - loading = true; - error = null; - - const result = await api.getExternalCalendars(); - - if (result.error) { - error = result.error.message; - externalCalendars = []; - } else { - externalCalendars = result.data || []; - } - - loading = false; - return result; - }, - - async connect(data: ConnectExternalCalendarInput) { - const result = await api.connectExternalCalendar(data); - - if (result.error) { - toastStore.error(get(_)('toast.connectionError') + ': ' + result.error.message); - } else if (result.data) { - externalCalendars = [...externalCalendars, result.data]; - toastStore.success(get(_)('toast.calendarConnected', { values: { name: data.name } })); - } - - return result; - }, - - async update(id: string, data: api.UpdateExternalCalendarInput) { - const result = await api.updateExternalCalendar(id, data); - - if (result.error) { - toastStore.error(get(_)('toast.updateError') + ': ' + result.error.message); - } else if (result.data) { - externalCalendars = getArray().map((c) => (c.id === id ? result.data! : c)); - } - - return result; - }, - - async disconnect(id: string) { - const cal = getArray().find((c) => c.id === id); - const result = await api.disconnectExternalCalendar(id); - - if (result.error) { - toastStore.error(get(_)('toast.connectionError') + ': ' + result.error.message); - } else { - externalCalendars = getArray().filter((c) => c.id !== id); - toastStore.success( - get(_)('toast.calendarDisconnected', { - values: { name: cal?.name || get(_)('common.calendar') }, - }) - ); - } - - return result; - }, - - async triggerSync(id: string) { - syncingIds = new Set([...syncingIds, id]); - - const result = await api.triggerSync(id); - - if (result.error) { - toastStore.error(get(_)('toast.syncError') + ': ' + result.error.message); - // Update last sync error in local state - externalCalendars = getArray().map((c) => - c.id === id ? { ...c, lastSyncError: result.error!.message } : c - ); - } else { - toastStore.success(get(_)('toast.syncCompleted')); - // Update local state with new sync time - externalCalendars = getArray().map((c) => - c.id === id ? { ...c, lastSyncAt: new Date().toISOString(), lastSyncError: null } : c - ); - } - - const newSet = new Set(syncingIds); - newSet.delete(id); - syncingIds = newSet; - - return result; - }, - - async discoverCalDav(serverUrl: string, username: string, password: string) { - return api.discoverCalDav(serverUrl, username, password); - }, - - async getGoogleAuthUrl() { - return api.getGoogleAuthUrl(); - }, - - getById(id: string) { - return getArray().find((c) => c.id === id); - }, - - clear() { - externalCalendars = []; - error = null; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/external-calendars.test.ts b/apps/calendar/apps/web-archived/src/lib/stores/external-calendars.test.ts deleted file mode 100644 index bed028db3..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/external-calendars.test.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; - -vi.mock('$lib/api/sync', () => ({ - getExternalCalendars: vi.fn(), - connectExternalCalendar: vi.fn(), - updateExternalCalendar: vi.fn(), - disconnectExternalCalendar: vi.fn(), - triggerSync: vi.fn(), - discoverCalDav: vi.fn(), - getGoogleAuthUrl: vi.fn(), -})); - -vi.mock('@manacore/shared-ui', () => ({ - toastStore: { error: vi.fn(), success: vi.fn() }, -})); - -vi.mock('svelte-i18n', () => { - const { readable } = require('svelte/store'); - return { - _: readable((key: string) => key), - }; -}); - -import * as api from '$lib/api/sync'; -import { externalCalendarsStore } from './external-calendars.svelte'; -import type { ExternalCalendar } from '@calendar/shared'; - -const mockFetch = vi.mocked(api.getExternalCalendars); -const mockConnect = vi.mocked(api.connectExternalCalendar); -const mockUpdate = vi.mocked(api.updateExternalCalendar); -const mockDisconnect = vi.mocked(api.disconnectExternalCalendar); -const mockSync = vi.mocked(api.triggerSync); - -function makeCal(overrides: Partial = {}): ExternalCalendar { - return { - id: 'ext-1', - userId: 'user-1', - name: 'Google', - provider: 'google', - calendarUrl: 'https://google.com/cal', - syncEnabled: true, - syncDirection: 'both', - syncInterval: 15, - lastSyncAt: null, - lastSyncError: null, - color: '#4285f4', - isVisible: true, - providerData: null, - createdAt: '2026-03-01', - updatedAt: '2026-03-01', - ...overrides, - }; -} - -describe('externalCalendarsStore', () => { - beforeEach(() => { - vi.clearAllMocks(); - externalCalendarsStore.clear(); - }); - - it('should load calendars', async () => { - mockFetch.mockResolvedValue({ - data: [makeCal({ id: 'ext-1' }), makeCal({ id: 'ext-2' })], - error: null, - }); - await externalCalendarsStore.fetchCalendars(); - expect(externalCalendarsStore.calendars).toHaveLength(2); - expect(externalCalendarsStore.loading).toBe(false); - }); - - it('should set error on fetch failure', async () => { - mockFetch.mockResolvedValue({ - data: null, - error: { message: 'fail', code: 'ERR', status: 500 }, - }); - await externalCalendarsStore.fetchCalendars(); - expect(externalCalendarsStore.error).toBe('fail'); - }); - - it('should add calendar on connect', async () => { - mockConnect.mockResolvedValue({ data: makeCal({ id: 'new' }), error: null }); - await externalCalendarsStore.connect({ name: 'X', provider: 'caldav', calendarUrl: 'url' }); - expect(externalCalendarsStore.calendars).toHaveLength(1); - }); - - it('should remove calendar on disconnect', async () => { - mockFetch.mockResolvedValue({ data: [makeCal()], error: null }); - await externalCalendarsStore.fetchCalendars(); - mockDisconnect.mockResolvedValue({ data: { success: true }, error: null }); - await externalCalendarsStore.disconnect('ext-1'); - expect(externalCalendarsStore.calendars).toHaveLength(0); - }); - - it('should update calendar', async () => { - mockFetch.mockResolvedValue({ data: [makeCal({ syncEnabled: true })], error: null }); - await externalCalendarsStore.fetchCalendars(); - mockUpdate.mockResolvedValue({ data: makeCal({ syncEnabled: false }), error: null }); - await externalCalendarsStore.update('ext-1', { syncEnabled: false }); - expect(externalCalendarsStore.calendars[0].syncEnabled).toBe(false); - }); - - it('should update lastSyncAt on sync success', async () => { - mockFetch.mockResolvedValue({ data: [makeCal({ lastSyncAt: null })], error: null }); - await externalCalendarsStore.fetchCalendars(); - mockSync.mockResolvedValue({ data: { success: true }, error: null }); - await externalCalendarsStore.triggerSync('ext-1'); - expect(externalCalendarsStore.calendars[0].lastSyncAt).not.toBeNull(); - expect(externalCalendarsStore.isSyncing('ext-1')).toBe(false); - }); - - it('should set error on sync failure', async () => { - mockFetch.mockResolvedValue({ data: [makeCal()], error: null }); - await externalCalendarsStore.fetchCalendars(); - mockSync.mockResolvedValue({ - data: null, - error: { message: 'Timeout', code: 'T', status: 504 }, - }); - await externalCalendarsStore.triggerSync('ext-1'); - expect(externalCalendarsStore.calendars[0].lastSyncError).toBe('Timeout'); - }); - - it('should find by ID', async () => { - mockFetch.mockResolvedValue({ data: [makeCal({ name: 'Found' })], error: null }); - await externalCalendarsStore.fetchCalendars(); - expect(externalCalendarsStore.getById('ext-1')?.name).toBe('Found'); - expect(externalCalendarsStore.getById('nope')).toBeUndefined(); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/navigation.ts b/apps/calendar/apps/web-archived/src/lib/stores/navigation.ts deleted file mode 100644 index 0704ef93a..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/navigation.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { createSimpleNavigationStores } from '@manacore/shared-stores'; - -export const { isNavCollapsed, isToolbarCollapsed } = createSimpleNavigationStores({ - withToolbar: true, - toolbarCollapsedDefault: false, -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/search.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/search.svelte.ts deleted file mode 100644 index 05bfa2ebd..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/search.svelte.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Search Store - manages search state for highlighting events in calendar views - */ - -// Accept any object with at least an id property -interface SearchableItem { - id: string; -} - -// State -let query = $state(''); -let matchingEventIds = $state>(new Set()); -let isSearching = $state(false); - -/** - * Set search query and matching items (events or any items with an id) - */ -function setSearch(newQuery: string, matchingItems: T[]) { - query = newQuery; - matchingEventIds = new Set(matchingItems.map((item) => item.id)); - isSearching = newQuery.trim().length > 0; -} - -/** - * Clear search - */ -function clear() { - query = ''; - matchingEventIds = new Set(); - isSearching = false; -} - -/** - * Check if an event matches the search - */ -function isEventHighlighted(eventId: string): boolean { - return isSearching && matchingEventIds.has(eventId); -} - -/** - * Check if an event should be dimmed (search active but event doesn't match) - */ -function isEventDimmed(eventId: string): boolean { - return isSearching && !matchingEventIds.has(eventId); -} - -export const searchStore = { - get query() { - return query; - }, - get matchingEventIds() { - return matchingEventIds; - }, - get isSearching() { - return isSearching; - }, - setSearch, - clear, - isEventHighlighted, - isEventDimmed, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/settings.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/settings.svelte.ts deleted file mode 100644 index 4159233fa..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/settings.svelte.ts +++ /dev/null @@ -1,309 +0,0 @@ -/** - * Settings Store - Manages user preferences for the calendar app - * Uses @manacore/shared-stores createAppSettingsStore factory with cloud sync - */ - -import { browser } from '$app/environment'; -import type { CalendarViewType } from '@calendar/shared'; -import { createAppSettingsStore } from '@manacore/shared-stores'; -import { userSettings } from './user-settings.svelte'; - -// Settings types -export type WeekStartDay = 0 | 1; -export type TimeFormat = '24h' | '12h'; -export type AllDayDisplayMode = 'header' | 'block'; -export type SttLanguage = 'de' | 'auto'; - -export interface CalendarAppSettings extends Record { - // View settings - defaultView: CalendarViewType; - weekStartsOn: WeekStartDay; - showOnlyWeekdays: boolean; - showWeekNumbers: boolean; - timeFormat: TimeFormat; - filterHoursEnabled: boolean; - dayStartHour: number; - dayEndHour: number; - allDayDisplayMode: AllDayDisplayMode; - - // Display settings - showBirthdays: boolean; - showBirthdayAge: boolean; - dateStripShowMoonPhases: boolean; - dateStripShowEventIndicators: boolean; - dateStripHighlightWeekends: boolean; - dateStripCompact: boolean; - - // Event defaults - defaultEventDuration: number; - smartDurationEnabled: boolean; - defaultReminder: number; - - // Voice input settings - sttLanguage: SttLanguage; -} - -// --- UI state (not persisted, resets on page load) --- -let _dateStripCollapsed = $state(false); -let _tagStripCollapsed = $state(true); -let _selectedTagIds = $state([]); -let _immersiveModeEnabled = $state(false); -let _sidebarCollapsed = $state(true); - -const DEFAULT_SETTINGS: CalendarAppSettings = { - defaultView: 'week', - weekStartsOn: 1, - showOnlyWeekdays: false, - showWeekNumbers: false, - timeFormat: '24h', - filterHoursEnabled: false, - dayStartHour: 6, - dayEndHour: 20, - allDayDisplayMode: 'header', - dateStripShowMoonPhases: true, - dateStripShowEventIndicators: true, - dateStripHighlightWeekends: true, - dateStripCompact: false, - showBirthdays: true, - showBirthdayAge: true, - defaultEventDuration: 60, - smartDurationEnabled: true, - defaultReminder: 15, - sttLanguage: 'de', -}; - -// Cloud sync state -let cloudSyncEnabled = $state(false); -let initialSyncDone = $state(false); - -// Sync to cloud callback -async function syncToCloud(settings: CalendarAppSettings) { - if (!cloudSyncEnabled || !browser) return; - try { - await userSettings.updateDeviceAppSettings(settings as unknown as Record); - } catch (e) { - console.error('Failed to sync calendar settings to cloud:', e); - } -} - -// Create base store with cloud sync callback -const baseStore = createAppSettingsStore( - 'calendar-settings', - DEFAULT_SETTINGS, - { - onSettingsChange: syncToCloud, - } -); - -// Migrate: strip removed keys from localStorage to keep it clean -if (browser) { - try { - const raw = localStorage.getItem('calendar-settings'); - if (raw) { - const stored = JSON.parse(raw); - const removedKeys = [ - 'headerCompact', - 'headerWeekdayFormat', - 'headerShowDate', - 'headerAlwaysShowMonth', - 'dateStripShowWeekday', - 'dateStripShowMonthDividers', - 'dateStripShowWeekNumbers', - 'dateStripCollapsed', - 'tagStripCollapsed', - 'selectedTagIds', - 'immersiveModeEnabled', - 'sidebarCollapsed', - 'quickViewPillViews', - 'customDayCount', - ]; - let changed = false; - for (const key of removedKeys) { - if (key in stored) { - delete stored[key]; - changed = true; - } - } - if (changed) { - localStorage.setItem('calendar-settings', JSON.stringify(stored)); - } - } - } catch { - // ignore migration errors - } -} - -// Load settings from cloud -function loadFromCloud(): Partial | null { - if (!userSettings.loaded) return null; - const cloudSettings = userSettings.currentDeviceAppSettings; - if (cloudSettings && Object.keys(cloudSettings).length > 0) { - return cloudSettings as unknown as Partial; - } - return null; -} - -export const settingsStore = { - // Base store methods - get settings() { - return baseStore.settings; - }, - initialize: baseStore.initialize, - set: baseStore.set, - update: baseStore.update, - reset: baseStore.reset, - getDefaults: baseStore.getDefaults, - - // Persisted preference getters - get defaultView() { - return baseStore.settings.defaultView; - }, - get weekStartsOn() { - return baseStore.settings.weekStartsOn; - }, - get showOnlyWeekdays() { - return baseStore.settings.showOnlyWeekdays; - }, - get showWeekNumbers() { - return baseStore.settings.showWeekNumbers; - }, - get timeFormat() { - return baseStore.settings.timeFormat; - }, - get filterHoursEnabled() { - return baseStore.settings.filterHoursEnabled; - }, - get dayStartHour() { - return baseStore.settings.dayStartHour; - }, - get dayEndHour() { - return baseStore.settings.dayEndHour; - }, - get allDayDisplayMode() { - return baseStore.settings.allDayDisplayMode; - }, - get dateStripShowMoonPhases() { - return baseStore.settings.dateStripShowMoonPhases; - }, - get dateStripShowEventIndicators() { - return baseStore.settings.dateStripShowEventIndicators; - }, - get dateStripHighlightWeekends() { - return baseStore.settings.dateStripHighlightWeekends; - }, - get dateStripCompact() { - return baseStore.settings.dateStripCompact; - }, - get showBirthdays() { - return baseStore.settings.showBirthdays; - }, - get showBirthdayAge() { - return baseStore.settings.showBirthdayAge; - }, - get defaultEventDuration() { - return baseStore.settings.defaultEventDuration; - }, - get smartDurationEnabled() { - return baseStore.settings.smartDurationEnabled; - }, - get defaultReminder() { - return baseStore.settings.defaultReminder; - }, - get sttLanguage() { - return baseStore.settings.sttLanguage; - }, - get cloudSyncEnabled() { - return cloudSyncEnabled; - }, - - // --- UI state getters (non-persisted) --- - get dateStripCollapsed() { - return _dateStripCollapsed; - }, - get tagStripCollapsed() { - return _tagStripCollapsed; - }, - get selectedTagIds() { - return _selectedTagIds; - }, - get hasSelectedTags() { - return _selectedTagIds.length > 0; - }, - get immersiveModeEnabled() { - return _immersiveModeEnabled; - }, - get sidebarCollapsed() { - return _sidebarCollapsed; - }, - - // Cloud sync methods - enableCloudSync() { - cloudSyncEnabled = true; - if (!initialSyncDone) { - const cloudSettings = loadFromCloud(); - if (cloudSettings && Object.keys(cloudSettings).length > 0) { - baseStore.update(cloudSettings); - } else { - syncToCloud(baseStore.settings); - } - initialSyncDone = true; - } - }, - - disableCloudSync() { - cloudSyncEnabled = false; - }, - - // UI state toggle methods (non-persisted) - toggleSidebar() { - _sidebarCollapsed = !_sidebarCollapsed; - }, - - toggleTagStrip() { - _tagStripCollapsed = !_tagStripCollapsed; - }, - - toggleTagSelection(tagId: string) { - const isSelected = _selectedTagIds.includes(tagId); - _selectedTagIds = isSelected - ? _selectedTagIds.filter((id) => id !== tagId) - : [..._selectedTagIds, tagId]; - }, - - isTagSelected(tagId: string): boolean { - return _selectedTagIds.includes(tagId); - }, - - clearTagSelection() { - _selectedTagIds = []; - }, - - toggleImmersiveMode() { - _immersiveModeEnabled = !_immersiveModeEnabled; - }, - - setDateStripCollapsed(value: boolean) { - _dateStripCollapsed = value; - }, - - // Time formatting helpers - formatTime(date: Date): string { - if (baseStore.settings.timeFormat === '12h') { - const hours = date.getHours(); - const minutes = date.getMinutes(); - const ampm = hours >= 12 ? 'PM' : 'AM'; - const displayHours = hours % 12 || 12; - return `${displayHours}:${minutes.toString().padStart(2, '0')} ${ampm}`; - } - return `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`; - }, - - formatHour(hour: number): string { - if (baseStore.settings.timeFormat === '12h') { - const ampm = hour >= 12 ? 'PM' : 'AM'; - const displayHour = hour % 12 || 12; - return `${displayHour} ${ampm}`; - } - return `${hour.toString().padStart(2, '0')}:00`; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/shares.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/shares.svelte.ts deleted file mode 100644 index e3a8ff54f..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/shares.svelte.ts +++ /dev/null @@ -1,145 +0,0 @@ -/** - * Calendar Shares Store - Manages calendar sharing and invitations - */ - -import type { CalendarShare, CalendarShareWithDetails } from '@calendar/shared'; -import * as api from '$lib/api/shares'; -import { toastStore } from '@manacore/shared-ui'; -import { get } from 'svelte/store'; -import { _ } from 'svelte-i18n'; - -// State -let shares = $state>(new Map()); -let invitations = $state([]); -let sharedWithMe = $state([]); -let loading = $state(false); - -export const sharesStore = { - get loading() { - return loading; - }, - get invitations() { - return invitations; - }, - get sharedWithMe() { - return sharedWithMe; - }, - - getSharesForCalendar(calendarId: string): CalendarShare[] { - return shares.get(calendarId) || []; - }, - - async fetchSharesForCalendar(calendarId: string) { - const result = await api.getShares(calendarId); - if (result.data) { - const arr = Array.isArray(result.data) ? result.data : []; - shares = new Map(shares).set(calendarId, arr); - } - return result; - }, - - async fetchInvitations() { - const result = await api.getInvitations(); - if (result.data) { - invitations = Array.isArray(result.data) ? result.data : []; - } - return result; - }, - - async fetchSharedWithMe() { - const result = await api.getSharedWithMe(); - if (result.data) { - sharedWithMe = Array.isArray(result.data) ? result.data : []; - } - return result; - }, - - async shareCalendar(calendarId: string, email: string, permission: 'read' | 'write' | 'admin') { - const result = await api.createShare(calendarId, { calendarId, email, permission }); - - if (result.error) { - toastStore.error(get(_)('toast.shareError') + ': ' + result.error.message); - } else { - toastStore.success(get(_)('toast.calendarShared', { values: { email } })); - await this.fetchSharesForCalendar(calendarId); - } - - return result; - }, - - async createShareLink(calendarId: string, permission: 'read' | 'write') { - const result = await api.createShare(calendarId, { - calendarId, - permission, - createLink: true, - }); - - if (result.error) { - toastStore.error(get(_)('toast.shareError') + ': ' + result.error.message); - } else { - toastStore.success(get(_)('toast.shareLinkCreated')); - await this.fetchSharesForCalendar(calendarId); - } - - return result; - }, - - async acceptInvitation(shareId: string) { - const result = await api.acceptShare(shareId); - - if (result.error) { - toastStore.error(get(_)('toast.shareError') + ': ' + result.error.message); - } else { - toastStore.success(get(_)('toast.inviteAccepted')); - invitations = invitations.filter((i) => i.id !== shareId); - await this.fetchSharedWithMe(); - } - - return result; - }, - - async declineInvitation(shareId: string) { - const result = await api.declineShare(shareId); - - if (result.error) { - toastStore.error(get(_)('toast.declineError') + ': ' + result.error.message); - } else { - invitations = invitations.filter((i) => i.id !== shareId); - } - - return result; - }, - - async removeShare(calendarId: string, shareId: string) { - const result = await api.deleteShare(calendarId, shareId); - - if (result.error) { - toastStore.error(get(_)('toast.removeError') + ': ' + result.error.message); - } else { - toastStore.success(get(_)('toast.shareRemoved')); - const current = shares.get(calendarId) || []; - shares = new Map(shares).set( - calendarId, - current.filter((s) => s.id !== shareId) - ); - } - - return result; - }, - - async updatePermission(shareId: string, permission: 'read' | 'write' | 'admin') { - const result = await api.updateShare(shareId, { permission }); - - if (result.error) { - toastStore.error(get(_)('toast.updateError') + ': ' + result.error.message); - } - - return result; - }, - - clear() { - shares = new Map(); - invitations = []; - sharedWithMe = []; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/theme.ts b/apps/calendar/apps/web-archived/src/lib/stores/theme.ts deleted file mode 100644 index 6abdb5d52..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/theme.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { createThemeStore } from '@manacore/shared-theme'; - -// Create theme store with Calendar's primary color (blue) -export const theme = createThemeStore({ - appId: 'calendar', - defaultVariant: 'ocean', -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/unified-bar.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/unified-bar.svelte.ts deleted file mode 100644 index 9d49c1a00..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/unified-bar.svelte.ts +++ /dev/null @@ -1,238 +0,0 @@ -/** - * UnifiedBar Store - Manages the new unified bottom bar system - * Replaces multiple individual bars with a layered, cohesive interface - */ - -import type { CalendarViewType } from '@calendar/shared'; -import { createAppSettingsStore } from '@manacore/shared-stores'; -import { userSettings } from './user-settings.svelte'; - -// UnifiedBar modes and layers -export type UnifiedBarMode = 'collapsed' | 'expanded' | 'overlay'; -export type UnifiedBarLayer = 'input' | 'date' | 'tag' | 'toolbar' | 'settings'; - -// Store interface -export interface UnifiedBarSettings extends Record { - // UnifiedBar mode control - unifiedBarMode: UnifiedBarMode; - unifiedBarActiveLayer: UnifiedBarLayer; - - // Legacy compatibility (keep existing settings working) - dateStripCollapsed: boolean; - tagStripCollapsed: boolean; - calendarToolbarCollapsed: boolean; - - // New UnifiedBar-specific settings - showQuickInput: boolean; - showDateStrip: boolean; - showTagStrip: boolean; - showCalendarToolbar: boolean; - overlayMenuOpen: boolean; - - // Animation and interaction preferences - barAnimationDuration: number; - enableHapticFeedback: boolean; - autoCollapseBars: boolean; - - // Quick access toggles - quickAccessActions: string[]; -} - -const DEFAULT_SETTINGS: UnifiedBarSettings = { - // Default to collapsed mode with only input bar visible - unifiedBarMode: 'collapsed', - unifiedBarActiveLayer: 'input', - - // Legacy compatibility - dateStripCollapsed: false, - tagStripCollapsed: true, - calendarToolbarCollapsed: true, - - // New settings - showQuickInput: true, - showDateStrip: true, - showTagStrip: false, - showCalendarToolbar: false, - overlayMenuOpen: false, - - // Interaction preferences - barAnimationDuration: 300, - enableHapticFeedback: true, - autoCollapseBars: false, - - // Quick actions - quickAccessActions: ['new-event', 'search', 'today', 'calendar-toggle'], -}; - -// Cloud sync state -let cloudSyncEnabled = $state(false); -let initialSyncDone = $state(false); - -// Sync to cloud callback -async function syncToCloud(settings: UnifiedBarSettings) { - if (!cloudSyncEnabled || typeof window === 'undefined') return; - try { - await userSettings.updateDeviceAppSettings(settings as unknown as Record); - } catch (e) { - console.error('Failed to sync unified bar settings to cloud:', e); - } -} - -// Create base store -const baseStore = createAppSettingsStore( - 'unified-bar-settings', - DEFAULT_SETTINGS, - { - onSettingsChange: syncToCloud, - } -); - -// Load settings from cloud -function loadFromCloud(): Partial | null { - if (!userSettings.loaded) return null; - const cloudSettings = userSettings.currentDeviceAppSettings; - if (cloudSettings && Object.keys(cloudSettings).length > 0) { - return cloudSettings as unknown as Partial; - } - return null; -} - -export const unifiedBarStore = { - // Base store methods - get settings() { - return baseStore.settings; - }, - initialize: baseStore.initialize, - set: baseStore.set, - update: baseStore.update, - reset: baseStore.reset, - getDefaults: baseStore.getDefaults, - - // Mode management - get mode() { - return baseStore.settings.unifiedBarMode; - }, - - get activeLayer() { - return baseStore.settings.unifiedBarActiveLayer; - }, - - get isOverlayOpen() { - return baseStore.settings.overlayMenuOpen; - }, - - // Layer visibility helpers - get showQuickInput() { - return baseStore.settings.showQuickInput; - }, - - get showDateStrip() { - return baseStore.settings.showDateStrip && !baseStore.settings.dateStripCollapsed; - }, - - get showTagStrip() { - return baseStore.settings.showTagStrip && !baseStore.settings.tagStripCollapsed; - }, - - get showCalendarToolbar() { - return baseStore.settings.showCalendarToolbar && !baseStore.settings.calendarToolbarCollapsed; - }, - - // Mode switching - setMode(mode: UnifiedBarMode) { - baseStore.set('unifiedBarMode', mode); - }, - - toggleOverlay() { - const isOpen = baseStore.settings.overlayMenuOpen; - baseStore.set('overlayMenuOpen', !isOpen); - if (!isOpen) { - baseStore.set('unifiedBarMode', 'overlay'); - } else { - baseStore.set('unifiedBarMode', 'collapsed'); - } - }, - - setActiveLayer(layer: UnifiedBarLayer) { - baseStore.set('unifiedBarActiveLayer', layer); - }, - - // Layer toggles - toggleQuickInput() { - baseStore.set('showQuickInput', !baseStore.settings.showQuickInput); - }, - - toggleDateStrip() { - const newValue = !baseStore.settings.showDateStrip; - baseStore.set('showDateStrip', newValue); - baseStore.set('dateStripCollapsed', !newValue); - }, - - toggleTagStrip() { - const newValue = !baseStore.settings.showTagStrip; - baseStore.set('showTagStrip', newValue); - baseStore.set('tagStripCollapsed', !newValue); - }, - - toggleCalendarToolbar() { - const newValue = !baseStore.settings.showCalendarToolbar; - baseStore.set('showCalendarToolbar', newValue); - baseStore.set('calendarToolbarCollapsed', !newValue); - }, - - // Quick actions - expandToLayer(layer: UnifiedBarLayer) { - baseStore.set('unifiedBarMode', 'expanded'); - baseStore.set('unifiedBarActiveLayer', layer); - - // Auto-show the layer if hidden - switch (layer) { - case 'date': - if (!baseStore.settings.showDateStrip) { - baseStore.set('showDateStrip', true); - baseStore.set('dateStripCollapsed', false); - } - break; - case 'tag': - if (!baseStore.settings.showTagStrip) { - baseStore.set('showTagStrip', true); - baseStore.set('tagStripCollapsed', false); - } - break; - case 'toolbar': - if (!baseStore.settings.showCalendarToolbar) { - baseStore.set('showCalendarToolbar', true); - baseStore.set('calendarToolbarCollapsed', false); - } - break; - } - }, - - collapseAll() { - baseStore.set('unifiedBarMode', 'collapsed'); - baseStore.set('unifiedBarActiveLayer', 'input'); - if (baseStore.settings.autoCollapseBars) { - baseStore.set('showDateStrip', false); - baseStore.set('showTagStrip', false); - baseStore.set('showCalendarToolbar', false); - } - }, - - // Cloud sync methods - enableCloudSync() { - cloudSyncEnabled = true; - if (!initialSyncDone) { - const cloudSettings = loadFromCloud(); - if (cloudSettings && Object.keys(cloudSettings).length > 0) { - baseStore.update(cloudSettings); - } else { - syncToCloud(baseStore.settings); - } - initialSyncDone = true; - } - }, - - disableCloudSync() { - cloudSyncEnabled = false; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/user-settings.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/user-settings.svelte.ts deleted file mode 100644 index c76260502..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/user-settings.svelte.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * User Settings Store for Calendar - * - * This store syncs settings with mana-core-auth and provides: - * - Global settings that apply to all apps - * - Per-app overrides for customization - * - localStorage caching for offline support - */ - -import { browser } from '$app/environment'; -import { createUserSettingsStore } from '@manacore/shared-theme'; -import { authStore } from './auth.svelte'; - -// Get auth URL dynamically at runtime -function getAuthUrl(): string { - if (browser && typeof window !== 'undefined') { - const injectedUrl = (window as unknown as { __PUBLIC_MANA_CORE_AUTH_URL__?: string }) - .__PUBLIC_MANA_CORE_AUTH_URL__; - if (injectedUrl) return injectedUrl; - } - return import.meta.env.DEV ? 'http://localhost:3001' : ''; -} - -export const userSettings = createUserSettingsStore({ - appId: 'calendar', - authUrl: getAuthUrl, - getAccessToken: () => authStore.getAccessToken(), -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/view.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/view.svelte.ts deleted file mode 100644 index 87b97e8f9..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/view.svelte.ts +++ /dev/null @@ -1,156 +0,0 @@ -/** - * View Store - Manages calendar view state using Svelte 5 runes - */ - -import { browser } from '$app/environment'; -import type { CalendarViewType } from '@calendar/shared'; -import { CalendarEvents } from '@manacore/shared-utils/analytics'; -import { - startOfDay, - startOfWeek, - startOfMonth, - endOfDay, - endOfWeek, - endOfMonth, - addDays, - addWeeks, - addMonths, - subWeeks, - subMonths, -} from 'date-fns'; - -// Import settings store for weekStartsOn -import { settingsStore } from './settings.svelte'; - -// Supported view types after cleanup -const SUPPORTED_VIEWS: CalendarViewType[] = ['week', 'month', 'agenda']; - -// State -let currentDate = $state(new Date()); -let viewType = $state('week'); - -// Derived state - uses weekStartsOn from settings -const viewRange = $derived.by(() => { - const weekStartsOn = settingsStore.weekStartsOn; - - switch (viewType) { - case 'week': - return { - start: startOfWeek(currentDate, { weekStartsOn }), - end: endOfWeek(currentDate, { weekStartsOn }), - }; - case 'month': - return { - start: startOfMonth(currentDate), - end: endOfMonth(currentDate), - }; - case 'agenda': - // Agenda shows 30 days from current date - return { - start: startOfDay(currentDate), - end: endOfDay(addDays(currentDate, 30)), - }; - default: - return { - start: startOfWeek(currentDate, { weekStartsOn }), - end: endOfWeek(currentDate, { weekStartsOn }), - }; - } -}); - -export const viewStore = { - // Getters - get currentDate() { - return currentDate; - }, - get viewType() { - return viewType; - }, - get viewRange() { - return viewRange; - }, - - /** - * Initialize view state from localStorage - * Note: Most settings are now managed by settingsStore - */ - initialize() { - if (!browser) return; - - // Initialize settings store first - settingsStore.initialize(); - - // Load view type from settings or localStorage (for backwards compatibility) - const savedView = localStorage.getItem('calendar-view-type'); - if (savedView && SUPPORTED_VIEWS.includes(savedView as CalendarViewType)) { - viewType = savedView as CalendarViewType; - } else { - // Use default view from settings, fallback to 'week' if unsupported - const defaultView = settingsStore.defaultView; - viewType = SUPPORTED_VIEWS.includes(defaultView) ? defaultView : 'week'; - } - }, - - /** - * Set the current date - */ - setDate(date: Date) { - currentDate = date; - }, - - /** - * Set the view type - */ - setViewType(type: CalendarViewType) { - // Only allow supported view types - if (!SUPPORTED_VIEWS.includes(type)) { - type = 'week'; - } - viewType = type; - if (browser) { - localStorage.setItem('calendar-view-type', type); - } - CalendarEvents.viewChanged(type as 'day' | 'week' | 'month' | 'agenda'); - }, - - /** - * Navigate to today - */ - goToToday() { - currentDate = new Date(); - }, - - /** - * Navigate to previous period - */ - goToPrevious() { - switch (viewType) { - case 'week': - currentDate = subWeeks(currentDate, 1); - break; - case 'month': - currentDate = subMonths(currentDate, 1); - break; - case 'agenda': - currentDate = subWeeks(currentDate, 1); - break; - } - }, - - /** - * Navigate to next period - */ - goToNext() { - switch (viewType) { - case 'week': - currentDate = addWeeks(currentDate, 1); - break; - case 'month': - currentDate = addMonths(currentDate, 1); - break; - case 'agenda': - currentDate = addWeeks(currentDate, 1); - break; - } - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/stores/view.test.ts b/apps/calendar/apps/web-archived/src/lib/stores/view.test.ts deleted file mode 100644 index 6a1b17944..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/view.test.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; -import { startOfWeek, startOfMonth, endOfMonth, addDays, isSameDay } from 'date-fns'; - -// Mock $app/environment -vi.mock('$app/environment', () => ({ - browser: false, -})); - -// Mock the settings store -vi.mock('./settings.svelte', () => ({ - settingsStore: { - weekStartsOn: 1 as 0 | 1, - defaultView: 'week', - initialize: vi.fn(), - }, -})); - -// Mock @manacore/shared-stores -vi.mock('@manacore/shared-stores', () => ({ - createAppSettingsStore: vi.fn(() => ({ - settings: { weekStartsOn: 1, defaultView: 'week' }, - initialize: vi.fn(), - set: vi.fn(), - update: vi.fn(), - reset: vi.fn(), - getDefaults: vi.fn(), - })), -})); - -// Mock user-settings store -vi.mock('./user-settings.svelte', () => ({ - userSettings: { - loaded: false, - currentDeviceAppSettings: {}, - updateDeviceAppSettings: vi.fn(), - }, -})); - -import { viewStore } from './view.svelte'; - -describe('viewStore', () => { - beforeEach(() => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('week'); - }); - - describe('setDate / currentDate', () => { - it('should update the current date', () => { - const newDate = new Date('2026-06-01T00:00:00'); - viewStore.setDate(newDate); - expect(isSameDay(viewStore.currentDate, newDate)).toBe(true); - }); - }); - - describe('setViewType / viewType', () => { - it('should update the view type', () => { - viewStore.setViewType('month'); - expect(viewStore.viewType).toBe('month'); - }); - - it('should accept all valid view types', () => { - const types = ['week', 'month', 'agenda'] as const; - - for (const type of types) { - viewStore.setViewType(type); - expect(viewStore.viewType).toBe(type); - } - }); - }); - - describe('viewRange', () => { - it('should return correct range for week view', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); // Sunday - viewStore.setViewType('week'); - - const range = viewStore.viewRange; - const expected = startOfWeek(new Date('2026-03-15'), { weekStartsOn: 1 }); - expect(isSameDay(range.start, expected)).toBe(true); - }); - - it('should return correct range for month view', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('month'); - - const range = viewStore.viewRange; - expect(isSameDay(range.start, startOfMonth(new Date('2026-03-15')))).toBe(true); - expect(isSameDay(range.end, endOfMonth(new Date('2026-03-15')))).toBe(true); - }); - - it('should return correct range for agenda view (30 days)', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('agenda'); - - const range = viewStore.viewRange; - expect(isSameDay(range.start, new Date('2026-03-15'))).toBe(true); - expect(isSameDay(range.end, addDays(new Date('2026-03-15'), 30))).toBe(true); - }); - }); - - describe('goToNext / goToPrevious', () => { - it('should navigate forward by 1 week in week view', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('week'); - - viewStore.goToNext(); - expect(isSameDay(viewStore.currentDate, new Date('2026-03-22'))).toBe(true); - }); - - it('should navigate backward by 1 week in week view', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('week'); - - viewStore.goToPrevious(); - expect(isSameDay(viewStore.currentDate, new Date('2026-03-08'))).toBe(true); - }); - - it('should navigate forward by 1 month in month view', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('month'); - - viewStore.goToNext(); - expect(viewStore.currentDate.getMonth()).toBe(3); // April - expect(viewStore.currentDate.getDate()).toBe(15); - }); - - it('should navigate backward by 1 month in month view', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('month'); - - viewStore.goToPrevious(); - expect(viewStore.currentDate.getMonth()).toBe(1); // February - expect(viewStore.currentDate.getDate()).toBe(15); - }); - - it('should navigate forward by 7 days in agenda view', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('agenda'); - - viewStore.goToNext(); - expect(isSameDay(viewStore.currentDate, new Date('2026-03-22'))).toBe(true); - }); - - it('should navigate backward by 7 days in agenda view', () => { - viewStore.setDate(new Date('2026-03-15T12:00:00')); - viewStore.setViewType('agenda'); - - viewStore.goToPrevious(); - expect(isSameDay(viewStore.currentDate, new Date('2026-03-08'))).toBe(true); - }); - }); - - describe('goToToday', () => { - it('should set date to today', () => { - viewStore.setDate(new Date('2020-01-01')); - viewStore.goToToday(); - - const today = new Date(); - expect(isSameDay(viewStore.currentDate, today)).toBe(true); - }); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/stores/voice-recording.svelte.ts b/apps/calendar/apps/web-archived/src/lib/stores/voice-recording.svelte.ts deleted file mode 100644 index 054c4bdb7..000000000 --- a/apps/calendar/apps/web-archived/src/lib/stores/voice-recording.svelte.ts +++ /dev/null @@ -1,243 +0,0 @@ -/** - * Voice Recording Store - * - * Manages the state of voice recording for event creation. - * Uses Svelte 5 runes for reactive state management. - */ - -import { - createAudioRecorder, - requestMicrophonePermission, - isAudioRecordingSupported, - formatDuration, - type AudioRecorder, - type PermissionState, -} from '$lib/utils/audio-recorder'; -import { transcribeAudio, type TranscriptionResult } from '$lib/services/stt'; -import { settingsStore } from './settings.svelte'; - -export type VoiceRecordingState = - | 'idle' - | 'requesting' // Requesting microphone permission - | 'recording' - | 'processing' // Transcribing audio - | 'error'; - -export interface VoiceRecordingError { - message: string; - code?: string; -} - -// State -let state = $state('idle'); -let duration = $state(0); -let error = $state(null); -let permissionState = $state('prompt'); - -// Internal -let recorder: AudioRecorder | null = null; -let onResultCallback: ((result: TranscriptionResult) => void) | null = null; - -/** - * Voice Recording Store - */ -export const voiceRecordingStore = { - // Getters - get state() { - return state; - }, - - get duration() { - return duration; - }, - - get formattedDuration() { - return formatDuration(duration); - }, - - get error() { - return error; - }, - - get permissionState() { - return permissionState; - }, - - get isSupported() { - return isAudioRecordingSupported(); - }, - - get isIdle() { - return state === 'idle'; - }, - - get isRecording() { - return state === 'recording'; - }, - - get isProcessing() { - return state === 'processing'; - }, - - get hasError() { - return state === 'error'; - }, - - /** - * Set the callback for when transcription completes successfully - */ - setOnResult(callback: (result: TranscriptionResult) => void) { - onResultCallback = callback; - }, - - /** - * Check microphone permission without starting recording - */ - async checkPermission(): Promise { - permissionState = await requestMicrophonePermission(); - return permissionState; - }, - - /** - * Start voice recording - */ - async startRecording(): Promise { - if (state !== 'idle' && state !== 'error') { - return; - } - - // Reset error state - error = null; - state = 'requesting'; - - try { - // Check permission - permissionState = await requestMicrophonePermission(); - - if (permissionState === 'unsupported') { - throw { - message: 'Kein Mikrofon gefunden', - code: 'NOT_SUPPORTED', - }; - } - - if (permissionState === 'denied') { - throw { - message: 'Mikrofonzugriff verweigert. Bitte in Browsereinstellungen erlauben.', - code: 'PERMISSION_DENIED', - }; - } - - // Create and start recorder - recorder = createAudioRecorder({ - maxDuration: 60000, // 60 seconds max - onDurationUpdate: (ms) => { - duration = ms; - }, - onMaxDurationWarning: () => { - // Could show a toast or visual warning - console.warn('Approaching max recording duration'); - }, - onError: (err) => { - error = { - message: err.message, - code: 'RECORDER_ERROR', - }; - state = 'error'; - }, - }); - - await recorder.start(); - state = 'recording'; - duration = 0; - } catch (err) { - // Handle error objects with message/code - if (err && typeof err === 'object' && 'message' in err) { - error = err as VoiceRecordingError; - } else if (err instanceof Error) { - error = { - message: err.message, - code: 'START_ERROR', - }; - } else { - error = { - message: 'Aufnahme konnte nicht gestartet werden', - code: 'UNKNOWN_ERROR', - }; - } - state = 'error'; - recorder = null; - } - }, - - /** - * Stop recording and process transcription - */ - async stopRecording(): Promise { - if (state !== 'recording' || !recorder) { - return; - } - - state = 'processing'; - - try { - const audioBlob = await recorder.stop(); - recorder = null; - - // Get language setting - const language = settingsStore.sttLanguage; - - // Transcribe - const result = await transcribeAudio(audioBlob, language); - - if (result.success) { - // Success - call the callback - state = 'idle'; - duration = 0; - onResultCallback?.(result.data); - } else { - // Transcription error - error = result.error; - state = 'error'; - } - } catch (err) { - error = { - message: err instanceof Error ? err.message : 'Transkription fehlgeschlagen', - code: 'TRANSCRIPTION_ERROR', - }; - state = 'error'; - recorder = null; - } - }, - - /** - * Cancel recording without transcription - */ - cancel(): void { - if (recorder) { - recorder.cancel(); - recorder = null; - } - state = 'idle'; - duration = 0; - error = null; - }, - - /** - * Clear error and return to idle state - */ - clearError(): void { - error = null; - if (state === 'error') { - state = 'idle'; - } - }, - - /** - * Reset to initial state - */ - reset(): void { - this.cancel(); - error = null; - }, -}; diff --git a/apps/calendar/apps/web-archived/src/lib/utils/audio-recorder.ts b/apps/calendar/apps/web-archived/src/lib/utils/audio-recorder.ts deleted file mode 100644 index 9554bebe6..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/audio-recorder.ts +++ /dev/null @@ -1,277 +0,0 @@ -/** - * Audio Recorder Utility - * - * Wrapper around MediaRecorder API for voice recording functionality. - * Handles microphone permissions, recording state, and audio blob creation. - */ - -export type PermissionState = 'granted' | 'denied' | 'prompt' | 'unsupported'; - -export interface AudioRecorderOptions { - /** Called when recording duration updates (every 100ms) */ - onDurationUpdate?: (durationMs: number) => void; - /** Called when an error occurs */ - onError?: (error: Error) => void; - /** Maximum recording duration in milliseconds (default: 60000 = 60s) */ - maxDuration?: number; - /** Warning callback when approaching max duration */ - onMaxDurationWarning?: () => void; -} - -export interface AudioRecorder { - /** Start recording audio */ - start(): Promise; - /** Stop recording and return the audio blob */ - stop(): Promise; - /** Cancel recording without returning data */ - cancel(): void; - /** Whether currently recording */ - readonly isRecording: boolean; - /** Current recording duration in milliseconds */ - readonly duration: number; -} - -/** - * Check if the browser supports audio recording - */ -export function isAudioRecordingSupported(): boolean { - return !!( - typeof navigator !== 'undefined' && - navigator.mediaDevices && - typeof navigator.mediaDevices.getUserMedia === 'function' && - typeof MediaRecorder !== 'undefined' - ); -} - -/** - * Request microphone permission and return the current permission state - */ -export async function requestMicrophonePermission(): Promise { - if (!isAudioRecordingSupported()) { - return 'unsupported'; - } - - try { - // Check existing permission if available - if (navigator.permissions) { - const permissionStatus = await navigator.permissions.query({ - name: 'microphone' as PermissionName, - }); - - if (permissionStatus.state === 'granted') { - return 'granted'; - } - - if (permissionStatus.state === 'denied') { - return 'denied'; - } - } - - // Try to get user media to trigger permission prompt - const stream = await navigator.mediaDevices.getUserMedia({ audio: true }); - - // Stop the stream immediately - we just needed to check permission - stream.getTracks().forEach((track) => track.stop()); - - return 'granted'; - } catch (error) { - if (error instanceof DOMException) { - if (error.name === 'NotAllowedError' || error.name === 'PermissionDeniedError') { - return 'denied'; - } - if (error.name === 'NotFoundError') { - return 'unsupported'; - } - } - return 'denied'; - } -} - -/** - * Get the best supported audio MIME type - */ -function getSupportedMimeType(): string { - const mimeTypes = [ - 'audio/webm;codecs=opus', - 'audio/webm', - 'audio/ogg;codecs=opus', - 'audio/mp4', - 'audio/mpeg', - ]; - - for (const mimeType of mimeTypes) { - if (MediaRecorder.isTypeSupported(mimeType)) { - return mimeType; - } - } - - // Fallback - let the browser decide - return ''; -} - -/** - * Create an audio recorder instance - */ -export function createAudioRecorder(options: AudioRecorderOptions = {}): AudioRecorder { - const { onDurationUpdate, onError, maxDuration = 60000, onMaxDurationWarning } = options; - - let mediaRecorder: MediaRecorder | null = null; - let mediaStream: MediaStream | null = null; - let audioChunks: Blob[] = []; - let isRecording = false; - let duration = 0; - let durationInterval: ReturnType | null = null; - let startTime = 0; - let warningShown = false; - - const recorder: AudioRecorder = { - get isRecording() { - return isRecording; - }, - - get duration() { - return duration; - }, - - async start() { - if (isRecording) { - throw new Error('Already recording'); - } - - if (!isAudioRecordingSupported()) { - throw new Error('Audio recording is not supported in this browser'); - } - - try { - // Get audio stream - mediaStream = await navigator.mediaDevices.getUserMedia({ - audio: { - echoCancellation: true, - noiseSuppression: true, - autoGainControl: true, - }, - }); - - // Create MediaRecorder with best supported format - const mimeType = getSupportedMimeType(); - mediaRecorder = new MediaRecorder(mediaStream, mimeType ? { mimeType } : undefined); - - audioChunks = []; - duration = 0; - warningShown = false; - - // Handle data chunks - mediaRecorder.ondataavailable = (event) => { - if (event.data.size > 0) { - audioChunks.push(event.data); - } - }; - - // Handle errors - mediaRecorder.onerror = (event) => { - const error = new Error( - 'MediaRecorder error: ' + (event as any).error?.message || 'Unknown error' - ); - onError?.(error); - cleanup(); - }; - - // Start recording - mediaRecorder.start(100); // Collect data every 100ms for smoother stop - isRecording = true; - startTime = Date.now(); - - // Track duration - durationInterval = setInterval(() => { - duration = Date.now() - startTime; - onDurationUpdate?.(duration); - - // Warning at 50 seconds (10 seconds before max) - if (!warningShown && duration >= maxDuration - 10000) { - warningShown = true; - onMaxDurationWarning?.(); - } - - // Auto-stop at max duration - if (duration >= maxDuration) { - recorder.stop().catch(onError); - } - }, 100); - } catch (error) { - cleanup(); - throw error; - } - }, - - async stop(): Promise { - if (!isRecording || !mediaRecorder) { - throw new Error('Not currently recording'); - } - - return new Promise((resolve, reject) => { - if (!mediaRecorder) { - reject(new Error('MediaRecorder not available')); - return; - } - - mediaRecorder.onstop = () => { - const mimeType = mediaRecorder?.mimeType || 'audio/webm'; - const blob = new Blob(audioChunks, { type: mimeType }); - cleanup(); - resolve(blob); - }; - - try { - mediaRecorder.stop(); - } catch (error) { - cleanup(); - reject(error); - } - }); - }, - - cancel() { - cleanup(); - }, - }; - - function cleanup() { - isRecording = false; - duration = 0; - - if (durationInterval) { - clearInterval(durationInterval); - durationInterval = null; - } - - if (mediaRecorder) { - if (mediaRecorder.state !== 'inactive') { - try { - mediaRecorder.stop(); - } catch { - // Ignore errors when stopping - } - } - mediaRecorder = null; - } - - if (mediaStream) { - mediaStream.getTracks().forEach((track) => track.stop()); - mediaStream = null; - } - - audioChunks = []; - } - - return recorder; -} - -/** - * Format duration in milliseconds to MM:SS format - */ -export function formatDuration(durationMs: number): string { - const totalSeconds = Math.floor(durationMs / 1000); - const minutes = Math.floor(totalSeconds / 60); - const seconds = totalSeconds % 60; - return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; -} diff --git a/apps/calendar/apps/web-archived/src/lib/utils/calendarConstants.ts b/apps/calendar/apps/web-archived/src/lib/utils/calendarConstants.ts deleted file mode 100644 index 7d91e2dfa..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/calendarConstants.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Shared calendar constants - * Single source of truth for magic numbers used across calendar views - */ - -/** - * Height of one hour in pixels (should match CSS --hour-height variable) - */ -export const HOUR_HEIGHT_PX = 60; - -/** - * Snap interval for drag/drop and resize operations in minutes - */ -export const SNAP_INTERVAL_MINUTES = 15; - -/** - * Default event duration in minutes when creating quick events - */ -export const DEFAULT_EVENT_DURATION_MINUTES = 60; - -/** - * Minimum event height as percentage of visible hours - */ -export const MIN_EVENT_HEIGHT_PERCENT = 1.5; - -/** - * Maximum number of event dots to show in month view cells - */ -export const MAX_EVENT_DOTS = 5; - -/** - * Days buffer for infinite scroll in date strip - */ -export const DATE_STRIP_BUFFER_DAYS = 60; - -/** - * Default visible hours range - */ -export const DEFAULT_DAY_START_HOUR = 0; -export const DEFAULT_DAY_END_HOUR = 24; - -/** - * Week starts on (0 = Sunday, 1 = Monday) - */ -export const DEFAULT_WEEK_STARTS_ON = 1; - -/** - * All constants as a single object for convenient destructuring - */ -export const CALENDAR_CONSTANTS = { - HOUR_HEIGHT_PX, - SNAP_INTERVAL_MINUTES, - DEFAULT_EVENT_DURATION_MINUTES, - MIN_EVENT_HEIGHT_PERCENT, - MAX_EVENT_DOTS, - DATE_STRIP_BUFFER_DAYS, - DEFAULT_DAY_START_HOUR, - DEFAULT_DAY_END_HOUR, - DEFAULT_WEEK_STARTS_ON, -} as const; diff --git a/apps/calendar/apps/web-archived/src/lib/utils/dateNavigation.test.ts b/apps/calendar/apps/web-archived/src/lib/utils/dateNavigation.test.ts deleted file mode 100644 index 5bcd82b26..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/dateNavigation.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { describe, it, expect } from 'vitest'; -import { getOffsetDate } from './dateNavigation'; - -describe('getOffsetDate', () => { - // Use local time to avoid timezone offset issues with date-fns - const baseDate = new Date(2026, 2, 18, 12, 0, 0); // March 18, 2026 12:00 - - describe('week view', () => { - it('should add 1 week for offset +1', () => { - const result = getOffsetDate(baseDate, 'week', 1); - expect(result).toEqual(new Date(2026, 2, 25, 12, 0, 0)); - }); - - it('should subtract 1 week for offset -1', () => { - const result = getOffsetDate(baseDate, 'week', -1); - expect(result).toEqual(new Date(2026, 2, 11, 12, 0, 0)); - }); - }); - - describe('month view', () => { - it('should add 1 month for offset +1', () => { - const result = getOffsetDate(baseDate, 'month', 1); - expect(result).toEqual(new Date(2026, 3, 18, 12, 0, 0)); - }); - - it('should subtract 1 month for offset -1', () => { - const result = getOffsetDate(baseDate, 'month', -1); - expect(result).toEqual(new Date(2026, 1, 18, 12, 0, 0)); - }); - }); - - describe('agenda view', () => { - it('should add 7 days for offset +1', () => { - const result = getOffsetDate(baseDate, 'agenda', 1); - expect(result).toEqual(new Date(2026, 2, 25, 12, 0, 0)); - }); - - it('should subtract 7 days for offset -1', () => { - const result = getOffsetDate(baseDate, 'agenda', -1); - expect(result).toEqual(new Date(2026, 2, 11, 12, 0, 0)); - }); - - it('should add 14 days for offset +2', () => { - const result = getOffsetDate(baseDate, 'agenda', 2); - expect(result).toEqual(new Date(2026, 3, 1, 12, 0, 0)); - }); - }); - - describe('default (unknown view type)', () => { - it('should fall through to week behavior', () => { - const result = getOffsetDate(baseDate, 'unknown' as any, 1); - expect(result).toEqual(new Date(2026, 2, 25, 12, 0, 0)); - }); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/utils/dateNavigation.ts b/apps/calendar/apps/web-archived/src/lib/utils/dateNavigation.ts deleted file mode 100644 index 6cc367b5a..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/dateNavigation.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Date Navigation Utilities - * Helper functions for calculating date offsets based on view type - */ - -import type { CalendarViewType } from '@calendar/shared'; -import { addDays, addWeeks, addMonths, subDays, subWeeks, subMonths } from 'date-fns'; - -/** - * Calculate a date offset based on the current view type - * - * @param date - The base date - * @param viewType - The current calendar view type - * @param offset - Number of periods to offset (-1 = previous, 1 = next) - * @returns The calculated date - * - * @example - * // Get previous week's date - * getOffsetDate(new Date(), 'week', -1) - * - * // Get next month's date - * getOffsetDate(new Date(), 'month', 1) - */ -export function getOffsetDate(date: Date, viewType: CalendarViewType, offset: number): Date { - switch (viewType) { - case 'week': - return offset > 0 ? addWeeks(date, offset) : subWeeks(date, Math.abs(offset)); - - case 'month': - return offset > 0 ? addMonths(date, offset) : subMonths(date, Math.abs(offset)); - - case 'agenda': - // Agenda moves by 7 days - return offset > 0 ? addDays(date, offset * 7) : subDays(date, Math.abs(offset) * 7); - - default: - return offset > 0 ? addWeeks(date, offset) : subWeeks(date, Math.abs(offset)); - } -} diff --git a/apps/calendar/apps/web-archived/src/lib/utils/drag-helpers.ts b/apps/calendar/apps/web-archived/src/lib/utils/drag-helpers.ts deleted file mode 100644 index 08bb26f78..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/drag-helpers.ts +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Shared drag/drop utility functions - * Used by useEventDragDrop, useDragToCreate - */ - -import { SNAP_INTERVAL_MINUTES } from '$lib/utils/calendarConstants'; - -/** - * Format hours and minutes as HH:MM string - */ -export function formatTime(hours: number, minutes: number): string { - return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; -} - -/** - * Get the effective snap interval, falling back to the default constant - */ -export function getSnapMinutes(snapMinutes?: number): number { - return snapMinutes ?? SNAP_INTERVAL_MINUTES; -} - -/** - * Snap a minute value to the nearest grid interval - */ -export function snapToGrid(minutes: number, snapMinutes?: number): number { - const snap = getSnapMinutes(snapMinutes); - return Math.round(minutes / snap) * snap; -} - -/** - * Map an X client coordinate to a day column based on container width - */ -export function getDayFromX( - clientX: number, - containerEl: HTMLElement | null, - days: Date[] -): Date | null { - if (!containerEl) return null; - - const rect = containerEl.getBoundingClientRect(); - const relativeX = clientX - rect.left; - const dayWidth = rect.width / days.length; - const dayIndex = Math.floor(relativeX / dayWidth); - - if (dayIndex >= 0 && dayIndex < days.length) { - return days[dayIndex]; - } - return null; -} - -/** - * Map a Y client coordinate to total minutes in the day, - * accounting for scroll offset, visible hour range, and snap interval - */ -export function getMinutesFromY( - clientY: number, - containerEl: HTMLElement | null, - totalVisibleHours: number, - hourHeight: number, - firstVisibleHour: number, - snapMinutes?: number -): number { - if (!containerEl) return 0; - - const rect = containerEl.getBoundingClientRect(); - const scrollTop = containerEl.parentElement?.scrollTop || 0; - const relativeY = clientY - rect.top + scrollTop; - - const visibleMinutes = (relativeY / (totalVisibleHours * hourHeight)) * totalVisibleHours * 60; - const totalMinutes = visibleMinutes + firstVisibleHour * 60; - - return snapToGrid(totalMinutes, snapMinutes); -} diff --git a/apps/calendar/apps/web-archived/src/lib/utils/event-estimator.test.ts b/apps/calendar/apps/web-archived/src/lib/utils/event-estimator.test.ts deleted file mode 100644 index f7e64713f..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/event-estimator.test.ts +++ /dev/null @@ -1,191 +0,0 @@ -import { describe, it, expect } from 'vitest'; -import { - estimateEventDuration, - detectConflicts, - type HistoricalEventData, -} from './event-estimator'; - -function makeEvent(overrides: Partial = {}): HistoricalEventData { - return { - title: 'Default Event', - calendarId: null, - startDate: '2026-03-28T10:00:00Z', - endDate: '2026-03-28T11:00:00Z', // 60 min - allDay: false, - tagIds: [], - ...overrides, - }; -} - -describe('estimateEventDuration', () => { - it('should return null with insufficient data', () => { - const result = estimateEventDuration( - { title: 'New event' }, - [makeEvent(), makeEvent()] // only 2, need 3 - ); - expect(result).toBeNull(); - }); - - it('should estimate from events in same calendar', () => { - const history = Array.from({ length: 5 }, () => - makeEvent({ - calendarId: 'cal-1', - startDate: '2026-03-28T10:00:00Z', - endDate: '2026-03-28T10:30:00Z', // 30 min - }) - ); - - const result = estimateEventDuration({ title: 'Something', calendarId: 'cal-1' }, history); - - expect(result).not.toBeNull(); - expect(result!.minutes).toBe(30); - }); - - it('should weight title overlap strongly', () => { - const history = [ - makeEvent({ - title: 'Standup Meeting', - startDate: '2026-03-28T09:00:00Z', - endDate: '2026-03-28T09:15:00Z', - }), - makeEvent({ - title: 'Standup Meeting', - startDate: '2026-03-27T09:00:00Z', - endDate: '2026-03-27T09:15:00Z', - }), - makeEvent({ - title: 'Standup Meeting', - startDate: '2026-03-26T09:00:00Z', - endDate: '2026-03-26T09:15:00Z', - }), - // Unrelated longer events - makeEvent({ - title: 'Workshop', - startDate: '2026-03-28T10:00:00Z', - endDate: '2026-03-28T14:00:00Z', - }), - makeEvent({ - title: 'Konferenz', - startDate: '2026-03-27T10:00:00Z', - endDate: '2026-03-27T14:00:00Z', - }), - ]; - - const result = estimateEventDuration({ title: 'Standup Meeting' }, history); - - expect(result).not.toBeNull(); - expect(result!.minutes).toBe(15); - }); - - it('should ignore all-day events', () => { - const history = [ - ...Array.from({ length: 3 }, () => makeEvent({ title: 'Urlaub', allDay: true })), - ...Array.from({ length: 3 }, () => - makeEvent({ - title: 'Urlaub', - allDay: false, - startDate: '2026-03-28T10:00:00Z', - endDate: '2026-03-28T11:00:00Z', - }) - ), - ]; - - const result = estimateEventDuration({ title: 'Urlaub' }, history); - expect(result).not.toBeNull(); - expect(result!.minutes).toBe(60); - }); - - it('should round to nice numbers', () => { - const history = Array.from({ length: 5 }, () => - makeEvent({ - calendarId: 'cal-1', - startDate: '2026-03-28T10:00:00Z', - endDate: '2026-03-28T10:37:00Z', // 37 min - }) - ); - - const result = estimateEventDuration({ title: 'Task', calendarId: 'cal-1' }, history); - - expect(result).not.toBeNull(); - expect(result!.minutes % 5).toBe(0); - }); -}); - -describe('detectConflicts', () => { - const existingEvents = [ - { - id: 'e1', - title: 'Standup', - startDate: '2026-03-30T09:00:00Z', - endDate: '2026-03-30T09:30:00Z', - calendarId: 'cal-1', - }, - { - id: 'e2', - title: 'Meeting', - startDate: '2026-03-30T14:00:00Z', - endDate: '2026-03-30T15:00:00Z', - calendarId: 'cal-1', - }, - { - id: 'e3', - title: 'Urlaub', - startDate: '2026-03-30T00:00:00Z', - endDate: '2026-03-30T23:59:59Z', - calendarId: 'cal-2', - allDay: true, - }, - ]; - - it('should detect overlap with existing event', () => { - const result = detectConflicts('2026-03-30T14:30:00Z', '2026-03-30T15:30:00Z', existingEvents); - expect(result.hasConflict).toBe(true); - expect(result.conflicts).toHaveLength(1); - expect(result.conflicts[0].title).toBe('Meeting'); - }); - - it('should detect no conflict when time is free', () => { - const result = detectConflicts('2026-03-30T10:00:00Z', '2026-03-30T11:00:00Z', existingEvents); - expect(result.hasConflict).toBe(false); - expect(result.conflicts).toHaveLength(0); - }); - - it('should detect multiple overlaps', () => { - const result = detectConflicts('2026-03-30T08:45:00Z', '2026-03-30T15:30:00Z', existingEvents); - expect(result.hasConflict).toBe(true); - expect(result.conflicts).toHaveLength(2); // Standup + Meeting (not Urlaub, it's allDay) - }); - - it('should ignore all-day events', () => { - const result = detectConflicts('2026-03-30T12:00:00Z', '2026-03-30T13:00:00Z', existingEvents); - expect(result.hasConflict).toBe(false); - }); - - it('should not conflict with adjacent events (end = start)', () => { - const result = detectConflicts( - '2026-03-30T09:30:00Z', // starts exactly when Standup ends - '2026-03-30T10:00:00Z', - existingEvents - ); - expect(result.hasConflict).toBe(false); - }); - - it('should exclude specified event ID (edit mode)', () => { - const result = detectConflicts( - '2026-03-30T14:00:00Z', - '2026-03-30T15:00:00Z', - existingEvents, - 'e2' // editing the Meeting itself - ); - expect(result.hasConflict).toBe(false); - }); - - it('should handle invalid range gracefully', () => { - const result = detectConflicts( - '2026-03-30T15:00:00Z', - '2026-03-30T14:00:00Z', // end before start - existingEvents - ); - expect(result.hasConflict).toBe(false); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/utils/event-estimator.ts b/apps/calendar/apps/web-archived/src/lib/utils/event-estimator.ts deleted file mode 100644 index ef436f458..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/event-estimator.ts +++ /dev/null @@ -1,262 +0,0 @@ -/** - * Event Duration Estimator & Conflict Detector - * - * Duration estimation: suggests event duration based on historical events - * using weighted similarity (calendar, title overlap, tags, time of day). - * - * Conflict detection: checks for overlapping events in a given time range. - * - * Both run fully offline against local IndexedDB data. - */ - -// ─── Duration Estimation ─────────────────────────────────── - -export interface HistoricalEventData { - title: string; - calendarId?: string | null; - startDate: string; - endDate: string; - allDay?: boolean; - tagIds?: string[]; -} - -export interface DurationEstimate { - minutes: number; - confidence: 'low' | 'medium' | 'high'; - sampleSize: number; -} - -interface ScoredEvent { - duration: number; // minutes - score: number; -} - -const STOP_WORDS = new Set([ - 'der', - 'die', - 'das', - 'ein', - 'eine', - 'und', - 'oder', - 'für', - 'mit', - 'von', - 'zu', - 'im', - 'am', - 'an', - 'auf', - 'in', - 'den', - 'dem', - 'des', - 'bei', - 'nach', - 'the', - 'a', - 'an', - 'and', - 'or', - 'for', - 'with', - 'from', - 'to', - 'in', - 'on', - 'at', -]); - -function tokenize(title: string): string[] { - return title - .toLowerCase() - .replace(/[^a-zäöüßàáâãèéêëìíîïòóôõùúûü0-9\s]/g, '') - .split(/\s+/) - .filter((w) => w.length > 2 && !STOP_WORDS.has(w)); -} - -function titleOverlap(a: string[], b: string[]): number { - if (a.length === 0 || b.length === 0) return 0; - const setB = new Set(b); - const shared = a.filter((w) => setB.has(w)).length; - return shared / Math.max(a.length, b.length); -} - -/** - * Get event duration in minutes. Ignores all-day events and unreasonable durations. - */ -function getEventDuration(event: HistoricalEventData): number | null { - if (event.allDay) return null; - - const start = new Date(event.startDate).getTime(); - const end = new Date(event.endDate).getTime(); - const minutes = (end - start) / 60_000; - - // Only use reasonable durations (5 min to 12 hours) - if (minutes >= 5 && minutes <= 720) { - return Math.round(minutes); - } - return null; -} - -function similarity( - newEvent: { title: string; calendarId?: string | null; tagIds?: string[] }, - historical: HistoricalEventData, - newTokens: string[] -): number { - let score = 0; - - // Same calendar is strongest signal - if ( - newEvent.calendarId && - historical.calendarId && - newEvent.calendarId === historical.calendarId - ) { - score += 3; - } - - // Shared tags - if (newEvent.tagIds && historical.tagIds) { - const histSet = new Set(historical.tagIds); - const shared = newEvent.tagIds.filter((id) => histSet.has(id)).length; - score += shared * 2; - } - - // Title word overlap - const histTokens = tokenize(historical.title); - const overlap = titleOverlap(newTokens, histTokens); - if (overlap > 0.5) - score += 4; // title match is very strong for events - else if (overlap > 0.2) score += 2; - else if (overlap > 0) score += 1; - - return score; -} - -/** - * Round minutes to human-friendly values - */ -function roundToNice(minutes: number): number { - if (minutes <= 10) return Math.round(minutes / 5) * 5 || 5; - if (minutes <= 30) return Math.round(minutes / 5) * 5; - if (minutes <= 60) return Math.round(minutes / 15) * 15; - if (minutes <= 240) return Math.round(minutes / 30) * 30; - return Math.round(minutes / 60) * 60; -} - -/** - * Estimate duration for a new event based on past events. - */ -export function estimateEventDuration( - newEvent: { title: string; calendarId?: string | null; tagIds?: string[] }, - history: HistoricalEventData[], - minSamples = 3 -): DurationEstimate | null { - const newTokens = tokenize(newEvent.title); - const scored: ScoredEvent[] = []; - - for (const event of history) { - const duration = getEventDuration(event); - if (duration === null) continue; - - const score = similarity(newEvent, event, newTokens); - if (score > 0) { - scored.push({ duration, score }); - } - } - - if (scored.length < minSamples) return null; - - scored.sort((a, b) => b.score - a.score); - const top = scored.slice(0, 20); - - let totalWeight = 0; - let totalDuration = 0; - for (const { duration, score } of top) { - totalWeight += score; - totalDuration += duration * score; - } - - const minutes = roundToNice(Math.round(totalDuration / totalWeight)); - - const maxScore = top[0].score; - const confidence: DurationEstimate['confidence'] = - top.length >= 10 && maxScore >= 5 - ? 'high' - : top.length >= 5 && maxScore >= 3 - ? 'medium' - : 'low'; - - return { minutes, confidence, sampleSize: top.length }; -} - -// ─── Conflict Detection ──────────────────────────────────── - -export interface ConflictingEvent { - id: string; - title: string; - startDate: string; - endDate: string; - calendarId: string; -} - -export interface ConflictResult { - hasConflict: boolean; - conflicts: ConflictingEvent[]; -} - -/** - * Check if a proposed event overlaps with existing events. - * Two events overlap if: eventA.start < eventB.end AND eventA.end > eventB.start - * - * @param startDate - Proposed event start (ISO string or Date) - * @param endDate - Proposed event end (ISO string or Date) - * @param existingEvents - All events to check against - * @param excludeEventId - Exclude this event (for editing existing events) - */ -export function detectConflicts( - startDate: string | Date, - endDate: string | Date, - existingEvents: { - id: string; - title: string; - startDate: string; - endDate: string; - calendarId: string; - allDay?: boolean; - }[], - excludeEventId?: string -): ConflictResult { - const newStart = new Date(startDate).getTime(); - const newEnd = new Date(endDate).getTime(); - - if (newStart >= newEnd) { - return { hasConflict: false, conflicts: [] }; - } - - const conflicts: ConflictingEvent[] = []; - - for (const event of existingEvents) { - if (event.id === excludeEventId) continue; - if (event.allDay) continue; // all-day events don't block time - - const eventStart = new Date(event.startDate).getTime(); - const eventEnd = new Date(event.endDate).getTime(); - - // Overlap check: A.start < B.end AND A.end > B.start - if (newStart < eventEnd && newEnd > eventStart) { - conflicts.push({ - id: event.id, - title: event.title, - startDate: event.startDate, - endDate: event.endDate, - calendarId: event.calendarId, - }); - } - } - - return { - hasConflict: conflicts.length > 0, - conflicts, - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/utils/event-parser.test.ts b/apps/calendar/apps/web-archived/src/lib/utils/event-parser.test.ts deleted file mode 100644 index c89bd26df..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/event-parser.test.ts +++ /dev/null @@ -1,358 +0,0 @@ -import { describe, it, expect } from 'vitest'; -import { - parseEventInput, - resolveEventIds, - formatParsedEventPreview, - parseMultiEventInput, -} from './event-parser'; - -describe('parseEventInput', () => { - it('should parse a simple title', () => { - const result = parseEventInput('Meeting'); - expect(result.title).toBe('Meeting'); - expect(result.startDate).toBeUndefined(); - expect(result.duration).toBeUndefined(); - expect(result.tagNames).toEqual([]); - }); - - it('should parse date and time', () => { - const result = parseEventInput('Meeting morgen 14 Uhr'); - expect(result.title).toBe('Meeting'); - expect(result.startDate).toBeDefined(); - expect(result.startDate!.getHours()).toBe(14); - expect(result.startDate!.getMinutes()).toBe(0); - }); - - it('should parse duration in hours', () => { - const result = parseEventInput('Meeting 2h'); - expect(result.duration).toBe(120); - expect(result.title).toBe('Meeting'); - }); - - it('should parse duration in minutes', () => { - const result = parseEventInput('Standup 30min'); - expect(result.duration).toBe(30); - }); - - it('should parse combined duration 2h30m', () => { - const result = parseEventInput('Workshop 2h30m'); - expect(result.duration).toBe(150); - }); - - it('should parse duration in Stunden', () => { - const result = parseEventInput('Konferenz 3 Stunden'); - expect(result.duration).toBe(180); - }); - - it('should calculate endDate from startDate + duration', () => { - const result = parseEventInput('Meeting morgen 10 Uhr 2h'); - expect(result.startDate).toBeDefined(); - expect(result.endDate).toBeDefined(); - const diffMs = result.endDate!.getTime() - result.startDate!.getTime(); - expect(diffMs).toBe(120 * 60_000); // 2 hours - }); - - it('should default to 1h duration when no duration specified', () => { - const result = parseEventInput('Meeting morgen 10 Uhr'); - expect(result.startDate).toBeDefined(); - expect(result.endDate).toBeDefined(); - const diffMs = result.endDate!.getTime() - result.startDate!.getTime(); - expect(diffMs).toBe(60 * 60_000); // 1 hour default - }); - - it('should parse all-day events', () => { - const result = parseEventInput('Ganztägig Urlaub morgen'); - expect(result.isAllDay).toBe(true); - expect(result.title).toBe('Urlaub'); - expect(result.startDate).toBeDefined(); - }); - - it('should parse @calendar reference', () => { - const result = parseEventInput('Meeting @Arbeit'); - expect(result.calendarName).toBe('Arbeit'); - expect(result.attendees).toEqual([]); - expect(result.title).not.toContain('@Arbeit'); - }); - - it('should parse calendar and attendees from multiple @references', () => { - const result = parseEventInput('Meeting @Arbeit @Max @Anna'); - expect(result.calendarName).toBe('Arbeit'); - expect(result.attendees).toEqual(['Max', 'Anna']); - expect(result.title).not.toContain('@'); - }); - - it('should parse only attendees when no calendar match (first @ref treated as calendarName)', () => { - const result = parseEventInput('Meeting @Max @Anna'); - expect(result.calendarName).toBe('Max'); - expect(result.attendees).toEqual(['Anna']); - }); - - it('should parse single @reference as calendarName with no attendees', () => { - const result = parseEventInput('Meeting @Arbeit'); - expect(result.calendarName).toBe('Arbeit'); - expect(result.attendees).toEqual([]); - }); - - it('should parse #tags', () => { - const result = parseEventInput('Meeting #wichtig #team'); - expect(result.tagNames).toEqual(['wichtig', 'team']); - expect(result.title).not.toContain('#'); - }); - - it('should parse complex input with all fields', () => { - const result = parseEventInput('Teammeeting morgen 14 Uhr 1h @Arbeit #wichtig'); - expect(result.title).toBe('Teammeeting'); - expect(result.startDate).toBeDefined(); - expect(result.startDate!.getHours()).toBe(14); - expect(result.duration).toBe(60); - expect(result.calendarName).toBe('Arbeit'); - expect(result.tagNames).toEqual(['wichtig']); - }); - - it('should parse time range "14-16 Uhr"', () => { - const result = parseEventInput('Meeting morgen 14-16 Uhr'); - expect(result.title).toBe('Meeting'); - expect(result.startDate).toBeDefined(); - expect(result.startDate!.getHours()).toBe(14); - expect(result.endDate).toBeDefined(); - expect(result.endDate!.getHours()).toBe(16); - }); - - it('should parse time range "10:00-11:30"', () => { - const result = parseEventInput('Standup 10:00-11:30'); - expect(result.startDate).toBeDefined(); - expect(result.startDate!.getHours()).toBe(10); - expect(result.startDate!.getMinutes()).toBe(0); - expect(result.endDate).toBeDefined(); - expect(result.endDate!.getHours()).toBe(11); - expect(result.endDate!.getMinutes()).toBe(30); - }); - - it('should parse time range with en-dash "9–17 Uhr"', () => { - const result = parseEventInput('Arbeitstag 9–17 Uhr'); - expect(result.startDate!.getHours()).toBe(9); - expect(result.endDate!.getHours()).toBe(17); - }); - - it('should parse recurrence "jeden Montag"', () => { - const result = parseEventInput('Standup jeden Montag 9 Uhr'); - expect(result.recurrenceRule).toBe('FREQ=WEEKLY;BYDAY=MO'); - expect(result.title).toBe('Standup'); - }); - - it('should parse recurrence "wöchentlich"', () => { - const result = parseEventInput('Team-Meeting wöchentlich 14 Uhr'); - expect(result.recurrenceRule).toBe('FREQ=WEEKLY'); - }); - - it('should parse recurrence "täglich"', () => { - const result = parseEventInput('Standup täglich'); - expect(result.recurrenceRule).toBe('FREQ=DAILY'); - }); - - it('should have no recurrence for normal input', () => { - const result = parseEventInput('Meeting morgen'); - expect(result.recurrenceRule).toBeUndefined(); - }); - - it('should handle empty input', () => { - const result = parseEventInput(''); - expect(result.title).toBe(''); - expect(result.tagNames).toEqual([]); - expect(result.attendees).toEqual([]); - }); - - it('should parse time-only input (defaults to today)', () => { - const result = parseEventInput('Lunch 12 Uhr'); - expect(result.startDate).toBeDefined(); - expect(result.startDate!.getHours()).toBe(12); - }); -}); - -describe('resolveEventIds', () => { - const calendars = [ - { id: 'cal-1', name: 'Arbeit' }, - { id: 'cal-2', name: 'Privat' }, - ]; - - const tags = [ - { id: 'tag-1', name: 'Wichtig' }, - { id: 'tag-2', name: 'Team' }, - ]; - - it('should resolve calendar name to ID (case-insensitive)', () => { - const parsed = parseEventInput('Meeting @arbeit'); - const resolved = resolveEventIds(parsed, calendars, tags); - expect(resolved.calendarId).toBe('cal-1'); - }); - - it('should resolve tag names to IDs (case-insensitive)', () => { - const parsed = parseEventInput('Meeting #team'); - const resolved = resolveEventIds(parsed, calendars, tags); - expect(resolved.tagIds).toEqual(['tag-2']); - }); - - it('should use default calendar when no calendar specified', () => { - const parsed = parseEventInput('Meeting morgen'); - const resolved = resolveEventIds(parsed, calendars, tags, 'cal-1'); - expect(resolved.calendarId).toBe('cal-1'); - }); - - it('should skip unknown calendar and treat it as attendee', () => { - const parsed = parseEventInput('Meeting @Unbekannt'); - const resolved = resolveEventIds(parsed, calendars, tags); - expect(resolved.calendarId).toBeUndefined(); - expect(resolved.attendees).toEqual(['Unbekannt']); - }); - - it('should resolve calendar and keep attendees separate', () => { - const parsed = parseEventInput('Meeting @Arbeit @Max @Anna'); - const resolved = resolveEventIds(parsed, calendars, tags); - expect(resolved.calendarId).toBe('cal-1'); - expect(resolved.attendees).toEqual(['Max', 'Anna']); - }); - - it('should treat all @refs as attendees when no calendar matches', () => { - const parsed = parseEventInput('Meeting @Max @Anna'); - const resolved = resolveEventIds(parsed, calendars, tags); - expect(resolved.calendarId).toBeUndefined(); - expect(resolved.attendees).toEqual(['Max', 'Anna']); - }); - - it('should resolve calendar with no attendees', () => { - const parsed = parseEventInput('Meeting @Arbeit'); - const resolved = resolveEventIds(parsed, calendars, tags); - expect(resolved.calendarId).toBe('cal-1'); - expect(resolved.attendees).toEqual([]); - }); - - it('should produce ISO date strings', () => { - const parsed = parseEventInput('Meeting morgen 14 Uhr'); - const resolved = resolveEventIds(parsed, calendars, tags); - expect(resolved.startTime).toBeDefined(); - expect(resolved.endTime).toBeDefined(); - // Verify it's a valid ISO string - expect(new Date(resolved.startTime!).toISOString()).toBe(resolved.startTime); - }); -}); - -describe('formatParsedEventPreview', () => { - it('should format duration', () => { - const parsed = parseEventInput('Meeting 2h'); - const preview = formatParsedEventPreview(parsed); - expect(preview).toContain('2h'); - }); - - it('should format calendar', () => { - const parsed = parseEventInput('Meeting @Arbeit'); - const preview = formatParsedEventPreview(parsed); - expect(preview).toContain('Arbeit'); - }); - - it('should format attendees', () => { - const parsed = parseEventInput('Meeting @Arbeit @Max @Anna'); - const preview = formatParsedEventPreview(parsed); - expect(preview).toContain('👥 Max, Anna'); - }); - - it('should format tags', () => { - const parsed = parseEventInput('Meeting #team'); - const preview = formatParsedEventPreview(parsed); - expect(preview).toContain('team'); - }); - - it('should format all-day events', () => { - const parsed = parseEventInput('Ganztägig Urlaub morgen'); - const preview = formatParsedEventPreview(parsed); - expect(preview).toContain('ganztägig'); - }); - - it('should return empty string for title-only input', () => { - const parsed = parseEventInput('Einfaches Meeting'); - expect(formatParsedEventPreview(parsed)).toBe(''); - }); - - it('should join parts with separator', () => { - const parsed = parseEventInput('Meeting morgen 14 Uhr 1h @Arbeit'); - const preview = formatParsedEventPreview(parsed); - expect(preview).toContain(' · '); - }); -}); - -describe('parseMultiEventInput', () => { - it('should return single event for simple input', () => { - const events = parseMultiEventInput('Meeting morgen'); - expect(events).toHaveLength(1); - expect(events[0].title).toBe('Meeting'); - }); - - it('should split on "danach"', () => { - const events = parseMultiEventInput('Meeting danach Review'); - expect(events).toHaveLength(2); - expect(events[0].title).toBe('Meeting'); - expect(events[1].title).toBe('Review'); - }); - - it('should split on semicolon', () => { - const events = parseMultiEventInput('Meeting; Review; Retro'); - expect(events).toHaveLength(3); - }); - - it('should inherit calendar from first event', () => { - const events = parseMultiEventInput('Meeting @Arbeit danach Review'); - expect(events[0].calendarName).toBe('Arbeit'); - expect(events[1].calendarName).toBe('Arbeit'); - }); - - it('should offset time based on first event end', () => { - const events = parseMultiEventInput('Meeting 14 Uhr 1h danach Review 30min'); - expect(events).toHaveLength(2); - expect(events[0].startDate).toBeDefined(); - expect(events[0].startDate!.getHours()).toBe(14); - // Second event should start at 15:00 (14 + 1h) - expect(events[1].startDate).toBeDefined(); - expect(events[1].startDate!.getHours()).toBe(15); - expect(events[1].startDate!.getMinutes()).toBe(0); - // Second event should end at 15:30 - expect(events[1].endDate).toBeDefined(); - expect(events[1].endDate!.getHours()).toBe(15); - expect(events[1].endDate!.getMinutes()).toBe(30); - }); - - it('should chain three events with time offsets', () => { - const events = parseMultiEventInput( - 'Standup 9 Uhr 30min; Sprint Planning 1h; Code Review 30min' - ); - expect(events).toHaveLength(3); - // Standup: 9:00-9:30 - expect(events[0].startDate!.getHours()).toBe(9); - expect(events[0].endDate!.getHours()).toBe(9); - expect(events[0].endDate!.getMinutes()).toBe(30); - // Sprint Planning: 9:30-10:30 - expect(events[1].startDate!.getHours()).toBe(9); - expect(events[1].startDate!.getMinutes()).toBe(30); - expect(events[1].endDate!.getHours()).toBe(10); - expect(events[1].endDate!.getMinutes()).toBe(30); - // Code Review: 10:30-11:00 - expect(events[2].startDate!.getHours()).toBe(10); - expect(events[2].startDate!.getMinutes()).toBe(30); - expect(events[2].endDate!.getHours()).toBe(11); - expect(events[2].endDate!.getMinutes()).toBe(0); - }); - - it('should handle ", danach" pattern', () => { - const events = parseMultiEventInput('Zahnarzt, danach Apotheke'); - expect(events).toHaveLength(2); - expect(events[0].title).toBe('Zahnarzt'); - expect(events[1].title).toBe('Apotheke'); - }); - - it('should default to 1h when no duration on follow-up events', () => { - const events = parseMultiEventInput('Meeting 14 Uhr 1h danach Review'); - expect(events[1].startDate).toBeDefined(); - expect(events[1].endDate).toBeDefined(); - // Review default: 1h - const diff = events[1].endDate!.getTime() - events[1].startDate!.getTime(); - expect(diff).toBe(60 * 60_000); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/utils/event-parser.ts b/apps/calendar/apps/web-archived/src/lib/utils/event-parser.ts deleted file mode 100644 index c2489499c..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/event-parser.ts +++ /dev/null @@ -1,502 +0,0 @@ -/** - * Event Parser for Calendar App - * - * Extends the base parser with event-specific patterns: - * - Duration: 1h, 30min, 2h30m, 1 Stunde - * - Location: in Berlin, im Büro - * - Calendar: @CalendarName - * - * Examples: - * - "Meeting morgen 14 Uhr 1h @Arbeit #wichtig" - * - "Arzttermin 15.12. 10:00 30min in Praxis Dr. Müller" - * - "Mittagessen heute 12 Uhr" - * - "Ganztägig Urlaub nächste Woche" - */ - -import { - parseBaseInput, - extractAtReferences, - extractRecurrence, - combineDateAndTime, - formatDatePreview, - formatTimePreview, - type ParserLocale, -} from '@manacore/shared-utils'; -import { addHours } from 'date-fns'; - -export interface ParsedEvent { - title: string; - startDate?: Date; - endDate?: Date; - duration?: number; // in minutes - isAllDay?: boolean; - calendarName?: string; - attendees: string[]; - location?: string; - recurrenceRule?: string; - tagNames: string[]; -} - -interface Calendar { - id: string; - name: string; -} - -interface Tag { - id: string; - name: string; -} - -export interface ParsedEventWithIds { - title: string; - startTime?: string; - endTime?: string; - isAllDay?: boolean; - calendarId?: string; - attendees: string[]; - location?: string; - recurrenceRule?: string; - tagIds: string[]; -} - -// ============================================================================ -// Time Range Extraction (14-16 Uhr, 10:00-11:30) -// ============================================================================ - -// "14-16 Uhr", "14:00-16:00", "10-11:30" -const TIME_RANGE_PATTERN = - /\b(?:um\s*)?(\d{1,2})(?::(\d{2}))?\s*[-–]\s*(\d{1,2})(?::(\d{2}))?\s*(?:uhr)?\b/i; - -function extractTimeRange(text: string): { - startTime?: { hours: number; minutes: number }; - endTime?: { hours: number; minutes: number }; - remaining: string; -} { - const match = text.match(TIME_RANGE_PATTERN); - if (match) { - const startHours = parseInt(match[1]); - const startMinutes = match[2] ? parseInt(match[2]) : 0; - const endHours = parseInt(match[3]); - const endMinutes = match[4] ? parseInt(match[4]) : 0; - - if ( - startHours >= 0 && - startHours <= 23 && - endHours >= 0 && - endHours <= 23 && - startMinutes >= 0 && - startMinutes <= 59 && - endMinutes >= 0 && - endMinutes <= 59 - ) { - return { - startTime: { hours: startHours, minutes: startMinutes }, - endTime: { hours: endHours, minutes: endMinutes }, - remaining: text.replace(TIME_RANGE_PATTERN, '').trim(), - }; - } - } - return { remaining: text }; -} - -// ============================================================================ -// Duration Extraction -// ============================================================================ - -// Locale-specific "hours" words (Stunden, hours, heures, horas, ore) -const HOURS_WORDS: Record = { - de: 'stunde[n]?', - en: 'hours?', - fr: 'heures?', - es: 'horas?', - it: 'ore', -}; - -function getDurationPatterns( - locale: ParserLocale -): { pattern: RegExp; getMinutes: (match: RegExpMatchArray) => number }[] { - const hoursWord = HOURS_WORDS[locale]; - return [ - // 2h30m, 2h 30m, 1h30min - { - pattern: /\b(\d+)\s*h\s*(\d+)\s*(?:m(?:in)?)\b/i, - getMinutes: (m) => parseInt(m[1]) * 60 + parseInt(m[2]), - }, - // 1h, 2h (hours only) - { pattern: /\b(\d+)\s*h\b/i, getMinutes: (m) => parseInt(m[1]) * 60 }, - // 30min, 45 min, 90 Minuten/minutes/etc. - { - pattern: /\b(\d+)\s*(?:min(?:uten?|utes?)?)\b/i, - getMinutes: (m) => parseInt(m[1]), - }, - // Locale-specific full word: 1 Stunde, 2 hours, 3 heures, etc. - { - pattern: new RegExp(`\\b(\\d+)\\s*${hoursWord}\\b`, 'i'), - getMinutes: (m) => parseInt(m[1]) * 60, - }, - ]; -} - -function extractDuration( - text: string, - locale: ParserLocale = 'de' -): { duration?: number; remaining: string } { - for (const { pattern, getMinutes } of getDurationPatterns(locale)) { - const match = text.match(pattern); - if (match) { - return { - duration: getMinutes(match), - remaining: text.replace(pattern, '').trim(), - }; - } - } - return { duration: undefined, remaining: text }; -} - -// ============================================================================ -// Location Extraction -// ============================================================================ - -// Location extraction - runs on the title AFTER date/time extraction has already -// removed date keywords like "in 3 Tagen", "in einer halben Stunde" etc. -// "in Berlin", "im Büro", "bei Dr. Müller", "am Bahnhof" -const LOCATION_PATTERN = /\b(?:in|im|bei|am)\s+(.+?)(?=\s+(?:@|#)|$)/i; - -// Patterns that look like dates/times but not locations (multilingual) -const NOT_LOCATION_PATTERN = - /^\d+\s*(tage?n?|wochen?|stunde[n]?|minute[n]?|hours?|minutes?|heures?|horas?|ore|h|min)$/i; - -function extractLocation(text: string): { location?: string; remaining: string } { - const match = text.match(LOCATION_PATTERN); - if (match) { - const location = match[1].trim(); - - // Skip if it looks like a leftover time/date expression - if (NOT_LOCATION_PATTERN.test(location)) { - return { location: undefined, remaining: text }; - } - - // Skip if starts with a number (likely a leftover numeric expression) - if (/^\d+\s/.test(location) && location.length < 5) { - return { location: undefined, remaining: text }; - } - - if (location.length >= 2) { - return { - location, - remaining: text.replace(LOCATION_PATTERN, '').trim(), - }; - } - } - return { location: undefined, remaining: text }; -} - -// ============================================================================ -// All-Day Detection -// ============================================================================ - -const ALL_DAY_PATTERNS: Record = { - de: [/\bganzt[aä]gig\b/i, /\bganzer\s+tag\b/i], - en: [/\ball[- ]?day\b/i, /\bwhole\s+day\b/i], - fr: [/\btoute\s+la\s+journ[eé]e\b/i, /\bjour\s+entier\b/i], - es: [/\btodo\s+el\s+d[ií]a\b/i, /\bd[ií]a\s+completo\b/i], - it: [/\btutto\s+il\s+giorno\b/i, /\bgiornata\s+intera\b/i], -}; - -function getAllDayPatterns(locale: ParserLocale): RegExp[] { - return ALL_DAY_PATTERNS[locale]; -} - -function extractAllDay( - text: string, - locale: ParserLocale = 'de' -): { isAllDay: boolean; remaining: string } { - for (const pattern of getAllDayPatterns(locale)) { - if (pattern.test(text)) { - return { - isAllDay: true, - remaining: text.replace(pattern, '').trim(), - }; - } - } - return { isAllDay: false, remaining: text }; -} - -// ============================================================================ -// Main Parser -// ============================================================================ - -/** - * Parse natural language event input - * - * Examples: - * - "Meeting morgen 14 Uhr 1h @Arbeit #wichtig" - * - "Arzttermin 15.12. 10:00 30min" - * - "Ganztägig Urlaub morgen" - */ -export function parseEventInput(input: string, locale: ParserLocale = 'de'): ParsedEvent { - let text = input.trim(); - - // Extract recurrence (before other extractions since "jeden Montag" could conflict with weekday) - const recurrenceResult = extractRecurrence(text, locale); - text = recurrenceResult.remaining; - const recurrenceRule = recurrenceResult.value; - - // Extract all-day flag - const allDayResult = extractAllDay(text, locale); - text = allDayResult.remaining; - const isAllDay = allDayResult.isAllDay; - - // Extract time range first (14-16 Uhr, 10:00-11:30) - const timeRangeResult = extractTimeRange(text); - text = timeRangeResult.remaining; - - // Extract duration (before base parser, since "30min" could conflict with time) - const durationResult = extractDuration(text, locale); - text = durationResult.remaining; - const duration = durationResult.duration; - - // Extract @references (first may be calendar, rest are attendees) - const atRefsResult = extractAtReferences(text); - text = atRefsResult.remaining; - const atRefs = atRefsResult.value ?? []; - const calendarName = atRefs.length > 0 ? atRefs[0] : undefined; - const attendees = atRefs.length > 1 ? atRefs.slice(1) : []; - - // Use base parser for common patterns (date, time, tags) - const base = parseBaseInput(text, locale); - - // Try to extract location from the remaining title - const locationResult = extractLocation(base.title); - const title = locationResult.location ? locationResult.remaining : base.title; - const location = locationResult.location; - - // Build start/end dates - let startDate: Date | undefined; - let endDate: Date | undefined; - - if (timeRangeResult.startTime && timeRangeResult.endTime) { - // Time range provided: use it directly - const dateForRange = base.date || new Date(); - startDate = combineDateAndTime(dateForRange, timeRangeResult.startTime); - endDate = combineDateAndTime(dateForRange, timeRangeResult.endTime); - } else { - // Single time or no time - startDate = combineDateAndTime(base.date, isAllDay ? undefined : base.time); - - if (startDate) { - if (isAllDay) { - endDate = new Date(startDate); - endDate.setHours(23, 59, 59); - } else if (duration) { - endDate = new Date(startDate.getTime() + duration * 60_000); - } else { - // Default: 1 hour - endDate = addHours(startDate, 1); - } - } - } - - return { - title, - startDate, - endDate, - duration, - isAllDay: isAllDay || undefined, - calendarName, - attendees, - location, - recurrenceRule, - tagNames: base.tagNames, - }; -} - -// ============================================================================ -// Multi-Event Splitting -// ============================================================================ - -const EVENT_SPLITTERS = - /\s*(?:,\s*(?:danach|dann|und dann|anschließend|außerdem|afterwards|then|and then|also)\s+|;\s*|\s+(?:danach|dann|und dann|anschließend|afterwards|then|and then)\s+)/i; - -/** - * Parse input that may contain multiple events separated by keywords. - * Subsequent events inherit date/time/calendar context from the first event. - * If the first event has a known end time, the next event starts there. - * - * Examples: - * - "Meeting 14 Uhr 1h danach Review 30min" → Meeting 14-15, Review 15-15:30 - * - "Morgen Workshop 9-12 Uhr @Arbeit; Mittagessen; Retro 1h" → 3 events - */ -export function parseMultiEventInput(input: string, locale: ParserLocale = 'de'): ParsedEvent[] { - const parts = input.split(EVENT_SPLITTERS).filter((s) => s.trim().length > 0); - - if (parts.length <= 1) { - return [parseEventInput(input, locale)]; - } - - const results: ParsedEvent[] = []; - let contextDate: Date | undefined; - let contextCalendar: string | undefined; - let lastEndDate: Date | undefined; - - for (let i = 0; i < parts.length; i++) { - const parsed = parseEventInput(parts[i].trim(), locale); - - if (i === 0) { - contextDate = parsed.startDate; - contextCalendar = parsed.calendarName; - lastEndDate = parsed.endDate; - } else { - // Inherit calendar - if (!parsed.calendarName && contextCalendar) { - parsed.calendarName = contextCalendar; - } - - // Inherit date/time: use lastEndDate as start if no explicit time - if (!parsed.startDate && lastEndDate) { - parsed.startDate = new Date(lastEndDate); - // Calculate endDate - if (parsed.duration) { - parsed.endDate = new Date(parsed.startDate.getTime() + parsed.duration * 60_000); - } else { - // Default 1h - parsed.endDate = addHours(parsed.startDate, 1); - } - } else if (!parsed.startDate && contextDate) { - // Fallback: same date, no specific time - parsed.startDate = new Date(contextDate); - if (parsed.duration) { - parsed.endDate = new Date(parsed.startDate.getTime() + parsed.duration * 60_000); - } else { - parsed.endDate = addHours(parsed.startDate, 1); - } - } - - lastEndDate = parsed.endDate; - } - - results.push(parsed); - } - - return results; -} - -// ============================================================================ -// ID Resolution -// ============================================================================ - -/** - * Resolve calendar and tag names to IDs - */ -export function resolveEventIds( - parsed: ParsedEvent, - calendars: Calendar[], - tags: Tag[], - defaultCalendarId?: string -): ParsedEventWithIds { - let calendarId: string | undefined; - const attendees: string[] = [...parsed.attendees]; - const tagIds: string[] = []; - - // Try to match first @ref as calendar (case-insensitive) - if (parsed.calendarName) { - const calendar = calendars.find( - (c) => c.name.toLowerCase() === parsed.calendarName!.toLowerCase() - ); - if (calendar) { - calendarId = calendar.id; - } else { - // First @ref didn't match a calendar, treat it as an attendee - attendees.unshift(parsed.calendarName); - } - } - - // Fallback to default calendar - if (!calendarId && defaultCalendarId) { - calendarId = defaultCalendarId; - } - - // Find tags by name (case-insensitive) - for (const tagName of parsed.tagNames) { - const tag = tags.find((t) => t.name.toLowerCase() === tagName.toLowerCase()); - if (tag) { - tagIds.push(tag.id); - } - } - - return { - title: parsed.title, - startTime: parsed.startDate?.toISOString(), - endTime: parsed.endDate?.toISOString(), - isAllDay: parsed.isAllDay, - calendarId, - attendees, - location: parsed.location, - recurrenceRule: parsed.recurrenceRule, - tagIds, - }; -} - -// ============================================================================ -// Preview Formatting -// ============================================================================ - -// Locale-specific "all-day" label for preview display -const ALL_DAY_LABEL: Record = { - de: 'ganztägig', - en: 'all-day', - fr: 'toute la journée', - es: 'todo el día', - it: 'tutto il giorno', -}; - -/** - * Format parsed event for preview display - */ -export function formatParsedEventPreview(parsed: ParsedEvent, locale: ParserLocale = 'de'): string { - const parts: string[] = []; - - if (parsed.isAllDay && parsed.startDate) { - parts.push(`📅 ${formatDatePreview(parsed.startDate, locale)} (${ALL_DAY_LABEL[locale]})`); - } else if (parsed.startDate) { - let dateStr = `📅 ${formatDatePreview(parsed.startDate, locale)}`; - if (parsed.startDate.getHours() !== 0 || parsed.startDate.getMinutes() !== 0) { - dateStr += ` ${formatTimePreview({ - hours: parsed.startDate.getHours(), - minutes: parsed.startDate.getMinutes(), - })}`; - } - parts.push(dateStr); - } - - if (parsed.duration) { - const hours = Math.floor(parsed.duration / 60); - const mins = parsed.duration % 60; - let durationStr = ''; - if (hours > 0) durationStr += `${hours}h`; - if (mins > 0) durationStr += `${mins}min`; - parts.push(`⏱️ ${durationStr}`); - } - - if (parsed.location) { - parts.push(`📍 ${parsed.location}`); - } - - if (parsed.recurrenceRule) { - parts.push(`🔄 ${parsed.recurrenceRule}`); - } - - if (parsed.calendarName) { - parts.push(`📆 ${parsed.calendarName}`); - } - - if (parsed.attendees.length > 0) { - parts.push(`👥 ${parsed.attendees.join(', ')}`); - } - - if (parsed.tagNames.length > 0) { - parts.push(`🏷️ ${parsed.tagNames.join(', ')}`); - } - - return parts.join(' · '); -} diff --git a/apps/calendar/apps/web-archived/src/lib/utils/eventDateHelpers.test.ts b/apps/calendar/apps/web-archived/src/lib/utils/eventDateHelpers.test.ts deleted file mode 100644 index 7120e98b2..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/eventDateHelpers.test.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { describe, it, expect } from 'vitest'; -import { toDate, getEventStart, getEventEnd, getEventTimes } from './eventDateHelpers'; - -describe('toDate', () => { - it('should parse ISO string to Date', () => { - const result = toDate('2026-03-18T10:30:00Z'); - expect(result).toBeInstanceOf(Date); - expect(result.toISOString()).toBe('2026-03-18T10:30:00.000Z'); - }); - - it('should return Date object as-is', () => { - const date = new Date('2026-03-18T10:30:00Z'); - const result = toDate(date); - expect(result).toBe(date); - }); -}); - -describe('getEventStart', () => { - it('should extract start time from event with string', () => { - const event = { startTime: '2026-03-18T09:00:00Z' }; - const result = getEventStart(event); - expect(result).toBeInstanceOf(Date); - expect(result.toISOString()).toBe('2026-03-18T09:00:00.000Z'); - }); - - it('should handle Date object', () => { - const date = new Date('2026-03-18T09:00:00Z'); - const event = { startTime: date }; - const result = getEventStart(event); - expect(result).toBe(date); - }); -}); - -describe('getEventEnd', () => { - it('should extract end time from event with string', () => { - const event = { endTime: '2026-03-18T10:00:00Z' }; - const result = getEventEnd(event); - expect(result).toBeInstanceOf(Date); - expect(result.toISOString()).toBe('2026-03-18T10:00:00.000Z'); - }); - - it('should handle Date object', () => { - const date = new Date('2026-03-18T10:00:00Z'); - const event = { endTime: date }; - const result = getEventEnd(event); - expect(result).toBe(date); - }); -}); - -describe('getEventTimes', () => { - it('should return both start and end as Date objects', () => { - const event = { - startTime: '2026-03-18T09:00:00Z', - endTime: '2026-03-18T10:00:00Z', - }; - const result = getEventTimes(event); - expect(result.start).toBeInstanceOf(Date); - expect(result.end).toBeInstanceOf(Date); - expect(result.start.toISOString()).toBe('2026-03-18T09:00:00.000Z'); - expect(result.end.toISOString()).toBe('2026-03-18T10:00:00.000Z'); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/utils/eventDateHelpers.ts b/apps/calendar/apps/web-archived/src/lib/utils/eventDateHelpers.ts deleted file mode 100644 index 9e8063377..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/eventDateHelpers.ts +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Event Date Helpers - * Utilities for consistent date handling across the calendar app - */ - -import { parseISO } from 'date-fns'; - -/** - * Convert a date value that may be either a string or Date to a Date object - * This handles the common pattern where API returns ISO strings but we need Date objects - */ -export function toDate(value: string | Date): Date { - return typeof value === 'string' ? parseISO(value) : value; -} - -/** - * Get the start time of an event as a Date object - */ -export function getEventStart(event: { startTime: string | Date }): Date { - return toDate(event.startTime); -} - -/** - * Get the end time of an event as a Date object - */ -export function getEventEnd(event: { endTime: string | Date }): Date { - return toDate(event.endTime); -} - -/** - * Get both start and end times of an event as Date objects - */ -export function getEventTimes(event: { startTime: string | Date; endTime: string | Date }): { - start: Date; - end: Date; -} { - return { - start: toDate(event.startTime), - end: toDate(event.endTime), - }; -} diff --git a/apps/calendar/apps/web-archived/src/lib/utils/eventFiltering.test.ts b/apps/calendar/apps/web-archived/src/lib/utils/eventFiltering.test.ts deleted file mode 100644 index 0e6844e99..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/eventFiltering.test.ts +++ /dev/null @@ -1,179 +0,0 @@ -import { describe, it, expect } from 'vitest'; -import { - getVisibleCalendarIds, - filterByVisibleCalendars, - filterTimedEvents, - filterAllDayEvents, - getEventMinutes, - eventOverlapsTimeRange, - filterByHourRange, - getOverflowEvents, - filterByTags, -} from './eventFiltering'; - -// Mock calendars -const calendarA = { id: 'cal-a', name: 'Work', color: '#3B82F6' } as any; -const calendarB = { id: 'cal-b', name: 'Personal', color: '#EF4444' } as any; - -// Mock events - use local Date objects to avoid timezone offset issues with getHours() -const timedEventA = { - id: 'evt-1', - calendarId: 'cal-a', - startTime: new Date(2026, 2, 18, 9, 0, 0), - endTime: new Date(2026, 2, 18, 10, 0, 0), - isAllDay: false, - tags: [{ id: 'tag-1', name: 'meeting' }], -} as any; - -const timedEventB = { - id: 'evt-2', - calendarId: 'cal-b', - startTime: new Date(2026, 2, 18, 14, 0, 0), - endTime: new Date(2026, 2, 18, 15, 30, 0), - isAllDay: false, - tags: [{ id: 'tag-2', name: 'personal' }], -} as any; - -const allDayEvent = { - id: 'evt-3', - calendarId: 'cal-a', - startTime: new Date(2026, 2, 18, 0, 0, 0), - endTime: new Date(2026, 2, 19, 0, 0, 0), - isAllDay: true, - tags: [], -} as any; - -const earlyEvent = { - id: 'evt-4', - calendarId: 'cal-a', - startTime: new Date(2026, 2, 18, 5, 0, 0), - endTime: new Date(2026, 2, 18, 6, 0, 0), - isAllDay: false, - tags: null, -} as any; - -const lateEvent = { - id: 'evt-5', - calendarId: 'cal-a', - startTime: new Date(2026, 2, 18, 22, 0, 0), - endTime: new Date(2026, 2, 18, 23, 0, 0), - isAllDay: false, - tags: [{ id: 'tag-1', name: 'meeting' }], -} as any; - -const allEvents = [timedEventA, timedEventB, allDayEvent, earlyEvent, lateEvent]; - -describe('getVisibleCalendarIds', () => { - it('should return a Set of calendar IDs', () => { - const result = getVisibleCalendarIds([calendarA, calendarB]); - expect(result).toBeInstanceOf(Set); - expect(result.size).toBe(2); - expect(result.has('cal-a')).toBe(true); - expect(result.has('cal-b')).toBe(true); - }); -}); - -describe('filterByVisibleCalendars', () => { - it('should filter events to only visible calendars', () => { - const result = filterByVisibleCalendars(allEvents, [calendarA]); - expect(result.every((e) => e.calendarId === 'cal-a')).toBe(true); - expect(result).toHaveLength(4); - }); -}); - -describe('filterTimedEvents', () => { - it('should filter out all-day events', () => { - const result = filterTimedEvents(allEvents); - expect(result.every((e) => !e.isAllDay)).toBe(true); - expect(result).toHaveLength(4); - }); -}); - -describe('filterAllDayEvents', () => { - it('should keep only all-day events', () => { - const result = filterAllDayEvents(allEvents); - expect(result.every((e) => e.isAllDay)).toBe(true); - expect(result).toHaveLength(1); - expect(result[0].id).toBe('evt-3'); - }); -}); - -describe('getEventMinutes', () => { - it('should convert event times to minutes from midnight', () => { - const result = getEventMinutes(timedEventA); - // 09:00 UTC = 540 minutes - expect(result.start).toBe(9 * 60); - // 10:00 UTC = 600 minutes - expect(result.end).toBe(10 * 60); - }); -}); - -describe('eventOverlapsTimeRange', () => { - it('should return true when event overlaps with range', () => { - // Event is 09:00-10:00, range is 08:00-12:00 - const result = eventOverlapsTimeRange(timedEventA, 8 * 60, 12 * 60); - expect(result).toBe(true); - }); - - it('should return false when event is outside range', () => { - // Event is 09:00-10:00, range is 11:00-12:00 - const result = eventOverlapsTimeRange(timedEventA, 11 * 60, 12 * 60); - expect(result).toBe(false); - }); - - it('should return false when event ends exactly at range start', () => { - // Event is 09:00-10:00, range starts at 10:00 - const result = eventOverlapsTimeRange(timedEventA, 10 * 60, 12 * 60); - expect(result).toBe(false); - }); -}); - -describe('filterByHourRange', () => { - it('should filter events within the hour range', () => { - const timedEvents = filterTimedEvents(allEvents); - // Range 8:00-18:00 should include timedEventA (9-10) and timedEventB (14-15:30) - const result = filterByHourRange(timedEvents, 8, 18); - expect(result.some((e) => e.id === 'evt-1')).toBe(true); - expect(result.some((e) => e.id === 'evt-2')).toBe(true); - // earlyEvent (5-6) and lateEvent (22-23) should be excluded - expect(result.some((e) => e.id === 'evt-4')).toBe(false); - expect(result.some((e) => e.id === 'evt-5')).toBe(false); - }); -}); - -describe('getOverflowEvents', () => { - it('should return events before and after visible range', () => { - const timedEvents = filterTimedEvents(allEvents); - const result = getOverflowEvents(timedEvents, 8, 18); - - // earlyEvent (5-6) ends before 8:00 - expect(result.before.some((e) => e.id === 'evt-4')).toBe(true); - // lateEvent (22-23) starts after 18:00 - expect(result.after.some((e) => e.id === 'evt-5')).toBe(true); - // timedEventA (9-10) is within range, should not appear - expect(result.before.some((e) => e.id === 'evt-1')).toBe(false); - expect(result.after.some((e) => e.id === 'evt-1')).toBe(false); - }); -}); - -describe('filterByTags', () => { - it('should return all events when no tags are selected', () => { - const result = filterByTags(allEvents, []); - expect(result).toHaveLength(allEvents.length); - }); - - it('should filter events by selected tag IDs', () => { - const result = filterByTags(allEvents, ['tag-1']); - // timedEventA and lateEvent have tag-1 - expect(result).toHaveLength(2); - expect(result.some((e) => e.id === 'evt-1')).toBe(true); - expect(result.some((e) => e.id === 'evt-5')).toBe(true); - }); - - it('should exclude events with no tags when filtering', () => { - // allDayEvent has empty tags, earlyEvent has null tags - const result = filterByTags(allEvents, ['tag-2']); - expect(result.some((e) => e.id === 'evt-3')).toBe(false); - expect(result.some((e) => e.id === 'evt-4')).toBe(false); - }); -}); diff --git a/apps/calendar/apps/web-archived/src/lib/utils/eventFiltering.ts b/apps/calendar/apps/web-archived/src/lib/utils/eventFiltering.ts deleted file mode 100644 index 52ff744ad..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/eventFiltering.ts +++ /dev/null @@ -1,205 +0,0 @@ -/** - * Event Filtering Utilities - * Reusable functions for filtering calendar events by visibility, time range, etc. - */ - -import type { CalendarEvent } from '@calendar/shared'; -import type { Calendar } from '@calendar/shared'; -import { toDate } from './eventDateHelpers'; - -/** - * Create a Set of visible calendar IDs for efficient lookup - */ -export function getVisibleCalendarIds(visibleCalendars: Calendar[]): Set { - return new Set(visibleCalendars.map((c) => c.id)); -} - -/** - * Filter events to only include those from visible calendars - */ -export function filterByVisibleCalendars( - events: CalendarEvent[], - visibleCalendars: Calendar[] -): CalendarEvent[] { - const visibleIds = getVisibleCalendarIds(visibleCalendars); - return events.filter((e) => visibleIds.has(e.calendarId)); -} - -/** - * Filter events to only include timed (non-all-day) events - */ -export function filterTimedEvents(events: CalendarEvent[]): CalendarEvent[] { - return events.filter((e) => !e.isAllDay); -} - -/** - * Filter events to only include all-day events - */ -export function filterAllDayEvents(events: CalendarEvent[]): CalendarEvent[] { - return events.filter((e) => e.isAllDay); -} - -/** - * Get event time in minutes from midnight - */ -export function getEventMinutes(event: CalendarEvent): { start: number; end: number } { - const start = toDate(event.startTime); - const end = toDate(event.endTime); - return { - start: start.getHours() * 60 + start.getMinutes(), - end: end.getHours() * 60 + end.getMinutes(), - }; -} - -/** - * Check if an event overlaps with a given time range (in minutes from midnight) - */ -export function eventOverlapsTimeRange( - event: CalendarEvent, - startMinutes: number, - endMinutes: number -): boolean { - const { start: eventStart, end: eventEnd } = getEventMinutes(event); - return eventStart < endMinutes && eventEnd > startMinutes; -} - -/** - * Filter timed events that overlap with a visible hour range - */ -export function filterByHourRange( - events: CalendarEvent[], - dayStartHour: number, - dayEndHour: number -): CalendarEvent[] { - const startMinutes = dayStartHour * 60; - const endMinutes = dayEndHour * 60; - return events.filter((event) => eventOverlapsTimeRange(event, startMinutes, endMinutes)); -} - -/** - * Result type for overflow events - */ -export interface OverflowEvents { - before: CalendarEvent[]; - after: CalendarEvent[]; -} - -/** - * Get events that are outside the visible hour range - * Returns events that end before the visible range starts (before) - * and events that start after the visible range ends (after) - */ -export function getOverflowEvents( - events: CalendarEvent[], - dayStartHour: number, - dayEndHour: number -): OverflowEvents { - const startMinutes = dayStartHour * 60; - const endMinutes = dayEndHour * 60; - - const before: CalendarEvent[] = []; - const after: CalendarEvent[] = []; - - for (const event of events) { - const { start: eventStart, end: eventEnd } = getEventMinutes(event); - - if (eventEnd <= startMinutes) { - before.push(event); - } else if (eventStart >= endMinutes) { - after.push(event); - } - } - - return { before, after }; -} - -/** - * Combined filter: Get visible timed events for a day with optional hour and tag filtering - */ -export function getVisibleTimedEvents( - events: CalendarEvent[], - visibleCalendars: Calendar[], - options?: { - filterHoursEnabled?: boolean; - dayStartHour?: number; - dayEndHour?: number; - selectedTagIds?: string[]; - } -): CalendarEvent[] { - let filtered = filterByVisibleCalendars(events, visibleCalendars); - filtered = filterTimedEvents(filtered); - - if ( - options?.filterHoursEnabled && - options.dayStartHour !== undefined && - options.dayEndHour !== undefined - ) { - filtered = filterByHourRange(filtered, options.dayStartHour, options.dayEndHour); - } - - // Apply tag filter if tags are selected - if (options?.selectedTagIds) { - filtered = filterByTags(filtered, options.selectedTagIds); - } - - return filtered; -} - -/** - * Combined filter: Get visible all-day events for a day with optional tag filtering - */ -export function getVisibleAllDayEvents( - events: CalendarEvent[], - visibleCalendars: Calendar[], - options?: { - selectedTagIds?: string[]; - } -): CalendarEvent[] { - let filtered = filterByVisibleCalendars(events, visibleCalendars); - filtered = filterAllDayEvents(filtered); - - // Apply tag filter if tags are selected - if (options?.selectedTagIds) { - filtered = filterByTags(filtered, options.selectedTagIds); - } - - return filtered; -} - -/** - * Filter events by selected tag IDs - * If no tags are selected (empty array), returns all events - * If tags are selected, returns only events that have at least one of the selected tags - */ -export function filterByTags(events: CalendarEvent[], selectedTagIds: string[]): CalendarEvent[] { - // If no tags are selected, show all events - if (selectedTagIds.length === 0) { - return events; - } - - const selectedTagSet = new Set(selectedTagIds); - - return events.filter((event) => { - // If event has no tags, don't show it when filtering by tags - if (!event.tags || event.tags.length === 0) { - return false; - } - - // Check if event has at least one of the selected tags - return event.tags.some((tag) => selectedTagSet.has(tag.id)); - }); -} - -/** - * Combined filter: Get overflow events for visible calendars - */ -export function getVisibleOverflowEvents( - events: CalendarEvent[], - visibleCalendars: Calendar[], - dayStartHour: number, - dayEndHour: number -): OverflowEvents { - let filtered = filterByVisibleCalendars(events, visibleCalendars); - filtered = filterTimedEvents(filtered); - return getOverflowEvents(filtered, dayStartHour, dayEndHour); -} diff --git a/apps/calendar/apps/web-archived/src/lib/utils/syntax-help.ts b/apps/calendar/apps/web-archived/src/lib/utils/syntax-help.ts deleted file mode 100644 index f4fe5c8dc..000000000 --- a/apps/calendar/apps/web-archived/src/lib/utils/syntax-help.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Calendar-specific syntax help patterns for InputBar help modal - */ -import type { SyntaxGroup } from '@manacore/shared-ui'; - -export const CALENDAR_SYNTAX: SyntaxGroup[] = [ - { - title: 'Kalender-Termin', - items: [ - { - pattern: 'Dauer', - description: 'Termindauer angeben', - examples: ['1h', '30min', '2h30m', '1 Stunde'], - color: 'accent', - }, - { - pattern: 'Zeitbereich', - description: 'Start- und Endzeit', - examples: ['14-16 Uhr', '10:00-11:30', '9-17 Uhr'], - color: 'accent', - }, - { - pattern: 'Ganztägig', - description: 'Ganztägiger Termin', - examples: ['ganztägig', 'ganzer Tag'], - color: 'warning', - }, - { - pattern: 'Ort', - description: 'Ort angeben', - examples: ['in Berlin', 'im Büro', 'bei Dr. Müller'], - color: 'success', - }, - { - pattern: 'Wiederholung', - description: 'Wiederkehrende Termine', - examples: ['täglich', 'wöchentlich', 'jeden Montag', 'monatlich'], - color: 'warning-soft', - }, - { - pattern: '@Kalender', - description: 'Kalender zuweisen', - examples: ['@Arbeit', '@Privat'], - color: 'success', - }, - { - pattern: '@Teilnehmer', - description: 'Teilnehmer hinzufügen', - examples: ['@Max', '@Anna'], - color: 'success', - }, - ], - }, -]; - -export const CALENDAR_LIVE_EXAMPLE = { - text: 'Teammeeting morgen 14-16 Uhr wöchentlich @Arbeit #wichtig', - highlights: [ - { type: 'text' as const, content: 'Teammeeting ' }, - { type: 'date' as const, content: 'morgen' }, - { type: 'text' as const, content: ' ' }, - { type: 'time' as const, content: '14-16 Uhr' }, - { type: 'text' as const, content: ' ' }, - { type: 'date' as const, content: 'wöchentlich' }, - { type: 'text' as const, content: ' ' }, - { type: 'reference' as const, content: '@Arbeit' }, - { type: 'text' as const, content: ' ' }, - { type: 'tag' as const, content: '#wichtig' }, - ], -}; diff --git a/apps/calendar/apps/web-archived/src/lib/version.ts b/apps/calendar/apps/web-archived/src/lib/version.ts deleted file mode 100644 index 4f221f09f..000000000 --- a/apps/calendar/apps/web-archived/src/lib/version.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const APP_VERSION = '1.0.0'; -export const BUILD_TIME: string = - typeof __BUILD_TIME__ !== 'undefined' ? __BUILD_TIME__ : new Date().toISOString(); -export const BUILD_HASH: string = typeof __BUILD_HASH__ !== 'undefined' ? __BUILD_HASH__ : 'dev'; diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/+layout.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/+layout.svelte deleted file mode 100644 index 2265af077..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/+layout.svelte +++ /dev/null @@ -1,751 +0,0 @@ - - - - - - -
- - Zum Inhalt springen - - - - {#if !settingsStore.immersiveModeEnabled} - - {/if} - - - - - - - - - settingsStore.toggleImmersiveMode()} - visible={showCalendarToolbar} - /> - -
-
- {@render children()} -
-
-
-
- - - - - - (showSettingsModal = false)} /> - - - {#if calendarOnboarding.shouldShow} - - {/if} - - - (showGuestWelcome = false)} - onLogin={() => goto('/login')} - onRegister={() => goto('/register')} - locale={($locale || 'de') === 'de' ? 'de' : 'en'} - /> - - {#if authStore.isAuthenticated} - - {/if} - -
- - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/+page.svelte deleted file mode 100644 index e23ca53ba..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/+page.svelte +++ /dev/null @@ -1,217 +0,0 @@ - - - - {$_('app.name')} - - - { - if (viewStore.viewType !== 'agenda') return; - const target = e.target as HTMLElement; - const isInQuickInput = target.closest('.quick-input-bar'); - if (isInQuickInput && (e.key === 'ArrowUp' || (e.key === 'Tab' && !e.shiftKey))) { - const firstTitle = document.querySelector( - '.agenda-event-title[contenteditable]' - ); - if (firstTitle) { - e.preventDefault(); - firstTitle.focus(); - } - } - }} -/> - -
- {#if settingsStore.showBirthdays} - birthdaysStore.fetchBirthdays(true)} - /> - {/if} -
- -
-
-
- -
-
- - {#if showQuickOverlay} - {#key overlayKey} - - {/key} - {/if} -
- - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/event/[id]/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/event/[id]/+page.svelte deleted file mode 100644 index 9cb62d949..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/event/[id]/+page.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/feedback/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/feedback/+page.svelte deleted file mode 100644 index cced1cd54..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/feedback/+page.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - - Feedback | Kalender - - - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/help/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/help/+page.svelte deleted file mode 100644 index ba8073a43..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/help/+page.svelte +++ /dev/null @@ -1,32 +0,0 @@ - - - - {translations.title} | Kalender - - - goto('/')} - showGettingStarted={false} - showChangelog={false} - defaultSection="faq" -/> diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/mana/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/mana/+page.svelte deleted file mode 100644 index 586762862..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/mana/+page.svelte +++ /dev/null @@ -1,38 +0,0 @@ - - - - Mana - Kalender - - -
- -
- - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/profile/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/profile/+page.svelte deleted file mode 100644 index 122acf5eb..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/profile/+page.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/settings/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/settings/+page.svelte deleted file mode 100644 index 07a3f76ec..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/settings/+page.svelte +++ /dev/null @@ -1,610 +0,0 @@ - - - - {$_('nav.settings')} | {$_('app.name')} - - -
- - - - - {#snippet icon()} - - {/snippet} - -
- -
-
-
- - - - {#snippet icon()} - - {/snippet} - -
-

- {$_('settings.externalCalendarsDesc')} -

- - {$_('settings.manageSync')} - -
-
-
- - - - {#snippet icon()} - - {/snippet} - -
-

- {$_('settings.sharesDesc')} -

- - {$_('settings.manageShares')} - -
-
-
- - - - - - - {#snippet icon()} - - {/snippet} - -
-
-
- {$_('settings.defaultView')} - {$_('settings.defaultViewDesc')} -
- handleViewChange(v as CalendarViewType)} - placeholder={$_('settings.selectView')} - /> -
- -
-
- {$_('settings.timeFormat')} - {$_('settings.timeFormatDesc')} -
-
- - -
-
- -
- -
- -
- -
- -
- -
- - {#if settingsStore.filterHoursEnabled} -
-
- {$_('settings.visibleHours')} - {$_('settings.visibleHoursDesc')} -
-
-
- {$_('settings.hoursFrom')} - settingsStore.set('dayStartHour', Number(v))} - placeholder={$_('event.start')} - /> -
- -
- {$_('settings.hoursTo')} - settingsStore.set('dayEndHour', Number(v))} - placeholder={$_('event.end')} - /> -
-
-
- {/if} - -
-
- {$_('settings.allDayEvents')} - {$_('settings.allDayEventsDesc')} -
-
- - -
-
-
-
-
- - - - {#snippet icon()} - - {/snippet} - -
-
-
- {$_('settings.defaultDuration')} - {$_('settings.defaultDurationDesc')} -
- handleEventDurationChange(Number(v))} - placeholder={$_('settings.selectDuration')} - /> -
- -
-
- Smarte Dauer - Dauer automatisch aus vergangenen Terminen lernen -
- -
- -
-
- {$_('settings.defaultReminder')} - {$_('settings.defaultReminderDesc')} -
- handleReminderChange(Number(v))} - placeholder={$_('settings.selectReminder')} - /> -
-
-
-
- - - - {#snippet icon()} - - {/snippet} - -
-
- -
- - {#if settingsStore.showBirthdays} -
- -
- {/if} -
-
-
- - - - {#snippet icon()} - - {/snippet} - -
-
-
- {$_('auth.email')} - {authStore.user?.email || '-'} -
-
- -
- -
-
-
-
- -

v{APP_VERSION}

-
- - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/settings/sharing/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/settings/sharing/+page.svelte deleted file mode 100644 index 674ef07f2..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/settings/sharing/+page.svelte +++ /dev/null @@ -1,537 +0,0 @@ - - - - {$_('sharing.pageTitle')} - - -
-
- - - -

{$_('sharing.title')}

- -
- - - {#if sharesStore.invitations.length > 0} -
-

- - {$_('sharing.invitations', { values: { count: sharesStore.invitations.length } })} -

- {#each sharesStore.invitations as invite (invite.id)} - - {/each} -
- {/if} - - - {#if sharesStore.sharedWithMe.length > 0} -
-

- - {$_('sharing.sharedWithMe')} -

- {#each sharesStore.sharedWithMe as share (share.id)} - - {/each} -
- {/if} - - -
-

- - {$_('sharing.shareMyCalendars')} -

- - {#each calendarsCtx.value as calendar (calendar.id)} -
- - - {#if viewingCalendarId === calendar.id} - {@const calShares = sharesStore.getSharesForCalendar(calendar.id)} -
- {#if calShares.length === 0} -

{$_('sharing.notSharedYet')}

- {:else} - {#each calShares as share (share.id)} - - {/each} - {/if} - - -
- {/if} -
- {/each} -
-
- - - (showShareForm = false)} - title={$_('sharing.shareCalendar')} - maxWidth="sm" -> - - - {#snippet footer()} - - {/snippet} - - - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/settings/sync/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/settings/sync/+page.svelte deleted file mode 100644 index 8070b7b43..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/settings/sync/+page.svelte +++ /dev/null @@ -1,898 +0,0 @@ - - - - {$_('sync.pageTitle')} - - -
-
- - - -

{$_('sync.title')}

- -
- -

- {$_('sync.description')} -

- - {#if externalCalendarsStore.error} - - {/if} - - {#if externalCalendarsStore.loading} -
-
-
- {:else if externalCalendarsStore.calendars.length === 0} -
- -

{$_('sync.emptyState')}

- -
- {:else} -
- {#each externalCalendarsStore.calendars as cal (cal.id)} -
-
-
-
-
-

{cal.name}

- {PROVIDER_INFO[cal.provider]?.label || cal.provider} -
-
-
- - -
-
- -
-
- {$_('sync.directionLabel')} - - {#if cal.syncDirection === 'import'} - - {:else if cal.syncDirection === 'export'} - - {:else} - - {/if} - {getSyncDirectionLabel(cal.syncDirection)} - -
-
- {$_('sync.lastSync')} - - {formatSyncTime(cal.lastSyncAt)} - -
-
- {$_('sync.statusLabel')} - - {#if cal.lastSyncError} - - - {$_('sync.status.error')} - - {:else if cal.syncEnabled} - - - {$_('sync.status.active', { values: { interval: cal.syncInterval } })} - - {:else} - {$_('sync.status.paused')} - {/if} - -
- {#if cal.lastSyncError} -
- {cal.lastSyncError} -
- {/if} -
- - -
- {/each} -
- {/if} -
- - - - {#if connectStep === 'provider'} -
- {#each providers as provider} - - {/each} -
- {:else if connectStep === 'caldav-discover'} -
-
- - -
-
- - -
-
- - -
- - {#if discoveredCalendars.length > 0} -
-

{$_('sync.discoveredCalendars')}

- {#each discoveredCalendars as cal} - - {/each} -
- {/if} -
- - {#snippet footer()} - - {/snippet} - {:else if connectStep === 'credentials'} -
-
- - -
-
- - -
- {#if selectedProvider !== 'ical_url'} -
- - -
-
- - -
- {/if} -
- - -
-
- - {#snippet footer()} - - {/snippet} - {/if} -
- - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/tags/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/tags/+page.svelte deleted file mode 100644 index 68d60298c..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/tags/+page.svelte +++ /dev/null @@ -1,399 +0,0 @@ - - - - Tags - Kalender - - -
- -
- - - -

Tags

- -
- - -
- - -
- - {#if false} - - {/if} - - - {#if false} -
-
-
- {:else if filteredTags.length === 0} -
-
- {searchQuery ? 'Keine Tags gefunden' : 'Keine Tags vorhanden'} -
-
- {:else} -
- {#each filteredTags as tag (tag.id)} - - {/each} -
- {/if} - - {#if !false && tagsCtx.value.length > 0} -

- {tagsCtx.value.length} - {tagsCtx.value.length === 1 ? 'Tag' : 'Tags'} -

- {/if} - - {#if !false && tagsCtx.value.length === 0 && !searchQuery} -
- -
- {/if} -
- - - -
-
- -
- -
- Farbe - (tagColor = c)} /> -
- -
- Vorschau -
- -
-
-
- - {#snippet footer()} -
-
- {#if editingTag} - - {/if} -
-
- - -
-
- {/snippet} -
- - diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/themes/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/themes/+page.svelte deleted file mode 100644 index de8a397fa..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/themes/+page.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - - Themes | Calendar - - - theme.setVariant(v)} - showModeSelector={true} - currentMode={theme.mode} - onModeChange={(m) => theme.setMode(m)} - showBackButton={true} - onBack={() => goto('/')} -/> diff --git a/apps/calendar/apps/web-archived/src/routes/(app)/unified-bar-demo/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(app)/unified-bar-demo/+page.svelte deleted file mode 100644 index 60c98d20c..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(app)/unified-bar-demo/+page.svelte +++ /dev/null @@ -1,191 +0,0 @@ - - - - UnifiedBar Demo - Calendar - - -
-
-

UnifiedBar Demo

-

Demonstration der unified bottom bar Architektur

-
- - -
-
-

Kalender Inhalt

-

Dies ist der Hauptinhaltbereich, in dem die Kalender-Ansichten angezeigt werden.

- -
-
-

Sichtbare Layers

-
    - {#if unifiedBarStore.showQuickInput}
  • QuickInput
  • {/if} - {#if unifiedBarStore.showDateStrip}
  • DateStrip
  • {/if} - {#if unifiedBarStore.showTagStrip}
  • TagStrip
  • {/if} - {#if unifiedBarStore.showCalendarToolbar}
  • CalendarToolbar
  • {/if} -
-
- -
-

Overlay Status

-

{unifiedBarStore.isOverlayOpen ? 'Offen' : 'Geschlossen'}

-
-
- -
- - - - - -
-
-
- - - -
- - diff --git a/apps/calendar/apps/web-archived/src/routes/(auth)/+layout.svelte b/apps/calendar/apps/web-archived/src/routes/(auth)/+layout.svelte deleted file mode 100644 index a54cfdcb7..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(auth)/+layout.svelte +++ /dev/null @@ -1,5 +0,0 @@ - - -{@render children()} diff --git a/apps/calendar/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte deleted file mode 100644 index 4edba8aa2..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte +++ /dev/null @@ -1,41 +0,0 @@ - - - - {translations.titleForm} | Kalender - - - - {#snippet headerControls()} - - {/snippet} - {#snippet appSlider()} - - {/snippet} - diff --git a/apps/calendar/apps/web-archived/src/routes/(auth)/login/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(auth)/login/+page.svelte deleted file mode 100644 index 563249623..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(auth)/login/+page.svelte +++ /dev/null @@ -1,82 +0,0 @@ - - - - {translations.title} | Kalender - - - authStore.signInWithPasskey()} - onVerifyTwoFactor={(code, trust) => authStore.verifyTwoFactor(code, trust)} - onVerifyBackupCode={(code) => authStore.verifyBackupCode(code)} - onSendMagicLink={(email) => authStore.sendMagicLink(email)} - {goto} - successRedirect={redirectTo} - registerPath="/register" - forgotPasswordPath="/forgot-password" - lightBackground="#e0f2fe" - darkBackground="#0c1929" - {translations} - {verified} - {initialEmail} - version={APP_VERSION} - buildTime={BUILD_TIME} -> - {#snippet headerControls()} - - {/snippet} - {#snippet appSlider()} - - {/snippet} - diff --git a/apps/calendar/apps/web-archived/src/routes/(auth)/register/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(auth)/register/+page.svelte deleted file mode 100644 index 0c4682bb3..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(auth)/register/+page.svelte +++ /dev/null @@ -1,61 +0,0 @@ - - - - {translations.title} | Kalender - - - - {#snippet headerControls()} - - {/snippet} - {#snippet appSlider()} - - {/snippet} - diff --git a/apps/calendar/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte b/apps/calendar/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte deleted file mode 100644 index fe6b028e2..000000000 --- a/apps/calendar/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte +++ /dev/null @@ -1,231 +0,0 @@ - - - - {t.title} | Kalender - - -
- -
- - - Kalender - - -
- - -
-
-
-

{t.title}

-

- {#if success} - {t.success} - {:else if hasToken} - {t.subtitle} - {:else} - {t.invalidToken} - {/if} -

-
- - {#if success} - -
-
-
-

- {t.successMessage} -

- - {t.goToLogin} - -
-
- {:else if hasToken} - -
-
- {#if error} -
- {error} -
- {/if} - -
-
- - -

- {t.minChars} -

-
- -
- - -
- - -
-
-
- {:else} - -
-
-
⚠️
-

- {t.invalidTokenMessage} -

- - {t.requestNew} - -
-
- {/if} -
-
-
diff --git a/apps/calendar/apps/web-archived/src/routes/+error.svelte b/apps/calendar/apps/web-archived/src/routes/+error.svelte deleted file mode 100644 index 5b9e9cd2a..000000000 --- a/apps/calendar/apps/web-archived/src/routes/+error.svelte +++ /dev/null @@ -1,10 +0,0 @@ - - -
-

{$page.status}

-

{$page.error?.message || $_('error.notFound')}

- {$_('error.backToHome')} -
diff --git a/apps/calendar/apps/web-archived/src/routes/+layout.svelte b/apps/calendar/apps/web-archived/src/routes/+layout.svelte deleted file mode 100644 index f8d969b87..000000000 --- a/apps/calendar/apps/web-archived/src/routes/+layout.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - -{#if !appReady} - -{:else} -
- {@render children()} -
-{/if} - - diff --git a/apps/calendar/apps/web-archived/src/routes/+layout.ts b/apps/calendar/apps/web-archived/src/routes/+layout.ts deleted file mode 100644 index ad6cddb06..000000000 --- a/apps/calendar/apps/web-archived/src/routes/+layout.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Disable SSR — all data is local-first (IndexedDB + mana-sync) -export const ssr = false; diff --git a/apps/calendar/apps/web-archived/src/routes/health/+server.ts b/apps/calendar/apps/web-archived/src/routes/health/+server.ts deleted file mode 100644 index 9222c1d9f..000000000 --- a/apps/calendar/apps/web-archived/src/routes/health/+server.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { json } from '@sveltejs/kit'; -import type { RequestHandler } from './$types'; - -export const GET: RequestHandler = async () => { - return json({ - status: 'ok', - service: 'calendar-web', - timestamp: new Date().toISOString(), - }); -}; diff --git a/apps/calendar/apps/web-archived/src/routes/offline/+page.svelte b/apps/calendar/apps/web-archived/src/routes/offline/+page.svelte deleted file mode 100644 index 76a8833c3..000000000 --- a/apps/calendar/apps/web-archived/src/routes/offline/+page.svelte +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/apps/calendar/apps/web-archived/src/routes/offline/+page.ts b/apps/calendar/apps/web-archived/src/routes/offline/+page.ts deleted file mode 100644 index 189f71e2e..000000000 --- a/apps/calendar/apps/web-archived/src/routes/offline/+page.ts +++ /dev/null @@ -1 +0,0 @@ -export const prerender = true; diff --git a/apps/calendar/apps/web-archived/static/apple-touch-icon.png b/apps/calendar/apps/web-archived/static/apple-touch-icon.png deleted file mode 100644 index 4e86574d58a2e1e7380a3b84758edafc074a9a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7358 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 diff --git a/apps/calendar/apps/web-archived/static/favicon.png b/apps/calendar/apps/web-archived/static/favicon.png deleted file mode 100644 index bd550906b69c4e8c0775236cebe8cb9c14d31d27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1138 zcmV-&1daQNP) z3MYAz&B-Ru?|t7nbIvg4T&J(&urDeGeNlVK7qx9)RG@8)u+jFeji-rs6sN8b9H&M( zo+94nc#?RFDBy`V9o{J5apE#z*(XQxORXdMfyV}Lm{nhGlj4XkDt_~g3y}DKkfU|P z;gW@u!`4bmL>#HEeE;N{;rxp1glzl%%h5ta^8L&=ZZ98@94$i|i>z(T<_98=%16H_;=v!=waC#tv;k(4`!fQ;Y!Sh%KrkcFnGvAt&QDtiqy++L z8~&6-(nbf7AUMAKaZ~=cJ;rfXGgZLpiGoMod{GAQRzCb$X_pA`X$jjqz`bApLS(*( zAP`-uF3rXE>g} zuIR~dk6Z;XEV$6LK#1m_73iL(bzq}2ZKEq|qcf%GqI)ThK$0Vr<_IJ>{0WX=io+i- zpd(&DXQF_PSOM)*gyoSp4LAYZkD8X#0_>hvav2~~9YD!t0FvqeNhK#S1<>;LNy{T| z8dwK2J?C0ZmCLHr)m5v?Wz`fwS4{z^Y6=ij1mYF>Sqk8iH}%T^-c5$uPL-3q=RGAR zdgxw8$)C%r%1PdxQI(UtE2SzYc_?Wi5Ub#pAD00PJDi^Rqqd!-RJq12KmPhUm}z^} z@<(lZb$~MymPf7v81{B8f0)%Ch*xH=1CU$>aLF4ltb>{Mc0F@7cO{l{r&&95AN^cl zVR;h^OPg|&p~^`fN>pY}zx`7Vla@!`cwr69^kUJ~@74CX`(@l+EMsA@jLhAlvF#+5 z)n8M%<;Px=0laTDE#Ir{bKjRS|6LI?-v}hX7RI*A0FM03Rm&rn0Zgw{E#GUk&)zFx zo$p|c?_m74*sYoZ=$TX7wVZIvkG-k`xIQNI%tQJar@7NJo>mKv2qo3b^{n;WgYnAD zgE0$!3Nm4#H^=~nFBv`ahgt2_Z6`5R{_HrB_sARi*1$}kQCeQ>Ci72irvO_1 zOf>J2H}vJeOy6)?Uh5`Pz1n2}XXey)EtdgY^7``>V8r4zen1-E=cet|wAxMb`tYj7 zS}$442O>Y8LtS`vk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 24 - diff --git a/apps/calendar/apps/web-archived/static/pwa-192x192.png b/apps/calendar/apps/web-archived/static/pwa-192x192.png deleted file mode 100644 index a0db9cb61c3b3c7a36db5a340c4379cf813775bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7690 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 afXXb!U5&mOegeMS1v|F6IhAhlOa32SZ6W6X diff --git a/apps/calendar/apps/web-archived/static/pwa-512x512.png b/apps/calendar/apps/web-archived/static/pwa-512x512.png deleted file mode 100644 index d7e2f04b1b4509efb8cd18ed592ff32b356a405c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22157 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 -import { sveltekit } from '@sveltejs/kit/vite'; -import tailwindcss from '@tailwindcss/vite'; -import { defineConfig } from 'vite'; -import { SvelteKitPWA } from '@vite-pwa/sveltekit'; -import { createOfflineFirstPWAConfig } from '@manacore/shared-pwa'; -import { MANACORE_SHARED_PACKAGES, getBuildDefines } from '@manacore/shared-vite-config'; - -export default defineConfig({ - plugins: [ - tailwindcss(), - sveltekit(), - SvelteKitPWA( - createOfflineFirstPWAConfig({ - name: 'Calendar - Kalender', - shortName: 'Calendar', - description: 'Kalender und Terminverwaltung', - themeColor: '#3b82f6', - }) - ), - ], - server: { - port: 5179, - strictPort: true, - }, - ssr: { - noExternal: [...MANACORE_SHARED_PACKAGES, '@calendar/shared'], - }, - optimizeDeps: { - exclude: [...MANACORE_SHARED_PACKAGES, '@calendar/shared'], - }, - test: { - environment: 'jsdom', - include: ['src/**/*.test.ts'], - globals: true, - }, - define: { - ...getBuildDefines(), - }, -}); diff --git a/apps/cards/apps/web-archived/.env.example b/apps/cards/apps/web-archived/.env.example deleted file mode 100644 index 447e28aa6..000000000 --- a/apps/cards/apps/web-archived/.env.example +++ /dev/null @@ -1,10 +0,0 @@ -# Supabase -PUBLIC_SUPABASE_URL=https://your-project.supabase.co -PUBLIC_SUPABASE_ANON_KEY=your-anon-key - -# Mana Core Backend -PUBLIC_API_URL=https://cards-backend-111768794939.europe-west3.run.app - -# App Config -PUBLIC_APP_NAME=Cards -PUBLIC_APP_URL=http://localhost:5173 diff --git a/apps/cards/apps/web-archived/.gitignore b/apps/cards/apps/web-archived/.gitignore deleted file mode 100644 index 3b462cb0c..000000000 --- a/apps/cards/apps/web-archived/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -node_modules - -# Output -.output -.vercel -.netlify -.wrangler -/.svelte-kit -/build - -# OS -.DS_Store -Thumbs.db - -# Env -.env -.env.* -!.env.example -!.env.test - -# Vite -vite.config.js.timestamp-* -vite.config.ts.timestamp-* diff --git a/apps/cards/apps/web-archived/.npmrc b/apps/cards/apps/web-archived/.npmrc deleted file mode 100644 index b6f27f135..000000000 --- a/apps/cards/apps/web-archived/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/apps/cards/apps/web-archived/Dockerfile b/apps/cards/apps/web-archived/Dockerfile deleted file mode 100644 index cd6260680..000000000 --- a/apps/cards/apps/web-archived/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM sveltekit-base:local AS builder - -ARG PUBLIC_BACKEND_URL=http://cards-server -ARG PUBLIC_MANA_CORE_AUTH_URL=http://mana-auth:3001 -ARG PUBLIC_API_URL=http://cards-server -ENV PUBLIC_BACKEND_URL=$PUBLIC_BACKEND_URL -ENV PUBLIC_MANA_CORE_AUTH_URL=$PUBLIC_MANA_CORE_AUTH_URL -ENV PUBLIC_API_URL=$PUBLIC_API_URL - -COPY apps/cards/apps/web ./apps/cards/apps/web - -RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store \ - pnpm install --no-frozen-lockfile --ignore-scripts - -WORKDIR /app/apps/cards/apps/web -RUN pnpm exec svelte-kit sync -RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm build - -FROM node:20-alpine AS production -WORKDIR /app/apps/cards/apps/web -COPY --from=builder /app/node_modules/.pnpm /app/node_modules/.pnpm -COPY --from=builder /app/apps/cards/apps/web/node_modules ./node_modules -COPY --from=builder /app/apps/cards/apps/web/build ./build -COPY --from=builder /app/apps/cards/apps/web/package.json ./ - -EXPOSE 5015 -ENV NODE_ENV=production PORT=5015 HOST=0.0.0.0 - -HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ - CMD wget --no-verbose --tries=1 --spider http://localhost:5015/health || exit 1 - -CMD ["node", "build"] diff --git a/apps/cards/apps/web-archived/README.md b/apps/cards/apps/web-archived/README.md deleted file mode 100644 index 75842c404..000000000 --- a/apps/cards/apps/web-archived/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# sv - -Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). - -## Creating a project - -If you're seeing this, you've probably already done this step. Congrats! - -```sh -# create a new project in the current directory -npx sv create - -# create a new project in my-app -npx sv create my-app -``` - -## Developing - -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: - -```sh -npm run dev - -# or start the server and open the app in a new browser tab -npm run dev -- --open -``` - -## Building - -To create a production version of your app: - -```sh -npm run build -``` - -You can preview the production build with `npm run preview`. - -> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. diff --git a/apps/cards/apps/web-archived/eslint.config.js b/apps/cards/apps/web-archived/eslint.config.js deleted file mode 100644 index f0e51b62e..000000000 --- a/apps/cards/apps/web-archived/eslint.config.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check -import { - baseConfig, - typescriptConfig, - svelteConfig, - prettierConfig, -} from '@manacore/eslint-config'; - -export default [ - { - ignores: ['dist/**', '.svelte-kit/**', 'node_modules/**'], - }, - ...baseConfig, - ...typescriptConfig, - ...svelteConfig, - ...prettierConfig, -]; diff --git a/apps/cards/apps/web-archived/package.json b/apps/cards/apps/web-archived/package.json deleted file mode 100644 index 83c4295ee..000000000 --- a/apps/cards/apps/web-archived/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "@cards/web", - "private": true, - "version": "0.2.0", - "type": "module", - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "prepare": "svelte-kit sync || echo ''", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "eslint ." - }, - "devDependencies": { - "@manacore/shared-pwa": "workspace:*", - "@manacore/shared-vite-config": "workspace:*", - "@sveltejs/adapter-node": "^5.0.0", - "@sveltejs/kit": "^2.47.1", - "@sveltejs/vite-plugin-svelte": "^6.2.1", - "@tailwindcss/typography": "^0.5.19", - "@tailwindcss/vite": "^4.1.7", - "@vite-pwa/sveltekit": "^1.1.0", - "autoprefixer": "^10.4.22", - "postcss": "^8.5.6", - "svelte": "^5.41.0", - "svelte-check": "^4.3.3", - "tailwindcss": "^4.1.17", - "typescript": "^5.9.3", - "vite": "^7.1.10" - }, - "dependencies": { - "@manacore/local-store": "workspace:*", - "@manacore/shared-app-onboarding": "workspace:*", - "@manacore/shared-auth": "workspace:*", - "@manacore/shared-auth-stores": "workspace:*", - "@manacore/shared-auth-ui": "workspace:*", - "@manacore/shared-branding": "workspace:*", - "@manacore/shared-config": "workspace:*", - "@manacore/shared-error-tracking": "workspace:*", - "@manacore/feedback": "workspace:*", - "@manacore/shared-i18n": "workspace:*", - "@manacore/help": "workspace:*", - "@manacore/shared-icons": "workspace:*", - "@manacore/shared-profile-ui": "workspace:*", - "@manacore/shared-stores": "workspace:*", - "@manacore/shared-tags": "workspace:*", - "@manacore/subscriptions": "workspace:*", - "@manacore/shared-tailwind": "workspace:*", - "@manacore/shared-theme": "workspace:*", - "@manacore/shared-theme-ui": "workspace:*", - "@manacore/shared-types": "workspace:*", - "@manacore/shared-ui": "workspace:*", - "@manacore/shared-utils": "workspace:*", - "svelte-i18n": "^4.0.1" - } -} diff --git a/apps/cards/apps/web-archived/src/app.css b/apps/cards/apps/web-archived/src/app.css deleted file mode 100644 index 56ff68272..000000000 --- a/apps/cards/apps/web-archived/src/app.css +++ /dev/null @@ -1,11 +0,0 @@ -@import "tailwindcss"; -@import "@manacore/shared-tailwind/themes.css"; - -/* Scan shared packages for Tailwind classes */ -@source "../../../../packages/shared-ui/src"; -@source "../../../../packages/shared-auth-ui/src"; -@source "../../../../packages/shared-branding/src"; -@source "../../../../packages/shared-theme-ui/src"; -@source "../../../../packages/shared-theme-ui/src/components"; -@source "../../../../packages/shared-theme-ui/src/pages"; -@source "../../../../packages/shared-subscription-ui/src"; diff --git a/apps/cards/apps/web-archived/src/app.d.ts b/apps/cards/apps/web-archived/src/app.d.ts deleted file mode 100644 index 8e8e79928..000000000 --- a/apps/cards/apps/web-archived/src/app.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare const __BUILD_HASH__: string; -declare const __BUILD_TIME__: string; - -// See https://svelte.dev/docs/kit/types#app.d.ts -// for information about these interfaces -declare global { - namespace App { - // interface Error {} - // interface Locals {} - // interface PageData {} - // interface PageState {} - // interface Platform {} - } -} - -export {}; diff --git a/apps/cards/apps/web-archived/src/app.html b/apps/cards/apps/web-archived/src/app.html deleted file mode 100644 index f273cc58f..000000000 --- a/apps/cards/apps/web-archived/src/app.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - %sveltekit.head% - - -
%sveltekit.body%
- - diff --git a/apps/cards/apps/web-archived/src/hooks.client.ts b/apps/cards/apps/web-archived/src/hooks.client.ts deleted file mode 100644 index f6c32237e..000000000 --- a/apps/cards/apps/web-archived/src/hooks.client.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { initErrorTracking, handleSvelteError } from '@manacore/shared-error-tracking/browser'; -import type { HandleClientError } from '@sveltejs/kit'; - -initErrorTracking({ - serviceName: 'cards-web', - dsn: (window as any).__PUBLIC_GLITCHTIP_DSN__, - environment: import.meta.env.MODE, -}); - -export const handleError: HandleClientError = ({ error }) => { - handleSvelteError(error); -}; diff --git a/apps/cards/apps/web-archived/src/hooks.server.ts b/apps/cards/apps/web-archived/src/hooks.server.ts deleted file mode 100644 index 461480e2b..000000000 --- a/apps/cards/apps/web-archived/src/hooks.server.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { Handle } from '@sveltejs/kit'; -import { setSecurityHeaders } from '@manacore/shared-utils/security-headers'; - -const PUBLIC_MANA_CORE_AUTH_URL_CLIENT = - process.env.PUBLIC_MANA_CORE_AUTH_URL_CLIENT || process.env.PUBLIC_MANA_CORE_AUTH_URL || ''; -const PUBLIC_BACKEND_URL_CLIENT = - process.env.PUBLIC_BACKEND_URL_CLIENT || process.env.PUBLIC_BACKEND_URL || ''; -const PUBLIC_GLITCHTIP_DSN = process.env.PUBLIC_GLITCHTIP_DSN || ''; - -export const handle: Handle = async ({ event, resolve }) => { - const response = await resolve(event, { - transformPageChunk: ({ html }) => { - const envScript = ``; - return html.replace('', `${envScript}`); - }, - }); - - setSecurityHeaders(response, { - connectSrc: [PUBLIC_MANA_CORE_AUTH_URL_CLIENT, PUBLIC_BACKEND_URL_CLIENT], - }); - - return response; -}; diff --git a/apps/cards/apps/web-archived/src/lib/api/feedback.ts b/apps/cards/apps/web-archived/src/lib/api/feedback.ts deleted file mode 100644 index 700ddd8a0..000000000 --- a/apps/cards/apps/web-archived/src/lib/api/feedback.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Feedback Service Instance for Cards Web App - */ - -import { createFeedbackService } from '@manacore/feedback'; -import { authService } from '$lib/auth'; -import { PUBLIC_MANA_CORE_AUTH_URL } from '$env/static/public'; - -const MANA_AUTH_URL = PUBLIC_MANA_CORE_AUTH_URL || 'http://localhost:3001'; - -export const feedbackService = createFeedbackService({ - apiUrl: MANA_AUTH_URL, - appId: 'cards', - getAuthToken: async () => authService.getAppToken(), -}); diff --git a/apps/cards/apps/web-archived/src/lib/assets/favicon.svg b/apps/cards/apps/web-archived/src/lib/assets/favicon.svg deleted file mode 100644 index cc5dc66a3..000000000 --- a/apps/cards/apps/web-archived/src/lib/assets/favicon.svg +++ /dev/null @@ -1 +0,0 @@ -svelte-logo \ No newline at end of file diff --git a/apps/cards/apps/web-archived/src/lib/auth.ts b/apps/cards/apps/web-archived/src/lib/auth.ts deleted file mode 100644 index 68c3296e5..000000000 --- a/apps/cards/apps/web-archived/src/lib/auth.ts +++ /dev/null @@ -1,175 +0,0 @@ -/** - * Cards Web Auth Configuration - * - * This file initializes the shared auth package for the cards web app. - * It replaces the previous individual auth files: - * - services/authService.ts - * - services/tokenManager.ts - * - services/deviceManager.ts - * - utils/jwt.ts - */ - -import { PUBLIC_API_URL, PUBLIC_MANA_CORE_AUTH_URL } from '$env/static/public'; -import { - createAuthService, - createTokenManager, - setStorageAdapter, - setDeviceAdapter, - setNetworkAdapter, - setupFetchInterceptor, - type StorageAdapter, - type DeviceManagerAdapter, - type NetworkAdapter, - type DeviceInfo, -} from '@manacore/shared-auth'; - -// Storage keys -const STORAGE_KEYS = { - APP_TOKEN: 'appToken', - REFRESH_TOKEN: 'refreshToken', - USER_EMAIL: 'userEmail', - DEVICE_ID: 'cards_device_id', -}; - -/** - * Session storage adapter for cards web - * Uses sessionStorage for tokens (clears on tab close) - * Uses localStorage for device ID (persists) - */ -const sessionStorageAdapter: StorageAdapter = { - async getItem(key: string): Promise { - if (typeof window === 'undefined') return null; - - const value = sessionStorage.getItem(key); - if (value === null) return null; - - try { - return JSON.parse(value) as T; - } catch { - return value as T; - } - }, - - async setItem(key: string, value: string): Promise { - if (typeof window === 'undefined') return; - sessionStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value)); - }, - - async removeItem(key: string): Promise { - if (typeof window === 'undefined') return; - sessionStorage.removeItem(key); - }, -}; - -/** - * Device manager adapter for web - */ -const webDeviceAdapter: DeviceManagerAdapter = { - async getDeviceInfo(): Promise { - if (typeof window === 'undefined') { - return { - deviceId: '', - deviceName: 'Server', - deviceType: 'web', - }; - } - - const deviceId = (await webDeviceAdapter.getStoredDeviceId()) || generateDeviceId(); - localStorage.setItem(STORAGE_KEYS.DEVICE_ID, deviceId); - - const userAgent = navigator.userAgent; - let deviceName = 'Web Browser'; - - if (userAgent.includes('Mac')) deviceName = 'Mac'; - else if (userAgent.includes('Windows')) deviceName = 'Windows'; - else if (userAgent.includes('Linux')) deviceName = 'Linux'; - - return { - deviceId, - deviceName, - deviceType: 'web', - platform: 'web', - }; - }, - - async getStoredDeviceId(): Promise { - if (typeof window === 'undefined') return null; - return localStorage.getItem(STORAGE_KEYS.DEVICE_ID); - }, -}; - -/** - * Network adapter for web - */ -const webNetworkAdapter: NetworkAdapter = { - async isDeviceConnected(): Promise { - if (typeof navigator === 'undefined') return true; - return navigator.onLine; - }, - - async hasStableConnection(): Promise { - if (typeof navigator === 'undefined') return true; - return navigator.onLine; - }, -}; - -/** - * Generate a unique device ID - */ -function generateDeviceId(): string { - return `web_${Date.now()}_${Math.random().toString(36).substring(2, 15)}`; -} - -// Initialize adapters -setStorageAdapter(sessionStorageAdapter); -setDeviceAdapter(webDeviceAdapter); -setNetworkAdapter(webNetworkAdapter); - -// Create auth service instance -export const authService = createAuthService({ - baseUrl: PUBLIC_MANA_CORE_AUTH_URL, - storageKeys: { - APP_TOKEN: STORAGE_KEYS.APP_TOKEN, - REFRESH_TOKEN: STORAGE_KEYS.REFRESH_TOKEN, - USER_EMAIL: STORAGE_KEYS.USER_EMAIL, - }, - endpoints: { - signIn: '/api/v1/auth/login', - signUp: '/api/v1/auth/register', - signOut: '/api/v1/auth/logout', - refresh: '/api/v1/auth/refresh', - validate: '/api/v1/auth/validate', - forgotPassword: '/api/v1/auth/forgot-password', - credits: '/api/v1/credits/balance', - }, -}); - -// Create token manager instance -export const tokenManager = createTokenManager(authService); - -// Setup fetch interceptor (only in browser) -if (typeof window !== 'undefined') { - setupFetchInterceptor(authService, tokenManager, { - backendUrl: PUBLIC_API_URL, - }); -} - -// Re-export useful utilities from shared-auth -export { - decodeToken, - isTokenValidLocally, - isTokenExpired, - getUserFromToken, - isB2BUser, - getB2BInfo, - TokenState, -} from '@manacore/shared-auth'; - -// Re-export types -export type { - UserData, - DecodedToken, - AuthResult, - CreditBalance, - B2BInfo, -} from '@manacore/shared-auth'; diff --git a/apps/cards/apps/web-archived/src/lib/components/AppSlider.svelte b/apps/cards/apps/web-archived/src/lib/components/AppSlider.svelte deleted file mode 100644 index c62f48f95..000000000 --- a/apps/cards/apps/web-archived/src/lib/components/AppSlider.svelte +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/apps/cards/apps/web-archived/src/lib/components/Icon.svelte b/apps/cards/apps/web-archived/src/lib/components/Icon.svelte deleted file mode 100644 index 967807016..000000000 --- a/apps/cards/apps/web-archived/src/lib/components/Icon.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - -{#if path} - -{:else} - -{/if} diff --git a/apps/cards/apps/web-archived/src/lib/components/LanguageSelector.svelte b/apps/cards/apps/web-archived/src/lib/components/LanguageSelector.svelte deleted file mode 100644 index 5630e7582..000000000 --- a/apps/cards/apps/web-archived/src/lib/components/LanguageSelector.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/apps/cards/apps/web-archived/src/lib/components/deck/CreateDeckModal.svelte b/apps/cards/apps/web-archived/src/lib/components/deck/CreateDeckModal.svelte deleted file mode 100644 index f71705fc9..000000000 --- a/apps/cards/apps/web-archived/src/lib/components/deck/CreateDeckModal.svelte +++ /dev/null @@ -1,108 +0,0 @@ - - - -
{ - e.preventDefault(); - handleSubmit(); - }} - class="space-y-4" - > - - -
- - -
- - - -
- - -
- - {#if deckStore.error} -
- {deckStore.error} -
- {/if} - -
- - -
-
-
diff --git a/apps/cards/apps/web-archived/src/lib/components/deck/DeckCard.svelte b/apps/cards/apps/web-archived/src/lib/components/deck/DeckCard.svelte deleted file mode 100644 index 264fb3a8f..000000000 --- a/apps/cards/apps/web-archived/src/lib/components/deck/DeckCard.svelte +++ /dev/null @@ -1,59 +0,0 @@ - - - -
- -

{deck.title}

- - - {#if deck.description} -

- {deck.description} -

- {/if} - - - {#if deck.tags && deck.tags.length > 0} -
- {#each deck.tags.slice(0, 3) as tag} - {tag} - {/each} - {#if deck.tags.length > 3} - +{deck.tags.length - 3} - {/if} -
- {/if} - - -
-
- 📇 {deck.card_count || 0} cards - {#if deck.is_public} - Public - {/if} -
- {formatDate(deck.updated_at)} -
-
-
diff --git a/apps/cards/apps/web-archived/src/lib/content/help/index.test.ts b/apps/cards/apps/web-archived/src/lib/content/help/index.test.ts deleted file mode 100644 index 701d3b176..000000000 --- a/apps/cards/apps/web-archived/src/lib/content/help/index.test.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { describe, it, expect } from 'vitest'; -import { getCardsHelpContent } from './index'; - -describe('Cards Help Content', () => { - it('returns valid German content', () => { - const content = getCardsHelpContent('de'); - - expect(content.faq.length).toBeGreaterThan(0); - content.faq.forEach((faq) => { - expect(faq.id).toBeTruthy(); - expect(faq.question).toBeTruthy(); - expect(faq.answer).toBeTruthy(); - }); - - expect(content.features).toBeDefined(); - expect(content.contact).toBeDefined(); - expect(content.contact.supportEmail).toBe('support@mana.how'); - }); - - it('returns valid English content', () => { - const content = getCardsHelpContent('en'); - - expect(content.faq.length).toBeGreaterThan(0); - content.faq.forEach((faq) => { - expect(faq.id).toBeTruthy(); - expect(faq.question).toBeTruthy(); - expect(faq.answer).toBeTruthy(); - }); - - expect(content.features).toBeDefined(); - expect(content.contact).toBeDefined(); - }); - - it('returns same number of FAQ items for both languages', () => { - const de = getCardsHelpContent('de'); - const en = getCardsHelpContent('en'); - - expect(de.faq.length).toBe(en.faq.length); - expect(de.features.length).toBe(en.features.length); - }); - - it('has unique FAQ IDs', () => { - const content = getCardsHelpContent('de'); - const ids = content.faq.map((f) => f.id); - expect(new Set(ids).size).toBe(ids.length); - }); -}); diff --git a/apps/cards/apps/web-archived/src/lib/content/help/index.ts b/apps/cards/apps/web-archived/src/lib/content/help/index.ts deleted file mode 100644 index f065e67d1..000000000 --- a/apps/cards/apps/web-archived/src/lib/content/help/index.ts +++ /dev/null @@ -1,141 +0,0 @@ -/** - * Help content for Cards app - */ - -import type { HelpContent } from '@manacore/help'; -import { getPrivacyFAQs } from '@manacore/help'; - -export function getCardsHelpContent(locale: string): HelpContent { - const isDE = locale === 'de'; - - return { - faq: [ - { - id: 'faq-create-decks', - question: isDE ? 'Wie erstelle ich Decks und Karten?' : 'How do I create decks and cards?', - answer: isDE - ? '

So erstellst du Decks und Karten in Cards:

  1. Klicke auf Neues Deck und gib einen Namen und eine Beschreibung ein
  2. Öffne das Deck und klicke auf Karte hinzufügen
  3. Gib die Vorderseite (Frage) und Rückseite (Antwort) ein
  4. Optional: Füge Bilder, Tags oder Notizen hinzu

Du kannst auch mehrere Karten auf einmal importieren — siehe Import & Export.

' - : '

Here is how to create decks and cards in Cards:

  1. Click New Deck and enter a name and description
  2. Open the deck and click Add Card
  3. Enter the front (question) and back (answer)
  4. Optional: Add images, tags, or notes

You can also import multiple cards at once — see Import & Export.

', - category: 'features', - order: 1, - language: isDE ? 'de' : 'en', - tags: isDE ? ['deck', 'karten', 'erstellen'] : ['deck', 'cards', 'create'], - }, - { - id: 'faq-spaced-repetition', - question: isDE ? 'Wie funktioniert Spaced Repetition?' : 'How does spaced repetition work?', - answer: isDE - ? '

Spaced Repetition (verteiltes Wiederholen) ist eine wissenschaftlich fundierte Lernmethode:

  • Karten, die du gut kannst, werden in größeren Abständen gezeigt
  • Karten, die du noch lernst, erscheinen häufiger
  • Der Algorithmus passt sich automatisch an dein Lerntempo an
  • Nach jeder Wiederholung bewertest du dein Wissen: Nochmal, Schwer, Gut oder Leicht

So lernst du effizienter und behältst Wissen langfristig.

' - : '

Spaced repetition is a scientifically proven learning method:

  • Cards you know well are shown at increasing intervals
  • Cards you are still learning appear more frequently
  • The algorithm automatically adapts to your learning pace
  • After each review, rate your knowledge: Again, Hard, Good, or Easy

This way you learn more efficiently and retain knowledge long-term.

', - category: 'features', - order: 2, - language: isDE ? 'de' : 'en', - tags: isDE - ? ['spaced-repetition', 'lernen', 'algorithmus', 'wiederholen'] - : ['spaced-repetition', 'learning', 'algorithm', 'review'], - }, - { - id: 'faq-study-sessions', - question: isDE ? 'Wie starte ich eine Lernsitzung?' : 'How do I start a study session?', - answer: isDE - ? '

So startest du eine Lernsitzung:

  1. Wähle ein Deck aus deiner Bibliothek
  2. Klicke auf Lernen — die fälligen Karten werden automatisch ausgewählt
  3. Für jede Karte: Lies die Frage, überlege die Antwort, decke die Rückseite auf
  4. Bewerte dein Wissen mit den Buttons: Nochmal, Schwer, Gut, Leicht

Cards zeigt dir an, wie viele Karten neu, fällig und zu wiederholen sind.

' - : '

Here is how to start a study session:

  1. Select a deck from your library
  2. Click Study — due cards are automatically selected
  3. For each card: Read the question, think of the answer, reveal the back
  4. Rate your knowledge with the buttons: Again, Hard, Good, Easy

Cards shows you how many cards are new, due, and to review.

', - category: 'features', - order: 3, - language: isDE ? 'de' : 'en', - tags: isDE ? ['lernen', 'sitzung', 'wiederholen'] : ['study', 'session', 'review'], - }, - { - id: 'faq-import-export', - question: isDE - ? 'Kann ich Karten importieren und exportieren?' - : 'Can I import and export cards?', - answer: isDE - ? '

Cards unterstützt verschiedene Import- und Exportformate:

  • CSV: Importiere Karten aus Tabellenkalkulationen (Vorderseite, Rückseite, Tags)
  • Anki-Format: Importiere bestehende Anki-Decks (.apkg)
  • JSON: Für programmatischen Zugriff und Backup
  • Export: Exportiere einzelne Decks oder deine gesamte Bibliothek
' - : '

Cards supports various import and export formats:

  • CSV: Import cards from spreadsheets (front, back, tags)
  • Anki format: Import existing Anki decks (.apkg)
  • JSON: For programmatic access and backup
  • Export: Export individual decks or your entire library
', - category: 'technical', - order: 4, - language: isDE ? 'de' : 'en', - tags: isDE ? ['import', 'export', 'csv', 'anki'] : ['import', 'export', 'csv', 'anki'], - }, - ...getPrivacyFAQs(locale, { dataTypeDE: 'Karten', dataTypeEN: 'cards' }), - ], - features: [ - { - id: 'feature-deck-management', - title: isDE ? 'Deck-Verwaltung' : 'Deck Management', - description: isDE - ? 'Erstelle, organisiere und verwalte deine Karteikarten-Decks' - : 'Create, organize, and manage your flashcard decks', - icon: '🃏', - category: 'core', - highlights: isDE - ? ['Decks & Unterdecks', 'Tags & Kategorien', 'Bilder auf Karten', 'Deck-Statistiken'] - : ['Decks & sub-decks', 'Tags & categories', 'Images on cards', 'Deck statistics'], - content: '', - order: 1, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-spaced-repetition', - title: 'Spaced Repetition', - description: isDE - ? 'Wissenschaftlich fundierter Algorithmus für effizientes Lernen' - : 'Scientifically proven algorithm for efficient learning', - icon: '🧠', - category: 'core', - highlights: isDE - ? ['Adaptiver Algorithmus', 'Optimale Intervalle', 'Lernstatistiken', 'Tägliche Ziele'] - : ['Adaptive algorithm', 'Optimal intervals', 'Learning statistics', 'Daily goals'], - content: '', - order: 2, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-study-sessions', - title: isDE ? 'Lernsitzungen' : 'Study Sessions', - description: isDE - ? 'Starte fokussierte Lernsitzungen mit fälligen Karten' - : 'Start focused study sessions with due cards', - icon: '📖', - category: 'core', - highlights: isDE - ? ['Fällige Karten', 'Bewertungssystem', 'Fortschrittsanzeige', 'Sitzungsstatistiken'] - : ['Due cards', 'Rating system', 'Progress indicator', 'Session statistics'], - content: '', - order: 3, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-import-export', - title: 'Import & Export', - description: isDE - ? 'Importiere aus CSV, Anki und mehr — exportiere jederzeit' - : 'Import from CSV, Anki, and more — export anytime', - icon: '📦', - category: 'advanced', - highlights: isDE - ? ['CSV-Import', 'Anki-Kompatibilität', 'JSON-Export', 'Bibliotheks-Backup'] - : ['CSV import', 'Anki compatibility', 'JSON export', 'Library backup'], - content: '', - order: 4, - language: isDE ? 'de' : 'en', - }, - ], - shortcuts: [], - gettingStarted: [], - changelog: [], - contact: { - id: 'contact-support', - title: isDE ? 'Support kontaktieren' : 'Contact Support', - content: isDE - ? '

Unser Support-Team hilft dir bei allen Fragen rund um Cards.

' - : '

Our support team is here to help you with any questions about Cards.

', - language: isDE ? 'de' : 'en', - order: 1, - supportEmail: 'support@mana.how', - documentationUrl: 'https://mana.how/docs', - responseTime: isDE ? 'Normalerweise innerhalb von 24 Stunden' : 'Usually within 24 hours', - }, - }; -} diff --git a/apps/cards/apps/web-archived/src/lib/data/guest-seed.ts b/apps/cards/apps/web-archived/src/lib/data/guest-seed.ts deleted file mode 100644 index 2f69b3fc8..000000000 --- a/apps/cards/apps/web-archived/src/lib/data/guest-seed.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Guest seed data for the Cards app. - * - * These records are loaded into IndexedDB when a new guest visits the app. - * They serve as onboarding content that teaches the user how the app works. - */ - -import type { LocalDeck, LocalCard } from './local-store'; - -const ONBOARDING_DECK_ID = 'onboarding-deck'; - -export const guestDecks: LocalDeck[] = [ - { - id: ONBOARDING_DECK_ID, - name: 'Erste Schritte', - description: 'Lerne Cards kennen mit diesen Beispiel-Karteikarten.', - color: '#6366f1', - cardCount: 3, - isPublic: false, - }, -]; - -export const guestCards: LocalCard[] = [ - { - id: 'card-1', - deckId: ONBOARDING_DECK_ID, - front: 'Was ist Cards?', - back: 'Cards ist eine Karteikarten-App zum effizienten Lernen mit Spaced Repetition.', - difficulty: 1, - reviewCount: 0, - order: 0, - }, - { - id: 'card-2', - deckId: ONBOARDING_DECK_ID, - front: 'Wie funktioniert Spaced Repetition?', - back: 'Karten, die du gut kennst, werden seltener gezeigt. Schwierige Karten erscheinen häufiger, bis du sie beherrschst.', - difficulty: 2, - reviewCount: 0, - order: 1, - }, - { - id: 'card-3', - deckId: ONBOARDING_DECK_ID, - front: 'Wie erstelle ich ein neues Deck?', - back: 'Klicke auf den + Button auf der Decks-Seite, um ein neues Deck mit eigenen Karteikarten zu erstellen.', - difficulty: 1, - reviewCount: 0, - order: 2, - }, -]; diff --git a/apps/cards/apps/web-archived/src/lib/data/local-store.ts b/apps/cards/apps/web-archived/src/lib/data/local-store.ts deleted file mode 100644 index 3a689409a..000000000 --- a/apps/cards/apps/web-archived/src/lib/data/local-store.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Cards — Local-First Data Layer - * - * Defines the IndexedDB database, collections, and guest seed data. - * This is the single source of truth for all Cards data. - */ - -import { createLocalStore, type BaseRecord } from '@manacore/local-store'; -import { guestDecks, guestCards } from './guest-seed'; - -// ─── Types ────────────────────────────────────────────────── - -export interface LocalDeck extends BaseRecord { - name: string; - description?: string | null; - color: string; - cardCount: number; - lastStudied?: string | null; - isPublic: boolean; -} - -export interface LocalCard extends BaseRecord { - deckId: string; - front: string; - back: string; - difficulty: number; // 1-5 - nextReview?: string | null; - reviewCount: number; - order: number; -} - -// ─── Store ────────────────────────────────────────────────── - -const SYNC_SERVER_URL = import.meta.env.PUBLIC_SYNC_SERVER_URL || 'http://localhost:3050'; - -export const cardsStore = createLocalStore({ - appId: 'cards', - collections: [ - { - name: 'decks', - indexes: ['isPublic'], - guestSeed: guestDecks, - }, - { - name: 'cards', - indexes: ['deckId', 'difficulty', 'nextReview', 'order', '[deckId+order]'], - guestSeed: guestCards, - }, - ], - sync: { - serverUrl: SYNC_SERVER_URL, - }, -}); - -// Typed collection accessors -export const deckCollection = cardsStore.collection('decks'); -export const cardCollection = cardsStore.collection('cards'); diff --git a/apps/cards/apps/web-archived/src/lib/data/queries.ts b/apps/cards/apps/web-archived/src/lib/data/queries.ts deleted file mode 100644 index 98e036ec9..000000000 --- a/apps/cards/apps/web-archived/src/lib/data/queries.ts +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Reactive Queries & Pure Helpers for Cards - * - * Uses Dexie liveQuery to automatically re-render when IndexedDB changes - * (local writes, sync updates, other tabs). Components call these hooks - * at init time; no manual fetch/refresh needed. - */ - -import { useLiveQueryWithDefault } from '@manacore/local-store/svelte'; -import { deckCollection, cardCollection, type LocalDeck, type LocalCard } from './local-store'; -import type { Deck } from '$lib/types/deck'; -import type { Card } from '$lib/types/card'; - -// ─── Type Converters ─────────────────────────────────────── - -export function toDeck(local: LocalDeck): Deck { - return { - id: local.id, - user_id: 'guest', - title: local.name, - description: local.description ?? undefined, - is_public: local.isPublic, - settings: {}, - tags: [], - metadata: {}, - created_at: local.createdAt ?? new Date().toISOString(), - updated_at: local.updatedAt ?? new Date().toISOString(), - card_count: local.cardCount, - }; -} - -export function toCard(local: LocalCard): Card { - return { - id: local.id, - deck_id: local.deckId, - position: local.order, - title: local.front, - content: { - front: local.front, - back: local.back, - }, - card_type: 'flashcard', - version: 1, - is_favorite: false, - created_at: local.createdAt ?? new Date().toISOString(), - updated_at: local.updatedAt ?? new Date().toISOString(), - }; -} - -// ─── Live Query Hooks (call during component init) ───────── - -/** All decks, auto-updates on any change. */ -export function useAllDecks() { - return useLiveQueryWithDefault(async () => { - const locals = await deckCollection.getAll(); - return locals.map(toDeck); - }, [] as Deck[]); -} - -/** All cards for a specific deck, sorted by order. Auto-updates on any change. */ -export function useCardsByDeck(deckId: string) { - return useLiveQueryWithDefault(async () => { - const locals = await cardCollection.getAll( - { deckId }, - { sortBy: 'order', sortDirection: 'asc' } - ); - return locals.map(toCard); - }, [] as Card[]); -} - -/** Single deck by ID. Auto-updates on any change. */ -export function useDeck(deckId: string) { - return useLiveQueryWithDefault( - async () => { - const local = await deckCollection.get(deckId); - return local ? toDeck(local) : null; - }, - null as Deck | null - ); -} - -// ─── Pure Helper Functions ───────────────────────────────── - -export function getDeckById(decks: Deck[], id: string): Deck | undefined { - return decks.find((d) => d.id === id); -} - -export function getPublicDecks(decks: Deck[]): Deck[] { - return decks.filter((d) => d.is_public); -} diff --git a/apps/cards/apps/web-archived/src/lib/i18n/index.ts b/apps/cards/apps/web-archived/src/lib/i18n/index.ts deleted file mode 100644 index 69ad3c858..000000000 --- a/apps/cards/apps/web-archived/src/lib/i18n/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { browser } from '$app/environment'; -import { init, register, locale, waitLocale } from 'svelte-i18n'; - -// Register all available locales -register('de', () => import('./locales/de.json')); -register('en', () => import('./locales/en.json')); -register('it', () => import('./locales/it.json')); -register('fr', () => import('./locales/fr.json')); -register('es', () => import('./locales/es.json')); - -// List of supported locales -export const supportedLocales = ['de', 'en', 'it', 'fr', 'es'] as const; -export type SupportedLocale = (typeof supportedLocales)[number]; - -// Default locale -const defaultLocale = 'de'; - -// Get initial locale from browser or localStorage -function getInitialLocale(): SupportedLocale { - if (browser) { - // Check localStorage first - const stored = localStorage.getItem('locale'); - if (stored && supportedLocales.includes(stored as SupportedLocale)) { - return stored as SupportedLocale; - } - - // Fall back to browser language - const browserLang = navigator.language.split('-')[0]; - if (supportedLocales.includes(browserLang as SupportedLocale)) { - return browserLang as SupportedLocale; - } - } - - return defaultLocale; -} - -// Initialize i18n at module scope (required for SSR) -init({ - fallbackLocale: defaultLocale, - initialLocale: getInitialLocale(), -}); - -// Also export initI18n for backwards compatibility -export function initI18n() { - init({ - fallbackLocale: defaultLocale, - initialLocale: getInitialLocale(), - }); -} - -// Set locale and persist to localStorage -export function setLocale(newLocale: SupportedLocale) { - locale.set(newLocale); - if (browser) { - localStorage.setItem('locale', newLocale); - } -} - -// Wait for locale to be loaded (useful for SSR) -export { waitLocale }; diff --git a/apps/cards/apps/web-archived/src/lib/i18n/locales/de.json b/apps/cards/apps/web-archived/src/lib/i18n/locales/de.json deleted file mode 100644 index d62ee3174..000000000 --- a/apps/cards/apps/web-archived/src/lib/i18n/locales/de.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "common": { - "save": "Speichern", - "cancel": "Abbrechen", - "delete": "Löschen", - "back": "Zurück", - "loading": "Lädt..." - }, - "app_slider": { - "title": "Teil des Mana Ökosystems", - "memoro_desc": "KI-gestützte Sprachnotizen", - "memoro_long_desc": "Erfasse deine Gedanken durch Sprache und lasse sie von KI in strukturierte Notizen verwandeln.", - "maerchenzauber_desc": "Magische Kindergeschichten", - "maerchenzauber_long_desc": "Erstelle personalisierte Kindergeschichten mit KI-generierten Illustrationen.", - "cards_desc": "KI Lernkarten", - "cards_long_desc": "Erstelle und lerne mit smarten Lernkarten und KI-gestützter Wiederholung.", - "moodlit_desc": "Stimmungslicht-Steuerung", - "moodlit_long_desc": "Steuere deine smarten Lichter basierend auf deiner Stimmung und Aktivität.", - "manacore_desc": "Zentrale Verwaltung", - "manacore_long_desc": "Verwalte alle deine Mana-Apps und Einstellungen an einem Ort.", - "status_published": "Verfügbar", - "status_beta": "Beta", - "status_development": "In Entwicklung", - "status_planning": "Geplant", - "coming_soon": "Bald verfügbar", - "download": "App öffnen" - } -} diff --git a/apps/cards/apps/web-archived/src/lib/i18n/locales/en.json b/apps/cards/apps/web-archived/src/lib/i18n/locales/en.json deleted file mode 100644 index 8beb1ac63..000000000 --- a/apps/cards/apps/web-archived/src/lib/i18n/locales/en.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "common": { - "save": "Save", - "cancel": "Cancel", - "delete": "Delete", - "back": "Back", - "loading": "Loading..." - }, - "app_slider": { - "title": "Part of the Mana Ecosystem", - "memoro_desc": "AI-powered voice notes", - "memoro_long_desc": "Capture your thoughts through voice and let AI transform them into structured notes.", - "maerchenzauber_desc": "Magical children's stories", - "maerchenzauber_long_desc": "Create personalized children's stories with AI-generated illustrations.", - "cards_desc": "AI Flashcards", - "cards_long_desc": "Create and study with smart flashcards and AI-powered spaced repetition.", - "moodlit_desc": "Mood light control", - "moodlit_long_desc": "Control your smart lights based on your mood and activity.", - "manacore_desc": "Central management", - "manacore_long_desc": "Manage all your Mana apps and settings in one place.", - "status_published": "Available", - "status_beta": "Beta", - "status_development": "In Development", - "status_planning": "Planned", - "coming_soon": "Coming Soon", - "download": "Open App" - } -} diff --git a/apps/cards/apps/web-archived/src/lib/i18n/locales/es.json b/apps/cards/apps/web-archived/src/lib/i18n/locales/es.json deleted file mode 100644 index 1bc965ef1..000000000 --- a/apps/cards/apps/web-archived/src/lib/i18n/locales/es.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "common": { - "save": "Guardar", - "cancel": "Cancelar", - "delete": "Eliminar", - "back": "Atrás", - "loading": "Cargando..." - }, - "app_slider": { - "title": "Parte del ecosistema Mana", - "memoro_desc": "Notas de voz con IA", - "memoro_long_desc": "Captura tus pensamientos con voz y deja que la IA los transforme en notas estructuradas.", - "maerchenzauber_desc": "Historias mágicas para niños", - "maerchenzauber_long_desc": "Crea historias personalizadas para niños con ilustraciones generadas por IA.", - "cards_desc": "Flashcards IA", - "cards_long_desc": "Crea y estudia con flashcards inteligentes y repetición espaciada con IA.", - "moodlit_desc": "Control de luces ambientales", - "moodlit_long_desc": "Controla tus luces inteligentes según tu estado de ánimo y actividades.", - "manacore_desc": "Gestión central", - "manacore_long_desc": "Gestiona todas tus apps Mana y configuraciones en un solo lugar.", - "status_published": "Disponible", - "status_beta": "Beta", - "status_development": "En Desarrollo", - "status_planning": "Planificado", - "coming_soon": "Próximamente", - "download": "Abrir App" - } -} diff --git a/apps/cards/apps/web-archived/src/lib/i18n/locales/fr.json b/apps/cards/apps/web-archived/src/lib/i18n/locales/fr.json deleted file mode 100644 index ff07f2cfe..000000000 --- a/apps/cards/apps/web-archived/src/lib/i18n/locales/fr.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "common": { - "save": "Enregistrer", - "cancel": "Annuler", - "delete": "Supprimer", - "back": "Retour", - "loading": "Chargement..." - }, - "app_slider": { - "title": "Partie de l'écosystème Mana", - "memoro_desc": "Notes vocales IA", - "memoro_long_desc": "Capturez vos pensées par la voix et laissez l'IA les transformer en notes structurées.", - "maerchenzauber_desc": "Histoires magiques pour enfants", - "maerchenzauber_long_desc": "Créez des histoires personnalisées pour enfants avec des illustrations générées par l'IA.", - "cards_desc": "Flashcards IA", - "cards_long_desc": "Créez et étudiez avec des flashcards intelligentes et la répétition espacée assistée par IA.", - "moodlit_desc": "Contrôle d'éclairage ambiant", - "moodlit_long_desc": "Contrôlez vos lumières intelligentes en fonction de votre humeur et de vos activités.", - "manacore_desc": "Gestion centrale", - "manacore_long_desc": "Gérez toutes vos applications Mana et paramètres en un seul endroit.", - "status_published": "Disponible", - "status_beta": "Bêta", - "status_development": "En Développement", - "status_planning": "Planifié", - "coming_soon": "Bientôt", - "download": "Ouvrir l'App" - } -} diff --git a/apps/cards/apps/web-archived/src/lib/i18n/locales/it.json b/apps/cards/apps/web-archived/src/lib/i18n/locales/it.json deleted file mode 100644 index 8dfb2b7e3..000000000 --- a/apps/cards/apps/web-archived/src/lib/i18n/locales/it.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "common": { - "save": "Salva", - "cancel": "Annulla", - "delete": "Elimina", - "back": "Indietro", - "loading": "Caricamento..." - }, - "app_slider": { - "title": "Parte dell'ecosistema Mana", - "memoro_desc": "Note vocali AI", - "memoro_long_desc": "Cattura i tuoi pensieri con la voce e lascia che l'AI li trasformi in note strutturate.", - "maerchenzauber_desc": "Storie magiche per bambini", - "maerchenzauber_long_desc": "Crea storie personalizzate per bambini con illustrazioni generate dall'AI.", - "cards_desc": "Flashcard AI", - "cards_long_desc": "Crea e studia con flashcard intelligenti e ripetizione spaziata basata su AI.", - "moodlit_desc": "Controllo luci ambientali", - "moodlit_long_desc": "Controlla le tue luci smart in base al tuo umore e alle tue attività.", - "manacore_desc": "Gestione centrale", - "manacore_long_desc": "Gestisci tutte le tue app Mana e impostazioni in un unico posto.", - "status_published": "Disponibile", - "status_beta": "Beta", - "status_development": "In Sviluppo", - "status_planning": "Pianificato", - "coming_soon": "Prossimamente", - "download": "Apri App" - } -} diff --git a/apps/cards/apps/web-archived/src/lib/index.ts b/apps/cards/apps/web-archived/src/lib/index.ts deleted file mode 100644 index 856f2b6c3..000000000 --- a/apps/cards/apps/web-archived/src/lib/index.ts +++ /dev/null @@ -1 +0,0 @@ -// place files you want to import through the `$lib` alias in this folder. diff --git a/apps/cards/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts b/apps/cards/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts deleted file mode 100644 index 1c84db461..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/app-onboarding.svelte.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { createAppOnboardingStore, type AppOnboardingStep } from '@manacore/shared-app-onboarding'; -import { userSettings } from './user-settings.svelte'; - -/** - * Cards-specific onboarding steps - */ -const cardsOnboardingSteps: AppOnboardingStep[] = [ - { - id: 'features', - type: 'info', - question: 'Willkommen bei Cards!', - description: 'Das kann Cards für dich tun:', - emoji: '🃏', - gradient: { from: 'blue-500', to: 'blue-700' }, - bullets: [ - 'Kartendecks erstellen & lernen', - 'Spaced Repetition für optimales Lernen', - 'Fortschritt tracken', - 'Verschiedene Kartentypen', - ], - }, - { - id: 'startAction', - type: 'select', - question: 'Wie möchtest du starten?', - description: 'Du kannst alles jederzeit nachholen.', - emoji: '🃏', - gradient: { from: 'blue-500', to: 'blue-700' }, - options: [ - { - id: 'create', - label: 'Neues Deck erstellen', - description: 'Starte mit eigenen Lernkarten', - emoji: '✏️', - }, - { - id: 'explore', - label: 'Decks entdecken', - description: 'Finde geteilte Lernsets', - emoji: '🔍', - }, - { - id: 'later', - label: 'Erstmal umschauen', - description: 'Die App in Ruhe erkunden', - emoji: '👀', - }, - ], - defaultValue: 'later', - }, - { - id: 'welcome', - type: 'info', - question: 'Cards ist bereit!', - description: 'Hier sind einige Tipps:', - emoji: '🎉', - gradient: { from: 'primary', to: 'primary/70' }, - bullets: [ - 'Erstelle Decks mit Lernkarten für Spaced Repetition', - 'Nutze die tägliche Lernrunde für optimales Lernen', - 'Entdecke öffentliche Decks anderer Nutzer', - "Drücke 'F' für den Fokus-Modus beim Lernen", - ], - }, -]; - -/** - * Cards app onboarding store - */ -export const cardsOnboarding = createAppOnboardingStore({ - appId: 'cards', - steps: cardsOnboardingSteps, - userSettings, - onComplete: async () => {}, - onSkip: async () => {}, -}); diff --git a/apps/cards/apps/web-archived/src/lib/stores/auth.svelte.ts b/apps/cards/apps/web-archived/src/lib/stores/auth.svelte.ts deleted file mode 100644 index 5df932791..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/auth.svelte.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Auth Store — uses centralized Mana auth factory. - */ - -import { createManaAuthStore } from '@manacore/shared-auth-stores'; - -export const authStore = createManaAuthStore(); diff --git a/apps/cards/apps/web-archived/src/lib/stores/cardStore.svelte.ts b/apps/cards/apps/web-archived/src/lib/stores/cardStore.svelte.ts deleted file mode 100644 index 0da4a6c97..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/cardStore.svelte.ts +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Card Store — Mutation-Only Service - * - * All reads are handled by useLiveQuery() hooks in queries.ts. - * This store only provides write operations (create, update, delete, reorder). - * IndexedDB writes automatically trigger UI updates via Dexie liveQuery. - */ - -import type { Card, CreateCardInput, UpdateCardInput } from '$lib/types/card'; -import { cardCollection, deckCollection, type LocalCard } from '$lib/data/local-store'; -import { toCard } from '$lib/data/queries'; -import { CardsEvents } from '@manacore/shared-utils/analytics'; - -let error = $state(null); - -export const cardStore = { - get error() { - return error; - }, - - /** - * Create new card -- writes to IndexedDB instantly. - */ - async createCard(input: CreateCardInput, currentCardCount: number = 0): Promise { - error = null; - try { - const content = input.content as { front?: string; back?: string; text?: string }; - const newLocal: LocalCard = { - id: crypto.randomUUID(), - deckId: input.deck_id, - front: content.front || content.text || input.title || '', - back: content.back || '', - difficulty: 1, - reviewCount: 0, - order: input.position ?? currentCardCount, - }; - - const inserted = await cardCollection.insert(newLocal); - - // Update deck card count - const deck = await deckCollection.get(input.deck_id); - if (deck) { - await deckCollection.update(input.deck_id, { - cardCount: (deck.cardCount || 0) + 1, - }); - } - - CardsEvents.cardCreated(); - return toCard(inserted); - } catch (err: any) { - error = err.message || 'Failed to create card'; - console.error('Create card error:', err); - return null; - } - }, - - /** - * Update card -- writes to IndexedDB instantly. - */ - async updateCard(id: string, updates: UpdateCardInput) { - error = null; - try { - const localUpdates: Partial = {}; - if (updates.content) { - const content = updates.content as { front?: string; back?: string; text?: string }; - if (content.front !== undefined) localUpdates.front = content.front; - if (content.back !== undefined) localUpdates.back = content.back; - } - if (updates.title !== undefined) localUpdates.front = updates.title; - if (updates.position !== undefined) localUpdates.order = updates.position; - - await cardCollection.update(id, localUpdates); - } catch (err: any) { - error = err.message || 'Failed to update card'; - console.error('Update card error:', err); - } - }, - - /** - * Delete card -- writes to IndexedDB instantly. - */ - async deleteCard(id: string, deckId?: string) { - error = null; - try { - await cardCollection.delete(id); - - // Update deck card count - if (deckId) { - const deck = await deckCollection.get(deckId); - if (deck) { - await deckCollection.update(deckId, { - cardCount: Math.max(0, (deck.cardCount || 0) - 1), - }); - } - } - - CardsEvents.cardDeleted(); - } catch (err: any) { - error = err.message || 'Failed to delete card'; - console.error('Delete card error:', err); - } - }, - - /** - * Reorder cards -- writes to IndexedDB instantly. - */ - async reorderCards(deckId: string, cardIds: string[]) { - error = null; - try { - for (let i = 0; i < cardIds.length; i++) { - await cardCollection.update(cardIds[i], { order: i } as Partial); - } - } catch (err: any) { - error = err.message || 'Failed to reorder cards'; - console.error('Reorder cards error:', err); - } - }, - - /** - * Clear error - */ - clearError() { - error = null; - }, -}; diff --git a/apps/cards/apps/web-archived/src/lib/stores/deckStore.svelte.ts b/apps/cards/apps/web-archived/src/lib/stores/deckStore.svelte.ts deleted file mode 100644 index 8f4bff244..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/deckStore.svelte.ts +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Deck Store — Mutation-Only Service - * - * All reads are handled by useLiveQuery() hooks in queries.ts. - * This store only provides write operations (create, update, delete). - * IndexedDB writes automatically trigger UI updates via Dexie liveQuery. - */ - -import type { CreateDeckInput, UpdateDeckInput } from '$lib/types/deck'; -import { deckCollection, cardCollection, type LocalDeck } from '$lib/data/local-store'; -import { toDeck } from '$lib/data/queries'; -import { CardsEvents } from '@manacore/shared-utils/analytics'; -import type { Deck } from '$lib/types/deck'; - -let error = $state(null); - -export const deckStore = { - get error() { - return error; - }, - - /** - * Create new deck -- writes to IndexedDB instantly. - */ - async createDeck(input: CreateDeckInput): Promise { - error = null; - try { - const newLocal: LocalDeck = { - id: crypto.randomUUID(), - name: input.title, - description: input.description || null, - color: '#6366f1', - cardCount: 0, - isPublic: input.is_public ?? false, - }; - - const inserted = await deckCollection.insert(newLocal); - CardsEvents.deckCreated(); - return toDeck(inserted); - } catch (err: any) { - error = err.message || 'Failed to create deck'; - console.error('Create deck error:', err); - return null; - } - }, - - /** - * Update deck -- writes to IndexedDB instantly. - */ - async updateDeck(id: string, updates: UpdateDeckInput) { - error = null; - try { - const localUpdates: Partial = {}; - if (updates.title !== undefined) localUpdates.name = updates.title; - if (updates.description !== undefined) localUpdates.description = updates.description; - if (updates.is_public !== undefined) localUpdates.isPublic = updates.is_public; - - await deckCollection.update(id, localUpdates); - } catch (err: any) { - error = err.message || 'Failed to update deck'; - console.error('Update deck error:', err); - } - }, - - /** - * Delete deck -- writes to IndexedDB instantly. - */ - async deleteDeck(id: string) { - error = null; - try { - // Delete all cards belonging to this deck - const cards = await cardCollection.getAll({ deckId: id }); - for (const card of cards) { - await cardCollection.delete(card.id); - } - - await deckCollection.delete(id); - CardsEvents.deckDeleted(); - } catch (err: any) { - error = err.message || 'Failed to delete deck'; - console.error('Delete deck error:', err); - } - }, - - /** - * Clear error - */ - clearError() { - error = null; - }, -}; diff --git a/apps/cards/apps/web-archived/src/lib/stores/navigation.ts b/apps/cards/apps/web-archived/src/lib/stores/navigation.ts deleted file mode 100644 index e922e7ce5..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/navigation.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { createSimpleNavigationStores } from '@manacore/shared-stores'; - -export const { isNavCollapsed } = createSimpleNavigationStores(); diff --git a/apps/cards/apps/web-archived/src/lib/stores/progressStore.svelte.ts b/apps/cards/apps/web-archived/src/lib/stores/progressStore.svelte.ts deleted file mode 100644 index 4c4574c57..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/progressStore.svelte.ts +++ /dev/null @@ -1,307 +0,0 @@ -import type { StudySession, CardProgress, DailyProgress } from '$lib/types/study'; -import { PUBLIC_API_URL } from '$env/static/public'; -import { authService } from '$lib/auth'; - -// Svelte 5 runes-based progress store -let studySessions = $state([]); -let cardProgress = $state([]); -let statistics = $state(null); -let streakInfo = $state(null); -let loading = $state(false); -let error = $state(null); - -interface Statistics { - totalCardsStudied: number; - totalStudyTimeMinutes: number; - averageAccuracy: number; - totalSessions: number; -} - -interface StreakInfo { - currentStreak: number; - longestStreak: number; - lastStudyDate: string; - totalStudyDays: number; -} - -/** - * Helper to make authenticated API requests - */ -async function apiRequest(endpoint: string, options: RequestInit = {}): Promise { - const appToken = await authService.getAppToken(); - if (!appToken) { - throw new Error('Not authenticated'); - } - - const response = await fetch(`${PUBLIC_API_URL}${endpoint}`, { - ...options, - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${appToken}`, - ...options.headers, - }, - }); - - if (!response.ok) { - const errorData = await response.json().catch(() => ({})); - throw new Error(errorData.message || `API error: ${response.status}`); - } - - return response.json(); -} - -/** - * Map backend session to frontend format - */ -function mapSessionFromApi(apiSession: any): StudySession { - return { - id: apiSession.id, - deck_id: apiSession.deckId, - user_id: apiSession.userId, - mode: 'all', - total_cards: apiSession.totalCards || 0, - completed_cards: apiSession.completedCards || 0, - correct_cards: apiSession.correctCards || 0, - started_at: apiSession.startedAt, - completed_at: apiSession.endedAt, - time_spent_seconds: apiSession.timeSpentSeconds || 0, - }; -} - -/** - * Map backend card progress to frontend format - */ -function mapProgressFromApi(apiProgress: any): CardProgress { - return { - id: apiProgress.id, - user_id: apiProgress.userId, - card_id: apiProgress.cardId, - ease_factor: apiProgress.easeFactor, - interval: apiProgress.interval, - repetitions: apiProgress.repetitions, - last_reviewed: apiProgress.lastReviewed, - next_review: apiProgress.nextReview, - status: apiProgress.status || 'new', - created_at: apiProgress.createdAt, - updated_at: apiProgress.updatedAt, - }; -} - -/** - * Calculate streak from sessions - */ -function calculateStreak(sessions: StudySession[]): StreakInfo { - if (!sessions || sessions.length === 0) { - return { - currentStreak: 0, - longestStreak: 0, - lastStudyDate: '', - totalStudyDays: 0, - }; - } - - // Get unique study dates - const studyDates = new Set( - sessions.map((s) => new Date(s.started_at).toISOString().split('T')[0]) - ); - const sortedDates = Array.from(studyDates).sort(); - - // Calculate streaks - let currentStreak = 0; - let longestStreak = 0; - let tempStreak = 1; - - const today = new Date().toISOString().split('T')[0]; - const yesterday = new Date(Date.now() - 86400000).toISOString().split('T')[0]; - - const lastStudyDate = sortedDates[sortedDates.length - 1]; - if (lastStudyDate === today || lastStudyDate === yesterday) { - currentStreak = 1; - - for (let i = sortedDates.length - 2; i >= 0; i--) { - const prevDate = new Date(sortedDates[i]); - const currDate = new Date(sortedDates[i + 1]); - const diffDays = Math.floor((currDate.getTime() - prevDate.getTime()) / 86400000); - - if (diffDays === 1) { - currentStreak++; - } else { - break; - } - } - } - - for (let i = 1; i < sortedDates.length; i++) { - const prevDate = new Date(sortedDates[i - 1]); - const currDate = new Date(sortedDates[i]); - const diffDays = Math.floor((currDate.getTime() - prevDate.getTime()) / 86400000); - - if (diffDays === 1) { - tempStreak++; - } else { - longestStreak = Math.max(longestStreak, tempStreak); - tempStreak = 1; - } - } - longestStreak = Math.max(longestStreak, tempStreak, currentStreak); - - return { - currentStreak, - longestStreak, - lastStudyDate, - totalStudyDays: studyDates.size, - }; -} - -export const progressStore = { - get studySessions() { - return studySessions; - }, - get cardProgress() { - return cardProgress; - }, - get statistics() { - return statistics; - }, - get streakInfo() { - return streakInfo; - }, - get loading() { - return loading; - }, - get error() { - return error; - }, - - /** - * Fetch all study sessions - */ - async fetchStudySessions() { - loading = true; - error = null; - - try { - const response = await apiRequest<{ sessions: any[]; count: number }>( - '/v1/api/study-sessions' - ); - studySessions = (response.sessions || []).map(mapSessionFromApi); - - // Calculate streak - streakInfo = calculateStreak(studySessions); - } catch (err: any) { - error = err.message || 'Failed to fetch study sessions'; - console.error('Fetch study sessions error:', err); - } finally { - loading = false; - } - }, - - /** - * Fetch study session statistics - */ - async fetchStatistics() { - loading = true; - error = null; - - try { - const [sessionsResponse, progressStatsResponse] = await Promise.all([ - apiRequest<{ stats: any }>('/v1/api/study-sessions/stats'), - apiRequest<{ stats: any }>('/v1/api/progress/stats'), - ]); - - const sessionStats = sessionsResponse.stats || {}; - const progressStats = progressStatsResponse.stats || {}; - - statistics = { - totalCardsStudied: sessionStats.totalCardsStudied || 0, - totalStudyTimeMinutes: Math.round((sessionStats.totalTimeSeconds || 0) / 60), - averageAccuracy: - sessionStats.totalCardsStudied > 0 - ? Math.round( - ((sessionStats.totalCorrectCards || 0) / sessionStats.totalCardsStudied) * 100 - ) - : 0, - totalSessions: sessionStats.totalSessions || 0, - }; - } catch (err: any) { - error = err.message || 'Failed to fetch statistics'; - console.error('Fetch statistics error:', err); - } finally { - loading = false; - } - }, - - /** - * Fetch card progress for a deck - */ - async fetchDeckProgress(deckId: string) { - loading = true; - error = null; - - try { - const response = await apiRequest<{ progress: any[]; count: number }>( - `/v1/api/progress/deck/${deckId}` - ); - cardProgress = (response.progress || []).map(mapProgressFromApi); - } catch (err: any) { - error = err.message || 'Failed to fetch deck progress'; - console.error('Fetch deck progress error:', err); - } finally { - loading = false; - } - }, - - /** - * Fetch due cards - */ - async fetchDueCards(deckId?: string) { - loading = true; - error = null; - - try { - const endpoint = deckId ? `/v1/api/progress/deck/${deckId}/due` : '/v1/api/progress/due'; - const response = await apiRequest<{ progress: any[]; count: number }>(endpoint); - return (response.progress || []).map(mapProgressFromApi); - } catch (err: any) { - error = err.message || 'Failed to fetch due cards'; - console.error('Fetch due cards error:', err); - return []; - } finally { - loading = false; - } - }, - - /** - * Get progress summary for a deck - */ - getDeckProgressSummary(deckId: string) { - const deckProgress = cardProgress.filter((p) => { - // This requires cards info - for now return all progress - return true; - }); - - const total = deckProgress.length; - const mastered = deckProgress.filter((p) => p.ease_factor >= 2.5 && p.interval >= 21).length; - const learning = deckProgress.filter((p) => p.status === 'learning').length; - const newCards = deckProgress.filter((p) => p.status === 'new').length; - const dueNow = deckProgress.filter((p) => { - if (!p.next_review) return false; - return new Date(p.next_review) <= new Date(); - }).length; - - return { - total, - mastered, - learning, - newCards, - dueNow, - }; - }, - - /** - * Clear error - */ - clearError() { - error = null; - }, -}; diff --git a/apps/cards/apps/web-archived/src/lib/stores/tags.svelte.ts b/apps/cards/apps/web-archived/src/lib/stores/tags.svelte.ts deleted file mode 100644 index 074782375..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/tags.svelte.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Tag Store — Local-First via Shared Tag Store - * Tags are stored in shared IndexedDB ('manacore-tags'), accessible across all apps. - * Use context ('tags') for reads, tagMutations for writes. - */ -export { - tagMutations, - useAllTags, - getTagById, - getTagsByIds, - getTagColor, - getTagsByGroup, -} from '@manacore/shared-stores'; diff --git a/apps/cards/apps/web-archived/src/lib/stores/theme.ts b/apps/cards/apps/web-archived/src/lib/stores/theme.ts deleted file mode 100644 index 1415854be..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/theme.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Cards Theme Store - * - * Uses the shared theme system with Cards's indigo primary color. - */ -import { createThemeStore } from '@manacore/shared-theme'; - -// Re-export types for convenience -export type { ThemeMode, ThemeVariant, EffectiveMode } from '@manacore/shared-theme'; - -/** - * Cards theme store instance - * - * - Default variant: ocean (blue) - * - Custom primary: Indigo (#6366f1) - * - All 4 theme variants available - */ -export const theme = createThemeStore({ - appId: 'cards', - defaultVariant: 'ocean', - primaryColor: { - light: '239 84% 67%', // Indigo #6366f1 - dark: '239 84% 67%', - }, -}); diff --git a/apps/cards/apps/web-archived/src/lib/stores/user-settings.svelte.ts b/apps/cards/apps/web-archived/src/lib/stores/user-settings.svelte.ts deleted file mode 100644 index 17099845c..000000000 --- a/apps/cards/apps/web-archived/src/lib/stores/user-settings.svelte.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * User Settings Store for Cards - * - * This store syncs settings with mana-core-auth and provides: - * - Global settings that apply to all apps - * - Per-app overrides for customization - * - localStorage caching for offline support - */ - -import { browser } from '$app/environment'; -import { createUserSettingsStore } from '@manacore/shared-theme'; -import { authStore } from './auth.svelte'; - -function getAuthUrl(): string { - if (browser && typeof window !== 'undefined') { - const injectedUrl = (window as unknown as { __PUBLIC_MANA_CORE_AUTH_URL__?: string }) - .__PUBLIC_MANA_CORE_AUTH_URL__; - if (injectedUrl) return injectedUrl; - } - return import.meta.env.DEV ? 'http://localhost:3001' : ''; -} - -export const userSettings = createUserSettingsStore({ - appId: 'cards', - authUrl: getAuthUrl, - getAccessToken: () => authStore.getAccessToken(), -}); diff --git a/apps/cards/apps/web-archived/src/lib/types/auth.ts b/apps/cards/apps/web-archived/src/lib/types/auth.ts deleted file mode 100644 index 4253556e9..000000000 --- a/apps/cards/apps/web-archived/src/lib/types/auth.ts +++ /dev/null @@ -1,76 +0,0 @@ -// Mana Core Authentication Types - -export interface ManaUser { - id: string; - email: string; - role: string; - name?: string; - username?: string; - display_name?: string; - avatar_url?: string; - organizationId?: string; - metadata?: Record; -} - -export interface AppSettings { - b2b?: B2BSettings; - [key: string]: any; -} - -export interface B2BSettings { - disableRevenueCat?: boolean; - organizationId?: string; - plan?: string; - role?: string; -} - -export interface JwtPayload { - // Standard JWT claims - sub: string; // User ID - iat?: number; - exp?: number; - nbf?: number; - iss?: string; - aud?: string | string[]; - - // Custom claims - email?: string; - user_id?: string; - session_id?: string; - role: string; - app_id?: string; - app_settings?: AppSettings; -} - -export interface DecodedToken extends JwtPayload {} - -export interface AuthTokens { - appToken: string; - refreshToken: string; -} - -export interface SignInResponse extends AuthTokens { - user?: ManaUser; -} - -export interface SignUpResponse extends AuthTokens { - user?: ManaUser; - message?: string; -} - -export interface AuthError { - message: string; - statusCode?: number; -} - -export interface CreditBalance { - credits: number; - userId: string; -} - -export interface DeviceInfo { - deviceId: string; - deviceName: string; - deviceType: 'ios' | 'android' | 'web' | 'desktop'; - userAgent?: string; -} diff --git a/apps/cards/apps/web-archived/src/lib/types/card.ts b/apps/cards/apps/web-archived/src/lib/types/card.ts deleted file mode 100644 index 1eaad39fd..000000000 --- a/apps/cards/apps/web-archived/src/lib/types/card.ts +++ /dev/null @@ -1,65 +0,0 @@ -// Content types for different card types -export interface TextContent { - text: string; - formatting?: { - bold?: boolean; - italic?: boolean; - underline?: boolean; - }; -} - -export interface FlashcardContent { - front: string; - back: string; - hint?: string; -} - -export interface QuizContent { - question: string; - options: string[]; - correct_answer: number; - explanation?: string; -} - -export interface MixedContent { - blocks: ContentBlock[]; -} - -export type ContentBlock = - | { type: 'text'; data: { text: string } } - | { type: 'image'; data: { url: string; caption?: string } } - | { type: 'quiz'; data: QuizContent } - | { type: 'flashcard'; data: FlashcardContent }; - -export type CardContent = TextContent | FlashcardContent | QuizContent | MixedContent; - -export interface Card { - id: string; - deck_id: string; - position: number; - title?: string; - content: CardContent; - card_type: 'text' | 'flashcard' | 'quiz' | 'mixed'; - ai_model?: string; - ai_prompt?: string; - version: number; - is_favorite: boolean; - created_at: string; - updated_at: string; -} - -export interface CreateCardInput { - deck_id: string; - title?: string; - content: CardContent; - card_type: 'text' | 'flashcard' | 'quiz' | 'mixed'; - position?: number; -} - -export interface UpdateCardInput { - title?: string; - content?: CardContent; - card_type?: 'text' | 'flashcard' | 'quiz' | 'mixed'; - position?: number; - is_favorite?: boolean; -} diff --git a/apps/cards/apps/web-archived/src/lib/types/credits.ts b/apps/cards/apps/web-archived/src/lib/types/credits.ts deleted file mode 100644 index e3d950798..000000000 --- a/apps/cards/apps/web-archived/src/lib/types/credits.ts +++ /dev/null @@ -1,40 +0,0 @@ -export interface CreditBalance { - userId: string; - balance: number; - currency: string; - timestamp: string; -} - -export interface InsufficientCreditsError { - error: 'insufficient_credits'; - message: string; - requiredCredits: number; - availableCredits: number; - operation?: string; -} - -export interface CreditResponse { - success?: boolean; - creditsUsed?: number; - error?: string; - message?: string; - requiredCredits?: number; - availableCredits?: number; - operation?: string; -} - -export function isInsufficientCreditsError(error: any): error is InsufficientCreditsError { - return error && error.error === 'insufficient_credits'; -} - -export function extractCreditError(error: any): InsufficientCreditsError | null { - if (isInsufficientCreditsError(error)) { - return error; - } - - if (error?.response?.data && isInsufficientCreditsError(error.response.data)) { - return error.response.data; - } - - return null; -} diff --git a/apps/cards/apps/web-archived/src/lib/types/deck.ts b/apps/cards/apps/web-archived/src/lib/types/deck.ts deleted file mode 100644 index 27607420d..000000000 --- a/apps/cards/apps/web-archived/src/lib/types/deck.ts +++ /dev/null @@ -1,30 +0,0 @@ -export interface Deck { - id: string; - user_id: string; - title: string; - description?: string; - cover_image_url?: string; - is_public: boolean; - settings: Record; - tags: string[]; - metadata: Record; - created_at: string; - updated_at: string; - card_count?: number; -} - -export interface CreateDeckInput { - title: string; - description?: string; - is_public?: boolean; - tags?: string[]; - settings?: Record; -} - -export interface UpdateDeckInput { - title?: string; - description?: string; - is_public?: boolean; - tags?: string[]; - settings?: Record; -} diff --git a/apps/cards/apps/web-archived/src/lib/types/study.ts b/apps/cards/apps/web-archived/src/lib/types/study.ts deleted file mode 100644 index 8e99d1e71..000000000 --- a/apps/cards/apps/web-archived/src/lib/types/study.ts +++ /dev/null @@ -1,43 +0,0 @@ -export type StudyMode = 'all' | 'new' | 'review' | 'favorites' | 'random'; - -export interface StudySession { - id: string; - deck_id: string; - user_id: string; - mode: StudyMode; - total_cards: number; - completed_cards: number; - correct_cards: number; - started_at: string; - completed_at?: string; - time_spent_seconds: number; -} - -export interface CardProgress { - id: string; - user_id: string; - card_id: string; - ease_factor: number; - interval: number; - repetitions: number; - last_reviewed?: string; - next_review?: string; - status: 'new' | 'learning' | 'review' | 'relearning'; - created_at: string; - updated_at: string; -} - -export interface StudyCardResult { - cardId: string; - quality: 0 | 1 | 2 | 3 | 4 | 5; // SM-2 quality rating - timeSpent: number; // seconds -} - -export interface DailyProgress { - user_id: string; - date: string; - cards_studied: number; - time_spent_minutes: number; - accuracy_percentage: number; - decks_studied: string[]; -} diff --git a/apps/cards/apps/web-archived/src/lib/version.ts b/apps/cards/apps/web-archived/src/lib/version.ts deleted file mode 100644 index d63b4cfef..000000000 --- a/apps/cards/apps/web-archived/src/lib/version.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const APP_VERSION = '0.2.0'; -export const BUILD_TIME: string = - typeof __BUILD_TIME__ !== 'undefined' ? __BUILD_TIME__ : new Date().toISOString(); -export const BUILD_HASH: string = typeof __BUILD_HASH__ !== 'undefined' ? __BUILD_HASH__ : 'dev'; diff --git a/apps/cards/apps/web-archived/src/routes/(app)/+layout.svelte b/apps/cards/apps/web-archived/src/routes/(app)/+layout.svelte deleted file mode 100644 index fbff19b2d..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/+layout.svelte +++ /dev/null @@ -1,353 +0,0 @@ - - - - - -
- - - - - {#if isTagStripVisible} - ({ - id: t.id, - name: t.name, - color: t.color || '#3b82f6', - }))} - selectedIds={[]} - onToggle={() => {}} - onClear={() => {}} - managementHref="/tags" - /> - {/if} - - - - - -
-
- {@render children()} -
-
-
- - - {#if cardsOnboarding.shouldShow} - - {/if} - - - (showGuestWelcome = false)} - onLogin={() => goto('/login')} - onRegister={() => goto('/register')} - locale={($locale || 'de') === 'de' ? 'de' : 'en'} - /> - - {#if authStore.isAuthenticated} - - {/if} - -
diff --git a/apps/cards/apps/web-archived/src/routes/(app)/apps/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/apps/+page.svelte deleted file mode 100644 index dddf23a14..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/apps/+page.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - -
- -
- - diff --git a/apps/cards/apps/web-archived/src/routes/(app)/decks/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/decks/+page.svelte deleted file mode 100644 index a6a5c5ab4..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/decks/+page.svelte +++ /dev/null @@ -1,104 +0,0 @@ - - - - My Decks - Cards - - -
- -
-
-

My Decks

-

Organize your learning materials into decks

-
- -
- - - {#if deckStore.error} -
-

Error loading decks

-

{deckStore.error}

-
- {:else if allDecks.value.length === 0} - -
-
📚
-

No decks yet

-

- Create your first deck to start organizing your learning materials -

- -
- {:else} - -
- {#each allDecks.value as deck (deck.id)} - -
handleContextMenu(e, deck)}> - handleDeckClick(deck.id)} /> -
- {/each} -
- {/if} -
- - - - -{#if contextMenu.target} - (contextMenu = { visible: false, x: 0, y: 0, target: null })} - /> -{/if} diff --git a/apps/cards/apps/web-archived/src/routes/(app)/decks/[id]/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/decks/[id]/+page.svelte deleted file mode 100644 index 925241941..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/decks/[id]/+page.svelte +++ /dev/null @@ -1,169 +0,0 @@ - - - - {currentDeck.value?.title || 'Deck'} - Cards - - -{#if currentDeck.value} - {@const deck = currentDeck.value} -
- - - - -
-
-

{deck.title}

- {#if deck.description} -

{deck.description}

- {/if} - - {#if deck.tags && deck.tags.length > 0} -
- {#each deck.tags as tag} - {tag} - {/each} -
- {/if} -
- -
- {#if deck.is_public} - Public - {/if} - -
-
- - -
- -
-
{deckCards.value.length || deck.card_count || 0}
-
Total Cards
-
-
- -
-
{masteredCount}
-
Mastered
-
-
- -
-
{dueCount}
-
Due for Review
-
-
-
- - -
- - -
- - - -

Recent Cards

-
- {#if (deck.card_count || 0) === 0} -

No cards yet. Add your first card to get started!

- - {:else} -

Card list coming soon...

- {/if} -
-
- - - {#if showDeleteConfirm} -
(showDeleteConfirm = false)} - > -
e.stopPropagation()} - > -

Delete Deck?

-

- Are you sure you want to delete "{deck.title}"? This action cannot be undone and will - also delete all cards in this deck. -

-
- - -
-
-
- {/if} -
-{:else} -
-

Deck not found

- -
-{/if} diff --git a/apps/cards/apps/web-archived/src/routes/(app)/explore/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/explore/+page.svelte deleted file mode 100644 index d068d7630..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/explore/+page.svelte +++ /dev/null @@ -1,22 +0,0 @@ - - - - Explore - Cards - - -
-
-

Explore

-

Discover public decks from the community

-
- - -
-
🔍
-

Explore Feature

-

Browse and discover public decks - Coming soon!

-
-
-
diff --git a/apps/cards/apps/web-archived/src/routes/(app)/feedback/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/feedback/+page.svelte deleted file mode 100644 index 9024d5b88..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/feedback/+page.svelte +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/cards/apps/web-archived/src/routes/(app)/help/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/help/+page.svelte deleted file mode 100644 index 59e9443c7..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/help/+page.svelte +++ /dev/null @@ -1,32 +0,0 @@ - - - - {translations.title} | Cards - - - goto('/')} - showGettingStarted={false} - showChangelog={false} - defaultSection="faq" -/> diff --git a/apps/cards/apps/web-archived/src/routes/(app)/mana/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/mana/+page.svelte deleted file mode 100644 index 56b083aa0..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/mana/+page.svelte +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/apps/cards/apps/web-archived/src/routes/(app)/profile/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/profile/+page.svelte deleted file mode 100644 index 29274922e..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/profile/+page.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/apps/cards/apps/web-archived/src/routes/(app)/progress/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/progress/+page.svelte deleted file mode 100644 index fdfafb4d6..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/progress/+page.svelte +++ /dev/null @@ -1,137 +0,0 @@ - - - - Progress - Cards - - -
-
-

Progress

-

Track your learning progress and statistics

-
- - {#if progressStore.loading} -
-
-
- {:else} - -
- -
-
- {progressStore.statistics?.totalCardsStudied || 0} -
-
Cards Studied
-
-
- -
-
- 🔥 {progressStore.streakInfo?.currentStreak || 0} -
-
Current Streak
-
-
- -
-
- {progressStore.statistics?.averageAccuracy || 0}% -
-
Average Accuracy
-
-
- -
-
- {progressStore.statistics?.totalStudyTimeMinutes || 0} -
-
Minutes Studied
-
-
-
- - - -

📊 Study Streak

-
-
-
- {progressStore.streakInfo?.currentStreak || 0} -
-
Current Streak
-
-
-
- {progressStore.streakInfo?.longestStreak || 0} -
-
Longest Streak
-
-
-
- {progressStore.streakInfo?.totalStudyDays || 0} -
-
Total Study Days
-
-
-
- {progressStore.statistics?.totalSessions || 0} -
-
Total Sessions
-
-
-
- - - -

📚 Recent Study Sessions

- {#if progressStore.studySessions.length === 0} -
-
🎯
-

No study sessions yet.

-

- Start studying a deck to see your progress here! -

-
- {:else} -
- {#each progressStore.studySessions.slice(0, 10) as session} -
-
-
- {new Date(session.started_at).toLocaleDateString('de-DE', { - weekday: 'short', - day: 'numeric', - month: 'short', - })} -
-
- {session.completed_cards} cards • {Math.round(session.time_spent_seconds / 60)} min -
-
-
-
- {session.completed_cards > 0 - ? Math.round((session.correct_cards / session.completed_cards) * 100) - : 0}% -
-
accuracy
-
-
- {/each} -
- {/if} -
- {/if} -
diff --git a/apps/cards/apps/web-archived/src/routes/(app)/settings/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/settings/+page.svelte deleted file mode 100644 index 00e8cac54..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/settings/+page.svelte +++ /dev/null @@ -1,41 +0,0 @@ - - - - Einstellungen - Cards - - - - - - - - - {#snippet icon()} - - {/snippet} - - - - 1.0.0 - - - - -

v{APP_VERSION}

-
diff --git a/apps/cards/apps/web-archived/src/routes/(app)/tags/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/tags/+page.svelte deleted file mode 100644 index 49c105125..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/tags/+page.svelte +++ /dev/null @@ -1,44 +0,0 @@ - - - - Tags | Cards - - -
-

Tags verwalten

-

- Tags sind app-übergreifend — Änderungen gelten in allen ManaCore-Apps. -

- - {#if tagsCtx.value.length === 0} -

Keine Tags vorhanden.

- {:else} -
- {#each tagsCtx.value as tag} -
- - {tag.name} -
- {/each} -
- {/if} -
- - diff --git a/apps/cards/apps/web-archived/src/routes/(app)/themes/+page.svelte b/apps/cards/apps/web-archived/src/routes/(app)/themes/+page.svelte deleted file mode 100644 index 922a91b31..000000000 --- a/apps/cards/apps/web-archived/src/routes/(app)/themes/+page.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - - Themes | Cards - - - theme.setVariant(v)} - showModeSelector={true} - currentMode={theme.mode} - onModeChange={(m) => theme.setMode(m)} - showBackButton={true} - onBack={() => goto('/decks')} -/> diff --git a/apps/cards/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte b/apps/cards/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte deleted file mode 100644 index 27d613061..000000000 --- a/apps/cards/apps/web-archived/src/routes/(auth)/forgot-password/+page.svelte +++ /dev/null @@ -1,26 +0,0 @@ - - - - {#snippet appSlider()} - - {/snippet} - diff --git a/apps/cards/apps/web-archived/src/routes/(auth)/login/+page.svelte b/apps/cards/apps/web-archived/src/routes/(auth)/login/+page.svelte deleted file mode 100644 index 17fd2bab6..000000000 --- a/apps/cards/apps/web-archived/src/routes/(auth)/login/+page.svelte +++ /dev/null @@ -1,58 +0,0 @@ - - - authStore.signInWithPasskey()} - onVerifyTwoFactor={(code, trust) => authStore.verifyTwoFactor(code, trust)} - onVerifyBackupCode={(code) => authStore.verifyBackupCode(code)} - onSendMagicLink={(email) => authStore.sendMagicLink(email)} - {goto} - successRedirect="/decks" - registerPath="/register" - forgotPasswordPath="/forgot-password" - lightBackground="#faf5ff" - darkBackground="#1a1625" - {translations} - {verified} - {initialEmail} - version={APP_VERSION} - buildTime={BUILD_TIME} -> - {#snippet headerControls()} - - {/snippet} - {#snippet appSlider()} - - {/snippet} - diff --git a/apps/cards/apps/web-archived/src/routes/(auth)/register/+page.svelte b/apps/cards/apps/web-archived/src/routes/(auth)/register/+page.svelte deleted file mode 100644 index bf3e3cc6a..000000000 --- a/apps/cards/apps/web-archived/src/routes/(auth)/register/+page.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - - - {translations.title} | Cards - - - - {#snippet appSlider()} - - {/snippet} - diff --git a/apps/cards/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte b/apps/cards/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte deleted file mode 100644 index 9dbd33c91..000000000 --- a/apps/cards/apps/web-archived/src/routes/(auth)/reset-password/+page.svelte +++ /dev/null @@ -1,174 +0,0 @@ - - - - Reset Password - Cards - - -
-
- - - Cards - -
- -
-
-
-

Reset Password

-

- {#if success}Password reset successfully - {:else if hasToken}Enter your new password - {:else}Invalid or missing token{/if} -

-
- - {#if success} -
-
-
-

- Your password has been reset successfully. You will be redirected to the login page - shortly. -

- - Go to login - -
-
- {:else if hasToken} -
-
- {#if error} -
- {error} -
- {/if} -
-
- - -

At least 8 characters

-
-
- - -
- -
-
-
- {:else} -
-
-
⚠️
-

- This password reset link is invalid or has expired. -

- - Request a new link - -
-
- {/if} -
-
-
diff --git a/apps/cards/apps/web-archived/src/routes/+layout.svelte b/apps/cards/apps/web-archived/src/routes/+layout.svelte deleted file mode 100644 index 5067c4bbf..000000000 --- a/apps/cards/apps/web-archived/src/routes/+layout.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - -{@render children()} diff --git a/apps/cards/apps/web-archived/src/routes/+layout.ts b/apps/cards/apps/web-archived/src/routes/+layout.ts deleted file mode 100644 index 8c482a26a..000000000 --- a/apps/cards/apps/web-archived/src/routes/+layout.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { waitLocale } from '$lib/i18n'; -import '$lib/i18n'; // This triggers the init() call at module scope - -export const load = async () => { - await waitLocale(); - return {}; -}; diff --git a/apps/cards/apps/web-archived/src/routes/+page.svelte b/apps/cards/apps/web-archived/src/routes/+page.svelte deleted file mode 100644 index c4d6b11b4..000000000 --- a/apps/cards/apps/web-archived/src/routes/+page.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-
-

Loading...

-
-
diff --git a/apps/cards/apps/web-archived/src/routes/health/+server.ts b/apps/cards/apps/web-archived/src/routes/health/+server.ts deleted file mode 100644 index 949c64729..000000000 --- a/apps/cards/apps/web-archived/src/routes/health/+server.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { json } from '@sveltejs/kit'; -import type { RequestHandler } from './$types'; - -export const GET: RequestHandler = async () => { - return json({ - status: 'ok', - service: 'cards-web', - timestamp: new Date().toISOString(), - }); -}; diff --git a/apps/cards/apps/web-archived/src/routes/offline/+page.svelte b/apps/cards/apps/web-archived/src/routes/offline/+page.svelte deleted file mode 100644 index 00416310c..000000000 --- a/apps/cards/apps/web-archived/src/routes/offline/+page.svelte +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/apps/cards/apps/web-archived/src/routes/offline/+page.ts b/apps/cards/apps/web-archived/src/routes/offline/+page.ts deleted file mode 100644 index 189f71e2e..000000000 --- a/apps/cards/apps/web-archived/src/routes/offline/+page.ts +++ /dev/null @@ -1 +0,0 @@ -export const prerender = true; diff --git a/apps/cards/apps/web-archived/static/images/app-icons/cards-logo-gradient.png b/apps/cards/apps/web-archived/static/images/app-icons/cards-logo-gradient.png deleted file mode 100644 index 7bb2798b3f31223d8a7f12c74f805929f6766638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268878 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≧wXmON0SrtqD9njAu?X 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

Y($+1s+Ip}6C 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 lyRXyrE6|}M2{d?r_q&xrs diff --git a/apps/cards/apps/web-archived/static/images/app-icons/maerchenzauber-logo-gradient.png b/apps/cards/apps/web-archived/static/images/app-icons/maerchenzauber-logo-gradient.png deleted file mode 100644 index e47ad91389c4bb5fb88c7fa5de89b0e4e700efff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392962 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�xxm9 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

gii{5wHuti85F}ij(Z)6>Mzn*D(QLawj0`W zjY)8B%@7Fk#O0*tbw59|fMMM!!!@Gp*}Lf_dwvlmiDOsCpsM~QKIACV;@1(p?ScDC)e2A%ct5PC`@6uW?PG`TB_Q!`3K7I=CzJ z{WgXWQ8g#~cokcpf#>+B){*@LF%~Z!40#y1#qT;wj;+V|B9HkLZI`eA9US@p4z6IS z>O&x!DW&!DZM6J-M;UE#EAmZxM?&HwMi~hPq8aVe&0SwYG>XB(DB~%N&O*u>-X?Pm zNtP6OjRU&plA*?=P5u_NdyCQvlUFsIu1?WeH3BV6er-*-qTYrMb?9-F&3gT^jwg+$ zKCC=>Ow_`q<)sKy>%eirNxudYh}50ce?YIBWq3yNDyM^x0wwOv&Ks0JSpg8mk5`L7 zOuMf8BO03b1x{q!v_LG7BLRbH8L_$ZZJiP~|Lx*x1?1?>B%IJ9I1jvS@IcER38a#- z3s~B9B_%FA9W)vb>y{00ALa?}COXc6ggHFxsktfgp+K=lo zzO{&!Rjt%W&4&(13-E0fZ_lX<$Sr(nE7NGb-f7^FW`aClzVObg)0-r3bogUEj^q%` z-XS|^8)4ik%+qS)YviHjDpaPr*6JrPrkUiH`^k4J)UJ({0xOLwC>TQU`frP0weBqF zrnS`Ra4}ai)oycMoPz&$bI--)`F-0R7DFuJodElxJ4k$e6PQG< zts4^M5)~d6j5skHV3SS>4D#1{ntXw3vs7Cyp`|wm%3Nw$n;|MByAV@B(n>-@zlgLe zdSv*kzFHtfv9!MlGl=@p22c}MTt;DrXPI1?dc2(f6#TJi3cwLAG{zf>@WP`FO8)ca zs6zN7DG~;*VjHpwQX_`l_q;(7B8`e@cHs~gh)EXAjl3}cjp(}q`Hmlt**aYm%fw|o zu+qYiXotXu%lCd~CQ>yYC&}kcl}dEWEYit98GT##!k2)2or6)KGcHXBWxT`FQ|40?4=hK#E$#n;5=YD zz1Gys`_3fE>Keqx(%(@pNyk|JSu4zR(uRP2*w&wbKL;X{nw3tql{E>KlRmCC2SdUaY&kwaN!k+Y^5TS-X&;=0$>;&bE*r zJsbtTJ~NKp{ESFtsKrTBSQ3PLj_;{{e|aEc?)Jx<#$IaIlOSqy)t-*MO~__5^Ok;Y znE_XO?z?1)+er;8xdS6lWxviO#S*Lvn;J%VE?yi0$SgqZgL9AEoi zM$BFhPiDKE19-Y{jb)Vbl8yL#K=D(;ek;Sm-~njCt$zF+VsU(*>OkVq*Wl;mHNgH0 zAVnklKX#<1?`+faFtcRi7A8`{@65a_}Z28WKqc;eoLn*1qugK$g(v zs{JT6h<38S0FNBy3OYQ#TRap(>xqv(_jq&p&UErHwM+svt3Lp9));Ha#&e`^1lZ@s zMV#}@;ZMN_F&wW>r&@l!9 zw=Qm81kUuZlBoJ65g_y-QtNxl*_Os2Kc@53XN|&p1&vBD@Oe14+k=Zkh)cI+?ONNw ze)!}`wpRG300E+Hj`mhab|3c_U2C&g1mVLAr*-Vl^ndc3uN8bpuk{oS|SuLcwofwktLET4sK5fYIckjUS2d(P&!e*{jd z*UvsP_Qsm=aGT@JV?190-s%opF6a8izLrn5EI08M4W{cmFAl!h0FnJbuafvs3|`$E zeAn2vRuVsy9OiANGODU#t%sX5;L$8?eL1xBNgmaCh7udj%&yK~ELCEySLp;v_5hj- zplZmPiyHeQLi=MO#XX>Qe#WoBa|m{!K+*mR_wJb|3;r_xzzw|k7J9YCx3y*?EUN~T zu?A$ilQ5w!_|-tR=SY>4zFjYY$FmLcAd|BxZ|HVmi+%?elLeqbML#qvkds|C=FkEo z+T6=q)yy%L^675miFGV+rjz0DUl@ib@mvmm@d{~GOpN*rh;xEd{IU>^&S$H%DpF88 z=J~4oU~69y-n_Ndu*1zT#F_B2OdUM@>mxUKsS%V(HZiPm;_FThJpVAUaG&EQtGwVf zM7k7WT}syXunf?DPY@zE;QNY&{|P>5SCQ~>eTFl7sJQy}WMqOyt=-)_JE+EE25H); zheVYB7=$w!dzn5@0HQsEx3e1cc5<)lEREAVe!MD}jrxWqW6eA~Y z(a%)w;_YPLhX;DTqr=5BrP}UfCvhlcJ)_ycry2@Q_LEe3su_0yO?sbG5B2IYitF5U} z2@7*Y?r<{(TGaW!z5!$3fuW~ckaB&^6})6h5=I;7_V;W>A%rjljY&LcUclm z)Y!N8N9lwde>;1c`EmiAJR2{vVPaZJIX-~T-xgYPPl~np5r+WE4rCGMzK6Y>_ic!Z zk?qPE@&y;dp(uLI?w8{v`i>*5 zJ(4_KW~-9AI*3_YqS}?~EAXu(x9c$#f-FWtLB?3Y(3cG`Q_eG>{k4xcwaNIkutQPT z4-C2IrOoTYwkGZ<5DLn`L<4MXiP2YJ7@BFjYmrHHQns4xC?of2=9BwyC?F@zkma_T zF1M&bwp}4S`3jFUgbnS9XHE{M<&`E+d8#ak!YQWv&=&Q>)ex%JCb5=veXeK840YI^ z7|ejlrn)wA;dS=QuX&*v4#fJi$}Uux#?dl&-mrj< z#0<>_G#=jL(d)XqS^dYtq^BEdj{3+ix;DqRZPlF&^7fSa-(ZUWH2tOa&0a06UQ4v1 zdUW=*R=YHs;3brf^WAqXN7WI>Fl|XQCG1c))4%p?N0(#@9RF?mf+{0zBK=_E^^DSg ztyt}BbCxwLxRD9zT9pqeZl@2i1nubCy5ATGp!80Pf?(G0zLg~`K>V?U2>=zBVYW2v zCUX=BBzKO!eyJ6bxZ`~1?y?C#-41GL&K&-MC5p&;5XA(L60^F2Uys0n6{-=lPTdj%d`##VOt5 zhm==Ly?I0OjaPYp>w7Ds~JUn?RP4xG;HH?9Irdi{}CC3Z21#s?QRn>+iPrjKq6FHE7 zCb(N$r5$tU%aen~R6v>?`xH~_ij8}h=zMS3H-jrzuP?Vl>qo2Q&1?pX`A&L79IG2} zjq9l%XRs7RgQ?S8nTOno!a}9AeayKN5U5_FGa80D}cCzs2+`IIldu=XP2zKZtwD4~@MOJ$iGORMPy*+v! z70X0_PyL%fvI&v7g_xtBC$@-!&5W(eOE2a#>h|}Vy$O2sk%aK^AB5VB_2u3g%jn=r zj4xSl8P;wh&CdBEzbWdd`m*`IgiOm#q{0EGnV*22H`$Nfng8ScJpI?~yLRl=+AkI% zN+GW!mAh4ynd1(pk``WVV*LXPL!(qt|Me9z9sZ})p#;A6QI2sd+aA&rxHZ-yPSE0y z;g`zHVQsy0TjB@k0RCy^lvoU}E?}m+nOUn6M7QIK+5-OB^kRRy06?BN1(PkD0$~p- z^Mx*>^k=XeYYUxd0`pS&j}Fec-jS>C-L zl-RK0W05V1?;w8kOa01aj1aw%>;Y|Awt-=_z7vyd}31T1QmxbUk zA8+QOq}4(4?``ORZ(;vJJW0Yu-u!cCKS#7S-vWrzZ!S#4=2!dbds9Qj|NQ+^5oy0@ zf5Sl0i|idu8u~wqy7NzXPY&p@7uI=G@u)1z^?G77%AW?ygJ7#1P%bq=m6S+ZkNjMK zY{87AM5&lsP=$Zbex;hIAs4H+f=+FdI~;lA0`k?H#-;}o9Ihw zwGhSo$lWaqajyTqp#PN|usi6E$pnP!=#WGo+26mH-mA|Oi?F?~4L2#pGC{yDBG(AD zExt-RRW~__WGCW2kg?Nq`tsbWOTua|_%G3E|8$`{EbJkZkAuMpi?Tl$S&nE@w)NtI zr#m|0H%Mf$=3Xk7Umy4il=6UtHCZaTh6yrz({DTxnHD z>FgSHv-cTUICyo!PW0(nkMdaHc!aL+QaSKS%YBoWY5bi18zBZ;N;al?y{8UdtR6>r zlwP6|wv>uKygi|!*5!$TH~P=+K=?N$JlvvEGABbJP2NrkUi8Gi6Na4u)*wo{Ui9|v$ z26%X;w{-Qz;i;EK(%^QYK|J@$xk)kiy%|fo-s-LcS4X!8vklaJMWJ9 z+NEe7^uObQpRa|9%FuweWIWdNPP4*SB)drWwt9DkDu-J0pqt#{1z;n}_DhL3tr$TO zIMV~fj+~E@(p2^)1hr?)!Q(?36_h>Z9Dqo-wu)2mLy7yQvw+z@2WV*3kUJc^j)Qi7 zrq|!rgWgzIA3+>wL&e|WM%7uKRCFiv2YN)apCFxPJqrr*Z^3o=6YXLn7^8_hhj*b^ zH%5CySJ>qRb8>#lxSA2WOcIB|KStDlm!}?8_(Q4Y^LX@-r5{5@%TGn#)*I(B0p|jA zl_%O-Cs+Oyi*<~4bdxN-daT6m^ccm(QdA(vcL}{YTb4C7v)F`LGWIOy-VxG)jlJGS z#9p35DwzlPSCZS##xn4of`vEPlrvZMl@<8a!!unFl_h=r9JR#Zs zJL5O!Sf0v2@l;P|-B}9?LGeeS`p$*x*yRhtkD@kLd8L!F2@*XBc3GMGDOpV~<)S=I zi3lH!Io$rJzSDPkt5pbCngQV{EO6}r!yqv5cg)l4&_K?UX${b#p0_irI0Hs4EhDrv zDCb0lY57R)MPz@4PES1XWAw0paOg=+Vj8>5t|D$&5zw!=b(ag7pito;EyZ04P`V&D z3hvmfp07y>c6$?TdI2XFE}Q~JHPzT9shX!eBd$!|8)P3RXU=NYj=udBcw@6!u)T6z zYwEwaMk1CD{mDTf@E2j!`Evm&>DJ3?+x6lV70P9dQ__7e2b{p?s5}CX!1_<6`OD?8 z+3%MxC1kmcg(L#W`EslIXy`Zt_;b?mw4Fgg?}Kqji`MB}E>T%|ne?gx)b6i;h$R}B zVMYJxj>Yo`R=<3E5boC(s zE7*nuzw|*w+$51LoWiDL=5ZID+za$BX>+UuySB~#M1*(0AHrbbOoG13 z=|FP$5Atnn5ETs!x)TS&(ZXm78TRfn)NxuF<4qQ>LTXCwCF>8`|51V^O634g3%mkBvi$`k1GBzs5wMe>DIQ2 z-w68V>p}aO8F=M;a9!|J;W(5KN*gSsF_>_z5EF>PQ{!HF{CUHL z-iSRbHr(&_(l!J;B`};RorLXC$^b<-i>Ud-QpR~R23#-^}^$JF!Yl`BL8n1)=L(HUys5tb>HEA1L+RM=P5QH58eH4 zh5z>`E=6wHaN3CdHF{|O0vAS;Ik?k%V*}31!As!(Yb|`FIYnP$b8E2+ce|fti0(Sw zac@u{vkcP{q)Ay;6B#{{ICwi$xPJaZkBe_p8tM*wF1>o*f>025gpkUk0m1Z^mU7=; zKmGhYzkiZEa}D&}uVjmib~^E-v2pguxTj4B@k0mo0@wr_m-oXIK61Y!T|gF&9W?yl z{dG}7v@GB5>))D?7|~Qr{iX*qojA|!VKdeQ-)<^|-cB0(M+7%ndV@25opx4j$#z=$ zfO@rEfw;hLA4mG-c2$wq=Ww>IP!UTWR43V;6i_hgB35s2M{Ba`2Ua{Fcr`$!&Z}~mUV+BXobVtz z??Z#bdwTLeRo~PqQFW?`6!BXx7%jCP0Jvs7%hP5wlW|+*PN*(xIP%@$T4&k%0RQ2G zlGWQ0g)w!o9mVY`IA_Xm#G$*7dpr*92qkO*@EcF>4!eb4?)ipI(DQl|QGw!|sY5T+ zOh9Q*JF8M14192~R!=E$X6Eb0EkQRm66JKYe=fEQl_c5hyZIV`I39c7vT9y4W=T9G zw(2^2LHYcvQH8N z#lg{&kqZt$9CyMWLpNzCpz*V(YI|+zE!~}}wjUai>U$9X5MDU{zx!XAv~#Emqtz&I z3d??ws0DJc>$`5?>+Eiw>e;&uxV`YUz== zSKE&^DSJ{Y z4gH_Ki^?}Pw?%$B@$KIn+8XoX?0-grOq3+87i3Fd3fj3fl*$g7SHG+B-ypCMg@_mE zbjb84K!5u>`@%{I@N)Hyt)r-kdn~4Nu9H$Mp{3~2<@UGmK9g^#yFl?<3KywOs?Y>M zkyXa3r`J$k|DFBh!-|4d0b>qe6&mNcq$$`>S_r=_&vts14zhoi4AV!zY*0LSN)Ojo zNTGQS(Tc?QXA{vb0U{xmEj~mC<|)d4kmQvkwFeX;{o8hJz+ct?xxnks#fkUF;Z0oe zrO;l*mGX(p4sQltBj+c~m@HY{r-meGJx)zVqw1n)SJqqz%+FqprNgV8uEO9>4$I1U zYPB6jb+I_MLuWY1`zmiI=&JQn0cH zJM(*uFw!BcvcWqY8aP{~3DmO(5|~w*Ab2x;INk*W=+mBZZ<{-TkV}$BFMIHi50rJt z9U7!S5Gd7tJkljTw!XR{m#RhPdOwZl#QI)_Gv_c(Dj1lw+phPlbzeF-BlvqC@w5e& z;x#*evZ?S*DIt57BRlyiD}XT5u~8mDM=BG|+?VZgTSY~2GtEI-ca7&@15b|6>#n+i zo!6iT5K>#LjWGt?T)=$=nF86@3KmWnDvxZk`OmF|1;$q=0-|jqiD8b|Q=|r9jXrAp zhyne6%V+new#<>S?cazT6C^rn0dCplQga~+SPxoC zHH>EktkPe@8RXkxBraPu>B$8D-Qjv)$P{|?I^nkPL(VRJE4-(h*igG+A+C!9i-ny| z!dFv!%T;N+o9U*T6z@MM%~s^8!df112fjhR=u@r~H-C{mfJ_|O6;3GsPISJ)5(=d^ zEA|mstZymFtgrB`XCh9ru7p?zIhP3tV!6Y=Gl1zE&w}b2fgI@*)w`|ax9++qBXpea8yr0aRK!A$ZmO<5Q9{uc9pm)lq z)7-~H2^U!iP#NPBZ^-0ik;~stWaHeplAVR(McH@kL`nsQ4ls--hH^Z+s?1%CrO}K# zc!?a(@B6rf^9r$*-A5~WiMs(s)V1%#>_;ZUOn*1tZ0Wv>fB#_gd{zmE3a!eNN*vg+ zg;f!xBXx~99{Ax;U8tyqW&1bSx$102lIIk2dFtm#&qJ*WTq=%h@ic2y0i_eD(1g?- z;#W}BF? zO4s!G&{Z(R{l$H%a~kbMU{A%X9?eQ6w|JI|Ji_SV{tzeunxgX{WUI7Z@F&aq_m}g23)bhv-=Hm`vT8^2 z@rj>6rvEyyV={=|wBNl^vMQyU(W?PKxuTPDoiCHq0u?r&Z$DD5W<9z3O+h zc5A;#a7MKk+unuaYnGbZ?zlEiMJ+mP$|c3Rm9<E&{`EPT|n@`_zw z%|rK4YQaPtG(GAwycm7ID}A^mtXhDEW@B>qi0b*L1Y%Fge07@>T?1(oX;<=8{ZRv? zRMHz%v0ifeb~hC5c6Sn|Q1u6+UW)ddI!RZ`lH>J{Tt25dh;=cD$|=epxeB2!eNj^| zRj=DAEw*;7VM^g4=dh4ctgo+)QafKD^)=PS1IsS@5=|m5&$>)pzx7jezYn$G3qF^E zn%@0742s^P*C_m+SIzk(niw|oRbuph!z&9w^%+qntQA#k*@M==lB}zvZGEtFKBj8P z_*WrXtbbJ8rh*Xz6!4q|+=>;2=T80^2v`wDloG3`ghxLcMxD)BcaU|=-<4sIVF;E6 z@|iZ<1h;0l&ypUu|9Nm$_><3C`Xf}Nc~^;lK*CWZoK$_Lo(j-tHQii&$hP1<;3lzV zu$oPv(^g*3R&*za=x`!9b)uUh!iLFL(}&{x^2_gBg$R7WLXWB3!&D8V1W(q9T_TyV$^)_<8)`+P(f1B>2*T=I`Uk9GeiMADU zRl??zEw~0B-}*Y=znnchLqbgx(71x;j679X|K!0w2Xabx3)j_+)rps)St<@MHdMp- z!G%b8%9Jp-x$wEJH%XGtY4MG#*fG?K>g+W(2DD);CEttjf9P@dg-?0A_wAslBusJ@ zw^6xhbc_}S5ndP^rQrnqkzeYVt}Eny??f1(JrPY!K<~p5ciBnc@4r<+R8n zh5$xhjrKPO`@)qGOk669renoiwz>!gUk6S$Q)Op9fB!}?Cwq;5mD1?oc2AhQ!n-@U z`+N3O^;e~2-GjfHu*xB&Xoxc@q&Lq&Xsue0xq*AXX3x7^V%md+^$zfT9mE#XRd@X5 zyDjo(iN&IhM|CDf<^+}1hRqLfK@jRiDY(kZWmNN6-5g-c{>CgAz6}=#Siiww%6F8d zB6Fm%z@^qek4GFR)|k8hMRSbhDyIs~hFlknDrB<4B?2AqQm`GcPjp~5H%+wQL@-IA zJS=DZ`AB-QB#yoUVoamD>Z6iwB!I=(26AnWf8G*iW1p(3_`EjQQB*OZ9P+~RFG-C1 znD?_^+?VSj4YxXbB&~QGk(puDy`Ez0NU1T7K^=`Xx1H}2F+z#MBDcfv_M4!=#QvAd z`O&gxQ^UqkXfzFFp%C&`z!jUl1$UNHrDwVz1+=B_#n?B zOgrykX8W3u#}1XfEtUz=g6CeURE^*FP{yh8*(S2s*XRdi0~HC3W!i~(*rR;>ytO7_ zt&vkHQ42ejg@v7+j`LwWf6p29zT{IU>R(-1bfxU*!bA8QE}!d^vrRLZ_Vnt21GMV7 z%EBFczx^2v3F1109Rj|+)S@4A7~LEkLi|RexbICo`U<{^iMVcE*i&-*|KM&5kP>A;*pLej5C{DJ+nFj%VQqHVh}b@nv3BOEwXl|GbzB;J)+m5FASq@Ujd_`n&}VObk|GD+ zJk`2_AcC+4=Isw^3rVQYE+o?g?RuX-q8l6*M1$TK4=|tJo)EjHV0g+ozQjDIe;i&8 zeym;&rZ4oTj#oiI><(_u?XTigdvH6K85jnQ3#`?y=SOUWw5$>Pd3i7A{+OU2?*dzI zch9a6ZT%!c>qQF5rW)UQZN!j>S|#|EK)=_Gz@Po=Io!-w0r)RwAO{^f(*dILFGX&! z#^ja!pr#V7yI;h(l@fyuiq2yG9HT4auxg9cW*9K0yiyPzfe#f_3XZthf2^9t`4~VH zaort7jLq$mkWv_ImM#6NyyjVoep}Em?H`_9!*tMdN#r#a{W_B0Y!fd{oQ@Iu&DfR- zjrDkPX=lk*4&#PNy+86O-Q*}G%51`jvd?{$Q91P&JI!utQX!(JP>gm+vD32VDCLE5 zz+Qgmmo{RCua<(#X$8#3A=j>GT}+3p>t}c{`uM9#R4Tn#Rm{8w2~JOEzAAwz4m=9E zDM@@)*Bu|>&YgcXe>MiOv%@L4_B!e}QR&}=n;@Brw{rGEqLaeSi?-)?d0QSoQ|1qg z#Fz>Fa9Oy0iX9S3EOmDCl^9mEn=Yl`6=$xb#`(k|`HJ?_`G~Px=U*CWLHP!vIy;Jp zOkCeO<;$PKE&Zvf`-;3C!;9_9wu3GKgi3Gs$*Ktquf#*EE~rBZqtV$%cjc@!fY991Fv#RLR+8iA`jQ77* zG#Uc_pUF+YjF7+KEzr8~(4%uCQbMbN7r&I>Z3!;Ac~x!R*dQ`m-!X^)h7S(Xp|l|4 z3a}Nv)?3O8@%!kU#V{ujG;HAOnJR8Bp^a+!+shd>sy&XH!K`beapePGn4{t%U5uv> zER}nQ(=_So&&kGE4Bz=>XUp{}TR3hnqrW#Qgsic1f**{HiH0kvJUaj^L#O{tyx#Cg|PuH!(5%^|G8gAKlCjTJY^SS|pr=x9k>F(x}$Q zXCC>o*rbPh$jvDJ+a3K^uRqi0>zsOnH+_BSF-U0JAI$Fec6T+{=flGi%PAbIA%Iwy z@z(b)ohAZA%Q@9V-Q@zv)RV~9nJ~<8esV=hMj^QLGLrF4d8C6FE)4C(*5;6d?ijI8adhM?y!1*Qcrq4iaB6L)1V38fn^;iPdBYW0 z?Pm$dg~cB!giy7z3(+I|^NZLekbgM;6!&G*=i_)H#zBr&jQIKva%vEqO~q;kBP^ zO_E3z5Lj4V!R$w#RK@WRIoYHK$i7tC(slUPK`Acc;LA40triNevbwI0#piU9b7Lc8hIn4cn%~^aPXCbz}3{+sIL77)JUQ#<_zuN2cRE zD!1m~fQ?qga=@%>pb@qO3zG|&f58n0N%z@Fir|u{j zQ;|erMNOri)91tK^MwjM4M{vIC`Gjpq0z#ZFm>Vb+I^-VA=lnuMhHEI0i_z^ zjKd_UUHd_S5+i4gPC*_==P^$li)S%En^3qhK4#bH5oYE#bQlBmH_I)Mm7kKf}(y@OH{b zIpypbtJBdrzDLSUkD-XCv)eE2Sqs0q_;X*8*?QY6C`PfyMrB60u|7**e|j8)!wfT^ zR%j$DiFDI&`AkfwMfPNp;H!8}(W6Z&@K{7_3SPKL2o> zA0+KUjH#LKGT_@FB~Rn_0Ods!^^l1)9{9wKmO8qlr{PW3h|!$1dsc28jeKPHA22^m z=C-?Rt&dJVzgWZO_j^Un)G?amYEWx40qUw>-aAVOJI>(qW`ksfJ#>|WkY)tZc8y# zM<0tFP!DXK36%!pv7yz?k4b3cOVY)DCD8McOJPbwMTb%a47}UN^8NOu=t$oYzaN}{ z5GPh!R2F*Y92U33MOk)2H(2VDC#2 zU&e;@&JpD3Vs)(K?TthIMuK@wA|xtEI9KI>BxRqtk8%0N%j_-D9|AswT?y z5bjI%j|95WK-V960aKa_{aX!HVZ1An`$2+uQAbMH|JYE5fnq;cEW?~gOCbjtuDT?B zEx*5|Oy_#xKwMP0!jM$8;H-gZbnAX|?uRQJ>@dznbsASGV-g|^4^GR=?s!YbcpGUJ z^IPELfk~UahdaSzi?I;+;F~$p(|iBja0!bXwo1pB(%K-$CCq2c7YlgZGd5p08obmd zosPs{n^g-XfS7xE0Ck;hT|+kfcrs{|p>v6S`*Mh=;nSvtE+c)dyn@+^|UI73}T z&zN5C-&*cO#@3v7Tvd*F$L4Nk8Kj-XLdYrVBT;rF`8Ydq?9d2g-!X{GH-H{|2MO+o zhoHCDojvYAH}K4FQNIR?V)^OGdHbyN!!!T>O_fBOJ8Qjv;m^P`EjUsG zW%cAV1pIh;@}*}J@O9%-B&}X}I!nr5w8{#{v#mowv2V4bK!26|BhN7UXJ|h6P3Ftb zPpkii1jpw`gcx*+Xm7DH+Uvx7RG(yI$-ZG@uRklSA-_lzE4F7_ z6H#2!ZI=-Egy8bqERlP-xFWiaVcDR#4Wl-)?v(2MYpWi#LXBOp!IGT*>#dxGYP09x zZSlQSvmdx~0`|GqOl>$fpI`JMA; zGCz43DT^MRIr-^3vCZ_4gq5r;?meeJY=k|5YZHK@Z;0ftAdv~^F|;X6hy#@m;lDqD z>BSG^L9VM)pmQT%Rw zoaqg44Eh|WadjE!{LT=yhr$xs0f;J91hlJkv?d|xT4Pl|`JA%c_N7O-clmmyWDwGn zm3C|5BBDV9#+i?`Dq&c{*^Vwx{+m0qkp7cNOK(u@z z9jl_^^K_nX{mwG6VC}~g^;G9^soLR23#*@OZN`XX%baUT<-pI=_;$|F^deG7LjJ{X zlP^8tIF@Ogf6ccCa8dWt)$C1Uso@CLqlV=09`)5t^3f4UeVu%djwtl`9Ny+%-p2om ztn!HvDnpTk-cW_{*Erm5d0rSzR$4=DzsP@uurGOQeZ3WX)eokT1!2%XbkJBv!@2Ka zCX&PnQ}ui5o==~)VqKO&Z2gt6V&0>47NIXchxG`?s8> zOJF5N1|$w=>MI_k5C+PK_%(0_T@M^d4H4I5@iq(-84`X29XeN;t?@KS6nN*V zBcMZKd@X8U%3&l0D7OX-XL88zUBu7HKfG-nK0j;&s4IE@nb2sk_ zs8t-3E+!fn)ZdH=NlVLirYG%`09tZ?5Uoi4Yo<>`QhFNplIDkTapIMscjSid)WAq= zryuD)Mdm;&lUuIyx7|i*=Qq}vyD&j(^e%`Xb@2T7yWy+KBui^*cNrc2$|)}Nep;zh z?q5u3@@x20J6$Y5Bh0RKjcS`pqzV}Hj5F&+|7<-)VWul~X5f*#( zBnq}aZ4*An43sCuiBAY^+REgP+uP!45yib+dCYH?*TeGvzJ=>M0_WwWs{x1=tgAbV zz2x`1@D}#F&rq!_46yo6-!01pUd4queMtdaJy3LC+W#+?$l2p=%I9VB_xR=sy`EEH zvZa%`OJ|$^vj)2R4H|`K_MQvR;hyG_&get>SPdR?LbL~mX#eDvq{g$-QcAA5-6=Y2 zdPfF=ATHhYA(4QPF7ZdX*Abi9ziU!R_GFg$HDXKWt~~sW7&~-V?_2t-B8A&1YP9fG zV}A8%G^>)EMFx?0s24&2Hl-~O*y||Xu?%}G2&f?D8twI=qE?QFh*2ud&o;~V#;!Pcn>G; zN(SzID>HW&IqW0oa=l}e!6_(H1q<@0I4l@BpqO>=u?*qy@1Xn z-@l=qyFkqP?<<5^)88~LhI$4r*N|YD;OZ@jTw}26BA+;?F+r{uS`J9fq67^bTy-p& zQuTUoy}{iSh?uAM6`G6LzZ&Cfl#J$9tl~i$91bRdU02Na1;r z5D?*0GmCg7f$U0?A0d7=o$KjpT8c}ez(%L)j~w2nw)-^-A*T)cZjaMh(E;OcVm&4$ z?(>MJkfDz#$2pDtJ(QhW?_cu^XO2zUgwx6aD*yDPdpBI$3CCLlB}_VAj?rHc_!?cV zXNi}DqUZY9oN+p>2N9bUdZ` z|46z9hCKW(nvG?ftCnrIw%oF9+pcBXShj7O%Y3r!p5ABw_cPod?m6e)b8rfh?&mM^ z2(tH|(|8$ar}K9QnV)%&gz};@jf{8g?qW`8x#jL4&396f~+Q&xr)S zn!=v-eoC_+-F3pIq-bd11|eb1R0uCJ&Kel8IE5YtrSiQ3Tnp>(6E(coAs~~?DQdml z!BtmYr~C*E_w)?nqH~%9!`^Bt~99 zIWF4gAH(!x%!FX9kr5RPoA1?@(DzHCE?V~ZX_W9cqT9Bb`rz<*<qWtI*y z>DcLMYH@@8w^*+a(j->B5s!FRQBj|IDr|5FKPZ3a8O<7t<}41b1g0gOegLPe%~sUF z@!q|1W9)la*l+z1xh4Ov2`yGZ3h*&!D4lr87$>+zV~(OJ6$ATcWHhSk(ry-nul$I3 zd3Uso!I?DWdQbp}1N@^FM}v#{ReG;VX00s8KibXFhO7Zo!S7HPXJ<2_DL1%*be2cN zv~{#dE==~5cyWKE=&p}$J{e;C)|q6br-bN4W->WHm9Q#(POyI7|C@QV^ZWR7-^A1t zT+RFIY7ZX@o+TzIkIy@kC#%|yXUkhtdzo^@)hK(vA_MpHkt}j@{{){x?fvwuDSGVM zCzty%0mM@0+pU>yRkk=|hW>Oi_vN3gf%w<93g6@~r+sAd7HboHQwEWH!EJL8h2H{0 zgEspP?~T%0yv2o&Wy${>dHYfm9WZ&@gFD;P?zf@dufN%wq8wYP!J-_&EcI-hA&0%; zR6m$o9c|;rArk50qWVRE&Q1)-K4=F0TPn@gby^p|UnT&!4BhEFFQ}8#&&q zDMFec_;f1;1BJ$@dWW#%V%C>{i!XwV^X&O%nhKT?7fC}^vZFREKWA7a(mpfeCNbR> zS=$?#-h~)`Ws6YuhkM8^b_`S_PPHy?dOrUqB@GdIWxiAV+8A~VvX>v`kBE?i;DyLL zH~af|C9eyQUydSS$Y&!vUu)rFMt#>82e^*{4ZJOAgx-;zMYo+?`q;oB{F1bpmwZM5 zr0QfX^|b>k&jm;bdHyj+pGLSpB^QkQfpmKC2p9hJPr9tLxwp?!?w7-U3!Hy^YW|{V zW5A$;R^BpZ;JY6|fA6}U+t;oK4%m|>72zGKRHl~!C<$h;AU3kSFG0Dvw2K^+&>pzU z6~aOiSSS@{zk8o=$$9{2gL@NIHgcg?pZhmf%UrUtYsUnWg~;+yXpoQ^8uXybBxX2qhdI0z7wZ7|dMuCZ!oOuRsW$frUSZ!9gq@&GW$A9U$)27Z| z)>d#w;cxDyXpCK&Snr|h`Rj|H!XzqVx*wT_?Rxm~MA5YCg3Xot0je^nu>$|s4MQZ~ zyvbh7$3T01fL1?#27CSv+&vV=RV-uwRWDBN8R3ytU#=E?xs~RBz8Igxid)>5NObUVd3!>9tR&$fXhdTDLEup3guSs;Z|2Jm2+TmD;kov3Ri%7(DMthmR7Yht`m7_*zTvBTcVzm*@r8|G#Y zN%hpt!)s$m(Tz$;=EfOoQnuqyPc;%q<#UUx)1^pg0G$?K*WY>k-tJq#Tb+u7mQVln z8J4oIFXaUym*LsPJHmG={{u19)qocDo%!BQI#Qf;SPxf&WQI-5zLzhT@U`;TXgIcn zA9%7s`028mkqbZj@L+|v)x};^fx6Esqd-Qqc~?(PU~gX! z*Wb&=DSqS+#)iMD6qP^IaU9qKg9cZtSiTf}GYNYo=<0Izp1PPtJvW&@)tpb{fdk^k zW&{@3SCKP6BbsfRt~Zg^98K!MwaWOqpyDv8R)6IX?$yKkoy){VhU|{%wd6 z`h%h>i!}gBWnl(<}W&~Tkaj|4Aho~%i%ib&wT)NL{wy;?7$h%G#v;*T2bc0(L z*VJ(D^;a4elYnHB?wd6M?`z?A&{2EY(sf2fPJ8rHTOy+MG%asp}@`fS9oPSgw0dS3T zGHjTa=0gTy{Zzes_1X6<(h$k%S`JP zm}-nYpZ-s_uQM^kKa&lf*I$zUTsp`%DlhPiBuXm@XVcu{@Anp}e~HMW#gZG8T-3|p z*;wcC>Sae;Si3O`di2Ah@OXpu+i%YVfmt)Of3*N(q_LAY8f8bw&y$j`WXi5m<#YzR zf=jkaqwD?Zg(JyNj6K!+xcoG1dcC@QILi~Q>HC2qhQ2aO97{g|B}puG1AU+$$K~BM zb9zf~a9p75|LJcuqlQ+DGop<4NHT&FRkFL>y{={-fO5-7NTu?ba6gDn7cM9gnFDQG zxC$YjVb=4Z&CWd{L`ba^&d)g+;!Pxb+yY+0aIT1LvHGefSJHr8us87piDCgkvt{@v zO`@x@vz7$FRvF}$roi|-kPPgE1ak&=~hl{j&q) zH^PWq_ShTzxNFE+3NqEc%-@1mNO5i{b34QhT_{^gs>q}{ISGV!jrp66|4vAaiIGJ- zAbk%^hs$~sg6jAyN)~f0LW+Iw;x{sh)wK$YF_jYU2XYyW=fX~2SBj#5@z2b5W{w_K z4Gwpy8&~EVb$c6|*mX*?;##jmUowv>*>9@w4bkN=E`t)OqOj};3G4%6uj!HaR9{H_ z$}@CK5+o@)zWudHhxlgEYx16=z0)T%KtNFORj?F*7w)OO1f7zo+>0B%P&K-&JH1a7*v$o@ zg-8EfQ4KM9WNx}EU4zq{8DgP^w)jJ*~KyY+v7cDg#s4bKY;SeC-5#COK6FG#F#g{+Ffn7tn-*Ok^jh%6q)~S%BmDlP}q*u3a?Kuw%C;sL0=bB zd{Q73&1hpodDmDUJ{Ho;ZI_-BQef@`i)Pe}on>F`?A+0yKudq3cpKLdv!^Ab{4hv# z|Mf_1LYn(ecz5Q$7^98b-fR&&tMjabi{2h&A3=s-H#!WQ8;4zi;ri*s#)ZPc&9+GD z@jL#fB|QC9=BlYCm$jI)axaGxjxFD1%Pb2j5no57sMoUIf<>I_Su79OKRzAI?*vEC z$BcvXs809pMCVvS&zR&{B;d2 z;3tXjY&!xdx*zP3>vU%#sN=#0bzC`S%!#*|S_3nZQdK$6 z?-XW_F~bjK!^L6-RH~>gt@34pRv29NA1WQ9j1~S_EMptdV%A=);nshZE${NkDR&85 z;i{!8XT#qq&khgK|H`TM_YS|JTa)};oeU7tFnhAV>GFx{Fh$B9oVSqlwGWZwh9`?0 zEb;3zNR)#?q=A)RaG4*}KB-3z2#vmyOEp#4Nb4tM#dN0RJdRXNP4gaREcvPikn zr>dgOt(++U>e3g$mNz9*9}J7At65*9^ZH z(;8!P4>N-BX_P`8QVnd17-m@j+!trd2!@2} zDf0WUINN{2;Ps*$4;7n&bMs1DdAVVYTvNFvUk}QKQ7?|TyI4GDkDtuXdWJ^FcJV^apzsR*@V z;IwhdH=}Lx_<=-Kh{o@U`wkAxM-%CTt&$sQ8NxV@&ispgF}OYXRsJm^C80~vj>CU9 zR{<%kB>x=u`I%}3SDrsCcdA=o2Frr$i^f2HRPK(KG>c0jBD;*j;B+<16&t+I!znJg zj>rd^A!LUZepC2eB>|o}&KmA8Y=mt!jg5Mebv32Po_7PAPHNn5xoP?=`L2u4SKXf% z%YJMio(JjQlN?*y&Fg9PF`-Yg^f_G_W0uR^&{pVSimdfC8xR0x)5s${BG1jT6^DGn zrQMY{yNZ#5pJ;z=NFNU&itrMIemEGBs98q-RHcUgi7SBN#^erhwyD+m{dZt(66XiWWEkYP%& z644Kq{FCKY1Rjz4OPn0H&~EVKG+I}4tVD>|y(J#C@J=WfB$(inLo_IQ6#fAqEMyo3 zG4efy`;)u?#tRGT0EOJB2&S3|ye~5NQ?U(2DDPfVN4*Ojy7$42{L#m=85$wN=qwKx zg3GNJN}|jNr7_{ zkLMT(5zC*vi{k!~0yMii^fCJYKWH!N_^=RgMki+JBNjN#EQu)*L0eH$d;j0zjg(Z- z6x8rS%e9q}<~S(t045FZDiJ$|n&-ieANk^oT#MF+3;q$wZMsWrv(xp(qY~a!r=)&h zI6H^4my!ntA?s2fKG8~5WVmD-qes=+J;@{-MhC}WF0K{xO4MaQy7gGhuGUZW3NU6d zA^me@ao-m3`9{`w0nu=>Sig4t;T|!4QN}sD8+_x#Ba+s~8FZ7nDJ1;%P;$?-Vc}FI zcdW}_zETtVrc8mq5dT>yw*?05KGkMM_p^4USH{dF0UT9e%|oWhh?~Y~kL3|EG6BL& z)j-&&(k~(%nnUP^e$SNjlb?cMlQt+-VFQ&T1}OFqb*>__u@@iq%jZ}hZCeQo_QSGK z#p%>I9@;=9K}_ZWHt2t^R3EJ0aeL;E0VCT41ceRjDXs`J!t%v(lHE0{rqB;LBXN8KO4$B8tZA%5h`_Z3FN4Ddg*k z=Bk`wm!I3yn4w>mG$7-x$mh1?x4A06N6YX(| z2)BE@=Z*k!;R8AIm0x)RvEOUOD#sHr!CAZwEnbnw2I)YwtQUUYsbX5+zFTxRn+s@WA`F;X!QAi!1)SSq0*&e-I+lmFMY|ASB- zfzopzqqA&4Vd6iryV90Z3s<1F*)*_+w6C~=ZCF$nBUP(X6ta^6Op_cdd%UA{`mppCpjKh?#E)3A^NIh*#&aOZVzaIy2d# znn7lIJb$}IZ^~UR76uA*;_vp_OiCo}LL_eS;D?FUezE{(8aw8Ft&{=F^0*fJ_j4z` zB%eBSyKi4Ts|6LLiUy8L5zIpKzBaKDpW^#QACpXCzCt(HGsMZN<@B{-6U;8@J0`a1 z4>X~Lft&QxQt^Nx8;f22w)R?sD%{{sNrOo6@2yjP-a!nxWo#(*+QGRAW(SO5dTCPM z%YF^!2Qu~Eka!Y7vDB_A-yxwKgr zK1)$aPb-oae&w@m4)#W-fC4nQ=VAjbG8#oYSNCUF%^LyeKhMSZR~QK8dD$sDlk`^Q zk+ba?A@@Ttd?E7%#o7n*gB5ZrW~i=BWIQ9Iv(w=hSb%^6)eR#irnQ>KnwcaIet)T2 z1b-!pbkm4}8g_EuEkm^Km35ybo0tTAy*k-z)oPR2h~u9*d*&z|jlKv<(#x*SWW}>& z{-hDL1qBosqAE{xhl=5Gcvn$pE&oj`iY;js>{ho+n-EcKuZxp7bGxrlFlJi`MmDJp z>K{(PV!iOj>^VD&76^n6=p7&4-ZR4D9sk5Mm7w$0#}I|T>NGQXXnCi{@@HI<_d@3Y z-ABwoc%bgsBG$0r$vVEf6T7wDoyn}?peIyCFvcdc^RJ`t1(Wc@&@lA;deo!o4utzR zBa9#?ONi1$edzn zTN{H?qOcz88U5aHhY3XsH}p%4k@W^ZnwnV!2?9l&N6#)nO#8!x7y1ni_|l9sf76F6 z*zG5= ziAfsNfQ%=3J9m)Z4>h_za{KT^Wi0~l7HlJ_cX!;w3dzuJ(c6x`*}7dVdXa$c_CW90o=)_5br}mU9yh9k4JqG`io%tqbS6i9R|W6 zH_m4SZUn{wO?o8mBi~&5#o_o{6zjmFX~MK%qCGkERdUv>t`|Re}y)!J-a3nG@1=8|`H&}2r{FFLRFYUm3Lc~GwT3P5`b6;-r0?&ZjJ4PU2N|7({+dfuIKg)}v~+**_y--cz4#IN05 zZYfXIVWU2UrNZ0d_uM*wtU zQNki=66H@SPx~2$Z&RqFVf=GHASo77Rpdegdg9ZEvlN2AqC~sK53L!cM~pYh9Oso1#kgr?@i@LZUPy1LPN;TqJHy5oEDVf}NC_VuDmplJ_U60$A4&X>YuA)GYos)jC*PfH-=4jYVb?-LZ@25+Ux!x8D%R@W zv5t799Z_E%cnC>jlrj!n$R1_V2v>?MKpw`_B=&fRd_lB+hm5Q)hgo3o{F|O^ba}jk z63OXrpoq(J6h}<1Fs+X*Ky97FobuZl<8>EekEhk^5EEyy@*UQKBlIryKU6J*c@Q=h za+OKzNkF!#t?Rd8ViB~=%tTGfq4zTzwtXe7NO18Pz;J_fkiyCxUWm*;a@V76E%MGy z)mH2F;nwPPIc`|oBP?jW5$qDZl)6N|H!M^PlHI65oa`N#NuOP%UzH62>ExCkG~Xf- zgcMCtWuI1bQ+)NnR7&RO(&Y2BO)xBCLkz7k@*Kq&8X8%K1CC$>uUz zERypCmq#pKMFZWNiW;@B4oa$SR+9b|b$XRTgF-9B{PxE;!cbRa3^F&4q#-musRY4z zZ4T!~_WBbw`;u`OjbduKr)65$ddPPr62)*ZNrn3n2HXCNbQ{0#nFqMw8ShDrc3 zf@24NHD{bqQooS5w*N)|hh)_Y!^#->-BRKHvfk#Tv=>-@8(J|YU`o4i_|v(jW5JZ*uG zo|qcLOGWMJF6^5zp>#71f5{C>j?ch=U@b9eYK}Mwe=qeK8%>b8HeSNY|V z_lk4!wJ72{$54Y~j|)9p4wRS)SE%Hh-`5NY!M}ZT%Nq2vc^XcS?t~-- z&Ax(l19N>{|CmEKDh(_HoI81a(H{b5E3Q$G5CZvuYMu3=9_oAK2qH#WC^t~}=SRf3 zx!gQQM$AcR6yBp1M*i@0i2RrzhNiCD{Y!LNJAag+d4NaW#KNH^|5zh!F%dia!&1JD zg{0vPzy0&exz=+xEWo!*4rd7&oi>nl$RQ#a3JwinD{sCqvNa}SiiM!O=xUqSJJz_8 zmWO!%tI^=LB!f5h{tQ7M0;*HKISkHXVxR^DO&T1|*eeUU13$0G3 zV`3;fE|LREZuM&Y9pxIc3S&mn1#~x}u72*U&*0!bA+c(oLl=ca3)@x%KRnR8Apf^} z+K$E}8^Xu$a6>$B!8zFPb1eCtD_f{Gn$Dwm7Kr$kQ4%U9Arnxqa|&z$IN#*Q0YYCf zk{a|04hEg4qd#30`FFMmlW%an@JU~{IBSazi{WU51Z;Kf?Sa9CbAv*bnQh_o*E-v; zBv%t=V4$J>7~wH*sSm5geA-MiPC54rYb>1#t0l^OTOZbGrnn|(3#ezFbd5FS#cpaG z1UK3F;nP<}9~031IY-K}5)a*fpUu3uNLyudOP9A^B4}%&rDNJ7`MiAkPgmlH{&(Q< zTT#Fo!{i983Kz#fE+OlQlhv3L3mo(8gez=kHL@1`-_WqA)U%D5pA}&n_OK?}JK@8I zDAbzs_)4Lp^$mmpLi^BJ@P&l4oSbzv_qdMd{*7q7X9tdB6{|8f zy~IQ4R(K2UhlIh7!;l*iid{eCi^~yN_e2Oa_Eiubap>aD`a+sIwJgs;S^JSv48t3y zcA_oCP)P+w8LMP;rm#?~-v}Ut7ntdw()`&8=h9Q?tkNMod`Zfj=zqccI42SgpY{5& zhF{HJYd_y;>&Gq7SXw=Pivn_e7~p{%AOdXL$(@>C;@d3By#XBgS8;RU!;(dl)^uAu z*@!>oG654F=L=*#AE*z>H&oUU@GHL+KGS}uuq4z2YJ5z|QIKwtJPGSy5p2Ghx=rc+ z)jR&CxI#P&SBji>oxhsR_L%|V{SZK7f-_|7>z~L>cr5Shxt?!+$f2TY~CO$Fr)=)ns z{CiDce-{0rK1*_a5)+U$pRm715KQ6v__i*oYL43=GfRkyk@=N;DF(aEgoZh$0BCG-pK+}nvSP6qIESC_rT zq;&d=H|E`Gl=rupUjnUXTRd!8f=29)xv(j z3t*Sz$xj=3K&9>ridncBg3g$i))Nk)dCR93aTGFKdf-VlsBLs3{_`)$Kv^Nh#EH3t zpvIc!_uQI$dY5D2_gxR0qf5oFy@W$_5YuG!#J|x?Xjm1Z&ZDp)`1nC?zv-k;v9Wp&Gl*Ds)~_um+BC`oV&m)*7GUtKDzjG)rN5mcK~PA=03z zGRr0IgyFW?B;HuEcVce>A`bKu>^Szc^x`|{0+v=(UxX>n+yLpxVmu94(_&jS{{ndV z+lzQ{6xbi@Ezu6Fg>dc}??{hCM%j#yG3d3s79E1eHv}s1&Zf$P>3eCA_f*SFe=7C) zabLcYn#wJJ(i`V!g|e3pn8iQcZn(=G`9Y znX)P=a1SAJJmm=ufTu?H8JV^*^i6Pz%gV3(Qff027i)}j=gvN@Y3s!H5p7kY&MTSE z+eeSP;Pnq39}(Wme4?P=Iq}&_RR9)>*#XpwtEjSq5l7-e%g-KYho*-4e1SPsqMt&4 z6CHC*U_PLo{^$wk_mb`*eP#i<%*UZTWeN;M_0}S{to@G8b5_OVmO1D)?0gD`bS;1? zf~ceeuKyqxMXCHrW$3XXn|T`#WFE(_A7Zfrb=|Ph_@-r1{CRx`3Ex+<7$Ky^J^z#i z{7__=LR~we<`y@XdBLJrNSJ>%X>#)Ka->8V|C0T)gqujT<|yhD4g&Y`c$SAhG-~U1 zYT6&AanMz3v9<`wgTf;CEN>QheDMeGV9te}>#{HnX3}tjoe&pZx_QCw&d^G=Xp*B6 za((fBfQvKhlCSGJv#kVUU*UjBEz_7FDe}v!_*y9>6!2L<_=%O+;f5m7#ym~Lr0_dAV4{Bd8)7KjYsi&fP9=wu zj-QJ-T9xqkdO=KNzt3|MwM+LwQ?OR?rB}`D&@dz>Ud5+>!avg%A&QOX z5yNrcv;!f8Gnc*>YUB1|E(c_>>Gxx6*_rS)tZebs3;_&DBp*6|kA}og$CfiW{SW>B7<40R$#?N)>Bo^NIN7er`XQJofDS1kJ|mpJ@trMDllU zlEzGnNE#xgD;y~>-mAdmAe4T$|IOV28`yRbCeES1 zk$43;i+~=RECTKmFm(55X1lW9dU!ho;G7a3to9waysY_j%hmZ8&7GB~z(Z!^kAgE& zUNN?I?3@_I8{Kh3tHMcy?tug~&oN#7b}@fN7shum{~geYa`-f(HzjcSvJ-BR)U_!& zw0*PHqUT3pGRh1MVx4#b>x(j1?BwsMSp+=2ZMb+Kbs3h>;Li|{ByTo&4B(?plfWZYc$6>kEf1=1K6VX9xK8??A=JhSm>2PGmG!R;SNgz0{Sod5URS zULP7eltzM&q<$oz;kIoV7VpgJ3n2fUi;sut25jJ+U@CZ$e@{g$tw>BfMlpCmYo!8! zEFT173HQlwxp_Qz``X~?JGP7-lOTMmtC z0&ZOFO$KKjP_X93mE2F>s^ICCgl^C2QM}7o_S)-N z912PRN*V{FfbEGCrpX(23>8auB}{y;0RMc?FdC5%inDYH%#(WaP% zQq|v-RWOD;7q9Gryc39Tay*so7wy{(M^YEwu#`dvEw z`0eWGVG9LD>MCYh>pGWTp+Ur7l-KjK>n@R$?4V#w4z5Er&BJ=>So3yY$Wd$|8k}#q z^%K{193H}g=FZ$*W-1-vwHptRMcQwi*PXFv0ufDx9~msskvtICAYg$*#^6~{4-5x` z%vQMDG3P|!G*0$4qrdqAs}`tbl!OIl?IyUrw)pOT6pOFWBSX7|^dZA6V>SOegY4eO zwrK85JW{Ugg_)th_bX7qKRCM%2-|0I_=%OxxTi4ub0#>02N)7GzOoQ#t-ctwlM~WO zdy&sHWO+BMuNj5Srl4@Eq1|C;laj?C+67_8a|D0zzvITgdxVS}3&)s@x zWbF9TT_Xto+Sq)ls=>^Hq)C{68IBw(@FgCX|)KgQn7Qo*F^$^BsFBg=G z)lB8pwnzHKB)_V^*&GIlZZbN?ch9wq!je3jOElfzl>J)r=i8bjE|iQf^eV2o^7@mv z5CxT2=9hMoD4L%Xv7c#N`(cbbH>f_3 z@?y}qU`#N+gdM=m&$R>#)pr{cOEJD0pxLPXwAe?49EV}gBGS$)J);VHuR0a8E=jJf z6Z8kgksKSA+iY9D4EwV9j&t;2;`qc|SJ6V&z}^jBe}hwVnBE$WVDi9=tW)Y_XCCgo zX@>T2SA}YGd)&#x)X@l=@%Mk97py+QUHjj|Lsvv$j4TSzozZciJ|Gw?>5+>TioH1- z?YIX5Y#RM#<92+Gx!>K?sPIza=kMof0sfpreY|+Zzz0RTDd6Y z%7do@i;&WEM7ATsb4;$uC^*G4s(Fc)t-vL@d)5tR;~yP-pCwH0nC&u*s3wAO3*(nD zn`$tLa6gNKu5}sjw_<^FO7Pl9f7MV|-cruDH^Q0tkrEPxbY1Y~RGtk#k6VE0@s6S6 z4Ct{rcKCSOxlF&A*GAT4`CcsM=f#YFf2d6ff!^8xV30>7WS#H`0CkOZa>8H_fjerYPW?Ut zINvu^k+}okB3ha4$90e-^Lgweq|{j4FVrW?AdrJWsU{H?w^ z1U#%F_F0_(++4P}c)JwQFAs{{=D*BZc)vxN3GcZhCLphuoL$9s9I`0*2<^sI3yp)1^n5&Bmzyk)9~Hfz7_$EL881GP(1wFc&Q*{BUc2U9CJIyM7^3S|6X zumDR@a-uwpss+~Zz??+IGWg^Wt{LFUGo*Y+u>weR@MR$K%Dt?iE9sTyFd1diPla7%EeAZ`x-#eyS% zoZc_uBpJJowIfMqJHT$BxiI1b|JM7K_DtsXrU-(Sy zXKt9#aCgM>;0~Bloc0l8rld7=1s0rXVV>l$@Iw3xwccjLADo_`>DS6D_j#^mQ+$8O ziHoe3Tp#Pfyi4TY(!Uqoo;?;}ZllRkpgVg#ds8<`A$Nb%xXqgdmy76~Gc2lE%fxUo zOO~IVt(U)6RA8{uTeO)w+Z(Z-gOS<%7~U+k@mF4t`m=#?gAM*QLo>$XeZsTtEz;#3 z^$pr*>gVHZrrpLi;TL+<3h`r}%1PL)Zsm2`kUKOWfKqKsAN#~pE|J}`)qDH>X29!6 z-b=h`!LCO{Qz3r)V+Is(4DrSz{MLkm1C{qm=s#xcnycTV9dC`K(w@uJwB| zmPu>!WkDmyKn<`TV*$>p*B;>D%|SM|FG7~I|NRl&A|eMmyObUH<7>m;26(`BlS#|! z1{xMSr*&HzUxJ1a)?jWNM4!@+@dotlk0?~EAoMDK{`gb%ko(t%!Pns_`Ji$K7!wq! z)=~kK{W8=z?YF8;pzLi2vKxjJ&1L1cQt%5j+Ds$Ryinw%NXjGyo13Hg`?T0&Ab@~O z$sF;$rd*w)*OHH293px35^Lo_?SgoHaN5;Oc)>(&IpQm;9DJ)ON?7(a=1AWl2X(KA z@&4n{SALtZT(0r~NI!TQ^+W-2{IjAP3o1KjPuRp^a&d1Y@eLYnja`(^b=Jq&i8H?d zwI`5XOpWd$>MNEWJgKp_?5=c6Mp||f;yK_d=w>66v|Pj+yH}H~) z*c$JVQU6^mT2xWb8UvyJX(sPtkgfkQ+~EP+m3{ev3DvX|_wQ%uluLAx+9yhAk+h3d zfGTR#OwNtPfqBs6A$4-*lAVjrK#`}e9+yQ@D2PC~M6`IHL5i@jv3D_Hvt5yp* z<ES*jVO`@OR7blc;8)kR@7%td9_%ieq4)J^G}#XsK(cR zTE(2Hfn$RJQn#b`Lwt(153YW6S*bK5{z50hH6-Yo9DwyUAe=P}5zzJY;HUZ?^x)M` zn2j{hR{%oX-Iqz5Qu=>r^G|6(ZK^NI z8|CgZs*=+rPP5mlS|~7Z&BbNd-&Yj+xgg?IF}FbchzAMQe!=<3CMticL)@ zNlD#DbGrxBWP&Nj#g!>ygPX~vW3(^VEA+)83E&#z3e%XKhce<9QC^O3BFvJ(JKeXa z8;Pu6yhz^PUO=?iGuA15HDp^29dOqU8)=R`{cRKT0YP)yYpN;O&eT6ppvQ9;$!A{c zMS_)#v8}bD@u5}VdvUH7)9nPL8kNgAb&Y}H^}(f;!KV}75yr>OUD`BH9Huub7w+R# z#G=K`)v*nPF~OoVhk#ZYeqDpcx_wrw%pL*wS@_OQ;xTnQqpe1+0hFI|%OSu@`tt4A zf*yPEn`iXTMBzePnKRGA+s#@Qk3zem3G_OT;ys(Tr%DL9z0a$9uG2r|K>H%xS9yZ4 z`u%`B)6T?H3Fis3tOPbk3vh7Sb%c@fwxFw1kiFV9b-UUT-{mTR2TZBkkS7K236zNi>Zr<5@oB z)Ayt#Ui>VOIjGiH9WOd2C^yf1Sy`6O5A@Df`!bInKYt=PO0c3kBcOi z;lW5l^$Q^*hG5IlWf(G_zoyUnjn0q0&{UMuUxvQj?g@~bGYl*l|sWCTx~ptQ8{C8E{Tx38wHK${&EW*3a_~v&+3~9UQ1#B zdeORLQ=!mGLyf~dY{w&Kj8Bilt69NcV-=dN^7Y4XVU{*>n_9vFbp(DqiiKLM4t)`N z6kAsUBzmAMxe(fE`4_lSHxwCAt&N)y&?_4|;3a9~*-t#)7ofR-IA(7Km0+ls?AC?G zgEobUxf6p<=VxTUzsP76)bu!Pmt+H&D3w3Hj*l_@2abQ1&VWA$k$4~c;CRImvlK~m zc-SuGUnjsuOw+5dg~-Nt4$Ib~o#e^KT&Y{Edd$9LE#Q}agS!50hL(uVwP$`;;Spe8 zEt8~Hsw0qsGOc&F|50-3S|bU+CUHe$`w2|_Y}eqSf6z0-+EE}G-nf2Q={kkJ8QL0n3dBwZ*azpTl-FVvQwM> z9S>%Fe+-S*D7#Q_@~17JIU@B>$USSrga0$uwT4SNww%$zk}mRVx8nY2Sat5Y|J&q zFli>j6oBVJ<6kL8p5X^$Kw|rtId@TLcDg#7HXn$iIaY&fc7m zxjAkAVZMWn&=Cc~uGgmR{M)5DaF;E2mAA!)RKIIgKmitBvSbYu#2^RCa{$5zd*y(Z zP?o^73{YfRnp^;5y`B4Yb+~`K4QIa-7Y_Ly^bJw`yc=)p%;sPS#g>{o6Arf`&bU14o_Biv96ZDIAK&VQg zGX3utW$!lavIOZU;e`V{q&LK$u-G-~g3Y(~wQU(T9S>3vDSu(#yHtLlr0MSelbFyu zpDvcS&8ZWE9yqulYwk@~#tx>kqb3-y36Pkrd^sWc>R*d?gC$cMHmu_{^S@0!oLo~i z{JkD9Olg+>N@Ns-mQcChGIg}_wUNc<69z+vu6y`*3wLl~zJoX`xgB<*y|z9_%zD-K zs86R`V9@Sq)gxz@%08XY^_kV-x@a3*eSt6QtqVe|Fwh?ol3lX{5iU`6osv1cDWz@( zwkc*VUH`DKGtkNW*NK0k01-VCPo7IVGOVxWbRBg!*%MhVocv-BhmVsumY>iki4w3X@l&_?`WsX_lI{{Y- z`7_7K4$D;J8A)*b^_FZjE#yha73ZAM(Qy(DaEemIZdb?_lrEalX5P0qhb}>i4}5hs zc#GhHH)SK4y&}Y)N&ZJ}??SGQ1AkM$vWE{~!8wRZ`ikE6j8a_ddUh3AAf=kIOCy|^Ia6RkV1CV^2OVu za6se+Tm)NmI{I?`82V$ONEqcGg03ccm({;~s0d}_W9o*2T9b21LSh%StaX&@Bh&Tz zS=03dtNR#l_c}DQDT~Lb2@-Y9;3FJ7g34sMY=wq3N|sVVmwA%|Khu{vFeyIbQ8N?D zh!3~iz>Dh5O9?i))iI1Qoyu-Y&DGUqvn8c{j~6$$Qsa(0-tKX&WhxfMK*6>kRM#V9 ziAZ|Hs#jQyC806sE2h! zgc5`eBnA|G2DIVzdqx>XA%^w@3O7dR+(oc6g%!+1HZ4Y$G_>AgGdORIPP~iTR5L4g ze1dDr_svt%%nHbO%Up52zV=_A%k=LLoWS()liaRziABAQlXo`zDu^@d)VKi%PFPoI z-fmkhXL{C@;UH&3fvY|b8kQKP_uwVp<)DfH zd%dfSQiH?Z1BER^JR8m$%qScEJl`RGZ*O7n0 zi{GO^51Lp6yuCT1SeBzjgW-p>uihiL0$ss(zgOhgw!1Fln1yyJS`D`6=&F?i-$_1B zmp>P2hztL*&)fRX6TcSq>bT^T7hglUQlv^!9{IfbOdmpox#E$k&o&kFe7ZhLrZE`Vxvh2nv4h`H-w=)v@cP6{ z%K#s6Z&qmKHB|w&ou~)h>JAEP&7oq3-c+ZrHhtI@;W+GmeSXc!bD52!?zzCk7PaQF z`>JdOS6~Daqe$+lK-2g5`6~ZGDA)*L z+^(t?u0nQnO*_KU$t5>FYVs8^(|9QtNu8SqeeCwfZebstnv0k~XOJ)%Q=9XVe_p46 zJoP@stp~(5^^Wsxv*k9A;+iyEJjfC|Yz$?6Ls&C1m?KtrL>z_RxhMGkt0k9)>SMC1 z!ue;r1&1vT`Kq8CBclMNf0l;Cnhs9_hHY1f-{CFJ+{PcZIsF-+<&q!nwWyCoQz2uY zZ(18m3_r#Y_pGGDK?Z5C#FFh*m>G&x1PQqX?s1r~kjsy*QDJyP7vHy6sQj(^9_Wzn zA6rcO!ilu^>rh?Imm9<}<}=E|6jMu8f?4+WMaXc!P^`QjdjY>}8*2!YRKRu(i9fqu zs7|leq=sY&M$3EX=6K)uGR_Xq&?VU;mN8sv55iG_J+jwBbD$v2xi>)%hEd5;NW8X1zFTJ0sG%*H38J!&t&CHn(Dp`YasEK;jxm34 zVBVX-a$yNhAQmGNwgZ2MGtW@LR-*}?4GV-9;#o{b>u;F5kL;gbM~nh*&ufJjMtoL_ zdVXv*>PN@flF2849Q0mUFya7Vvvp-_hoALhx*{PXt4h>nmu^A=Oq#oB}5mzMUU5k z=pP^q11yDh>rP9pB*10yW#2RlWTOxy(h+J*C&0Ue?foy@*QW}IDmAHZf{ldQPtJ2;0gQz;OO&*;jGRev$D1QzOk9&#GfHlC zJ(15aO&Z8uiLVNrJn_KkyGI+7b(h2G&)P4UnBL$0mS6bPmng$U2YCm;vj7{t-i_@b zv?_(09ZkHl)_neNQK*fCji*;u30KTaSn-y|lQU24wKeqG?fZ*zG3ipcDsw+nq zgbsF#*EzWDLk2zq9XWwD!6J|$GfcK92kq=YpTkx|-hw=!&$wk)Z0D%3EI(M>NpmlH z8O^=$rH!-XO1tqUDCoeO36r~b#=r@3W!e?;P%k%**(f7IJSX2k=)5sRPeQOw=JAd_ zID8zHcl@Ic3FC?_&t2sV$^>YUG1RrYflxl6+Y04KH{01=@K4Lp@eTYq!wB2X^HxLU z95-KMsBdjxM+6kf1_|m<9ok(3&5C#ZDa87>3LLawI5^$xHh4bAfBhASqH^?yd-k`7 zO)j)fe{X&#xouLhDQWM3Q6I>4f9zOuQ99o~)%|eKUK&jd-Tmb!>9Y@>srl=Rc?yOb z_H!K82HFkz!!+A4Z6ByE-+2Ardk6huY?`P`z1^RiQ>^MtmHqmw+4;|q;R1u6xtmJ< zD^wQEG}CB}uZz02**6g7H=-g%_#7Cg3y~2IJE&a8SV2q=1U{bEv(+z%}A% zcNtQcyBT(WF{s-{i>Z0i{=uD=!Db_o&en*LHgT|-jWg{F?(aOjc+KMvoW9rPb3xQP zYoE%0Sl#|0Ww_`d2LPT0Fun41?W_ORzP6UuV^6N{Y%_#+cANqVgTDoDBq`+;96U?Q zDJ=te!K1y}eaE>~4DITFbMFjjaI|VgT6p`9G*e*>%ql&1Q){kR~EG7eC_WLvjIf^aN&aWcqM+P|!ghi{fbX-~~GC7CXcmXri5qcHN zdbuml2ee<1pWTIm6Q9FHig_hx2elJ5f7Q#HgZzfoYJVUi9Y{AeeQz)!k7y&upb(Ag zHvy01jA4ut!T7NF3mE@V8`k$eP#|#-;PDO~&_*875kua5U0En3SteFY5q@}xjVseF zQNxtvP3$%TTwW&DqH4b)60jPU{hy&+gUiZ?C>V`gpYt%BjrxkGg#jG9qo587)B%Ay zKu`w?YM8j+>Umwb+}LRH*WmJ`#y|IGDjtSSdc8Hj-lE@Z)vvedSN*j>DCA zkVqPR_PKj)1m_tHB9pHYE4e`PRQIQ!I7#pQv!mmaE2BQA`UT(>Lgo;Na&knrQ)v!o zHFrJKp8DT(=(71Ko9`IZaP+Oe@R?tw3>h+9STNx)8#VpZGUz*DzXbiqU@%CPYCK^-0|x`f;%{>n#L9kk zRKncp>A)Nv=(oSa`Tov@-NQ>(Pi;Qlh_58Kp{lBOdBb~t@Rfh^JEPDx zzhU)`6Ndy!<4x~GkPeX%&NJvZtuR&HTEkzkM4<9~)?hGFaKh|8>wH!jM$RVQdpyF! zNYtDt1QC>sfER7(`qg4Wyow)UUtjcmw3I}7+nz?{1D4Y5#_`G}3;ykU#gqmN90bgX zJ2y$XcEoZf@FOu1$T(D@{Rxf^$_DGtsQ>{{v%P=um9J@>soJUXK?PQMu}?W8Knd6z zAzcC@=td%uDIq%l2|oh`BlL{*GqSG-^n$pi)pnO)Bu_x=6rWLLU>4hyd z!Vz{W7-CleBGi}o2~qpU^&bMfB1tO%0-4(DW&{{46UJP<-Jb2Cg|dCZP6k6U`$*oT z>PwxXkK~8Lt0|`lfo&=j4eISS@DlpEC}Uw`b&Y=G7k-^iSI)mnlez(AhV<=dRe_zT zUL01s9Nxow=Z@WQ_3nq5)khGxU0|cZTwbxtkl_LZF8Q&tUh?N~n3@mIc zO6a+EZc%!UI_6_t*4|3TTiOZUezFCShCs=BFD6kGVGz&c+`8pF%V9p(^RnZ~-7oE5 zc+tkn=Bde;#--SF)s+37+rR(ie~=FZytp6-0G?s^{qKMI!AemaWNWB!`_YX?o1Ix3 zFUBQ6t5{(1tF;PumeX+MfqCil850a+)GBbzDGLztcq7qJv{KAgdm&9%)PspX7buAU zJC;w@RW?x(X}nX|UEvkCa&iK43TM7dF@odwtU9ERPNSD8DQ!*BFZw!;2aiwjgLu<* zQxg{OB=S01)Ee~Y;5bJi)fX6Mr>?$0N>0%v=xKD6*ZGxvd>W}bYBV*CYGrltr8m;z zwKukho%wpW&ST=f<#7ig$1)5Kj(87TSSQfmExE!uIw_&Jexv9|ea*lt0(wk<5aj0$ zN!HzZw~Bli8c7Q%l=a)xO$Y82?;Yb`_bDtO=tSec&0Og5Z^9tK&jCjLOw`lZv4^YU zSXb#}>;7OfDE&>sxySw?+8K6*u_2PLf`nZP8gFTt`US5uKxec zpZ^s){rHn!Mr{e%YvL|wJofECm@AlOXL{?ex@ON;TpXogyO~R!7Uf^~rhMvuh71=Z zGzS3=3ZuvWcw@3|N*Wi1-NgzJ=^v9cvt${oz;S*+^F>S*CP61*cckdCBA%FnIw8e3 zQMyiM3Lo`v(Jy8f_blbhng8(a%(eg2**=@%)(MFRz8ct(MT?i;4n&?=qZ z$MnSM&BgVNN%KO!G!XGGsq3_A;3>~qXjOrK|373Mi!9pl06UPC726ud?S)s8hJs>b z_+`L{^x2U%KChrf@}7mWWpN@6R}VwNKsK;!XB2;dw}OP-ORdo?op2U15(=GEeKqeY zpQsO0!XcCQP=ye5Ffm?^5D7a!=7ZyMscqzXVnd!CP8XQa!3q-mam*{!$E|)cq`P(y zTOmJj>PU4sBz(8Ry9 z-L$WD?jWy8x<&yv86~FzIyyL?E-mngf<}JH|HH%NST{PTkZx0GbG-I5Ho+ulvgD3|b$*;IlqD`Uw*h$jFlV^|vMsOrP=LiQ{I6_FIVbCaQ3xJxJxy!Gn z#h2XJoaE1f7S_SNOE1_9vhZaB{{|Y1ZDHridY6`i0O}KrjdHY0jLg_ahS>*Ug6M59 zst6L}X@h(U7{HEqubXh^1>j~$-}Nb1Z|8vf zLm)vGtsK<&cYTFW&AV5xI1&t7TH&<=C36bt@Bc6VgYNn0$9-ujcYWpvu!HwHL155y ziT=V%FZt}!Tz>-)G=xlRi9bez$*)p|3>hwHsB~Brb>thw_^)6znw;&;^cG3Y+wRUl zfYp$mGi)xfVNmx3)g5+_5+f0q%MquMjD+b>QD*jwQ?31CgwBrm2Ajjrn{GaZi9x)Y zsCXgd(GuISf9{IoE1RcU^UN3nhXxp)e0OzqH)XgeAnyQphM^kMS2xZ-lNeZ!J-K#? zN#!RwUQ^>2SA$&{uR09LsHOc|um1o4+4~bH-Hzit5RAC>|Fu`W6%QLh5+Ep1A_-7b zOO#|Sqs5Zdk|j}=w;o%bGvhhOt+Bgpw|ZvUGq%s1)5q;@yW3hUQQOS1Nm;gOOCo7& zp%z=RWKm0776AezNMa{J5FqxqSJfYL@6C*iFCz1=S0Dip%MGC3e{bH*$jHdd*fMY4 zwRu;J#qtYzJ6*Nw;+yGeQYPrCXGjZI^fJ)M4Pi8-4U~1!87a@%e!2A=+JtFPcL&kh zF3?2{)0nC53pBJ_Z6vHChiN&qlN#mx$|ku!8mVLCsi(DD!V|oXG)G>wXd<`D=#^HL zpN)@o7H$@6)y*6u;8M|zX*m8O{%*eBukwE-UH50cZ(Q|X1?PXb=)xqcc!fLzqkzFF zx3L9zs4;eQY6kDKtSm!XsRz+)-Qw`25_DuO&xPJ)^v_^z#qqtT#t@9&O|so zOqEruzljKL;K%kx9&{Rfh;2t&LLXv2LPuK~Z4K@2n8UmiH~xG% z_H~rHInyLnKfAU--?%vh{EKyV-0Gj27h3K={QNJ|@4x>yDRfb3+c@&XKhwG_r4@p( zW@%o%e#5JG@4jkx^(=vUb1+~0x6`Tr6HM^(hhDZcw;k1NM8ddH7s}B=ItE|3AFv zmmIxb&ah)Ib~%a9S9B74ouYZQ**9Igb^jY*v-=6j<;M8A>XT0_} zC`U1skj9oPFe@cjWMMc>mPpg+w86# zg)}??oq?@V9H8QuinZU>?>eXvT*_sK6a2T|@K)OTqPG&ySIhjt1MhHb<0P@~%V$ap z&v-mN*!MZP;0umRB5EDDL9C!@$$w;XH?^CrZ$Utyd{bgs zq||3}4rHbBUGX^_oZDf%BA|JA=l_Gh^?NXv!id%3Z5#&L^qCdVA$mQ| z^>ruiQv@i-hkyFu%|H3pAGmXR?|*^`ULhcK@NpIPC^s&iz5E2qG6M!%#lBJE&ryl` zo@$$k;qX)v&_5LN@IU)8G9Qn&4#((++^=5_sj0rC*%=B2PSXdAqFkl)Uzb zhN_br>PLW~>8cC1q2}A(oYAS>)hs@pl6p#kM)=L0M&mj2ccBI$i_^jAdGs&{DUc)4}eUD;ogYs`NyV%Ef=W*dk~x(G`H`d{|H`o9|K_ixYu^5sX=hmRA3nzh1_E=FhYXECZdC`lR#Em=yacw~iH&e(D0HSM8Z+v=i{>O6`T%O$1LjUnwf8h3i zLK93d!7B$Y)59w1M)kW$QOCsr?V~I+>C5*;_Xkivss43gxxO$ zp(?@W#b#p5Q|zS<%X?j?pt?XEf3F+BCLeGX@6F`2a?BQ7z+O|_xy;t__3Jl|tsYk# z`2gD#vR=sl=@Bx2v*i zE*jJ7fEJpIQHcVOoBVRojVu7QJ;nKjc2()w5KX_{dR2!vl@qe&;Hn$6E4CGXUB8KM zcjhB*y+)+keiQ8Ef+`l6V0T?yap?b4kEL0!u^I1-QStIL^}F3v(QEs>ULMH63#Uwp z%NQaG!H|5T@Awan|L(0{HJ<1n$A?ZO8)Nwww^AcNb$qa6Z}}}NmkeFT{?FGh?p_@@ z>jfCorS*XxXUJF{#`=JEq{(gb$D@SHpHC|WjCh*M>|H{u8A>%S?FXdU(!{kx1e|KJ z@(lG9Cs^|Z?rDHeE;*?Y#bb0=FI{(YR#zG0ddY$mG<5Q_iVqaL2nXkYD zc#dNTnS|pK=_`4$J}63oz9%1joZj{Kewgn1!`uBhhx&^+!StxJ(6`5XxW?e{b*I)J z{;D^g`Y`8rfjCb_E~j0|r_LV8|3ni^Fu^MdzU@cvc(|YcPpkA*6Xam;U{CfJ=}Q2t zXQKFkfYa9m=QE-0!BTXJQyf`Xp{h(_dnij*mp-ZNK4OPMvorg=SQkRaUU0j5ozg;? zZwiiGIbV$7diSc$*JN794RC#+#kRp+y72#`30~GP1puBS7~lVw;r)NJc19zz|Nof_ z`{{ieHHgqK8h_2m#iWv_Vc?>Xh-rgNcA! z5a==c)nXNf94u0A{Pgl*`|p}fak zZD3VCfaT0aNTF9(LKD@vxmJ~o5Vl?^FZHl@B)6mVaojQoY;gFme*6E0c5nHLal3yQ_13oGuM6!XA_==$Q~}~>v{h9Y zGB6pn#(1Dy^y`ooimwtB-gq1}9Yox)3W{@{5ADRZVs0F_9O%Ki5wFpv?ZQ3@xXI5@ z4tP?!rwxs?!UMLxAgcR~LLJU=uiDSnHl`*nGztmw;WK-MrS2<&dut)k!$kF~01zmk z(8mQOyMFgQ&*aB#*nA)6Ga*h|GB$w^PkrWbdgtH!A$s`!PnI|+#>Ct;G`0kdlmwxs zAsa!1YS*4zfB0=*bm}9+OQ*x%VljT=Z{*-28SD?!s{HjolRgPH!2}b$;-LHVXdmb) z05roRd+{+0lub*Wukm<)!af|={4r1cv^ZJ zWx4*YZp@GGo?gFNgDkn8F=wCu)?fJRZ+Qz%@Un&J41nhdhWG!6C5++wZNs*rA&fS} z(jI>N;_>~1Md35fSv7`m%jJ!xsRUEPdEE)nCpmib>hQEf@L6 zgy=|@`1hoZ@RYY~l?ueUXsHCFo1n3rX~5N?7F{`?h!0m_T?BZb>4YwGEqcw0WybPh zDNDdX7IVYdJ+DQ5jL?|kky=!vb&Y)B6r~gRUfp;l)|!stQ!v8NAE<7itw2fnWzIXy zq`_O`o=^Y4o9T)@s;r0HoP8S?dluo#8-X`&9;w`Kd*qxsr4cR*WxJ7 z%`y%Ihg{1OlYftn2*$1MtgtgZ%Qixc#50TlB0tN948 z#vo4;Dxne)!jMgAm(AOP6H&n{CPGR>^jKjBO_Ko zX1J-wFi(^xMaZ~z6vHvJ#q(DAiPyd@Hn&iwkTbeUF{}sM!?wEz`<G$4 zF?{KJFz`E(hhfq&eifbm zI!VvPgnuk^jRbtaWPz%5y>H+&eM$F z^1%vwm?R7Xi`nO4_nTLbJH`fO`nevHY;#B)4aVO>BcK!tDA4&tI^mZBe~=fECViiA z;E@}qz*~a$BEPgP3_MZ{$cNbfg-&Qgp-1a-Z6lli+6VBw>zLdt3xxqhp;5pO_#*<| zvl~aQy+CS_jiEoVJh`@{XTSM#zeNA^fBYf3c5vUDgd#|``cM#{ zBNAOLO^^77YhC?!n@olFu}m?Hv1~SCnW-4dK6=R}Go4e%c1FqfdX;JHCtttmX5S>0$e6|rVe222`i8Fz#I#8r65G0 zlX1LyoJgatvTJ*Z>vnX^mAvqM3_Kfg`g|11BF>6uv}B}*{1obnt2fJdZ*+5;9ze=a zk)t!Tmw~<(|Ke*5SZ5+#JZ;PV*wcgj?_&KTB@GWJHGa16b4^Dsa_Rhe`j`LcC;I@v zFO~+NY~bp`(}&~FmE(3hG0(W||Ba_VqJi@AX~t1SjGKJVcHLrf{wJ7Vg5H4Uhh?;) zM>#U?4jSad-sSxg07yt1W^-ps7W%-f% zT4svbN+gxsM`8q&b!mE#@9dlHF1AmsziPfZThqYo$n`9rg%{Ij0biyty#nwYz`yS& z$2p?cQ$DG5SkD@FB=z@Cp1m{%0GM3>aRfA`BJh&yD}jFgui#Bl$n`Nn+Jb?kjjIR_ z;UN5iBLNbI2^y*nUhwLZCkz1)1*s0 zZoe%*)FD#IymAhPjt^?^0R&lWgZ5!{-DqosL;10!pYQ+h$LYO4@viaEzo?5U{BSK& z&(~)IL(!YA+q&%Vy(~Oew4M zS?Q4MUtU}&deO<#bnj)`Xn?w4cDmq@SKwdGn`()U`vQa1`N~dYYJoWUPS&7;Ct4IG z_h1jeHp$usW2#?$tm)&BCeXeyeT8QyuHCxvk^7(i$mqumko}n+{q$MDmnlpEfad@% ztkSJ{MkSdvy#3!_J@)kFo&5u`_x~w4V?-qM+``FYYas=_%{spZCaQES$%jAZ=&W!k zw8cw8qJf`vxb_y2=9s-T+xjcd9>xdC=IXLNdZ)jt!?pnfu6|y%r9A8t_@aE$L^e z)7jN$S-T>0tdCLHAy3V`lB!+o=wdHRNxSER)kDe2+@4uTFqE;u|te$D1<&p+J<0JyYKxw^GA>;6)I`6D#J z%Lb-10G+)@yB5g#||4e1V7smI!h#(cpI z8B6;@eU$qaGl|$vh-fvjmb|~99KBAIgUk}xN?b;aXaD4%7 z-+see>CCr(FKyg#GvLh((zZfW9%&he2`G1bU7{KvA-x(tjdT~N$OL0lKRS^(UJzID zVI_SY5$lRP*1paq9Bp-5Jgq~;zI;uiC-w@@l;$ud80N%bG&w#M)YeBXr(h`w>A6g) z$L7GZ0d5swUniGNloE7OdaL;$OU6-ueV~cEacpLa{ecnV1fn=tIfS^ z8CRUgU9}kw4i@_|o@ zrmIH#s$B{|@a1rKh8!51PI~F2JO50Cwr{lkjC^reB0sH|NJUkFA}^ zhE}o5b07SvU-<98>>8TjWdqX=fae6{=GrPGdiuhCIyggWXCJTi-kc3cgM6*`LJPh= z>Udo_0MMY*F93k?DS-%0!&P`+iMad@4_bk(RdQ~$S&i(l6{=hZ!yLCa8Li$?6G5lT z>T^W593Mw4T``|+751M!Q=0vDtOl|oouM4|Ikth3c5x^u^i|y-RL(-M`hX(HD@*GU z7))Fu(-k!PJ+!UIGe3T2T=ieO<_6d1;ov)U`o>RaiWJ3-O4*GK{io0;Md|6irZS-e zWqAz|L0yS)jF0m_T9%O~1iMt&#<$@~9aFlq@W(39ct%>yM`MKZD=%Jp;GDAhli{Hm z7&~3yT}O`ZD+0fG*#t1dL`a;&i~$RY^yxeYp7|g^pivExJdoRg8{;dsy&U9J(XSJM zJTCS*Ie75iAhh<4eN>7|Wmu^!vpo0=TFvZ&K8|0RA4F&(>Ri-u!7z~t`kcnk`@QeS zf0~|n^s%AH44Mlq^r9OEl*?p8ovX84O16-^zB;@3Wp6ln+o@x#=KxhYszH+P-;e8u zyFK}vz4JdE_&31>6SP6N4*J1h-ko~UfX3^}_ZTO6aPkM4lC7=yQd@4(` ztgZ4fV-*{MFHUCSi747v?=0eD?kv~0F@QaRtA$RD$#iv65(oxWk` z4G%nZ=>w5v1Ka81#s5ct`8Q~Smjz4#fX@-$`+Z-0b3b=RM}L?gy^%E9NqhT?*?A2B zfbrB4LtqEmz0FFqU!B)$j)N9Hop%7BGrvIm&OtFhr8v~dIx9B0lH>#+Lkfdqja!SL zuv_JWXK_1Jk&T%K=lo~KVEAOTcaX_}bA}6ADZ6fyup15+lVWVE6H&yoSb29}nkr~> z=K!e``iY4AR(7g(P@Baq&dC)4esiPW#Bej2Q(1zv>{w~IHBY-!>w1WS9%DZ?IHX5B zM1%*^4Oct2d=(wL^{Yxdkzc4F%h(m{&!qfONfET&Z5byVJGD}-6r#ho%y^(G54Fk@ zxpHnLnJ73)MsvNc&3+70G!XQ?zepkA%skP+3VZC(9+MYFAG>+x0v9N8+(8mX6FFYA z`AA{hl-E23+K+r@qH@5Vcv{#^GI4E*#!wm;i&BT5;9&wee0ty?L7U<@;ZiA!mPI~s z9b?G}CC-EV$h5PQE#v}yC3xEZf9|QL_uv1npPk+QJO2sVUQ=232#&JQ{F2~50@}_< zw6!@q`{i#qef#d#Y&@xZJl%hwlG6#^LreSV{Au1>{LOFs(do4R2_~3eIrPHg;a+T9 zoo&HlG3@UxF3wiFb*G=QTr}NP30u%BUU+5IQ0aDw7I0;^AUI7{%Aq}i8gx7tMq0X& ze4x4!An@(*Vz}Z-cxJ7m+-9#cS7zP%$?LXW_1HsaALL|kChIHdfLs2}Uwh-NfAWX# z_#jR2l7}e(@HxUt$FCcHN8vO^>v)U+Q1;0IlmN*&QTG% zjApK<&$%fgjz>Or3M-X?W<~<56-CyLCOk0~{R!}GD2VHT3u*Sj3x^NYQ^O*UE2M5k zv&t`}57`q?0w(M%e{xRIvN1Kl+SRY7WBHJ0dz%Ttf`n_NNjoHO>=e24J5HSW(pyGJWK(A&k?$g zZaoay+Z zaF`whcXUfWQE?e7d9wK}_ z!j)y4t1bwb33bz-jE8m|f>aTIM#S#D7GHkZc=8BMmc@E%x&zKio}mSp=UZ0?bt4Z- z;HJV8ss_3+aH)Y%+TYv%onQEM`mKNa>)`lnC*x_=QtGXO42;>L~C2ALr27^ZVQAu-Mjd@t


=SrK?#DLO2K5nutjlhdAePl!5l=v3i$ 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
i6 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%0D-9p9U0ZvcCJidHXxtuKd4o{}0c#$v*{qsz8E` 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

d1gR;C=Rsx8Am9P^G}=9a{z&QuU}&=G6|Vo2 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�O;H5}Bb82nvkH2(caebrmi~zkf`k(6!2p_UA>TUZu z(YGGmN4s{+CK!@sF!NP|>2zIX(9w%^1|6cp*G{jv#&z}4-@f-fJVOf$3p0miM!YyPJF|iq8ox@cYl*GNj|mMvnq92XiWK%| zz|SI(3O;>9L44RNWGTPa24zZV!(^)a`bzr3PQiz07pS6R6}@42v7OUpqUyX?zRx9t znqU@$pl?TO#kf~&ngX&@snBUJEF?!4VjOGLH2~y+dF80s;ldm7D)(pUvOHdnEq;gtOv+i<`Nd$nr#&)k({Xc(x z>(TBz2$N3J3vLq%qv;C(U!pR72f%B*tc@>yZlXB(TPD(l8@)2^+dY53U9Z0!hX@Vk zmA8ROajkCkzWT&!_ho=?Rf{#~OD)jYg;`WRRwp6hTD-3Jno3nEO(94J;h>hUPH zG%@*^OlKD>23KhjsUl)8uStPLWx~PlG_Zon|JAN=NbxJ-zTIhG{|rx|=Y!u)?qG=0!x^pxdO2*#@*vrH_o2Nqi5&HZiXV?DszkF_S9FqTU zh5m0>{7PE?d(FNDdf!{Gq3`*&L*2V5Bnw_*92e@^-(k~#z3zA{x@IjMVx>+(;ib>D|=ai`U3rE zo9+%%!Mtc|rJ@t;bj^@~rup1!D!>!d1qIPGQueF30*!_Jt@5&F=cQ=JLj{&IAuE0qhfB&BbF#f#)MELCE-j#Vm zpcuFpbOa-x`%O#}5VXQklGVu$iY%GKisD*I!F+75l;f@nbvPQVD9-s80zOUXuuj6% zIX$5gonDL>5=b!zo&#NQ;*`c&ya-yrXsbEsm?=@%$y(ZSdU>(>e>L^m7y7;R*j{??TdvLTpKx!XPK80&P39zD>wdjDJ6*slxB}j_ zL75;Qh-r{yt7bZ+~iNARv|sy{4$SA4oaf z3J$&Y^#9FA_AI>a+8xKSg~upkR=x9lWcuQG>&6G4IQI_!#{T|&{_TXo%p866pZwyT z`}AJ>D8QuU<+hH1k)F^Y$Dca?xydBJIfUQe1D?YemU1C5Ua%r79_!e)KW=iLXuG(^ zKq8m;={Y0PL?JTg8nj9M3`(+fR&HaU(L>Y{ilFm=qwcFY2>X0 zIC|0Re;uA5pUQozUv~&50jSZW^@ec3(xfpY3br8HYAJD&a4qY9tV4koyic)+_YaAe z>u1KaxjN2`oD31jH}s2rD6U-X6L3ovq(m$KsJMX-kaB{WD*oSrdQIs6>bdn3`3Zmo zv)wBtGZ&wxX?aP?bOPXSKv^GO{*(4sx_B}@3NRV@xtY=0zTFFdxvkL(=Pu}mhz#F; zn{5vDCN~;Wg?YYv6yR)sGAfN31p^@ij-vPt21WZU+xLcT>+H$h`d0LuAnD9?2tpJN z2U@gW{8Ug5JgDv%kT2>OoNaETs3>sG(8qI6l)IwhSm2!=KY&oN+SqRIt~m(U#a2bJ zzDPO93R_T4#0B%X!fJRS3~^4zqsjqaU{(?yh6qq{8w*UZm4gJ1%8w@2gZ=~E8d#~^ ziC7y;h9uLcbt&-xgA4B|IrS&5KU^`6jx~^-%jpa2^uK-P*@frMtWm9eEA?Lr*f##{ zZ~KgY`$@k$ZdxJbRZWk`^@nHd0(7VUnL+H5&A3XfG-H4xffu&QZL9tcQN~l_0Ip68 zm4ax)tMvq6E5CE(G!kA~7;pTfHtE0UBkflKy3fFOzOoh7NougZ zv9lNbIS+KxnOr7+cOLTneQ^7hMoAl5>Ag9(xGq0*0d85_VDU`XlT0Y{>WO^N#N z?>c-DuPm}s(o-a|Y_{DcNkBuy3;QkO5`Ygjr^KHqP8jF@hTzfAb??XWcm-Mo)XTRD z<4g6zLDvD4<9z{}K>w-UPvj4WK8ea5Y#SFhX#L!p^+BrFHs(xJOvV%fO{LyY1^-S) z;5_?(l{Er+O)a+{H|ycGr2p&Vtta|dr8b1S0C+TW_SgQ^6K7~zUXn7M0QehFQUGy3 zceW>eJg8~9!N30Cj{D1?9UZF=KFjZZva7E}VMb#e&-GCNBK96OS%;c|5d9}uImS+~ z^8o{@!EduMrt#?$=h~A7_6iTiB@k_hi$J7L+QFE2mJ8}bT$&qWpn!&yNQyB*=Z?Q8 zp8jSSmw+<#p|oXqp%1CF+qpOkH_U4Y62!qFI7ak6Y0!+0UcH4nNT^=G9SWALW1!6O zDLOwd9QC9^;9m+(Z9u>T+DWWa(~|HTFS+i5reYMO(gVRu?6coDY}Frr>caRxe)hTU zrGGD%{>PNQz1B`Pz3;7ux|M(Yq+gaQ@#h(99=J|a1WTo1N%||U8ToDf6jsY31@T2o zK~Zy?O5qwUrZ0%E6#rs3Ix1A}%0+7793xN%({5)VuR;BvOinDk_pR41>{^=3w!0ub z^d;o&Xw;*;vo1%l#+k1_ec^)_FKw)}9yz@Qpxx8ozw@(^TiW*lXji}XuO9tN5q=av zHC?^QB*5vDm!CX;ZsT)^T0H@*>|c=jc{Vo{4%B#2s8gjL!rOKXucogaB3*5%_je^b z5%i0wnpmMd66Xp^9UX=~P(!Znn%ZH7x;>20&zh9>{iuppAM(_;KdA0k0PL#oL^{+Vy|Dwt0Ls z8ujT)_gNEBGdf-Ue+kQU0^n~*nWTLGMRx#j7lpMu0Yr8#&7E6Zn0cbFWXWm{qjY7D z%h!6jTt(Ctn$ycMT*krw^=+B{=u0Qp#uH=QJ(+-(1hQR@fh$qrDTD%W?0Z{-GnolK z{oG>iC-Fi5EU6MO>Zv29O3+_H0+7SiI_xL=5}+G#%HyNwiCwFw&(OJ3XWV!QjHUHY zIS4I`bFSydPmlEx0Kk%T1(O7KNu=mh6Bn+hfVqB0!~ezJp9O1j9qECf`+sj{-b4b( z1W1AeSw#S>5~*5PrCLWl=)a!#Uj_N>51gmJ z`tu*Bk3O;y5R5x(B*2Mt#D#{Makbo_Wc$3>bK%wl=dxUpQOX=9!$OaQu}$r&k@W9y zB#|p-2g@z509V^IihZj&!1S50WEcqY8Rs%|mLy!v8q%#q@uo zMExI2SkJDgktPo^uWJ|+c5)eS&adx|H*A>hxzK5sY6IYX(5fz7Zs-L!a{N*PzlfTXGv#+d;Gj^TWl)7oT}!d>6r5u&(5v z(;Msbj*~(cYbwDOR|ZkZ!bWQHmbC0&d3g+;B#$zT){>E`FxT}mZI)?jX+I_In#?y# zX@8^t{2wk(P@xg&X&nl{fpOqvJv+U|z;jM~DgiuUXfx8?JJ@NbP9bUV?eGle*@a=y z0VI@z(Vuf%R1s>>Kt)Ey`s3ppqk@$0FekYhxxm2zy3BcE6azhW_%>$PlFUA4fn*RD z28=uGZ#ecelmkw@Vz8F~^>6q8gKyrP_g~@gaTcQ9BmM8o#~wXHfAwb{ryu{+1?Q!x z{$p?`4kEBQf6!HEhwQx_?Qp2j|l-{)+7!_rKW)yF%`MX^6dB-bjKDJ zkQNOJJC{6^SCbba!{wF{cWM~d0{%?D&u`wBm02RVv$k4J9`! zy^5h7+81rUcd+>6vzNAhslQ~XhHv_b46jU|$=~?Zzw?X3;`HD9^=Iy^k^B!*7{kLl zLElg0@Ze~E(VkuMUA8kW50E?oWE`_dizR?7NMO#3NYMY2 zzQj}YUGXxEP!bLxk$mwo>OaVm#P)&a^o_kr|Fu5rfB21>?;K;GIomFff8{lxlnPI@ zE%EWIMgo_(BxS4`b4X+Yz-K~lz-AXEa7iTTX~1S+0XJ-qrzn#+CpAC4lzg7hM&z;d zHfjIb?(ot-yQ1NevYK%miSDS_rAh)RYIodLm-sLe4{Z=m)IC4)M>qAIO{hPH(;$8C z>i^#E(e>WG4GHQJcfT2+w{?rITYUoX9W1K_fDcd+IevBsGG;~H%I{;3ZoG18eYR!p zh#7Z5jYYRE3QTGXu+iUcb4w@!aLRq}!AOS|$i^DJ8mO0UjD| ztXGE?NG#Oof5*4Wx1hNd_$zD;M!T|MaIHp&6R+ z%P2@I*a4FCQa1tmktYPf5JP|CH#z@_A}*C1;H%H6!x;3xlR$qCS>qEN5JWTZKPlf3 zT9wI&3kC%cyQUzwd{+V+Eog(vkezk3V|${7-)R!kj45L+D2c zc*0H-NnCC*{m1qI;LhEHpT2Q>|C8g5f01qoc#E&;=#jm{EB|Zl_n-V1FMV-2{;M1e zJP(1~&1-uv9v&RO67+ul}eV6sM_ zBS{|%E!YO-7{|y6i>UJdDzy3^@d^6R5q72j1p2Q8>f0K{HIGeD?ac6K8qMj}tLY2t zFOET+Vo_aB{=c+i=u_!Gf&M2ww_`Qjrk@<=QE|)r(@O!=d1IUjW4MP=#KJ+ z8u}0XFyN)#!5e$S=l)vpq#j9}DrYnFLH7INUXcNur$TU-41mM(K5V)tg)SzKHJna{ zg?qDUMX=N~-%Ok91Y${`FTRgN|ay#}{`hsGY{1v69v;AdXm>R${v?^pX~_)83TuZ})C1a*8$cz@hKlP#&Cp!XXpn9!-$=OwtIxN2=<1tQIv zvpP2a^=E2F2zG~2z?l}OHx8F!-Nc<416`P)B(aPz3p{ji0&T`V7;HorYxGxt?qmID z*en6o#fKSl&>IW-pu!#t09+afNeRNSm|WPL>*5NG2m4dp)g$>|oKv61vXKJiWW*~K zF^qsM;B);SX_bJVECAGTXk-;^pc)=gT1ro}HB6C4A_zt~1nnP0{r{0C&Tss{;}34( z&@DlOwix{CE*hL`!G3{%29z#c+5MHBz2gggw7a%86T8db-{GIh5C3QX+fV-`a=!i7 zgX=Ck1qM|v3kI)V-1={pzJ0DNEigzE3Bo@Zzw+9H^yG8V##nL%V8s0omU#DEUuNheK#kcQmp2Z!6#PGmWY&L3JYA<6@{2kn0({|gUU&&(3;LhNJL-R= zK~25cGJ-LA>~Pf9(tHw-v9-TPmvsfDcgVUk12T zvp*cq`p9Cq=P=xHcB$;E@03G-PMv&0HCTAqU z=)pNt9S@|oZYZIY>-{?b+}SF%6nJY0F?z5hf+$AB$V(dT%tChI+=jZ5?Ep6n5+O@) zej#`&eL1v`12!j?aE!r)J6gpvHfM~|-GK(2wG>;>!+w`ovJME|$$(XJ17HIsO%6t) z*vG&%OyiNwStgD=*u%L4rIm8`>DKlk{kLDaHs6^a`{Ny0a7sD^n2TuQg?uQ@Qc=+6@Ic1uZC#VxB zdqPo{3=f&EG4ww=?#{pX%H3ZXRa)#B|NfN#G`@W8uK5HJ5B~+ z>_&Q7=6lC?@7&t|;>auI8BNd#a|1dgAd?ae05ycjlbc{LLL(x|vdM%2fb0K=SGOET z{pT?6f(}^0!}v7u(K!#f3EF}pPbK9jvZQnYu%KVawAO{Y-h%#1)_c%T;|YhM7_V)JsQ+W7`BQSeV_avZthdGvjXNv0JiIo*EoK>Q|}a^4UO~XvNg_>JrY2Yv;^!I#a&_qm}rVe z8e4o1>;K-)!7Dr#;k8~7$9}Wb3jp8ovRVN6fR*{t{uhVEv|)vv$Hxelc4U2x56(Yy z`dij8`6@T)dMaiSJrIX3%n^>ndb1U33yJ~nlayy(-W=PRbfVKopy-%z+Z47XbG&G( zCBPVa>|MRIrN_bU5yTm26meWom~mX*ma{!1s%>Ngq(HEt4o!J?us<(502nTSk!C~! z1UHBgtxw~OUjU$pgUFl(%0z@r6cVm_U}QnPB$vvG$?V&TD^Q{VMYuwC=MU%&)M>w| z>o{2qe}qW@tgurH7mPE&jEzDf(vp{4iW7}f;=$4DxAwPw>#NsjesH{DG=OqTPNopw zyP*I5i~fG$M?OS9{pkyI>eS514LoI&L%S{s5M}zPl08ZR3Cb1a#1nv-424Ak{h63U zhI6hlj`d6xACnz2U8+jF0~7`ybW>?S=EX+d9qXjl$8b&w-v>kg`!56h(ocM3W8?JN z+)3a-PngQq)Y%v#eS*lAKl_J^Prm&6_D|z3fZ>&ZeIPvJvkTg@PXlh8I{K~U&mDa` zcHd{bYtHierR}dC9(1qhQjIU6!{ajcSLzcjt{=4(wDFYQ;gL8_XCCNcLRZClBTtU* z9+c1hq1>oW5VaO^LJ3opVoAaA$V9g?g3j?oksj&dW?#j+WH|zz3}Ky8t?wUDS!!0HXi>(8Fh5Fy-%yjK>@@T7?AL zZ|zP|GDIinK2cmTMBmfD3*g(!ze1qF^VMA=4v+vcK}Ss?*lihU?bqG8dA{owb0Y}H zRLUfKRgnOK|~C+ z!@%D~{eSeK)ATDp_c%TE_&J+Pn-Acru z@PUan^sh>AMbMDb<0=B}K#;H9n*Z{h?fGNJ$NITmvfrhPe)9iQ9tHTjzjkRpBmTUD zFCLG_HG?a!ZT~h^&NuSSYyE|yVP1=V9MzozZqz@nXhXWF zqI>AUumdLSpkSibI0CKX2~(ciT0bR>lgRI)lk-_9&VA8;hD9NrCrKmp_W@x2vd_VS z4)5$MKx#`2KoUt!a8ZKjO&9>5Gh(;7M1&fYrHjbN8WxS%`IRM~Lp{zfrLo4LDc1Lk z{vRJNwstm;uMf?|w?_7CICtjzUZPcbN6Tsf-~(9JNPbI(NMY1geHB3eGQhK^XRm}i zRm3R(7fW`hpKIi3+thf5pMsMvtMPGULjWZ^o3Je2~FyJxR&}8$S*8k6Z@*(==pL%TAO`NZI@d-`oQY{hc9fL|B3#kfVr{wAKGc7(R_{s{f>GW4a|35-Tv#x3)&bzeKmdv zd)NptoALUL{^~#Zo1gi3-@JbmU>PERO~bh1ZrSii-|{Zn=KT83*1=aXcppgzy`zAZ z@IeR(f0(>U;-iN7J`b@S^fr0oLdQAvzswQZtst;W6!B-!;tRLafGr@tpx~Mty-EllHMnhW-S8+G8~L84gc| z&-HZ>Ln7T{ySPZ?u^!FW*4NJj+<^x;|B{(iT6}Nm|Itx*ef*Y7Z_~;m=*Xk1tLOjU z`LbF7_yCq6a3Hy&=e-aVJ1CER_}o`XjUHMEJJx69N{~+sL9!>-eaXQP+Hk+-NX&RF zuN^Kr`ocGE(!t^Kj{J;>%rPizpw0SupcP9oJj}z(#V9#jbL!GR2Jq_5?03}B8r?Xq zD&T|IuJ8vPEFnB0a9C{c$|duGwXyU?gRR?}dchJheKDN9Jsj`!2G}teppxKa)}2~L zogpw#S}Hz6w+yGWm&Tn?TmZpj%aY&}bU82T`Obj>(ld^`O|t;J)6`ek&9TJ49?tQxoPX)Ht-myz zg|Qm8wYBa)*5mon{5MIuxrcJy_$a{g|JPsH`h)(C8qyjQ2<43@cQ||o1Au-grdTyx zl)^d~=NlYb?=}*sfk|0sLK_e5D6cLODtQrPBYJY+NW(G-6lf zxTAv`d*h2jML@T8zG~S(8AJa#(!<3qN>Rul1PP89iXp}e4qJ%S&TC975lG)>c4pS= z@&?u^uJO3mWj&6IEc892|GRgOUhF?p*1wocHFeBSWcB&KccH8n06w7QSm-(F)C|pN zOpRy!q4TF-SsIb57-&ebtGJ~^Rhlm5nqsk*^WJfg%W6~1P zxD4PHR>5raZRvmi=*WNg(;pq)@*fGVle1iu&d`Q&t0B2QHT%Nx1g@6cv^t$M*JELd z3wVtl*(Q`KJkCuqi1faWG54!b2G~}E zjQ<=Sb_dsA+xbn!1}d#%$eaVB=#!ihQ92Pm@19Mw)TVX$*Qz{eO%bB2LEx z%uQ_>coJj)`=#+{QtQ{LniDLeONem~l0>PCB%TTSt3XGg8z-tX>y8#QU*7re79HUZ zo1p*U&VC|{eapVzNEv|$%3-6}f;ybHY&ccB#T0e%|FgA&5Z9?cW{>fVNxIPWvCN!18p|IV2fSXo7B2Gs93Jw-lso({*Kz@h>XynPgrAWTyCx? zmoe^bpYM*!r_u^dcC2vRM^uiSTTU(bJvW?g&?Bzki^u~-gsVL39|5qW)cg+n%5$m5 zAXGUoFj=|?piWNx%c(V{)2G(bkhqZmP8Igq*HsK1|2=x%@6-}HK51MV$%xL1s7eN; z)iKRoyjxB+ZE^yQ8iz0@i|xjhgmS~NhAvW)|4r>s{sq~9Au-3hIx%1&db|2RB>zA4 zQTpg38yP$`A`Pm9zX~iUPA*Tts;=Lo$VA_J$y`7H0TIf^o5eeYX%=x22H#kn=?XSW znluDk)7rUE7G5IA53c_A_VAZ}^0E1HO6CX zlOh*6FGIeo?}(3DP~bIQCtUo1K1A4FLSOIC0k%|q)gfZN#5qoRPDpO79oRZb*CeSD z#vF_d80gUV{t%JL0nj293g=_;{h{b^nIj`C0b~k8L%Pr$N#uE;OOTd^{uewU4r1TI zNF@0zI?e=r zq8Ug3pSzd2>f5ZHU5ok%IvaSVv?cV&jm@RJ{Z_^W;WVCIXL%63m3pRW*#+Gw(bzw&Un6i~t* zCSUP1|IT2LnZEtXHhuf@HhkI28nz3c5d9aU-YQzX`^tB=^bR=Z#0VG=3}At6cD6We zHMZE#ewd=;leWJKck-b9e1A^!y#vbg;AtDWA@iby$pg-j1_}f;_lX?tkWflQYBmNZ zOu>g%P9_8?6vwZyI6IQS7dD#U)NWYj;6{fjK6L$5c|k30v0w^;x&?t4XofkBiG-pv zI{M$v`6rp)!iNrIXZY=WUXVvB4_|w6bF07e?T;~?Rwl+|Y zw5B=<0bisU`9z?TjxX9#9fw|P;)8ReIho0f$NI1I-%pnRKlH%*#?Solhbe5Wmhs3R z-EmDscjUZ?gBS9}aMh=yMgJ(k_Fw9gc`nZb48if>r8k#6|gb#j$Ez+ov8nT z;b4E2JQ47QQRZx>(MC$Xt~Sr*n+wsnZC%^rSR|{g0PQfAs7I3Qz62R!!u(5Y%+$aq zfRjrlBV2@PdL)Cg2=Fx8LTm22l=z$Hof~yTZT-i`9*o~AH$)-AT*kDte{GrkA9pqI zmQVp+X(<5tg_9n6vc`r3{Ae-&%|(P%)wfwYwSI*L&B3bPI0`co{)CYSV{FFet1sN9SFZ2P!`(2c4a-Tt;4>=&ipTq} zzkJY#PipwIL2>&wAY5}b#|i;laF`@DO;Q_cdqGy9O#P zC+z(tkqz|G|%++j#2Z=e9<<07y;Q%8yD!s9rez32ojz{EM&O-2TA<icx=1?-d&1!#CP?;sTE2|!(Xj>y8*@6ZRX^bPkFUDa<7))&) zLby0@Q|-_mWUO)C#l~VgHi?3tvoRp2kPkFLLmn47Y>c_$HJ2NO+b8{f^55?Ou!VS4 zNruPjS~gJH3%9M~YC$wC`ir%R?c4K1i4Lfk&rYue#t2Q#6;(Qo^;q7|`oDAc@CDub zZ_WBm96WoOR^?qOs|A1$aOqzLcr3F^i>^@>OB3_ zryr^3EG1v9B1}{%tWZcAbI@7A6siJ9szH{Z4Jwca3~&Iy;tO+0pa(oXwy+-B;0*;_ zGD$ZB%{m5YU58%*zEK0U%7b-ds_qc2^uMkDKlPbM&Odza^nARAIuocQQlA0!{$kc( zJp%dqsKBdN_x{?^k!;xKdN68}*aBVN%cr^l)JRNaUXMbzXfq+mCe6IN&i#7+_qKnLZ#|GsCl$K_W^rC{X#Ko3W;c? z|LHvR7n+WBPSSrOYTemx@iz361|HIJ)cT+M<1gwa(tDDeR`m2Q{JTCT|6xwlE{Fs< zRs9>)A8&;y%!VHo)B#x3!vtTVoeBLz8*aHEm-jPk2eTP(M4xoBB;AiJzMu7f=kCFc zlKqEP>m5ButMaat)dIi=yf7`E9gWg(pK?h47fajr(ML{S>YsBIP`AUT`Rx*WBXcDVasq*+3{ySKNfRRs7x-r)ses17_mnU#uP{Wq|~w1)N> zFWpyVYYt%8Rq}Bnd`fd(XcLHtLUIDlT1gisKskBB{#shWl}O}d<`=>b{ZeF<-_a1- zFYEg^{g27Nj!5YNp{b5rvy8PPu`a^*r~iH8|JhHSr)H5rwjZMcOWoGnP?=M>EDhds z)Xx)(B=}mbh6V$8n#VE1Jv2{JkdB6bh#c%G(lOPR{CG{ z@5|}+8U5mqe`LPK`Ys)Tf8!C_TzpHoUqhiOa7vq{Ki+uu(&k^I@)Gr7r=A`UdClTi z6w+dS{Wr(2=JY^1SL@~ZYZteEQy&G0MJj4rMW`N;(s@5BmkS%z6WZ{-@nd;wltBMv zj%xTP;~(mIy3akZpNQ*z=BL%_zVv@;Femi8-}*_s;31gxR zPujaOeK$dg_LwQwc&F%1rJ3kw-#)_e;xAmTi&}x%nKjA_Dfc7W_cM*}NBuuO>aHK` z9&OG5)T}&%c=q%suF$HyD`m9+@BuFmo?86r@*crH)^YjH$)o2t{v-w_9RBJcrY|k? zuII_YX(CbeRd?raqA$wT?`k!T6Gx1hg!$FW@XgT}m4=tN zgk){xNtZu?!xO*5al>S57QuikWKmCWR2p%VlwMFCSVGXd1VkpO-3rA->2 z`9~m{oa5YPxe%(E)6iYPJ}2w{&;LZd1zVeK6RwN9LveSvQrw|sjDz>=f)qb4PB=>%6J}v6+ zstLgr+snN!8*2D(tRo=BZv;z-=pF8!(#>=?6T%4U*gu z;jYi*S$4I$Hn|@?Zc_cMWbL^8jo%KuXp?c(J>**)lr?$oc|zDyXQENoqzP;cHT<ve@t+!#WH}U7g(gVZDty9X3Aj zM!n$%_uO~^G-433cA5R!_*X5Nj?h&&Cuh}#7Ol@|DEC3iL=^!>0Sp=fkpy!c>lU~7 z7P#lq`(_eYFLYzy1A08}qx|}yYw?Nh?_76-z*k$NjQRifGTz5wmV{q^0M^mrN%xp2 z0oQ7$ls1YD*8|QQAE{z3t)$HsPS#|*r`u4Ra^vC#I#7OD3S7_8>dsLmY0q4ByF*MlLFhGh3~$LNsbDX1c(q7r<%R;l^%X8 z_y!2sY7^UMZpV#b$m3eOcLV``Du6#Gm)$4K14m@7o9Y-?3~#FZZXp%%62!H}(0uHX7oZ*ei56#GObrwxZwAR8y zLX2-hMTJPHI&p$2e2YK}LFFY&Ic;gly0CkRR3&3vUqAOgKS#|4@;WvN3{|+f@5Hda zt!@qcFkV;X50xdBf)mdr3Ph5UP+qjYCbou-bG@6GZi-V2Z1u8bq%vz>L#**^PUCux z5WEP&xDw?}Y7=U2TOcND0H#`?9N%Z3*?QQvXx9{}$oGPVRbPJTiq+q9+Fl{4r|{y* zUo!71!1w_K!tv^1b>(2x1C zm5-9U3yhdFqjDkBeztku z=ommCdsMSMT$ZAu_d3y^%sEcPt4 zeehaPE)FSQl&|*Kf#VE+9FD$x8?SSK_|W+)R;R_PK88aJz-Ulc54aArN7I}AxvRDI z0*w9apQwZ+*>h9aGqGT|pb-ABU>Ug5;au^=6E_+-9p{g#aL|$&L0X5aORPzZJ{NA! zBcxH=fGc7+AT%^wA#Im%T{t<`^vttNh@$Nz^%tZbvc$?QDzeAgkE}Fk-OB+XnHGGq zqDjohXh@+q{J2d5aL4`Y7p^`?NrM6|>lF}WC|Kq>bg)GMa1RVv`>vI)1&F6vMr` z!z5^t*)NkuQUv4MxVaxuSJ=O7bhtB3O7XM|5MqcleN`uYjpZ;=2_?a{tL`%mkPdcS zflCq8lil+upBoc>*^a9Ja6}5sKUbAKQQW99mPS`nvhX28ies4*GzS`AxkC z!E7D^*kF1y+l^26Pan92;<-tVGCT<)GR)=E(CLxA`h>d?61N?gY~g4U&(pr3C^B7E zj`@w^;Q{hd5jU(?7OjkaxEh>M^xV(Jw^#HlWGe>-NCXtu6-qs9l^`EUTSuZ6s zmXYka!}|YTSQKVW4vtQ`c<#ckwTN*!mN`xably1%lby)(?1X(^0_|X5FBADl9$9ki z=VR7$f@QMuqM2w2o(0_dVp*f_<|jehYP;D z9JxZ?Ts99oSpSEJRgbBE+g}kcpZOf%ueW2ze-``(bycRrINP}XHiHmX!?n#{DO~r| z%Pjmu)Miy2Y)^;|L0P6X?U+Q@p_s!fE<@#*wl7K>jw{)E~&{IHVq9gb&q=lw_ z5MNPHmV2ln+UDEU=4LTyUenosftZf!T{P?m&x|uxu82?6%)gJl8mqI;WtZl!JkG>1 zdk0Z?c=_-io}-u-z`{(Z=5s$Cg|Rf2cO%bhq)7*3j*{sws-2St1m zgWt;(gsFEdgvXLXw@c3(rKs`~s7FeWs~SlD^ELdD#Cv4;4uekv!&F|J!EQ{V-m!~E z*PQ(Caa|9H?s(|cM_vL>EgsI*X`&6lTNU7lC_J?tS=9sLy#m;*JCOhJy|%~u3A+P} z5}!J#H%Eb9FW{|LdHl&Kh{1`%n>W;3&CWSp{s$iFbp~V8P_6tb{ep72<8j4Yk~w`G zOY1Pd0x+cKrlhNZOTfhCS!QL*@haZTi7o^G#@7(gBDC2&NYBkh8RP3BZUe|7M+Yx{ ze!-{wNS&T|>C~VChPK3z=97i==YPjK(lX6$1O*%)BA2e)y+8aTWakq~TE#fB2}=1P zHx{e?L!^^&#IZZcK3;ue>&<^Kn-RI3wBM%yvZfc#WwX2GUXT6#Cy}+z=0E6M?_26` z(fWqx)wwxLF8FhNNKZ_qAoPFOe8$ICUhqT985X&NGr$-L-iOBH&gw3A)b8=hjx`_t#E^5%Z9xSwJb^4O_8o{{QJv3U3*GLB7f&o&Lzf3S z^`WYH6>kd7H^Jt|WE1P?9lW0l|>IK$*`&TJZ^hw&< z){%g#P<4ear4umysF{}rGi}bUdeMHR5zn{pj55$y$js2d1v4f^5rzqSWUMlcV|uk9 z%fx@rfaw8;rUUODvhP$oVx?(5drUgz1%Khej0FY6WvgW0`5u3Icl6xZ+QUw|%2i3k zV@E;B>}>VA576XhEFi`a#<%O6+#knRbUf|i%Sm#g*1rvz^6VuTwudwHcec>L*Dt}o z-@;eV@DS75AV8~ECl|ZjXRc!Xc%X}5O{1ixjCY^EOAc#C0gum56h7GmJzP=&DO=3& zH)&T0>)+$Pm_ld7$kzzx35k=gUUJwHdyZc7*$6c$Gi?7UF#QuO-3x?F8-a=rp1B@t zyz@EzoW$1cvuAU&@5V($RTrxVf3arC494=+W3qh#@Hmh#){3v`#SF@`%+xMn*TWUfDqD>*}b~l2a@$cybrOa-{3w0>~E%!C8D7IvvQ0 zTRi7P_?E*-X!qdAyE(d3VM5Xx8R_2cZ>h@llpmz%7rscV70e+ao%{tP`#Ls=`Gns< zBd=cc-F%p=pTIiKP|d|BlnJqpAOj8X1{XkPiYZ)3M-|V_@?c!Z9q%4Bklea^7sdsX zfW4MPNugnV%nM5s8L?xcOc?oBp#GuO1m)c1`qy^!2UZW#bGlkwdO=x6WqMy{g<-hM z#Jya!5(}hzR#CaIdU2|&HQFMT`nwA5)f=?ILF(r^`i~-aW*{oaz3?PBt)uXLqpRH?s%61gkrD^Fi^3uYq{+qm@i6JlbigX| zAsE-ft_i+^b+$~(&%dXRyr}nTN5hP-`4$_-kfg5l_MzLkNJUvzd*nq2+Id0WwM^I` ze?~(eG*Gvhb&K83z9kTr_9}PbQ{k=FFDpv!K{Ig)BwpOjdrv-3R6;ke(5`*?x2}v| zifLMVQ{tHaQ%!o{YjGOhG_&h$&k2%^pb6 z?eBc{RE+QA^;@BdCWH^3U}um|?Z^`f{t%L}#(>YG9}=27aG zc^<6|MXKOqga$>JRYPi+@3JGjQXlX0bHAJ2>1f{Zakj-crC7!^C0~J(C2`5@@|k`^ zAL>&pc0Sed?hPA5kv-|JyjpR{lL0eSao1^>0}4ibzUwrB|BC9mJ;Sl$MFMJjR;8ou{?^nWM>KrF zKHLV`x(W%SFy=D147$2GtUO1myTq8wRzX@@cEb{t^(ec_ zU5?njuP05X&Ntz__$-O2s=~e_NKd;R5R25%+hZJVJ4N3aZ6YN!12ctwB%82vcq%sY zoBTSZ!Nz5lrJMRLs7)G%-t!NivC5o-+gfyrU44namz(Fp?3MrfkgrEON^b^LLNV?N z;?l=#$6M!iLK4n-%Rui#z98`zAU8YAF&sgua^Yya%b(*eg_I9P$s^m^=+v}}Tk@4} zL`Urv5;LrnV-@?shbzlc@XVrYaY@07Ehj(8qvr~x3XvsteYvM>v#lUGZvQw+KFt;S zj>Lb6HE+3WiZuDU!tbw4p1wjYVz>AGM53Donz&1P?&IOq6XUr{N{@;P3&3n=ARHurW-w&*`+@Z4qikWU|-X|05^Bk}}rm?^c0g_-~}e7^>kjC7{s28?sqFjK|CL1|*dcyLP>n zUZ;=d8`V+fX5<{D_?3#YA-gARV&e<&Np`h7crWX}OgV{bHI9-Ws*#sH-v2UK@8l3QZ;kO#6($c{_HwThbI zl7v(@Mrk|y_ISgayC2QA1a!gb9cy}@HT_d(VzKJaahz*Vl?Tw*v%YPeQpfGv3IreY z%Y{t#^vQ*4^nIu&LvY_4l^>~tj*Ap2pa?di2#x~NUNGrr^cPB!0Z*ih62a>XPnkPH zF=#bbYjLaI6CzC;vBw%~K&EHLfMz1e0~5ydjF};iilCk(k7m|X%-a*3bUj$Gm`Atw z+7muL0C76&Jxna>biLpGYA|4O(u@mayk#9ma59i@j;6cgH`W~X-u|TVVveYRdx zE*@SHEY$_m4-d(gqwF`_;fTX}tpa9}TfEP*lrWMo_(3?eR|Pcj(0N0I{7Q)S8ExdN zWJV`>Eb8YTG<`Px>SwGwks%!NoL1vvA~^r>6M#9aXv?H^vCs`cBxW=V-pK;T){BF+ zDfbMsj&X_G=Z?rcFRx_7?sg9;IE4gEbWz0R5uSi#g=h|&OyYfWGAy*7tJe|u`{aCo z1WvSLUc`-<&(Z-0chm^M0f&iKY1b%7I?|&svKJL&N11MXpusPL_S`+?erBcfF{xq!_9Hm)<_&-}P6wDrBD7 z-GE2vcTfKSvhXReWnQT(9!0^jK*FY=wc=z145Um!5JZ{2fdz864+eR-^)KV(Yu~Yb z$+V{-W=mx1Qwl*P8D0nOK(;}f*Xsa>U8@1>Kem!;-}n-aqX(=Tg(Bz4hBVghaBDXU zDhW#$73LFZjbiX4y$PwD0abOystcFE+xOU}tw`Wccpks8Qr zXE@ilvZTmIQ=mS2+v3#^D8ju2MYxT1q@e?IX4_kRDuw&RfrP5`BNs}q=leV2As3V} zdivy3-yyg|W&|1Hfxx7hY31`=EprH zPAuEq<#lgtRWISso1WS8!vBrnJ#7l~wjfLOh@Q_q# z>tDVe)xG5j4?YFNdn`mq*T?obBs1aPpV}$!&PSSk*7uGB$Wn^sAcQlWwq;*f z^dggBZ+=6GOgTaW*RDPoGZZmp+cm3jprE54m)HM`6G~QTkusKeMx)nxFmp$@x?P5fC_n zfHyY!?>fx4AoChtC22EU%bWrK8-Q{2@a?C)lfioVh8hFJx5QT0dqf~gQ+w)VPU6K2 z-x_J!icHVrqqp!tS|1g0D;X%{IU=zp%Mh+DR`ot|o}}BcfBE7{JXdcXrnRaS;rX{v zp4EgV?%cv=$WjpND2F|Lq5k`cEV&%YaUJ7i0YvbZv?!tz2Nzw=#GatXL&M~{bXfZP zL;kDQEpeSIT*QaN>0+0UgjLRID3Qk3I7#=umTUWJFpAqV->4`*&XZXl=Cin%`q^v2 zU`(~EX{FFulWP@*kuGT)Re6CpPa%_JcXe39%G`gFqOhU#B_4=t@_(QksC4_4qBDC=X&?+y>PUo- zn8c}rD|_)EUwBa(NiE>K7Js7lWuREeu1wvDH|@pzmiQ%7^lqp3k!DM>b}(K9Wh93Y z>kX@qy)zHNm06KX@dc}o^wWU!X=g6mI{^6}a3TWUwWM6BM@k@X`+^j@L=W4$6%PhN zeH|cH)npRr)Em#ly}Vm1%i_N8x=oPw`Hd@fqI7}b&G%QBj^Fl>r`5rlt^cOp_=Clb zNhGfy_LB3=I!7qN)9aj-!dxWCEa4fyY$q&yCB3-RF*@YhK9Bw1RNW--lZna~1*>Pa{-+m^~cllo~g!Ru@WF$IZ znYp2&pkwU2_OCA#(r>*W2HiYuEC5c-U7s#@E^3#l)|}TN5+dKkAP|H9wm)?$#w6a} z?ugP?y=St^lH{>rrGeJRzg=yohf`J1u=f0;LI84ff~zNKiE{m9vAKOR@SP#fFRPcs zoQ4}~=nAb`J$SJu-&Y=n{Joh7S`f;0codig`A(59@GNr4;oUgOA|}qRwo*M3V8^11jbB z$THJo_F83A?GdH>E2P~;jDO>BN~hTl4Jgx=W>QHHh7I8{agS|LIGtPGT(5edOJD&P z!nw!u4G83jVcc;O4by1X>2}{0^Y`HJUoONj$e;U7xq>hQNy1y~EaQ_RDBLxR$a#VY z{Tv|&Ph67>Z#uH{#JPj97Okg~W^b2c1q(dQz-}s9D-STu+i_TAz~46 z1`A__@9?7&kreqVf#E-^-tilW{OQ@Da~IMS4z|{QrnLum1ZFP~&vV>*5$>V3cpp6g z09VH!HY)j6D@$Ncm;5qXpnjoTMkP8g|HFwY`ILw6<@YGyTo??%;y2IzMkiJDh}LP6 z+<|1SWhD%xT)einL(cWG7`WCafsx8+vO;nZ{X6;MfY-lM;6mu_L1E@P=S~_fIqaPA zzDc$wz|q%s5zV0rSaCQ8w7?(Njnd5)+Wnk2C2BAzE#UF)Ou4J!DE zW*OhTreQJyfdN_p+Ea!_*DOq5Oy67y#>PuOnl|pwnaBq4>$}|ca}u~9*0x?iu`g3#XC?3UpPJ+!V)_$#kW?js zG_4dO)Nr4F`rm6Eog^Zw$+$MO{8Ht93}CBZQA~&~h*Gi6W2TS#sn%4(=>3RnCZMTb z6^rzxP2ICiD!u?L*yZHW#$A+gGXSU;dR@p_lLlh^Czj&7k5ZN32Np|qkvA+aaLG5n^= zzi{!2NCqYZ)OdA<=$%W!K=3>&!+dDEBn0(A!oxP!_Vk<0y71Ks1bs%zX~R6m=G*V2 zipJFSV^f}3=x_(`vj}%+StGieG%nTBPVURC^;5lodKny*u{hqzjqWhD>YvqA zef4nXJj~6`a)@5*p&GXK)X(5tQbM}dvZSB3({q)+OJo1lbXf;G^U++fNLdYm9B>xOWeygORbI@G9{Z5xl<}Li?5P9nLA=UlUCKmJo(G`BK?JHZ(I?7_zTd|5n5Y`5$7iBW@L#vx z4T;Tn33^GyQ4QF@;Rlr^g1+;(V`;* z`e&hK-o+^ZBK1=^c=v#`-utP6lYu;! zaL3~}a!*%jsz0GP6sRZQ<{g&8z|Z3Ki7?kL%K%ky@P=QBNfm!ises=mI_1iX@>GLMDnO=hNeWST^N zNwUJfqT4ZoxNk9}evx~{-Q(ykHCi&sz}_$X_BvbqLFQMbC}dijM{L6OW!N0kAnQig z7;E4N<2gRq3dG(WCWsE8$EF;6KL$AJU9O9JT0FC}Jdh;}krzpn$$AWB3HeR5r?xwmI_t9j1bB-@N>zZ67eK++t1^9av_uimU zTj28Dikg_pZxo?Al6#R6KV{=lYqdR0S%yCBYP3dad#{RsVm21z@o4>|zL1c(tkIA@ zme|UHKe)YvsbR0oQinFe+zpFBMNS2H&b%yd1#vo`wr=e&v{>#e{hG9C9G!4 z@{oo&u8TiEVaFZBh%aruI)Rt!Qk*ZeM*IPE!?`T@Frpn7%5J=)%zSyKqeb`8Q` zUN<@{=m;l1It=H=_|D@Rz@9nx*+qk=!6fTCxybnI(holBjgl&A`|5t>xXfI}ZsYep z#+Ems$EAi0E9=5cYve4HlL_E5=ZTP37Jfm0ma}?=4c3RB>7JvwI-zA2mv)!qpL{lf zUFX=ycFshc&xw+vLsCTVMz?1RNf>BQE12?N&F{ovkqcsoIt_v!LYYW@6iJ`o%swEG zJpy1?QdH7|x%~u9m`5DNrt94d^-B@n);o(J$UejAfp0sgtt%0)Q`gTo|2KFsj+;tN zKSTmksHMiFd;e=4UYavg(syI!=z65Q+2OEwQ^usq@iA-btrhC!`5pB8etLudb>4$& z-Z}0pYfxn8yplUCT8mzW<2KuDnvZ`jNM$C6mw%^-^13xO-)p1CDE(k#V*rJ8pLhGx ze0H3~NsUoGxi>kVnuo+k6fnAo!(hJja;bnd`WyqBx8;Pw`x2!gA@wjE(vwGQu~_Kz zq)YSd!i-dwX+{LtkyBF{aenl@a=7@2Kk)7^-uGSvj8>cOa#YMBaGR8wN4U!(*tQOc z!5L(GRJN+QS+hnjqr+iaqOC)=#PX_B&9y>T8NCSW+M_DZ=8TFMax7!$w~}xa+M_xJ z;k)Z0XLxJWoPl;BOinm6AA;^_pE!iGpChDkn<`@S+@m%)%OJU`8LAj{|0##09-RQfvMi2uY4q{O=au=6wC%d==gTQ25tRey}o4Nu4H}A*PenRcIHefVu?+QD((zbre-jqrgd( znUTKIS@7)ChNTJ};gI10&I)<|2}7X;&5vC=%i9&a0p zNYr9*DNHcNW2h6!_(#I2b`w9I#|!)fa*IddWtJ6XJn3onXWUmTTrVa-p*sZjte-O* zKl8w39>8Cet+1v#+F**UWjH6{E0>#crz5;z1wttQGWe<*0wIWCWH)!7=&5i&DU`d)U78uBl}AG zcSA25HryFW-I*68YVy0pOLS@vp3Ig;kr>toE@k)MD=THwCo2}2p?~&%UV206!wD3n z@wA8>2?4n6W}h=<{avD>GEODOFIQow$Rh@w(J08>-(4YO%1^B{HO7V81D4rz6W-z) zq?Lm_)(@mdja!dffJe0?Zu40D0*UEJ`sYB2lzkOiNervh$Fxfw29>T>bdMI&K;BPr z6&mrPmVfYfxx#6&Q|y*L<8IRP+i$-l_+b#s92V1GQI3I0h9b@&BIG!(Q`D;j^FQ*R<-8ix*p2v40 z{A^jP!yYkupIQVOfC^s}=rX5WR_-^jyc}i-Eh_Kyg_wq_^!t+OuQcz7YWLuB&j2+M zN#(h$NuY=^hI=e;&dn;roY=j-zvU2WjTLj*_d3{<+N2vBLz+D9 zq{Ex-Cx`R7okdZNouyBux6jO{fEFM66;36K^x{A^Vi?msZT}d%wo?3b@h+!D*ff9D~D{Tyvh;Es8NI>uzziKhF1obM8_9u(rtz+&n;2|Kx7a#vkl47krs&Y4-(YMC&{eI_qz7wNSDAKc5)x7+@ z!TF>ezw7G?(s^bsV`d5qRikex{GhDAKv$NH=Llo9+*f2Ds=5G4>#4q{TI+HJL1ffK zn;M*d^5-YO{kP|N4%gQ4ln%dO5h3R55`FS_qhA+bcm_q|tY`qDLBDG615KdYaf`X{ zTi9ms`D#uJb7VG*8{hG6aRu7`!nU^DAf!~94_-%VFX0|4F0_=aQ73EFc!rpcaRjDW zS7@vyI)54Wv>GLW7dWP{|5YnLWto*hr%e&B-CdO88Z@6i_?GclcRu6nHG5$!GghaN zO&XodijO9OxNJ|A{l14nNuk8~ldoa9Jc{anuE=kAUvePEcHEoGqtyRS* zJy4HMH$Hhkg&bI<;3;Oir|)uVS+iLRcC@GT)uAW5GCA5=+=4VKFInmIRQ(UTWJ(*n zSxvu3lsaJSJP z>*#Cg>flDmmP178Qc&#}t5dW|K{59>X5rIN0QF{|<}P21;zKHT4kg_bRwXv{Tsgf0 z!*|akj_16%?DXFwUa zuW*7Xy7|G(Wl1I|>I<}AN>5TFJ5D*_nY@|yRaFJ2I)p07_&Aod6t_{dSTkMr2{_FS zzGk_M`lj9s+!|Is62b@sO3}^^Zl!{Oe?S1xLd<^})`rTzt8y^c`$oJ`XE$Wu$-;?^ z_FW6yAKelHxYUJACI19~u_2Ij|5mfrb7266G5g03(AX3e6$PacZL!R$+PZ}`I%?WV z6iDe z*HSUx9VdaJML$>lxLdFF4Y0FXK0 zX({?2E_Gh|Q*-00$d8*PLLb_uoJq4jj+0-w@+)hemv6ls0Y&h}$ z?i2U*pwsX_1j)tpWgYnT$Z$yof9z434kHz|1n1@g?wj8_UTeA>a%$=2qey8c_vj*H ziY@vj;T{G1_2nYD_K0&UHynL?c$S9+_a7nCr3b8NYasLO#@F+NtHMxz0v4U&P>)BR z49Z_0&tD&f!i+*bn+|8~Nh4n74A+)M<=t7qpnC<9)WzZGH`AjBA5!rAMX!Ysh|z0|!HK=~rmzX#2PVbzL3JCJCh%0K&3eysoRB$TV@AC-bR!JVaPqH zLv_0x&Sr$W%Cn(w8v1I)-k0vKUh8{st~cf(RRT}o#(VU~XmBu0i3|VzMw?ID<6U6s zA1zSR#9KI172i>YB1UZQ~syT?O+1^8eEh@GqD&a zr*$q6{%=xS6xtw4GMZon_vf!=WJKHj?Yqjv3CKx%$Uzy>%T6@ipa^s+vFz>zGCX^~ z+2WKNxiIxFA7A$r$%nMBwNk|1FnAdpc8`6D11tl?z`y$Sz)xXnZ!{bKz7PfIR&=Nj zppEh~z30DyRAnT7aH3A*`ZF9!GOvb(f$&_vC?_mEtQ@YMJfMe}Jp)n(7sq`+Anh)` zBs)tNU9e$>`Z`4D%V}TkGC8I?5pxBOdq#r*zHMzyoqnS1zK`v)j>&R36L-x;5~Wb# z>Azju%60j~x+lo(kE^|(>syKm2UkVd`6S{i&bKz*i!-BrW-QLlsV6llgknGPz*C1q z7oFjEyGHVR^!V>H8h=Eti^%Gd$tkm9C)=@hoA}#;M5VG@>T)PkUcmnUi25V-Ptz@O zMbZ0CT8|~;3E(dI_0bdXtx4^Q%qHLCr~@t|CU-#3+K1@gzU1!UMO`1 zgQK*Ds!5kd-o5u1BW8|n6?-R6#3LqwF#}x?q~)IK*d_ zB&>^YN#Zxa0*T)nv?hyNlFR6M(A$p3+Z(uv-tsG5SR_It9j))p82=<^M&~?XMwTuV z%`mapW*h=Ng~8*pV=HB75FZ>9>15tiAe{gMUj4csDy%{+@9*;#vUhGo()^9nZMyCP zLl2_tiePVFHCOqutr&yPP<2iOmdQQSj!hPGOVI=t?qZAJI_>*_^EA|Uzvoqzxs$rC z+{4S^R=G_h9swm19naKH#-M`eX~kT(d93)O!v|$#{q^nP9t6>nl_V9v@NBmtyN6*_P)IaBPjwkio z0DGg#{YCtz#LJ-wGqa--3AWZa z6_P6wYcVZr|0h2>4cnS{Hoc+KM?ud|T0j!Coxpruo@Ewb>qpCc7Tn2Vm&bBhFWCmm zuOUVl<@O72`XU!kNha=d+R?QBdf}RgJQ3W^m8tdAOVY7xKNDoA20}xPgI$UW$Ju>p zVulfRUwB8ykj(OnUnt0SY)jRY+E5xLpD60W6|S<$8ff!IZbI$FuiE_w$-bj78U!a< zhJDX~(6`@5%`$(^L2AT_%wS@eV3z;{My~z@DsS_>9wxg z_X&L?i2nocM-WCMLbvK^o06(;%dS3($*v>~i!+2}r&d^;f9H@1FY!WAR7TPDJ(b?r zH1b=TQsX`bH9fJ`u*&*G(6B8XN5TaB)~-U~RbEHpZx8Q=I>sm)b6+Xyn;FmGNP}YY zwlg4(aGO|JaJElBkIL`&f^NFX3k;qnvveL7qy`I#emfq-Ey)v72CD5}L{M9P#}j}g z`C$d;a#yf(orF^*``?!?UW71b9u?!8h@wfH}lmQ;b6~o8|UefhXuzyyb|81lH7nDwLHx6c4 zdlOKXU8Hk6M^_~+Mf&mIe|R2-N5|fj1Qk%<2tz(i5esle9~tmO2dLUUohcV(jLAt8V?^glQUkpE9{H z@M^RkWGa7t5`RrpkKe2GA3d@}GrY7^BrJ-NZ|v@F8Yb|h2*y)xiqxFrgwd+DM7b_* zL5H)lXFqpQ(7%&RKJ|P;NHUIMI5udLS#n4{qUlEg!QGA`xQrXdD@rSL6!$2Pu}B)8 zNL(LqoC3K-Q$n|bj^*=wJ!R}K#K!ezASHD^F3X6L{p1)T&qKp69san~=WxeHpib2@ zNN&%yrSE#3{2ZnTxYnrs)rjN`KS_m_8-`womqJvn1fty>>Avl_a;4xh9-#w0a{JjP zZ^%5n%AaPZ(R+Xcvu$(B{igUv?MA-Zac*u%I(qd>lYnL})J}0ZpSpeCRdtEN(4(IC z5=7-l)p3ELy+o&xii$^D9*zepx?q|aq~<73)?WMa4{#p+`2s`U=~ocn+SWj!Yz<^H z{qv!1*-{mm)yg!C#gOCO$3g6W8EYj`QYAw0>RVy2KcV9j$n(p=)=#ybWm-uAcDR|7 zqW}NF_@%1G0r`}7=a5mLmcxD(5}dV27-lK~v&J@~j6chRk#ayiQtKUnx& zS?$H=cm7$CG`=pE`t$d@9=Y%NactG6K5KG)b|7+$>69t=;XdcosbCN{<(}*bNh+ov|CSESY0N+ubsGwti^^=;)#&rx@Om~;ALrgPuK*d8UdP%f z)WIlb<_rZ|>*ls6Tr*4X$-VSNvT!TM&$Ay zJ4=AL62tYp6ZQVbUHSS{B&Xlo z2lQhFfD?fhz)1ltP6|qP&VT+xOoPv?)SWYxwSzRgeFSvo5@zMW(T{VDKPAwXm?wTC ztkxr057M`xyHRr`_;0-jUlHQHa^2GG9!3$Cg)_D>on-ZF$IhDtT<^*jB2ku3WUA7~ zu$dZ+Eff~@i@2@=dz3dCuC!2Y^D1-_X|jkhk0lrclUCJ}GJSeW@j<`ySTPQNL1w~K zC1nYG3r~($9xSL8i5ey7Y{u(I+-zxdvMZ_X5ZG-LjDl$J9~`A1tpeEjmt1FYh5oQE zzGWHuq&>2Y|2Oiyrz!7EKbscZ4Bf|2`rJ>HJTzz8V-8U9#Yo%JeJ88#P#ahDqMdPA zQnLGV;(Kv;8EUy*%RWtd&)2>5t^47ktnM>%lElXmnjH@%T2E1I*bexQ!dQ=0h-Q1C z1b?|Bh%YrY`y-R?q>dCT3Hu9-eTZyReJq)HrL7Tm8f@&&q`G}Z)S*oyJ0_{~4qV z2#h`X+J^8vje+W%I4?=5XJpL=$6^+wL-RtsSKddG86TyNSGpOFl zk{ra@91#b&;MaS4UPB`=lME~5$7UE8Ka&pM5E`)dVAvCpVEuj*5_xi-qN}yTn_<)L zW9-)eaO%FWe`BiL@9wyYD9T=S8 zrU?Vr0nY$V_UUnH9`7Dde8yA@F_mtJ|4fq&B!34KATNgtZfVwk=H2`I;WSR2Ber2(4-!wb zaad#9xpir5sR7`o&;PSB56xlU|Chu3Qo%d{U@a--PztwoL`%7&>0Hv3<#mB)h4=9| z(Urf(vh~;+;~KAM!nM3*ZJ&DO%Ra-jZl%5FvWd8Q6ceDsi@L*yT`Ix~WmV zeo>6-TCAB;sOkOmn{O%UFusCi=~-mg3^ZFtS?Wq=i#3j-R3Uzx;#`si&jO+rcaQ?V zenWXN>t?tmspE6lK_HRgLBmb=IIdLT??ZaC7j9}J7j#t5)0eN@ub~yP$v9C(tELFU z;RIXXN|#4}FS*YWM9RfKQp{4>^Wa;Dng+DiK$MKg=~A3udxzp7+o4|^->1$XsREAx zXMVY@LbX&(^cNMf?7N5h|Ell9xx@1XJ5RQ!>z2#kzutIzb48HTpMJ&XQJye^=!^VN z*TO>Ct@$~F4RCX6WhFQfGB{9!Wv7yi)VS5r82aRLINFDdd|iPdKcbox7aU+Ck){L< zCEY`J$H2^N z-sjuj?3>-~2l5jd)RJT9Po2W7|ysD0zEV!tZuP<}tLw^)7($J#HgVa^U zIlO1hauIa)jmC^A+N+6Qo)M0e^ua?)S+^j|)|uVd`ISYCVd9%fVy_R>!tjRUOrpN2 zxv$H?Jp|~MeIh*R*%%U6>eY$)qF<0`zb_3`8~os@pl;tYukLc)YO+E(?kPb}{}jN8 z7Jpk3lh|n@o^+;0%Xsd<9T5^Lhkl+Q%DhXL=%FL{3-pUav8jv$pK}I{uHUOgHLlF* zvZdqC-PY-51=OeS(jd@Q^9Z~!JmvSjHDPld{YCW%2Hm+%Ub;LJn`PfV6!%?RM!wnx zUsK^=K=*{;Y&ua4!LUig+tOGzkLA4wczdP_qCa;Q=P!5O{&np+ygJqs=`NL&+`N(M z?*VpxT~dL=`|ND$^8aKLm^)EXOTMmfEGE=g{^9&lMVj>u3$F_iQl4c}$Ch{oTA@I+w#ACL1aOVuHpP$aX!ZDMw%5O6e8ntw z`-L~p`t9@qas-QA0vk(xDQak@>tB&%o2}?5{cj%W{M(4sgi>0{M6d$#U6#sw@5~yA zNu6r-s6dKk;4h_CXMcDC2jFLi*VV{jup-Cq z4Ou$Y_g9)Q&Ju+K`u}B>hyWD!!^BKbn^Tdp?VZzzR*e za})1^Dn~udh>U6(ezQHVzw6Je+Qg-mVs#EnY@(~X5@03l^vPEV}c7SV3M~ z28mGS+U4g~@F-rdh3T%&60s^Si;i+>iSA>obj9z#LvUX()3D!H%T_tgN`3{^|Asy&eTHRF#IqwVq&=GBo`wBwk!WX( zBz?6?krrh@nFYR6PbO%D3F9dTP$|^f)rn^lQW~q<2BT%bsdu-JebA7PP-hm@m%q!- z<;E?MLG8O3F$Bcz`pQN&kTPFf!2@|T^`jVtWG zQLSSgR@^;Cjty!3*F}DGebLM5w{yzJ7Z)dZx_p^7z}g=*qC1q)lm`O~Z#K3A&?K1fLPHT{ z$?3H2LxWIWUUasDEOFk6ebEE9YT&%-gYKrIbQ=QcKC>X;&BgL(RpJNO!QtXzc7*f$2w>)@PcURy{-n!!yd_ zk8La5llhn>NPwUj8B4jYS4!n~(s3PKh4*k6G60V%)B1h1Z&}9Z!}izcBO`)7+e@w5 zn5B%Hv1|s-u}cI~{QB=k_@@nG;ob~+UwZwQ-$8%z@|Yp`qSn#Ruo1lj9W>D~<^_B_ z?%t5WKTN|7r6!Cv>8G)FGrP&g8FT;rHciKZ)I2Qg4oVW#ZrPo0&0njYbWdu*bDtp) zD<0;h=iFzxwSO_ZT>@rn>Nh=iZVrdby-PhbY{q80pME%L5$er|X>cvnEfYykT{M$p z{1v)@y^`Hlskbd~Lpi#=@SBG*M=?>JV0M6*l$*q~c*x#TL3l6}ub3vjeV1M4dOGcv z->;w%NV6AoumrI8_W>>om^a`Q#Ut8rR?s`~S`q1N zMhvfi?Z;PjnB4nh=0X1GW8^b)bFjg}wT|o6hox|tAq%PRhqJDa$Ob8o9sk?)?yIDN zl3+?7h1rG zGxfb18Yi>Knl@Q|Xt!tGNgi@l(nZa7r1Y#vTL*Z*9$x|@rgHS_hjJSj5j;%7{Egrj zt{vw3vx}H$)gtImfF-AzI1$CwY23TC&Z>A!U^u3K@mJCU4}YJ$(BZn?VorUb8hCMZ zkBKaF#Mhzpq)Y~G5uvqQ6eQ{NeyMkrlj1~Q!LZc3tzk+2j43)R0yz=ivp$laXNfL! zP{(7~@{;|gn31se`Qj#l6bE+mUMj}RIuI{F^LhP{U4(UEGF%3(UjY1CWq2$0_19Cl z=7u&b55z^D*W1tcD=950;_;3S<04x0s2#a9BKb)-zyq@yINhMp!>S`*8_7XtI|!m%Fe29bQgk-9^#Q3uJco z>za0K$6*E-oG}El#k`+wR&e?|sE`}I$86Dy@{Ix9!h&$x}18a#g5uu}vf1{WVA zG!lCwko6yATH>c7`1rU`7H2~S z2@{2M#BM`VGj!yZr*J8ce`e&0>C>FYd;EvlM<0u$XVEx9nVmu0KasnCu->Pm?PIxM zZVS9xuMr;eMJfu*7tks7r2UWzAS#pE`HPJDJ-CZ{y)U;%%~N2=wdM{6z2CaQknlhH z0q@N;g9ocOhI@MaaF-Y0hjg#IxeUXRtrODUEFn-ivTfjp!N6HS=;(sOiuJ=jRPYfv z?%!E+34xuHy=k304>GjT>8)wGT=M>=S2voqUMzCUW(&M$s9-^Jr~ctb)~t>{{`l$*F3`ZqXayqa%mlVHLek^?33h*Tg(QF77x^FcTgQ9e+Mckh(}Mt1 zdp}evAg2l&j3xjd$34}{bT9VC=cvEFPrLZ; zAYSHie~E0jGSNA{wRwb%BYBkui6@@CNRGao#Rdo@OSR9>#?6E#18IK7E&uARa z&~r*hxe#eLU^$8cyk8Ld*O4*~XGBJFZjs*!?B}) zLOw8TqbitPhd^n>-3d1WRk#GwW9W zyZ;xXDdv#Ob6GQ!etISR4qjv;Q}H7yxC*?6EGXpT#o_%izoa=57H zcS_AKN@f8PG;waj|4x|T4A;X7{x({w0%uCYA?M>lIFOaWb{1-n0UBaq(ZY?iytO~C zRq8Ipl;2-CnZ&9N?S^IW*=L4I_c+N;$lZ02F-6031L7k%B9`*y3=Oy#utOZP&(1aH z#MJ?s=KL;Qu`zXOk!UkB0ULdESGqfMyydivC3INmFE@=F7?64x^UDE!dEf}KoX##g zNB4u$Cd!WFAFc&4FVCD@@Uj4?m1)$%a-@xiJdapFD*-Zbntq43AJS!wZtz`$Se6fo zu`5ABV#+|~x_O{d28XeTxBJ)LC|X0l7By)6wZBJqxa7W!DCO0@`xmNiEwZVoVxTE% zyFg_Opyv0uB8-5Q=?Hklo-=9!^Zm=jxeDjp$ZcX-5nd6teC$sryS{5#(FlOc< zhuj;K1}7I9blxMatgPpoJqvJ4|Dr_fO2edTbBriBlJwdFs8vI#4|)FkT(VrF$vj9{%O2|1cYZ1lCG}`z942L zC3sKl1q$^|3t;nw*sHf|F^w~{*T$jXB<`oA2H!`owzB8smbkhBkOA0;K)kMIu4>2T_Z>%Zz#y|Mh65gBQx*f z-4hYY&y-PvlC_D@y+DCB%HL$l!UP{?o&PLxcynDRD2H<&h33oKAC2c3w;3W7lBVV= zC0$dW2Un^$}``@;Py0c zn?~Tu(l?!j_hZ~q+Nen({CbFNgI%kY{POV!_2HqnY4V67tZF)I23R+UU2Uf0McT12 z_x3y$#eeUxhJ<5&zq8(JDrOgYkrQ)uktQqJ%Dqo~y^5;duWGZ#G`&R7Gd1;X|0KEz z%bA_+wSbvVFQ zoEV8oHc&nyg?R?lp1#b&xW50RFdn}_*Mge{=OZc7!Pptk$`iOk3+G`CW=0v=VVrdRTGH9l7l<`ql#<#4H<0Q2cR9ucF%$c2@rmQ}EW%o6Gk% zy6;~A-R-obQXjT2diOt;N8RI!ToH!26%bUAHdYwKOwXtnsM%3oV9z5NJ8}i&@^WV44Zh%Y8McOpu}ZuO8mCNQIGK3!sR_F!?lPw~#fsy4#{U z3^>>IQYf9q99&IzTD2oA8H>cA0l|`4su8&;z_WC1RhBV83_1J#bACUx013 zwm!DU$r4F_PH7mxztoE>u4DPLr4<)UuJxe`4NqKAbBsb?1x)-L3E-!Qf1umOuw|eL zkc09>xE2IrIw>>yx%MAYpJMyONM!#u=}Y$wq(Oswwg_T%=}AXIf&*3gyYAba24I7y z!RO?OOm!qS2UxjMwK_jtvAJE?2<6RWfLIseQdbP4TYbl^18yjNnSO_Kc*Z$%ue+XR~~EWAUdQaGttoRMqSI)PV6$M zthKkrl3}Z*M;M zo$h`O2t`ti?D5QfAtlz3xC(J5#d)LpeQZlF+V!+x;)USqM`G}cCP)DH z@6ZwT->SFS!uN0oK^$pE|3iUkiwgF6Dq^6}dhL5tg-tkw)x^|P$@aSGKiZYQPE zFTh_j(_JH^%pnX=^p2lU(QRr!aYmwi^$=gJ&4)|DVa{#gH*y1d2QHZ@a1~EN{k{2b z4WU1(l4LI-*~l%L*U|`t)lZ9cp;0o&+z&lo;O;omp9-3%Nvo85M2%04bFc>^k?7@Ay{VMY`fJM&fgJw>*%y=p`N7&2@qlIK z_=4?gp|zhBz%{Qc?DlwLO(FEFReYKIAjA>k;uHx7un=^3d;kaqKLvF=&Gz1lS1?_w zvy^53{L@A+?vBoVA}zEU%SGK1Q~M8!ag`nvSWZ+U0FN@Gv(2p`4*M}3!gMUoK7)5z zi>d=Jz5=~8*j}ZU2Nb6-n1F3j%2)OAr}``;hxRJpWxps5WFiK_iv>G!%O>ue;_x|N zit$Mya*_cMCIr2qm(bOcC%5zeZ*sb+xw4w?FdndDrnjFJ8z^Pk?fUI}d*Zk;+VT^h zM~XcnnW^!dgR)L-&YGQ&P?!TNQ55tyHlixqR+|@K87lyQ?IoK~z)7*$rWoGr>=;I0 zL=MP70BU-deP^d?nQ|4=_A)+`Nu95 zd88{VPt3cJx4HOzp*ph4$690@fBo$^s_mg*l=c;jV;O>-WUux!ZB4V#{@1_6FXMw9 zt&uN&N8MIG%gza2>Ly^kCaq1kx0!c1vt~=TY2LhsFBzr~A+<1LxR+Bm{T4DrFT*>k zm-F=;Aev2mVH8?{y_0Va-2Fo;YU z#o?%T|Mh2@t1D?a4ceTMC|a%S_ZE(9Si}iuJ`{w2!p5O+6bgaM!*qsqbBGMHlBg7! ziw#j=V*mA0vmaHNlrW+tyD#P;bu5kF*sCPJy1b+m>+A+J*aKiY%|iT8k+-5>=f9%g z@FOHTFjeWNZa6{bx%LIMunPz5W z6sMo~9&2*xYn+?(5O#`xb2ivQ)tzZY+_EZ!qnRJ4m#4mWc!FPq#S|HM6%62zbDY3&G&{qdipYp4ea#>z zkP~2i@n5r*by0BSx>1-U*;@OnrQX)d>&hxPEnFsOr{KoT{MiR|GL@E!;e4A^LTr(f zgl(nK*DYZnrILn^McZA8mixCO0&aaE@Hn^4imUg9H|kPH#aDi4dHB@O_KETml2 zYnh#riwC)o8n8mVUT-P1L_~($!y5qBw%(Q&Vn?0F-IQq${InI{%@u!!?jq#=2zx}O zrgZAyk1s3F9&)|Xb-jy(8lj*8i4AXn`V^mTi){?h!l7VFctay3=-x1sonuq0r_Fia z=xx-^c9PlORKuO`EU08V*l6o1=Vj6q%(@91;4*@v4$ z=;X;f@Ur>8LcZB3E`ATWoglw?BlVEV`|hlMIqtYB1^2aNn~9O~Jk5E(=cbCunls{c zv84Sjo47#^iOxw zF3e2Pzv4=M%UJMgG~zgp-7`9qHLSQ2?h@=PTMq}>Uw#FpB;T0^_zy_^!0w^0x5s3z zq|CQzt&R_Of8gZk8C;&d3t@EWcQNqFY#e#O~(Q93Sz~=_0TuLe0 znTWTF0ShV2R#d@Bjw7PP__Bgm`hG1UGnR1AHtrT_44*XauM z@qVO|6*yxvh}sHj`&SCv4FA7Hbn74XBX2BX8<3ck_tQFf5lp)F&D4ca*|~hc-w0W1 z-e$vr@fBY@r=qgPsH4e!r~75>2dUUIBV~uDRAI;8$38xa=5-7W&){oC9VVu{ymg;8 z?KN&>GYll&xr5TYc&vA}Upl@7P&3nwT}JeHicdWCbD(3!6##!BR}9Vkb}eje0HZcq z$PaqozZK+Z!FtQ9%GWGc(Qd|BO^ZKDieR2kh-9btf7Gtu5#Yv(Tm*}8D(njW?ZC-Z zitC6tvHLu~y6vaqwd)%MDEm2A7(WbjDX`dn1`^L`YYO<5`k~z;J z{OjO-a-PrBE!rzOhUjDZ@SCEIk0;ZG+F2I{+y));z9m67v|w+*JC9Bc;Qhe``%O%k z5LoK57aPEB`EwWc-0Xk!hRD7|Fgs?e+>(QJd;36t7;Yo4;S-%MpK#TjQaH&w_|E2b z_Gq4Tu@ZM(DN8t8Xr|?s*bY{T({922>?yzy!d!CQ(K+TdG!Soa@(Q7!JfI@r=URqb z&NeYYH#EYnbVF}Z)w?4kxvDL{Y!vm3EvsFWLsc>>*b@^NNB0HW&tjGacicDl(!P^c z)mUYh=M7BWfKScP$h>=*`ceRHjd{@*x#yku*R?n~Qd z%@r1V`pMX2(f(zyt(w@{iMuA;5L1IAvc`PxOedyA`-tD7{mQ1$>Qmo5-|<}I#?eHY zH7tdQH}1i+=AcK~<-L(Q*mxOaLrCsmX zVf8%(Z|Rudf~Ystmq^MVf)@jQwm+$9ZK0FWG_elPVbhnWIENMo8YP*i#Bp9L*pFED zcn-KGmI{2`Rs&wpvJpDM`t2Xkk3EZ?LA<=7uAret~0E)@F;D=`)(Bj#vQ0)BWm**Jb)nvuhtD`_C(!2YubYA(MU1f;& z+1=S|{hKbxyqyjI)QIg{TkT8jKiCD$Uo_IQi zf1@1Cvea-cn^mh(8C-F7{kVH%4fuP+>)g?G%M%O3@B?iCP5i)@5QG06L)|o?W0=a) zd^COkmR~X|r2){r=EIfi zyt@wu#v6P%1l6OFs=NM>ymgR~LtGrl@&j!bn3CLtWNJqP(6}{41*Rt#2$;Gnk{Sm@ zAi9)7Wb_xqXw`1CS2J-}0w_Yc*hW&suV(D(;=JO0-FLuW@rWhYrY1t!@Ah z>rt2|ht<*TRMSI9UmcMGM(7l8bDx#a;*8VeXBIYMP;n9%>X7#44q{L9bx3PVTw}{v zE&cgym5*3$8}pf=tHMYloDON+!bt|zUyPIV5{E{zUq=a+r3j&b~l{6eA=h~PYq|8Bwao5DEDH@ImXFkb0=1{qi` zBDf&B8MlDCB|Z+{jKjUCA+R~$X3R>#fTwLhe2x!~RIw-EOl59GtiE0NB22-<3~$nj zHB7?33tVx{?h@0!A7}C1CA<(-km$N_K4j_bjOk$A#9uJQXp{aWSkyq=8_A_G z=5YFrYSIjXed&NhiZev}#B)-+p@4y0Q7i4OVA}=YEzK^uqbpeB&%BNHC-IL;j+Z!NXBTlErL`js`iGS^e(bob{Er(Zr zJciZs48ro{Au-i^kZUnL5<_H<$1N&YejjWAk1zOqG%^@>C5~9Io17J82z43>Pr+mfjx%=6u;1?=n1Csno9MU`jhouO%T zyojAKFuYss=|u=C2N-S!S0-S!rCTBV(7F9;+%Utsv#J{1gmzxG15?mULg(0wgE`+6 zHAJE#6DF@H$J2~Z;-N=V>^gF7aJJ^Ou@zL^=7643qdiY?vRCa!C+=_VA#Ux=P(O^ zJotj*b36Zale=t>_9|_?y^$wML*b+E?aFJ0hmkHO(fAhT${ZSN`j1D#k)&?kAEm*S z_hSVj@dUw(g#Em|q|ldqUxvQ&UeFvchSZQtFX#PcHHnQPkC4k?wk6%@c+;t^WK;gf8|c9Y;NsQiGsZ7Pf&sF!%%^ZRBx z(nj2%mg{!}0g(;;kKMOMuIxZ6RKvn_p5^+P^t824i!5<*y}SEP3``^+hHu)sfH(N} z^hcKIw^%^&DT=87h3lXtWX^a0+R9h|P0^0#Xw>a@)qmy?_L(8y)}WFSaoKnK=u_vG zZEo*f>>F=16@WN+j=72^Y@7MfD7GZ2IdO>p!vVUk-Btht!PRhEnVh%iC)nt5^DIs> zM`0$@b>{NYJ8<`fnZzwwdjqgh?GHVZ zA%&ld9BlL`!+2max6Dj|@pf)y+o z_mw-~$UP8cs@nLwK$~5{2{jE0YOk3Z{ea!b`bfzDQ={{2s(EA0GZWAtP!Z-7@TNyH zJfdHP)U%6q@n6*-j37}|oi4O6ViC(bcU3Yi42{Q%kJngoWVxiIF9*GIy04-5=3s3c zd_g#mI2)^~HwH(X_^bR7F1#?jsLkYX5y6$gDxynP@G9=P_u9h${NWAUAUjccYW9m| z%u{KoKA3OWyqdq~<%#PVM_6k$*8e)P-$q5kN@)161#kSC`1_R>WZgdUV^(RV2qPEN zg9*5o_(!G4ud2}e8o1_6$&9zTlA>GE+Q04!Sef{gQ{=7^nn|jR0DKxf7~VzZH<}LU zHXL7KO_(FRc`(%W`{UxI9*n~g zZJd4bEX8?+O;)y>u5AgnEHiW{^US4EOhoc1vmn1v+n?1Q6%z69>>}|IDL6V}y9tdZ zO;fMo<*JhxnQX7atp((M_KZK;245t+vV+qmGdGL>ifgWFmb$mknM80jxc2#L#`6XGloQZb7n2SI!CHu_aGeF zj5D$m`i~@t!mP$jfK&|s>Be2y{xu)$F%Re+{dM2Z@c)XK=>5 znkjiT4orUjl{bfuaO!+6_37(OFo#sm_DMTz&EqN-v~8Fk%qf=**>bO0-)QlBG!xAx zpX6)mhBVeG1x-X-m=TZ{Nf*UVmD!Iahfg=SJ8iYFEqKOLGDiW2-q{r+<@GAbqh^=u zBT-+4;D&TD^r4N?A)Zfgj^^J8HSFLr$KFtL3I>i?)6}t0Xn6S((8et}UFb^WK)4Ip zvN068rR^y-10u0SrkCDAClXN_T*p|7@iCb}vZC?A@5n{9c|}QT`+WA=Jt>nZu(?kA z(<4Mb6xr{A6UXAXZLj1n&x;{RSk`}G;!2-U_i}Ersv^x)?ge+%rrdT%W`WV$`Qt#vlVKnp~EuU zJj{3w$l-5t!#dG>3?F#bpCoKD`!F+fAa{>-2?p~Tr)-ElMxq?D`cO~;6}rLCyyV!> zlWXYCZuuGjM{F@xs79~(;qlwXPm=8^L^;!00K63pc;0xvmAqXxsUV7}tmU<3KPHld-UJyX4 zS~~7*zjU?v|AYkf@jj=l4zR#~OVef+lUFtC#0bG) zfC%-i*`}rOEZLSj=avcb#w?%2k(UJOTgpv;bjv zlNZbv6MAc`jG+qg>K#_A+hYhoJI_{g`DwW3-_duaW1}F2dTqOxvJk z(?0%TQ{F+3m4+_bgakjLd#dLH$#-6%210YiJ=R(5`Jb+6{}t4Hil&+UBj3Gt*jIkP ziW+|Y5c%PiE~+kdoXqe=Y(XxxpDmycm4htu<*Wv3;Y+f8r67KidwA0YcL%%eAI#A; zS$m$2YrkL|q|yF8Kp})z($*q0@J^43RY$@kX-%LYy#uYFmDyb;@%OuB@-*C-QFa+Y z5XjF`ttnXpr9Bwrngw%M^Jvk@y+ompfscbj_R2=gdIzMxdz@4B$AkIo!Vm+GN#6-- zg_d)UdYx19Ydyjt?$eC0&u7T-QtrGII49Y;1@1M~^zdMXJ<#&xxCIFljC`+*J;iM> zg&MclLE2d%rlj$uFEt@=v4WcauD&-tpSyjbbB)%u97|~dn0W-5vFrqbe&5c&nZD22 zLwm=%B(a-(3TI{qLPOdP_Gfw;RLC@d;_Ub&94>jLRXzZ(CaN|go#%I5iq^L5Eqbyd z{RzwO0=l#HzXtzQ#Z!*zr(uzbi@jHRB3t~2KZp19mKo~)`@;)965V55VGbGFr;xI|seMqC zyPdb=HNIYZXk~#~>k?@ZU?Z-{FZS!pVtnrh#ztvkYqJ?4lPHZ;h7@{+a`O1$(svw+ z*Xc|y5uL`F_CgOrk}*t#o-Rjv0XF3=Y?1zd|DFPRSGL`hkq{Mx?dy@AF=qe$TDMDz zhHnyo7yQ%a&PDpXy)+_8MuiMrTOmJ>kwvnrg$`j}n^G8`_~SM!So&ige`ju1#=@;CQx&oEUsL8Bi& z!&cP2PCLiy-|ugxZ{(Bj7&UkByDoCh_887Uw}(;82lc1Nv}nk!{*nlL^aajh+luZC ztfppCG%4~dsd{f+VVjnXys#_%we0grs|rIFDo8T7FEvCL--Np^P>cNZeOJVMpdd|w zX^i)GSEpw{%MbZm2chvjptIK^l|V?eS5Au+dLL&?t==LrHnucea9pXwWN0Qy)%Nml zct+LychIG~ljx{danqVVWsjmpRPa|7}$wD4Bj%?HpKWFz5y`t_@ zCIWGi`EBZl&B@7kl5g{_gtxC;_5L72gtnXK1h>S%tG>>zrOh~W8I-W`)eKuZoz2Jp zn#4yueJ5eLhoIFiGPMeNsbn&y zDC~HKO%clvMa@d3O7Oz+O(;n;6=4?6#NRf3yyO&+iQ`P810KOyl2qs=A{U)_Ve$L^- zo-)1|`oG^p)k>OHriOmIbU5@c%S~jxr8Z=yE6LZk_Ak6no0~wlGr_J&pO*gSyTf`! zaP+S+SR-&q_Xx-8eBmDWN=5{Pc`>Tx!^E=L*=R`)Fg!Z;#+}nog1<;kC2h9av&KO~IU$s1 z>EZZb4F*Y5E~u}F9x}}(R{;yQeQAEe7?rysk z0l!h@n||KU^uLlX?iY`~(WNe&H!7*kc#9q8<&;RRXQSe7Bj$&& zjb&ZH=un&b`0VTZEZO@*w;r!Tz*4)$azc7Vu~(lyL!K@Ppre|@)XUNKxmo2DN31Qd zx6H~Ql98NfmuQ-5;PL`2KgKRc$ucu>m~9Y~mJt^>j3U8WmU?mKW^?$xmy;ilTzELZ zn8KnlC3zKlJqX@#@nL)Pat{^r&w~CHJ8#&L+pw7G=ts?6A$lvn)(Ag%_Hb$sZ|K;4 zXDiC--W_)kqM{0VARBDmCP<5d-Tior3HE05#M|7Fl&%V>yyj-4~>sSiUvC>h3 z{9gR7`V{u-g8B2WjGu7=6iUTX#j|l`_RrCNJ%dqQFX3;iitAZ9-hi((ch=~PBf*RN zm`y$Ez`3*~=X1!Mo(P6C+jQR3zixszl+w5u_;s*G9&k4RdjZ~-ck?C>S{}h_y4oN$ z?WzZfbO=eDxu==|a0+vK>NzdHGI(@N9q>vA8Ofk^WTFv0 z5XM~MV2exoes&q_z6nA6_H~(CLw9}0OLuq6{Aue++YrnF1I$=8_9*>d%PORa9hsL_ z&4=Vr{LZ{d*#9i?3;VQ<@H;rx=q)18@cF2Yy<+sZxT2HknZY1(WlhEDMT(K+?LbTP zIL2+uqWdg%$0<|4i_ppsxDi685_6IsQceTouF9X6uf>~*UlXp&&`pXbzleoW=XzUu zM^7i4luPE1X@KCfwob;dd1;k0V>6Ay3ZFr>4p@vw33WFORiaU(KXQ zdpBfmG((vL?fHcHIw6bpFPdxDvZyJ>%4E^DmGQcVQ1G9n+vf~ZENG_^m4o22U0o_WcZ?tTEOhQn%?eJ9+G7`4AKcmUlEJTH{>$ybU72f$Zt%ZVLRt;CCHUI@|JZne_aBZ#Yo?uQOISl4rjSd z;sjXC%>@e$>b|99jEU_hFf~^xy15HnlQ>|F0+nYYgvJ%tE3i*0tYo_5e5riZXRi+~ zB``g^ZWzFOW*8>vUvp32#WC; zFCXQoY7mRMg#)vgqi>|fGdeMmmk~`OLCb>H~m(q|CL!$5{4u3 zX1d>U9q6in@w4q`jr;#9iQ~}Oqo%3=hImB@C-Xa6>YgdxmB;6;5u4Oz5vlOk#v`Sl zSzdXM2_f0du&jFB$L8eyy4iES91dsy`OyAS_QK6Gwt@9bU{X|-3hTZ(*$@*H)-&=L zLJgI!;mQq3eh-$n1Jy~RGVv25gdN@Ue>cUP^iM!N*JGW|4LERu*uzG<`X`^C7-4)5 zVXQFGVR?4EsUlV@F8YW?WbYJvI&HZ$6gLuTX&HMyX*1okU@3n!2yj+q!LJV)IZnFG zSBAv0O1I7U8Ztc)SWX)Al>X0znYENs(0$R6bT%Z~*p8~)1|O4rNWuFe`g1tcszrVA zhE7Wqg_#41za`e)yRF&hwXw5v@Bnq#5sCfs?nm_C$s}w`>i=p!BmEf+E`kePsI@&N zcnf-2;9i{k`e&fH6g4MmuYZ9Cv$FzSmIDj!M8N}OML_+bcwo=|h&k@`HLp z?3_C>Uy;Lf8$2g2PtpSy6=>~%Y zGPp}{3!dQa?hYZiTkzn)88o=Ny9Fmfg8Sg^uEE`9W08@09yGrDy7D$f5h@dSArHw;gI;buINzt{ z0-L`6{=0$kvwc-`i*-xp)F@%bqcF~{@wjX*R85^OGFXh< z;5A|0zvY25&8{*X8@Y$=9-uL!_Ky>4*WPZtte42s=&5sKp&{RWD)#sE!G9%P`Vr7> z@@_(u8ZlP8WjqzxJ^{Twxqv=?{oj<<-bXj0+-mROM&I{@d(RCy`9%U1d_w*nwHqZG zJEWXTypHhU9tJ-f4?sl1s4bCzKso)_g#oY^k8PTWScn^fBbl6y@u=JMJaitr^)>}v z(b8j1>s3FTQAU0WlXU+qk3T(leXHl~mqVi$YvAE9Pg4FUU@T9xmOvCOiX@*%XgPPF zn#`S9up2>lH6qKz?ub8!%v-Q~CqPP7`=KvX#K(1za0{F;0D}1;p&lMYT6W&K_ndp) zFUQP(f+tTT-?=QE8l%pCcvKRdW7c8J&(X|0GX@fKUu>_B*PzkDK;|BtehS0j5pv8d zD=Aip5|*E)%93)UhDkPol&tYGi4Z!F9ue_@4TNjNyxvQVJU7ZAld%L(dwWLGA> zMIw~a9On(2H^#a$iD!g1xDxTvpVcOCS3>A$V{T>B2s0q;%=M^)$6s}a>#lT;NUC|h z9Z83>;YyQLThOG}Ep~*WDLll4&x|818)w(OJCL$@Q`KJu!#3udkIFdAp)!@qbVmYqV?ze6=tt; za2r4f01?O~J4a>aW*|Q{feohPTd-AEzF}uAQZzAw|;0p>n|Cfza`| zP>wV@);mfPq!get60VycdcV7rBRk%~qs`Nj@TLXS>8{mEz4PoV<7fE29}_|_pFgIf z9qRWfd}aBG?YB?_0{Z;W@Qp|7fNMk?mJL-uL_6W-<<^$}+|&10{3+{bkEWQOQvwm? zTNTOoA>~(JkV*Dsj3@Mcjb{OFm9lxB`cJ{?{$IhyVI7BUuAFW;ADVtLix>8LK^5G+ zmK*m5^@LWz{QOjV7AI;TA~-0|j!<)i^`|fS^RHFKJ}xq}+PE*yt8^QUsyQK9`^>Kd zOUA&x%B>ed=t~sL z4v%C%mhAq>eu!e!^Q?WpRog$#hV+hgy*wN=|5x(?i8KUoQrB_wa1H9M$`m)IjEM7xKQ?TbV~khcirLUI8V zogl~-n3|#eM2XnEBYN4PS>Q%ocTLX1s!Q3PMaa4@otkxRUEpme~>BMH%Ra2N?NnhDp>l;&ko&%T=aK6kW!<=$Kny^EUvd{gz!BKx#?PlJhHLeLy{;2*2G`(<@dV@llxAu zrddvz9CoGrID3I3nHxdjH+;jbZ&#uMQQQ1T$*o*u!!RWhQo7188l#?DICQ%)oT#W+ zp1;>Dws|}CQYm?i#x>ch87S5!uDzzxjSPL#)@+f42G8_BRk_?OTBbJgEkyR9ss z?H{Lwc7e>FW*FeBiIZ+vrMJj^Y4Uyq)62<*xp{sZ3Et?SuL>ZkFZI{&jym3iKeF)$ zqhrhD)1(F9K3sy&FCf>N7EKo}Su+l{WbHDKBa0R={>PLEx~FYh($KB+fSqmA?(9nk z%7BIiwZKQo$T|!Pz*cYvE~+bBp?FAm7~8R@uzAn^$Rc!Lvzx~tjrK4o<8|{eOHWTL z(;s%4O2D*Oj+0bW;RXH{&9W@qdlwjJS+;{7Mx4B(;gc9yB2D^*engo>o~9oLBUqYG zJkTZ>fM^4=kB!mDbM~wDqSk)t-16|;@X=UQXc5&Dx=ynw%7B)-qO~COOZCDd()sb~ z%3ivn$ToENHjxO2gX`?GOEDZjk267}cu(WVnP-ZqYuS*zNO%;! zHlZuFN0^YN?ceD%wFV83{8AlmfwRkLdncww#?OAd{5djQ%edk4m5pru0AV9n9fXo4 z&;;r;xZp`fSo~STqB)-}Os}XDD5Qn%5&9zAT@A?>)q_Ty*5+NGnEzhpi^&JC*Fb=% zW8dLSbwn2%8&K=gsmxxOnyp^wuXZ4tLUyghIU*}&aaYsGY6iXTNieK(hcxpob3CTE z#Ky=05yRFpGZBK=Q!+)jjVs^T{}?8VDZw>a#~28gGoEF4-y(T-gF(QTABc{TB2Rx@ zA$=R^Z~?NS$IATWhAc=)JXiG!k*Fwm>g|XDde0WBPZ7g7ooe<} z6249$!e&h~yq*PI=0#;Lj3mfRMlcEvD)#ly-GhfLu}Wlp{}fVVK+BoL86~&NK#Ki9pJz+0wec~*KyQ!v^vy=K}pq7vP`?_#80%5 zq8)6BJ&YiqXeqEbQ`5QMV5wWY{u8Funa(i=(*Oruh);j^Oj5h%PqgtwGJzp`fCG#zc~;^|IHA4g;(IzAgbq@ zSZs}7Z#7JmkzznGjaEguNty4i$(Ri4+$d3Kno!_w0aHzm7b+DAo3i{3JmjW(ij5p6 z)F8FuVCE2P+LofT>F2&qh1AiiHSN7!^;C^cpNbaLYza58KjrrF9iw^s291rJ2!)*T zk~-q8B+g3#d+DkQlr|SiwR9Q69pL#fro6@2JUO%4S!A?R%U#Mzvd?4i-b)4T@`T~^QmMU@xb;>qDn(atzb`zzo za*2=+i4|A|#b@|o558fXo`LM<+>9gk0{HH~u)*ev|Ba|Ba{@ZQh-uD=)Ev!a%(Gbv zyb_6jB8Tj5- za&nkdek{of8XVy{P{iWPN-Fa)0ByFppK2t89mS8}7>R_1#l=s#B{K`~{Y>d( zw{1o>?v*5&B%f|M|0eG>XS9gE*FNEBc>d#(;GyYH`}Iq{2Rc>Srlpt0<-f8c^ooLM zKU=R?r@-TA(ket#>^o_)yq^U!qr=qzr(r~db5mWfvXI8qV60C}N)zrT1wn<$eOjJ-v_EQ(KL_bzfCby2ut z8)bOqMS(v1svVt3c$WdKd^Qp9Og^1 z9C)pgOE~I4wo19rz9MVV*i663??>pWrFPVq02CS>Q=ii2?0b!f&LvNq)`8GmPRxBzdFyYdC-Ck2wJ!ZBu66nbd27%DbuY}n1sgY( zqltQ!dFoy44$fEd&`cG_l4R1XjpK$#tR&$}EF|HB7G=1%f6zUs=iS9)7j$(VSZFM1 zZX6NuHpun2JJCtib4^FZw1I87rsu<6=c61sfTOP%ASTF2U$)Lc&I`*>1)KLkl$$-P zBW<6&CPwinYfvvGz3qoWW|Nsl$$&I^=a)-XUr`2e*nfy13%h^acqOzxOz%&;9gU1k z{(?971s>iH1wYQ4$!)eLM?NBP`n*`A&EpSxJA6fm87gZl2A~216Fa|m54ldqm9zT1 zaR^z%TGEoDc?4GG#obTkv}9o#vDN`JcAWlg@~~%wj4b(4KwOes3mNEUmBfg#+k6ZZ zcB&oYW#+o+C6+}}Yle6BPovEBnemx9(?tx>>O6fI4}OV=|2D~>Ut;iawCwS3*N3s! ztOUoyr#Ib?71u;}(DF-i^1`p%ldQJ1_^;fTXkSgrK``2ERbq!T2k3iSo52uUj%RlPzmA%$lg%PWU2Yz=)X8)W_&R4n*bO6!Qy|U^B z_)D*Sb50gs?n1iQ)*?EBX7)7<`Do|kNfvU?&{oE?j%BApf&SV$Pz|W}t!LAW%WA5c zQKdlMvOS5*&FdYAy&aK-gt_&<;UPAB^B+3loYV0cKCChf)X0cq z5`F`B|F$WL9Z@TezoXz2_ux5jURX({Jtus!poIV^J_cJ$`37w4tJop)I@eo;5_*i- zE%)k|*Ly^3`G*IOgFkXINMVj`*XMBm z4yc;jNOUAt!cy9S?*;#l&75+GIe_2a{aNJr3fahH%H#oeoqlVtIbf&XSztN)bxi4v zRaCgRYT|F*N%Iir(+sni@`%b2bL0zST|t18Hh@Ys0#y=mZde^Wg>WbIWObE~XrI=d z_wS=YO5OF* znoEE{V@uOVh**LP-0<3KiQcfIpv|t9A{?dH5i;mt=u(|R1t|mS=Teq9?6lol1ZQD& zvGFpelWOh$4HIZx!1Ki;WFj9Z1gnNe4eD-x!{ zR+A>qF~v$1*j5EhyQSqcqN9@_K&q2y4S&p1@0|s?QMCzpyZd-RE=HcyS8F!%N?I=e z$V+<)<$yTj7{bpyg7rkf2Oo+I!}vv!63OSyLl6#gIX=e0nspKOOvZQpCW~DQN6;=VZZefv;gv3WAXDHFf3D9ASx2T(h(>{!uY0Ss#|0FiX zi3yP}H_3cJ&nUJ7~kzk(1a_#~a-=$8MpfyUF3{ zdI^#by`CbUNo&lkeS4=irm-M1;e>THOZ{uH$_mhB8%H(|{~`HzOs-?i)aK{hrSL>K zyVCyt$bvlI{R=p=BQREU?PE#Gt3hwm3=^g|n`?OGx`)~!{e~&&a-Dp$X}0VpyZSCg z(}?iRcjxyB)c0u6r{iQoR(+dXb@T}QjW0j=@HG3}{>q+X8IUCGyh{T$rli|pO;|sfmv(N&Q(0kAuY}e!A)(bCPg7H*79u^)E z1_h><7q8TrSEtHfeT>+C4)o=LVAs+>k!iIFQdVcE;BI|0IaQLGM9%_Cf_o~bJn0>d z^1qamx{hmFb^1snI1wjH4(f77CvS5FYGny=&9(IJmr{**`D;}i<@wR^Bkn3$ft8U0 zLT`&(2tt$J8#AP_bmAKw^b;ZuBTNj>Q?X*eXVa6N($UmL-;AXPWterj0;Hhm)oDK2-!y^38fq@p(|3w;llYfZE`I(Fbn`lW`Wx4t(=q4$M5Qn2oCp?Zb^x!E0|bpE znI$NjKV+D+-}He3_GO#9bE09j^wM%hzH9zJx8p)u|m)l7tD<#qIER8{apPFw0)*jAG;g+IqUA?3+;M2 zDR`7l?4CcAO0yPw1c_Ufb&WD>Fd1yBQY(+{QUCsvx&Zau^1iDh(1cN|fMyE+?&(5w^i zX}ofazM3?(hRC*dMv$H;S=b3o3-s<5*FkT@An}lUKFGFV56b4>M^114ff1UM7Hq1c zJ^64Vlb4Q&T6MEUeX>)*j>-UJROw*KAz`>ehDAO)p(aC-ekq0=@{b%H)!(Bn9+)(z zmPi?%LLT#ScsK!>`mg>LwGzRj^X_VWUM+ip76`?%MDbMa~Lpiu!R^pj$LG8`y^N8J$ojXt+mUDc71ktqh{>Rz86LU(0&&WF-Q4z5O zWChP{nZ`27d%i)v9uN>4n|e6pZz!g%TkCQc?pVqVI;KU1)@?1vn}qK&TO!VcqRA|@ zk;?|ihK3X1YlMs^E76mAOfI&Ap-~0Vm?j%AYw&YpKcBNE5VU-L$1`p_0Q968WE4L^T zWcV3cy88Bd=B)HP>a6t{85gZhCWGj7IF`0*ld)J?L``M?|ht`_o`Prl_#6EgeEX(FV)9hr=G*0}=qo zbz)_b7!IdKv5V%7^gr{Z+HKW|;V7b1kRwlOu1MH8V60J@X3Z1L77!zy`))f5yZ3|C zK-1g?lH~p!RQS$<-;r;)cM`OX&$}c)3?$dXf#VqZZcn;unr6m?$wox~gzG`cv2OV9 zO8fDW99DP&Jf&A(=S5gVuGD7@v`!brYewAA=#Dy z%=#29e_H42IySzoH_=ugq%$uw;s=+}7PoP(aop5pe%Gzdi}F_dLIQ)Ir>GEInPjm?JdkLbkiv%@pg zA(~{ya*`%NX=|LRD|8)sYg&*pEm=$DpEWPZ`*S5^`+mb`#Aj_66$ z;E&YiPi%d*7))6jXnu^OqH5J5k^knKt-s;C=XWfBZa2Ef@F+2WqwE5g1FuU>UVWjD zEmIUC0&MA+ahNq*l8{J}67@X&H%ha3Frh(QOeu9!J0C%s zAmf*J0meUK0aA*QM-upLi&;gpqWH2BWV7I58Q+;{1fRqtXNUFNifv0mgdLym7d(zx z2`(BKt{3RsV_e*fk_#w!2<7`cRnY1A{@%gDi&E9tj*TG(nW-yKA{=-q_I$Ib5O{lI zRd50Y(es?F_Xshq#pDW>jE^}tlvN=e?s2`%jlE8S_@2g4WizY?OL2TjX|9{4ZO`ni z@H2^7Z2vNMan||Ex-9x8ty(89yp#qcT2__1b=3H)jjF#H)|3XV^m`jUm%IWqXX>sy zjCGx~q4CC|ZPBia$+0L@C$v1xs@TpwqoUY$)|JH{wF&?yHolZXal*W?F@HXhUv^v{ z=?sO)I2hjn-#Mg}PyZ<#Z+a^WxlIfwm0xTK%WDRk)_u}V_&lMltF_MS?t8yFNL@a1 zm%L;WD}0PoBRE<(OS2=Jh|mQt@sSmRJfngqLQ zyxL>7JNC#|1ywuI{z88I^yy>1VdN||eT)CdXtG+A01^@|?L#yhC4li|E=FtDsT;~@ z-6J2>ZcaPQH;ddxW6zh{N1@ui22>Us9~d#iS72A*oP@A^M(6k==^+kNvJ zI@^vi%4Ry_aGw2Cf`TzevhY)pu0>re)A{D0DfGkI$HJsLeD<( z^DdLJ#PwB-{pc36F&sC5AzA$iyzOL-5fsM3$c3^Hv-Yro%?P}Z%kF}8TJ_qyyFXu> zbKd{*?|d;;PlIRos5x5KMWx`2gqZl!T;aBtSzU|YX959VJeHXezX#|n2_vc#00{an zSBnSW_00WTntd>y&0n{z-aE~6yV}uPCxg3I-d;CRTTVe`n@NZzqdUg*e)GoceDb!N z`uC;`McQ?Ki6Im@LXj!McrCw#yyl3ObQX^*uPOoL$0BJxkLUeYXeI2_R$U9h-ig@8 z0_MPo`ZVw=i1i;F5dU0xJC-&%hFlh{Z-zkWMJcx-J*e?C>o)oLZDgT)b_&8%jq}pK zaRRk2Kck2Fagd3>Qtq;75&|eYetej@ar~&P;-5-(PN;F0wzF0tkPmQa(-+=ZCd;hpq9ApKlYS;~bNi%&G^9@LRtt}#V^uy*eRWGu2!mwDsFl*A z2Yf}sLP2p*7(~((Hlv)%C?><>+uKp7QBT7?W-s@HQ!kam)#xEvr-#0qUr6G#xfI{1U3V06F=~$UXdSUWxlkIg`wk z(3Mi*hu9v9s4zHTXy47hHHq55O$+XtQPFdwrxKaH>hB&8aPh6tmDqS={f0{J!Q0+?|USJ5BH@%29aW*0NpZPtA5NOP=}%c!*0}ORu2MIaoexE6lVzQM&aITdIP`q! zS!Ma^(C!b~EZHd4uX1eU0ebg9xLwY2UU6D`?q?#M@rze_$pzI)$N12Cx?>eSgiwYN zl2z9hH5;V`ZN-^}-&g@&FG9^XSndA2C$HPrul@f4V&6vpv$4xlNaX3%i2=QfPhx*l z+870+cs~#JFU@|V?Sqjfxh(3%FSWR7&bnITvcps>G!n^-%$(i^y!67(Eis-Xat~ekaNbIquGo zQ8fxJ5GM-nK>ES3v~bKZ!kjvKvVNEF-w$dE)2^4rz1IUAWaaoWK~)9k+7F-N+}g1$ zT>H#&GNkH1By*y?pAffDnHU8TcES3iyT`hYvkKs`osWkg!ir#bp8AqS6gd=@Y{wzL zO|3n3D-t5vjR5U&FSkn*=ZH8spJ_?@xt3CCaPxzBP6qGic4)ga&OY%x897_9Py&~J zppH1Bqtld|xic=8k#xv_LADzE9J7Hmk`l6Cjp^Y|X}Ue>Vp`G<(2gX%`ghkM^?5W^^mi zqf+urv6McntT5=>@!qup);!*u6@=KR!&9+eab4TKB`k2tnLLR-C72c$c1Rkzr_YzV zK@>@YQ`Cz8Cz5I3o9gM7dUc@~D%YddDJq1X9}ynRsi_I4mPo-31Ms&z8na%3mfItn zIL_Qmin64kRfRr)jGf%yvy~gUnhcYAO;)} z$jl(+$qAHure*s^2;!&>1s><8gM2*?et-Fa2h)C|JX(`)++mQ@!5oE>mE)fY@H*Ch zc0kqK3j*~49#${Ro`^bs^{d057XC(x_*(b(Q36XAKg5Sls*k+$vJl6IgR>f$s|G{B z&mp-OrYhWwTw`E+9%bE)pO~qSrYG?l_pUUr$2&l~4Wm8~DEahV(%!;}ZShy?2QzAs z_YTW?AJnNuhHiNm-#f##2v5{Ns;pCWzv4M$4Hbd4CUdh;T9^3P!*&p^yEg7kDKIpN z6afG!dzvikATEkVAi%A1q~2z=tVB1+BCjj%wg!)2Ye^=$JIq!Gg=3o~)#%&8Mj#NO zi*wy4uNz>(%J;IMKC5&~t zebFCR_LZkP8FF2?^P(^cN8t-Qv`ax6G0ZM?5>XNZcg#oKL_EtPs4r?%Sa4HYOxXYj zrCBi;`150ZaC|&UCT$Qc+#9NpTFydMq3Wlqd*{cQLJAwJt`vb)?oiC2x^BJ*Dh1oW!N%HJ~eVQN@i@{JA@FP@2A2LO!Q6 z6>b!t*znd@`q~ypoAeAkyJZQ1W0COR?s&|ehV{=)jyoYSifI-9*54|n2>36cZA?MKg3XM*3{8i|+*HlqCnSQdn`UdL~kx_Zw%CVjM*&yK* zN1{X_MCW!WCGd3=O9oS`O~f=Fr9xf)t6M0nk*mJlw7~Sr*BU{rhd?tywL*O|bZ23T zulwTPs1<}wlev999^LjB4^kuH2F8(yF{uoTKmuNo;wSUpSLrkoxKxtU5P5m+Uw)j! z34EBsm7OK>D5!Jp;Dfc-P?QQbRv2dV=>(hJ{S-zyr{rZf66_kCV=baGnmm3}a}pYQ z&Xp!1+c$9by8};QUDnw^U!>|ZP!3Ill7}wf6AVdDUC({Ow4IobUJ&Br{c^LLU5j*Z zjtwa#lH!Y6qH3(NRvHQJ=P7Ymc7BXCnGlF(%BS{8Rm#8P1~(`g!dV;=&orHvyhHmE z1x}%^|K98o@sB|c)GD-39DQk8xFtNz-|le?syri}j}jviv<;0HJ%xYIXe0WsN3 zW`MKIVArgZO;Gh|qxe-CM}k^Q!dd;N<&HG@Gf)HY^2GguSNcRXkkl4tN)*+TMfV{2 zMPRfi-iFij5Zn7LeTCT%ho8%rS&!bvU3@1uPKn|lqG-L681H>AE-CVIpmFq&j*8j8 z3CCQ4XfGt^qt>e2C-1+xr1aED>IRNJ6hxR@P6EFXOc=G61e)cSgv>Ypsxs2Lskz>-xcNo7Jq7p%Ou}*bN zM8ta5>OViLRRwHEA7A;T5j(A6N%~cbL!|yF_0*{XPEy~}CF*h}0@-F9{el9vdCtP8 z$9WDuN`?81Q{aC*dsF7Mgm>YD^_uvITlx)w{i>irM4nKlkjHy=jjEV9jutG(U)Tzf z%fx=YRv2q-v-0|Fw95!GGt_v<#8u%}NE)%ECgW8M@~fv4+|=T0%B5SEb{UE9i0k23 zz%M~T7?wIfK{*i{R46t*-Tne^;+Vzl)ijd>xpYcOPQM`I-#8KqHhu=gT^L9DMDFc@ zg@sIjf8SV#$fwc5hdMmqOsjtziw@&hdoyp}+}*r;nO2ECSKPxERL(?_{7Kz+l}iv_ z6>AgGU$aoO40e*LOBHHvN=Y?Hf@~ zH45#DMp{YG@sBky|8$9^|4(pte>FFJ!o>B+&e+_Em}YaK4fnA7*pFG{w;AP@wjwri z;Y85pvugWjetp$oZ7X?qhc2}JaZ?ohekCF@?~_d&xU=H~>U)_sJL!H{~F8Q@GmES^Gz&o-}xYc(j^_tkX>9 zsDf0O3(yx>eN?5kniSod(_$%B5?&FnLkfueR(@AVO~+Z~^y~;Bxb%(`G#~+ngyKS(uq4thGa-KkpRNnG+K>g##$ixkJGF2{kiVD&@ld=G6a%t8&3}|AsXj)e5 zjtH);&Fph#jFLEJis+gR{R}}XX4KZ4i)nd3gV@Rt^<3G57m1DxOnhdLC`MDUXd1pH zDZ1%N3#U9BxnMKj%sZKWam4)+jXLO{J0JNCjg#QdBWZ>jYh9PH(dM1=El60N?tBp1 z54<@@w^3TDrtT_q2~2AY+kS%#t~HY6Xe`o1fv96Qcn&mP|CTbXveNrW3j9D8Rq8PE zjUC4O)*y)3os8WM0d-X>11h)W`NDj88v0vH@O0GCVQ?9bw@;qvez_oySZ_i-56T}r zy?yifnD+LL3+k6&BbptLo}hYQPtWyLhrmz!Uevis0=O3yonJ}jwVwb;bL~#T5D>t| z-L>xMFe)8N{@$<}|A!_&Y!)MZVQ7&XQ%IH&_>2dWcGYTzo+bqS3a`C^^Bk$`I(-kb z-;1VafKJ5U-1`KFMY|axn*p!e2ZIlLqwEeh5^E9yLuc^ghvlNZi)dy@FKv&P^vu}u zzTBSH_{U0kmzE2r4eFUpc~@C;=Z{CUMZzI0jKen{@ASiR6A?OyQ4B= zaqaedmy@}k5oh3e&e9gHD3tJJwn%Bg1-QdK%Rf; zgac$Mzb3WhT47yflY^_My!(YVS*OJhjXBZjlTMni!CnO|3WBk(a5TU8FJ_IhKeGh3 zW4$_cm|U*;+xowlT%v2>bpE0l1=>>|XIk5qE;}cv2|w|qfHS@xHp>HjCuWKvk4HTm zawN-D9@i^|R=@r&(T+MJ8RD_Sd`riMKG3##)>m=DkHT1ufR5sxrQhjur#&{}^ z2uY?i0XMXYvyc$}^W#|B>L3U?*91bZ4@i=odFJB&LCo`{ww@qIG8^Emd4*IG^E zd}rLD;J4piB^$xfO)o@Ximqe*sUYXq6qc;0Ww9W+yw(7?fS_Wzrf6Ozw z%8IIbn)(PVG>&|-54ZJYk12^s*_IlpSZD`;8#9V@=1Q$wKJ5+#OHK#^LY&R}Hi!sx3xu!8buY7qrt>juk@`5E8javAdWHGU)mNPt)m%a4LGbLC^UI7c=8^JK8`bhUHFE`j)E`0jMz%xj=K?rc#q%9;Pn z?S*Bipuf8VOtMc^ymH|b9_2zV<7FkvGCMM|gi7!P4|4A#(Q=@*+Q?P;z%q-;!WFE? zi==r0EF3-j!KV4!?s+1ARg&RXbBCtIm7EZWc%C?e^g&SH@{^r&%{M&RCeQ5C*DvDJVK6k>T+i$pqTXwYoLlWWW+qIuxpTm~~t?VV6584!6FunGFUOCM=9vj1p zFohBK{VPATmL9nMkkQhEX!OCBUPfP-OIKaBW&Ludl4*SI+{WT9;}CmJ^TWTz#qqwZ z%ef!b!Za|rr|Zazb6(OJml^8I=*bMFIYzYsU51}2{Bx)` zpB}D_U^qLTJfZ(|j7u`V>;|di-hKfZZGP+_jc$K7sN;2m3F)Z8f3_3|0)OpurUs$c zuaMt2m^YWNe#>07JEVVFe^gP75WmTEj$E0t>94(2PRL!FQq=M*1N*sA>1Y`~uwVadQv%^Myi&z?-F{1j@5wQ7c>8 zB^Jzr^kzjNuS-oi`E`&pu%{}tnieX^!KZpQ!;f=yvh{M}31xYI-n9J>kEPwSi=Hwt z0iV@y1dW-8)J9jD|By`s(8jl`1m?$j84!hon|S!YA{oHtk>Ix&SSfUR4#>ozx^U_A zOrYwmHX54b&{wa;d>Y4&c8}o!JfTmjfen?fR&sJ(12ZMzoT!rAu=yVb(pGViMxO?z zad1LqDU?@G7Q`__^i| z203@qxQ+1{?1dNS94F#B$tchIEw$+IrKozTFqdglhC~2ftb~x+qUS(!0|`F@BI-JR z#Ob-ie)Bbbt|Qpl;Cps480|1Mvx#G^ZW9OdA=|#1aItjpbQ>{ZxJljkBxFU%hyD0J zk(qsDw8Iju*4m~oU)Mkt&%PqQMa3z*_5$(y>?f`FjK(MdNrqxfe2VN4lg z>t*_o**%3u3whGNabpf9LJmhq5-peRZeVENhSboHlR0JT>fhggJ2dJg5!1_$gWCMw zjvPEZ{YvT}vG=?qZ-bR@JgZ;QI=r0jpnLr{+^opVLnuMEaN@R+_^mZq2uKWn!eFI{ zLY=*7i%2eELKa#qS>=PR0*Fn^PI}`)F6Sg{lU!|&eG+F}8a;#VY?`}2C2K|*#GOjW z$Bm=N`>2kdv~pdL=(?#k5i6iB1GFWQ9<}AHF;n0Ja&Iv|Mn8>vd*$isAZBJ!C7K;< z*8bH|yGQ9TL@M;6+<*cK2mSz-UW<>iU@d*cxx=OQjn988Ov_jz73e(WmL zEaMK=Sy`06IR-9Jz=`Xj%S-Z8p%VpB0>(h{tq1CAhpsYRfJBNi8kHepxxM5w>B(|0 z6{T{$KCQa_XAqK7{3U*B0}Q>_9{I zQsVETXrF{?5#M0gFC7_f=p8Xq03)f4kMOE#wQNH~O-b579Zra_AjH_TrH$leHx;3H zhUQi=-={2WT2W4h`K(rlm1@jovEC=OA_-2%+>#gX7WAU-rX9r#5=@TgVVG6NBn}0s zz#%;W`hpt~#azB)UbT2t*jL3aUC%zX=sM4VwSP{tx{>|Z7E2sEoO_SUC44}*2l_p* zZa*w&Ac_@1J~&QWcJnVUJ*rJYWUo&L%h!BiMsNF-O$r>XR4!Gjpxglxfp%*PSwmi? z$T5-|a7?&gS!)fe>UsN1Yi6J@&~@xxrMGEUm+-PEll93bt4cq-N0%%INf_*(i30MD zKZ$?L*@!%_CJaROeWC1*lYm)!O=GndmIn;)y^kuTRHpf+FCH%TP{?M|CGSSD_D~92 z^x~Zi@p+H>2q!o^8@G0+7J*G!BjwuXnH2Y8PA(mKcXxLJsp!9trr7(QGjW-BX8iV; z{C|A+*n*FThT&W5u8t1sXmSV=(!B^w>Aa)=cfOD2AQNYhWA4>n!3T2>R+lD9sqxl{ z2JcV!34uY~;?ktS^#8usp7ZY(V-|KIdvpgy<5APm;we9E9NUWPj>y;3K6HdLT!k?& z|9Knu!QSH*v~I!^D}h6gH7ve+f`J@R6~^9W)wE3 zdB7_y6+T{>j)oaOiHuyr59!3JAzvPT^_U$T>uk6gG-Qd&92AQFhl4QC{^kC>b6AMz zCpKAnKdd0WH*=xL1Dj3#&Ci#;(#GPpDHI~>*0{7biO)ySyRn~g-jY6k6B$nCbA&G4n|6~UJ}#A^ij{7aRS3bc9P{E!y%NCin+23R=#^UO{UYy%km}Y znw&2P={1_m94L)xl6AzA+C5pCsgoF1%y8JB9;HL5%fp9tDzQ^V{I*{{2F4eti=A|H z|BzH(F^`Pri-|$2moj=7p;StsVJ{D&7E3z5bCDN*tA2)#M+|N@cD&UsKm(EPnpeYI z2t|zRJ_tNx{SjlV^ZEXw_6s^k{u_=OHZ3xCWxF}W;9wBw1m2#xRE>t~&j2hM2{bYPDEs~qBljS@#5Rh;gP?e9CUHJQAu)4 zC$>gYYZm=KmcGHSvabF6WZRQ%PUZ=d-Apyvm}=r=*JRtaZCjJAlWqIFz0dvo6ZU8C zwXb!3*-++a9E!?90xgg3`dnTA6*e$XF>BYc;)^C_MTjMX&)qrNrt5v>@M8=etoN&h zBa!yGF|o$Rx7q$$-J%+^gzVjXp}sv_)1@6$D=89q`H9>N6D~S?otCduM6uG2Tf=lW ze4*ifn9z*#v#@+gOXs@rA^O!GKD=9}vx@Un>#3}CzJ9@9VF9mcSbWu#+G~&A#)ZPf zm`}viRJU%7Z&@FX3F3rn1}7}XAleoRoAfy- zfk{q=+Ez60!ZM`#i)+OT;AH*fL%|t%^W`wR9j43N)901&@dXWr*1Rc{0I4Qll_m;IYxJZqZ&+O&X`lo>HUtztiaQ*b_hLRsWOj?^qoC^7@s65 zlxi6FnkazMC)~^*xWGk5er}r1WsV4}>Y7cDd&k8c{r9Fe^2TQLF{m^l#sr)2UDg z$u-~4mtGi{3dlWe!{)>X#q2(lwTV-4^vrJ5*mMDPgS>05=<%}9_$mZWDm-$ zoi;Ig%-Z^3X&s(;LVvOeuRt@137znG=*sN*I+CM{g?&36Zb3Y!Hl!T+8_@Id{+ThL z`)a&ec-^;?&ZcFLus^}GB6zz(P|wUsb6Cfv-UjhQ8&B6=9(g z$vOGt(<^cpE>S<~{5xAteZyvumZHa6+^17-Eo#kxZn_4>vgcOj5iD7*uFImB)co+u zof-Fa2cA+9cY<#+6_ZH6>XMhZ;%=~0@d%#7+;RK=D>?*4bd&MyqHTL(3?X^Fri`yI zKOU;PJ}xaZyp8^2;VoOedM@qV=rE}&mkZxJVXT|GWK0@5sp>D6Ow9y37Y>#2e6HO$ zxmOBv=Qac2x@HD?CUjSEVehsb`ao#%6gtPou+E7HnR+(aJzKa8dwkI4uwD^gsbLIn z&nZ68r^EEW_7$DdI(hxh2P!ru$X7{PQHhaVA#UnH22CHaS1#dEW?0(780f!c>;D$hsoWxj8~88EQJoI{9(VH86}5!){a`z2)MgO0 zMv!<K#mOmEC@#xpwz#En=NbqF{9A z{SebpHu6UaX+EOFO(l?PToYQuf#8kF$T*bIZ4CnzhL5vlOPN4HuMEAfVlJN4qerBd*gwe~lmd*&NtA58jtP1Vdd4*ho}#%)4| zn(ikvM(1>uZJWhy#Z9l|JZv6{v3JsYZ&Ff`Y-@YPF< z`2D}r^J@^0CwNmfRAd5O>$jkyg7riM{Gy#UE*I-Ch65I~%!F^}XpUo}m<5q{Ba@Av z=IXebRzSDal7SMwUOIyK$T?7+au%PDfIMI);@3+Q1cAG@peI6s@-K{QYc~~yObIgH z5rh>o*krb8`hd;)1_E`(RqG-IqOetE&Nfz3K1pkF{A1Z z{Fa8976U}_YS>a4ynkC~8%FKH-SAQe03&_Aon9ozN?laG3?2@hebl7&O)RIdivyhbi!Qy4`p(0B7pv$8zv(F~zBE|+gD^?qA)W9QJ+CZS#Zr11c zSB8)BV!ThMzZw)JwObsT-N#Y?9H^z^28QUB^HI{pwB@DW-et1tP2#`Tds|m)6>mtN z{r*$l7KLTlLoO>58i*y6Ij|-|>I$XAA-D7gwNfgv)h53-l^X5-x_MD)=_aiI!5<4g zv&YYPY~}wuOjEYa*!IKCc%!dgn+Sh8g^o3M_j%|T!@6CZ3eSSfCh}m z7El{2cwOLvDw&rg&q>uJIfj-WKAFD(sc=tqXFzmq_#=gjgO<56D433_TPw65CO8X= zzYqz^0rur

#N`M=O*Cmo<^*HP*KC_ue#OuWdfT`K90zSbP6(w1URj>w26|YgIq8 z{{5sbS*ABcE;O#D8%>qq8@%py>?~RY?f($tNKW^Y70@p+GzpO~&*KsUY>ZAzGo;i`qft9>|! zkHA(N`IFN9%##vb$_mzF!BymTO+q;-+yIn(3&Q)f6MBq4PF#>ct^E$D!MOs&tN9P<}TOMLk!eA3X3wDt+LX8yKva&WmMt+Hs?r80Y4^4 z<;n(u>5)IavICv$n_lYCKtk`${*xYT)SkA@_h8!k|L77tTz*m;h1jNlI=fH(Oyh$) z1?$n1lkpU+m2&e2Fbcom9DS$DS30CEoCSzU3X`WN8pznL6Z$%BDlNF-UBs0FZ|8ia zcI3RDzN~ZHT0K&$Hu8z2dt0IV^#%;|$f*XILr5GdZBvpXjzey&3PW$s9>@314aD;G zsACRW5gH116Ge4KGY9iR3$}=8$!e0amI2DlGSN5kn-ni z*|S%0)BfC2JfelZ*-GBRy??=`T6CgconAM#N#Az4rh0ejBCB@KAKI|*chn}%G;~;s zlhvt=eiU%0=MX2p>iSATr}nHuQlM`YY>&h(-{$$_V`@}zM?6KT80_hJ>I%{hOf>sl z6DVw+J+nQtvVU?|*um5B^58HrSpBuL<@}rPsVE69Sl`J1=EAoQD~CwGBB*)T8wTo} zm%Wq-HZ+v8q(%`MIu*A@=Ic_r$79>28-DXKIkorZ0~bY+wyMlP;HBXVcJi;a){tQ z(_;w7cQgN-mE|LY-QUn@DJhsarbl0GMLy2$A)-#dPn6WFy|{RGyh$}Mio}}oK-4f! zb&QCSoFw~)K`=~q6J4GwWJ5~CC!&!whYfKh75fYw;hiqj>0hm(J* z*YeZS1RT$`1Tohk3rvZ#8YU?nx!Z{ar+$z6Bhe@&@xkz*!yo-tg_XKMO%Xobj!e;U#liF& z#E=Eo2PJbUPr^DT!=11GttC~b6Ws(3haH~(j(o;s$ui2DLzqov3Lw#?@$S;P<0d#? zZ%r~lh*ASp)Vo6HAaC?z`MX{%>vGUG;hFE+kbFS^+|%Z?X@Km%{O>WNA(;KdXods~ ztz+cxc3Epel^@-n9;_zjD{5_L9QSh_WT%%P;>l*^EtgUH2pF<9z$)c?kHJPVPLpSem>XhtE?u7eR!Mv4@VQKt%#r> zkQCo(*kR3yR`ssGKPPl_ksh0hbs-4x^1T+D7oWx-tE~&3tZ^FB)@ibW+cy@$+3Wwo z)B3m`hxs$PqX3&lz!1=|*CEX-O1Z&@k51;pvk3Q3zzs6}%J%mbB+<1it`v%D^kqXx%(xu& zc!wAh`*6Fw44L@Y55fa#1l-5r=0&VQ6d4SdpU2;V_iG+8g{pb{l8fYE@dE1~HN_qM zR`kh+{|pu$m-i<#!N)x zG=?pINu{My5k_dnL~6wPj{Ss7l58{uKQM%GVl2?u5+*R(ruaL>)cS-y=Igz!MFd9s z8P+VY)&MrJjNGzX9$o!K`USjm{{Gdo34a)k?JuL4ZfsDS_xtwlu@IoG(e*`l_W5{0 zzc5u5GiuPmp8by{2MaZcCYnPNZW~C>{g(YihPx;(^l&mJy!pJhFrxvBt5r`ew`VUT z-yE-RtfQx2wA2Z;es3mfyy$#i_~z zz>?o)S@jN6PxnygERJD9Ygc|AFF)_wEsp(oO&LbUcL==I_!@yMuw-TN7g`#?+hr1F zuwU)Q`pwk;lEN^I_2=AcRKEs0g*}5glJoMHGXqSly$;053V92*G3eeVSAjmq8-SX9 zeA6&AU6kekGYLLY#c#1>X2TzCRwe}g{0dC;QF3}69C{pAjBrU}nZWoofHDJQb#-~l zM+hvhOjamu#EMg+vME4VVH9}|ou&Seo!M2Z=a241n`-hG%p55=N za6htF9|f21$*9yCwIuOIMrXU%>ui&(pTM)Q-xJKHpgWvl%`_rMT(81NFf_jv6S*d} z02XL|h$iq871iQz#`#tfKT=%3@JojsC3f$?)vNdauM6dk!_ZiryO(Su=^?z;xGpG# zPE~(mH@CjrQ0=zRljPBqHt!~MzzFsV|AV;DO&Cg*hK0YIclEIer{4*!c2#&p;^SAvjlA^t`)jckynD&9?ff}1a8?tukN*2l=;4NYfsDR`1XRT;2aW8D9y(Cmn^s?x*{I?tJMmiv zn8C=tGfE+M*At0ng!YADSj0zi^u$;&A|$d0SZdvQPE|_xd@x=PP=Z`sCB59Nd#+Vg z9yEwa-d1f*BHaC-hV%~`tiBVaC;*%h)oP&#c!R`3b?*@yJ-*!Fp+R~tE+Cy1qW#n*V=Cp)J< zS?$-u6!x=u{5b=X|BI3z+L~226$Dmp9`zETbFtwdS6X$}4r#`KoM+IX7-i33Ulkym^$ zoA88B-g%9a)kQ9VJ>Ce+C?Ml{%5EVQ16%eumIOw2GyUW6Fk6aIkG{5|(Kxw`>PIYb zei4~BGCr9Kk_y@bO*eWhQ!bZ#%P$3eg|x)lP*x&LiOOJvVi;d!-#aBXm2_`*gquX| zvOk@m_=;Z?L!yh!2-SWCX#BG26y%txGgMYujh_qsul2dtJuDWYE2^JC@D3-zH^18s z*vp!Y&-0hH_~xYp)P{*(as1_bb{%qt0Td+4nuCiTWS~t(pYq0SDpZ6h#ezY5;}oDF zp<{hGek2xQZI>0d0GtM`9YGz3aMasBGF@1d(9fJ+hhpPA!7YWI?k0% z2TYf|5aAb(9%hk3%_L}L=0{GDu1A`wc9?_6#J>&HT*nLBtyN2X6e6;S9G(HITxC~* zRk%_QhP85xvV6&25?*|W#!a8kKp#^#$XL@=D@(}y-0Y-0+(80fiD%&HC@FNu3z%(& z%ERdDkHLPlNj>5}?Dp-}@8H4e4}<1=AC3RXo6p7v<0e+n7O<0QOl(_uztMgl(^*f+ z^l6EVnvD=?zQ2(%F8@n`vX#RJx4VR$Ymq|FFHF;2jjDi&23bLvmsuuvs1?pb>^#2k z>q;vlD_jYcU^L@}QlV$)SWxfLSDpV)4Uhae8%Hlpl;>6Q{X(rlTk+!_*L`fCYEB?~&=l184Gjut!DE{fkMCPJI?Jj_3~WrLlz zG6j0qBv4^M=8JAP{C!>Eno13UL!~_B14e*YfuEmbt_7fOo=-mx+XJMa0wjslgCBvp z#&U~`x@*$HVvdI18FtWP4I`}r<#BJGv*`Gigbu0VP=!)f* zo&nwqwiWs~r(e{IsBLOl9s7L>uCn+aMNrS${G?+}ac|q%>RHn)*v!Acz~dZM-}|6# z=-eQhRzU#^5aff-pda$hl?u?El60G7tLJaplzZ{6*Ron@ zTqQ=5A*eq4ysqAkjBmapbBpFjCNn!0LBRf1G4$<&>nwySm`*{vSTY_oU&h}uQ; z#20|&HMueMEGH;snWk{>jyXgjtU68HALM;JZQuFPZP$?sNcoGjg=rzWA$t;GLn6}pg%)D5 ze@nHFPuNFHKc!dlFrY&pGoCsyr|^7b@WdvS+PZANz;$e0GuMeC#n=8WFXPI|23@6& z-Na#03pm`%=iN)CrQ?AdJ;2Vn%Bw8q1=fF+hwm#q)P+F5_AH&{Kxbr6VhCg642p}4@%n+TqekeXX zbsvonW@^_X7MIXTefZIbZ|AyPV9rnD$WMWPxBN%(PvDL7VlQT{dv3g-p}?;roSTK* zjM_cJ(3plvz!TSuNr@79%XbpH9Smh=IwJrfJSk)+at+@KpXIRHEdFW@Qgh(^fX>~C@%fRpd8^(j zOd=PKDKt_&`Dh3xvJ9rR=VXm~0l-D(Z9pA-4GDu3Hx}&vrO`jykQglQwZ7jj0gwxz zRlYOhe*@R*zCHm)*r||ypjpJwj2L(^m2UJu#1@6pw5wwCJ_9yWnZZn)hL?J3sWFQ* zRz}fJ!sj2|dW^PjAdhRdo;q|y%@os^Es`+;*0)-WcbEqW4|$0vSY+;1cx(DCr8=Cg zFTM&DS4TI^Q;OAR`>Ut1lettMb)ns)Z-?Cv?;=IID~VeFn-de`te)=+;g~RZ<|3WY z2Iz@`RoO=Mal0mLZ3%BxOL9rEY994f4V@F~Qy+Dy&|689utfzPnJ*Oc1Dv-r{Yl18 ziO7_5;jS%%j*W{kU$Xj}3?wQtVag7UK0ODpYglg`?~y{lxm0^m_3b9>Vq<^t#nza& zJva(3YtjXEFaBi=qe%uXz-d$td-035Ly9* z1hlA6s~EN>gQ|z2jjzyu8VTT48q{D$D8a(EaL^JC`v3{+P>hyP*@rN_=5qU-KEX04 zYgl=12wInt|z5N4nLJ;WN_4^*V z3ziKA{N964U(%a>kpdJCuC?7h%NiC)WAY6cgxKkG9+>1|P(ZcrY|lz*rvi(1A8FAE(^&)*By zGL)z3A)m(%F)W@oW^}vnRfr(fXF+D76&k?#<5wM1M1`4DeEC?RUf@l@_$fbvUU z;MWInBQka_{{EcP>lJ>kG(JhbSw~cR@e)Evz;Qz&?l&m-y?vP#m>81{y(YN#TCy=< zUkm$R_jNb=6>L)b9GMbRU)Z)HLiCpB+jC3gIAoYV*n>Mbt0wicQYsfl65nMobi3~d zLJT$f6O_p^Wkm*!tTDC%=9qFxXf_NHbDQ?G{_cw58I#d1t86h6_!wi7+hro>)A+!K zt>HKdsW%SP-tAExci$NRnB+R>uI1uduVk}W#JwcrM-5n4_K~cCNq!h*)QH%a!6mF( z`HCo^axEmc136E2dH+>n`Lcce0MfR3+OPti94#H+B||&P-}vyK0`U* zVb$hbp^=V&IfoTh4d)Oay+o{;2(8;-mlUsr7`?p<@!bpz&BH*857jZ{9Ai^tNv#ac z!?nOF^Aiq93|SKzIj{UCy*N|ECm@{p(LL7R^LDaX=~W_sdsF33p(qTuArp_Y5R*qN zs)jxj5_zv93c|hzjZ2zOZa(+scX!9s{qrefA6gRpu6X`_{r_(%d;eR14^?4FB>OpE z5(gW&5Y$+m9uCxd*bekZH2m2m4?)b!EFj}w>i+#vlkPK+e(1H_`?$sQcm@0(Xc`7bM(6nP5_5JO$C z&+?FD7^qE&lA7quJQ6Ui$i~$Qf+YhBrN}@wVBXo^Dk>TXAV<^_KuTQ%#ml z*6#4a=E~2`^$*Ls;Ov3JYOEX+PNtN+dGJC zRIt8nHZgd59WAx_o!=?M>#7C*Uj4MQ65cI8hhT^&Ud47Pqfo3Y-Y!H_NADo}kCjg- zjd0wvssu`@kh&A^JA4-KPyAP*!-uROf#Sn*^^pYrQBEh=A8=?`;WUUrWISI{%jPN+ zO(3Y@F%e>i_xxY3&S+*sA5-(h1}(Z|wC-5%`U!~bx%{DqOT!Fk8Ke90=k1N_Waz?p zMzN5BPQ#kjM2O6wVrU>8YDizSua8bNp>#rw48nix7~@7-q-Dm!H}#JfIh~!IA@PXv z_%*;vCFzU0`wLH7hx&Cd@pu`L0cXbqpG{)XsXgUKq18PxPrW{+5`P-ZsrL8us~>4* z*bP;1sQteSjgG7v zY$-mK?(@~o0VOMPyS&x-AokM|7e|MRbi6P^iTPs1PN3=@^Q95?~tB{ZZKs-5U^ zvqo0`a!Zz@Mce*erxf`u&Egi!)59*KwTtEOZfo?l5Iv<14Pn5u9dT4HoW%S;7zI`w znrZB(IKzJXEtL~ea{X^7;b(Cby)7y`sWUOFoSsQdlQ}ms*p~5hjDMSQX?>|GyU|O~ z9Z3R~5+Qu6cYm=lc1(+e_I4Z#IchZfqxMm0v`9KpzKg8u4$K-0YLm>-k>pTdpaB;EBjbmz2t3+pM`SRkVvk{3_%8s>DJMFKQL zD!|gfC?P*4KH4Q}$s`T{&{YGOiMyrO6+&R305-NF_lCuiGhe+nr7mCqD$@w>4hg%~ zrVKVHn@Y7{(C+m=@Q=J-iuP(V*Wf*#}A8 zCqVr$8+Qa>c0XUajQvEw2)jVpk6$ybtUOw9==AuUKNJ7$OUV@Xe?{ctTLzD=9&y9# zx60{Z4RCAl$y!jC`gVX13tyxzqW{5E)i!)AmDyF003qJvuAQF@ z{{)B^pM<>p5i=r-f-{ECZ+1@j7A5yjlqxpYFI>PFP0=yti^l{4p4h!UgghBpu4HF% z6v$QmIQ93k94%{gP<&*x;HNW6<*-?fc;GjK6kU*L)|~x?=vVbp!BTxly1!hx(~iEu zUL!ZyyT*&-N!Gl~e-g<22DVD*F<)Vl^Rwc{gPr{CCZ90S?{EyiHeAk_k{eM>424sk zL;lMEl}uxA{n02)rQct+Nz|IMo|ey9f^Ls%gqY$xGDSUlZyQI@gStt-o?u+EsY5qh z3xxgl8sKEU2$MzrJM4vyxMNWY;ro&m3zTj~45g`{P#?chqMW|D>sEz?6Cigyk*xwn7w?AogcS~IgdZ6#wKIy}S zDG;RKZ6Y2jpfPru^@tCbCbtMQVea*psd1{J{Y$pQPM*_8W8_|gC4^#v+Ll`z{2=og z62ea*b9Kt9b~jEzmDxri#6*X`&Ym&}zIn8~2Z!TD>*+EbXYDi>Xw#abhg-~&aM?hz zj^W-sVm|HSi)HP}ohafbj%vm!qEc9&xs#AnA7@^QJatzs^;^!g9=m~M9%apjIo=+@ z$JHGlHmixcssBYZv6wcdd5<#{cBKpmcQec!2-zINtZ+N7z1Sn!F;6Re@DIEyC-b|y z_j*Y`VP^jO11~(&rxZm!$hI8K>{^?x+14uC#llPkBRt#hd0^rm1M-im@^0I)4b%wM zi3*y|gQLz`s}Dkub9Ihgzs8zwe+H@dlVnw082aQIwYx$L3wayvd@toU}TsUhwh#D-S0)hGJ?Mzb5^Hn{qMp^3kBx20XRljG4R2TbClxQtxGcV zHe_DQiOMLw~6_~OfQJy zgQ(sFFh3jQ`Dt^pA{qi-KF(LEOfk3hHTvB|`SnOT3kc`=C5D{3_6;ySg)eRjSH`Gh@kF^50&5jO!@2feA^_}^TG6-`jQ6*Qb8lMqGZ zDdIVu4tCmdy5!-p6y`8)e*7XUYt3umm9Gqb8LMPb`LqaneRdr|yaRS*h>(QdsGh-{ zYjEap%@181&w9;0Lfs=~Y-L4$0Y=kZu~85%fFmR!>XFJmEF1ku@43UW^(xyBYPdpC z_Dtcnx61mt`;sNoIvdaX1Ifc7U9QvZUZ01BOR(_ySd}%sM+0N~4bd3+_+X9wg>g(x z3i5)x(3h5aJuh6eB(XZh>z0J7UG#3eRaGQgZPjiry2(WM_bc846k$gnCPXW!x%c;d z?d)#Hr`Hah3|+md3$LrKH=l+61*9$aLu6r_C~tYe$}HFEJa0DWkb8ZZ)Hv9^6Xumdfr;NnwMTsF0}nCd zdt)*{Qki{P>G4{RP`Ih)Agl|T;gPxd{1|KZ&&jB4c9XpE0p6cgPN#ma^WfQHQ7ZMx zHWoVv;_d@i3w@Fp)PHrIl)6I84mNu;z?fI*ieyMtWdCZ$W#MJz4qK=B0{T-CLp)RG zit1#kl9B5dqKb@(ldm)QZ~211>mMn23aZtXT#H=+=2df6N~IqP_uwl7H`~AQA)HFa zu$+BqGd|4eKVEnDTkd!(#eQk=RN&P|1FVw_SxG8kf3n~VEsIqxhNB5_9U3e(-}CF? zICRf!iW1<&4Ayox;q)1nPa(LECv+gW2`n<$?*QKg(}x`h{Zwb>Emmegz;gMESHP%r$ZUHZHV^FFZwrRg0_A1wEN99H-x8Kgabe{AP=Zb3s_5w`NOj3TlbeXcZ&3NSuQ+yZEd@6Znbe;MuFuwBrWWyHY4|d z;x2cz`Na&BRk}Q|Ys%4SZ`SZgXNhnnIjQSslkTumjp-83F@f(ufgpP$%B8}+kF6-J z5W3KsNqf@l-dNM8LS=nzZ!SZ)Om>_(8}jXMb+s)Dm zUqYmp1u+x7G}!-5?(vE}!H}7jRz&c<(&4v&c~UsPpL$nW?IWx6)cfU_!vA3&wdWuE zSkw;{prM@Wyj|)y%nQH~ZkMI%{mfW>VC0p3F(AvzZQJ#-pekni9{B1M?#_GyO3xgy zP$#&9RdF6ULOvhV=xv4230alE6zu25Vyj=m6NDp*2kjy1Yj_>W+rJ-;{y@@N-D=io z+L#jMin82-n%Z_Suin4&w8`Yaw`ND*PbqDd<+srByD#~+k=bw(K{|`oWY6(WNs>K6 zqg4dnzxsXWInWrD#SfXivDc{DLcjJzXTwcZYqdlKch+V;8AQ{2yd8$&2_SYR`PXxV ztf0+%>hnc=KYKuOc}cP{wJLkMb(EKEI@P36<}K8yE_szV@h@&r7yz1d0f)Eaukmzv60zF=3)Bp#IwAS%)Y?8-ryy0uhp_~YX3nvdfm zu`njT6q40dHy)kPV;M%7axZ|&vY$=5a~Q1wbVoXi)V8~>^r&)-%fzjHMh=mD-W!s; zm&-9H0WE(m>yD)R4q(aUIQk|0Pb|k87(GyIy-iAL*;jLx^c&i<*}x)9c-5b4MN4vb zPYkWb;iPY<=k6#|msd08Hg%TeDX69R!D6qKLa4BHN_4Pg&oIFQc{yG;K*@Ti$ zxL=nu6yWLcINGh-YWY77#gSg#BbnNdS=0{}-n7ZbwzpWhl)gT6z$x)44Y;3Ab=C5* zEN9SW(==TZnbi8RAL<)0xRY>#%X(ndXWU94q^Ow<8@Pnh!dD~ z))X2Q6zz;^ER+9MdH*!}T-MI;(9l~QH;>}r`_{VmtfkYKz5mVEt>VT!RKkdjVvko$ zo}Lf?wAZgqLct&1UmBr6OUNr|<%tZNRAd{Mdq5J!i~K+yf+k;Z5g;Gh_n{n2n-IWf z>4t7WZxf4#9vEd}P!WuP*X(sdjStmh@_Tqkam@=H;!)nK0GW;(j~|n6_z9BmlU( zrX*UYd+l-%fGF6@HliSUiP}w#u2e8$ljjcPK*e6P@;Mc-pztPUjDuDz%d$I)KjH!s zUVTsbkmqmoPRsDI2oztRBbvB7$GQOX)F}S;x?a?Xkg$BtNNeCvze?BTa^MwI#dUTm z@vQ5>r<)xVxF9^3E;z=hmF}URUn(e8QUhLI0`v3a$ME z!tKNLaawn-4SrgKfR%jUg842wgpA4S2g@(c{TwX z*bnvdf?gA_t%E^X4TDB>$gAu#dFWEgBS>}G=I{~pLz*veeBZF%JT&`zSH4yWe-87# z9>mH0yDp+OEfgo`+NK}1Hig4kOd4xLxVVhMTBRtYf?X%jm$R*~*%&(q>O2tByjby) z)>UaiquJLkHH@wJCaSPKxH^J{>M6!0THg26z6*!pT^oIxQ0Sxrlucm6-sK> zJ%Sl&70L+$qo2X04KJ6NCv3boBG2Jn5sW&P7Gm8NoPHe^Yob(RN@=6X@=A%uL?DhT zs6i9<5oEPfN9tL>H?<2VLzTSxFBMAhVEr!FmY-jwJmxXZQu|h1MG>&zcnu9AWL*u4 zSQJ@Y+Xa*3PBTQh-rik6u6I-KlXpiESsTKeuZ^GDJzcl7|3f8NSZRl&5SY+j`p8Z` zwaQiI!x8r>uWXP^4#NiAX}j;0F#Zg!qW5nZy0p%x*$xGVx2&XIULE>+S(^Uk$2P3J zmgaV|g~Q_t8)V+zsQJ#wCiuS}<2E{OJasX`Am063326P~akhWuL?$lKYNQzFyyVos z`&8`-k8(9AIW@4k*V$q5&AJ!kohl-s{D#NOAnJ{U%cpyV?p>CDO-Z*u%BHp0OxMdv zEnRR<(f?b3gUNQ#+7lwaXDOq>YL9S(zE4RN==fssXV?4{K=t>7KyW_FJ-dC|P(#mi z7ARIj7{sGvn|*p{P#y;}BBP9%E-6W_I*fplAZlyShfNF72AN%gTDR{2l-6Fn&RU1q zJbi;QBbnVg1TK9qO^gPhZW+S(ozab`9QaW3|CGVh$!RYJr?)=V>m`S}i|=HHW6q7$ zCEaUXBtmyR(GAI*aM^f48^ovUTI}e1t|=E=Ekb3p30ww%x!rg0_opnl-@pDWoiKGJ zAZ&#vL%th~&~7^a@^@;P{I#A)%d4DL(F(ID2izF9U=`fVr`|wG6!my$t&}7pgVVR? zH%$uyU*2j5vy$`-;PJejQY`hSHAE|wE;@5}F%S{E%8!(gU?y5Ny+)c9JMXuGA2;0v zhy2PYzfIx(sf)yY1+7zq+ix2F@9;C>#m~$xKy06ImqSmk%GndPa|NY4MhL3?=!kUc zaSDKI8M!Sv|Kcs6Z6;0QJC#W|zQ404@>Htr!=XNkMTbpn=S4@rG zrVgAdT*IP~<-oWSC+)9w+5!r|9hNIl91DvJ{h*I>rNW1rAS=;NIcagRpdq4l=n4r8 zbS|IfkFhAxe3d;WA@qUrXvX(7%ZDh$!!HeF z8r=sWa1x!hNXO9XOo^m@*sfpv{JqF5__K{Kds+w3>FwFnHcZV&;Bw7MOWOVX{y(Jz zE2IwVBa`LKKvBb*JY9xD9i>8^j0AVBsdeUc9j{-{sO=u!ojsiYhFQ>_>gww<&Gzpz zysL=ZsxbS_qD}UEh2HC7O@{KS?ek^gEQn3J`?)Rf-^nOpmsfL@Zl`juITZvEGBq49 znHdjk1Nk?S&n>09nuceMoET&;C2b=_Ml4e#djsxYB7N^H=gP*}&`dzH#?9kyc!PwfbC~NO4|a zHpPf6@7z7gHtGW1t`BsmFZ{;8|5;Du9hAOqE6zH5?zN{3_euqz?rP5cIrty&yvZb>Vx{htf?@rBFwsi{A;T;$gvFML4k9 zy+MJ1_$tk7Fl-fMq|~+)wKzwS|Ja;L{dofVNVLslxXwVEQA$R zG3LIwmnIg;I@cy`JTHP+e&qEs^18WhZRzZTV&p&^fKEarf0SQ^No*Q%i0%aYfdr@5s)Y*KKe$&Yg9=h|SqNst5?XrbZIuK|Qidq)-J$pT zO!0c~6h_im74E|oJ*)>^;U zIOYNO#hXQbW*mP3!a+J>+$w|kKq~KLV{&;*yuj&rsbqcdR_B~8&U=c{0nF)SS|nOa z3*FSa&-((>CldG!|KE5heQNg|d-F~;%Oru)oNl5LA|3X%?eb<7)mU3A=fR^>DGR^1 zgoXRpP?*}(`&e7uxz4xwdJx|Hc##Z8Z;D)cf;(#e_pjM28D~IFDXVT)gV)t17LVt` z7LoVimXiiK8(*v@nuaZ;yv+Sv4(FZYg#zJseV&h_=6Yo7!wu)w3@g(8L8#~8{TUbx z!pL>3Mbp}2WHK_Un*j~M%CUJi6`esUg-$N=0q!{vx<50yXa9AGoF(3gfdq5mw7P~o zPEnzf=qAOvrX>Df-XY=prz4JGnXkNe<%_cKDKug_{w-K2ubGIo56s%*auhHf$5lU9*BgC|CED%3W^EkPLd#~iAz=jO_l&3y@QmNWDv6EcHr5P=H z)--@3gp)?4D_d_g)M_(*XxA=5R}=3@aRx6-EDy4_c;*;ag%_uwR|H93gQWsqc4!-{ z^%A!a0c7AIGI4<3E^1Z7JZr+s?>~iqQ4VXvXV0aQElWlEIC*H<7oG#3!3yd1`K+65 z=63B3a!B7Pl$vK&dy=FHeVttQYzRH*Dl4$rTUs=IPJ=~UpR{X#H@=yQ8MK1`>8}bs zb~E~f{@>j&Dg7^mZYK$nG|B3sG8<9P=^rhgz=+YG(n$VJ-=MeuI>rhM-{jEFF-SBF zifFa8RVuP*Jr3eMbeo2D!{QD?6g<+%_Tg=XOl&?n4NXza=#DKU1_DA=fjE#Sf~d+M z%e=|3pruFrB=If($!4RB5(Lr0ip=KW!em18PTc%$<68?nwWH^Iar_3{h4h8eh4%2{4=?kf-q$Y zS95X#`uc8bKg+KnP4eg*0gP%xV#fm$rmhV(-GC`EBu1`Rf9zylSC)bBh*7q(``@e zr5BIWApG_09G|S2pV0pnVu<=PV>@S13dv9Nq(wQJmgrt1L3Zz8?({QmWe1u*)J412 z_T-TLCHe$z1dgEb|(utZzx`Ze8CuFzxH}f|j_-|YLi#scRf{7EfMT1Lu%o=~-zv&<3 zC$w#t*BE!YzClWPU=hz}3-?o>Vton)B*KXALYRb;@5#+@0AkJgbAj2C|3}j~I8*{| zUH@d;wvEZInQTtBZ5xwuYO-sp$;M=3Cfl~%3Fqs+_kMrGv-f`1Ui-H!4Dw#VeFH`< z8~LE}bJGq=sDQhk=QQmPlur%#jpqMbV%UBiK|bi;TX=#ndo}VO^7mEPGvOT$H`Q=| zJHroQ=fQ|QE6{z-W_?-C>4eVmOPGejL-cU_ndNugnBVh`XECwl9h!w$iQI0j65@~e zG$$TcSmdQfs$YGk?t*EeLynzs%H-LXDG3PeOea=QIrHMm^{FI=<=P02q=x3n-UEKd zJwg|4;l7!m`ry271}S%mIgvSh*7XL*SL-i0B7%>FiBBP^Phu-zbd)&^#-)M;A1) zCD#&!P>_0HYTLGK{&7Hbq+NMCD={4w)0R%`tGrG}Fd$Z4^x@aa?bC9eLrfT1Z! zzmq4*l>icgFhNJF+7mc@xZ``~-7%o{vn{zIxt=jS7Hz>O##^K8X;wV-R6!xZf_vG! z1KS;Hzc%^+J$;0GT4;Zy{9k7g{lyvm8ArFOjMo=z1nfQRe_rZLZt20nB*E;@6yGto zVc!f{@K$o%anU6idX;{S)y9o5&l5@0fuzcTx%8%qy_0++l4TdjMy{GoijAP}pP#TX zW8Y=1@iD>YlSc_`kl)A7_0YjL))fO5BX*WyAiloGk9PT-Is1V6XFhnj{KcW$jrRv` z)PB|TUwu_`yV&Nx)!z(q7JnoT_@Q)`Z)`e-jjx6?F%rx`$D4vhAAjiD2fbD#6#WEI zLsz5b0db70OiIMJiW}OtTz1P8Zm{6@mzYvTzNnt)5p4u%oxu1;#C$Cjq05ltW7+4T zHhFNy627oEDX~K1v2H*S0c!kL*FM|4cE5Q6pnCz+nB#KNB!f#d$o`GCS}YH4}W3FE?Vh%!*IN-uxP#UZ|Ba{L|4M-#(YS!4;>aC~4oP|;~oNv250i!y_);4nSu zrh%elP!n)N;q0SAvd8FF15SqI5K$4_#F2JHmlD{*1r0ufkc zJl^s&paYSAL8Gs&$xuI_7*_}o^+crT#V<8&{AVr|7VY}<#Hd6=AQ-0pV@6|hyn3ho ztTz70{~Jd1f2RNRrtfgM&v;AU<*kicoUd5Kmnh`1+`b6T{(kJ>angZk7-qF`2}B= zq_+Ta&%8R;hz7nK{=`(;Xr>z0w-P$j=xu$6SAs}_v?R~=RfCV)9xAULlQzhATb;eo zqM71j?1gcx{Z5|o9Rw*bVF!~hU$bVxbj9K`7oKDi%i-5h_~aidAus|j$&CL{7?CD8 zoZf;k4G)n%gV}yigmNDp-a|oS)vtQ>)~FJkXv|bE)#pOUe=8ELvmNyBY1`1C+`kyPC$_?tiDWrra zGl|A)!piG*nQ~}3XOwd{?a70cHbud)^|CXC7VW}AV>E%?LaVQ*m+fGKm$v`*D0TjV z2VeYn9S(c-;JSiBj^X`p#JdUS1;C@|5S~yV!4=KP6#C3R6MF^*9vimFq~e1EJT#+? z>qxvb?FpI{=<$xZyfaY+Uiyq}OC!a3n4&%h=lYyg>vdJ|-D?v2_ic3&7FxR0oX(aI zc=H$p?$N0!AeKo|yaUV6W$r&Z)kX|L?{5>*PGsk7hBlzs8D+N3anp?(#M#J;2GK-kaU>6niWOYmwPD<>HI2^_u1ZbsfcL;^l$jJz)D6``*HG zC*VUpD#@`N+SkJ;szS?UgcC`Jyy|q$H85`RbLs68#>V?#Sn7a@mOunSJU(Q*N*Wf4 z&dk3yEa-wVVQcObY@4)KQ%!fe#wKyw-UXYBP$Z;u?o?7lecj=9kww{nk40#Jp0OJy zzNla|**y-`M+y}uAPZ@(xr}*`RTuDpxgA?&xfnE~Gu z@iGitGK5xXzTgMlc4ZpJ3NBX?Hen@dAt`1*DEv9-^Ol8poxd~vqV5d$JVxx<_M82# z9zCI#OKAMjd7R1o=fZu=A^QfdS0`T_JVk2sen-}Qb9|;o7RJC~^s>KIBA@*W>V3lC zwugz#>c8s|#`GqARvsWAu#~ph@UIvrpQH2WdbCDLV>|>awQxHt))xp>&vmT@6322X zE(fVFvqC@y1MJ7V(;wCGMz&7>XG<68an^%1J^}zagQ@kH$>m%n(>n!Ig(!#m3@j?< zsq~1UcGc;5Hyu>2$Wp;~Z4q|OB(X37U)xCiU_zs_!PXdHD~&QKYfU6?nI979#ILn` zliJcm7EY|xm$q0Y=_aYbRiKUx9@TVS_xnB@F;^B(51CL~_;yH^=O%R*Zaf1FA8YZB zjknC~4>NKzvo%>n--haFMs;Lz6gWXBs0ntlYKW~-v_ozm@rK9-qp~t`E|6}IxA3kU`vb`_$1E*IRMc+;O zoN8`7wtu^95$ur(=(W|0)Ge`l46&*Z7w+jKyo|?s+jE;3NS$Vz2!8;fZWN??i_!g& z|8q+Mp-J^lZ6nFl=e=+TvA+e9WW5@7L8V%2iN*>s7W{3J=N=ns(^?{&*gP&|Vi5B} zqr&R_)dMLPB^a&c6Zh6SN<`86yR@iG30 zlX=wA8*S#yy6p1=^Y?^Mwgmfh*bmF3a^ZSWZ!74zvd!%mbB65aL0c32{lA{~g{yb| z|8%do|8}oZW?s)K>U#NSbg|40drGF8Z5pGItt25?ckf3ge19xHKrj``aSQvh!(Vgn z?rtiYegad2FS%b^Y#Lfyy}9mwr}o#nXnAu{#RZO{(tJdIEZ%MZ%j{>Y*^EU%iDb&N zH}l>tNE?eroqYnT!`Iz^*Fw2oe;>Jq_z{Ayq80;DP2-s!JRCpR)hwGb`D^0SEo;Q* zd*B>&6Ehp4cXw;9_Jf9f#yT{}_UN}Qw+$27E<_>BdT%YdJb8|y&(S_{lDBbArJY#R zk&mUsHebPQ={PJch61{nV5GoCNt-q~Ms@}IaFSY)K(@wI?*x|NKYVpGY^R|m<Loe)y+%pIL|lMjRQnIc1O*G$8T(jPiTg!Ql`%dUy#rgGKPU zji~HL(A8ug0!#Y>iFM+vNdUX(`J?JZQSGUApygV{!zmj~X0RVWqzP)zs;O|5@@CN8 zjHo%O0^F}>C-H+-SB}nRzmu&Rq1gX@vKI$FtP$jy3zPy?TX+^)*UiZH+oOWRRH)?g z%4tM-nhUMtfMFxi5b=W9y@Z|7{Y1HVe;U>BkIP)ylc0X1CyA4}@vjFhJglY-4=zvn<Js43{6SfJo$R@xEW8*6ZCV{UcQ7_Nv`{Fbqk<1UeMv3J(w+2*Y69liJ~%v zx0R*L#eH8pMIGD~UIle!$=B&n`{=Q;$c3YRP-HGK2NoR=&-HtEf`_^(-<8T$tYms9U5~06i zOIVgdb%diLz5MN^-)rR1=Asv1lzguY5X(Y3UegNd&yE+$wQ;>_(gPSTc?^9&5U*w0 zNRv5c-aIc^LkCE`kL2RH#6=Vd6~Ivz2>J=H*@Pb>fCy_wq9p0>L*doWe@FvDmy=CQ z?JutWCIy$N4NB!>gQr@blpY-~Hta+~80Y2{&fZ<-cg+OfxdD+y>rmW+#43uAG1*7c%jmSV#?sufSZNBAgHG|F0a{+7j%4oO%}I z>_V%*lKi1PZc(hF)h*treqhIKG}oH1b#acKYuOWt$2UUkougJfQ=!p0A+Vu8nuTl{ z>=CFz@0B~R6-W?dJMR&wEVl?&De;w-0MJle4=k^Z_GLmxH!)5QHzPvt zQ&7y+rO;0bcn8!6%b$UCOx`#au7jyMRtUv(?h$jtgAZJ3YOzUwPBHy7ZY1t`?%#=O zO?>=V{!=U4PDkIZhRgwZn|$kbC6-RTLK_v4I@}qu*NiA{5_DZ0OKW^<^z9e-O9=Nv zu}E?gM7H}X8oE-%t0dj_A6O^8pYw_Sf9o)`!dqw?dt>-J>5F*`_iyL#C38@V=&^o$ zRU<0Q{Md~_ANWmqoZK4wsgH?YR$L^iRGx7U5JkU@A!we%m3%&D@dEyP$vOjXjJP>b znae2Zb$$oRRwk)`ZOQu&M&(qq2M7rq{l8FAx(6crl+?7nxHHeUipjT?)Z^bDfF?yN=NvT&m?x|aw;3UU&9D=${KV5O4S9os{?NvM<0BcgcVP|; zP+=%WR&RNb zp2dOXU131byVRKUjWPzvZ5pbrw;}@@=i1{e1#3eGdGW%U%ly>XSo^HR(AniQO z|5-dbd)l}JK%iSu6l^W()@gd(fNKKkW68{EHghP4sLQ3_dM0Q|3$Ki_)VLa4{ zRdF$5Ostpy^q2?cB=kgr@(2&_x;N)6=I``ukbXQ^bbbF4OQ4*lo%C30@Hmn}{W6|y zRIIRA(6zZC;5jq<|M}u)00y1yqk?gGpz;vqk!!Kcxy}Ss{%%`T&wBfQQJ4ZJO13%w z2A?W#eSl2GttiH(x20YnE)6kPo`qhd1l;4?WKI!6mCzyFs)}Ir(CyVr&vMbGiVX|i zrI$gtrs1pYR`9u7)n>21g>VpExg*&Lf_BS=&{SjBS!FK5`6PZfr0cv z4j2@G1fe|-S>)aj8lwy19ZRQ@=1ebe@al>m>aIm%WtaPrH}0DiG%KJ&+qnC{H)(I^ z-D{nNkU`|j;5*rm?VC-8pw{7I23_zO1tGro=%PHWdr^$|Q`g0IuOhsHY8a{(172_w|!AYtUjOlB_L{FH-f!LpeVQVo}X1oXcpcJH}#AM4-!@3@s*lG z8LcG9f#HdU3KyiJouCD2w8_mTJB!^)R!|(Jr^myT=NPy~XyU*9O#9R=q?GyhakbW& znH)uhu`v`zDsBBIA%VoGblaVR$lt-4@7Q}qYjZtBR|s&;j*9Nud915eC6+<$;~;Ce zj9Jz=)#H9oYe=@;lk7z_MaMudrhA?BUWrqJa>!mjAcEenLF}yjodw-Lntzc{gC6TT zBk75F2VF#z7Xu)9>QMp9+%cpH#UC+1E^4|aIW@_8pct^my+&6F>$7A1vh%s2=;64D zxCJckKpHNJVxetEZ=%D0lSr~Ms08w^uLv8v;6&xJ>w?3g@UjaG=~*KC$aj`~*b_Y@ z&uJN8u`-ZD>y7{3GuC1_vPB~_l-zg_PUn4)2Pj~BKHlGx0VzU28P|jRvSO`k#zN4E z=NAUuQhUC075cOt711H}wb&|hNo>FOE<6VxC`LwnLK(L;vP<_Ee31hzM;Q2MF~!35 zW8uxenhdgHIMydP{e~mm|F&;g(gn|*6(1EY4RWW9PPs2pTi7i;`4DqpCEPE@B(gV? z-kNU0uUw9@=d^cn9m|N>!1eJi2H}Sr5Q->3|4t0u+4yTwmcCL# zc{W59N#eNbsW=dALIau2C+v~eJ z3IEQ3Bs0RZ0KV^eqjT#1`njZ>s{7w%)PstrLAo;ZNm(Fl{R+T?F#ZBsTAuVR90xb1 zFQ%n&8+!7~DMEB|5n9OKdm`;?VV&5JhUKnE5c>RqObgk{e^RCxnBJawmUr>pkHQ6F zNmKDhVxOYSd{bWMp>dtro+kbb%=M;-r-pY;Tir= zC!S3kZ36YcZ{?9Q9A(R<<-hJ;Y^@RJ!uW=-?)Q?*!v}UM%hWzahf5^Ya7IJe{7cR(&I#UZf(Uo5#-YWs{ZG4B140^(!R~M<`wRHZN+cF#trV zaK$~7sm*PAU-Vq3==eU<*gJL78YoVJ(G!Iw^`d-Z-dRXCXs|MDP6xd*AYIAz@IYp-U=B02hypY+#-f>kllGxYMW~MIIpMj*QV2TUT=&M8S7{-b^mBJd zu$CvKd&gOE&8I)rEoe@(qIUQO)~<}^4}Gw7el^EZRd_5_PfU?u`Sdyt^-X1;s^IDy zx{LU<+}2Jm{jOBcjQ-dP&`l&ewZfm8U@Mb`ANCV~$li8FlHB4IqavnID1xi})Jo?S z&P!Z{!x|>F{m)xgU5fH%q{!M0>f7Oyx9Ku59-#;5N>z4l-bVJpXt;ErHkWm(qI0#- zYOOc5G%-xJf4Jz6!itX0^QwJkk+37$z2-w38Iat0qV1qz!OzGi-DpV#OMBkkwzj*n zKj|MA<9GCb{u4aSY5{yCONeI1@9MrTEyp2-cI-;W#`#LOCf^cqm{LVsP=V)GSK?rH z{pVkVB=^r`k5k+R$1UA%wKt^nX9O^hzn+3OOc|gAi{a?w0Tb*EH$^oCwbFaHJ!+Fz zHunbg6viED99@^U%-;x5x}_h+h=Q11MP3Qr-K@$8Lb^eFP(HZ6w!V5hz)S4@B`!_0 zZMhPci3Q7)@*EL@vtwbp>ti`mL?DNr&x0@f0XQ z!UJMC&@EN`h==-SUJ;Gv?_^D!(DZD%k|;$;T2Z#%d&mzvRgt+1IT-4HDC30>b<(U& zxW`tSi@um3IO18+F2;cn@1N7iZ_6xr>g0^w6V2Q759l&aRH;9L4wcaUIKQI}RT##l zz0K0G1T{XNaA&`>V*6P}Zv923=G}}KPy9b~&%tJP=K+Hp@4U3_7#?h!};G#Psdn4_$Ahh zyVVH69K0{8eP1q!Kmv~{4AzWv0YRG|`9F~ay1o3X92N}sy`ur5*h@_fmhH_GXK%r{99AS0e_v zRi&_=%_z2E?A2~oU}pZekBL@!!DC>)f{g+F7UY}TcO$JfYlZ;56;WykO=NT5A;q>K z;%^}|r+IqdDx?)9ZX;M)E#uyZ3<)|yoQ2$xMvat|%CCjs&Xt9`HW9SZ<=;lMzPz(l z51gvoEhb_>5t2fWMolmaY$n}Ia%o0*)!fRfdtrHdA5V9D-`x4w6{JU7dnxNo6tW-5 z7ynj=y7IZz>ObR1?|=Bj@>Etf#iy1>2lVSC!3APC#>&y@!%o4JXNT)T^``$xf~wWp zmvCmzwf#5#WuCWg*B!ALBCFYA+FuNlC6srNCnV(iVL{I#+jb^-d@2Za={zTwRnCL+ zLm%b@?ZL$!+8R-edj6{V@ezpcR1?tavX`Kb{+Xs6TEW443^mCvvYH`@GtOGDgT;;F z%Qml`>|-FN>squW$!J(RA`dHyeV?8yEp8|X3i8w>gE)Q)2k}@*q+rQ)MPcR51rWS1 z+`soAHb1|bc!$(55aJEyhR8%ss1BS?LSNhS`nACvUu`ahIE&*n?s&`wx81nOr~{R~ zkTb;e5ZwPY$$KBl$;|r+{3(s^pk8-L9=&Y(zs_+`%2la_B_;M|OLby0EwpROo4CXOpyD{)NJ5Z}kyz2AzJ~9PAS%3On`Tt9oN^g(` zx>?=4tWx?Pp8rdkqSFtsTJobH`=&dF!TWHpy*4NYkJZjwx)m<@4RSsAj)&mWJuCd;Qt)He1mF-xB7OJU^ zK@97n%eyZ}&WQ*tydbY&!*1TXk_{ek>mzFVH-1=S)(U#sm3v zc$sIQpE{DtsNd-lZA2*?T6j*fLOD8+g>ftASjmkWRk?g-Y{7Q)3lwfn_#yMNY;5^V zZ$%XxC#99!E)O~Z=P!@(Pm?Us@R(7uP$PCfLJ9-t()@qq4j z>EmDOvzjL=1v*OuOJqALH6^5;nYoU}kcN-~#FvrX5t;+s(jIyDm?lX@*Gg&^*krGh zMY?cLk)|E5&4T~snoY{`&%3-Qc4mcr)dM9RH7+~TSqeT15YXh}Ov7{Gm8b&D>ttmO z8I~1eDhq8}?%HI-Bbpv!T9SWFOdG|R36(%d3p(e180n*qRA`4&9eKjj(bkJdhd)lR z?EPG*`8gKc(HK+1WE*6sU&qdTiH9BM{y{A0%3*L7hq36@dbJd}VlLEGRiigjdo-r9 z^iZBI{Kt-+u?5BrFCXwP^Ko+hD;114%7LE%`tk)kTC8Q@&2z;&cyssPKj_|@@~DeP zbSVF>r0?3gJDG4qdF|^0HUjF4l{@?It)$@mDKet~6|Rqpe|$U5%)(vzBy8Xrwt#@A z;ZHks_y6=3=K#+DWY}>mW%Zh`{N_z)o*^L#F3Q}^@qW07%{Lu^yGX!02KMyrA5o_i z)Zqy%ovb4A^d%>0QU5ZgZ43&hy4d4RR;6bt#?lyOtTKQpA2i33OV9fFrG4ydB^7nh>>< zf1Cgh_$qco88eDL&3SdVB(F3A;{7tz=(1@-v$2odk`&P!PWs@|h@2k#!jL*T36W#m zhrelOWUeCOLzxh7A-QL@#n0(PbN5lx%4dkd6%e4^f5q$%yfBn?O01b_J}sotY3XDx zyvz}@=rEW6I=D3_ojDepA=u2ZGSMLwzQX8a$3tZbOn>xe=v@b=N5Iz@6CJ~%x}mP&Nt)U<>B~(<-7ef%jl93p7evOg$M}d zsxEvq=+I#doCID>GYDbj_(18{&ch*G65><`VW_^Y>Ff^`wBdW#Uc4X;+Nx9K3X zoCcE(iC4eXXut__Mn?E~e=02Cql3^-C+%B1gOXWNJHla$?B@|6)hr0kgHo|#BIndR zWA@fJ?!%kGOGKUU6@RL-~a7AUq8^}slCVG#U=Is=%(on9Bxs2iyj$@ERBHd zv=u#KeJ|$~?EL4*)^?sgU;(S)!+{U4?0Os*##RA z-Ssvu-)5(y{~0O^Q>L4zbe7Ab8_oQ+=(PzDEeZXKI+uLaHx%wj_cGgToT zSFw?0G7fNfqT=$fsaPLYG$*Q)Ics6W1V$Es3pWR`^B`yeOd4ZT8i@*_BMnkw`uf8( zH|bn8q=8{%9*P~e_%AEeK$7j058ntbsN3f+zU;N&PqIhq-(A0$__)w(EZlX%R$%ZpWlb=D1iZR=MC(b0_hcj22SXb2V#Tr^o@0(F%| zB_fpinp9RWa5*K=NH0_jm^PHBqtK7ln2eZfuO*3tJn&H7VfR+qgT0L>>sC?%M4!Gv zY_Qus*pH2*yFC+{FVEk27bDGpVpS`vgm~%(BRwwxR+kTxb^FTRUgFGm&>=`U&>Mu7 zFVvAEB8+^qu90ui{>$lYS9=ST^l5zw{GX4Zk~nTxi^ehMg*g!ld7xg*d3UR4;hKu} zxw~E~F#=!0H*zpbW&=8k%U?BqmwJF@9)SeX0ah8k+r8s&B(Oi3%#Pi)t>n7qvZ zH)k`Ky&9DMx@UBbu@gS3AKi(uXMnmt*p^QfpX_6WLHq9!A=|3KnNs5H`*gSug1{*~ zJRp{nLQ&}L*%kj~!Y}qlJ+&it*SQPqm)#v$4uo7j6n$Gs?^ZR0$LHS>N0ozDf^jBi zm&VE2{e4ej50^q)?C9j=Nfll|mtgl}Cbdv#?i*Y=oh`d3h|vk9 zt)Gz-HU$XsnWPF(@a2S>0q!@^kHeUi&zw`??3N>zhdV{ogeu|HKI`sRK~A+ z)D#I+zM2JJeS&9Wglf8N@3j|}oc{LG7^weJ2D60K+A)0s<&axX>r8H!sQpRac{LqR zA@w850xsw?_C3Yya^i~cEsc%T){q7D(QW<7W)u8(q@tGFrT93hvPnAfO2MD0H`ney zO;6f&qN@TuTjY624@W0&SPejsJb>6UOoPhuY5*P*7afj(D|wYzNQnP6Nc0o4jT#8j z4T?xV=u!%Lj0Hcxf}#H7x6AmS-)<#iOmOe&cs+Jmu}IsH7~3+T9>zN{L+Hrp)4K2do1`bCU<*Ex@UjH8Hkqi@{Y}tAx9k zxyQodRP=r1)5h9~E~2yYL;l?4rzR z9!q%y?eTk&rxnkQr1!k^p(%rZ%ptKmP*{lvJ@$Z`mp)SeQ;z<(n65`&Xg|YSmLFp( zTcJ{3Bx#)=(J0S<`^`HWu9%1cxk%M78`-TlDw_i>!2jYYg9&rx%*P6L(C=SS4!C?y zW3ZM;(=RdVA%*&aC|oF}Js9(b)P=oHcw*zY?UP%C2e&&(B(Au9ezEc8SG7~4XIcE9 z-|fi*)D5=G*;eJz=%uTFJz@8k@eR}6V%UsIfND&8Ki zgmkjbxBibMcyHQXI@x0m>jVgHtdv*?t}h1Lv{|XFv^}7WRx&+7qk{^l(muqIh5I^1 z%^Ub}6h|9eth#)o_v z^0Ptm6a=3z-F-b}S<~K=G0xow;IdK@Q?jF4hcjh_Si}&hz@1l5H=4aQ&--fuY4A@b zuxXHsW;_B=Q&SNYh%)I$f=H2@YPt<P+dou2xMX$lA;)YUYzcXV-!Hgg;%lh;q+(aVjrWZYY`zREW0nwyZlbc~^&HcL2$}K21_WkR4 z+!I|!nVet@=KuKe4otiR+a#V`ZzdP)Qh^5+6ZL6J;htB^6GHbPijLuN6lTR${ji6D zKxD=1sXYC6;D0U+vy0nh*m{{cyNQ2peTLZnxt0B|2zPh@e(rh8-z2blj5f63jdyRjy9B0$9p^+Z+{*+@lC%VIIigrbOe+^_WB;k$OsUxWnSt;` zYAmH1n1J^5;s5(^(lqAF!OS49{`<%n);SDs0Ij>m_VzCTaZavut_r3!O^rq*wG4Yk z-20LhZ2)cV#*wM9#pJ?{SuX|VNgYPgbm#7mOaJCyyg6RoujcK_TiOC!qJqzj|Bi)q zSTdv3Ka-wb`Q3tA~*g*`T@S0tkCw6tW^bPN(#d=^~4z;2ZKKVPS826>D7 ztnbQMMA%{RCvD5<|Fee74y{N1d0>>GgAoBe@#)2&-L|A$k1E#tQ>K^WOH8Q9iPs{j z&Ksh=GVf%^q}PVcnDhfZSmM{o z6#tRfGH|;9{5M``rs_jEZrI9^j#T;t7l=cPHY#jZCkx+?SAzL+iH(3Ipb9?PmuoKq z;WA^u2sfm8a0IpsS75>awPZ?j;+qkJV0q?Bi%5foU2(BwUb2xh$*c?D?p>R zWlwle0H-DH2Le_hzi)32-gCW1mt+>)-Lw_z6?jyn`zMbJuEGdn5+k(byU6?H7i?wX zCG&9d-w0rWWD6p6qZn?qb84r?!A{@60|QfAjAi*$wy)-Ye$mGhNz#qsv38;=S*kAJ zEd{k2*MKj#u<1C137-!RSAYxu!Bn92@XU0SJHp|*W^_Nr_S|fUmV8n`mBs#V1Ioo_ zCFSL;SpW@d;qhRr*eanSLrh!}6rjwTcn|PEdYOzaJed{jIP9O_yqpUD#WE^e zcxMcxCP1NVL@=r97jWZIZ}Oux-tBJ1<1rt4i8KTj&bQuY5OaF#L=Ixjv#y{xrMgkzp~o209RfxSI= zCz1k_$%fhoKmdbQ_sxus6Tc!Z&JL zj!h1KkYGJ)n-@QJ<$8~pJ(aGo6(t(7`uJzAJnIaZ$^{OW82&tJYCg|=!SIusj$QE} zOC3i#Jq>E$D<9tPth92(4O`zqR}z~I7;js#Nof(L9WN9iegc^|_%*o*M0w6O15`u) zA_jjHe~D=}@Xs#=i+aB#;mYF&HJ8mQ0aMxzR1M;P_gZ&A3Z=r`N6QY%G$?DeS<(qR z3T;%q_1wLG?oR~yqih0em2A`SPU?k;I5kKwynjEK`n}ORm(a^Wjt>-5v zwy1|E%WTfc7bSe6KrvDa6u^kW4I-3nGfPMX~>>cpg4EXnSX< z4XYs9x&Ax;-ieSs$Dub`7zvVbw#77d2}3*^IGAR!4@WmF-8wcJpGJHplQYdK zG;k54*RD5PtAzQG{Yy_JO`h7SOXD& z;yd*K7Ke!#)<+>bb)tRpE}8US(Wv2%J@`bce$r^n2}&3l>=6zV{wjPq(r8rKd1Tq7 z1JF@6Bp2^{hlW zwQKa-IhUx&{)DmgrKzI6%^RPI;q55wpjMJ%5cbvfuTaIN5lujT&KO>{`9Sa6O8cW;>sIP0`a3!2$#}UpS zTK<$DPk^mdtCOYqQL(Sl?iu1B*V8WY(!!UOC$91qvX!0C-sxJg&(#n`ZW7fv4B z<3#A&9ey$N0wVLgs1u#$#II+CHVFI#HU`zT8wSDsGh%^jmyPpF0=^~f#PcjlMeh31 zI(Mog=|rsRpBZ-lm>ii|qIHDs+4!8xDh$k8^7=*~Q=z{6c88ea16C!`b;dZc< zdJ^QQFymcw-2PBsVMwk>hthR6H+>g@6|KuHWXWi3`3uS)z@cIds?{B{xTWaCw59+= zG(_y-jfY|#h~Tvvu@j#zGJfiwPcLg6z|7K zPkzeAW9f<%vPQOG=ghnZc{#P?EbU?0QrZ8ZW~0kPFBtaD*aVF+Uht5&02t zd}NE&c2FV;)q7+!U{dw&bik9WG%D`94{$(wPu@;Ji5$qW^tkxDynbkw-NnX#$fKgd zoad_F;k;3)bqM6tE^$K)I;CpjJowG~8C9=tU|=X%-@VdGJxU-c8dIdxOLdDM<}`~w zsbc**yG34=xbbFN5#M1~P^fssgLY`Q;2ngNd&h>w`yL*T1|1FsVA?$cdR{aZ---5T zqYMLj;cErmCHFZnnp$3`;2_=%`@$^zXi5Jws7vLD7E zTMwg;3|o8MXr4>Imm!;M6$SY zy;qXyN)H5Cgt84%J7lH(E@y-VylDkTuRZgAbSR&Frk2V|aD(YKz0Q{ey8;Q;+U*6R zZ*p?L=1J82V5N3OlM}U**vTWUrtKDe@X0!dV;Z9(VBpixEYqr%|l6XlLN0C{rz0~>F zL1}VsDz-N2-$SSn;Uu?YnTHp?R#ZpDv7Q+Qpp~U&s|#?QyW0^rasqepn17XK}18J%d#?eZIH3GvJy=xTQ%)$5WS7 zS6Kdk`QpgL-|IZTE@r9T^C#GRD*KGz#-jyN_W;i9cHMzHW7>gTh(@*Of-Lqs_gIEY zWlcBR;D^4E+BtZt&M{+TK-@Jb%*`%P?A*hO3mT$4KjJ`9OG!1q4a_UT3&lrNEXI<} zoDpDc{m^sF7wd|=s+R+Q@Ba0>?fRkaKUj(HIml@`bd)$1B7Uy#ukSPN&GbnvUVKZx z|CRZ#;##SGj?Shb;?b}$IF6W^*5XB)M9;Le6^6Fb;jjM1X1!H=sNyaie1c!c>dk+p zkSYyZu^SVt680r?=G6J71lPaEU15*+bhhrtQhK$uI>#@@KmgFd4_6|O?q|<`-s7v< z@JBt*&K}MKj#>hRHIb=N;eQeikL!HU;ZfGj5;9Iw(lOIEcg^)|Oqt=;RL+(f^u}{E z$*BH9G3^Panc&7(_?w#f`*aKEo6)I&_^;KF$N6HlV7dKCnkH&-==0x_E&G@>aWZBp zRwYocL5xtB5peZ~k+t=SDg_Ho()igK#>5!wlOY31Rm#T;$vR)4EjTIkzFlX=A^m== zP?meoYz_l7c8^D=eURnD2MshAhXM-(x@ZkDBKHu_p6cb@cgZjaWFdmt6Hh;KbeQiYd{}FK6e(!0x|)hcgfHh4 zS1G76S>&i|JhqiyAoRqrcLKxcG*!mH1tL9Rpe-^`tEZ(|?e7h(^D-4)O=;qt`3$)k zv0%pvcl}5<*t&4mR5Ds&RP_|3@~O{IkFzP!htt|WfkX0VbU5%bclvE24!{1dBI5qH zB680Y7Zbvcpd;%ruW@PU_>!XZCx!It$VaKDt_0I6)Z$dCp&37?xC9ovVC4h*(^HAm z4@>1FG%Zz*P~(DGFNSsBFPde$me_ns#6zAL`G2E!Vi8vAs0s{rDm^F;QAgO3u)!++ z82_%3`o(H_TI41KpIC=i>ZD@%QyDMJG7OmwERF#2C( z4e33q>B=?6&P4IL``CQDffaI&O4ip#K+PmoAY239%LokNXWr(A zm@GKpia3;gi17gW7QNwk2RXE?#~51Ei#3F7_X%^uo{Cy3>d8bsT+}@M9(4R!-{|Q+ zP&ySDcX`(=*&R5fi65rsCRa=y5brzn+k|rQT@_{Fq}`!01OE*7St>3Bg2k&oKO}CK zz3^V&>-JLlQC z5fpSWD4+?n#fs|w(f1g{Lo%I=Q1gqGw5I^#ZEm1ODc_f1Tjh#E`)R7v?Ze3XbhS3N z>Pb((3wh+Lp}&J!&I{R&BB~j{IGh)-o`pnL`{eg~fSmsd5};b>%xQgnCk-{~j2xrH zE+|+6R7(J%;44j5bgnL!m0LSUcP=L}_&8VPsNW~6E|w!l5awS#&zyLHeuIGEz8QOi zJNM2@u;LLd@(E*s!?U10E%l_Ztov3WhV`j@$+KXt2BXP=H`hNNT2dVk{-nd+^6gQy z9fP>^aO5%OLTl?7D5_!N!2Sd=+#(1Tp_7_)mH@qnwfa9!z%ISQrNA!Gxx#){NPWYnBw!=f(zNU26E~@`PBv z^cCc#XxoU+K757!(Wze8J!*G`Odc@vViq4(06yD6xgL>AflN!dYiYeuW$(b@Vn!>t zcz^)<#(6~MFV1S239mg7&%rm$djC30-r|BqZ{UOn5vyWQjPobEG}x~&JtMvMXh8pp z-OL#$%YZ}1$^6sur|oYfc&2`ryQTyHJ%C@rME5Q(SS%|-*PK0e0v`Ad_;|+dfh;g= zhwKfa)M?R?6+xS`;eA!ETE=CPW?(M`k*m(AY8Wi9Q`gQFhnA48A%`mlw7mM~tw7@bc>r(&JG5zCd zrOT|;Do!L;RZk>{@f5*czrg7r;OQnZ6TB>10G|StD9qujgZsz(;LjYa`7%=T!0t&R zwD?IdyptzB6o9JpvUi>oSi6MA1?_N^S27JiTo6(RZgy z3cM4G3?Szjs|-4*sF~zK4p?MkTEpwUyAKXRmUp+-vJ0k30(rhaB=qoaRHiB&#COu0 zQdb%Dyb0yTKmH$0-xOV0+cg^-9orq-b~?6gc5K^D$F^;DY}>Xwc6Rp3_x|HtuiG`| zQ?q7)w-5HCq|4t8ITi36wa*%rf=0f*@JZbX%LUvEJ;l@a^BohNf4k{jnga+p+(i0s zodYN56&+VBrNmpOyxL#IQz@a>5yefaTM>`i*%tQ;_hYB_s6O5c|qa z66~SvFx~&0FURMk>*`ba^`O{(kwu+H9S(aGl48ROxqf{=g_OzK>et{{@7-5525w_* z;Yz9kM~B4IaRCMb=(=6T<-9Zax;rhN)~E%!&4c+D+$`J+yQFJt)ycJx0tFZKgvo(g z#>~WXTJrv9DXCCa#vjA4EPqZ>q1qlFTvR~uUon*2ioA{Np-`KZ$-v)mzJjkAl>LkF zwZ=+pGMiTx7|kUz*?bjc-mdDrpH7Z3lOIR1PyXH99emuKm`$|m=ts(7qNQMxA5z_P zaKK8l!Js8`o&=Hk712qN#McbqX`b)Xs<(H(!E~q1aOA~xbkuX%vhn|>AU){+rr;_8 z%}LSu4)}P0|4y6Yz%uK^e<3*$9L`}VIR?5cG4CGW1mTxKu zBK1y7^(=ca5K&1=BFzm-{@x}gjd-jtl*?TL4-e2uT%z$9+gK;vMS# z2qS#KB!gk+2cL($9G$*Qa2~9`FE#V-Q)9>8E+VUTEpw*$9Aqg0oq5wD?e`M1NnmQ@0)lC2$7=*6od~JWXmgyn$WuUx%t> z*%;E|P{BSyMzm0jW1aVbq}sY)(=^*?Shb6V)Yy4q8=PT3XLv;SiLQ7P z8J6YK{=_^5?Nb1tE?`>I3t?kLIND)%j5=~_zwTg@N!r*n3OY8 zl0|@J)j_0quUs1iii~RR(k3yPa?LL3);h~ec0V4Cy0h0(>Dfl@r2DW~;$Tq^*$`*u zC8Lg6oXWv>&&vd1q zg6qefgBr;UsAFee<>w)rjc;#LE}@&K7^TY(1+{u9RP+_VO%yYl90v}y^VHJ-9+!L8 zv;w$H6)Q;FU~@>2ty5MhhU~BgFayj>bCu8_Sa{huI7#;fqR~kHNaDAS#EZ%jrTx^G zzLmgWJ5{Niw_(r#)eNh@oMuV%c#dS<)btL}w*_CEuk~oVVPEd9>{+=xYeO#$KyD$0 zFaq83S}QmV8}RuE9++WL^a*o^fjfnSH*2kD#&`eMEwf`&rz&_DeA%sog5EdYS-nye zaS!-DY!K{ySIFL>S>(intrW7erXpY;NRWBJpRbQOoxVe+-6w6=TpjcG=Ag| zMTy|~6VdrSMZ5TMoO%qQeh5{Yjzi|3+<_ov;&WxgI zW5{GD92721Y~Hd9L{E{ zYaG;0;>(^4=XLFLHU{3$zVcYbKURZ(lu^K%#7mJOoi|sS+me;7gpu3oq37FS@;1X= z49^of*TK_Lnz+8~t|->3nCLB`h?Xp|>VaB3N@*AT^f1AYtYbKMRUNUE&%wQy+@rY% zbqw#9y?>xxA4=7v5=V&SkyKC5|p{5b?Id%r%D>b{(- zfLcecE?*KJ@B{zi4k;uYWWqnk=4X zJ4~ncfkn|lJg)XOs!N2$ezc~G?;q&Cd>nD7s*A7kxNr7afriF?;s${!Rb=DNUM%h~ zttL0YHjh@xxZuphR7%Rc2ouFO&gsi;{3c_D@wt-s4OtU86o-b`#LBOt$z+~y|yne1>SLh{)XvyWT;PLu>v0} z3xl&1TkJ%87~Oq-a%gH@-b0s2VM?R~r^C*0EdAX1V{2zKu9R#v+7FxBCJ(5rT9Cb| zI)*Y`s8>oe(-H~DJ9PXv%Rh&P!3Xsqkg0(K5LaU?qyn(=$!7!WK4C$2n$Y2^w77$8 z9v46=gV1M-9;1#D>|a)5>SX2#coZ~HOb@qiTL+Ob6)w9<`PatS7`vEhL#ah*=>HQ zOe7m&Y*qxduT*d$tBqAu70PWzMOKs93$m-jNJYN*hG}WAQ6{JI>59uyDhg`_&-e7o zlbf}fsbqjLG{dp_b0;M!DctCicb|Z3pM#Ttvs2<%Hdz#a_aQ&ENv?&@X5jyIUIp|? z`MN=!ei1+Q4{0Ng0S!RWHz-G1Idam3WfFT!li7h$`0y`s4pHYrDbcFjDp;Ty3KS(D zL8sc}@-<26&V`*_N+jdQtHNi(S~T%fIui}ako6SHx=gaSukP43@(0$7>zE5`N2ixW#(FB~MfZqO(X$cymV8aUBna5{(S`=j)uMx<*C7?{-C z(WA~!cy8`%NHWtLrCVB(jegwJjL#`dNQ_1+1;$ThpZL7F+bg2yAFY{g2bw)@68pV% zN%saHc4%&mKB-F> zk5BK{JRbH~D0fp`i#P;aQbf5YCoG0}Myy#^L<+0dZ+nRG!yPB=96MZWYZDG=$V;+q zWc#%As$Ra}rSY!THnO3h%S$O@l4^HZTU`M^3ZXypV~-tgR6C50gBGS6fV^|ya5xoB zZZWOFphEorkiPJLNWWH5$$Ny>rEb@|C|^*jWEz&P5B;@L2`lCg`8{md?`o^2r{mNgtl6&h>LeCW7 z4BVy!I_hbpVdP1k$$2!(9qbt(rVD=OM#)3w>f(r|qh=7WJq`_D&Y#nyiBaC zQgj4M-TVdY_2zM?IWB>umZ>PH2#Arc-eRU=zpsjmn-#wr8pzL3F0<06EB7B|C>JN^ z!lO;_5;FG9rFj&);X%PxW>po#4G9LMNe-wmk*)(Z-O13}%7JC0E0#{CPU0Ggfg}4J zWMt0!qulum5`KIh&ti*ck=8~~5Zl`(P=jS;Xny z2_?~f4cvdA8*6JLQ{${(_KYsLlPD4GNqFt-BW%0Dgnbq27PX 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 diff --git a/apps/cards/apps/web-archived/static/images/app-icons/manacore-logo-gradient.png b/apps/cards/apps/web-archived/static/images/app-icons/manacore-logo-gradient.png deleted file mode 100644 index 7bb2798b3f31223d8a7f12c74f805929f6766638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268878 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≧wXmON0SrtqD9njAu?X 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

Y($+1s+Ip}6C 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 lyRXyrE6|}M2{d?r_q&xrs diff --git a/apps/cards/apps/web-archived/static/images/app-icons/memoro-logo-gradient.png b/apps/cards/apps/web-archived/static/images/app-icons/memoro-logo-gradient.png deleted file mode 100644 index f7bbee22d9cf5272978f983417dec4452adc295b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103536 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 z 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 diff --git a/apps/cards/apps/web-archived/static/images/app-icons/moodlit-logo-gradient.png b/apps/cards/apps/web-archived/static/images/app-icons/moodlit-logo-gradient.png deleted file mode 100644 index 69fcd68a137b3154778225e6f3a4290bf9dba4dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441413 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µ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 z%0A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

UThDjr1h8830&N{&++BZ27|QlNq2^xMa9 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

{PWwL0^u6w2NKhC`A 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©uH4Thor0OdN3b529xKF4_7Var%HO`i8;h-NeJ%>t(NZWG-e z7Y4`Sv*?uTuHkOqR=L0BA*BPw+r;#xvhUN@K9NHBLj4_r){OPGEw?H#T99%je?7l1 z&_wK<>+^;eJjN=1g=5g)9KLFB{ua|i%=un#0{B?Rs{ru9j(6q%#g|;i!?>&hz^0gt zMygQ_)X6Fs1azX34D4oMKNRp{OU}()?C_0*CVTNaz^CqWMMHBulB9s4a#?yg2_`XR zRq34hYOQHNIXTbuDr`glWQ$zh-C)}HaTEa8mgNo*EO@)jEaR9%LCr|UVjH#{)`_|UeIl1Y%Zi_rvivHx;(xg zi}&@$Ns~LDYzsb`2fJ+gsZ{bwJo{oQI62M9&jfM{l#G{7p;4r1d4J|aqiDd@J;|YV z-+*mz$!koWjUc{*)l+mO?GsOu_bL0g!pzkt8f|UujJV<70T?)j;gVECvmNWA%SP<9 z!i0AeEm<%d`Hmb zA=-QwcnWu!N=ZRsGIl{M(V5cwd^OeJ567fgTKukp7HwRlk{2|Kj*`K-PG=OuTpzAk zEJ;4v_QjM6@tw$tJ|@@VLlsU8%ZBCL&MW_NeOxq(-CthAXsga5g_2)#x9qmRXm|Ny ztuwflxBke#6e`>&nTVRr~@#WZojYh5OM$dt}76jIelB2%D1dFOgiJUfw z_i8i=BpXxK1)i_;j|*GdS=_1bwG)wrx#E#G@$b#sZwd$B>ISYH^uai`VJ z?Pn#N^sxijwe8Y>K)bSBmrP!#rFNKmca8=O?-5R&0S&RBg(l8rgD_>{qH8S*IV|L1 zwHa|l^Q$4EZS$hJEe2wv-qqnd2jWKI_p?8Lyb0hPwjc01zWU=;0Qf-1pZ@p%`7eIx zsA2Oems34I<9z>r#S7>l2*V-HWC!xZX-=Eb@C=W9Wqkz~iTnNW$2LZc^9-bD)!Pd7 zd%)A+vj7#-88gs5!)^m;XK_GQ&|QQ^#h7W*rni7=TbL!IA)`t_9yB=&))5dz@dMuLP$#N1ivJ6M_azU4uO zQ`8ERRiB%D?SY*Zg!`FOH@U@>x$Gbv;yx5_g1agb7LfKDUk} zlrqw(X(!vXsrazRN!o)lcU;JL?Q+=dqI=ty1!fDgsJ&>_`WsyF=ggWCgLi~)lhu|% zbhBnqkS|I+T0%|b; zC4Z5VqMbnBim-zU(lPp{+~#g>SxOR1#+$FxEfn{C?zmmHQ}yjk+FU|sZ3llEh9XH= z+o|WhgGJIh);gwVdIH;==YA2?{rY;p?AJ;sALow5EQG`j8nXhDM`_5U%f3*wK3YCy zOLDY%j#SUK^ojI7~e< za}#F$COkR&cfV`*PT9zgES_1P+-VultrV@?4o|-4^^Z3J#P+s7Hhb$g0sM2kj<5cB z6#zcakw5xtKgIXoVR|YV=g+ukXM&q!5J06B@$&W1^>rMR=p1m|k=r==j$;lGA+XIEHMx&S;g-N`s+!$)k%zbKR!E zg%B5qTUOvQ5Met8f zyTH6!bvclpGQE$fA03!Wx?T7Mb92G%em36LRx4j5A8p|%ez{IP zKI%c7zH4piq(PAjzJA|2={NXo=SSbf*ohOaEsLVs!4RVlpK5OHySN_P{3=vqj!zpQ z|G;x&cgW<|ZZ^2fM8*cLZCxaJ21o8+S_in4yfits7g@ReZ#fzM9}P!P_j4=Um9Q?p zcX9BEUNtyFj$wt5;m6DhI`ey^nL+au?f)3V@C^(ZgyG*sBig>$`Zc~jo-m_aas|8% z$pjO?w2Mj{bA#(<-AHqnr?hi>0_rQ=E{Qu2I5K^dV;6ULI`eOR$1cw;uei}`(x5$M zOnBjxo{4quMwqwr#BKZn)PJq-+j9&1?L{7&?X_(G;c{kVFbKL=EB5#AUw?$BO7XyB zy$Rq|0QdmMs{rtUj?bUZaevJo2)%v!HKe2-IJya18lIc!O|LBGlgaty{XNljfaGc9 ztFwZk8s9woo}9}06kNXg=N9U^c32_79QCytp@<@DNCgI9kQclrC*l50+qpcM2U6LD z+WLHUX8z61__mXRt)_bSsNgH0=OMV0Yk1^vE|~j)@ZP59%VaX3ZQK4vg0}tvt=!j~ z#@E~mDVpb*Q;6Zr`G6gk+vVJP`#=4iC7k=wE18s;bXYvvfr6x%a<;?C&yBxcOquY+ z_AM9`^8ABzN8@5RJG?p2-azssHVto}S2%qeXuqTZ6(QijFmAwHM z&rYX;sJwM;`vdq68_Mo8M%w@*$%5(5NSU5nN z58dnw9ynPcAO>xUx|`{~5yKGH!haI}4A^RDC0s2_gP2j1p2Fv9`+UW1eHE^2m(gRF=^ zazOK33RYVD37l8L%Gj@5b*qneF53juHSXZ`n5)TU$SR|n3!*Vd!gSiel zIQsE2J{O2?y5`I(AOvQx=*F$L9~WLDKmsgcU##dEZrF^W2T~ zJVO9$URZFIfqT1xQx^_7j=FboT?#tyr@^GtF56)%iPj2>9AbLVRkE~!Ht=CvSm+Z5 zU&F$24sA_Lj7og&(OU*T%mo@SIcP<3jGd=*r+^Z|nMhOilcCc3tDAQ@cdyEgd13IL z;x%b9%JK_ug$NjOLEQ4dbmDcrGT~X+3z>mr6Vb?qP%<1E4im>UR^EyOIU7O?`a!Ya zk$3!DMgWCK3Y-B2!zM#DK;zY`(tyG4dRs!D{<_I9J=~5xTpM9?_GYBoWi)4n26epv z#%m(mK4Z#p#N;0*>|ruY0_tzx;ZE8`lXt5&&ir5cC@I?c*DH$CK7`@r#VNvQ^Yo4r zadX;8FJ#V#pAd|kL~Zb@|WiYvU>;AK43ivoQ+B1oW-6vfT@^8fWa1z~Lb z+K5wd0=??;TF3CC%YeD^Z zUJjr-OgL#51p1 zhd*_`ivZew7}!eo)h=vq*9Y8bX%WW=Jcj#sdHSJTN6K(*WjZUqIkv*JYD$G{ep5GIqi zu}ydxuoZ9O=c~Ga0^%yj?z=1e9C2+?D6;PDCXAXl z99EuFQ3yRw&3$CAfQH$zVHHS|!50o?0ts-Q*l3`FM4uIHT%BEAovx36G@DF_r4&cc zW%FG4J!VQ$1KJ&uQ*0ZskQ5}RHraC%)bc}LmNs4s;T+FIszxxY5n+@u@LQkAim;$z2xWUecs}@|{^Jzvxev&yAA9-bCYI{&G!PI#6^Dseg|; zb~nKEDrLWBYMevYTBfcY5aj3G2j8)9JuMCpcE&5dJ`*F zwQOH?O805rIbtrbS-ZRy=`b|GVU>J!@iUM+?XL#`PMhE~c|-gGUdM+xUIl;;bR6IO z)!#eM_aq-r0`zy|cmA-R(8<(#WPkHW_PwXz3JAj5nR8)Rt(bJuI97c#zc43+0|Ovy zqlm?v^a_Kt(b86@wFC$P3Sc~$JQcD}<7oK7ZEE*3u(0sK3?2oH8TCD&8O0f&KCYGPvmf0YyVKdeq?~TQZjSI4 zovubFHat53Su{xsK|8?xCO5;20gnLhf>D}G&8?h2=HwW2Fi)cQHKV>?pZ+ z*lfkp1KDUA>_@M*VoT*hF%MJX4!rEm4;{z$+_W8qfF#CfG7%#_2+67^(_Z9j%#!1& zXn9n-rh5$B)9e^bUyV*#ZwzT09414A(`-&dp`qa6ZJK^*Z$J=#lltL1oMss#MO=T= zf_!Hdb}cyI+ew*#upmQ7>)%X7+H6Vo(@aAc&JKemMq`C`sKT(V;bX=Ci8wV6#fO5j zh%n;+EzyoX=RtS3=(Zs~k!$2@-iMCfFtV zLz3G;@7B>RaU!&7Scdm81X@N+CpsBvUU@N2y;@Vnlct?$=5iOs&&DCAOnXshr&_ss z(I%UkaKW1K(nem)3o4>`(v^y>!sTqrn7i~*@B{NlvP}oTR zIg-nezArl+`^FTwZJlzyC;oQT?4x#mg~c(lNAvvDEic55w)R`L$+>3qYTVVt=6Arw zU)L$o(~J@1rF?;wW|ZG8#oMQEsnB^-&KRaj!?*+O&t#wBt#Yfw&p?9&=1-NiffM(0du9$Myoms*PNl>u0PlJv*g+f7H0_2y7qwW zq`Zc3iXDc-=&T~bqK9N^1>yw@< zC}*^2yxL&M22EI#`Xw5){482~(Q)bh8JnCI4rgG{gnDc|=}o746=}%krPH=yN$JHY zdyqv>${=j4wl{X3;}&l(-44me;F!b{E{krfd+sx0!c6_tTvEo81&&+1bQlN#rd}By zE=vzQNOQLnaGTM(Gv#R%Lm~Y~h;M^F;rhDaq+vn(0+Wa4wOT;jrZ+*`&mqgH8Ff0y z70UERH>a(<+yR$e;-F!T2c4v}LTBNd>Yh+-wCF4LnomSuYa404V6p*{4TG->kl}J6 zo4_}nnB^boqp2*5=0%s@O1*=SM#Eb{w{$DEoiL)kvHbd-ce%%Au&&Ela2XI-MThY^ z#4pgSzvU4FrWp8R@YrRtwcHDm4R+Z0(SIlpDc*$hJxyC;dzWU=;0Qexszxp5l%RjP+ z<7NZS&)?}sm?qcJj(7Ily}>s~Z)2V_J+N@ER*qTs*~%1X`UC!2y^P+z_ocZEK3Q-E zFyR4JD)?Nl@>xlQHdDq3n81YD9a2E1&~WI)l^zthmn&k=!N#?wLl|Mw62=bFJt)gG z{16Nz5~1z#3|{yM0P{z|-)nU`7;yEtqhJ6PY(_92+qk%`k=S@Jx!C6k!Qn?;@9~?= z%|rbMwo?CV4$jnv9DtPD228y<{)_dd%;X!Jy2MW|+F}cA|AC z$9S#(hv61Ou6EhIO{)Ex#h9wMtuu!1LL0Q3T>z9 z<&eK5oDHKA!X=mT8;Mbf365a=h`IV^QTP})oYy|*AvlbuVKnxlU<|#)ph-WNlRD!G zWcdKtH5KNhKhCdw3bVsrO=#6`c!=xMg5!lx`h)q4a@Y&K6cCmx)}su7J_l@?n*DJ z7(VTHF1{Z=yz$G5G7KqFJm2Mk;}?FEi?%gR1Gs(H_<}Ck_zMxj#-UKZCU?nX?zH6p zBn^80sQH9vpASM3ge@@j0R#HR!4qQYOvx+Tn#u{*){A{y|81p@kZd`vo;@hSj(kmK{GAO5Cm zuWFF%w)QG*=@dU4}#Ey{QgO$Lj>ZFM7Ag*OQo3NPq{*%L5e%$vQGo??5n=FKJ1<^DCp;C@+IVuN3K)CN zMc+pPdl)TZ6enVz>-uj61^8GNym2)_as;Po^M6Y+eTB2zGQkNsx;+%|q}ErluOu$_ zG2NlWz(om=aNxDrgZdcbNVYAp69aH7NWk?Y_(S-40&8?_{$R-*cMbrP<|g-P=X-UR za{Z8>1A|602>|h@!dTHnNtu#eZPyeDoVLw|9K=|%j5m|MqnI{x z^n>i#P}jB>12&^;>?`+^USqd`_bWKhVb5G{LH>&t7&L?bF7R{cbIlPgGjN5&ECxYi z4!SznUig)KyL_!*VWy+oDFNY1YgB=Eo2GFM$1yjZhMO`=ZioXW&9l3DAp!7WK+9+B z=5hO;qu8)6oMHSi8A_X<^K5jD{@eCGNwGnX{-iB93hIs4KBeb7V;4xD-fnTwB%v|u z`l4TM{91w+=@MYzT;xc2fyUvZycs`wp723zy6iI%vwf5%65mR?Z2`rB$k&O$i#&YXxeoDW_rOwQBrw!{9xkTyEFKT zW9z>|KW$_#y|_NNhT}niH%`2_|Na+v9bf(NdIrD;IX-{>;TO|WOCuk@K0mhqGjW`z z&X3`+$2jgpDtL)X;hAjo&D*;7T@`#c8-CmkB$KSmxE%K&qQ{I?l@Ch>d|w*xGwj5~ z=GPOX52#x~dR0aHfjvR^>HaFQcuv3FJGEghTFxj1p5ST4$Z#cW0bdbI`eqLf8n>;+ zJqRv-_FT^88*c71dQy(r_*k&qFzJ%u{ZdeX5RW?=fH@n&6o2uU2?k^QZ8%=5S-Gx< zC-^l^z{ICy!-Mj5+k!jXf~#rZ;O)yTdf;O zGMSM2JOL?~!<=^*0Fb9W2Iu5XCZkt$d{#2=Vh^*G*NRNdbtY|X^R5dyVYEosksgib z8`hxOX6*L4uH_~LCf__;_qv-^v_it9+pwUNjo>_C@+wi(Y-tG$Z94EopC(M>xgXsL zp2*ly4crgF>{!OcjJC(_|5wsra%sAXh@nC;UmjLr;)g@Ad}cv zwq?Z}zzwcJ9JA@h)v#+eF-HlbLyS3vv)~Go%QToIo6TMNg$+t;UCCLNKU^@{`*Gj^ z^4T8#Op7tL>qFQm>Fj%seY2~Szw@i6iD~E5#mC2C_J7Qv9_f?#d@(GdC|8rGZy|4s zw9y{hOmjD6UWGZ@kidAB#CRhIwjrlDn#Fh~uS*|jGl$)R#X@dv=F$F1{UrCX)8IBn zPS|de{7kEhLiDrUQgS>kqvmv)b*t$;r_PS~5a@gTd8M3}7UN9j!fj*2iy?x8ixxXj zk3u+$kDoVe?6~y&)6eiazWU=;0Qe}!`NO493QYXsyRx23A>BE(^0t9k!G&L~+UO|R zVmKT+;%ngJR;kX-yr&tFbbxXTssb1l{O#c?iqB&hvz3&j<=Z_chI7p=c~CN$@C40Y zQ6obcX6MsfMV90Ef7B6&0`4%I-`E$K^AXPu=Aeb$FQdbktdWC4g_-G4v0^U z%LUe!%GY7KdHx)1+;kBSauXO&otkUVt z1a!ceq61f3_9LhKYcuG(`hJq4fgtkKVIP-y% z5Dmyr)5maHZ>a?l3gb1TCK;|SLk^Kj2y$1FTk@~qisMo?90j8j20_4Lqm;j102a4Z zC*z(4+D~NqPQVe&FBoHtO`#?jMiT(z9nKyMzsr2T<6A*sG%8B86SI)o{2?dGKG%+t z{dIf8HWRZgXtqScLU+m?!$2fWA|l& z1u35qU65;;%RxhJ!3~mYt~yT*RzkWMqpNYPuyH5LCTAmo^lLO1R@!U(*P=D(2HG;o ze+_7MMQopayEuZ_wF4Lh7obMGUV+U_U5aI{^Tss~u%z^}PT_IGUbyQ$9Gw<~+RDZ#QY z$MKWj$Lsj&k5>WUgBhL*eGu9H#rGkdqt zHhLXxJZ5-+VPvcF9DGWCxy&*Qy@E4(T|bU7-hBmLTbMAa`P1;5UETVFK^&c3+xWBu zE88i~_vntq;W}mS63-5VCJ4Z^V`1k{n;sqs8mr~#cAu%O`WhDFdJA6wwqo47 zTl|4L-A8&uNK-@I6V%4V59^;3?d$VQs2CMDx%FbmNTe~7Uj?420HS2F`<&!$?R*Je zdD^BBvab}GHq-dH|&HfVe973w{Ac1 zOVam75}$&Jd1~^SGtf5AVa(Bg*iZs*RH=q(LH^^)>9pJnCpKT0j4aS3Jp*1$8DQZH zQ~~nfp8v_}(8fExuD%CmSiaizTz47V>~punG&wQ8fU?&Esh-x1r=(Iq)98_|nF;kN zT7~U6A&$mZrzh=wxW1+(5M2Pv%l1T`rP z7`nEm%v%u=&_tuS<#Rf)Fmuy|mmahE+HJ!nMv32z@+6}f6_c$CGFHGLcUcW`V*d{BH$3*%b5H-p{mRAKC53KBLR}!1I!i zFTt7;y4c~n2@Na^^cmQ_U$@ydB~8yKZn??C{t4B9>ZL;t-{ZLe!#@|#yKtQDMHxznBk%n7FIC+1qRpu+8jeT4XW*(nyz!G!Lv_4k2Aab^vG7&oz zgpmY-xs!9Qj)&2~=(w&4e}|tSU?%Z`3nO_|oK%*4p9_#Ne*8O~uPRoAIW}N7<~Cwh zNHj!fv@ll`A{`_bldM)mq0ICuQ(*4+ctT63(itOh5qv#t%U@`0O-b6$U``FzZ6pg0 zCXKllt_(HYiy`B_*qWzh<_z(36b*__jqBJ}moq$Y-8jQ|Z#dnES(K(){c$naD-tA`0K+aEvtnUqIo~N!P7G`{*GysWFtU5n@P`o?RC=C3D8C4l>UeG|A6s| zxLC2><(y+J8c@XB7DQMpz;_OcPlhMl>(%#|c%kSWCT~u>om5imUl4+7H^mIBKxT5`=U&Hejsy7{-IvC%=UV zVO=5p?{+&aT^ikntS{5v2&ZJ>Cr$3AykP)hQi;eMFg6^|57T)nRkV49QAzC(L;s$Q zJQH_d=QWe);;+sFx)s8Uim^ehiPb)y!g|vNm%*5=DdQ1V6a`J77K(~fEUewk80XJ{ zzsqOCfa@6mHY)nLR+RBLUONCj!0{>oe2^pY%^zU9@23AgRL^$+(2-16EH$(TDGmsBm8?g7a8Z5hd8MeYP9TMug zTl3_~Z_%vB#5DTp0H^3or@qKmUPOrmYV5Z1i7k|f>KNwMat2y-_}7%j23QAsz#Mkl zHNm$1?)t-MSAevCBD;eltPB0reRl@#wl}wtln}$KXx1$Dq6hT*D!_C_`T%JC}B%e>je#V=kS+3MlWqHiG^MThrRZT$h=smuC+>4=);d+tf7= zdd954ErEifn_EVs+nNnDz3|SI&kcT zmK&>s5a1v^PxP}wyg{#YUAGb)$B+-o{Z64L=h7ew%0DFIYqFwRj4kUukEs#T3oPOC z(|D%Mgt8rz9;W4+J~SR+0qJ(zgJDCQV%LAIs>5(UX&&r+&V-gS%3!+Sj)Fc3oW@|F zzOIb~y=iz2xjfNXeTHVT&%!xe{sV?{(SvQ~HOXX(zae*sLCc~{t9TSHaB90I=zwk1gAMKB}P7IJBLYeRewuICu8%Gl|mY*^-<>B1W>yRwOWH4QQ$mGE1+RD^E2c%K;aaMbaZmz^^c zGO8vfu4^H!V9BgE1}tBNAiejqriXEIe3z5e%jB%@KA>6a{!&Jylcmi^ zTff{4uz@sOWP9R(SF)4NFDIV#>Se||$#1x-?Xq*rNj%OUsr!GYgW3*X86FK|JLRE` z1$B?Jm)|T0MciQI+&mQQd`_AbyWm?X#~2Pv&E@p?av#Vqco3RE#uvT7B7pIfl;dP4OdWfmC3t;HpO@_w#9ap? z=Q(zgw+Z*a&c84@X0c%#iQ~}0-{;bq8Q|W;J*?$zH%C69efN&%m!6#SgP1dn|gGcHp2~1Xh62fxWi2zqJz$TeuK&232S2pUVP|e z!0?#!%a6vOX{y!}z|@~DO^DV9r%OJioyr+of*o_rUB>tnZb&y5+$o+wbh1Tg!DD^G zl8~l5l?WT$)iGj@qc$OW89v@lJQ0t4sq#zwj18t6TtyqoOvMXd*8eG^H}gx`m%QEt z-Egwa2$)uD>UT5Z`GfbYappz?d||xxL!95~EB=ncoa?p_-sZX6@~~OED{WaEM)T0F zhwVG?bUMzE&mg*gflJL_Fy!p>H2#SRTO&0DCZ3Mze+A24evhr2(=l#iZU*7W_xGh9 zTeR9A0!SsjSn|A`=xo{$_4^XPfYvIGr!crCUA4)-{vW^p`34$QZ63!rf8+1|H2%ha z_V4gIzS`rp1KtLE?^E^i?L0y7cLr=~S{ z1zUiy{Dute)&iSbwON7&GV`pnp**Prh4QrPmH=}VWwd+CbQ_=!_O4dv3cz~>s<*za z^OJ8jIF}yZge#)BZ?XJG;J1YiIHgf&IZf@Q(tQMFoLde?#^UFe#52dY)yz& z)2Y=S}he%nhaExLm@YDF#cm$s~$#j zN;wjnb)9oj$6Uh)f$j`w z5KK;|6)?%&3!zBa!|278EE(<{EiRJ)7aU+RQj<9y`=rZtz(r)jI@_+<;|ayOz|~^H zh&6)a@8iW27|l|1)+rw`V425U{TIJlL3U=hmiw;>hkQ?Lw|-eUq*nRW&LJ{8b~Rlq z_jzpamwoalx72WEiyQ05j^uAP?1k8;KmXT%^Znyh0QicJR{`Jy9N&G)ha#Z^Ol=ij zCaT{6z%~}R)V;atcBPrrqfAU0cs@NnQss zMCCA;499FIui!nsn8|yBHS;ZO7?yG~jGIN2bEz{)Q%sUORVPxLBgi=>n*oM<2jjcL zu?exkP)@zxb7fVhJpCQ2uePpbF(V$baXLrzc=vm`Ay+#6trV>_L9 z4}ZZ2=h@X)+teMeu?5zjmfyoY2~VhNhS!wdJ39vf(%UWjlD5N1@L}lfpzZbzgNeFxvJxC$Ho?CD);%JGSlGVf3Yr)__9WwYxjy$Yo_RE#X1H zU+JiXRO6+9w4t+hK=1li^nlqO11SbSq2d8@76gJ?0d3}*31PR>fCjbA1ux=6>5khM zctK`M+`{dm=+Q+d`aVqhcN^*&@zqGPv}Gl*QJ~!E8Ut?UlxvT4oufXLamUSV6NVgM z;#E9SLBuVaaGC|B=9qN$qV+qFXIlRq#;3fmF`w8}pLf{U9NaD%Ymu^Ie2_c+_@@HAeqBne(iFO$F+N`{T`X+yyuai8B;EjsyW zxVUPuoNXiYXm;f`o(Si3*84Gv2$*oR-zEb6yPadmF+1JI%6vQNlv8QCbWpdRMBLYd zyt&AmumpN{Ms@z$xzMW~?a;!K33tnNpJP_7yaOK(fX)5x^Tfb!BWSN4gDweVS)7|I^(CcA1^_czjg}j`Uvv~?29;fIFCn7r4wwMGcCvMZj~cTegu#>H z6$a}p-c33YoaUSDPH@q?S*|XGidglxJCxjog;VJ*`jKgC(AakIOze~@BzB4haXiC| zDi9J>>9El~_}gG_3m$h;t+A)(UZ2shOiK02{VED9c*5ne%v9TSTIMm`t$5QaXmfn7{Fw z5A+Lc6>_jhWAZR)Tx5dD`OvG{+W&yBYniTJDh3I=#cy*0Y@f!PHNa&ii%)Di3M8_u z$uVr;Fq_gltUy86I~HQMPLl`nw{~s7E*6X(9%z5{+#?XSa638i+~q2oCniUlXMimE z=lrmF9+Ao+SR#yn)*jd_Kz+|7m<~GK*3HHcG+@xAeh>ZgIo%r9gejr);@N(*AG$Z_ z#iZs#8{HW{r;jrvAGBX?LY~Y{8t+m&$DKA5Q)^-M>N?BG3X{^iXVT`DN-qv6m) z+AMf7TyKuqamd{%->vct@0`vg+~AWZl=)=0=z#6Q$yTYaDdG!!kKz7OKvyslqdnVF zyk_Fg9UM140ZbZGAr7~Mn=G`4$*u3jYxh2*P-9(FxD_$5gR;~2;l1YTaTK^YN&E+c zu-vNPDOie#EOv}w!lR_P7d}?7eJ~lD`r&f`z5>ZB&L2yFMfb49*u6jG=`rQPYgsd* zvZQjS<2D2JHEoFSptMy#tZy2w^))FP-$?~w9hEbDh7Vk`c8G{t>!jm{?Udk|NBe+AyaV|Zah5a!S!fvYxOxYgC=pLIn zNaC?fP>$aFqQdrJt;`<~>KKw94qD_k`joIfujnhNjwGP@9nvJ+e%E=zJZ+&Qc78tw z7W;VMxPA404?m1A-S)sN=4u9-jSKh_aGJ+t-zfGX;kQVTT2W)2B}z72LIpf*cp^U; zb`#fY)^EDpB4o_Z~3r@Y)_KA?alF&;~TGEEI`k#KipZ? z?~8_oKh^;_G#R>&b z>F5Y{&DRB|go2?NEg^;%t;-mVLtczT)ygKZeT zLj+jGgpzZ&DXm96vIWy3;;z5?6;4N=-V(=#^mJ4C_+(OP_#}|7@u}4!+Pt0`+dW!d$u^c+?K3JI#~{GdTI1UYtSMCm<~r{alpCopWnvqHcFm!q{>1uE)k z_*fuNGs#~z&y$=zg>1Un5K})R;3c*&8q8keM`Abm4R_Hwl&tpUlL)j-1+=>WMq{5U zZomg@a?-QL9eex*Pm{{&GiYqGuIbZa0vamOHAHWoPcw(6m*G={mwhDP3zoRqTS>FY zY`<|QoB|t7yhu*@3{aPV4PQY#XfPV*Q(6hX!XS)fx%CL(3HP=`@*IH;-hIzeZ2eoO zV6zNS9CNSlC*leA@EBtQEsQ2+Z4A2Go)?T_WN3Fq^Ck_l8;vfJ-iQ$!&+ML+s6~ps zSkD~?*ZEIyp5~y!`}gzn&+t0F>f==a_yEUQibOk-uHNr|KYxO+LOuS{VOBf0L2V*< zwk@r%-qW$PGn@v7&W8j0mRcpKBPnG$Ja!b!A_{srW()AosFfZC3GLKZG1MZAT%pX_ zTN$tUDrk%u$nd*7u;LOY9Kwl6ihIGqYQ2r_LY*1+?kw)^hAxN&m2E{jp7oCbUj}T2 zqMWz=X5tJZ4Ppy8`|t;y#a!veCJFAhD}?)9_o76*?#- zj$L1hra>ymgcYnZ#&$`C5d|4#I*bYNoJKyt1*g$9)LytG$DIN6CL6g;`@rK|I5ODk zLYE0in&32i15eU6kTYsCDE5M(nss0x{uUoOl<6SA0A4E^d;5ZG)Bl<5H!(25&DnZ9 z04{s(Zjz)6?Feb2Vvo#0M^Uovg+FYv@jbD8l)p#Y?j0$3 zYyKcs;DhU0{88;Jv82v4#aGx@EE!e!oVd54B zSJTM^S=4hoQ3~BMGm>NK-JVdFz6Q7xr!P5<2y`-tjmB5De%L>CgE2XM5i2d zA{@qZ79~u^XZq`w#E*FT%QT33?>gcI=0>1OUr**pg9(FAEW$aC^*5fJ8)IVH!1cH7 z&@3}z;5C1{Rc|`=DcOf4PqqOzmJdOMb3L|ie9d0bK(JMTAkr4y_KAn|L$&v`w*{2Y z%ZygIpB6jHx~W+Du-l(8J-GXr2OS=-E`J?g^YJPGe1PMKAN{Qpb-#_QKQ2{!IRCS6 z4*;|ZYUVQHwkp3HGzJ~zp*)CK+bMIKzqj0;$ldUm!CEkO;&}pgUzjjS%=_SKt9vDE zz0J4rW1Ijvae`#dyaU<&srBoc8-EMV7+gUs+vyjC;-u%7KHGN%^c;fwWWsX(Xhbw3pA_lB{`gt1cq5kdK83;a} zv~zd@&Vg3K85{oB*P`9w=Nr0%v|%uGZL2>)pBQmVKK0(_CQXc;6(az;$(w#FNEiC6 z_yF8^T1;2a0v8S5qaS0gR3aVFsw!7bL49)>5iG|ROFZ~+7~yN&4VFQFt|Ub1&SCmy za?7_z6SOS=sK7i!pXvDzft@YBGkSdD!4jWH80~oeQ zze2n=#R-Ss_$L%qY)+WuMVPph{b-(4P>Ym}I|k0_Vni~elW9u|MgN%JaxWw{wyqgH~MS;B(J*A4D5rQ!(53MQ<^V=rcnVt4n6eG1uVY;;i3YK#2P7JOdn>q3w8%HYm?s$08eWK2D?u>9%KajGZy zP7}XPqZ9v33>*g2V@e9TO{n#C<@~Kt!gM_P*V}6cz*l~}3IHGAI8Xcs{e6ae%W<4P zd~YUiDt{}iCv@wh3>_cpg&CDt60g<4gQEdv6bMwU_;^r|Za#Hyxx?1KuU}_iUxCcF zikK@69^9iH1z~M;;$~_+L?K*7lR{Z|wKJ}r0n102k*o-zx9K-e1h|e)A{v(7Ww9!* z#{j8)Q9IkavjaSn9606x4T}$Tu4#m0`U#Hh4mgb4F?_kxGRRNCo}_7*T!s0-&^YOH zv}ek-O}8IHSA32e%)oe%U>E_>a_=(dy0Gpkr$aX$bfV|Glaq|+Ls)#Ap&t;nXi0*n$^{4rS;c>Ki@RhG#($P8&OcN~DaXCPzl?pYr* zscnja1&y7LONJ@XHLkrLZ|JjD(-%IL+7Dex$rQAOA|2LzLLVfyirT;d8#K)WC0}-I zx-_OOhWkVRH2OYk+f5AHCw`8Bp<6Lh_A+LWP2LA&+pY_14UdJ3Q7E%{;51K16;0k|!xsAByG??Zk8fPHUCGWl`b zBISn~nl27dg@YS~Q83aT?}jo|Y@Sd^z8y{w7Qxgq;zbWwf#P1+3^AqkHh^%f`!bxr zCX0ioL0!gHZS6!+taSWHVBxofO!%qev$!I)3ejcEyOVKGmF-u`2G71zMu%u&(vV}8(U5CMuSIUK zPAK;>!U^dy*-&y7!*As_&a}t*gu=Rt8`h+6Zl^cd${VHTXnMqvEyRVrmBr%i?BR{b zGwwHA1l;tw-+Catevs_3`0fmgpW=0V)yIL?@l_x10nv{WZ@+VWfBZ2E(+YpuYXIc| z!_0)vUA-!q9{cL z;~UK3>KyQG=WMt0yH~@)>1VXaFnqerMzg-w?GynTlO;DRwt4@3M#nkm0LJIek_SFr zx#OH3PtlRl0-L-Pj@hvK^#d;JXUAO*b7~C2iRnkFPd%5>$oaur5Fj8lrvEqkL2^Ia z!p0MCvv)USkj}90j@ycTrtWLEhUBK_I2oW>aVMk$gLffV3fO@ob!f=O`y9t1n4Qm2 z3GN2}MMm<+WwYcmm#vs0*#&}{v-@P+^#nWIAZ?^ylOHUW#N_RiiKf@F$!r+=!*soL zpzI9iE}bR44gP@if8y?TsA+3+i+lmuUikI*QAo;9!NSJFn)}4Pw+_Gd|jI! zP?o_t)<8BN?bbH1;SH0AmSyJL@ZA`NO9WSH9sgOn(wHY~o^&#i5>r=-$8Zy{X;brO z@ihlIbDMvl?qo-f?-(;+@T=#1{2$L_>4IbNI|d#;W}}t^ciN5OtMBy5fysmo$8m#O zCbpQ@#tG(J$TyAOm!=k*PULOf7&n=9n)JDHsO&4Hzs^UPv4P9ogqflj-cGbp{5R>9 zNZeNR3j*{u9e9&p9Tx|Y!C~80x*-cd_edB)#aF=TOomty1cYV9b?|OIQ}IwgsVeJtht2iqE7wS9s%YB05P*XNcQ1&SFV1I7dWS;9 zq@33Hwkqt27F?>XCjC5@Bn|wn3V8Nrjr7DxR9WgdcjzeLfmY>*{>uhAye7S(ee7#` zO)pPUMdN2%qFqMT_y=?!diN{&uTS1OP^)aibXlOkL^3To72MePp{KO3?|kD$I45KP z-PSj<^xeH156RsEu(877?*U_zQJ0^x3%L{9x-a0@qr}@T5g%`B-wB71*yb+FH5Gz- zb>rrJ$(Z^nKF_(@ZmerPo?9-H=$K==toQZ4<)kHGydJWr3iZP#!}oNv{?u)7uGa5e9Bi^1TU)K=Hh#wE*_gYm_$H#j zXrKNWyDTQ=j=0C-<2U>jb(=4#{#WrR0Q?fKL5!}8#uapoLPR_EGWe1gFyU&Vb@5;(*EtIWPZD-LylMl=;HKm4Ds$}5h1mOG zT=QE#9BI-aJ;}E4qJx%eD!b2p@M?E>^W5^;Q`ctuXMvufkh^Z}4*FPI5y&G57p}6| zxXmw{EBZVJc^ophE#RqBaaM z-yE+-Z5oFaF0unU;m?(F+NfB;_Nl~eT?4=LynCY1!}=??dR`PvIZ(9~)(0eZi$kkm zKP>Y0$|on=ZRNDb6*qLNj0C^sOK_!+FmPzS9{lBSrc9~6>y*g~paMyN{4tBCxsjq# z!(#Q}@BwJGbz3sf0J~gJBwnkxyvdrP4ospbxYS?{5ednrW^HorahSb@@HQf43 zKghy?xAQQDzV&&-1eDmqL%;cl^3rk_Fq{ZW;WP>|b{k<89&*UU)QKHJqm1O!V1e18 z{@qTylN3sC7i2hR)6R?it~*(Cn?yHHMsZRrp+jiW>|2&ytn(`VxmH5LPLe1iI^)V(tzMe6)mpfHs;<`gS1RWF8wm+?~>3t(^w~oYUGo_0m){h zAW<%R{WbEPgW>fu~;m~x>t<5k`nKLk zzXE96LbQ%5{Kj@YOea<30KC{Uo>mP&g$v0j2G4mFEaLWDq?1{Sv~ywd?gJOVL3lJ* z!!+z*)7p}^q2YTm9!ki%tpvYq*9gg#;Bc1*;B4fmU1%AJzWCtVf0_occ5Z$#%tfW3 z+m4Z2qFr*+`r3(}R<{Llj!AOLv=yvXXflxEhS?a$XC)_SYnu1c^$_SBHL&CF#)=B1 z8dBIbYi*EWPYLI>m=_Ax<`qnSi2pFLr9+r0@=UO;!w!U#sBtR0Kz(gLMl$)>f|I{T z0j@aW_BeLRI7m75*T&ho;X7X3m)&sQaK)3e(HN9Hahbz2{m5wpG2||ujDP3+I70T= z9js_Oy~fiAg>P`)XnTGFzWM9x+y(MU`MvCS#Lw|MzS`qe0Qky}cb)vXe!0S~q&3eI z(@7-lefL>y?Uy2!G6shnS{a;ns&fC+;OC4QtPdQDZVtGajaprU89NpwU#WtJAT0h1}`u zPCZ7#)Ub}^9tQhp7jz6O(7VI4=g#wJIP@$B3n$=-{B@zW3w9_=ha1nmO3(?`s8-}i zp~?hRREsTKF<$yAsNOO#tDFFTnaYl z=jwZaZz3?-u&vDrlHxF2=Fz)R(&+Hy#U1+(*#qpU=<3TiD1?=G@*eD5urdJdhZ(83 zi0pAN&Ls&F1veyGw#u#*Fu=EulUEx|w5?Zz1HQ`aHkEWR9a@Ey!Y##L-Rm2+0*gVH zu~pmRI21m>q$9SmN5>5hH!ZR8HDiXH+`eqV_9$)+&2gQsRYZ$?-R~Hp!#_l7%!Q%7 zfhJ}lQKn;t!Yxg=-5>Cs8#P1tgOG}*>0WPQCQ|byhZMeW`wrnhbk?p%;Y3{vZ9`kS zd%$0HmxM?>b(}{-yK=okb>Hxmn^mo1SF3u{y|FNp7PztXX(nrvh_?Fjz)a*JlJ=LR$YP;dhM4 zHGEkr>NlqeuIbI!0|xe&|Md9sC!ax63yUEOiadV&W4w;9_IMQlzVajE_+6_#%g|yO z;_DWGUa3T%&*52<3a$VM^}A*PR}!pW8*f`Wgeuh*2&O;-`>ZqW+&o#zm_~NE?21;d zrspvo)1;1DQW^g2+R!}OW+ z#O$vrgy(7(T45;|*1g1`?Wyp@q`mhHh&cWbQ^CB4#3OiZv575+G8*se7fw$i9MUZe zoJEPeU9GV~^EPdyx(a?|R~5i>Cy*BirXp^08UKqeEHDc3Ld^!TVjQm}?8W7C=ZQpVooF^JoB2QabNJrRhcip?> z^d!BS1X4)0PuY`UTUhui`(Rt@UH@IQ=c`W3mgl7BOq{0}$6%GoUk*{4V^my{hjq1K zM3o#3a==bMi7+!n7F-OU9iIC`D*HUOh`s?sW|G{Q)yMFguW^2`DSRy!#gvacK&Ejtch<@!aigFVesk7X-O>;XM9)Vq3yq^0w^Q53g4Ne#OVD0PvL`$2ULzTj%-1^_>q( z17wuWH%qK7!M_dUp&ASJ^a;dYpa`N=e~-LjfRbn9ivzgb2Z!O zqm{iNj%rZnEdy;Z`(AIdJMTq+*Z|AIbHF(cIr-VhX|x3)2{}^O@*E1rrnVQj3cWPh z4Z9sif_sdlk!lQI1r7^dJDHqv?E#BTQtVV)3(W`WZ7y7xpFil4!``m>d*%D2_$K-0 zH4kV#K_qRP5|$E%>qo;Q?2Ul;-5nHd(XAT?^``6tU^-Exak)!RBu!(-)^@!hJPp<^ zc4j>&Y}tamjfLHY+_o{S{wG&*l6DgTJP+VCPY-j#lST-CvzKlEI~nY!Omo~TIrdff z8S>7;N6R}ld5qos047U(pqXK^=%i#>32w<7SM^G#3(Zs06^7LACzLXP%1?!LzG~ns zL^;;R{jkDKkH&e>CA%1?CSu57SH8_E7d&xCg%=F9kbJ%*e zce}Ui%>U2cn=H$&CD~!i@v=yosY^8+aiIE5&Gb3?B$;WT8fYdBl9XhsV&x0h3v72^ zYdPX3hdgB#$d~s7fZcfC?F~S5Z)ik*{7V0=z@g~H*5kGCG7|=ElVEdhiT;BHlqOm) z-0=N3Ir1BVdqU4C2i!%Y@Ew@%2WA4b146%A6q^+?X3+swrl7qw-Us`QPVN!IcNw*y z=ccLwBYlKlB7Qj&6pZe)**;u8RHn!8J!S_*JDQpyJ5NOS6h^Td4!IT`5<5X>>rgZa zRO^!Iw(r+)5`a{u8#Bdel)z!9{t++Z;Q`s(G4meRqDb9mFw6VCohO@Rv2g z`=>Y&K8lM@@@)mPk|Uer()sk2)bd;}y`RjzaDdl|`x@2`igIg*av}XB!A&@>jbDm` z81&zN`Zd-?BMTme{K_9Z=;`pc)9CA2JY`~WE^))_;Mm2ZZgc;$xA^ze*BJjHQzy7e z^Eh)oWHGVE4FM-qEDIJ1I-14#f+u;Mprik}#Q^ z3712IW8j%!bm5}k#BU+|a7=Z~biD3&@kM2D)T#Q1=wK|GsxF7oiHW*$q9haUGukeT zPYvN!Yg~x_CwHMRS#BGkql5aXBTnIpwC5If@ZP{^8mOb6K003E-Gzw{-t9sEh;&I# z(Z!&a;vsc`{oaI;y-H~BvBP0-ol7z`Hk^f#`h_7W?IyPcDtJj9vKax)0t6>j{`L`O z|I-OLvv3mFumLXbo*pfAUgum60TAIY-dZuV*c=H5oOM6l6YOgd$*qL;$j%PZz!;O zy!5&jDBgd1-(bzIiD-x+Gefyxo%urypL!d*8AxCQ@vK^r)}-%FrrM<>n7FlX$*1!$ zgKYs!EWD~M{7CJTIZ4_k>m#WhnYf@%QsFxOq=Iub`N=jI8a7>;7TqLl{%AUcih0ON zRSYmGNxeRUs_Seg-j)tFTWdNEi!BvFACh4dv+DqC@ZvDOlQYPHt zD6$f0aEu(Qyr-8M-9c zEH&t~h=RKidG1JIfTWt=z_K5vF5D5YWex)$>3LRB7poNRIv+n2g6r&hE2_qG-sZ`@ z+8aQ|lUk$mWplLnVvi>%e!wcylpUTO2?ck9qqb9$wG7=AqI1bSl?0!hBEa1sO{Tz9 z`i#<`{Tt$%2VXJ|_-ZO(Mr`kbQ6UJ|?CBHIFmiSqJ}iaFH4nuv6&wXH9hdIXBdj5X zkMZHU*xs>^;H&{kE*^0&)>g~0Q}(NTLAds#~&*6=WW2x$x-tAD*yrTP2$f) zxE(`93Szu4X2cD?c;Tdpu1Mm;7#v$XC)C8=u--a0+c_NpHw# zAuxfq5CPkkA6R2{z?z=8*7&Em8fb|!+cml>9BRE${TVh>clGh91DD&5;SC4}$H4Tt z;c8J2S;JX8?X9rcc63NyI#&2nvM+^T3P&*0m2kfjoaZWeHSwkqO0k13bsowF|N~BQB`j_m&yAi7=V#ji!$QZNBsqA z#ZgNK_7cN{K%MZ~Wa|pZM}d>@3;xXq;ekIMBoH?0@m%Df&dd5|=xVeN*)@eO61kN~ zoBeh_x^-Pm(wrBZ;R(5zO8KGC!(xHn4RDPuaVs1PkuZMsn4KKfs5Yg@kJyQ|WPV0e zT!KZ(H(g)zs0BH!=jU2|y(4|$fg0fL_dOo_91pIBT;KLfZA??LU#yviLke6yp3r7) z&=2T*9D}r2(W~2DxTm$*)#N+`c+p$sWXb04m1fk#7Xv%l2WYEju#`m?VleQ({t^8Z zF@0e(iyZm)_#Qv@_!au1@%XbPc>i#r*652aii=XAassJyv35m1f{pK6Jt;^S$3ebw1ZO z9SnvE3MPPJVmflz0mdy#;^ft%Mz~LtYjen|r1&V9d|~mB(agDL&p?V?N6REkUShSI zxuE#d@d+4EotSuGR(4L6kiYo0458BHfuB_^Ry9WKfH5a?C5no$K8KQ$QV?c~A9J}1gpLHmLs{E}g~ z3XKP3UtQ*?VVg_%Jo05Q%&<4=i>8807oN0?*mfY5R?wC17#KUyMSZF>;xd~&dQkzJ zzUZ!{dv-3wE&~CW_DbB_V1Pmpwvye#&@SWE1p|@a8_$PsP}7?Ru~tph&ZH80ia5mA zX->>~M709voS(I7ILMO_Ig<6y)(w#p!s~M13HBvo7xI1kL8tH-y;q+Yip8gNR+GAf z+Egucq>MGawdgH!jPNw4zac)d6y!_qLJ8xw>&o%>?5iA59}yyE7+ojCA%YM#PW>yg z4uubzl+_R^ZMp|d()`ef15j((V6u>sqF*{&Umv}w0xsZ1S)t02&Kes{%hI)ZS4ar% z-B*ifA9hjo3@KD?JJCB-%qj#VruejSA4Z*k^XQzhz%mv%J=W_6OV5J;D;ZXuX_v4xZC9oUVr_M=ZD$Hd|X3%kaY~& zi}RRyQZ?qc-`#jXTFWZLeTf05n79HX(A&qy4ainFEl%|BUb&}_iKo#@CaG9~lP1tw zTo@e3(F?50qg%CJagv}C8dwN9D!zav#1arOH!G(#NpK+c+(|lmxSE^;(Q%H@``R2N zoEPDTY#BaI^f>-|+>Y<>m0S%Zgw9~Vk>;g6$d-osgAPSSt@z!mh%vrM+*iiX%Zdsb zNac3K7~aM~3bW&(8P{(_NArhpHbJ$7pgM3vRxf2sqxo}Hr$ulcX-U9d2v>b5-WT=@ zuKEq$DM3#r*NWzGgo00iojF5*$>|5A=@k1-Sdq#_xcpmBejP%@hk9c|+QCQ5gzE7Q zl4|_hWW@uXd#aZ8)D_?*hHXa*w@#2wyI$G$kZN{&V6Qk~oq4iv^umGbh;a;#0qVM- zPrLC^r>@dI@;fBhYg>b%0X5cbU+Z+q5*m(JiBRHE+|%}u_De28@m4*WdrbIwv8Y^+Xb^{vZS>Ig{rSDj3&M5GtHZ!D$2ylpPTHabUPw(;(rSTg1Y(CCo4;DXk)ir?(0 ztOB$sKuZ*cZT($_vZ-SxKn7P2dh8^5H7~n0L%^R_*p=CqM_xr+@6$Ny6k3chZF4gq z<1GM3DxR}qux{AeX*{?rzxelAR@yduv>P#nf3Qcy8qc&BV&U+JuMEQAy4%37c2%Tf z0QMpzAo4sk{Uz*6@$X*_?`07k7q$@TF2)90Pc#QB>K zPZDE2Cjhf?3eF0sb6p>rDSWwTA@{>nN^qB?lyqi7(5t#Veise8SkwJ9VCWU7!~bhw zX@j2&R*oh3$Cjz675qvt`kK-+OIC7?Cy7foFH-PKkrkm`+Fx-}b?pV`O9t`GB^R%N z>44#ng^S1*S7#P2X6}+lh)f!7imy@l_c$*seS+Y*#&0-;@0qYR#G`dDhQ{}EsHrfB zZbvWxkE=(pV#`IwJwBxU$a$2ntsOwaMai+Bj`3DZHtQ3?%i7eeqB8Jt;YhjiX9<~_pe)IU*vpy(B6hs6}h5~fqb zN^E#(gUsH+`PPtRK;Zg7tDY#>!j8sa;e6W4dD$)&Aw&9$?2q_o;h83@X|Tb-)fdaA zz!a*(*w`ttD9jhlyidLC+5_>D-X^RM>K@Wdkt5?n(|`b3Z>`RR*^1*GDPIj^Zxe;4vt;V*}*gNaEIHc*q)i6tP^2+ zqwv4~&ws}E_>sqV2fz=3km2H?zZ_e zHJG?IuLOh@pcGvTfvMS7(PUbP_tXAop73qr^pIQ`(f)yjs{*zhaM3ad#Pof6Z)i3D zu(J4G4Iirynven}KU(ZDawloEIoCMP7}@9HV`p6}e)>2u-v@8LkSw7RT`@#xEFn~& z4D`6}%oEg$##8taGHCJOwOZu^a*>|_GMBuSEs}|8UwXb!CYeSskWQ!X%%}1t<0%}1 z@8A+TS3qgR_d;N4Z%AK}+fbmIC@ql*oLq+L)Jl+W`Wn|tUeT+;M8gu=bEqv3J;)bJ5!_RrbP;Fg{9 z^AQ7%9S}Va%=j*SLQAmpHFi)}_`};eNzV`egr!;?%Ko{vcV+Aai^glQ18(tbBgarX z#jav3=AMtZz-CsvapnkUnx7&jH#Ln0=_U>eLljOy_)TCBT@EVKgG1|IX~QOtT`u~Y zOyJF-`ZrKXIA)^G|II(X3jlw?_xN$gw*c^ikJoR%|9RyzrJ%JHwY~uGzWi#{ zYtI5!0Rb8fnB$M->dFwLxi%S79Oc}K34Z7-H1Ve;)b!#d{qvFmrf)qz+ilc?J*tjv zz&8F&e3@&1avNfDZzIYCj)qj*Hx0t5W~Ec;0lr5-@t#$r zmJ2E1L`6OPUb;G7$_Q!T?nmc1wV`%$T+JL`0AFG2EuwnNDrZc?`_D`LYy~!rL&GsI zqe2L5Fqmh>xo+EI5YpOYCJTTWGBJfA<=Kdv2S;{TVsKie%?sBhh`h}Fp-rZ<(zY8v z12cz7$L_#?v{Z{vp>iuPaLeud2_t20&D(ejn~f(k+JS`$JK*0vza%ad%TdKSia{r_ zoL;s6;E{v-{l1G3oGd|7eU2fV1~taV{&Q!@7=D~K@`yzdOM}3`mdWSu9{<%;n<8B$ z;5}my{+_GtdxO{GMA3{EVJHCzo+uj3@A@09gJrKZ8A?^nT#^}}9mA&*^jqg%#q*NE z;N5{$l25Kw0cxi=x0K(e6KGqdfHvJ;L#HVS1VsNi_E^>+J{*S}%@5aD#1@TsxvkSa zqw%>C#F?8(fZKt1nAGhv#?cW_u@K8%Exkx(ztF1ePl~qP(@ueo`yu)< zxTZTFHv?9l4c*FYHjb(QO^THU#9bU&p0e)ivXYokQGJo{wv(^Mv+1eu3XfC>pAtML zMHMe5PQT$1wgFy6ioT=e%wHVCXSU7{4NeoWGvP2Po13R0_MErb7fnJyxdIoLO z9_5Y8HSa{~D_#~5WjS-jLQlpe*8@XZbWD*&CgvOe^xJ>;{S@F2J-!8iAADSqfA+U` zLLBuUf8JjJ=*zi`)-pah>Zp}VV4kmqhfoX%X%r@@M^$oX7%>FdPBj=%jE_}|og7mV zjT8rXUiJk%SDM^0F@Xs5aGl`vDnl;%NbOwAVZk7)Hv+1F;AXxZpP6;RS6Bu{Cd6i( zQqmF8pC|j6d(m^Qd1%Zls z>JjO>*Ns$5Lii4J9i#LvJjl=jTCBp>(Xr~oWlTHLt`S!_WoIsZvoJ>gp~8+?5t$arf{CoHW$SvU)QXZ1X`+#ek~g6ncl0NO^i45@S}sX|0c!iWq$Aw;rZ(9?JObC5-PSpDZs@<$|M=Y_G z;Dn39YqDFa_ig{>lAMN8koV3aujitL5Zq~#{Y?n>VtES`ySZu&-u)U=$y z>~G5icQ&EyG>ak8_{jVrat%qqXZ~2Q^*;ei;&nB?7bh}QD#OMxrPX_4AEfRHnHE-v z5*-SWCN0gU4x(elhj}+VSa<{C^9a#c9ihY4%NT}vBt@G?de6&P$sqH!yt)ci@x(yo zjdqHSw>E3%v!!8%vf+Cx@E!g#Dsk zi7(s*nt1^~j9vzQnx~>8rxC}jD)r8Q#0shvPr3Y(vDG2L0-+uN zX2gf4fH8lkjOI-n-ZI!TpG5&WUsv)&_>!<>KQT^#;4zvop47ch1)kI7av7L*y#wI` z@4)$Inufc1mOfqXmHT9Wl9I`4OqJ%W!OkjD_2IMDAb)Ooh^{*j(Ehh++N%s1U_$KR z^^=QfvFT#G%KpqRacA zYjXzBmpqydm3&-dI9tZs|EG*oc!^Eumx9`30d4OBFqv`XM8u-`zyv5!-t(OuTrGP~ z{>wCHyj|o{1{B`@yJ34!jy3|x0y7{*3rcj`45bBkbO8HPer*SiZl;V8!yAYU?F6^| z&g>2V{oU+#Do%0^k)5RJnT_1<*eCzjfWMx$2j=}1U58rp+Ty9)F+A#Ql zr>;xOMfqPq-WSHm4L&Ztl)cxQQA<&U5%L!li^o|*62Ovez{|a`ITvpuXN!H9tyl&r z06;Br!=R7ls*LY);G4%6?XK9!&-zos4uBte zdA1%(8=KZyLJoyXfJ+G!G|@^( znB-n(UhTzFvgbW$xVutL(nHSOiO{TAh1bHp&Jv&k^h<6*wQPxrl)ptjl@GLrMt%~aU$W?FQ^>aT_E z!_zZn3TBVh`(j26b(H7TZ+1j@;;k~DW_Pk=7SJLGf-9%z+EqISXjj=*NCw*3@u(u} zdj+IZ3{K;A&;#>B|6 z*!9gVr^N07{v_F>hN1ABS#OJyuzGij9GHwo+Sr5PhaFSNmPc;JVW`dTqBP)oQ}>YT zszHO*oU|XGCsY<9k+02{kn8?C8o%kwUJ6e>^j-l|KE;wNJyO~Rwgf8N{GAJ~9!am$ zW`s=4#Tmz#atrcSC9TPfT$qXv-jfMjL#a><*g|C?Ep5=^b&R0A}Q7+#gc^O((ExnKyf z?Vyi~{&ZW?c{8}5j}HSM@UdsA8;x8qi4*IZx`L2lKD>j=g$#OU1l`(9E-*-uCOweV zF%PI0hn6{?g%HwSd;>K5+DUh>kZA6j;uPDzra0B-v-((ar*gQRSB+7Cp7G;T&4&qd z(b`rY#@WfRlQ0o`g=_9j0wRMUe=&Y|@nz&ZJ%D)GP}N?D3c_`86P~J{ZygKTjiH(F zMaLZtjwdej>~1h5X}<5o(T>I;MGo-%jSF1GYktm4JA(nv(m6ZgX@Mx(VSJvKbOMtc z$Kb;t%<3pJX0JYq{I>aRnGOHm_PMq#}D&p|5$5(Ws3?KDVi|`FN?bOIj;A5YZcmNms zXkonRV77Rs%i5Jd_&YJ47ZNVHJv*=~UQqpSiM?f$JzOm{ZF|aA--%6!3)q&IevUMW z;W3~u(S#H{`gno#)fhvlF8vR_3L6v#Y@O9B99sufw&xT@b!?F>F+Tk>k~p3w!NN}Q zAf>zR?J6sZeaH-Qr7cg>Dy--Ps61=emWL&CzdE90*;E0wUPDb96Y*hY_B`H@@w8x` z0Rg8F6^%cJm0uYYxJz@cEMq+FLZaoNu)x?PX-yfCBV3p_$kT`9UL>)wcTEn_=@j?A5qKw$0zsCPXm ziFpq*xYRlX5#6%fgbUK54g6YV@L&W+tE|3518^k-9!soXMrBE105nJuDZdAKDGwyk znrDT(;H7*lT{zJd2$$-@2%PjC)d-WtbF9Kq;vusFz$u_fvs@x)tN)#_^jPWbw;ad7 z$S@#HCp$!t!l1y$f|27h2~jr}1X6Jkw5RwYq<+ZLJ(vtML;&?n2G%5b;EuLSifiA~ zb(Eg!DZ>*mSwW!^0o4r|e7@gqpok$TLJ@!ALvn|N!$4Ye0r5_FUxO%AuWTE)i8MJP zB2HYQXM`2B^u?Y#j0_zX{WueGnw<`|99g=S!w&R`J~v(?9L%cw6l{c6rcN^-5GIg0 zLO8Wb(9X_`&RVm3N;^Id#exxLEYj9$5k^A{EzW$h3a2fq;B#OZYX!4e?Z;>ICQA%H zN}~eQidBH?q4J{THs_z7vxXYQ?sz1H2Nu59PB$^6R$k1MVQEW!l zB3&*LuFOfy0wXBP=I>N5L`D;uFpEXPQy9~53)fDg-^H{fE}tp0Ms5VJM7TcdH$pD z%J0^2e~<6+Bad$Z;HMw*tk|et{djIw?v*j^6PDyn;s7rOnDa@FH|9V6hE5UQ;O0g26bL3cxhT(qPC743KfvShbS~2?X3}(QCUoJScWG zRK^mtW_7q}C*$=hjl)# zZKuyJ(DdBBq6zozOHN3J)_u%)OqizdqVkQHXM`#97i|T6UX7zdWNs2&sQ%Zv$U{m% zVudhJFE&om0eYLPvM2AWuX+--0Y3WQaM31dP)5jfo_JjDvGlsx7dYI+Rj51a6+Z4* z<Rd#b!YFY$fn!$Teud1d+f$5%yw2_Ug*wlDoqH$WS4<`;_+zJO0`1IAi$N@*u^h@PuL9au+dSO8_&{`#xU`hSAGqo<^}%wA!r(RuQoa z1VK0l@^BDFodY71lFUwmevN`@p<(zuV~*1}xQJjeDT7S@L^MkN-}kQqPCpkJR*lWY z8^&iLwqPtmP~Uki*P@ByujaQ$=9r)6AS9TgCm*kg5so4^)FJ_TopP!#8azDvBqTkv z6a=CuNPN`>+tWM2LtE&9m|laxuYY;Nd~rS32^09?I&1;JpXiPv5eNeT2t3=xL@;o zj7_Rh>;Nn*_`RK2!PhTb3b}V+?I<7IX8GOA$Gm**SG&DD<9GMYXquyJ)phV-QEV`5VWANC0`48iKIx6ud%ZTvz3rE=ML(;CH$=+Lzk{LBb1hpZa3x;;?rM z5AWIrsPqtzU@~CIzUsqi{8Bi_UaWbbNgu5LV?|QTM}Nnh^oXJ0$e75G6+gkBuTR0V zy(AD)RB@^ftNY%3vN6YoDh+j|c>ikoY5s>4+9n9hGv2G;KOj)WkS&!cz*>=m%+|gr zbpAz-PQrBEDTFt(OKQ>kJ~Ljw`|>e?MVTXS6yy82O14cqgMsn{%xNPL)#BSl3OW8I z6SkJwi5iXM{I<8}TT+ozj1BF7+iF=T$e5M9Fjz2je0Ohn_f7^)>WZQURsMO5{1~|`3(dI6&p6>CX6Eg z(}g6X-K~W9$PtTA``{SdOE7XU3ocR!s$pVeSZ%l1y9IOekBX+qh0g=+JC;ZKxSa|4 z%~mXb{;k7(;%6E)BrGoKRk6cppQEEF(Kv%!N8-4n1F^!OwDfRWIM(?*Y7{mXO#0RC ztT7GP@S#QCp|rLIC-PzB!)OKks>Cwl7lMEOE`?deqv3sh-vRJLk8c6s2Ooa~B!5O= zR*BCcF6{N!u>mJR5hHK*x|I4>UI_)ti`v$6V3`316Z7X4)~;O|`|CHbgM|Tw>%Mr+ zwEgYbDMjHInL>zDudPC z#G0qafWV>G((m;OYe;cq67dXZf(bF&BSR8Y_IXn$AO23}?puma!V3o}Z=vo!kH|>J zQx{7b9S?PoeTEcV^)3YPDNJc%b%K23^2%x7qo&B>V+FTqtYdc1dDU>(qo%2FB!)+H zlOXLzPFwy3`sQ`ZOb5f#|L}Sxj-7%?awWXal_x3ARlj(Nz}JtLSfNfNr+(Qv9Z1NwCh4E%sf zfbCpRW7PD6$T5QD_v&l(+gT1pz$Sn2D0d0e`x+kSEM{z7>WeA!?2&ZL?yEf29%VyT%yzmY zePFo$h`B4isNBuS(1KE5BMF+Xl!3%^Y?SU=0ehU&Xd2vCXn*@LbDHeK57qmnvDhQB zJn<`k3aEoP`oZ@E!661d*v=l}F1XpFGyU&hp+_1He;mJE{|&y!k37BwfPV?c!x*bs ziw_O;8r_&)>!2iUj2zqO$%M?6VDO!6kpe;&EHVuQ+o^E3h~chGaMbX-uqgTR0I6l=v@ zY=zJq21(N*E5MTeg2S^9tmyT=+HbE%t)w0jT_T3cUjb_e?kczQqikQudgK%s)1lMd z0sS|WS}`jbOzdcD057t{&=#}uiPo2%rR8)l|7ChRaIB*asvqZ=2TbgiDs&ZDqi8<2 zSHN2u-!{GFf9~d{4e5Pm;yWyQ1yV8DtJ-{2L+oAkGfXP*2GVF^7H(*sLyJ*!P_nHs z*fvP3A3+$2KZ(?0y6qU=m6< zMR$jLC&NWLxAyfTVKj+iz0;>uS%tz|j7c~VDN`aJ>Ih;dV^VDCf5RlUz&u5$EW1?O z)dVn+7@bcJRmWZ|uxkY$$IOS#eiwPi&c~)w?inFgYdVJBBf8b(b23dk<9ds2QCEMp zhIjEpbdF_j4+GDE%<4Fr$yia zzk<@^^(+~R6=|Xxu4L=0y~_h@%f8R9(gvpuTo(*W8K!yL7xdBKw%n~rq)dpEhP5^* zON}Wru}0pO0Dn^kzQ@lxz6F3EeEjxzfA`=2{@1@gO@3L%*X#HDYCp?(r-BmQgs4A2 zCGJZ7xqgj9R3m?yh_Z*S%xR?1PJwg0WaVKlswaE@dIu=A3M<}LRtpL?_`NZX6W?tk zvw{L?Z)R33_KiZ);P#~PcpM=t*;6NrT@>jmX)IVmVb_5ikCa4G-$#Ir7sP=kw*&_> zK= zOaaq}k-_awE;zSN>Xgu;t+q=@x;$6=Goqh-^a4o;;Ir&qh1yhc2^lTqx~HYG%Om4~ zsaQRDy6?R?bJ!dyJc%bq7i{}b3bw2*d5?4LmdSV)3Z7K@Tuk771+496K1_0MdC0#$ z;O2<$4zK?f-{VIf-vYo7K7RlG_y6+qoul-BQ~)M;I(mAYX8?CV*^US?rukfHr}-X_ z#RINDh>=J)^(WZ4&eH%5ggE+N!EIh=d&2ke>gzG9L>&ZlVmpQf%WOr^kwV;>#bUkE z84eb}ps3r|bK=^_-LJGoz{9+#WL4lx`J)Lw+^D*H-_8|uFbBv(msd!DgxY-o=@$lP z&zcNTx9xQDYr?xL2wKUPLr>RV6rcPOKyB(=gJ%n06+N% zLm*`Pwgo_Y8~(zRczf{0q+OQmT=v)N!(D$9sIiEZ{=K2< zKnSmxbb2as=t+q|>=|S3>$nX!n%`|RYS~Rwp9Va22~?nX^XPucEX?8vay?6(2WQtu z=!m=Mo>Gn5kxGRa5wv}#u%*p^TPsP7pK(IbA}~9lM*Ksm6(f^p2a0MdWx48M*t4iz zn}oh~UJ5PxPLYw$)*D->$UzA`hRiLRI1)AXO#Xe^MdR4$rWHM#E(vR^?p7_<&|=#t zfpq8*lyKEFAGxXXyr&px`(LE|4?g7rRxAlVaWxh!F z0L(i7T+!g*RhGY%bemuwPmNZHwY_Y<^GiG#81x(maaHj^+b!dxz7h(2;H)&L8%p@6 z+5j!--vP%2yaU92{%VwPPIAqg2EQ0#vz)}ib~`-GqdM{^=iCJrb#>&A?VkFD6BsVb zc*Y07aAyM4Ry>|bQU2N)4(|mIe1PW^6u81UbnWZiHb0H80~XJdAotw%!ljXikl-rj z^ItQz0Fooqr#}OTuoYLOm5$T+8GCN{gqBK^?3rQ;VG}+E+xAWf4Mv#)RI3!X9kImD zWzPyA%I53fm4XjDR)=1VzNhSVq)WfBE3wDtoSJOvDxc~9hak9VWs3?%C&8s|rJFyo z6=`yzNn3a50?cTm$lY`v8`C#L-dZmEHrPfFH6Mr1A65xxS3zG9{l9OiG%VW?W`2*H z1svxj$LCrn%so=}DjWgh{8hA5IR|I-59F$yZnPhMg zVx`~}NEc1hJ0jTc`ItF-T+`VF+nnuUZh()ns6GN*zuj2Ci)F_DoX29gy1Uzu_ZA(* zhFP^De}Rud1=F9FwdjX{QtXM3@EkjZVhv@Aex+ZB+B?zzR5@3A`tjh~=-p>1l{P6* z&S)YW`Hq<{_j?Kf?9!`@m|$U$nt>UfW_0+kZv7 z!apSTiR*)Ol>`~)6;)?=V3IT}7^R-5205uz2f)`d z$PX8-9&`SlxpaHv?(5j}Y6Zl|kK3q~|2H1*=NMl|-*PI>kLtkh(-yL&N$d>SWwkL6(($Epxmg51DUZkeD8 z{Gfh5R4mZCF5S3-FF2Z$V#4`-jE>77|ZMc@spruR*w4gT0 z?82QSWZ-Y{yA>o`*q8`Gd7B54S4aSsOr-)Qz7Pd29Xexof|YAEbykqGv{1K0BZQAn z`bXoU^M=sUWEx&H6*+2ojS`lec|0f-DH!Z$XI2UR?EDCF@~K&vE%HskOA3j~g_H!C zIzzZSl%1EAPGT9`MIe_v^c5y%Ll}hZDm#B(!UJx?+WOSH56<|r=O9vw*)EW6W5Z}$ zcnVEk_X>JZh9o!I^v;aAGWwvS1FI@42PxtAk6qAhGr45ZnrC?7r|I@Vf}{(>6^M-& zRx~b`;YD2_xw2>;zSVm8#(7jeY55=!==?c<4s7Csi}orD#1+(!x{_G>DG8_*=%EE) zg;ya9`@_fXs;D|@N+J(U!nAoE>D*m{Vae+7gdn;r*!m|Jx9q+dkPvc;Qzm#f zdZqtxtE0Tlg<%;i#ioV}D-bD&X`|yoyZCU;M(>3%gw3narrKcH35c0FJx_QXiTR3G zTg=%RB~UfLG|vAXKl1n%0DkZh*Khwr{{Hr^9gK*hcsu5P2LLpnp;C{@5RbHe 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

{(z8EAjLYXypY{x28_15Vq-$#~x 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

  • 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 z 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

    H`p77SZi%>3C{CfE0bheDC_F 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

    Ldlxy1z`4URd%d0gYa@W&J7<@?)I3BXzb*4IW7# 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∈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 diff --git a/apps/cards/apps/web-archived/static/robots.txt b/apps/cards/apps/web-archived/static/robots.txt deleted file mode 100644 index b6dd6670c..000000000 --- a/apps/cards/apps/web-archived/static/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# allow crawling everything by default -User-agent: * -Disallow: diff --git a/apps/cards/apps/web-archived/svelte.config.js b/apps/cards/apps/web-archived/svelte.config.js deleted file mode 100644 index 7664b57cd..000000000 --- a/apps/cards/apps/web-archived/svelte.config.js +++ /dev/null @@ -1,18 +0,0 @@ -import adapter from '@sveltejs/adapter-node'; -import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; - -/** @type {import('@sveltejs/kit').Config} */ -const config = { - // Consult https://svelte.dev/docs/kit/integrations - // for more information about preprocessors - preprocess: vitePreprocess(), - - kit: { - // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list. - // If your environment is not supported, or you settled on a specific environment, switch out the adapter. - // See https://svelte.dev/docs/kit/adapters for more information about adapters. - adapter: adapter(), - }, -}; - -export default config; diff --git a/apps/cards/apps/web-archived/tailwind.config.js.bak b/apps/cards/apps/web-archived/tailwind.config.js.bak deleted file mode 100644 index a5e29e3ef..000000000 --- a/apps/cards/apps/web-archived/tailwind.config.js.bak +++ /dev/null @@ -1,12 +0,0 @@ -import preset from '@manacore/shared-tailwind/preset'; - -/** @type {import('tailwindcss').Config} */ -export default { - presets: [preset], - content: [ - './src/**/*.{html,js,svelte,ts}', - '../../../packages/shared-ui/src/**/*.{html,js,svelte,ts}', - '../../../packages/shared-auth-ui/src/**/*.{html,js,svelte,ts}', - ], - plugins: [require('@tailwindcss/typography')], -}; diff --git a/apps/cards/apps/web-archived/tsconfig.json b/apps/cards/apps/web-archived/tsconfig.json deleted file mode 100644 index 5a3b413ed..000000000 --- a/apps/cards/apps/web-archived/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json", - "compilerOptions": { - "allowImportingTsExtensions": true, - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "strict": true, - "moduleResolution": "bundler" - } - // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias - // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files - // - // To make changes to top-level options such as include and exclude, we recommend extending - // the generated config; see https://svelte.dev/docs/kit/configuration#typescript -} diff --git a/apps/cards/apps/web-archived/vite.config.ts b/apps/cards/apps/web-archived/vite.config.ts deleted file mode 100644 index 5d471a3cd..000000000 --- a/apps/cards/apps/web-archived/vite.config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { sveltekit } from '@sveltejs/kit/vite'; -import tailwindcss from '@tailwindcss/vite'; -import { defineConfig } from 'vite'; -import { SvelteKitPWA } from '@vite-pwa/sveltekit'; -import { createPWAConfig } from '@manacore/shared-pwa'; -import { MANACORE_SHARED_PACKAGES, getBuildDefines } from '@manacore/shared-vite-config'; - -export default defineConfig({ - plugins: [ - tailwindcss(), - sveltekit(), - SvelteKitPWA( - createPWAConfig({ - name: 'Cards - Kartendecks', - shortName: 'Cards', - description: 'Kartendecks erstellen und lernen', - themeColor: '#f59e0b', - }) - ), - ], - server: { - port: 5176, - strictPort: true, - }, - ssr: { - noExternal: [...MANACORE_SHARED_PACKAGES], - }, - optimizeDeps: { - exclude: [...MANACORE_SHARED_PACKAGES], - }, - define: { - ...getBuildDefines(), - }, -}); diff --git a/apps/chat/apps/web-archived/.env.example b/apps/chat/apps/web-archived/.env.example deleted file mode 100644 index d683ba963..000000000 --- a/apps/chat/apps/web-archived/.env.example +++ /dev/null @@ -1,5 +0,0 @@ -# Mana Core Auth Configuration -PUBLIC_MANA_CORE_AUTH_URL=http://localhost:3001 - -# Chat Backend API -PUBLIC_BACKEND_URL=http://localhost:3002 diff --git a/apps/chat/apps/web-archived/Dockerfile b/apps/chat/apps/web-archived/Dockerfile deleted file mode 100644 index 99131c30b..000000000 --- a/apps/chat/apps/web-archived/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM sveltekit-base:local AS builder - -ARG PUBLIC_BACKEND_URL=http://chat-server -ARG PUBLIC_MANA_CORE_AUTH_URL=http://mana-auth:3001 -ENV PUBLIC_BACKEND_URL=$PUBLIC_BACKEND_URL -ENV PUBLIC_MANA_CORE_AUTH_URL=$PUBLIC_MANA_CORE_AUTH_URL - -COPY apps/chat/packages/chat-types ./apps/chat/packages/chat-types -COPY apps/chat/apps/web ./apps/chat/apps/web - -RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store \ - pnpm install --no-frozen-lockfile --ignore-scripts - -WORKDIR /app/apps/chat/apps/web -RUN pnpm exec svelte-kit sync -RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm build - -FROM node:20-alpine AS production -WORKDIR /app/apps/chat/apps/web -COPY --from=builder /app/node_modules/.pnpm /app/node_modules/.pnpm -COPY --from=builder /app/apps/chat/apps/web/node_modules ./node_modules -COPY --from=builder /app/apps/chat/apps/web/build ./build -COPY --from=builder /app/apps/chat/apps/web/package.json ./ - -EXPOSE 5010 -ENV NODE_ENV=production PORT=5010 HOST=0.0.0.0 - -HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ - CMD wget --no-verbose --tries=1 --spider http://localhost:5010/health || exit 1 - -CMD ["node", "build"] diff --git a/apps/chat/apps/web-archived/eslint.config.js b/apps/chat/apps/web-archived/eslint.config.js deleted file mode 100644 index f0e51b62e..000000000 --- a/apps/chat/apps/web-archived/eslint.config.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check -import { - baseConfig, - typescriptConfig, - svelteConfig, - prettierConfig, -} from '@manacore/eslint-config'; - -export default [ - { - ignores: ['dist/**', '.svelte-kit/**', 'node_modules/**'], - }, - ...baseConfig, - ...typescriptConfig, - ...svelteConfig, - ...prettierConfig, -]; diff --git a/apps/chat/apps/web-archived/package.json b/apps/chat/apps/web-archived/package.json deleted file mode 100644 index 3e11b9886..000000000 --- a/apps/chat/apps/web-archived/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "@chat/web", - "private": true, - "version": "0.3.0", - "type": "module", - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "prepare": "svelte-kit sync || echo ''", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "type-check": "svelte-kit sync && svelte-check --threshold error", - "lint": "eslint ." - }, - "devDependencies": { - "@manacore/shared-pwa": "workspace:*", - "@manacore/shared-vite-config": "workspace:*", - "@sveltejs/adapter-auto": "^6.0.0", - "@sveltejs/adapter-node": "^5.4.0", - "@sveltejs/kit": "^2.47.1", - "@sveltejs/vite-plugin-svelte": "^6.2.0", - "@tailwindcss/typography": "^0.5.19", - "@tailwindcss/vite": "^4.1.7", - "@vite-pwa/sveltekit": "^1.1.0", - "autoprefixer": "^10.4.21", - "postcss": "^8.5.6", - "svelte": "^5.41.0", - "svelte-check": "^4.3.3", - "tailwindcss": "^4.1.17", - "typescript": "^5.9.3", - "vite": "^7.1.7" - }, - "dependencies": { - "@chat/types": "workspace:*", - "@manacore/shared-api-client": "workspace:*", - "@manacore/shared-app-onboarding": "workspace:*", - "@manacore/shared-auth": "workspace:*", - "@manacore/shared-auth-stores": "workspace:*", - "@manacore/shared-auth-ui": "workspace:*", - "@manacore/local-store": "workspace:*", - "@manacore/shared-branding": "workspace:*", - "@manacore/shared-error-tracking": "workspace:*", - "@manacore/feedback": "workspace:*", - "@manacore/shared-i18n": "workspace:*", - "@manacore/help": "workspace:*", - "@manacore/shared-icons": "workspace:*", - "@manacore/shared-profile-ui": "workspace:*", - "@manacore/shared-stores": "workspace:*", - "@manacore/shared-tags": "workspace:*", - "@manacore/subscriptions": "workspace:*", - "@manacore/shared-tailwind": "workspace:*", - "@manacore/shared-theme": "workspace:*", - "@manacore/shared-theme-ui": "workspace:*", - "@manacore/shared-ui": "workspace:*", - "@manacore/shared-utils": "workspace:*", - "marked": "^17.0.0", - "svelte-i18n": "^4.0.1" - } -} diff --git a/apps/chat/apps/web-archived/src/app.css b/apps/chat/apps/web-archived/src/app.css deleted file mode 100644 index c29749613..000000000 --- a/apps/chat/apps/web-archived/src/app.css +++ /dev/null @@ -1,10 +0,0 @@ -@import "tailwindcss"; -@import "@manacore/shared-tailwind/themes.css"; - -/* Scan shared packages for Tailwind classes */ -@source "../../../../packages/shared-ui/src"; -@source "../../../../packages/shared-auth-ui/src"; -@source "../../../../packages/shared-branding/src"; -@source "../../../../packages/shared-theme-ui/src"; -@source "../../../../packages/shared-theme-ui/src/components"; -@source "../../../../packages/shared-theme-ui/src/pages"; diff --git a/apps/chat/apps/web-archived/src/app.d.ts b/apps/chat/apps/web-archived/src/app.d.ts deleted file mode 100644 index 2ae80f0cd..000000000 --- a/apps/chat/apps/web-archived/src/app.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -declare const __BUILD_HASH__: string; -declare const __BUILD_TIME__: string; - -// See https://svelte.dev/docs/kit/types#app.d.ts -// for information about these interfaces - -declare global { - namespace App { - // interface Error {} - interface Locals { - // Auth is now handled client-side via Mana Core Auth - } - interface PageData { - pathname?: string; - } - // interface PageState {} - // interface Platform {} - } -} - -export {}; diff --git a/apps/chat/apps/web-archived/src/app.html b/apps/chat/apps/web-archived/src/app.html deleted file mode 100644 index 77a5ff52c..000000000 --- a/apps/chat/apps/web-archived/src/app.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - %sveltekit.head% - - -

    %sveltekit.body%
    - - diff --git a/apps/chat/apps/web-archived/src/hooks.client.ts b/apps/chat/apps/web-archived/src/hooks.client.ts deleted file mode 100644 index 15549bb31..000000000 --- a/apps/chat/apps/web-archived/src/hooks.client.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { initErrorTracking, handleSvelteError } from '@manacore/shared-error-tracking/browser'; -import type { HandleClientError } from '@sveltejs/kit'; - -initErrorTracking({ - serviceName: 'chat-web', - dsn: (window as any).__PUBLIC_GLITCHTIP_DSN__, - environment: import.meta.env.MODE, -}); - -export const handleError: HandleClientError = ({ error }) => { - handleSvelteError(error); -}; diff --git a/apps/chat/apps/web-archived/src/hooks.server.ts b/apps/chat/apps/web-archived/src/hooks.server.ts deleted file mode 100644 index b85e13116..000000000 --- a/apps/chat/apps/web-archived/src/hooks.server.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Server Hooks for SvelteKit - * - Injects runtime environment variables for client-side use - * - Auth is handled client-side via Mana Core Auth - */ - -import type { Handle } from '@sveltejs/kit'; -import { setSecurityHeaders } from '@manacore/shared-utils/security-headers'; - -// Get client-side URLs from environment (Docker runtime) -const PUBLIC_MANA_CORE_AUTH_URL_CLIENT = - process.env.PUBLIC_MANA_CORE_AUTH_URL_CLIENT || process.env.PUBLIC_MANA_CORE_AUTH_URL || ''; -const PUBLIC_BACKEND_URL_CLIENT = - process.env.PUBLIC_BACKEND_URL_CLIENT || process.env.PUBLIC_BACKEND_URL || ''; -const PUBLIC_GLITCHTIP_DSN = process.env.PUBLIC_GLITCHTIP_DSN || ''; - -export const handle: Handle = async ({ event, resolve }) => { - const response = await resolve(event, { - transformPageChunk: ({ html }) => { - // Inject runtime environment variables into the HTML - // These will be available on window.__PUBLIC_*__ for client-side code - // Use JSON.stringify to prevent HTML/script injection - const envScript = ``; - return html.replace('', `${envScript}`); - }, - }); - - setSecurityHeaders(response, { - connectSrc: [PUBLIC_MANA_CORE_AUTH_URL_CLIENT, PUBLIC_BACKEND_URL_CLIENT], - }); - - return response; -}; diff --git a/apps/chat/apps/web-archived/src/lib/components/AppSlider.svelte b/apps/chat/apps/web-archived/src/lib/components/AppSlider.svelte deleted file mode 100644 index b36ac8d18..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/AppSlider.svelte +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/apps/chat/apps/web-archived/src/lib/components/LanguageSelector.svelte b/apps/chat/apps/web-archived/src/lib/components/LanguageSelector.svelte deleted file mode 100644 index 5630e7582..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/LanguageSelector.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/apps/chat/apps/web-archived/src/lib/components/chat/ChatInput.svelte b/apps/chat/apps/web-archived/src/lib/components/chat/ChatInput.svelte deleted file mode 100644 index 7410a7c3c..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/chat/ChatInput.svelte +++ /dev/null @@ -1,149 +0,0 @@ - - -
    -
    - -
    -
    - -
    - -
    - - - {#if models.length > 0 || onDocumentModeToggle} -
    - - {#if models.length > 0 && onModelSelect} -
    - -
    - -
    -
    - {/if} - - -
    - - - {#if onDocumentModeToggle} - - {/if} -
    - {/if} -
    -

    - Enter zum Senden, Shift+Enter für neue Zeile -

    -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/chat/ChatLayout.svelte b/apps/chat/apps/web-archived/src/lib/components/chat/ChatLayout.svelte deleted file mode 100644 index 7c93cd42d..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/chat/ChatLayout.svelte +++ /dev/null @@ -1,552 +0,0 @@ - - -
    - -
    - -
    -
    - - - {#if searchQuery} - - {/if} -
    -
    - - -
    -
    - - - - Neuer Chat - - - {#if filteredConversations.length === 0} -
    - {#if searchQuery} -
    🔍
    -

    Keine Ergebnisse

    -

    - Keine Konversationen für "{searchQuery}" -

    - - {:else} -
    💬
    -

    Keine Konversationen

    -

    Starte einen neuen Chat

    - {/if} -
    - {:else} - - {#if pinnedConversations.length > 0} - - {/if} - - - {#each sectionOrder as section} - {@const convs = groupedConversations()[section]} - {#if convs.length > 0} - - {/if} - {/each} - {/if} -
    -
    -
    - - - - - -
    - {@render children()} -
    -
    - - - - - diff --git a/apps/chat/apps/web-archived/src/lib/components/chat/ConversationList.svelte b/apps/chat/apps/web-archived/src/lib/components/chat/ConversationList.svelte deleted file mode 100644 index b054a24cf..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/chat/ConversationList.svelte +++ /dev/null @@ -1,224 +0,0 @@ - - -
    - - - - -
    - {#if isLoading} -
    -
    -
    - {:else if conversations.length === 0} -
    -

    Keine Konversationen

    -

    Starte einen neuen Chat

    -
    - {:else} -
    - {#each conversations as conv (conv.id)} - {@const isActive = $page.params.id === conv.id} - {#if editingId === conv.id} - -
    - handleKeydown(e, conv.id)} - class="flex-1 px-2 py-1 text-sm bg-background border border-border rounded-md - focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" - autofocus - /> - - -
    - {:else} - - -
    handleContextMenu(e, conv)}> - -
    - - {truncateTitle(conv.title || 'Neue Konversation')} - - - {formatDate(conv.updatedAt || conv.createdAt)} - -
    -
    - - -
    - {/if} - {/each} -
    - {/if} -
    - - {#if contextMenuConv} - { - contextMenuVisible = false; - contextMenuConv = null; - }} - /> - {/if} -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/chat/MessageBubble.svelte b/apps/chat/apps/web-archived/src/lib/components/chat/MessageBubble.svelte deleted file mode 100644 index fcfd2a27b..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/chat/MessageBubble.svelte +++ /dev/null @@ -1,232 +0,0 @@ - - -
    - -
    - {#if isUser} - - {:else} - - {/if} -
    - - -
    - -
    - {#if isUser} -

    {message.messageText}

    - {:else} -
    - {@html htmlContent} -
    - {/if} -
    - - -
    - - {formattedTime} - -
    -
    -
    - - diff --git a/apps/chat/apps/web-archived/src/lib/components/chat/MessageList.svelte b/apps/chat/apps/web-archived/src/lib/components/chat/MessageList.svelte deleted file mode 100644 index 93b676125..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/chat/MessageList.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - -
    - {#if messages.length === 0} -
    - -

    Keine Nachrichten

    -

    Starte eine Konversation!

    -
    - {:else} - {#each messages as message (message.id)} - - {/each} - {#if isTyping} - - {/if} - {/if} -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/chat/ModelSelector.svelte b/apps/chat/apps/web-archived/src/lib/components/chat/ModelSelector.svelte deleted file mode 100644 index 590165a4d..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/chat/ModelSelector.svelte +++ /dev/null @@ -1,42 +0,0 @@ - - -
    - -
    - -
    -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/chat/TypingIndicator.svelte b/apps/chat/apps/web-archived/src/lib/components/chat/TypingIndicator.svelte deleted file mode 100644 index 27b3d1167..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/chat/TypingIndicator.svelte +++ /dev/null @@ -1,68 +0,0 @@ - - -
    - -
    - -
    - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/apps/chat/apps/web-archived/src/lib/components/compare/CompareInput.svelte b/apps/chat/apps/web-archived/src/lib/components/compare/CompareInput.svelte deleted file mode 100644 index 79ffb05bd..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/compare/CompareInput.svelte +++ /dev/null @@ -1,116 +0,0 @@ - - -
    - - - - -
    - -
    - - onTemperatureChange(parseFloat(e.currentTarget.value))} - disabled={isRunning || disabled} - class="w-24 h-2 bg-muted rounded-full appearance-none cursor-pointer - [&::-webkit-slider-thumb]:appearance-none - [&::-webkit-slider-thumb]:w-4 - [&::-webkit-slider-thumb]:h-4 - [&::-webkit-slider-thumb]:rounded-full - [&::-webkit-slider-thumb]:bg-primary - [&::-webkit-slider-thumb]:cursor-pointer - disabled:opacity-50" - /> -
    - - -
    - - -
    - - -
    - - - -
    -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/compare/CompareProgress.svelte b/apps/chat/apps/web-archived/src/lib/components/compare/CompareProgress.svelte deleted file mode 100644 index 820c8faeb..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/compare/CompareProgress.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - -
    - -
    -

    - Verarbeite Modell {currentIndex + 1} von - {totalModels}: - {currentModelName} -

    - -
    - - -
    -
    -
    - - -

    - {Math.round(progress)}% -

    -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/compare/ModelResponseCard.svelte b/apps/chat/apps/web-archived/src/lib/components/compare/ModelResponseCard.svelte deleted file mode 100644 index 06d10dcfb..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/compare/ModelResponseCard.svelte +++ /dev/null @@ -1,185 +0,0 @@ - - -
    - -
    -

    {result.modelName}

    - - {#if result.status === 'loading'} - - - {statusConfig().label} - - {:else if result.status === 'complete' && formattedDuration()} - {formattedDuration()} - {:else} - {statusConfig().label} - {/if} - -
    - - -
    - {#if result.status === 'pending'} -

    Wartet auf Verarbeitung...

    - {:else if result.status === 'loading'} -
    - - - -
    - {:else if result.status === 'error'} -

    {result.error || 'Ein Fehler ist aufgetreten'}

    - {:else if result.response} -
    - {@html htmlContent} -
    - {/if} -
    - - - {#if result.status === 'complete' && result.usage} -
    - {result.usage.total_tokens} tokens - {#if tokensPerSecond()} - | - {tokensPerSecond()} t/s - {/if} -
    - {/if} -
    - - diff --git a/apps/chat/apps/web-archived/src/lib/components/compare/ModelResponseGrid.svelte b/apps/chat/apps/web-archived/src/lib/components/compare/ModelResponseGrid.svelte deleted file mode 100644 index cd35c7d85..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/compare/ModelResponseGrid.svelte +++ /dev/null @@ -1,27 +0,0 @@ - - -{#if results.length === 0} -
    -

    Keine Ergebnisse vorhanden.

    -

    Gib einen Prompt ein und starte den Vergleich.

    -
    -{:else} -
    - {#each results as result, index (result.modelId)} - - {/each} -
    -{/if} diff --git a/apps/chat/apps/web-archived/src/lib/components/spaces/SpaceCard.svelte b/apps/chat/apps/web-archived/src/lib/components/spaces/SpaceCard.svelte deleted file mode 100644 index 2987e1a10..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/spaces/SpaceCard.svelte +++ /dev/null @@ -1,127 +0,0 @@ - - - (showMenu = false)} /> - -
    onSelect(space.id)} - onkeydown={(e) => e.key === 'Enter' && onSelect(space.id)} - role="button" - tabindex="0" -> -
    -
    -
    -
    - -

    - {space.name} -

    - {#if isOwner} - - Besitzer - - {/if} -
    - - {#if space.description} -

    - {space.description} -

    - {/if} - -

    - Erstellt: {formatDate(space.createdAt)} -

    -
    - - -
    - - - {#if showMenu} -
    e.stopPropagation()} - onkeydown={() => {}} - role="menu" - tabindex="-1" - > - {#if isOwner} - - - {:else} - - {/if} -
    - {/if} -
    -
    -
    -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/spaces/SpaceForm.svelte b/apps/chat/apps/web-archived/src/lib/components/spaces/SpaceForm.svelte deleted file mode 100644 index 34fbd9763..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/spaces/SpaceForm.svelte +++ /dev/null @@ -1,106 +0,0 @@ - - -
    -

    - {isEditMode ? 'Space bearbeiten' : 'Neuen Space erstellen'} -

    - -
    { - e.preventDefault(); - handleSubmit(); - }} - class="space-y-5" - > - -
    - - - {#if errors.name} -

    {errors.name}

    - {/if} -
    - - -
    - - -
    - - -
    - - -
    -
    -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/templates/TemplateCard.svelte b/apps/chat/apps/web-archived/src/lib/components/templates/TemplateCard.svelte deleted file mode 100644 index 88a9b4f82..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/templates/TemplateCard.svelte +++ /dev/null @@ -1,96 +0,0 @@ - - -
    - -
    - - -
    -
    -
    -
    -

    - {template.name} -

    - {#if template.isDefault} - - Standard - - {/if} -
    - - {#if template.description} -

    - {template.description} -

    - {/if} - -

    - {truncatePrompt(template.systemPrompt)} -

    -
    - - -
    - {#if !template.isDefault} - - {/if} - - -
    -
    - - - -
    -
    diff --git a/apps/chat/apps/web-archived/src/lib/components/templates/TemplateForm.svelte b/apps/chat/apps/web-archived/src/lib/components/templates/TemplateForm.svelte deleted file mode 100644 index 726a54112..000000000 --- a/apps/chat/apps/web-archived/src/lib/components/templates/TemplateForm.svelte +++ /dev/null @@ -1,262 +0,0 @@ - - -
    -

    - {isEditMode ? 'Vorlage bearbeiten' : 'Neue Vorlage erstellen'} -

    - -
    { - e.preventDefault(); - handleSubmit(); - }} - class="space-y-5" - > - -
    - - - {#if errors.name} -

    {errors.name}

    - {/if} -
    - - -
    - - -
    - - -
    - - - {#if errors.systemPrompt} -

    {errors.systemPrompt}

    - {:else} -

    - Der System-Prompt definiert die Rolle und das Verhalten der KI. -

    - {/if} -
    - - -
    - - -

    - Diese Frage wird als Vorschlag angezeigt, wenn die Vorlage ausgewählt wird. -

    -
    - - -
    - -
    - {#each TEMPLATE_COLORS as color} - - {/each} -
    -
    - - -
    - - -

    - Falls ausgewählt, wird dieses Modell automatisch mit der Vorlage verwendet. -

    -
    - - -
    - -
    - - -
    - - -
    -
    -
    diff --git a/apps/chat/apps/web-archived/src/lib/content/help/index.test.ts b/apps/chat/apps/web-archived/src/lib/content/help/index.test.ts deleted file mode 100644 index 23b833183..000000000 --- a/apps/chat/apps/web-archived/src/lib/content/help/index.test.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { describe, it, expect } from 'vitest'; -import { getChatHelpContent } from './index'; - -describe('Chat Help Content', () => { - it('returns valid German content', () => { - const content = getChatHelpContent('de'); - - expect(content.faq.length).toBeGreaterThan(0); - content.faq.forEach((faq) => { - expect(faq.id).toBeTruthy(); - expect(faq.question).toBeTruthy(); - expect(faq.answer).toBeTruthy(); - }); - - expect(content.features).toBeDefined(); - expect(content.contact).toBeDefined(); - expect(content.contact.supportEmail).toBe('support@mana.how'); - }); - - it('returns valid English content', () => { - const content = getChatHelpContent('en'); - - expect(content.faq.length).toBeGreaterThan(0); - content.faq.forEach((faq) => { - expect(faq.id).toBeTruthy(); - expect(faq.question).toBeTruthy(); - expect(faq.answer).toBeTruthy(); - }); - - expect(content.features).toBeDefined(); - expect(content.contact).toBeDefined(); - }); - - it('returns same number of FAQ items for both languages', () => { - const de = getChatHelpContent('de'); - const en = getChatHelpContent('en'); - - expect(de.faq.length).toBe(en.faq.length); - expect(de.features.length).toBe(en.features.length); - }); - - it('has unique FAQ IDs', () => { - const content = getChatHelpContent('de'); - const ids = content.faq.map((f) => f.id); - expect(new Set(ids).size).toBe(ids.length); - }); -}); diff --git a/apps/chat/apps/web-archived/src/lib/content/help/index.ts b/apps/chat/apps/web-archived/src/lib/content/help/index.ts deleted file mode 100644 index d28a26a4e..000000000 --- a/apps/chat/apps/web-archived/src/lib/content/help/index.ts +++ /dev/null @@ -1,165 +0,0 @@ -/** - * Help content for Chat app - */ - -import type { HelpContent } from '@manacore/help'; -import { getPrivacyFAQs } from '@manacore/help'; - -export function getChatHelpContent(locale: string): HelpContent { - const isDE = locale === 'de'; - - return { - faq: [ - { - id: 'faq-models', - question: isDE - ? 'Welche KI-Modelle stehen zur Verfügung?' - : 'Which AI models are available?', - answer: isDE - ? '

    Es gibt zwei Kategorien von Modellen:

    • Lokale Modelle (kostenlos): Laufen auf unserem Server — z.B. Gemma 3, Qwen2.5 Coder, LLaVA Vision
    • Cloud-Modelle (Credits): Leistungsstärkere Modelle — z.B. Claude, GPT-4o, DeepSeek, Llama

    Lokale Modelle sind ideal für alltägliche Aufgaben. Cloud-Modelle bieten höhere Qualität für komplexe Anfragen.

    ' - : '

    There are two categories of models:

    • Local models (free): Run on our server — e.g. Gemma 3, Qwen2.5 Coder, LLaVA Vision
    • Cloud models (credits): More powerful models — e.g. Claude, GPT-4o, DeepSeek, Llama

    Local models are ideal for everyday tasks. Cloud models offer higher quality for complex requests.

    ', - category: 'features', - order: 1, - language: isDE ? 'de' : 'en', - featured: true, - tags: isDE ? ['modelle', 'ki', 'lokal', 'cloud'] : ['models', 'ai', 'local', 'cloud'], - }, - { - id: 'faq-spaces', - question: isDE ? 'Was sind Spaces?' : 'What are Spaces?', - answer: isDE - ? '

    Spaces sind Bereiche, um deine Chats thematisch zu organisieren:

    • Erstelle Spaces für verschiedene Projekte oder Themen
    • Jeder Space enthält eigene Unterhaltungen
    • Wechsle schnell zwischen Kontexten
    ' - : '

    Spaces are areas to organize your chats by topic:

    • Create spaces for different projects or topics
    • Each space contains its own conversations
    • Switch quickly between contexts
    ', - category: 'features', - order: 2, - language: isDE ? 'de' : 'en', - tags: isDE ? ['spaces', 'organisation', 'bereiche'] : ['spaces', 'organize', 'areas'], - }, - { - id: 'faq-templates', - question: isDE ? 'Wie nutze ich Templates?' : 'How do I use templates?', - answer: isDE - ? '

    Templates sind vordefinierte Prompt-Vorlagen:

    • Wähle ein Template aus der Vorlagenbibliothek
    • Das Template füllt automatisch den Chat mit einem optimierten Prompt
    • Ideal für wiederkehrende Aufgaben wie Texterstellung, Übersetzung oder Code-Analyse
    ' - : '

    Templates are predefined prompt presets:

    • Select a template from the template library
    • The template automatically fills the chat with an optimized prompt
    • Ideal for recurring tasks like writing, translation, or code analysis
    ', - category: 'features', - order: 3, - language: isDE ? 'de' : 'en', - tags: isDE ? ['templates', 'vorlagen', 'prompts'] : ['templates', 'presets', 'prompts'], - }, - { - id: 'faq-compare', - question: isDE ? 'Was ist der Modellvergleich?' : 'What is model comparison?', - answer: isDE - ? '

    Mit dem Modellvergleich kannst du denselben Prompt an mehrere Modelle gleichzeitig senden und die Antworten nebeneinander vergleichen. So findest du das beste Modell für deine Aufgabe.

    ' - : '

    Model comparison lets you send the same prompt to multiple models simultaneously and compare responses side by side. This helps you find the best model for your task.

    ', - category: 'features', - order: 4, - language: isDE ? 'de' : 'en', - tags: isDE ? ['vergleich', 'modelle', 'test'] : ['compare', 'models', 'test'], - }, - ...getPrivacyFAQs(locale, { - dataTypeDE: 'Chats', - dataTypeEN: 'chats', - extraBulletsDE: [ - 'Lokale Modelle: Bei lokalen Modellen verlassen deine Daten nie unseren Server', - ], - extraBulletsEN: [ - 'Local models: With local models, your data never leaves our server', - ], - }), - ], - features: [ - { - id: 'feature-models', - title: isDE ? 'Mehrere KI-Modelle' : 'Multiple AI Models', - description: isDE - ? 'Lokale und Cloud-Modelle für jede Aufgabe' - : 'Local and cloud models for every task', - icon: '🤖', - category: 'core', - highlights: isDE - ? ['7+ lokale Modelle (kostenlos)', 'Cloud-Modelle (Claude, GPT)', 'Vision-Modelle'] - : ['7+ local models (free)', 'Cloud models (Claude, GPT)', 'Vision models'], - content: '', - order: 1, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-spaces', - title: 'Spaces', - description: isDE - ? 'Organisiere Chats nach Themen und Projekten' - : 'Organize chats by topics and projects', - icon: '📂', - category: 'core', - highlights: isDE - ? ['Thematische Gruppierung', 'Schneller Kontextwechsel', 'Eigene Unterhaltungen'] - : ['Topic grouping', 'Quick context switch', 'Separate conversations'], - content: '', - order: 2, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-compare', - title: isDE ? 'Modellvergleich' : 'Model Comparison', - description: isDE - ? 'Vergleiche Antworten mehrerer Modelle nebeneinander' - : 'Compare responses from multiple models side by side', - icon: '⚖️', - category: 'advanced', - highlights: isDE - ? ['Parallele Anfragen', 'Qualitätsvergleich', 'Beste Modellwahl'] - : ['Parallel requests', 'Quality comparison', 'Best model selection'], - content: '', - order: 3, - language: isDE ? 'de' : 'en', - }, - { - id: 'feature-templates', - title: 'Templates', - description: isDE - ? 'Optimierte Prompts für wiederkehrende Aufgaben' - : 'Optimized prompts for recurring tasks', - icon: '📋', - category: 'core', - highlights: isDE - ? ['Prompt-Vorlagen', 'Ein-Klick-Start', 'Verschiedene Kategorien'] - : ['Prompt presets', 'One-click start', 'Various categories'], - content: '', - order: 4, - language: isDE ? 'de' : 'en', - }, - ], - shortcuts: [ - { - id: 'shortcuts-nav', - category: 'navigation', - title: 'Navigation', - language: isDE ? 'de' : 'en', - order: 1, - shortcuts: [ - { shortcut: 'Cmd/Ctrl + 1', action: 'Chat' }, - { shortcut: 'Cmd/Ctrl + 2', action: isDE ? 'Vergleich' : 'Compare' }, - { shortcut: 'Cmd/Ctrl + 3', action: 'Templates' }, - { shortcut: 'Cmd/Ctrl + 4', action: 'Spaces' }, - { shortcut: 'Cmd/Ctrl + 5', action: isDE ? 'Dokumente' : 'Documents' }, - { shortcut: 'Cmd/Ctrl + 6', action: isDE ? 'Archiv' : 'Archive' }, - ], - }, - ], - gettingStarted: [], - changelog: [], - contact: { - id: 'contact-support', - title: isDE ? 'Support kontaktieren' : 'Contact Support', - content: isDE - ? '

    Unser Support-Team hilft dir bei allen Fragen rund um Chat.

    ' - : '

    Our support team is here to help you with any chat-related questions.

    ', - language: isDE ? 'de' : 'en', - order: 1, - supportEmail: 'support@mana.how', - documentationUrl: 'https://mana.how/docs', - responseTime: isDE ? 'Normalerweise innerhalb von 24 Stunden' : 'Usually within 24 hours', - }, - }; -} diff --git a/apps/chat/apps/web-archived/src/lib/data/guest-seed.ts b/apps/chat/apps/web-archived/src/lib/data/guest-seed.ts deleted file mode 100644 index 65b4ff321..000000000 --- a/apps/chat/apps/web-archived/src/lib/data/guest-seed.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Guest seed data for the Chat app. - * - * Provides a demo conversation to showcase the chat experience. - */ - -import type { LocalConversation, LocalMessage } from './local-store'; - -const DEMO_CONVERSATION_ID = 'demo-welcome'; - -export const guestConversations: LocalConversation[] = [ - { - id: DEMO_CONVERSATION_ID, - title: 'Willkommen bei Chat!', - conversationMode: 'free', - documentMode: false, - isArchived: false, - isPinned: true, - }, -]; - -export const guestMessages: LocalMessage[] = [ - { - id: 'msg-1', - conversationId: DEMO_CONVERSATION_ID, - sender: 'assistant', - messageText: - 'Hallo! Ich bin dein KI-Assistent. Du kannst mir Fragen stellen, Texte schreiben lassen oder einfach ein Gespräch führen. Melde dich an, um deine Unterhaltungen zu speichern und zu synchronisieren.', - }, -]; diff --git a/apps/chat/apps/web-archived/src/lib/data/local-store.ts b/apps/chat/apps/web-archived/src/lib/data/local-store.ts deleted file mode 100644 index fb9030ecd..000000000 --- a/apps/chat/apps/web-archived/src/lib/data/local-store.ts +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Chat — Local-First Data Layer - * - * Conversations, messages, and templates stored locally. - * LLM streaming and model management remain server-side. - */ - -import { createLocalStore, type BaseRecord } from '@manacore/local-store'; -import { guestConversations, guestMessages } from './guest-seed'; - -// ─── Types ────────────────────────────────────────────────── - -export interface LocalConversation extends BaseRecord { - title?: string | null; - modelId?: string | null; - templateId?: string | null; - spaceId?: string | null; - conversationMode: 'free' | 'guided' | 'template'; - documentMode: boolean; - isArchived: boolean; - isPinned: boolean; -} - -export interface LocalMessage extends BaseRecord { - conversationId: string; - sender: 'user' | 'assistant' | 'system'; - messageText: string; -} - -export interface LocalTemplate extends BaseRecord { - name: string; - description: string; - systemPrompt: string; - initialQuestion?: string | null; - modelId?: string | null; - color: string; - isDefault: boolean; - documentMode: boolean; -} - -// ─── Store ────────────────────────────────────────────────── - -const SYNC_SERVER_URL = import.meta.env.PUBLIC_SYNC_SERVER_URL || 'http://localhost:3050'; - -export const chatStore = createLocalStore({ - appId: 'chat', - collections: [ - { - name: 'conversations', - indexes: ['isArchived', 'isPinned', 'spaceId', 'templateId'], - guestSeed: guestConversations, - }, - { - name: 'messages', - indexes: ['conversationId', 'sender', '[conversationId+sender]'], - guestSeed: guestMessages, - }, - { - name: 'templates', - indexes: ['isDefault'], - }, - ], - sync: { - serverUrl: SYNC_SERVER_URL, - }, -}); - -// Typed collection accessors -export const conversationCollection = chatStore.collection('conversations'); -export const messageCollection = chatStore.collection('messages'); -export const templateCollection = chatStore.collection('templates'); diff --git a/apps/chat/apps/web-archived/src/lib/data/queries.ts b/apps/chat/apps/web-archived/src/lib/data/queries.ts deleted file mode 100644 index 6fcdb0179..000000000 --- a/apps/chat/apps/web-archived/src/lib/data/queries.ts +++ /dev/null @@ -1,134 +0,0 @@ -/** - * Reactive Queries & Pure Helpers for Chat - * - * Uses Dexie liveQuery to automatically re-render when IndexedDB changes - * (local writes, sync updates, other tabs). Components call these hooks - * at init time; no manual fetch/refresh needed. - */ - -import { useLiveQueryWithDefault } from '@manacore/local-store/svelte'; -import { - conversationCollection, - templateCollection, - messageCollection, - type LocalConversation, - type LocalTemplate, - type LocalMessage, -} from './local-store'; -import type { Conversation, Template, Message } from '@chat/types'; - -// ─── Type Converters ─────────────────────────────────────── - -export function toConversation(local: LocalConversation): Conversation { - return { - id: local.id, - userId: local.userId ?? 'guest', - modelId: local.modelId ?? '', - templateId: local.templateId ?? undefined, - spaceId: local.spaceId ?? undefined, - conversationMode: local.conversationMode, - documentMode: local.documentMode, - title: local.title ?? undefined, - isArchived: local.isArchived, - isPinned: local.isPinned, - createdAt: local.createdAt ?? new Date().toISOString(), - updatedAt: local.updatedAt ?? new Date().toISOString(), - }; -} - -export function toTemplate(local: LocalTemplate): Template { - return { - id: local.id, - userId: local.userId ?? 'guest', - name: local.name, - description: local.description || null, - systemPrompt: local.systemPrompt, - initialQuestion: local.initialQuestion ?? null, - modelId: local.modelId ?? null, - color: local.color, - isDefault: local.isDefault, - documentMode: local.documentMode, - createdAt: local.createdAt ?? new Date().toISOString(), - updatedAt: local.updatedAt ?? new Date().toISOString(), - }; -} - -export function toMessage(local: LocalMessage): Message { - return { - id: local.id, - conversationId: local.conversationId, - sender: local.sender, - messageText: local.messageText, - createdAt: local.createdAt ?? new Date().toISOString(), - updatedAt: local.updatedAt ?? undefined, - }; -} - -// ─── Live Query Hooks (call during component init) ───────── - -/** All non-archived conversations, sorted by pinned first then updatedAt desc. */ -export function useAllConversations() { - return useLiveQueryWithDefault(async () => { - const locals = await conversationCollection.getAll({ isArchived: false }); - return sortConversations(locals.map(toConversation)); - }, [] as Conversation[]); -} - -/** All archived conversations, sorted by updatedAt desc. */ -export function useArchivedConversations() { - return useLiveQueryWithDefault(async () => { - const locals = await conversationCollection.getAll({ isArchived: true }); - return locals - .map(toConversation) - .sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()); - }, [] as Conversation[]); -} - -/** All templates, sorted by name. */ -export function useAllTemplates() { - return useLiveQueryWithDefault(async () => { - const locals = await templateCollection.getAll(); - return locals.map(toTemplate).sort((a, b) => a.name.localeCompare(b.name)); - }, [] as Template[]); -} - -/** Messages for a specific conversation, sorted by createdAt asc. */ -export function useConversationMessages(conversationId: string) { - return useLiveQueryWithDefault(async () => { - const locals = await messageCollection.getAll({ conversationId }); - return locals - .map(toMessage) - .sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime()); - }, [] as Message[]); -} - -// ─── Pure Sort / Filter Functions (for $derived) ─────────── - -/** Sort conversations: pinned first, then by updatedAt descending. */ -export function sortConversations(list: Conversation[]): Conversation[] { - return [...list].sort((a, b) => { - if (a.isPinned && !b.isPinned) return -1; - if (!a.isPinned && b.isPinned) return 1; - return new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(); - }); -} - -/** Filter conversations by space. */ -export function filterBySpace(conversations: Conversation[], spaceId: string): Conversation[] { - return conversations.filter((c) => c.spaceId === spaceId); -} - -/** Filter conversations by search query on title. */ -export function filterBySearch(conversations: Conversation[], query: string): Conversation[] { - if (!query.trim()) return conversations; - const lower = query.toLowerCase(); - return conversations.filter((c) => c.title?.toLowerCase().includes(lower)); -} - -/** Split conversations into pinned and unpinned. */ -export function splitPinned(conversations: Conversation[]) { - return { - pinned: conversations.filter((c) => c.isPinned), - unpinned: conversations.filter((c) => !c.isPinned), - }; -} diff --git a/apps/chat/apps/web-archived/src/lib/i18n/index.ts b/apps/chat/apps/web-archived/src/lib/i18n/index.ts deleted file mode 100644 index 7634ae4ad..000000000 --- a/apps/chat/apps/web-archived/src/lib/i18n/index.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { browser } from '$app/environment'; -import { init, register, locale, waitLocale } from 'svelte-i18n'; - -// List of supported locales -export const supportedLocales = ['de', 'en', 'it', 'fr', 'es'] as const; -export type SupportedLocale = (typeof supportedLocales)[number]; - -// Default locale -const defaultLocale = 'de'; - -// Register all available locales -register('de', () => import('./locales/de.json')); -register('en', () => import('./locales/en.json')); -register('it', () => import('./locales/it.json')); -register('fr', () => import('./locales/fr.json')); -register('es', () => import('./locales/es.json')); - -// Get initial locale from browser or localStorage -function getInitialLocale(): SupportedLocale { - if (browser) { - // Check localStorage first - const stored = localStorage.getItem('chat_locale'); - if (stored && supportedLocales.includes(stored as SupportedLocale)) { - return stored as SupportedLocale; - } - - // Fall back to browser language - const browserLang = navigator.language.split('-')[0]; - if (supportedLocales.includes(browserLang as SupportedLocale)) { - return browserLang as SupportedLocale; - } - } - - return defaultLocale; -} - -// Initialize i18n at module scope (required for SSR) -init({ - fallbackLocale: defaultLocale, - initialLocale: getInitialLocale(), -}); - -// Set locale and persist to localStorage -export function setLocale(newLocale: SupportedLocale) { - locale.set(newLocale); - if (browser) { - localStorage.setItem('chat_locale', newLocale); - } -} - -// Wait for locale to be loaded (useful for SSR) -export { waitLocale }; diff --git a/apps/chat/apps/web-archived/src/lib/i18n/locales/de.json b/apps/chat/apps/web-archived/src/lib/i18n/locales/de.json deleted file mode 100644 index 30b2317f2..000000000 --- a/apps/chat/apps/web-archived/src/lib/i18n/locales/de.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "app_slider": { - "title": "Weitere Manacore Apps", - "memoro_desc": "KI-gestützte Sprachmemos", - "maerchenzauber_desc": "Magische Gute-Nacht-Geschichten", - "cards_desc": "KI Lernkarten", - "picture_desc": "KI Bildgenerierung", - "moodlit_desc": "Dein Stimmungsbegleiter", - "manacore_desc": "KI-Produktivitätssuite", - "coming_soon": "Demnächst", - "download": "Download" - } -} diff --git a/apps/chat/apps/web-archived/src/lib/i18n/locales/en.json b/apps/chat/apps/web-archived/src/lib/i18n/locales/en.json deleted file mode 100644 index 1cf6356fd..000000000 --- a/apps/chat/apps/web-archived/src/lib/i18n/locales/en.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "app_slider": { - "title": "More Manacore Apps", - "memoro_desc": "AI-powered voice memos", - "maerchenzauber_desc": "Magical bedtime stories", - "cards_desc": "AI flashcards", - "picture_desc": "AI image generation", - "moodlit_desc": "Your mood companion", - "manacore_desc": "AI productivity suite", - "coming_soon": "Coming soon", - "download": "Download" - } -} diff --git a/apps/chat/apps/web-archived/src/lib/i18n/locales/es.json b/apps/chat/apps/web-archived/src/lib/i18n/locales/es.json deleted file mode 100644 index 5f56d6cd0..000000000 --- a/apps/chat/apps/web-archived/src/lib/i18n/locales/es.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "app_slider": { - "title": "Más Apps de Manacore", - "memoro_desc": "Notas de voz con IA", - "maerchenzauber_desc": "Cuentos mágicos para dormir", - "cards_desc": "Flashcards con IA", - "picture_desc": "Generación de imágenes con IA", - "moodlit_desc": "Tu compañero de ánimo", - "manacore_desc": "Suite de productividad IA", - "coming_soon": "Próximamente", - "download": "Descargar" - } -} diff --git a/apps/chat/apps/web-archived/src/lib/i18n/locales/fr.json b/apps/chat/apps/web-archived/src/lib/i18n/locales/fr.json deleted file mode 100644 index 2e2308534..000000000 --- a/apps/chat/apps/web-archived/src/lib/i18n/locales/fr.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "app_slider": { - "title": "Autres Apps Manacore", - "memoro_desc": "Mémos vocaux avec IA", - "maerchenzauber_desc": "Histoires magiques du soir", - "cards_desc": "Flashcards avec IA", - "picture_desc": "Génération d'images avec IA", - "moodlit_desc": "Ton compagnon d'humeur", - "manacore_desc": "Suite de productivité IA", - "coming_soon": "Bientôt disponible", - "download": "Télécharger" - } -} diff --git a/apps/chat/apps/web-archived/src/lib/i18n/locales/it.json b/apps/chat/apps/web-archived/src/lib/i18n/locales/it.json deleted file mode 100644 index c7558130b..000000000 --- a/apps/chat/apps/web-archived/src/lib/i18n/locales/it.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "app_slider": { - "title": "Altre App Manacore", - "memoro_desc": "Memo vocali con IA", - "maerchenzauber_desc": "Storie magiche della buonanotte", - "cards_desc": "Flashcard con IA", - "picture_desc": "Generazione immagini con IA", - "moodlit_desc": "Il tuo compagno d'umore", - "manacore_desc": "Suite di produttività IA", - "coming_soon": "Prossimamente", - "download": "Scarica" - } -} diff --git a/apps/chat/apps/web-archived/src/lib/services/api.ts b/apps/chat/apps/web-archived/src/lib/services/api.ts deleted file mode 100644 index 94f10b5be..000000000 --- a/apps/chat/apps/web-archived/src/lib/services/api.ts +++ /dev/null @@ -1,662 +0,0 @@ -/** - * API Client for Chat Backend - * - * This replaces direct Supabase calls with backend API calls. - * All database operations now go through the NestJS backend. - * - * Token handling: Uses authStore.getValidToken() which automatically - * refreshes expired tokens before making requests. - */ - -import { env } from '$env/dynamic/public'; -import { authStore } from '$lib/stores/auth.svelte'; -import type { - Conversation, - Message, - Template, - Space, - SpaceMember, - Document, - AIModel, - ChatMessage, - ChatCompletionResponse, -} from '@chat/types'; - -// Re-export types for convenience -export type { - Conversation, - Message, - Template, - Space, - SpaceMember, - Document, - AIModel, - ChatMessage, - ChatCompletionResponse, -}; - -const API_BASE = env.PUBLIC_BACKEND_URL || 'http://localhost:3002'; - -type FetchOptions = { - method?: 'GET' | 'POST' | 'PATCH' | 'DELETE'; - body?: unknown; - token?: string; -}; - -async function fetchApi( - endpoint: string, - options: FetchOptions = {} -): Promise<{ data: T | null; error: Error | null }> { - const { method = 'GET', body, token } = options; - - // Get a valid token (auto-refreshes if expired) - const authToken = token || (await authStore.getValidToken()); - - if (!authToken) { - return { data: null, error: new Error('No authentication token') }; - } - - try { - const response = await fetch(`${API_BASE}/api/v1${endpoint}`, { - method, - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${authToken}`, - }, - body: body ? JSON.stringify(body) : undefined, - }); - - if (!response.ok) { - const errorData = await response.json().catch(() => ({})); - return { - data: null, - error: new Error(errorData.message || `API error: ${response.status}`), - }; - } - - const data = await response.json(); - return { data, error: null }; - } catch (error) { - return { - data: null, - error: error instanceof Error ? error : new Error('Unknown error'), - }; - } -} - -// ============ Conversation API ============ - -export const conversationApi = { - async getConversations(spaceId?: string): Promise { - const query = spaceId ? `?spaceId=${spaceId}` : ''; - const { data, error } = await fetchApi(`/conversations${query}`); - if (error) { - console.error('Error loading conversations:', error); - return []; - } - return data || []; - }, - - async getArchivedConversations(): Promise { - const { data, error } = await fetchApi('/conversations/archived'); - if (error) { - console.error('Error loading archived conversations:', error); - return []; - } - return data || []; - }, - - async getConversation(id: string): Promise { - const { data, error } = await fetchApi(`/conversations/${id}`); - if (error) { - console.error('Error loading conversation:', error); - return null; - } - return data; - }, - - async getMessages(conversationId: string): Promise { - const { data, error } = await fetchApi(`/conversations/${conversationId}/messages`); - if (error) { - console.error('Error loading messages:', error); - return []; - } - return data || []; - }, - - async createConversation(options: { - modelId: string; - title?: string; - templateId?: string; - conversationMode?: 'free' | 'guided' | 'template'; - documentMode?: boolean; - spaceId?: string; - }): Promise { - const { data, error } = await fetchApi('/conversations', { - method: 'POST', - body: options, - }); - if (error) { - console.error('Error creating conversation:', error); - return null; - } - return data; - }, - - async addMessage( - conversationId: string, - sender: 'user' | 'assistant' | 'system', - messageText: string - ): Promise { - const { data, error } = await fetchApi(`/conversations/${conversationId}/messages`, { - method: 'POST', - body: { sender, messageText }, - }); - if (error) { - console.error('Error adding message:', error); - return null; - } - return data; - }, - - async updateTitle(conversationId: string, title: string): Promise { - const { error } = await fetchApi(`/conversations/${conversationId}/title`, { - method: 'PATCH', - body: { title }, - }); - if (error) { - console.error('Error updating title:', error); - return false; - } - return true; - }, - - async archiveConversation(conversationId: string): Promise { - const { error } = await fetchApi(`/conversations/${conversationId}/archive`, { - method: 'PATCH', - }); - if (error) { - console.error('Error archiving conversation:', error); - return false; - } - return true; - }, - - async unarchiveConversation(conversationId: string): Promise { - const { error } = await fetchApi(`/conversations/${conversationId}/unarchive`, { - method: 'PATCH', - }); - if (error) { - console.error('Error unarchiving conversation:', error); - return false; - } - return true; - }, - - async deleteConversation(conversationId: string): Promise { - const { error } = await fetchApi<{ success: boolean }>(`/conversations/${conversationId}`, { - method: 'DELETE', - }); - if (error) { - console.error('Error deleting conversation:', error); - return false; - } - return true; - }, - - async pinConversation(conversationId: string): Promise { - const { error } = await fetchApi(`/conversations/${conversationId}/pin`, { - method: 'PATCH', - }); - if (error) { - console.error('Error pinning conversation:', error); - return false; - } - return true; - }, - - async unpinConversation(conversationId: string): Promise { - const { error } = await fetchApi(`/conversations/${conversationId}/unpin`, { - method: 'PATCH', - }); - if (error) { - console.error('Error unpinning conversation:', error); - return false; - } - return true; - }, -}; - -// ============ Template API ============ - -export const templateApi = { - async getTemplates(): Promise { - const { data, error } = await fetchApi('/templates'); - if (error) { - console.error('Error loading templates:', error); - return []; - } - return data || []; - }, - - async getTemplate(id: string): Promise