managarten/packages/shared-stores/src/index.ts
Till JS 5c33962439 feat(local-first): migrate tags + task stores to reactive liveQuery across all apps
- Todo: Replace manual fetch/state stores with useLiveQuery() for tasks,
  projects, and tags. Components use Svelte context instead of store imports.
  Stores reduced to mutation-only services. Removes ~200 lines of manual
  state management. Enables multi-tab sync and auto-refresh on data changes.

- Tags (all 16 apps): Migrate from API-based createTagStore() to shared
  local-first IndexedDB ('manacore-tags'). Tags now work offline and in
  guest mode with default seed data. All apps share the same tag DB via
  tagLocalStore + useAllTags() + setContext pattern.

- Cleanup: Delete unused Todo API files (projects.ts, labels.ts,
  reminders.ts), remove dead labels store, clean up barrel exports.

Apps migrated: Todo, Zitare, Questions, Planta, Clock, Presi, Mukke,
Context, CityCorners, ManaDeck, Chat, Contacts, Calendar, Picture,
Storage, Photos

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:02:52 +01:00

39 lines
978 B
TypeScript

/**
* Shared Store Factories for ManaCore Apps
* Provides reusable Svelte 5 runes-based stores.
*/
export { createToastStore, type Toast, type ToastStore, type ToastType } from './toast.svelte';
export {
createNavigationStore,
type NavigationItem,
type NavigationStore,
} from './navigation.svelte';
export { createThemeStore, type ThemeStore, type ThemeMode } from './theme.svelte';
export {
createAppSettingsStore,
type AppSettingsStore,
type AppSettingsStoreOptions,
} from './settings.svelte';
export {
createSimpleNavigationStores,
type SimpleNavigationStores,
type SimpleNavigationOptions,
} from './navigation-simple';
export { createTagStore, type TagStore, type TagStoreConfig } from './tags.svelte';
export {
tagLocalStore,
tagCollection,
tagGroupCollection,
tagMutations,
useAllTags,
useAllTagGroups,
getTagById,
getTagsByIds,
getTagColor,
getTagsByGroup,
toTag,
toTagGroup,
type LocalTag,
type LocalTagGroup,
} from './tags-local.svelte';