@ggui-ai/dev-stack 0.20.0 → 0.22.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 +71 -25
- package/package.json +7 -7
|
@@ -20807,6 +20807,8 @@ function buildWireConfig(opts) {
|
|
|
20807
20807
|
...opts.onDispatchSuppressed !== void 0 ? { onDispatchSuppressed: opts.onDispatchSuppressed } : {},
|
|
20808
20808
|
dispatch: (actionName, data) => {
|
|
20809
20809
|
const actionSpec = opts.getActiveActionSpec();
|
|
20810
|
+
if (actionSpec === void 0)
|
|
20811
|
+
opts.onActionSpecAbsent?.(actionName);
|
|
20810
20812
|
const isOneShot = actionSpec?.[actionName]?.oneShot === true;
|
|
20811
20813
|
if (isOneShot && spentOneShots.has(actionName)) {
|
|
20812
20814
|
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.`);
|
|
@@ -21587,14 +21589,29 @@ var easing = {
|
|
|
21587
21589
|
easeInOut: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
21588
21590
|
spring: "cubic-bezier(0.175, 0.885, 0.32, 1.275)"
|
|
21589
21591
|
};
|
|
21592
|
+
var motionVar = {
|
|
21593
|
+
duration: {
|
|
21594
|
+
fast: "var(--ggui-motion-duration-fast)",
|
|
21595
|
+
base: "var(--ggui-motion-duration-base)",
|
|
21596
|
+
slow: "var(--ggui-motion-duration-slow)"
|
|
21597
|
+
},
|
|
21598
|
+
easing: {
|
|
21599
|
+
/** The system's ease-in-out — the default for colour, border and size changes. */
|
|
21600
|
+
standard: "var(--ggui-motion-easing-standard)",
|
|
21601
|
+
/** The decelerating arrival — transforms and entrances. */
|
|
21602
|
+
emphasized: "var(--ggui-motion-easing-emphasized)",
|
|
21603
|
+
/** The accelerating departure. */
|
|
21604
|
+
exit: "var(--ggui-motion-easing-exit)"
|
|
21605
|
+
}
|
|
21606
|
+
};
|
|
21590
21607
|
var transition = {
|
|
21591
21608
|
none: "none",
|
|
21592
|
-
fast: `${duration.fast} ${easing.
|
|
21593
|
-
normal: `${duration.
|
|
21594
|
-
slow: `${duration.slow} ${easing.
|
|
21595
|
-
colors: `color ${duration.
|
|
21596
|
-
opacity: `opacity ${duration.
|
|
21597
|
-
transform: `transform ${duration.
|
|
21609
|
+
fast: `${motionVar.duration.fast} ${motionVar.easing.standard}`,
|
|
21610
|
+
normal: `${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21611
|
+
slow: `${motionVar.duration.slow} ${motionVar.easing.standard}`,
|
|
21612
|
+
colors: `color ${motionVar.duration.base} ${motionVar.easing.standard}, background-color ${motionVar.duration.base} ${motionVar.easing.standard}, border-color ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21613
|
+
opacity: `opacity ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21614
|
+
transform: `transform ${motionVar.duration.base} ${motionVar.easing.emphasized}`
|
|
21598
21615
|
};
|
|
21599
21616
|
var sizeStyles = {
|
|
21600
21617
|
xs: {
|
|
@@ -21668,7 +21685,7 @@ function Button({ children, variant = "primary", size = "md", fullWidth, loading
|
|
|
21668
21685
|
cursor: isDisabled ? "not-allowed" : "pointer",
|
|
21669
21686
|
opacity: isDisabled ? 0.5 : 1,
|
|
21670
21687
|
width: fullWidth ? "100%" : void 0,
|
|
21671
|
-
transition: `background-color ${duration.
|
|
21688
|
+
transition: `background-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}, opacity ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21672
21689
|
boxShadow: "var(--ggui-shape-shadow-sm, 0 1px 2px rgba(0,0,0,0.05))",
|
|
21673
21690
|
...style
|
|
21674
21691
|
}, ...rest, children: loading ? (0, import_jsx_runtime9.jsx)(Spinner, { size: 16, tone: "inherit" }) : (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [leftIcon, children, rightIcon] }) });
|
|
@@ -21709,7 +21726,7 @@ function Input({ label, placeholder, value, onChange, type = "text", error, help
|
|
|
21709
21726
|
border: `1px solid ${hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-outline, #d4d4d8)"}`,
|
|
21710
21727
|
backgroundColor: disabled ? "var(--ggui-color-sunken, #fafafa)" : "var(--ggui-color-sunken, #ffffff)",
|
|
21711
21728
|
color: "var(--ggui-color-onContainer, #18181b)",
|
|
21712
|
-
transition: `border-color ${duration.
|
|
21729
|
+
transition: `border-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21713
21730
|
boxSizing: "border-box"
|
|
21714
21731
|
}, ...rest }), hasMessage && (0, import_jsx_runtime11.jsx)("span", { id: messageId, role: hasError ? "alert" : void 0, style: {
|
|
21715
21732
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
@@ -21741,7 +21758,7 @@ function TextArea({ label, placeholder, value, onChange, rows = 4, error, helper
|
|
|
21741
21758
|
color: "var(--ggui-color-onContainer, #18181b)",
|
|
21742
21759
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
21743
21760
|
fontFamily: "inherit",
|
|
21744
|
-
transition: `border-color ${duration.
|
|
21761
|
+
transition: `border-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21745
21762
|
boxSizing: "border-box",
|
|
21746
21763
|
resize: autoResize ? "none" : "vertical"
|
|
21747
21764
|
}, ...rest }), (0, import_jsx_runtime12.jsxs)("div", { style: { display: "flex", justifyContent: "space-between" }, children: [hasMessage && (0, import_jsx_runtime12.jsx)("span", { id: messageId, role: hasError ? "alert" : void 0, style: {
|
|
@@ -21782,7 +21799,7 @@ function Select({ label, value, onChange, options, placeholder, error, helperTex
|
|
|
21782
21799
|
backgroundPosition: "right 12px center",
|
|
21783
21800
|
paddingRight: "36px",
|
|
21784
21801
|
boxSizing: "border-box",
|
|
21785
|
-
transition: `border-color ${duration.
|
|
21802
|
+
transition: `border-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}`
|
|
21786
21803
|
}, ...rest, children: [placeholder && (0, import_jsx_runtime13.jsx)("option", { value: "", disabled: true, children: placeholder }), options.map((opt) => (0, import_jsx_runtime13.jsx)("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value))] }), hasMessage && (0, import_jsx_runtime13.jsx)("span", { id: messageId, role: hasError ? "alert" : void 0, style: {
|
|
21787
21804
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
21788
21805
|
color: hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-onSunken, #52525b)"
|
|
@@ -21821,7 +21838,7 @@ function Checkbox({ label, checked, onChange, disabled, description, indetermina
|
|
|
21821
21838
|
display: "flex",
|
|
21822
21839
|
alignItems: "center",
|
|
21823
21840
|
justifyContent: "center",
|
|
21824
|
-
transition:
|
|
21841
|
+
transition: `all ${motionVar.duration.base} ${motionVar.easing.standard}`
|
|
21825
21842
|
}, children: (checked || indeterminate) && (0, import_jsx_runtime14.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_runtime14.jsx)("path", { d: "M2.5 6H9.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) : (0, import_jsx_runtime14.jsx)("path", { d: "M2.5 6L5 8.5L9.5 3.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) })] }), (label || description) && (0, import_jsx_runtime14.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "2px" }, children: [label && (0, import_jsx_runtime14.jsx)("span", { style: {
|
|
21826
21843
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
21827
21844
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
@@ -21859,7 +21876,7 @@ function Toggle({ label, checked, onChange, disabled, size = "md", style, classN
|
|
|
21859
21876
|
borderRadius: "9999px",
|
|
21860
21877
|
backgroundColor: checked ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-outline, #d4d4d8)",
|
|
21861
21878
|
position: "relative",
|
|
21862
|
-
transition: `background-color ${duration.
|
|
21879
|
+
transition: `background-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21863
21880
|
flexShrink: 0,
|
|
21864
21881
|
outline: "none",
|
|
21865
21882
|
boxShadow: focused ? "0 0 0 3px var(--ggui-color-primary-200, #bae6fd)" : void 0
|
|
@@ -21871,7 +21888,7 @@ function Toggle({ label, checked, onChange, disabled, size = "md", style, classN
|
|
|
21871
21888
|
position: "absolute",
|
|
21872
21889
|
top: (config.height - config.knob) / 2,
|
|
21873
21890
|
left: checked ? config.width - config.knob - (config.height - config.knob) / 2 : (config.height - config.knob) / 2,
|
|
21874
|
-
transition: `left ${duration.
|
|
21891
|
+
transition: `left ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21875
21892
|
boxShadow: "var(--ggui-shape-shadow-sm, 0 1px 2px rgba(0,0,0,0.05))"
|
|
21876
21893
|
} }) }), label && (0, import_jsx_runtime15.jsx)("span", { style: {
|
|
21877
21894
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
@@ -21925,7 +21942,7 @@ function RadioGroup({ label, value, onChange, options, direction = "vertical", d
|
|
|
21925
21942
|
display: "flex",
|
|
21926
21943
|
alignItems: "center",
|
|
21927
21944
|
justifyContent: "center",
|
|
21928
|
-
transition:
|
|
21945
|
+
transition: `all ${motionVar.duration.base} ${motionVar.easing.standard}`
|
|
21929
21946
|
}, children: isSelected && (0, import_jsx_runtime16.jsx)("div", { style: {
|
|
21930
21947
|
width: "8px",
|
|
21931
21948
|
height: "8px",
|
|
@@ -21969,7 +21986,7 @@ function Slider({ label, value = 0, onChange, min = 0, max = 100, step = 1, disa
|
|
|
21969
21986
|
height: "6px",
|
|
21970
21987
|
borderRadius: "3px",
|
|
21971
21988
|
backgroundColor: disabled ? "var(--ggui-color-outline, #d4d4d8)" : "var(--ggui-color-primary-600, #0284c7)",
|
|
21972
|
-
transition:
|
|
21989
|
+
transition: `width ${motionVar.duration.fast} ${motionVar.easing.standard}`
|
|
21973
21990
|
} }), (0, import_jsx_runtime17.jsx)("input", { id: sliderId, type: "range", min, max, step, value, onChange: (e) => onChange?.(Number(e.target.value)), disabled, "aria-labelledby": label ? labelId : void 0, "aria-label": label ? void 0 : "Slider", "aria-valuenow": value, "aria-valuemin": min, "aria-valuemax": max, style: {
|
|
21974
21991
|
position: "absolute",
|
|
21975
21992
|
width: "100%",
|
|
@@ -21987,7 +22004,7 @@ function Slider({ label, value = 0, onChange, min = 0, max = 100, step = 1, disa
|
|
|
21987
22004
|
backgroundColor: "#ffffff",
|
|
21988
22005
|
border: `2px solid ${disabled ? "var(--ggui-color-outline, #d4d4d8)" : "var(--ggui-color-primary-600, #0284c7)"}`,
|
|
21989
22006
|
boxShadow: "var(--ggui-shape-shadow-sm, 0 1px 2px rgba(0,0,0,0.05))",
|
|
21990
|
-
transition:
|
|
22007
|
+
transition: `left ${motionVar.duration.fast} ${motionVar.easing.standard}`,
|
|
21991
22008
|
pointerEvents: "none"
|
|
21992
22009
|
} })] })] });
|
|
21993
22010
|
}
|
|
@@ -22199,7 +22216,7 @@ function Progress({ value, max = 100, variant = "default", size = "md", label, s
|
|
|
22199
22216
|
height: "100%",
|
|
22200
22217
|
borderRadius: height / 2,
|
|
22201
22218
|
backgroundColor: barColor,
|
|
22202
|
-
transition: indeterminate ? "none" :
|
|
22219
|
+
transition: indeterminate ? "none" : `width ${motionVar.duration.slow} ${motionVar.easing.standard}`,
|
|
22203
22220
|
...indeterminate ? {
|
|
22204
22221
|
width: "30%",
|
|
22205
22222
|
animation: "ggui-progress-indeterminate 1.5s ease-in-out infinite"
|
|
@@ -26816,7 +26833,7 @@ function Link({ children, href, external, tone, underline = "hover", style, clas
|
|
|
26816
26833
|
color: linkColor,
|
|
26817
26834
|
textDecoration: underlineStyle,
|
|
26818
26835
|
cursor: "pointer",
|
|
26819
|
-
transition:
|
|
26836
|
+
transition: `color ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
26820
26837
|
...style
|
|
26821
26838
|
}, onMouseEnter: (e) => {
|
|
26822
26839
|
if (underline === "hover") {
|
|
@@ -26968,7 +26985,7 @@ function Table({ columns, data, sortKey, sortDirection = "asc", onSort, striped
|
|
|
26968
26985
|
cursor: col.sortable ? "pointer" : "default"
|
|
26969
26986
|
}, children: (0, import_jsx_runtime27.jsxs)("span", { style: { display: "inline-flex", alignItems: "center" }, children: [col.header, col.sortable && sortIndicator(sortKey === col.key, sortDirection)] }) }, col.key)) }) }), (0, import_jsx_runtime27.jsx)("tbody", { children: data.map((row, rowIndex) => (0, import_jsx_runtime27.jsx)("tr", { onMouseEnter: hoverable ? () => setHoveredRow(rowIndex) : void 0, onMouseLeave: hoverable ? () => setHoveredRow(null) : void 0, style: {
|
|
26970
26987
|
backgroundColor: hoverable && hoveredRow === rowIndex ? "var(--ggui-color-sunken, #fafafa)" : striped && rowIndex % 2 === 1 ? "var(--ggui-color-sunken, #fafafa)" : "transparent",
|
|
26971
|
-
transition:
|
|
26988
|
+
transition: `background-color ${motionVar.duration.fast} ${motionVar.easing.standard}`
|
|
26972
26989
|
}, children: columns.map((col) => (0, import_jsx_runtime27.jsx)("td", { style: {
|
|
26973
26990
|
padding: cellPadding,
|
|
26974
26991
|
textAlign: col.align || "left",
|
|
@@ -27038,7 +27055,7 @@ function Tabs({ items, activeKey, onChange, variant = "line", size = "md", fullW
|
|
|
27038
27055
|
background: "none",
|
|
27039
27056
|
border: "none",
|
|
27040
27057
|
fontWeight: isActive ? "var(--ggui-font-weight-semibold, 600)" : "var(--ggui-font-weight-medium, 500)",
|
|
27041
|
-
transition: `color ${duration.
|
|
27058
|
+
transition: `color ${motionVar.duration.base} ${motionVar.easing.standard}, background-color ${motionVar.duration.base} ${motionVar.easing.standard}, border-color ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
27042
27059
|
whiteSpace: "nowrap",
|
|
27043
27060
|
flex: fullWidth ? 1 : void 0,
|
|
27044
27061
|
justifyContent: fullWidth ? "center" : void 0
|
|
@@ -27320,7 +27337,7 @@ function Toast({ message, variant = "info", title, duration: duration2 = 5e3, on
|
|
|
27320
27337
|
}, children: (0, import_jsx_runtime29.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 20 20", fill: "currentColor", children: (0, import_jsx_runtime29.jsx)("path", { fillRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z", clipRule: "evenodd" }) }) })] });
|
|
27321
27338
|
}
|
|
27322
27339
|
var chevron = (expanded) => (0, import_jsx_runtime30.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", style: {
|
|
27323
|
-
transition: `transform ${duration.
|
|
27340
|
+
transition: `transform ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
27324
27341
|
transform: expanded ? "rotate(180deg)" : "rotate(0deg)",
|
|
27325
27342
|
flexShrink: 0
|
|
27326
27343
|
}, children: (0, import_jsx_runtime30.jsx)("path", { fillRule: "evenodd", d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z", clipRule: "evenodd" }) });
|
|
@@ -27393,7 +27410,7 @@ function Accordion({ items, expandedKeys, onChange, multiple = false, variant =
|
|
|
27393
27410
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
27394
27411
|
color: "var(--ggui-color-onContainer, #18181b)",
|
|
27395
27412
|
textAlign: "left",
|
|
27396
|
-
transition: `background-color ${duration.fast} ${easing.
|
|
27413
|
+
transition: `background-color ${motionVar.duration.fast} ${motionVar.easing.standard}`
|
|
27397
27414
|
}, children: [(0, import_jsx_runtime30.jsx)("span", { children: item.title }), chevron(isExpanded)] }) }), (0, import_jsx_runtime30.jsx)("div", { id: `${uniqueId}-panel-${item.key}`, role: "region", "aria-labelledby": `${uniqueId}-header-${item.key}`, hidden: !isExpanded, style: {
|
|
27398
27415
|
overflow: "hidden"
|
|
27399
27416
|
}, children: isExpanded && (0, import_jsx_runtime30.jsx)("div", { style: {
|
|
@@ -27552,7 +27569,7 @@ function MenuItem({ label, icon, rightElement, onClick, disabled, active, danger
|
|
|
27552
27569
|
fontWeight: active ? fontWeight.medium : fontWeight.normal,
|
|
27553
27570
|
textAlign: "left",
|
|
27554
27571
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
27555
|
-
transition:
|
|
27572
|
+
transition: `background-color ${motionVar.duration.fast} ${motionVar.easing.standard}`,
|
|
27556
27573
|
...style
|
|
27557
27574
|
}, onMouseEnter: (e) => {
|
|
27558
27575
|
if (!disabled && !active) {
|
|
@@ -27852,7 +27869,7 @@ function Pagination({ currentPage, totalPages, onPageChange, showFirstLast = tru
|
|
|
27852
27869
|
fontWeight: active ? fontWeight.medium : fontWeight.normal,
|
|
27853
27870
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
27854
27871
|
opacity: disabled ? 0.5 : 1,
|
|
27855
|
-
transition:
|
|
27872
|
+
transition: `all ${motionVar.duration.fast} ${motionVar.easing.standard}`
|
|
27856
27873
|
}, children: page });
|
|
27857
27874
|
return (0, import_jsx_runtime38.jsxs)("nav", { "aria-label": "Pagination", className, style: {
|
|
27858
27875
|
display: "flex",
|
|
@@ -27911,7 +27928,7 @@ function Marker({ index, state }) {
|
|
|
27911
27928
|
justifyContent: "center",
|
|
27912
27929
|
flexShrink: 0,
|
|
27913
27930
|
boxSizing: "border-box",
|
|
27914
|
-
transition:
|
|
27931
|
+
transition: `background-color ${motionVar.duration.base} ${motionVar.easing.standard}, border-color ${motionVar.duration.base} ${motionVar.easing.standard}, color ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
27915
27932
|
...markerStyles[state]
|
|
27916
27933
|
}, children: state === "completed" ? (0, import_jsx_runtime41.jsx)(Icon, { name: "check", size: 16, tone: "inherit" }) : (0, import_jsx_runtime41.jsx)(Text, { is: "span", size: "sm", weight: "semibold", tone: "inherit", children: index + 1 }) });
|
|
27917
27934
|
}
|
|
@@ -29449,6 +29466,14 @@ var consumed_tokens_manifest_default = {
|
|
|
29449
29466
|
"--ggui-font-weight-normal",
|
|
29450
29467
|
"--ggui-font-weight-semibold",
|
|
29451
29468
|
"--ggui-letter-spacing-heading",
|
|
29469
|
+
"--ggui-motion-duration-base",
|
|
29470
|
+
"--ggui-motion-duration-fast",
|
|
29471
|
+
"--ggui-motion-duration-slow",
|
|
29472
|
+
"--ggui-motion-easing-emphasized",
|
|
29473
|
+
"--ggui-motion-easing-exit",
|
|
29474
|
+
"--ggui-motion-easing-standard",
|
|
29475
|
+
"--ggui-scrim-opacity",
|
|
29476
|
+
"--ggui-scrim-tint",
|
|
29452
29477
|
"--ggui-shape-radius-control",
|
|
29453
29478
|
"--ggui-shape-radius-full",
|
|
29454
29479
|
"--ggui-shape-radius-lg",
|
|
@@ -29600,6 +29625,7 @@ var NAMED_SPACING = { xs: "4px", sm: "8px", md: "16px", lg: "24px", xl: "32px",
|
|
|
29600
29625
|
var SIZE_EXP = { xs: -2, sm: -1, base: 0, lg: 1, xl: 2, "2xl": 3, "3xl": 4, "4xl": 5 };
|
|
29601
29626
|
var ROLE_STOP = { display: "4xl", h1: "3xl", h2: "2xl", body: "base", label: "xs" };
|
|
29602
29627
|
var LAYER1_SPACING_UNIT_PX = 4;
|
|
29628
|
+
var SCRIM_DEFAULT_OPACITY = "0.45";
|
|
29603
29629
|
function tokenValue(t) {
|
|
29604
29630
|
if (t === void 0 || t === null || typeof t !== "object" || !("$value" in t))
|
|
29605
29631
|
return void 0;
|
|
@@ -29631,6 +29657,15 @@ function readToken(t, path, report) {
|
|
|
29631
29657
|
function stated(group, key) {
|
|
29632
29658
|
return tokenValue(group?.[key]);
|
|
29633
29659
|
}
|
|
29660
|
+
function scrimTint(tone) {
|
|
29661
|
+
if (tone === void 0)
|
|
29662
|
+
return void 0;
|
|
29663
|
+
if (tone === "light")
|
|
29664
|
+
return "#ffffff";
|
|
29665
|
+
if (tone === "dark")
|
|
29666
|
+
return "#000000";
|
|
29667
|
+
return tokenValue(tone);
|
|
29668
|
+
}
|
|
29634
29669
|
function familyRamp(group, anchor) {
|
|
29635
29670
|
const statedStops = {};
|
|
29636
29671
|
for (const stop of STOPS) {
|
|
@@ -29833,6 +29868,16 @@ function deriveThemeVariables(doc, mode, options = {}) {
|
|
|
29833
29868
|
const sh = doc.shape?.shadow;
|
|
29834
29869
|
for (const [key, value] of Object.entries(shadow))
|
|
29835
29870
|
V[`--ggui-shape-shadow-${key}`] = stated(sh, key) ?? String(value);
|
|
29871
|
+
const md = doc.motion?.duration;
|
|
29872
|
+
const me = doc.motion?.easing;
|
|
29873
|
+
V["--ggui-motion-duration-fast"] = stated(md, "fast") ?? duration.fast;
|
|
29874
|
+
V["--ggui-motion-duration-base"] = stated(md, "base") ?? duration.normal;
|
|
29875
|
+
V["--ggui-motion-duration-slow"] = stated(md, "slow") ?? duration.slow;
|
|
29876
|
+
V["--ggui-motion-easing-standard"] = stated(me, "standard") ?? easing.easeInOut;
|
|
29877
|
+
V["--ggui-motion-easing-emphasized"] = stated(me, "emphasized") ?? easing.easeOut;
|
|
29878
|
+
V["--ggui-motion-easing-exit"] = stated(me, "exit") ?? easing.easeIn;
|
|
29879
|
+
V["--ggui-scrim-tint"] = scrimTint(doc.scrim?.tone) ?? V["--ggui-color-ground"];
|
|
29880
|
+
V["--ggui-scrim-opacity"] = tokenValue(doc.scrim?.opacity) ?? SCRIM_DEFAULT_OPACITY;
|
|
29836
29881
|
if (missing.length > 0)
|
|
29837
29882
|
throw new ThemeDocumentInvalidError(missing);
|
|
29838
29883
|
const floor = new Set(NON_THEME_DEFINABLE_TOKENS);
|
|
@@ -33025,6 +33070,7 @@ var TOKENS_EXPORTS = [
|
|
|
33025
33070
|
"duration",
|
|
33026
33071
|
"easing",
|
|
33027
33072
|
"transition",
|
|
33073
|
+
"motionVar",
|
|
33028
33074
|
"keyframes",
|
|
33029
33075
|
"thinkingAnimation",
|
|
33030
33076
|
"thinkingKeyframes",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggui-ai/dev-stack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.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.22.0",
|
|
32
|
+
"@ggui-ai/project-config": "0.22.0",
|
|
33
|
+
"@ggui-ai/ui-registry": "0.22.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.22.0",
|
|
44
|
+
"@ggui-ai/mcp-apps-react": "0.22.0",
|
|
45
|
+
"@ggui-ai/wire": "0.22.0"
|
|
46
46
|
},
|
|
47
47
|
"repository": {
|
|
48
48
|
"type": "git",
|