@multiplatform.one/theme 7.15.0 → 7.16.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/theme",
3
- "version": "7.15.0",
3
+ "version": "7.16.0",
4
4
  "description": "Tamagui theme system for multiplatform.one",
5
5
  "keywords": [
6
6
  "multiplatform",
@@ -44,8 +44,8 @@
44
44
  "access": "public"
45
45
  },
46
46
  "dependencies": {
47
- "@multiplatform.one/platform": "7.15.0",
48
- "@multiplatform.one/store": "7.15.0",
47
+ "@multiplatform.one/platform": "7.16.0",
48
+ "@multiplatform.one/store": "7.16.0",
49
49
  "@tamagui/colors": "2.7.6",
50
50
  "@tamagui/config": "2.7.6",
51
51
  "@tamagui/get-token": "2.7.6",
@@ -57,8 +57,8 @@
57
57
  "react-cookie": "^8.1.2"
58
58
  },
59
59
  "devDependencies": {
60
- "@multiplatform.one/config": "7.15.0",
61
- "@multiplatform.one/test-utils": "7.15.0",
60
+ "@multiplatform.one/config": "7.16.0",
61
+ "@multiplatform.one/test-utils": "7.16.0",
62
62
  "@tamagui/animations-css": "2.7.6",
63
63
  "@tamagui/animations-reanimated": "2.7.6",
64
64
  "@tamagui/font-inter": "2.7.6",
@@ -242,6 +242,57 @@ describe("declared capped containers beyond Card (DG-RAD-04)", () => {
242
242
  });
243
243
  });
244
244
 
245
+ describe("stacked rows cap their outer corners and square the inner ones (MPO-56)", () => {
246
+ const row = (position: string, radius: string, space: string) => ({
247
+ "data-constraint-container": "StackedRow",
248
+ "data-stack-position": position,
249
+ "data-radius-knob": radius,
250
+ "data-space-knob": space,
251
+ });
252
+ const corners = (tl: number, tr: number, br: number, bl: number) =>
253
+ `border-top-left-radius:${tl}px;border-top-right-radius:${tr}px;` +
254
+ `border-bottom-right-radius:${br}px;border-bottom-left-radius:${bl}px;padding:7px 13px`;
255
+
256
+ it.each([
257
+ ["first", corners(13, 13, 0, 0)],
258
+ ["middle", corners(0, 0, 0, 0)],
259
+ ["last", corners(0, 0, 13, 13)],
260
+ ["only", corners(13, 13, 13, 13)],
261
+ ])("accepts a %s row capped at the row padding", (position, style) => {
262
+ specimen(style, row(position, "large", "small"));
263
+ expect(measured()?.violations).toEqual([]);
264
+ });
265
+
266
+ it("names the stop it resolved on an outer corner", () => {
267
+ specimen(corners(18, 18, 0, 0), row("first", "full", "medium"));
268
+ expect(measured()?.borderTopLeftRadius?.knob).toBe(
269
+ "StackedRow min(radius:full, panelPadding:medium)",
270
+ );
271
+ });
272
+
273
+ it.each([
274
+ ["an uncapped outer corner", corners(16, 16, 0, 0), row("first", "large", "small")],
275
+ ["a rounded inner corner", corners(13, 13, 13, 0), row("first", "large", "small")],
276
+ ["a rounded middle row", corners(13, 0, 0, 0), row("middle", "large", "small")],
277
+ ["a missing position", corners(13, 13, 13, 13), row("", "large", "small")],
278
+ ])("rejects %s", (_label, style, attrs) => {
279
+ specimen(style, attrs);
280
+ expect(measured()?.borderRadius?.offScale).toBe(true);
281
+ });
282
+
283
+ it("says which corner is inner", () => {
284
+ specimen(corners(0, 0, 13, 9), row("last", "large", "small"));
285
+ expect(measured()?.violations).toEqual([
286
+ "borderBottomLeftRadius: 9px does not match StackedRow cap (13px)",
287
+ ]);
288
+ specimen(corners(9, 0, 13, 13), row("last", "large", "small")).id = "other";
289
+ const other = audit().elements.find((el) => el.id === "other");
290
+ expect(other?.violations).toEqual([
291
+ "borderTopLeftRadius: 9px is an inner corner of a last StackedRow (0px)",
292
+ ]);
293
+ });
294
+ });
295
+
245
296
  describe("element labels hold nothing a knob or a mount writes", () => {
246
297
  it("drops React useId ids and Tamagui atomic classes", () => {
247
298
  const el = specimen("border-radius:12px");
@@ -257,3 +308,30 @@ describe("element labels hold nothing a knob or a mount writes", () => {
257
308
  expect(audit().elements[0]?.label).toBe("div#specimen");
258
309
  });
259
310
  });
311
+
312
+ describe("a fixed-padding container caps at the padding it has (DG-RAD-04, MPO-56)", () => {
313
+ const own = (radius: string) => ({
314
+ "data-constraint-container": "OwnInset",
315
+ "data-radius-knob": radius,
316
+ "data-space-knob": "medium",
317
+ });
318
+
319
+ it("accepts full capped at its own 13px padding whatever the space stop", () => {
320
+ specimen("border-radius:13px;padding:13px", own("full"));
321
+ expect(measured()?.violations).toEqual([]);
322
+ expect(measured()?.borderRadius?.knob).toBe("OwnInset min(radius:full, own padding)");
323
+ });
324
+
325
+ it("accepts the token while it fits", () => {
326
+ specimen("border-radius:9px;padding:13px", own("medium"));
327
+ expect(measured()?.violations).toEqual([]);
328
+ });
329
+
330
+ it.each([
331
+ ["the panelPadding cap instead of its own", "border-radius:18px;padding:13px", own("full")],
332
+ ["the token past its padding", "border-radius:16px;padding:13px", own("large")],
333
+ ])("rejects %s", (_label, style, attrs) => {
334
+ specimen(style, attrs);
335
+ expect(measured()?.borderRadius?.offScale).toBe(true);
336
+ });
337
+ });
@@ -739,10 +739,14 @@ export function runConstraintAudit(rootSelector?: string): AuditReport {
739
739
  // inset of the containers whose own padding IS the panelPadding knob.
740
740
  const containerName = el.getAttribute("data-constraint-container");
741
741
  const ownsInset = containerName === "Card" || containerName === "PageSection";
742
+ const stackedRow = containerName === "StackedRow";
743
+ // A container padded with a fixed token rather than the panelPadding knob
744
+ // caps at the padding it actually has.
745
+ const ownInset = containerName === "OwnInset";
742
746
  const capContainer =
743
747
  containerName === "Card"
744
748
  ? ["content", "elevated"].includes(el.getAttribute("data-tier") ?? "")
745
- : containerName === "PageSection" || containerName === "TextArea";
749
+ : containerName === "PageSection" || containerName === "TextArea" || stackedRow || ownInset;
746
750
  if (containerName !== null && containerName !== "Card" && !capContainer) {
747
751
  entry.violations.push(
748
752
  `data-constraint-container: "${containerName}" is not a container the cap audit knows`,
@@ -755,17 +759,38 @@ export function runConstraintAudit(rootSelector?: string): AuditReport {
755
759
  "borderBottomRightRadius",
756
760
  "borderBottomLeftRadius",
757
761
  ] as const;
762
+ // MPO-56: a row in a vertical stack caps its OUTER corners and squares
763
+ // the inner ones (LC-72), so the cap applies per corner by position.
764
+ const stackPosition = el.getAttribute("data-stack-position") ?? "";
765
+ const outerCorners: Record<string, readonly (typeof corners)[number][]> = {
766
+ only: corners,
767
+ first: ["borderTopLeftRadius", "borderTopRightRadius"],
768
+ middle: [],
769
+ last: ["borderBottomRightRadius", "borderBottomLeftRadius"],
770
+ };
771
+ const stackOuter = Object.hasOwn(outerCorners, stackPosition)
772
+ ? outerCorners[stackPosition]
773
+ : undefined;
774
+ if (stackedRow && !stackOuter) {
775
+ entry.violations.push(
776
+ `data-stack-position: "${stackPosition}" is not a StackedRow position (only, first, middle, last)`,
777
+ );
778
+ }
758
779
  if (capContainer) {
759
780
  const radiusKnob = el.getAttribute("data-radius-knob") ?? "";
760
781
  const spaceKnob = el.getAttribute("data-space-knob") ?? "";
761
782
  const radiusStop = Object.hasOwn(_BORDER_RADIUS_KNOB, radiusKnob)
762
783
  ? _BORDER_RADIUS_KNOB[radiusKnob]
763
784
  : undefined;
764
- const inset = Object.hasOwn(_PANEL_PADDING_KNOB, spaceKnob)
765
- ? _PANEL_PADDING_KNOB[spaceKnob]
766
- : undefined;
767
785
  const paddingSides = ["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"] as const;
768
786
  const measuredInsets = paddingSides.map((prop) => parsePx(style[prop]));
787
+ const inset = ownInset
788
+ ? measuredInsets.some((v) => v === null)
789
+ ? undefined
790
+ : Math.min(...(measuredInsets as number[]))
791
+ : Object.hasOwn(_PANEL_PADDING_KNOB, spaceKnob)
792
+ ? _PANEL_PADDING_KNOB[spaceKnob]
793
+ : undefined;
769
794
  if (ownsInset) {
770
795
  for (const [index, prop] of paddingSides.entries()) {
771
796
  const value = measuredInsets[index];
@@ -782,14 +807,17 @@ export function runConstraintAudit(rootSelector?: string): AuditReport {
782
807
  );
783
808
  }
784
809
  }
785
- const expected =
810
+ const cap =
786
811
  radiusStop === undefined ||
787
812
  inset === undefined ||
813
+ (stackedRow && !stackOuter) ||
788
814
  (ownsInset && measuredInsets.some((v) => v === null))
789
815
  ? undefined
790
816
  : Math.min(radiusStop, inset, ...(ownsInset ? (measuredInsets as number[]) : []));
791
817
  for (const prop of corners) {
792
818
  const raw = style[prop];
819
+ const inner = stackedRow && stackOuter !== undefined && !stackOuter.includes(prop);
820
+ const expected = inner ? 0 : cap;
793
821
  // A corner may have two elliptical axes. Percentages are not px caps.
794
822
  const axes = raw.trim().split(/\s+/);
795
823
  const offScale =
@@ -798,13 +826,19 @@ export function runConstraintAudit(rootSelector?: string): AuditReport {
798
826
  const result = {
799
827
  value: parsePx(raw) ?? 0,
800
828
  unit: "px",
801
- knob: `${containerName} min(radius:${radiusKnob}, panelPadding:${spaceKnob})`,
829
+ knob: inner
830
+ ? `${containerName} ${stackPosition} inner corner 0`
831
+ : ownInset
832
+ ? `${containerName} min(radius:${radiusKnob}, own padding)`
833
+ : `${containerName} min(radius:${radiusKnob}, panelPadding:${spaceKnob})`,
802
834
  offScale,
803
835
  };
804
836
  entry[prop] = result;
805
837
  if (offScale)
806
838
  entry.violations.push(
807
- `${prop}: ${raw} does not match ${containerName} cap (${expected ?? "unknown"}px)`,
839
+ inner
840
+ ? `${prop}: ${raw} is an inner corner of a ${stackPosition} StackedRow (0px)`
841
+ : `${prop}: ${raw} does not match ${containerName} cap (${expected ?? "unknown"}px)`,
808
842
  );
809
843
  }
810
844
  entry.borderRadius = {
@@ -969,7 +969,10 @@ export function captureMatrixSnapshot(): MatrixSnapshot {
969
969
  marks.length > 0 &&
970
970
  marks.every(
971
971
  (mark, index) =>
972
- mark.tagName.toLowerCase() === "rect" &&
972
+ // A bar path that declares its box (value-end rounding, MPO-56)
973
+ // paints inside that box just as a rect does.
974
+ (mark.tagName.toLowerCase() === "rect" ||
975
+ (mark.tagName.toLowerCase() === "path" && mark.hasAttribute("data-mpo-chart-bar"))) &&
973
976
  getComputedStyle(mark).stroke === "none" &&
974
977
  !sample.marks[index].unmeasurable,
975
978
  )
@@ -136,7 +136,7 @@ function sanitizeGetTheme(
136
136
  }
137
137
 
138
138
  // Radix hue names whose sub-themes act as decorative TINTS (Tint.tsx cycling,
139
- // the storybook `color` global, `theme="red"` field tinting). Under a tint,
139
+ // the storybook `color` global). Under a tint,
140
140
  // surfaces/borders/solids keep the hue but TEXT must stay readable neutral:
141
141
  // muted/secondary text and user-authored content must never render saturated
142
142
  // accent (SB-D-14/SB-D-20). Exported so theme-identity consumers (chart
@@ -210,6 +210,41 @@ function neutralizeTintText(
210
210
  return out;
211
211
  }
212
212
 
213
+ const semanticIntentNames = new Set(["error", "warning", "success"]);
214
+ const entryControlNames = new Set(["Input", "TextArea"]);
215
+
216
+ /**
217
+ * T-VALUE under a semantic intent (MPO-369). Intents are not tints: an Alert
218
+ * reads `$color12` and a solid Button its on-fill `$color` from the hue, so
219
+ * only entered text (an Input or TextArea value, and the placeholder that
220
+ * stands in for it) goes back to the neutral ink.
221
+ */
222
+ function neutralizeSemanticEntryText(
223
+ themes: Record<string, Record<string, string>>,
224
+ ): Record<string, Record<string, string>> {
225
+ const out: Record<string, Record<string, string>> = { ...themes };
226
+ for (const [name, theme] of Object.entries(themes)) {
227
+ const [scheme, intent, component, ...rest] = name.split("_");
228
+ if (rest.length > 0 || (scheme !== "light" && scheme !== "dark")) continue;
229
+ if (!intent || !semanticIntentNames.has(intent)) continue;
230
+ const base = themes[scheme];
231
+ if (!base) continue;
232
+ if (component === undefined) {
233
+ if (base.placeholderColor != null)
234
+ out[name] = { ...theme, placeholderColor: base.placeholderColor };
235
+ continue;
236
+ }
237
+ if (!entryControlNames.has(component)) continue;
238
+ const neutral = { ...base, ...themes[`${scheme}_${component}`] };
239
+ const patched: Record<string, string> = { ...theme };
240
+ for (const key of tintNeutralTextKeys) {
241
+ if (neutral[key] != null) patched[key] = neutral[key];
242
+ }
243
+ out[name] = patched;
244
+ }
245
+ return out;
246
+ }
247
+
213
248
  const defaultLightShadows: Shadows = {
214
249
  shadow1: "rgba(0,0,0,0.12)",
215
250
  shadow2: "rgba(0,0,0,0.16)",
@@ -401,11 +436,13 @@ export function createThemesBuilder(
401
436
  const initialTheme = tamaguiCreateThemes(
402
437
  createThemesProps as Parameters<typeof tamaguiCreateThemes>[0],
403
438
  );
404
- const themes = neutralizeTintText({
405
- ...grayTheme,
406
- ...tamaguiThemes,
407
- ...initialTheme,
408
- });
439
+ const themes = neutralizeSemanticEntryText(
440
+ neutralizeTintText({
441
+ ...grayTheme,
442
+ ...tamaguiThemes,
443
+ ...initialTheme,
444
+ }),
445
+ );
409
446
  return {
410
447
  themes() {
411
448
  return themes;
@@ -174,8 +174,25 @@ export function capContainerRadius(
174
174
  return radiusPx > paddingPx ? paddingPx : borderRadiusMap[borderRadius];
175
175
  }
176
176
 
177
- /** Containers the constraint audit measures against the cap (DG-RAD-04). */
178
- export type CappedContainer = "PageSection" | "TextArea";
177
+ /**
178
+ * The borderRadius knob stop a `borderRadiusMap` token came from, so a part
179
+ * can resolve its DG-RAD class at that stop. Undefined for any value the
180
+ * knob did not produce.
181
+ */
182
+ export function radiusStopFromToken(token: unknown): Knobs["borderRadius"] | undefined {
183
+ return (Object.keys(borderRadiusMap) as Knobs["borderRadius"][]).find(
184
+ (stop) => borderRadiusMap[stop] === token,
185
+ );
186
+ }
187
+
188
+ /**
189
+ * Containers the constraint audit measures against the cap (DG-RAD-04).
190
+ * `StackedRow` is one row of a vertical stack: it also carries
191
+ * `data-stack-position`, and only its outer corners take the cap.
192
+ * `OwnInset` pads with a fixed token instead of panelPadding, so the audit
193
+ * caps it at its measured padding and ignores the space stop.
194
+ */
195
+ export type CappedContainer = "PageSection" | "TextArea" | "StackedRow" | "OwnInset";
179
196
 
180
197
  export interface ContainerCapDeclaration {
181
198
  "data-constraint-container": CappedContainer;
@@ -200,9 +217,7 @@ export function containerCapProps(
200
217
  radiusToken: unknown,
201
218
  space: string,
202
219
  ): ContainerCapDeclaration | undefined {
203
- const radiusKnob = (Object.keys(borderRadiusMap) as Knobs["borderRadius"][]).find(
204
- (stop) => borderRadiusMap[stop] === radiusToken,
205
- );
220
+ const radiusKnob = radiusStopFromToken(radiusToken);
206
221
  if (!radiusKnob || !Object.hasOwn(panelPaddingPxMap, space)) return undefined;
207
222
  return {
208
223
  "data-constraint-container": container,
@@ -0,0 +1,85 @@
1
+ /**
2
+ * MPO-369: fields tint their error state with the semantic `error` theme,
3
+ * which the default subset keeps, instead of the decorative `red` it drops.
4
+ * Entered text stays neutral under it (T-VALUE); everything else keeps the hue.
5
+ */
6
+
7
+ import { describe, expect, it, vi } from "vitest";
8
+
9
+ vi.mock("tamagui", () => ({
10
+ createTamagui: vi.fn((config: Record<string, unknown>) => config),
11
+ }));
12
+ vi.mock("./animations/index", () => ({ animations: {} }));
13
+
14
+ import { createDefaultThemeConfig } from "./createDefaultThemeConfig";
15
+ import { createThemesBuilder } from "./createThemes";
16
+ import { defaultAccentTheme } from "./defaults/accent";
17
+ import { defaultBaseTheme } from "./defaults/base";
18
+ import { defaultBuilderOptions } from "./defaults/builderOptions";
19
+
20
+ type Themes = Record<string, Record<string, string>>;
21
+
22
+ const built = createThemesBuilder(
23
+ defaultBaseTheme,
24
+ defaultAccentTheme,
25
+ defaultBuilderOptions,
26
+ ).themes() as Themes;
27
+
28
+ const schemes = ["light", "dark"] as const;
29
+ const intents = ["error", "warning", "success"] as const;
30
+ const entryText = ["color", "colorHover", "colorPress", "colorFocus", "placeholderColor"] as const;
31
+
32
+ describe("entered text under a semantic intent", () => {
33
+ for (const scheme of schemes) {
34
+ for (const intent of intents) {
35
+ for (const control of ["Input", "TextArea"] as const) {
36
+ it(`${scheme}_${intent}_${control} keeps the neutral ${control}'s value ink and its own hue chrome`, () => {
37
+ const themed = built[`${scheme}_${intent}_${control}`];
38
+ const neutral = built[`${scheme}_${control}`];
39
+ for (const key of entryText) {
40
+ if (neutral[key] != null) expect(themed[key], key).toBe(neutral[key]);
41
+ }
42
+ expect(themed.color11).toBe(built[scheme].color11);
43
+ expect(themed.color12).toBe(built[scheme].color12);
44
+ expect(themed.borderColor).not.toBe(neutral.borderColor);
45
+ expect(themed.background).not.toBe(neutral.background);
46
+ });
47
+ }
48
+
49
+ it(`${scheme}_${intent} keeps its hue text and takes the neutral placeholder`, () => {
50
+ const themed = built[`${scheme}_${intent}`];
51
+ expect(themed.placeholderColor).toBe(built[scheme].placeholderColor);
52
+ expect(themed.color).not.toBe(built[scheme].color);
53
+ expect(themed.color12).not.toBe(built[scheme].color12);
54
+ });
55
+
56
+ it(`${scheme}_${intent}_Button keeps its on-fill label`, () => {
57
+ expect(built[`${scheme}_${intent}_Button`].color).not.toBe(built[`${scheme}_Button`].color);
58
+ });
59
+ }
60
+ }
61
+ });
62
+
63
+ describe("the default subset keeps the field error tint", () => {
64
+ const defaultTints = ["accent", "active", "alt1", "alt2", "error", "success", "warning"];
65
+ const full = createDefaultThemeConfig().tamagui.themes as Record<string, unknown>;
66
+ const subset = createDefaultThemeConfig({
67
+ subset: { components: ["Button", "Input", "TextArea"], tints: defaultTints },
68
+ }).tamagui.themes as Record<string, unknown>;
69
+
70
+ it("builds every theme a field enters in its error state, identical to the full config", () => {
71
+ for (const scheme of schemes) {
72
+ for (const name of [
73
+ `${scheme}_error`,
74
+ `${scheme}_error_Input`,
75
+ `${scheme}_error_TextArea`,
76
+ `${scheme}_error_Button`,
77
+ ]) {
78
+ expect(subset, name).toHaveProperty(name);
79
+ expect(subset[name]).toEqual(full[name]);
80
+ }
81
+ expect(full).toHaveProperty(`${scheme}_red`);
82
+ expect(subset).not.toHaveProperty(`${scheme}_red`);
83
+ }
84
+ });
85
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"constraintAudit.d.ts","sourceRoot":"","sources":["../../src/audit/constraintAudit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,mBAAmB,CAAC,EAAE,aAAa,CAAC;IACpC,oBAAoB,CAAC,EAAE,aAAa,CAAC;IACrC,uBAAuB,CAAC,EAAE,aAAa,CAAC;IACxC,sBAAsB,CAAC,EAAE,aAAa,CAAC;IACvC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,uCAAuC;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AA6ED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI9C,CAAC;AAmJF;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CA8rBrE"}
1
+ {"version":3,"file":"constraintAudit.d.ts","sourceRoot":"","sources":["../../src/audit/constraintAudit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,mBAAmB,CAAC,EAAE,aAAa,CAAC;IACpC,oBAAoB,CAAC,EAAE,aAAa,CAAC;IACrC,uBAAuB,CAAC,EAAE,aAAa,CAAC;IACxC,sBAAsB,CAAC,EAAE,aAAa,CAAC;IACvC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,uCAAuC;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AA6ED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI9C,CAAC;AAmJF;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAguBrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"themeMatrix.d.ts","sourceRoot":"","sources":["../../src/audit/themeMatrix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"themeMatrix.d.ts","sourceRoot":"","sources":["../../src/audit/themeMatrix.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createThemes.d.ts","sourceRoot":"","sources":["../../src/theme/createThemes.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAqEhC,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB,CACrC,WAAW,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACvC,YAAY,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE;IAExC,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B,CACzC,WAAW,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACvC,YAAY,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACxC,WAAW,SAAS,OAAO,GAAG,OAAO,EACrC,YAAY,SAAS,OAAO,GAAG,OAAO,CACtC,SAAQ,sBAAsB,CAAC,WAAW,EAAE,YAAY,CAAC;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACzF;AA8BD,eAAO,MAAM,YAAY,aA6BvB,CAAC;AA0DH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,0BAA0B,EACrC,WAAW,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,0BAA0B;;aAmLzB,CAAC,SAAS,MAAM,QAAQ,CAAC,SAAS,sBAAsB,GAuB1D,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE;;+BAAkC;EAG7E"}
1
+ {"version":3,"file":"createThemes.d.ts","sourceRoot":"","sources":["../../src/theme/createThemes.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAqEhC,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB,CACrC,WAAW,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACvC,YAAY,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE;IAExC,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B,CACzC,WAAW,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACvC,YAAY,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACxC,WAAW,SAAS,OAAO,GAAG,OAAO,EACrC,YAAY,SAAS,OAAO,GAAG,OAAO,CACtC,SAAQ,sBAAsB,CAAC,WAAW,EAAE,YAAY,CAAC;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACzF;AA8BD,eAAO,MAAM,YAAY,aA6BvB,CAAC;AA6FH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,0BAA0B,EACrC,WAAW,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,0BAA0B;;aAqLzB,CAAC,SAAS,MAAM,QAAQ,CAAC,SAAS,sBAAsB,GAuB1D,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE;;+BAAkC;EAG7E"}
@@ -40,8 +40,20 @@ export declare function resolvePageTitleScale(scale: PageTitleScale): {
40
40
  * while it fits, or the padding px number once the token would exceed it.
41
41
  */
42
42
  export declare function capContainerRadius(borderRadius: Knobs["borderRadius"], space: Knobs["space"]): string | number;
43
- /** Containers the constraint audit measures against the cap (DG-RAD-04). */
44
- export type CappedContainer = "PageSection" | "TextArea";
43
+ /**
44
+ * The borderRadius knob stop a `borderRadiusMap` token came from, so a part
45
+ * can resolve its DG-RAD class at that stop. Undefined for any value the
46
+ * knob did not produce.
47
+ */
48
+ export declare function radiusStopFromToken(token: unknown): Knobs["borderRadius"] | undefined;
49
+ /**
50
+ * Containers the constraint audit measures against the cap (DG-RAD-04).
51
+ * `StackedRow` is one row of a vertical stack: it also carries
52
+ * `data-stack-position`, and only its outer corners take the cap.
53
+ * `OwnInset` pads with a fixed token instead of panelPadding, so the audit
54
+ * caps it at its measured padding and ignores the space stop.
55
+ */
56
+ export type CappedContainer = "PageSection" | "TextArea" | "StackedRow" | "OwnInset";
45
57
  export interface ContainerCapDeclaration {
46
58
  "data-constraint-container": CappedContainer;
47
59
  "data-radius-knob": Knobs["borderRadius"];
@@ -1 +1 @@
1
- {"version":3,"file":"resolveKnobs.d.ts","sourceRoot":"","sources":["../../src/theme/resolveKnobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,SAAS,CAAC;AAU9D,OAAO,KAAK,EAA8B,KAAK,EAAE,cAAc,EAAc,MAAM,SAAS,CAAC;AAE7F,OAAO,KAAK,EAOV,iBAAiB,EAEjB,aAAa,EAEd,MAAM,WAAW,CAAC;AAKnB;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAI/D,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAIlE,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,KAAK,CAU3E;AAID,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAqDX;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAErF;AA0BD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GACpB,MAAM,GAAG,MAAM,CAIjB;AAED,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,UAAU,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,2BAA2B,EAAE,eAAe,CAAC;IAC7C,kBAAkB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1C,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,OAAO,EACpB,KAAK,EAAE,MAAM,GACZ,uBAAuB,GAAG,SAAS,CAUrC;AAuFD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEL,CAAC;AAEjE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnB,CAAC;AAE1D,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AA8O3C,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,MAAM,GAAE,WAAqB,EAC7B,WAAW,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,aAAa,CAyNf"}
1
+ {"version":3,"file":"resolveKnobs.d.ts","sourceRoot":"","sources":["../../src/theme/resolveKnobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,SAAS,CAAC;AAU9D,OAAO,KAAK,EAA8B,KAAK,EAAE,cAAc,EAAc,MAAM,SAAS,CAAC;AAE7F,OAAO,KAAK,EAOV,iBAAiB,EAEjB,aAAa,EAEd,MAAM,WAAW,CAAC;AAKnB;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAI/D,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAIlE,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,KAAK,CAU3E;AAID,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAqDX;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAErF;AA0BD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GACpB,MAAM,GAAG,MAAM,CAIjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,SAAS,CAIrF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAErF,MAAM,WAAW,uBAAuB;IACtC,2BAA2B,EAAE,eAAe,CAAC;IAC7C,kBAAkB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1C,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,OAAO,EACpB,KAAK,EAAE,MAAM,GACZ,uBAAuB,GAAG,SAAS,CAQrC;AAuFD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEL,CAAC;AAEjE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnB,CAAC;AAE1D,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AA8O3C,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,MAAM,GAAE,WAAqB,EAC7B,WAAW,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,aAAa,CAyNf"}