@mihcm/ai-ui 0.14.1

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 (166) hide show
  1. package/README.md +100 -0
  2. package/dist/coverage.d.ts +17 -0
  3. package/dist/coverage.d.ts.map +1 -0
  4. package/dist/coverage.js +320 -0
  5. package/dist/coverage.js.map +1 -0
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +5 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/renderer.d.ts +36 -0
  11. package/dist/renderer.d.ts.map +1 -0
  12. package/dist/renderer.js +413 -0
  13. package/dist/renderer.js.map +1 -0
  14. package/dist/schemas/Accordion.d.ts +25 -0
  15. package/dist/schemas/Accordion.d.ts.map +1 -0
  16. package/dist/schemas/Accordion.js +26 -0
  17. package/dist/schemas/Accordion.js.map +1 -0
  18. package/dist/schemas/Alert.d.ts +24 -0
  19. package/dist/schemas/Alert.d.ts.map +1 -0
  20. package/dist/schemas/Alert.js +20 -0
  21. package/dist/schemas/Alert.js.map +1 -0
  22. package/dist/schemas/AlertDialog.d.ts +29 -0
  23. package/dist/schemas/AlertDialog.d.ts.map +1 -0
  24. package/dist/schemas/AlertDialog.js +22 -0
  25. package/dist/schemas/AlertDialog.js.map +1 -0
  26. package/dist/schemas/Avatar.d.ts +29 -0
  27. package/dist/schemas/Avatar.d.ts.map +1 -0
  28. package/dist/schemas/Avatar.js +21 -0
  29. package/dist/schemas/Avatar.js.map +1 -0
  30. package/dist/schemas/AvatarGroup.d.ts +22 -0
  31. package/dist/schemas/AvatarGroup.d.ts.map +1 -0
  32. package/dist/schemas/AvatarGroup.js +23 -0
  33. package/dist/schemas/AvatarGroup.js.map +1 -0
  34. package/dist/schemas/Badge.d.ts +23 -0
  35. package/dist/schemas/Badge.d.ts.map +1 -0
  36. package/dist/schemas/Badge.js +19 -0
  37. package/dist/schemas/Badge.js.map +1 -0
  38. package/dist/schemas/Banner.d.ts +23 -0
  39. package/dist/schemas/Banner.d.ts.map +1 -0
  40. package/dist/schemas/Banner.js +20 -0
  41. package/dist/schemas/Banner.js.map +1 -0
  42. package/dist/schemas/Breadcrumb.d.ts +20 -0
  43. package/dist/schemas/Breadcrumb.d.ts.map +1 -0
  44. package/dist/schemas/Breadcrumb.js +25 -0
  45. package/dist/schemas/Breadcrumb.js.map +1 -0
  46. package/dist/schemas/Button.d.ts +40 -0
  47. package/dist/schemas/Button.d.ts.map +1 -0
  48. package/dist/schemas/Button.js +26 -0
  49. package/dist/schemas/Button.js.map +1 -0
  50. package/dist/schemas/Card.d.ts +21 -0
  51. package/dist/schemas/Card.d.ts.map +1 -0
  52. package/dist/schemas/Card.js +22 -0
  53. package/dist/schemas/Card.js.map +1 -0
  54. package/dist/schemas/Checkbox.d.ts +18 -0
  55. package/dist/schemas/Checkbox.d.ts.map +1 -0
  56. package/dist/schemas/Checkbox.js +19 -0
  57. package/dist/schemas/Checkbox.js.map +1 -0
  58. package/dist/schemas/Dialog.d.ts +24 -0
  59. package/dist/schemas/Dialog.d.ts.map +1 -0
  60. package/dist/schemas/Dialog.js +20 -0
  61. package/dist/schemas/Dialog.js.map +1 -0
  62. package/dist/schemas/DropdownMenu.d.ts +25 -0
  63. package/dist/schemas/DropdownMenu.d.ts.map +1 -0
  64. package/dist/schemas/DropdownMenu.js +29 -0
  65. package/dist/schemas/DropdownMenu.js.map +1 -0
  66. package/dist/schemas/EmptyState.d.ts +16 -0
  67. package/dist/schemas/EmptyState.d.ts.map +1 -0
  68. package/dist/schemas/EmptyState.js +17 -0
  69. package/dist/schemas/EmptyState.js.map +1 -0
  70. package/dist/schemas/Input.d.ts +42 -0
  71. package/dist/schemas/Input.d.ts.map +1 -0
  72. package/dist/schemas/Input.js +31 -0
  73. package/dist/schemas/Input.js.map +1 -0
  74. package/dist/schemas/Label.d.ts +24 -0
  75. package/dist/schemas/Label.d.ts.map +1 -0
  76. package/dist/schemas/Label.js +21 -0
  77. package/dist/schemas/Label.js.map +1 -0
  78. package/dist/schemas/Link.d.ts +30 -0
  79. package/dist/schemas/Link.d.ts.map +1 -0
  80. package/dist/schemas/Link.js +22 -0
  81. package/dist/schemas/Link.js.map +1 -0
  82. package/dist/schemas/Pagination.d.ts +19 -0
  83. package/dist/schemas/Pagination.d.ts.map +1 -0
  84. package/dist/schemas/Pagination.js +20 -0
  85. package/dist/schemas/Pagination.js.map +1 -0
  86. package/dist/schemas/Progress.d.ts +27 -0
  87. package/dist/schemas/Progress.d.ts.map +1 -0
  88. package/dist/schemas/Progress.js +20 -0
  89. package/dist/schemas/Progress.js.map +1 -0
  90. package/dist/schemas/RadioGroup.d.ts +25 -0
  91. package/dist/schemas/RadioGroup.d.ts.map +1 -0
  92. package/dist/schemas/RadioGroup.js +26 -0
  93. package/dist/schemas/RadioGroup.js.map +1 -0
  94. package/dist/schemas/SectionHeader.d.ts +160 -0
  95. package/dist/schemas/SectionHeader.d.ts.map +1 -0
  96. package/dist/schemas/SectionHeader.js +52 -0
  97. package/dist/schemas/SectionHeader.js.map +1 -0
  98. package/dist/schemas/Select.d.ts +38 -0
  99. package/dist/schemas/Select.d.ts.map +1 -0
  100. package/dist/schemas/Select.js +36 -0
  101. package/dist/schemas/Select.js.map +1 -0
  102. package/dist/schemas/Separator.d.ts +16 -0
  103. package/dist/schemas/Separator.d.ts.map +1 -0
  104. package/dist/schemas/Separator.js +14 -0
  105. package/dist/schemas/Separator.js.map +1 -0
  106. package/dist/schemas/Sheet.d.ts +28 -0
  107. package/dist/schemas/Sheet.d.ts.map +1 -0
  108. package/dist/schemas/Sheet.js +20 -0
  109. package/dist/schemas/Sheet.js.map +1 -0
  110. package/dist/schemas/Stack.d.ts +58 -0
  111. package/dist/schemas/Stack.d.ts.map +1 -0
  112. package/dist/schemas/Stack.js +80 -0
  113. package/dist/schemas/Stack.js.map +1 -0
  114. package/dist/schemas/StatCard.d.ts +30 -0
  115. package/dist/schemas/StatCard.d.ts.map +1 -0
  116. package/dist/schemas/StatCard.js +26 -0
  117. package/dist/schemas/StatCard.js.map +1 -0
  118. package/dist/schemas/StatusBadge.d.ts +25 -0
  119. package/dist/schemas/StatusBadge.d.ts.map +1 -0
  120. package/dist/schemas/StatusBadge.js +20 -0
  121. package/dist/schemas/StatusBadge.js.map +1 -0
  122. package/dist/schemas/Switch.d.ts +23 -0
  123. package/dist/schemas/Switch.d.ts.map +1 -0
  124. package/dist/schemas/Switch.js +20 -0
  125. package/dist/schemas/Switch.js.map +1 -0
  126. package/dist/schemas/Table.d.ts +20 -0
  127. package/dist/schemas/Table.d.ts.map +1 -0
  128. package/dist/schemas/Table.js +24 -0
  129. package/dist/schemas/Table.js.map +1 -0
  130. package/dist/schemas/Tabs.d.ts +21 -0
  131. package/dist/schemas/Tabs.d.ts.map +1 -0
  132. package/dist/schemas/Tabs.js +25 -0
  133. package/dist/schemas/Tabs.js.map +1 -0
  134. package/dist/schemas/Tag.d.ts +29 -0
  135. package/dist/schemas/Tag.d.ts.map +1 -0
  136. package/dist/schemas/Tag.js +21 -0
  137. package/dist/schemas/Tag.js.map +1 -0
  138. package/dist/schemas/Text.d.ts +51 -0
  139. package/dist/schemas/Text.d.ts.map +1 -0
  140. package/dist/schemas/Text.js +21 -0
  141. package/dist/schemas/Text.js.map +1 -0
  142. package/dist/schemas/Textarea.d.ts +25 -0
  143. package/dist/schemas/Textarea.d.ts.map +1 -0
  144. package/dist/schemas/Textarea.js +24 -0
  145. package/dist/schemas/Textarea.js.map +1 -0
  146. package/dist/schemas/TitleBar.d.ts +18 -0
  147. package/dist/schemas/TitleBar.d.ts.map +1 -0
  148. package/dist/schemas/TitleBar.js +19 -0
  149. package/dist/schemas/TitleBar.js.map +1 -0
  150. package/dist/schemas/Toggle.d.ts +28 -0
  151. package/dist/schemas/Toggle.d.ts.map +1 -0
  152. package/dist/schemas/Toggle.js +22 -0
  153. package/dist/schemas/Toggle.js.map +1 -0
  154. package/dist/schemas/index.d.ts +694 -0
  155. package/dist/schemas/index.d.ts.map +1 -0
  156. package/dist/schemas/index.js +160 -0
  157. package/dist/schemas/index.js.map +1 -0
  158. package/dist/schemas/shared.d.ts +4 -0
  159. package/dist/schemas/shared.d.ts.map +1 -0
  160. package/dist/schemas/shared.js +23 -0
  161. package/dist/schemas/shared.js.map +1 -0
  162. package/dist/tools.d.ts +1293 -0
  163. package/dist/tools.d.ts.map +1 -0
  164. package/dist/tools.js +40 -0
  165. package/dist/tools.js.map +1 -0
  166. package/package.json +59 -0
@@ -0,0 +1,413 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * AI-UI renderer — validates a model-produced descriptor and renders it as
4
+ * @mihcm/ui. Same renderer works in React, Next.js, and React Native
5
+ * because the underlying primitives are universal.
6
+ *
7
+ * Security contract:
8
+ * - Every descriptor is parsed by `componentDescriptorSchema` (AI-UI-01).
9
+ * - Component names must appear in `ALLOWED_COMPONENTS` (AI-UI-02).
10
+ * - No dynamic code evaluation, no raw HTML, ever (AI-UI-03/04/05).
11
+ * - Action handlers are looked up by id from a server-supplied map — we
12
+ * never accept arbitrary URLs or function bodies.
13
+ *
14
+ * Wiki: docs/components/<each>.md
15
+ */
16
+ import { Fragment, useState } from 'react';
17
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from '@mihcm/ui/Accordion';
18
+ import { Alert, AlertDescription, AlertTitle } from '@mihcm/ui/Alert';
19
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '@mihcm/ui/AlertDialog';
20
+ import { Avatar, AvatarFallback, AvatarImage, AvatarStatus } from '@mihcm/ui/Avatar';
21
+ import { AvatarGroup } from '@mihcm/ui/AvatarGroup';
22
+ import { Badge } from '@mihcm/ui/Badge';
23
+ import { Banner } from '@mihcm/ui/Banner';
24
+ import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from '@mihcm/ui/Breadcrumb';
25
+ import { Button } from '@mihcm/ui/Button';
26
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@mihcm/ui/Card';
27
+ import { Checkbox } from '@mihcm/ui/Checkbox';
28
+ import { Dialog, DialogBody, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@mihcm/ui/Dialog';
29
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@mihcm/ui/DropdownMenu';
30
+ import { EmptyState } from '@mihcm/ui/EmptyState';
31
+ import { Input } from '@mihcm/ui/Input';
32
+ import { Label } from '@mihcm/ui/Label';
33
+ import { Link } from '@mihcm/ui/Link';
34
+ import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from '@mihcm/ui/Pagination';
35
+ import { Progress } from '@mihcm/ui/Progress';
36
+ import { RadioGroup, RadioGroupItem } from '@mihcm/ui/RadioGroup';
37
+ import { SectionHeader } from '@mihcm/ui/SectionHeader';
38
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, } from '@mihcm/ui/Select';
39
+ import { Separator } from '@mihcm/ui/Separator';
40
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from '@mihcm/ui/Sheet';
41
+ import { StatCard } from '@mihcm/ui/StatCard';
42
+ import { StatusBadge } from '@mihcm/ui/StatusBadge';
43
+ import { Switch } from '@mihcm/ui/Switch';
44
+ import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, } from '@mihcm/ui/Table';
45
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@mihcm/ui/Tabs';
46
+ import { Tag } from '@mihcm/ui/Tag';
47
+ import { Text } from '@mihcm/ui/Text';
48
+ import { Textarea } from '@mihcm/ui/Textarea';
49
+ import { TitleBar } from '@mihcm/ui/TitleBar';
50
+ import { Toggle } from '@mihcm/ui/Toggle';
51
+ import { componentDescriptorSchema, ALLOWED_COMPONENTS, } from './schemas/index.js';
52
+ const MAX_DEPTH = 5;
53
+ const ALLOWED_SET = new Set(ALLOWED_COMPONENTS);
54
+ export class AIUIRenderError extends Error {
55
+ name = 'AIUIRenderError';
56
+ details;
57
+ constructor(message, details) {
58
+ super(message);
59
+ this.details = details;
60
+ }
61
+ }
62
+ /**
63
+ * Render a model-supplied descriptor (already JSON-parsed) into React nodes.
64
+ *
65
+ * Throws `AIUIRenderError` if validation fails. Callers should render an
66
+ * "I couldn't render that" fallback rather than propagating the error to UI.
67
+ */
68
+ export function renderDescriptor(raw, options = {}) {
69
+ const parsed = componentDescriptorSchema.safeParse(raw);
70
+ if (!parsed.success) {
71
+ throw new AIUIRenderError('Descriptor failed Zod validation', parsed.error.flatten());
72
+ }
73
+ return renderNode(parsed.data, options, 0);
74
+ }
75
+ function renderNode(desc, options, depth) {
76
+ if (depth > MAX_DEPTH) {
77
+ throw new AIUIRenderError(`Descriptor exceeds max depth of ${MAX_DEPTH}`);
78
+ }
79
+ if (!ALLOWED_SET.has(desc.component)) {
80
+ throw new AIUIRenderError(`Component "${desc.component}" not in allowlist`);
81
+ }
82
+ switch (desc.component) {
83
+ case 'Accordion': {
84
+ return _jsx(RenderAccordion, { desc: desc });
85
+ }
86
+ case 'Alert': {
87
+ const alertProps = {
88
+ ...(desc.props.variant !== undefined && { variant: desc.props.variant }),
89
+ };
90
+ return (_jsxs(Alert, { ...alertProps, children: [desc.props.title ? _jsx(AlertTitle, { children: desc.props.title }) : null, _jsx(AlertDescription, { children: desc.props.description })] }));
91
+ }
92
+ case 'AlertDialog': {
93
+ return _jsx(RenderAlertDialog, { desc: desc });
94
+ }
95
+ case 'Avatar': {
96
+ const avatarProps = {
97
+ ...(desc.props.size !== undefined && { size: desc.props.size }),
98
+ };
99
+ return (_jsxs(Avatar, { ...avatarProps, children: [desc.props.src && (_jsx(AvatarImage, { src: desc.props.src, alt: desc.props.alt ?? '' })), _jsx(AvatarFallback, { children: desc.props.fallback }), desc.props.status && _jsx(AvatarStatus, { status: desc.props.status })] }));
100
+ }
101
+ case 'AvatarGroup': {
102
+ return (_jsx(AvatarGroup, { ...(desc.props.max !== undefined && { max: desc.props.max }), ...(desc.props.size !== undefined && { size: desc.props.size }), children: desc.props.avatars.map((a) => (_jsxs(Avatar, { ...(desc.props.size !== undefined && { size: desc.props.size }), children: [a.src && _jsx(AvatarImage, { src: a.src, alt: "" }), _jsx(AvatarFallback, { children: a.fallback })] }, `${a.fallback}-${a.src ?? 'fallback'}`))) }));
103
+ }
104
+ case 'Badge': {
105
+ const badgeProps = {
106
+ ...(desc.props.variant !== undefined && { variant: desc.props.variant }),
107
+ };
108
+ return _jsx(Badge, { ...badgeProps, children: desc.props.children });
109
+ }
110
+ case 'Breadcrumb': {
111
+ const items = desc.props.items;
112
+ return (_jsx(Breadcrumb, { children: _jsx(BreadcrumbList, { children: items.map((item, i) => (_jsxs(Fragment, { children: [i > 0 && _jsx(BreadcrumbSeparator, {}), _jsx(BreadcrumbItem, { children: i === items.length - 1 ? (_jsx(BreadcrumbPage, { children: item.label })) : (_jsx(BreadcrumbLink, { href: item.href, children: item.label })) })] }, `${item.label}-${item.href ?? 'current'}`))) }) }));
113
+ }
114
+ case 'Button': {
115
+ const onClick = desc.props.onActionId
116
+ ? options.actions?.[desc.props.onActionId]
117
+ : undefined;
118
+ // exactOptionalPropertyTypes: only spread defined props
119
+ const buttonProps = {
120
+ ...(desc.props.variant !== undefined && { variant: desc.props.variant }),
121
+ ...(desc.props.size !== undefined && { size: desc.props.size }),
122
+ ...(desc.props.shape !== undefined && { shape: desc.props.shape }),
123
+ ...(desc.props.isLoading !== undefined && { isLoading: desc.props.isLoading }),
124
+ ...(onClick !== undefined && { onClick }),
125
+ };
126
+ return _jsx(Button, { ...buttonProps, children: desc.props.children });
127
+ }
128
+ case 'Card': {
129
+ return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: desc.props.title }), desc.props.description && (_jsx(CardDescription, { children: desc.props.description }))] }), _jsx(CardContent, { children: _jsx(Text, { children: desc.props.body }) })] }));
130
+ }
131
+ case 'Checkbox': {
132
+ return _jsx(RenderCheckbox, { desc: desc });
133
+ }
134
+ case 'Dialog': {
135
+ return _jsx(RenderDialog, { desc: desc });
136
+ }
137
+ case 'DropdownMenu': {
138
+ return _jsx(RenderDropdownMenu, { desc: desc });
139
+ }
140
+ case 'EmptyState': {
141
+ const onClick = desc.props.actionId
142
+ ? options.actions?.[desc.props.actionId]
143
+ : undefined;
144
+ return (_jsx(EmptyState, { title: desc.props.title, ...(desc.props.description !== undefined && { description: desc.props.description }), ...(desc.props.actionLabel !== undefined && {
145
+ action: (_jsx(Button, { ...(onClick !== undefined && { onClick }), children: desc.props.actionLabel })),
146
+ }) }));
147
+ }
148
+ case 'Input': {
149
+ const inputProps = {
150
+ name: desc.props.name,
151
+ ...(desc.props.placeholder !== undefined && { placeholder: desc.props.placeholder }),
152
+ ...(desc.props.type !== undefined && { type: desc.props.type }),
153
+ ...(desc.props.variant !== undefined && { variant: desc.props.variant }),
154
+ ...(desc.props.size !== undefined && { size: desc.props.size }),
155
+ ...(desc.props.invalid !== undefined && { invalid: desc.props.invalid }),
156
+ ...(desc.props.required !== undefined && { required: desc.props.required }),
157
+ ...(desc.props.accessibilityLabel !== undefined && {
158
+ 'aria-label': desc.props.accessibilityLabel,
159
+ }),
160
+ };
161
+ return _jsx(Input, { ...inputProps });
162
+ }
163
+ case 'Label': {
164
+ const labelProps = {
165
+ ...(desc.props.htmlFor !== undefined && { htmlFor: desc.props.htmlFor }),
166
+ ...(desc.props.tone !== undefined && { tone: desc.props.tone }),
167
+ ...(desc.props.required !== undefined && { required: desc.props.required }),
168
+ };
169
+ return _jsx(Label, { ...labelProps, children: desc.props.children });
170
+ }
171
+ case 'Link': {
172
+ const linkProps = {
173
+ href: desc.props.href,
174
+ ...(desc.props.variant !== undefined && { variant: desc.props.variant }),
175
+ ...(desc.props.size !== undefined && { size: desc.props.size }),
176
+ ...(desc.props.external !== undefined && { external: desc.props.external }),
177
+ ...(desc.props.showExternalIndicator !== undefined && {
178
+ showExternalIndicator: desc.props.showExternalIndicator,
179
+ }),
180
+ };
181
+ return _jsx(Link, { ...linkProps, children: desc.props.children });
182
+ }
183
+ case 'Pagination': {
184
+ return renderPagination(desc);
185
+ }
186
+ case 'Progress': {
187
+ const progressProps = {
188
+ ...(desc.props.value !== undefined && { value: desc.props.value }),
189
+ ...(desc.props.tone !== undefined && { tone: desc.props.tone }),
190
+ ...(desc.props.size !== undefined && { size: desc.props.size }),
191
+ ...(desc.props.label !== undefined && { label: desc.props.label }),
192
+ ...(desc.props.showValue !== undefined && { showValue: desc.props.showValue }),
193
+ };
194
+ return _jsx(Progress, { ...progressProps });
195
+ }
196
+ case 'RadioGroup': {
197
+ return _jsx(RenderRadioGroup, { desc: desc });
198
+ }
199
+ case 'SectionHeader': {
200
+ const sectionHeaderProps = {
201
+ title: desc.props.title,
202
+ ...(desc.props.description !== undefined && { description: desc.props.description }),
203
+ ...(desc.props.padding !== undefined && { padding: desc.props.padding }),
204
+ ...(desc.props.paddingX !== undefined && { paddingX: desc.props.paddingX }),
205
+ ...(desc.props.paddingY !== undefined && { paddingY: desc.props.paddingY }),
206
+ ...(desc.props.paddingTop !== undefined && { paddingTop: desc.props.paddingTop }),
207
+ ...(desc.props.paddingRight !== undefined && { paddingRight: desc.props.paddingRight }),
208
+ ...(desc.props.paddingBottom !== undefined && { paddingBottom: desc.props.paddingBottom }),
209
+ ...(desc.props.paddingLeft !== undefined && { paddingLeft: desc.props.paddingLeft }),
210
+ ...(desc.props.margin !== undefined && { margin: desc.props.margin }),
211
+ ...(desc.props.marginX !== undefined && { marginX: desc.props.marginX }),
212
+ ...(desc.props.marginY !== undefined && { marginY: desc.props.marginY }),
213
+ ...(desc.props.marginTop !== undefined && { marginTop: desc.props.marginTop }),
214
+ ...(desc.props.marginRight !== undefined && { marginRight: desc.props.marginRight }),
215
+ ...(desc.props.marginBottom !== undefined && { marginBottom: desc.props.marginBottom }),
216
+ ...(desc.props.marginLeft !== undefined && { marginLeft: desc.props.marginLeft }),
217
+ ...(desc.props.surface !== undefined && { surface: desc.props.surface }),
218
+ ...(desc.props.border !== undefined && { border: desc.props.border }),
219
+ ...(desc.props.radius !== undefined && { radius: desc.props.radius }),
220
+ ...(desc.props.shadow !== undefined && { shadow: desc.props.shadow }),
221
+ };
222
+ return _jsx(SectionHeader, { ...sectionHeaderProps });
223
+ }
224
+ case 'Select': {
225
+ return _jsx(RenderSelect, { desc: desc });
226
+ }
227
+ case 'Separator': {
228
+ const separatorProps = {
229
+ ...(desc.props.orientation !== undefined && { orientation: desc.props.orientation }),
230
+ };
231
+ return _jsx(Separator, { ...separatorProps });
232
+ }
233
+ case 'Sheet': {
234
+ return _jsx(RenderSheet, { desc: desc });
235
+ }
236
+ case 'StatCard': {
237
+ const statCardProps = {
238
+ value: desc.props.value,
239
+ label: desc.props.label,
240
+ ...(desc.props.tone !== undefined && { tone: desc.props.tone }),
241
+ };
242
+ return _jsx(StatCard, { ...statCardProps });
243
+ }
244
+ case 'StatusBadge': {
245
+ const statusBadgeProps = {
246
+ ...(desc.props.tone !== undefined && { tone: desc.props.tone }),
247
+ };
248
+ return _jsx(StatusBadge, { ...statusBadgeProps, children: desc.props.children });
249
+ }
250
+ case 'Switch': {
251
+ return _jsx(RenderSwitch, { desc: desc });
252
+ }
253
+ case 'Tabs': {
254
+ return _jsx(RenderTabs, { desc: desc });
255
+ }
256
+ case 'Text': {
257
+ const textProps = {
258
+ ...(desc.props.size !== undefined && { size: desc.props.size }),
259
+ ...(desc.props.weight !== undefined && { weight: desc.props.weight }),
260
+ ...(desc.props.tone !== undefined && { tone: desc.props.tone }),
261
+ ...(desc.props.as !== undefined && { as: desc.props.as }),
262
+ };
263
+ return _jsx(Text, { ...textProps, children: desc.props.children });
264
+ }
265
+ case 'Textarea': {
266
+ return _jsx(RenderTextarea, { desc: desc });
267
+ }
268
+ case 'TitleBar': {
269
+ const titleBarProps = {
270
+ title: desc.props.title,
271
+ ...(desc.props.supertitle !== undefined && { supertitle: desc.props.supertitle }),
272
+ };
273
+ return _jsx(TitleBar, { ...titleBarProps });
274
+ }
275
+ case 'Toggle': {
276
+ return _jsx(RenderToggle, { desc: desc });
277
+ }
278
+ case 'Table': {
279
+ return renderTable(desc);
280
+ }
281
+ case 'Banner': {
282
+ const bannerProps = {
283
+ ...(desc.props.tone !== undefined && { tone: desc.props.tone }),
284
+ ...(desc.props.dismissible !== undefined && { dismissible: desc.props.dismissible }),
285
+ };
286
+ return _jsx(Banner, { ...bannerProps, children: desc.props.message });
287
+ }
288
+ case 'Tag': {
289
+ const tagProps = {
290
+ ...(desc.props.variant !== undefined && { variant: desc.props.variant }),
291
+ ...(desc.props.size !== undefined && { size: desc.props.size }),
292
+ ...(desc.props.removable !== undefined && { removable: desc.props.removable }),
293
+ };
294
+ return _jsx(Tag, { ...tagProps, children: desc.props.label });
295
+ }
296
+ case 'Stack': {
297
+ return renderStack(desc, options, depth);
298
+ }
299
+ default: {
300
+ const exhaustive = desc;
301
+ throw new AIUIRenderError(`Unhandled component`, exhaustive);
302
+ }
303
+ }
304
+ }
305
+ /* ── Stateful wrapper components for controlled primitives ─────────── */
306
+ function RenderSwitch({ desc }) {
307
+ const [checked, setChecked] = useState(desc.props.defaultChecked ?? false);
308
+ return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Switch, { checked: checked, onCheckedChange: setChecked, ...(desc.props.size !== undefined && { size: desc.props.size }), ...(desc.props.disabled !== undefined && { disabled: desc.props.disabled }) }), _jsx("span", { className: "text-sm", children: desc.props.label })] }));
309
+ }
310
+ function RenderRadioGroup({ desc }) {
311
+ const [value, setValue] = useState(desc.props.defaultValue ?? desc.props.options[0]?.value ?? '');
312
+ return (_jsx(RadioGroup, { value: value, onValueChange: setValue, ...(desc.props.orientation !== undefined && { orientation: desc.props.orientation }), ...(desc.props.disabled !== undefined && { disabled: desc.props.disabled }), children: desc.props.options.map((opt) => (_jsx(RadioGroupItem, { value: opt.value, children: opt.label }, opt.value))) }));
313
+ }
314
+ function RenderSelect({ desc }) {
315
+ const [value, setValue] = useState(desc.props.defaultValue);
316
+ // Group options by their optional `group` field
317
+ const groups = new Map();
318
+ for (const opt of desc.props.options) {
319
+ const key = opt.group;
320
+ if (!groups.has(key))
321
+ groups.set(key, []);
322
+ groups.get(key).push(opt);
323
+ }
324
+ const groupKeys = [...groups.keys()];
325
+ const hasGroups = groupKeys.some((k) => k !== undefined);
326
+ return (_jsxs(Select, { ...(value !== undefined && { value }), onValueChange: setValue, children: [_jsx(SelectTrigger, { ...(desc.props.placeholder !== undefined && { placeholder: desc.props.placeholder }), ...(desc.props.variant !== undefined && { variant: desc.props.variant }), ...(desc.props.size !== undefined && { size: desc.props.size }), ...(desc.props.disabled !== undefined && { disabled: desc.props.disabled }) }), _jsx(SelectContent, { children: hasGroups
327
+ ? groupKeys.map((groupName, gi) => (_jsxs(Fragment, { children: [gi > 0 && _jsx(SelectSeparator, {}), _jsxs(SelectGroup, { children: [groupName && _jsx(SelectLabel, { children: groupName }), groups.get(groupName).map((opt) => (_jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value)))] })] }, groupName ?? '__ungrouped')))
328
+ : desc.props.options.map((opt) => (_jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value))) })] }));
329
+ }
330
+ function RenderCheckbox({ desc }) {
331
+ const [checked, setChecked] = useState(desc.props.defaultChecked ?? false);
332
+ return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { checked: checked, onCheckedChange: setChecked, ...(desc.props.disabled !== undefined && { disabled: desc.props.disabled }) }), _jsx("span", { className: "text-sm", children: desc.props.label })] }));
333
+ }
334
+ function RenderTabs({ desc }) {
335
+ const [value, setValue] = useState(desc.props.defaultValue);
336
+ return (_jsxs(Tabs, { value: value, onValueChange: setValue, children: [_jsx(TabsList, { children: desc.props.tabs.map((tab) => (_jsx(TabsTrigger, { value: tab.value, children: tab.label }, tab.value))) }), desc.props.tabs.map((tab) => (_jsx(TabsContent, { value: tab.value, children: _jsx(Text, { children: tab.content }) }, tab.value)))] }));
337
+ }
338
+ function RenderDialog({ desc }) {
339
+ const [open, setOpen] = useState(false);
340
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", onClick: () => setOpen(true), children: desc.props.title }), _jsx(Dialog, { open: open, onOpenChange: setOpen, children: _jsxs(DialogContent, { ...(desc.props.size !== undefined && { size: desc.props.size }), children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: desc.props.title }), desc.props.description && (_jsx(DialogDescription, { children: desc.props.description }))] }), _jsx(DialogBody, { children: _jsx(Text, { children: desc.props.body }) })] }) })] }));
341
+ }
342
+ function RenderAlertDialog({ desc }) {
343
+ const [open, setOpen] = useState(false);
344
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: desc.props.variant === 'destructive' ? 'destructive' : 'outline', onClick: () => setOpen(true), children: desc.props.actionLabel }), _jsx(AlertDialog, { open: open, onOpenChange: setOpen, children: _jsxs(AlertDialogContent, { ...(desc.props.size !== undefined && { size: desc.props.size }), children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: desc.props.title }), desc.props.description && (_jsx(AlertDialogDescription, { children: desc.props.description }))] }), _jsxs(AlertDialogFooter, { children: [desc.props.cancelLabel && (_jsx(AlertDialogCancel, { onClick: () => setOpen(false), children: desc.props.cancelLabel })), _jsx(AlertDialogAction, { ...(desc.props.variant === 'destructive' && { variant: 'destructive' }), onClick: () => setOpen(false), children: desc.props.actionLabel })] })] }) })] }));
345
+ }
346
+ function RenderSheet({ desc }) {
347
+ const [open, setOpen] = useState(false);
348
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", onClick: () => setOpen(true), children: desc.props.title }), _jsx(Sheet, { open: open, onOpenChange: setOpen, children: _jsx(SheetContent, { ...(desc.props.side !== undefined && { side: desc.props.side }), ...(desc.props.size !== undefined && { size: desc.props.size }), children: _jsxs(SheetHeader, { children: [_jsx(SheetTitle, { children: desc.props.title }), desc.props.description && (_jsx(SheetDescription, { children: desc.props.description }))] }) }) })] }));
349
+ }
350
+ function RenderTextarea({ desc }) {
351
+ const [value, setValue] = useState('');
352
+ return (_jsx(Textarea, { name: desc.props.name, value: value, onChange: (e) => setValue(e.target.value), ...(desc.props.placeholder !== undefined && { placeholder: desc.props.placeholder }), ...(desc.props.rows !== undefined && { rows: desc.props.rows }), ...(desc.props.variant !== undefined && { variant: desc.props.variant }), ...(desc.props.invalid !== undefined && { invalid: desc.props.invalid }), ...(desc.props.required !== undefined && { required: desc.props.required }), ...(desc.props.accessibilityLabel !== undefined && {
353
+ 'aria-label': desc.props.accessibilityLabel,
354
+ }) }));
355
+ }
356
+ function RenderToggle({ desc }) {
357
+ const [pressed, setPressed] = useState(desc.props.defaultPressed ?? false);
358
+ return (_jsx(Toggle, { pressed: pressed, onPressedChange: setPressed, ...(desc.props.variant !== undefined && { variant: desc.props.variant }), ...(desc.props.size !== undefined && { size: desc.props.size }), ...(desc.props.disabled !== undefined && { disabled: desc.props.disabled }), children: desc.props.label }));
359
+ }
360
+ function RenderDropdownMenu({ desc }) {
361
+ const [open, setOpen] = useState(false);
362
+ return (_jsxs(DropdownMenu, { open: open, onOpenChange: setOpen, children: [_jsx(DropdownMenuTrigger, { children: desc.props.triggerLabel }), _jsx(DropdownMenuContent, { children: desc.props.items.map((item, i) => {
363
+ const prev = desc.props.items[i - 1];
364
+ const showSep = i > 0 && !!item.destructive && !prev?.destructive;
365
+ return (_jsxs(Fragment, { children: [showSep && _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { ...(item.destructive === true && { variant: 'destructive' }), ...(item.disabled === true && { disabled: true }), children: item.label })] }, item.id));
366
+ }) })] }));
367
+ }
368
+ function renderPagination(desc) {
369
+ const { totalPages, currentPage, siblingCount = 1 } = desc.props;
370
+ const pages = computeVisiblePages(currentPage, totalPages, siblingCount);
371
+ return (_jsx(Pagination, { children: _jsxs(PaginationContent, { children: [_jsx(PaginationItem, { children: _jsx(PaginationPrevious, { disabled: currentPage <= 1 }) }), pages.map((p, i) => p === 'ellipsis' ? (_jsx(PaginationItem, { children: _jsx(PaginationEllipsis, {}) }, `ellipsis-${pages[i - 1] ?? 'start'}-${pages[i + 1] ?? 'end'}`)) : (_jsx(PaginationItem, { children: _jsx(PaginationLink, { isActive: p === currentPage, children: p }) }, p))), _jsx(PaginationItem, { children: _jsx(PaginationNext, { disabled: currentPage >= totalPages }) })] }) }));
372
+ }
373
+ function computeVisiblePages(current, total, siblings) {
374
+ const range = (start, end) => Array.from({ length: end - start + 1 }, (_, i) => start + i);
375
+ const totalNumbers = siblings * 2 + 5;
376
+ if (totalNumbers >= total)
377
+ return range(1, total);
378
+ const leftSibling = Math.max(current - siblings, 1);
379
+ const rightSibling = Math.min(current + siblings, total);
380
+ const showLeftDots = leftSibling > 2;
381
+ const showRightDots = rightSibling < total - 1;
382
+ if (!showLeftDots && showRightDots) {
383
+ const leftCount = 3 + 2 * siblings;
384
+ return [...range(1, leftCount), 'ellipsis', total];
385
+ }
386
+ if (showLeftDots && !showRightDots) {
387
+ const rightCount = 3 + 2 * siblings;
388
+ return [1, 'ellipsis', ...range(total - rightCount + 1, total)];
389
+ }
390
+ return [1, 'ellipsis', ...range(leftSibling, rightSibling), 'ellipsis', total];
391
+ }
392
+ function RenderAccordion({ desc }) {
393
+ return (_jsx(Accordion, { ...(desc.props.type !== undefined && { type: desc.props.type }), ...(desc.props.defaultValue !== undefined && { defaultValue: desc.props.defaultValue }), children: desc.props.items.map((item) => (_jsxs(AccordionItem, { value: item.value, children: [_jsx(AccordionTrigger, { children: item.title }), _jsx(AccordionContent, { children: item.content })] }, item.value))) }));
394
+ }
395
+ function renderTable(desc) {
396
+ const { columns, rows, caption, striped } = desc.props;
397
+ return (_jsxs(Table, { children: [caption && _jsx(TableCaption, { children: caption }), _jsx(TableHeader, { children: _jsx(TableRow, { children: columns.map((col) => (_jsx(TableHead, { children: col.header }, col.key))) }) }), _jsx(TableBody, { children: rows.map((row, i) => (_jsx(TableRow, { ...(striped === true && i % 2 === 1 && { className: 'bg-muted/50' }), children: columns.map((col) => (_jsx(TableCell, { children: row[col.key] ?? '' }, col.key))) }, columns.map((col) => row[col.key] ?? '').join('|')))) })] }));
398
+ }
399
+ function renderStack(desc, options, depth) {
400
+ const children = desc.props.children.map((child) => (_jsx(Fragment, { children: renderNode(child, options, depth + 1) }, `${child.component}-${JSON.stringify(child.props).slice(0, 120)}`)));
401
+ // Universal: a plain styled wrapper. Web → div; native consumers will see
402
+ // this as RN-web's <div> equivalent. For pure RN we'd swap to <View> in a
403
+ // .native variant of this file later.
404
+ const direction = desc.props.direction ?? 'column';
405
+ const gap = desc.props.gap ?? 'md';
406
+ const className = [
407
+ 'flex',
408
+ direction === 'row' ? 'flex-row' : 'flex-col',
409
+ gap === 'sm' ? 'gap-2' : gap === 'lg' ? 'gap-6' : 'gap-4',
410
+ ].join(' ');
411
+ return _jsx("div", { className: className, children: children });
412
+ }
413
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema describing the Accordion props an AI model is allowed to
4
+ * produce. MUST stay in sync with `@mihcm/ui/Accordion`.
5
+ *
6
+ * The model supplies item values, titles, and content. The host
7
+ * wires up the open/close state.
8
+ */
9
+ export declare const accordionDescriptorSchema: z.ZodObject<{
10
+ component: z.ZodLiteral<"Accordion">;
11
+ props: z.ZodObject<{
12
+ type: z.ZodOptional<z.ZodEnum<{
13
+ single: "single";
14
+ multiple: "multiple";
15
+ }>>;
16
+ defaultValue: z.ZodOptional<z.ZodString>;
17
+ items: z.ZodArray<z.ZodObject<{
18
+ value: z.ZodString;
19
+ title: z.ZodString;
20
+ content: z.ZodString;
21
+ }, z.core.$strip>>;
22
+ }, z.core.$strict>;
23
+ }, z.core.$strip>;
24
+ export type AccordionDescriptor = z.infer<typeof accordionDescriptorSchema>;
25
+ //# sourceMappingURL=Accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../src/schemas/Accordion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;iBAkBpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema describing the Accordion props an AI model is allowed to
4
+ * produce. MUST stay in sync with `@mihcm/ui/Accordion`.
5
+ *
6
+ * The model supplies item values, titles, and content. The host
7
+ * wires up the open/close state.
8
+ */
9
+ export const accordionDescriptorSchema = z.object({
10
+ component: z.literal('Accordion'),
11
+ props: z
12
+ .object({
13
+ type: z.enum(['single', 'multiple']).optional(),
14
+ defaultValue: z.string().optional(),
15
+ items: z
16
+ .array(z.object({
17
+ value: z.string().min(1).max(100),
18
+ title: z.string().min(1).max(200),
19
+ content: z.string().min(1).max(2000),
20
+ }))
21
+ .min(1)
22
+ .max(20),
23
+ })
24
+ .strict(),
25
+ });
26
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../src/schemas/Accordion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACjC,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;SACrC,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;KACX,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema describing the Alert props an AI model is allowed to
4
+ * produce. MUST stay in sync with `@mihcm/ui/Alert`.
5
+ *
6
+ * The model supplies the variant, the title, and the body — never
7
+ * an action handler. Render-time consumers can drop a Button next to
8
+ * the rendered Alert if action is needed (a follow-up Stack node).
9
+ */
10
+ export declare const alertDescriptorSchema: z.ZodObject<{
11
+ component: z.ZodLiteral<"Alert">;
12
+ props: z.ZodObject<{
13
+ variant: z.ZodOptional<z.ZodEnum<{
14
+ success: "success";
15
+ default: "default";
16
+ destructive: "destructive";
17
+ warning: "warning";
18
+ }>>;
19
+ title: z.ZodOptional<z.ZodString>;
20
+ description: z.ZodString;
21
+ }, z.core.$strict>;
22
+ }, z.core.$strip>;
23
+ export type AlertDescriptor = z.infer<typeof alertDescriptorSchema>;
24
+ //# sourceMappingURL=Alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../src/schemas/Alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;iBAShC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema describing the Alert props an AI model is allowed to
4
+ * produce. MUST stay in sync with `@mihcm/ui/Alert`.
5
+ *
6
+ * The model supplies the variant, the title, and the body — never
7
+ * an action handler. Render-time consumers can drop a Button next to
8
+ * the rendered Alert if action is needed (a follow-up Stack node).
9
+ */
10
+ export const alertDescriptorSchema = z.object({
11
+ component: z.literal('Alert'),
12
+ props: z
13
+ .object({
14
+ variant: z.enum(['default', 'destructive', 'success', 'warning']).optional(),
15
+ title: z.string().min(1).max(160).optional(),
16
+ description: z.string().min(1).max(800),
17
+ })
18
+ .strict(),
19
+ });
20
+ //# sourceMappingURL=Alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../src/schemas/Alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7B,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;KACxC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema describing the AlertDialog props an AI model is allowed to
4
+ * produce. MUST stay in sync with `@mihcm/ui/AlertDialog`.
5
+ *
6
+ * The model supplies title, description, action/cancel labels, variant,
7
+ * and size. The host manages open/close state and action handlers.
8
+ */
9
+ export declare const alertDialogDescriptorSchema: z.ZodObject<{
10
+ component: z.ZodLiteral<"AlertDialog">;
11
+ props: z.ZodObject<{
12
+ title: z.ZodString;
13
+ description: z.ZodOptional<z.ZodString>;
14
+ actionLabel: z.ZodString;
15
+ cancelLabel: z.ZodOptional<z.ZodString>;
16
+ variant: z.ZodOptional<z.ZodEnum<{
17
+ default: "default";
18
+ destructive: "destructive";
19
+ }>>;
20
+ size: z.ZodOptional<z.ZodEnum<{
21
+ sm: "sm";
22
+ md: "md";
23
+ lg: "lg";
24
+ xl: "xl";
25
+ }>>;
26
+ }, z.core.$strict>;
27
+ }, z.core.$strip>;
28
+ export type AlertDialogDescriptor = z.infer<typeof alertDialogDescriptorSchema>;
29
+ //# sourceMappingURL=AlertDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../src/schemas/AlertDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;iBAYtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}