/** * ROADMAP TODO #6 — Bundle-size budgets for @bytelyst/* packages. * * Each entry measures the gzipped size of a package's built `dist/` * output. The 'limit' field is the budget — PRs that exceed it fail CI. * * Initial budgets per learning_ai_uxui_web/docs/ROADMAP_2026.md §5 * "Performance budgets": * - Pure-TS clients → 8 KB * - Feature packs → 6 KB * - UI primitive slices → ~1 KB per primitive (whole pkg < 30 KB) * - Tokens / design-tokens → 12 KB (CSS heavy) * * Pilot scope (this commit): wire up 6 representative packages. Rollout * to the rest of @bytelyst/* lands incrementally as packages stabilise. * * Run locally: * pnpm -w size — full check * pnpm -w size --why — explain what's contributing * * To add a package: * 1. Confirm the package has 'build' in its scripts and emits to dist/ * 2. Add an entry below with name, path, and limit * 3. Run `pnpm -w size --update` to record the current baseline if * you're starting under-budget (optional) */ module.exports = [ // ── Pure-TS clients (8 KB) ────────────────────────────────────── { name: '@bytelyst/api-client', path: 'packages/api-client/dist/index.js', limit: '8 KB', gzip: true, }, { name: '@bytelyst/auth-client', path: 'packages/auth-client/dist/index.js', limit: '8 KB', gzip: true, }, // ── Feature packs (6 KB) ──────────────────────────────────────── { name: '@bytelyst/celebrations', path: 'packages/celebrations/dist/index.js', limit: '6 KB', gzip: true, }, { name: '@bytelyst/quick-actions', path: 'packages/quick-actions/dist/index.js', limit: '6 KB', gzip: true, }, // ── React bindings (10 KB — slightly higher for hooks + context) ─ { name: '@bytelyst/react-auth', path: 'packages/react-auth/dist/index.js', limit: '10 KB', gzip: true, }, // ── Shells / composite UI (30 KB) ─────────────────────────────── { name: '@bytelyst/dashboard-shell', path: 'packages/dashboard-shell/dist/index.js', limit: '30 KB', gzip: true, }, // ── AI-native UI (35 KB — streaming + parsing is heavy) ───────── { name: '@bytelyst/ai-ui', path: 'packages/ai-ui/dist/index.js', limit: '35 KB', gzip: true, }, // ── Command palette (15 KB — fuzzy + dialog + registry) ───────── { name: '@bytelyst/command-palette', path: 'packages/command-palette/dist/index.js', limit: '15 KB', gzip: true, }, // ── Motion primitives (8 KB — 5 components, zero deps) ────────── { name: '@bytelyst/motion', path: 'packages/motion/dist/index.js', limit: '8 KB', gzip: true, }, // ── Data-viz primitives (10 KB — 5 SVG components) ────────────── { name: '@bytelyst/data-viz', path: 'packages/data-viz/dist/index.js', limit: '10 KB', gzip: true, }, // ── Notifications UI (10 KB — center + banner + announcement) ─── { name: '@bytelyst/notifications-ui', path: 'packages/notifications-ui/dist/index.js', limit: '10 KB', gzip: true, }, ];