@assistant-ui/react-generative-ui 0.0.23 → 0.1.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.
Files changed (338) hide show
  1. package/README.md +2 -0
  2. package/dist/a2ui.d.ts +1 -4
  3. package/dist/a2ui.d.ts.map +1 -1
  4. package/dist/a2ui.js +1 -4
  5. package/dist/index.d.ts +1 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -10
  8. package/dist/index.server.d.ts +1 -2
  9. package/dist/index.server.d.ts.map +1 -1
  10. package/dist/index.server.js +1 -10
  11. package/dist/ir.d.ts +1 -111
  12. package/dist/ir.d.ts.map +1 -1
  13. package/dist/ir.js +1 -175
  14. package/dist/slack.d.ts +1 -4
  15. package/dist/slack.d.ts.map +1 -1
  16. package/dist/slack.js +1 -4
  17. package/dist/teams.d.ts +1 -4
  18. package/dist/teams.d.ts.map +1 -1
  19. package/dist/teams.js +1 -4
  20. package/package.json +5 -5
  21. package/src/a2ui.ts +1 -22
  22. package/src/index.server.ts +1 -2
  23. package/src/index.test.ts +75 -0
  24. package/src/index.ts +1 -2
  25. package/src/ir.ts +1 -279
  26. package/src/slack.ts +1 -39
  27. package/src/teams.ts +1 -35
  28. package/dist/JSONGenerativeUI.client.d.ts +0 -28
  29. package/dist/JSONGenerativeUI.client.d.ts.map +0 -1
  30. package/dist/JSONGenerativeUI.client.js +0 -101
  31. package/dist/JSONGenerativeUI.client.js.map +0 -1
  32. package/dist/JSONGenerativeUI.server.d.ts +0 -21
  33. package/dist/JSONGenerativeUI.server.d.ts.map +0 -1
  34. package/dist/JSONGenerativeUI.server.js +0 -32
  35. package/dist/JSONGenerativeUI.server.js.map +0 -1
  36. package/dist/JSONGenerativeUI.shared.d.ts +0 -63
  37. package/dist/JSONGenerativeUI.shared.d.ts.map +0 -1
  38. package/dist/JSONGenerativeUI.shared.js +0 -31
  39. package/dist/JSONGenerativeUI.shared.js.map +0 -1
  40. package/dist/RadioGroupScope.d.ts +0 -6
  41. package/dist/RadioGroupScope.d.ts.map +0 -1
  42. package/dist/RadioGroupScope.js +0 -25
  43. package/dist/RadioGroupScope.js.map +0 -1
  44. package/dist/a2ui/BindingContext.d.ts +0 -11
  45. package/dist/a2ui/BindingContext.d.ts.map +0 -1
  46. package/dist/a2ui/BindingContext.js +0 -12
  47. package/dist/a2ui/BindingContext.js.map +0 -1
  48. package/dist/a2ui/PresentRenderer.d.ts +0 -11
  49. package/dist/a2ui/PresentRenderer.d.ts.map +0 -1
  50. package/dist/a2ui/PresentRenderer.js +0 -39
  51. package/dist/a2ui/PresentRenderer.js.map +0 -1
  52. package/dist/a2ui/convert.d.ts +0 -15
  53. package/dist/a2ui/convert.d.ts.map +0 -1
  54. package/dist/a2ui/convert.js +0 -728
  55. package/dist/a2ui/convert.js.map +0 -1
  56. package/dist/a2ui/dataModel.d.ts +0 -9
  57. package/dist/a2ui/dataModel.d.ts.map +0 -1
  58. package/dist/a2ui/dataModel.js +0 -44
  59. package/dist/a2ui/dataModel.js.map +0 -1
  60. package/dist/a2ui/reducer.d.ts +0 -8
  61. package/dist/a2ui/reducer.d.ts.map +0 -1
  62. package/dist/a2ui/reducer.js +0 -242
  63. package/dist/a2ui/reducer.js.map +0 -1
  64. package/dist/a2ui/snapshot.d.ts +0 -3
  65. package/dist/a2ui/snapshot.d.ts.map +0 -1
  66. package/dist/a2ui/snapshot.js +0 -33
  67. package/dist/a2ui/snapshot.js.map +0 -1
  68. package/dist/a2ui/types.d.ts +0 -88
  69. package/dist/a2ui/types.d.ts.map +0 -1
  70. package/dist/a2ui/types.js +0 -6
  71. package/dist/a2ui/types.js.map +0 -1
  72. package/dist/a2ui/valueFunctions.d.ts +0 -16
  73. package/dist/a2ui/valueFunctions.d.ts.map +0 -1
  74. package/dist/a2ui/valueFunctions.js +0 -332
  75. package/dist/a2ui/valueFunctions.js.map +0 -1
  76. package/dist/actionRegistry.d.ts +0 -29
  77. package/dist/actionRegistry.d.ts.map +0 -1
  78. package/dist/actionRegistry.js +0 -41
  79. package/dist/actionRegistry.js.map +0 -1
  80. package/dist/answeredValues.d.ts +0 -16
  81. package/dist/answeredValues.d.ts.map +0 -1
  82. package/dist/answeredValues.js +0 -37
  83. package/dist/answeredValues.js.map +0 -1
  84. package/dist/buildPresentParameters.d.ts +0 -21
  85. package/dist/buildPresentParameters.d.ts.map +0 -1
  86. package/dist/buildPresentParameters.js +0 -95
  87. package/dist/buildPresentParameters.js.map +0 -1
  88. package/dist/constants.d.ts +0 -15
  89. package/dist/constants.d.ts.map +0 -1
  90. package/dist/constants.js +0 -19
  91. package/dist/constants.js.map +0 -1
  92. package/dist/convert/boundSpec.d.ts +0 -48
  93. package/dist/convert/boundSpec.d.ts.map +0 -1
  94. package/dist/convert/boundSpec.js +0 -108
  95. package/dist/convert/boundSpec.js.map +0 -1
  96. package/dist/convert/copyBounded.d.ts +0 -25
  97. package/dist/convert/copyBounded.d.ts.map +0 -1
  98. package/dist/convert/copyBounded.js +0 -38
  99. package/dist/convert/copyBounded.js.map +0 -1
  100. package/dist/convert/isElement.d.ts +0 -3
  101. package/dist/convert/isElement.d.ts.map +0 -1
  102. package/dist/convert/isElement.js +0 -6
  103. package/dist/convert/isElement.js.map +0 -1
  104. package/dist/convert/takeRun.d.ts +0 -6
  105. package/dist/convert/takeRun.d.ts.map +0 -1
  106. package/dist/convert/takeRun.js +0 -20
  107. package/dist/convert/takeRun.js.map +0 -1
  108. package/dist/defineGenerativeComponents.d.ts +0 -29
  109. package/dist/defineGenerativeComponents.d.ts.map +0 -1
  110. package/dist/defineGenerativeComponents.js +0 -34
  111. package/dist/defineGenerativeComponents.js.map +0 -1
  112. package/dist/fieldReferences.d.ts +0 -9
  113. package/dist/fieldReferences.d.ts.map +0 -1
  114. package/dist/fieldReferences.js +0 -53
  115. package/dist/fieldReferences.js.map +0 -1
  116. package/dist/generativeUIToJSX.d.ts +0 -18
  117. package/dist/generativeUIToJSX.d.ts.map +0 -1
  118. package/dist/generativeUIToJSX.js +0 -76
  119. package/dist/generativeUIToJSX.js.map +0 -1
  120. package/dist/index.shared.d.ts +0 -15
  121. package/dist/index.shared.d.ts.map +0 -1
  122. package/dist/index.shared.js +0 -9
  123. package/dist/ir.js.map +0 -1
  124. package/dist/renderGenerativeUI.d.ts +0 -14
  125. package/dist/renderGenerativeUI.d.ts.map +0 -1
  126. package/dist/renderGenerativeUI.js +0 -83
  127. package/dist/renderGenerativeUI.js.map +0 -1
  128. package/dist/scopeSchema.d.ts +0 -6
  129. package/dist/scopeSchema.d.ts.map +0 -1
  130. package/dist/scopeSchema.js +0 -56
  131. package/dist/scopeSchema.js.map +0 -1
  132. package/dist/slack/constants.d.ts +0 -93
  133. package/dist/slack/constants.d.ts.map +0 -1
  134. package/dist/slack/constants.js +0 -146
  135. package/dist/slack/constants.js.map +0 -1
  136. package/dist/slack/decodeBlockAction.d.ts +0 -10
  137. package/dist/slack/decodeBlockAction.d.ts.map +0 -1
  138. package/dist/slack/decodeBlockAction.js +0 -129
  139. package/dist/slack/decodeBlockAction.js.map +0 -1
  140. package/dist/slack/fromSlackBlocks.d.ts +0 -27
  141. package/dist/slack/fromSlackBlocks.d.ts.map +0 -1
  142. package/dist/slack/fromSlackBlocks.js +0 -483
  143. package/dist/slack/fromSlackBlocks.js.map +0 -1
  144. package/dist/slack/toSlackBlocks.d.ts +0 -4
  145. package/dist/slack/toSlackBlocks.d.ts.map +0 -1
  146. package/dist/slack/toSlackBlocks.js +0 -901
  147. package/dist/slack/toSlackBlocks.js.map +0 -1
  148. package/dist/slack/types.d.ts +0 -204
  149. package/dist/slack/types.d.ts.map +0 -1
  150. package/dist/slack/types.js +0 -0
  151. package/dist/teams/constants.d.ts +0 -34
  152. package/dist/teams/constants.d.ts.map +0 -1
  153. package/dist/teams/constants.js +0 -68
  154. package/dist/teams/constants.js.map +0 -1
  155. package/dist/teams/decodeSubmitData.d.ts +0 -26
  156. package/dist/teams/decodeSubmitData.d.ts.map +0 -1
  157. package/dist/teams/decodeSubmitData.js +0 -70
  158. package/dist/teams/decodeSubmitData.js.map +0 -1
  159. package/dist/teams/temporalId.d.ts +0 -5
  160. package/dist/teams/temporalId.d.ts.map +0 -1
  161. package/dist/teams/temporalId.js +0 -28
  162. package/dist/teams/temporalId.js.map +0 -1
  163. package/dist/teams/toAdaptiveCard.d.ts +0 -45
  164. package/dist/teams/toAdaptiveCard.d.ts.map +0 -1
  165. package/dist/teams/toAdaptiveCard.js +0 -642
  166. package/dist/teams/toAdaptiveCard.js.map +0 -1
  167. package/dist/teams/toTeamsAttachments.d.ts +0 -10
  168. package/dist/teams/toTeamsAttachments.d.ts.map +0 -1
  169. package/dist/teams/toTeamsAttachments.js +0 -99
  170. package/dist/teams/toTeamsAttachments.js.map +0 -1
  171. package/dist/teams/types.d.ts +0 -224
  172. package/dist/teams/types.d.ts.map +0 -1
  173. package/dist/teams/types.js +0 -0
  174. package/dist/temporal.d.ts +0 -33
  175. package/dist/temporal.d.ts.map +0 -1
  176. package/dist/temporal.js +0 -152
  177. package/dist/temporal.js.map +0 -1
  178. package/dist/types.d.ts +0 -99
  179. package/dist/types.d.ts.map +0 -1
  180. package/dist/types.js +0 -0
  181. package/dist/vocabulary/alert.d.ts +0 -32
  182. package/dist/vocabulary/alert.d.ts.map +0 -1
  183. package/dist/vocabulary/alert.js +0 -160
  184. package/dist/vocabulary/alert.js.map +0 -1
  185. package/dist/vocabulary/collectFormValues.d.ts +0 -23
  186. package/dist/vocabulary/collectFormValues.d.ts.map +0 -1
  187. package/dist/vocabulary/collectFormValues.js +0 -44
  188. package/dist/vocabulary/collectFormValues.js.map +0 -1
  189. package/dist/vocabulary/data.d.ts +0 -66
  190. package/dist/vocabulary/data.d.ts.map +0 -1
  191. package/dist/vocabulary/data.js +0 -503
  192. package/dist/vocabulary/data.js.map +0 -1
  193. package/dist/vocabulary/dispatch.d.ts +0 -9
  194. package/dist/vocabulary/dispatch.d.ts.map +0 -1
  195. package/dist/vocabulary/dispatch.js +0 -50
  196. package/dist/vocabulary/dispatch.js.map +0 -1
  197. package/dist/vocabulary/fact.d.ts +0 -19
  198. package/dist/vocabulary/fact.d.ts.map +0 -1
  199. package/dist/vocabulary/fact.js +0 -51
  200. package/dist/vocabulary/fact.js.map +0 -1
  201. package/dist/vocabulary/form.d.ts +0 -11
  202. package/dist/vocabulary/form.d.ts.map +0 -1
  203. package/dist/vocabulary/form.js +0 -23
  204. package/dist/vocabulary/form.js.map +0 -1
  205. package/dist/vocabulary/formatValue.d.ts +0 -7
  206. package/dist/vocabulary/formatValue.d.ts.map +0 -1
  207. package/dist/vocabulary/formatValue.js +0 -76
  208. package/dist/vocabulary/formatValue.js.map +0 -1
  209. package/dist/vocabulary/icon.d.ts +0 -41
  210. package/dist/vocabulary/icon.d.ts.map +0 -1
  211. package/dist/vocabulary/icon.js +0 -272
  212. package/dist/vocabulary/icon.js.map +0 -1
  213. package/dist/vocabulary/index.d.ts +0 -12
  214. package/dist/vocabulary/index.d.ts.map +0 -1
  215. package/dist/vocabulary/index.js +0 -36
  216. package/dist/vocabulary/index.js.map +0 -1
  217. package/dist/vocabulary/interactive.d.ts +0 -230
  218. package/dist/vocabulary/interactive.d.ts.map +0 -1
  219. package/dist/vocabulary/interactive.js +0 -530
  220. package/dist/vocabulary/interactive.js.map +0 -1
  221. package/dist/vocabulary/layout.d.ts +0 -79
  222. package/dist/vocabulary/layout.d.ts.map +0 -1
  223. package/dist/vocabulary/layout.js +0 -139
  224. package/dist/vocabulary/layout.js.map +0 -1
  225. package/dist/vocabulary/list.d.ts +0 -14
  226. package/dist/vocabulary/list.d.ts.map +0 -1
  227. package/dist/vocabulary/list.js +0 -50
  228. package/dist/vocabulary/list.js.map +0 -1
  229. package/dist/vocabulary/media.d.ts +0 -25
  230. package/dist/vocabulary/media.d.ts.map +0 -1
  231. package/dist/vocabulary/media.js +0 -42
  232. package/dist/vocabulary/media.js.map +0 -1
  233. package/dist/vocabulary/text.d.ts +0 -57
  234. package/dist/vocabulary/text.d.ts.map +0 -1
  235. package/dist/vocabulary/text.js +0 -49
  236. package/dist/vocabulary/text.js.map +0 -1
  237. package/dist/vocabulary/toTextContent.d.ts +0 -2
  238. package/dist/vocabulary/toTextContent.d.ts.map +0 -1
  239. package/dist/vocabulary/toTextContent.js +0 -6
  240. package/dist/vocabulary/toTextContent.js.map +0 -1
  241. package/src/JSONGenerativeUI.client.tsx +0 -168
  242. package/src/JSONGenerativeUI.server.tsx +0 -39
  243. package/src/JSONGenerativeUI.shared.ts +0 -90
  244. package/src/JSONGenerativeUI.test.tsx +0 -1298
  245. package/src/RadioGroupScope.server.test.tsx +0 -24
  246. package/src/RadioGroupScope.tsx +0 -34
  247. package/src/a2ui/BindingContext.ts +0 -26
  248. package/src/a2ui/PresentRenderer.tsx +0 -83
  249. package/src/a2ui/convert.test.ts +0 -2923
  250. package/src/a2ui/convert.ts +0 -1207
  251. package/src/a2ui/dataModel.ts +0 -69
  252. package/src/a2ui/reducer.test.ts +0 -422
  253. package/src/a2ui/reducer.ts +0 -363
  254. package/src/a2ui/snapshot.test.ts +0 -52
  255. package/src/a2ui/snapshot.ts +0 -52
  256. package/src/a2ui/types.ts +0 -114
  257. package/src/a2ui/valueFunctions.test.ts +0 -271
  258. package/src/a2ui/valueFunctions.ts +0 -523
  259. package/src/actionRegistry.test.ts +0 -90
  260. package/src/actionRegistry.ts +0 -88
  261. package/src/answeredValues.test.ts +0 -33
  262. package/src/answeredValues.tsx +0 -70
  263. package/src/buildPresentParameters.test.ts +0 -246
  264. package/src/buildPresentParameters.ts +0 -130
  265. package/src/constants.ts +0 -17
  266. package/src/convert/boundSpec.test.ts +0 -192
  267. package/src/convert/boundSpec.ts +0 -134
  268. package/src/convert/copyBounded.test.ts +0 -131
  269. package/src/convert/copyBounded.ts +0 -38
  270. package/src/convert/isElement.ts +0 -6
  271. package/src/convert/takeRun.test.ts +0 -64
  272. package/src/convert/takeRun.ts +0 -19
  273. package/src/defineGenerativeComponents.ts +0 -38
  274. package/src/fieldReferences.test.ts +0 -66
  275. package/src/fieldReferences.ts +0 -83
  276. package/src/generativeUIToJSX.test.ts +0 -268
  277. package/src/generativeUIToJSX.ts +0 -152
  278. package/src/index.server.test.ts +0 -106
  279. package/src/index.shared.ts +0 -61
  280. package/src/ir.test.ts +0 -203
  281. package/src/renderGenerativeUI.test.tsx +0 -373
  282. package/src/renderGenerativeUI.tsx +0 -165
  283. package/src/scopeSchema.test.ts +0 -72
  284. package/src/scopeSchema.ts +0 -71
  285. package/src/slack/a2uiSlack.test.ts +0 -198
  286. package/src/slack/constants.ts +0 -194
  287. package/src/slack/datePicker.test.ts +0 -612
  288. package/src/slack/decodeBlockAction.test.ts +0 -233
  289. package/src/slack/decodeBlockAction.ts +0 -232
  290. package/src/slack/fromSlackBlocks.test.ts +0 -1465
  291. package/src/slack/fromSlackBlocks.ts +0 -789
  292. package/src/slack/toSlackBlocks.test.ts +0 -3065
  293. package/src/slack/toSlackBlocks.ts +0 -1818
  294. package/src/slack/types.ts +0 -264
  295. package/src/teams/constants.ts +0 -93
  296. package/src/teams/decodeSubmitData.test.ts +0 -397
  297. package/src/teams/decodeSubmitData.ts +0 -110
  298. package/src/teams/temporal.test.ts +0 -766
  299. package/src/teams/temporalId.ts +0 -56
  300. package/src/teams/toAdaptiveCard.test.ts +0 -1897
  301. package/src/teams/toAdaptiveCard.ts +0 -1057
  302. package/src/teams/toTeamsAttachments.test.ts +0 -74
  303. package/src/teams/toTeamsAttachments.ts +0 -133
  304. package/src/teams/types.ts +0 -266
  305. package/src/temporal.test.ts +0 -319
  306. package/src/temporal.ts +0 -259
  307. package/src/types.ts +0 -119
  308. package/src/vocabulary/alert.test.tsx +0 -427
  309. package/src/vocabulary/alert.tsx +0 -217
  310. package/src/vocabulary/collectFormValues.test.ts +0 -389
  311. package/src/vocabulary/collectFormValues.ts +0 -116
  312. package/src/vocabulary/data.test.tsx +0 -858
  313. package/src/vocabulary/data.tsx +0 -819
  314. package/src/vocabulary/datepicker.dom.test.tsx +0 -1148
  315. package/src/vocabulary/dispatch.ts +0 -83
  316. package/src/vocabulary/fact.test.tsx +0 -94
  317. package/src/vocabulary/fact.tsx +0 -54
  318. package/src/vocabulary/form.test.tsx +0 -113
  319. package/src/vocabulary/form.tsx +0 -39
  320. package/src/vocabulary/formatValue.test.ts +0 -72
  321. package/src/vocabulary/formatValue.ts +0 -127
  322. package/src/vocabulary/icon.test.tsx +0 -64
  323. package/src/vocabulary/icon.tsx +0 -174
  324. package/src/vocabulary/index.test.ts +0 -65
  325. package/src/vocabulary/index.ts +0 -33
  326. package/src/vocabulary/interactive.dispatch.test.tsx +0 -454
  327. package/src/vocabulary/interactive.dom.test.tsx +0 -1747
  328. package/src/vocabulary/interactive.test.tsx +0 -377
  329. package/src/vocabulary/interactive.tsx +0 -1048
  330. package/src/vocabulary/layout.test.tsx +0 -323
  331. package/src/vocabulary/layout.tsx +0 -247
  332. package/src/vocabulary/list.test.tsx +0 -222
  333. package/src/vocabulary/list.tsx +0 -50
  334. package/src/vocabulary/media.test.tsx +0 -85
  335. package/src/vocabulary/media.tsx +0 -56
  336. package/src/vocabulary/text.test.tsx +0 -102
  337. package/src/vocabulary/text.tsx +0 -60
  338. package/src/vocabulary/toTextContent.ts +0 -2
@@ -1,79 +0,0 @@
1
- import { z } from "zod";
2
- export declare const layoutVocabulary: {
3
- Card: {
4
- description: string;
5
- properties: z.ZodObject<{
6
- title: z.ZodOptional<z.ZodString>;
7
- padding: z.ZodOptional<z.ZodNumber>;
8
- background: z.ZodOptional<z.ZodString>;
9
- asForm: z.ZodOptional<z.ZodBoolean>;
10
- confirm: z.ZodOptional<z.ZodObject<{
11
- label: z.ZodString;
12
- $action: z.ZodOptional<z.ZodObject<{
13
- type: z.ZodString;
14
- }, z.core.$loose>>;
15
- }, z.core.$strip>>;
16
- cancel: z.ZodOptional<z.ZodObject<{
17
- label: z.ZodString;
18
- $action: z.ZodOptional<z.ZodObject<{
19
- type: z.ZodString;
20
- }, z.core.$loose>>;
21
- }, z.core.$strip>>;
22
- }, z.core.$strip>;
23
- render: ({ title, padding, background, asForm, confirm, cancel, $dispatch, children, }: any) => import("react").JSX.Element;
24
- };
25
- Col: {
26
- description: string;
27
- properties: z.ZodObject<{
28
- gap: z.ZodOptional<z.ZodNumber>;
29
- align: z.ZodOptional<z.ZodEnum<{
30
- start: "start";
31
- center: "center";
32
- end: "end";
33
- }>>;
34
- }, z.core.$strip>;
35
- render: ({ gap, align, children }: any) => import("react").JSX.Element;
36
- };
37
- Row: {
38
- description: string;
39
- properties: z.ZodObject<{
40
- gap: z.ZodOptional<z.ZodNumber>;
41
- align: z.ZodOptional<z.ZodEnum<{
42
- start: "start";
43
- center: "center";
44
- end: "end";
45
- }>>;
46
- justify: z.ZodOptional<z.ZodEnum<{
47
- start: "start";
48
- center: "center";
49
- end: "end";
50
- between: "between";
51
- }>>;
52
- }, z.core.$strip>;
53
- render: ({ gap, align, justify, children }: any) => import("react").JSX.Element;
54
- };
55
- Spacer: {
56
- description: string;
57
- properties: z.ZodObject<{}, z.core.$strip>;
58
- render: () => import("react").JSX.Element;
59
- };
60
- Badge: {
61
- description: string;
62
- properties: z.ZodObject<{
63
- value: z.ZodString;
64
- variant: z.ZodOptional<z.ZodString>;
65
- }, z.core.$strip>;
66
- render: ({ value, variant, children }: any) => import("react").JSX.Element;
67
- };
68
- Box: {
69
- description: string;
70
- properties: z.ZodObject<{
71
- width: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
72
- height: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
73
- radius: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"full">, z.ZodNumber]>>;
74
- background: z.ZodOptional<z.ZodString>;
75
- }, z.core.$strip>;
76
- render: ({ width, height, radius, background, children }: any) => import("react").JSX.Element;
77
- };
78
- };
79
- //# sourceMappingURL=layout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/vocabulary/layout.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8NE,CAAC"}
@@ -1,139 +0,0 @@
1
- import { ALIGNS, JUSTIFIES } from "../ir.js";
2
- import { toTextContent } from "./toTextContent.js";
3
- import { collectFormValuesFromEvent } from "./collectFormValues.js";
4
- import { fire } from "./dispatch.js";
5
- import { jsx, jsxs } from "react/jsx-runtime";
6
- import { z } from "zod";
7
- //#region src/vocabulary/layout.tsx
8
- const toCssLength = (value) => typeof value === "number" ? `${value}px` : value;
9
- const cardActionSchema = z.looseObject({ type: z.string().describe("The action type, resolved by the host's action registry.") });
10
- const cardFooterButtonSchema = z.object({
11
- label: z.string().describe("Footer button label."),
12
- $action: cardActionSchema.optional().describe("Action fired when the button is activated.")
13
- });
14
- const layoutVocabulary = {
15
- Card: {
16
- description: "A titled section of related content, the default way to break a response into parts. It renders as plain content, so several in a row read as one answer rather than a stack of boxes; it takes on a framed surface only when `background` is set, when `confirm`/`cancel` add a footer, or when it is a slot in a `Carousel`. Set `asForm` to collect named child control values on submit.",
17
- properties: z.object({
18
- title: z.string().optional().describe("Optional card title."),
19
- padding: z.number().min(0).max(8).optional().describe("Padding in 4px units (e.g. 2 = 8px). 0 to 8 is the supported range."),
20
- background: z.string().optional().describe("Background color or gradient (any CSS background value). Setting this also switches the card's own text to white, since a custom background makes the card a tinted surface; children can still opt into a different color explicitly."),
21
- asForm: z.boolean().optional().describe("Render as a form; submitting it fires `confirm.$action` with every named child control's value, keyed by `name`."),
22
- confirm: cardFooterButtonSchema.optional().describe("Confirm button shown in the footer."),
23
- cancel: cardFooterButtonSchema.optional().describe("Cancel button shown in the footer.")
24
- }),
25
- render: ({ title, padding, background, asForm, confirm, cancel, $dispatch, children }) => {
26
- const Root = asForm ? "form" : "section";
27
- const cardTitle = toTextContent(title);
28
- const footer = confirm || cancel ? /* @__PURE__ */ jsxs("footer", {
29
- "data-aui": "card-footer",
30
- children: [confirm ? /* @__PURE__ */ jsx("button", {
31
- type: asForm ? "submit" : "button",
32
- "data-aui": "card-confirm",
33
- onClick: asForm ? void 0 : (e) => fire(confirm.$action, $dispatch, void 0, e.currentTarget),
34
- children: toTextContent(confirm.label)
35
- }) : null, cancel ? /* @__PURE__ */ jsx("button", {
36
- type: "button",
37
- "data-aui": "card-cancel",
38
- onClick: (e) => fire(cancel.$action, $dispatch, void 0, e.currentTarget),
39
- children: toTextContent(cancel.label)
40
- }) : null]
41
- }) : null;
42
- return /* @__PURE__ */ jsxs(Root, {
43
- "data-aui": "card",
44
- "data-aui-padding": padding,
45
- "data-aui-background": background,
46
- "data-aui-surface": background !== void 0 || footer !== null ? "" : void 0,
47
- style: background !== void 0 ? {
48
- background,
49
- color: "white"
50
- } : void 0,
51
- "data-aui-asform": asForm || void 0,
52
- onSubmit: asForm ? (event) => {
53
- event.preventDefault();
54
- fire(confirm?.$action, $dispatch, collectFormValuesFromEvent(event), event.currentTarget);
55
- } : void 0,
56
- children: [
57
- cardTitle ? /* @__PURE__ */ jsx("header", {
58
- "data-aui": "card-title",
59
- children: cardTitle
60
- }) : null,
61
- children,
62
- footer
63
- ]
64
- });
65
- }
66
- },
67
- Col: {
68
- description: "A vertical stack; children laid out top to bottom.",
69
- properties: z.object({
70
- gap: z.number().min(0).max(8).optional().describe("Gap between children in 4px units. 0 to 8 is the supported range."),
71
- align: z.enum(ALIGNS).optional().describe("Cross-axis alignment.")
72
- }),
73
- render: ({ gap, align, children }) => /* @__PURE__ */ jsx("div", {
74
- "data-aui": "col",
75
- "data-aui-gap": gap,
76
- "data-aui-align": align,
77
- children
78
- })
79
- },
80
- Row: {
81
- description: "A horizontal row; children laid out left to right.",
82
- properties: z.object({
83
- gap: z.number().min(0).max(8).optional().describe("Gap between children in 4px units. 0 to 8 is the supported range."),
84
- align: z.enum(ALIGNS).optional().describe("Cross-axis alignment."),
85
- justify: z.enum(JUSTIFIES).optional().describe("Main-axis distribution.")
86
- }),
87
- render: ({ gap, align, justify, children }) => /* @__PURE__ */ jsx("div", {
88
- "data-aui": "row",
89
- "data-aui-gap": gap,
90
- "data-aui-align": align,
91
- "data-aui-justify": justify,
92
- children
93
- })
94
- },
95
- Spacer: {
96
- description: "Empty space that pushes neighbors apart.",
97
- properties: z.object({}),
98
- render: () => /* @__PURE__ */ jsx("div", { "data-aui": "spacer" })
99
- },
100
- Badge: {
101
- description: "A small labeled tag, e.g. for status or category.",
102
- properties: z.object({
103
- value: z.string().describe("Badge text."),
104
- variant: z.string().optional().describe("Visual variant token.")
105
- }),
106
- render: ({ value, variant, children }) => /* @__PURE__ */ jsxs("span", {
107
- "data-aui": "badge",
108
- "data-aui-variant": variant,
109
- children: [toTextContent(value), children]
110
- })
111
- },
112
- Box: {
113
- description: "A generic container for composition, e.g. a progress bar built from an outer track Box containing a partial-width fill Box. Size, radius, and background accept arbitrary values, so they render as inline styles rather than data-attribute hooks.",
114
- properties: z.object({
115
- width: z.union([z.string(), z.number()]).optional().describe("Width; a number is pixels."),
116
- height: z.union([z.string(), z.number()]).optional().describe("Height; a number is pixels."),
117
- radius: z.union([z.literal("full"), z.number()]).optional().describe("Corner radius; \"full\" is a pill/circle, a number is pixels."),
118
- background: z.string().optional().describe("Background color or gradient (any CSS background value).")
119
- }),
120
- render: ({ width, height, radius, background, children }) => {
121
- const style = {};
122
- if (width !== void 0) style.width = toCssLength(width);
123
- if (height !== void 0) style.height = toCssLength(height);
124
- if (background !== void 0) style.background = background;
125
- if (radius === "full") style.borderRadius = "9999px";
126
- else if (typeof radius === "number") style.borderRadius = `${radius}px`;
127
- return /* @__PURE__ */ jsx("div", {
128
- "data-aui": "box",
129
- "data-aui-radius": radius === "full" ? "full" : void 0,
130
- style,
131
- children
132
- });
133
- }
134
- }
135
- };
136
- //#endregion
137
- export { layoutVocabulary };
138
-
139
- //# sourceMappingURL=layout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout.js","names":[],"sources":["../../src/vocabulary/layout.tsx"],"sourcesContent":["import type { CSSProperties, FormEvent } from \"react\";\nimport { z } from \"zod\";\nimport type { GenerativeUILibrary } from \"../types\";\nimport { ALIGNS, JUSTIFIES } from \"../ir\";\nimport { fire } from \"./dispatch\";\nimport { collectFormValuesFromEvent } from \"./collectFormValues\";\nimport { toTextContent } from \"./toTextContent\";\n\nconst toCssLength = (value: string | number): string =>\n typeof value === \"number\" ? `${value}px` : value;\n\nconst cardActionSchema = z.looseObject({\n type: z\n .string()\n .describe(\"The action type, resolved by the host's action registry.\"),\n});\n\nconst cardFooterButtonSchema = z.object({\n label: z.string().describe(\"Footer button label.\"),\n $action: cardActionSchema\n .optional()\n .describe(\"Action fired when the button is activated.\"),\n});\n\nexport const layoutVocabulary = {\n Card: {\n description:\n \"A titled section of related content, the default way to break a response into parts. It renders as plain content, so several in a row read as one answer rather than a stack of boxes; it takes on a framed surface only when `background` is set, when `confirm`/`cancel` add a footer, or when it is a slot in a `Carousel`. Set `asForm` to collect named child control values on submit.\",\n properties: z.object({\n title: z.string().optional().describe(\"Optional card title.\"),\n padding: z\n .number()\n .min(0)\n .max(8)\n .optional()\n .describe(\n \"Padding in 4px units (e.g. 2 = 8px). 0 to 8 is the supported range.\",\n ),\n background: z\n .string()\n .optional()\n .describe(\n \"Background color or gradient (any CSS background value). Setting this also switches the card's own text to white, since a custom background makes the card a tinted surface; children can still opt into a different color explicitly.\",\n ),\n asForm: z\n .boolean()\n .optional()\n .describe(\n \"Render as a form; submitting it fires `confirm.$action` with every named child control's value, keyed by `name`.\",\n ),\n confirm: cardFooterButtonSchema\n .optional()\n .describe(\"Confirm button shown in the footer.\"),\n cancel: cardFooterButtonSchema\n .optional()\n .describe(\"Cancel button shown in the footer.\"),\n }),\n render: ({\n title,\n padding,\n background,\n asForm,\n confirm,\n cancel,\n $dispatch,\n children,\n }) => {\n const Root = asForm ? \"form\" : \"section\";\n const cardTitle = toTextContent(title);\n const footer =\n confirm || cancel ? (\n <footer data-aui=\"card-footer\">\n {confirm ? (\n <button\n type={asForm ? \"submit\" : \"button\"}\n data-aui=\"card-confirm\"\n onClick={\n asForm\n ? undefined\n : (e) =>\n fire(\n confirm.$action,\n $dispatch,\n undefined,\n e.currentTarget,\n )\n }\n >\n {toTextContent(confirm.label)}\n </button>\n ) : null}\n {cancel ? (\n <button\n type=\"button\"\n data-aui=\"card-cancel\"\n onClick={(e) =>\n fire(cancel.$action, $dispatch, undefined, e.currentTarget)\n }\n >\n {toTextContent(cancel.label)}\n </button>\n ) : null}\n </footer>\n ) : null;\n\n return (\n <Root\n data-aui=\"card\"\n data-aui-padding={padding}\n data-aui-background={background}\n data-aui-surface={\n background !== undefined || footer !== null ? \"\" : undefined\n }\n style={\n background !== undefined\n ? { background, color: \"white\" }\n : undefined\n }\n data-aui-asform={asForm || undefined}\n onSubmit={\n asForm\n ? (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n fire(\n confirm?.$action,\n $dispatch,\n collectFormValuesFromEvent(event),\n event.currentTarget,\n );\n }\n : undefined\n }\n >\n {cardTitle ? (\n <header data-aui=\"card-title\">{cardTitle}</header>\n ) : null}\n {children}\n {footer}\n </Root>\n );\n },\n },\n Col: {\n description: \"A vertical stack; children laid out top to bottom.\",\n properties: z.object({\n gap: z\n .number()\n .min(0)\n .max(8)\n .optional()\n .describe(\n \"Gap between children in 4px units. 0 to 8 is the supported range.\",\n ),\n align: z.enum(ALIGNS).optional().describe(\"Cross-axis alignment.\"),\n }),\n render: ({ gap, align, children }) => (\n <div data-aui=\"col\" data-aui-gap={gap} data-aui-align={align}>\n {children}\n </div>\n ),\n },\n Row: {\n description: \"A horizontal row; children laid out left to right.\",\n properties: z.object({\n gap: z\n .number()\n .min(0)\n .max(8)\n .optional()\n .describe(\n \"Gap between children in 4px units. 0 to 8 is the supported range.\",\n ),\n align: z.enum(ALIGNS).optional().describe(\"Cross-axis alignment.\"),\n justify: z.enum(JUSTIFIES).optional().describe(\"Main-axis distribution.\"),\n }),\n render: ({ gap, align, justify, children }) => (\n <div\n data-aui=\"row\"\n data-aui-gap={gap}\n data-aui-align={align}\n data-aui-justify={justify}\n >\n {children}\n </div>\n ),\n },\n Spacer: {\n description: \"Empty space that pushes neighbors apart.\",\n properties: z.object({}),\n render: () => <div data-aui=\"spacer\" />,\n },\n Badge: {\n description: \"A small labeled tag, e.g. for status or category.\",\n properties: z.object({\n value: z.string().describe(\"Badge text.\"),\n variant: z.string().optional().describe(\"Visual variant token.\"),\n }),\n render: ({ value, variant, children }) => (\n <span data-aui=\"badge\" data-aui-variant={variant}>\n {toTextContent(value)}\n {children}\n </span>\n ),\n },\n Box: {\n description:\n \"A generic container for composition, e.g. a progress bar built from an outer track Box containing a partial-width fill Box. Size, radius, and background accept arbitrary values, so they render as inline styles rather than data-attribute hooks.\",\n properties: z.object({\n width: z\n .union([z.string(), z.number()])\n .optional()\n .describe(\"Width; a number is pixels.\"),\n height: z\n .union([z.string(), z.number()])\n .optional()\n .describe(\"Height; a number is pixels.\"),\n radius: z\n .union([z.literal(\"full\"), z.number()])\n .optional()\n .describe(\n 'Corner radius; \"full\" is a pill/circle, a number is pixels.',\n ),\n background: z\n .string()\n .optional()\n .describe(\"Background color or gradient (any CSS background value).\"),\n }),\n render: ({ width, height, radius, background, children }) => {\n const style: CSSProperties = {};\n if (width !== undefined) style.width = toCssLength(width);\n if (height !== undefined) style.height = toCssLength(height);\n if (background !== undefined) style.background = background;\n if (radius === \"full\") style.borderRadius = \"9999px\";\n else if (typeof radius === \"number\") style.borderRadius = `${radius}px`;\n\n return (\n <div\n data-aui=\"box\"\n data-aui-radius={radius === \"full\" ? \"full\" : undefined}\n style={style}\n >\n {children}\n </div>\n );\n },\n },\n} satisfies GenerativeUILibrary;\n"],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { z } from "zod";
2
- export declare const listVocabulary: {
3
- ListView: {
4
- description: string;
5
- properties: z.ZodObject<{}, z.core.$strip>;
6
- render: ({ children }: any) => import("react").JSX.Element;
7
- };
8
- ListViewItem: {
9
- description: string;
10
- properties: z.ZodObject<{}, z.core.$strip>;
11
- render: ({ $action, $dispatch, children }: any) => import("react").JSX.Element;
12
- };
13
- };
14
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/vocabulary/list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,cAAc;;;;;;;;;;;CA0CI,CAAC"}
@@ -1,50 +0,0 @@
1
- import { fire } from "./dispatch.js";
2
- import { jsx } from "react/jsx-runtime";
3
- import { z } from "zod";
4
- //#region src/vocabulary/list.tsx
5
- const INTERACTIVE_DESCENDANT_SELECTOR = "button, a, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"checkbox\"], [role=\"radio\"], [role=\"switch\"], [role=\"textbox\"], [role=\"combobox\"], [role=\"menuitem\"]";
6
- const listVocabulary = {
7
- ListView: {
8
- description: "A vertical list container. Wrap `ListViewItem` children as rows.",
9
- properties: z.object({}),
10
- render: ({ children }) => /* @__PURE__ */ jsx("ul", {
11
- "data-aui": "listview",
12
- children
13
- })
14
- },
15
- ListViewItem: {
16
- description: "A row inside a ListView. Carries `$action` to make the whole row clickable and keyboard-activatable.",
17
- properties: z.object({}),
18
- render: ({ $action, $dispatch, children }) => {
19
- if (!$action || !$dispatch) return /* @__PURE__ */ jsx("li", {
20
- "data-aui": "listview-item",
21
- children
22
- });
23
- return /* @__PURE__ */ jsx("li", {
24
- "data-aui": "listview-item",
25
- children: /* @__PURE__ */ jsx("div", {
26
- role: "button",
27
- tabIndex: 0,
28
- "data-aui": "listview-item-trigger",
29
- onClick: (event) => {
30
- const hit = event.target.closest(INTERACTIVE_DESCENDANT_SELECTOR);
31
- if (hit !== null && hit !== event.currentTarget) return;
32
- fire($action, $dispatch, void 0, event.currentTarget);
33
- },
34
- onKeyDown: (event) => {
35
- if (event.key !== "Enter" && event.key !== " ") return;
36
- const hit = event.target.closest(INTERACTIVE_DESCENDANT_SELECTOR);
37
- if (hit !== null && hit !== event.currentTarget) return;
38
- if (event.key === " ") event.preventDefault();
39
- fire($action, $dispatch, void 0, event.currentTarget);
40
- },
41
- children
42
- })
43
- });
44
- }
45
- }
46
- };
47
- //#endregion
48
- export { listVocabulary };
49
-
50
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","names":[],"sources":["../../src/vocabulary/list.tsx"],"sourcesContent":["import { z } from \"zod\";\nimport type { GenerativeUILibrary } from \"../types\";\nimport { fire } from \"./dispatch\";\n\nconst INTERACTIVE_DESCENDANT_SELECTOR =\n 'button, a, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"checkbox\"], [role=\"radio\"], [role=\"switch\"], [role=\"textbox\"], [role=\"combobox\"], [role=\"menuitem\"]';\n\nexport const listVocabulary = {\n ListView: {\n description:\n \"A vertical list container. Wrap `ListViewItem` children as rows.\",\n properties: z.object({}),\n render: ({ children }) => <ul data-aui=\"listview\">{children}</ul>,\n },\n ListViewItem: {\n description:\n \"A row inside a ListView. Carries `$action` to make the whole row clickable and keyboard-activatable.\",\n properties: z.object({}),\n render: ({ $action, $dispatch, children }) => {\n if (!$action || !$dispatch) {\n return <li data-aui=\"listview-item\">{children}</li>;\n }\n return (\n <li data-aui=\"listview-item\">\n <div\n role=\"button\"\n tabIndex={0}\n data-aui=\"listview-item-trigger\"\n onClick={(event) => {\n const target = event.target as Element;\n const hit = target.closest(INTERACTIVE_DESCENDANT_SELECTOR);\n if (hit !== null && hit !== event.currentTarget) return;\n fire($action, $dispatch, undefined, event.currentTarget);\n }}\n onKeyDown={(event) => {\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n const target = event.target as Element;\n const hit = target.closest(INTERACTIVE_DESCENDANT_SELECTOR);\n if (hit !== null && hit !== event.currentTarget) return;\n if (event.key === \" \") event.preventDefault();\n fire($action, $dispatch, undefined, event.currentTarget);\n }}\n >\n {children}\n </div>\n </li>\n );\n },\n },\n} satisfies GenerativeUILibrary;\n"],"mappings":";;;;AAIA,MAAM,kCACJ;AAEF,MAAa,iBAAiB;CAC5B,UAAU;EACR,aACE;EACF,YAAY,EAAE,OAAO,CAAC,CAAC;EACvB,SAAS,EAAE,eAAe,oBAAC,MAAD;GAAI,YAAS;GAAY;EAAa,CAAA;CAClE;CACA,cAAc;EACZ,aACE;EACF,YAAY,EAAE,OAAO,CAAC,CAAC;EACvB,SAAS,EAAE,SAAS,WAAW,eAAe;GAC5C,IAAI,CAAC,WAAW,CAAC,WACf,OAAO,oBAAC,MAAD;IAAI,YAAS;IAAiB;GAAa,CAAA;GAEpD,OACE,oBAAC,MAAD;IAAI,YAAS;IACX,UAAA,oBAAC,OAAD;KACE,MAAK;KACL,UAAU;KACV,YAAS;KACT,UAAU,UAAU;MAElB,MAAM,MADS,MAAM,OACF,QAAQ,+BAA+B;MAC1D,IAAI,QAAQ,QAAQ,QAAQ,MAAM,eAAe;MACjD,KAAK,SAAS,WAAW,KAAA,GAAW,MAAM,aAAa;KACzD;KACA,YAAY,UAAU;MACpB,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;MAEhD,MAAM,MADS,MAAM,OACF,QAAQ,+BAA+B;MAC1D,IAAI,QAAQ,QAAQ,QAAQ,MAAM,eAAe;MACjD,IAAI,MAAM,QAAQ,KAAK,MAAM,eAAe;MAC5C,KAAK,SAAS,WAAW,KAAA,GAAW,MAAM,aAAa;KACzD;KAEC;IACE,CAAA;GACH,CAAA;EAER;CACF;AACF"}
@@ -1,25 +0,0 @@
1
- import { z } from "zod";
2
- export declare const mediaVocabulary: {
3
- Image: {
4
- description: string;
5
- properties: z.ZodObject<{
6
- src: z.ZodString;
7
- alt: z.ZodString;
8
- size: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
9
- sm: "sm";
10
- md: "md";
11
- lg: "lg";
12
- }>, z.ZodNumber]>>;
13
- round: z.ZodOptional<z.ZodBoolean>;
14
- }, z.core.$strip>;
15
- render: ({ src, alt, size, round }: any) => import("react").JSX.Element;
16
- };
17
- Divider: {
18
- description: string;
19
- properties: z.ZodObject<{
20
- flush: z.ZodOptional<z.ZodBoolean>;
21
- }, z.core.$strip>;
22
- render: ({ flush }: any) => import("react").JSX.Element;
23
- };
24
- };
25
- //# sourceMappingURL=media.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/vocabulary/media.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CAkDG,CAAC"}
@@ -1,42 +0,0 @@
1
- import { IMAGE_SIZE_TOKENS } from "../ir.js";
2
- import { jsx } from "react/jsx-runtime";
3
- import { z } from "zod";
4
- //#region src/vocabulary/media.tsx
5
- const mediaVocabulary = {
6
- Image: {
7
- description: "An image. Provide `src` and `alt` for accessibility.",
8
- properties: z.object({
9
- src: z.string().describe("Image URL."),
10
- alt: z.string().describe("Alt text for accessibility."),
11
- size: z.union([z.enum(IMAGE_SIZE_TOKENS), z.number()]).optional().describe("Size token or pixel value."),
12
- round: z.boolean().optional().describe("Render as a circular avatar (fully rounded, cropped to a square).")
13
- }),
14
- render: ({ src, alt, size, round }) => {
15
- const numericSize = typeof size === "number" ? size : void 0;
16
- const style = numericSize === void 0 ? void 0 : round ? {
17
- width: `${numericSize}px`,
18
- height: `${numericSize}px`
19
- } : { maxWidth: `${numericSize}px` };
20
- return /* @__PURE__ */ jsx("img", {
21
- "data-aui": "image",
22
- "data-aui-size": numericSize === void 0 ? size : void 0,
23
- "data-aui-round": round || void 0,
24
- src,
25
- alt,
26
- style
27
- });
28
- }
29
- },
30
- Divider: {
31
- description: "A horizontal rule between sections.",
32
- properties: z.object({ flush: z.boolean().optional().describe("Whether the divider spans the full width with no inset.") }),
33
- render: ({ flush }) => /* @__PURE__ */ jsx("hr", {
34
- "data-aui": "divider",
35
- "data-aui-flush": flush || void 0
36
- })
37
- }
38
- };
39
- //#endregion
40
- export { mediaVocabulary };
41
-
42
- //# sourceMappingURL=media.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media.js","names":[],"sources":["../../src/vocabulary/media.tsx"],"sourcesContent":["import type { CSSProperties } from \"react\";\nimport { z } from \"zod\";\nimport type { GenerativeUILibrary } from \"../types\";\nimport { IMAGE_SIZE_TOKENS } from \"../ir\";\n\nexport const mediaVocabulary = {\n Image: {\n description: \"An image. Provide `src` and `alt` for accessibility.\",\n properties: z.object({\n src: z.string().describe(\"Image URL.\"),\n alt: z.string().describe(\"Alt text for accessibility.\"),\n size: z\n .union([z.enum(IMAGE_SIZE_TOKENS), z.number()])\n .optional()\n .describe(\"Size token or pixel value.\"),\n round: z\n .boolean()\n .optional()\n .describe(\n \"Render as a circular avatar (fully rounded, cropped to a square).\",\n ),\n }),\n render: ({ src, alt, size, round }) => {\n const numericSize = typeof size === \"number\" ? size : undefined;\n const style: CSSProperties | undefined =\n numericSize === undefined\n ? undefined\n : round\n ? { width: `${numericSize}px`, height: `${numericSize}px` }\n : { maxWidth: `${numericSize}px` };\n\n return (\n <img\n data-aui=\"image\"\n data-aui-size={numericSize === undefined ? size : undefined}\n data-aui-round={round || undefined}\n src={src}\n alt={alt}\n style={style}\n />\n );\n },\n },\n Divider: {\n description: \"A horizontal rule between sections.\",\n properties: z.object({\n flush: z\n .boolean()\n .optional()\n .describe(\"Whether the divider spans the full width with no inset.\"),\n }),\n render: ({ flush }) => (\n <hr data-aui=\"divider\" data-aui-flush={flush || undefined} />\n ),\n },\n} satisfies GenerativeUILibrary;\n"],"mappings":";;;;AAKA,MAAa,kBAAkB;CAC7B,OAAO;EACL,aAAa;EACb,YAAY,EAAE,OAAO;GACnB,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,YAAY;GACrC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B;GACtD,MAAM,EACH,MAAM,CAAC,EAAE,KAAK,iBAAiB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAC9C,SAAS,CAAC,CACV,SAAS,4BAA4B;GACxC,OAAO,EACJ,QAAQ,CAAC,CACT,SAAS,CAAC,CACV,SACC,mEACF;EACJ,CAAC;EACD,SAAS,EAAE,KAAK,KAAK,MAAM,YAAY;GACrC,MAAM,cAAc,OAAO,SAAS,WAAW,OAAO,KAAA;GACtD,MAAM,QACJ,gBAAgB,KAAA,IACZ,KAAA,IACA,QACE;IAAE,OAAO,GAAG,YAAY;IAAK,QAAQ,GAAG,YAAY;GAAI,IACxD,EAAE,UAAU,GAAG,YAAY,IAAI;GAEvC,OACE,oBAAC,OAAD;IACE,YAAS;IACT,iBAAe,gBAAgB,KAAA,IAAY,OAAO,KAAA;IAClD,kBAAgB,SAAS,KAAA;IACpB;IACA;IACE;GACR,CAAA;EAEL;CACF;CACA,SAAS;EACP,aAAa;EACb,YAAY,EAAE,OAAO,EACnB,OAAO,EACJ,QAAQ,CAAC,CACT,SAAS,CAAC,CACV,SAAS,yDAAyD,EACvE,CAAC;EACD,SAAS,EAAE,YACT,oBAAC,MAAD;GAAI,YAAS;GAAU,kBAAgB,SAAS,KAAA;EAAY,CAAA;CAEhE;AACF"}
@@ -1,57 +0,0 @@
1
- import { z } from "zod";
2
- export declare const textVocabulary: {
3
- Header: {
4
- description: string;
5
- properties: z.ZodObject<{
6
- text: z.ZodString;
7
- size: z.ZodOptional<z.ZodEnum<{
8
- sm: "sm";
9
- md: "md";
10
- lg: "lg";
11
- xl: "xl";
12
- "2xl": "2xl";
13
- "3xl": "3xl";
14
- }>>;
15
- }, z.core.$strip>;
16
- render: ({ text, size, children }: any) => import("react").JSX.Element;
17
- };
18
- Text: {
19
- description: string;
20
- properties: z.ZodObject<{
21
- value: z.ZodString;
22
- size: z.ZodOptional<z.ZodEnum<{
23
- sm: "sm";
24
- md: "md";
25
- lg: "lg";
26
- xl: "xl";
27
- "2xl": "2xl";
28
- "3xl": "3xl";
29
- }>>;
30
- weight: z.ZodOptional<z.ZodEnum<{
31
- bold: "bold";
32
- normal: "normal";
33
- medium: "medium";
34
- semibold: "semibold";
35
- }>>;
36
- color: z.ZodOptional<z.ZodEnum<{
37
- emphasis: "emphasis";
38
- secondary: "secondary";
39
- "alpha-70": "alpha-70";
40
- white: "white";
41
- "white-70": "white-70";
42
- "white-50": "white-50";
43
- }>>;
44
- }, z.core.$strip>;
45
- streamProperties: true;
46
- render: ({ value, size, weight, color, children }: any) => import("react").JSX.Element;
47
- };
48
- Caption: {
49
- description: string;
50
- properties: z.ZodObject<{
51
- value: z.ZodString;
52
- }, z.core.$strip>;
53
- streamProperties: true;
54
- render: ({ value, children }: any) => import("react").JSX.Element;
55
- };
56
- };
57
- //# sourceMappingURL=text.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/vocabulary/text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDI,CAAC"}
@@ -1,49 +0,0 @@
1
- import { COLORS, TEXT_SIZES, WEIGHTS } from "../ir.js";
2
- import { toTextContent } from "./toTextContent.js";
3
- import { jsxs } from "react/jsx-runtime";
4
- import { z } from "zod";
5
- //#region src/vocabulary/text.tsx
6
- const textVocabulary = {
7
- Header: {
8
- description: "A section heading. Renders as a bold title.",
9
- properties: z.object({
10
- text: z.string().describe("The heading text."),
11
- size: z.enum(TEXT_SIZES).optional().describe("Heading size; defaults to `lg`.")
12
- }),
13
- render: ({ text, size, children }) => /* @__PURE__ */ jsxs("h2", {
14
- "data-aui": "header",
15
- "data-aui-size": size ?? "lg",
16
- children: [toTextContent(text), children]
17
- })
18
- },
19
- Text: {
20
- description: "A run of text. Use for paragraphs, labels, or inline copy.",
21
- properties: z.object({
22
- value: z.string().describe("The text content."),
23
- size: z.enum(TEXT_SIZES).optional().describe("Text size; defaults to `md`."),
24
- weight: z.enum(WEIGHTS).optional().describe("Font weight."),
25
- color: z.enum(COLORS).optional().describe("Foreground color token.")
26
- }),
27
- streamProperties: true,
28
- render: ({ value, size, weight, color, children }) => /* @__PURE__ */ jsxs("span", {
29
- "data-aui": "text",
30
- "data-aui-size": size ?? "md",
31
- "data-aui-weight": weight,
32
- "data-aui-color": color,
33
- children: [toTextContent(value), children]
34
- })
35
- },
36
- Caption: {
37
- description: "Secondary, de-emphasized text under a primary element.",
38
- properties: z.object({ value: z.string().describe("The caption text.") }),
39
- streamProperties: true,
40
- render: ({ value, children }) => /* @__PURE__ */ jsxs("p", {
41
- "data-aui": "caption",
42
- children: [toTextContent(value), children]
43
- })
44
- }
45
- };
46
- //#endregion
47
- export { textVocabulary };
48
-
49
- //# sourceMappingURL=text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","names":[],"sources":["../../src/vocabulary/text.tsx"],"sourcesContent":["import { z } from \"zod\";\nimport type { GenerativeUILibrary } from \"../types\";\nimport { COLORS, TEXT_SIZES, WEIGHTS } from \"../ir\";\nimport { toTextContent } from \"./toTextContent\";\n\nexport const textVocabulary = {\n Header: {\n description: \"A section heading. Renders as a bold title.\",\n properties: z.object({\n text: z.string().describe(\"The heading text.\"),\n size: z\n .enum(TEXT_SIZES)\n .optional()\n .describe(\"Heading size; defaults to `lg`.\"),\n }),\n render: ({ text, size, children }) => (\n <h2 data-aui=\"header\" data-aui-size={size ?? \"lg\"}>\n {toTextContent(text)}\n {children}\n </h2>\n ),\n },\n Text: {\n description: \"A run of text. Use for paragraphs, labels, or inline copy.\",\n properties: z.object({\n value: z.string().describe(\"The text content.\"),\n size: z\n .enum(TEXT_SIZES)\n .optional()\n .describe(\"Text size; defaults to `md`.\"),\n weight: z.enum(WEIGHTS).optional().describe(\"Font weight.\"),\n color: z.enum(COLORS).optional().describe(\"Foreground color token.\"),\n }),\n streamProperties: true,\n render: ({ value, size, weight, color, children }) => (\n <span\n data-aui=\"text\"\n data-aui-size={size ?? \"md\"}\n data-aui-weight={weight}\n data-aui-color={color}\n >\n {toTextContent(value)}\n {children}\n </span>\n ),\n },\n Caption: {\n description: \"Secondary, de-emphasized text under a primary element.\",\n properties: z.object({\n value: z.string().describe(\"The caption text.\"),\n }),\n streamProperties: true,\n render: ({ value, children }) => (\n <p data-aui=\"caption\">\n {toTextContent(value)}\n {children}\n </p>\n ),\n },\n} satisfies GenerativeUILibrary;\n"],"mappings":";;;;;AAKA,MAAa,iBAAiB;CAC5B,QAAQ;EACN,aAAa;EACb,YAAY,EAAE,OAAO;GACnB,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB;GAC7C,MAAM,EACH,KAAK,UAAU,CAAC,CAChB,SAAS,CAAC,CACV,SAAS,iCAAiC;EAC/C,CAAC;EACD,SAAS,EAAE,MAAM,MAAM,eACrB,qBAAC,MAAD;GAAI,YAAS;GAAS,iBAAe,QAAQ;GAA7C,UAAA,CACG,cAAc,IAAI,GAClB,QACC;;CAER;CACA,MAAM;EACJ,aAAa;EACb,YAAY,EAAE,OAAO;GACnB,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB;GAC9C,MAAM,EACH,KAAK,UAAU,CAAC,CAChB,SAAS,CAAC,CACV,SAAS,8BAA8B;GAC1C,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,cAAc;GAC1D,OAAO,EAAE,KAAK,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,yBAAyB;EACrE,CAAC;EACD,kBAAkB;EAClB,SAAS,EAAE,OAAO,MAAM,QAAQ,OAAO,eACrC,qBAAC,QAAD;GACE,YAAS;GACT,iBAAe,QAAQ;GACvB,mBAAiB;GACjB,kBAAgB;GAJlB,UAAA,CAMG,cAAc,KAAK,GACnB,QACG;;CAEV;CACA,SAAS;EACP,aAAa;EACb,YAAY,EAAE,OAAO,EACnB,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB,EAChD,CAAC;EACD,kBAAkB;EAClB,SAAS,EAAE,OAAO,eAChB,qBAAC,KAAD;GAAG,YAAS;GAAZ,UAAA,CACG,cAAc,KAAK,GACnB,QACA;;CAEP;AACF"}
@@ -1,2 +0,0 @@
1
- export declare const toTextContent: (value: unknown) => string | number | null;
2
- //# sourceMappingURL=toTextContent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toTextContent.d.ts","sourceRoot":"","sources":["../../src/vocabulary/toTextContent.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MAAM,GAAG,MAAM,GAAG,IACM,CAAC"}
@@ -1,6 +0,0 @@
1
- //#region src/vocabulary/toTextContent.ts
2
- const toTextContent = (value) => typeof value === "string" || typeof value === "number" ? value : null;
3
- //#endregion
4
- export { toTextContent };
5
-
6
- //# sourceMappingURL=toTextContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toTextContent.js","names":[],"sources":["../../src/vocabulary/toTextContent.ts"],"sourcesContent":["export const toTextContent = (value: unknown): string | number | null =>\n typeof value === \"string\" || typeof value === \"number\" ? value : null;\n"],"mappings":";AAAA,MAAa,iBAAiB,UAC5B,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW,QAAQ"}