@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.
- package/README.md +100 -0
- package/dist/coverage.d.ts +17 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +320 -0
- package/dist/coverage.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/renderer.d.ts +36 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +413 -0
- package/dist/renderer.js.map +1 -0
- package/dist/schemas/Accordion.d.ts +25 -0
- package/dist/schemas/Accordion.d.ts.map +1 -0
- package/dist/schemas/Accordion.js +26 -0
- package/dist/schemas/Accordion.js.map +1 -0
- package/dist/schemas/Alert.d.ts +24 -0
- package/dist/schemas/Alert.d.ts.map +1 -0
- package/dist/schemas/Alert.js +20 -0
- package/dist/schemas/Alert.js.map +1 -0
- package/dist/schemas/AlertDialog.d.ts +29 -0
- package/dist/schemas/AlertDialog.d.ts.map +1 -0
- package/dist/schemas/AlertDialog.js +22 -0
- package/dist/schemas/AlertDialog.js.map +1 -0
- package/dist/schemas/Avatar.d.ts +29 -0
- package/dist/schemas/Avatar.d.ts.map +1 -0
- package/dist/schemas/Avatar.js +21 -0
- package/dist/schemas/Avatar.js.map +1 -0
- package/dist/schemas/AvatarGroup.d.ts +22 -0
- package/dist/schemas/AvatarGroup.d.ts.map +1 -0
- package/dist/schemas/AvatarGroup.js +23 -0
- package/dist/schemas/AvatarGroup.js.map +1 -0
- package/dist/schemas/Badge.d.ts +23 -0
- package/dist/schemas/Badge.d.ts.map +1 -0
- package/dist/schemas/Badge.js +19 -0
- package/dist/schemas/Badge.js.map +1 -0
- package/dist/schemas/Banner.d.ts +23 -0
- package/dist/schemas/Banner.d.ts.map +1 -0
- package/dist/schemas/Banner.js +20 -0
- package/dist/schemas/Banner.js.map +1 -0
- package/dist/schemas/Breadcrumb.d.ts +20 -0
- package/dist/schemas/Breadcrumb.d.ts.map +1 -0
- package/dist/schemas/Breadcrumb.js +25 -0
- package/dist/schemas/Breadcrumb.js.map +1 -0
- package/dist/schemas/Button.d.ts +40 -0
- package/dist/schemas/Button.d.ts.map +1 -0
- package/dist/schemas/Button.js +26 -0
- package/dist/schemas/Button.js.map +1 -0
- package/dist/schemas/Card.d.ts +21 -0
- package/dist/schemas/Card.d.ts.map +1 -0
- package/dist/schemas/Card.js +22 -0
- package/dist/schemas/Card.js.map +1 -0
- package/dist/schemas/Checkbox.d.ts +18 -0
- package/dist/schemas/Checkbox.d.ts.map +1 -0
- package/dist/schemas/Checkbox.js +19 -0
- package/dist/schemas/Checkbox.js.map +1 -0
- package/dist/schemas/Dialog.d.ts +24 -0
- package/dist/schemas/Dialog.d.ts.map +1 -0
- package/dist/schemas/Dialog.js +20 -0
- package/dist/schemas/Dialog.js.map +1 -0
- package/dist/schemas/DropdownMenu.d.ts +25 -0
- package/dist/schemas/DropdownMenu.d.ts.map +1 -0
- package/dist/schemas/DropdownMenu.js +29 -0
- package/dist/schemas/DropdownMenu.js.map +1 -0
- package/dist/schemas/EmptyState.d.ts +16 -0
- package/dist/schemas/EmptyState.d.ts.map +1 -0
- package/dist/schemas/EmptyState.js +17 -0
- package/dist/schemas/EmptyState.js.map +1 -0
- package/dist/schemas/Input.d.ts +42 -0
- package/dist/schemas/Input.d.ts.map +1 -0
- package/dist/schemas/Input.js +31 -0
- package/dist/schemas/Input.js.map +1 -0
- package/dist/schemas/Label.d.ts +24 -0
- package/dist/schemas/Label.d.ts.map +1 -0
- package/dist/schemas/Label.js +21 -0
- package/dist/schemas/Label.js.map +1 -0
- package/dist/schemas/Link.d.ts +30 -0
- package/dist/schemas/Link.d.ts.map +1 -0
- package/dist/schemas/Link.js +22 -0
- package/dist/schemas/Link.js.map +1 -0
- package/dist/schemas/Pagination.d.ts +19 -0
- package/dist/schemas/Pagination.d.ts.map +1 -0
- package/dist/schemas/Pagination.js +20 -0
- package/dist/schemas/Pagination.js.map +1 -0
- package/dist/schemas/Progress.d.ts +27 -0
- package/dist/schemas/Progress.d.ts.map +1 -0
- package/dist/schemas/Progress.js +20 -0
- package/dist/schemas/Progress.js.map +1 -0
- package/dist/schemas/RadioGroup.d.ts +25 -0
- package/dist/schemas/RadioGroup.d.ts.map +1 -0
- package/dist/schemas/RadioGroup.js +26 -0
- package/dist/schemas/RadioGroup.js.map +1 -0
- package/dist/schemas/SectionHeader.d.ts +160 -0
- package/dist/schemas/SectionHeader.d.ts.map +1 -0
- package/dist/schemas/SectionHeader.js +52 -0
- package/dist/schemas/SectionHeader.js.map +1 -0
- package/dist/schemas/Select.d.ts +38 -0
- package/dist/schemas/Select.d.ts.map +1 -0
- package/dist/schemas/Select.js +36 -0
- package/dist/schemas/Select.js.map +1 -0
- package/dist/schemas/Separator.d.ts +16 -0
- package/dist/schemas/Separator.d.ts.map +1 -0
- package/dist/schemas/Separator.js +14 -0
- package/dist/schemas/Separator.js.map +1 -0
- package/dist/schemas/Sheet.d.ts +28 -0
- package/dist/schemas/Sheet.d.ts.map +1 -0
- package/dist/schemas/Sheet.js +20 -0
- package/dist/schemas/Sheet.js.map +1 -0
- package/dist/schemas/Stack.d.ts +58 -0
- package/dist/schemas/Stack.d.ts.map +1 -0
- package/dist/schemas/Stack.js +80 -0
- package/dist/schemas/Stack.js.map +1 -0
- package/dist/schemas/StatCard.d.ts +30 -0
- package/dist/schemas/StatCard.d.ts.map +1 -0
- package/dist/schemas/StatCard.js +26 -0
- package/dist/schemas/StatCard.js.map +1 -0
- package/dist/schemas/StatusBadge.d.ts +25 -0
- package/dist/schemas/StatusBadge.d.ts.map +1 -0
- package/dist/schemas/StatusBadge.js +20 -0
- package/dist/schemas/StatusBadge.js.map +1 -0
- package/dist/schemas/Switch.d.ts +23 -0
- package/dist/schemas/Switch.d.ts.map +1 -0
- package/dist/schemas/Switch.js +20 -0
- package/dist/schemas/Switch.js.map +1 -0
- package/dist/schemas/Table.d.ts +20 -0
- package/dist/schemas/Table.d.ts.map +1 -0
- package/dist/schemas/Table.js +24 -0
- package/dist/schemas/Table.js.map +1 -0
- package/dist/schemas/Tabs.d.ts +21 -0
- package/dist/schemas/Tabs.d.ts.map +1 -0
- package/dist/schemas/Tabs.js +25 -0
- package/dist/schemas/Tabs.js.map +1 -0
- package/dist/schemas/Tag.d.ts +29 -0
- package/dist/schemas/Tag.d.ts.map +1 -0
- package/dist/schemas/Tag.js +21 -0
- package/dist/schemas/Tag.js.map +1 -0
- package/dist/schemas/Text.d.ts +51 -0
- package/dist/schemas/Text.d.ts.map +1 -0
- package/dist/schemas/Text.js +21 -0
- package/dist/schemas/Text.js.map +1 -0
- package/dist/schemas/Textarea.d.ts +25 -0
- package/dist/schemas/Textarea.d.ts.map +1 -0
- package/dist/schemas/Textarea.js +24 -0
- package/dist/schemas/Textarea.js.map +1 -0
- package/dist/schemas/TitleBar.d.ts +18 -0
- package/dist/schemas/TitleBar.d.ts.map +1 -0
- package/dist/schemas/TitleBar.js +19 -0
- package/dist/schemas/TitleBar.js.map +1 -0
- package/dist/schemas/Toggle.d.ts +28 -0
- package/dist/schemas/Toggle.d.ts.map +1 -0
- package/dist/schemas/Toggle.js +22 -0
- package/dist/schemas/Toggle.js.map +1 -0
- package/dist/schemas/index.d.ts +694 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +160 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/shared.d.ts +4 -0
- package/dist/schemas/shared.d.ts.map +1 -0
- package/dist/schemas/shared.js +23 -0
- package/dist/schemas/shared.js.map +1 -0
- package/dist/tools.d.ts +1293 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +40 -0
- package/dist/tools.js.map +1 -0
- package/package.json +59 -0
package/dist/renderer.js
ADDED
|
@@ -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"}
|