0aae710e35
Thread the new createPersistentStore.destroy() through its owners so the save effect.root is actually torn down: LayoutManager gains destroy(); ThemeManager and typographySettings dispose their #store in their existing destroy(). comparisonStore had its own leak — a constructor $effect.root whose disposer was discarded, and a module-level persistent storage created at import. Move storage into the instance (#storage, created lazily per instance), capture the effect.root disposer, add destroy(), and adopt createSingleton so reset runs resetAll() + destroy(). Re-export createSingleton from the $shared/lib barrel; give the test storage mock a destroy().
46 lines
906 B
TypeScript
46 lines
906 B
TypeScript
/**
|
|
* Shared library
|
|
*
|
|
* Reusable utilities, helpers, and providers for the application.
|
|
*/
|
|
|
|
export {
|
|
createDebouncedState,
|
|
createEntityStore,
|
|
createFilter,
|
|
createPersistentStore,
|
|
createPerspectiveManager,
|
|
createResponsiveManager,
|
|
createSingleton,
|
|
createVirtualizer,
|
|
type Entity,
|
|
type EntityStore,
|
|
type Filter,
|
|
type FilterModel,
|
|
type PersistentStore,
|
|
type PerspectiveManager,
|
|
type Property,
|
|
type ResponsiveManager,
|
|
responsiveManager,
|
|
type Singleton,
|
|
type VirtualItem,
|
|
type Virtualizer,
|
|
type VirtualizerOptions,
|
|
} from './helpers';
|
|
|
|
export {
|
|
buildQueryString,
|
|
clampNumber,
|
|
cn,
|
|
debounce,
|
|
getDecimalPlaces,
|
|
roundToStepPrecision,
|
|
smoothScroll,
|
|
splitArray,
|
|
throttle,
|
|
} from './utils';
|
|
|
|
export { springySlideFade } from './transitions';
|
|
|
|
export { ResponsiveProvider } from './providers';
|