@ggui-ai/dev-stack 0.10.0 → 0.11.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/hub-preview/client.js +377 -26
- package/package.json +7 -7
|
@@ -34212,7 +34212,7 @@ config(en_default());
|
|
|
34212
34212
|
|
|
34213
34213
|
// ../protocol/dist/gadgets/stdlib-gadgets.js
|
|
34214
34214
|
var STDLIB_GADGETS_PACKAGE = "@ggui-ai/gadgets";
|
|
34215
|
-
var STDLIB_GADGETS_VERSION = "0.
|
|
34215
|
+
var STDLIB_GADGETS_VERSION = "0.11.0";
|
|
34216
34216
|
var STDLIB_GADGETS = [
|
|
34217
34217
|
{
|
|
34218
34218
|
package: STDLIB_GADGETS_PACKAGE,
|
|
@@ -43840,19 +43840,19 @@ function walkTokens(obj, prefix, out) {
|
|
|
43840
43840
|
}
|
|
43841
43841
|
}
|
|
43842
43842
|
}
|
|
43843
|
-
function buildCssVariables(
|
|
43843
|
+
function buildCssVariables(theme9) {
|
|
43844
43844
|
const lines = [];
|
|
43845
|
-
walkTokens(
|
|
43846
|
-
walkTokens(
|
|
43847
|
-
walkTokens(
|
|
43848
|
-
walkTokens(
|
|
43845
|
+
walkTokens(theme9.color, "color", lines);
|
|
43846
|
+
walkTokens(theme9.font, "font", lines);
|
|
43847
|
+
walkTokens(theme9.spacing, "spacing", lines);
|
|
43848
|
+
walkTokens(theme9.shape, "shape", lines);
|
|
43849
43849
|
walkTokens({
|
|
43850
|
-
duration:
|
|
43851
|
-
easing:
|
|
43852
|
-
transition:
|
|
43850
|
+
duration: theme9.motion.duration,
|
|
43851
|
+
easing: theme9.motion.easing,
|
|
43852
|
+
transition: theme9.motion.transition
|
|
43853
43853
|
}, "motion", lines);
|
|
43854
|
-
walkTokens(
|
|
43855
|
-
walkTokens(
|
|
43854
|
+
walkTokens(theme9.accessibility, "accessibility", lines);
|
|
43855
|
+
walkTokens(theme9.zIndex, "zIndex", lines);
|
|
43856
43856
|
return lines.join("\n");
|
|
43857
43857
|
}
|
|
43858
43858
|
function expandKeyframe(name, compact) {
|
|
@@ -43869,29 +43869,29 @@ function expandKeyframe(name, compact) {
|
|
|
43869
43869
|
${stops.join("\n")}
|
|
43870
43870
|
}`;
|
|
43871
43871
|
}
|
|
43872
|
-
function buildCssKeyframes(
|
|
43872
|
+
function buildCssKeyframes(theme9) {
|
|
43873
43873
|
const blocks = [];
|
|
43874
|
-
for (const [name, token] of Object.entries(
|
|
43874
|
+
for (const [name, token] of Object.entries(theme9.motion.keyframes)) {
|
|
43875
43875
|
if (name.startsWith("$"))
|
|
43876
43876
|
continue;
|
|
43877
43877
|
blocks.push(expandKeyframe(name, String(token.$value)));
|
|
43878
43878
|
}
|
|
43879
43879
|
return blocks.join("\n\n");
|
|
43880
43880
|
}
|
|
43881
|
-
function parseTheme(id,
|
|
43882
|
-
const cssVariablesBody = buildCssVariables(
|
|
43881
|
+
function parseTheme(id, theme9) {
|
|
43882
|
+
const cssVariablesBody = buildCssVariables(theme9);
|
|
43883
43883
|
const cssVariables = `:root {
|
|
43884
43884
|
${cssVariablesBody}
|
|
43885
43885
|
}`;
|
|
43886
|
-
const cssKeyframes = buildCssKeyframes(
|
|
43886
|
+
const cssKeyframes = buildCssKeyframes(theme9);
|
|
43887
43887
|
const css = cssKeyframes ? `${cssVariables}
|
|
43888
43888
|
|
|
43889
43889
|
${cssKeyframes}` : cssVariables;
|
|
43890
43890
|
return {
|
|
43891
43891
|
id,
|
|
43892
|
-
name:
|
|
43893
|
-
description:
|
|
43894
|
-
metadata:
|
|
43892
|
+
name: theme9.$name,
|
|
43893
|
+
description: theme9.$description,
|
|
43894
|
+
metadata: theme9.$metadata,
|
|
43895
43895
|
cssVariables,
|
|
43896
43896
|
cssKeyframes,
|
|
43897
43897
|
css
|
|
@@ -46614,6 +46614,351 @@ var theme7 = {
|
|
|
46614
46614
|
light: indigoLight,
|
|
46615
46615
|
dark: indigoDark
|
|
46616
46616
|
};
|
|
46617
|
+
var shared8 = {
|
|
46618
|
+
font: {
|
|
46619
|
+
family: {
|
|
46620
|
+
sans: {
|
|
46621
|
+
$value: '"DM Sans", system-ui, -apple-system, sans-serif',
|
|
46622
|
+
$type: "fontFamily"
|
|
46623
|
+
},
|
|
46624
|
+
mono: {
|
|
46625
|
+
$value: '"JetBrains Mono", ui-monospace, monospace',
|
|
46626
|
+
$type: "fontFamily"
|
|
46627
|
+
}
|
|
46628
|
+
},
|
|
46629
|
+
size: {
|
|
46630
|
+
sm: { $value: "0.875rem", $type: "dimension" },
|
|
46631
|
+
base: { $value: "1rem", $type: "dimension" },
|
|
46632
|
+
lg: { $value: "1.125rem", $type: "dimension" },
|
|
46633
|
+
xl: { $value: "1.25rem", $type: "dimension" },
|
|
46634
|
+
"2xl": { $value: "1.5rem", $type: "dimension" }
|
|
46635
|
+
},
|
|
46636
|
+
weight: {
|
|
46637
|
+
normal: { $value: "400", $type: "fontWeight" },
|
|
46638
|
+
medium: { $value: "500", $type: "fontWeight" },
|
|
46639
|
+
semibold: { $value: "600", $type: "fontWeight" },
|
|
46640
|
+
bold: { $value: "700", $type: "fontWeight" }
|
|
46641
|
+
},
|
|
46642
|
+
lineHeight: {
|
|
46643
|
+
tight: { $value: "1.25", $type: "number" },
|
|
46644
|
+
normal: { $value: "1.5", $type: "number" },
|
|
46645
|
+
relaxed: { $value: "1.75", $type: "number" }
|
|
46646
|
+
}
|
|
46647
|
+
},
|
|
46648
|
+
spacing: {
|
|
46649
|
+
"1": { $value: "0.25rem", $type: "dimension" },
|
|
46650
|
+
"2": { $value: "0.5rem", $type: "dimension" },
|
|
46651
|
+
"3": { $value: "0.75rem", $type: "dimension" },
|
|
46652
|
+
"4": { $value: "1rem", $type: "dimension" },
|
|
46653
|
+
"5": { $value: "1.25rem", $type: "dimension" },
|
|
46654
|
+
"6": { $value: "1.5rem", $type: "dimension" },
|
|
46655
|
+
"8": { $value: "2rem", $type: "dimension" },
|
|
46656
|
+
"10": { $value: "2.5rem", $type: "dimension" },
|
|
46657
|
+
"12": { $value: "3rem", $type: "dimension" }
|
|
46658
|
+
},
|
|
46659
|
+
// NOTE: `shape` is per-mode (round 4) — radius is shared via
|
|
46660
|
+
// `sharedRadius` below, but shadows split: dark wants near-none ink
|
|
46661
|
+
// (a visible black blob under a card on a dark surface was the
|
|
46662
|
+
// round-3 "borders looking ugly" residual's shadow half), light
|
|
46663
|
+
// wants classic soft grey.
|
|
46664
|
+
motion: {
|
|
46665
|
+
duration: {
|
|
46666
|
+
fast: { $value: "120ms", $type: "duration" },
|
|
46667
|
+
normal: { $value: "200ms", $type: "duration" },
|
|
46668
|
+
slow: { $value: "400ms", $type: "duration" },
|
|
46669
|
+
ambient: { $value: "2000ms", $type: "duration" }
|
|
46670
|
+
},
|
|
46671
|
+
easing: {
|
|
46672
|
+
default: { $value: "cubic-bezier(0.4, 0, 0.2, 1)", $type: "cubicBezier" },
|
|
46673
|
+
bounce: {
|
|
46674
|
+
$value: "cubic-bezier(0.68, -0.55, 0.27, 1.55)",
|
|
46675
|
+
$type: "cubicBezier"
|
|
46676
|
+
},
|
|
46677
|
+
spring: { $value: "cubic-bezier(0.22, 1, 0.36, 1)", $type: "cubicBezier" }
|
|
46678
|
+
},
|
|
46679
|
+
transition: {
|
|
46680
|
+
fast: { $value: "120ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
|
|
46681
|
+
normal: { $value: "200ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
|
|
46682
|
+
slow: { $value: "400ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
|
|
46683
|
+
colors: {
|
|
46684
|
+
$value: "color 200ms cubic-bezier(0.4, 0, 0.2, 1), background-color 200ms cubic-bezier(0.4, 0, 0.2, 1), border-color 200ms cubic-bezier(0.4, 0, 0.2, 1)",
|
|
46685
|
+
$type: "transition"
|
|
46686
|
+
},
|
|
46687
|
+
opacity: { $value: "opacity 200ms cubic-bezier(0.4, 0, 0.2, 1)", $type: "transition" },
|
|
46688
|
+
transform: { $value: "transform 200ms cubic-bezier(0.22, 1, 0.36, 1)", $type: "transition" }
|
|
46689
|
+
},
|
|
46690
|
+
keyframes: {
|
|
46691
|
+
"fade-in": {
|
|
46692
|
+
$value: "0%{opacity:0}100%{opacity:1}",
|
|
46693
|
+
$type: "keyframes"
|
|
46694
|
+
},
|
|
46695
|
+
"slide-up": {
|
|
46696
|
+
$value: "0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}",
|
|
46697
|
+
$type: "keyframes"
|
|
46698
|
+
},
|
|
46699
|
+
"pulse-soft": {
|
|
46700
|
+
$value: "0%{opacity:1}50%{opacity:0.65}100%{opacity:1}",
|
|
46701
|
+
$type: "keyframes"
|
|
46702
|
+
}
|
|
46703
|
+
}
|
|
46704
|
+
},
|
|
46705
|
+
accessibility: {
|
|
46706
|
+
focusRing: {
|
|
46707
|
+
color: { $value: "#B8FF3A", $type: "color" },
|
|
46708
|
+
width: { $value: "2px", $type: "dimension" },
|
|
46709
|
+
offset: { $value: "2px", $type: "dimension" }
|
|
46710
|
+
},
|
|
46711
|
+
reducedMotion: {
|
|
46712
|
+
duration: { $value: "0ms", $type: "duration" }
|
|
46713
|
+
},
|
|
46714
|
+
highContrast: {
|
|
46715
|
+
borderWidth: { $value: "2px", $type: "dimension" },
|
|
46716
|
+
textColor: { $value: "#FFFFFF", $type: "color" },
|
|
46717
|
+
backgroundColor: { $value: "#000000", $type: "color" },
|
|
46718
|
+
linkColor: { $value: "#CCFF66", $type: "color" }
|
|
46719
|
+
}
|
|
46720
|
+
},
|
|
46721
|
+
zIndex: standardZIndex
|
|
46722
|
+
};
|
|
46723
|
+
var sharedRadius = {
|
|
46724
|
+
sm: { $value: "0.375rem", $type: "dimension" },
|
|
46725
|
+
md: { $value: "0.5rem", $type: "dimension" },
|
|
46726
|
+
lg: { $value: "0.75rem", $type: "dimension" },
|
|
46727
|
+
xl: { $value: "1rem", $type: "dimension" },
|
|
46728
|
+
full: { $value: "9999px", $type: "dimension" }
|
|
46729
|
+
};
|
|
46730
|
+
var darkShadows = {
|
|
46731
|
+
sm: { $value: "0 1px 2px rgba(0, 0, 0, 0.2)", $type: "shadow" },
|
|
46732
|
+
md: { $value: "0 2px 8px rgba(0, 0, 0, 0.25)", $type: "shadow" },
|
|
46733
|
+
lg: { $value: "0 6px 16px rgba(0, 0, 0, 0.28)", $type: "shadow" },
|
|
46734
|
+
xl: { $value: "0 10px 24px rgba(0, 0, 0, 0.3)", $type: "shadow" }
|
|
46735
|
+
};
|
|
46736
|
+
var lightShadows = {
|
|
46737
|
+
sm: { $value: "0 1px 2px rgba(26, 29, 36, 0.06)", $type: "shadow" },
|
|
46738
|
+
md: { $value: "0 2px 8px rgba(26, 29, 36, 0.08)", $type: "shadow" },
|
|
46739
|
+
lg: { $value: "0 6px 16px rgba(26, 29, 36, 0.1)", $type: "shadow" },
|
|
46740
|
+
xl: { $value: "0 12px 28px rgba(26, 29, 36, 0.12)", $type: "shadow" }
|
|
46741
|
+
};
|
|
46742
|
+
var guueyBrandDark = {
|
|
46743
|
+
$name: "guuey-brand-v1",
|
|
46744
|
+
$description: "The guuey product brand (dark) \u2014 slate-ink surfaces, slime #B8FF3A accent, DM Sans.",
|
|
46745
|
+
$metadata: {
|
|
46746
|
+
font: "DM Sans",
|
|
46747
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap",
|
|
46748
|
+
philosophy: "Agent-native. Slime on slate.",
|
|
46749
|
+
// Round 5 (founder-ruled): the guuey host clips the view with its
|
|
46750
|
+
// own rounded rim — the HOST owns the card silhouette; the theme
|
|
46751
|
+
// paints no border on the root layer. Inner hairlines stay.
|
|
46752
|
+
frameless: true
|
|
46753
|
+
},
|
|
46754
|
+
color: {
|
|
46755
|
+
// Inverted dark ladder — 50 darkest, 900 lightest; slime pinned at
|
|
46756
|
+
// 500, the portal's lifted #CCFF66 at the hover stop (600).
|
|
46757
|
+
primary: {
|
|
46758
|
+
"50": { $value: "#141D05", $type: "color" },
|
|
46759
|
+
"100": { $value: "#28390B", $type: "color" },
|
|
46760
|
+
"200": { $value: "#3F5A11", $type: "color" },
|
|
46761
|
+
"300": { $value: "#5F8719", $type: "color" },
|
|
46762
|
+
"400": { $value: "#8CC627", $type: "color" },
|
|
46763
|
+
"500": { $value: "#B8FF3A", $type: "color" },
|
|
46764
|
+
// slime (brand)
|
|
46765
|
+
"600": { $value: "#CCFF66", $type: "color" },
|
|
46766
|
+
// lifted hover (portal)
|
|
46767
|
+
"700": { $value: "#DBFF8F", $type: "color" },
|
|
46768
|
+
// pressed / emphasized
|
|
46769
|
+
"800": { $value: "#E9FFB8", $type: "color" },
|
|
46770
|
+
"900": { $value: "#F6FFE0", $type: "color" }
|
|
46771
|
+
},
|
|
46772
|
+
// Slate-ink foundation from the portal surface family: sunken →
|
|
46773
|
+
// surface → elevated → surfaceVariant, then up through the greys
|
|
46774
|
+
// to paper (#F6F5EE).
|
|
46775
|
+
neutral: {
|
|
46776
|
+
"50": { $value: "#0E1014", $type: "color" },
|
|
46777
|
+
// sunken
|
|
46778
|
+
"100": { $value: "#1A1D24", $type: "color" },
|
|
46779
|
+
// surface
|
|
46780
|
+
"200": { $value: "#232630", $type: "color" },
|
|
46781
|
+
// elevated
|
|
46782
|
+
"300": { $value: "#242938", $type: "color" },
|
|
46783
|
+
// surfaceVariant
|
|
46784
|
+
"400": { $value: "#3B4152", $type: "color" },
|
|
46785
|
+
"500": { $value: "#878C99", $type: "color" },
|
|
46786
|
+
// hint text
|
|
46787
|
+
"600": { $value: "#B7BAC4", $type: "color" },
|
|
46788
|
+
// secondary text
|
|
46789
|
+
"700": { $value: "#D5D6DC", $type: "color" },
|
|
46790
|
+
"800": { $value: "#E8E7E2", $type: "color" },
|
|
46791
|
+
"900": { $value: "#F6F5EE", $type: "color" }
|
|
46792
|
+
// paper (text)
|
|
46793
|
+
},
|
|
46794
|
+
// BRAND RULE: success IS slime — never green. Same family as
|
|
46795
|
+
// primary so an "Available" pill and a slime CTA read as one brand.
|
|
46796
|
+
success: {
|
|
46797
|
+
"50": { $value: "#141D05", $type: "color" },
|
|
46798
|
+
"100": { $value: "#28390B", $type: "color" },
|
|
46799
|
+
"200": { $value: "#3F5A11", $type: "color" },
|
|
46800
|
+
"500": { $value: "#B8FF3A", $type: "color" },
|
|
46801
|
+
// slime (brand rule)
|
|
46802
|
+
"600": { $value: "#CCFF66", $type: "color" },
|
|
46803
|
+
"700": { $value: "#DBFF8F", $type: "color" },
|
|
46804
|
+
"800": { $value: "#E9FFB8", $type: "color" }
|
|
46805
|
+
},
|
|
46806
|
+
warning: {
|
|
46807
|
+
"50": { $value: "#33240A", $type: "color" },
|
|
46808
|
+
"100": { $value: "#5C420F", $type: "color" },
|
|
46809
|
+
"200": { $value: "#8A6318", $type: "color" },
|
|
46810
|
+
"500": { $value: "#FFB020", $type: "color" },
|
|
46811
|
+
// portal warning
|
|
46812
|
+
"600": { $value: "#FFC24D", $type: "color" },
|
|
46813
|
+
"700": { $value: "#FFD37D", $type: "color" },
|
|
46814
|
+
"800": { $value: "#FFE5AE", $type: "color" }
|
|
46815
|
+
},
|
|
46816
|
+
error: {
|
|
46817
|
+
"50": { $value: "#33110E", $type: "color" },
|
|
46818
|
+
"100": { $value: "#5E1F1B", $type: "color" },
|
|
46819
|
+
"200": { $value: "#8F2F2A", $type: "color" },
|
|
46820
|
+
"500": { $value: "#FF5B5B", $type: "color" },
|
|
46821
|
+
// portal error
|
|
46822
|
+
"600": { $value: "#FF7D7A", $type: "color" },
|
|
46823
|
+
"700": { $value: "#FF9F9C", $type: "color" },
|
|
46824
|
+
"800": { $value: "#FFC3C0", $type: "color" }
|
|
46825
|
+
},
|
|
46826
|
+
info: {
|
|
46827
|
+
"50": { $value: "#0A2733", $type: "color" },
|
|
46828
|
+
"100": { $value: "#12455C", $type: "color" },
|
|
46829
|
+
"200": { $value: "#1E6A8A", $type: "color" },
|
|
46830
|
+
"500": { $value: "#3AC8FF", $type: "color" },
|
|
46831
|
+
// portal info
|
|
46832
|
+
"600": { $value: "#66D4FF", $type: "color" },
|
|
46833
|
+
"700": { $value: "#92E0FF", $type: "color" },
|
|
46834
|
+
"800": { $value: "#BFECFF", $type: "color" }
|
|
46835
|
+
},
|
|
46836
|
+
// M3 roles — portal values verbatim.
|
|
46837
|
+
surface: { $value: "#1A1D24", $type: "color" },
|
|
46838
|
+
onSurface: { $value: "#F6F5EE", $type: "color" },
|
|
46839
|
+
surfaceVariant: { $value: "#242938", $type: "color" },
|
|
46840
|
+
onSurfaceVariant: { $value: "#B7BAC4", $type: "color" },
|
|
46841
|
+
container: { $value: "#232630", $type: "color" },
|
|
46842
|
+
// elevated
|
|
46843
|
+
onContainer: { $value: "#F6F5EE", $type: "color" },
|
|
46844
|
+
// Round 4 (portal stops): .14 IS the base hairline; .18 is the
|
|
46845
|
+
// STRONG stop (no DtcgTheme slot — strong/interactive strokes
|
|
46846
|
+
// ride primary borders + the slime focusRing, receipted by the
|
|
46847
|
+
// Select button). Dividers sit softer still.
|
|
46848
|
+
outline: { $value: "rgba(246, 245, 238, 0.14)", $type: "color" },
|
|
46849
|
+
outlineVariant: { $value: "rgba(246, 245, 238, 0.1)", $type: "color" },
|
|
46850
|
+
onPrimary: { $value: "#0E1014", $type: "color" },
|
|
46851
|
+
// ink on slime
|
|
46852
|
+
primaryContainer: { $value: "#242938", $type: "color" },
|
|
46853
|
+
// portal
|
|
46854
|
+
onPrimaryContainer: { $value: "#CCFF66", $type: "color" },
|
|
46855
|
+
// portal
|
|
46856
|
+
onError: { $value: "#33110E", $type: "color" },
|
|
46857
|
+
errorContainer: { $value: "#5E1F1B", $type: "color" },
|
|
46858
|
+
onErrorContainer: { $value: "#FFC3C0", $type: "color" },
|
|
46859
|
+
// Pink accent — the portal's tertiary. (Purple #9B6AFF has no
|
|
46860
|
+
// DtcgTheme slot; see the file docstring.)
|
|
46861
|
+
tertiary: { $value: "#FF4FB0", $type: "color" },
|
|
46862
|
+
onTertiary: { $value: "#0E1014", $type: "color" },
|
|
46863
|
+
tertiaryContainer: { $value: "#451A35", $type: "color" },
|
|
46864
|
+
onTertiaryContainer: { $value: "#FFC1E4", $type: "color" }
|
|
46865
|
+
},
|
|
46866
|
+
...shared8,
|
|
46867
|
+
shape: { radius: sharedRadius, shadow: darkShadows }
|
|
46868
|
+
};
|
|
46869
|
+
var guueyBrandLight = {
|
|
46870
|
+
$name: "guuey-brand-v1",
|
|
46871
|
+
$description: "The guuey product brand (light, provisional) \u2014 paper surfaces, slime accent held for fills, darkened slime for text emphasis.",
|
|
46872
|
+
$metadata: guueyBrandDark.$metadata,
|
|
46873
|
+
color: {
|
|
46874
|
+
// Normal (non-inverted) ramps; slime stays the 500 fill anchor,
|
|
46875
|
+
// text-emphasis stops (600/700) darken for contrast on paper.
|
|
46876
|
+
primary: {
|
|
46877
|
+
"50": { $value: "#F6FFE0", $type: "color" },
|
|
46878
|
+
"100": { $value: "#E9FFB8", $type: "color" },
|
|
46879
|
+
"200": { $value: "#DBFF8F", $type: "color" },
|
|
46880
|
+
"300": { $value: "#CCFF66", $type: "color" },
|
|
46881
|
+
"400": { $value: "#B8FF3A", $type: "color" },
|
|
46882
|
+
"500": { $value: "#9FE01C", $type: "color" },
|
|
46883
|
+
"600": { $value: "#7DB214", $type: "color" },
|
|
46884
|
+
"700": { $value: "#5C850D", $type: "color" },
|
|
46885
|
+
"800": { $value: "#3F5A11", $type: "color" },
|
|
46886
|
+
"900": { $value: "#28390B", $type: "color" }
|
|
46887
|
+
},
|
|
46888
|
+
neutral: {
|
|
46889
|
+
"50": { $value: "#FBFAF6", $type: "color" },
|
|
46890
|
+
"100": { $value: "#F6F5EE", $type: "color" },
|
|
46891
|
+
"200": { $value: "#E8E7E2", $type: "color" },
|
|
46892
|
+
"300": { $value: "#D5D6DC", $type: "color" },
|
|
46893
|
+
"400": { $value: "#B7BAC4", $type: "color" },
|
|
46894
|
+
"500": { $value: "#6E7380", $type: "color" },
|
|
46895
|
+
"600": { $value: "#4A4F5C", $type: "color" },
|
|
46896
|
+
"700": { $value: "#333846", $type: "color" },
|
|
46897
|
+
"800": { $value: "#242938", $type: "color" },
|
|
46898
|
+
"900": { $value: "#1A1D24", $type: "color" }
|
|
46899
|
+
},
|
|
46900
|
+
success: {
|
|
46901
|
+
"50": { $value: "#F6FFE0", $type: "color" },
|
|
46902
|
+
"100": { $value: "#E9FFB8", $type: "color" },
|
|
46903
|
+
"200": { $value: "#DBFF8F", $type: "color" },
|
|
46904
|
+
"500": { $value: "#7DB214", $type: "color" },
|
|
46905
|
+
"600": { $value: "#5C850D", $type: "color" },
|
|
46906
|
+
"700": { $value: "#476809", $type: "color" },
|
|
46907
|
+
"800": { $value: "#28390B", $type: "color" }
|
|
46908
|
+
},
|
|
46909
|
+
warning: {
|
|
46910
|
+
"50": { $value: "#FFF4DD", $type: "color" },
|
|
46911
|
+
"100": { $value: "#FFE5AE", $type: "color" },
|
|
46912
|
+
"200": { $value: "#FFD37D", $type: "color" },
|
|
46913
|
+
"500": { $value: "#D98A0A", $type: "color" },
|
|
46914
|
+
"600": { $value: "#A96A06", $type: "color" },
|
|
46915
|
+
"700": { $value: "#7C4D04", $type: "color" },
|
|
46916
|
+
"800": { $value: "#523203", $type: "color" }
|
|
46917
|
+
},
|
|
46918
|
+
error: {
|
|
46919
|
+
"50": { $value: "#FFE9E8", $type: "color" },
|
|
46920
|
+
"100": { $value: "#FFC3C0", $type: "color" },
|
|
46921
|
+
"200": { $value: "#FF9F9C", $type: "color" },
|
|
46922
|
+
"500": { $value: "#E23B3B", $type: "color" },
|
|
46923
|
+
"600": { $value: "#B62C2C", $type: "color" },
|
|
46924
|
+
"700": { $value: "#8A1F1F", $type: "color" },
|
|
46925
|
+
"800": { $value: "#5E1F1B", $type: "color" }
|
|
46926
|
+
},
|
|
46927
|
+
info: {
|
|
46928
|
+
"50": { $value: "#E5F7FF", $type: "color" },
|
|
46929
|
+
"100": { $value: "#BFECFF", $type: "color" },
|
|
46930
|
+
"200": { $value: "#92E0FF", $type: "color" },
|
|
46931
|
+
"500": { $value: "#0E93C9", $type: "color" },
|
|
46932
|
+
"600": { $value: "#0B739E", $type: "color" },
|
|
46933
|
+
"700": { $value: "#085572", $type: "color" },
|
|
46934
|
+
"800": { $value: "#12455C", $type: "color" }
|
|
46935
|
+
},
|
|
46936
|
+
surface: { $value: "#FFFFFF", $type: "color" },
|
|
46937
|
+
onSurface: { $value: "#1A1D24", $type: "color" },
|
|
46938
|
+
surfaceVariant: { $value: "#F6F5EE", $type: "color" },
|
|
46939
|
+
onSurfaceVariant: { $value: "#4A4F5C", $type: "color" },
|
|
46940
|
+
container: { $value: "#FBFAF6", $type: "color" },
|
|
46941
|
+
onContainer: { $value: "#1A1D24", $type: "color" },
|
|
46942
|
+
outline: { $value: "rgba(26, 29, 36, 0.18)", $type: "color" },
|
|
46943
|
+
outlineVariant: { $value: "rgba(26, 29, 36, 0.10)", $type: "color" },
|
|
46944
|
+
onPrimary: { $value: "#0E1014", $type: "color" },
|
|
46945
|
+
primaryContainer: { $value: "#E9FFB8", $type: "color" },
|
|
46946
|
+
onPrimaryContainer: { $value: "#28390B", $type: "color" },
|
|
46947
|
+
onError: { $value: "#FFFFFF", $type: "color" },
|
|
46948
|
+
errorContainer: { $value: "#FFE9E8", $type: "color" },
|
|
46949
|
+
onErrorContainer: { $value: "#8A1F1F", $type: "color" },
|
|
46950
|
+
tertiary: { $value: "#D6247F", $type: "color" },
|
|
46951
|
+
onTertiary: { $value: "#FFFFFF", $type: "color" },
|
|
46952
|
+
tertiaryContainer: { $value: "#FFDCEE", $type: "color" },
|
|
46953
|
+
onTertiaryContainer: { $value: "#6B1240", $type: "color" }
|
|
46954
|
+
},
|
|
46955
|
+
...shared8,
|
|
46956
|
+
shape: { radius: sharedRadius, shadow: lightShadows }
|
|
46957
|
+
};
|
|
46958
|
+
var theme8 = {
|
|
46959
|
+
light: guueyBrandLight,
|
|
46960
|
+
dark: guueyBrandDark
|
|
46961
|
+
};
|
|
46617
46962
|
var themes = /* @__PURE__ */ new Map([
|
|
46618
46963
|
["ggui", theme],
|
|
46619
46964
|
["indigo", theme7],
|
|
@@ -46621,7 +46966,11 @@ var themes = /* @__PURE__ */ new Map([
|
|
|
46621
46966
|
["premium-cyberpunk", theme2],
|
|
46622
46967
|
["premium-zen", theme3],
|
|
46623
46968
|
["premium-neon-noir", theme4],
|
|
46624
|
-
["premium-botanical", theme5]
|
|
46969
|
+
["premium-botanical", theme5],
|
|
46970
|
+
// Registered under the EXACT AppTheme.name the guuey widget stamps,
|
|
46971
|
+
// so the runtime's theme-name→registry binding (ggui#589 ask 3)
|
|
46972
|
+
// selects it as the base ladder with no sender-side change.
|
|
46973
|
+
["guuey-brand-v1", theme8]
|
|
46625
46974
|
]);
|
|
46626
46975
|
var parsedCache = /* @__PURE__ */ new Map();
|
|
46627
46976
|
function resolveMode(reg, requested) {
|
|
@@ -46723,27 +47072,29 @@ function getScopedCssTokens(scopeClass, mode = "light") {
|
|
|
46723
47072
|
return getScopedThemeCss(getDefaultThemeId(), scopeClass, mode);
|
|
46724
47073
|
}
|
|
46725
47074
|
function getScopedThemeCss(themeId, scopeClass, mode = "light") {
|
|
46726
|
-
const
|
|
46727
|
-
if (!
|
|
47075
|
+
const theme9 = getTheme(themeId, mode);
|
|
47076
|
+
if (!theme9) {
|
|
46728
47077
|
const defaultId = getDefaultThemeId();
|
|
46729
47078
|
if (themeId === defaultId)
|
|
46730
47079
|
return "";
|
|
46731
47080
|
return getScopedThemeCss(defaultId, scopeClass, mode);
|
|
46732
47081
|
}
|
|
46733
|
-
const primary500 = resolvePrimary500Hex(
|
|
46734
|
-
const scoped = withColorMixFallback(
|
|
47082
|
+
const primary500 = resolvePrimary500Hex(theme9.cssVariables);
|
|
47083
|
+
const scoped = withColorMixFallback(theme9.cssVariables.replace(/^:root\s*\{/, `.${scopeClass} {`), `.${scopeClass}`, primary500);
|
|
46735
47084
|
const baseInherits = `.${scopeClass} {
|
|
46736
47085
|
font-family: var(--ggui-font-family-sans);
|
|
46737
47086
|
color: var(--ggui-color-onSurface);
|
|
46738
47087
|
background-color: transparent;
|
|
46739
47088
|
}`;
|
|
46740
47089
|
const gradientTokens = buildGradientTokens(scopeClass, primary500);
|
|
47090
|
+
const framelessRule = theme9.metadata?.frameless === true ? `
|
|
47091
|
+
.${scopeClass} > :where(:not(style)) { border: none !important; }` : "";
|
|
46741
47092
|
return `${scoped}
|
|
46742
47093
|
${baseInherits}
|
|
46743
47094
|
${gradientTokens}
|
|
46744
|
-
${
|
|
47095
|
+
${theme9.cssKeyframes}
|
|
46745
47096
|
.${scopeClass} *, .${scopeClass} *::before, .${scopeClass} *::after { box-sizing: border-box; }
|
|
46746
|
-
.${scopeClass} h1, .${scopeClass} h2, .${scopeClass} h3, .${scopeClass} h4, .${scopeClass} h5, .${scopeClass} h6, .${scopeClass} button, .${scopeClass} input, .${scopeClass} textarea, .${scopeClass} select { font-family: inherit; }`;
|
|
47097
|
+
.${scopeClass} h1, .${scopeClass} h2, .${scopeClass} h3, .${scopeClass} h4, .${scopeClass} h5, .${scopeClass} h6, .${scopeClass} button, .${scopeClass} input, .${scopeClass} textarea, .${scopeClass} select { font-family: inherit; }${framelessRule}`;
|
|
46747
47098
|
}
|
|
46748
47099
|
function buildGradientTokens(scopeClass, primary500Hex) {
|
|
46749
47100
|
const selector = `.${scopeClass}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggui-ai/dev-stack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Shared local dev engine for the ggui protocol: local UI registry discovery, compile-on-demand, filesystem watcher with SSE, and a read-only HTTP surface for dev tooling. Framework-neutral — agent runtime supervision plugs in via an adapter seam, so no agent SDK is hardcoded.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ggui",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"chokidar": "^4.0.3",
|
|
30
30
|
"esbuild": "^0.25.12",
|
|
31
|
-
"@ggui-ai/
|
|
32
|
-
"@ggui-ai/
|
|
33
|
-
"@ggui-ai/
|
|
31
|
+
"@ggui-ai/agent-runtime": "0.11.0",
|
|
32
|
+
"@ggui-ai/ui-registry": "0.11.0",
|
|
33
|
+
"@ggui-ai/project-config": "0.11.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/node": "^24.0.0",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"react-dom": "^19.0.0",
|
|
41
41
|
"typescript": "^5.0.0",
|
|
42
42
|
"vitest": "^3.2.6",
|
|
43
|
-
"@ggui-ai/
|
|
44
|
-
"@ggui-ai/
|
|
45
|
-
"@ggui-ai/wire": "0.
|
|
43
|
+
"@ggui-ai/design": "0.11.0",
|
|
44
|
+
"@ggui-ai/mcp-apps-react": "0.11.0",
|
|
45
|
+
"@ggui-ai/wire": "0.11.0"
|
|
46
46
|
},
|
|
47
47
|
"repository": {
|
|
48
48
|
"type": "git",
|