@ggui-ai/ui-visual-tester 0.14.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 +328 -468
- 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,31 +28245,61 @@
|
|
|
28186
28245
|
},
|
|
28187
28246
|
getSnapshot() {
|
|
28188
28247
|
return value;
|
|
28189
|
-
}
|
|
28190
|
-
|
|
28191
|
-
|
|
28192
|
-
|
|
28193
|
-
|
|
28194
|
-
|
|
28195
|
-
|
|
28248
|
+
}
|
|
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
|
+
};
|
|
28196
28274
|
}
|
|
28197
28275
|
};
|
|
28198
28276
|
}
|
|
28199
|
-
|
|
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;
|
|
28287
|
+
}
|
|
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
|
|
|
28208
|
-
// ../protocol/dist/
|
|
28209
|
-
var
|
|
28210
|
-
var
|
|
28211
|
-
var
|
|
28212
|
-
|
|
28213
|
-
]);
|
|
28298
|
+
// ../protocol/dist/validation/ajv-runtime.js
|
|
28299
|
+
var import_ajv = __toESM(require_ajv(), 1);
|
|
28300
|
+
var import_ajv_formats = __toESM(require_dist(), 1);
|
|
28301
|
+
var import_equal = __toESM(require_equal(), 1);
|
|
28302
|
+
var import_ucs2length = __toESM(require_ucs2length(), 1);
|
|
28214
28303
|
|
|
28215
28304
|
// ../protocol/dist/validation/is-record.js
|
|
28216
28305
|
function isRecord(value) {
|
|
@@ -28218,10 +28307,6 @@
|
|
|
28218
28307
|
}
|
|
28219
28308
|
|
|
28220
28309
|
// ../protocol/dist/validation/ajv-runtime.js
|
|
28221
|
-
var import_ajv = __toESM(require_ajv(), 1);
|
|
28222
|
-
var import_ajv_formats = __toESM(require_dist(), 1);
|
|
28223
|
-
var import_equal = __toESM(require_equal(), 1);
|
|
28224
|
-
var import_ucs2length = __toESM(require_ucs2length(), 1);
|
|
28225
28310
|
function resolveHelperFn(imported) {
|
|
28226
28311
|
if (typeof imported === "function") {
|
|
28227
28312
|
return imported;
|
|
@@ -28663,6 +28748,13 @@
|
|
|
28663
28748
|
return validateActionData(envelope.payload, spec, precompiledActions);
|
|
28664
28749
|
}
|
|
28665
28750
|
|
|
28751
|
+
// ../protocol/dist/version.js
|
|
28752
|
+
var PROTOCOL_VERSION = "draft-2026-09-10";
|
|
28753
|
+
var PROTOCOL_SCHEMA_VERSION = PROTOCOL_VERSION;
|
|
28754
|
+
var CLIENT_SUPPORTED_VERSIONS = Object.freeze([
|
|
28755
|
+
PROTOCOL_SCHEMA_VERSION
|
|
28756
|
+
]);
|
|
28757
|
+
|
|
28666
28758
|
// ../protocol/dist/envelopes/builders.js
|
|
28667
28759
|
function resolveSchemaVersion(parts) {
|
|
28668
28760
|
if ("schemaVersion" in parts) {
|
|
@@ -28853,9 +28945,11 @@
|
|
|
28853
28945
|
|
|
28854
28946
|
// ../design/dist/themes/consumed-tokens.manifest.json
|
|
28855
28947
|
var consumed_tokens_manifest_default = {
|
|
28856
|
-
version:
|
|
28948
|
+
version: 2,
|
|
28857
28949
|
tokens: [
|
|
28858
28950
|
"--ggui-color-container",
|
|
28951
|
+
"--ggui-color-elevated",
|
|
28952
|
+
"--ggui-color-error",
|
|
28859
28953
|
"--ggui-color-error-100",
|
|
28860
28954
|
"--ggui-color-error-200",
|
|
28861
28955
|
"--ggui-color-error-50",
|
|
@@ -28863,12 +28957,16 @@
|
|
|
28863
28957
|
"--ggui-color-error-600",
|
|
28864
28958
|
"--ggui-color-error-700",
|
|
28865
28959
|
"--ggui-color-error-800",
|
|
28960
|
+
"--ggui-color-ground",
|
|
28961
|
+
"--ggui-color-ground-gradient",
|
|
28962
|
+
"--ggui-color-ground-subtle",
|
|
28866
28963
|
"--ggui-color-info-100",
|
|
28867
28964
|
"--ggui-color-info-200",
|
|
28868
28965
|
"--ggui-color-info-50",
|
|
28869
28966
|
"--ggui-color-info-500",
|
|
28870
28967
|
"--ggui-color-info-700",
|
|
28871
28968
|
"--ggui-color-info-800",
|
|
28969
|
+
"--ggui-color-link",
|
|
28872
28970
|
"--ggui-color-neutral-100",
|
|
28873
28971
|
"--ggui-color-neutral-200",
|
|
28874
28972
|
"--ggui-color-neutral-300",
|
|
@@ -28876,11 +28974,14 @@
|
|
|
28876
28974
|
"--ggui-color-neutral-50",
|
|
28877
28975
|
"--ggui-color-neutral-500",
|
|
28878
28976
|
"--ggui-color-neutral-600",
|
|
28977
|
+
"--ggui-color-neutral-900",
|
|
28879
28978
|
"--ggui-color-onContainer",
|
|
28979
|
+
"--ggui-color-onElevated",
|
|
28880
28980
|
"--ggui-color-onError",
|
|
28981
|
+
"--ggui-color-onGround",
|
|
28881
28982
|
"--ggui-color-onPrimary",
|
|
28882
|
-
"--ggui-color-
|
|
28883
|
-
"--ggui-color-
|
|
28983
|
+
"--ggui-color-onSunken",
|
|
28984
|
+
"--ggui-color-onTertiaryContainer",
|
|
28884
28985
|
"--ggui-color-outline",
|
|
28885
28986
|
"--ggui-color-outlineVariant",
|
|
28886
28987
|
"--ggui-color-primary",
|
|
@@ -28900,11 +29001,8 @@
|
|
|
28900
29001
|
"--ggui-color-success-500",
|
|
28901
29002
|
"--ggui-color-success-700",
|
|
28902
29003
|
"--ggui-color-success-800",
|
|
28903
|
-
"--ggui-color-
|
|
28904
|
-
"--ggui-color-
|
|
28905
|
-
"--ggui-color-surface-subtle",
|
|
28906
|
-
"--ggui-color-surface-sunken",
|
|
28907
|
-
"--ggui-color-surfaceVariant",
|
|
29004
|
+
"--ggui-color-sunken",
|
|
29005
|
+
"--ggui-color-tertiaryContainer",
|
|
28908
29006
|
"--ggui-color-warning-100",
|
|
28909
29007
|
"--ggui-color-warning-200",
|
|
28910
29008
|
"--ggui-color-warning-50",
|
|
@@ -28912,6 +29010,7 @@
|
|
|
28912
29010
|
"--ggui-color-warning-700",
|
|
28913
29011
|
"--ggui-color-warning-800",
|
|
28914
29012
|
"--ggui-flash-color",
|
|
29013
|
+
"--ggui-font-family-heading",
|
|
28915
29014
|
"--ggui-font-family-mono",
|
|
28916
29015
|
"--ggui-font-family-sans",
|
|
28917
29016
|
"--ggui-font-lineHeight-normal",
|
|
@@ -28924,11 +29023,11 @@
|
|
|
28924
29023
|
"--ggui-font-size-xl",
|
|
28925
29024
|
"--ggui-font-size-xs",
|
|
28926
29025
|
"--ggui-font-weight-bold",
|
|
29026
|
+
"--ggui-font-weight-heading",
|
|
28927
29027
|
"--ggui-font-weight-medium",
|
|
28928
29028
|
"--ggui-font-weight-normal",
|
|
28929
29029
|
"--ggui-font-weight-semibold",
|
|
28930
|
-
"--ggui-
|
|
28931
|
-
"--ggui-radius-sm",
|
|
29030
|
+
"--ggui-letter-spacing-heading",
|
|
28932
29031
|
"--ggui-shape-radius-full",
|
|
28933
29032
|
"--ggui-shape-radius-lg",
|
|
28934
29033
|
"--ggui-shape-radius-md",
|
|
@@ -29117,28 +29216,11 @@
|
|
|
29117
29216
|
$type: "fontFamily"
|
|
29118
29217
|
}
|
|
29119
29218
|
},
|
|
29120
|
-
size: {
|
|
29121
|
-
sm: { $value: "0.8125rem", $type: "dimension" },
|
|
29122
|
-
// 13px
|
|
29123
|
-
base: { $value: "0.875rem", $type: "dimension" },
|
|
29124
|
-
// 14px — brand-kit body
|
|
29125
|
-
lg: { $value: "1rem", $type: "dimension" },
|
|
29126
|
-
// 16px
|
|
29127
|
-
xl: { $value: "1.125rem", $type: "dimension" },
|
|
29128
|
-
// 18px
|
|
29129
|
-
"2xl": { $value: "1.375rem", $type: "dimension" }
|
|
29130
|
-
// 22px — brand-kit hero tag
|
|
29131
|
-
},
|
|
29132
29219
|
weight: {
|
|
29133
29220
|
normal: { $value: "400", $type: "fontWeight" },
|
|
29134
29221
|
medium: { $value: "500", $type: "fontWeight" },
|
|
29135
29222
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
29136
29223
|
bold: { $value: "700", $type: "fontWeight" }
|
|
29137
|
-
},
|
|
29138
|
-
lineHeight: {
|
|
29139
|
-
tight: { $value: "1.2", $type: "number" },
|
|
29140
|
-
normal: { $value: "1.5", $type: "number" },
|
|
29141
|
-
relaxed: { $value: "1.6", $type: "number" }
|
|
29142
29224
|
}
|
|
29143
29225
|
},
|
|
29144
29226
|
spacing: {
|
|
@@ -29199,26 +29281,6 @@
|
|
|
29199
29281
|
}
|
|
29200
29282
|
},
|
|
29201
29283
|
motion: {
|
|
29202
|
-
duration: {
|
|
29203
|
-
fast: { $value: "120ms", $type: "duration" },
|
|
29204
|
-
normal: { $value: "200ms", $type: "duration" },
|
|
29205
|
-
slow: { $value: "400ms", $type: "duration" },
|
|
29206
|
-
ambient: { $value: "2000ms", $type: "duration" }
|
|
29207
|
-
},
|
|
29208
|
-
easing: {
|
|
29209
|
-
default: {
|
|
29210
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
29211
|
-
$type: "cubicBezier"
|
|
29212
|
-
},
|
|
29213
|
-
bounce: {
|
|
29214
|
-
$value: "cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
29215
|
-
$type: "cubicBezier"
|
|
29216
|
-
},
|
|
29217
|
-
spring: {
|
|
29218
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
29219
|
-
$type: "cubicBezier"
|
|
29220
|
-
}
|
|
29221
|
-
},
|
|
29222
29284
|
transition: standardTransitions,
|
|
29223
29285
|
keyframes: {
|
|
29224
29286
|
"accent-pulse": {
|
|
@@ -29241,7 +29303,6 @@
|
|
|
29241
29303
|
$description: "The default ggui theme \u2014 monochrome paper + ink, architectural, no decorative flourish.",
|
|
29242
29304
|
$metadata: {
|
|
29243
29305
|
font: "Inter",
|
|
29244
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Geist+Mono:wght@400;500;700&display=swap",
|
|
29245
29306
|
philosophy: "The interface is the artifact, not the chrome around it."
|
|
29246
29307
|
},
|
|
29247
29308
|
color: {
|
|
@@ -29334,15 +29395,15 @@
|
|
|
29334
29395
|
"800": { $value: "#181818", $type: "color" }
|
|
29335
29396
|
},
|
|
29336
29397
|
// Semantic surface roles
|
|
29337
|
-
|
|
29398
|
+
ground: { $value: "#f4f3ed", $type: "color" },
|
|
29338
29399
|
// paper
|
|
29339
|
-
|
|
29400
|
+
onGround: { $value: "#292929", $type: "color" },
|
|
29340
29401
|
// ink
|
|
29341
|
-
|
|
29402
|
+
sunken: { $value: "#ebe9e1", $type: "color" },
|
|
29342
29403
|
// paper-2
|
|
29343
|
-
|
|
29404
|
+
onSunken: { $value: "#5a5a5a", $type: "color" },
|
|
29344
29405
|
// ink-3
|
|
29345
|
-
container: { $value: "#
|
|
29406
|
+
container: { $value: "#f4f3ed", $type: "color" },
|
|
29346
29407
|
// paper-2
|
|
29347
29408
|
onContainer: { $value: "#292929", $type: "color" },
|
|
29348
29409
|
// ink
|
|
@@ -29397,7 +29458,6 @@
|
|
|
29397
29458
|
$description: "The default ggui theme (dark) \u2014 ink canvas, paper text, architectural and flat.",
|
|
29398
29459
|
$metadata: {
|
|
29399
29460
|
font: "Inter",
|
|
29400
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Geist+Mono:wght@400;500;700&display=swap",
|
|
29401
29461
|
philosophy: "The interface is the artifact, not the chrome around it."
|
|
29402
29462
|
},
|
|
29403
29463
|
color: {
|
|
@@ -29487,15 +29547,15 @@
|
|
|
29487
29547
|
"700": { $value: "#e8e8e8", $type: "color" },
|
|
29488
29548
|
"800": { $value: "#f0f0f0", $type: "color" }
|
|
29489
29549
|
},
|
|
29490
|
-
|
|
29550
|
+
ground: { $value: "#1f1f1f", $type: "color" },
|
|
29491
29551
|
// surface above ink base
|
|
29492
|
-
|
|
29552
|
+
onGround: { $value: "#f4f3ed", $type: "color" },
|
|
29493
29553
|
// paper
|
|
29494
|
-
|
|
29554
|
+
sunken: { $value: "#292929", $type: "color" },
|
|
29495
29555
|
// ink
|
|
29496
|
-
|
|
29556
|
+
onSunken: { $value: "#d9d9d9", $type: "color" },
|
|
29497
29557
|
// chrome
|
|
29498
|
-
container: { $value: "#
|
|
29558
|
+
container: { $value: "#1f1f1f", $type: "color" },
|
|
29499
29559
|
// ink
|
|
29500
29560
|
onContainer: { $value: "#f4f3ed", $type: "color" },
|
|
29501
29561
|
// paper
|
|
@@ -29556,23 +29616,11 @@
|
|
|
29556
29616
|
$type: "fontFamily"
|
|
29557
29617
|
}
|
|
29558
29618
|
},
|
|
29559
|
-
size: {
|
|
29560
|
-
sm: { $value: "0.8rem", $type: "dimension" },
|
|
29561
|
-
base: { $value: "0.95rem", $type: "dimension" },
|
|
29562
|
-
lg: { $value: "1.1rem", $type: "dimension" },
|
|
29563
|
-
xl: { $value: "1.3rem", $type: "dimension" },
|
|
29564
|
-
"2xl": { $value: "1.6rem", $type: "dimension" }
|
|
29565
|
-
},
|
|
29566
29619
|
weight: {
|
|
29567
29620
|
normal: { $value: "400", $type: "fontWeight" },
|
|
29568
29621
|
medium: { $value: "500", $type: "fontWeight" },
|
|
29569
29622
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
29570
29623
|
bold: { $value: "700", $type: "fontWeight" }
|
|
29571
|
-
},
|
|
29572
|
-
lineHeight: {
|
|
29573
|
-
tight: { $value: "1.2", $type: "number" },
|
|
29574
|
-
normal: { $value: "1.5", $type: "number" },
|
|
29575
|
-
relaxed: { $value: "1.7", $type: "number" }
|
|
29576
29624
|
}
|
|
29577
29625
|
},
|
|
29578
29626
|
spacing: {
|
|
@@ -29605,26 +29653,6 @@
|
|
|
29605
29653
|
}
|
|
29606
29654
|
},
|
|
29607
29655
|
motion: {
|
|
29608
|
-
duration: {
|
|
29609
|
-
fast: { $value: "100ms", $type: "duration" },
|
|
29610
|
-
normal: { $value: "200ms", $type: "duration" },
|
|
29611
|
-
slow: { $value: "600ms", $type: "duration" },
|
|
29612
|
-
ambient: { $value: "2000ms", $type: "duration" }
|
|
29613
|
-
},
|
|
29614
|
-
easing: {
|
|
29615
|
-
default: {
|
|
29616
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
29617
|
-
$type: "cubicBezier"
|
|
29618
|
-
},
|
|
29619
|
-
bounce: {
|
|
29620
|
-
$value: "cubic-bezier(0.68, -0.55, 0.27, 1.55)",
|
|
29621
|
-
$type: "cubicBezier"
|
|
29622
|
-
},
|
|
29623
|
-
spring: {
|
|
29624
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
29625
|
-
$type: "cubicBezier"
|
|
29626
|
-
}
|
|
29627
|
-
},
|
|
29628
29656
|
keyframes: {
|
|
29629
29657
|
"glitch-flicker": {
|
|
29630
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}",
|
|
@@ -29675,7 +29703,6 @@
|
|
|
29675
29703
|
$description: "Neon-lit dystopian tech \u2014 cyan neon on dark chrome with glitch animations.",
|
|
29676
29704
|
$metadata: {
|
|
29677
29705
|
font: "Orbitron",
|
|
29678
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&display=swap",
|
|
29679
29706
|
philosophy: "Chromatic noise, electric tension, digital rebellion."
|
|
29680
29707
|
},
|
|
29681
29708
|
color: {
|
|
@@ -29744,12 +29771,12 @@
|
|
|
29744
29771
|
"800": { $value: "#005266", $type: "color" }
|
|
29745
29772
|
},
|
|
29746
29773
|
// Semantic roles (dark theme — inverted neutral scale)
|
|
29747
|
-
|
|
29748
|
-
|
|
29749
|
-
|
|
29750
|
-
|
|
29751
|
-
container: { $value: "#
|
|
29752
|
-
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" },
|
|
29753
29780
|
outline: { $value: "#3a3a48", $type: "color" },
|
|
29754
29781
|
outlineVariant: { $value: "#25252f", $type: "color" },
|
|
29755
29782
|
// Primary role pair — onPrimary is the deep night chrome, container
|
|
@@ -29796,7 +29823,6 @@
|
|
|
29796
29823
|
$description: "Neon-lit dystopian tech (dark) \u2014 brighter cyan on pure-black chrome, cranked neon contrast.",
|
|
29797
29824
|
$metadata: {
|
|
29798
29825
|
font: "Orbitron",
|
|
29799
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&display=swap",
|
|
29800
29826
|
philosophy: "Chromatic noise, electric tension, digital rebellion."
|
|
29801
29827
|
},
|
|
29802
29828
|
color: {
|
|
@@ -29871,13 +29897,13 @@
|
|
|
29871
29897
|
"700": { $value: "#85e6ff", $type: "color" },
|
|
29872
29898
|
"800": { $value: "#adeeff", $type: "color" }
|
|
29873
29899
|
},
|
|
29874
|
-
|
|
29875
|
-
|
|
29876
|
-
|
|
29877
|
-
|
|
29878
|
-
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" },
|
|
29879
29905
|
// deeper teal
|
|
29880
|
-
onContainer: { $value: "#
|
|
29906
|
+
onContainer: { $value: "#e8e8f0", $type: "color" },
|
|
29881
29907
|
outline: { $value: "#1a1a24", $type: "color" },
|
|
29882
29908
|
outlineVariant: { $value: "#111118", $type: "color" },
|
|
29883
29909
|
// Primary role pair — dark: onPrimary is pure-black-ish, container = deeper teal.
|
|
@@ -29929,23 +29955,11 @@
|
|
|
29929
29955
|
$type: "fontFamily"
|
|
29930
29956
|
}
|
|
29931
29957
|
},
|
|
29932
|
-
size: {
|
|
29933
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
29934
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
29935
|
-
lg: { $value: "1.125rem", $type: "dimension" },
|
|
29936
|
-
xl: { $value: "1.3rem", $type: "dimension" },
|
|
29937
|
-
"2xl": { $value: "1.6rem", $type: "dimension" }
|
|
29938
|
-
},
|
|
29939
29958
|
weight: {
|
|
29940
29959
|
normal: { $value: "400", $type: "fontWeight" },
|
|
29941
29960
|
medium: { $value: "500", $type: "fontWeight" },
|
|
29942
29961
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
29943
29962
|
bold: { $value: "700", $type: "fontWeight" }
|
|
29944
|
-
},
|
|
29945
|
-
lineHeight: {
|
|
29946
|
-
tight: { $value: "1.3", $type: "number" },
|
|
29947
|
-
normal: { $value: "1.6", $type: "number" },
|
|
29948
|
-
relaxed: { $value: "1.9", $type: "number" }
|
|
29949
29963
|
}
|
|
29950
29964
|
},
|
|
29951
29965
|
spacing: {
|
|
@@ -29987,26 +30001,6 @@
|
|
|
29987
30001
|
}
|
|
29988
30002
|
},
|
|
29989
30003
|
motion: {
|
|
29990
|
-
duration: {
|
|
29991
|
-
fast: { $value: "200ms", $type: "duration" },
|
|
29992
|
-
normal: { $value: "500ms", $type: "duration" },
|
|
29993
|
-
slow: { $value: "1500ms", $type: "duration" },
|
|
29994
|
-
ambient: { $value: "6000ms", $type: "duration" }
|
|
29995
|
-
},
|
|
29996
|
-
easing: {
|
|
29997
|
-
default: {
|
|
29998
|
-
$value: "cubic-bezier(0.33, 0, 0.67, 1)",
|
|
29999
|
-
$type: "cubicBezier"
|
|
30000
|
-
},
|
|
30001
|
-
bounce: {
|
|
30002
|
-
$value: "cubic-bezier(0.34, 1.2, 0.64, 1)",
|
|
30003
|
-
$type: "cubicBezier"
|
|
30004
|
-
},
|
|
30005
|
-
spring: {
|
|
30006
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
30007
|
-
$type: "cubicBezier"
|
|
30008
|
-
}
|
|
30009
|
-
},
|
|
30010
30004
|
keyframes: {
|
|
30011
30005
|
"slow-breathe": {
|
|
30012
30006
|
$value: "0%{opacity:0.85}50%{opacity:1}100%{opacity:0.85}",
|
|
@@ -30036,7 +30030,6 @@
|
|
|
30036
30030
|
$description: "Minimalist Japanese aesthetic \u2014 warm stone tones, deliberate space, and unhurried motion.",
|
|
30037
30031
|
$metadata: {
|
|
30038
30032
|
font: "Noto Serif JP",
|
|
30039
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&display=swap",
|
|
30040
30033
|
philosophy: "Beauty in imperfection. Stillness as presence."
|
|
30041
30034
|
},
|
|
30042
30035
|
color: {
|
|
@@ -30104,12 +30097,12 @@
|
|
|
30104
30097
|
"800": { $type: "color", $value: "#2c3d46" }
|
|
30105
30098
|
},
|
|
30106
30099
|
// Semantic roles
|
|
30107
|
-
|
|
30108
|
-
|
|
30109
|
-
|
|
30110
|
-
|
|
30111
|
-
container: { $value: "#
|
|
30112
|
-
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" },
|
|
30113
30106
|
outline: { $value: "#d5d0c8", $type: "color" },
|
|
30114
30107
|
outlineVariant: { $value: "#e7e4de", $type: "color" },
|
|
30115
30108
|
// Primary role pair — onPrimary is stone ivory on moss.
|
|
@@ -30153,7 +30146,6 @@
|
|
|
30153
30146
|
$description: "Minimalist Japanese aesthetic (dark) \u2014 dusk stone surfaces with restrained moss accents and unhurried motion.",
|
|
30154
30147
|
$metadata: {
|
|
30155
30148
|
font: "Noto Serif JP",
|
|
30156
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&display=swap",
|
|
30157
30149
|
philosophy: "Beauty in imperfection. Stillness as presence."
|
|
30158
30150
|
},
|
|
30159
30151
|
color: {
|
|
@@ -30222,14 +30214,14 @@
|
|
|
30222
30214
|
"700": { $type: "color", $value: "#546771" },
|
|
30223
30215
|
"800": { $type: "color", $value: "#38454d" }
|
|
30224
30216
|
},
|
|
30225
|
-
|
|
30226
|
-
|
|
30217
|
+
ground: { $value: "#2a2724", $type: "color" },
|
|
30218
|
+
onGround: { $value: "#f3f1ed", $type: "color" },
|
|
30227
30219
|
// muted off-cream, not pure white
|
|
30228
|
-
|
|
30229
|
-
|
|
30230
|
-
container: { $value: "#
|
|
30220
|
+
sunken: { $value: "#3e3a36", $type: "color" },
|
|
30221
|
+
onSunken: { $value: "#b8b0a4", $type: "color" },
|
|
30222
|
+
container: { $value: "#2a2724", $type: "color" },
|
|
30231
30223
|
// deep moss
|
|
30232
|
-
onContainer: { $value: "#
|
|
30224
|
+
onContainer: { $value: "#f3f1ed", $type: "color" },
|
|
30233
30225
|
// primary-100 in dark tree
|
|
30234
30226
|
outline: { $value: "#5e5650", $type: "color" },
|
|
30235
30227
|
outlineVariant: { $value: "#3e3a36", $type: "color" },
|
|
@@ -30281,23 +30273,11 @@
|
|
|
30281
30273
|
$type: "fontFamily"
|
|
30282
30274
|
}
|
|
30283
30275
|
},
|
|
30284
|
-
size: {
|
|
30285
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
30286
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
30287
|
-
lg: { $value: "1.125rem", $type: "dimension" },
|
|
30288
|
-
xl: { $value: "1.25rem", $type: "dimension" },
|
|
30289
|
-
"2xl": { $value: "1.5rem", $type: "dimension" }
|
|
30290
|
-
},
|
|
30291
30276
|
weight: {
|
|
30292
30277
|
normal: { $value: "400", $type: "fontWeight" },
|
|
30293
30278
|
medium: { $value: "500", $type: "fontWeight" },
|
|
30294
30279
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
30295
30280
|
bold: { $value: "700", $type: "fontWeight" }
|
|
30296
|
-
},
|
|
30297
|
-
lineHeight: {
|
|
30298
|
-
tight: { $value: "1.25", $type: "number" },
|
|
30299
|
-
normal: { $value: "1.5", $type: "number" },
|
|
30300
|
-
relaxed: { $value: "1.75", $type: "number" }
|
|
30301
30281
|
}
|
|
30302
30282
|
},
|
|
30303
30283
|
spacing: {
|
|
@@ -30330,26 +30310,6 @@
|
|
|
30330
30310
|
}
|
|
30331
30311
|
},
|
|
30332
30312
|
motion: {
|
|
30333
|
-
duration: {
|
|
30334
|
-
fast: { $value: "120ms", $type: "duration" },
|
|
30335
|
-
normal: { $value: "250ms", $type: "duration" },
|
|
30336
|
-
slow: { $value: "800ms", $type: "duration" },
|
|
30337
|
-
ambient: { $value: "2500ms", $type: "duration" }
|
|
30338
|
-
},
|
|
30339
|
-
easing: {
|
|
30340
|
-
default: {
|
|
30341
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
30342
|
-
$type: "cubicBezier"
|
|
30343
|
-
},
|
|
30344
|
-
bounce: {
|
|
30345
|
-
$value: "cubic-bezier(0.68, -0.55, 0.27, 1.55)",
|
|
30346
|
-
$type: "cubicBezier"
|
|
30347
|
-
},
|
|
30348
|
-
spring: {
|
|
30349
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
30350
|
-
$type: "cubicBezier"
|
|
30351
|
-
}
|
|
30352
|
-
},
|
|
30353
30313
|
transition: {
|
|
30354
30314
|
fast: {
|
|
30355
30315
|
$value: "120ms cubic-bezier(0.4, 0, 0.2, 1)",
|
|
@@ -30397,7 +30357,6 @@
|
|
|
30397
30357
|
$description: "Hot pink neon on dark \u2014 electric glow effects, neon flicker, and flowing magenta particles.",
|
|
30398
30358
|
$metadata: {
|
|
30399
30359
|
font: "Outfit",
|
|
30400
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap",
|
|
30401
30360
|
philosophy: "Midnight electricity. The city never sleeps."
|
|
30402
30361
|
},
|
|
30403
30362
|
color: {
|
|
@@ -30442,12 +30401,12 @@
|
|
|
30442
30401
|
"500": { $value: "#38bdf8", $type: "color" }
|
|
30443
30402
|
},
|
|
30444
30403
|
// Semantic roles (dark theme — inverted neutral scale)
|
|
30445
|
-
|
|
30446
|
-
|
|
30447
|
-
|
|
30448
|
-
|
|
30449
|
-
container: { $value: "#
|
|
30450
|
-
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" },
|
|
30451
30410
|
outline: { $value: "#3b3b44", $type: "color" },
|
|
30452
30411
|
outlineVariant: { $value: "#232329", $type: "color" },
|
|
30453
30412
|
// Primary role pair — onPrimary is deep noir so hot pink CTAs pop.
|
|
@@ -30489,7 +30448,6 @@
|
|
|
30489
30448
|
$description: "Hot pink neon on pure black (dark) \u2014 sharper noir contrast, brighter electric glow, deeper magenta containers.",
|
|
30490
30449
|
$metadata: {
|
|
30491
30450
|
font: "Outfit",
|
|
30492
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap",
|
|
30493
30451
|
philosophy: "Midnight electricity. The city never sleeps."
|
|
30494
30452
|
},
|
|
30495
30453
|
color: {
|
|
@@ -30535,13 +30493,13 @@
|
|
|
30535
30493
|
...standardSemanticScales.dark.info,
|
|
30536
30494
|
"500": { $value: "#5acdff", $type: "color" }
|
|
30537
30495
|
},
|
|
30538
|
-
|
|
30539
|
-
|
|
30540
|
-
|
|
30541
|
-
|
|
30542
|
-
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" },
|
|
30543
30501
|
// richer magenta
|
|
30544
|
-
onContainer: { $value: "#
|
|
30502
|
+
onContainer: { $value: "#ececf0", $type: "color" },
|
|
30545
30503
|
outline: { $value: "#19191e", $type: "color" },
|
|
30546
30504
|
outlineVariant: { $value: "#111114", $type: "color" },
|
|
30547
30505
|
// Primary role pair — dark: onPrimary is pure black, container = richer magenta.
|
|
@@ -30589,23 +30547,11 @@
|
|
|
30589
30547
|
$type: "fontFamily"
|
|
30590
30548
|
}
|
|
30591
30549
|
},
|
|
30592
|
-
size: {
|
|
30593
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
30594
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
30595
|
-
lg: { $value: "1.15rem", $type: "dimension" },
|
|
30596
|
-
xl: { $value: "1.3rem", $type: "dimension" },
|
|
30597
|
-
"2xl": { $value: "1.625rem", $type: "dimension" }
|
|
30598
|
-
},
|
|
30599
30550
|
weight: {
|
|
30600
30551
|
normal: { $value: "400", $type: "fontWeight" },
|
|
30601
30552
|
medium: { $value: "500", $type: "fontWeight" },
|
|
30602
30553
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
30603
30554
|
bold: { $value: "700", $type: "fontWeight" }
|
|
30604
|
-
},
|
|
30605
|
-
lineHeight: {
|
|
30606
|
-
tight: { $value: "1.3", $type: "number" },
|
|
30607
|
-
normal: { $value: "1.6", $type: "number" },
|
|
30608
|
-
relaxed: { $value: "1.85", $type: "number" }
|
|
30609
30555
|
}
|
|
30610
30556
|
},
|
|
30611
30557
|
spacing: {
|
|
@@ -30647,26 +30593,6 @@
|
|
|
30647
30593
|
}
|
|
30648
30594
|
},
|
|
30649
30595
|
motion: {
|
|
30650
|
-
duration: {
|
|
30651
|
-
fast: { $value: "200ms", $type: "duration" },
|
|
30652
|
-
normal: { $value: "400ms", $type: "duration" },
|
|
30653
|
-
slow: { $value: "1200ms", $type: "duration" },
|
|
30654
|
-
ambient: { $value: "5000ms", $type: "duration" }
|
|
30655
|
-
},
|
|
30656
|
-
easing: {
|
|
30657
|
-
default: {
|
|
30658
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
30659
|
-
$type: "cubicBezier"
|
|
30660
|
-
},
|
|
30661
|
-
bounce: {
|
|
30662
|
-
$value: "cubic-bezier(0.34, 1.3, 0.64, 1)",
|
|
30663
|
-
$type: "cubicBezier"
|
|
30664
|
-
},
|
|
30665
|
-
spring: {
|
|
30666
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
30667
|
-
$type: "cubicBezier"
|
|
30668
|
-
}
|
|
30669
|
-
},
|
|
30670
30596
|
keyframes: {
|
|
30671
30597
|
"leaf-float": {
|
|
30672
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}",
|
|
@@ -30689,7 +30615,6 @@
|
|
|
30689
30615
|
$description: "Organic greens on warm cream \u2014 leaf-float animations and vine-grow motion.",
|
|
30690
30616
|
$metadata: {
|
|
30691
30617
|
font: "Lora",
|
|
30692
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap",
|
|
30693
30618
|
philosophy: "Rooted in nature. Growing with intention."
|
|
30694
30619
|
},
|
|
30695
30620
|
color: {
|
|
@@ -30738,12 +30663,12 @@
|
|
|
30738
30663
|
},
|
|
30739
30664
|
info: standardSemanticScales.light.info,
|
|
30740
30665
|
// Semantic roles
|
|
30741
|
-
|
|
30742
|
-
|
|
30743
|
-
|
|
30744
|
-
|
|
30745
|
-
container: { $value: "#
|
|
30746
|
-
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" },
|
|
30747
30672
|
outline: { $value: "#f0e4c9", $type: "color" },
|
|
30748
30673
|
outlineVariant: { $value: "#f8f0df", $type: "color" },
|
|
30749
30674
|
// Primary role pair — onPrimary is cream for the leaf-green brand hex.
|
|
@@ -30785,7 +30710,6 @@
|
|
|
30785
30710
|
$description: "Forest at night (dark) \u2014 deep soil surfaces with lifted leaf-green accents and gentle organic motion.",
|
|
30786
30711
|
$metadata: {
|
|
30787
30712
|
font: "Lora",
|
|
30788
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap",
|
|
30789
30713
|
philosophy: "Rooted in nature. Growing with intention."
|
|
30790
30714
|
},
|
|
30791
30715
|
color: {
|
|
@@ -30820,13 +30744,13 @@
|
|
|
30820
30744
|
warning: standardSemanticScales.dark.warning,
|
|
30821
30745
|
error: standardSemanticScales.dark.error,
|
|
30822
30746
|
info: standardSemanticScales.dark.info,
|
|
30823
|
-
|
|
30824
|
-
|
|
30825
|
-
|
|
30826
|
-
|
|
30827
|
-
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" },
|
|
30828
30752
|
// deep forest
|
|
30829
|
-
onContainer: { $value: "#
|
|
30753
|
+
onContainer: { $value: "#fefcf8", $type: "color" },
|
|
30830
30754
|
outline: { $value: "#504530", $type: "color" },
|
|
30831
30755
|
outlineVariant: { $value: "#352e20", $type: "color" },
|
|
30832
30756
|
// Primary role pair — dark: lifted leaf-green, onPrimary = forest soil.
|
|
@@ -30891,24 +30815,11 @@
|
|
|
30891
30815
|
$type: "fontFamily"
|
|
30892
30816
|
}
|
|
30893
30817
|
},
|
|
30894
|
-
size: {
|
|
30895
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
30896
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
30897
|
-
lg: { $value: "1.125rem", $type: "dimension" },
|
|
30898
|
-
xl: { $value: "1.25rem", $type: "dimension" },
|
|
30899
|
-
"2xl": { $value: "1.5rem", $type: "dimension" }
|
|
30900
|
-
},
|
|
30901
30818
|
weight: {
|
|
30902
30819
|
normal: { $value: "400", $type: "fontWeight" },
|
|
30903
30820
|
medium: { $value: "500", $type: "fontWeight" },
|
|
30904
30821
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
30905
30822
|
bold: { $value: "700", $type: "fontWeight" }
|
|
30906
|
-
},
|
|
30907
|
-
lineHeight: {
|
|
30908
|
-
tight: { $value: "1.25", $type: "number" },
|
|
30909
|
-
normal: { $value: "1.55", $type: "number" },
|
|
30910
|
-
// claude.ai-ish — slightly looser than Indigo
|
|
30911
|
-
relaxed: { $value: "1.75", $type: "number" }
|
|
30912
30823
|
}
|
|
30913
30824
|
},
|
|
30914
30825
|
// Same dual-key spacing scale as Indigo so primitives that
|
|
@@ -30966,21 +30877,6 @@
|
|
|
30966
30877
|
motion: {
|
|
30967
30878
|
// Claudic is calmer than Indigo — no `ambient` 3s breathing
|
|
30968
30879
|
// duration is exposed. Animations stay snappy + functional only.
|
|
30969
|
-
duration: {
|
|
30970
|
-
fast: { $value: "120ms", $type: "duration" },
|
|
30971
|
-
normal: { $value: "240ms", $type: "duration" },
|
|
30972
|
-
slow: { $value: "480ms", $type: "duration" }
|
|
30973
|
-
},
|
|
30974
|
-
easing: {
|
|
30975
|
-
default: {
|
|
30976
|
-
$value: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
30977
|
-
$type: "cubicBezier"
|
|
30978
|
-
},
|
|
30979
|
-
spring: {
|
|
30980
|
-
$value: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
30981
|
-
$type: "cubicBezier"
|
|
30982
|
-
}
|
|
30983
|
-
},
|
|
30984
30880
|
keyframes: {
|
|
30985
30881
|
entrance: {
|
|
30986
30882
|
$value: "0%{opacity:0;transform:translateY(4px)}100%{opacity:1;transform:none}",
|
|
@@ -31081,15 +30977,15 @@
|
|
|
31081
30977
|
"800": { $value: "#363432", $type: "color" }
|
|
31082
30978
|
},
|
|
31083
30979
|
// Two-tier semantic roles
|
|
31084
|
-
|
|
30980
|
+
ground: { $value: "#faf9f5", $type: "color" },
|
|
31085
30981
|
// Ivory
|
|
31086
|
-
|
|
30982
|
+
onGround: { $value: "#141413", $type: "color" },
|
|
31087
30983
|
// Slate
|
|
31088
|
-
|
|
31089
|
-
|
|
31090
|
-
container: { $value: "#
|
|
30984
|
+
sunken: { $value: "#f5f4ee", $type: "color" },
|
|
30985
|
+
onSunken: { $value: "#56544f", $type: "color" },
|
|
30986
|
+
container: { $value: "#faf9f5", $type: "color" },
|
|
31091
30987
|
// primary-50
|
|
31092
|
-
onContainer: { $value: "#
|
|
30988
|
+
onContainer: { $value: "#141413", $type: "color" },
|
|
31093
30989
|
// primary-900
|
|
31094
30990
|
outline: { $value: "#dad8cc", $type: "color" },
|
|
31095
30991
|
outlineVariant: { $value: "#ebe9df", $type: "color" },
|
|
@@ -31221,14 +31117,14 @@
|
|
|
31221
31117
|
"700": { $value: "#d1cfca", $type: "color" },
|
|
31222
31118
|
"800": { $value: "#e6e4e0", $type: "color" }
|
|
31223
31119
|
},
|
|
31224
|
-
|
|
31120
|
+
ground: { $value: "#262624", $type: "color" },
|
|
31225
31121
|
// Charcoal
|
|
31226
|
-
|
|
31122
|
+
onGround: { $value: "#faf9f5", $type: "color" },
|
|
31227
31123
|
// Ivory
|
|
31228
|
-
|
|
31229
|
-
|
|
31230
|
-
container: { $value: "#
|
|
31231
|
-
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" },
|
|
31232
31128
|
outline: { $value: "#3d3b39", $type: "color" },
|
|
31233
31129
|
outlineVariant: { $value: "#2d2c2a", $type: "color" },
|
|
31234
31130
|
// Primary role pair — dark: onPrimary is charcoal so text reads on the
|
|
@@ -31291,31 +31187,12 @@
|
|
|
31291
31187
|
$type: "fontFamily"
|
|
31292
31188
|
}
|
|
31293
31189
|
},
|
|
31294
|
-
size: {
|
|
31295
|
-
sm: { $value: "0.8125rem", $type: "dimension" },
|
|
31296
|
-
// 13px
|
|
31297
|
-
base: { $value: "0.9375rem", $type: "dimension" },
|
|
31298
|
-
// 15px
|
|
31299
|
-
lg: { $value: "1.0625rem", $type: "dimension" },
|
|
31300
|
-
// 17px
|
|
31301
|
-
xl: { $value: "1.3125rem", $type: "dimension" },
|
|
31302
|
-
// 21px — bumped for display headings
|
|
31303
|
-
"2xl": { $value: "1.75rem", $type: "dimension" }
|
|
31304
|
-
// 28px — generous display
|
|
31305
|
-
},
|
|
31306
31190
|
weight: {
|
|
31307
31191
|
normal: { $value: "400", $type: "fontWeight" },
|
|
31308
31192
|
medium: { $value: "500", $type: "fontWeight" },
|
|
31309
31193
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
31310
31194
|
bold: { $value: "680", $type: "fontWeight" }
|
|
31311
31195
|
// variable-axis weight; reads bold without going harsh on Inter
|
|
31312
|
-
},
|
|
31313
|
-
lineHeight: {
|
|
31314
|
-
tight: { $value: "1.1", $type: "number" },
|
|
31315
|
-
// headings
|
|
31316
|
-
normal: { $value: "1.55", $type: "number" },
|
|
31317
|
-
// body — generous, editorial
|
|
31318
|
-
relaxed: { $value: "1.7", $type: "number" }
|
|
31319
31196
|
}
|
|
31320
31197
|
},
|
|
31321
31198
|
spacing: {
|
|
@@ -31372,24 +31249,6 @@
|
|
|
31372
31249
|
}
|
|
31373
31250
|
},
|
|
31374
31251
|
motion: {
|
|
31375
|
-
duration: {
|
|
31376
|
-
fast: { $value: "150ms", $type: "duration" },
|
|
31377
|
-
normal: { $value: "250ms", $type: "duration" },
|
|
31378
|
-
slow: { $value: "420ms", $type: "duration" },
|
|
31379
|
-
ambient: { $value: "8000ms", $type: "duration" }
|
|
31380
|
-
// background breathing
|
|
31381
|
-
},
|
|
31382
|
-
easing: {
|
|
31383
|
-
// Linear's signature easing — confident, slightly overshoots arrival.
|
|
31384
|
-
default: {
|
|
31385
|
-
$value: "cubic-bezier(0.32, 0.72, 0, 1)",
|
|
31386
|
-
$type: "cubicBezier"
|
|
31387
|
-
},
|
|
31388
|
-
spring: {
|
|
31389
|
-
$value: "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
31390
|
-
$type: "cubicBezier"
|
|
31391
|
-
}
|
|
31392
|
-
},
|
|
31393
31252
|
keyframes: {
|
|
31394
31253
|
entrance: {
|
|
31395
31254
|
$value: "0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:none}",
|
|
@@ -31488,15 +31347,15 @@
|
|
|
31488
31347
|
"700": { $value: "#155e75", $type: "color" },
|
|
31489
31348
|
"800": { $value: "#164e63", $type: "color" }
|
|
31490
31349
|
},
|
|
31491
|
-
|
|
31350
|
+
ground: { $value: "#fafaf7", $type: "color" },
|
|
31492
31351
|
// Paper
|
|
31493
|
-
|
|
31352
|
+
onGround: { $value: "#15131f", $type: "color" },
|
|
31494
31353
|
// Ink
|
|
31495
|
-
|
|
31496
|
-
|
|
31497
|
-
container: { $value: "#
|
|
31354
|
+
sunken: { $value: "#f4f4f0", $type: "color" },
|
|
31355
|
+
onSunken: { $value: "#4a4954", $type: "color" },
|
|
31356
|
+
container: { $value: "#fafaf7", $type: "color" },
|
|
31498
31357
|
// primary-50 — pale indigo whisper
|
|
31499
|
-
onContainer: { $value: "#
|
|
31358
|
+
onContainer: { $value: "#15131f", $type: "color" },
|
|
31500
31359
|
// primary-900
|
|
31501
31360
|
outline: { $value: "#d4d3cf", $type: "color" },
|
|
31502
31361
|
outlineVariant: { $value: "#e8e7e3", $type: "color" },
|
|
@@ -31630,13 +31489,13 @@
|
|
|
31630
31489
|
// indistinguishable from default. Variant is now #221e35 (visible
|
|
31631
31490
|
// 1-tier step) and outline #3e3c50 (matches neutral-400, gives
|
|
31632
31491
|
// borders a hairline visibility on dark).
|
|
31633
|
-
|
|
31634
|
-
|
|
31635
|
-
|
|
31636
|
-
|
|
31637
|
-
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" },
|
|
31638
31497
|
// primary-100 dark
|
|
31639
|
-
onContainer: { $value: "#
|
|
31498
|
+
onContainer: { $value: "#f5f4f9", $type: "color" },
|
|
31640
31499
|
outline: { $value: "#3e3c50", $type: "color" },
|
|
31641
31500
|
outlineVariant: { $value: "#2a2839", $type: "color" },
|
|
31642
31501
|
// Primary role pair — dark: onPrimary is midnight, container = deep indigo.
|
|
@@ -31693,23 +31552,11 @@
|
|
|
31693
31552
|
$type: "fontFamily"
|
|
31694
31553
|
}
|
|
31695
31554
|
},
|
|
31696
|
-
size: {
|
|
31697
|
-
sm: { $value: "0.875rem", $type: "dimension" },
|
|
31698
|
-
base: { $value: "1rem", $type: "dimension" },
|
|
31699
|
-
lg: { $value: "1.125rem", $type: "dimension" },
|
|
31700
|
-
xl: { $value: "1.25rem", $type: "dimension" },
|
|
31701
|
-
"2xl": { $value: "1.5rem", $type: "dimension" }
|
|
31702
|
-
},
|
|
31703
31555
|
weight: {
|
|
31704
31556
|
normal: { $value: "400", $type: "fontWeight" },
|
|
31705
31557
|
medium: { $value: "500", $type: "fontWeight" },
|
|
31706
31558
|
semibold: { $value: "600", $type: "fontWeight" },
|
|
31707
31559
|
bold: { $value: "700", $type: "fontWeight" }
|
|
31708
|
-
},
|
|
31709
|
-
lineHeight: {
|
|
31710
|
-
tight: { $value: "1.25", $type: "number" },
|
|
31711
|
-
normal: { $value: "1.5", $type: "number" },
|
|
31712
|
-
relaxed: { $value: "1.75", $type: "number" }
|
|
31713
31560
|
}
|
|
31714
31561
|
},
|
|
31715
31562
|
spacing: {
|
|
@@ -31729,20 +31576,6 @@
|
|
|
31729
31576
|
// round-3 "borders looking ugly" residual's shadow half), light
|
|
31730
31577
|
// wants classic soft grey.
|
|
31731
31578
|
motion: {
|
|
31732
|
-
duration: {
|
|
31733
|
-
fast: { $value: "120ms", $type: "duration" },
|
|
31734
|
-
normal: { $value: "200ms", $type: "duration" },
|
|
31735
|
-
slow: { $value: "400ms", $type: "duration" },
|
|
31736
|
-
ambient: { $value: "2000ms", $type: "duration" }
|
|
31737
|
-
},
|
|
31738
|
-
easing: {
|
|
31739
|
-
default: { $value: "cubic-bezier(0.4, 0, 0.2, 1)", $type: "cubicBezier" },
|
|
31740
|
-
bounce: {
|
|
31741
|
-
$value: "cubic-bezier(0.68, -0.55, 0.27, 1.55)",
|
|
31742
|
-
$type: "cubicBezier"
|
|
31743
|
-
},
|
|
31744
|
-
spring: { $value: "cubic-bezier(0.22, 1, 0.36, 1)", $type: "cubicBezier" }
|
|
31745
|
-
},
|
|
31746
31579
|
transition: {
|
|
31747
31580
|
fast: { $value: "120ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
|
|
31748
31581
|
normal: { $value: "200ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
|
|
@@ -31811,7 +31644,6 @@
|
|
|
31811
31644
|
$description: "The guuey product brand (dark) \u2014 slate-ink surfaces, slime #B8FF3A accent, DM Sans.",
|
|
31812
31645
|
$metadata: {
|
|
31813
31646
|
font: "DM Sans",
|
|
31814
|
-
fontUrl: "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap",
|
|
31815
31647
|
philosophy: "Agent-native. Slime on slate.",
|
|
31816
31648
|
// Round 5 (founder-ruled): the guuey host clips the view with its
|
|
31817
31649
|
// own rounded rim — the HOST owns the card silhouette; the theme
|
|
@@ -31901,11 +31733,11 @@
|
|
|
31901
31733
|
"800": { $value: "#BFECFF", $type: "color" }
|
|
31902
31734
|
},
|
|
31903
31735
|
// M3 roles — portal values verbatim.
|
|
31904
|
-
|
|
31905
|
-
|
|
31906
|
-
|
|
31907
|
-
|
|
31908
|
-
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" },
|
|
31909
31741
|
// elevated
|
|
31910
31742
|
onContainer: { $value: "#F6F5EE", $type: "color" },
|
|
31911
31743
|
// Round 4 (portal stops): .14 IS the base hairline; .18 is the
|
|
@@ -32004,11 +31836,11 @@
|
|
|
32004
31836
|
"700": { $value: "#06455D", $type: "color" },
|
|
32005
31837
|
"800": { $value: "#0A3346", $type: "color" }
|
|
32006
31838
|
},
|
|
32007
|
-
|
|
32008
|
-
|
|
32009
|
-
|
|
32010
|
-
|
|
32011
|
-
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" },
|
|
32012
31844
|
onContainer: { $value: "#1A1D24", $type: "color" },
|
|
32013
31845
|
outline: { $value: "rgba(26, 29, 36, 0.18)", $type: "color" },
|
|
32014
31846
|
outlineVariant: { $value: "rgba(26, 29, 36, 0.10)", $type: "color" },
|
|
@@ -32375,6 +32207,20 @@
|
|
|
32375
32207
|
"@ggui-ai/wire": "wire",
|
|
32376
32208
|
"@ggui-ai/gadgets": "gadgets"
|
|
32377
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
|
+
}
|
|
32378
32224
|
function rewriteAssetUrl(code, opts) {
|
|
32379
32225
|
const base = opts.shimBaseUrl.replace(/\/$/, "");
|
|
32380
32226
|
for (const [specifier, shimName] of Object.entries(ASSET_SHIM_FOR_SPECIFIER)) {
|
|
@@ -32389,7 +32235,21 @@
|
|
|
32389
32235
|
code = replaceSpecifier(code, "react", base);
|
|
32390
32236
|
return code;
|
|
32391
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
|
+
};
|
|
32392
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
|
+
}
|
|
32393
32253
|
switch (options.mode) {
|
|
32394
32254
|
case "data-url":
|
|
32395
32255
|
return rewriteDataUrl(code, options);
|