@ggui-ai/ui-visual-tester 0.15.0 → 0.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/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/fixture/fixture-runtime.js +317 -459
- package/package.json +4 -4
|
@@ -20069,22 +20069,23 @@
|
|
|
20069
20069
|
function resolveToneCss(tone) {
|
|
20070
20070
|
switch (tone) {
|
|
20071
20071
|
case "default":
|
|
20072
|
-
return "var(--ggui-color-
|
|
20072
|
+
return "var(--ggui-color-onContainer, #18181b)";
|
|
20073
20073
|
case "muted":
|
|
20074
|
-
return "var(--ggui-color-
|
|
20074
|
+
return "var(--ggui-color-onSunken, #52525b)";
|
|
20075
20075
|
case "subtle":
|
|
20076
20076
|
return "var(--ggui-color-neutral-500, #71717a)";
|
|
20077
20077
|
case "emphasized":
|
|
20078
20078
|
return "var(--ggui-color-primary-700, #0369a1)";
|
|
20079
20079
|
case "loud":
|
|
20080
20080
|
return "var(--ggui-color-primary-500, #0ea5e9)";
|
|
20081
|
+
case "error":
|
|
20082
|
+
return `var(--ggui-color-error, var(--ggui-color-error-500, ${SEMANTIC_TONE_FALLBACK.error}))`;
|
|
20081
20083
|
case "success":
|
|
20082
20084
|
case "warning":
|
|
20083
|
-
case "error":
|
|
20084
20085
|
case "info":
|
|
20085
20086
|
return `var(--ggui-color-${tone}-500, ${SEMANTIC_TONE_FALLBACK[tone]})`;
|
|
20086
20087
|
case "inverse":
|
|
20087
|
-
return "var(--ggui-color-
|
|
20088
|
+
return "var(--ggui-color-container, #ffffff)";
|
|
20088
20089
|
case "inherit":
|
|
20089
20090
|
return "inherit";
|
|
20090
20091
|
}
|
|
@@ -20098,14 +20099,15 @@
|
|
|
20098
20099
|
function resolveSurfaceCss(surface) {
|
|
20099
20100
|
switch (surface) {
|
|
20100
20101
|
case "default":
|
|
20102
|
+
return "var(--ggui-color-container, #ffffff)";
|
|
20101
20103
|
case "elevated":
|
|
20102
|
-
return "var(--ggui-color-
|
|
20104
|
+
return "var(--ggui-color-elevated, #ffffff)";
|
|
20103
20105
|
case "sunken":
|
|
20104
|
-
return "var(--ggui-color-
|
|
20106
|
+
return "var(--ggui-color-sunken, #f4f4f5)";
|
|
20105
20107
|
case "accent":
|
|
20106
20108
|
return "var(--ggui-color-primary-50, #f0f9ff)";
|
|
20107
20109
|
case "inverted":
|
|
20108
|
-
return "var(--ggui-color-
|
|
20110
|
+
return "var(--ggui-color-onContainer, #18181b)";
|
|
20109
20111
|
case "transparent":
|
|
20110
20112
|
return "transparent";
|
|
20111
20113
|
}
|
|
@@ -20348,7 +20350,7 @@
|
|
|
20348
20350
|
"4xl": 1.25
|
|
20349
20351
|
};
|
|
20350
20352
|
function Text({ children, size = "base", weight = "normal", caps = false, tone, align, truncate, is = "p", id, htmlFor, style, className }) {
|
|
20351
|
-
const resolvedColor = tone ? resolveToneCss(tone) : "var(--ggui-color-
|
|
20353
|
+
const resolvedColor = tone ? resolveToneCss(tone) : "var(--ggui-color-onContainer, #18181b)";
|
|
20352
20354
|
const textStyle = {
|
|
20353
20355
|
fontSize: sizeMap[size],
|
|
20354
20356
|
fontWeight: weightMap[weight],
|
|
@@ -20454,10 +20456,25 @@
|
|
|
20454
20456
|
};
|
|
20455
20457
|
|
|
20456
20458
|
// ../design/dist/primitives/Heading.js
|
|
20459
|
+
var HEADING_SIZE = {
|
|
20460
|
+
h1: "var(--ggui-font-size-4xl, 36px)",
|
|
20461
|
+
h2: "var(--ggui-font-size-3xl, 30px)",
|
|
20462
|
+
h3: "var(--ggui-font-size-2xl, 24px)",
|
|
20463
|
+
h4: "var(--ggui-font-size-xl, 20px)",
|
|
20464
|
+
h5: "var(--ggui-font-size-lg, 18px)",
|
|
20465
|
+
h6: "var(--ggui-font-size-base, 16px)"
|
|
20466
|
+
};
|
|
20457
20467
|
function Heading({ children, level = 2, tone, align, style, className }) {
|
|
20458
20468
|
const tag = `h${level}`;
|
|
20459
|
-
const
|
|
20460
|
-
const
|
|
20469
|
+
const fallback = headingStyles[tag] || headingStyles.h2;
|
|
20470
|
+
const headingStyle = {
|
|
20471
|
+
fontSize: HEADING_SIZE[tag],
|
|
20472
|
+
fontWeight: `var(--ggui-font-weight-heading, ${fallback.fontWeight})`,
|
|
20473
|
+
fontFamily: "var(--ggui-font-family-heading, var(--ggui-font-family-sans, inherit))",
|
|
20474
|
+
lineHeight: fallback.lineHeight,
|
|
20475
|
+
letterSpacing: `var(--ggui-letter-spacing-heading, ${fallback.letterSpacing})`
|
|
20476
|
+
};
|
|
20477
|
+
const resolvedColor = tone ? resolveToneCss(tone) : "var(--ggui-color-onContainer, #18181b)";
|
|
20461
20478
|
return (0, import_react4.createElement)(tag, {
|
|
20462
20479
|
className,
|
|
20463
20480
|
style: {
|
|
@@ -20541,8 +20558,8 @@
|
|
|
20541
20558
|
border: "none"
|
|
20542
20559
|
},
|
|
20543
20560
|
secondary: {
|
|
20544
|
-
backgroundColor: "var(--ggui-color-
|
|
20545
|
-
color: "var(--ggui-color-
|
|
20561
|
+
backgroundColor: "var(--ggui-color-sunken, #f4f4f5)",
|
|
20562
|
+
color: "var(--ggui-color-onSunken, #52525b)",
|
|
20546
20563
|
border: "none"
|
|
20547
20564
|
},
|
|
20548
20565
|
outline: {
|
|
@@ -20552,7 +20569,7 @@
|
|
|
20552
20569
|
},
|
|
20553
20570
|
ghost: {
|
|
20554
20571
|
backgroundColor: "transparent",
|
|
20555
|
-
color: "var(--ggui-color-
|
|
20572
|
+
color: "var(--ggui-color-onSunken, #52525b)",
|
|
20556
20573
|
border: "none"
|
|
20557
20574
|
},
|
|
20558
20575
|
danger: {
|
|
@@ -20613,19 +20630,19 @@
|
|
|
20613
20630
|
}, children: [label && (0, import_jsx_runtime7.jsxs)("label", { htmlFor: inputId, style: {
|
|
20614
20631
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20615
20632
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
20616
|
-
color: "var(--ggui-color-
|
|
20633
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20617
20634
|
}, children: [label, required && (0, import_jsx_runtime7.jsx)("span", { "aria-hidden": "true", style: { color: "var(--ggui-color-error-500, #ef4444)", marginLeft: "2px" }, children: "*" })] }), (0, import_jsx_runtime7.jsx)("input", { id: inputId, type, placeholder, value, onChange: (e) => onChange?.(e.target.value), disabled, required, "aria-invalid": hasError || void 0, "aria-describedby": hasMessage ? messageId : void 0, style: {
|
|
20618
20635
|
...sizeStyles2[size],
|
|
20619
20636
|
width: "100%",
|
|
20620
20637
|
borderRadius: "var(--ggui-shape-radius-md, 8px)",
|
|
20621
20638
|
border: `1px solid ${hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-outline, #d4d4d8)"}`,
|
|
20622
|
-
backgroundColor: disabled ? "var(--ggui-color-
|
|
20623
|
-
color: "var(--ggui-color-
|
|
20639
|
+
backgroundColor: disabled ? "var(--ggui-color-sunken, #fafafa)" : "var(--ggui-color-sunken, #ffffff)",
|
|
20640
|
+
color: "var(--ggui-color-onContainer, #18181b)",
|
|
20624
20641
|
transition: `border-color ${duration.normal} ${easing.easeInOut}, box-shadow ${duration.normal} ${easing.easeInOut}`,
|
|
20625
20642
|
boxSizing: "border-box"
|
|
20626
20643
|
}, ...rest }), hasMessage && (0, import_jsx_runtime7.jsx)("span", { id: messageId, role: hasError ? "alert" : void 0, style: {
|
|
20627
20644
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
20628
|
-
color: hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-
|
|
20645
|
+
color: hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-onSunken, #52525b)"
|
|
20629
20646
|
}, children: error2 || helperText })] });
|
|
20630
20647
|
}
|
|
20631
20648
|
|
|
@@ -20647,14 +20664,14 @@
|
|
|
20647
20664
|
}, children: [label && (0, import_jsx_runtime8.jsxs)("label", { htmlFor: textareaId, style: {
|
|
20648
20665
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20649
20666
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
20650
|
-
color: "var(--ggui-color-
|
|
20667
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20651
20668
|
}, children: [label, required && (0, import_jsx_runtime8.jsx)("span", { "aria-hidden": "true", style: { color: "var(--ggui-color-error-500, #ef4444)", marginLeft: "2px" }, children: "*" })] }), (0, import_jsx_runtime8.jsx)("textarea", { id: textareaId, placeholder, value, onChange: (e) => onChange?.(e.target.value), rows, disabled, required, maxLength, "aria-invalid": hasError || void 0, "aria-describedby": hasMessage ? messageId : void 0, style: {
|
|
20652
20669
|
padding: "10px 12px",
|
|
20653
20670
|
width: "100%",
|
|
20654
20671
|
borderRadius: "var(--ggui-shape-radius-md, 8px)",
|
|
20655
20672
|
border: `1px solid ${hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-outline, #d4d4d8)"}`,
|
|
20656
|
-
backgroundColor: disabled ? "var(--ggui-color-
|
|
20657
|
-
color: "var(--ggui-color-
|
|
20673
|
+
backgroundColor: disabled ? "var(--ggui-color-sunken, #fafafa)" : "var(--ggui-color-sunken, #ffffff)",
|
|
20674
|
+
color: "var(--ggui-color-onContainer, #18181b)",
|
|
20658
20675
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20659
20676
|
fontFamily: "inherit",
|
|
20660
20677
|
transition: `border-color ${duration.normal} ${easing.easeInOut}, box-shadow ${duration.normal} ${easing.easeInOut}`,
|
|
@@ -20662,10 +20679,10 @@
|
|
|
20662
20679
|
resize: autoResize ? "none" : "vertical"
|
|
20663
20680
|
}, ...rest }), (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", justifyContent: "space-between" }, children: [hasMessage && (0, import_jsx_runtime8.jsx)("span", { id: messageId, role: hasError ? "alert" : void 0, style: {
|
|
20664
20681
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
20665
|
-
color: hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-
|
|
20682
|
+
color: hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-onSunken, #52525b)"
|
|
20666
20683
|
}, children: error2 || helperText }), showCount && maxLength && (0, import_jsx_runtime8.jsxs)("span", { style: {
|
|
20667
20684
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
20668
|
-
color: "var(--ggui-color-
|
|
20685
|
+
color: "var(--ggui-color-onSunken, #52525b)",
|
|
20669
20686
|
marginLeft: "auto"
|
|
20670
20687
|
}, children: [charCount, "/", maxLength] })] })] });
|
|
20671
20688
|
}
|
|
@@ -20687,14 +20704,14 @@
|
|
|
20687
20704
|
return (0, import_jsx_runtime9.jsxs)("div", { className, style: { display: "flex", flexDirection: "column", gap: "var(--ggui-spacing-1, 4px)", ...style }, children: [label && (0, import_jsx_runtime9.jsxs)("label", { htmlFor: selectId, style: {
|
|
20688
20705
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20689
20706
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
20690
|
-
color: "var(--ggui-color-
|
|
20707
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20691
20708
|
}, children: [label, required && (0, import_jsx_runtime9.jsx)("span", { "aria-hidden": "true", style: { color: "var(--ggui-color-error-500, #ef4444)", marginLeft: "2px" }, children: "*" })] }), (0, import_jsx_runtime9.jsxs)("select", { id: selectId, value, onChange: (e) => onChange?.(e.target.value), disabled, required, "aria-invalid": hasError || void 0, "aria-describedby": hasMessage ? messageId : void 0, style: {
|
|
20692
20709
|
...sizeStyles3[size],
|
|
20693
20710
|
width: "100%",
|
|
20694
20711
|
borderRadius: "var(--ggui-shape-radius-md, 8px)",
|
|
20695
20712
|
border: `1px solid ${hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-outline, #d4d4d8)"}`,
|
|
20696
|
-
backgroundColor: disabled ? "var(--ggui-color-
|
|
20697
|
-
color: value ? "var(--ggui-color-
|
|
20713
|
+
backgroundColor: disabled ? "var(--ggui-color-sunken, #fafafa)" : "var(--ggui-color-sunken, #ffffff)",
|
|
20714
|
+
color: value ? "var(--ggui-color-onContainer, #18181b)" : "var(--ggui-color-onSunken, #52525b)",
|
|
20698
20715
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
20699
20716
|
appearance: "none",
|
|
20700
20717
|
backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E")`,
|
|
@@ -20705,7 +20722,7 @@
|
|
|
20705
20722
|
transition: `border-color ${duration.normal} ${easing.easeInOut}, box-shadow ${duration.normal} ${easing.easeInOut}`
|
|
20706
20723
|
}, ...rest, children: [placeholder && (0, import_jsx_runtime9.jsx)("option", { value: "", disabled: true, children: placeholder }), options.map((opt) => (0, import_jsx_runtime9.jsx)("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value))] }), hasMessage && (0, import_jsx_runtime9.jsx)("span", { id: messageId, role: hasError ? "alert" : void 0, style: {
|
|
20707
20724
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
20708
|
-
color: hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-
|
|
20725
|
+
color: hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-onSunken, #52525b)"
|
|
20709
20726
|
}, children: error2 || helperText })] });
|
|
20710
20727
|
}
|
|
20711
20728
|
|
|
@@ -20740,7 +20757,7 @@
|
|
|
20740
20757
|
height: "18px",
|
|
20741
20758
|
borderRadius: "var(--ggui-shape-radius-sm, 4px)",
|
|
20742
20759
|
border: `2px solid ${checked || indeterminate ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-outline, #d4d4d8)"}`,
|
|
20743
|
-
backgroundColor: checked || indeterminate ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-
|
|
20760
|
+
backgroundColor: checked || indeterminate ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-sunken, #ffffff)",
|
|
20744
20761
|
display: "flex",
|
|
20745
20762
|
alignItems: "center",
|
|
20746
20763
|
justifyContent: "center",
|
|
@@ -20748,10 +20765,10 @@
|
|
|
20748
20765
|
}, 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: {
|
|
20749
20766
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20750
20767
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
20751
|
-
color: "var(--ggui-color-
|
|
20768
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20752
20769
|
}, children: label }), description && (0, import_jsx_runtime10.jsx)("span", { style: {
|
|
20753
20770
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
20754
|
-
color: "var(--ggui-color-
|
|
20771
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20755
20772
|
}, children: description })] })] });
|
|
20756
20773
|
}
|
|
20757
20774
|
|
|
@@ -20803,7 +20820,7 @@
|
|
|
20803
20820
|
} }) }), label && (0, import_jsx_runtime11.jsx)("span", { style: {
|
|
20804
20821
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20805
20822
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
20806
|
-
color: "var(--ggui-color-
|
|
20823
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20807
20824
|
}, children: label })] });
|
|
20808
20825
|
}
|
|
20809
20826
|
|
|
@@ -20819,7 +20836,7 @@
|
|
|
20819
20836
|
return (0, import_jsx_runtime12.jsxs)("div", { role: "radiogroup", "aria-labelledby": label ? labelId : void 0, "aria-describedby": hasError ? errorId : void 0, className, style: { display: "flex", flexDirection: "column", gap: "var(--ggui-spacing-2, 8px)", ...style }, children: [label && (0, import_jsx_runtime12.jsx)("span", { id: labelId, style: {
|
|
20820
20837
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20821
20838
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
20822
|
-
color: "var(--ggui-color-
|
|
20839
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20823
20840
|
}, children: label }), (0, import_jsx_runtime12.jsx)("div", { style: {
|
|
20824
20841
|
display: "flex",
|
|
20825
20842
|
flexDirection: direction === "vertical" ? "column" : "row",
|
|
@@ -20852,7 +20869,7 @@
|
|
|
20852
20869
|
height: "18px",
|
|
20853
20870
|
borderRadius: "var(--ggui-shape-radius-full, 9999px)",
|
|
20854
20871
|
border: `2px solid ${isSelected ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-outline, #d4d4d8)"}`,
|
|
20855
|
-
backgroundColor: "var(--ggui-color-
|
|
20872
|
+
backgroundColor: "var(--ggui-color-sunken, #ffffff)",
|
|
20856
20873
|
display: "flex",
|
|
20857
20874
|
alignItems: "center",
|
|
20858
20875
|
justifyContent: "center",
|
|
@@ -20865,10 +20882,10 @@
|
|
|
20865
20882
|
} }) })] }), (0, import_jsx_runtime12.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "2px" }, children: [(0, import_jsx_runtime12.jsx)("span", { style: {
|
|
20866
20883
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20867
20884
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
20868
|
-
color: "var(--ggui-color-
|
|
20885
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20869
20886
|
}, children: option.label }), option.description && (0, import_jsx_runtime12.jsx)("span", { style: {
|
|
20870
20887
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
20871
|
-
color: "var(--ggui-color-
|
|
20888
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20872
20889
|
}, children: option.description })] })] }, option.value);
|
|
20873
20890
|
}) }), error2 && (0, import_jsx_runtime12.jsx)("span", { id: errorId, role: "alert", style: {
|
|
20874
20891
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
@@ -20887,7 +20904,7 @@
|
|
|
20887
20904
|
return (0, import_jsx_runtime13.jsxs)("div", { className, style: { display: "flex", flexDirection: "column", gap: "var(--ggui-spacing-2, 8px)", ...style }, children: [(label || showValue) && (0, import_jsx_runtime13.jsxs)("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [label && (0, import_jsx_runtime13.jsx)("span", { id: labelId, style: {
|
|
20888
20905
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20889
20906
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
20890
|
-
color: "var(--ggui-color-
|
|
20907
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20891
20908
|
}, children: label }), showValue && (0, import_jsx_runtime13.jsx)("span", { style: {
|
|
20892
20909
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
20893
20910
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
@@ -20931,8 +20948,8 @@
|
|
|
20931
20948
|
var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
|
|
20932
20949
|
var variantStyles2 = {
|
|
20933
20950
|
default: {
|
|
20934
|
-
backgroundColor: "var(--ggui-color-
|
|
20935
|
-
color: "var(--ggui-color-
|
|
20951
|
+
backgroundColor: "var(--ggui-color-sunken, #f4f4f5)",
|
|
20952
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
20936
20953
|
},
|
|
20937
20954
|
primary: {
|
|
20938
20955
|
backgroundColor: "var(--ggui-color-primary-100, #e0f2fe)",
|
|
@@ -20940,7 +20957,7 @@
|
|
|
20940
20957
|
},
|
|
20941
20958
|
secondary: {
|
|
20942
20959
|
backgroundColor: "var(--ggui-color-outlineVariant, #e4e4e7)",
|
|
20943
|
-
color: "var(--ggui-color-
|
|
20960
|
+
color: "var(--ggui-color-onContainer, #18181b)"
|
|
20944
20961
|
},
|
|
20945
20962
|
success: {
|
|
20946
20963
|
backgroundColor: "var(--ggui-color-success-100, #dcfce7)",
|
|
@@ -20957,6 +20974,11 @@
|
|
|
20957
20974
|
info: {
|
|
20958
20975
|
backgroundColor: "var(--ggui-color-info-100, #cffafe)",
|
|
20959
20976
|
color: "var(--ggui-color-info-700, #0e7490)"
|
|
20977
|
+
},
|
|
20978
|
+
// The second accent (ggui#987 §2.1): the tertiary container pair.
|
|
20979
|
+
tertiary: {
|
|
20980
|
+
backgroundColor: "var(--ggui-color-tertiaryContainer, #ccfbf1)",
|
|
20981
|
+
color: "var(--ggui-color-onTertiaryContainer, #134e4a)"
|
|
20960
20982
|
}
|
|
20961
20983
|
};
|
|
20962
20984
|
var sizeStyles4 = {
|
|
@@ -20991,7 +21013,7 @@
|
|
|
20991
21013
|
width: resolvedWidth,
|
|
20992
21014
|
height: resolvedHeight,
|
|
20993
21015
|
borderRadius: isCircle ? "9999px" : resolveRadius(radius2),
|
|
20994
|
-
backgroundColor: "var(--ggui-color-
|
|
21016
|
+
backgroundColor: "var(--ggui-color-sunken, #f4f4f5)",
|
|
20995
21017
|
animation: "ggui-skeleton-pulse 1.5s ease-in-out infinite",
|
|
20996
21018
|
...style
|
|
20997
21019
|
};
|
|
@@ -21131,10 +21153,10 @@
|
|
|
21131
21153
|
const height = sizeHeights[size];
|
|
21132
21154
|
const barColor = variantColors[variant];
|
|
21133
21155
|
const accessibleName = label ?? "Progress";
|
|
21134
|
-
return (0, import_jsx_runtime18.jsxs)("div", { className, style: { display: "flex", flexDirection: "column", gap: "var(--ggui-spacing-1, 4px)", ...style }, children: [showLabel && (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [(0, import_jsx_runtime18.jsx)("span", { style: { fontSize: "var(--ggui-font-size-sm, 14px)", color: "var(--ggui-color-
|
|
21156
|
+
return (0, import_jsx_runtime18.jsxs)("div", { className, style: { display: "flex", flexDirection: "column", gap: "var(--ggui-spacing-1, 4px)", ...style }, children: [showLabel && (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [(0, import_jsx_runtime18.jsx)("span", { style: { fontSize: "var(--ggui-font-size-sm, 14px)", color: "var(--ggui-color-onSunken, #52525b)" }, children: accessibleName }), (0, import_jsx_runtime18.jsxs)("span", { style: {
|
|
21135
21157
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
21136
21158
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
21137
|
-
color: "var(--ggui-color-
|
|
21159
|
+
color: "var(--ggui-color-onContainer, #18181b)"
|
|
21138
21160
|
}, children: [Math.round(percentage), "%"] })] }), (0, import_jsx_runtime18.jsxs)("div", { role: "progressbar", "aria-valuenow": indeterminate ? void 0 : value, "aria-valuemin": 0, "aria-valuemax": max, "aria-label": accessibleName, style: {
|
|
21139
21161
|
width: "100%",
|
|
21140
21162
|
height,
|
|
@@ -21176,7 +21198,7 @@
|
|
|
21176
21198
|
width: resolveSize2(width) || "100%",
|
|
21177
21199
|
height: resolveSize2(height) || "auto",
|
|
21178
21200
|
borderRadius: resolveRadius(radius2),
|
|
21179
|
-
backgroundColor: "var(--ggui-color-
|
|
21201
|
+
backgroundColor: "var(--ggui-color-sunken, #f4f4f5)",
|
|
21180
21202
|
display: "flex",
|
|
21181
21203
|
alignItems: "center",
|
|
21182
21204
|
justifyContent: "center",
|
|
@@ -25225,7 +25247,7 @@
|
|
|
25225
25247
|
// ../design/dist/primitives/Link.js
|
|
25226
25248
|
var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
|
|
25227
25249
|
function Link({ children, href, external, tone, underline = "hover", style, className, ...rest }) {
|
|
25228
|
-
const linkColor = tone ? resolveToneCss(tone) : "var(--ggui-color-primary-600, #0284c7)";
|
|
25250
|
+
const linkColor = tone ? resolveToneCss(tone) : "var(--ggui-color-link, var(--ggui-color-primary-600, #0284c7))";
|
|
25229
25251
|
const underlineStyle = {
|
|
25230
25252
|
always: "underline",
|
|
25231
25253
|
hover: "none",
|
|
@@ -25321,10 +25343,10 @@
|
|
|
25321
25343
|
top: coords.top,
|
|
25322
25344
|
left: coords.left,
|
|
25323
25345
|
transform: getTransform(),
|
|
25324
|
-
|
|
25325
|
-
//
|
|
25326
|
-
|
|
25327
|
-
color: "var(--ggui-color-
|
|
25346
|
+
// The inverse container pair (ggui#987 §2.1): a tooltip is
|
|
25347
|
+
// legible by inversion, not by lift — never `elevated`.
|
|
25348
|
+
backgroundColor: "var(--ggui-color-onContainer, #18181b)",
|
|
25349
|
+
color: "var(--ggui-color-container, #ffffff)",
|
|
25328
25350
|
padding: "6px 10px",
|
|
25329
25351
|
borderRadius: "var(--ggui-shape-radius-md, 8px)",
|
|
25330
25352
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
@@ -25360,7 +25382,7 @@
|
|
|
25360
25382
|
textAlign: "left",
|
|
25361
25383
|
fontWeight: "var(--ggui-font-weight-semibold, 600)",
|
|
25362
25384
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
25363
|
-
color: "var(--ggui-color-
|
|
25385
|
+
color: "var(--ggui-color-onSunken, #52525b)",
|
|
25364
25386
|
textTransform: "uppercase",
|
|
25365
25387
|
letterSpacing: "0.05em",
|
|
25366
25388
|
borderBottom: "2px solid var(--ggui-color-outlineVariant, #e4e4e7)",
|
|
@@ -25376,11 +25398,11 @@
|
|
|
25376
25398
|
width: "100%",
|
|
25377
25399
|
borderCollapse: "collapse",
|
|
25378
25400
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
25379
|
-
color: "var(--ggui-color-
|
|
25401
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
25380
25402
|
}, children: [caption && (0, import_jsx_runtime23.jsx)("caption", { style: {
|
|
25381
25403
|
padding: cellPadding,
|
|
25382
25404
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
25383
|
-
color: "var(--ggui-color-
|
|
25405
|
+
color: "var(--ggui-color-onSunken, #52525b)",
|
|
25384
25406
|
textAlign: "left",
|
|
25385
25407
|
captionSide: "top"
|
|
25386
25408
|
}, children: caption }), (0, import_jsx_runtime23.jsx)("thead", { children: (0, import_jsx_runtime23.jsx)("tr", { children: columns.map((col) => (0, import_jsx_runtime23.jsx)("th", { scope: "col", "aria-sort": sortKey === col.key ? sortDirection === "asc" ? "ascending" : "descending" : void 0, onClick: col.sortable ? () => handleSort(col.key) : void 0, onKeyDown: col.sortable ? (e) => {
|
|
@@ -25394,13 +25416,13 @@
|
|
|
25394
25416
|
width: col.width,
|
|
25395
25417
|
cursor: col.sortable ? "pointer" : "default"
|
|
25396
25418
|
}, children: (0, import_jsx_runtime23.jsxs)("span", { style: { display: "inline-flex", alignItems: "center" }, children: [col.header, col.sortable && sortIndicator(sortKey === col.key, sortDirection)] }) }, col.key)) }) }), (0, import_jsx_runtime23.jsx)("tbody", { children: data.map((row, rowIndex) => (0, import_jsx_runtime23.jsx)("tr", { onMouseEnter: hoverable ? () => setHoveredRow(rowIndex) : void 0, onMouseLeave: hoverable ? () => setHoveredRow(null) : void 0, style: {
|
|
25397
|
-
backgroundColor: hoverable && hoveredRow === rowIndex ? "var(--ggui-color-
|
|
25419
|
+
backgroundColor: hoverable && hoveredRow === rowIndex ? "var(--ggui-color-sunken, #fafafa)" : striped && rowIndex % 2 === 1 ? "var(--ggui-color-sunken, #fafafa)" : "transparent",
|
|
25398
25420
|
transition: "background-color 0.15s ease"
|
|
25399
25421
|
}, children: columns.map((col) => (0, import_jsx_runtime23.jsx)("td", { style: {
|
|
25400
25422
|
padding: cellPadding,
|
|
25401
25423
|
textAlign: col.align || "left",
|
|
25402
|
-
borderBottom: "1px solid var(--ggui-color-
|
|
25403
|
-
borderRight: bordered ? "1px solid var(--ggui-color-
|
|
25424
|
+
borderBottom: "1px solid var(--ggui-color-sunken, #f4f4f5)",
|
|
25425
|
+
borderRight: bordered ? "1px solid var(--ggui-color-sunken, #f4f4f5)" : void 0
|
|
25404
25426
|
}, children: col.render ? col.render(row[col.key], row, rowIndex) : row[col.key] }, col.key)) }, rowIndex)) })] }) });
|
|
25405
25427
|
}
|
|
25406
25428
|
|
|
@@ -25477,7 +25499,7 @@
|
|
|
25477
25499
|
if (variant === "line") {
|
|
25478
25500
|
return {
|
|
25479
25501
|
...base,
|
|
25480
|
-
color: isActive ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-
|
|
25502
|
+
color: isActive ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-onSunken, #52525b)",
|
|
25481
25503
|
borderBottom: isActive ? "2px solid var(--ggui-color-primary-600, #0284c7)" : "2px solid transparent",
|
|
25482
25504
|
marginBottom: "-1px"
|
|
25483
25505
|
};
|
|
@@ -25485,17 +25507,17 @@
|
|
|
25485
25507
|
if (variant === "pills") {
|
|
25486
25508
|
return {
|
|
25487
25509
|
...base,
|
|
25488
|
-
color: isActive ? "var(--ggui-color-onPrimary, #ffffff)" : "var(--ggui-color-
|
|
25510
|
+
color: isActive ? "var(--ggui-color-onPrimary, #ffffff)" : "var(--ggui-color-onSunken, #52525b)",
|
|
25489
25511
|
backgroundColor: isActive ? "var(--ggui-color-primary-600, #0284c7)" : "transparent",
|
|
25490
25512
|
borderRadius: "var(--ggui-shape-radius-md, 6px)"
|
|
25491
25513
|
};
|
|
25492
25514
|
}
|
|
25493
25515
|
return {
|
|
25494
25516
|
...base,
|
|
25495
|
-
color: isActive ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-
|
|
25496
|
-
backgroundColor: isActive ? "var(--ggui-color-
|
|
25517
|
+
color: isActive ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-onSunken, #52525b)",
|
|
25518
|
+
backgroundColor: isActive ? "var(--ggui-color-container, #ffffff)" : "transparent",
|
|
25497
25519
|
border: isActive ? "1px solid var(--ggui-color-outlineVariant, #e4e4e7)" : "1px solid transparent",
|
|
25498
|
-
borderBottom: isActive ? "1px solid var(--ggui-color-
|
|
25520
|
+
borderBottom: isActive ? "1px solid var(--ggui-color-container, #ffffff)" : "1px solid transparent",
|
|
25499
25521
|
borderRadius: "var(--ggui-shape-radius-md, 6px) var(--ggui-shape-radius-md, 6px) 0 0",
|
|
25500
25522
|
marginBottom: "-1px"
|
|
25501
25523
|
};
|
|
@@ -25504,7 +25526,7 @@
|
|
|
25504
25526
|
display: "flex",
|
|
25505
25527
|
gap: variant === "pills" ? "var(--ggui-spacing-1, 4px)" : "0",
|
|
25506
25528
|
borderBottom: variant === "line" || variant === "enclosed" ? "1px solid var(--ggui-color-outlineVariant, #e4e4e7)" : void 0,
|
|
25507
|
-
backgroundColor: variant === "pills" ? "var(--ggui-color-
|
|
25529
|
+
backgroundColor: variant === "pills" ? "var(--ggui-color-sunken, #f4f4f5)" : void 0,
|
|
25508
25530
|
borderRadius: variant === "pills" ? "var(--ggui-shape-radius-lg, 8px)" : void 0,
|
|
25509
25531
|
padding: variant === "pills" ? "var(--ggui-spacing-1, 4px)" : void 0
|
|
25510
25532
|
};
|
|
@@ -25675,25 +25697,25 @@
|
|
|
25675
25697
|
// ../design/dist/primitives/Toast.js
|
|
25676
25698
|
var variantStyles4 = {
|
|
25677
25699
|
info: {
|
|
25678
|
-
bg: "var(--ggui-color-
|
|
25700
|
+
bg: "var(--ggui-color-elevated, #ecfeff)",
|
|
25679
25701
|
border: "var(--ggui-color-info-200, #a5f3fc)",
|
|
25680
25702
|
text: "var(--ggui-color-info-800, #155e75)",
|
|
25681
25703
|
icon: "var(--ggui-color-info-500, #06b6d4)"
|
|
25682
25704
|
},
|
|
25683
25705
|
success: {
|
|
25684
|
-
bg: "var(--ggui-color-
|
|
25706
|
+
bg: "var(--ggui-color-elevated, #f0fdf4)",
|
|
25685
25707
|
border: "var(--ggui-color-success-200, #bbf7d0)",
|
|
25686
25708
|
text: "var(--ggui-color-success-800, #166534)",
|
|
25687
25709
|
icon: "var(--ggui-color-success-500, #22c55e)"
|
|
25688
25710
|
},
|
|
25689
25711
|
warning: {
|
|
25690
|
-
bg: "var(--ggui-color-
|
|
25712
|
+
bg: "var(--ggui-color-elevated, #fffbeb)",
|
|
25691
25713
|
border: "var(--ggui-color-warning-200, #fde68a)",
|
|
25692
25714
|
text: "var(--ggui-color-warning-800, #92400e)",
|
|
25693
25715
|
icon: "var(--ggui-color-warning-500, #f59e0b)"
|
|
25694
25716
|
},
|
|
25695
25717
|
error: {
|
|
25696
|
-
bg: "var(--ggui-color-
|
|
25718
|
+
bg: "var(--ggui-color-elevated, #fef2f2)",
|
|
25697
25719
|
border: "var(--ggui-color-error-200, #fecaca)",
|
|
25698
25720
|
text: "var(--ggui-color-error-800, #991b1b)",
|
|
25699
25721
|
icon: "var(--ggui-color-error-500, #ef4444)"
|
|
@@ -25834,7 +25856,7 @@
|
|
|
25834
25856
|
opacity: isDisabled ? 0.5 : 1,
|
|
25835
25857
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
25836
25858
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
25837
|
-
color: "var(--ggui-color-
|
|
25859
|
+
color: "var(--ggui-color-onContainer, #18181b)",
|
|
25838
25860
|
textAlign: "left",
|
|
25839
25861
|
transition: `background-color ${duration.fast} ${easing.easeInOut}`
|
|
25840
25862
|
}, children: [(0, import_jsx_runtime26.jsx)("span", { children: item.title }), chevron(isExpanded)] }) }), (0, import_jsx_runtime26.jsx)("div", { id: `${uniqueId}-panel-${item.key}`, role: "region", "aria-labelledby": `${uniqueId}-header-${item.key}`, hidden: !isExpanded, style: {
|
|
@@ -25842,7 +25864,7 @@
|
|
|
25842
25864
|
}, children: isExpanded && (0, import_jsx_runtime26.jsx)("div", { style: {
|
|
25843
25865
|
padding: "0 var(--ggui-spacing-4, 16px) var(--ggui-spacing-4, 16px)",
|
|
25844
25866
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
25845
|
-
color: "var(--ggui-color-
|
|
25867
|
+
color: "var(--ggui-color-onSunken, #52525b)",
|
|
25846
25868
|
lineHeight: "var(--ggui-font-lineHeight-normal, 1.5)"
|
|
25847
25869
|
}, children: item.content }) })] }, item.key);
|
|
25848
25870
|
}) });
|
|
@@ -26108,9 +26130,9 @@
|
|
|
26108
26130
|
// ../design/dist/components/MenuItem.js
|
|
26109
26131
|
var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
|
|
26110
26132
|
function MenuItem({ label, icon, rightElement, onClick, disabled, active, danger, style, className }) {
|
|
26111
|
-
const baseColor = danger ?
|
|
26112
|
-
const hoverBg = danger ?
|
|
26113
|
-
const activeBg = danger ?
|
|
26133
|
+
const baseColor = danger ? "var(--ggui-color-error-600, #dc2626)" : "var(--ggui-color-onElevated, #3f3f46)";
|
|
26134
|
+
const hoverBg = danger ? "var(--ggui-color-error-50, #fef2f2)" : "var(--ggui-color-sunken, #f4f4f5)";
|
|
26135
|
+
const activeBg = danger ? "var(--ggui-color-error-100, #fee2e2)" : "var(--ggui-color-primary-50, #f0f9ff)";
|
|
26114
26136
|
return (0, import_jsx_runtime29.jsxs)("button", { onClick: disabled ? void 0 : onClick, disabled, className, style: {
|
|
26115
26137
|
display: "flex",
|
|
26116
26138
|
alignItems: "center",
|
|
@@ -26257,7 +26279,8 @@
|
|
|
26257
26279
|
position: "absolute",
|
|
26258
26280
|
...getMenuPosition(),
|
|
26259
26281
|
minWidth: "160px",
|
|
26260
|
-
backgroundColor:
|
|
26282
|
+
backgroundColor: "var(--ggui-color-elevated, #ffffff)",
|
|
26283
|
+
color: "var(--ggui-color-onElevated, #18181b)",
|
|
26261
26284
|
border: `1px solid ${colors.gray[200]}`,
|
|
26262
26285
|
borderRadius: radius.lg,
|
|
26263
26286
|
boxShadow: shadow.lg,
|
|
@@ -26495,9 +26518,9 @@
|
|
|
26495
26518
|
color: "var(--ggui-color-onPrimary, #ffffff)"
|
|
26496
26519
|
},
|
|
26497
26520
|
upcoming: {
|
|
26498
|
-
backgroundColor: "var(--ggui-color-
|
|
26521
|
+
backgroundColor: "var(--ggui-color-sunken, #fafafa)",
|
|
26499
26522
|
border: "1px solid var(--ggui-color-outline, #d4d4d8)",
|
|
26500
|
-
color: "var(--ggui-color-
|
|
26523
|
+
color: "var(--ggui-color-onSunken, #52525b)"
|
|
26501
26524
|
}
|
|
26502
26525
|
};
|
|
26503
26526
|
function Marker({ index, state }) {
|
|
@@ -26905,15 +26928,15 @@
|
|
|
26905
26928
|
var CODE_INLINE = {
|
|
26906
26929
|
fontFamily: "var(--ggui-font-family-mono, ui-monospace, monospace)",
|
|
26907
26930
|
fontSize: "0.9em",
|
|
26908
|
-
background: "var(--ggui-color-
|
|
26909
|
-
borderRadius: "var(--ggui-radius-sm, 4px)",
|
|
26931
|
+
background: "var(--ggui-color-sunken, rgba(0,0,0,0.06))",
|
|
26932
|
+
borderRadius: "var(--ggui-shape-radius-sm, 4px)",
|
|
26910
26933
|
padding: "0.1em 0.35em"
|
|
26911
26934
|
};
|
|
26912
26935
|
var CODE_FENCE = {
|
|
26913
26936
|
fontFamily: "var(--ggui-font-family-mono, ui-monospace, monospace)",
|
|
26914
26937
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
26915
|
-
background: "var(--ggui-color-
|
|
26916
|
-
borderRadius: "var(--ggui-radius-md, 8px)",
|
|
26938
|
+
background: "var(--ggui-color-sunken, rgba(0,0,0,0.06))",
|
|
26939
|
+
borderRadius: "var(--ggui-shape-radius-md, 8px)",
|
|
26917
26940
|
padding: "var(--ggui-spacing-sm, 12px)",
|
|
26918
26941
|
overflowX: "auto",
|
|
26919
26942
|
whiteSpace: "pre",
|
|
@@ -26942,7 +26965,7 @@
|
|
|
26942
26965
|
var TABLE_HEADER_CELL = {
|
|
26943
26966
|
...TABLE_CELL,
|
|
26944
26967
|
fontWeight: "var(--ggui-font-weight-semibold, 600)",
|
|
26945
|
-
background: "var(--ggui-color-
|
|
26968
|
+
background: "var(--ggui-color-sunken, rgba(0,0,0,0.06))"
|
|
26946
26969
|
};
|
|
26947
26970
|
function renderRichTextInlines(inlines) {
|
|
26948
26971
|
return inlines.map((node, i) => {
|
|
@@ -27557,7 +27580,8 @@
|
|
|
27557
27580
|
width: sizeWidths[size],
|
|
27558
27581
|
maxWidth: isFullscreen ? "100%" : "calc(100vw - 48px)",
|
|
27559
27582
|
maxHeight: isFullscreen ? "100%" : "calc(100vh - 48px)",
|
|
27560
|
-
backgroundColor:
|
|
27583
|
+
backgroundColor: "var(--ggui-color-elevated, #ffffff)",
|
|
27584
|
+
color: "var(--ggui-color-onElevated, #18181b)",
|
|
27561
27585
|
borderRadius: isFullscreen ? 0 : radius.xl,
|
|
27562
27586
|
boxShadow: shadow["2xl"],
|
|
27563
27587
|
display: "flex",
|
|
@@ -28020,8 +28044,7 @@
|
|
|
28020
28044
|
StreamBus: () => StreamBus,
|
|
28021
28045
|
buildActionEnvelope: () => buildActionEnvelope,
|
|
28022
28046
|
buildWireConfig: () => buildWireConfig,
|
|
28023
|
-
|
|
28024
|
-
createConnectionStore: () => createConnectionStore,
|
|
28047
|
+
connectionSource: () => connectionSource,
|
|
28025
28048
|
useAction: () => useAction,
|
|
28026
28049
|
useApp: () => useApp,
|
|
28027
28050
|
useAuth: () => useAuth,
|
|
@@ -28174,10 +28197,46 @@
|
|
|
28174
28197
|
var import_react37 = __toESM(require_react(), 1);
|
|
28175
28198
|
|
|
28176
28199
|
// ../wire/dist/connection-store.js
|
|
28200
|
+
var ConnectionWriterConflictError = class extends Error {
|
|
28201
|
+
owner;
|
|
28202
|
+
attemptedBy;
|
|
28203
|
+
constructor(owner, attemptedBy) {
|
|
28204
|
+
super(owner === attemptedBy ? `connection writer: '${owner}' already holds the claim and '${attemptedBy}' is claiming it again \u2014 two copies of '${owner}' in one document (a duplicate bundle of the runtime)` : `connection writer: '${owner}' holds the claim; '${attemptedBy}' cannot take it \u2014 exactly one party writes the connection state`);
|
|
28205
|
+
this.name = "ConnectionWriterConflictError";
|
|
28206
|
+
this.owner = owner;
|
|
28207
|
+
this.attemptedBy = attemptedBy;
|
|
28208
|
+
}
|
|
28209
|
+
};
|
|
28210
|
+
var ConnectionWriterReleasedError = class extends Error {
|
|
28211
|
+
claimant;
|
|
28212
|
+
constructor(claimant) {
|
|
28213
|
+
super(`connection writer: '${claimant}' released its claim and cannot set the connection state`);
|
|
28214
|
+
this.name = "ConnectionWriterReleasedError";
|
|
28215
|
+
this.claimant = claimant;
|
|
28216
|
+
}
|
|
28217
|
+
};
|
|
28218
|
+
var DOCUMENT_STORE_KEY = /* @__PURE__ */ Symbol.for("ai.ggui.wire/connection-store");
|
|
28219
|
+
var ConnectionStoreSlotError = class extends Error {
|
|
28220
|
+
key;
|
|
28221
|
+
constructor(key) {
|
|
28222
|
+
super(`connection store: the document slot ${String(key)} holds a value that is not a connection store \u2014 another copy of @ggui-ai/wire with an incompatible shape, or a foreign object. Refusing to adopt or overwrite it.`);
|
|
28223
|
+
this.key = key;
|
|
28224
|
+
this.name = "ConnectionStoreSlotError";
|
|
28225
|
+
}
|
|
28226
|
+
};
|
|
28227
|
+
function isConnectionStore(value) {
|
|
28228
|
+
if (typeof value !== "object" || value === null)
|
|
28229
|
+
return false;
|
|
28230
|
+
const source = Reflect.get(value, "source");
|
|
28231
|
+
if (typeof source !== "object" || source === null)
|
|
28232
|
+
return false;
|
|
28233
|
+
return typeof Reflect.get(value, "claim") === "function" && typeof Reflect.get(source, "subscribe") === "function" && typeof Reflect.get(source, "getSnapshot") === "function";
|
|
28234
|
+
}
|
|
28177
28235
|
function createConnectionStore(initial = true) {
|
|
28178
28236
|
let value = initial;
|
|
28237
|
+
let owner;
|
|
28179
28238
|
const listeners = /* @__PURE__ */ new Set();
|
|
28180
|
-
|
|
28239
|
+
const source = {
|
|
28181
28240
|
subscribe(listener) {
|
|
28182
28241
|
listeners.add(listener);
|
|
28183
28242
|
return () => {
|
|
@@ -28186,22 +28245,53 @@
|
|
|
28186
28245
|
},
|
|
28187
28246
|
getSnapshot() {
|
|
28188
28247
|
return value;
|
|
28189
|
-
},
|
|
28190
|
-
set(connected) {
|
|
28191
|
-
if (connected === value)
|
|
28192
|
-
return;
|
|
28193
|
-
value = connected;
|
|
28194
|
-
for (const l of listeners)
|
|
28195
|
-
l();
|
|
28196
28248
|
}
|
|
28197
28249
|
};
|
|
28250
|
+
return {
|
|
28251
|
+
source,
|
|
28252
|
+
claim(claimant) {
|
|
28253
|
+
if (owner !== void 0)
|
|
28254
|
+
throw new ConnectionWriterConflictError(owner, claimant);
|
|
28255
|
+
owner = claimant;
|
|
28256
|
+
let released = false;
|
|
28257
|
+
return {
|
|
28258
|
+
set(connected) {
|
|
28259
|
+
if (released)
|
|
28260
|
+
throw new ConnectionWriterReleasedError(claimant);
|
|
28261
|
+
if (connected === value)
|
|
28262
|
+
return;
|
|
28263
|
+
value = connected;
|
|
28264
|
+
for (const l of listeners)
|
|
28265
|
+
l();
|
|
28266
|
+
},
|
|
28267
|
+
release() {
|
|
28268
|
+
if (released)
|
|
28269
|
+
return;
|
|
28270
|
+
released = true;
|
|
28271
|
+
owner = void 0;
|
|
28272
|
+
}
|
|
28273
|
+
};
|
|
28274
|
+
}
|
|
28275
|
+
};
|
|
28276
|
+
}
|
|
28277
|
+
function documentConnectionStore() {
|
|
28278
|
+
const existing = Reflect.get(globalThis, DOCUMENT_STORE_KEY);
|
|
28279
|
+
if (existing !== void 0) {
|
|
28280
|
+
if (isConnectionStore(existing))
|
|
28281
|
+
return existing;
|
|
28282
|
+
throw new ConnectionStoreSlotError(DOCUMENT_STORE_KEY);
|
|
28283
|
+
}
|
|
28284
|
+
const created = createConnectionStore(true);
|
|
28285
|
+
Reflect.set(globalThis, DOCUMENT_STORE_KEY, created);
|
|
28286
|
+
return created;
|
|
28198
28287
|
}
|
|
28199
|
-
var
|
|
28288
|
+
var documentStore = documentConnectionStore();
|
|
28289
|
+
var connectionSource = documentStore.source;
|
|
28200
28290
|
|
|
28201
28291
|
// ../wire/dist/useRender.js
|
|
28202
28292
|
function useRender() {
|
|
28203
28293
|
const { render } = useWireContext();
|
|
28204
|
-
const isConnected = (0, import_react37.useSyncExternalStore)(
|
|
28294
|
+
const isConnected = (0, import_react37.useSyncExternalStore)(connectionSource.subscribe, connectionSource.getSnapshot, connectionSource.getSnapshot);
|
|
28205
28295
|
return { sessionId: render.sessionId, isConnected };
|
|
28206
28296
|
}
|
|
28207
28297
|
|
|
@@ -28659,7 +28749,7 @@
|
|
|
28659
28749
|
}
|
|
28660
28750
|
|
|
28661
28751
|
// ../protocol/dist/version.js
|
|
28662
|
-
var PROTOCOL_VERSION = "draft-2026-09-
|
|
28752
|
+
var PROTOCOL_VERSION = "draft-2026-09-10";
|
|
28663
28753
|
var PROTOCOL_SCHEMA_VERSION = PROTOCOL_VERSION;
|
|
28664
28754
|
var CLIENT_SUPPORTED_VERSIONS = Object.freeze([
|
|
28665
28755
|
PROTOCOL_SCHEMA_VERSION
|
|
@@ -28855,9 +28945,11 @@
|
|
|
28855
28945
|
|
|
28856
28946
|
// ../design/dist/themes/consumed-tokens.manifest.json
|
|
28857
28947
|
var consumed_tokens_manifest_default = {
|
|
28858
|
-
version:
|
|
28948
|
+
version: 2,
|
|
28859
28949
|
tokens: [
|
|
28860
28950
|
"--ggui-color-container",
|
|
28951
|
+
"--ggui-color-elevated",
|
|
28952
|
+
"--ggui-color-error",
|
|
28861
28953
|
"--ggui-color-error-100",
|
|
28862
28954
|
"--ggui-color-error-200",
|
|
28863
28955
|
"--ggui-color-error-50",
|
|
@@ -28865,12 +28957,16 @@
|
|
|
28865
28957
|
"--ggui-color-error-600",
|
|
28866
28958
|
"--ggui-color-error-700",
|
|
28867
28959
|
"--ggui-color-error-800",
|
|
28960
|
+
"--ggui-color-ground",
|
|
28961
|
+
"--ggui-color-ground-gradient",
|
|
28962
|
+
"--ggui-color-ground-subtle",
|
|
28868
28963
|
"--ggui-color-info-100",
|
|
28869
28964
|
"--ggui-color-info-200",
|
|
28870
28965
|
"--ggui-color-info-50",
|
|
28871
28966
|
"--ggui-color-info-500",
|
|
28872
28967
|
"--ggui-color-info-700",
|
|
28873
28968
|
"--ggui-color-info-800",
|
|
28969
|
+
"--ggui-color-link",
|
|
28874
28970
|
"--ggui-color-neutral-100",
|
|
28875
28971
|
"--ggui-color-neutral-200",
|
|
28876
28972
|
"--ggui-color-neutral-300",
|
|
@@ -28878,11 +28974,14 @@
|
|
|
28878
28974
|
"--ggui-color-neutral-50",
|
|
28879
28975
|
"--ggui-color-neutral-500",
|
|
28880
28976
|
"--ggui-color-neutral-600",
|
|
28977
|
+
"--ggui-color-neutral-900",
|
|
28881
28978
|
"--ggui-color-onContainer",
|
|
28979
|
+
"--ggui-color-onElevated",
|
|
28882
28980
|
"--ggui-color-onError",
|
|
28981
|
+
"--ggui-color-onGround",
|
|
28883
28982
|
"--ggui-color-onPrimary",
|
|
28884
|
-
"--ggui-color-
|
|
28885
|
-
"--ggui-color-
|
|
28983
|
+
"--ggui-color-onSunken",
|
|
28984
|
+
"--ggui-color-onTertiaryContainer",
|
|
28886
28985
|
"--ggui-color-outline",
|
|
28887
28986
|
"--ggui-color-outlineVariant",
|
|
28888
28987
|
"--ggui-color-primary",
|
|
@@ -28902,11 +29001,8 @@
|
|
|
28902
29001
|
"--ggui-color-success-500",
|
|
28903
29002
|
"--ggui-color-success-700",
|
|
28904
29003
|
"--ggui-color-success-800",
|
|
28905
|
-
"--ggui-color-
|
|
28906
|
-
"--ggui-color-
|
|
28907
|
-
"--ggui-color-surface-subtle",
|
|
28908
|
-
"--ggui-color-surface-sunken",
|
|
28909
|
-
"--ggui-color-surfaceVariant",
|
|
29004
|
+
"--ggui-color-sunken",
|
|
29005
|
+
"--ggui-color-tertiaryContainer",
|
|
28910
29006
|
"--ggui-color-warning-100",
|
|
28911
29007
|
"--ggui-color-warning-200",
|
|
28912
29008
|
"--ggui-color-warning-50",
|
|
@@ -28914,6 +29010,7 @@
|
|
|
28914
29010
|
"--ggui-color-warning-700",
|
|
28915
29011
|
"--ggui-color-warning-800",
|
|
28916
29012
|
"--ggui-flash-color",
|
|
29013
|
+
"--ggui-font-family-heading",
|
|
28917
29014
|
"--ggui-font-family-mono",
|
|
28918
29015
|
"--ggui-font-family-sans",
|
|
28919
29016
|
"--ggui-font-lineHeight-normal",
|
|
@@ -28926,11 +29023,11 @@
|
|
|
28926
29023
|
"--ggui-font-size-xl",
|
|
28927
29024
|
"--ggui-font-size-xs",
|
|
28928
29025
|
"--ggui-font-weight-bold",
|
|
29026
|
+
"--ggui-font-weight-heading",
|
|
28929
29027
|
"--ggui-font-weight-medium",
|
|
28930
29028
|
"--ggui-font-weight-normal",
|
|
28931
29029
|
"--ggui-font-weight-semibold",
|
|
28932
|
-
"--ggui-
|
|
28933
|
-
"--ggui-radius-sm",
|
|
29030
|
+
"--ggui-letter-spacing-heading",
|
|
28934
29031
|
"--ggui-shape-radius-full",
|
|
28935
29032
|
"--ggui-shape-radius-lg",
|
|
28936
29033
|
"--ggui-shape-radius-md",
|
|
@@ -29119,28 +29216,11 @@
|
|
|
29119
29216
|
$type: "fontFamily"
|
|
29120
29217
|
}
|
|
29121
29218
|
},
|
|
29122
|
-
size: {
|
|
29123
|
-
sm: { $value: "0.8125rem", $type: "dimension" },
|
|
29124
|
-
// 13px
|
|
29125
|
-
base: { $value: "0.875rem", $type: "dimension" },
|
|
29126
|
-
// 14px — brand-kit body
|
|
29127
|
-
lg: { $value: "1rem", $type: "dimension" },
|
|
29128
|
-
// 16px
|
|
29129
|
-
xl: { $value: "1.125rem", $type: "dimension" },
|
|
29130
|
-
// 18px
|
|
29131
|
-
"2xl": { $value: "1.375rem", $type: "dimension" }
|
|
29132
|
-
// 22px — brand-kit hero tag
|
|
29133
|
-
},
|
|
29134
29219
|
weight: {
|
|
29135
29220
|
normal: { $value: "400", $type: "fontWeight" },
|
|
29136
29221
|
medium: { $value: "500", $type: "fontWeight" },
|
|
29137
29222
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
29138
29223
|
bold: { $value: "700", $type: "fontWeight" }
|
|
29139
|
-
},
|
|
29140
|
-
lineHeight: {
|
|
29141
|
-
tight: { $value: "1.2", $type: "number" },
|
|
29142
|
-
normal: { $value: "1.5", $type: "number" },
|
|
29143
|
-
relaxed: { $value: "1.6", $type: "number" }
|
|
29144
29224
|
}
|
|
29145
29225
|
},
|
|
29146
29226
|
spacing: {
|
|
@@ -29201,26 +29281,6 @@
|
|
|
29201
29281
|
}
|
|
29202
29282
|
},
|
|
29203
29283
|
motion: {
|
|
29204
|
-
duration: {
|
|
29205
|
-
fast: { $value: "120ms", $type: "duration" },
|
|
29206
|
-
normal: { $value: "200ms", $type: "duration" },
|
|
29207
|
-
slow: { $value: "400ms", $type: "duration" },
|
|
29208
|
-
ambient: { $value: "2000ms", $type: "duration" }
|
|
29209
|
-
},
|
|
29210
|
-
easing: {
|
|
29211
|
-
default: {
|
|
29212
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
29213
|
-
$type: "cubicBezier"
|
|
29214
|
-
},
|
|
29215
|
-
bounce: {
|
|
29216
|
-
$value: "cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
29217
|
-
$type: "cubicBezier"
|
|
29218
|
-
},
|
|
29219
|
-
spring: {
|
|
29220
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
29221
|
-
$type: "cubicBezier"
|
|
29222
|
-
}
|
|
29223
|
-
},
|
|
29224
29284
|
transition: standardTransitions,
|
|
29225
29285
|
keyframes: {
|
|
29226
29286
|
"accent-pulse": {
|
|
@@ -29243,7 +29303,6 @@
|
|
|
29243
29303
|
$description: "The default ggui theme \u2014 monochrome paper + ink, architectural, no decorative flourish.",
|
|
29244
29304
|
$metadata: {
|
|
29245
29305
|
font: "Inter",
|
|
29246
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Geist+Mono:wght@400;500;700&display=swap",
|
|
29247
29306
|
philosophy: "The interface is the artifact, not the chrome around it."
|
|
29248
29307
|
},
|
|
29249
29308
|
color: {
|
|
@@ -29336,15 +29395,15 @@
|
|
|
29336
29395
|
"800": { $value: "#181818", $type: "color" }
|
|
29337
29396
|
},
|
|
29338
29397
|
// Semantic surface roles
|
|
29339
|
-
|
|
29398
|
+
ground: { $value: "#f4f3ed", $type: "color" },
|
|
29340
29399
|
// paper
|
|
29341
|
-
|
|
29400
|
+
onGround: { $value: "#292929", $type: "color" },
|
|
29342
29401
|
// ink
|
|
29343
|
-
|
|
29402
|
+
sunken: { $value: "#ebe9e1", $type: "color" },
|
|
29344
29403
|
// paper-2
|
|
29345
|
-
|
|
29404
|
+
onSunken: { $value: "#5a5a5a", $type: "color" },
|
|
29346
29405
|
// ink-3
|
|
29347
|
-
container: { $value: "#
|
|
29406
|
+
container: { $value: "#f4f3ed", $type: "color" },
|
|
29348
29407
|
// paper-2
|
|
29349
29408
|
onContainer: { $value: "#292929", $type: "color" },
|
|
29350
29409
|
// ink
|
|
@@ -29399,7 +29458,6 @@
|
|
|
29399
29458
|
$description: "The default ggui theme (dark) \u2014 ink canvas, paper text, architectural and flat.",
|
|
29400
29459
|
$metadata: {
|
|
29401
29460
|
font: "Inter",
|
|
29402
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Geist+Mono:wght@400;500;700&display=swap",
|
|
29403
29461
|
philosophy: "The interface is the artifact, not the chrome around it."
|
|
29404
29462
|
},
|
|
29405
29463
|
color: {
|
|
@@ -29489,15 +29547,15 @@
|
|
|
29489
29547
|
"700": { $value: "#e8e8e8", $type: "color" },
|
|
29490
29548
|
"800": { $value: "#f0f0f0", $type: "color" }
|
|
29491
29549
|
},
|
|
29492
|
-
|
|
29550
|
+
ground: { $value: "#1f1f1f", $type: "color" },
|
|
29493
29551
|
// surface above ink base
|
|
29494
|
-
|
|
29552
|
+
onGround: { $value: "#f4f3ed", $type: "color" },
|
|
29495
29553
|
// paper
|
|
29496
|
-
|
|
29554
|
+
sunken: { $value: "#292929", $type: "color" },
|
|
29497
29555
|
// ink
|
|
29498
|
-
|
|
29556
|
+
onSunken: { $value: "#d9d9d9", $type: "color" },
|
|
29499
29557
|
// chrome
|
|
29500
|
-
container: { $value: "#
|
|
29558
|
+
container: { $value: "#1f1f1f", $type: "color" },
|
|
29501
29559
|
// ink
|
|
29502
29560
|
onContainer: { $value: "#f4f3ed", $type: "color" },
|
|
29503
29561
|
// paper
|
|
@@ -29558,23 +29616,11 @@
|
|
|
29558
29616
|
$type: "fontFamily"
|
|
29559
29617
|
}
|
|
29560
29618
|
},
|
|
29561
|
-
size: {
|
|
29562
|
-
sm: { $value: "0.8rem", $type: "dimension" },
|
|
29563
|
-
base: { $value: "0.95rem", $type: "dimension" },
|
|
29564
|
-
lg: { $value: "1.1rem", $type: "dimension" },
|
|
29565
|
-
xl: { $value: "1.3rem", $type: "dimension" },
|
|
29566
|
-
"2xl": { $value: "1.6rem", $type: "dimension" }
|
|
29567
|
-
},
|
|
29568
29619
|
weight: {
|
|
29569
29620
|
normal: { $value: "400", $type: "fontWeight" },
|
|
29570
29621
|
medium: { $value: "500", $type: "fontWeight" },
|
|
29571
29622
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
29572
29623
|
bold: { $value: "700", $type: "fontWeight" }
|
|
29573
|
-
},
|
|
29574
|
-
lineHeight: {
|
|
29575
|
-
tight: { $value: "1.2", $type: "number" },
|
|
29576
|
-
normal: { $value: "1.5", $type: "number" },
|
|
29577
|
-
relaxed: { $value: "1.7", $type: "number" }
|
|
29578
29624
|
}
|
|
29579
29625
|
},
|
|
29580
29626
|
spacing: {
|
|
@@ -29607,26 +29653,6 @@
|
|
|
29607
29653
|
}
|
|
29608
29654
|
},
|
|
29609
29655
|
motion: {
|
|
29610
|
-
duration: {
|
|
29611
|
-
fast: { $value: "100ms", $type: "duration" },
|
|
29612
|
-
normal: { $value: "200ms", $type: "duration" },
|
|
29613
|
-
slow: { $value: "600ms", $type: "duration" },
|
|
29614
|
-
ambient: { $value: "2000ms", $type: "duration" }
|
|
29615
|
-
},
|
|
29616
|
-
easing: {
|
|
29617
|
-
default: {
|
|
29618
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
29619
|
-
$type: "cubicBezier"
|
|
29620
|
-
},
|
|
29621
|
-
bounce: {
|
|
29622
|
-
$value: "cubic-bezier(0.68, -0.55, 0.27, 1.55)",
|
|
29623
|
-
$type: "cubicBezier"
|
|
29624
|
-
},
|
|
29625
|
-
spring: {
|
|
29626
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
29627
|
-
$type: "cubicBezier"
|
|
29628
|
-
}
|
|
29629
|
-
},
|
|
29630
29656
|
keyframes: {
|
|
29631
29657
|
"glitch-flicker": {
|
|
29632
29658
|
$value: "0%{opacity:1;transform:none}7%{opacity:0.8;transform:translateX(-2px) skewX(-1deg)}10%{opacity:1;transform:none}47%{opacity:1;transform:none}50%{opacity:0.6;transform:translateX(3px) skewX(2deg)}53%{opacity:1;transform:none}100%{opacity:1;transform:none}",
|
|
@@ -29677,7 +29703,6 @@
|
|
|
29677
29703
|
$description: "Neon-lit dystopian tech \u2014 cyan neon on dark chrome with glitch animations.",
|
|
29678
29704
|
$metadata: {
|
|
29679
29705
|
font: "Orbitron",
|
|
29680
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&display=swap",
|
|
29681
29706
|
philosophy: "Chromatic noise, electric tension, digital rebellion."
|
|
29682
29707
|
},
|
|
29683
29708
|
color: {
|
|
@@ -29746,12 +29771,12 @@
|
|
|
29746
29771
|
"800": { $value: "#005266", $type: "color" }
|
|
29747
29772
|
},
|
|
29748
29773
|
// Semantic roles (dark theme — inverted neutral scale)
|
|
29749
|
-
|
|
29750
|
-
|
|
29751
|
-
|
|
29752
|
-
|
|
29753
|
-
container: { $value: "#
|
|
29754
|
-
onContainer: { $value: "#
|
|
29774
|
+
ground: { $value: "#0a0a0f", $type: "color" },
|
|
29775
|
+
onGround: { $value: "#e8e8f0", $type: "color" },
|
|
29776
|
+
sunken: { $value: "#111118", $type: "color" },
|
|
29777
|
+
onSunken: { $value: "#8888a0", $type: "color" },
|
|
29778
|
+
container: { $value: "#0a0a0f", $type: "color" },
|
|
29779
|
+
onContainer: { $value: "#e8e8f0", $type: "color" },
|
|
29755
29780
|
outline: { $value: "#3a3a48", $type: "color" },
|
|
29756
29781
|
outlineVariant: { $value: "#25252f", $type: "color" },
|
|
29757
29782
|
// Primary role pair — onPrimary is the deep night chrome, container
|
|
@@ -29798,7 +29823,6 @@
|
|
|
29798
29823
|
$description: "Neon-lit dystopian tech (dark) \u2014 brighter cyan on pure-black chrome, cranked neon contrast.",
|
|
29799
29824
|
$metadata: {
|
|
29800
29825
|
font: "Orbitron",
|
|
29801
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&display=swap",
|
|
29802
29826
|
philosophy: "Chromatic noise, electric tension, digital rebellion."
|
|
29803
29827
|
},
|
|
29804
29828
|
color: {
|
|
@@ -29873,13 +29897,13 @@
|
|
|
29873
29897
|
"700": { $value: "#85e6ff", $type: "color" },
|
|
29874
29898
|
"800": { $value: "#adeeff", $type: "color" }
|
|
29875
29899
|
},
|
|
29876
|
-
|
|
29877
|
-
|
|
29878
|
-
|
|
29879
|
-
|
|
29880
|
-
container: { $value: "#
|
|
29900
|
+
ground: { $value: "#000005", $type: "color" },
|
|
29901
|
+
onGround: { $value: "#e8e8f0", $type: "color" },
|
|
29902
|
+
sunken: { $value: "#0a0a0f", $type: "color" },
|
|
29903
|
+
onSunken: { $value: "#aaaabe", $type: "color" },
|
|
29904
|
+
container: { $value: "#000005", $type: "color" },
|
|
29881
29905
|
// deeper teal
|
|
29882
|
-
onContainer: { $value: "#
|
|
29906
|
+
onContainer: { $value: "#e8e8f0", $type: "color" },
|
|
29883
29907
|
outline: { $value: "#1a1a24", $type: "color" },
|
|
29884
29908
|
outlineVariant: { $value: "#111118", $type: "color" },
|
|
29885
29909
|
// Primary role pair — dark: onPrimary is pure-black-ish, container = deeper teal.
|
|
@@ -29931,23 +29955,11 @@
|
|
|
29931
29955
|
$type: "fontFamily"
|
|
29932
29956
|
}
|
|
29933
29957
|
},
|
|
29934
|
-
size: {
|
|
29935
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
29936
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
29937
|
-
lg: { $value: "1.125rem", $type: "dimension" },
|
|
29938
|
-
xl: { $value: "1.3rem", $type: "dimension" },
|
|
29939
|
-
"2xl": { $value: "1.6rem", $type: "dimension" }
|
|
29940
|
-
},
|
|
29941
29958
|
weight: {
|
|
29942
29959
|
normal: { $value: "400", $type: "fontWeight" },
|
|
29943
29960
|
medium: { $value: "500", $type: "fontWeight" },
|
|
29944
29961
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
29945
29962
|
bold: { $value: "700", $type: "fontWeight" }
|
|
29946
|
-
},
|
|
29947
|
-
lineHeight: {
|
|
29948
|
-
tight: { $value: "1.3", $type: "number" },
|
|
29949
|
-
normal: { $value: "1.6", $type: "number" },
|
|
29950
|
-
relaxed: { $value: "1.9", $type: "number" }
|
|
29951
29963
|
}
|
|
29952
29964
|
},
|
|
29953
29965
|
spacing: {
|
|
@@ -29989,26 +30001,6 @@
|
|
|
29989
30001
|
}
|
|
29990
30002
|
},
|
|
29991
30003
|
motion: {
|
|
29992
|
-
duration: {
|
|
29993
|
-
fast: { $value: "200ms", $type: "duration" },
|
|
29994
|
-
normal: { $value: "500ms", $type: "duration" },
|
|
29995
|
-
slow: { $value: "1500ms", $type: "duration" },
|
|
29996
|
-
ambient: { $value: "6000ms", $type: "duration" }
|
|
29997
|
-
},
|
|
29998
|
-
easing: {
|
|
29999
|
-
default: {
|
|
30000
|
-
$value: "cubic-bezier(0.33, 0, 0.67, 1)",
|
|
30001
|
-
$type: "cubicBezier"
|
|
30002
|
-
},
|
|
30003
|
-
bounce: {
|
|
30004
|
-
$value: "cubic-bezier(0.34, 1.2, 0.64, 1)",
|
|
30005
|
-
$type: "cubicBezier"
|
|
30006
|
-
},
|
|
30007
|
-
spring: {
|
|
30008
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
30009
|
-
$type: "cubicBezier"
|
|
30010
|
-
}
|
|
30011
|
-
},
|
|
30012
30004
|
keyframes: {
|
|
30013
30005
|
"slow-breathe": {
|
|
30014
30006
|
$value: "0%{opacity:0.85}50%{opacity:1}100%{opacity:0.85}",
|
|
@@ -30038,7 +30030,6 @@
|
|
|
30038
30030
|
$description: "Minimalist Japanese aesthetic \u2014 warm stone tones, deliberate space, and unhurried motion.",
|
|
30039
30031
|
$metadata: {
|
|
30040
30032
|
font: "Noto Serif JP",
|
|
30041
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&display=swap",
|
|
30042
30033
|
philosophy: "Beauty in imperfection. Stillness as presence."
|
|
30043
30034
|
},
|
|
30044
30035
|
color: {
|
|
@@ -30106,12 +30097,12 @@
|
|
|
30106
30097
|
"800": { $type: "color", $value: "#2c3d46" }
|
|
30107
30098
|
},
|
|
30108
30099
|
// Semantic roles
|
|
30109
|
-
|
|
30110
|
-
|
|
30111
|
-
|
|
30112
|
-
|
|
30113
|
-
container: { $value: "#
|
|
30114
|
-
onContainer: { $value: "#
|
|
30100
|
+
ground: { $value: "#faf9f7", $type: "color" },
|
|
30101
|
+
onGround: { $value: "#2a2724", $type: "color" },
|
|
30102
|
+
sunken: { $value: "#f3f1ed", $type: "color" },
|
|
30103
|
+
onSunken: { $value: "#6b635b", $type: "color" },
|
|
30104
|
+
container: { $value: "#faf9f7", $type: "color" },
|
|
30105
|
+
onContainer: { $value: "#2a2724", $type: "color" },
|
|
30115
30106
|
outline: { $value: "#d5d0c8", $type: "color" },
|
|
30116
30107
|
outlineVariant: { $value: "#e7e4de", $type: "color" },
|
|
30117
30108
|
// Primary role pair — onPrimary is stone ivory on moss.
|
|
@@ -30155,7 +30146,6 @@
|
|
|
30155
30146
|
$description: "Minimalist Japanese aesthetic (dark) \u2014 dusk stone surfaces with restrained moss accents and unhurried motion.",
|
|
30156
30147
|
$metadata: {
|
|
30157
30148
|
font: "Noto Serif JP",
|
|
30158
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&display=swap",
|
|
30159
30149
|
philosophy: "Beauty in imperfection. Stillness as presence."
|
|
30160
30150
|
},
|
|
30161
30151
|
color: {
|
|
@@ -30224,14 +30214,14 @@
|
|
|
30224
30214
|
"700": { $type: "color", $value: "#546771" },
|
|
30225
30215
|
"800": { $type: "color", $value: "#38454d" }
|
|
30226
30216
|
},
|
|
30227
|
-
|
|
30228
|
-
|
|
30217
|
+
ground: { $value: "#2a2724", $type: "color" },
|
|
30218
|
+
onGround: { $value: "#f3f1ed", $type: "color" },
|
|
30229
30219
|
// muted off-cream, not pure white
|
|
30230
|
-
|
|
30231
|
-
|
|
30232
|
-
container: { $value: "#
|
|
30220
|
+
sunken: { $value: "#3e3a36", $type: "color" },
|
|
30221
|
+
onSunken: { $value: "#b8b0a4", $type: "color" },
|
|
30222
|
+
container: { $value: "#2a2724", $type: "color" },
|
|
30233
30223
|
// deep moss
|
|
30234
|
-
onContainer: { $value: "#
|
|
30224
|
+
onContainer: { $value: "#f3f1ed", $type: "color" },
|
|
30235
30225
|
// primary-100 in dark tree
|
|
30236
30226
|
outline: { $value: "#5e5650", $type: "color" },
|
|
30237
30227
|
outlineVariant: { $value: "#3e3a36", $type: "color" },
|
|
@@ -30283,23 +30273,11 @@
|
|
|
30283
30273
|
$type: "fontFamily"
|
|
30284
30274
|
}
|
|
30285
30275
|
},
|
|
30286
|
-
size: {
|
|
30287
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
30288
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
30289
|
-
lg: { $value: "1.125rem", $type: "dimension" },
|
|
30290
|
-
xl: { $value: "1.25rem", $type: "dimension" },
|
|
30291
|
-
"2xl": { $value: "1.5rem", $type: "dimension" }
|
|
30292
|
-
},
|
|
30293
30276
|
weight: {
|
|
30294
30277
|
normal: { $value: "400", $type: "fontWeight" },
|
|
30295
30278
|
medium: { $value: "500", $type: "fontWeight" },
|
|
30296
30279
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
30297
30280
|
bold: { $value: "700", $type: "fontWeight" }
|
|
30298
|
-
},
|
|
30299
|
-
lineHeight: {
|
|
30300
|
-
tight: { $value: "1.25", $type: "number" },
|
|
30301
|
-
normal: { $value: "1.5", $type: "number" },
|
|
30302
|
-
relaxed: { $value: "1.75", $type: "number" }
|
|
30303
30281
|
}
|
|
30304
30282
|
},
|
|
30305
30283
|
spacing: {
|
|
@@ -30332,26 +30310,6 @@
|
|
|
30332
30310
|
}
|
|
30333
30311
|
},
|
|
30334
30312
|
motion: {
|
|
30335
|
-
duration: {
|
|
30336
|
-
fast: { $value: "120ms", $type: "duration" },
|
|
30337
|
-
normal: { $value: "250ms", $type: "duration" },
|
|
30338
|
-
slow: { $value: "800ms", $type: "duration" },
|
|
30339
|
-
ambient: { $value: "2500ms", $type: "duration" }
|
|
30340
|
-
},
|
|
30341
|
-
easing: {
|
|
30342
|
-
default: {
|
|
30343
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
30344
|
-
$type: "cubicBezier"
|
|
30345
|
-
},
|
|
30346
|
-
bounce: {
|
|
30347
|
-
$value: "cubic-bezier(0.68, -0.55, 0.27, 1.55)",
|
|
30348
|
-
$type: "cubicBezier"
|
|
30349
|
-
},
|
|
30350
|
-
spring: {
|
|
30351
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
30352
|
-
$type: "cubicBezier"
|
|
30353
|
-
}
|
|
30354
|
-
},
|
|
30355
30313
|
transition: {
|
|
30356
30314
|
fast: {
|
|
30357
30315
|
$value: "120ms cubic-bezier(0.4, 0, 0.2, 1)",
|
|
@@ -30399,7 +30357,6 @@
|
|
|
30399
30357
|
$description: "Hot pink neon on dark \u2014 electric glow effects, neon flicker, and flowing magenta particles.",
|
|
30400
30358
|
$metadata: {
|
|
30401
30359
|
font: "Outfit",
|
|
30402
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap",
|
|
30403
30360
|
philosophy: "Midnight electricity. The city never sleeps."
|
|
30404
30361
|
},
|
|
30405
30362
|
color: {
|
|
@@ -30444,12 +30401,12 @@
|
|
|
30444
30401
|
"500": { $value: "#38bdf8", $type: "color" }
|
|
30445
30402
|
},
|
|
30446
30403
|
// Semantic roles (dark theme — inverted neutral scale)
|
|
30447
|
-
|
|
30448
|
-
|
|
30449
|
-
|
|
30450
|
-
|
|
30451
|
-
container: { $value: "#
|
|
30452
|
-
onContainer: { $value: "#
|
|
30404
|
+
ground: { $value: "#09090b", $type: "color" },
|
|
30405
|
+
onGround: { $value: "#ececf0", $type: "color" },
|
|
30406
|
+
sunken: { $value: "#111114", $type: "color" },
|
|
30407
|
+
onSunken: { $value: "#8a8a9a", $type: "color" },
|
|
30408
|
+
container: { $value: "#09090b", $type: "color" },
|
|
30409
|
+
onContainer: { $value: "#ececf0", $type: "color" },
|
|
30453
30410
|
outline: { $value: "#3b3b44", $type: "color" },
|
|
30454
30411
|
outlineVariant: { $value: "#232329", $type: "color" },
|
|
30455
30412
|
// Primary role pair — onPrimary is deep noir so hot pink CTAs pop.
|
|
@@ -30491,7 +30448,6 @@
|
|
|
30491
30448
|
$description: "Hot pink neon on pure black (dark) \u2014 sharper noir contrast, brighter electric glow, deeper magenta containers.",
|
|
30492
30449
|
$metadata: {
|
|
30493
30450
|
font: "Outfit",
|
|
30494
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap",
|
|
30495
30451
|
philosophy: "Midnight electricity. The city never sleeps."
|
|
30496
30452
|
},
|
|
30497
30453
|
color: {
|
|
@@ -30537,13 +30493,13 @@
|
|
|
30537
30493
|
...standardSemanticScales.dark.info,
|
|
30538
30494
|
"500": { $value: "#5acdff", $type: "color" }
|
|
30539
30495
|
},
|
|
30540
|
-
|
|
30541
|
-
|
|
30542
|
-
|
|
30543
|
-
|
|
30544
|
-
container: { $value: "#
|
|
30496
|
+
ground: { $value: "#000000", $type: "color" },
|
|
30497
|
+
onGround: { $value: "#ececf0", $type: "color" },
|
|
30498
|
+
sunken: { $value: "#09090b", $type: "color" },
|
|
30499
|
+
onSunken: { $value: "#b0b0be", $type: "color" },
|
|
30500
|
+
container: { $value: "#000000", $type: "color" },
|
|
30545
30501
|
// richer magenta
|
|
30546
|
-
onContainer: { $value: "#
|
|
30502
|
+
onContainer: { $value: "#ececf0", $type: "color" },
|
|
30547
30503
|
outline: { $value: "#19191e", $type: "color" },
|
|
30548
30504
|
outlineVariant: { $value: "#111114", $type: "color" },
|
|
30549
30505
|
// Primary role pair — dark: onPrimary is pure black, container = richer magenta.
|
|
@@ -30591,23 +30547,11 @@
|
|
|
30591
30547
|
$type: "fontFamily"
|
|
30592
30548
|
}
|
|
30593
30549
|
},
|
|
30594
|
-
size: {
|
|
30595
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
30596
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
30597
|
-
lg: { $value: "1.15rem", $type: "dimension" },
|
|
30598
|
-
xl: { $value: "1.3rem", $type: "dimension" },
|
|
30599
|
-
"2xl": { $value: "1.625rem", $type: "dimension" }
|
|
30600
|
-
},
|
|
30601
30550
|
weight: {
|
|
30602
30551
|
normal: { $value: "400", $type: "fontWeight" },
|
|
30603
30552
|
medium: { $value: "500", $type: "fontWeight" },
|
|
30604
30553
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
30605
30554
|
bold: { $value: "700", $type: "fontWeight" }
|
|
30606
|
-
},
|
|
30607
|
-
lineHeight: {
|
|
30608
|
-
tight: { $value: "1.3", $type: "number" },
|
|
30609
|
-
normal: { $value: "1.6", $type: "number" },
|
|
30610
|
-
relaxed: { $value: "1.85", $type: "number" }
|
|
30611
30555
|
}
|
|
30612
30556
|
},
|
|
30613
30557
|
spacing: {
|
|
@@ -30649,26 +30593,6 @@
|
|
|
30649
30593
|
}
|
|
30650
30594
|
},
|
|
30651
30595
|
motion: {
|
|
30652
|
-
duration: {
|
|
30653
|
-
fast: { $value: "200ms", $type: "duration" },
|
|
30654
|
-
normal: { $value: "400ms", $type: "duration" },
|
|
30655
|
-
slow: { $value: "1200ms", $type: "duration" },
|
|
30656
|
-
ambient: { $value: "5000ms", $type: "duration" }
|
|
30657
|
-
},
|
|
30658
|
-
easing: {
|
|
30659
|
-
default: {
|
|
30660
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
30661
|
-
$type: "cubicBezier"
|
|
30662
|
-
},
|
|
30663
|
-
bounce: {
|
|
30664
|
-
$value: "cubic-bezier(0.34, 1.3, 0.64, 1)",
|
|
30665
|
-
$type: "cubicBezier"
|
|
30666
|
-
},
|
|
30667
|
-
spring: {
|
|
30668
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
30669
|
-
$type: "cubicBezier"
|
|
30670
|
-
}
|
|
30671
|
-
},
|
|
30672
30596
|
keyframes: {
|
|
30673
30597
|
"leaf-float": {
|
|
30674
30598
|
$value: "0%{transform:translateY(0) rotate(0deg);opacity:0.7}25%{transform:translateY(-6px) rotate(3deg)}50%{transform:translateY(-2px) rotate(-2deg);opacity:1}75%{transform:translateY(-8px) rotate(2deg)}100%{transform:translateY(0) rotate(0deg);opacity:0.7}",
|
|
@@ -30691,7 +30615,6 @@
|
|
|
30691
30615
|
$description: "Organic greens on warm cream \u2014 leaf-float animations and vine-grow motion.",
|
|
30692
30616
|
$metadata: {
|
|
30693
30617
|
font: "Lora",
|
|
30694
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap",
|
|
30695
30618
|
philosophy: "Rooted in nature. Growing with intention."
|
|
30696
30619
|
},
|
|
30697
30620
|
color: {
|
|
@@ -30740,12 +30663,12 @@
|
|
|
30740
30663
|
},
|
|
30741
30664
|
info: standardSemanticScales.light.info,
|
|
30742
30665
|
// Semantic roles
|
|
30743
|
-
|
|
30744
|
-
|
|
30745
|
-
|
|
30746
|
-
|
|
30747
|
-
container: { $value: "#
|
|
30748
|
-
onContainer: { $value: "#
|
|
30666
|
+
ground: { $value: "#fefcf8", $type: "color" },
|
|
30667
|
+
onGround: { $value: "#352e20", $type: "color" },
|
|
30668
|
+
sunken: { $value: "#fdf8ef", $type: "color" },
|
|
30669
|
+
onSunken: { $value: "#746448", $type: "color" },
|
|
30670
|
+
container: { $value: "#fefcf8", $type: "color" },
|
|
30671
|
+
onContainer: { $value: "#352e20", $type: "color" },
|
|
30749
30672
|
outline: { $value: "#f0e4c9", $type: "color" },
|
|
30750
30673
|
outlineVariant: { $value: "#f8f0df", $type: "color" },
|
|
30751
30674
|
// Primary role pair — onPrimary is cream for the leaf-green brand hex.
|
|
@@ -30787,7 +30710,6 @@
|
|
|
30787
30710
|
$description: "Forest at night (dark) \u2014 deep soil surfaces with lifted leaf-green accents and gentle organic motion.",
|
|
30788
30711
|
$metadata: {
|
|
30789
30712
|
font: "Lora",
|
|
30790
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap",
|
|
30791
30713
|
philosophy: "Rooted in nature. Growing with intention."
|
|
30792
30714
|
},
|
|
30793
30715
|
color: {
|
|
@@ -30822,13 +30744,13 @@
|
|
|
30822
30744
|
warning: standardSemanticScales.dark.warning,
|
|
30823
30745
|
error: standardSemanticScales.dark.error,
|
|
30824
30746
|
info: standardSemanticScales.dark.info,
|
|
30825
|
-
|
|
30826
|
-
|
|
30827
|
-
|
|
30828
|
-
|
|
30829
|
-
container: { $value: "#
|
|
30747
|
+
ground: { $value: "#1f1c18", $type: "color" },
|
|
30748
|
+
onGround: { $value: "#fefcf8", $type: "color" },
|
|
30749
|
+
sunken: { $value: "#352e20", $type: "color" },
|
|
30750
|
+
onSunken: { $value: "#dccba5", $type: "color" },
|
|
30751
|
+
container: { $value: "#1f1c18", $type: "color" },
|
|
30830
30752
|
// deep forest
|
|
30831
|
-
onContainer: { $value: "#
|
|
30753
|
+
onContainer: { $value: "#fefcf8", $type: "color" },
|
|
30832
30754
|
outline: { $value: "#504530", $type: "color" },
|
|
30833
30755
|
outlineVariant: { $value: "#352e20", $type: "color" },
|
|
30834
30756
|
// Primary role pair — dark: lifted leaf-green, onPrimary = forest soil.
|
|
@@ -30893,24 +30815,11 @@
|
|
|
30893
30815
|
$type: "fontFamily"
|
|
30894
30816
|
}
|
|
30895
30817
|
},
|
|
30896
|
-
size: {
|
|
30897
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
30898
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
30899
|
-
lg: { $value: "1.125rem", $type: "dimension" },
|
|
30900
|
-
xl: { $value: "1.25rem", $type: "dimension" },
|
|
30901
|
-
"2xl": { $value: "1.5rem", $type: "dimension" }
|
|
30902
|
-
},
|
|
30903
30818
|
weight: {
|
|
30904
30819
|
normal: { $value: "400", $type: "fontWeight" },
|
|
30905
30820
|
medium: { $value: "500", $type: "fontWeight" },
|
|
30906
30821
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
30907
30822
|
bold: { $value: "700", $type: "fontWeight" }
|
|
30908
|
-
},
|
|
30909
|
-
lineHeight: {
|
|
30910
|
-
tight: { $value: "1.25", $type: "number" },
|
|
30911
|
-
normal: { $value: "1.55", $type: "number" },
|
|
30912
|
-
// claude.ai-ish — slightly looser than Indigo
|
|
30913
|
-
relaxed: { $value: "1.75", $type: "number" }
|
|
30914
30823
|
}
|
|
30915
30824
|
},
|
|
30916
30825
|
// Same dual-key spacing scale as Indigo so primitives that
|
|
@@ -30968,21 +30877,6 @@
|
|
|
30968
30877
|
motion: {
|
|
30969
30878
|
// Claudic is calmer than Indigo — no `ambient` 3s breathing
|
|
30970
30879
|
// duration is exposed. Animations stay snappy + functional only.
|
|
30971
|
-
duration: {
|
|
30972
|
-
fast: { $value: "120ms", $type: "duration" },
|
|
30973
|
-
normal: { $value: "240ms", $type: "duration" },
|
|
30974
|
-
slow: { $value: "480ms", $type: "duration" }
|
|
30975
|
-
},
|
|
30976
|
-
easing: {
|
|
30977
|
-
default: {
|
|
30978
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
30979
|
-
$type: "cubicBezier"
|
|
30980
|
-
},
|
|
30981
|
-
spring: {
|
|
30982
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
30983
|
-
$type: "cubicBezier"
|
|
30984
|
-
}
|
|
30985
|
-
},
|
|
30986
30880
|
keyframes: {
|
|
30987
30881
|
entrance: {
|
|
30988
30882
|
$value: "0%{opacity:0;transform:translateY(4px)}100%{opacity:1;transform:none}",
|
|
@@ -31083,15 +30977,15 @@
|
|
|
31083
30977
|
"800": { $value: "#363432", $type: "color" }
|
|
31084
30978
|
},
|
|
31085
30979
|
// Two-tier semantic roles
|
|
31086
|
-
|
|
30980
|
+
ground: { $value: "#faf9f5", $type: "color" },
|
|
31087
30981
|
// Ivory
|
|
31088
|
-
|
|
30982
|
+
onGround: { $value: "#141413", $type: "color" },
|
|
31089
30983
|
// Slate
|
|
31090
|
-
|
|
31091
|
-
|
|
31092
|
-
container: { $value: "#
|
|
30984
|
+
sunken: { $value: "#f5f4ee", $type: "color" },
|
|
30985
|
+
onSunken: { $value: "#56544f", $type: "color" },
|
|
30986
|
+
container: { $value: "#faf9f5", $type: "color" },
|
|
31093
30987
|
// primary-50
|
|
31094
|
-
onContainer: { $value: "#
|
|
30988
|
+
onContainer: { $value: "#141413", $type: "color" },
|
|
31095
30989
|
// primary-900
|
|
31096
30990
|
outline: { $value: "#dad8cc", $type: "color" },
|
|
31097
30991
|
outlineVariant: { $value: "#ebe9df", $type: "color" },
|
|
@@ -31223,14 +31117,14 @@
|
|
|
31223
31117
|
"700": { $value: "#d1cfca", $type: "color" },
|
|
31224
31118
|
"800": { $value: "#e6e4e0", $type: "color" }
|
|
31225
31119
|
},
|
|
31226
|
-
|
|
31120
|
+
ground: { $value: "#262624", $type: "color" },
|
|
31227
31121
|
// Charcoal
|
|
31228
|
-
|
|
31122
|
+
onGround: { $value: "#faf9f5", $type: "color" },
|
|
31229
31123
|
// Ivory
|
|
31230
|
-
|
|
31231
|
-
|
|
31232
|
-
container: { $value: "#
|
|
31233
|
-
onContainer: { $value: "#
|
|
31124
|
+
sunken: { $value: "#2d2c2a", $type: "color" },
|
|
31125
|
+
onSunken: { $value: "#a8a59f", $type: "color" },
|
|
31126
|
+
container: { $value: "#262624", $type: "color" },
|
|
31127
|
+
onContainer: { $value: "#faf9f5", $type: "color" },
|
|
31234
31128
|
outline: { $value: "#3d3b39", $type: "color" },
|
|
31235
31129
|
outlineVariant: { $value: "#2d2c2a", $type: "color" },
|
|
31236
31130
|
// Primary role pair — dark: onPrimary is charcoal so text reads on the
|
|
@@ -31293,31 +31187,12 @@
|
|
|
31293
31187
|
$type: "fontFamily"
|
|
31294
31188
|
}
|
|
31295
31189
|
},
|
|
31296
|
-
size: {
|
|
31297
|
-
sm: { $value: "0.8125rem", $type: "dimension" },
|
|
31298
|
-
// 13px
|
|
31299
|
-
base: { $value: "0.9375rem", $type: "dimension" },
|
|
31300
|
-
// 15px
|
|
31301
|
-
lg: { $value: "1.0625rem", $type: "dimension" },
|
|
31302
|
-
// 17px
|
|
31303
|
-
xl: { $value: "1.3125rem", $type: "dimension" },
|
|
31304
|
-
// 21px — bumped for display headings
|
|
31305
|
-
"2xl": { $value: "1.75rem", $type: "dimension" }
|
|
31306
|
-
// 28px — generous display
|
|
31307
|
-
},
|
|
31308
31190
|
weight: {
|
|
31309
31191
|
normal: { $value: "400", $type: "fontWeight" },
|
|
31310
31192
|
medium: { $value: "500", $type: "fontWeight" },
|
|
31311
31193
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
31312
31194
|
bold: { $value: "680", $type: "fontWeight" }
|
|
31313
31195
|
// variable-axis weight; reads bold without going harsh on Inter
|
|
31314
|
-
},
|
|
31315
|
-
lineHeight: {
|
|
31316
|
-
tight: { $value: "1.1", $type: "number" },
|
|
31317
|
-
// headings
|
|
31318
|
-
normal: { $value: "1.55", $type: "number" },
|
|
31319
|
-
// body — generous, editorial
|
|
31320
|
-
relaxed: { $value: "1.7", $type: "number" }
|
|
31321
31196
|
}
|
|
31322
31197
|
},
|
|
31323
31198
|
spacing: {
|
|
@@ -31374,24 +31249,6 @@
|
|
|
31374
31249
|
}
|
|
31375
31250
|
},
|
|
31376
31251
|
motion: {
|
|
31377
|
-
duration: {
|
|
31378
|
-
fast: { $value: "150ms", $type: "duration" },
|
|
31379
|
-
normal: { $value: "250ms", $type: "duration" },
|
|
31380
|
-
slow: { $value: "420ms", $type: "duration" },
|
|
31381
|
-
ambient: { $value: "8000ms", $type: "duration" }
|
|
31382
|
-
// background breathing
|
|
31383
|
-
},
|
|
31384
|
-
easing: {
|
|
31385
|
-
// Linear's signature easing — confident, slightly overshoots arrival.
|
|
31386
|
-
default: {
|
|
31387
|
-
$value: "cubic-bezier(0.32, 0.72, 0, 1)",
|
|
31388
|
-
$type: "cubicBezier"
|
|
31389
|
-
},
|
|
31390
|
-
spring: {
|
|
31391
|
-
$value: "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
31392
|
-
$type: "cubicBezier"
|
|
31393
|
-
}
|
|
31394
|
-
},
|
|
31395
31252
|
keyframes: {
|
|
31396
31253
|
entrance: {
|
|
31397
31254
|
$value: "0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:none}",
|
|
@@ -31490,15 +31347,15 @@
|
|
|
31490
31347
|
"700": { $value: "#155e75", $type: "color" },
|
|
31491
31348
|
"800": { $value: "#164e63", $type: "color" }
|
|
31492
31349
|
},
|
|
31493
|
-
|
|
31350
|
+
ground: { $value: "#fafaf7", $type: "color" },
|
|
31494
31351
|
// Paper
|
|
31495
|
-
|
|
31352
|
+
onGround: { $value: "#15131f", $type: "color" },
|
|
31496
31353
|
// Ink
|
|
31497
|
-
|
|
31498
|
-
|
|
31499
|
-
container: { $value: "#
|
|
31354
|
+
sunken: { $value: "#f4f4f0", $type: "color" },
|
|
31355
|
+
onSunken: { $value: "#4a4954", $type: "color" },
|
|
31356
|
+
container: { $value: "#fafaf7", $type: "color" },
|
|
31500
31357
|
// primary-50 — pale indigo whisper
|
|
31501
|
-
onContainer: { $value: "#
|
|
31358
|
+
onContainer: { $value: "#15131f", $type: "color" },
|
|
31502
31359
|
// primary-900
|
|
31503
31360
|
outline: { $value: "#d4d3cf", $type: "color" },
|
|
31504
31361
|
outlineVariant: { $value: "#e8e7e3", $type: "color" },
|
|
@@ -31632,13 +31489,13 @@
|
|
|
31632
31489
|
// indistinguishable from default. Variant is now #221e35 (visible
|
|
31633
31490
|
// 1-tier step) and outline #3e3c50 (matches neutral-400, gives
|
|
31634
31491
|
// borders a hairline visibility on dark).
|
|
31635
|
-
|
|
31636
|
-
|
|
31637
|
-
|
|
31638
|
-
|
|
31639
|
-
container: { $value: "#
|
|
31492
|
+
ground: { $value: "#15131f", $type: "color" },
|
|
31493
|
+
onGround: { $value: "#f5f4f9", $type: "color" },
|
|
31494
|
+
sunken: { $value: "#221e35", $type: "color" },
|
|
31495
|
+
onSunken: { $value: "#c8c6d2", $type: "color" },
|
|
31496
|
+
container: { $value: "#15131f", $type: "color" },
|
|
31640
31497
|
// primary-100 dark
|
|
31641
|
-
onContainer: { $value: "#
|
|
31498
|
+
onContainer: { $value: "#f5f4f9", $type: "color" },
|
|
31642
31499
|
outline: { $value: "#3e3c50", $type: "color" },
|
|
31643
31500
|
outlineVariant: { $value: "#2a2839", $type: "color" },
|
|
31644
31501
|
// Primary role pair — dark: onPrimary is midnight, container = deep indigo.
|
|
@@ -31695,23 +31552,11 @@
|
|
|
31695
31552
|
$type: "fontFamily"
|
|
31696
31553
|
}
|
|
31697
31554
|
},
|
|
31698
|
-
size: {
|
|
31699
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
31700
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
31701
|
-
lg: { $value: "1.125rem", $type: "dimension" },
|
|
31702
|
-
xl: { $value: "1.25rem", $type: "dimension" },
|
|
31703
|
-
"2xl": { $value: "1.5rem", $type: "dimension" }
|
|
31704
|
-
},
|
|
31705
31555
|
weight: {
|
|
31706
31556
|
normal: { $value: "400", $type: "fontWeight" },
|
|
31707
31557
|
medium: { $value: "500", $type: "fontWeight" },
|
|
31708
31558
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
31709
31559
|
bold: { $value: "700", $type: "fontWeight" }
|
|
31710
|
-
},
|
|
31711
|
-
lineHeight: {
|
|
31712
|
-
tight: { $value: "1.25", $type: "number" },
|
|
31713
|
-
normal: { $value: "1.5", $type: "number" },
|
|
31714
|
-
relaxed: { $value: "1.75", $type: "number" }
|
|
31715
31560
|
}
|
|
31716
31561
|
},
|
|
31717
31562
|
spacing: {
|
|
@@ -31731,20 +31576,6 @@
|
|
|
31731
31576
|
// round-3 "borders looking ugly" residual's shadow half), light
|
|
31732
31577
|
// wants classic soft grey.
|
|
31733
31578
|
motion: {
|
|
31734
|
-
duration: {
|
|
31735
|
-
fast: { $value: "120ms", $type: "duration" },
|
|
31736
|
-
normal: { $value: "200ms", $type: "duration" },
|
|
31737
|
-
slow: { $value: "400ms", $type: "duration" },
|
|
31738
|
-
ambient: { $value: "2000ms", $type: "duration" }
|
|
31739
|
-
},
|
|
31740
|
-
easing: {
|
|
31741
|
-
default: { $value: "cubic-bezier(0.4, 0, 0.2, 1)", $type: "cubicBezier" },
|
|
31742
|
-
bounce: {
|
|
31743
|
-
$value: "cubic-bezier(0.68, -0.55, 0.27, 1.55)",
|
|
31744
|
-
$type: "cubicBezier"
|
|
31745
|
-
},
|
|
31746
|
-
spring: { $value: "cubic-bezier(0.22, 1, 0.36, 1)", $type: "cubicBezier" }
|
|
31747
|
-
},
|
|
31748
31579
|
transition: {
|
|
31749
31580
|
fast: { $value: "120ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
|
|
31750
31581
|
normal: { $value: "200ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
|
|
@@ -31813,7 +31644,6 @@
|
|
|
31813
31644
|
$description: "The guuey product brand (dark) \u2014 slate-ink surfaces, slime #B8FF3A accent, DM Sans.",
|
|
31814
31645
|
$metadata: {
|
|
31815
31646
|
font: "DM Sans",
|
|
31816
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap",
|
|
31817
31647
|
philosophy: "Agent-native. Slime on slate.",
|
|
31818
31648
|
// Round 5 (founder-ruled): the guuey host clips the view with its
|
|
31819
31649
|
// own rounded rim — the HOST owns the card silhouette; the theme
|
|
@@ -31903,11 +31733,11 @@
|
|
|
31903
31733
|
"800": { $value: "#BFECFF", $type: "color" }
|
|
31904
31734
|
},
|
|
31905
31735
|
// M3 roles — portal values verbatim.
|
|
31906
|
-
|
|
31907
|
-
|
|
31908
|
-
|
|
31909
|
-
|
|
31910
|
-
container: { $value: "#
|
|
31736
|
+
ground: { $value: "#1A1D24", $type: "color" },
|
|
31737
|
+
onGround: { $value: "#F6F5EE", $type: "color" },
|
|
31738
|
+
sunken: { $value: "#242938", $type: "color" },
|
|
31739
|
+
onSunken: { $value: "#B7BAC4", $type: "color" },
|
|
31740
|
+
container: { $value: "#1A1D24", $type: "color" },
|
|
31911
31741
|
// elevated
|
|
31912
31742
|
onContainer: { $value: "#F6F5EE", $type: "color" },
|
|
31913
31743
|
// Round 4 (portal stops): .14 IS the base hairline; .18 is the
|
|
@@ -32006,11 +31836,11 @@
|
|
|
32006
31836
|
"700": { $value: "#06455D", $type: "color" },
|
|
32007
31837
|
"800": { $value: "#0A3346", $type: "color" }
|
|
32008
31838
|
},
|
|
32009
|
-
|
|
32010
|
-
|
|
32011
|
-
|
|
32012
|
-
|
|
32013
|
-
container: { $value: "#
|
|
31839
|
+
ground: { $value: "#FFFFFF", $type: "color" },
|
|
31840
|
+
onGround: { $value: "#1A1D24", $type: "color" },
|
|
31841
|
+
sunken: { $value: "#F6F5EE", $type: "color" },
|
|
31842
|
+
onSunken: { $value: "#4A4F5C", $type: "color" },
|
|
31843
|
+
container: { $value: "#FFFFFF", $type: "color" },
|
|
32014
31844
|
onContainer: { $value: "#1A1D24", $type: "color" },
|
|
32015
31845
|
outline: { $value: "rgba(26, 29, 36, 0.18)", $type: "color" },
|
|
32016
31846
|
outlineVariant: { $value: "rgba(26, 29, 36, 0.10)", $type: "color" },
|
|
@@ -32377,6 +32207,20 @@
|
|
|
32377
32207
|
"@ggui-ai/wire": "wire",
|
|
32378
32208
|
"@ggui-ai/gadgets": "gadgets"
|
|
32379
32209
|
};
|
|
32210
|
+
function findBareImportSpecifiers(code) {
|
|
32211
|
+
const out = /* @__PURE__ */ new Set();
|
|
32212
|
+
const re = /(?:^|[^.\w$])(?:import|from)\s*['"]([^'"]+)['"]/g;
|
|
32213
|
+
let m;
|
|
32214
|
+
while ((m = re.exec(code)) !== null) {
|
|
32215
|
+
const spec = m[1];
|
|
32216
|
+
if (spec === void 0)
|
|
32217
|
+
continue;
|
|
32218
|
+
if (/^(?:[a-z][a-z0-9+.-]*:|\.{0,2}\/)/i.test(spec))
|
|
32219
|
+
continue;
|
|
32220
|
+
out.add(spec);
|
|
32221
|
+
}
|
|
32222
|
+
return [...out];
|
|
32223
|
+
}
|
|
32380
32224
|
function rewriteAssetUrl(code, opts) {
|
|
32381
32225
|
const base = opts.shimBaseUrl.replace(/\/$/, "");
|
|
32382
32226
|
for (const [specifier, shimName] of Object.entries(ASSET_SHIM_FOR_SPECIFIER)) {
|
|
@@ -32391,7 +32235,21 @@
|
|
|
32391
32235
|
code = replaceSpecifier(code, "react", base);
|
|
32392
32236
|
return code;
|
|
32393
32237
|
}
|
|
32238
|
+
var FORBIDDEN_IMPORT_SPECIFIERS = ["@ggui-ai/wire/internal"];
|
|
32239
|
+
var ForbiddenImportSpecifierError = class extends Error {
|
|
32240
|
+
specifier;
|
|
32241
|
+
constructor(specifier) {
|
|
32242
|
+
super(`import rewriter: generated component code imported '${specifier}', which is not available to components \u2014 it is the writer side of the wire; components read \`useRender().isConnected\` and never write it`);
|
|
32243
|
+
this.name = "ForbiddenImportSpecifierError";
|
|
32244
|
+
this.specifier = specifier;
|
|
32245
|
+
}
|
|
32246
|
+
};
|
|
32394
32247
|
function rewriteImports(code, options) {
|
|
32248
|
+
const bare = findBareImportSpecifiers(code);
|
|
32249
|
+
for (const specifier of FORBIDDEN_IMPORT_SPECIFIERS) {
|
|
32250
|
+
if (bare.includes(specifier))
|
|
32251
|
+
throw new ForbiddenImportSpecifierError(specifier);
|
|
32252
|
+
}
|
|
32395
32253
|
switch (options.mode) {
|
|
32396
32254
|
case "data-url":
|
|
32397
32255
|
return rewriteDataUrl(code, options);
|