Files
aphrody-m3-config/README.md
T

17 lines
1.7 KiB
Markdown
Raw Normal View History

2026-10-12 08:23:36 +02:00
# @aphrody/m3-config
Shared presets for the first-party Material Design 3 packages (`packages/m3-*`, `packages/m3-react`,
`packages/material-web`). Private; consumed as a `workspace:*` devDependency. Contract and status:
[`docs/design/M3-PLAN.md`](../../docs/plans/design/M3-PLAN.md), enforced by `bun run bun:check` (rule `m3`).
| Export | Use |
| --- | --- |
| `@aphrody/m3-config/tsconfig.json` | `"extends"` for `tsconfig.json`; the package keeps only `include` and its own overrides. |
| `@aphrody/m3-config/tsconfig.build.json` | Second entry of `"extends": ["./tsconfig.json", "@aphrody/m3-config/tsconfig.build.json"]` (declaration-only emit); the package sets `outDir`, `rootDir`, `include`. |
| `@aphrody/m3-config/bun-build` | The one build preset, on `Bun.build`: `m3Package({ entry, target, splitting, external, useClient })` types a package's `build.config.ts`; `scripts/build.ts` at the repository root runs every config (dependency order, content-hash cache, declarations through `tsc`). `m3BunBuild(...)` is the imperative form; `M3_EXTERNAL` and `prependUseClient` (`'use client';` through `Bun.file` / `Bun.write`) are defined once here. |
| `@aphrody/m3-config/cache-db` | `M3UiCache` / `getSharedUiCache()`: embedded SQLite cache on `bun:sqlite` (WAL mode) for themes, icons, tokens, sessions. |
| `@aphrody/m3-config/test/dom` | `bun test` preload: happy-dom + ElementInternals polyfill. |
Workspace packages resolve to their sources under Bun (`bun` / `import` conditions); `dist/` is built by
`bun scripts/build.ts` for consumers that need the `default` condition and the declarations. Bun resolves bare
package specifiers natively before any runtime plugin sees them, so a preload cannot redirect them to sources.