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/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,9 +46,17 @@
|
|
|
46
46
|
display: inline-flex;
|
|
47
47
|
align-items: center;
|
|
48
48
|
justify-content: center;
|
|
49
|
-
/*
|
|
50
|
-
*
|
|
51
|
-
|
|
49
|
+
/* This span IS the active pill, so its box may not depend on what it contains: shipping no icon
|
|
50
|
+
* dependency is a supported configuration, and an empty span collapsed the pill to a 24x4px
|
|
51
|
+
* dash. The floor is the icon box PLUS its inset — everything is border-box under Mantine's
|
|
52
|
+
* reset — so the pill renders identically with and without a glyph, at every density. */
|
|
53
|
+
min-width: calc(
|
|
54
|
+
var(--vx-space-mobile-nav-icon-size) + 2 * var(--vx-space-mobile-nav-tab-inset-x)
|
|
55
|
+
);
|
|
56
|
+
min-height: calc(
|
|
57
|
+
var(--vx-space-mobile-nav-icon-size) + 2 * var(--vx-space-mobile-nav-tab-inset-y)
|
|
58
|
+
);
|
|
59
|
+
padding: var(--vx-space-mobile-nav-tab-inset-y) var(--vx-space-mobile-nav-tab-inset-x);
|
|
52
60
|
border-radius: var(--vx-radius-ctrl);
|
|
53
61
|
transition: transform 140ms cubic-bezier(0.32, 0.72, 0, 1);
|
|
54
62
|
}
|
package/dist/surfaces.d.ts
CHANGED
|
@@ -344,7 +344,7 @@ export declare const SURFACES: {
|
|
|
344
344
|
readonly './tokens.css': {
|
|
345
345
|
readonly kind: "tooling";
|
|
346
346
|
readonly layer: "non-js-asset";
|
|
347
|
-
readonly description: "Prebuilt --vx-* token stylesheet — the default buildPaletteCss() output as a plain file, for a consumer
|
|
347
|
+
readonly description: "Prebuilt --vx-* token stylesheet — the default buildPaletteCss() output as a plain file, for a consumer that has a bundler to resolve the subpath but no React and no Mantine; with no bundler, emit a file you own via `basalt-ui tokens:css`";
|
|
348
348
|
readonly forbiddenImports: readonly [];
|
|
349
349
|
};
|
|
350
350
|
readonly './configs/*': {
|
package/dist/surfaces.js
CHANGED
|
@@ -284,7 +284,7 @@ const SURFACES = {
|
|
|
284
284
|
"./tokens.css": {
|
|
285
285
|
kind: "tooling",
|
|
286
286
|
layer: "non-js-asset",
|
|
287
|
-
description: "Prebuilt --vx-* token stylesheet \u2014 the default buildPaletteCss() output as a plain file, for a consumer
|
|
287
|
+
description: "Prebuilt --vx-* token stylesheet \u2014 the default buildPaletteCss() output as a plain file, for a consumer that has a bundler to resolve the subpath but no React and no Mantine; with no bundler, emit a file you own via `basalt-ui tokens:css`",
|
|
288
288
|
forbiddenImports: []
|
|
289
289
|
},
|
|
290
290
|
"./configs/*": {
|
package/dist/tokens/index.d.ts
CHANGED
|
@@ -234,13 +234,13 @@ export type BuildPaletteOpts = {
|
|
|
234
234
|
*/
|
|
235
235
|
mediaFallback?: boolean;
|
|
236
236
|
/**
|
|
237
|
-
* How much of the SPACING set to emit. Default: `'all'` (every one of the
|
|
237
|
+
* How much of the SPACING set to emit. Default: `'all'` (every one of the 108 `--vx-space-*`
|
|
238
238
|
* declarations the framework's own components read).
|
|
239
239
|
*
|
|
240
240
|
* `'core'` keeps the 9 generic anchors — the stack rhythm, the two control heights, the row
|
|
241
|
-
* insets — and drops the
|
|
241
|
+
* insets — and drops the 99 named for a specific basalt component
|
|
242
242
|
* (`--vx-space-agent-transcript-inset`, `--vx-space-toc-sub-indent`, …), taking the emitted set
|
|
243
|
-
* from
|
|
243
|
+
* from 202 variables to 103. Nothing outside basalt's own React components reads those, so a
|
|
244
244
|
* framework-free consumer is carrying them for nothing.
|
|
245
245
|
*
|
|
246
246
|
* This is a SPACING filter only: color, radius, shadow, type and status variables are identical
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAMvE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAOjC,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnF,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAM5D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAO7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,wFAAwF;AACxF,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD,8FAA8F;AAC9F,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,GAAG,MAAM,KAAG,MACoB,CAAA;AAsCrE,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIL,CAAA;AAEV,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE;IACjC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,GAAG,WAAW,CAUd;AAOD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAExC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens/index.js
CHANGED
|
@@ -358,6 +358,8 @@ function spaceDecls(space) {
|
|
|
358
358
|
decl("space-app-header-mobile-actions-height", `${space.step.appHeaderMobileActionsHeight}px`),
|
|
359
359
|
decl("space-mobile-nav-tab-gap", `${space.step.mobileNavTabGap}px`),
|
|
360
360
|
decl("space-mobile-nav-icon-size", `${space.step.mobileNavIconSize}px`),
|
|
361
|
+
decl("space-mobile-nav-tab-inset-y", `${space.step.mobileNavTabInsetY}px`),
|
|
362
|
+
decl("space-mobile-nav-tab-inset-x", `${space.step.mobileNavTabInsetX}px`),
|
|
361
363
|
decl("space-mobile-nav-row-height", `${space.step.mobileNavRowHeight}px`),
|
|
362
364
|
decl("space-agent-rail-inset-x", `${space.step.agentRailInsetX}px`),
|
|
363
365
|
decl("space-agent-part-gap-top", `${space.step.agentPartGapTop}px`),
|
package/dist/tokens/palette.d.ts
CHANGED
|
@@ -77,12 +77,12 @@ export declare const p: (fam: readonly string[], light?: number, dark?: number)
|
|
|
77
77
|
*/
|
|
78
78
|
export declare const SHADOW: {
|
|
79
79
|
readonly card: {
|
|
80
|
-
readonly light: "0 1px 2px rgba(28,25,23,0.05), 0 0 0 1px var(--vx-surface-hairline)";
|
|
81
|
-
readonly dark: "0 1px 3px rgba(0,0,0,0.4), inset 0 0 0 1px color-mix(in srgb, #ffffff 4%, transparent)";
|
|
80
|
+
readonly light: "0 1px 2px rgba(28, 25, 23, 0.05), 0 0 0 1px var(--vx-surface-hairline)";
|
|
81
|
+
readonly dark: "0 1px 3px rgba(0, 0, 0, 0.4), inset 0 0 0 1px color-mix(in srgb, #ffffff 4%, transparent)";
|
|
82
82
|
};
|
|
83
83
|
readonly ctrl: {
|
|
84
|
-
readonly light: "0 1px 2px rgba(28,25,23,0.12)";
|
|
85
|
-
readonly dark: "0 1px 2px rgba(0,0,0,0.35)";
|
|
84
|
+
readonly light: "0 1px 2px rgba(28, 25, 23, 0.12)";
|
|
85
|
+
readonly dark: "0 1px 2px rgba(0, 0, 0, 0.35)";
|
|
86
86
|
};
|
|
87
87
|
/**
|
|
88
88
|
* Interactive-control depth — the ONE value every raised Button/ActionIcon/Input variant shares
|
|
@@ -112,12 +112,12 @@ export declare const SHADOW: {
|
|
|
112
112
|
* ever needs more, raise the DROP. Do not reintroduce an edge; both shapes have been tried.
|
|
113
113
|
*/
|
|
114
114
|
readonly raised: {
|
|
115
|
-
readonly light: "0 1px 2px rgba(28,25,23,0.10)";
|
|
116
|
-
readonly dark: "0 1px 2px rgba(0,0,0,0.35), inset 0 0 0 1px color-mix(in srgb, #ffffff 8%, transparent)";
|
|
115
|
+
readonly light: "0 1px 2px rgba(28, 25, 23, 0.10)";
|
|
116
|
+
readonly dark: "0 1px 2px rgba(0, 0, 0, 0.35), inset 0 0 0 1px color-mix(in srgb, #ffffff 8%, transparent)";
|
|
117
117
|
};
|
|
118
118
|
readonly overlay: {
|
|
119
|
-
readonly light: "0 8px 24px rgba(28,25,23,0.10)";
|
|
120
|
-
readonly dark: "0 8px 24px rgba(0,0,0,0.5)";
|
|
119
|
+
readonly light: "0 8px 24px rgba(28, 25, 23, 0.10)";
|
|
120
|
+
readonly dark: "0 8px 24px rgba(0, 0, 0, 0.5)";
|
|
121
121
|
};
|
|
122
122
|
};
|
|
123
123
|
/**
|
|
@@ -499,8 +499,14 @@ declare const SPACE_STEP_BASE: {
|
|
|
499
499
|
* `env(safe-area-inset-bottom)` to it. JS-consumed (AppShell `footer.height`), no `--vx-*` var,
|
|
500
500
|
* same shape as `appShellHeaderHeight`. Floored at 48px in `deriveSpacing`. */
|
|
501
501
|
readonly mobileNavBarHeight: 56;
|
|
502
|
-
/** Slot icon box.
|
|
502
|
+
/** Slot icon box. Also the MIN box of the icon slot itself, so the active pill keeps its shape
|
|
503
|
+
* when a destination ships no icon (an icon-less consumer is a supported configuration). */
|
|
503
504
|
readonly mobileNavIconSize: 24;
|
|
505
|
+
/** Active-pill inset around the slot icon, vertical. Sub-scale on its own, but it is one half of
|
|
506
|
+
* a pair with `mobileNavTabInsetX` — a step keeps the pill's shape tracking density. */
|
|
507
|
+
readonly mobileNavTabInsetY: 2;
|
|
508
|
+
/** Active-pill inset around the slot icon, horizontal. */
|
|
509
|
+
readonly mobileNavTabInsetX: 12;
|
|
504
510
|
/** Menu/sheet row height. Floored at 44px in `deriveSpacing` (Apple HIG 44pt / WCAG 2.5.5 AAA). */
|
|
505
511
|
readonly mobileNavRowHeight: 44;
|
|
506
512
|
/** More/group `<Menu width={…}>`. JS-consumed, no var — same rationale as
|
|
@@ -883,6 +889,8 @@ export declare const SPACE_STEP: {
|
|
|
883
889
|
readonly mobileNavTabGap: number;
|
|
884
890
|
readonly mobileNavBarHeight: number;
|
|
885
891
|
readonly mobileNavIconSize: number;
|
|
892
|
+
readonly mobileNavTabInsetY: number;
|
|
893
|
+
readonly mobileNavTabInsetX: number;
|
|
886
894
|
readonly mobileNavRowHeight: number;
|
|
887
895
|
readonly mobileNavMenuWidth: number;
|
|
888
896
|
readonly chartLegendGap: number;
|
|
@@ -971,19 +979,19 @@ declare function buildPaletteDataUncached(config: DeriveConfig): {
|
|
|
971
979
|
};
|
|
972
980
|
readonly axis: {
|
|
973
981
|
readonly light: string;
|
|
974
|
-
readonly dark: "rgba(255,255,255,0.6)";
|
|
982
|
+
readonly dark: "rgba(255, 255, 255, 0.6)";
|
|
975
983
|
};
|
|
976
984
|
readonly axisStroke: {
|
|
977
985
|
readonly light: string;
|
|
978
|
-
readonly dark: "rgba(255,255,255,0.12)";
|
|
986
|
+
readonly dark: "rgba(255, 255, 255, 0.12)";
|
|
979
987
|
};
|
|
980
988
|
readonly grid: {
|
|
981
989
|
readonly light: string;
|
|
982
|
-
readonly dark: "rgba(255,255,255,0.06)";
|
|
990
|
+
readonly dark: "rgba(255, 255, 255, 0.06)";
|
|
983
991
|
};
|
|
984
992
|
readonly crosshair: {
|
|
985
993
|
readonly light: string;
|
|
986
|
-
readonly dark: "rgba(255,255,255,0.42)";
|
|
994
|
+
readonly dark: "rgba(255, 255, 255, 0.42)";
|
|
987
995
|
};
|
|
988
996
|
readonly dotStroke: {
|
|
989
997
|
readonly light: "#ffffff";
|
|
@@ -991,15 +999,15 @@ declare function buildPaletteDataUncached(config: DeriveConfig): {
|
|
|
991
999
|
};
|
|
992
1000
|
readonly tooltipBg: {
|
|
993
1001
|
readonly light: "#ffffff";
|
|
994
|
-
readonly dark: "rgba(39,39,42,0.96)";
|
|
1002
|
+
readonly dark: "rgba(39, 39, 42, 0.96)";
|
|
995
1003
|
};
|
|
996
1004
|
readonly tooltipText: {
|
|
997
1005
|
readonly light: string;
|
|
998
|
-
readonly dark: "rgba(255,255,255,0.88)";
|
|
1006
|
+
readonly dark: "rgba(255, 255, 255, 0.88)";
|
|
999
1007
|
};
|
|
1000
1008
|
readonly tooltipMuted: {
|
|
1001
1009
|
readonly light: string;
|
|
1002
|
-
readonly dark: "rgba(255,255,255,0.5)";
|
|
1010
|
+
readonly dark: "rgba(255, 255, 255, 0.5)";
|
|
1003
1011
|
};
|
|
1004
1012
|
readonly tooltipBorder: {
|
|
1005
1013
|
readonly light: "1px solid #e4e4e7";
|
|
@@ -1007,11 +1015,11 @@ declare function buildPaletteDataUncached(config: DeriveConfig): {
|
|
|
1007
1015
|
};
|
|
1008
1016
|
readonly tooltipShadow: {
|
|
1009
1017
|
readonly light: `0 2px 8px ${string}`;
|
|
1010
|
-
readonly dark: "0 2px 8px rgba(0,0,0,0.35)";
|
|
1018
|
+
readonly dark: "0 2px 8px rgba(0, 0, 0, 0.35)";
|
|
1011
1019
|
};
|
|
1012
1020
|
readonly legendText: {
|
|
1013
1021
|
readonly light: string;
|
|
1014
|
-
readonly dark: "rgba(255,255,255,0.92)";
|
|
1022
|
+
readonly dark: "rgba(255, 255, 255, 0.92)";
|
|
1015
1023
|
};
|
|
1016
1024
|
readonly neutral: ColorPair;
|
|
1017
1025
|
};
|
|
@@ -1072,19 +1080,19 @@ export declare const NEUTRAL: {
|
|
|
1072
1080
|
};
|
|
1073
1081
|
readonly axis: {
|
|
1074
1082
|
readonly light: string;
|
|
1075
|
-
readonly dark: "rgba(255,255,255,0.6)";
|
|
1083
|
+
readonly dark: "rgba(255, 255, 255, 0.6)";
|
|
1076
1084
|
};
|
|
1077
1085
|
readonly axisStroke: {
|
|
1078
1086
|
readonly light: string;
|
|
1079
|
-
readonly dark: "rgba(255,255,255,0.12)";
|
|
1087
|
+
readonly dark: "rgba(255, 255, 255, 0.12)";
|
|
1080
1088
|
};
|
|
1081
1089
|
readonly grid: {
|
|
1082
1090
|
readonly light: string;
|
|
1083
|
-
readonly dark: "rgba(255,255,255,0.06)";
|
|
1091
|
+
readonly dark: "rgba(255, 255, 255, 0.06)";
|
|
1084
1092
|
};
|
|
1085
1093
|
readonly crosshair: {
|
|
1086
1094
|
readonly light: string;
|
|
1087
|
-
readonly dark: "rgba(255,255,255,0.42)";
|
|
1095
|
+
readonly dark: "rgba(255, 255, 255, 0.42)";
|
|
1088
1096
|
};
|
|
1089
1097
|
readonly dotStroke: {
|
|
1090
1098
|
readonly light: "#ffffff";
|
|
@@ -1092,15 +1100,15 @@ export declare const NEUTRAL: {
|
|
|
1092
1100
|
};
|
|
1093
1101
|
readonly tooltipBg: {
|
|
1094
1102
|
readonly light: "#ffffff";
|
|
1095
|
-
readonly dark: "rgba(39,39,42,0.96)";
|
|
1103
|
+
readonly dark: "rgba(39, 39, 42, 0.96)";
|
|
1096
1104
|
};
|
|
1097
1105
|
readonly tooltipText: {
|
|
1098
1106
|
readonly light: string;
|
|
1099
|
-
readonly dark: "rgba(255,255,255,0.88)";
|
|
1107
|
+
readonly dark: "rgba(255, 255, 255, 0.88)";
|
|
1100
1108
|
};
|
|
1101
1109
|
readonly tooltipMuted: {
|
|
1102
1110
|
readonly light: string;
|
|
1103
|
-
readonly dark: "rgba(255,255,255,0.5)";
|
|
1111
|
+
readonly dark: "rgba(255, 255, 255, 0.5)";
|
|
1104
1112
|
};
|
|
1105
1113
|
readonly tooltipBorder: {
|
|
1106
1114
|
readonly light: "1px solid #e4e4e7";
|
|
@@ -1108,11 +1116,11 @@ export declare const NEUTRAL: {
|
|
|
1108
1116
|
};
|
|
1109
1117
|
readonly tooltipShadow: {
|
|
1110
1118
|
readonly light: `0 2px 8px ${string}`;
|
|
1111
|
-
readonly dark: "0 2px 8px rgba(0,0,0,0.35)";
|
|
1119
|
+
readonly dark: "0 2px 8px rgba(0, 0, 0, 0.35)";
|
|
1112
1120
|
};
|
|
1113
1121
|
readonly legendText: {
|
|
1114
1122
|
readonly light: string;
|
|
1115
|
-
readonly dark: "rgba(255,255,255,0.92)";
|
|
1123
|
+
readonly dark: "rgba(255, 255, 255, 0.92)";
|
|
1116
1124
|
};
|
|
1117
1125
|
readonly neutral: ColorPair;
|
|
1118
1126
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/tokens/palette.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/tokens/palette.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens/palette.js
CHANGED
|
@@ -37,12 +37,12 @@ const p = (fam, light = 2, dark = 3) => ({
|
|
|
37
37
|
});
|
|
38
38
|
const SHADOW = {
|
|
39
39
|
card: {
|
|
40
|
-
light: "0 1px 2px rgba(28,25,23,0.05), 0 0 0 1px var(--vx-surface-hairline)",
|
|
41
|
-
dark: "0 1px 3px rgba(0,0,0,0.4), inset 0 0 0 1px color-mix(in srgb, #ffffff 4%, transparent)"
|
|
40
|
+
light: "0 1px 2px rgba(28, 25, 23, 0.05), 0 0 0 1px var(--vx-surface-hairline)",
|
|
41
|
+
dark: "0 1px 3px rgba(0, 0, 0, 0.4), inset 0 0 0 1px color-mix(in srgb, #ffffff 4%, transparent)"
|
|
42
42
|
},
|
|
43
43
|
ctrl: {
|
|
44
|
-
light: "0 1px 2px rgba(28,25,23,0.12)",
|
|
45
|
-
dark: "0 1px 2px rgba(0,0,0,0.35)"
|
|
44
|
+
light: "0 1px 2px rgba(28, 25, 23, 0.12)",
|
|
45
|
+
dark: "0 1px 2px rgba(0, 0, 0, 0.35)"
|
|
46
46
|
},
|
|
47
47
|
/**
|
|
48
48
|
* Interactive-control depth — the ONE value every raised Button/ActionIcon/Input variant shares
|
|
@@ -72,16 +72,16 @@ const SHADOW = {
|
|
|
72
72
|
* ever needs more, raise the DROP. Do not reintroduce an edge; both shapes have been tried.
|
|
73
73
|
*/
|
|
74
74
|
raised: {
|
|
75
|
-
light: "0 1px 2px rgba(28,25,23,0.10)",
|
|
76
|
-
dark: "0 1px 2px rgba(0,0,0,0.35), inset 0 0 0 1px color-mix(in srgb, #ffffff 8%, transparent)"
|
|
75
|
+
light: "0 1px 2px rgba(28, 25, 23, 0.10)",
|
|
76
|
+
dark: "0 1px 2px rgba(0, 0, 0, 0.35), inset 0 0 0 1px color-mix(in srgb, #ffffff 8%, transparent)"
|
|
77
77
|
},
|
|
78
78
|
// Floating-layer elevation (menus, popovers, tooltips, modals, drawers) — a REAL drop shadow, a
|
|
79
79
|
// step above `card`, so detached surfaces read as lifted off the page (`docs/DESIGN-SPEC.md` §5).
|
|
80
80
|
// Unlike `card`, no embedded ring: floating surfaces carry a real 1px `--vx-surface-border` so
|
|
81
81
|
// Mantine's rotated-square arrow inherits a proper edge.
|
|
82
82
|
overlay: {
|
|
83
|
-
light: "0 8px 24px rgba(28,25,23,0.10)",
|
|
84
|
-
dark: "0 8px 24px rgba(0,0,0,0.5)"
|
|
83
|
+
light: "0 8px 24px rgba(28, 25, 23, 0.10)",
|
|
84
|
+
dark: "0 8px 24px rgba(0, 0, 0, 0.5)"
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
87
|
function clampRadius(n) {
|
|
@@ -414,8 +414,14 @@ const SPACE_STEP_BASE = {
|
|
|
414
414
|
* `env(safe-area-inset-bottom)` to it. JS-consumed (AppShell `footer.height`), no `--vx-*` var,
|
|
415
415
|
* same shape as `appShellHeaderHeight`. Floored at 48px in `deriveSpacing`. */
|
|
416
416
|
mobileNavBarHeight: 56,
|
|
417
|
-
/** Slot icon box.
|
|
417
|
+
/** Slot icon box. Also the MIN box of the icon slot itself, so the active pill keeps its shape
|
|
418
|
+
* when a destination ships no icon (an icon-less consumer is a supported configuration). */
|
|
418
419
|
mobileNavIconSize: 24,
|
|
420
|
+
/** Active-pill inset around the slot icon, vertical. Sub-scale on its own, but it is one half of
|
|
421
|
+
* a pair with `mobileNavTabInsetX` — a step keeps the pill's shape tracking density. */
|
|
422
|
+
mobileNavTabInsetY: 2,
|
|
423
|
+
/** Active-pill inset around the slot icon, horizontal. */
|
|
424
|
+
mobileNavTabInsetX: 12,
|
|
419
425
|
/** Menu/sheet row height. Floored at 44px in `deriveSpacing` (Apple HIG 44pt / WCAG 2.5.5 AAA). */
|
|
420
426
|
mobileNavRowHeight: 44,
|
|
421
427
|
/** More/group `<Menu width={…}>`. JS-consumed, no var — same rationale as
|
|
@@ -582,23 +588,23 @@ function buildPaletteDataUncached(config) {
|
|
|
582
588
|
// primary line
|
|
583
589
|
line2: { light: BP.gray[1], dark: BP.gray[2] },
|
|
584
590
|
// secondary line
|
|
585
|
-
axis: { light: inkRgba(inkLight, 0.6), dark: "rgba(255,255,255,0.6)" },
|
|
586
|
-
axisStroke: { light: inkRgba(inkLight, 0.12), dark: "rgba(255,255,255,0.12)" },
|
|
587
|
-
grid: { light: inkRgba(inkLight, 0.07), dark: "rgba(255,255,255,0.06)" },
|
|
588
|
-
crosshair: { light: inkRgba(inkLight, 0.32), dark: "rgba(255,255,255,0.42)" },
|
|
591
|
+
axis: { light: inkRgba(inkLight, 0.6), dark: "rgba(255, 255, 255, 0.6)" },
|
|
592
|
+
axisStroke: { light: inkRgba(inkLight, 0.12), dark: "rgba(255, 255, 255, 0.12)" },
|
|
593
|
+
grid: { light: inkRgba(inkLight, 0.07), dark: "rgba(255, 255, 255, 0.06)" },
|
|
594
|
+
crosshair: { light: inkRgba(inkLight, 0.32), dark: "rgba(255, 255, 255, 0.42)" },
|
|
589
595
|
dotStroke: { light: BP.white, dark: BP.darkGray[1] },
|
|
590
596
|
// matches chart-area bg
|
|
591
|
-
tooltipBg: { light: BP.white, dark: "rgba(39,39,42,0.96)" },
|
|
592
|
-
tooltipText: { light: inkRgba(inkLight, 0.88), dark: "rgba(255,255,255,0.88)" },
|
|
593
|
-
tooltipMuted: { light: inkRgba(inkLight, 0.5), dark: "rgba(255,255,255,0.5)" },
|
|
597
|
+
tooltipBg: { light: BP.white, dark: "rgba(39, 39, 42, 0.96)" },
|
|
598
|
+
tooltipText: { light: inkRgba(inkLight, 0.88), dark: "rgba(255, 255, 255, 0.88)" },
|
|
599
|
+
tooltipMuted: { light: inkRgba(inkLight, 0.5), dark: "rgba(255, 255, 255, 0.5)" },
|
|
594
600
|
tooltipBorder: { light: `1px solid ${BP.lightGray[1]}`, dark: "none" },
|
|
595
601
|
tooltipShadow: {
|
|
596
602
|
light: `0 2px 8px ${inkRgba(inkLight, 0.1)}`,
|
|
597
|
-
dark: "0 2px 8px rgba(0,0,0,0.35)"
|
|
603
|
+
dark: "0 2px 8px rgba(0, 0, 0, 0.35)"
|
|
598
604
|
},
|
|
599
605
|
// Chart legend text — same DERIVED-ink treatment as axis/grid/tooltip* above (light keys off
|
|
600
606
|
// `inkLight`; dark stays flat white like every other neutral chart-chrome pair here).
|
|
601
|
-
legendText: { light: inkRgba(inkLight, 0.82), dark: "rgba(255,255,255,0.92)" },
|
|
607
|
+
legendText: { light: inkRgba(inkLight, 0.82), dark: "rgba(255, 255, 255, 0.92)" },
|
|
602
608
|
// Base neutral for hairlines / muted / DIMMED text / overlays — apply opacity via alpha().
|
|
603
609
|
// Binds to --mantine-color-dimmed, so it is THE dimmed-text lever. Equal to `INK.muted` (the
|
|
604
610
|
// spec's "muted (secondary text)" row) — kept as its own pair for the pre-existing `--vx-neutral`
|
package/dist/tokens.css
CHANGED
|
@@ -96,6 +96,8 @@
|
|
|
96
96
|
--vx-space-app-header-mobile-actions-height: 52px;
|
|
97
97
|
--vx-space-mobile-nav-tab-gap: 3px;
|
|
98
98
|
--vx-space-mobile-nav-icon-size: 24px;
|
|
99
|
+
--vx-space-mobile-nav-tab-inset-y: 2px;
|
|
100
|
+
--vx-space-mobile-nav-tab-inset-x: 12px;
|
|
99
101
|
--vx-space-mobile-nav-row-height: 44px;
|
|
100
102
|
--vx-space-agent-rail-inset-x: 10px;
|
|
101
103
|
--vx-space-agent-part-gap-top: 6px;
|
|
@@ -185,17 +187,17 @@ html[data-mantine-color-scheme='dark'] {
|
|
|
185
187
|
--vx-neutral: #d4d4d8;
|
|
186
188
|
--vx-line: #e4e4e7;
|
|
187
189
|
--vx-line2: #a1a1aa;
|
|
188
|
-
--vx-axis: rgba(255,255,255,0.6);
|
|
189
|
-
--vx-axis-stroke: rgba(255,255,255,0.12);
|
|
190
|
-
--vx-grid: rgba(255,255,255,0.06);
|
|
191
|
-
--vx-crosshair: rgba(255,255,255,0.42);
|
|
190
|
+
--vx-axis: rgba(255, 255, 255, 0.6);
|
|
191
|
+
--vx-axis-stroke: rgba(255, 255, 255, 0.12);
|
|
192
|
+
--vx-grid: rgba(255, 255, 255, 0.06);
|
|
193
|
+
--vx-crosshair: rgba(255, 255, 255, 0.42);
|
|
192
194
|
--vx-dot-stroke: #27272a;
|
|
193
|
-
--vx-tooltip-bg: rgba(39,39,42,0.96);
|
|
194
|
-
--vx-tooltip-text: rgba(255,255,255,0.88);
|
|
195
|
-
--vx-tooltip-muted: rgba(255,255,255,0.5);
|
|
195
|
+
--vx-tooltip-bg: rgba(39, 39, 42, 0.96);
|
|
196
|
+
--vx-tooltip-text: rgba(255, 255, 255, 0.88);
|
|
197
|
+
--vx-tooltip-muted: rgba(255, 255, 255, 0.5);
|
|
196
198
|
--vx-tooltip-border: none;
|
|
197
|
-
--vx-tooltip-shadow: 0 2px 8px rgba(0,0,0,0.35);
|
|
198
|
-
--vx-legend-text: rgba(255,255,255,0.92);
|
|
199
|
+
--vx-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
|
|
200
|
+
--vx-legend-text: rgba(255, 255, 255, 0.92);
|
|
199
201
|
--vx-ink: #e5e5e9;
|
|
200
202
|
--vx-ink2: #dddde1;
|
|
201
203
|
--vx-muted: #d4d4d8;
|
|
@@ -206,10 +208,10 @@ html[data-mantine-color-scheme='dark'] {
|
|
|
206
208
|
--vx-accent-fill-hover: #3c6895;
|
|
207
209
|
--vx-on-accent: #ffffff;
|
|
208
210
|
--vx-divider: color-mix(in srgb, #ffffff 6%, transparent);
|
|
209
|
-
--vx-shadow-card: 0 1px 3px rgba(0,0,0,0.4), inset 0 0 0 1px color-mix(in srgb, #ffffff 4%, transparent);
|
|
210
|
-
--vx-shadow-ctrl: 0 1px 2px rgba(0,0,0,0.35);
|
|
211
|
-
--vx-shadow-raised: 0 1px 2px rgba(0,0,0,0.35), inset 0 0 0 1px color-mix(in srgb, #ffffff 8%, transparent);
|
|
212
|
-
--vx-shadow-overlay: 0 8px 24px rgba(0,0,0,0.5);
|
|
211
|
+
--vx-shadow-card: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 0 0 1px color-mix(in srgb, #ffffff 4%, transparent);
|
|
212
|
+
--vx-shadow-ctrl: 0 1px 2px rgba(0, 0, 0, 0.35);
|
|
213
|
+
--vx-shadow-raised: 0 1px 2px rgba(0, 0, 0, 0.35), inset 0 0 0 1px color-mix(in srgb, #ffffff 8%, transparent);
|
|
214
|
+
--vx-shadow-overlay: 0 8px 24px rgba(0, 0, 0, 0.5);
|
|
213
215
|
--vx-surface-bg: #27272a;
|
|
214
216
|
--vx-surface-panel: #2b2b2e;
|
|
215
217
|
--vx-surface-panel-hover: #38383b;
|
|
@@ -270,10 +272,10 @@ html[data-mantine-color-scheme='light'] {
|
|
|
270
272
|
--vx-accent-fill-hover: #3c6895;
|
|
271
273
|
--vx-on-accent: #ffffff;
|
|
272
274
|
--vx-divider: color-mix(in srgb, #e5e5e5 65%, transparent);
|
|
273
|
-
--vx-shadow-card: 0 1px 2px rgba(28,25,23,0.05), 0 0 0 1px var(--vx-surface-hairline);
|
|
274
|
-
--vx-shadow-ctrl: 0 1px 2px rgba(28,25,23,0.12);
|
|
275
|
-
--vx-shadow-raised: 0 1px 2px rgba(28,25,23,0.10);
|
|
276
|
-
--vx-shadow-overlay: 0 8px 24px rgba(28,25,23,0.10);
|
|
275
|
+
--vx-shadow-card: 0 1px 2px rgba(28, 25, 23, 0.05), 0 0 0 1px var(--vx-surface-hairline);
|
|
276
|
+
--vx-shadow-ctrl: 0 1px 2px rgba(28, 25, 23, 0.12);
|
|
277
|
+
--vx-shadow-raised: 0 1px 2px rgba(28, 25, 23, 0.10);
|
|
278
|
+
--vx-shadow-overlay: 0 8px 24px rgba(28, 25, 23, 0.10);
|
|
277
279
|
--vx-surface-bg: #f2f2f5;
|
|
278
280
|
--vx-surface-panel: #fafafd;
|
|
279
281
|
--vx-surface-panel-hover: #ffffff;
|
package/dist/vite-color-mix.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const NAMED_COLORS = {
|
|
2
2
|
white: "#ffffff",
|
|
3
|
-
// theme-allow — CSS keyword definition, not a design color
|
|
3
|
+
// theme-allow raw-hex — the CSS keyword's definition, not a design color
|
|
4
4
|
black: "#000000"
|
|
5
|
-
// theme-allow — CSS keyword definition, not a design color
|
|
5
|
+
// theme-allow raw-hex — the CSS keyword's definition, not a design color
|
|
6
6
|
};
|
|
7
7
|
function normalizeHex(hex) {
|
|
8
8
|
const body = hex.slice(1);
|
package/llms.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# basalt-ui v1.
|
|
1
|
+
# basalt-ui v1.20.0
|
|
2
2
|
# Opinionated framework for Mantine-based React apps — theme, app shell, visx charts, toolchain presets
|
|
3
3
|
#
|
|
4
4
|
# basalt-ui is an opinionated framework for Mantine-based React apps.
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
# ./tokens.css subpath. Guide: docs/FRAMEWORK-FREE.md in the repo.
|
|
20
20
|
|
|
21
21
|
Package: basalt-ui
|
|
22
|
-
Version: 1.
|
|
22
|
+
Version: 1.20.0
|
|
23
23
|
|
|
24
24
|
## basalt-ui
|
|
25
25
|
Import: import { ... } from 'basalt-ui'
|
|
@@ -152,7 +152,7 @@ Layer: non-js-asset
|
|
|
152
152
|
|
|
153
153
|
## basalt-ui/tokens.css
|
|
154
154
|
Asset: basalt-ui/tokens.css
|
|
155
|
-
Description: Prebuilt --vx-* token stylesheet — the default buildPaletteCss() output as a plain file, for a consumer
|
|
155
|
+
Description: Prebuilt --vx-* token stylesheet — the default buildPaletteCss() output as a plain file, for a consumer that has a bundler to resolve the subpath but no React and no Mantine; with no bundler, emit a file you own via `basalt-ui tokens:css`
|
|
156
156
|
Layer: non-js-asset
|
|
157
157
|
|
|
158
158
|
## basalt-ui/configs/*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "basalt-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"description": "Opinionated framework for Mantine-based React apps — theme, app shell, visx charts, toolchain presets",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"charts",
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"llms.txt",
|
|
38
38
|
"AGENTS.md",
|
|
39
39
|
"README.md",
|
|
40
|
-
"CHANGELOG.md"
|
|
40
|
+
"CHANGELOG.md",
|
|
41
|
+
"MIGRATING.md"
|
|
41
42
|
],
|
|
42
43
|
"type": "module",
|
|
43
44
|
"sideEffects": [
|
|
@@ -131,7 +132,7 @@
|
|
|
131
132
|
},
|
|
132
133
|
"scripts": {
|
|
133
134
|
"build": "tsup && tsc --emitDeclarationOnly --declarationMap && bun scripts/copy-assets.mjs && bun scripts/gen-tokens-css.mjs && bun scripts/fix-esm-extensions.mjs",
|
|
134
|
-
"typecheck": "tsc --noEmit",
|
|
135
|
+
"typecheck": "tsc --noEmit && tsc -p tests/layout/tsconfig.json",
|
|
135
136
|
"test": "cd ../.. && bun test packages/basalt-ui",
|
|
136
137
|
"pack-test": "bash scripts/pack-test.sh",
|
|
137
138
|
"prepack": "bun run build",
|
|
@@ -39,7 +39,7 @@ type WrapperProps = {
|
|
|
39
39
|
/** Plain scrollable container rendered when use-stick-to-bottom peer is absent. */
|
|
40
40
|
function PlainContainerFallback({ children, className, style }: WrapperProps): JSX.Element {
|
|
41
41
|
const props: { className?: string; style?: CSSProperties } = {
|
|
42
|
-
// theme-allow — scroll anchoring needs a real scrollable node it owns, not a ScrollArea.
|
|
42
|
+
// theme-allow raw-scroll-container — scroll anchoring needs a real scrollable node it owns, not a ScrollArea.
|
|
43
43
|
style: { overflowY: 'auto', ...style },
|
|
44
44
|
}
|
|
45
45
|
if (className !== undefined) props.className = className
|
|
@@ -135,7 +135,7 @@ export function ThreadDetailPanel({
|
|
|
135
135
|
<BasaltStickToBottom
|
|
136
136
|
style={{
|
|
137
137
|
height: '100%',
|
|
138
|
-
// theme-allow — BasaltStickToBottom owns this scroll node (see stick-to-bottom.tsx).
|
|
138
|
+
// theme-allow raw-scroll-container — BasaltStickToBottom owns this scroll node (see stick-to-bottom.tsx).
|
|
139
139
|
overflowY: 'auto',
|
|
140
140
|
padding: 'var(--vx-space-agent-transcript-inset)',
|
|
141
141
|
}}
|
|
@@ -615,7 +615,7 @@ type VirtualizedTranscriptProps = {
|
|
|
615
615
|
*/
|
|
616
616
|
function NonVirtualizedRows({ rows, height }: VirtualizedTranscriptProps): JSX.Element {
|
|
617
617
|
return (
|
|
618
|
-
// theme-allow — degrade target owns its own scroll node, same as the real virtualizer below.
|
|
618
|
+
// theme-allow raw-scroll-container — degrade target owns its own scroll node, same as the real virtualizer below.
|
|
619
619
|
<Box style={{ height, overflow: 'auto' }}>
|
|
620
620
|
<Stack gap="sm">
|
|
621
621
|
{rows.map((row) => (
|
|
@@ -895,7 +895,7 @@ const LazyVirtualizedRows = lazy(() =>
|
|
|
895
895
|
})
|
|
896
896
|
|
|
897
897
|
return (
|
|
898
|
-
// theme-allow — TanStack Virtual measures/scrolls this element (never nest in BasaltStickToBottom, see ./virtualize).
|
|
898
|
+
// theme-allow raw-scroll-container — TanStack Virtual measures/scrolls this element (never nest in BasaltStickToBottom, see ./virtualize).
|
|
899
899
|
<Box ref={parentRef} style={{ height, overflow: 'auto' }}>
|
|
900
900
|
<Box style={{ height: virtualizer.getTotalSize(), position: 'relative' }}>
|
|
901
901
|
{virtualizer.getVirtualItems().map((virtualItem) => {
|
|
@@ -938,7 +938,7 @@ const LazyVirtualizedRows = lazy(() =>
|
|
|
938
938
|
* flash without paying that cost — it settles state before any row has meaningfully mounted.
|
|
939
939
|
*/
|
|
940
940
|
function VirtualizeSuspenseFallback({ height }: { readonly height: number | string }): JSX.Element {
|
|
941
|
-
// theme-allow — placeholder owns its own scroll node, matching the real virtualizer's shape.
|
|
941
|
+
// theme-allow raw-scroll-container — placeholder owns its own scroll node, matching the real virtualizer's shape.
|
|
942
942
|
return <Box style={{ height, overflow: 'auto' }} />
|
|
943
943
|
}
|
|
944
944
|
|
|
@@ -138,7 +138,7 @@ export function ToolChip({
|
|
|
138
138
|
width: 6,
|
|
139
139
|
height: 6,
|
|
140
140
|
flexShrink: 0,
|
|
141
|
-
borderRadius: '50%', // theme-allow
|
|
141
|
+
borderRadius: '50%', // theme-allow raw-surface — a 6px state dot is a circle, not a surface corner
|
|
142
142
|
backgroundColor: dotToken,
|
|
143
143
|
}}
|
|
144
144
|
/>
|
|
@@ -208,7 +208,8 @@ function DonutPlot<K extends string = SeriesKey>(props: DonutPlotProps<K>) {
|
|
|
208
208
|
style={{
|
|
209
209
|
position: 'absolute',
|
|
210
210
|
inset: 0,
|
|
211
|
-
|
|
211
|
+
// Centering over the donut hole; charts/ is Mantine-free, so Center is unavailable here.
|
|
212
|
+
display: 'flex',
|
|
212
213
|
alignItems: 'center',
|
|
213
214
|
justifyContent: 'center',
|
|
214
215
|
pointerEvents: 'none',
|
|
@@ -158,7 +158,7 @@ function LegendSwatch({ item, idPrefix }: { item: LegendEntry; idPrefix: string
|
|
|
158
158
|
style={{
|
|
159
159
|
width: 11,
|
|
160
160
|
height: 11,
|
|
161
|
-
borderRadius: 3, // theme-allow
|
|
161
|
+
borderRadius: 3, // theme-allow raw-surface — sub-scale legend-swatch corner, below the 4px radius floor
|
|
162
162
|
backgroundColor: item.color,
|
|
163
163
|
opacity: item.fillOpacity ?? 0.7,
|
|
164
164
|
flexShrink: 0,
|
|
@@ -211,7 +211,7 @@ function LegendChildSwatch({ item }: { item: LegendEntry }) {
|
|
|
211
211
|
style={{
|
|
212
212
|
width: 10,
|
|
213
213
|
height: 10,
|
|
214
|
-
borderRadius: 2, // theme-allow
|
|
214
|
+
borderRadius: 2, // theme-allow raw-surface — sub-scale legend-swatch corner, below the 4px radius floor
|
|
215
215
|
backgroundColor: item.color,
|
|
216
216
|
opacity: item.fillOpacity ?? 0.7,
|
|
217
217
|
flexShrink: 0,
|
|
@@ -121,7 +121,7 @@ export function TooltipRow({
|
|
|
121
121
|
style={{
|
|
122
122
|
width: 8,
|
|
123
123
|
height: 8,
|
|
124
|
-
borderRadius: 2, // theme-allow
|
|
124
|
+
borderRadius: 2, // theme-allow raw-surface — sub-scale tooltip micro-corner, below the 4px radius floor
|
|
125
125
|
backgroundColor: color,
|
|
126
126
|
flexShrink: 0,
|
|
127
127
|
}}
|