@ggui-ai/ui-visual-tester 0.10.0 → 0.12.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.
@@ -20288,7 +20288,10 @@
20288
20288
  var variantStyles = {
20289
20289
  primary: {
20290
20290
  backgroundColor: "var(--ggui-color-primary-600, #0284c7)",
20291
- color: "#ffffff",
20291
+ // The on-accent PAIR, never a literal (ggui#589 round 7): a theme
20292
+ // whose primary is bright (slime) pairs dark ink via onPrimary —
20293
+ // hardcoded white was unreadable on it.
20294
+ color: "var(--ggui-color-onPrimary, #ffffff)",
20292
20295
  border: "none"
20293
20296
  },
20294
20297
  secondary: {
@@ -20308,7 +20311,7 @@
20308
20311
  },
20309
20312
  danger: {
20310
20313
  backgroundColor: "var(--ggui-color-error-600, #dc2626)",
20311
- color: "#ffffff",
20314
+ color: "var(--ggui-color-onError, #ffffff)",
20312
20315
  border: "none"
20313
20316
  }
20314
20317
  };
@@ -20496,7 +20499,7 @@
20496
20499
  alignItems: "center",
20497
20500
  justifyContent: "center",
20498
20501
  transition: "all 0.2s"
20499
- }, children: (checked || indeterminate) && (0, import_jsx_runtime10.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", style: { color: "#ffffff" }, children: indeterminate ? (0, import_jsx_runtime10.jsx)("path", { d: "M2.5 6H9.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) : (0, import_jsx_runtime10.jsx)("path", { d: "M2.5 6L5 8.5L9.5 3.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) })] }), (label || description) && (0, import_jsx_runtime10.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "2px" }, children: [label && (0, import_jsx_runtime10.jsx)("span", { style: {
20502
+ }, children: (checked || indeterminate) && (0, import_jsx_runtime10.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", style: { color: "var(--ggui-color-onPrimary, #ffffff)" }, children: indeterminate ? (0, import_jsx_runtime10.jsx)("path", { d: "M2.5 6H9.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) : (0, import_jsx_runtime10.jsx)("path", { d: "M2.5 6L5 8.5L9.5 3.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) })] }), (label || description) && (0, import_jsx_runtime10.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "2px" }, children: [label && (0, import_jsx_runtime10.jsx)("span", { style: {
20500
20503
  fontSize: "var(--ggui-font-size-sm, 14px)",
20501
20504
  fontWeight: "var(--ggui-font-weight-medium, 500)",
20502
20505
  color: "var(--ggui-color-onSurfaceVariant, #52525b)"
@@ -25073,7 +25076,9 @@
25073
25076
  left: coords.left,
25074
25077
  transform: getTransform(),
25075
25078
  backgroundColor: "var(--ggui-color-onSurface, #18181b)",
25076
- color: "#ffffff",
25079
+ // Inverse pair: text on the inverted (onSurface) ground is
25080
+ // the surface color — white was only right for light themes.
25081
+ color: "var(--ggui-color-surface, #ffffff)",
25077
25082
  padding: "6px 10px",
25078
25083
  borderRadius: "var(--ggui-shape-radius-md, 8px)",
25079
25084
  fontSize: "var(--ggui-font-size-xs, 12px)",
@@ -25234,7 +25239,7 @@
25234
25239
  if (variant === "pills") {
25235
25240
  return {
25236
25241
  ...base,
25237
- color: isActive ? "#ffffff" : "var(--ggui-color-onSurfaceVariant, #52525b)",
25242
+ color: isActive ? "var(--ggui-color-onPrimary, #ffffff)" : "var(--ggui-color-onSurfaceVariant, #52525b)",
25238
25243
  backgroundColor: isActive ? "var(--ggui-color-primary-600, #0284c7)" : "transparent",
25239
25244
  borderRadius: "var(--ggui-shape-radius-md, 6px)"
25240
25245
  };
@@ -42344,7 +42349,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
42344
42349
 
42345
42350
  // ../protocol/dist/gadgets/stdlib-gadgets.js
42346
42351
  var STDLIB_GADGETS_PACKAGE = "@ggui-ai/gadgets";
42347
- var STDLIB_GADGETS_VERSION = "0.10.0";
42352
+ var STDLIB_GADGETS_VERSION = "0.12.0";
42348
42353
  var STDLIB_GADGETS = [
42349
42354
  {
42350
42355
  package: STDLIB_GADGETS_PACKAGE,
@@ -43108,14 +43113,29 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
43108
43113
  * existing props back believing it changed the UI, and this field is
43109
43114
  * its feedback channel.
43110
43115
  */
43111
- warning: external_exports.string().optional()
43116
+ warning: external_exports.string().optional(),
43117
+ /**
43118
+ * Schema attestation (ggui#560): identity hash of the enforced props
43119
+ * schema this mutation was validated against — the same schema the
43120
+ * paired handshake disclosed. Present when the session declares a
43121
+ * `propsSpec`; equal to the handshake's `propsSchemaHash` under the
43122
+ * session-continuity guarantee, so a mismatch is the observable form
43123
+ * of a contract changing mid-session.
43124
+ */
43125
+ propsSchemaHash: external_exports.string().optional(),
43126
+ /** Present with `propsSchemaHash`; same profile classifier as the handshake's. */
43127
+ propsSchemaProfile: external_exports.string().optional()
43112
43128
  });
43113
43129
  var amendOutputSchema = external_exports.object({
43114
43130
  sessionId: external_exports.string(),
43115
43131
  updated: external_exports.boolean(),
43116
43132
  resourceUri: external_exports.string(),
43117
43133
  /** Same no-op feedback channel as ggui_update's `warning`. */
43118
- warning: external_exports.string().optional()
43134
+ warning: external_exports.string().optional(),
43135
+ /** Schema attestation (ggui#560) — same semantics as ggui_update's. */
43136
+ propsSchemaHash: external_exports.string().optional(),
43137
+ /** Present with `propsSchemaHash`. */
43138
+ propsSchemaProfile: external_exports.string().optional()
43119
43139
  });
43120
43140
  var declareToolCatalogInputSchema = external_exports.object({
43121
43141
  toolCatalog: external_exports.record(external_exports.string(), external_exports.object({ name: external_exports.string(), version: external_exports.string().optional() }).strict()).describe("Per-app canonical tool identities: bare tool name -> its server's initialize-declared serverInfo. Host/library-supplied; not an agent action.")
@@ -43279,10 +43299,27 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
43279
43299
  var GGUI_CSS_VAR_KEY_RE = /^--ggui-[a-zA-Z0-9-]+$/;
43280
43300
  var CSS_VALUE_SAFE_RE = /^[^;{}<>@]*$/;
43281
43301
  var cssValue = external_exports.string().min(1).max(256).regex(CSS_VALUE_SAFE_RE, "css value contains a disallowed character").refine((v) => !v.includes("/*"), "css value may not contain a comment");
43302
+ var cssVariableMap = external_exports.record(external_exports.string().regex(GGUI_CSS_VAR_KEY_RE, "css var key must be --ggui-*"), cssValue).refine((m) => Object.keys(m).length <= 200, "too many css variables (max 200)");
43282
43303
  var appThemeSchema = external_exports.object({
43283
43304
  mode: external_exports.enum(["light", "dark"]),
43284
- cssVariables: external_exports.record(external_exports.string().regex(GGUI_CSS_VAR_KEY_RE, "css var key must be --ggui-*"), cssValue).refine((m) => Object.keys(m).length <= 200, "too many css variables (max 200)"),
43285
- name: external_exports.string().min(1).max(64).optional()
43305
+ cssVariables: cssVariableMap,
43306
+ name: external_exports.string().min(1).max(64).optional(),
43307
+ /**
43308
+ * The REGISTERED base ladder, delivered (runtime theme
43309
+ * registration): both modes' resolved variable sets ride the
43310
+ * envelope so a mid-session mode switch is a local operation and
43311
+ * delivery never depends on the iframe being able to fetch. The
43312
+ * renderer injects the mode-selected set BELOW `cssVariables` (the
43313
+ * per-app overlay) in the documented precedence. `documentHash` is
43314
+ * the registration's identity: it joins painted ladders to
43315
+ * registration records, and a receiver holding the hash may be
43316
+ * served a future envelope without the variable sets.
43317
+ */
43318
+ base: external_exports.object({
43319
+ documentHash: external_exports.string().regex(/^[0-9a-f]{64}$/, "documentHash must be sha256 lowercase hex"),
43320
+ light: cssVariableMap,
43321
+ dark: cssVariableMap
43322
+ }).strict().optional()
43286
43323
  }).strict();
43287
43324
 
43288
43325
  // ../protocol/dist/registry/canonicalize-contract.js
@@ -43989,6 +44026,115 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
43989
44026
  return code.replace(/__GGUI_META__[\s\S]*?__GGUI_META_END__/g, "").replace(/__GGUI_STREAM_SPEC__[\s\S]*?__GGUI_STREAM_SPEC_END__/g, "");
43990
44027
  }
43991
44028
 
44029
+ // ../design/dist/themes/consumed-tokens.manifest.json
44030
+ var consumed_tokens_manifest_default = {
44031
+ version: 1,
44032
+ tokens: [
44033
+ "--ggui-color-container",
44034
+ "--ggui-color-error-100",
44035
+ "--ggui-color-error-200",
44036
+ "--ggui-color-error-50",
44037
+ "--ggui-color-error-500",
44038
+ "--ggui-color-error-600",
44039
+ "--ggui-color-error-700",
44040
+ "--ggui-color-error-800",
44041
+ "--ggui-color-info-100",
44042
+ "--ggui-color-info-200",
44043
+ "--ggui-color-info-50",
44044
+ "--ggui-color-info-500",
44045
+ "--ggui-color-info-700",
44046
+ "--ggui-color-info-800",
44047
+ "--ggui-color-neutral-100",
44048
+ "--ggui-color-neutral-200",
44049
+ "--ggui-color-neutral-300",
44050
+ "--ggui-color-neutral-400",
44051
+ "--ggui-color-neutral-50",
44052
+ "--ggui-color-neutral-500",
44053
+ "--ggui-color-neutral-600",
44054
+ "--ggui-color-neutral-800",
44055
+ "--ggui-color-onContainer",
44056
+ "--ggui-color-onError",
44057
+ "--ggui-color-onPrimary",
44058
+ "--ggui-color-onSurface",
44059
+ "--ggui-color-onSurfaceVariant",
44060
+ "--ggui-color-outline",
44061
+ "--ggui-color-outlineVariant",
44062
+ "--ggui-color-primary",
44063
+ "--ggui-color-primary-100",
44064
+ "--ggui-color-primary-200",
44065
+ "--ggui-color-primary-300",
44066
+ "--ggui-color-primary-400",
44067
+ "--ggui-color-primary-50",
44068
+ "--ggui-color-primary-500",
44069
+ "--ggui-color-primary-600",
44070
+ "--ggui-color-primary-700",
44071
+ "--ggui-color-primary-800",
44072
+ "--ggui-color-primary-900",
44073
+ "--ggui-color-success-100",
44074
+ "--ggui-color-success-200",
44075
+ "--ggui-color-success-50",
44076
+ "--ggui-color-success-500",
44077
+ "--ggui-color-success-700",
44078
+ "--ggui-color-success-800",
44079
+ "--ggui-color-surface",
44080
+ "--ggui-color-surface-gradient",
44081
+ "--ggui-color-surface-subtle",
44082
+ "--ggui-color-surface-sunken",
44083
+ "--ggui-color-surfaceVariant",
44084
+ "--ggui-color-warning-100",
44085
+ "--ggui-color-warning-200",
44086
+ "--ggui-color-warning-50",
44087
+ "--ggui-color-warning-500",
44088
+ "--ggui-color-warning-700",
44089
+ "--ggui-color-warning-800",
44090
+ "--ggui-flash-color",
44091
+ "--ggui-font-family-mono",
44092
+ "--ggui-font-family-sans",
44093
+ "--ggui-font-lineHeight-normal",
44094
+ "--ggui-font-size-2xl",
44095
+ "--ggui-font-size-3xl",
44096
+ "--ggui-font-size-4xl",
44097
+ "--ggui-font-size-base",
44098
+ "--ggui-font-size-lg",
44099
+ "--ggui-font-size-sm",
44100
+ "--ggui-font-size-xl",
44101
+ "--ggui-font-size-xs",
44102
+ "--ggui-font-weight-bold",
44103
+ "--ggui-font-weight-medium",
44104
+ "--ggui-font-weight-normal",
44105
+ "--ggui-font-weight-semibold",
44106
+ "--ggui-radius-md",
44107
+ "--ggui-radius-sm",
44108
+ "--ggui-shape-radius-full",
44109
+ "--ggui-shape-radius-lg",
44110
+ "--ggui-shape-radius-md",
44111
+ "--ggui-shape-radius-sm",
44112
+ "--ggui-shape-radius-xl",
44113
+ "--ggui-shape-shadow-lg",
44114
+ "--ggui-shape-shadow-md",
44115
+ "--ggui-shape-shadow-sm",
44116
+ "--ggui-shape-shadow-xl",
44117
+ "--ggui-spacing-1",
44118
+ "--ggui-spacing-10",
44119
+ "--ggui-spacing-12",
44120
+ "--ggui-spacing-2",
44121
+ "--ggui-spacing-2xl",
44122
+ "--ggui-spacing-3",
44123
+ "--ggui-spacing-4",
44124
+ "--ggui-spacing-5",
44125
+ "--ggui-spacing-6",
44126
+ "--ggui-spacing-8",
44127
+ "--ggui-spacing-lg",
44128
+ "--ggui-spacing-md",
44129
+ "--ggui-spacing-sm",
44130
+ "--ggui-spacing-xl",
44131
+ "--ggui-spacing-xs"
44132
+ ]
44133
+ };
44134
+
44135
+ // ../design/dist/themes/consumed-tokens.js
44136
+ var consumedTokenManifest = consumed_tokens_manifest_default.tokens;
44137
+
43992
44138
  // ../design/dist/themes/definitions/_shared.js
43993
44139
  var standardSemanticScales = {
43994
44140
  light: {
@@ -44337,7 +44483,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44337
44483
  "50": { $value: "#fbf3e0", $type: "color" },
44338
44484
  "100": { $value: "#f3e1b0", $type: "color" },
44339
44485
  "200": { $value: "#e6c46e", $type: "color" },
44340
- "500": { $value: "#a87b0e", $type: "color" },
44486
+ "500": { $value: "#8e680c", $type: "color" },
44341
44487
  // draft
44342
44488
  "600": { $value: "#86620b", $type: "color" },
44343
44489
  "700": { $value: "#654a08", $type: "color" },
@@ -44347,7 +44493,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44347
44493
  "50": { $value: "#fbe7e3", $type: "color" },
44348
44494
  "100": { $value: "#f4bbb1", $type: "color" },
44349
44495
  "200": { $value: "#ea8a7a", $type: "color" },
44350
- "500": { $value: "#d93822", $type: "color" },
44496
+ "500": { $value: "#cc3520", $type: "color" },
44351
44497
  // signal
44352
44498
  "600": { $value: "#ae2d1b", $type: "color" },
44353
44499
  "700": { $value: "#822214", $type: "color" },
@@ -44717,7 +44863,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44717
44863
  "400": { $value: "#22d3ee", $type: "color" },
44718
44864
  "500": { $value: "#06b6d4", $type: "color" },
44719
44865
  "600": { $value: "#0891b2", $type: "color" },
44720
- "700": { $value: "#0e7490", $type: "color" },
44866
+ "700": { $value: "#1085a5", $type: "color" },
44721
44867
  "800": { $value: "#155e75", $type: "color" },
44722
44868
  "900": { $value: "#164e63", $type: "color" }
44723
44869
  },
@@ -44727,7 +44873,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44727
44873
  "200": { $value: "#1a1a24", $type: "color" },
44728
44874
  "300": { $value: "#25252f", $type: "color" },
44729
44875
  "400": { $value: "#3a3a48", $type: "color" },
44730
- "500": { $value: "#55556a", $type: "color" },
44876
+ "500": { $value: "#5d5d74", $type: "color" },
44731
44877
  "600": { $value: "#8888a0", $type: "color" },
44732
44878
  "700": { $value: "#aaaabe", $type: "color" },
44733
44879
  "800": { $value: "#d0d0e0", $type: "color" },
@@ -44854,7 +45000,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44854
45000
  "200": { $value: "#111118", $type: "color" },
44855
45001
  "300": { $value: "#1a1a24", $type: "color" },
44856
45002
  "400": { $value: "#3a3a48", $type: "color" },
44857
- "500": { $value: "#55556a", $type: "color" },
45003
+ "500": { $value: "#5a5a70", $type: "color" },
44858
45004
  "600": { $value: "#8888a0", $type: "color" },
44859
45005
  "700": { $value: "#aaaabe", $type: "color" },
44860
45006
  "800": { $value: "#d0d0e0", $type: "color" },
@@ -45088,7 +45234,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45088
45234
  "200": { $value: "#e7e4de", $type: "color" },
45089
45235
  "300": { $value: "#d5d0c8", $type: "color" },
45090
45236
  "400": { $value: "#b8b0a4", $type: "color" },
45091
- "500": { $value: "#9a9084", $type: "color" },
45237
+ "500": { $value: "#988d81", $type: "color" },
45092
45238
  "600": { $value: "#7a7068", $type: "color" },
45093
45239
  "700": { $value: "#5e5650", $type: "color" },
45094
45240
  "800": { $value: "#3e3a36", $type: "color" },
@@ -45101,7 +45247,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45101
45247
  "50": { $type: "color", $value: "#f0f4ee" },
45102
45248
  "100": { $type: "color", $value: "#dde6d8" },
45103
45249
  "200": { $type: "color", $value: "#c6d4be" },
45104
- "500": { $type: "color", $value: "#6b8f5e" },
45250
+ "500": { $type: "color", $value: "#5b7950" },
45105
45251
  "600": { $type: "color", $value: "#58754d" },
45106
45252
  "700": { $type: "color", $value: "#43583a" },
45107
45253
  "800": { $type: "color", $value: "#2f3e29" }
@@ -45110,7 +45256,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45110
45256
  "50": { $type: "color", $value: "#faf6ea" },
45111
45257
  "100": { $type: "color", $value: "#f4ebcb" },
45112
45258
  "200": { $type: "color", $value: "#ecdda4" },
45113
- "500": { $type: "color", $value: "#c9a84c" },
45259
+ "500": { $type: "color", $value: "#886f29" },
45114
45260
  "600": { $type: "color", $value: "#a88a3a" },
45115
45261
  "700": { $type: "color", $value: "#7e672c" },
45116
45262
  "800": { $type: "color", $value: "#59481f" }
@@ -45238,7 +45384,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45238
45384
  "50": { $type: "color", $value: "#faeae9" },
45239
45385
  "100": { $type: "color", $value: "#f1cac8" },
45240
45386
  "200": { $type: "color", $value: "#e4a5a1" },
45241
- "500": { $type: "color", $value: "#cf6f6a" },
45387
+ "500": { $type: "color", $value: "#d17570" },
45242
45388
  "600": { $type: "color", $value: "#a85753" },
45243
45389
  "700": { $type: "color", $value: "#7d403c" },
45244
45390
  "800": { $type: "color", $value: "#552a27" }
@@ -45439,7 +45585,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45439
45585
  "400": { $value: "#f472b6", $type: "color" },
45440
45586
  "500": { $value: "#ec4899", $type: "color" },
45441
45587
  "600": { $value: "#db2777", $type: "color" },
45442
- "700": { $value: "#be185d", $type: "color" },
45588
+ "700": { $value: "#e42574", $type: "color" },
45443
45589
  "800": { $value: "#9d174d", $type: "color" },
45444
45590
  "900": { $value: "#831843", $type: "color" }
45445
45591
  },
@@ -45449,7 +45595,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45449
45595
  "200": { $value: "#19191e", $type: "color" },
45450
45596
  "300": { $value: "#232329", $type: "color" },
45451
45597
  "400": { $value: "#3b3b44", $type: "color" },
45452
- "500": { $value: "#5a5a68", $type: "color" },
45598
+ "500": { $value: "#5e5e6c", $type: "color" },
45453
45599
  "600": { $value: "#8a8a9a", $type: "color" },
45454
45600
  "700": { $value: "#b0b0be", $type: "color" },
45455
45601
  "800": { $value: "#d4d4de", $type: "color" },
@@ -45481,7 +45627,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45481
45627
  outline: { $value: "#3b3b44", $type: "color" },
45482
45628
  outlineVariant: { $value: "#232329", $type: "color" },
45483
45629
  // Primary role pair — onPrimary is deep noir so hot pink CTAs pop.
45484
- onPrimary: { $value: "#09090b", $type: "color" },
45630
+ onPrimary: { $value: "#ffffff", $type: "color" },
45485
45631
  primaryContainer: { $value: "#9d174d", $type: "color" },
45486
45632
  // primary-800
45487
45633
  onPrimaryContainer: { $value: "#fce7f3", $type: "color" },
@@ -45741,15 +45887,31 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45741
45887
  "200": { $value: "#f8f0df", $type: "color" },
45742
45888
  "300": { $value: "#f0e4c9", $type: "color" },
45743
45889
  "400": { $value: "#dccba5", $type: "color" },
45744
- "500": { $value: "#bfaa80", $type: "color" },
45890
+ "500": { $value: "#aa8e56", $type: "color" },
45745
45891
  "600": { $value: "#9a8660", $type: "color" },
45746
45892
  "700": { $value: "#746448", $type: "color" },
45747
45893
  "800": { $value: "#504530", $type: "color" },
45748
45894
  "900": { $value: "#352e20", $type: "color" }
45749
45895
  },
45750
- success: standardSemanticScales.light.success,
45751
- warning: standardSemanticScales.light.warning,
45752
- error: standardSemanticScales.light.error,
45896
+ // #594 founder-approved light override (2026-08-22): shared success-500
45897
+ // is sub-AA as TEXT on botanical's warm paper — override the 500 stop
45898
+ // only, light only (same pattern as warning/error below).
45899
+ success: {
45900
+ ...standardSemanticScales.light.success,
45901
+ "500": { $type: "color", $value: "#17843f" }
45902
+ },
45903
+ // #594 founder-approved light overrides (2026-08-22): the shared
45904
+ // standardSemantic 500s are sub-AA as TEXT on botanical's warm paper
45905
+ // (#fefcf8) — override ONLY the 500 stop, only in light; the shared
45906
+ // scales stay untouched for every other theme and for dark.
45907
+ warning: {
45908
+ ...standardSemanticScales.light.warning,
45909
+ "500": { $type: "color", $value: "#a06707" }
45910
+ },
45911
+ error: {
45912
+ ...standardSemanticScales.light.error,
45913
+ "500": { $type: "color", $value: "#e51414" }
45914
+ },
45753
45915
  info: standardSemanticScales.light.info,
45754
45916
  // Semantic roles
45755
45917
  surface: { $value: "#fefcf8", $type: "color" },
@@ -45761,7 +45923,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45761
45923
  outline: { $value: "#f0e4c9", $type: "color" },
45762
45924
  outlineVariant: { $value: "#f8f0df", $type: "color" },
45763
45925
  // Primary role pair — onPrimary is cream for the leaf-green brand hex.
45764
- onPrimary: { $value: "#fefcf8", $type: "color" },
45926
+ onPrimary: { $value: "#332407", $type: "color" },
45765
45927
  primaryContainer: { $value: "#dcfce7", $type: "color" },
45766
45928
  // primary-100
45767
45929
  onPrimaryContainer: { $value: "#14532d", $type: "color" },
@@ -46058,7 +46220,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46058
46220
  "50": { $value: "#f4f7ec", $type: "color" },
46059
46221
  "100": { $value: "#e3ecd0", $type: "color" },
46060
46222
  "200": { $value: "#c8d8a5", $type: "color" },
46061
- "500": { $value: "#6b8e3d", $type: "color" },
46223
+ "500": { $value: "#5c7a35", $type: "color" },
46062
46224
  // brand: olive
46063
46225
  "600": { $value: "#587634", $type: "color" },
46064
46226
  "700": { $value: "#465c29", $type: "color" },
@@ -46068,7 +46230,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46068
46230
  "50": { $value: "#fbf3e3", $type: "color" },
46069
46231
  "100": { $value: "#f6e2bb", $type: "color" },
46070
46232
  "200": { $value: "#eac786", $type: "color" },
46071
- "500": { $value: "#c98e2e", $type: "color" },
46233
+ "500": { $value: "#956922", $type: "color" },
46072
46234
  // brand: amber-orange
46073
46235
  "600": { $value: "#a87725", $type: "color" },
46074
46236
  "700": { $value: "#825c1d", $type: "color" },
@@ -46108,7 +46270,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46108
46270
  outline: { $value: "#dad8cc", $type: "color" },
46109
46271
  outlineVariant: { $value: "#ebe9df", $type: "color" },
46110
46272
  // Primary role pair — text on Crail CTAs is ivory, container is Crail-50.
46111
- onPrimary: { $value: "#faf9f5", $type: "color" },
46273
+ onPrimary: { $value: "#15130a", $type: "color" },
46112
46274
  // Ivory
46113
46275
  primaryContainer: { $value: "#fbf2ee", $type: "color" },
46114
46276
  // primary-50
@@ -46219,7 +46381,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46219
46381
  "50": { $value: "#2a1410", $type: "color" },
46220
46382
  "100": { $value: "#52271f", $type: "color" },
46221
46383
  "200": { $value: "#7a3a2e", $type: "color" },
46222
- "500": { $value: "#d56b59", $type: "color" },
46384
+ "500": { $value: "#d7705f", $type: "color" },
46223
46385
  // brand: brick (lifted for dark)
46224
46386
  "600": { $value: "#df8576", $type: "color" },
46225
46387
  "700": { $value: "#e3a294", $type: "color" },
@@ -46466,7 +46628,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46466
46628
  "50": { $value: "#ecfdf5", $type: "color" },
46467
46629
  "100": { $value: "#d1fae5", $type: "color" },
46468
46630
  "200": { $value: "#a7f3d0", $type: "color" },
46469
- "500": { $value: "#0e9d6e", $type: "color" },
46631
+ "500": { $value: "#0b815a", $type: "color" },
46470
46632
  // brand emerald
46471
46633
  "600": { $value: "#0b8259", $type: "color" },
46472
46634
  "700": { $value: "#086847", $type: "color" },
@@ -46476,7 +46638,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46476
46638
  "50": { $value: "#fff8eb", $type: "color" },
46477
46639
  "100": { $value: "#fdecc8", $type: "color" },
46478
46640
  "200": { $value: "#fbd897", $type: "color" },
46479
- "500": { $value: "#e08515", $type: "color" },
46641
+ "500": { $value: "#a66210", $type: "color" },
46480
46642
  // brand amber
46481
46643
  "600": { $value: "#b86b0e", $type: "color" },
46482
46644
  "700": { $value: "#90530a", $type: "color" },
@@ -46587,7 +46749,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46587
46749
  "300": { $value: "#2a2839", $type: "color" },
46588
46750
  // outline
46589
46751
  "400": { $value: "#3e3c50", $type: "color" },
46590
- "500": { $value: "#5e5c70", $type: "color" },
46752
+ "500": { $value: "#636176", $type: "color" },
46591
46753
  // muted
46592
46754
  "600": { $value: "#8b8898", $type: "color" },
46593
46755
  "700": { $value: "#b8b6c2", $type: "color" },
@@ -46694,6 +46856,353 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46694
46856
  zIndex: standardZIndex
46695
46857
  };
46696
46858
 
46859
+ // ../design/dist/themes/definitions/guuey-brand.js
46860
+ var shared8 = {
46861
+ font: {
46862
+ family: {
46863
+ sans: {
46864
+ $value: '"DM Sans", system-ui, -apple-system, sans-serif',
46865
+ $type: "fontFamily"
46866
+ },
46867
+ mono: {
46868
+ $value: '"JetBrains Mono", ui-monospace, monospace',
46869
+ $type: "fontFamily"
46870
+ }
46871
+ },
46872
+ size: {
46873
+ sm: { $value: "0.875rem", $type: "dimension" },
46874
+ base: { $value: "1rem", $type: "dimension" },
46875
+ lg: { $value: "1.125rem", $type: "dimension" },
46876
+ xl: { $value: "1.25rem", $type: "dimension" },
46877
+ "2xl": { $value: "1.5rem", $type: "dimension" }
46878
+ },
46879
+ weight: {
46880
+ normal: { $value: "400", $type: "fontWeight" },
46881
+ medium: { $value: "500", $type: "fontWeight" },
46882
+ semibold: { $value: "600", $type: "fontWeight" },
46883
+ bold: { $value: "700", $type: "fontWeight" }
46884
+ },
46885
+ lineHeight: {
46886
+ tight: { $value: "1.25", $type: "number" },
46887
+ normal: { $value: "1.5", $type: "number" },
46888
+ relaxed: { $value: "1.75", $type: "number" }
46889
+ }
46890
+ },
46891
+ spacing: {
46892
+ "1": { $value: "0.25rem", $type: "dimension" },
46893
+ "2": { $value: "0.5rem", $type: "dimension" },
46894
+ "3": { $value: "0.75rem", $type: "dimension" },
46895
+ "4": { $value: "1rem", $type: "dimension" },
46896
+ "5": { $value: "1.25rem", $type: "dimension" },
46897
+ "6": { $value: "1.5rem", $type: "dimension" },
46898
+ "8": { $value: "2rem", $type: "dimension" },
46899
+ "10": { $value: "2.5rem", $type: "dimension" },
46900
+ "12": { $value: "3rem", $type: "dimension" }
46901
+ },
46902
+ // NOTE: `shape` is per-mode (round 4) — radius is shared via
46903
+ // `sharedRadius` below, but shadows split: dark wants near-none ink
46904
+ // (a visible black blob under a card on a dark surface was the
46905
+ // round-3 "borders looking ugly" residual's shadow half), light
46906
+ // wants classic soft grey.
46907
+ motion: {
46908
+ duration: {
46909
+ fast: { $value: "120ms", $type: "duration" },
46910
+ normal: { $value: "200ms", $type: "duration" },
46911
+ slow: { $value: "400ms", $type: "duration" },
46912
+ ambient: { $value: "2000ms", $type: "duration" }
46913
+ },
46914
+ easing: {
46915
+ default: { $value: "cubic-bezier(0.4, 0, 0.2, 1)", $type: "cubicBezier" },
46916
+ bounce: {
46917
+ $value: "cubic-bezier(0.68, -0.55, 0.27, 1.55)",
46918
+ $type: "cubicBezier"
46919
+ },
46920
+ spring: { $value: "cubic-bezier(0.22, 1, 0.36, 1)", $type: "cubicBezier" }
46921
+ },
46922
+ transition: {
46923
+ fast: { $value: "120ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
46924
+ normal: { $value: "200ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
46925
+ slow: { $value: "400ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
46926
+ colors: {
46927
+ $value: "color 200ms cubic-bezier(0.4, 0, 0.2, 1), background-color 200ms cubic-bezier(0.4, 0, 0.2, 1), border-color 200ms cubic-bezier(0.4, 0, 0.2, 1)",
46928
+ $type: "transition"
46929
+ },
46930
+ opacity: { $value: "opacity 200ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
46931
+ transform: { $value: "transform 200ms cubic-bezier(0.22, 1, 0.36, 1)", $type: "transition" }
46932
+ },
46933
+ keyframes: {
46934
+ "fade-in": {
46935
+ $value: "0%{opacity:0}100%{opacity:1}",
46936
+ $type: "keyframes"
46937
+ },
46938
+ "slide-up": {
46939
+ $value: "0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}",
46940
+ $type: "keyframes"
46941
+ },
46942
+ "pulse-soft": {
46943
+ $value: "0%{opacity:1}50%{opacity:0.65}100%{opacity:1}",
46944
+ $type: "keyframes"
46945
+ }
46946
+ }
46947
+ },
46948
+ accessibility: {
46949
+ focusRing: {
46950
+ color: { $value: "#B8FF3A", $type: "color" },
46951
+ width: { $value: "2px", $type: "dimension" },
46952
+ offset: { $value: "2px", $type: "dimension" }
46953
+ },
46954
+ reducedMotion: {
46955
+ duration: { $value: "0ms", $type: "duration" }
46956
+ },
46957
+ highContrast: {
46958
+ borderWidth: { $value: "2px", $type: "dimension" },
46959
+ textColor: { $value: "#FFFFFF", $type: "color" },
46960
+ backgroundColor: { $value: "#000000", $type: "color" },
46961
+ linkColor: { $value: "#CCFF66", $type: "color" }
46962
+ }
46963
+ },
46964
+ zIndex: standardZIndex
46965
+ };
46966
+ var sharedRadius = {
46967
+ sm: { $value: "0.375rem", $type: "dimension" },
46968
+ md: { $value: "0.5rem", $type: "dimension" },
46969
+ lg: { $value: "0.75rem", $type: "dimension" },
46970
+ xl: { $value: "1rem", $type: "dimension" },
46971
+ full: { $value: "9999px", $type: "dimension" }
46972
+ };
46973
+ var darkShadows = {
46974
+ sm: { $value: "0 1px 2px rgba(0, 0, 0, 0.2)", $type: "shadow" },
46975
+ md: { $value: "0 2px 8px rgba(0, 0, 0, 0.25)", $type: "shadow" },
46976
+ lg: { $value: "0 6px 16px rgba(0, 0, 0, 0.28)", $type: "shadow" },
46977
+ xl: { $value: "0 10px 24px rgba(0, 0, 0, 0.3)", $type: "shadow" }
46978
+ };
46979
+ var lightShadows = {
46980
+ sm: { $value: "0 1px 2px rgba(26, 29, 36, 0.06)", $type: "shadow" },
46981
+ md: { $value: "0 2px 8px rgba(26, 29, 36, 0.08)", $type: "shadow" },
46982
+ lg: { $value: "0 6px 16px rgba(26, 29, 36, 0.1)", $type: "shadow" },
46983
+ xl: { $value: "0 12px 28px rgba(26, 29, 36, 0.12)", $type: "shadow" }
46984
+ };
46985
+ var guueyBrandDark = {
46986
+ $name: "guuey-brand-v1",
46987
+ $description: "The guuey product brand (dark) \u2014 slate-ink surfaces, slime #B8FF3A accent, DM Sans.",
46988
+ $metadata: {
46989
+ font: "DM Sans",
46990
+ fontUrl: "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap",
46991
+ philosophy: "Agent-native. Slime on slate.",
46992
+ // Round 5 (founder-ruled): the guuey host clips the view with its
46993
+ // own rounded rim — the HOST owns the card silhouette; the theme
46994
+ // paints no border on the root layer. Inner hairlines stay.
46995
+ frameless: true
46996
+ },
46997
+ color: {
46998
+ // Inverted dark ladder — 50 darkest, 900 lightest; slime pinned at
46999
+ // 500, the portal's lifted #CCFF66 at the hover stop (600).
47000
+ primary: {
47001
+ "50": { $value: "#141D05", $type: "color" },
47002
+ "100": { $value: "#28390B", $type: "color" },
47003
+ "200": { $value: "#3F5A11", $type: "color" },
47004
+ "300": { $value: "#5F8719", $type: "color" },
47005
+ "400": { $value: "#8CC627", $type: "color" },
47006
+ "500": { $value: "#B8FF3A", $type: "color" },
47007
+ // slime (brand)
47008
+ "600": { $value: "#CCFF66", $type: "color" },
47009
+ // lifted hover (portal)
47010
+ "700": { $value: "#DBFF8F", $type: "color" },
47011
+ // pressed / emphasized
47012
+ "800": { $value: "#E9FFB8", $type: "color" },
47013
+ "900": { $value: "#F6FFE0", $type: "color" }
47014
+ },
47015
+ // Slate-ink foundation from the portal surface family: sunken →
47016
+ // surface → elevated → surfaceVariant, then up through the greys
47017
+ // to paper (#F6F5EE).
47018
+ neutral: {
47019
+ "50": { $value: "#0E1014", $type: "color" },
47020
+ // sunken
47021
+ "100": { $value: "#1A1D24", $type: "color" },
47022
+ // surface
47023
+ "200": { $value: "#232630", $type: "color" },
47024
+ // elevated
47025
+ "300": { $value: "#242938", $type: "color" },
47026
+ // surfaceVariant
47027
+ "400": { $value: "#3B4152", $type: "color" },
47028
+ "500": { $value: "#878C99", $type: "color" },
47029
+ // hint text
47030
+ "600": { $value: "#B7BAC4", $type: "color" },
47031
+ // secondary text
47032
+ "700": { $value: "#D5D6DC", $type: "color" },
47033
+ "800": { $value: "#E8E7E2", $type: "color" },
47034
+ "900": { $value: "#F6F5EE", $type: "color" }
47035
+ // paper (text)
47036
+ },
47037
+ // BRAND RULE: success IS slime — never green. Same family as
47038
+ // primary so an "Available" pill and a slime CTA read as one brand.
47039
+ success: {
47040
+ "50": { $value: "#141D05", $type: "color" },
47041
+ "100": { $value: "#28390B", $type: "color" },
47042
+ "200": { $value: "#3F5A11", $type: "color" },
47043
+ "500": { $value: "#B8FF3A", $type: "color" },
47044
+ // slime (brand rule)
47045
+ "600": { $value: "#CCFF66", $type: "color" },
47046
+ "700": { $value: "#DBFF8F", $type: "color" },
47047
+ "800": { $value: "#E9FFB8", $type: "color" }
47048
+ },
47049
+ warning: {
47050
+ "50": { $value: "#33240A", $type: "color" },
47051
+ "100": { $value: "#5C420F", $type: "color" },
47052
+ "200": { $value: "#8A6318", $type: "color" },
47053
+ "500": { $value: "#FFB020", $type: "color" },
47054
+ // portal warning
47055
+ "600": { $value: "#FFC24D", $type: "color" },
47056
+ "700": { $value: "#FFD37D", $type: "color" },
47057
+ "800": { $value: "#FFE5AE", $type: "color" }
47058
+ },
47059
+ error: {
47060
+ "50": { $value: "#33110E", $type: "color" },
47061
+ "100": { $value: "#5E1F1B", $type: "color" },
47062
+ "200": { $value: "#8F2F2A", $type: "color" },
47063
+ "500": { $value: "#FF5B5B", $type: "color" },
47064
+ // portal error
47065
+ "600": { $value: "#FF7D7A", $type: "color" },
47066
+ "700": { $value: "#FF9F9C", $type: "color" },
47067
+ "800": { $value: "#FFC3C0", $type: "color" }
47068
+ },
47069
+ info: {
47070
+ "50": { $value: "#0A2733", $type: "color" },
47071
+ "100": { $value: "#12455C", $type: "color" },
47072
+ "200": { $value: "#1E6A8A", $type: "color" },
47073
+ "500": { $value: "#3AC8FF", $type: "color" },
47074
+ // portal info
47075
+ "600": { $value: "#66D4FF", $type: "color" },
47076
+ "700": { $value: "#92E0FF", $type: "color" },
47077
+ "800": { $value: "#BFECFF", $type: "color" }
47078
+ },
47079
+ // M3 roles — portal values verbatim.
47080
+ surface: { $value: "#1A1D24", $type: "color" },
47081
+ onSurface: { $value: "#F6F5EE", $type: "color" },
47082
+ surfaceVariant: { $value: "#242938", $type: "color" },
47083
+ onSurfaceVariant: { $value: "#B7BAC4", $type: "color" },
47084
+ container: { $value: "#232630", $type: "color" },
47085
+ // elevated
47086
+ onContainer: { $value: "#F6F5EE", $type: "color" },
47087
+ // Round 4 (portal stops): .14 IS the base hairline; .18 is the
47088
+ // STRONG stop (no DtcgTheme slot — strong/interactive strokes
47089
+ // ride primary borders + the slime focusRing, receipted by the
47090
+ // Select button). Dividers sit softer still.
47091
+ outline: { $value: "rgba(246, 245, 238, 0.14)", $type: "color" },
47092
+ outlineVariant: { $value: "rgba(246, 245, 238, 0.1)", $type: "color" },
47093
+ onPrimary: { $value: "#0E1014", $type: "color" },
47094
+ // ink on slime
47095
+ primaryContainer: { $value: "#242938", $type: "color" },
47096
+ // portal
47097
+ onPrimaryContainer: { $value: "#CCFF66", $type: "color" },
47098
+ // portal
47099
+ onError: { $value: "#33110E", $type: "color" },
47100
+ errorContainer: { $value: "#5E1F1B", $type: "color" },
47101
+ onErrorContainer: { $value: "#FFC3C0", $type: "color" },
47102
+ // Pink accent — the portal's tertiary. (Purple #9B6AFF has no
47103
+ // DtcgTheme slot; see the file docstring.)
47104
+ tertiary: { $value: "#FF4FB0", $type: "color" },
47105
+ onTertiary: { $value: "#0E1014", $type: "color" },
47106
+ tertiaryContainer: { $value: "#451A35", $type: "color" },
47107
+ onTertiaryContainer: { $value: "#FFC1E4", $type: "color" }
47108
+ },
47109
+ ...shared8,
47110
+ shape: { radius: sharedRadius, shadow: darkShadows }
47111
+ };
47112
+ var guueyBrandLight = {
47113
+ $name: "guuey-brand-v1",
47114
+ $description: "The guuey product brand (light, provisional) \u2014 paper surfaces, slime accent held for fills, darkened slime for text emphasis.",
47115
+ $metadata: guueyBrandDark.$metadata,
47116
+ color: {
47117
+ // Normal (non-inverted) ramps; slime stays the 500 fill anchor,
47118
+ // text-emphasis stops (600/700) darken for contrast on paper.
47119
+ primary: {
47120
+ "50": { $value: "#F6FFE0", $type: "color" },
47121
+ "100": { $value: "#E9FFB8", $type: "color" },
47122
+ "200": { $value: "#DBFF8F", $type: "color" },
47123
+ "300": { $value: "#CCFF66", $type: "color" },
47124
+ "400": { $value: "#B8FF3A", $type: "color" },
47125
+ "500": { $value: "#9FE01C", $type: "color" },
47126
+ "600": { $value: "#7DB214", $type: "color" },
47127
+ // 700 is the 'emphasized' TEXT stop — AA on paper (round 7 sweep).
47128
+ "700": { $value: "#476809", $type: "color" },
47129
+ "800": { $value: "#3F5A11", $type: "color" },
47130
+ "900": { $value: "#28390B", $type: "color" }
47131
+ },
47132
+ neutral: {
47133
+ "50": { $value: "#FBFAF6", $type: "color" },
47134
+ "100": { $value: "#F6F5EE", $type: "color" },
47135
+ "200": { $value: "#E8E7E2", $type: "color" },
47136
+ "300": { $value: "#D5D6DC", $type: "color" },
47137
+ "400": { $value: "#B7BAC4", $type: "color" },
47138
+ "500": { $value: "#6E7380", $type: "color" },
47139
+ "600": { $value: "#4A4F5C", $type: "color" },
47140
+ "700": { $value: "#333846", $type: "color" },
47141
+ "800": { $value: "#242938", $type: "color" },
47142
+ "900": { $value: "#1A1D24", $type: "color" }
47143
+ },
47144
+ // Semantic -500s are TEXT stops on paper ('success'/'warning'/…
47145
+ // tones + Alert) — every 500 below clears AA on #FFFFFF (round 7
47146
+ // sweep; the pre-sweep pastel values measured 2.5–4.3).
47147
+ success: {
47148
+ "50": { $value: "#F6FFE0", $type: "color" },
47149
+ "100": { $value: "#E9FFB8", $type: "color" },
47150
+ "200": { $value: "#DBFF8F", $type: "color" },
47151
+ "500": { $value: "#517709", $type: "color" },
47152
+ "600": { $value: "#476809", $type: "color" },
47153
+ "700": { $value: "#35510B", $type: "color" },
47154
+ "800": { $value: "#28390B", $type: "color" }
47155
+ },
47156
+ warning: {
47157
+ "50": { $value: "#FFF4DD", $type: "color" },
47158
+ "100": { $value: "#FFE5AE", $type: "color" },
47159
+ "200": { $value: "#FFD37D", $type: "color" },
47160
+ "500": { $value: "#9C6205", $type: "color" },
47161
+ "600": { $value: "#7C4D04", $type: "color" },
47162
+ "700": { $value: "#5E3A03", $type: "color" },
47163
+ "800": { $value: "#3F2702", $type: "color" }
47164
+ },
47165
+ error: {
47166
+ "50": { $value: "#FFE9E8", $type: "color" },
47167
+ "100": { $value: "#FFC3C0", $type: "color" },
47168
+ "200": { $value: "#FF9F9C", $type: "color" },
47169
+ "500": { $value: "#CC2F2F", $type: "color" },
47170
+ "600": { $value: "#A62626", $type: "color" },
47171
+ "700": { $value: "#7E1D1D", $type: "color" },
47172
+ "800": { $value: "#5E1F1B", $type: "color" }
47173
+ },
47174
+ info: {
47175
+ "50": { $value: "#E5F7FF", $type: "color" },
47176
+ "100": { $value: "#BFECFF", $type: "color" },
47177
+ "200": { $value: "#92E0FF", $type: "color" },
47178
+ "500": { $value: "#0B739E", $type: "color" },
47179
+ "600": { $value: "#085572", $type: "color" },
47180
+ "700": { $value: "#06455D", $type: "color" },
47181
+ "800": { $value: "#0A3346", $type: "color" }
47182
+ },
47183
+ surface: { $value: "#FFFFFF", $type: "color" },
47184
+ onSurface: { $value: "#1A1D24", $type: "color" },
47185
+ surfaceVariant: { $value: "#F6F5EE", $type: "color" },
47186
+ onSurfaceVariant: { $value: "#4A4F5C", $type: "color" },
47187
+ container: { $value: "#FBFAF6", $type: "color" },
47188
+ onContainer: { $value: "#1A1D24", $type: "color" },
47189
+ outline: { $value: "rgba(26, 29, 36, 0.18)", $type: "color" },
47190
+ outlineVariant: { $value: "rgba(26, 29, 36, 0.10)", $type: "color" },
47191
+ onPrimary: { $value: "#0E1014", $type: "color" },
47192
+ primaryContainer: { $value: "#E9FFB8", $type: "color" },
47193
+ onPrimaryContainer: { $value: "#28390B", $type: "color" },
47194
+ onError: { $value: "#FFFFFF", $type: "color" },
47195
+ errorContainer: { $value: "#FFE9E8", $type: "color" },
47196
+ onErrorContainer: { $value: "#8A1F1F", $type: "color" },
47197
+ tertiary: { $value: "#D6247F", $type: "color" },
47198
+ onTertiary: { $value: "#FFFFFF", $type: "color" },
47199
+ tertiaryContainer: { $value: "#FFDCEE", $type: "color" },
47200
+ onTertiaryContainer: { $value: "#6B1240", $type: "color" }
47201
+ },
47202
+ ...shared8,
47203
+ shape: { radius: sharedRadius, shadow: lightShadows }
47204
+ };
47205
+
46697
47206
  // ../design/dist/themes/ThemeProvider.js
46698
47207
  var import_jsx_runtime56 = __toESM(require_jsx_runtime(), 1);
46699
47208
  var import_react37 = __toESM(require_react(), 1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ggui-ai/ui-visual-tester",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "description": "Behavioral validator for ggui-generated component code. Renders a component in real Chromium via Playwright, clicks each action declared in its contract, and verifies the action actually does something — mutating bound state or dispatching to the agent. Catches buttons wired to no-op handlers that structural validators miss. Playwright is an optional peer dependency, injected by the caller.",
5
5
  "keywords": [
6
6
  "ggui",
@@ -48,9 +48,9 @@
48
48
  "dependencies": {
49
49
  "react": "^19.0.0",
50
50
  "react-dom": "^19.0.0",
51
- "@ggui-ai/protocol": "0.10.0",
52
- "@ggui-ai/wire": "0.10.0",
53
- "@ggui-ai/design": "0.10.0"
51
+ "@ggui-ai/design": "0.12.0",
52
+ "@ggui-ai/protocol": "0.12.0",
53
+ "@ggui-ai/wire": "0.12.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@playwright/test": "^1.60.0",