@ggui-ai/dev-stack 0.22.0 → 0.23.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 +29 -8
- package/package.json +7 -7
|
@@ -20810,7 +20810,8 @@ function buildWireConfig(opts) {
|
|
|
20810
20810
|
if (actionSpec === void 0)
|
|
20811
20811
|
opts.onActionSpecAbsent?.(actionName);
|
|
20812
20812
|
const isOneShot = actionSpec?.[actionName]?.oneShot === true;
|
|
20813
|
-
|
|
20813
|
+
const spent = spentOneShots.has(actionName) || opts.getSpentOneShots?.()?.includes(actionName) === true;
|
|
20814
|
+
if (isOneShot && spent) {
|
|
20814
20815
|
console.warn(`[ggui] dispatch('${actionName}') suppressed: this action is declared oneShot and already fired for this render. A second gesture is NOT sent to the agent \u2014 the submitted control is spent for the render's lifetime. If the action is meant to repeat, remove \`oneShot\` from its contract entry.`);
|
|
20815
20816
|
opts.onDispatchSuppressed?.({
|
|
20816
20817
|
reason: "one-shot-spent",
|
|
@@ -21107,11 +21108,20 @@ function Container({ children, maxWidth: maxWidth2 = "lg", center = true, paddin
|
|
|
21107
21108
|
...style
|
|
21108
21109
|
}, children });
|
|
21109
21110
|
}
|
|
21111
|
+
function frameAttributes(frame) {
|
|
21112
|
+
if (frame === void 0)
|
|
21113
|
+
return {};
|
|
21114
|
+
return {
|
|
21115
|
+
...frame.surface !== void 0 ? { "data-ggui-surface": frame.surface } : {},
|
|
21116
|
+
...frame.bleed === true ? { "data-ggui-bleed": "" } : {}
|
|
21117
|
+
};
|
|
21118
|
+
}
|
|
21110
21119
|
function renderWithTrait(trait, traitProps, root, children) {
|
|
21120
|
+
const marks = frameAttributes(root.frame);
|
|
21111
21121
|
if (trait === void 0) {
|
|
21112
|
-
return (0, import_react9.createElement)("div", { className: root.className, style: root.style }, children);
|
|
21122
|
+
return (0, import_react9.createElement)("div", { className: root.className, style: root.style, ...marks }, children);
|
|
21113
21123
|
}
|
|
21114
|
-
return (0, import_react9.createElement)(trait, { ...traitProps, className: root.className, style: root.style }, children);
|
|
21124
|
+
return (0, import_react9.createElement)(trait, { ...traitProps, className: root.className, style: root.style, ...marks }, children);
|
|
21115
21125
|
}
|
|
21116
21126
|
function resolveToneCss(tone) {
|
|
21117
21127
|
switch (tone) {
|
|
@@ -21235,9 +21245,14 @@ function Card(props) {
|
|
|
21235
21245
|
surface,
|
|
21236
21246
|
style,
|
|
21237
21247
|
className,
|
|
21248
|
+
bleed,
|
|
21238
21249
|
as: Trait,
|
|
21239
21250
|
...traitProps
|
|
21240
21251
|
} = props;
|
|
21252
|
+
const frame = {
|
|
21253
|
+
...surface !== "transparent" ? { surface: surface ?? "default" } : {},
|
|
21254
|
+
...bleed === true ? { bleed: true } : {}
|
|
21255
|
+
};
|
|
21241
21256
|
const resolvedPadding = resolveSpacing(padding);
|
|
21242
21257
|
const resolvedSurface = resolveSurfaceCss(surface ?? "default");
|
|
21243
21258
|
const resolvedOnColor = resolveSurfaceOnColorCss(surface ?? "default");
|
|
@@ -21255,10 +21270,11 @@ function Card(props) {
|
|
|
21255
21270
|
if (scope !== void 0) {
|
|
21256
21271
|
return renderWithTrait(Trait, traitProps, {
|
|
21257
21272
|
className: className ? `${className} ${scope.className}` : scope.className,
|
|
21258
|
-
style: composedStyle
|
|
21273
|
+
style: composedStyle,
|
|
21274
|
+
frame
|
|
21259
21275
|
}, (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [(0, import_jsx_runtime4.jsx)("style", { children: scope.css }), children] }));
|
|
21260
21276
|
}
|
|
21261
|
-
return renderWithTrait(Trait, traitProps, { className, style: composedStyle }, children);
|
|
21277
|
+
return renderWithTrait(Trait, traitProps, { className, style: composedStyle, frame }, children);
|
|
21262
21278
|
}
|
|
21263
21279
|
var justifyMap = {
|
|
21264
21280
|
start: "flex-start",
|
|
@@ -21344,7 +21360,9 @@ function Grid(props) {
|
|
|
21344
21360
|
return renderWithTrait(Trait, traitProps, { className, style: composedStyle }, children);
|
|
21345
21361
|
}
|
|
21346
21362
|
function Box(props) {
|
|
21347
|
-
const { children, padding, paddingX, paddingY, margin, surface, assetColor, assetSemantic, radius: radius2, style, className, as: Trait, ...traitProps } = props;
|
|
21363
|
+
const { children, padding, paddingX, paddingY, margin, surface, assetColor, assetSemantic, radius: radius2, style, className, bleed, as: Trait, ...traitProps } = props;
|
|
21364
|
+
const markedSurface = surface !== void 0 && surface !== "transparent" ? surface : void 0;
|
|
21365
|
+
const frame = markedSurface === void 0 && bleed !== true ? void 0 : { ...markedSurface !== void 0 ? { surface: markedSurface } : {}, ...bleed === true ? { bleed: true } : {} };
|
|
21348
21366
|
let computedPadding;
|
|
21349
21367
|
if (paddingX !== void 0 || paddingY !== void 0) {
|
|
21350
21368
|
const px = resolveSpacing(paddingX) || "0";
|
|
@@ -21369,10 +21387,11 @@ function Box(props) {
|
|
|
21369
21387
|
if (scope !== void 0) {
|
|
21370
21388
|
return renderWithTrait(Trait, traitProps, {
|
|
21371
21389
|
className: className ? `${className} ${scope.className}` : scope.className,
|
|
21372
|
-
style: composedStyle
|
|
21390
|
+
style: composedStyle,
|
|
21391
|
+
...frame !== void 0 ? { frame } : {}
|
|
21373
21392
|
}, (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [(0, import_jsx_runtime6.jsx)("style", { children: scope.css }), children] }));
|
|
21374
21393
|
}
|
|
21375
|
-
return renderWithTrait(Trait, traitProps, { className, style: composedStyle }, children);
|
|
21394
|
+
return renderWithTrait(Trait, traitProps, { className, style: composedStyle, ...frame !== void 0 ? { frame } : {} }, children);
|
|
21376
21395
|
}
|
|
21377
21396
|
function Divider({ orientation = "horizontal", margin = "var(--ggui-spacing-md, 16px)", tone, style, className }) {
|
|
21378
21397
|
const resolvedMargin = typeof margin === "number" ? `${margin}px` : margin;
|
|
@@ -32891,6 +32910,8 @@ function framelessSuppressionRule(scopeClass) {
|
|
|
32891
32910
|
return `
|
|
32892
32911
|
.${scopeClass} > :where(:not(style)) { border: none !important; }`;
|
|
32893
32912
|
}
|
|
32913
|
+
var EXPANDED_FRAME = { outerRadiusVar: "--ggui-shape-radius-xl", insetPx: 16 };
|
|
32914
|
+
var EXPANDED_FRAME_INNER_RADIUS = `max(0px, calc(var(${EXPANDED_FRAME.outerRadiusVar}) - ${EXPANDED_FRAME.insetPx}px))`;
|
|
32894
32915
|
function structuralScaffolding(scopeClass) {
|
|
32895
32916
|
return `.${scopeClass} *, .${scopeClass} *::before, .${scopeClass} *::after { box-sizing: border-box; }
|
|
32896
32917
|
.${scopeClass} h1, .${scopeClass} h2, .${scopeClass} h3, .${scopeClass} h4, .${scopeClass} h5, .${scopeClass} h6, .${scopeClass} button, .${scopeClass} input, .${scopeClass} textarea, .${scopeClass} select { font-family: inherit; }`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggui-ai/dev-stack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.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.28.2",
|
|
31
|
-
"@ggui-ai/agent-runtime": "0.
|
|
32
|
-
"@ggui-ai/project-config": "0.
|
|
33
|
-
"@ggui-ai/ui-registry": "0.
|
|
31
|
+
"@ggui-ai/agent-runtime": "0.23.0",
|
|
32
|
+
"@ggui-ai/project-config": "0.23.0",
|
|
33
|
+
"@ggui-ai/ui-registry": "0.23.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/design": "0.
|
|
44
|
-
"@ggui-ai/mcp-apps-react": "0.
|
|
45
|
-
"@ggui-ai/wire": "0.
|
|
43
|
+
"@ggui-ai/design": "0.23.0",
|
|
44
|
+
"@ggui-ai/mcp-apps-react": "0.23.0",
|
|
45
|
+
"@ggui-ai/wire": "0.23.0"
|
|
46
46
|
},
|
|
47
47
|
"repository": {
|
|
48
48
|
"type": "git",
|