@lukeashford/aurelius 4.7.0 → 4.9.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.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import React$1, { ReactNode } from 'react';
2
- import { Config } from 'dompurify';
3
2
  import ReactPlayer from 'react-player';
4
3
 
5
4
  type ButtonVariant = 'primary' | 'important' | 'elevated' | 'outlined' | 'featured' | 'ghost' | 'danger';
@@ -40,6 +39,21 @@ interface CardHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, '
40
39
  title?: React$1.ReactNode;
41
40
  subtitle?: React$1.ReactNode;
42
41
  action?: React$1.ReactNode;
42
+ /**
43
+ * Optional addressable handle (the artifact's `name` / `@-handle`). Renders
44
+ * as a tertiary monospace line below the subtitle, prefixed with `@`. Click
45
+ * copies `@<handle>` to the clipboard and pulses the handle once. Use to
46
+ * surface the typed identifier filmmakers reference in chat.
47
+ */
48
+ handle?: string;
49
+ }
50
+ /**
51
+ * Click-to-copy `@-handle` line. Rendered automatically by `Card.Header` when
52
+ * its `handle` prop is set; exposed standalone as `Card.Handle` for custom
53
+ * card layouts that don't use `Card.Header` (e.g. `DeliverableCard`).
54
+ */
55
+ interface CardHandleProps {
56
+ handle: string;
43
57
  }
44
58
  interface CardBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
45
59
  }
@@ -55,6 +69,7 @@ declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAtt
55
69
  Body: React$1.ForwardRefExoticComponent<CardBodyProps & React$1.RefAttributes<HTMLDivElement>>;
56
70
  Footer: React$1.ForwardRefExoticComponent<CardFooterProps & React$1.RefAttributes<HTMLDivElement>>;
57
71
  Media: React$1.ForwardRefExoticComponent<CardMediaProps & React$1.RefAttributes<HTMLDivElement>>;
72
+ Handle: React$1.FC<CardHandleProps>;
58
73
  };
59
74
 
60
75
  type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'fluid' | 'responsive';
@@ -243,6 +258,122 @@ interface FileChipProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'ch
243
258
  }
244
259
  declare const FileChip: React$1.ForwardRefExoticComponent<FileChipProps & React$1.RefAttributes<HTMLDivElement>>;
245
260
 
261
+ interface MentionChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, 'children' | 'onClick'> {
262
+ /**
263
+ * The artifact name (the @-handle, without the leading @).
264
+ */
265
+ name: string;
266
+ /**
267
+ * Optional human-readable title; shown in the hover tooltip alongside the name.
268
+ */
269
+ title?: string;
270
+ /**
271
+ * Optional icon rendered before the name — typically a kind glyph (e.g. `FileImage`,
272
+ * `FileVideo`) or `HelpCircle` for unknown / stale references. Sized at `w-3 h-3` to
273
+ * match the chip's text scale.
274
+ */
275
+ leadingIcon?: React$1.ReactNode;
276
+ /**
277
+ * Called when the chip is clicked. When provided, the chip becomes keyboard-focusable
278
+ * and gains a hover affordance.
279
+ */
280
+ onClick?: () => void;
281
+ /**
282
+ * Called when the remove (×) button is clicked. When provided, an × appears on hover/focus.
283
+ * Use only on input-side previews; rendered messages should leave this unset.
284
+ */
285
+ onRemove?: () => void;
286
+ }
287
+ /**
288
+ * Inline chip representing an `@name` artifact mention. Use anywhere a stable reference to a
289
+ * project artifact appears — typed input previews, rendered chat messages, deliverable
290
+ * descriptions. Renders the name in monospace with a leading `@` glyph and a gold-tinted border,
291
+ * mirroring the addressable handle the user sees on the artifact card.
292
+ *
293
+ * Pair with the `Combobox` primitive for the typing surface, and with the
294
+ * `MarkdownContent` `mentionRenderer` prop to render mentions inline inside rendered chat
295
+ * messages — typically `mentionRenderer={(name) => <MentionChip name={name} … />}`.
296
+ */
297
+ declare const MentionChip: React$1.ForwardRefExoticComponent<MentionChipProps & React$1.RefAttributes<HTMLSpanElement>>;
298
+
299
+ interface ComboboxProps<T> extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'children'> {
300
+ /**
301
+ * Items to display in the panel. The caller is responsible for filtering before passing.
302
+ */
303
+ items: T[];
304
+ /**
305
+ * Index of the currently highlighted (focused, not yet picked) item. Drive this from
306
+ * `useComboboxNav` for the standard arrow-key behaviour, or manage it yourself.
307
+ */
308
+ selectedIndex: number;
309
+ /**
310
+ * Render one row. `isSelected` reflects the keyboard highlight; click and hover styling
311
+ * are applied by the panel.
312
+ */
313
+ renderItem: (item: T, isSelected: boolean) => React$1.ReactNode;
314
+ /**
315
+ * Called when the user clicks a row. Use the same handler you call from the keyboard's
316
+ * Enter key to keep mouse and keyboard paths consistent.
317
+ */
318
+ onSelectItem: (item: T) => void;
319
+ /**
320
+ * Stable key per item. Required because the panel re-mounts rows when `items` changes.
321
+ */
322
+ getItemKey: (item: T) => string;
323
+ /**
324
+ * Optional node rendered when `items` is empty. Skip the panel entirely if you'd rather
325
+ * hide it on no-match.
326
+ */
327
+ emptyState?: React$1.ReactNode;
328
+ /**
329
+ * Maximum pixel height of the scrollable list. The panel itself sizes to its content
330
+ * up to this cap; rows beyond it scroll within the panel.
331
+ * @default 256
332
+ */
333
+ maxHeight?: number;
334
+ }
335
+ /**
336
+ * Floating panel for inline autocompletes — `@`-mention pickers, slash-command menus, and
337
+ * the like. The panel is unstyled-positioned (`absolute`) so the caller controls placement
338
+ * via wrapper, `style`, or by mounting it inside their own positioned container; this keeps
339
+ * the component agnostic to how the trigger position is computed (caret coordinates, ref
340
+ * rect, popover anchor).
341
+ *
342
+ * Pair with `useComboboxNav` for the standard arrow-key + Enter/Escape behaviour.
343
+ */
344
+ declare function Combobox<T>({ items, selectedIndex, renderItem, onSelectItem, getItemKey, emptyState, maxHeight, className, ...rest }: ComboboxProps<T>): React$1.JSX.Element | null;
345
+ /**
346
+ * Result of `useComboboxNav`. Forward `handleKeyDown` from the input element that owns focus
347
+ * (typically a textarea); it returns true when it consumed the event so the caller knows to
348
+ * skip its own handling.
349
+ */
350
+ interface ComboboxNav {
351
+ selectedIndex: number;
352
+ setSelectedIndex: (index: number) => void;
353
+ /**
354
+ * Standard handler for ArrowUp / ArrowDown / Enter / Escape. Returns true when a key was
355
+ * consumed — the caller should skip its own handling for those events.
356
+ */
357
+ handleKeyDown: (e: React$1.KeyboardEvent) => boolean;
358
+ }
359
+ interface UseComboboxNavOptions<T> {
360
+ items: T[];
361
+ /**
362
+ * Called when the user presses Enter on the highlighted item.
363
+ */
364
+ onSelect: (item: T) => void;
365
+ /**
366
+ * Called when the user presses Escape.
367
+ */
368
+ onDismiss: () => void;
369
+ }
370
+ /**
371
+ * Standard keyboard nav for an inline autocomplete: ArrowUp / ArrowDown wrap through items,
372
+ * Enter selects the highlighted item, Escape dismisses. Resets the highlight to 0 whenever
373
+ * the items array changes (reference equality), so a fresh filter result starts at the top.
374
+ */
375
+ declare function useComboboxNav<T>({ items, onSelect, onDismiss }: UseComboboxNavOptions<T>): ComboboxNav;
376
+
246
377
  interface AttachmentItem {
247
378
  /**
248
379
  * Unique identifier
@@ -811,24 +942,42 @@ declare const StreamingCursor: React$1.ForwardRefExoticComponent<StreamingCursor
811
942
 
812
943
  interface MarkdownContentProps extends React$1.HTMLAttributes<HTMLDivElement> {
813
944
  /**
814
- * Content to display (can be Markdown or HTML)
945
+ * Content to display. Markdown by default; pass `isMarkdown={false}` for literal display
946
+ * of plain text (preserves whitespace, no parsing).
815
947
  */
816
948
  content: string;
817
949
  /**
818
- * Whether the content should be treated as Markdown
950
+ * Whether the content should be parsed as Markdown. `false` renders the string verbatim
951
+ * inside a `whitespace-pre-wrap` block — useful for plain-text artifacts.
819
952
  * @default true
820
953
  */
821
954
  isMarkdown?: boolean;
822
- sanitizeConfig?: Config;
823
955
  /**
824
- * When true, injects a streaming cursor at the end of the content
956
+ * When true, injects a streaming cursor at the end of the rendered content.
825
957
  */
826
958
  isStreaming?: boolean;
827
959
  /**
828
- * Additional classes for the streaming cursor
960
+ * Additional classes for the streaming cursor.
829
961
  */
830
962
  cursorClassName?: string;
963
+ /**
964
+ * When set, the renderer recognises `@artifact_name` mentions in prose (anywhere except
965
+ * inside code spans / blocks) and replaces each with the React node returned by this
966
+ * callback. Typical wiring is `(name) => <MentionChip name={name} onClick={...} />`,
967
+ * giving each chip a real per-call-site click handler.
968
+ *
969
+ * Without this prop, mentions render as literal `@name` text.
970
+ */
971
+ mentionRenderer?: (name: string) => React$1.ReactNode;
831
972
  }
973
+ /**
974
+ * Renders Markdown content into a real React tree via `react-markdown`. Drop-in for prose
975
+ * surfaces (chat messages, artifact bodies, deliverable text). Optional `mentionRenderer`
976
+ * adds inline `@artifact_name` chip rendering — see prop docs.
977
+ *
978
+ * Raw HTML in the source is escaped (not rendered) by react-markdown's defaults; this is
979
+ * intentional and safer than the previous pipeline. Pass markdown.
980
+ */
832
981
  declare const MarkdownContent: React$1.ForwardRefExoticComponent<MarkdownContentProps & React$1.RefAttributes<HTMLDivElement>>;
833
982
 
834
983
  /**
@@ -1088,6 +1237,19 @@ interface ChatInputProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'o
1088
1237
  * Whether to automatically focus the input when it becomes enabled
1089
1238
  */
1090
1239
  autoFocus?: boolean;
1240
+ /**
1241
+ * Optional ref forwarded to the underlying `<textarea>`. Use this to drive an inline
1242
+ * autocomplete (e.g. an `@`-mention picker) — read selection/caret position, mirror the
1243
+ * textarea for caret coordinates, or imperatively update its value.
1244
+ */
1245
+ textareaRef?: React$1.Ref<HTMLTextAreaElement>;
1246
+ /**
1247
+ * Optional keydown hook that runs before the input's own handling. Call
1248
+ * `e.preventDefault()` to stop ChatInput from acting on the event — for example, to keep
1249
+ * Enter from submitting while an autocomplete is consuming it. The submit-on-Enter and
1250
+ * default newline behaviours both check `defaultPrevented` and skip when set.
1251
+ */
1252
+ onTextareaKeyDown?: (e: React$1.KeyboardEvent<HTMLTextAreaElement>) => void;
1091
1253
  }
1092
1254
  /**
1093
1255
  * ChatInput is a context-aware input component that can transition between
@@ -1310,6 +1472,8 @@ interface ScriptCardProps extends Omit<CardProps, 'title'> {
1310
1472
  * Subtitle/metadata (e.g., "30-second spot • Directed by AI Creative")
1311
1473
  */
1312
1474
  subtitle?: React$1.ReactNode;
1475
+ /** The artifact's `@-handle` — see `Card.Header.handle`. */
1476
+ handle?: string;
1313
1477
  /**
1314
1478
  * Array of script elements in order.
1315
1479
  * Available types: 'scene-heading', 'action', 'character', 'dialogue', 'parenthetical',
@@ -1431,6 +1595,88 @@ interface DeliverableArtifactRef {
1431
1595
  description?: string | null;
1432
1596
  }
1433
1597
 
1598
+ interface DeliverableRendererProps {
1599
+ /** Resolved deliverable spec — every artifact reference already inflated. */
1600
+ deliverable: Deliverable;
1601
+ /**
1602
+ * Called when the viewer requests a PDF download. The host application is
1603
+ * responsible for fetching and triggering the file save (the URL knows
1604
+ * about share tokens and credentials we don't). When omitted, the download
1605
+ * affordance is hidden.
1606
+ */
1607
+ onDownloadPdf?: () => void | Promise<void>;
1608
+ /** Hide the floating action bar entirely. Used when rendering for print. */
1609
+ hideActions?: boolean;
1610
+ className?: string;
1611
+ }
1612
+ /**
1613
+ * Render a presentable deliverable (moodboard, pitch deck) from a structured
1614
+ * spec. The same component drives the on-screen view and the print/PDF
1615
+ * version — `@media print` styles in `aurelius/styles/base.css` keep them in
1616
+ * sync. To produce a PDF, drive the page with headless Chromium and let the
1617
+ * print stylesheet do the work.
1618
+ *
1619
+ * The renderer is purely presentational: it takes a fully resolved spec
1620
+ * (artifact URLs already inflated by the caller) and dispatches each section
1621
+ * to its typed sub-renderer. Unknown section types are skipped silently
1622
+ * forward-compat for new section variants added by the backend.
1623
+ */
1624
+ declare function DeliverableRenderer({ deliverable, onDownloadPdf, hideActions, className, }: DeliverableRendererProps): React$1.JSX.Element;
1625
+
1626
+ interface CoverSectionProps {
1627
+ data: CoverSection$1;
1628
+ /** Document-level client name from {@link Deliverable.clientName}, shown as "Prepared for {name}". */
1629
+ clientName?: string | null;
1630
+ }
1631
+ /**
1632
+ * Title page for a deliverable. Always rendered as the first section.
1633
+ */
1634
+ declare function CoverSection({ data, clientName }: CoverSectionProps): React$1.JSX.Element;
1635
+
1636
+ interface ArtifactImageGridSectionProps {
1637
+ data: ArtifactImageGridSection$1;
1638
+ }
1639
+ /**
1640
+ * Grid of project artifact images with optional captions. The number of
1641
+ * columns is fixed by the spec (1–3); the renderer enforces a sensible aspect
1642
+ * ratio per item and lets the browser flow rows.
1643
+ */
1644
+ declare function ArtifactImageGridSection({ data }: ArtifactImageGridSectionProps): React$1.JSX.Element;
1645
+
1646
+ interface ArtifactSpotlightSectionProps {
1647
+ data: ArtifactSpotlightSection$1;
1648
+ }
1649
+ /**
1650
+ * A single hero artifact image with optional prose alongside. Reads at full
1651
+ * page width on screen and prints to a single page.
1652
+ */
1653
+ declare function ArtifactSpotlightSection({ data }: ArtifactSpotlightSectionProps): React$1.JSX.Element;
1654
+
1655
+ interface TextBlockSectionProps {
1656
+ data: TextBlockSection$1;
1657
+ }
1658
+ /**
1659
+ * Prose section. Body is rendered as Markdown.
1660
+ */
1661
+ declare function TextBlockSection({ data }: TextBlockSectionProps): React$1.JSX.Element;
1662
+
1663
+ interface ColorPaletteSectionProps {
1664
+ data: ColorPaletteSection$1;
1665
+ }
1666
+ /**
1667
+ * Color palette presented as labelled swatches with hex values.
1668
+ */
1669
+ declare function ColorPaletteSection({ data }: ColorPaletteSectionProps): React$1.JSX.Element;
1670
+
1671
+ interface QuoteBlockSectionProps {
1672
+ data: QuoteBlockSection$1;
1673
+ }
1674
+ /**
1675
+ * Pulled quote with optional attribution. The renderer adds the surrounding
1676
+ * quotation marks.
1677
+ */
1678
+ declare function QuoteBlockSection({ data }: QuoteBlockSectionProps): React$1.JSX.Element;
1679
+
1434
1680
  /**
1435
1681
  * Artifact types supported by the system
1436
1682
  */
@@ -1636,6 +1882,24 @@ interface Conversation {
1636
1882
  */
1637
1883
  isActive?: boolean;
1638
1884
  }
1885
+ /**
1886
+ * Imperative API exposed by `ChatInterface` via its forwarded ref. Use this from
1887
+ * call sites that need to drive the chat from outside React state — typically
1888
+ * to surface an artifact when the user clicks a `MentionChip` or other
1889
+ * cross-surface pointer. Attach with
1890
+ * `useRef<ChatInterfaceHandle>(null)` and read `ref.current?.openArtifact(name)`.
1891
+ */
1892
+ interface ChatInterfaceHandle {
1893
+ /**
1894
+ * Open the artifact lightbox for the given artifact name. Ensures the
1895
+ * artifacts panel is open (overriding any prior dismissal) before
1896
+ * surfacing the lightbox, since the lightbox renders inside the panel.
1897
+ * If the name is not present in the current artifact tree, the call is a
1898
+ * no-op — the chip's leading icon already signals unknown / stale
1899
+ * references via `HelpCircle`.
1900
+ */
1901
+ openArtifact(name: string): void;
1902
+ }
1639
1903
  interface ChatInterfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'onSubmit'> {
1640
1904
  /**
1641
1905
  * Array of messages in the conversation (flat mode)
@@ -1827,6 +2091,20 @@ interface ChatInterfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>
1827
2091
  * Defaults to true.
1828
2092
  */
1829
2093
  autoFocus?: boolean;
2094
+ /**
2095
+ * Forwarded to the underlying chat-input `<textarea>`. Use to drive an
2096
+ * inline autocomplete (e.g. an `@`-mention picker) — read selection/caret
2097
+ * position, mirror the textarea for caret coordinates, or imperatively
2098
+ * update its value.
2099
+ */
2100
+ textareaRef?: React$1.Ref<HTMLTextAreaElement>;
2101
+ /**
2102
+ * Forwarded to the underlying chat-input. Runs before the input's own
2103
+ * keydown handling; calling `e.preventDefault()` opts that event out of
2104
+ * default behaviour (submit-on-Enter, newline) — typical use is to claim
2105
+ * Arrow / Enter / Escape while an autocomplete panel is open.
2106
+ */
2107
+ onTextareaKeyDown?: (e: React$1.KeyboardEvent<HTMLTextAreaElement>) => void;
1830
2108
  }
1831
2109
  /**
1832
2110
  * ChatInterface is the main orchestrator for a full-featured chat experience.
@@ -1849,7 +2127,7 @@ interface ChatInterfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>
1849
2127
  * Artifacts are supplied as a tree of ArtifactNode objects via the
1850
2128
  * artifactNodes prop.
1851
2129
  */
1852
- declare const ChatInterface: React$1.ForwardRefExoticComponent<ChatInterfaceProps & React$1.RefAttributes<HTMLDivElement>>;
2130
+ declare const ChatInterface: React$1.ForwardRefExoticComponent<ChatInterfaceProps & React$1.RefAttributes<ChatInterfaceHandle>>;
1853
2131
 
1854
2132
  /**
1855
2133
  * What kind of project mutation produced this checkpoint. Drives the icon and
@@ -2354,6 +2632,8 @@ interface ImageCardProps extends Omit<CardProps, 'title'> {
2354
2632
  alt?: string;
2355
2633
  title?: React$1.ReactNode;
2356
2634
  subtitle?: React$1.ReactNode;
2635
+ /** The artifact's `@-handle` — see `Card.Header.handle`. */
2636
+ handle?: string;
2357
2637
  aspectRatio?: AspectRatio;
2358
2638
  objectFit?: 'cover' | 'contain';
2359
2639
  overlay?: React$1.ReactNode;
@@ -2370,6 +2650,8 @@ interface VideoCardProps extends Omit<CardProps, 'title'> {
2370
2650
  src?: string;
2371
2651
  title?: React$1.ReactNode;
2372
2652
  subtitle?: React$1.ReactNode;
2653
+ /** The artifact's `@-handle` — see `Card.Header.handle`. */
2654
+ handle?: string;
2373
2655
  aspectRatio?: VideoAspectRatio;
2374
2656
  playing?: boolean;
2375
2657
  controls?: boolean;
@@ -2390,6 +2672,8 @@ interface AudioCardProps extends Omit<CardProps, 'title'> {
2390
2672
  src?: string;
2391
2673
  title?: React$1.ReactNode;
2392
2674
  subtitle?: React$1.ReactNode;
2675
+ /** The artifact's `@-handle` — see `Card.Header.handle`. */
2676
+ handle?: string;
2393
2677
  playing?: boolean;
2394
2678
  controls?: boolean;
2395
2679
  volume?: number;
@@ -2417,6 +2701,8 @@ interface PdfCardProps extends Omit<CardProps, 'title'> {
2417
2701
  * Subtitle or document metadata
2418
2702
  */
2419
2703
  subtitle?: React$1.ReactNode;
2704
+ /** The artifact's `@-handle` — see `Card.Header.handle`. */
2705
+ handle?: string;
2420
2706
  /**
2421
2707
  * Height of the PDF viewer
2422
2708
  */
@@ -2449,6 +2735,8 @@ interface TextCardProps extends Omit<CardProps, 'title'> {
2449
2735
  * Optional subtitle or metadata
2450
2736
  */
2451
2737
  subtitle?: React$1.ReactNode;
2738
+ /** The artifact's `@-handle` — see `Card.Header.handle`. */
2739
+ handle?: string;
2452
2740
  /**
2453
2741
  * Whether the content should be treated as Markdown
2454
2742
  * @default true
@@ -2480,6 +2768,8 @@ interface DeliverableCardProps extends Omit<CardProps, 'title'> {
2480
2768
  title?: React$1.ReactNode;
2481
2769
  /** Optional subtitle shown below the title. */
2482
2770
  subtitle?: React$1.ReactNode;
2771
+ /** The artifact's `@-handle` — see `Card.Header.handle`. */
2772
+ handle?: string;
2483
2773
  loading?: CardSlotLoading;
2484
2774
  }
2485
2775
  /**
@@ -2537,87 +2827,15 @@ interface ArtifactVariantStackProps extends React$1.HTMLAttributes<HTMLDivElemen
2537
2827
  */
2538
2828
  declare const ArtifactVariantStack: React$1.ForwardRefExoticComponent<ArtifactVariantStackProps & React$1.RefAttributes<HTMLDivElement>>;
2539
2829
 
2540
- interface DeliverableRendererProps {
2541
- /** Resolved deliverable spec every artifact reference already inflated. */
2542
- deliverable: Deliverable;
2543
- /**
2544
- * Called when the viewer requests a PDF download. The host application is
2545
- * responsible for fetching and triggering the file save (the URL knows
2546
- * about share tokens and credentials we don't). When omitted, the download
2547
- * affordance is hidden.
2548
- */
2549
- onDownloadPdf?: () => void | Promise<void>;
2550
- /** Hide the floating action bar entirely. Used when rendering for print. */
2551
- hideActions?: boolean;
2552
- className?: string;
2830
+ interface TextareaCaretCoords {
2831
+ /** Top of the caret, in pixels relative to the textarea's top-left. */
2832
+ top: number;
2833
+ /** Left of the caret, in pixels relative to the textarea's top-left. */
2834
+ left: number;
2835
+ /** Caret line height in pixels useful when positioning a popover just above/below. */
2836
+ height: number;
2553
2837
  }
2554
- /**
2555
- * Render a presentable deliverable (moodboard, pitch deck) from a structured
2556
- * spec. The same component drives the on-screen view and the print/PDF
2557
- * version — `@media print` styles in `aurelius/styles/base.css` keep them in
2558
- * sync. To produce a PDF, drive the page with headless Chromium and let the
2559
- * print stylesheet do the work.
2560
- *
2561
- * The renderer is purely presentational: it takes a fully resolved spec
2562
- * (artifact URLs already inflated by the caller) and dispatches each section
2563
- * to its typed sub-renderer. Unknown section types are skipped silently
2564
- * forward-compat for new section variants added by the backend.
2565
- */
2566
- declare function DeliverableRenderer({ deliverable, onDownloadPdf, hideActions, className, }: DeliverableRendererProps): React$1.JSX.Element;
2567
-
2568
- interface CoverSectionProps {
2569
- data: CoverSection$1;
2570
- /** Document-level client name from {@link Deliverable.clientName}, shown as "Prepared for {name}". */
2571
- clientName?: string | null;
2572
- }
2573
- /**
2574
- * Title page for a deliverable. Always rendered as the first section.
2575
- */
2576
- declare function CoverSection({ data, clientName }: CoverSectionProps): React$1.JSX.Element;
2577
-
2578
- interface ArtifactImageGridSectionProps {
2579
- data: ArtifactImageGridSection$1;
2580
- }
2581
- /**
2582
- * Grid of project artifact images with optional captions. The number of
2583
- * columns is fixed by the spec (1–3); the renderer enforces a sensible aspect
2584
- * ratio per item and lets the browser flow rows.
2585
- */
2586
- declare function ArtifactImageGridSection({ data }: ArtifactImageGridSectionProps): React$1.JSX.Element;
2587
-
2588
- interface ArtifactSpotlightSectionProps {
2589
- data: ArtifactSpotlightSection$1;
2590
- }
2591
- /**
2592
- * A single hero artifact image with optional prose alongside. Reads at full
2593
- * page width on screen and prints to a single page.
2594
- */
2595
- declare function ArtifactSpotlightSection({ data }: ArtifactSpotlightSectionProps): React$1.JSX.Element;
2596
-
2597
- interface TextBlockSectionProps {
2598
- data: TextBlockSection$1;
2599
- }
2600
- /**
2601
- * Prose section. Body is rendered as Markdown.
2602
- */
2603
- declare function TextBlockSection({ data }: TextBlockSectionProps): React$1.JSX.Element;
2604
-
2605
- interface ColorPaletteSectionProps {
2606
- data: ColorPaletteSection$1;
2607
- }
2608
- /**
2609
- * Color palette presented as labelled swatches with hex values.
2610
- */
2611
- declare function ColorPaletteSection({ data }: ColorPaletteSectionProps): React$1.JSX.Element;
2612
-
2613
- interface QuoteBlockSectionProps {
2614
- data: QuoteBlockSection$1;
2615
- }
2616
- /**
2617
- * Pulled quote with optional attribution. The renderer adds the surrounding
2618
- * quotation marks.
2619
- */
2620
- declare function QuoteBlockSection({ data }: QuoteBlockSectionProps): React$1.JSX.Element;
2838
+ declare function getTextareaCaretCoords(textarea: HTMLTextAreaElement): TextareaCaretCoords;
2621
2839
 
2622
2840
  /**
2623
2841
  * Aurelius Design System
@@ -2631,4 +2849,4 @@ declare function QuoteBlockSection({ data }: QuoteBlockSectionProps): React$1.JS
2631
2849
 
2632
2850
  declare const version = "2.0.0";
2633
2851
 
2634
- export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, type AddNodeOptions, 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, DeliverableCard, type DeliverableCardProps, 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, Lightbox, type LightboxProps, 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 };
2852
+ export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, type AddNodeOptions, 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 ChatInterfaceHandle, 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, Combobox, type ComboboxNav, type ComboboxProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, type ConversationTree, CoverSection, type CoverSectionProps, CrossSquareIcon, type Deliverable, type DeliverableArtifactRef, DeliverableCard, type DeliverableCardProps, 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, Lightbox, type LightboxProps, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, MentionChip, type MentionChipProps, 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 TextareaCaretCoords, 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 UseComboboxNavOptions, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addNodeToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, findAncestor, generateId, getActivePath, getGreyedFuture, getSiblingInfo, getTextareaCaretCoords, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, setActiveLeaf, switchBranch, updateMessageContent, useArtifactTreeNavigation, useComboboxNav, useResizable, useScrollAnchor, useToast, version };