basalt-ui 1.19.1 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +15 -1
- package/CHANGELOG.md +20 -0
- package/MIGRATING.md +228 -0
- package/README.md +53 -9
- package/agent/rules/basalt-app.md +43 -0
- package/agent/rules/basalt-charts.md +26 -14
- package/agent/rules/basalt-mantine.md +25 -10
- package/agent/rules/basalt-router.md +22 -10
- package/agent/rules/basalt-tokens.md +75 -6
- package/agent/skills/basalt-app/SKILL.md +42 -6
- package/configs/check.yml +11 -4
- package/configs/lefthook.yml +21 -2
- package/configs/oxlint-plugin.js +515 -25
- package/configs/oxlint-plugin.test.ts +383 -10
- package/configs/oxlint.json +10 -1
- package/dist/agent/stick-to-bottom.js +1 -1
- package/dist/agent-chat/thread-detail-panel.js +1 -1
- package/dist/agent-chat/thread-message.js +2 -2
- package/dist/agent-chat/tool-chip.js +1 -1
- package/dist/charts/kinds/Donut.d.ts.map +1 -1
- package/dist/charts/kinds/Donut.js +1 -1
- package/dist/charts/primitives/ChartLegend.js +2 -2
- package/dist/charts/primitives/ChartTooltip.js +1 -1
- package/dist/cli/index.d.ts +107 -15
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +610 -72
- package/dist/cli/toolchain-wiring.test.d.ts +2 -0
- package/dist/cli/toolchain-wiring.test.d.ts.map +1 -0
- package/dist/dashboard/delta-badge.js +2 -2
- package/dist/dashboard/stat-card.js +1 -1
- package/dist/data/virtual-list.js +5 -5
- package/dist/guard/index.d.ts +56 -2
- package/dist/guard/index.d.ts.map +1 -1
- package/dist/guard/index.js +326 -59
- package/dist/guard/types.d.ts +25 -5
- package/dist/guard/types.d.ts.map +1 -1
- package/dist/register.d.ts +25 -0
- package/dist/register.d.ts.map +1 -1
- package/dist/shell/app-mobile-nav.module.css +11 -3
- package/dist/surfaces.d.ts +1 -1
- package/dist/surfaces.js +1 -1
- package/dist/tokens/index.d.ts +3 -3
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +2 -0
- package/dist/tokens/palette.d.ts +35 -27
- package/dist/tokens/palette.d.ts.map +1 -1
- package/dist/tokens/palette.js +24 -18
- package/dist/tokens.css +19 -17
- package/dist/vite-color-mix.js +2 -2
- package/llms.txt +3 -3
- package/package.json +4 -3
- package/src/agent/stick-to-bottom.tsx +1 -1
- package/src/agent-chat/thread-detail-panel.tsx +1 -1
- package/src/agent-chat/thread-message.tsx +3 -3
- package/src/agent-chat/tool-chip.tsx +1 -1
- package/src/charts/kinds/Donut.tsx +2 -1
- package/src/charts/primitives/ChartLegend.tsx +2 -2
- package/src/charts/primitives/ChartTooltip.tsx +1 -1
- package/src/cli/index.ts +1070 -99
- package/src/cli/init-sync.test.ts +19 -3
- package/src/cli/tokens-css.test.ts +27 -14
- package/src/cli/toolchain-wiring.test.ts +694 -0
- package/src/dashboard/delta-badge.tsx +3 -3
- package/src/dashboard/stat-card.tsx +1 -1
- package/src/data/virtual-list.tsx +8 -8
- package/src/guard/check-source.test.ts +663 -11
- package/src/guard/index.ts +727 -94
- package/src/guard/types.ts +29 -4
- package/src/register.ts +32 -0
- package/src/shell/app-mobile-nav.module.css +11 -3
- package/src/shell/app-mobile-nav.tsx +1 -1
- package/src/surfaces.ts +1 -1
- package/src/theme/density-relations.test.ts +8 -5
- package/src/theme/spacing.test.ts +2 -0
- package/src/theme-toggle/index.tsx +2 -2
- package/src/tokens/index.ts +5 -3
- package/src/tokens/palette.ts +24 -18
- package/src/vite-color-mix.ts +2 -2
package/dist/cli/index.d.ts
CHANGED
|
@@ -6,6 +6,27 @@ export type BasaltConfig = {
|
|
|
6
6
|
roots?: string[];
|
|
7
7
|
/** Files exempt from the scan (they ARE the palette source). Default: argo's exempt set. */
|
|
8
8
|
exempt?: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Declares this package a tokens-only consumer: it uses the `--vx-*` layer and no Mantine. Turns
|
|
11
|
+
* off every guard kind whose remedy is a Mantine component, a Mantine prop or the React theme
|
|
12
|
+
* factory, leaving the color and typography kinds live. Default: `'mantine'`.
|
|
13
|
+
*
|
|
14
|
+
* Deliberately not inferred from a missing `@mantine/core`: silencing 16 rules is a decision, and
|
|
15
|
+
* a repo that keeps Mantine in a workspace package would otherwise switch off half its own guard
|
|
16
|
+
* without saying so. `basalt-ui doctor` detects the shape and tells you to set this.
|
|
17
|
+
*/
|
|
18
|
+
profile?: 'mantine' | 'tokens-only';
|
|
19
|
+
/**
|
|
20
|
+
* Extra files to scan, named individually and relative to this package — for a design surface
|
|
21
|
+
* that lives outside every root and outside the `index.html` / `public/` conventions the walker
|
|
22
|
+
* already derives. Also the ONLY way a `.json` is ever scanned: the guard understands JSON as
|
|
23
|
+
* markup, but a consumer repo's JSON is overwhelmingly config, fixtures and lockfiles, so
|
|
24
|
+
* blanket-scanning it is a false-positive generator rather than a guard.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* { include: ['app/manifest.json', 'emails/template.html'] }
|
|
28
|
+
*/
|
|
29
|
+
include?: string[];
|
|
9
30
|
/** Named spacing-scale steps (px) flagged when used as a raw spacing prop. Default: 10/12/16/20/32. */
|
|
10
31
|
spacingSteps?: number[];
|
|
11
32
|
/** Per-kind severity override — `'warn'` reports without failing, `'error'` fails the build.
|
|
@@ -150,8 +171,11 @@ export type BasaltConfig = {
|
|
|
150
171
|
* Theme guard — thin FS walker over the headless `../guard` core. Reads BasaltConfig, builds a
|
|
151
172
|
* GuardConfig, walks roots, calls checkSource per file, collects Finding[], groups/reports, returns
|
|
152
173
|
* 0 (clean) / 1 (violations). A `theme-allow` comment exempts a line.
|
|
174
|
+
*
|
|
175
|
+
* Runs against `resolveProjectDir(cwd)`, not `cwd` — see that type's doc for why a root-invoked
|
|
176
|
+
* hook or CI step has to find the package the config lives in rather than scan nothing and pass.
|
|
153
177
|
*/
|
|
154
|
-
export declare function checkTheme(
|
|
178
|
+
export declare function checkTheme(invocationCwd?: string, flags?: readonly string[]): number;
|
|
155
179
|
/**
|
|
156
180
|
* How a file the framework writes into a consumer repo is owned. Two modes, one question:
|
|
157
181
|
* **does Claude read this file?**
|
|
@@ -209,6 +233,16 @@ type TemplateVars = {
|
|
|
209
233
|
SERIES_MODULE_PATH: string;
|
|
210
234
|
/** The consumer's configured roots as space-separated quoted oxfmt globs, e.g. `'apps/web/src/**'`. */
|
|
211
235
|
ROOTS_GLOBS: string;
|
|
236
|
+
/** Path to the shipped oxlint preset from the consumer dir — RESOLVED, never assumed at the root. */
|
|
237
|
+
OXLINT_PRESET_PATH: string;
|
|
238
|
+
/** Path to the shipped lefthook preset from the consumer dir — same resolution. */
|
|
239
|
+
LEFTHOOK_PRESET_PATH: string;
|
|
240
|
+
/**
|
|
241
|
+
* How a seeded script or CI step invokes the CLI. The locally-installed bin when basalt resolves
|
|
242
|
+
* (so the step can never silently run a DIFFERENT version that `bunx` fetched from npm), and
|
|
243
|
+
* `bunx basalt-ui` only as the pre-install fallback.
|
|
244
|
+
*/
|
|
245
|
+
BASALT_BIN: string;
|
|
212
246
|
};
|
|
213
247
|
declare const MANIFEST_PATH = ".basalt/manifest.json";
|
|
214
248
|
/**
|
|
@@ -218,6 +252,8 @@ declare const MANIFEST_PATH = ".basalt/manifest.json";
|
|
|
218
252
|
type ScaffoldFlags = {
|
|
219
253
|
withRouter?: boolean;
|
|
220
254
|
withQuery?: boolean;
|
|
255
|
+
/** `--merge-lint`: splice the shipped preset's `extends` into an `.oxlintrc.json` init would keep. */
|
|
256
|
+
mergeLint?: boolean;
|
|
221
257
|
};
|
|
222
258
|
/** Router/query peer presence, resolved from detection + explicit flags. */
|
|
223
259
|
type PeerFlags = {
|
|
@@ -332,6 +368,13 @@ type DoctorResult = {
|
|
|
332
368
|
hardFailures: number;
|
|
333
369
|
/** Number of warnings (informational only). */
|
|
334
370
|
warnings: number;
|
|
371
|
+
/**
|
|
372
|
+
* Number of checks that could not RUN (as opposed to ran and passed). Counted separately and
|
|
373
|
+
* exits non-zero on its own: under bun's isolated linker `doctor` used to drop two of its five
|
|
374
|
+
* checks and still print "All checks passed", which is the same false-green this whole surface
|
|
375
|
+
* exists to remove. A check that cannot run is not a check that passed.
|
|
376
|
+
*/
|
|
377
|
+
skipped: number;
|
|
335
378
|
};
|
|
336
379
|
/**
|
|
337
380
|
* Check a consumer repo's basalt integration and print a pass/warn report.
|
|
@@ -341,9 +384,20 @@ type DoctorResult = {
|
|
|
341
384
|
* .basalt/manifest.json at the last init/sync. File-level drift is `sync --check`'s job, not
|
|
342
385
|
* doctor's.
|
|
343
386
|
*
|
|
387
|
+
* The checks are numbered in the order they run and print — there is no gap, and the number in a
|
|
388
|
+
* section header below is the number in the report.
|
|
389
|
+
*
|
|
344
390
|
* Hard failures (exit non-zero):
|
|
345
391
|
* 1. .basalt/manifest.json exists (init was run).
|
|
346
|
-
*
|
|
392
|
+
* 2. `basalt-resolves`: basalt-ui resolves from here. Unresolvable used to make checks silently
|
|
393
|
+
* VANISH from the report (5 checks became 3) while the footer still read "All checks passed".
|
|
394
|
+
* It is also the moment `bunx basalt-ui` stops using the pinned copy.
|
|
395
|
+
* 6. `guard-scan`: `check-theme` would scan MORE than zero files. `check-theme` already exits 1
|
|
396
|
+
* on "0 files scanned"; doctor disagreeing with it in the same repo is the bug.
|
|
397
|
+
* 7. `oxlint-preset`: the consumer's `.oxlintrc.json` actually `extends` the shipped preset.
|
|
398
|
+
* `init` keeps an existing config, so the framework's whole lint half can be off with nothing
|
|
399
|
+
* to say so — one repo carried six real violations invisibly across five minors that way.
|
|
400
|
+
* 9. `ai-major-parity`: every workspace package that declares the `ai` package agrees on its
|
|
347
401
|
* major version. `basalt/ai-sdk-major` (the oxlint plugin rule) cannot catch this — it checks
|
|
348
402
|
* a linted file's NEAREST package.json, so a lint run scoped to one workspace package only
|
|
349
403
|
* ever sees that package's own `ai` major and is perfectly happy; the cross-package skew (one
|
|
@@ -356,22 +410,30 @@ type DoctorResult = {
|
|
|
356
410
|
* or invalid (empty/non-string) still hard-fails exactly as if the key were absent.
|
|
357
411
|
*
|
|
358
412
|
* Warnings (non-fatal):
|
|
359
|
-
*
|
|
413
|
+
* 3. The installed node_modules/basalt-ui version matches the manifest's basaltVersion
|
|
360
414
|
* (a mismatch means the package was upgraded but `sync` never ran — the placed doctrine is
|
|
361
415
|
* stale).
|
|
362
|
-
*
|
|
363
|
-
* (skipped when
|
|
364
|
-
*
|
|
416
|
+
* 4. The spacing scale still matches the one stamped into the manifest at the last init/sync
|
|
417
|
+
* (skipped when there is no manifest to compare against; a neutral pass when this CLI is
|
|
418
|
+
* demonstrably not the installed package — see the check).
|
|
419
|
+
* 5. The running CLI's own version matches the installed basalt-ui (catches a stale
|
|
365
420
|
* `bunx basalt-ui` npm fetch; best-effort, skipped if node_modules is absent).
|
|
366
|
-
*
|
|
421
|
+
* 8. `basaltAppPlugin`'s (basalt-ui/vite) default icon filenames exist under public/ (only when
|
|
367
422
|
* a public/ dir exists at all — skipped otherwise).
|
|
368
|
-
*
|
|
369
|
-
* stale and can be deleted; an exemption nobody revisits is how a real, later
|
|
370
|
-
* through unnoticed.
|
|
423
|
+
* 9 (second half). A declared `basalt.aiMajorSkewReason` when the ai majors currently AGREE — the
|
|
424
|
+
* exemption is stale and can be deleted; an exemption nobody revisits is how a real, later
|
|
425
|
+
* skew slips through unnoticed.
|
|
426
|
+
*
|
|
427
|
+
* An AMBIGUOUS project (no config here, several workspace packages carrying one) short-circuits
|
|
428
|
+
* before any of them, exactly as `check-theme` does: running the remaining checks against the wrong
|
|
429
|
+
* root buries the one real error under spurious ones.
|
|
430
|
+
*
|
|
431
|
+
* SKIPPED is now a third outcome beside pass/warn/fail and exits non-zero on its own — a check that
|
|
432
|
+
* cannot run is not a check that passed. "Not applicable to this profile" is a pass, not a skip.
|
|
371
433
|
*
|
|
372
|
-
* Returns the exit code: 0 = all good, 1 = one or more hard failures.
|
|
434
|
+
* Returns the exit code: 0 = all good, 1 = one or more hard failures or unrunnable checks.
|
|
373
435
|
*/
|
|
374
|
-
export declare function doctor(
|
|
436
|
+
export declare function doctor(invocationCwd?: string, flags?: string[]): number;
|
|
375
437
|
/** One row in the `basalt info` output — one per published JS subpath export. */
|
|
376
438
|
export type InfoSubpath = {
|
|
377
439
|
path: string;
|
|
@@ -395,6 +457,19 @@ export type InfoOutput = {
|
|
|
395
457
|
* `basalt info --json` → stable JSON (InfoOutput shape)
|
|
396
458
|
*/
|
|
397
459
|
export declare function info(flags: string[]): number;
|
|
460
|
+
/**
|
|
461
|
+
* Space-normalize the argument list of a legacy color function so the emitted file survives a
|
|
462
|
+
* normal repo's formatter.
|
|
463
|
+
*
|
|
464
|
+
* This is FORMATTING ONLY and deliberately the CLI's single deviation from "print exactly what
|
|
465
|
+
* `buildPaletteCss` returned": `rgba(255,255,255,0.6)` and `rgba(255, 255, 255, 0.6)` are the same
|
|
466
|
+
* colour, the shipped palette emits the first form on the dark side and the second on the light
|
|
467
|
+
* side, and a consumer committing the output ate a lint-ignore entry for the difference. The token
|
|
468
|
+
* VALUES are untouched — nothing here can change what basalt's tokens are.
|
|
469
|
+
*
|
|
470
|
+
* Exported for tests, so the expectation can be computed rather than restated.
|
|
471
|
+
*/
|
|
472
|
+
export declare function normalizeColorFunctions(css: string): string;
|
|
398
473
|
/**
|
|
399
474
|
* tokens:css — emit the `--vx-*` stylesheet, optionally retargeted.
|
|
400
475
|
*
|
|
@@ -404,11 +479,28 @@ export declare function info(flags: string[]): number;
|
|
|
404
479
|
* same artifact for a consumer that does install; this command exists for the ones that shouldn't
|
|
405
480
|
* have to just to change a selector.
|
|
406
481
|
*
|
|
407
|
-
* It parses flags and calls `buildPaletteCss` —
|
|
408
|
-
*
|
|
409
|
-
*
|
|
482
|
+
* It parses flags and calls `buildPaletteCss` for the token VALUES — the CLI and the API must not
|
|
483
|
+
* be able to disagree about what basalt's tokens are. What it adds is strictly file framing for an
|
|
484
|
+
* artifact a consumer COMMITS: the `@generated` header (the guard's skip marker), a trailing
|
|
485
|
+
* newline, and `rgba()` argument spacing. All three were reported by the one framework-free
|
|
486
|
+
* consumer as the reasons the output could not simply be committed.
|
|
410
487
|
*/
|
|
411
488
|
export declare function tokensCss(flags: string[], cwd?: string): number;
|
|
489
|
+
/**
|
|
490
|
+
* fonts:css — emit the shipped `--basalt-font-*` stacks as plain CSS.
|
|
491
|
+
*
|
|
492
|
+
* The typeface half of the framework-free route, which had no supported path at all: `tokens.css`
|
|
493
|
+
* emits no font vars, `styles.css` is the one place the defaults live and a framework-free consumer
|
|
494
|
+
* is told not to import it, and `buildFontsCss` returns `''` unless the caller already knows the
|
|
495
|
+
* stacks. The one non-Mantine consumer lost its font identity entirely and hardcoded the stacks —
|
|
496
|
+
* which the theme guard then flagged as `raw-font-family`.
|
|
497
|
+
*
|
|
498
|
+
* The declarations are READ from the shipped stylesheet rather than restated here, so this command
|
|
499
|
+
* and `basalt-ui/styles.css` can never name different typefaces. Note the fonts themselves are
|
|
500
|
+
* `@fontsource-variable/*` packages: without them the stacks fall through to their own system
|
|
501
|
+
* fallbacks, which is the intended framework-free behaviour.
|
|
502
|
+
*/
|
|
503
|
+
export declare function fontsCss(flags: string[], cwd?: string): number;
|
|
412
504
|
/**
|
|
413
505
|
* guard-hook — PreToolUse stdin adapter.
|
|
414
506
|
*
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|