mirror of
https://github.com/temetro/temetro.git
synced 2026-07-26 11:58:14 +00:00
929bec8f31
Stop blocking AI imports/proposals on missing non-critical fields. Records the chat agent drafts now save with safe placeholders, auto-generated file numbers, and a source="ai" marker that surfaces an "Added by AI" badge so a clinician can review/edit them later. Backend: - add `source` (manual|ai) column to patients/appointments/prescriptions (migration 0014) + canonical types, services, validation schemas - relax patient/appointment validation: empty file number allowed, demographic + type/provider/initials fall back to placeholders (initials derived from name) - patients.generateFileNumber() auto-assigns an MRN when one is missing - proposeAppointment accepts a name when no file number resolves; AI commits + /api/ai/import stamp source="ai" Frontend: - `source` on Appointment/Patient/Prescription types; AI commits send source="ai" - reusable <AiBadge> shown on the Patients table/detail and prescriptions list Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Artifact
A container component for displaying generated content like code, documents, or other outputs with built-in actions.
The Artifact component provides a structured container for displaying generated content like code, documents, or other outputs with built-in header actions.
See scripts/artifact.tsx for this example.
Installation
npx ai-elements@latest add artifact
Features
- Structured container with header and content areas
- Built-in header with title and description support
- Flexible action buttons with tooltips
- Customizable styling for all subcomponents
- Support for close buttons and action groups
- Clean, modern design with border and shadow
- Responsive layout that adapts to content
- TypeScript support with proper type definitions
- Composable architecture for maximum flexibility
Examples
With Code Display
See scripts/artifact.tsx for this example.
Props
<Artifact />
| Prop | Type | Default | Description |
|---|---|---|---|
...props |
React.HTMLAttributes<HTMLDivElement> |
- | Any other props are spread to the underlying div element. |
<ArtifactHeader />
| Prop | Type | Default | Description |
|---|---|---|---|
...props |
React.HTMLAttributes<HTMLDivElement> |
- | Any other props are spread to the underlying div element. |
<ArtifactTitle />
| Prop | Type | Default | Description |
|---|---|---|---|
...props |
React.HTMLAttributes<HTMLParagraphElement> |
- | Any other props are spread to the underlying paragraph element. |
<ArtifactDescription />
| Prop | Type | Default | Description |
|---|---|---|---|
...props |
React.HTMLAttributes<HTMLParagraphElement> |
- | Any other props are spread to the underlying paragraph element. |
<ArtifactActions />
| Prop | Type | Default | Description |
|---|---|---|---|
...props |
React.HTMLAttributes<HTMLDivElement> |
- | Any other props are spread to the underlying div element. |
<ArtifactAction />
| Prop | Type | Default | Description |
|---|---|---|---|
tooltip |
string |
- | Tooltip text to display on hover. |
label |
string |
- | Screen reader label for the action button. |
icon |
LucideIcon |
- | Lucide icon component to display in the button. |
...props |
React.ComponentProps<typeof Button> |
- | Any other props are spread to the underlying shadcn/ui Button component. |
<ArtifactClose />
| Prop | Type | Default | Description |
|---|---|---|---|
...props |
React.ComponentProps<typeof Button> |
- | Any other props are spread to the underlying shadcn/ui Button component. |
<ArtifactContent />
| Prop | Type | Default | Description |
|---|---|---|---|
...props |
React.HTMLAttributes<HTMLDivElement> |
- | Any other props are spread to the underlying div element. |