├── .cursor └── rules │ └── base.mdc ├── .env.local ├── .gitignore ├── .prettierignore ├── .prettierrc ├── FULL.md ├── LICENSE ├── TODO.md ├── apps ├── docs │ ├── .eslintignore │ ├── .vitepress │ │ ├── config.mts │ │ └── theme │ │ │ ├── NotFound.vue │ │ │ ├── custom-home.css │ │ │ ├── custom.css │ │ │ ├── env.d.ts │ │ │ └── index.ts │ ├── api │ │ ├── core-classes.md │ │ ├── key-methods.md │ │ └── react-hooks.md │ ├── blog │ │ └── inspiration.md │ ├── docs │ │ └── api │ │ │ └── core-classes.md │ ├── index.md │ ├── learn │ │ ├── architecture.md │ │ ├── best-practices.md │ │ ├── blac-pattern.md │ │ ├── core-concepts.md │ │ ├── getting-started.md │ │ ├── introduction.md │ │ └── state-management-patterns.md │ ├── package.json │ ├── public │ │ ├── favicon.svg │ │ └── logo.svg │ ├── tsconfig.json │ └── tsconfig.node.json └── perf │ ├── bootstrap.css │ ├── index.html │ ├── main.css │ ├── main.tsx │ ├── package.json │ ├── tsconfig.json │ └── vite.config.ts ├── eslint.config.mjs ├── package.json ├── packages ├── .gitkeep ├── blac-react │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src │ │ ├── externalBlocStore.ts │ │ ├── index.ts │ │ └── useBloc.tsx │ ├── tests │ │ ├── multiCubitComponent.test.tsx │ │ ├── singleComponentStateDependencies.test.tsx │ │ ├── singleComponentStateIsolated.test.tsx │ │ ├── singleComponentStateShared.test.tsx │ │ ├── useBloc.onMount.test.tsx │ │ ├── useBlocCleanup.test.tsx │ │ ├── useBlocConcurrentMode.test.tsx │ │ ├── useBlocDependencyDetection.test.tsx │ │ ├── useBlocLifeCycle.test.tsx │ │ ├── useBlocPerformance.test.tsx │ │ └── useBlocSSR.test.tsx │ ├── tsconfig.json │ ├── vite.config.ts │ ├── vitest-setup.ts │ └── vitest.config.ts └── blac │ ├── README.md │ ├── package.json │ ├── src │ ├── Blac.ts │ ├── BlacEvent.ts │ ├── BlacObservable.ts │ ├── BlacObserver.ts │ ├── BlacPlugin.ts │ ├── Bloc.ts │ ├── BlocBase.ts │ ├── Cubit.ts │ ├── addons │ │ ├── BlacAddon.ts │ │ ├── Persist.ts │ │ └── index.ts │ ├── index.ts │ └── types.ts │ ├── tests │ ├── Blac.getBloc.test.ts │ ├── Blac.test.ts │ ├── BlacObserver.test.ts │ ├── Bloc.test.ts │ ├── BlocBase.test.ts │ ├── Cubit.test.ts │ ├── Lifecycle.test.ts │ ├── blac.memory.test.ts │ └── index.test.ts │ ├── tsconfig.json │ ├── vite.config.ts │ └── vitest.config.ts ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── publish.sh ├── readme.md ├── tsconfig.base.json └── turbo.json /.cursor/rules/base.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/.cursor/rules/base.mdc -------------------------------------------------------------------------------- /.env.local: -------------------------------------------------------------------------------- 1 | CODECOV_TOKEN='bd0f0bc6-7bd0-4497-88c8-6297d383bee3' -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true 3 | } 4 | -------------------------------------------------------------------------------- /FULL.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/LICENSE -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/TODO.md -------------------------------------------------------------------------------- /apps/docs/.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/.eslintignore -------------------------------------------------------------------------------- /apps/docs/.vitepress/config.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/.vitepress/config.mts -------------------------------------------------------------------------------- /apps/docs/.vitepress/theme/NotFound.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/.vitepress/theme/NotFound.vue -------------------------------------------------------------------------------- /apps/docs/.vitepress/theme/custom-home.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/.vitepress/theme/custom-home.css -------------------------------------------------------------------------------- /apps/docs/.vitepress/theme/custom.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/.vitepress/theme/custom.css -------------------------------------------------------------------------------- /apps/docs/.vitepress/theme/env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/.vitepress/theme/env.d.ts -------------------------------------------------------------------------------- /apps/docs/.vitepress/theme/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/.vitepress/theme/index.ts -------------------------------------------------------------------------------- /apps/docs/api/core-classes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/api/core-classes.md -------------------------------------------------------------------------------- /apps/docs/api/key-methods.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/api/key-methods.md -------------------------------------------------------------------------------- /apps/docs/api/react-hooks.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/api/react-hooks.md -------------------------------------------------------------------------------- /apps/docs/blog/inspiration.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/blog/inspiration.md -------------------------------------------------------------------------------- /apps/docs/docs/api/core-classes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/docs/api/core-classes.md -------------------------------------------------------------------------------- /apps/docs/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/index.md -------------------------------------------------------------------------------- /apps/docs/learn/architecture.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/learn/architecture.md -------------------------------------------------------------------------------- /apps/docs/learn/best-practices.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/learn/best-practices.md -------------------------------------------------------------------------------- /apps/docs/learn/blac-pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/learn/blac-pattern.md -------------------------------------------------------------------------------- /apps/docs/learn/core-concepts.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/learn/core-concepts.md -------------------------------------------------------------------------------- /apps/docs/learn/getting-started.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/learn/getting-started.md -------------------------------------------------------------------------------- /apps/docs/learn/introduction.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/learn/introduction.md -------------------------------------------------------------------------------- /apps/docs/learn/state-management-patterns.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/learn/state-management-patterns.md -------------------------------------------------------------------------------- /apps/docs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/package.json -------------------------------------------------------------------------------- /apps/docs/public/favicon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/public/favicon.svg -------------------------------------------------------------------------------- /apps/docs/public/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/public/logo.svg -------------------------------------------------------------------------------- /apps/docs/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/tsconfig.json -------------------------------------------------------------------------------- /apps/docs/tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/docs/tsconfig.node.json -------------------------------------------------------------------------------- /apps/perf/bootstrap.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/perf/bootstrap.css -------------------------------------------------------------------------------- /apps/perf/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/perf/index.html -------------------------------------------------------------------------------- /apps/perf/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/perf/main.css -------------------------------------------------------------------------------- /apps/perf/main.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/perf/main.tsx -------------------------------------------------------------------------------- /apps/perf/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/perf/package.json -------------------------------------------------------------------------------- /apps/perf/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/perf/tsconfig.json -------------------------------------------------------------------------------- /apps/perf/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/apps/perf/vite.config.ts -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/eslint.config.mjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/package.json -------------------------------------------------------------------------------- /packages/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/blac-react/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/README.md -------------------------------------------------------------------------------- /packages/blac-react/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/blac-react/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/package.json -------------------------------------------------------------------------------- /packages/blac-react/src/externalBlocStore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/src/externalBlocStore.ts -------------------------------------------------------------------------------- /packages/blac-react/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/src/index.ts -------------------------------------------------------------------------------- /packages/blac-react/src/useBloc.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/src/useBloc.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/multiCubitComponent.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/multiCubitComponent.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/singleComponentStateDependencies.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/singleComponentStateDependencies.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/singleComponentStateIsolated.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/singleComponentStateIsolated.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/singleComponentStateShared.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/singleComponentStateShared.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/useBloc.onMount.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/useBloc.onMount.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/useBlocCleanup.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/useBlocCleanup.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/useBlocConcurrentMode.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/useBlocConcurrentMode.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/useBlocDependencyDetection.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/useBlocDependencyDetection.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/useBlocLifeCycle.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/useBlocLifeCycle.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/useBlocPerformance.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/useBlocPerformance.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tests/useBlocSSR.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tests/useBlocSSR.test.tsx -------------------------------------------------------------------------------- /packages/blac-react/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/tsconfig.json -------------------------------------------------------------------------------- /packages/blac-react/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/vite.config.ts -------------------------------------------------------------------------------- /packages/blac-react/vitest-setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/vitest-setup.ts -------------------------------------------------------------------------------- /packages/blac-react/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac-react/vitest.config.ts -------------------------------------------------------------------------------- /packages/blac/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/README.md -------------------------------------------------------------------------------- /packages/blac/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/package.json -------------------------------------------------------------------------------- /packages/blac/src/Blac.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/Blac.ts -------------------------------------------------------------------------------- /packages/blac/src/BlacEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/BlacEvent.ts -------------------------------------------------------------------------------- /packages/blac/src/BlacObservable.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/BlacObservable.ts -------------------------------------------------------------------------------- /packages/blac/src/BlacObserver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/BlacObserver.ts -------------------------------------------------------------------------------- /packages/blac/src/BlacPlugin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/BlacPlugin.ts -------------------------------------------------------------------------------- /packages/blac/src/Bloc.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/Bloc.ts -------------------------------------------------------------------------------- /packages/blac/src/BlocBase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/BlocBase.ts -------------------------------------------------------------------------------- /packages/blac/src/Cubit.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/Cubit.ts -------------------------------------------------------------------------------- /packages/blac/src/addons/BlacAddon.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/addons/BlacAddon.ts -------------------------------------------------------------------------------- /packages/blac/src/addons/Persist.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/addons/Persist.ts -------------------------------------------------------------------------------- /packages/blac/src/addons/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Persist'; 2 | -------------------------------------------------------------------------------- /packages/blac/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/index.ts -------------------------------------------------------------------------------- /packages/blac/src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/src/types.ts -------------------------------------------------------------------------------- /packages/blac/tests/Blac.getBloc.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/Blac.getBloc.test.ts -------------------------------------------------------------------------------- /packages/blac/tests/Blac.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/Blac.test.ts -------------------------------------------------------------------------------- /packages/blac/tests/BlacObserver.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/BlacObserver.test.ts -------------------------------------------------------------------------------- /packages/blac/tests/Bloc.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/Bloc.test.ts -------------------------------------------------------------------------------- /packages/blac/tests/BlocBase.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/BlocBase.test.ts -------------------------------------------------------------------------------- /packages/blac/tests/Cubit.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/Cubit.test.ts -------------------------------------------------------------------------------- /packages/blac/tests/Lifecycle.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/Lifecycle.test.ts -------------------------------------------------------------------------------- /packages/blac/tests/blac.memory.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/blac.memory.test.ts -------------------------------------------------------------------------------- /packages/blac/tests/index.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tests/index.test.ts -------------------------------------------------------------------------------- /packages/blac/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/tsconfig.json -------------------------------------------------------------------------------- /packages/blac/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/vite.config.ts -------------------------------------------------------------------------------- /packages/blac/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/packages/blac/vitest.config.ts -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/pnpm-workspace.yaml -------------------------------------------------------------------------------- /publish.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/publish.sh -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/readme.md -------------------------------------------------------------------------------- /tsconfig.base.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/tsconfig.base.json -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsnanigans/blac/HEAD/turbo.json --------------------------------------------------------------------------------