@lukeashford/aurelius 4.5.0 → 4.6.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.
package/dist/index.d.mts CHANGED
@@ -2329,6 +2329,172 @@ interface ArtifactVariantStackProps extends React$1.HTMLAttributes<HTMLDivElemen
2329
2329
  */
2330
2330
  declare const ArtifactVariantStack: React$1.ForwardRefExoticComponent<ArtifactVariantStackProps & React$1.RefAttributes<HTMLDivElement>>;
2331
2331
 
2332
+ /**
2333
+ * Wire format for a presentable deliverable. The document is composed once by
2334
+ * the backend (or hand-authored) and rendered here — the renderer never reads
2335
+ * raw HTML from data, it dispatches on `type` to a typed component per section.
2336
+ *
2337
+ * The shape mirrors hypocaust's `ResolvedDeliverableDto`. When the OpenAPI
2338
+ * client is regenerated downstream of a hypocaust schema change, the types
2339
+ * here should be kept aligned.
2340
+ */
2341
+ /**
2342
+ * Top-level deliverable. Holds metadata used on the cover and an ordered list
2343
+ * of sections to render.
2344
+ */
2345
+ interface Deliverable {
2346
+ /** Schema version. 1 today. */
2347
+ version: number;
2348
+ /** Document title — also used as the default cover title. */
2349
+ title: string;
2350
+ /** Optional one-line subtitle / tagline. */
2351
+ subtitle?: string | null;
2352
+ /** Optional client name shown as "Prepared for {clientName}" on the cover. */
2353
+ clientName?: string | null;
2354
+ /** Optional accent hex color (e.g. "#fecb6b"). Falls back to design-system gold. */
2355
+ accentColor?: string | null;
2356
+ /** Ordered sections. Render in array order. */
2357
+ sections: DeliverableSection[];
2358
+ }
2359
+ /**
2360
+ * Discriminated union of section types. Each variant has a matching renderer
2361
+ * in aurelius — the agent fills the spec, never raw layout instructions.
2362
+ */
2363
+ type DeliverableSection = CoverSection$1 | ArtifactImageGridSection$1 | ArtifactSpotlightSection$1 | TextBlockSection$1 | ColorPaletteSection$1 | QuoteBlockSection$1;
2364
+ interface CoverSection$1 {
2365
+ type: 'COVER';
2366
+ eyebrow?: string | null;
2367
+ title: string;
2368
+ subtitle?: string | null;
2369
+ }
2370
+ interface ArtifactImageGridSection$1 {
2371
+ type: 'ARTIFACT_IMAGE_GRID';
2372
+ heading?: string | null;
2373
+ /** 1, 2 or 3. */
2374
+ columns: number;
2375
+ items: DeliverableImageItem[];
2376
+ }
2377
+ interface ArtifactSpotlightSection$1 {
2378
+ type: 'ARTIFACT_SPOTLIGHT';
2379
+ heading?: string | null;
2380
+ artifact: DeliverableArtifactRef;
2381
+ body?: string | null;
2382
+ }
2383
+ interface TextBlockSection$1 {
2384
+ type: 'TEXT_BLOCK';
2385
+ heading?: string | null;
2386
+ body: string;
2387
+ }
2388
+ interface ColorPaletteSection$1 {
2389
+ type: 'COLOR_PALETTE';
2390
+ heading?: string | null;
2391
+ swatches: DeliverableSwatch[];
2392
+ }
2393
+ interface QuoteBlockSection$1 {
2394
+ type: 'QUOTE_BLOCK';
2395
+ quote: string;
2396
+ attribution?: string | null;
2397
+ }
2398
+ interface DeliverableImageItem {
2399
+ artifact: DeliverableArtifactRef;
2400
+ caption?: string | null;
2401
+ }
2402
+ interface DeliverableSwatch {
2403
+ color: string;
2404
+ label: string;
2405
+ }
2406
+ /**
2407
+ * Minimal subset of the hypocaust ArtifactDto shape consumed by the renderer.
2408
+ * Only the fields needed to render a deliverable's referenced artifacts.
2409
+ */
2410
+ interface DeliverableArtifactRef {
2411
+ url?: string | null;
2412
+ title?: string | null;
2413
+ description?: string | null;
2414
+ }
2415
+
2416
+ interface DeliverableRendererProps {
2417
+ /** Resolved deliverable spec — every artifact reference already inflated. */
2418
+ deliverable: Deliverable;
2419
+ /**
2420
+ * Called when the viewer requests a PDF download. The host application is
2421
+ * responsible for fetching and triggering the file save (the URL knows
2422
+ * about share tokens and credentials we don't). When omitted, the download
2423
+ * affordance is hidden.
2424
+ */
2425
+ onDownloadPdf?: () => void | Promise<void>;
2426
+ /** Hide the floating action bar entirely. Used when rendering for print. */
2427
+ hideActions?: boolean;
2428
+ className?: string;
2429
+ }
2430
+ /**
2431
+ * Render a presentable deliverable (moodboard, pitch deck) from a structured
2432
+ * spec. The same component drives the on-screen view and the print/PDF
2433
+ * version — `@media print` styles in `aurelius/styles/base.css` keep them in
2434
+ * sync. To produce a PDF, drive the page with headless Chromium and let the
2435
+ * print stylesheet do the work.
2436
+ *
2437
+ * The renderer is purely presentational: it takes a fully resolved spec
2438
+ * (artifact URLs already inflated by the caller) and dispatches each section
2439
+ * to its typed sub-renderer. Unknown section types are skipped silently
2440
+ * forward-compat for new section variants added by the backend.
2441
+ */
2442
+ declare function DeliverableRenderer({ deliverable, onDownloadPdf, hideActions, className, }: DeliverableRendererProps): React$1.JSX.Element;
2443
+
2444
+ interface CoverSectionProps {
2445
+ data: CoverSection$1;
2446
+ /** Document-level client name from {@link Deliverable.clientName}, shown as "Prepared for {name}". */
2447
+ clientName?: string | null;
2448
+ }
2449
+ /**
2450
+ * Title page for a deliverable. Always rendered as the first section.
2451
+ */
2452
+ declare function CoverSection({ data, clientName }: CoverSectionProps): React$1.JSX.Element;
2453
+
2454
+ interface ArtifactImageGridSectionProps {
2455
+ data: ArtifactImageGridSection$1;
2456
+ }
2457
+ /**
2458
+ * Grid of project artifact images with optional captions. The number of
2459
+ * columns is fixed by the spec (1–3); the renderer enforces a sensible aspect
2460
+ * ratio per item and lets the browser flow rows.
2461
+ */
2462
+ declare function ArtifactImageGridSection({ data }: ArtifactImageGridSectionProps): React$1.JSX.Element;
2463
+
2464
+ interface ArtifactSpotlightSectionProps {
2465
+ data: ArtifactSpotlightSection$1;
2466
+ }
2467
+ /**
2468
+ * A single hero artifact image with optional prose alongside. Reads at full
2469
+ * page width on screen and prints to a single page.
2470
+ */
2471
+ declare function ArtifactSpotlightSection({ data }: ArtifactSpotlightSectionProps): React$1.JSX.Element;
2472
+
2473
+ interface TextBlockSectionProps {
2474
+ data: TextBlockSection$1;
2475
+ }
2476
+ /**
2477
+ * Prose section. Body is rendered as Markdown.
2478
+ */
2479
+ declare function TextBlockSection({ data }: TextBlockSectionProps): React$1.JSX.Element;
2480
+
2481
+ interface ColorPaletteSectionProps {
2482
+ data: ColorPaletteSection$1;
2483
+ }
2484
+ /**
2485
+ * Color palette presented as labelled swatches with hex values.
2486
+ */
2487
+ declare function ColorPaletteSection({ data }: ColorPaletteSectionProps): React$1.JSX.Element;
2488
+
2489
+ interface QuoteBlockSectionProps {
2490
+ data: QuoteBlockSection$1;
2491
+ }
2492
+ /**
2493
+ * Pulled quote with optional attribution. The renderer adds the surrounding
2494
+ * quotation marks.
2495
+ */
2496
+ declare function QuoteBlockSection({ data }: QuoteBlockSectionProps): React$1.JSX.Element;
2497
+
2332
2498
  /**
2333
2499
  * Aurelius Design System
2334
2500
  *
@@ -2341,4 +2507,4 @@ declare const ArtifactVariantStack: React$1.ForwardRefExoticComponent<ArtifactVa
2341
2507
 
2342
2508
  declare const version = "2.0.0";
2343
2509
 
2344
- export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, type AlertDialogProps, type AlertProps, type AlertVariant, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactGroup, type ArtifactGroupProps, type ArtifactNode, type ArtifactType, ArtifactVariantStack, type ArtifactVariantStackProps, ArtifactsPanel, type ArtifactsPanelProps, ArtifactsPanelToggle, type ArtifactsPanelToggleProps, type AspectRatio, type AspectRatioPreset, type Attachment, type AttachmentItem, AttachmentPreview, type AttachmentPreviewProps, type AttachmentStatus, AudioCard, type AudioCardProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, BranchNavigator, type BranchNavigatorProps, BrandIcon, type BrandIconProps, type BrandIconSize, type BrandIconVariant, Breadcrumb, type BreadcrumbEntry, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, type CardVariant, ChatBubbleIcon, ChatInput, type ChatInputNotice, type ChatInputPosition, type ChatInputProps, ChatInterface, type ChatInterfaceProps, type ChatNode, ChatView, type ChatViewCheckpointItem, type ChatViewDividerItem, type ChatViewItem, type ChatViewMessageItem, type ChatViewProps, CheckSquareIcon, Checkbox, type CheckboxProps, Checkpoint, type CheckpointBranchInfo, type CheckpointExecutionKind, type CheckpointNode, type CheckpointProps, type CheckpointStatus, ChevronLeftIcon, ChevronRightIcon, CloseIcon, Col, type ColOffset, type ColOrder, type ColProps, type ColSpan, ColorSwatch, type ColorSwatchProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, type ConversationTree, CrossSquareIcon, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, EmptySquareIcon, ExpandIcon, type ExternalToolDefinition, FileChip, type FileChipProps, type FileChipStatus, GreyedDivider, type GreyedDividerProps, HelperText, type HelperTextProps, HistoryIcon, HistoryPanel, type HistoryPanelProps, type IconProps, ImageCard, type ImageCardProps, Input, type InputAddonProps, type InputElementProps, InputGroup, type InputGroupProps, InputLeftAddon, InputLeftElement, type InputProps, InputRightAddon, InputRightElement, InputWrapper, type InputWrapperProps, Label, type LabelProps, LayersIcon, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, Message, MessageActions, type MessageActionsConfig, type MessageActionsProps, type MessageActionsVariant, type MessageBranchInfo, type MessageNode, type MessageProps, type MessageVariant, Modal, type ModalProps, NODE_TYPES, Navbar, NavbarBrand, type NavbarBrandProps, NavbarContent, type NavbarContentProps, NavbarDivider, NavbarItem, type NavbarItemProps, NavbarLink, type NavbarLinkProps, type NavbarProps, type NodeTopology, type NodeType, Pagination, type PaginationProps, PdfCard, type PdfCardProps, PlusIcon, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Radio, type RadioProps, Row, type RowAlign, type RowGutter, type RowJustify, type RowProps, SCRIPT_ELEMENT_TYPES, ScriptCard, type ScriptCardProps, type ScriptElement, type ScriptElementType, SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, SquareLoaderIcon, Stack, type StackDirection, type StackGap, type StackProps, type Step, type StepStatus, Stepper, type StepperProps, StreamingCursor, type StreamingCursorProps, Switch, type SwitchProps, TASK_STATUSES, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type Task, type TaskStatus, TextCard, type TextCardProps, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, TodosList, type TodosListProps, type ToolDefinition, type ToolGroup, ToolPanelContainer, type ToolPanelContainerProps, type ToolPanelState, ToolSidebar, type ToolSidebarProps, Tooltip, type TooltipProps, type TreeNode, type UseArtifactTreeNavigationReturn, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addNodeToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, findAncestor, generateId, getActivePath, getGreyedFuture, getSiblingInfo, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, setActiveLeaf, switchBranch, updateMessageContent, useArtifactTreeNavigation, useResizable, useScrollAnchor, useToast, version };
2510
+ export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, type AlertDialogProps, type AlertProps, type AlertVariant, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactGroup, type ArtifactGroupProps, ArtifactImageGridSection, type ArtifactImageGridSectionProps, type ArtifactNode, ArtifactSpotlightSection, type ArtifactSpotlightSectionProps, type ArtifactType, ArtifactVariantStack, type ArtifactVariantStackProps, ArtifactsPanel, type ArtifactsPanelProps, ArtifactsPanelToggle, type ArtifactsPanelToggleProps, type AspectRatio, type AspectRatioPreset, type Attachment, type AttachmentItem, AttachmentPreview, type AttachmentPreviewProps, type AttachmentStatus, AudioCard, type AudioCardProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, BranchNavigator, type BranchNavigatorProps, BrandIcon, type BrandIconProps, type BrandIconSize, type BrandIconVariant, Breadcrumb, type BreadcrumbEntry, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, type CardVariant, ChatBubbleIcon, ChatInput, type ChatInputNotice, type ChatInputPosition, type ChatInputProps, ChatInterface, type ChatInterfaceProps, type ChatNode, ChatView, type ChatViewCheckpointItem, type ChatViewDividerItem, type ChatViewItem, type ChatViewMessageItem, type ChatViewProps, CheckSquareIcon, Checkbox, type CheckboxProps, Checkpoint, type CheckpointBranchInfo, type CheckpointExecutionKind, type CheckpointNode, type CheckpointProps, type CheckpointStatus, ChevronLeftIcon, ChevronRightIcon, CloseIcon, Col, type ColOffset, type ColOrder, type ColProps, type ColSpan, ColorPaletteSection, type ColorPaletteSectionProps, ColorSwatch, type ColorSwatchProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, type ConversationTree, CoverSection, type CoverSectionProps, CrossSquareIcon, type Deliverable, type DeliverableArtifactRef, type DeliverableImageItem, DeliverableRenderer, type DeliverableRendererProps, type DeliverableSection, type DeliverableSwatch, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, EmptySquareIcon, ExpandIcon, type ExternalToolDefinition, FileChip, type FileChipProps, type FileChipStatus, GreyedDivider, type GreyedDividerProps, HelperText, type HelperTextProps, HistoryIcon, HistoryPanel, type HistoryPanelProps, type IconProps, ImageCard, type ImageCardProps, Input, type InputAddonProps, type InputElementProps, InputGroup, type InputGroupProps, InputLeftAddon, InputLeftElement, type InputProps, InputRightAddon, InputRightElement, InputWrapper, type InputWrapperProps, Label, type LabelProps, LayersIcon, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, Message, MessageActions, type MessageActionsConfig, type MessageActionsProps, type MessageActionsVariant, type MessageBranchInfo, type MessageNode, type MessageProps, type MessageVariant, Modal, type ModalProps, NODE_TYPES, Navbar, NavbarBrand, type NavbarBrandProps, NavbarContent, type NavbarContentProps, NavbarDivider, NavbarItem, type NavbarItemProps, NavbarLink, type NavbarLinkProps, type NavbarProps, type NodeTopology, type NodeType, Pagination, type PaginationProps, PdfCard, type PdfCardProps, PlusIcon, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, QuoteBlockSection, type QuoteBlockSectionProps, Radio, type RadioProps, Row, type RowAlign, type RowGutter, type RowJustify, type RowProps, SCRIPT_ELEMENT_TYPES, ScriptCard, type ScriptCardProps, type ScriptElement, type ScriptElementType, SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, SquareLoaderIcon, Stack, type StackDirection, type StackGap, type StackProps, type Step, type StepStatus, Stepper, type StepperProps, StreamingCursor, type StreamingCursorProps, Switch, type SwitchProps, TASK_STATUSES, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type Task, type TaskStatus, TextBlockSection, type TextBlockSectionProps, TextCard, type TextCardProps, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, TodosList, type TodosListProps, type ToolDefinition, type ToolGroup, ToolPanelContainer, type ToolPanelContainerProps, type ToolPanelState, ToolSidebar, type ToolSidebarProps, Tooltip, type TooltipProps, type TreeNode, type UseArtifactTreeNavigationReturn, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addNodeToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, findAncestor, generateId, getActivePath, getGreyedFuture, getSiblingInfo, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, setActiveLeaf, switchBranch, updateMessageContent, useArtifactTreeNavigation, useResizable, useScrollAnchor, useToast, version };
package/dist/index.d.ts CHANGED
@@ -2329,6 +2329,172 @@ interface ArtifactVariantStackProps extends React$1.HTMLAttributes<HTMLDivElemen
2329
2329
  */
2330
2330
  declare const ArtifactVariantStack: React$1.ForwardRefExoticComponent<ArtifactVariantStackProps & React$1.RefAttributes<HTMLDivElement>>;
2331
2331
 
2332
+ /**
2333
+ * Wire format for a presentable deliverable. The document is composed once by
2334
+ * the backend (or hand-authored) and rendered here — the renderer never reads
2335
+ * raw HTML from data, it dispatches on `type` to a typed component per section.
2336
+ *
2337
+ * The shape mirrors hypocaust's `ResolvedDeliverableDto`. When the OpenAPI
2338
+ * client is regenerated downstream of a hypocaust schema change, the types
2339
+ * here should be kept aligned.
2340
+ */
2341
+ /**
2342
+ * Top-level deliverable. Holds metadata used on the cover and an ordered list
2343
+ * of sections to render.
2344
+ */
2345
+ interface Deliverable {
2346
+ /** Schema version. 1 today. */
2347
+ version: number;
2348
+ /** Document title — also used as the default cover title. */
2349
+ title: string;
2350
+ /** Optional one-line subtitle / tagline. */
2351
+ subtitle?: string | null;
2352
+ /** Optional client name shown as "Prepared for {clientName}" on the cover. */
2353
+ clientName?: string | null;
2354
+ /** Optional accent hex color (e.g. "#fecb6b"). Falls back to design-system gold. */
2355
+ accentColor?: string | null;
2356
+ /** Ordered sections. Render in array order. */
2357
+ sections: DeliverableSection[];
2358
+ }
2359
+ /**
2360
+ * Discriminated union of section types. Each variant has a matching renderer
2361
+ * in aurelius — the agent fills the spec, never raw layout instructions.
2362
+ */
2363
+ type DeliverableSection = CoverSection$1 | ArtifactImageGridSection$1 | ArtifactSpotlightSection$1 | TextBlockSection$1 | ColorPaletteSection$1 | QuoteBlockSection$1;
2364
+ interface CoverSection$1 {
2365
+ type: 'COVER';
2366
+ eyebrow?: string | null;
2367
+ title: string;
2368
+ subtitle?: string | null;
2369
+ }
2370
+ interface ArtifactImageGridSection$1 {
2371
+ type: 'ARTIFACT_IMAGE_GRID';
2372
+ heading?: string | null;
2373
+ /** 1, 2 or 3. */
2374
+ columns: number;
2375
+ items: DeliverableImageItem[];
2376
+ }
2377
+ interface ArtifactSpotlightSection$1 {
2378
+ type: 'ARTIFACT_SPOTLIGHT';
2379
+ heading?: string | null;
2380
+ artifact: DeliverableArtifactRef;
2381
+ body?: string | null;
2382
+ }
2383
+ interface TextBlockSection$1 {
2384
+ type: 'TEXT_BLOCK';
2385
+ heading?: string | null;
2386
+ body: string;
2387
+ }
2388
+ interface ColorPaletteSection$1 {
2389
+ type: 'COLOR_PALETTE';
2390
+ heading?: string | null;
2391
+ swatches: DeliverableSwatch[];
2392
+ }
2393
+ interface QuoteBlockSection$1 {
2394
+ type: 'QUOTE_BLOCK';
2395
+ quote: string;
2396
+ attribution?: string | null;
2397
+ }
2398
+ interface DeliverableImageItem {
2399
+ artifact: DeliverableArtifactRef;
2400
+ caption?: string | null;
2401
+ }
2402
+ interface DeliverableSwatch {
2403
+ color: string;
2404
+ label: string;
2405
+ }
2406
+ /**
2407
+ * Minimal subset of the hypocaust ArtifactDto shape consumed by the renderer.
2408
+ * Only the fields needed to render a deliverable's referenced artifacts.
2409
+ */
2410
+ interface DeliverableArtifactRef {
2411
+ url?: string | null;
2412
+ title?: string | null;
2413
+ description?: string | null;
2414
+ }
2415
+
2416
+ interface DeliverableRendererProps {
2417
+ /** Resolved deliverable spec — every artifact reference already inflated. */
2418
+ deliverable: Deliverable;
2419
+ /**
2420
+ * Called when the viewer requests a PDF download. The host application is
2421
+ * responsible for fetching and triggering the file save (the URL knows
2422
+ * about share tokens and credentials we don't). When omitted, the download
2423
+ * affordance is hidden.
2424
+ */
2425
+ onDownloadPdf?: () => void | Promise<void>;
2426
+ /** Hide the floating action bar entirely. Used when rendering for print. */
2427
+ hideActions?: boolean;
2428
+ className?: string;
2429
+ }
2430
+ /**
2431
+ * Render a presentable deliverable (moodboard, pitch deck) from a structured
2432
+ * spec. The same component drives the on-screen view and the print/PDF
2433
+ * version — `@media print` styles in `aurelius/styles/base.css` keep them in
2434
+ * sync. To produce a PDF, drive the page with headless Chromium and let the
2435
+ * print stylesheet do the work.
2436
+ *
2437
+ * The renderer is purely presentational: it takes a fully resolved spec
2438
+ * (artifact URLs already inflated by the caller) and dispatches each section
2439
+ * to its typed sub-renderer. Unknown section types are skipped silently
2440
+ * forward-compat for new section variants added by the backend.
2441
+ */
2442
+ declare function DeliverableRenderer({ deliverable, onDownloadPdf, hideActions, className, }: DeliverableRendererProps): React$1.JSX.Element;
2443
+
2444
+ interface CoverSectionProps {
2445
+ data: CoverSection$1;
2446
+ /** Document-level client name from {@link Deliverable.clientName}, shown as "Prepared for {name}". */
2447
+ clientName?: string | null;
2448
+ }
2449
+ /**
2450
+ * Title page for a deliverable. Always rendered as the first section.
2451
+ */
2452
+ declare function CoverSection({ data, clientName }: CoverSectionProps): React$1.JSX.Element;
2453
+
2454
+ interface ArtifactImageGridSectionProps {
2455
+ data: ArtifactImageGridSection$1;
2456
+ }
2457
+ /**
2458
+ * Grid of project artifact images with optional captions. The number of
2459
+ * columns is fixed by the spec (1–3); the renderer enforces a sensible aspect
2460
+ * ratio per item and lets the browser flow rows.
2461
+ */
2462
+ declare function ArtifactImageGridSection({ data }: ArtifactImageGridSectionProps): React$1.JSX.Element;
2463
+
2464
+ interface ArtifactSpotlightSectionProps {
2465
+ data: ArtifactSpotlightSection$1;
2466
+ }
2467
+ /**
2468
+ * A single hero artifact image with optional prose alongside. Reads at full
2469
+ * page width on screen and prints to a single page.
2470
+ */
2471
+ declare function ArtifactSpotlightSection({ data }: ArtifactSpotlightSectionProps): React$1.JSX.Element;
2472
+
2473
+ interface TextBlockSectionProps {
2474
+ data: TextBlockSection$1;
2475
+ }
2476
+ /**
2477
+ * Prose section. Body is rendered as Markdown.
2478
+ */
2479
+ declare function TextBlockSection({ data }: TextBlockSectionProps): React$1.JSX.Element;
2480
+
2481
+ interface ColorPaletteSectionProps {
2482
+ data: ColorPaletteSection$1;
2483
+ }
2484
+ /**
2485
+ * Color palette presented as labelled swatches with hex values.
2486
+ */
2487
+ declare function ColorPaletteSection({ data }: ColorPaletteSectionProps): React$1.JSX.Element;
2488
+
2489
+ interface QuoteBlockSectionProps {
2490
+ data: QuoteBlockSection$1;
2491
+ }
2492
+ /**
2493
+ * Pulled quote with optional attribution. The renderer adds the surrounding
2494
+ * quotation marks.
2495
+ */
2496
+ declare function QuoteBlockSection({ data }: QuoteBlockSectionProps): React$1.JSX.Element;
2497
+
2332
2498
  /**
2333
2499
  * Aurelius Design System
2334
2500
  *
@@ -2341,4 +2507,4 @@ declare const ArtifactVariantStack: React$1.ForwardRefExoticComponent<ArtifactVa
2341
2507
 
2342
2508
  declare const version = "2.0.0";
2343
2509
 
2344
- export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, type AlertDialogProps, type AlertProps, type AlertVariant, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactGroup, type ArtifactGroupProps, type ArtifactNode, type ArtifactType, ArtifactVariantStack, type ArtifactVariantStackProps, ArtifactsPanel, type ArtifactsPanelProps, ArtifactsPanelToggle, type ArtifactsPanelToggleProps, type AspectRatio, type AspectRatioPreset, type Attachment, type AttachmentItem, AttachmentPreview, type AttachmentPreviewProps, type AttachmentStatus, AudioCard, type AudioCardProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, BranchNavigator, type BranchNavigatorProps, BrandIcon, type BrandIconProps, type BrandIconSize, type BrandIconVariant, Breadcrumb, type BreadcrumbEntry, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, type CardVariant, ChatBubbleIcon, ChatInput, type ChatInputNotice, type ChatInputPosition, type ChatInputProps, ChatInterface, type ChatInterfaceProps, type ChatNode, ChatView, type ChatViewCheckpointItem, type ChatViewDividerItem, type ChatViewItem, type ChatViewMessageItem, type ChatViewProps, CheckSquareIcon, Checkbox, type CheckboxProps, Checkpoint, type CheckpointBranchInfo, type CheckpointExecutionKind, type CheckpointNode, type CheckpointProps, type CheckpointStatus, ChevronLeftIcon, ChevronRightIcon, CloseIcon, Col, type ColOffset, type ColOrder, type ColProps, type ColSpan, ColorSwatch, type ColorSwatchProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, type ConversationTree, CrossSquareIcon, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, EmptySquareIcon, ExpandIcon, type ExternalToolDefinition, FileChip, type FileChipProps, type FileChipStatus, GreyedDivider, type GreyedDividerProps, HelperText, type HelperTextProps, HistoryIcon, HistoryPanel, type HistoryPanelProps, type IconProps, ImageCard, type ImageCardProps, Input, type InputAddonProps, type InputElementProps, InputGroup, type InputGroupProps, InputLeftAddon, InputLeftElement, type InputProps, InputRightAddon, InputRightElement, InputWrapper, type InputWrapperProps, Label, type LabelProps, LayersIcon, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, Message, MessageActions, type MessageActionsConfig, type MessageActionsProps, type MessageActionsVariant, type MessageBranchInfo, type MessageNode, type MessageProps, type MessageVariant, Modal, type ModalProps, NODE_TYPES, Navbar, NavbarBrand, type NavbarBrandProps, NavbarContent, type NavbarContentProps, NavbarDivider, NavbarItem, type NavbarItemProps, NavbarLink, type NavbarLinkProps, type NavbarProps, type NodeTopology, type NodeType, Pagination, type PaginationProps, PdfCard, type PdfCardProps, PlusIcon, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Radio, type RadioProps, Row, type RowAlign, type RowGutter, type RowJustify, type RowProps, SCRIPT_ELEMENT_TYPES, ScriptCard, type ScriptCardProps, type ScriptElement, type ScriptElementType, SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, SquareLoaderIcon, Stack, type StackDirection, type StackGap, type StackProps, type Step, type StepStatus, Stepper, type StepperProps, StreamingCursor, type StreamingCursorProps, Switch, type SwitchProps, TASK_STATUSES, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type Task, type TaskStatus, TextCard, type TextCardProps, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, TodosList, type TodosListProps, type ToolDefinition, type ToolGroup, ToolPanelContainer, type ToolPanelContainerProps, type ToolPanelState, ToolSidebar, type ToolSidebarProps, Tooltip, type TooltipProps, type TreeNode, type UseArtifactTreeNavigationReturn, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addNodeToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, findAncestor, generateId, getActivePath, getGreyedFuture, getSiblingInfo, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, setActiveLeaf, switchBranch, updateMessageContent, useArtifactTreeNavigation, useResizable, useScrollAnchor, useToast, version };
2510
+ export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, type AlertDialogProps, type AlertProps, type AlertVariant, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactGroup, type ArtifactGroupProps, ArtifactImageGridSection, type ArtifactImageGridSectionProps, type ArtifactNode, ArtifactSpotlightSection, type ArtifactSpotlightSectionProps, type ArtifactType, ArtifactVariantStack, type ArtifactVariantStackProps, ArtifactsPanel, type ArtifactsPanelProps, ArtifactsPanelToggle, type ArtifactsPanelToggleProps, type AspectRatio, type AspectRatioPreset, type Attachment, type AttachmentItem, AttachmentPreview, type AttachmentPreviewProps, type AttachmentStatus, AudioCard, type AudioCardProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, BranchNavigator, type BranchNavigatorProps, BrandIcon, type BrandIconProps, type BrandIconSize, type BrandIconVariant, Breadcrumb, type BreadcrumbEntry, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, type CardVariant, ChatBubbleIcon, ChatInput, type ChatInputNotice, type ChatInputPosition, type ChatInputProps, ChatInterface, type ChatInterfaceProps, type ChatNode, ChatView, type ChatViewCheckpointItem, type ChatViewDividerItem, type ChatViewItem, type ChatViewMessageItem, type ChatViewProps, CheckSquareIcon, Checkbox, type CheckboxProps, Checkpoint, type CheckpointBranchInfo, type CheckpointExecutionKind, type CheckpointNode, type CheckpointProps, type CheckpointStatus, ChevronLeftIcon, ChevronRightIcon, CloseIcon, Col, type ColOffset, type ColOrder, type ColProps, type ColSpan, ColorPaletteSection, type ColorPaletteSectionProps, ColorSwatch, type ColorSwatchProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, type ConversationTree, CoverSection, type CoverSectionProps, CrossSquareIcon, type Deliverable, type DeliverableArtifactRef, type DeliverableImageItem, DeliverableRenderer, type DeliverableRendererProps, type DeliverableSection, type DeliverableSwatch, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, EmptySquareIcon, ExpandIcon, type ExternalToolDefinition, FileChip, type FileChipProps, type FileChipStatus, GreyedDivider, type GreyedDividerProps, HelperText, type HelperTextProps, HistoryIcon, HistoryPanel, type HistoryPanelProps, type IconProps, ImageCard, type ImageCardProps, Input, type InputAddonProps, type InputElementProps, InputGroup, type InputGroupProps, InputLeftAddon, InputLeftElement, type InputProps, InputRightAddon, InputRightElement, InputWrapper, type InputWrapperProps, Label, type LabelProps, LayersIcon, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, Message, MessageActions, type MessageActionsConfig, type MessageActionsProps, type MessageActionsVariant, type MessageBranchInfo, type MessageNode, type MessageProps, type MessageVariant, Modal, type ModalProps, NODE_TYPES, Navbar, NavbarBrand, type NavbarBrandProps, NavbarContent, type NavbarContentProps, NavbarDivider, NavbarItem, type NavbarItemProps, NavbarLink, type NavbarLinkProps, type NavbarProps, type NodeTopology, type NodeType, Pagination, type PaginationProps, PdfCard, type PdfCardProps, PlusIcon, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, QuoteBlockSection, type QuoteBlockSectionProps, Radio, type RadioProps, Row, type RowAlign, type RowGutter, type RowJustify, type RowProps, SCRIPT_ELEMENT_TYPES, ScriptCard, type ScriptCardProps, type ScriptElement, type ScriptElementType, SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, SquareLoaderIcon, Stack, type StackDirection, type StackGap, type StackProps, type Step, type StepStatus, Stepper, type StepperProps, StreamingCursor, type StreamingCursorProps, Switch, type SwitchProps, TASK_STATUSES, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type Task, type TaskStatus, TextBlockSection, type TextBlockSectionProps, TextCard, type TextCardProps, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, TodosList, type TodosListProps, type ToolDefinition, type ToolGroup, ToolPanelContainer, type ToolPanelContainerProps, type ToolPanelState, ToolSidebar, type ToolSidebarProps, Tooltip, type TooltipProps, type TreeNode, type UseArtifactTreeNavigationReturn, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addNodeToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, findAncestor, generateId, getActivePath, getGreyedFuture, getSiblingInfo, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, setActiveLeaf, switchBranch, updateMessageContent, useArtifactTreeNavigation, useResizable, useScrollAnchor, useToast, version };
package/dist/index.js CHANGED
@@ -39,6 +39,8 @@ __export(index_exports, {
39
39
  AlertDialog: () => AlertDialog,
40
40
  ArtifactCard: () => ArtifactCard,
41
41
  ArtifactGroup: () => ArtifactGroup,
42
+ ArtifactImageGridSection: () => ArtifactImageGridSection,
43
+ ArtifactSpotlightSection: () => ArtifactSpotlightSection,
42
44
  ArtifactVariantStack: () => ArtifactVariantStack,
43
45
  ArtifactsPanel: () => ArtifactsPanel,
44
46
  ArtifactsPanelToggle: () => ArtifactsPanelToggle,
@@ -64,10 +66,13 @@ __export(index_exports, {
64
66
  ChevronRightIcon: () => ChevronRightIcon,
65
67
  CloseIcon: () => CloseIcon,
66
68
  Col: () => Col,
69
+ ColorPaletteSection: () => ColorPaletteSection,
67
70
  ColorSwatch: () => ColorSwatch,
68
71
  ConfirmDialog: () => ConfirmDialog,
69
72
  Container: () => Container,
73
+ CoverSection: () => CoverSection,
70
74
  CrossSquareIcon: () => CrossSquareIcon,
75
+ DeliverableRenderer: () => DeliverableRenderer,
71
76
  Divider: () => Divider,
72
77
  Drawer: () => Drawer,
73
78
  EmptySquareIcon: () => EmptySquareIcon,
@@ -115,6 +120,7 @@ __export(index_exports, {
115
120
  Popover: () => Popover,
116
121
  Progress: () => Progress,
117
122
  PromptDialog: () => PromptDialog,
123
+ QuoteBlockSection: () => QuoteBlockSection,
118
124
  Radio: () => Radio,
119
125
  Row: () => Row,
120
126
  SCRIPT_ELEMENT_TYPES: () => SCRIPT_ELEMENT_TYPES,
@@ -142,6 +148,7 @@ __export(index_exports, {
142
148
  TableHeader: () => TableHeader,
143
149
  TableRow: () => TableRow,
144
150
  Tabs: () => Tabs,
151
+ TextBlockSection: () => TextBlockSection,
145
152
  TextCard: () => TextCard,
146
153
  Textarea: () => Textarea,
147
154
  ThinkingIndicator: () => ThinkingIndicator,
@@ -7714,6 +7721,155 @@ var NODE_TYPES = {
7714
7721
  VARIANT_SET: "VARIANT_SET"
7715
7722
  };
7716
7723
 
7724
+ // src/components/deliverable/DeliverableRenderer.tsx
7725
+ var import_react93 = __toESM(require("react"));
7726
+
7727
+ // src/components/deliverable/CoverSection.tsx
7728
+ var import_react87 = __toESM(require("react"));
7729
+ function CoverSection({ data, clientName }) {
7730
+ return /* @__PURE__ */ import_react87.default.createElement("section", { className: "deliverable-cover deliverable-page" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "deliverable-cover-inner" }, data.eyebrow && /* @__PURE__ */ import_react87.default.createElement("p", { className: "deliverable-cover-eyebrow" }, data.eyebrow), /* @__PURE__ */ import_react87.default.createElement("h1", { className: "deliverable-cover-title" }, data.title), data.subtitle && /* @__PURE__ */ import_react87.default.createElement("p", { className: "deliverable-cover-subtitle" }, data.subtitle), clientName && /* @__PURE__ */ import_react87.default.createElement("p", { className: "deliverable-cover-client" }, "Prepared for", " ", /* @__PURE__ */ import_react87.default.createElement("span", { className: "deliverable-cover-client-name" }, clientName))));
7731
+ }
7732
+
7733
+ // src/components/deliverable/ArtifactImageGridSection.tsx
7734
+ var import_react88 = __toESM(require("react"));
7735
+ var COLUMN_CLASSES = {
7736
+ 1: "deliverable-image-grid-cols-1",
7737
+ 2: "deliverable-image-grid-cols-2",
7738
+ 3: "deliverable-image-grid-cols-3"
7739
+ };
7740
+ function ArtifactImageGridSection({ data }) {
7741
+ const columns = clampColumns(data.columns);
7742
+ return /* @__PURE__ */ import_react88.default.createElement("section", { className: "deliverable-page" }, data.heading && /* @__PURE__ */ import_react88.default.createElement("h2", { className: "deliverable-heading" }, data.heading), /* @__PURE__ */ import_react88.default.createElement("div", { className: cx("deliverable-image-grid", COLUMN_CLASSES[columns]) }, data.items.map((item, idx) => /* @__PURE__ */ import_react88.default.createElement("figure", { key: idx, className: "deliverable-image-item" }, item.artifact.url ? /* @__PURE__ */ import_react88.default.createElement(
7743
+ "img",
7744
+ {
7745
+ src: item.artifact.url,
7746
+ alt: item.artifact.title ?? "",
7747
+ className: "deliverable-image-img"
7748
+ }
7749
+ ) : /* @__PURE__ */ import_react88.default.createElement("div", { className: "deliverable-image-missing" }, "Missing image"), item.caption && /* @__PURE__ */ import_react88.default.createElement("figcaption", { className: "deliverable-image-caption" }, item.caption)))));
7750
+ }
7751
+ function clampColumns(n) {
7752
+ if (n <= 1) return 1;
7753
+ if (n === 2) return 2;
7754
+ return 3;
7755
+ }
7756
+
7757
+ // src/components/deliverable/ArtifactSpotlightSection.tsx
7758
+ var import_react89 = __toESM(require("react"));
7759
+ function ArtifactSpotlightSection({ data }) {
7760
+ return /* @__PURE__ */ import_react89.default.createElement("section", { className: "deliverable-page" }, data.heading && /* @__PURE__ */ import_react89.default.createElement("h2", { className: "deliverable-heading" }, data.heading), /* @__PURE__ */ import_react89.default.createElement("div", { className: "deliverable-spotlight-media" }, data.artifact.url ? /* @__PURE__ */ import_react89.default.createElement(
7761
+ "img",
7762
+ {
7763
+ src: data.artifact.url,
7764
+ alt: data.artifact.title ?? "",
7765
+ className: "deliverable-spotlight-img"
7766
+ }
7767
+ ) : /* @__PURE__ */ import_react89.default.createElement("div", { className: "deliverable-spotlight-missing" }, "Missing image")), data.body && /* @__PURE__ */ import_react89.default.createElement(
7768
+ MarkdownContent,
7769
+ {
7770
+ content: data.body,
7771
+ className: "deliverable-spotlight-body"
7772
+ }
7773
+ ));
7774
+ }
7775
+
7776
+ // src/components/deliverable/TextBlockSection.tsx
7777
+ var import_react90 = __toESM(require("react"));
7778
+ function TextBlockSection({ data }) {
7779
+ return /* @__PURE__ */ import_react90.default.createElement("section", { className: "deliverable-page" }, data.heading && /* @__PURE__ */ import_react90.default.createElement("h2", { className: "deliverable-heading" }, data.heading), /* @__PURE__ */ import_react90.default.createElement(
7780
+ MarkdownContent,
7781
+ {
7782
+ content: data.body,
7783
+ className: "deliverable-text-block"
7784
+ }
7785
+ ));
7786
+ }
7787
+
7788
+ // src/components/deliverable/ColorPaletteSection.tsx
7789
+ var import_react91 = __toESM(require("react"));
7790
+ function ColorPaletteSection({ data }) {
7791
+ return /* @__PURE__ */ import_react91.default.createElement("section", { className: "deliverable-page" }, data.heading && /* @__PURE__ */ import_react91.default.createElement("h2", { className: "deliverable-heading" }, data.heading), /* @__PURE__ */ import_react91.default.createElement("div", { className: "deliverable-palette" }, data.swatches.map((swatch, idx) => /* @__PURE__ */ import_react91.default.createElement("div", { key: idx, className: "deliverable-palette-item" }, /* @__PURE__ */ import_react91.default.createElement(
7792
+ "div",
7793
+ {
7794
+ className: "deliverable-palette-chip",
7795
+ style: { backgroundColor: swatch.color },
7796
+ "aria-label": swatch.label
7797
+ }
7798
+ ), /* @__PURE__ */ import_react91.default.createElement("p", { className: "deliverable-palette-label" }, swatch.label), /* @__PURE__ */ import_react91.default.createElement("p", { className: "deliverable-palette-hex" }, swatch.color.toUpperCase())))));
7799
+ }
7800
+
7801
+ // src/components/deliverable/QuoteBlockSection.tsx
7802
+ var import_react92 = __toESM(require("react"));
7803
+ function QuoteBlockSection({ data }) {
7804
+ return /* @__PURE__ */ import_react92.default.createElement("section", { className: "deliverable-page deliverable-quote" }, /* @__PURE__ */ import_react92.default.createElement("blockquote", { className: "deliverable-quote-body" }, /* @__PURE__ */ import_react92.default.createElement("p", { className: "deliverable-quote-text" }, "\u201C", data.quote, "\u201D"), data.attribution && /* @__PURE__ */ import_react92.default.createElement("footer", { className: "deliverable-quote-attribution" }, "\u2014 ", data.attribution)));
7805
+ }
7806
+
7807
+ // src/components/deliverable/DeliverableRenderer.tsx
7808
+ function DeliverableRenderer({
7809
+ deliverable,
7810
+ onDownloadPdf,
7811
+ hideActions = false,
7812
+ className
7813
+ }) {
7814
+ const [isDownloading, setIsDownloading] = (0, import_react93.useState)(false);
7815
+ const accent = deliverable.accentColor?.trim();
7816
+ const style = accent ? { "--deliverable-accent": accent } : void 0;
7817
+ const handleDownload = async () => {
7818
+ if (!onDownloadPdf || isDownloading) return;
7819
+ setIsDownloading(true);
7820
+ try {
7821
+ await onDownloadPdf();
7822
+ } finally {
7823
+ setIsDownloading(false);
7824
+ }
7825
+ };
7826
+ return /* @__PURE__ */ import_react93.default.createElement(
7827
+ "div",
7828
+ {
7829
+ className: cx("deliverable", className),
7830
+ style
7831
+ },
7832
+ deliverable.sections.map((section, idx) => renderSection(section, idx, deliverable)),
7833
+ !hideActions && onDownloadPdf && /* @__PURE__ */ import_react93.default.createElement("div", { className: "deliverable-actions" }, /* @__PURE__ */ import_react93.default.createElement(
7834
+ Button,
7835
+ {
7836
+ variant: "important",
7837
+ size: "md",
7838
+ onClick: handleDownload,
7839
+ loading: isDownloading,
7840
+ className: "deliverable-action-button"
7841
+ },
7842
+ "Download PDF"
7843
+ ))
7844
+ );
7845
+ }
7846
+ function renderSection(section, idx, doc) {
7847
+ const key = `${section.type}-${idx}`;
7848
+ switch (section.type) {
7849
+ case "COVER":
7850
+ return /* @__PURE__ */ import_react93.default.createElement(
7851
+ CoverSection,
7852
+ {
7853
+ key,
7854
+ data: section,
7855
+ clientName: doc.clientName
7856
+ }
7857
+ );
7858
+ case "ARTIFACT_IMAGE_GRID":
7859
+ return /* @__PURE__ */ import_react93.default.createElement(ArtifactImageGridSection, { key, data: section });
7860
+ case "ARTIFACT_SPOTLIGHT":
7861
+ return /* @__PURE__ */ import_react93.default.createElement(ArtifactSpotlightSection, { key, data: section });
7862
+ case "TEXT_BLOCK":
7863
+ return /* @__PURE__ */ import_react93.default.createElement(TextBlockSection, { key, data: section });
7864
+ case "COLOR_PALETTE":
7865
+ return /* @__PURE__ */ import_react93.default.createElement(ColorPaletteSection, { key, data: section });
7866
+ case "QUOTE_BLOCK":
7867
+ return /* @__PURE__ */ import_react93.default.createElement(QuoteBlockSection, { key, data: section });
7868
+ default:
7869
+ return null;
7870
+ }
7871
+ }
7872
+
7717
7873
  // src/index.ts
7718
7874
  var version = "2.0.0";
7719
7875
  // Annotate the CommonJS export names for ESM import in node:
@@ -7727,6 +7883,8 @@ var version = "2.0.0";
7727
7883
  AlertDialog,
7728
7884
  ArtifactCard,
7729
7885
  ArtifactGroup,
7886
+ ArtifactImageGridSection,
7887
+ ArtifactSpotlightSection,
7730
7888
  ArtifactVariantStack,
7731
7889
  ArtifactsPanel,
7732
7890
  ArtifactsPanelToggle,
@@ -7752,10 +7910,13 @@ var version = "2.0.0";
7752
7910
  ChevronRightIcon,
7753
7911
  CloseIcon,
7754
7912
  Col,
7913
+ ColorPaletteSection,
7755
7914
  ColorSwatch,
7756
7915
  ConfirmDialog,
7757
7916
  Container,
7917
+ CoverSection,
7758
7918
  CrossSquareIcon,
7919
+ DeliverableRenderer,
7759
7920
  Divider,
7760
7921
  Drawer,
7761
7922
  EmptySquareIcon,
@@ -7803,6 +7964,7 @@ var version = "2.0.0";
7803
7964
  Popover,
7804
7965
  Progress,
7805
7966
  PromptDialog,
7967
+ QuoteBlockSection,
7806
7968
  Radio,
7807
7969
  Row,
7808
7970
  SCRIPT_ELEMENT_TYPES,
@@ -7830,6 +7992,7 @@ var version = "2.0.0";
7830
7992
  TableHeader,
7831
7993
  TableRow,
7832
7994
  Tabs,
7995
+ TextBlockSection,
7833
7996
  TextCard,
7834
7997
  Textarea,
7835
7998
  ThinkingIndicator,