@copilotkit/react-core 2.0.0-rc.8 → 2.0.0-rc.9
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/{MarkdownRendererContext-DAuVISwv.d.cts → MarkdownRendererContext-CS35epe1.d.mts} +5 -5
- package/dist/{MarkdownRendererContext-DAuVISwv.d.cts.map → MarkdownRendererContext-CS35epe1.d.mts.map} +1 -1
- package/dist/{MarkdownRendererContext-XWC2OXD5.d.mts → MarkdownRendererContext-CfTh92vk.d.cts} +5 -5
- package/dist/{MarkdownRendererContext-XWC2OXD5.d.mts.map → MarkdownRendererContext-CfTh92vk.d.cts.map} +1 -1
- package/dist/{MarkdownSurfaces-DQZM4lSI.cjs → MarkdownSurfaces-Ije2ZQh0.cjs} +16 -17
- package/dist/MarkdownSurfaces-Ije2ZQh0.cjs.map +1 -0
- package/dist/{MarkdownSurfaces-BXaxgpm_.mjs → MarkdownSurfaces-iFKorV2w.mjs} +5 -7
- package/dist/MarkdownSurfaces-iFKorV2w.mjs.map +1 -0
- package/dist/generative-ui.cjs +507 -506
- package/dist/generative-ui.cjs.map +1 -1
- package/dist/generative-ui.d.cts +2137 -4178
- package/dist/generative-ui.d.cts.map +1 -1
- package/dist/generative-ui.d.mts +2137 -4178
- package/dist/generative-ui.d.mts.map +1 -1
- package/dist/generative-ui.mjs +3 -3
- package/dist/generative-ui.mjs.map +1 -1
- package/dist/index.cjs +102 -335
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -51
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +13 -51
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +31 -307
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +118 -351
- package/dist/index.umd.js.map +1 -1
- package/package.json +14 -14
- package/dist/MarkdownSurfaces-BXaxgpm_.mjs.map +0 -1
- package/dist/MarkdownSurfaces-DQZM4lSI.cjs.map +0 -1
package/dist/generative-ui.cjs
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
const require_MarkdownSurfaces = require('./MarkdownSurfaces-
|
|
4
|
+
const require_MarkdownSurfaces = require('./MarkdownSurfaces-Ije2ZQh0.cjs');
|
|
5
5
|
let react = require("react");
|
|
6
6
|
react = require_MarkdownSurfaces.__toESM(react);
|
|
7
7
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
8
|
let _copilotkit_shared = require("@copilotkit/shared");
|
|
9
9
|
let zod = require("zod");
|
|
10
|
+
zod = require_MarkdownSurfaces.__toESM(zod);
|
|
10
11
|
let react_dom = require("react-dom");
|
|
11
12
|
|
|
12
13
|
//#region src/generative-ui/refs.ts
|
|
@@ -33,7 +34,7 @@ const mark = (prefix, description) => description ? `${prefix} ${description}` :
|
|
|
33
34
|
* description here, not with `.describe()`, which would replace the mark.
|
|
34
35
|
*/
|
|
35
36
|
function child(description) {
|
|
36
|
-
return zod.
|
|
37
|
+
return zod.string().min(1).describe(mark(_copilotkit_shared.A2UI_COMPONENT_ID_MARK, description)).transform(toNode);
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
39
40
|
* A list of component ids, or a template `{ componentId, path }` that
|
|
@@ -42,9 +43,9 @@ function child(description) {
|
|
|
42
43
|
* not with `.describe()`.
|
|
43
44
|
*/
|
|
44
45
|
function childList(description) {
|
|
45
|
-
return zod.
|
|
46
|
-
componentId: zod.
|
|
47
|
-
path: zod.
|
|
46
|
+
return zod.union([zod.array(zod.string().min(1)), zod.object({
|
|
47
|
+
componentId: zod.string().min(1),
|
|
48
|
+
path: zod.string().min(1)
|
|
48
49
|
})]).describe(mark(_copilotkit_shared.A2UI_CHILD_LIST_MARK, description)).transform(toNode);
|
|
49
50
|
}
|
|
50
51
|
|
|
@@ -970,18 +971,18 @@ function useStandardStyles() {
|
|
|
970
971
|
//#endregion
|
|
971
972
|
//#region src/generative-ui/standard/layout.tsx
|
|
972
973
|
/** A number is a count of 4px steps. A string is raw CSS. */
|
|
973
|
-
const sizeValue = zod.
|
|
974
|
+
const sizeValue = zod.union([zod.number(), zod.string()]);
|
|
974
975
|
/** The A2UI `weight`: how much of the free space of a Row or Column to take. */
|
|
975
|
-
const weightProp = zod.
|
|
976
|
-
const radiusValue = zod.
|
|
977
|
-
zod.
|
|
978
|
-
zod.
|
|
979
|
-
zod.
|
|
980
|
-
zod.
|
|
981
|
-
topLeft: zod.
|
|
982
|
-
topRight: zod.
|
|
983
|
-
bottomLeft: zod.
|
|
984
|
-
bottomRight: zod.
|
|
976
|
+
const weightProp = zod.number().optional().describe("flex-grow in a Row or Column");
|
|
977
|
+
const radiusValue = zod.union([
|
|
978
|
+
zod.enum(RADII),
|
|
979
|
+
zod.number(),
|
|
980
|
+
zod.string(),
|
|
981
|
+
zod.object({
|
|
982
|
+
topLeft: zod.string().optional(),
|
|
983
|
+
topRight: zod.string().optional(),
|
|
984
|
+
bottomLeft: zod.string().optional(),
|
|
985
|
+
bottomRight: zod.string().optional()
|
|
985
986
|
})
|
|
986
987
|
]);
|
|
987
988
|
/**
|
|
@@ -990,16 +991,16 @@ const radiusValue = zod.z.union([
|
|
|
990
991
|
* are a slot, not a prop.
|
|
991
992
|
*/
|
|
992
993
|
const layoutProps = {
|
|
993
|
-
align: zod.
|
|
994
|
-
justify: zod.
|
|
995
|
-
wrap: zod.
|
|
994
|
+
align: zod.enum(ALIGN).optional(),
|
|
995
|
+
justify: zod.enum(JUSTIFY).optional(),
|
|
996
|
+
wrap: zod.enum(WRAP).optional(),
|
|
996
997
|
gap: sizeValue.optional().describe("4px steps when a number"),
|
|
997
998
|
rowGap: sizeValue.optional(),
|
|
998
999
|
columnGap: sizeValue.optional(),
|
|
999
1000
|
padding: sizeValue.optional().describe("4px steps when a number"),
|
|
1000
|
-
background: zod.
|
|
1001
|
-
border: zod.
|
|
1002
|
-
borderColor: zod.
|
|
1001
|
+
background: zod.string().optional().describe(`One of ${BACKGROUNDS.join("|")} or a CSS color. Leave it unset. Only one summary panel in a Card can use "surface-secondary"`),
|
|
1002
|
+
border: zod.boolean().optional(),
|
|
1003
|
+
borderColor: zod.enum(BORDER_COLORS).optional(),
|
|
1003
1004
|
radius: radiusValue.optional(),
|
|
1004
1005
|
width: sizeValue.optional(),
|
|
1005
1006
|
height: sizeValue.optional(),
|
|
@@ -1007,22 +1008,22 @@ const layoutProps = {
|
|
|
1007
1008
|
maxWidth: sizeValue.optional(),
|
|
1008
1009
|
minHeight: sizeValue.optional(),
|
|
1009
1010
|
maxHeight: sizeValue.optional(),
|
|
1010
|
-
flex: zod.
|
|
1011
|
+
flex: zod.number().optional(),
|
|
1011
1012
|
weight: weightProp,
|
|
1012
|
-
aspectRatio: zod.
|
|
1013
|
-
scrollable: zod.
|
|
1014
|
-
clip: zod.
|
|
1015
|
-
shadow: zod.
|
|
1016
|
-
inline: zod.
|
|
1017
|
-
role: zod.
|
|
1018
|
-
flush: zod.
|
|
1013
|
+
aspectRatio: zod.string().optional(),
|
|
1014
|
+
scrollable: zod.boolean().optional(),
|
|
1015
|
+
clip: zod.boolean().optional(),
|
|
1016
|
+
shadow: zod.boolean().optional(),
|
|
1017
|
+
inline: zod.boolean().optional(),
|
|
1018
|
+
role: zod.string().optional().describe("ARIA role"),
|
|
1019
|
+
flush: zod.boolean().optional().describe("No padding"),
|
|
1019
1020
|
minSize: sizeValue.optional().describe("Minimum width and height"),
|
|
1020
1021
|
maxSize: sizeValue.optional().describe("Maximum width and height"),
|
|
1021
|
-
disableAutoSpacing: zod.
|
|
1022
|
+
disableAutoSpacing: zod.boolean().optional().describe("No default gap between children")
|
|
1022
1023
|
};
|
|
1023
|
-
const layoutSchema = zod.
|
|
1024
|
+
const layoutSchema = zod.object(layoutProps);
|
|
1024
1025
|
/** The arguments of a click or visibility event: none. */
|
|
1025
|
-
const NO_ARGS$3 = zod.
|
|
1026
|
+
const NO_ARGS$3 = zod.object({});
|
|
1026
1027
|
/**
|
|
1027
1028
|
* The `onVisible` event of every container: sent once, the first time the
|
|
1028
1029
|
* container scrolls into view.
|
|
@@ -1033,24 +1034,24 @@ const VISIBLE_EVENT = { onVisible: {
|
|
|
1033
1034
|
} };
|
|
1034
1035
|
/** The slot of every container: a list of children or a template. */
|
|
1035
1036
|
const CHILDREN_SLOT = { children: "multiple" };
|
|
1036
|
-
const boxSchema = zod.
|
|
1037
|
+
const boxSchema = zod.object({
|
|
1037
1038
|
...layoutProps,
|
|
1038
|
-
direction: zod.
|
|
1039
|
+
direction: zod.enum(["col", "row"]).optional().describe("Default \"col\"")
|
|
1039
1040
|
});
|
|
1040
|
-
const gridSchema = zod.
|
|
1041
|
+
const gridSchema = zod.object({
|
|
1041
1042
|
...layoutProps,
|
|
1042
|
-
columns: zod.
|
|
1043
|
+
columns: zod.union([zod.number(), zod.string()]).optional().describe("Column count or CSS template. Default 2"),
|
|
1043
1044
|
minChildWidth: sizeValue.optional(),
|
|
1044
|
-
rows: zod.
|
|
1045
|
+
rows: zod.union([zod.number(), zod.string()]).optional()
|
|
1045
1046
|
});
|
|
1046
|
-
const gridItemSchema = zod.
|
|
1047
|
+
const gridItemSchema = zod.object({
|
|
1047
1048
|
...layoutProps,
|
|
1048
|
-
span: zod.
|
|
1049
|
-
rowSpan: zod.
|
|
1049
|
+
span: zod.number().optional(),
|
|
1050
|
+
rowSpan: zod.number().optional()
|
|
1050
1051
|
});
|
|
1051
|
-
const cardSchema = zod.
|
|
1052
|
+
const cardSchema = zod.object({
|
|
1052
1053
|
...layoutProps,
|
|
1053
|
-
variant: zod.
|
|
1054
|
+
variant: zod.enum([
|
|
1054
1055
|
"default",
|
|
1055
1056
|
"outline",
|
|
1056
1057
|
"section",
|
|
@@ -1058,44 +1059,44 @@ const cardSchema = zod.z.object({
|
|
|
1058
1059
|
"elevated",
|
|
1059
1060
|
"transparent"
|
|
1060
1061
|
]).optional(),
|
|
1061
|
-
shadowStyle: zod.
|
|
1062
|
+
shadowStyle: zod.enum([
|
|
1062
1063
|
"none",
|
|
1063
1064
|
"sm",
|
|
1064
1065
|
"md"
|
|
1065
1066
|
]).optional().describe("Overrides the shadow of the variant"),
|
|
1066
|
-
size: zod.
|
|
1067
|
+
size: zod.enum([
|
|
1067
1068
|
"sm",
|
|
1068
1069
|
"md",
|
|
1069
1070
|
"lg"
|
|
1070
1071
|
]).optional().describe("The padding preset: 8, 16 or 24px. Default \"md\"")
|
|
1071
1072
|
});
|
|
1072
|
-
const flowSchema = zod.
|
|
1073
|
+
const flowSchema = zod.object({
|
|
1073
1074
|
...layoutProps,
|
|
1074
|
-
columns: zod.
|
|
1075
|
-
rows: zod.
|
|
1076
|
-
layout: zod.
|
|
1075
|
+
columns: zod.number().optional(),
|
|
1076
|
+
rows: zod.number().optional(),
|
|
1077
|
+
layout: zod.enum(["pack", "fixed"]).optional().describe("Default \"pack\"")
|
|
1077
1078
|
});
|
|
1078
|
-
const flowItemSchema = zod.
|
|
1079
|
+
const flowItemSchema = zod.object({
|
|
1079
1080
|
...layoutProps,
|
|
1080
|
-
span: zod.
|
|
1081
|
-
rowSpan: zod.
|
|
1082
|
-
aspectRatio: zod.
|
|
1083
|
-
aspectMode: zod.
|
|
1081
|
+
span: zod.number().optional(),
|
|
1082
|
+
rowSpan: zod.number().optional(),
|
|
1083
|
+
aspectRatio: zod.string().optional().describe("Default \"1 / 1\""),
|
|
1084
|
+
aspectMode: zod.enum(["soft", "fixed"]).optional()
|
|
1084
1085
|
});
|
|
1085
|
-
const carouselSchema = zod.
|
|
1086
|
+
const carouselSchema = zod.object({
|
|
1086
1087
|
...layoutProps,
|
|
1087
|
-
label: zod.
|
|
1088
|
-
visibleItems: zod.
|
|
1089
|
-
showArrows: zod.
|
|
1090
|
-
activeIndex: zod.
|
|
1091
|
-
previousLabel: zod.
|
|
1092
|
-
nextLabel: zod.
|
|
1093
|
-
snap: zod.
|
|
1088
|
+
label: zod.string().optional().describe("A short name of the carousel for screen readers"),
|
|
1089
|
+
visibleItems: zod.number().optional(),
|
|
1090
|
+
showArrows: zod.boolean().optional().describe("Default true"),
|
|
1091
|
+
activeIndex: zod.number().optional().describe("The index of the slide in view. Bind it with { \"@path\": \"/x\" } to read or set it"),
|
|
1092
|
+
previousLabel: zod.string().optional().describe("Default \"Previous\""),
|
|
1093
|
+
nextLabel: zod.string().optional().describe("Default \"Next\""),
|
|
1094
|
+
snap: zod.enum([
|
|
1094
1095
|
"none",
|
|
1095
1096
|
"proximity",
|
|
1096
1097
|
"mandatory"
|
|
1097
1098
|
]).optional(),
|
|
1098
|
-
snapAlign: zod.
|
|
1099
|
+
snapAlign: zod.enum([
|
|
1099
1100
|
"start",
|
|
1100
1101
|
"center",
|
|
1101
1102
|
"end"
|
|
@@ -1106,31 +1107,31 @@ const CAROUSEL_MEDIA_SIZES = [
|
|
|
1106
1107
|
"md",
|
|
1107
1108
|
"lg"
|
|
1108
1109
|
];
|
|
1109
|
-
const carouselMediaItemSchema = zod.
|
|
1110
|
+
const carouselMediaItemSchema = zod.object({
|
|
1110
1111
|
...layoutProps,
|
|
1111
|
-
url: zod.
|
|
1112
|
-
description: zod.
|
|
1113
|
-
size: zod.
|
|
1114
|
-
aspectRatio: zod.
|
|
1115
|
-
href: zod.
|
|
1116
|
-
lightbox: zod.
|
|
1112
|
+
url: zod.string().describe("Image URL"),
|
|
1113
|
+
description: zod.string().optional().describe("What the image shows, for screen readers"),
|
|
1114
|
+
size: zod.enum(CAROUSEL_MEDIA_SIZES).optional().describe("The width: \"sm\" 160px, \"md\" 240px, \"lg\" 320px. Default \"md\""),
|
|
1115
|
+
aspectRatio: zod.string().optional().describe("Default \"4 / 3\""),
|
|
1116
|
+
href: zod.string().optional().describe("Opens this URL in a new tab"),
|
|
1117
|
+
lightbox: zod.boolean().optional().describe("Default true: a click opens all slides full-screen")
|
|
1117
1118
|
});
|
|
1118
|
-
const spacerSchema = zod.
|
|
1119
|
-
const tabsSchema = zod.
|
|
1120
|
-
tabs: zod.
|
|
1121
|
-
title: zod.
|
|
1119
|
+
const spacerSchema = zod.object({ minSize: sizeValue.optional() });
|
|
1120
|
+
const tabsSchema = zod.object({
|
|
1121
|
+
tabs: zod.array(zod.object({
|
|
1122
|
+
title: zod.string().describe("The tab title"),
|
|
1122
1123
|
child: child("The id of the panel component")
|
|
1123
1124
|
})).describe("One entry per tab"),
|
|
1124
|
-
selectedIndex: zod.
|
|
1125
|
+
selectedIndex: zod.number().optional().describe("The open tab. Default 0. Bind it with { \"@path\": \"/x\" } to read it"),
|
|
1125
1126
|
weight: weightProp
|
|
1126
1127
|
});
|
|
1127
|
-
const dividerSchema = zod.
|
|
1128
|
-
axis: zod.
|
|
1128
|
+
const dividerSchema = zod.object({
|
|
1129
|
+
axis: zod.enum(["horizontal", "vertical"]).optional().describe("Default \"horizontal\""),
|
|
1129
1130
|
weight: weightProp,
|
|
1130
|
-
color: zod.
|
|
1131
|
-
size: zod.
|
|
1131
|
+
color: zod.enum(BORDER_COLORS).optional(),
|
|
1132
|
+
size: zod.number().optional(),
|
|
1132
1133
|
spacing: sizeValue.optional(),
|
|
1133
|
-
flush: zod.
|
|
1134
|
+
flush: zod.boolean().optional()
|
|
1134
1135
|
});
|
|
1135
1136
|
const ALIGN_CSS$1 = {
|
|
1136
1137
|
start: "flex-start",
|
|
@@ -2113,18 +2114,18 @@ function Markdown({ text, streaming = false }) {
|
|
|
2113
2114
|
|
|
2114
2115
|
//#endregion
|
|
2115
2116
|
//#region src/generative-ui/standard/media.tsx
|
|
2116
|
-
const NO_ARGS$2 = zod.
|
|
2117
|
-
const colorProp$1 = zod.
|
|
2117
|
+
const NO_ARGS$2 = zod.object({});
|
|
2118
|
+
const colorProp$1 = zod.string().optional();
|
|
2118
2119
|
const ICON_SIZES = [
|
|
2119
2120
|
"sm",
|
|
2120
2121
|
"md",
|
|
2121
2122
|
"lg",
|
|
2122
2123
|
"xl"
|
|
2123
2124
|
];
|
|
2124
|
-
const imageSchema = zod.
|
|
2125
|
-
url: zod.
|
|
2126
|
-
description: zod.
|
|
2127
|
-
variant: zod.
|
|
2125
|
+
const imageSchema = zod.object({
|
|
2126
|
+
url: zod.string().describe("Image URL"),
|
|
2127
|
+
description: zod.string().optional().describe("What the image shows, for screen readers. Leave it unset only for a decorative image"),
|
|
2128
|
+
variant: zod.enum([
|
|
2128
2129
|
"icon",
|
|
2129
2130
|
"avatar",
|
|
2130
2131
|
"smallFeature",
|
|
@@ -2133,8 +2134,8 @@ const imageSchema = zod.z.object({
|
|
|
2133
2134
|
"header"
|
|
2134
2135
|
]).optional().describe("The size: \"icon\" 24px, \"avatar\" 40px round, \"smallFeature\" 160px wide, \"largeFeature\" and \"header\" full width. Default \"mediumFeature\": the natural size"),
|
|
2135
2136
|
weight: weightProp,
|
|
2136
|
-
aspectRatio: zod.
|
|
2137
|
-
fit: zod.
|
|
2137
|
+
aspectRatio: zod.string().optional(),
|
|
2138
|
+
fit: zod.enum([
|
|
2138
2139
|
"cover",
|
|
2139
2140
|
"contain",
|
|
2140
2141
|
"fill",
|
|
@@ -2148,128 +2149,128 @@ const imageSchema = zod.z.object({
|
|
|
2148
2149
|
maxHeight: sizeValue.optional(),
|
|
2149
2150
|
minWidth: sizeValue.optional(),
|
|
2150
2151
|
minHeight: sizeValue.optional(),
|
|
2151
|
-
background: zod.
|
|
2152
|
-
frame: zod.
|
|
2153
|
-
position: zod.
|
|
2154
|
-
hideOnFailure: zod.
|
|
2155
|
-
fallback: zod.
|
|
2156
|
-
hoverZoom: zod.
|
|
2157
|
-
lightbox: zod.
|
|
2158
|
-
actionOverlay: zod.
|
|
2159
|
-
label: zod.
|
|
2160
|
-
icon: zod.
|
|
2161
|
-
href: zod.
|
|
2152
|
+
background: zod.string().optional(),
|
|
2153
|
+
frame: zod.boolean().optional(),
|
|
2154
|
+
position: zod.string().optional().describe("CSS object-position, for example \"top\" or \"50% 20%\""),
|
|
2155
|
+
hideOnFailure: zod.boolean().optional().describe("Default false"),
|
|
2156
|
+
fallback: zod.string().optional().describe("Text shown in place of the image when it does not load"),
|
|
2157
|
+
hoverZoom: zod.boolean().optional().describe("A slight zoom on hover"),
|
|
2158
|
+
lightbox: zod.boolean().optional().describe("Default true: a click opens the image full-screen"),
|
|
2159
|
+
actionOverlay: zod.object({
|
|
2160
|
+
label: zod.string(),
|
|
2161
|
+
icon: zod.string().optional().describe("Lucide icon name"),
|
|
2162
|
+
href: zod.string().optional().describe("Opens this URL in a new tab")
|
|
2162
2163
|
}).optional().describe("A button over the bottom-right corner of the image. Without href, it sends onOverlayClick")
|
|
2163
2164
|
});
|
|
2164
|
-
const iconSchema = zod.
|
|
2165
|
-
name: zod.
|
|
2166
|
-
label: zod.
|
|
2167
|
-
size: zod.
|
|
2165
|
+
const iconSchema = zod.object({
|
|
2166
|
+
name: zod.union([zod.string(), zod.object({ svgPath: zod.string() })]).describe("A Lucide icon name in kebab-case (\"arrow-right\"), an A2UI icon name (\"arrowBack\"), or { \"svgPath\" } on a 24px grid"),
|
|
2167
|
+
label: zod.string().optional().describe("What the icon means, for screen readers. Leave it unset when text next to the icon says the same"),
|
|
2168
|
+
size: zod.union([zod.enum(ICON_SIZES), zod.number()]).optional().describe("Default \"md\""),
|
|
2168
2169
|
color: colorProp$1,
|
|
2169
|
-
inline: zod.
|
|
2170
|
-
strokeWeight: zod.
|
|
2170
|
+
inline: zod.boolean().optional().describe("Default false"),
|
|
2171
|
+
strokeWeight: zod.enum(WEIGHTS).optional().describe("The stroke width"),
|
|
2171
2172
|
weight: weightProp
|
|
2172
2173
|
});
|
|
2173
|
-
const faviconSchema = zod.
|
|
2174
|
-
url: zod.
|
|
2175
|
-
alt: zod.
|
|
2176
|
-
size: zod.
|
|
2177
|
-
inline: zod.
|
|
2178
|
-
frame: zod.
|
|
2174
|
+
const faviconSchema = zod.object({
|
|
2175
|
+
url: zod.string(),
|
|
2176
|
+
alt: zod.string().optional(),
|
|
2177
|
+
size: zod.number().optional().describe("Pixels. Default 16"),
|
|
2178
|
+
inline: zod.boolean().optional().describe("Default false"),
|
|
2179
|
+
frame: zod.boolean().optional().describe("Default false")
|
|
2179
2180
|
});
|
|
2180
|
-
const svgSchema = zod.
|
|
2181
|
-
viewBox: zod.
|
|
2182
|
-
label: zod.
|
|
2181
|
+
const svgSchema = zod.object({
|
|
2182
|
+
viewBox: zod.string().optional(),
|
|
2183
|
+
label: zod.string().optional().describe("What the drawing shows, for screen readers. Leave it unset for a decorative drawing"),
|
|
2183
2184
|
width: sizeValue.optional(),
|
|
2184
2185
|
height: sizeValue.optional(),
|
|
2185
2186
|
size: sizeValue.optional(),
|
|
2186
2187
|
color: colorProp$1.describe("Default \"prose\""),
|
|
2187
2188
|
fill: colorProp$1.describe("Default \"currentColor\""),
|
|
2188
2189
|
stroke: colorProp$1,
|
|
2189
|
-
strokeWidth: zod.
|
|
2190
|
-
strokeLinecap: zod.
|
|
2190
|
+
strokeWidth: zod.number().optional(),
|
|
2191
|
+
strokeLinecap: zod.enum([
|
|
2191
2192
|
"butt",
|
|
2192
2193
|
"round",
|
|
2193
2194
|
"square"
|
|
2194
2195
|
]).optional(),
|
|
2195
|
-
strokeLinejoin: zod.
|
|
2196
|
+
strokeLinejoin: zod.enum([
|
|
2196
2197
|
"miter",
|
|
2197
2198
|
"round",
|
|
2198
2199
|
"bevel"
|
|
2199
2200
|
]).optional(),
|
|
2200
|
-
preserveAspectRatio: zod.
|
|
2201
|
-
paths: zod.
|
|
2202
|
-
d: zod.
|
|
2201
|
+
preserveAspectRatio: zod.string().optional(),
|
|
2202
|
+
paths: zod.array(zod.object({
|
|
2203
|
+
d: zod.string(),
|
|
2203
2204
|
fill: colorProp$1,
|
|
2204
2205
|
stroke: colorProp$1,
|
|
2205
|
-
strokeWidth: zod.
|
|
2206
|
+
strokeWidth: zod.number().optional()
|
|
2206
2207
|
})).optional(),
|
|
2207
|
-
circles: zod.
|
|
2208
|
-
cx: zod.
|
|
2209
|
-
cy: zod.
|
|
2210
|
-
r: zod.
|
|
2208
|
+
circles: zod.array(zod.object({
|
|
2209
|
+
cx: zod.number(),
|
|
2210
|
+
cy: zod.number(),
|
|
2211
|
+
r: zod.number(),
|
|
2211
2212
|
fill: colorProp$1,
|
|
2212
2213
|
stroke: colorProp$1
|
|
2213
2214
|
})).optional(),
|
|
2214
|
-
rects: zod.
|
|
2215
|
-
x: zod.
|
|
2216
|
-
y: zod.
|
|
2217
|
-
width: zod.
|
|
2218
|
-
height: zod.
|
|
2219
|
-
rx: zod.
|
|
2215
|
+
rects: zod.array(zod.object({
|
|
2216
|
+
x: zod.number(),
|
|
2217
|
+
y: zod.number(),
|
|
2218
|
+
width: zod.number(),
|
|
2219
|
+
height: zod.number(),
|
|
2220
|
+
rx: zod.number().optional(),
|
|
2220
2221
|
fill: colorProp$1,
|
|
2221
2222
|
stroke: colorProp$1
|
|
2222
2223
|
})).optional(),
|
|
2223
|
-
lines: zod.
|
|
2224
|
-
x1: zod.
|
|
2225
|
-
y1: zod.
|
|
2226
|
-
x2: zod.
|
|
2227
|
-
y2: zod.
|
|
2224
|
+
lines: zod.array(zod.object({
|
|
2225
|
+
x1: zod.number(),
|
|
2226
|
+
y1: zod.number(),
|
|
2227
|
+
x2: zod.number(),
|
|
2228
|
+
y2: zod.number(),
|
|
2228
2229
|
stroke: colorProp$1
|
|
2229
2230
|
})).optional(),
|
|
2230
|
-
texts: zod.
|
|
2231
|
-
x: zod.
|
|
2232
|
-
y: zod.
|
|
2233
|
-
text: zod.
|
|
2234
|
-
size: zod.
|
|
2231
|
+
texts: zod.array(zod.object({
|
|
2232
|
+
x: zod.number(),
|
|
2233
|
+
y: zod.number(),
|
|
2234
|
+
text: zod.string(),
|
|
2235
|
+
size: zod.number().optional(),
|
|
2235
2236
|
fill: colorProp$1,
|
|
2236
|
-
anchor: zod.
|
|
2237
|
+
anchor: zod.enum([
|
|
2237
2238
|
"start",
|
|
2238
2239
|
"middle",
|
|
2239
2240
|
"end"
|
|
2240
2241
|
]).optional()
|
|
2241
2242
|
})).optional()
|
|
2242
2243
|
});
|
|
2243
|
-
const captionTrack = zod.
|
|
2244
|
-
url: zod.
|
|
2245
|
-
language: zod.
|
|
2246
|
-
label: zod.
|
|
2247
|
-
kind: zod.
|
|
2244
|
+
const captionTrack = zod.object({
|
|
2245
|
+
url: zod.string().describe("The URL of a WebVTT file"),
|
|
2246
|
+
language: zod.string().optional().describe("BCP 47, for example \"en\""),
|
|
2247
|
+
label: zod.string().optional().describe("Shown in the captions menu"),
|
|
2248
|
+
kind: zod.enum([
|
|
2248
2249
|
"subtitles",
|
|
2249
2250
|
"captions",
|
|
2250
2251
|
"descriptions"
|
|
2251
2252
|
]).optional()
|
|
2252
2253
|
});
|
|
2253
|
-
const videoSchema = zod.
|
|
2254
|
-
url: zod.
|
|
2255
|
-
posterUrl: zod.
|
|
2256
|
-
title: zod.
|
|
2257
|
-
captions: zod.
|
|
2258
|
-
aspectRatio: zod.
|
|
2254
|
+
const videoSchema = zod.object({
|
|
2255
|
+
url: zod.string().describe("The URL of a video file, or of a YouTube video or short. A page on another video site shows as a link"),
|
|
2256
|
+
posterUrl: zod.string().optional().describe("The image shown before the video plays"),
|
|
2257
|
+
title: zod.string().optional().describe("Names the video for screen readers"),
|
|
2258
|
+
captions: zod.array(captionTrack).optional().describe("Caption tracks of a video file"),
|
|
2259
|
+
aspectRatio: zod.string().optional().describe("Default \"16 / 9\""),
|
|
2259
2260
|
width: sizeValue.optional().describe("Default \"100%\""),
|
|
2260
2261
|
maxWidth: sizeValue.optional().describe("Default \"100%\""),
|
|
2261
2262
|
weight: weightProp
|
|
2262
2263
|
});
|
|
2263
|
-
const audioPlayerSchema = zod.
|
|
2264
|
-
url: zod.
|
|
2265
|
-
description: zod.
|
|
2264
|
+
const audioPlayerSchema = zod.object({
|
|
2265
|
+
url: zod.string().describe("The URL of the audio file"),
|
|
2266
|
+
description: zod.string().optional().describe("A title or summary of the audio, shown above the player"),
|
|
2266
2267
|
weight: weightProp
|
|
2267
2268
|
});
|
|
2268
|
-
const htmlViewSchema = zod.
|
|
2269
|
-
html: zod.
|
|
2269
|
+
const htmlViewSchema = zod.object({
|
|
2270
|
+
html: zod.string(),
|
|
2270
2271
|
height: sizeValue.optional().describe("Pixels when a number. Default 360"),
|
|
2271
2272
|
width: sizeValue.optional().describe("Default \"100%\""),
|
|
2272
|
-
title: zod.
|
|
2273
|
+
title: zod.string().optional()
|
|
2273
2274
|
});
|
|
2274
2275
|
/** Pixels when a number, raw CSS when a string. */
|
|
2275
2276
|
function px$1(value) {
|
|
@@ -3043,33 +3044,33 @@ const mediaComponents = {
|
|
|
3043
3044
|
* grids). Each one is a single component, so the model places it with one
|
|
3044
3045
|
* object instead of eight primitives.
|
|
3045
3046
|
*/
|
|
3046
|
-
const NO_ARGS$1 = zod.
|
|
3047
|
-
const text = (description) => zod.
|
|
3048
|
-
const linkCardSchema = zod.
|
|
3049
|
-
href: zod.
|
|
3050
|
-
title: zod.
|
|
3047
|
+
const NO_ARGS$1 = zod.object({});
|
|
3048
|
+
const text = (description) => zod.string().optional().describe(description);
|
|
3049
|
+
const linkCardSchema = zod.object({
|
|
3050
|
+
href: zod.string().describe("The URL (http, https)"),
|
|
3051
|
+
title: zod.string().describe("The page title"),
|
|
3051
3052
|
description: text("One or two lines"),
|
|
3052
3053
|
image: text("A thumbnail URL"),
|
|
3053
3054
|
domain: text("Shown next to the favicon. Default: the host of href"),
|
|
3054
|
-
favicon: zod.
|
|
3055
|
+
favicon: zod.boolean().optional().describe("Default true")
|
|
3055
3056
|
});
|
|
3056
|
-
const citationSchema = zod.
|
|
3057
|
-
index: zod.
|
|
3057
|
+
const citationSchema = zod.object({
|
|
3058
|
+
index: zod.number().optional().describe("The marker number. Default 1"),
|
|
3058
3059
|
label: text("Marker text instead of the number, for example a domain"),
|
|
3059
3060
|
title: text("The source title"),
|
|
3060
3061
|
url: text("The source URL (http, https)"),
|
|
3061
3062
|
snippet: text("The quoted passage, one or two lines"),
|
|
3062
3063
|
source: text("The publisher or domain. Default: the host of url")
|
|
3063
3064
|
});
|
|
3064
|
-
const followUpItem = zod.
|
|
3065
|
-
label: zod.
|
|
3065
|
+
const followUpItem = zod.union([zod.string(), zod.object({
|
|
3066
|
+
label: zod.string(),
|
|
3066
3067
|
message: text("The text sent when the user clicks. Default: label")
|
|
3067
3068
|
})]);
|
|
3068
|
-
const followUpSchema = zod.
|
|
3069
|
-
items: zod.
|
|
3069
|
+
const followUpSchema = zod.object({
|
|
3070
|
+
items: zod.array(followUpItem).optional().describe("Strings or { \"label\", \"message\"? }, or { \"@path\": \"/x\" }"),
|
|
3070
3071
|
title: text("A caption above the pills")
|
|
3071
3072
|
});
|
|
3072
|
-
const followUpArgs = zod.
|
|
3073
|
+
const followUpArgs = zod.object({ message: zod.string().describe("The message of the clicked pill") });
|
|
3073
3074
|
const BADGE_COLORS = [
|
|
3074
3075
|
"secondary",
|
|
3075
3076
|
"success",
|
|
@@ -3078,47 +3079,47 @@ const BADGE_COLORS = [
|
|
|
3078
3079
|
"info",
|
|
3079
3080
|
"discovery"
|
|
3080
3081
|
];
|
|
3081
|
-
const cardAction = zod.
|
|
3082
|
-
label: zod.
|
|
3082
|
+
const cardAction = zod.object({
|
|
3083
|
+
label: zod.string(),
|
|
3083
3084
|
href: text("Opens this URL in a new tab"),
|
|
3084
|
-
variant: zod.
|
|
3085
|
+
variant: zod.enum([
|
|
3085
3086
|
"solid",
|
|
3086
3087
|
"soft",
|
|
3087
3088
|
"outline",
|
|
3088
3089
|
"ghost"
|
|
3089
3090
|
]).optional()
|
|
3090
3091
|
});
|
|
3091
|
-
const entityCardSchema = zod.
|
|
3092
|
-
title: zod.
|
|
3092
|
+
const entityCardSchema = zod.object({
|
|
3093
|
+
title: zod.string().describe("The name"),
|
|
3093
3094
|
subtitle: text("A second line, for example the brand or category"),
|
|
3094
3095
|
description: text("Up to three lines"),
|
|
3095
3096
|
image: text("An image URL"),
|
|
3096
|
-
imageAspectRatio: zod.
|
|
3097
|
+
imageAspectRatio: zod.string().optional().describe("Default \"4 / 3\""),
|
|
3097
3098
|
meta: text("A short fact line, for example \"$29 / month\" or \"Open until 22:00\""),
|
|
3098
|
-
badge: zod.
|
|
3099
|
-
label: zod.
|
|
3100
|
-
color: zod.
|
|
3099
|
+
badge: zod.object({
|
|
3100
|
+
label: zod.string(),
|
|
3101
|
+
color: zod.enum(BADGE_COLORS).optional()
|
|
3101
3102
|
}).optional(),
|
|
3102
|
-
rating: zod.
|
|
3103
|
-
ratingCount: zod.
|
|
3103
|
+
rating: zod.number().optional().describe("0 to 5, shown as stars"),
|
|
3104
|
+
ratingCount: zod.number().optional().describe("The number of ratings"),
|
|
3104
3105
|
href: text("Opens this URL in a new tab when the user clicks the card"),
|
|
3105
|
-
actions: zod.
|
|
3106
|
-
layout: zod.
|
|
3106
|
+
actions: zod.array(cardAction).max(3).optional().describe("Up to three buttons. A button without href sends onAction with its label"),
|
|
3107
|
+
layout: zod.enum(["vertical", "horizontal"]).optional().describe("Default \"vertical\". \"horizontal\" puts the image on the left"),
|
|
3107
3108
|
width: sizeValue.optional()
|
|
3108
3109
|
});
|
|
3109
|
-
const entityActionArgs = zod.
|
|
3110
|
-
const gridImage = zod.
|
|
3111
|
-
url: zod.
|
|
3112
|
-
description: zod.
|
|
3113
|
-
caption: zod.
|
|
3110
|
+
const entityActionArgs = zod.object({ label: zod.string().describe("The label of the clicked button") });
|
|
3111
|
+
const gridImage = zod.object({
|
|
3112
|
+
url: zod.string(),
|
|
3113
|
+
description: zod.string().optional().describe("What the image shows"),
|
|
3114
|
+
caption: zod.string().optional(),
|
|
3114
3115
|
href: text("Opens this URL instead of the full-screen view")
|
|
3115
3116
|
});
|
|
3116
|
-
const imageGridSchema = zod.
|
|
3117
|
-
images: zod.
|
|
3118
|
-
columns: zod.
|
|
3119
|
-
aspectRatio: zod.
|
|
3117
|
+
const imageGridSchema = zod.object({
|
|
3118
|
+
images: zod.array(gridImage).optional().describe("A list of { \"url\", \"description\"?, \"caption\"?, \"href\"? }, or { \"@path\": \"/x\" }"),
|
|
3119
|
+
columns: zod.number().optional().describe("Default 3"),
|
|
3120
|
+
aspectRatio: zod.string().optional().describe("Default \"1 / 1\""),
|
|
3120
3121
|
gap: sizeValue.optional().describe("Default 2"),
|
|
3121
|
-
layout: zod.
|
|
3122
|
+
layout: zod.enum(["grid", "bento"]).optional().describe("Default \"grid\". \"bento\" makes the first image twice as large")
|
|
3122
3123
|
});
|
|
3123
3124
|
function FaviconImage({ host, size = 16 }) {
|
|
3124
3125
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
@@ -3739,13 +3740,13 @@ const compositeComponents = {
|
|
|
3739
3740
|
|
|
3740
3741
|
//#endregion
|
|
3741
3742
|
//#region src/generative-ui/standard/Chart.tsx
|
|
3742
|
-
const chartSeries = zod.
|
|
3743
|
-
key: zod.
|
|
3744
|
-
label: zod.
|
|
3745
|
-
color: zod.
|
|
3743
|
+
const chartSeries = zod.union([zod.string(), zod.object({
|
|
3744
|
+
key: zod.string(),
|
|
3745
|
+
label: zod.string().optional(),
|
|
3746
|
+
color: zod.string().optional().describe("A text color token or a CSS color")
|
|
3746
3747
|
})]);
|
|
3747
|
-
const chartSchema = zod.
|
|
3748
|
-
chartType: zod.
|
|
3748
|
+
const chartSchema = zod.object({
|
|
3749
|
+
chartType: zod.enum([
|
|
3749
3750
|
"bar",
|
|
3750
3751
|
"line",
|
|
3751
3752
|
"area",
|
|
@@ -3753,38 +3754,38 @@ const chartSchema = zod.z.object({
|
|
|
3753
3754
|
"pie",
|
|
3754
3755
|
"donut"
|
|
3755
3756
|
]).optional().describe("Default \"bar\""),
|
|
3756
|
-
data: zod.
|
|
3757
|
-
xKey: zod.
|
|
3758
|
-
series: zod.
|
|
3759
|
-
stacked: zod.
|
|
3760
|
-
layout: zod.
|
|
3761
|
-
yAxis: zod.
|
|
3762
|
-
label: zod.
|
|
3763
|
-
min: zod.
|
|
3764
|
-
max: zod.
|
|
3765
|
-
width: zod.
|
|
3757
|
+
data: zod.array(zod.record(zod.string(), zod.unknown())).optional().describe("A list of objects, or { \"@path\": \"/x\" }"),
|
|
3758
|
+
xKey: zod.string().optional().describe("The field of the category axis"),
|
|
3759
|
+
series: zod.array(chartSeries).optional().describe("The value fields: strings or { \"key\", \"label\"?, \"color\"? }. Default: every number field except xKey"),
|
|
3760
|
+
stacked: zod.boolean().optional(),
|
|
3761
|
+
layout: zod.enum(["vertical", "horizontal"]).optional().describe("\"horizontal\" draws the bars from left to right. Default \"vertical\""),
|
|
3762
|
+
yAxis: zod.object({
|
|
3763
|
+
label: zod.string().optional(),
|
|
3764
|
+
min: zod.number().optional(),
|
|
3765
|
+
max: zod.number().optional(),
|
|
3766
|
+
width: zod.number().optional().describe("Pixels")
|
|
3766
3767
|
}).optional().describe("The value axis configuration object: {label?: string, min?: number, max?: number, width?: number}. Example: {label: \"Revenue (USD)\", min: 0, max: 100}. In horizontal charts, label, min and max apply to the horizontal value axis, and width sets the width of the category axis on the left."),
|
|
3767
|
-
showDots: zod.
|
|
3768
|
-
barRadius: zod.
|
|
3769
|
-
innerRadius: zod.
|
|
3770
|
-
outerRadius: zod.
|
|
3771
|
-
startAngle: zod.
|
|
3772
|
-
endAngle: zod.
|
|
3773
|
-
cornerRadius: zod.
|
|
3774
|
-
paddingAngle: zod.
|
|
3775
|
-
showLabelLines: zod.
|
|
3776
|
-
height: zod.
|
|
3777
|
-
showLegend: zod.
|
|
3778
|
-
showGrid: zod.
|
|
3779
|
-
showTooltip: zod.
|
|
3780
|
-
showValueLabels: zod.
|
|
3781
|
-
format: zod.
|
|
3768
|
+
showDots: zod.boolean().optional().describe("Point markers on a line or area"),
|
|
3769
|
+
barRadius: zod.number().optional().describe("The corner radius of a bar, in pixels"),
|
|
3770
|
+
innerRadius: zod.union([zod.number(), zod.string()]).optional().describe("Pie and donut"),
|
|
3771
|
+
outerRadius: zod.union([zod.number(), zod.string()]).optional().describe("Pie and donut"),
|
|
3772
|
+
startAngle: zod.number().optional().describe("Pie and donut. Default 90"),
|
|
3773
|
+
endAngle: zod.number().optional().describe("Pie and donut. Default -270"),
|
|
3774
|
+
cornerRadius: zod.number().optional().describe("The corners of a slice"),
|
|
3775
|
+
paddingAngle: zod.number().optional().describe("The gap between slices"),
|
|
3776
|
+
showLabelLines: zod.boolean().optional().describe("Leader lines of the slice labels. Default true"),
|
|
3777
|
+
height: zod.number().optional().describe("Pixels. Default 240"),
|
|
3778
|
+
showLegend: zod.boolean().optional().describe("Default true"),
|
|
3779
|
+
showGrid: zod.boolean().optional().describe("Default true"),
|
|
3780
|
+
showTooltip: zod.boolean().optional().describe("Default true"),
|
|
3781
|
+
showValueLabels: zod.boolean().optional(),
|
|
3782
|
+
format: zod.enum([
|
|
3782
3783
|
"number",
|
|
3783
3784
|
"currency",
|
|
3784
3785
|
"percent"
|
|
3785
3786
|
]).optional().describe("Number formatting. With \"percent\", data values and axis min/max are fractions: 0.4 displays as 40%. For 0% to 10%, use min: 0 and max: 0.1."),
|
|
3786
|
-
currency: zod.
|
|
3787
|
-
title: zod.
|
|
3787
|
+
currency: zod.string().optional().describe("ISO code. Default \"USD\""),
|
|
3788
|
+
title: zod.string().optional()
|
|
3788
3789
|
});
|
|
3789
3790
|
const DEFAULT_HEIGHT = 240;
|
|
3790
3791
|
/** Hides an element on screen. Screen readers still read it. */
|
|
@@ -4188,22 +4189,22 @@ function Chart(props) {
|
|
|
4188
4189
|
|
|
4189
4190
|
//#endregion
|
|
4190
4191
|
//#region src/generative-ui/standard/Map.tsx
|
|
4191
|
-
const mapMarker = zod.
|
|
4192
|
-
label: zod.
|
|
4193
|
-
lat: zod.
|
|
4194
|
-
lng: zod.
|
|
4195
|
-
category: zod.
|
|
4196
|
-
icon: zod.
|
|
4192
|
+
const mapMarker = zod.object({
|
|
4193
|
+
label: zod.string(),
|
|
4194
|
+
lat: zod.number(),
|
|
4195
|
+
lng: zod.number(),
|
|
4196
|
+
category: zod.string().optional(),
|
|
4197
|
+
icon: zod.string().optional()
|
|
4197
4198
|
});
|
|
4198
|
-
const mapSchema = zod.
|
|
4199
|
-
markers: zod.
|
|
4200
|
-
route: zod.
|
|
4201
|
-
selected: zod.
|
|
4202
|
-
height: zod.
|
|
4203
|
-
zoom: zod.
|
|
4204
|
-
center: zod.
|
|
4205
|
-
lat: zod.
|
|
4206
|
-
lng: zod.
|
|
4199
|
+
const mapSchema = zod.object({
|
|
4200
|
+
markers: zod.array(mapMarker).optional().describe("A list of places, or { \"@path\": \"/x\" }"),
|
|
4201
|
+
route: zod.boolean().optional().describe("Draws a line through the markers in order"),
|
|
4202
|
+
selected: zod.string().optional().describe("The label of the selected marker. Bind it with { \"@path\": \"/x\" } to read the choice of the user"),
|
|
4203
|
+
height: zod.number().optional().describe("Pixels. Default 240"),
|
|
4204
|
+
zoom: zod.number().optional().describe("With two or more markers, only the highest zoom of the fit"),
|
|
4205
|
+
center: zod.object({
|
|
4206
|
+
lat: zod.number(),
|
|
4207
|
+
lng: zod.number()
|
|
4207
4208
|
}).optional()
|
|
4208
4209
|
});
|
|
4209
4210
|
/**
|
|
@@ -4502,7 +4503,7 @@ function MapView(props) {
|
|
|
4502
4503
|
|
|
4503
4504
|
//#endregion
|
|
4504
4505
|
//#region src/generative-ui/standard/data.tsx
|
|
4505
|
-
const cellAlign = zod.
|
|
4506
|
+
const cellAlign = zod.enum([
|
|
4506
4507
|
"start",
|
|
4507
4508
|
"center",
|
|
4508
4509
|
"end"
|
|
@@ -4511,85 +4512,85 @@ const cellAlign = zod.z.enum([
|
|
|
4511
4512
|
* A table cell or column header that shows another component. `id` is an
|
|
4512
4513
|
* alias of `componentId`.
|
|
4513
4514
|
*/
|
|
4514
|
-
const tableComponentCell = zod.
|
|
4515
|
-
const tableColumn = zod.
|
|
4516
|
-
zod.
|
|
4517
|
-
zod.
|
|
4518
|
-
label: zod.
|
|
4515
|
+
const tableComponentCell = zod.union([zod.object({ componentId: zod.string() }), zod.object({ id: zod.string() })]);
|
|
4516
|
+
const tableColumn = zod.union([
|
|
4517
|
+
zod.string(),
|
|
4518
|
+
zod.object({
|
|
4519
|
+
label: zod.string(),
|
|
4519
4520
|
align: cellAlign,
|
|
4520
4521
|
width: sizeValue.optional(),
|
|
4521
|
-
componentId: zod.
|
|
4522
|
+
componentId: zod.string().optional()
|
|
4522
4523
|
}),
|
|
4523
4524
|
tableComponentCell
|
|
4524
4525
|
]);
|
|
4525
|
-
const tableSchema = zod.
|
|
4526
|
-
caption: zod.
|
|
4527
|
-
columns: zod.
|
|
4528
|
-
rows: zod.
|
|
4529
|
-
columnSizing: zod.
|
|
4530
|
-
dividers: zod.
|
|
4531
|
-
stickyHeader: zod.
|
|
4532
|
-
emptyLabel: zod.
|
|
4526
|
+
const tableSchema = zod.object({
|
|
4527
|
+
caption: zod.string().optional().describe("A short name of the table for screen readers. It is not shown"),
|
|
4528
|
+
columns: zod.array(tableColumn).optional().describe("Strings, { \"label\", \"align\"?, \"width\"?, \"componentId\"? } or { \"componentId\" }, or { \"@path\": \"/x\" }. Default []"),
|
|
4529
|
+
rows: zod.array(zod.array(zod.unknown())).optional().describe("A list of row lists, or { \"@path\": \"/x\" }. A cell is a string, a number, or { \"componentId\": \"<id>\" } to show a component. Default []"),
|
|
4530
|
+
columnSizing: zod.enum(["auto", "equal"]).optional().describe("Default \"auto\""),
|
|
4531
|
+
dividers: zod.boolean().optional().describe("Default true"),
|
|
4532
|
+
stickyHeader: zod.boolean().optional().describe("Default false"),
|
|
4533
|
+
emptyLabel: zod.string().optional().describe("Default \"No rows\"")
|
|
4533
4534
|
});
|
|
4534
|
-
const tableSectionSchema = zod.
|
|
4535
|
-
header: zod.
|
|
4536
|
-
rowDivider: zod.
|
|
4535
|
+
const tableSectionSchema = zod.object({
|
|
4536
|
+
header: zod.boolean().optional().describe("Renders the rows as the header"),
|
|
4537
|
+
rowDivider: zod.boolean().optional()
|
|
4537
4538
|
});
|
|
4538
|
-
const tableRowSchema = zod.
|
|
4539
|
-
header: zod.
|
|
4540
|
-
label: zod.
|
|
4541
|
-
labelColSpan: zod.
|
|
4539
|
+
const tableRowSchema = zod.object({
|
|
4540
|
+
header: zod.boolean().optional(),
|
|
4541
|
+
label: zod.string().optional().describe("The text of a header cell at the start of the row"),
|
|
4542
|
+
labelColSpan: zod.number().optional().describe("Columns the label cell spans")
|
|
4542
4543
|
});
|
|
4543
|
-
const tableCellSchema = zod.
|
|
4544
|
-
text: zod.
|
|
4545
|
-
header: zod.
|
|
4544
|
+
const tableCellSchema = zod.object({
|
|
4545
|
+
text: zod.union([zod.string(), zod.number()]).optional(),
|
|
4546
|
+
header: zod.boolean().optional(),
|
|
4546
4547
|
align: cellAlign,
|
|
4547
4548
|
vAlign: cellAlign.describe("Default \"start\""),
|
|
4548
|
-
colSpan: zod.
|
|
4549
|
-
rowSpan: zod.
|
|
4549
|
+
colSpan: zod.number().optional(),
|
|
4550
|
+
rowSpan: zod.number().optional(),
|
|
4550
4551
|
width: sizeValue.optional(),
|
|
4551
4552
|
padding: sizeValue.optional()
|
|
4552
4553
|
});
|
|
4553
|
-
const listItemValue = zod.
|
|
4554
|
-
label: zod.
|
|
4555
|
-
description: zod.
|
|
4556
|
-
icon: zod.
|
|
4557
|
-
value: zod.
|
|
4554
|
+
const listItemValue = zod.union([zod.string(), zod.object({
|
|
4555
|
+
label: zod.string(),
|
|
4556
|
+
description: zod.string().optional(),
|
|
4557
|
+
icon: zod.string().optional().describe("Lucide icon name"),
|
|
4558
|
+
value: zod.union([zod.string(), zod.number()]).optional().describe("Without an action: shown on the right of the label, for a key and value fact. With an action: the payload of the pick, not shown")
|
|
4558
4559
|
})]);
|
|
4559
|
-
const listSchema = zod.
|
|
4560
|
-
items: zod.
|
|
4561
|
-
direction: zod.
|
|
4562
|
-
align: zod.
|
|
4560
|
+
const listSchema = zod.object({
|
|
4561
|
+
items: zod.array(listItemValue).optional().describe("Strings or { \"label\", \"value\"?, \"description\"?, \"icon\"? }, or { \"@path\": \"/x\" }"),
|
|
4562
|
+
direction: zod.enum(["vertical", "horizontal"]).optional().describe("Default \"vertical\". \"horizontal\" scrolls sideways"),
|
|
4563
|
+
align: zod.enum([
|
|
4563
4564
|
"start",
|
|
4564
4565
|
"center",
|
|
4565
4566
|
"end",
|
|
4566
4567
|
"stretch"
|
|
4567
4568
|
]).optional(),
|
|
4568
4569
|
weight: weightProp,
|
|
4569
|
-
marker: zod.
|
|
4570
|
+
marker: zod.enum([
|
|
4570
4571
|
"bullet",
|
|
4571
4572
|
"number",
|
|
4572
4573
|
"rich",
|
|
4573
4574
|
"none"
|
|
4574
4575
|
]).optional().describe("Default \"bullet\""),
|
|
4575
|
-
connector: zod.
|
|
4576
|
+
connector: zod.enum(["none", "solid"]).optional().describe("Default \"none\""),
|
|
4576
4577
|
gap: sizeValue.optional(),
|
|
4577
|
-
start: zod.
|
|
4578
|
-
maxMarkerSize: zod.
|
|
4578
|
+
start: zod.number().optional().describe("The first number of marker \"number\""),
|
|
4579
|
+
maxMarkerSize: zod.number().optional().describe("The width of the marker column in pixels")
|
|
4579
4580
|
});
|
|
4580
|
-
const listItemSchema = zod.
|
|
4581
|
-
label: zod.
|
|
4582
|
-
value: zod.
|
|
4583
|
-
description: zod.
|
|
4584
|
-
icon: zod.
|
|
4585
|
-
marker: zod.
|
|
4586
|
-
markerSize: zod.
|
|
4587
|
-
disabled: zod.
|
|
4581
|
+
const listItemSchema = zod.object({
|
|
4582
|
+
label: zod.string().optional(),
|
|
4583
|
+
value: zod.union([zod.string(), zod.number()]).optional().describe("Without an action: shown on the right of the label, for a key and value fact"),
|
|
4584
|
+
description: zod.string().optional(),
|
|
4585
|
+
icon: zod.string().optional().describe("Lucide icon name"),
|
|
4586
|
+
marker: zod.string().optional().describe("Shows this text as the marker"),
|
|
4587
|
+
markerSize: zod.number().optional().describe("The width of the marker column in pixels"),
|
|
4588
|
+
disabled: zod.boolean().optional().describe("Greys the item out and ignores its action")
|
|
4588
4589
|
});
|
|
4589
|
-
const listSelection = zod.
|
|
4590
|
-
index: zod.
|
|
4591
|
-
label: zod.
|
|
4592
|
-
value: zod.
|
|
4590
|
+
const listSelection = zod.object({
|
|
4591
|
+
index: zod.number(),
|
|
4592
|
+
label: zod.string(),
|
|
4593
|
+
value: zod.string().optional()
|
|
4593
4594
|
});
|
|
4594
4595
|
const TableContext = (0, react.createContext)(null);
|
|
4595
4596
|
const V_ALIGN = {
|
|
@@ -5055,7 +5056,7 @@ const dataComponents = {
|
|
|
5055
5056
|
props: listItemSchema,
|
|
5056
5057
|
events: { action: {
|
|
5057
5058
|
description: "Runs when the user picks the item.",
|
|
5058
|
-
parameters: zod.
|
|
5059
|
+
parameters: zod.object({})
|
|
5059
5060
|
} },
|
|
5060
5061
|
slots: CHILDREN_SLOT
|
|
5061
5062
|
},
|
|
@@ -5112,35 +5113,35 @@ const BUTTON_RESET = {
|
|
|
5112
5113
|
textAlign: "inherit",
|
|
5113
5114
|
cursor: "pointer"
|
|
5114
5115
|
};
|
|
5115
|
-
const pulseIndicatorSchema = zod.
|
|
5116
|
-
label: zod.
|
|
5117
|
-
color: zod.
|
|
5118
|
-
size: zod.
|
|
5119
|
-
pulseColor: zod.
|
|
5120
|
-
duration: zod.
|
|
5121
|
-
endScale: zod.
|
|
5122
|
-
startOpacity: zod.
|
|
5116
|
+
const pulseIndicatorSchema = zod.object({
|
|
5117
|
+
label: zod.string().optional().describe("What the dot means, for screen readers. Leave it unset when text next to the dot says the same"),
|
|
5118
|
+
color: zod.string().optional().describe("Text color token. Default \"success\""),
|
|
5119
|
+
size: zod.number().optional().describe("Pixels. Default 12"),
|
|
5120
|
+
pulseColor: zod.string().optional(),
|
|
5121
|
+
duration: zod.number().optional().describe("Milliseconds. Default 1500"),
|
|
5122
|
+
endScale: zod.number().optional().describe("Default 2.4"),
|
|
5123
|
+
startOpacity: zod.number().optional().describe("Default 0.6")
|
|
5123
5124
|
});
|
|
5124
|
-
const flashcardSchema = zod.
|
|
5125
|
-
front: zod.
|
|
5126
|
-
back: zod.
|
|
5127
|
-
hint: zod.
|
|
5125
|
+
const flashcardSchema = zod.object({
|
|
5126
|
+
front: zod.string().optional().describe("The text on the front"),
|
|
5127
|
+
back: zod.string().optional().describe("The text on the back"),
|
|
5128
|
+
hint: zod.string().optional().describe("A small line under the front, for example \"Click to flip\"")
|
|
5128
5129
|
});
|
|
5129
|
-
const popoverSchema = zod.
|
|
5130
|
-
open: zod.
|
|
5131
|
-
showOnHover: zod.
|
|
5132
|
-
hoverOpenDelay: zod.
|
|
5130
|
+
const popoverSchema = zod.object({
|
|
5131
|
+
open: zod.boolean().optional().describe("Default false"),
|
|
5132
|
+
showOnHover: zod.boolean().optional(),
|
|
5133
|
+
hoverOpenDelay: zod.number().optional().describe("Milliseconds before a hover opens it. Default 0")
|
|
5133
5134
|
});
|
|
5134
|
-
const popoverTriggerSchema = zod.
|
|
5135
|
-
const popoverContentSchema = zod.
|
|
5136
|
-
side: zod.
|
|
5135
|
+
const popoverTriggerSchema = zod.object({ block: zod.boolean().optional().describe("Full width") });
|
|
5136
|
+
const popoverContentSchema = zod.object({
|
|
5137
|
+
side: zod.enum([
|
|
5137
5138
|
"top",
|
|
5138
5139
|
"bottom",
|
|
5139
5140
|
"left",
|
|
5140
5141
|
"right"
|
|
5141
5142
|
]).optional().describe("Default \"bottom\""),
|
|
5142
|
-
sideOffset: zod.
|
|
5143
|
-
align: zod.
|
|
5143
|
+
sideOffset: zod.number().optional().describe("Pixels between the trigger and the content. Default 6"),
|
|
5144
|
+
align: zod.enum([
|
|
5144
5145
|
"start",
|
|
5145
5146
|
"center",
|
|
5146
5147
|
"end"
|
|
@@ -5404,9 +5405,9 @@ function PopoverContent(props) {
|
|
|
5404
5405
|
children: props.children
|
|
5405
5406
|
});
|
|
5406
5407
|
}
|
|
5407
|
-
const modalSchema = zod.
|
|
5408
|
-
title: zod.
|
|
5409
|
-
open: zod.
|
|
5408
|
+
const modalSchema = zod.object({
|
|
5409
|
+
title: zod.string().optional().describe("The heading of the dialog"),
|
|
5410
|
+
open: zod.boolean().optional().describe("Default false. Bind it with { \"@path\": \"/x\" } to read it"),
|
|
5410
5411
|
maxWidth: sizeValue.optional().describe("Default 480"),
|
|
5411
5412
|
weight: weightProp
|
|
5412
5413
|
});
|
|
@@ -5660,20 +5661,20 @@ const feedbackComponents = {
|
|
|
5660
5661
|
* The engine resolves the condition before the component renders, so a
|
|
5661
5662
|
* component sees a boolean or a `ValidationResult`.
|
|
5662
5663
|
*/
|
|
5663
|
-
const severity = zod.
|
|
5664
|
+
const severity = zod.enum([
|
|
5664
5665
|
"error",
|
|
5665
5666
|
"warning",
|
|
5666
5667
|
"info"
|
|
5667
5668
|
]);
|
|
5668
|
-
const validationResult = zod.
|
|
5669
|
-
valid: zod.
|
|
5670
|
-
message: zod.
|
|
5671
|
-
code: zod.
|
|
5669
|
+
const validationResult = zod.object({
|
|
5670
|
+
valid: zod.boolean(),
|
|
5671
|
+
message: zod.string().optional(),
|
|
5672
|
+
code: zod.string().optional(),
|
|
5672
5673
|
severity: severity.optional()
|
|
5673
|
-
}).
|
|
5674
|
-
const checksProp = zod.
|
|
5675
|
-
condition: zod.
|
|
5676
|
-
message: zod.
|
|
5674
|
+
}).loose();
|
|
5675
|
+
const checksProp = zod.array(zod.object({
|
|
5676
|
+
condition: zod.union([zod.boolean(), validationResult]).optional().describe("A validator call, for example {\"@call\":\"required\",\"args\":{\"value\":{\"@path\":\"/x\"}}}, or a boolean binding"),
|
|
5677
|
+
message: zod.string().optional().describe("Shown when the check fails, instead of the default message")
|
|
5677
5678
|
})).optional().describe("Validation rules. The control shows the first failed one");
|
|
5678
5679
|
/**
|
|
5679
5680
|
* The failed check to show, or `undefined` when every check passes: the
|
|
@@ -5750,12 +5751,12 @@ async function copyText(text) {
|
|
|
5750
5751
|
* The arguments of a click or submit event: none. The model adds values
|
|
5751
5752
|
* with the `context` of its `{ "event": ... }` binding.
|
|
5752
5753
|
*/
|
|
5753
|
-
const NO_ARGS = zod.
|
|
5754
|
+
const NO_ARGS = zod.object({});
|
|
5754
5755
|
/** A list of choices: plain strings or `{ value, label, description? }`. */
|
|
5755
|
-
const optionList = zod.
|
|
5756
|
-
value: zod.
|
|
5757
|
-
label: zod.
|
|
5758
|
-
description: zod.
|
|
5756
|
+
const optionList = zod.array(zod.union([zod.string(), zod.object({
|
|
5757
|
+
value: zod.string(),
|
|
5758
|
+
label: zod.string().optional(),
|
|
5759
|
+
description: zod.string().optional()
|
|
5759
5760
|
})])).optional().describe("Strings or { \"value\", \"label\", \"description\"? }");
|
|
5760
5761
|
const SIZES = [
|
|
5761
5762
|
"sm",
|
|
@@ -5763,60 +5764,60 @@ const SIZES = [
|
|
|
5763
5764
|
"lg",
|
|
5764
5765
|
"xl"
|
|
5765
5766
|
];
|
|
5766
|
-
const size = (fallback) => zod.
|
|
5767
|
-
const pill = zod.
|
|
5768
|
-
const fieldLabel = zod.
|
|
5769
|
-
const boundValue = zod.
|
|
5770
|
-
const buttonSchema = zod.
|
|
5771
|
-
label: zod.
|
|
5767
|
+
const size = (fallback) => zod.enum(SIZES).optional().describe(`Default "${fallback}"`);
|
|
5768
|
+
const pill = zod.boolean().optional().describe("Default true");
|
|
5769
|
+
const fieldLabel = zod.string().optional().describe("The visible label of the field. Always set it");
|
|
5770
|
+
const boundValue = zod.string().optional().describe("Bind it with { \"@path\": \"/x\" } to read what the user entered");
|
|
5771
|
+
const buttonSchema = zod.object({
|
|
5772
|
+
label: zod.string().optional().describe("The button text"),
|
|
5772
5773
|
checks: checksProp,
|
|
5773
|
-
text: zod.
|
|
5774
|
-
variant: zod.
|
|
5774
|
+
text: zod.string().optional().describe("Same as label. Used when label is not set"),
|
|
5775
|
+
variant: zod.enum([
|
|
5775
5776
|
"default",
|
|
5776
5777
|
"primary",
|
|
5777
5778
|
"soft",
|
|
5778
5779
|
"borderless"
|
|
5779
5780
|
]).optional().describe("Default \"default\": outlined. \"primary\" is filled, for the one main action. \"borderless\" has no box, like a link"),
|
|
5780
|
-
color: zod.
|
|
5781
|
+
color: zod.enum([
|
|
5781
5782
|
"primary",
|
|
5782
5783
|
"secondary",
|
|
5783
5784
|
"danger"
|
|
5784
5785
|
]).optional().describe("Default \"primary\""),
|
|
5785
|
-
size: zod.
|
|
5786
|
+
size: zod.enum([
|
|
5786
5787
|
"sm",
|
|
5787
5788
|
"md",
|
|
5788
5789
|
"lg"
|
|
5789
5790
|
]).optional().describe("Default \"lg\""),
|
|
5790
|
-
block: zod.
|
|
5791
|
+
block: zod.boolean().optional().describe("Full width"),
|
|
5791
5792
|
weight: weightProp,
|
|
5792
5793
|
pill,
|
|
5793
|
-
disabled: zod.
|
|
5794
|
-
loading: zod.
|
|
5795
|
-
submit: zod.
|
|
5796
|
-
icon: zod.
|
|
5797
|
-
uniform: zod.
|
|
5798
|
-
href: zod.
|
|
5799
|
-
copy: zod.
|
|
5794
|
+
disabled: zod.boolean().optional(),
|
|
5795
|
+
loading: zod.boolean().optional(),
|
|
5796
|
+
submit: zod.boolean().optional().describe("Submits the Form around it. The Form sends its onSubmit event"),
|
|
5797
|
+
icon: zod.string().optional().describe("Lucide icon name"),
|
|
5798
|
+
uniform: zod.boolean().optional().describe("A square button, for an icon"),
|
|
5799
|
+
href: zod.string().optional().describe("Opens this URL in a new tab on click, instead of onClick"),
|
|
5800
|
+
copy: zod.string().optional().describe("Copies this text to the clipboard on click and shows a check mark, instead of onClick")
|
|
5800
5801
|
});
|
|
5801
|
-
const pressableSchema = zod.
|
|
5802
|
+
const pressableSchema = zod.object({
|
|
5802
5803
|
...layoutProps,
|
|
5803
|
-
disabled: zod.
|
|
5804
|
-
hoverBackground: zod.
|
|
5805
|
-
href: zod.
|
|
5806
|
-
tooltip: zod.
|
|
5807
|
-
ariaPressed: zod.
|
|
5808
|
-
insetBorder: zod.
|
|
5804
|
+
disabled: zod.boolean().optional(),
|
|
5805
|
+
hoverBackground: zod.string().optional(),
|
|
5806
|
+
href: zod.string().optional().describe("Opens this URL in a new tab on click, instead of onClick"),
|
|
5807
|
+
tooltip: zod.string().optional().describe("Shown on hover"),
|
|
5808
|
+
ariaPressed: zod.boolean().optional().describe("For a toggle"),
|
|
5809
|
+
insetBorder: zod.boolean().optional().describe("A 1px border inside the box")
|
|
5809
5810
|
});
|
|
5810
|
-
const formSchema = zod.
|
|
5811
|
+
const formSchema = zod.object({
|
|
5811
5812
|
...layoutProps,
|
|
5812
|
-
label: zod.
|
|
5813
|
+
label: zod.string().optional().describe("A short name of the form for screen readers")
|
|
5813
5814
|
});
|
|
5814
|
-
const textFieldSchema = zod.
|
|
5815
|
+
const textFieldSchema = zod.object({
|
|
5815
5816
|
checks: checksProp,
|
|
5816
|
-
value: zod.
|
|
5817
|
-
placeholder: zod.
|
|
5817
|
+
value: zod.union([zod.string(), zod.number()]).optional().describe("Bind it with { \"@path\": \"/x\" } to read what the user typed"),
|
|
5818
|
+
placeholder: zod.string().optional(),
|
|
5818
5819
|
label: fieldLabel,
|
|
5819
|
-
variant: zod.
|
|
5820
|
+
variant: zod.enum([
|
|
5820
5821
|
"shortText",
|
|
5821
5822
|
"longText",
|
|
5822
5823
|
"number",
|
|
@@ -5826,140 +5827,140 @@ const textFieldSchema = zod.z.object({
|
|
|
5826
5827
|
"tel"
|
|
5827
5828
|
]).optional().describe("Default \"shortText\". \"longText\" is a multi-line field, \"obscured\" a password"),
|
|
5828
5829
|
weight: weightProp,
|
|
5829
|
-
name: zod.
|
|
5830
|
-
required: zod.
|
|
5831
|
-
disabled: zod.
|
|
5832
|
-
invalid: zod.
|
|
5830
|
+
name: zod.string().optional(),
|
|
5831
|
+
required: zod.boolean().optional(),
|
|
5832
|
+
disabled: zod.boolean().optional(),
|
|
5833
|
+
invalid: zod.boolean().optional(),
|
|
5833
5834
|
size: size("xl"),
|
|
5834
5835
|
pill,
|
|
5835
|
-
autoSelect: zod.
|
|
5836
|
-
mask: zod.
|
|
5836
|
+
autoSelect: zod.boolean().optional(),
|
|
5837
|
+
mask: zod.string().optional()
|
|
5837
5838
|
});
|
|
5838
|
-
const textAreaSchema = zod.
|
|
5839
|
+
const textAreaSchema = zod.object({
|
|
5839
5840
|
checks: checksProp,
|
|
5840
5841
|
value: boundValue,
|
|
5841
|
-
placeholder: zod.
|
|
5842
|
+
placeholder: zod.string().optional(),
|
|
5842
5843
|
label: fieldLabel,
|
|
5843
5844
|
weight: weightProp,
|
|
5844
|
-
rows: zod.
|
|
5845
|
-
maxRows: zod.
|
|
5846
|
-
autoResize: zod.
|
|
5847
|
-
name: zod.
|
|
5848
|
-
required: zod.
|
|
5849
|
-
disabled: zod.
|
|
5850
|
-
invalid: zod.
|
|
5845
|
+
rows: zod.number().optional().describe("Default 3"),
|
|
5846
|
+
maxRows: zod.number().optional(),
|
|
5847
|
+
autoResize: zod.boolean().optional(),
|
|
5848
|
+
name: zod.string().optional(),
|
|
5849
|
+
required: zod.boolean().optional(),
|
|
5850
|
+
disabled: zod.boolean().optional(),
|
|
5851
|
+
invalid: zod.boolean().optional(),
|
|
5851
5852
|
size: size("xl")
|
|
5852
5853
|
});
|
|
5853
|
-
const selectSchema = zod.
|
|
5854
|
+
const selectSchema = zod.object({
|
|
5854
5855
|
checks: checksProp,
|
|
5855
5856
|
value: boundValue,
|
|
5856
5857
|
options: optionList,
|
|
5857
|
-
placeholder: zod.
|
|
5858
|
+
placeholder: zod.string().optional(),
|
|
5858
5859
|
label: fieldLabel,
|
|
5859
|
-
name: zod.
|
|
5860
|
-
required: zod.
|
|
5861
|
-
disabled: zod.
|
|
5862
|
-
clearable: zod.
|
|
5863
|
-
clearLabel: zod.
|
|
5864
|
-
searchable: zod.
|
|
5865
|
-
icon: zod.
|
|
5866
|
-
block: zod.
|
|
5860
|
+
name: zod.string().optional(),
|
|
5861
|
+
required: zod.boolean().optional(),
|
|
5862
|
+
disabled: zod.boolean().optional(),
|
|
5863
|
+
clearable: zod.boolean().optional(),
|
|
5864
|
+
clearLabel: zod.string().optional().describe("The label of the empty option"),
|
|
5865
|
+
searchable: zod.boolean().optional(),
|
|
5866
|
+
icon: zod.string().optional().describe("Lucide icon shown before the value"),
|
|
5867
|
+
block: zod.boolean().optional().describe("Full width"),
|
|
5867
5868
|
size: size("xl"),
|
|
5868
5869
|
pill
|
|
5869
5870
|
});
|
|
5870
|
-
const checkBoxSchema = zod.
|
|
5871
|
+
const checkBoxSchema = zod.object({
|
|
5871
5872
|
checks: checksProp,
|
|
5872
|
-
value: zod.
|
|
5873
|
-
label: zod.
|
|
5874
|
-
name: zod.
|
|
5873
|
+
value: zod.boolean().optional().describe("True when checked. Bind it with { \"@path\": \"/x\" } to read the state of the box"),
|
|
5874
|
+
label: zod.string().optional().describe("The label text. Always set it"),
|
|
5875
|
+
name: zod.string().optional(),
|
|
5875
5876
|
weight: weightProp,
|
|
5876
|
-
disabled: zod.
|
|
5877
|
-
required: zod.
|
|
5878
|
-
lineThrough: zod.
|
|
5879
|
-
shape: zod.
|
|
5877
|
+
disabled: zod.boolean().optional(),
|
|
5878
|
+
required: zod.boolean().optional(),
|
|
5879
|
+
lineThrough: zod.boolean().optional().describe("Default false. Strikes the label when the box is checked"),
|
|
5880
|
+
shape: zod.enum(["round", "square"]).optional().describe("Default \"round\"")
|
|
5880
5881
|
});
|
|
5881
|
-
const radioSchema = zod.
|
|
5882
|
-
value: zod.
|
|
5883
|
-
label: zod.
|
|
5884
|
-
disabled: zod.
|
|
5885
|
-
required: zod.
|
|
5882
|
+
const radioSchema = zod.object({
|
|
5883
|
+
value: zod.string().optional(),
|
|
5884
|
+
label: zod.string().optional(),
|
|
5885
|
+
disabled: zod.boolean().optional(),
|
|
5886
|
+
required: zod.boolean().optional()
|
|
5886
5887
|
});
|
|
5887
|
-
const radioGroupSchema = zod.
|
|
5888
|
+
const radioGroupSchema = zod.object({
|
|
5888
5889
|
checks: checksProp,
|
|
5889
5890
|
value: boundValue,
|
|
5890
5891
|
options: optionList,
|
|
5891
5892
|
label: fieldLabel,
|
|
5892
|
-
name: zod.
|
|
5893
|
-
direction: zod.
|
|
5894
|
-
variant: zod.
|
|
5893
|
+
name: zod.string().optional(),
|
|
5894
|
+
direction: zod.enum(["row", "col"]).optional().describe("Default \"row\""),
|
|
5895
|
+
variant: zod.enum([
|
|
5895
5896
|
"list",
|
|
5896
5897
|
"pills",
|
|
5897
5898
|
"cards"
|
|
5898
5899
|
]).optional(),
|
|
5899
|
-
disabled: zod.
|
|
5900
|
-
required: zod.
|
|
5900
|
+
disabled: zod.boolean().optional(),
|
|
5901
|
+
required: zod.boolean().optional()
|
|
5901
5902
|
});
|
|
5902
|
-
const sliderSchema = zod.
|
|
5903
|
+
const sliderSchema = zod.object({
|
|
5903
5904
|
checks: checksProp,
|
|
5904
|
-
value: zod.
|
|
5905
|
-
min: zod.
|
|
5906
|
-
max: zod.
|
|
5907
|
-
step: zod.
|
|
5908
|
-
steps: zod.
|
|
5905
|
+
value: zod.number().optional().describe("Bind it with { \"@path\": \"/x\" } to read the number"),
|
|
5906
|
+
min: zod.number().optional().describe("Default 0"),
|
|
5907
|
+
max: zod.number().optional().describe("Default 100"),
|
|
5908
|
+
step: zod.number().optional().describe("Default 1"),
|
|
5909
|
+
steps: zod.number().int().min(1).optional().describe("The number of equal divisions between min and max, instead of step"),
|
|
5909
5910
|
label: fieldLabel,
|
|
5910
5911
|
weight: weightProp,
|
|
5911
|
-
unit: zod.
|
|
5912
|
-
marks: zod.
|
|
5913
|
-
value: zod.
|
|
5914
|
-
label: zod.
|
|
5912
|
+
unit: zod.string().optional().describe("Unit after the value, for example \"%\""),
|
|
5913
|
+
marks: zod.array(zod.object({
|
|
5914
|
+
value: zod.number(),
|
|
5915
|
+
label: zod.string().optional()
|
|
5915
5916
|
})).optional(),
|
|
5916
|
-
sliderStyle: zod.
|
|
5917
|
-
disabled: zod.
|
|
5918
|
-
name: zod.
|
|
5917
|
+
sliderStyle: zod.enum(["continuous", "discrete"]).optional().describe("Default \"continuous\""),
|
|
5918
|
+
disabled: zod.boolean().optional(),
|
|
5919
|
+
name: zod.string().optional()
|
|
5919
5920
|
});
|
|
5920
|
-
const segmentedControlSchema = zod.
|
|
5921
|
+
const segmentedControlSchema = zod.object({
|
|
5921
5922
|
checks: checksProp,
|
|
5922
5923
|
value: boundValue,
|
|
5923
5924
|
options: optionList,
|
|
5924
5925
|
label: fieldLabel,
|
|
5925
|
-
block: zod.
|
|
5926
|
+
block: zod.boolean().optional().describe("Full width"),
|
|
5926
5927
|
size: size("lg"),
|
|
5927
5928
|
pill,
|
|
5928
|
-
variant: zod.
|
|
5929
|
+
variant: zod.enum([
|
|
5929
5930
|
"solid",
|
|
5930
5931
|
"soft",
|
|
5931
5932
|
"outline",
|
|
5932
5933
|
"ghost"
|
|
5933
5934
|
]).optional().describe("Default \"ghost\""),
|
|
5934
|
-
disabled: zod.
|
|
5935
|
+
disabled: zod.boolean().optional()
|
|
5935
5936
|
});
|
|
5936
|
-
const choicePickerSchema = zod.
|
|
5937
|
+
const choicePickerSchema = zod.object({
|
|
5937
5938
|
checks: checksProp,
|
|
5938
|
-
value: zod.
|
|
5939
|
+
value: zod.array(zod.string()).optional().describe("The chosen option values. Bind it with { \"@path\": \"/x\" } to a string list"),
|
|
5939
5940
|
options: optionList,
|
|
5940
5941
|
label: fieldLabel,
|
|
5941
|
-
variant: zod.
|
|
5942
|
-
displayStyle: zod.
|
|
5943
|
-
filterable: zod.
|
|
5942
|
+
variant: zod.enum(["multipleSelection", "mutuallyExclusive"]).optional().describe("Default \"mutuallyExclusive\": the user picks one option"),
|
|
5943
|
+
displayStyle: zod.enum(["checkbox", "chips"]).optional().describe("Default \"checkbox\". \"chips\" shows the options as pills"),
|
|
5944
|
+
filterable: zod.boolean().optional().describe("Default false. Shows a field that filters the options"),
|
|
5944
5945
|
weight: weightProp,
|
|
5945
|
-
disabled: zod.
|
|
5946
|
-
required: zod.
|
|
5946
|
+
disabled: zod.boolean().optional(),
|
|
5947
|
+
required: zod.boolean().optional()
|
|
5947
5948
|
});
|
|
5948
|
-
const dateTimeInputSchema = zod.
|
|
5949
|
+
const dateTimeInputSchema = zod.object({
|
|
5949
5950
|
checks: checksProp,
|
|
5950
|
-
value: zod.
|
|
5951
|
+
value: zod.string().optional().describe("ISO 8601: \"YYYY-MM-DD\", \"HH:MM\" or \"YYYY-MM-DDTHH:MM\". Bind it with { \"@path\": \"/x\" }"),
|
|
5951
5952
|
label: fieldLabel,
|
|
5952
|
-
enableDate: zod.
|
|
5953
|
-
enableTime: zod.
|
|
5954
|
-
timeStep: zod.
|
|
5953
|
+
enableDate: zod.boolean().optional().describe("The user picks a date. Default true unless only enableTime is set"),
|
|
5954
|
+
enableTime: zod.boolean().optional().describe("The user picks a time"),
|
|
5955
|
+
timeStep: zod.number().int().min(1).max(720).optional().describe("Minutes between the times the user can pick, e.g. 15 or 30. Shows the time as a list"),
|
|
5955
5956
|
weight: weightProp,
|
|
5956
|
-
min: zod.
|
|
5957
|
-
max: zod.
|
|
5958
|
-
placeholder: zod.
|
|
5959
|
-
disabled: zod.
|
|
5960
|
-
required: zod.
|
|
5961
|
-
clearable: zod.
|
|
5962
|
-
block: zod.
|
|
5957
|
+
min: zod.string().optional().describe("The earliest value, ISO 8601"),
|
|
5958
|
+
max: zod.string().optional().describe("The latest value, ISO 8601"),
|
|
5959
|
+
placeholder: zod.string().optional(),
|
|
5960
|
+
disabled: zod.boolean().optional(),
|
|
5961
|
+
required: zod.boolean().optional(),
|
|
5962
|
+
clearable: zod.boolean().optional(),
|
|
5963
|
+
block: zod.boolean().optional().describe("Full width")
|
|
5963
5964
|
});
|
|
5964
5965
|
/** The writable list of a control that keeps its state in `value`. */
|
|
5965
5966
|
const VALUE_WRITABLE = ["value"];
|
|
@@ -7305,9 +7306,9 @@ const inputComponents = {
|
|
|
7305
7306
|
|
|
7306
7307
|
//#endregion
|
|
7307
7308
|
//#region src/generative-ui/standard/text.tsx
|
|
7308
|
-
const colorProp = zod.
|
|
7309
|
-
const fontWeight = zod.
|
|
7310
|
-
const textAlign = zod.
|
|
7309
|
+
const colorProp = zod.string().optional().describe(`One of ${TEXT_COLORS.join("|")} or a CSS color`);
|
|
7310
|
+
const fontWeight = zod.enum(WEIGHTS).optional();
|
|
7311
|
+
const textAlign = zod.enum([
|
|
7311
7312
|
"start",
|
|
7312
7313
|
"center",
|
|
7313
7314
|
"end"
|
|
@@ -7316,70 +7317,70 @@ const typographyProps = {
|
|
|
7316
7317
|
color: colorProp,
|
|
7317
7318
|
fontWeight,
|
|
7318
7319
|
textAlign,
|
|
7319
|
-
italic: zod.
|
|
7320
|
-
truncate: zod.
|
|
7321
|
-
maxLines: zod.
|
|
7322
|
-
tabularNums: zod.
|
|
7320
|
+
italic: zod.boolean().optional(),
|
|
7321
|
+
truncate: zod.boolean().optional(),
|
|
7322
|
+
maxLines: zod.number().optional(),
|
|
7323
|
+
tabularNums: zod.boolean().optional(),
|
|
7323
7324
|
width: sizeValue.optional()
|
|
7324
7325
|
};
|
|
7325
|
-
zod.
|
|
7326
|
-
const titleSchema = zod.
|
|
7326
|
+
zod.object(typographyProps);
|
|
7327
|
+
const titleSchema = zod.object({
|
|
7327
7328
|
...typographyProps,
|
|
7328
|
-
text: zod.
|
|
7329
|
-
size: zod.
|
|
7330
|
-
strong: zod.
|
|
7329
|
+
text: zod.string().describe("Heading text"),
|
|
7330
|
+
size: zod.enum(TITLE_SIZES).optional().describe("Default \"md\""),
|
|
7331
|
+
strong: zod.boolean().optional().describe("Default true")
|
|
7331
7332
|
});
|
|
7332
|
-
const textSchema = zod.
|
|
7333
|
+
const textSchema = zod.object({
|
|
7333
7334
|
...typographyProps,
|
|
7334
7335
|
weight: weightProp,
|
|
7335
|
-
text: zod.
|
|
7336
|
-
size: zod.
|
|
7336
|
+
text: zod.union([zod.string(), zod.number()]).optional().describe("Text with inline markdown. A bound number shows as text"),
|
|
7337
|
+
size: zod.enum(TEXT_SIZES).optional().describe("Default \"md\""),
|
|
7337
7338
|
fontSize: sizeValue.optional().describe("Pixels when a number. Wins over size"),
|
|
7338
|
-
lineHeight: zod.
|
|
7339
|
-
minLines: zod.
|
|
7340
|
-
strong: zod.
|
|
7341
|
-
underline: zod.
|
|
7342
|
-
lineThrough: zod.
|
|
7343
|
-
inline: zod.
|
|
7344
|
-
preserveWhitespace: zod.
|
|
7345
|
-
highlight: zod.
|
|
7339
|
+
lineHeight: zod.union([zod.number(), zod.string()]).optional().describe("A unitless ratio, or CSS"),
|
|
7340
|
+
minLines: zod.number().optional().describe("Reserves the height of this many lines"),
|
|
7341
|
+
strong: zod.boolean().optional().describe("Default false"),
|
|
7342
|
+
underline: zod.boolean().optional(),
|
|
7343
|
+
lineThrough: zod.boolean().optional(),
|
|
7344
|
+
inline: zod.boolean().optional(),
|
|
7345
|
+
preserveWhitespace: zod.boolean().optional(),
|
|
7346
|
+
highlight: zod.union([zod.enum([
|
|
7346
7347
|
"green",
|
|
7347
7348
|
"orange",
|
|
7348
7349
|
"pink"
|
|
7349
|
-
]), zod.
|
|
7350
|
+
]), zod.boolean()]).optional()
|
|
7350
7351
|
});
|
|
7351
|
-
const captionSchema = zod.
|
|
7352
|
-
text: zod.
|
|
7352
|
+
const captionSchema = zod.object({
|
|
7353
|
+
text: zod.union([zod.string(), zod.number()]).describe("Caption text"),
|
|
7353
7354
|
color: colorProp,
|
|
7354
|
-
size: zod.
|
|
7355
|
+
size: zod.enum([
|
|
7355
7356
|
"sm",
|
|
7356
7357
|
"md",
|
|
7357
7358
|
"lg"
|
|
7358
7359
|
]).optional().describe("Default \"lg\""),
|
|
7359
7360
|
fontWeight: fontWeight.describe("Default \"normal\""),
|
|
7360
7361
|
textAlign,
|
|
7361
|
-
truncate: zod.
|
|
7362
|
-
maxLines: zod.
|
|
7362
|
+
truncate: zod.boolean().optional(),
|
|
7363
|
+
maxLines: zod.number().optional()
|
|
7363
7364
|
});
|
|
7364
|
-
const labelSchema = zod.
|
|
7365
|
-
text: zod.
|
|
7366
|
-
htmlFor: zod.
|
|
7365
|
+
const labelSchema = zod.object({
|
|
7366
|
+
text: zod.union([zod.string(), zod.number()]).describe("Label text"),
|
|
7367
|
+
htmlFor: zod.string().optional(),
|
|
7367
7368
|
color: colorProp,
|
|
7368
|
-
size: zod.
|
|
7369
|
+
size: zod.enum(TEXT_SIZES).optional().describe("Default \"sm\""),
|
|
7369
7370
|
fontWeight: fontWeight.describe("Default \"medium\""),
|
|
7370
7371
|
textAlign,
|
|
7371
|
-
truncate: zod.
|
|
7372
|
+
truncate: zod.boolean().optional(),
|
|
7372
7373
|
width: sizeValue.optional()
|
|
7373
7374
|
});
|
|
7374
|
-
const boldSchema = zod.
|
|
7375
|
-
text: zod.
|
|
7375
|
+
const boldSchema = zod.object({
|
|
7376
|
+
text: zod.string(),
|
|
7376
7377
|
fontWeight
|
|
7377
7378
|
});
|
|
7378
|
-
const inlineTextSchema = zod.
|
|
7379
|
-
const blockquoteSchema = zod.
|
|
7380
|
-
const badgeSchema = zod.
|
|
7381
|
-
label: zod.
|
|
7382
|
-
color: zod.
|
|
7379
|
+
const inlineTextSchema = zod.object({ text: zod.string() });
|
|
7380
|
+
const blockquoteSchema = zod.object({ text: zod.string().describe("The quoted text, with inline markdown") });
|
|
7381
|
+
const badgeSchema = zod.object({
|
|
7382
|
+
label: zod.string().describe("Badge text"),
|
|
7383
|
+
color: zod.enum([
|
|
7383
7384
|
"secondary",
|
|
7384
7385
|
"success",
|
|
7385
7386
|
"danger",
|
|
@@ -7387,13 +7388,13 @@ const badgeSchema = zod.z.object({
|
|
|
7387
7388
|
"info",
|
|
7388
7389
|
"discovery"
|
|
7389
7390
|
]).optional().describe("Default \"secondary\""),
|
|
7390
|
-
size: zod.
|
|
7391
|
+
size: zod.enum([
|
|
7391
7392
|
"sm",
|
|
7392
7393
|
"md",
|
|
7393
7394
|
"lg"
|
|
7394
7395
|
]).optional().describe("Default \"md\""),
|
|
7395
|
-
pill: zod.
|
|
7396
|
-
variant: zod.
|
|
7396
|
+
pill: zod.boolean().optional().describe("Default true"),
|
|
7397
|
+
variant: zod.enum([
|
|
7397
7398
|
"soft",
|
|
7398
7399
|
"solid",
|
|
7399
7400
|
"outline"
|
|
@@ -7402,28 +7403,28 @@ const badgeSchema = zod.z.object({
|
|
|
7402
7403
|
maxWidth: sizeValue.optional(),
|
|
7403
7404
|
padding: sizeValue.optional()
|
|
7404
7405
|
});
|
|
7405
|
-
const codeSchema = zod.
|
|
7406
|
-
text: zod.
|
|
7407
|
-
language: zod.
|
|
7406
|
+
const codeSchema = zod.object({
|
|
7407
|
+
text: zod.string().describe("Source code"),
|
|
7408
|
+
language: zod.string().optional()
|
|
7408
7409
|
});
|
|
7409
|
-
const markdownSchema = zod.
|
|
7410
|
-
text: zod.
|
|
7411
|
-
streaming: zod.
|
|
7410
|
+
const markdownSchema = zod.object({
|
|
7411
|
+
text: zod.string().describe("Markdown source"),
|
|
7412
|
+
streaming: zod.boolean().optional().describe("Default false")
|
|
7412
7413
|
});
|
|
7413
|
-
const mathSchema = zod.
|
|
7414
|
-
value: zod.
|
|
7415
|
-
block: zod.
|
|
7414
|
+
const mathSchema = zod.object({
|
|
7415
|
+
value: zod.string().describe("TeX source"),
|
|
7416
|
+
block: zod.boolean().optional().describe("Default false")
|
|
7416
7417
|
});
|
|
7417
|
-
const shimmerSchema = zod.
|
|
7418
|
+
const shimmerSchema = zod.object({
|
|
7418
7419
|
...typographyProps,
|
|
7419
|
-
text: zod.
|
|
7420
|
-
size: zod.
|
|
7421
|
-
lineThrough: zod.
|
|
7420
|
+
text: zod.string(),
|
|
7421
|
+
size: zod.enum(TEXT_SIZES).optional().describe("Default \"md\""),
|
|
7422
|
+
lineThrough: zod.boolean().optional()
|
|
7422
7423
|
});
|
|
7423
|
-
const linkSchema = zod.
|
|
7424
|
-
text: zod.
|
|
7425
|
-
href: zod.
|
|
7426
|
-
title: zod.
|
|
7424
|
+
const linkSchema = zod.object({
|
|
7425
|
+
text: zod.string().describe("Link text"),
|
|
7426
|
+
href: zod.string().describe("URL"),
|
|
7427
|
+
title: zod.string().optional()
|
|
7427
7428
|
});
|
|
7428
7429
|
const FOCUS_RING = "2px solid var(--a2ui-color-focus, #0285ff)";
|
|
7429
7430
|
const TEXT_STYLE_ID = "a2ui-standard-text";
|