@ggui-ai/dev-stack 0.19.0 → 0.21.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 +69 -25
- package/package.json +7 -7
|
@@ -21587,14 +21587,29 @@ var easing = {
|
|
|
21587
21587
|
easeInOut: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
21588
21588
|
spring: "cubic-bezier(0.175, 0.885, 0.32, 1.275)"
|
|
21589
21589
|
};
|
|
21590
|
+
var motionVar = {
|
|
21591
|
+
duration: {
|
|
21592
|
+
fast: "var(--ggui-motion-duration-fast)",
|
|
21593
|
+
base: "var(--ggui-motion-duration-base)",
|
|
21594
|
+
slow: "var(--ggui-motion-duration-slow)"
|
|
21595
|
+
},
|
|
21596
|
+
easing: {
|
|
21597
|
+
/** The system's ease-in-out — the default for colour, border and size changes. */
|
|
21598
|
+
standard: "var(--ggui-motion-easing-standard)",
|
|
21599
|
+
/** The decelerating arrival — transforms and entrances. */
|
|
21600
|
+
emphasized: "var(--ggui-motion-easing-emphasized)",
|
|
21601
|
+
/** The accelerating departure. */
|
|
21602
|
+
exit: "var(--ggui-motion-easing-exit)"
|
|
21603
|
+
}
|
|
21604
|
+
};
|
|
21590
21605
|
var transition = {
|
|
21591
21606
|
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.
|
|
21607
|
+
fast: `${motionVar.duration.fast} ${motionVar.easing.standard}`,
|
|
21608
|
+
normal: `${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21609
|
+
slow: `${motionVar.duration.slow} ${motionVar.easing.standard}`,
|
|
21610
|
+
colors: `color ${motionVar.duration.base} ${motionVar.easing.standard}, background-color ${motionVar.duration.base} ${motionVar.easing.standard}, border-color ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21611
|
+
opacity: `opacity ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21612
|
+
transform: `transform ${motionVar.duration.base} ${motionVar.easing.emphasized}`
|
|
21598
21613
|
};
|
|
21599
21614
|
var sizeStyles = {
|
|
21600
21615
|
xs: {
|
|
@@ -21668,7 +21683,7 @@ function Button({ children, variant = "primary", size = "md", fullWidth, loading
|
|
|
21668
21683
|
cursor: isDisabled ? "not-allowed" : "pointer",
|
|
21669
21684
|
opacity: isDisabled ? 0.5 : 1,
|
|
21670
21685
|
width: fullWidth ? "100%" : void 0,
|
|
21671
|
-
transition: `background-color ${duration.
|
|
21686
|
+
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
21687
|
boxShadow: "var(--ggui-shape-shadow-sm, 0 1px 2px rgba(0,0,0,0.05))",
|
|
21673
21688
|
...style
|
|
21674
21689
|
}, ...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 +21724,7 @@ function Input({ label, placeholder, value, onChange, type = "text", error, help
|
|
|
21709
21724
|
border: `1px solid ${hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-outline, #d4d4d8)"}`,
|
|
21710
21725
|
backgroundColor: disabled ? "var(--ggui-color-sunken, #fafafa)" : "var(--ggui-color-sunken, #ffffff)",
|
|
21711
21726
|
color: "var(--ggui-color-onContainer, #18181b)",
|
|
21712
|
-
transition: `border-color ${duration.
|
|
21727
|
+
transition: `border-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21713
21728
|
boxSizing: "border-box"
|
|
21714
21729
|
}, ...rest }), hasMessage && (0, import_jsx_runtime11.jsx)("span", { id: messageId, role: hasError ? "alert" : void 0, style: {
|
|
21715
21730
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
@@ -21741,7 +21756,7 @@ function TextArea({ label, placeholder, value, onChange, rows = 4, error, helper
|
|
|
21741
21756
|
color: "var(--ggui-color-onContainer, #18181b)",
|
|
21742
21757
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
21743
21758
|
fontFamily: "inherit",
|
|
21744
|
-
transition: `border-color ${duration.
|
|
21759
|
+
transition: `border-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21745
21760
|
boxSizing: "border-box",
|
|
21746
21761
|
resize: autoResize ? "none" : "vertical"
|
|
21747
21762
|
}, ...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 +21797,7 @@ function Select({ label, value, onChange, options, placeholder, error, helperTex
|
|
|
21782
21797
|
backgroundPosition: "right 12px center",
|
|
21783
21798
|
paddingRight: "36px",
|
|
21784
21799
|
boxSizing: "border-box",
|
|
21785
|
-
transition: `border-color ${duration.
|
|
21800
|
+
transition: `border-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}`
|
|
21786
21801
|
}, ...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
21802
|
fontSize: "var(--ggui-font-size-xs, 12px)",
|
|
21788
21803
|
color: hasError ? "var(--ggui-color-error-500, #ef4444)" : "var(--ggui-color-onSunken, #52525b)"
|
|
@@ -21821,7 +21836,7 @@ function Checkbox({ label, checked, onChange, disabled, description, indetermina
|
|
|
21821
21836
|
display: "flex",
|
|
21822
21837
|
alignItems: "center",
|
|
21823
21838
|
justifyContent: "center",
|
|
21824
|
-
transition:
|
|
21839
|
+
transition: `all ${motionVar.duration.base} ${motionVar.easing.standard}`
|
|
21825
21840
|
}, 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
21841
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
21827
21842
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
@@ -21859,7 +21874,7 @@ function Toggle({ label, checked, onChange, disabled, size = "md", style, classN
|
|
|
21859
21874
|
borderRadius: "9999px",
|
|
21860
21875
|
backgroundColor: checked ? "var(--ggui-color-primary-600, #0284c7)" : "var(--ggui-color-outline, #d4d4d8)",
|
|
21861
21876
|
position: "relative",
|
|
21862
|
-
transition: `background-color ${duration.
|
|
21877
|
+
transition: `background-color ${motionVar.duration.base} ${motionVar.easing.standard}, box-shadow ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21863
21878
|
flexShrink: 0,
|
|
21864
21879
|
outline: "none",
|
|
21865
21880
|
boxShadow: focused ? "0 0 0 3px var(--ggui-color-primary-200, #bae6fd)" : void 0
|
|
@@ -21871,7 +21886,7 @@ function Toggle({ label, checked, onChange, disabled, size = "md", style, classN
|
|
|
21871
21886
|
position: "absolute",
|
|
21872
21887
|
top: (config.height - config.knob) / 2,
|
|
21873
21888
|
left: checked ? config.width - config.knob - (config.height - config.knob) / 2 : (config.height - config.knob) / 2,
|
|
21874
|
-
transition: `left ${duration.
|
|
21889
|
+
transition: `left ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
21875
21890
|
boxShadow: "var(--ggui-shape-shadow-sm, 0 1px 2px rgba(0,0,0,0.05))"
|
|
21876
21891
|
} }) }), label && (0, import_jsx_runtime15.jsx)("span", { style: {
|
|
21877
21892
|
fontSize: "var(--ggui-font-size-sm, 14px)",
|
|
@@ -21925,7 +21940,7 @@ function RadioGroup({ label, value, onChange, options, direction = "vertical", d
|
|
|
21925
21940
|
display: "flex",
|
|
21926
21941
|
alignItems: "center",
|
|
21927
21942
|
justifyContent: "center",
|
|
21928
|
-
transition:
|
|
21943
|
+
transition: `all ${motionVar.duration.base} ${motionVar.easing.standard}`
|
|
21929
21944
|
}, children: isSelected && (0, import_jsx_runtime16.jsx)("div", { style: {
|
|
21930
21945
|
width: "8px",
|
|
21931
21946
|
height: "8px",
|
|
@@ -21969,7 +21984,7 @@ function Slider({ label, value = 0, onChange, min = 0, max = 100, step = 1, disa
|
|
|
21969
21984
|
height: "6px",
|
|
21970
21985
|
borderRadius: "3px",
|
|
21971
21986
|
backgroundColor: disabled ? "var(--ggui-color-outline, #d4d4d8)" : "var(--ggui-color-primary-600, #0284c7)",
|
|
21972
|
-
transition:
|
|
21987
|
+
transition: `width ${motionVar.duration.fast} ${motionVar.easing.standard}`
|
|
21973
21988
|
} }), (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
21989
|
position: "absolute",
|
|
21975
21990
|
width: "100%",
|
|
@@ -21987,7 +22002,7 @@ function Slider({ label, value = 0, onChange, min = 0, max = 100, step = 1, disa
|
|
|
21987
22002
|
backgroundColor: "#ffffff",
|
|
21988
22003
|
border: `2px solid ${disabled ? "var(--ggui-color-outline, #d4d4d8)" : "var(--ggui-color-primary-600, #0284c7)"}`,
|
|
21989
22004
|
boxShadow: "var(--ggui-shape-shadow-sm, 0 1px 2px rgba(0,0,0,0.05))",
|
|
21990
|
-
transition:
|
|
22005
|
+
transition: `left ${motionVar.duration.fast} ${motionVar.easing.standard}`,
|
|
21991
22006
|
pointerEvents: "none"
|
|
21992
22007
|
} })] })] });
|
|
21993
22008
|
}
|
|
@@ -22199,7 +22214,7 @@ function Progress({ value, max = 100, variant = "default", size = "md", label, s
|
|
|
22199
22214
|
height: "100%",
|
|
22200
22215
|
borderRadius: height / 2,
|
|
22201
22216
|
backgroundColor: barColor,
|
|
22202
|
-
transition: indeterminate ? "none" :
|
|
22217
|
+
transition: indeterminate ? "none" : `width ${motionVar.duration.slow} ${motionVar.easing.standard}`,
|
|
22203
22218
|
...indeterminate ? {
|
|
22204
22219
|
width: "30%",
|
|
22205
22220
|
animation: "ggui-progress-indeterminate 1.5s ease-in-out infinite"
|
|
@@ -26816,7 +26831,7 @@ function Link({ children, href, external, tone, underline = "hover", style, clas
|
|
|
26816
26831
|
color: linkColor,
|
|
26817
26832
|
textDecoration: underlineStyle,
|
|
26818
26833
|
cursor: "pointer",
|
|
26819
|
-
transition:
|
|
26834
|
+
transition: `color ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
26820
26835
|
...style
|
|
26821
26836
|
}, onMouseEnter: (e) => {
|
|
26822
26837
|
if (underline === "hover") {
|
|
@@ -26968,7 +26983,7 @@ function Table({ columns, data, sortKey, sortDirection = "asc", onSort, striped
|
|
|
26968
26983
|
cursor: col.sortable ? "pointer" : "default"
|
|
26969
26984
|
}, 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
26985
|
backgroundColor: hoverable && hoveredRow === rowIndex ? "var(--ggui-color-sunken, #fafafa)" : striped && rowIndex % 2 === 1 ? "var(--ggui-color-sunken, #fafafa)" : "transparent",
|
|
26971
|
-
transition:
|
|
26986
|
+
transition: `background-color ${motionVar.duration.fast} ${motionVar.easing.standard}`
|
|
26972
26987
|
}, children: columns.map((col) => (0, import_jsx_runtime27.jsx)("td", { style: {
|
|
26973
26988
|
padding: cellPadding,
|
|
26974
26989
|
textAlign: col.align || "left",
|
|
@@ -27038,7 +27053,7 @@ function Tabs({ items, activeKey, onChange, variant = "line", size = "md", fullW
|
|
|
27038
27053
|
background: "none",
|
|
27039
27054
|
border: "none",
|
|
27040
27055
|
fontWeight: isActive ? "var(--ggui-font-weight-semibold, 600)" : "var(--ggui-font-weight-medium, 500)",
|
|
27041
|
-
transition: `color ${duration.
|
|
27056
|
+
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
27057
|
whiteSpace: "nowrap",
|
|
27043
27058
|
flex: fullWidth ? 1 : void 0,
|
|
27044
27059
|
justifyContent: fullWidth ? "center" : void 0
|
|
@@ -27320,7 +27335,7 @@ function Toast({ message, variant = "info", title, duration: duration2 = 5e3, on
|
|
|
27320
27335
|
}, 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
27336
|
}
|
|
27322
27337
|
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.
|
|
27338
|
+
transition: `transform ${motionVar.duration.base} ${motionVar.easing.standard}`,
|
|
27324
27339
|
transform: expanded ? "rotate(180deg)" : "rotate(0deg)",
|
|
27325
27340
|
flexShrink: 0
|
|
27326
27341
|
}, 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 +27408,7 @@ function Accordion({ items, expandedKeys, onChange, multiple = false, variant =
|
|
|
27393
27408
|
fontWeight: "var(--ggui-font-weight-medium, 500)",
|
|
27394
27409
|
color: "var(--ggui-color-onContainer, #18181b)",
|
|
27395
27410
|
textAlign: "left",
|
|
27396
|
-
transition: `background-color ${duration.fast} ${easing.
|
|
27411
|
+
transition: `background-color ${motionVar.duration.fast} ${motionVar.easing.standard}`
|
|
27397
27412
|
}, 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
27413
|
overflow: "hidden"
|
|
27399
27414
|
}, children: isExpanded && (0, import_jsx_runtime30.jsx)("div", { style: {
|
|
@@ -27552,7 +27567,7 @@ function MenuItem({ label, icon, rightElement, onClick, disabled, active, danger
|
|
|
27552
27567
|
fontWeight: active ? fontWeight.medium : fontWeight.normal,
|
|
27553
27568
|
textAlign: "left",
|
|
27554
27569
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
27555
|
-
transition:
|
|
27570
|
+
transition: `background-color ${motionVar.duration.fast} ${motionVar.easing.standard}`,
|
|
27556
27571
|
...style
|
|
27557
27572
|
}, onMouseEnter: (e) => {
|
|
27558
27573
|
if (!disabled && !active) {
|
|
@@ -27852,7 +27867,7 @@ function Pagination({ currentPage, totalPages, onPageChange, showFirstLast = tru
|
|
|
27852
27867
|
fontWeight: active ? fontWeight.medium : fontWeight.normal,
|
|
27853
27868
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
27854
27869
|
opacity: disabled ? 0.5 : 1,
|
|
27855
|
-
transition:
|
|
27870
|
+
transition: `all ${motionVar.duration.fast} ${motionVar.easing.standard}`
|
|
27856
27871
|
}, children: page });
|
|
27857
27872
|
return (0, import_jsx_runtime38.jsxs)("nav", { "aria-label": "Pagination", className, style: {
|
|
27858
27873
|
display: "flex",
|
|
@@ -27911,7 +27926,7 @@ function Marker({ index, state }) {
|
|
|
27911
27926
|
justifyContent: "center",
|
|
27912
27927
|
flexShrink: 0,
|
|
27913
27928
|
boxSizing: "border-box",
|
|
27914
|
-
transition:
|
|
27929
|
+
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
27930
|
...markerStyles[state]
|
|
27916
27931
|
}, 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
27932
|
}
|
|
@@ -29449,6 +29464,14 @@ var consumed_tokens_manifest_default = {
|
|
|
29449
29464
|
"--ggui-font-weight-normal",
|
|
29450
29465
|
"--ggui-font-weight-semibold",
|
|
29451
29466
|
"--ggui-letter-spacing-heading",
|
|
29467
|
+
"--ggui-motion-duration-base",
|
|
29468
|
+
"--ggui-motion-duration-fast",
|
|
29469
|
+
"--ggui-motion-duration-slow",
|
|
29470
|
+
"--ggui-motion-easing-emphasized",
|
|
29471
|
+
"--ggui-motion-easing-exit",
|
|
29472
|
+
"--ggui-motion-easing-standard",
|
|
29473
|
+
"--ggui-scrim-opacity",
|
|
29474
|
+
"--ggui-scrim-tint",
|
|
29452
29475
|
"--ggui-shape-radius-control",
|
|
29453
29476
|
"--ggui-shape-radius-full",
|
|
29454
29477
|
"--ggui-shape-radius-lg",
|
|
@@ -29600,6 +29623,7 @@ var NAMED_SPACING = { xs: "4px", sm: "8px", md: "16px", lg: "24px", xl: "32px",
|
|
|
29600
29623
|
var SIZE_EXP = { xs: -2, sm: -1, base: 0, lg: 1, xl: 2, "2xl": 3, "3xl": 4, "4xl": 5 };
|
|
29601
29624
|
var ROLE_STOP = { display: "4xl", h1: "3xl", h2: "2xl", body: "base", label: "xs" };
|
|
29602
29625
|
var LAYER1_SPACING_UNIT_PX = 4;
|
|
29626
|
+
var SCRIM_DEFAULT_OPACITY = "0.45";
|
|
29603
29627
|
function tokenValue(t) {
|
|
29604
29628
|
if (t === void 0 || t === null || typeof t !== "object" || !("$value" in t))
|
|
29605
29629
|
return void 0;
|
|
@@ -29631,6 +29655,15 @@ function readToken(t, path, report) {
|
|
|
29631
29655
|
function stated(group, key) {
|
|
29632
29656
|
return tokenValue(group?.[key]);
|
|
29633
29657
|
}
|
|
29658
|
+
function scrimTint(tone) {
|
|
29659
|
+
if (tone === void 0)
|
|
29660
|
+
return void 0;
|
|
29661
|
+
if (tone === "light")
|
|
29662
|
+
return "#ffffff";
|
|
29663
|
+
if (tone === "dark")
|
|
29664
|
+
return "#000000";
|
|
29665
|
+
return tokenValue(tone);
|
|
29666
|
+
}
|
|
29634
29667
|
function familyRamp(group, anchor) {
|
|
29635
29668
|
const statedStops = {};
|
|
29636
29669
|
for (const stop of STOPS) {
|
|
@@ -29833,6 +29866,16 @@ function deriveThemeVariables(doc, mode, options = {}) {
|
|
|
29833
29866
|
const sh = doc.shape?.shadow;
|
|
29834
29867
|
for (const [key, value] of Object.entries(shadow))
|
|
29835
29868
|
V[`--ggui-shape-shadow-${key}`] = stated(sh, key) ?? String(value);
|
|
29869
|
+
const md = doc.motion?.duration;
|
|
29870
|
+
const me = doc.motion?.easing;
|
|
29871
|
+
V["--ggui-motion-duration-fast"] = stated(md, "fast") ?? duration.fast;
|
|
29872
|
+
V["--ggui-motion-duration-base"] = stated(md, "base") ?? duration.normal;
|
|
29873
|
+
V["--ggui-motion-duration-slow"] = stated(md, "slow") ?? duration.slow;
|
|
29874
|
+
V["--ggui-motion-easing-standard"] = stated(me, "standard") ?? easing.easeInOut;
|
|
29875
|
+
V["--ggui-motion-easing-emphasized"] = stated(me, "emphasized") ?? easing.easeOut;
|
|
29876
|
+
V["--ggui-motion-easing-exit"] = stated(me, "exit") ?? easing.easeIn;
|
|
29877
|
+
V["--ggui-scrim-tint"] = scrimTint(doc.scrim?.tone) ?? V["--ggui-color-ground"];
|
|
29878
|
+
V["--ggui-scrim-opacity"] = tokenValue(doc.scrim?.opacity) ?? SCRIM_DEFAULT_OPACITY;
|
|
29836
29879
|
if (missing.length > 0)
|
|
29837
29880
|
throw new ThemeDocumentInvalidError(missing);
|
|
29838
29881
|
const floor = new Set(NON_THEME_DEFINABLE_TOKENS);
|
|
@@ -33025,6 +33068,7 @@ var TOKENS_EXPORTS = [
|
|
|
33025
33068
|
"duration",
|
|
33026
33069
|
"easing",
|
|
33027
33070
|
"transition",
|
|
33071
|
+
"motionVar",
|
|
33028
33072
|
"keyframes",
|
|
33029
33073
|
"thinkingAnimation",
|
|
33030
33074
|
"thinkingKeyframes",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggui-ai/dev-stack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.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.21.0",
|
|
32
|
+
"@ggui-ai/project-config": "0.21.0",
|
|
33
|
+
"@ggui-ai/ui-registry": "0.21.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/
|
|
43
|
+
"@ggui-ai/mcp-apps-react": "0.21.0",
|
|
44
|
+
"@ggui-ai/wire": "0.21.0",
|
|
45
|
+
"@ggui-ai/design": "0.21.0"
|
|
46
46
|
},
|
|
47
47
|
"repository": {
|
|
48
48
|
"type": "git",
|