@vllnt/ui 0.2.0 → 0.2.1-canary.73a93ee

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/README.md +27 -12
  3. package/dist/components/activity-log/activity-log.js +1 -0
  4. package/dist/components/anchor-port/anchor-port.js +51 -0
  5. package/dist/components/anchor-port/index.js +4 -0
  6. package/dist/components/animated-text/animated-text.js +1 -0
  7. package/dist/components/bottom-bar/bottom-bar.js +25 -0
  8. package/dist/components/bottom-bar/index.js +4 -0
  9. package/dist/components/canvas-shell/canvas-foundation-demo.js +183 -0
  10. package/dist/components/canvas-shell/canvas-shell-route-config.js +0 -0
  11. package/dist/components/canvas-shell/canvas-shell.js +261 -0
  12. package/dist/components/canvas-shell/index.js +4 -0
  13. package/dist/components/canvas-view/canvas-view.js +461 -0
  14. package/dist/components/canvas-view/index.js +6 -0
  15. package/dist/components/chart/area-chart.js +1 -0
  16. package/dist/components/chart/line-chart.js +1 -0
  17. package/dist/components/chat-dock-section/chat-dock-section.js +56 -0
  18. package/dist/components/chat-dock-section/index.js +6 -0
  19. package/dist/components/checklist/checklist.js +7 -0
  20. package/dist/components/checklist/index.js +3 -1
  21. package/dist/components/comment-pin/comment-pin.js +104 -0
  22. package/dist/components/comment-pin/index.js +6 -0
  23. package/dist/components/connector-edge/connector-edge.js +66 -0
  24. package/dist/components/connector-edge/index.js +6 -0
  25. package/dist/components/conversation-thread/conversation-thread.js +348 -0
  26. package/dist/components/conversation-thread/index.js +20 -0
  27. package/dist/components/curriculum/curriculum.js +349 -0
  28. package/dist/components/curriculum/index.js +10 -0
  29. package/dist/components/data-list/data-list.js +1 -0
  30. package/dist/components/edge-label/edge-label.js +26 -0
  31. package/dist/components/edge-label/index.js +4 -0
  32. package/dist/components/form/form.js +432 -0
  33. package/dist/components/form/index.js +20 -0
  34. package/dist/components/glass-panel/glass-panel.js +21 -0
  35. package/dist/components/glass-panel/index.js +4 -0
  36. package/dist/components/group-hull/group-hull.js +29 -0
  37. package/dist/components/group-hull/index.js +4 -0
  38. package/dist/components/index.js +176 -0
  39. package/dist/components/infinite-plane/index.js +6 -0
  40. package/dist/components/infinite-plane/infinite-plane.js +75 -0
  41. package/dist/components/left-rail/index.js +4 -0
  42. package/dist/components/left-rail/left-rail.js +25 -0
  43. package/dist/components/live-cursor/index.js +6 -0
  44. package/dist/components/live-cursor/live-cursor.js +62 -0
  45. package/dist/components/mini-map-panel/index.js +6 -0
  46. package/dist/components/mini-map-panel/mini-map-panel.js +74 -0
  47. package/dist/components/multi-select/index.js +6 -0
  48. package/dist/components/multi-select/multi-select.js +258 -0
  49. package/dist/components/object-card/index.js +6 -0
  50. package/dist/components/object-card/object-card.js +126 -0
  51. package/dist/components/object-handle/index.js +4 -0
  52. package/dist/components/object-handle/object-handle.js +38 -0
  53. package/dist/components/overview-board/index.js +8 -0
  54. package/dist/components/overview-board/overview-board.js +127 -0
  55. package/dist/components/presence-stack/index.js +6 -0
  56. package/dist/components/presence-stack/presence-stack.js +108 -0
  57. package/dist/components/presence-sync-indicator/index.js +6 -0
  58. package/dist/components/presence-sync-indicator/presence-sync-indicator.js +73 -0
  59. package/dist/components/progress-tracker/index.js +20 -0
  60. package/dist/components/progress-tracker/progress-tracker.js +527 -0
  61. package/dist/components/right-dock/index.js +4 -0
  62. package/dist/components/right-dock/right-dock.js +28 -0
  63. package/dist/components/run-timeline/index.js +6 -0
  64. package/dist/components/run-timeline/run-timeline.js +221 -0
  65. package/dist/components/segmented-control/index.js +12 -0
  66. package/dist/components/segmented-control/segmented-control.js +61 -0
  67. package/dist/components/selection-presence/index.js +6 -0
  68. package/dist/components/selection-presence/selection-presence.js +50 -0
  69. package/dist/components/spinner/unicode-spinner.js +1 -0
  70. package/dist/components/tags-input/index.js +4 -0
  71. package/dist/components/tags-input/tags-input.js +178 -0
  72. package/dist/components/thread-bubble/index.js +6 -0
  73. package/dist/components/thread-bubble/thread-bubble.js +85 -0
  74. package/dist/components/top-bar/index.js +4 -0
  75. package/dist/components/top-bar/top-bar.js +31 -0
  76. package/dist/components/usage-breakdown/usage-breakdown.js +1 -0
  77. package/dist/components/viewport-bookmarks/index.js +6 -0
  78. package/dist/components/viewport-bookmarks/viewport-bookmarks.js +116 -0
  79. package/dist/components/workspace-switcher/index.js +6 -0
  80. package/dist/components/workspace-switcher/workspace-switcher.js +61 -0
  81. package/dist/components/world-breadcrumbs/index.js +6 -0
  82. package/dist/components/world-breadcrumbs/world-breadcrumbs.js +114 -0
  83. package/dist/components/zoom-hud/index.js +4 -0
  84. package/dist/components/zoom-hud/zoom-hud.js +61 -0
  85. package/dist/index.d.ts +1468 -6
  86. package/package.json +7 -3
package/dist/index.d.ts CHANGED
@@ -3,20 +3,24 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
3
3
  import * as class_variance_authority from 'class-variance-authority';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
  import * as react from 'react';
6
- import react__default, { ReactNode, Component, ErrorInfo } from 'react';
6
+ import react__default, { ReactNode, ComponentPropsWithoutRef, Component, ErrorInfo } from 'react';
7
7
  import * as DialogPrimitive from '@radix-ui/react-dialog';
8
8
  import { DayPicker } from 'react-day-picker';
9
9
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
10
10
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
11
11
  import * as LabelPrimitive from '@radix-ui/react-label';
12
12
  import * as SwitchPrimitives from '@radix-ui/react-switch';
13
+ import * as _radix_ui_react_slot from '@radix-ui/react-slot';
14
+ import * as react_hook_form from 'react-hook-form';
15
+ import { FieldValues, UseFormReturn, SubmitErrorHandler, DefaultValues, Resolver, FieldPath, ControllerProps } from 'react-hook-form';
16
+ import { zodResolver } from '@hookform/resolvers/zod';
17
+ import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
13
18
  import { ToasterProps } from 'sonner';
14
19
  export { toast } from 'sonner';
15
20
  import * as SelectPrimitive from '@radix-ui/react-select';
16
21
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
17
22
  import * as SliderPrimitive from '@radix-ui/react-slider';
18
23
  import * as TogglePrimitive from '@radix-ui/react-toggle';
19
- import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
20
24
  import * as input_otp from 'input-otp';
21
25
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
22
26
  import * as PopoverPrimitive from '@radix-ui/react-popover';
@@ -337,6 +341,130 @@ declare const PasswordInput: react.ForwardRefExoticComponent<Omit<Omit<react.Det
337
341
 
338
342
  declare const Switch: react.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
339
343
 
344
+ type FormInstance<TFieldValues extends FieldValues> = UseFormReturn<TFieldValues, unknown, TFieldValues>;
345
+ type FormRenderChildren<TFieldValues extends FieldValues> = ((form: FormInstance<TFieldValues>) => react.ReactNode) | react.ReactNode;
346
+ type FormSubmitHandler<TFieldValues extends FieldValues> = (values: TFieldValues, form: FormInstance<TFieldValues>) => Promise<void> | void;
347
+ type FormErrorHandler<TFieldValues extends FieldValues> = (errors: Parameters<SubmitErrorHandler<TFieldValues>>[0], form: FormInstance<TFieldValues>) => Promise<void> | void;
348
+ type BaseFormProps<TFieldValues extends FieldValues> = Omit<react.ComponentPropsWithoutRef<"form">, "children"> & {
349
+ children?: FormRenderChildren<TFieldValues>;
350
+ controlId?: string;
351
+ descriptionId?: string;
352
+ disabled?: boolean;
353
+ invalid?: boolean;
354
+ messageId?: string;
355
+ onError?: FormErrorHandler<TFieldValues>;
356
+ onValidSubmit?: FormSubmitHandler<TFieldValues>;
357
+ required?: boolean;
358
+ };
359
+ type ManagedFormProps<TFieldValues extends FieldValues> = {
360
+ defaultValues?: DefaultValues<TFieldValues>;
361
+ form?: undefined;
362
+ resolver?: Resolver<TFieldValues>;
363
+ schema?: Parameters<typeof zodResolver>[0];
364
+ values?: TFieldValues;
365
+ };
366
+ type ProvidedFormProps<TFieldValues extends FieldValues> = {
367
+ defaultValues?: never;
368
+ form: FormInstance<TFieldValues>;
369
+ resolver?: never;
370
+ schema?: never;
371
+ values?: never;
372
+ };
373
+ type FormProps<TFieldValues extends FieldValues = FieldValues> = BaseFormProps<TFieldValues> & (ManagedFormProps<TFieldValues> | ProvidedFormProps<TFieldValues>);
374
+ declare const Form: <TFieldValues extends FieldValues = FieldValues>(props: FormProps<TFieldValues> & react.RefAttributes<HTMLFormElement>) => react.ReactElement;
375
+ declare function FormField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>): react_jsx_runtime.JSX.Element;
376
+ declare function useFormField(): {
377
+ disabled: boolean;
378
+ error: react_hook_form.FieldError | undefined;
379
+ formDescriptionId: string;
380
+ formItemId: string;
381
+ formMessageId: string;
382
+ hasDescription: boolean;
383
+ hasMessage: boolean;
384
+ hasMessageSlot: boolean;
385
+ id: string;
386
+ invalid: boolean;
387
+ isDirty: boolean;
388
+ isTouched: boolean;
389
+ isValidating: boolean;
390
+ name: string;
391
+ required: boolean;
392
+ };
393
+ declare const FormItem: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
394
+ disabled?: boolean;
395
+ invalid?: boolean;
396
+ required?: boolean;
397
+ } & react.RefAttributes<HTMLDivElement>>;
398
+ declare const FormLabel: react.ForwardRefExoticComponent<Omit<Omit<LabelPrimitive.LabelProps & react.RefAttributes<HTMLLabelElement>, "ref"> & class_variance_authority.VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & react.RefAttributes<HTMLLabelElement>, "ref"> & react.RefAttributes<HTMLLabelElement>>;
399
+ declare const FormControl: react.ForwardRefExoticComponent<Omit<_radix_ui_react_slot.SlotProps & react.RefAttributes<HTMLElement>, "ref"> & {
400
+ disabled?: boolean;
401
+ required?: boolean;
402
+ } & react.RefAttributes<HTMLElement>>;
403
+ declare const FormDescription: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & react.RefAttributes<HTMLParagraphElement>>;
404
+ declare const FormMessage: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & react.RefAttributes<HTMLParagraphElement>>;
405
+
406
+ type MultiSelectOption = {
407
+ disabled?: boolean;
408
+ label: string;
409
+ value: string;
410
+ };
411
+ type MultiSelectProps = Omit<react.ButtonHTMLAttributes<HTMLButtonElement>, "defaultValue" | "onChange" | "value"> & {
412
+ defaultValue?: string[];
413
+ emptyText?: string;
414
+ onOpenChange?: (open: boolean) => void;
415
+ onValueChange?: (value: string[]) => void;
416
+ options: MultiSelectOption[];
417
+ placeholder?: string;
418
+ searchable?: boolean;
419
+ searchPlaceholder?: string;
420
+ value?: string[];
421
+ };
422
+ declare const MultiSelect: react.ForwardRefExoticComponent<Omit<react.ButtonHTMLAttributes<HTMLButtonElement>, "defaultValue" | "onChange" | "value"> & {
423
+ defaultValue?: string[];
424
+ emptyText?: string;
425
+ onOpenChange?: (open: boolean) => void;
426
+ onValueChange?: (value: string[]) => void;
427
+ options: MultiSelectOption[];
428
+ placeholder?: string;
429
+ searchable?: boolean;
430
+ searchPlaceholder?: string;
431
+ value?: string[];
432
+ } & react.RefAttributes<HTMLButtonElement>>;
433
+
434
+ type TagsInputProps = Omit<react.ComponentPropsWithoutRef<"input">, "defaultValue" | "onChange" | "value"> & {
435
+ defaultValue?: string[];
436
+ onValueChange?: (value: string[]) => void;
437
+ value?: string[];
438
+ };
439
+ declare const TagsInput: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "defaultValue" | "onChange" | "value"> & {
440
+ defaultValue?: string[];
441
+ onValueChange?: (value: string[]) => void;
442
+ value?: string[];
443
+ } & react.RefAttributes<HTMLInputElement>>;
444
+
445
+ declare const segmentedControlVariants: (props?: ({
446
+ size?: "default" | "lg" | "sm" | null | undefined;
447
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
448
+ declare const segmentedControlItemVariants: (props?: ({
449
+ size?: "default" | "lg" | "sm" | null | undefined;
450
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
451
+ type SegmentedControlProps = Omit<react.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>, "defaultValue" | "onValueChange" | "type" | "value"> & VariantProps<typeof segmentedControlVariants> & {
452
+ defaultValue?: string;
453
+ onValueChange?: (value: string) => void;
454
+ value?: string;
455
+ };
456
+ type SegmentedControlItemProps = react.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof segmentedControlItemVariants>;
457
+ declare const SegmentedControl: react.ForwardRefExoticComponent<Omit<Omit<ToggleGroupPrimitive.ToggleGroupSingleProps & react.RefAttributes<HTMLDivElement>, "ref"> | Omit<ToggleGroupPrimitive.ToggleGroupMultipleProps & react.RefAttributes<HTMLDivElement>, "ref">, "defaultValue" | "type" | "value" | "onValueChange"> & VariantProps<(props?: ({
458
+ size?: "default" | "lg" | "sm" | null | undefined;
459
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & {
460
+ defaultValue?: string;
461
+ onValueChange?: (value: string) => void;
462
+ value?: string;
463
+ } & react.RefAttributes<HTMLDivElement>>;
464
+ declare const SegmentedControlItem: react.ForwardRefExoticComponent<Omit<ToggleGroupPrimitive.ToggleGroupItemProps & react.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
465
+ size?: "default" | "lg" | "sm" | null | undefined;
466
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & react.RefAttributes<HTMLButtonElement>>;
467
+
340
468
  type ToastProps = {
341
469
  variant?: "default" | "destructive";
342
470
  } & react.HTMLAttributes<HTMLDivElement>;
@@ -1265,6 +1393,266 @@ type MDXContentProps = {
1265
1393
  };
1266
1394
  declare function MDXContent({ components, content, enableMDX, }: MDXContentProps): Promise<react_jsx_runtime.JSX.Element>;
1267
1395
 
1396
+ type CanvasShellInsets = {
1397
+ bottom?: number | string;
1398
+ left?: number | string;
1399
+ right?: number | string;
1400
+ top?: number | string;
1401
+ };
1402
+ type CanvasShellRouteConfig = {
1403
+ bottomBar?: ReactNode;
1404
+ center: ReactNode;
1405
+ contentPadding?: CanvasShellInsets;
1406
+ leftBar?: ReactNode;
1407
+ rightBar?: ReactNode;
1408
+ topBar?: ReactNode;
1409
+ };
1410
+
1411
+ type CanvasShellProps = React.ComponentPropsWithoutRef<"section"> & {
1412
+ bottomBar?: ReactNode;
1413
+ bottomSlot?: ReactNode;
1414
+ children?: ReactNode;
1415
+ chromeInset?: number | string;
1416
+ contentPadding?: CanvasShellInsets;
1417
+ leftBar?: ReactNode;
1418
+ leftRail?: ReactNode;
1419
+ rightBar?: ReactNode;
1420
+ rightDock?: ReactNode;
1421
+ topBar?: ReactNode;
1422
+ };
1423
+ declare const CanvasShell: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
1424
+ bottomBar?: ReactNode;
1425
+ bottomSlot?: ReactNode;
1426
+ children?: ReactNode;
1427
+ chromeInset?: number | string;
1428
+ contentPadding?: CanvasShellInsets;
1429
+ leftBar?: ReactNode;
1430
+ leftRail?: ReactNode;
1431
+ rightBar?: ReactNode;
1432
+ rightDock?: ReactNode;
1433
+ topBar?: ReactNode;
1434
+ } & react.RefAttributes<HTMLElement>>;
1435
+
1436
+ type CanvasViewport = {
1437
+ x: number;
1438
+ y: number;
1439
+ zoom: number;
1440
+ };
1441
+ type CanvasViewHandle = {
1442
+ resetViewport: () => void;
1443
+ setViewport: (viewport: CanvasViewport) => void;
1444
+ };
1445
+ type CanvasViewProps = Omit<React.ComponentPropsWithoutRef<"div">, "onScroll"> & {
1446
+ defaultViewport?: CanvasViewport;
1447
+ maxZoom?: number;
1448
+ minZoom?: number;
1449
+ onViewportChange?: (viewport: CanvasViewport) => void;
1450
+ overlay?: React.ReactNode;
1451
+ zoomStep?: number;
1452
+ };
1453
+ declare const CanvasView: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "onScroll"> & {
1454
+ defaultViewport?: CanvasViewport;
1455
+ maxZoom?: number;
1456
+ minZoom?: number;
1457
+ onViewportChange?: (viewport: CanvasViewport) => void;
1458
+ overlay?: React.ReactNode;
1459
+ zoomStep?: number;
1460
+ } & react.RefAttributes<CanvasViewHandle>>;
1461
+
1462
+ type BottomBarProps = React.ComponentPropsWithoutRef<"div"> & {
1463
+ center?: ReactNode;
1464
+ leading?: ReactNode;
1465
+ trailing?: ReactNode;
1466
+ };
1467
+ declare const BottomBar: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
1468
+ center?: ReactNode;
1469
+ leading?: ReactNode;
1470
+ trailing?: ReactNode;
1471
+ } & react.RefAttributes<HTMLDivElement>>;
1472
+
1473
+ type ChatDockMessage = {
1474
+ body: ReactNode;
1475
+ id: string;
1476
+ speaker: ReactNode;
1477
+ };
1478
+ type ChatDockSectionProps = React.ComponentPropsWithoutRef<"section"> & {
1479
+ composerPlaceholder?: string;
1480
+ contextLabel?: ReactNode;
1481
+ messages: ChatDockMessage[];
1482
+ title?: ReactNode;
1483
+ };
1484
+ declare const ChatDockSection: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
1485
+ composerPlaceholder?: string;
1486
+ contextLabel?: ReactNode;
1487
+ messages: ChatDockMessage[];
1488
+ title?: ReactNode;
1489
+ } & react.RefAttributes<HTMLElement>>;
1490
+
1491
+ type GlassPanelProps = React.ComponentPropsWithoutRef<"div">;
1492
+ declare const GlassPanel: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
1493
+
1494
+ /**
1495
+ * Pattern style for the plane backdrop.
1496
+ *
1497
+ * @public
1498
+ */
1499
+ type InfinitePlanePattern = "blank" | "dot" | "grid";
1500
+ /**
1501
+ * Localizable strings.
1502
+ *
1503
+ * @public
1504
+ */
1505
+ type InfinitePlaneLabels = {
1506
+ /** Aria-label override. Defaults to `"Infinite plane"`. */
1507
+ region?: string;
1508
+ };
1509
+ /**
1510
+ * Props for {@link InfinitePlane}.
1511
+ *
1512
+ * @public
1513
+ */
1514
+ type InfinitePlaneProps = {
1515
+ /** Children render in the plane's coordinate space. */
1516
+ children?: ReactNode;
1517
+ /** Localizable strings. */
1518
+ labels?: InfinitePlaneLabels;
1519
+ /** Backdrop pattern. Defaults to `"dot"`. */
1520
+ pattern?: InfinitePlanePattern;
1521
+ /** Pattern grid spacing in pixels. Defaults to `32`. */
1522
+ spacing?: number;
1523
+ /** Optional offset applied to the pattern (drift with viewport translation). Defaults to `{ x: 0, y: 0 }`. */
1524
+ translate?: {
1525
+ x: number;
1526
+ y: number;
1527
+ };
1528
+ /** Zoom factor — drives the pattern's effective spacing. Defaults to `1`. */
1529
+ zoom?: number;
1530
+ } & ComponentPropsWithoutRef<"div">;
1531
+ /**
1532
+ * Tiled pannable backdrop for the canvas. Renders a `dot` or `grid`
1533
+ * pattern that drifts with the viewport translate + scales with the
1534
+ * zoom, plus a slot for spatial children that share its coordinate
1535
+ * space.
1536
+ *
1537
+ * Pure presentation; the host owns the viewport transform and supplies
1538
+ * `translate` + `zoom` from its pan / zoom controller.
1539
+ *
1540
+ * @example
1541
+ * ```tsx
1542
+ * <InfinitePlane translate={{ x: pan.x, y: pan.y }} zoom={zoom}>
1543
+ * <ObjectCard …/>
1544
+ * <ObjectCard …/>
1545
+ * </InfinitePlane>
1546
+ * ```
1547
+ *
1548
+ * @public
1549
+ */
1550
+ declare const InfinitePlane: react.ForwardRefExoticComponent<{
1551
+ /** Children render in the plane's coordinate space. */
1552
+ children?: ReactNode;
1553
+ /** Localizable strings. */
1554
+ labels?: InfinitePlaneLabels;
1555
+ /** Backdrop pattern. Defaults to `"dot"`. */
1556
+ pattern?: InfinitePlanePattern;
1557
+ /** Pattern grid spacing in pixels. Defaults to `32`. */
1558
+ spacing?: number;
1559
+ /** Optional offset applied to the pattern (drift with viewport translation). Defaults to `{ x: 0, y: 0 }`. */
1560
+ translate?: {
1561
+ x: number;
1562
+ y: number;
1563
+ };
1564
+ /** Zoom factor — drives the pattern's effective spacing. Defaults to `1`. */
1565
+ zoom?: number;
1566
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
1567
+
1568
+ type LeftRailProps = React.ComponentPropsWithoutRef<"aside"> & {
1569
+ footer?: ReactNode;
1570
+ title?: ReactNode;
1571
+ };
1572
+ declare const LeftRail: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
1573
+ footer?: ReactNode;
1574
+ title?: ReactNode;
1575
+ } & react.RefAttributes<HTMLElement>>;
1576
+
1577
+ type MiniMapMarker = {
1578
+ id: string;
1579
+ label?: string;
1580
+ x: number;
1581
+ y: number;
1582
+ };
1583
+ type MiniMapPanelProps = React.ComponentPropsWithoutRef<"div"> & {
1584
+ markers?: MiniMapMarker[];
1585
+ title?: string;
1586
+ viewport: {
1587
+ height: number;
1588
+ width: number;
1589
+ x: number;
1590
+ y: number;
1591
+ zoom: number;
1592
+ };
1593
+ world: {
1594
+ height: number;
1595
+ width: number;
1596
+ };
1597
+ };
1598
+ declare const MiniMapPanel: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
1599
+ markers?: MiniMapMarker[];
1600
+ title?: string;
1601
+ viewport: {
1602
+ height: number;
1603
+ width: number;
1604
+ x: number;
1605
+ y: number;
1606
+ zoom: number;
1607
+ };
1608
+ world: {
1609
+ height: number;
1610
+ width: number;
1611
+ };
1612
+ } & react.RefAttributes<HTMLDivElement>>;
1613
+
1614
+ type OverviewCardTone = "danger" | "default" | "warning";
1615
+ type OverviewCardProps = React.ComponentPropsWithoutRef<"section"> & {
1616
+ ctaLabel?: ReactNode;
1617
+ description: ReactNode;
1618
+ handleCtaClick?: () => void;
1619
+ heading: ReactNode;
1620
+ icon?: ReactNode;
1621
+ metric: ReactNode;
1622
+ tone?: OverviewCardTone;
1623
+ };
1624
+ declare const OverviewCard: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
1625
+ ctaLabel?: ReactNode;
1626
+ description: ReactNode;
1627
+ handleCtaClick?: () => void;
1628
+ heading: ReactNode;
1629
+ icon?: ReactNode;
1630
+ metric: ReactNode;
1631
+ tone?: OverviewCardTone;
1632
+ } & react.RefAttributes<HTMLElement>>;
1633
+ type OverviewBoardItem = {
1634
+ ctaLabel?: ReactNode;
1635
+ description: ReactNode;
1636
+ handleCtaClick?: () => void;
1637
+ heading: ReactNode;
1638
+ icon?: ReactNode;
1639
+ id: string;
1640
+ metric: ReactNode;
1641
+ tone?: OverviewCardTone;
1642
+ };
1643
+ type OverviewBoardProps = React.ComponentPropsWithoutRef<"section"> & {
1644
+ eyebrow?: ReactNode;
1645
+ heading: ReactNode;
1646
+ items: OverviewBoardItem[];
1647
+ subtitle?: ReactNode;
1648
+ };
1649
+ declare const OverviewBoard: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
1650
+ eyebrow?: ReactNode;
1651
+ heading: ReactNode;
1652
+ items: OverviewBoardItem[];
1653
+ subtitle?: ReactNode;
1654
+ } & react.RefAttributes<HTMLElement>>;
1655
+
1268
1656
  type NavItem = {
1269
1657
  href: string;
1270
1658
  title: string;
@@ -1279,6 +1667,17 @@ declare function NavbarSaas({ brand, navItems, rightSlot, showMobileMenu, }: Nav
1279
1667
 
1280
1668
  declare function useMobile(): boolean;
1281
1669
 
1670
+ type RightDockProps = React.ComponentPropsWithoutRef<"aside"> & {
1671
+ footer?: ReactNode;
1672
+ header?: ReactNode;
1673
+ title?: ReactNode;
1674
+ };
1675
+ declare const RightDock: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
1676
+ footer?: ReactNode;
1677
+ header?: ReactNode;
1678
+ title?: ReactNode;
1679
+ } & react.RefAttributes<HTMLElement>>;
1680
+
1282
1681
  type SidebarItem = {
1283
1682
  href: string;
1284
1683
  title: string;
@@ -1311,6 +1710,184 @@ type TableOfContentsProps = {
1311
1710
  };
1312
1711
  declare function TableOfContents({ sections }: TableOfContentsProps): react_jsx_runtime.JSX.Element | null;
1313
1712
 
1713
+ type TopBarProps = React.ComponentPropsWithoutRef<"header"> & {
1714
+ leading?: ReactNode;
1715
+ subtitle?: ReactNode;
1716
+ title?: ReactNode;
1717
+ trailing?: ReactNode;
1718
+ };
1719
+ declare const TopBar: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
1720
+ leading?: ReactNode;
1721
+ subtitle?: ReactNode;
1722
+ title?: ReactNode;
1723
+ trailing?: ReactNode;
1724
+ } & react.RefAttributes<HTMLElement>>;
1725
+
1726
+ /**
1727
+ * One saved viewport.
1728
+ *
1729
+ * @public
1730
+ */
1731
+ type ViewportBookmark = {
1732
+ /** Optional accent color for the row glyph. */
1733
+ color?: string;
1734
+ /** Optional secondary line (zoom level, last-visited, owner). */
1735
+ detail?: ReactNode;
1736
+ /** Stable identifier — used as the React key. */
1737
+ id: string;
1738
+ /** Display name for the bookmark. */
1739
+ label: ReactNode;
1740
+ };
1741
+ /**
1742
+ * Localizable strings.
1743
+ *
1744
+ * @public
1745
+ */
1746
+ type ViewportBookmarksLabels = {
1747
+ /** Empty-state copy. Defaults to `"No saved views"`. */
1748
+ empty?: string;
1749
+ /** Aria-label override. Defaults to `"Viewport bookmarks"`. */
1750
+ region?: string;
1751
+ };
1752
+ /**
1753
+ * Props for {@link ViewportBookmarks}.
1754
+ *
1755
+ * @public
1756
+ */
1757
+ type ViewportBookmarksProps = {
1758
+ /** Optional active bookmark id — renders the row in the selected state. */
1759
+ activeId?: string;
1760
+ /** Bookmark entries in render order. */
1761
+ bookmarks: ViewportBookmark[];
1762
+ /** Localizable strings. */
1763
+ labels?: ViewportBookmarksLabels;
1764
+ /** Click handler — receives the activated bookmark id. */
1765
+ onSelect?: (id: string) => void;
1766
+ /** Optional title rendered above the rows. Defaults to `"Saved views"`. */
1767
+ title?: ReactNode;
1768
+ } & ComponentPropsWithoutRef<"section">;
1769
+ /**
1770
+ * Saved-view list for the canvas — the spatial parallel of a tab
1771
+ * bar's pinned tabs. Each bookmark stores a viewport target the host
1772
+ * resolves to a pan / zoom transition. Pure presentation; the host
1773
+ * owns the bookmark store and the camera animation.
1774
+ *
1775
+ * @example
1776
+ * ```tsx
1777
+ * <ViewportBookmarks
1778
+ * activeId={active}
1779
+ * bookmarks={[
1780
+ * { id: "home", label: "Home base", color: "#5b8def" },
1781
+ * { id: "incidents", label: "Incidents", detail: "5 open", color: "#ef4444" },
1782
+ * ]}
1783
+ * onSelect={jumpTo}
1784
+ * />
1785
+ * ```
1786
+ *
1787
+ * @public
1788
+ */
1789
+ declare const ViewportBookmarks: react.ForwardRefExoticComponent<{
1790
+ /** Optional active bookmark id — renders the row in the selected state. */
1791
+ activeId?: string;
1792
+ /** Bookmark entries in render order. */
1793
+ bookmarks: ViewportBookmark[];
1794
+ /** Localizable strings. */
1795
+ labels?: ViewportBookmarksLabels;
1796
+ /** Click handler — receives the activated bookmark id. */
1797
+ onSelect?: (id: string) => void;
1798
+ /** Optional title rendered above the rows. Defaults to `"Saved views"`. */
1799
+ title?: ReactNode;
1800
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & react.RefAttributes<HTMLElement>>;
1801
+
1802
+ /**
1803
+ * One spatial trail crumb.
1804
+ *
1805
+ * @public
1806
+ */
1807
+ type WorldCrumb = {
1808
+ /** Stable identifier — used as the React key. */
1809
+ id: string;
1810
+ /** Optional kind (drives the leading glyph). */
1811
+ kind?: WorldCrumbKind;
1812
+ /** Display label. */
1813
+ label: ReactNode;
1814
+ };
1815
+ /**
1816
+ * Glyph hint for a crumb kind.
1817
+ *
1818
+ * @public
1819
+ */
1820
+ type WorldCrumbKind = "agent" | "artifact" | "group" | "run" | "task" | "world";
1821
+ /**
1822
+ * Localizable strings.
1823
+ *
1824
+ * @public
1825
+ */
1826
+ type WorldBreadcrumbsLabels = {
1827
+ /** Empty-state copy. Defaults to `"No location"`. */
1828
+ empty?: string;
1829
+ /** Aria-label override. Defaults to `"World breadcrumbs"`. */
1830
+ region?: string;
1831
+ };
1832
+ /**
1833
+ * Props for {@link WorldBreadcrumbs}.
1834
+ *
1835
+ * @public
1836
+ */
1837
+ type WorldBreadcrumbsProps = {
1838
+ /** Trail in render order — the last crumb represents the active location. */
1839
+ crumbs: WorldCrumb[];
1840
+ /** Localizable strings. */
1841
+ labels?: WorldBreadcrumbsLabels;
1842
+ /** Click handler — receives the activated crumb id. */
1843
+ onSelect?: (id: string) => void;
1844
+ } & ComponentPropsWithoutRef<"nav">;
1845
+ /**
1846
+ * Spatial trail showing where the viewport sits in a hierarchy of
1847
+ * worlds / groups / runs / agents. Distinct from \`Breadcrumb\`
1848
+ * (route-based, document-tree style) — this primitive describes the
1849
+ * canvas's spatial location and supports per-kind glyphs.
1850
+ *
1851
+ * Pure presentation; the host computes the trail from the active
1852
+ * viewport target and the world graph, and resolves \`onSelect\` to a
1853
+ * camera transition.
1854
+ *
1855
+ * @example
1856
+ * ```tsx
1857
+ * <WorldBreadcrumbs
1858
+ * crumbs={[
1859
+ * { id: "world", kind: "world", label: "Production" },
1860
+ * { id: "group", kind: "group", label: "Ingest cluster" },
1861
+ * { id: "run", kind: "run", label: "research-2025" },
1862
+ * ]}
1863
+ * onSelect={jumpTo}
1864
+ * />
1865
+ * ```
1866
+ *
1867
+ * @public
1868
+ */
1869
+ declare const WorldBreadcrumbs: react.ForwardRefExoticComponent<{
1870
+ /** Trail in render order — the last crumb represents the active location. */
1871
+ crumbs: WorldCrumb[];
1872
+ /** Localizable strings. */
1873
+ labels?: WorldBreadcrumbsLabels;
1874
+ /** Click handler — receives the activated crumb id. */
1875
+ onSelect?: (id: string) => void;
1876
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & react.RefAttributes<HTMLElement>>;
1877
+
1878
+ type ZoomHUDProps = React.ComponentPropsWithoutRef<"div"> & {
1879
+ onReset?: () => void;
1880
+ onZoomIn?: () => void;
1881
+ onZoomOut?: () => void;
1882
+ zoom: number;
1883
+ };
1884
+ declare const ZoomHUD: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
1885
+ onReset?: () => void;
1886
+ onZoomIn?: () => void;
1887
+ onZoomOut?: () => void;
1888
+ zoom: number;
1889
+ } & react.RefAttributes<HTMLDivElement>>;
1890
+
1314
1891
  type ActivityLogTone = "danger" | "default" | "success" | "warning";
1315
1892
  type ActivityLogItem = {
1316
1893
  action: string;
@@ -1351,7 +1928,7 @@ type ContentCardPost = {
1351
1928
  title: string;
1352
1929
  updatedDate?: string;
1353
1930
  };
1354
- type ContentCardProps = {
1931
+ type ContentCardProps$1 = {
1355
1932
  formatDate?: (date: string, lang: string) => string;
1356
1933
  getDictValue?: (dict: Record<string, unknown>, path: string) => string;
1357
1934
  href: string;
@@ -1363,8 +1940,8 @@ type ContentCardProps = {
1363
1940
  showReadMore?: boolean;
1364
1941
  updatedLabel?: string;
1365
1942
  };
1366
- declare function ContentCard({ formatDate, href, lang, post, readMoreLabel, showBadge, showDate, showReadMore, updatedLabel, }: ContentCardProps): react_jsx_runtime.JSX.Element;
1367
- declare const BlogCard: typeof ContentCard;
1943
+ declare function ContentCard$1({ formatDate, href, lang, post, readMoreLabel, showBadge, showDate, showReadMore, updatedLabel, }: ContentCardProps$1): react_jsx_runtime.JSX.Element;
1944
+ declare const BlogCard: typeof ContentCard$1;
1368
1945
 
1369
1946
  type CategoryFilterProps = {
1370
1947
  categories: string[];
@@ -2080,6 +2657,41 @@ type SummaryProps = {
2080
2657
  };
2081
2658
  declare function Summary({ children, keyTakeaways, title, }: SummaryProps): react_jsx_runtime.JSX.Element;
2082
2659
 
2660
+ type LessonStatus = "available" | "completed" | "in-progress" | "locked";
2661
+ type LessonDifficulty = "advanced" | "beginner" | "intermediate";
2662
+ type CurriculumProps = {
2663
+ children: ReactNode;
2664
+ className?: string;
2665
+ defaultExpandedModules?: string[];
2666
+ title: string;
2667
+ totalHours?: number;
2668
+ };
2669
+ type CurriculumModuleProps = {
2670
+ children: ReactNode;
2671
+ className?: string;
2672
+ description?: string;
2673
+ estimatedHours?: number;
2674
+ id: string;
2675
+ title: string;
2676
+ };
2677
+ declare function CurriculumModule({ children, className, description, estimatedHours, id, title, }: CurriculumModuleProps): React.ReactNode;
2678
+ type CurriculumLessonProps = {
2679
+ className?: string;
2680
+ difficulty?: LessonDifficulty;
2681
+ duration?: string;
2682
+ href?: string;
2683
+ id?: string;
2684
+ prerequisites?: string[];
2685
+ status?: LessonStatus;
2686
+ title: string;
2687
+ };
2688
+ declare function CurriculumLesson({ className, difficulty, duration, href, prerequisites, status, title, }: CurriculumLessonProps): React.ReactNode;
2689
+ type CurriculumComponent = ((props: CurriculumProps) => React.ReactNode) & {
2690
+ Lesson: typeof CurriculumLesson;
2691
+ Module: typeof CurriculumModule;
2692
+ };
2693
+ declare const Curriculum: CurriculumComponent;
2694
+
2083
2695
  type ProgressBarProps = {
2084
2696
  className?: string;
2085
2697
  completedLabel?: string;
@@ -2092,6 +2704,100 @@ type ProgressBarProps = {
2092
2704
  };
2093
2705
  declare function ProgressBar({ className, completedLabel, currentLabel, isComplete, isLoading, max, showLabels, value, }: ProgressBarProps): React.ReactNode;
2094
2706
 
2707
+ type ContentCardProgress = {
2708
+ completedCount: number;
2709
+ totalSections: number;
2710
+ };
2711
+ type ContentCardProps = {
2712
+ /** Badge label for difficulty/category */
2713
+ badgeLabel: string;
2714
+ /** Badge variant */
2715
+ badgeVariant?: "default" | "destructive" | "outline" | "secondary";
2716
+ /** Card description */
2717
+ description: string;
2718
+ /** Function to get progress from storage */
2719
+ getProgress?: () => ContentCardProgress | null;
2720
+ /** Href for the card link */
2721
+ href: string;
2722
+ /** Link component to use (e.g., Next.js Link) */
2723
+ linkComponent?: React.ComponentType<{
2724
+ children: ReactNode;
2725
+ className?: string;
2726
+ href: string;
2727
+ }>;
2728
+ /** Metadata items (e.g., "30 min", "10 sections") */
2729
+ metadata?: string[];
2730
+ /** Progress completed label (e.g., "completed") */
2731
+ progressLabel?: string;
2732
+ /** Tags to display */
2733
+ tags?: string[];
2734
+ /** Card title */
2735
+ title: string;
2736
+ };
2737
+ declare function ContentCardImpl({ badgeLabel, badgeVariant, description, getProgress, href, linkComponent: LinkComponent, metadata, progressLabel, tags, title, }: ContentCardProps): React.ReactNode;
2738
+ declare const ContentCard: react.MemoExoticComponent<typeof ContentCardImpl>;
2739
+
2740
+ type ProgressTrackerModuleStatus = "available" | "completed" | "in-progress" | "locked";
2741
+ type ProgressTrackerModuleItem = {
2742
+ badge?: string;
2743
+ checklistItems?: ChecklistItem[];
2744
+ completedExercises?: number;
2745
+ completedLessons?: number;
2746
+ currentLesson?: string;
2747
+ description?: string;
2748
+ exercises?: number;
2749
+ href?: string;
2750
+ id?: string;
2751
+ lessons: number;
2752
+ persistKey?: string;
2753
+ progress: number;
2754
+ skills?: string[];
2755
+ status: ProgressTrackerModuleStatus;
2756
+ timeSpent?: string;
2757
+ title: string;
2758
+ };
2759
+ type ProgressTrackerProps = react.HTMLAttributes<HTMLDivElement> & {
2760
+ children?: ReactNode;
2761
+ modules?: ProgressTrackerModuleItem[];
2762
+ overallProgress: number;
2763
+ streak?: number;
2764
+ title?: string;
2765
+ };
2766
+ type ProgressTrackerContextValue = {
2767
+ modules: ProgressTrackerModuleItem[];
2768
+ overallProgress: number;
2769
+ streak: number;
2770
+ title?: string;
2771
+ };
2772
+ declare function useProgressTrackerContext(): ProgressTrackerContextValue;
2773
+ declare function ProgressTrackerRoot({ children, className, modules, overallProgress, streak, title, ...props }: ProgressTrackerProps): react.ReactNode;
2774
+ type ProgressTrackerOverviewProps = react.HTMLAttributes<HTMLDivElement> & {
2775
+ description?: string;
2776
+ label?: string;
2777
+ };
2778
+ declare function ProgressTrackerOverview({ className, description, label, ...props }: ProgressTrackerOverviewProps): react.ReactNode;
2779
+ type ProgressTrackerModulesProps = react.HTMLAttributes<HTMLDivElement>;
2780
+ declare function ProgressTrackerModules({ children, className, ...props }: ProgressTrackerModulesProps): react.ReactNode;
2781
+ type ProgressTrackerModuleProps = react.HTMLAttributes<HTMLDivElement> & ProgressTrackerModuleItem;
2782
+ declare function ProgressTrackerModule({ badge, checklistItems, className, completedExercises, completedLessons, currentLesson, description, exercises, href, id, lessons, persistKey, progress, skills, status, timeSpent, title, ...props }: ProgressTrackerModuleProps): react.ReactNode;
2783
+ type ProgressTrackerStatsProps = react.HTMLAttributes<HTMLDivElement>;
2784
+ declare function ProgressTrackerStats({ children, className, ...props }: ProgressTrackerStatsProps): react.ReactNode;
2785
+ type ProgressTrackerStatProps = react.HTMLAttributes<HTMLDivElement> & {
2786
+ label: string;
2787
+ value: ReactNode;
2788
+ };
2789
+ declare function ProgressTrackerStat({ className, label, value, ...props }: ProgressTrackerStatProps): react.ReactNode;
2790
+ type ProgressTrackerBadgeProps = react.HTMLAttributes<HTMLSpanElement>;
2791
+ declare function ProgressTrackerBadge({ children, className, ...props }: ProgressTrackerBadgeProps): react.ReactNode;
2792
+ declare const ProgressTracker: typeof ProgressTrackerRoot & {
2793
+ Badge: typeof ProgressTrackerBadge;
2794
+ Module: typeof ProgressTrackerModule;
2795
+ Modules: typeof ProgressTrackerModules;
2796
+ Overview: typeof ProgressTrackerOverview;
2797
+ Stat: typeof ProgressTrackerStat;
2798
+ Stats: typeof ProgressTrackerStats;
2799
+ };
2800
+
2095
2801
  type ProTipVariant = "advanced" | "best-practice" | "expert" | "gotcha" | "performance" | "tip";
2096
2802
  type ProTipProps = {
2097
2803
  children: ReactNode;
@@ -2705,6 +3411,24 @@ type ViewSwitcherProps = {
2705
3411
  };
2706
3412
  declare const ViewSwitcher: react.NamedExoticComponent<ViewSwitcherProps>;
2707
3413
 
3414
+ type WorkspaceOption = {
3415
+ description?: string;
3416
+ id: string;
3417
+ label: string;
3418
+ };
3419
+ type WorkspaceSwitcherProps = Omit<React.ComponentPropsWithoutRef<"div">, "defaultValue" | "onChange"> & {
3420
+ defaultValue?: string;
3421
+ onValueChange?: (value: string) => void;
3422
+ value?: string;
3423
+ workspaces: WorkspaceOption[];
3424
+ };
3425
+ declare const WorkspaceSwitcher: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "defaultValue" | "onChange"> & {
3426
+ defaultValue?: string;
3427
+ onValueChange?: (value: string) => void;
3428
+ value?: string;
3429
+ workspaces: WorkspaceOption[];
3430
+ } & react.RefAttributes<HTMLDivElement>>;
3431
+
2708
3432
  type FlowDiagramNode = {
2709
3433
  data: {
2710
3434
  description?: string;
@@ -2878,6 +3602,744 @@ declare const FlowFullscreen: react.NamedExoticComponent<FlowFullscreenProps>;
2878
3602
  */
2879
3603
  declare function useFlowDiagram(options?: UseFlowDiagramOptions): UseFlowDiagramReturn;
2880
3604
 
3605
+ type AnchorPortProps = React.ComponentPropsWithoutRef<"span"> & {
3606
+ side?: "bottom" | "left" | "right" | "top";
3607
+ state?: "active" | "blocked" | "idle";
3608
+ tone?: "bidirectional" | "input" | "output";
3609
+ };
3610
+ declare const AnchorPort: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
3611
+ side?: "bottom" | "left" | "right" | "top";
3612
+ state?: "active" | "blocked" | "idle";
3613
+ tone?: "bidirectional" | "input" | "output";
3614
+ } & react.RefAttributes<HTMLSpanElement>>;
3615
+
3616
+ /**
3617
+ * Resolution state of a pinned comment.
3618
+ *
3619
+ * @public
3620
+ */
3621
+ type CommentPinState = "open" | "resolved";
3622
+ /**
3623
+ * Localizable strings.
3624
+ *
3625
+ * @public
3626
+ */
3627
+ type CommentPinLabels = {
3628
+ /** Aria-label override. Defaults to `"Comment"`. */
3629
+ region?: string;
3630
+ /** Suffix appended after the unread count for screen readers. */
3631
+ unreadSuffix?: string;
3632
+ };
3633
+ /**
3634
+ * Props for {@link CommentPin}.
3635
+ *
3636
+ * @public
3637
+ */
3638
+ type CommentPinProps = {
3639
+ /** Optional author initial / glyph rendered inside the pin. */
3640
+ authorInitial?: ReactNode;
3641
+ /** Optional accent color for the pin. Defaults to the foreground. */
3642
+ color?: string;
3643
+ /** Localizable strings. */
3644
+ labels?: CommentPinLabels;
3645
+ /** Click handler — when provided, the pin becomes a button. */
3646
+ onActivate?: () => void;
3647
+ /** State of the underlying thread. Defaults to `"open"`. */
3648
+ state?: CommentPinState;
3649
+ /** Optional unread reply count. Renders as a small numeric badge. */
3650
+ unread?: number;
3651
+ /** Anchor X in canvas pixels. */
3652
+ x: number;
3653
+ /** Anchor Y in canvas pixels. */
3654
+ y: number;
3655
+ } & ComponentPropsWithoutRef<"div">;
3656
+ /**
3657
+ * Anchored discussion pin rendered at canvas coordinates. Use to mark
3658
+ * an object-anchored comment thread; click to expand into a
3659
+ * {@link "../thread-bubble/thread-bubble".ThreadBubble} (or whatever the host wires up).
3660
+ *
3661
+ * Pure presentation; the host owns the thread store + supplies the
3662
+ * unread count and resolution state.
3663
+ *
3664
+ * @example
3665
+ * ```tsx
3666
+ * <div className="relative h-screen w-screen">
3667
+ * <Canvas />
3668
+ * <CommentPin
3669
+ * x={420} y={180}
3670
+ * authorInitial="B"
3671
+ * unread={3}
3672
+ * onActivate={() => openThread("c-1")}
3673
+ * />
3674
+ * </div>
3675
+ * ```
3676
+ *
3677
+ * @public
3678
+ */
3679
+ declare const CommentPin: react.ForwardRefExoticComponent<{
3680
+ /** Optional author initial / glyph rendered inside the pin. */
3681
+ authorInitial?: ReactNode;
3682
+ /** Optional accent color for the pin. Defaults to the foreground. */
3683
+ color?: string;
3684
+ /** Localizable strings. */
3685
+ labels?: CommentPinLabels;
3686
+ /** Click handler — when provided, the pin becomes a button. */
3687
+ onActivate?: () => void;
3688
+ /** State of the underlying thread. Defaults to `"open"`. */
3689
+ state?: CommentPinState;
3690
+ /** Optional unread reply count. Renders as a small numeric badge. */
3691
+ unread?: number;
3692
+ /** Anchor X in canvas pixels. */
3693
+ x: number;
3694
+ /** Anchor Y in canvas pixels. */
3695
+ y: number;
3696
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
3697
+
3698
+ type ConnectorEdgePoint = {
3699
+ x: number;
3700
+ y: number;
3701
+ };
3702
+ type ConnectorEdgeProps = React.ComponentPropsWithoutRef<"div"> & {
3703
+ end: ConnectorEdgePoint;
3704
+ label?: string;
3705
+ start: ConnectorEdgePoint;
3706
+ state?: "active" | "blocked" | "idle";
3707
+ };
3708
+ declare const ConnectorEdge: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3709
+ end: ConnectorEdgePoint;
3710
+ label?: string;
3711
+ start: ConnectorEdgePoint;
3712
+ state?: "active" | "blocked" | "idle";
3713
+ } & react.RefAttributes<HTMLDivElement>>;
3714
+
3715
+ type EdgeLabelProps = React.ComponentPropsWithoutRef<"span"> & {
3716
+ emphasis?: "active" | "subtle";
3717
+ };
3718
+ declare const EdgeLabel: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
3719
+ emphasis?: "active" | "subtle";
3720
+ } & react.RefAttributes<HTMLSpanElement>>;
3721
+
3722
+ type GroupHullProps = React.ComponentPropsWithoutRef<"section"> & {
3723
+ description?: string;
3724
+ eyebrow?: ReactNode;
3725
+ title: string;
3726
+ };
3727
+ declare const GroupHull: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
3728
+ description?: string;
3729
+ eyebrow?: ReactNode;
3730
+ title: string;
3731
+ } & react.RefAttributes<HTMLElement>>;
3732
+
3733
+ /**
3734
+ * Localizable strings.
3735
+ *
3736
+ * @public
3737
+ */
3738
+ type LiveCursorLabels = {
3739
+ /** Aria-label override. Defaults to `"Live cursor"`. */
3740
+ region?: string;
3741
+ };
3742
+ /**
3743
+ * Props for {@link LiveCursor}.
3744
+ *
3745
+ * @public
3746
+ */
3747
+ type LiveCursorProps = {
3748
+ /** Tailwind / arbitrary CSS color used for the pointer + name chip. Defaults to `var(--foreground)`. */
3749
+ color?: string;
3750
+ /** Localizable strings. */
3751
+ labels?: LiveCursorLabels;
3752
+ /** Display name shown in the chip. Pass `null` to hide the chip. */
3753
+ name?: ReactNode;
3754
+ /** Optional secondary line in the chip (e.g. status, role). */
3755
+ status?: ReactNode;
3756
+ /** Cursor X in canvas pixels. */
3757
+ x: number;
3758
+ /** Cursor Y in canvas pixels. */
3759
+ y: number;
3760
+ } & ComponentPropsWithoutRef<"div">;
3761
+ /**
3762
+ * Remote user's cursor rendered at canvas coordinates with an optional
3763
+ * name + status chip. Pure presentation; the host owns the websocket
3764
+ * stream + maps user ids to colors.
3765
+ *
3766
+ * The wrapper is `pointer-events: none` so host gestures pass through.
3767
+ *
3768
+ * @example
3769
+ * ```tsx
3770
+ * <div className="relative h-screen w-screen">
3771
+ * <Canvas />
3772
+ * <LiveCursor x={420} y={180} name="Bea" color="#5b8def" />
3773
+ * </div>
3774
+ * ```
3775
+ *
3776
+ * @public
3777
+ */
3778
+ declare const LiveCursor: react.ForwardRefExoticComponent<{
3779
+ /** Tailwind / arbitrary CSS color used for the pointer + name chip. Defaults to `var(--foreground)`. */
3780
+ color?: string;
3781
+ /** Localizable strings. */
3782
+ labels?: LiveCursorLabels;
3783
+ /** Display name shown in the chip. Pass `null` to hide the chip. */
3784
+ name?: ReactNode;
3785
+ /** Optional secondary line in the chip (e.g. status, role). */
3786
+ status?: ReactNode;
3787
+ /** Cursor X in canvas pixels. */
3788
+ x: number;
3789
+ /** Cursor Y in canvas pixels. */
3790
+ y: number;
3791
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
3792
+
3793
+ type ObjectCardMetric = {
3794
+ label: string;
3795
+ value: ReactNode;
3796
+ };
3797
+ type ObjectCardAction = {
3798
+ label: string;
3799
+ onClick?: () => void;
3800
+ };
3801
+ type ObjectCardProps = React.ComponentPropsWithoutRef<"article"> & {
3802
+ actions?: ObjectCardAction[];
3803
+ footer?: ReactNode;
3804
+ kind?: string;
3805
+ metrics?: ObjectCardMetric[];
3806
+ ports?: ReactNode;
3807
+ state?: "blocked" | "complete" | "idle" | "running";
3808
+ summary?: string;
3809
+ title: string;
3810
+ };
3811
+ declare const ObjectCard: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
3812
+ actions?: ObjectCardAction[];
3813
+ footer?: ReactNode;
3814
+ kind?: string;
3815
+ metrics?: ObjectCardMetric[];
3816
+ ports?: ReactNode;
3817
+ state?: "blocked" | "complete" | "idle" | "running";
3818
+ summary?: string;
3819
+ title: string;
3820
+ } & react.RefAttributes<HTMLElement>>;
3821
+
3822
+ type ObjectHandleProps = Omit<React.ComponentPropsWithoutRef<"button">, "type"> & {
3823
+ hint?: ReactNode;
3824
+ label?: ReactNode;
3825
+ };
3826
+ declare const ObjectHandle: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "type"> & {
3827
+ hint?: ReactNode;
3828
+ label?: ReactNode;
3829
+ } & react.RefAttributes<HTMLButtonElement>>;
3830
+
3831
+ /**
3832
+ * Presence status — drives the corner dot color.
3833
+ *
3834
+ * @public
3835
+ */
3836
+ type PresenceStatus = "active" | "away" | "idle" | "offline";
3837
+ /**
3838
+ * One user in the presence stack.
3839
+ *
3840
+ * @public
3841
+ */
3842
+ type PresenceUser = {
3843
+ /** Optional accent color (hex / oklch / var). Drives the avatar fill. */
3844
+ color?: string;
3845
+ /** Stable identifier — used as the React key. */
3846
+ id: string;
3847
+ /** Avatar initial / glyph. */
3848
+ initial: ReactNode;
3849
+ /** Display name shown on hover (`title` attribute). */
3850
+ name?: string;
3851
+ /** Optional status. Defaults to `"active"`. */
3852
+ status?: PresenceStatus;
3853
+ };
3854
+ /**
3855
+ * Localizable strings.
3856
+ *
3857
+ * @public
3858
+ */
3859
+ type PresenceStackLabels = {
3860
+ /** Suffix for the overflow chip. Defaults to `"more"`. */
3861
+ overflowSuffix?: string;
3862
+ /** Aria-label override. Defaults to `"Live presence"`. */
3863
+ region?: string;
3864
+ };
3865
+ /**
3866
+ * Props for {@link PresenceStack}.
3867
+ *
3868
+ * @public
3869
+ */
3870
+ type PresenceStackProps = {
3871
+ /** Localizable strings. */
3872
+ labels?: PresenceStackLabels;
3873
+ /** Cap the rendered users; the rest collapse into a `+N` chip. Defaults to `5`. */
3874
+ max?: number;
3875
+ /** Optional click handler for the overflow chip. */
3876
+ onOverflowActivate?: () => void;
3877
+ /** Users sorted in render order (most-relevant first). */
3878
+ users: PresenceUser[];
3879
+ } & ComponentPropsWithoutRef<"div">;
3880
+ /**
3881
+ * Overlapping live-presence avatars showing who is in the canvas right
3882
+ * now. Each avatar carries an accent color, an initial, and a status
3883
+ * dot. Distinct from `AvatarGroup` (a static participant grouping):
3884
+ * this primitive centers on live status, a sane overflow, and
3885
+ * interactive expansion.
3886
+ *
3887
+ * Pure presentation; the host owns the websocket roster + maps user
3888
+ * ids to colors.
3889
+ *
3890
+ * @example
3891
+ * ```tsx
3892
+ * <PresenceStack
3893
+ * max={4}
3894
+ * users={[
3895
+ * { id: "1", initial: "B", color: "#5b8def", name: "Bea" },
3896
+ * { id: "2", initial: "L", color: "#10b981", name: "Lior", status: "away" },
3897
+ * { id: "3", initial: "S", color: "#f59e0b", name: "Sam", status: "idle" },
3898
+ * ]}
3899
+ * onOverflowActivate={() => openRoster()}
3900
+ * />
3901
+ * ```
3902
+ *
3903
+ * @public
3904
+ */
3905
+ declare const PresenceStack: react.ForwardRefExoticComponent<{
3906
+ /** Localizable strings. */
3907
+ labels?: PresenceStackLabels;
3908
+ /** Cap the rendered users; the rest collapse into a `+N` chip. Defaults to `5`. */
3909
+ max?: number;
3910
+ /** Optional click handler for the overflow chip. */
3911
+ onOverflowActivate?: () => void;
3912
+ /** Users sorted in render order (most-relevant first). */
3913
+ users: PresenceUser[];
3914
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
3915
+
3916
+ /**
3917
+ * Connection / sync state — drives the dot color + animation.
3918
+ *
3919
+ * @public
3920
+ */
3921
+ type PresenceSyncState = "error" | "live" | "offline" | "reconnecting" | "syncing";
3922
+ /**
3923
+ * Localizable strings.
3924
+ *
3925
+ * @public
3926
+ */
3927
+ type PresenceSyncIndicatorLabels = {
3928
+ /** Aria-label override. Defaults to `"Presence sync"`. */
3929
+ region?: string;
3930
+ };
3931
+ /**
3932
+ * Props for {@link PresenceSyncIndicator}.
3933
+ *
3934
+ * @public
3935
+ */
3936
+ type PresenceSyncIndicatorProps = {
3937
+ /** Optional override label (defaults to humanized state name). */
3938
+ label?: ReactNode;
3939
+ /** Localizable strings. */
3940
+ labels?: PresenceSyncIndicatorLabels;
3941
+ /** Connection state. */
3942
+ state: PresenceSyncState;
3943
+ /** Optional secondary line (peer count, latency). */
3944
+ status?: ReactNode;
3945
+ } & ComponentPropsWithoutRef<"div">;
3946
+ /**
3947
+ * Compact pill that surfaces live connection + sync health for the
3948
+ * canvas. Stays calm: a single dot + one-line label, with a subtle
3949
+ * pulse for transient `syncing` / `reconnecting` states.
3950
+ *
3951
+ * Pure presentation; the host owns the websocket / CRDT loop and maps
3952
+ * its diagnostics into one of five canonical states.
3953
+ *
3954
+ * @example
3955
+ * ```tsx
3956
+ * <PresenceSyncIndicator state="live" status="3 peers" />
3957
+ * <PresenceSyncIndicator state="reconnecting" status="retry 2/5" />
3958
+ * ```
3959
+ *
3960
+ * @public
3961
+ */
3962
+ declare const PresenceSyncIndicator: react.ForwardRefExoticComponent<{
3963
+ /** Optional override label (defaults to humanized state name). */
3964
+ label?: ReactNode;
3965
+ /** Localizable strings. */
3966
+ labels?: PresenceSyncIndicatorLabels;
3967
+ /** Connection state. */
3968
+ state: PresenceSyncState;
3969
+ /** Optional secondary line (peer count, latency). */
3970
+ status?: ReactNode;
3971
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
3972
+
3973
+ /**
3974
+ * Phase state — drives the bar tone.
3975
+ *
3976
+ * @public
3977
+ */
3978
+ type RunPhaseState = "complete" | "failed" | "queued" | "running" | "stopped";
3979
+ /**
3980
+ * One lane in a multi-lane run timeline.
3981
+ *
3982
+ * @public
3983
+ */
3984
+ type RunTimelineLane = {
3985
+ /** Stable identifier — used as the React key + phase routing. */
3986
+ id: string;
3987
+ /** Display label rendered to the left of the lane. */
3988
+ label: ReactNode;
3989
+ };
3990
+ /**
3991
+ * One phase block in the run timeline.
3992
+ *
3993
+ * @public
3994
+ */
3995
+ type RunTimelinePhase = {
3996
+ /** End timestamp in the same units as `start` / `end`. */
3997
+ end: number;
3998
+ /** Stable identifier — used as the React key + analytics hook. */
3999
+ id: string;
4000
+ /** Optional label rendered inside the phase bar. */
4001
+ label?: ReactNode;
4002
+ /** Lane id this phase belongs to. Defaults to `"default"` (single-lane mode). */
4003
+ laneId?: string;
4004
+ /** Optional click handler — when provided, the phase becomes a button. */
4005
+ onActivate?: () => void;
4006
+ /** Start timestamp `>= timeline start`. */
4007
+ start: number;
4008
+ /** Phase state. Defaults to `"running"`. */
4009
+ state?: RunPhaseState;
4010
+ };
4011
+ /**
4012
+ * Localizable strings.
4013
+ *
4014
+ * @public
4015
+ */
4016
+ type RunTimelineLabels = {
4017
+ /** Empty-state copy. Defaults to `"No phases"`. */
4018
+ empty?: string;
4019
+ /** Aria-label override. Defaults to `"Run timeline"`. */
4020
+ region?: string;
4021
+ };
4022
+ /**
4023
+ * Props for {@link RunTimeline}.
4024
+ *
4025
+ * @public
4026
+ */
4027
+ type RunTimelineProps = {
4028
+ /** Optional cursor position in the same units as the range. Renders a vertical line. */
4029
+ cursor?: number;
4030
+ /** End of the time range. Must be `> start`. */
4031
+ end: number;
4032
+ /** Optional formatter for the start / cursor / end labels. */
4033
+ formatValue?: (value: number) => ReactNode;
4034
+ /** Localizable strings. */
4035
+ labels?: RunTimelineLabels;
4036
+ /** Optional explicit lane definitions in render order. Required for multi-lane mode. */
4037
+ lanes?: RunTimelineLane[];
4038
+ /** Phase blocks — order is irrelevant; routed to lanes by `laneId`. */
4039
+ phases: RunTimelinePhase[];
4040
+ /** Start of the time range. */
4041
+ start: number;
4042
+ } & ComponentPropsWithoutRef<"section">;
4043
+ /**
4044
+ * Multi-lane execution timeline showing run phases over time. Each
4045
+ * phase renders as a colored bar positioned by its start / end and
4046
+ * routed to a lane by `laneId`. Optional cursor draws a thin vertical
4047
+ * line for the current playback position.
4048
+ *
4049
+ * Pure presentation; the host computes the phase list from the run's
4050
+ * execution history. Pair with {@link "../timeline-scrubber/timeline-scrubber".TimelineScrubber}
4051
+ * to drive the cursor.
4052
+ *
4053
+ * Distinct from `MapTimeline` (geo-aware), `Stepper` (sequential
4054
+ * steps), and the timeline family `#32`–`#35`: this primitive is
4055
+ * specifically the run history surface inside the canvas.
4056
+ *
4057
+ * @example
4058
+ * ```tsx
4059
+ * <RunTimeline
4060
+ * start={0} end={3600}
4061
+ * cursor={1800}
4062
+ * lanes={[
4063
+ * { id: "ingest", label: "Ingest" },
4064
+ * { id: "rank", label: "Rank" },
4065
+ * ]}
4066
+ * phases={[
4067
+ * { id: "1", laneId: "ingest", start: 0, end: 600, state: "complete", label: "load" },
4068
+ * { id: "2", laneId: "rank", start: 600, end: 2400, state: "running", label: "score" },
4069
+ * ]}
4070
+ * />
4071
+ * ```
4072
+ *
4073
+ * @public
4074
+ */
4075
+ declare const RunTimeline: react.ForwardRefExoticComponent<{
4076
+ /** Optional cursor position in the same units as the range. Renders a vertical line. */
4077
+ cursor?: number;
4078
+ /** End of the time range. Must be `> start`. */
4079
+ end: number;
4080
+ /** Optional formatter for the start / cursor / end labels. */
4081
+ formatValue?: (value: number) => ReactNode;
4082
+ /** Localizable strings. */
4083
+ labels?: RunTimelineLabels;
4084
+ /** Optional explicit lane definitions in render order. Required for multi-lane mode. */
4085
+ lanes?: RunTimelineLane[];
4086
+ /** Phase blocks — order is irrelevant; routed to lanes by `laneId`. */
4087
+ phases: RunTimelinePhase[];
4088
+ /** Start of the time range. */
4089
+ start: number;
4090
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & react.RefAttributes<HTMLElement>>;
4091
+
4092
+ /**
4093
+ * Localizable strings.
4094
+ *
4095
+ * @public
4096
+ */
4097
+ type SelectionPresenceLabels = {
4098
+ /** Aria-label override. Defaults to `"Selection presence"`. */
4099
+ region?: string;
4100
+ };
4101
+ /**
4102
+ * Props for {@link SelectionPresence}.
4103
+ *
4104
+ * @public
4105
+ */
4106
+ type SelectionPresenceProps = {
4107
+ /** Tailwind / CSS color used for the border + chip. Defaults to `var(--foreground)`. */
4108
+ color?: string;
4109
+ /** Selection rectangle height in pixels. */
4110
+ height: number;
4111
+ /** Localizable strings. */
4112
+ labels?: SelectionPresenceLabels;
4113
+ /** Optional name shown in the corner chip (e.g. owner of the selection). */
4114
+ name?: ReactNode;
4115
+ /** Selection rectangle width in pixels. */
4116
+ width: number;
4117
+ /** Selection rectangle X (top-left) in canvas pixels. */
4118
+ x: number;
4119
+ /** Selection rectangle Y (top-left) in canvas pixels. */
4120
+ y: number;
4121
+ } & ComponentPropsWithoutRef<"div">;
4122
+ /**
4123
+ * Overlay marking what another user has selected on the canvas. The
4124
+ * dashed border + soft fill stay calm so they communicate
4125
+ * "someone-else's-selection" without blocking primary content. Pure
4126
+ * presentation; the host computes the rect from the remote user's
4127
+ * viewport and supplies an accent color per user.
4128
+ *
4129
+ * The wrapper is `pointer-events: none` so host gestures pass through.
4130
+ *
4131
+ * @example
4132
+ * ```tsx
4133
+ * <div className="relative h-screen w-screen">
4134
+ * <Canvas />
4135
+ * <SelectionPresence
4136
+ * x={120} y={80} width={240} height={120}
4137
+ * color="#5b8def"
4138
+ * name="Bea"
4139
+ * />
4140
+ * </div>
4141
+ * ```
4142
+ *
4143
+ * @public
4144
+ */
4145
+ declare const SelectionPresence: react.ForwardRefExoticComponent<{
4146
+ /** Tailwind / CSS color used for the border + chip. Defaults to `var(--foreground)`. */
4147
+ color?: string;
4148
+ /** Selection rectangle height in pixels. */
4149
+ height: number;
4150
+ /** Localizable strings. */
4151
+ labels?: SelectionPresenceLabels;
4152
+ /** Optional name shown in the corner chip (e.g. owner of the selection). */
4153
+ name?: ReactNode;
4154
+ /** Selection rectangle width in pixels. */
4155
+ width: number;
4156
+ /** Selection rectangle X (top-left) in canvas pixels. */
4157
+ x: number;
4158
+ /** Selection rectangle Y (top-left) in canvas pixels. */
4159
+ y: number;
4160
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
4161
+
4162
+ /**
4163
+ * One message in a thread bubble.
4164
+ *
4165
+ * @public
4166
+ */
4167
+ type ThreadMessage = {
4168
+ /** Author display name. */
4169
+ author: ReactNode;
4170
+ /** Optional accent color for the author chip. */
4171
+ authorColor?: string;
4172
+ /** Message body — rendered as-is, can be plain text or a `ReactNode`. */
4173
+ body: ReactNode;
4174
+ /** Stable identifier — used as the React key + analytics hook. */
4175
+ id: string;
4176
+ /** Pre-formatted timestamp (host owns formatting). */
4177
+ ts?: ReactNode;
4178
+ };
4179
+ /**
4180
+ * Localizable strings.
4181
+ *
4182
+ * @public
4183
+ */
4184
+ type ThreadBubbleLabels = {
4185
+ /** Empty-state copy. Defaults to `"No replies yet"`. */
4186
+ empty?: string;
4187
+ /** Aria-label override. Defaults to `"Comment thread"`. */
4188
+ region?: string;
4189
+ };
4190
+ /**
4191
+ * Props for {@link ThreadBubble}.
4192
+ *
4193
+ * @public
4194
+ */
4195
+ type ThreadBubbleProps = {
4196
+ /** Optional footer slot — typically a reply input. */
4197
+ footer?: ReactNode;
4198
+ /** Localizable strings. */
4199
+ labels?: ThreadBubbleLabels;
4200
+ /** Messages newest-last. */
4201
+ messages: ThreadMessage[];
4202
+ /** Optional resolve handler. When provided, a "Resolve" button appears in the header. */
4203
+ onResolve?: () => void;
4204
+ /** Optional thread title (e.g. anchored object name). */
4205
+ title?: ReactNode;
4206
+ } & ComponentPropsWithoutRef<"section">;
4207
+ /**
4208
+ * Expanded discussion bubble for an anchored canvas comment thread.
4209
+ * Renders a stacked message list plus an optional reply slot via
4210
+ * `footer`. Pair with {@link "../comment-pin/comment-pin".CommentPin}: pin marks the location,
4211
+ * bubble holds the conversation.
4212
+ *
4213
+ * Pure presentation; the host owns the message store + supplies the
4214
+ * resolve handler for hosts that allow threading.
4215
+ *
4216
+ * @example
4217
+ * ```tsx
4218
+ * <ThreadBubble
4219
+ * title="research-2025"
4220
+ * messages={[
4221
+ * { id: "1", author: "Bea", authorColor: "#5b8def", body: "Why fallback?", ts: "12s" },
4222
+ * { id: "2", author: "Lior", authorColor: "#10b981", body: "p95 spike — see graph", ts: "9s" },
4223
+ * ]}
4224
+ * footer={<ReplyInput onSubmit={post} />}
4225
+ * onResolve={resolve}
4226
+ * />
4227
+ * ```
4228
+ *
4229
+ * @public
4230
+ */
4231
+ declare const ThreadBubble: react.ForwardRefExoticComponent<{
4232
+ /** Optional footer slot — typically a reply input. */
4233
+ footer?: ReactNode;
4234
+ /** Localizable strings. */
4235
+ labels?: ThreadBubbleLabels;
4236
+ /** Messages newest-last. */
4237
+ messages: ThreadMessage[];
4238
+ /** Optional resolve handler. When provided, a "Resolve" button appears in the header. */
4239
+ onResolve?: () => void;
4240
+ /** Optional thread title (e.g. anchored object name). */
4241
+ title?: ReactNode;
4242
+ } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & react.RefAttributes<HTMLElement>>;
4243
+
4244
+ /** A single tool call made by the assistant. */
4245
+ type ToolCall = {
4246
+ id: string;
4247
+ input?: Record<string, unknown>;
4248
+ name: string;
4249
+ result?: string;
4250
+ };
4251
+ /** A single message in the conversation. */
4252
+ type ConversationMessage = {
4253
+ content: string;
4254
+ id: string;
4255
+ /** Whether the assistant still streams this individual message. */
4256
+ isStreaming?: boolean;
4257
+ role: "assistant" | "user";
4258
+ /** AI reasoning/thinking content. The component renders this via ThinkingBlock. */
4259
+ thinking?: string;
4260
+ toolCalls?: ToolCall[];
4261
+ };
4262
+ type ConversationThreadProps = {
4263
+ children?: ReactNode;
4264
+ className?: string;
4265
+ /** Whether the assistant generates a response. */
4266
+ isStreaming?: boolean;
4267
+ messages: ConversationMessage[];
4268
+ onFeedback?: (messageId: string, feedback: "negative" | "positive") => void;
4269
+ onRetry?: (messageId: string) => void;
4270
+ /** Calls onSend with the suggestion text after the user clicks a ConversationSuggestions chip. */
4271
+ onSend?: (message: string) => void;
4272
+ };
4273
+ type ConversationHeaderProps = {
4274
+ children?: ReactNode;
4275
+ className?: string;
4276
+ };
4277
+ type ConversationTitleProps = {
4278
+ children?: ReactNode;
4279
+ className?: string;
4280
+ };
4281
+ type ConversationMessagesProps = {
4282
+ /** Overlay children: ConversationEmpty, ConversationScrollButton, ConversationLoading. */
4283
+ children?: ReactNode;
4284
+ className?: string;
4285
+ };
4286
+ type ConversationEmptyProps = {
4287
+ children?: ReactNode;
4288
+ className?: string;
4289
+ };
4290
+ type ConversationSuggestionsProps = {
4291
+ className?: string;
4292
+ suggestions?: string[];
4293
+ };
4294
+ type ConversationScrollButtonProps = {
4295
+ className?: string;
4296
+ };
4297
+ type ConversationLoadingProps = {
4298
+ className?: string;
4299
+ };
4300
+ /**
4301
+ * Root provider for the ConversationThread compound component family.
4302
+ *
4303
+ * @example
4304
+ * ```tsx
4305
+ * <ConversationThread messages={messages} isStreaming={isStreaming} onSend={handleSend}>
4306
+ * <ConversationHeader><ConversationTitle>Chat</ConversationTitle></ConversationHeader>
4307
+ * <ConversationMessages>
4308
+ * <ConversationEmpty>
4309
+ * <ConversationSuggestions suggestions={["Hello!", "Help me with..."]} />
4310
+ * </ConversationEmpty>
4311
+ * <ConversationScrollButton />
4312
+ * <ConversationLoading />
4313
+ * </ConversationMessages>
4314
+ * </ConversationThread>
4315
+ * ```
4316
+ */
4317
+ declare const ConversationThread: react.ForwardRefExoticComponent<ConversationThreadProps & react.RefAttributes<HTMLDivElement>>;
4318
+ /** Optional header slot, rendered above the message list. */
4319
+ declare const ConversationHeader: react.ForwardRefExoticComponent<ConversationHeaderProps & react.RefAttributes<HTMLDivElement>>;
4320
+ /** Title text for use inside ConversationHeader. */
4321
+ declare const ConversationTitle: react.ForwardRefExoticComponent<ConversationTitleProps & react.RefAttributes<HTMLHeadingElement>>;
4322
+ /**
4323
+ * Scrollable message list container. Renders messages from context.
4324
+ * Pass ConversationEmpty, ConversationScrollButton, and ConversationLoading as children —
4325
+ * the component renders these as absolute overlays that read state from context.
4326
+ */
4327
+ declare const ConversationMessages: react.ForwardRefExoticComponent<ConversationMessagesProps & react.RefAttributes<HTMLDivElement>>;
4328
+ /**
4329
+ * Shown when the message list is empty. Hides automatically once messages exist.
4330
+ * Renders as a centered overlay — pass ConversationSuggestions or custom content as children.
4331
+ */
4332
+ declare const ConversationEmpty: react.ForwardRefExoticComponent<ConversationEmptyProps & react.RefAttributes<HTMLDivElement>>;
4333
+ /** Suggested prompt chips displayed in the empty state. Calls onSend when clicked. */
4334
+ declare const ConversationSuggestions: react.ForwardRefExoticComponent<ConversationSuggestionsProps & react.RefAttributes<HTMLDivElement>>;
4335
+ /** Floating button that appears when the user scrolls up, to jump back to the bottom. */
4336
+ declare const ConversationScrollButton: react.ForwardRefExoticComponent<ConversationScrollButtonProps & react.RefAttributes<HTMLButtonElement>>;
4337
+ /**
4338
+ * Typing indicator shown while the assistant is streaming a response.
4339
+ * Visible when isStreaming is true and the last message role is "assistant".
4340
+ */
4341
+ declare const ConversationLoading: react.ForwardRefExoticComponent<ConversationLoadingProps & react.RefAttributes<HTMLDivElement>>;
4342
+
2881
4343
  type InlineInputProps = {
2882
4344
  className?: string;
2883
4345
  /** Called when user presses Escape or blurs without changes. */
@@ -3042,4 +4504,4 @@ declare function useHorizontalScroll(): UseHorizontalScrollReturn;
3042
4504
 
3043
4505
  declare function cn(...inputs: ClassValue[]): string;
3044
4506
 
3045
- export { AIChatInput, type AIChatInputProps, AIMessageBubble, type AIMessageBubbleProps, AISourceCitation, type AISourceCitationProps, AIStreamingText, type AIStreamingTextProps, AIToolCallDisplay, type AIToolCallDisplayProps, type AIToolCallStatus, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, ActivityHeatmap, type ActivityHeatmapItem, type ActivityHeatmapProps, ActivityLog, type ActivityLogItem, type ActivityLogProps, type ActivityLogTone, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedText, type AnimatedTextProps, Annotation, type AnnotationProps, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, AvatarImage, Badge, type BadgeProps, BarChart, BeforeAfter, type BeforeAfterProps, BlogCard, BorderBeam, type BorderBeamProps, Breadcrumb, type BreadcrumbItem, Button, type ButtonProps, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutVariant, CandlestickChart, type CandlestickChartProps, type CandlestickDatum, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryFilter, Checkbox, Checklist, type ChecklistItem, type ChecklistProps, CodeBlock, CodePlayground, type CodePlaygroundProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, type ComboboxOption, type ComboboxProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommonMistake, type CommonMistakeProps, Comparison, type ComparisonProps, CompletionDialog, type CompletionDialogProps, Content, ContentCard, ContentIntro, type ContentIntroLabels, type ContentIntroProps, type ContentIntroSection, type ContentMeta, type ContentProgress, type ContentSection, type ContentSectionMinimal, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CookieConsent, type CookieConsentProps, type CopyStatus, CountdownTimer, type CountdownTimerProps, CreditBadge, type CreditBadgeProps, type CreditBadgeStatus, DataList, DataListItem, type DataListItemProps, DataListLabel, type DataListProps, DataListValue, DataTableComponent as DataTable, type DataTableFilter, type DataTableFilterOption, type DataTableProps, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type DifficultyLevel, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Exercise, type ExerciseProps, FAQ, FAQItem, type FAQItemProps, type FAQProps, FileTree, type FileTreeProps, FileUpload, type FileUploadProps, FilterBar, type FilterBarLabels, type FilterBarProps, type FilterOption, type FilterUpdates, Flashcard, type FlashcardProps, FloatingActionButton, type FloatingActionButtonProps, FlowControls, type FlowControlsProps, FlowDiagram, type FlowDiagramEdge, type FlowDiagramNode, type FlowDiagramProps, FlowErrorBoundary, FlowFullscreen, type FlowFullscreenProps, Glossary, type GlossaryProps, Highlight, type HighlightProps, HorizontalScrollRow, type HorizontalScrollRowProps, HoverCard, HoverCardContent, HoverCardTrigger, InlineInput, type InlineInputProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, KeyConcept, type KeyConceptProps, type KeyboardShortcut, KeyboardShortcutsHelp, type KeyboardShortcutsHelpProps, LANGUAGE_NAMES, Label, LangProvider, LearningObjectives, type LearningObjectivesProps, LineChart, LiveFeed, type LiveFeedEvent, type LiveFeedProps, MDXContent, MarketTreemap, type MarketTreemapItem, type MarketTreemapProps, Marquee, type MarqueeProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGauge, type MetricGaugeProps, type MetricGaugeThreshold, type ModelInfo, ModelSelector, type ModelSelectorProps, type NavItem, NavbarSaas, type NavbarSaasProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NumberInput, type NumberInputProps, NumberTicker, type NumberTickerProps, OrderBook, type OrderBookLevel, type OrderBookProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PlanBadge, type PlanBadgeProps, type PlanBadgeState, type PlanBadgeTier, type PlatformConfig, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Prerequisites, type PrerequisitesProps, ProTip, type ProTipProps, type ProTipVariant, ProfileSection, ProgressBar, type ProgressBarProps, Quiz, type QuizOption, type QuizProps, RadioGroup, RadioGroupItem, Rating, type RatingProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RoleBadge, type RoleBadgeProps, type RoleBadgeRole, ScopeSelector, type ScopeSelectorNode, type ScopeSelectorProps, type ScopeSelectorSelection, ScrollArea, ScrollBar, SearchBar, SearchDialog, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SeverityBadge, type SeverityBadgeLevel, type SeverityBadgeProps, ShareDialog, type ShareDialogLabels, type SharePlatform as ShareDialogPlatform, type ShareDialogProps, type SharePlatform$1 as SharePlatform, type SharePlatformConfig, ShareSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, type SidebarItem, SidebarProvider, type SidebarSection, SidebarToggle, type SidebarToggleProps, SimpleTerminal, type SimpleTerminalProps, Skeleton, Slider, Slideshow, type SlideshowLabels, type SlideshowProps, type SlideshowSection, SocialFAB, type SocialFabActionConfig, type SocialFabLabels, type SocialFabProps, SparklineGrid, type SparklineGridItem, type SparklineGridProps, Spinner, type SpinnerProps, StatCard, type StatCardProps, StatusBoard, type StatusBoardItem, type StatusBoardProps, type StatusBoardStatus, StatusIndicator, type StatusIndicatorProps, Step, StepByStep, type StepByStepProps, StepNavigation, type StepNavigationProps, type StepProps, Stepper, type StepperProps, type StepperStep, SubscriptionCard, type SubscriptionCardProps, type SubscriptionCardStatus, Summary, type SummaryProps, Switch, TLDRSection, type TOCSection, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableOfContentsPanel, type TableOfContentsPanelProps, TableRow, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Terminal, type TerminalLine, type TerminalProps, Textarea, type TextareaProps, ThemeProvider, ThemeToggle, ThinkingBlock, type ThinkingBlockProps, TickerTape, type TickerTapeItem, type TickerTapeProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastTitle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, type TourProps, type TourStep, TruncatedText, type TruncatedTextProps, TutorialCard, type TutorialCardLabels, type TutorialCardMeta, type TutorialCardProgress, type TutorialCardProps, TutorialComplete, type TutorialCompleteLabels, type TutorialCompleteProps, type TutorialCompleteRelatedContent, type TutorialCompleteSection, TutorialFilters, type TutorialFiltersLabels, type TutorialFiltersProps, TutorialIntroContent, type TutorialIntroContentProps, TutorialMDX, type TutorialMDXProps, type SupportedLanguage as UISupportedLanguage, UnicodeSpinner, type UnicodeSpinnerAnimation, type UnicodeSpinnerProps, UsageBreakdown, type UsageBreakdownItem, type UsageBreakdownProps, type UsageBreakdownTone, type UseFlowDiagramOptions, type UseFlowDiagramReturn, VideoEmbed, type VideoEmbedProps, type ViewOption, ViewSwitcher, type ViewSwitcherProps, WalletCard, type WalletCardProps, Watchlist, type WatchlistItem, type WatchlistProps, WorldClockBar, type WorldClockBarProps, type WorldClockBarZone, alertVariants, avatarGroupVariants, avatarItemVariants, badgeVariants, buttonVariants, cn, cookieConsentVariants, dataListItemVariants, dataListVariants, dotVariants, getOtherLanguage, mdxComponents, navigationMenuTriggerStyle, severityBadgeVariants, statCardVariants, statusIndicatorVariants, toggleVariants, useDebounce, useFlowDiagram, useHorizontalScroll, useMobile, useSidebar, useSocialFab };
4507
+ export { AIChatInput, type AIChatInputProps, AIMessageBubble, type AIMessageBubbleProps, AISourceCitation, type AISourceCitationProps, AIStreamingText, type AIStreamingTextProps, AIToolCallDisplay, type AIToolCallDisplayProps, type AIToolCallStatus, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, ActivityHeatmap, type ActivityHeatmapItem, type ActivityHeatmapProps, ActivityLog, type ActivityLogItem, type ActivityLogProps, type ActivityLogTone, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnchorPort, type AnchorPortProps, AnimatedText, type AnimatedTextProps, Annotation, type AnnotationProps, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, AvatarImage, Badge, type BadgeProps, BarChart, BeforeAfter, type BeforeAfterProps, BlogCard, BorderBeam, type BorderBeamProps, BottomBar, type BottomBarProps, Breadcrumb, type BreadcrumbItem, Button, type ButtonProps, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutVariant, CandlestickChart, type CandlestickChartProps, type CandlestickDatum, CanvasShell, type CanvasShellInsets, type CanvasShellProps, type CanvasShellRouteConfig, CanvasView, type CanvasViewHandle, type CanvasViewProps, type CanvasViewport, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryFilter, type ChatDockMessage, ChatDockSection, type ChatDockSectionProps, Checkbox, Checklist, type ChecklistItem, type ChecklistProps, CodeBlock, CodePlayground, type CodePlaygroundProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, type ComboboxOption, type ComboboxProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommentPin, type CommentPinLabels, type CommentPinProps, type CommentPinState, CommonMistake, type CommonMistakeProps, Comparison, type ComparisonProps, CompletionDialog, type CompletionDialogProps, ConnectorEdge, type ConnectorEdgePoint, type ConnectorEdgeProps, Content, ContentCard$1 as ContentCard, ContentIntro, type ContentIntroLabels, type ContentIntroProps, type ContentIntroSection, type ContentMeta, type ContentProgress, type ContentSection, type ContentSectionMinimal, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ConversationEmpty, type ConversationEmptyProps, ConversationHeader, type ConversationHeaderProps, ConversationLoading, type ConversationLoadingProps, type ConversationMessage, ConversationMessages, type ConversationMessagesProps, ConversationScrollButton, type ConversationScrollButtonProps, ConversationSuggestions, type ConversationSuggestionsProps, ConversationThread, type ConversationThreadProps, ConversationTitle, type ConversationTitleProps, CookieConsent, type CookieConsentProps, type CopyStatus, CountdownTimer, type CountdownTimerProps, CreditBadge, type CreditBadgeProps, type CreditBadgeStatus, Curriculum, CurriculumLesson, type CurriculumLessonProps, CurriculumModule, type CurriculumModuleProps, type CurriculumProps, DataList, DataListItem, type DataListItemProps, DataListLabel, type DataListProps, DataListValue, DataTableComponent as DataTable, type DataTableFilter, type DataTableFilterOption, type DataTableProps, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type DifficultyLevel, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EdgeLabel, type EdgeLabelProps, Exercise, type ExerciseProps, FAQ, FAQItem, type FAQItemProps, type FAQProps, FileTree, type FileTreeProps, FileUpload, type FileUploadProps, FilterBar, type FilterBarLabels, type FilterBarProps, type FilterOption, type FilterUpdates, Flashcard, type FlashcardProps, FloatingActionButton, type FloatingActionButtonProps, FlowControls, type FlowControlsProps, FlowDiagram, type FlowDiagramEdge, type FlowDiagramNode, type FlowDiagramProps, FlowErrorBoundary, FlowFullscreen, type FlowFullscreenProps, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, type FormProps, GlassPanel, type GlassPanelProps, Glossary, type GlossaryProps, GroupHull, type GroupHullProps, Highlight, type HighlightProps, HorizontalScrollRow, type HorizontalScrollRowProps, HoverCard, HoverCardContent, HoverCardTrigger, InfinitePlane, type InfinitePlaneLabels, type InfinitePlanePattern, type InfinitePlaneProps, InlineInput, type InlineInputProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, KeyConcept, type KeyConceptProps, type KeyboardShortcut, KeyboardShortcutsHelp, type KeyboardShortcutsHelpProps, LANGUAGE_NAMES, Label, LangProvider, LearningObjectives, type LearningObjectivesProps, LeftRail, type LeftRailProps, type LessonDifficulty, type LessonStatus, LineChart, LiveCursor, type LiveCursorLabels, type LiveCursorProps, LiveFeed, type LiveFeedEvent, type LiveFeedProps, MDXContent, MarketTreemap, type MarketTreemapItem, type MarketTreemapProps, Marquee, type MarqueeProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGauge, type MetricGaugeProps, type MetricGaugeThreshold, type MiniMapMarker, MiniMapPanel, type MiniMapPanelProps, type ModelInfo, ModelSelector, type ModelSelectorProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, type NavItem, NavbarSaas, type NavbarSaasProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NumberInput, type NumberInputProps, NumberTicker, type NumberTickerProps, ObjectCard, type ObjectCardAction, type ObjectCardMetric, type ObjectCardProps, ObjectHandle, type ObjectHandleProps, OrderBook, type OrderBookLevel, type OrderBookProps, OverviewBoard, type OverviewBoardItem, type OverviewBoardProps, OverviewCard, type OverviewCardProps, type OverviewCardTone, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PlanBadge, type PlanBadgeProps, type PlanBadgeState, type PlanBadgeTier, type PlatformConfig, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Prerequisites, type PrerequisitesProps, PresenceStack, type PresenceStackLabels, type PresenceStackProps, type PresenceStatus, PresenceSyncIndicator, type PresenceSyncIndicatorLabels, type PresenceSyncIndicatorProps, type PresenceSyncState, type PresenceUser, ProTip, type ProTipProps, type ProTipVariant, ProfileSection, ProgressBar, type ProgressBarProps, ContentCard as ProgressCard, type ContentCardProgress as ProgressCardProgress, type ContentCardProps as ProgressCardProps, ProgressTracker, ProgressTrackerBadge, type ProgressTrackerBadgeProps, ProgressTrackerModule, type ProgressTrackerModuleItem, type ProgressTrackerModuleProps, type ProgressTrackerModuleStatus, ProgressTrackerModules, type ProgressTrackerModulesProps, ProgressTrackerOverview, type ProgressTrackerOverviewProps, type ProgressTrackerProps, ProgressTrackerStat, type ProgressTrackerStatProps, ProgressTrackerStats, type ProgressTrackerStatsProps, Quiz, type QuizOption, type QuizProps, RadioGroup, RadioGroupItem, Rating, type RatingProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RightDock, type RightDockProps, RoleBadge, type RoleBadgeProps, type RoleBadgeRole, type RunPhaseState, RunTimeline, type RunTimelineLabels, type RunTimelineLane, type RunTimelinePhase, type RunTimelineProps, ScopeSelector, type ScopeSelectorNode, type ScopeSelectorProps, type ScopeSelectorSelection, ScrollArea, ScrollBar, SearchBar, SearchDialog, SegmentedControl, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectionPresence, type SelectionPresenceLabels, type SelectionPresenceProps, Separator, SeverityBadge, type SeverityBadgeLevel, type SeverityBadgeProps, ShareDialog, type ShareDialogLabels, type SharePlatform as ShareDialogPlatform, type ShareDialogProps, type SharePlatform$1 as SharePlatform, type SharePlatformConfig, ShareSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, type SidebarItem, SidebarProvider, type SidebarSection, SidebarToggle, type SidebarToggleProps, SimpleTerminal, type SimpleTerminalProps, Skeleton, Slider, Slideshow, type SlideshowLabels, type SlideshowProps, type SlideshowSection, SocialFAB, type SocialFabActionConfig, type SocialFabLabels, type SocialFabProps, SparklineGrid, type SparklineGridItem, type SparklineGridProps, Spinner, type SpinnerProps, StatCard, type StatCardProps, StatusBoard, type StatusBoardItem, type StatusBoardProps, type StatusBoardStatus, StatusIndicator, type StatusIndicatorProps, Step, StepByStep, type StepByStepProps, StepNavigation, type StepNavigationProps, type StepProps, Stepper, type StepperProps, type StepperStep, SubscriptionCard, type SubscriptionCardProps, type SubscriptionCardStatus, Summary, type SummaryProps, Switch, TLDRSection, type TOCSection, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableOfContentsPanel, type TableOfContentsPanelProps, TableRow, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TagsInput, type TagsInputProps, Terminal, type TerminalLine, type TerminalProps, Textarea, type TextareaProps, ThemeProvider, ThemeToggle, ThinkingBlock, type ThinkingBlockProps, ThreadBubble, type ThreadBubbleLabels, type ThreadBubbleProps, type ThreadMessage, TickerTape, type TickerTapeItem, type TickerTapeProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastTitle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, type ToolCall, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopBar, type TopBarProps, Tour, type TourProps, type TourStep, TruncatedText, type TruncatedTextProps, TutorialCard, type TutorialCardLabels, type TutorialCardMeta, type TutorialCardProgress, type TutorialCardProps, TutorialComplete, type TutorialCompleteLabels, type TutorialCompleteProps, type TutorialCompleteRelatedContent, type TutorialCompleteSection, TutorialFilters, type TutorialFiltersLabels, type TutorialFiltersProps, TutorialIntroContent, type TutorialIntroContentProps, TutorialMDX, type TutorialMDXProps, type SupportedLanguage as UISupportedLanguage, UnicodeSpinner, type UnicodeSpinnerAnimation, type UnicodeSpinnerProps, UsageBreakdown, type UsageBreakdownItem, type UsageBreakdownProps, type UsageBreakdownTone, type UseFlowDiagramOptions, type UseFlowDiagramReturn, VideoEmbed, type VideoEmbedProps, type ViewOption, ViewSwitcher, type ViewSwitcherProps, type ViewportBookmark, ViewportBookmarks, type ViewportBookmarksLabels, type ViewportBookmarksProps, WalletCard, type WalletCardProps, Watchlist, type WatchlistItem, type WatchlistProps, type WorkspaceOption, WorkspaceSwitcher, type WorkspaceSwitcherProps, WorldBreadcrumbs, type WorldBreadcrumbsLabels, type WorldBreadcrumbsProps, WorldClockBar, type WorldClockBarProps, type WorldClockBarZone, type WorldCrumb, type WorldCrumbKind, ZoomHUD, type ZoomHUDProps, alertVariants, avatarGroupVariants, avatarItemVariants, badgeVariants, buttonVariants, cn, cookieConsentVariants, dataListItemVariants, dataListVariants, dotVariants, getOtherLanguage, mdxComponents, navigationMenuTriggerStyle, segmentedControlItemVariants, segmentedControlVariants, severityBadgeVariants, statCardVariants, statusIndicatorVariants, toggleVariants, useDebounce, useFlowDiagram, useFormField, useHorizontalScroll, useMobile, useProgressTrackerContext, useSidebar, useSocialFab };