@amsterdamdatalabs/enact-design-system 0.1.19 → 0.1.24

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 (70) hide show
  1. package/dist/components/ai/ContextSourceList/ContextSourceList.d.ts +21 -0
  2. package/dist/components/ai/ContextSourceList/index.d.ts +1 -0
  3. package/dist/components/ai/ConversationContextPanel/ConversationContextPanel.d.ts +39 -6
  4. package/dist/components/ai/ConversationContextPanel/index.d.ts +1 -1
  5. package/dist/components/core/Avatar/Avatar.d.ts +1 -1
  6. package/dist/components/core/Badge/Badge.d.ts +1 -1
  7. package/dist/components/core/Card/Card.d.ts +2 -2
  8. package/dist/components/core/Card/CardAction.d.ts +1 -1
  9. package/dist/components/core/Card/CardContent.d.ts +3 -1
  10. package/dist/components/core/Card/CardTitle.d.ts +4 -2
  11. package/dist/components/data/Table/Table.d.ts +1 -1
  12. package/dist/components/forms/Input/Input.d.ts +1 -1
  13. package/dist/components/forms/Select/Select.d.ts +1 -1
  14. package/dist/components/forms/Slider/Slider.d.ts +3 -1
  15. package/dist/components/layout/PanelDock/PanelDock.d.ts +4 -1
  16. package/dist/components/layout/SettingsShellView/SettingsShellView.d.ts +7 -3
  17. package/dist/components/navigation/ComposerMenuTrigger/ComposerMenuTrigger.d.ts +6 -1
  18. package/dist/components/navigation/FileTree/FileTree.d.ts +3 -0
  19. package/dist/components/navigation/FileTree/index.d.ts +1 -1
  20. package/dist/components/navigation/NavList/NavList.d.ts +1 -1
  21. package/dist/components/navigation/SegmentedControl/SegmentedControl.d.ts +1 -1
  22. package/dist/components/navigation/SidebarQuickNav/SidebarQuickNav.d.ts +1 -1
  23. package/dist/components/navigation/SidebarTree/SidebarTree.d.ts +3 -1
  24. package/dist/components/navigation/SplitActionMenu/SplitActionMenu.d.ts +2 -0
  25. package/dist/components/navigation/Tabs/Tabs.d.ts +1 -1
  26. package/dist/components/navigation/WorkspaceLauncher/WorkspaceLauncher.d.ts +3 -1
  27. package/dist/components/overlay/Menu/ContextMenu.d.ts +2 -2
  28. package/dist/components/overlay/Menu/Menu.d.ts +4 -2
  29. package/dist/components/shell/AgentSessionStarter/AgentSessionStarter.d.ts +3 -1
  30. package/dist/components/shell/AppShell/AppShell.d.ts +1 -1
  31. package/dist/components/shell/ChatNavigationToolbar/ChatNavigationToolbar.d.ts +10 -1
  32. package/dist/components/shell/TabbedColumnContentFrame/TabbedColumnContentFrame.d.ts +4 -1
  33. package/dist/components/shell/WorkAreaLayout/WorkAreaLayout.d.ts +8 -1
  34. package/dist/components/showcase/application/ApplicationShowcase.d.ts +1 -1
  35. package/dist/components/showcase/cards/widgets/Forms.d.ts +1 -1
  36. package/dist/components/showcase/charts/chartPreviewData.d.ts +1 -1
  37. package/dist/components/showcase/components/catalog.d.ts +4 -1
  38. package/dist/components/showcase/components/demos/index.d.ts +1 -1
  39. package/dist/components/showcase/components/demos/interactive-demos.d.ts +1 -0
  40. package/dist/components/showcase/mail/AccountSwitcher.d.ts +1 -1
  41. package/dist/components/showcase/mail/MailDisplay.d.ts +1 -1
  42. package/dist/components/showcase/mail/MailShowcase.d.ts +1 -1
  43. package/dist/components/showcase/mail/mailAccounts.d.ts +1 -1
  44. package/dist/components/showcase/mail/mailData.d.ts +2 -2
  45. package/dist/components/showcase/marketing/MarketingIcons.d.ts +1 -1
  46. package/dist/components/showcase/marketing/MarketingShowcase.d.ts +1 -1
  47. package/dist/components/showcase/typography/TypographyShowcase.d.ts +1 -1
  48. package/dist/components/system/AppearanceSwitch/AppearanceSwitch.d.ts +1 -1
  49. package/dist/components/system/AppearanceSwitch/AppearanceToggleButton.d.ts +1 -1
  50. package/dist/components/system/ThemeCustomizer/SliderWithInput.d.ts +2 -1
  51. package/dist/components/system/ThemeCustomizer/ThemeSlider.d.ts +1 -1
  52. package/dist/components/system/ThemeCustomizer/theme-color-catalog.d.ts +3 -3
  53. package/dist/components/system/ThemeProvider/theme-helpers.d.ts +14 -3
  54. package/dist/enact-design-system.css +1 -1
  55. package/dist/icons/inspect.d.ts +1 -1
  56. package/dist/icons/sparkles.d.ts +1 -1
  57. package/dist/icons/trending-down.d.ts +1 -1
  58. package/dist/icons/trending-up.d.ts +1 -1
  59. package/dist/index.d.ts +4 -2
  60. package/dist/index.js +15498 -15269
  61. package/dist/shared/utils/color.d.ts +1 -1
  62. package/dist/shared/utils/hsl-color.d.ts +1 -1
  63. package/dist/tokens/theme-families.generated.d.ts +41 -521
  64. package/dist/tokens/theme-preset-types.d.ts +1 -0
  65. package/dist/tokens/themes.d.ts +42 -522
  66. package/dist/tokens.css +738 -476
  67. package/package.json +17 -8
  68. package/dist/components/showcase/layout-showcase/LayoutShowcase.d.ts +0 -2
  69. package/dist/components/showcase/layout-showcase/index.d.ts +0 -1
  70. package/dist/tokens/theme-catalog.d.ts +0 -8
@@ -0,0 +1,21 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export interface ContextSourceListItem {
3
+ detail?: ReactNode;
4
+ icon?: ReactNode;
5
+ id: string;
6
+ label: ReactNode;
7
+ }
8
+ export type ContextSourceListLayout = "compact" | "stacked";
9
+ export interface ContextSourceListProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
10
+ layout?: ContextSourceListLayout;
11
+ onSourceSelect?: (id: string) => void;
12
+ selectedSourceId?: string;
13
+ sources?: ContextSourceListItem[];
14
+ testId?: string;
15
+ }
16
+ /**
17
+ * Token-backed source rows shared by compact context summaries and full source
18
+ * destinations. Selection is controlled and exposed with `aria-current`;
19
+ * interaction remains opt-in through the selection callback.
20
+ */
21
+ export declare function ContextSourceList({ className, layout, onSourceSelect, selectedSourceId, sources, testId, ...rest }: ContextSourceListProps): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ export { ContextSourceList, type ContextSourceListItem, type ContextSourceListLayout, type ContextSourceListProps, } from "./ContextSourceList";
@@ -1,4 +1,5 @@
1
1
  import type { HTMLAttributes, ReactNode, Ref } from "react";
2
+ import { type ContextSourceListItem } from "../ContextSourceList";
2
3
  export type ConversationContextStepStatus = "done" | "failed" | "pending" | "running";
3
4
  export interface ConversationContextStep {
4
5
  id: string;
@@ -16,17 +17,36 @@ export interface ConversationContextFolder {
16
17
  id: string;
17
18
  label: ReactNode;
18
19
  }
19
- export interface ConversationContextSource {
20
- icon?: ReactNode;
21
- id: string;
22
- label: ReactNode;
23
- }
20
+ export type ConversationContextSource = ContextSourceListItem;
24
21
  export interface ConversationContextPanelLabels {
25
22
  context?: string;
26
23
  folders?: string;
27
24
  outputs?: string;
28
25
  progress?: string;
26
+ viewAllSources?: string;
27
+ }
28
+ export interface ConversationContextSummaryRow {
29
+ detail?: string;
30
+ id: string;
31
+ label: string;
32
+ value: string;
29
33
  }
34
+ export type ConversationContextPanelState = {
35
+ kind: "ready";
36
+ isRefreshing?: boolean;
37
+ } | {
38
+ kind: "loading";
39
+ description?: string;
40
+ title?: string;
41
+ } | {
42
+ kind: "partial";
43
+ message: string;
44
+ title: string;
45
+ } | {
46
+ kind: "error";
47
+ message: string;
48
+ title: string;
49
+ };
30
50
  export interface ConversationContextPanelProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
31
51
  folders?: ConversationContextFolder[];
32
52
  labels?: ConversationContextPanelLabels;
@@ -34,12 +54,25 @@ export interface ConversationContextPanelProps extends Omit<HTMLAttributes<HTMLD
34
54
  onOpenChange: (open: boolean) => void;
35
55
  /** Called after the panel reports close intent for a selected output. */
36
56
  onOutputSelect?: (id: string) => void;
57
+ /** Retries the failed context sources when a non-ready state offers retry. */
58
+ onRetry?: () => void;
59
+ /** Called after the panel reports close intent for a selected source. */
60
+ onSourceSelect?: (id: string) => void;
61
+ /** Called after the panel reports close intent for a selected summary row. */
62
+ onSummaryRowSelect?: (id: string) => void;
63
+ /** Called after the panel reports close intent for the complete source list. */
64
+ onViewAllSources?: () => void;
37
65
  /** Required controlled disclosure state. */
38
66
  open: boolean;
39
67
  outputs?: ConversationContextOutput[];
40
68
  ref?: Ref<HTMLDivElement>;
69
+ /** Identifies the source currently selected by the consuming workspace. */
70
+ selectedSourceId?: string;
41
71
  sources?: ConversationContextSource[];
72
+ /** Renders an explicit loading, partial, or error state without inventing rows. */
73
+ state?: ConversationContextPanelState;
42
74
  steps?: ConversationContextStep[];
75
+ summaryRows?: ConversationContextSummaryRow[];
43
76
  testId?: string;
44
77
  triggerLabel?: string;
45
78
  }
@@ -48,4 +81,4 @@ export interface ConversationContextPanelProps extends Omit<HTMLAttributes<HTMLD
48
81
  * output navigation; this component owns the disclosure, visual grouping and
49
82
  * interaction states.
50
83
  */
51
- export declare function ConversationContextPanel({ className, folders, labels, onOpenChange, onOutputSelect, open, outputs, ref, sources, steps, testId, triggerLabel, ...rest }: ConversationContextPanelProps): import("react").JSX.Element;
84
+ export declare function ConversationContextPanel({ className, folders, labels, onOpenChange, onOutputSelect, onRetry, onSourceSelect, onSummaryRowSelect, onViewAllSources, open, outputs, ref, selectedSourceId, sources, state, summaryRows, steps, testId, triggerLabel, ...rest }: ConversationContextPanelProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- export { type ConversationContextFolder, type ConversationContextOutput, ConversationContextPanel, type ConversationContextPanelLabels, type ConversationContextPanelProps, type ConversationContextSource, type ConversationContextStep, type ConversationContextStepStatus, } from "./ConversationContextPanel";
1
+ export { type ConversationContextFolder, type ConversationContextOutput, ConversationContextPanel, type ConversationContextPanelLabels, type ConversationContextPanelProps, type ConversationContextPanelState, type ConversationContextSource, type ConversationContextStep, type ConversationContextStepStatus, type ConversationContextSummaryRow, } from "./ConversationContextPanel";
@@ -4,7 +4,7 @@ export interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
4
4
  ref?: Ref<HTMLSpanElement>;
5
5
  size?: "xs" | "sm" | "md" | "lg" | "xl";
6
6
  src?: string;
7
- /** `muted` matches shadcn AvatarFallback (bg-muted, muted-foreground). */
7
+ /** `muted` matches reference AvatarFallback (bg-muted, muted-foreground). */
8
8
  tone?: "brand" | "muted";
9
9
  }
10
10
  export interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
@@ -11,7 +11,7 @@ export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
11
11
  quality?: DataQuality;
12
12
  ref?: Ref<HTMLSpanElement>;
13
13
  tone?: "neutral" | "primary" | "secondary" | "brand" | "info" | "success" | "warning" | "danger" | "chart2";
14
- /** `outline` matches shadcn/tweakcn bordered badges. */
14
+ /** `outline` matches reference/reference bordered badges. */
15
15
  variant?: "solid" | "outline";
16
16
  }
17
17
  export declare function Badge({ tone, quality, variant, dot, icon, interactive, className, children, ref, ...rest }: BadgeProps): import("react").JSX.Element;
@@ -4,12 +4,12 @@ export interface CardProps extends HTMLAttributes<HTMLDivElement> {
4
4
  children?: ReactNode;
5
5
  /** Adds hover elevation + pointer affordance for clickable cards. */
6
6
  interactive?: boolean;
7
- /** Compound = shadcn slot layout (header/content/footer with inline padding). */
7
+ /** Compound = reference slot layout (header/content/footer with inline padding). */
8
8
  layout?: CardLayout;
9
9
  padding?: "none" | "sm" | "md" | "lg";
10
10
  ref?: Ref<HTMLDivElement>;
11
11
  variant?: "default" | "raised" | "sunken" | "inverse" | "flat";
12
12
  }
13
13
  export declare function Card({ variant, layout, padding, interactive, className, children, ref, ...rest }: CardProps): import("react").JSX.Element;
14
- /** Shadcn/tweakcn slot layout for dashboard showcase widgets. */
14
+ /** Compound slot layout flat surface matches live reference card probes (no shadow-sm). */
15
15
  export declare function CompoundCard({ variant, ...props }: Omit<CardProps, "layout" | "padding">): import("react").JSX.Element;
@@ -2,5 +2,5 @@ import type { HTMLAttributes, ReactNode } from "react";
2
2
  export interface CardActionProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children?: ReactNode;
4
4
  }
5
- /** shadcn/tweakcn card header action slot — aligns trailing controls on row 1. */
5
+ /** reference/reference card header action slot — aligns trailing controls on row 1. */
6
6
  export declare function CardAction({ className, children, ...rest }: CardActionProps): import("react").JSX.Element;
@@ -1,5 +1,7 @@
1
1
  import type { HTMLAttributes, ReactNode } from "react";
2
2
  export interface CardContentProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children?: ReactNode;
4
+ /** Compound layout only — donor activity feeds use row padding, not stack gap. */
5
+ stackGap?: "default" | "none";
4
6
  }
5
- export declare function CardContent({ className, children, ...rest }: CardContentProps): import("react").JSX.Element;
7
+ export declare function CardContent({ className, children, stackGap, ...rest }: CardContentProps): import("react").JSX.Element;
@@ -1,7 +1,9 @@
1
1
  import type { HTMLAttributes, ReactNode } from "react";
2
2
  export interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {
3
+ /** Donor CardTitle is a div; use div for metric numerals and other parity surfaces. */
4
+ as?: "h3" | "div";
3
5
  children?: ReactNode;
4
- /** tweakcn text-lg / text-xl / text-2xl / text-3xl card title scales */
6
+ /** reference text-lg / text-xl / text-2xl / text-3xl card title scales */
5
7
  size?: "md" | "lg" | "xl" | "2xl" | "3xl";
6
8
  }
7
- export declare function CardTitle({ className, children, size, ...rest }: CardTitleProps): import("react").JSX.Element;
9
+ export declare function CardTitle({ as, className, children, size, ...rest }: CardTitleProps): import("react").JSX.Element;
@@ -10,7 +10,7 @@ export interface TableProps extends HTMLAttributes<HTMLTableElement> {
10
10
  size?: "sm" | "md" | "lg";
11
11
  /** Pins the <thead> during scroll. */
12
12
  stickyHeader?: boolean;
13
- /** shadcn cards tables — plain headers, muted row hover/selection. */
13
+ /** reference cards tables — plain headers, muted row hover/selection. */
14
14
  variant?: "default" | "plain";
15
15
  /** Alternating row background (zebra striping). */
16
16
  zebra?: boolean;
@@ -3,7 +3,7 @@ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
3
3
  invalid?: boolean;
4
4
  ref?: Ref<HTMLInputElement>;
5
5
  size?: "sm" | "md" | "lg" | "tableCell";
6
- /** Borderless table/cell editing surface — matches tweakcn dashboard metric inputs. */
6
+ /** Borderless table/cell editing surface — matches the reference dashboard metric inputs. */
7
7
  variant?: "default" | "ghost";
8
8
  }
9
9
  export declare function Input({ size, variant, invalid, disabled, className, ref, ...rest }: InputProps): import("react").JSX.Element;
@@ -11,7 +11,7 @@ export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement
11
11
  }) => void;
12
12
  ref?: Ref<HTMLButtonElement>;
13
13
  size?: "sm" | "md" | "lg";
14
- /** `ghost` matches tweakcn borderless table metric inputs and inline selects. */
14
+ /** `ghost` matches the reference borderless table metric inputs and inline selects. */
15
15
  variant?: "default" | "ghost";
16
16
  }
17
17
  export declare function Select({ size, variant, fullWidth, invalid, disabled, className, children, value: controlledValue, defaultValue, onChange, id, name, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ref, ...rest }: SelectProps): import("react").JSX.Element;
@@ -1,6 +1,8 @@
1
1
  import type { ChangeEvent } from "react";
2
2
  export interface SliderProps {
3
3
  "aria-label": string;
4
+ className?: string;
5
+ disabled?: boolean;
4
6
  id?: string;
5
7
  max: number;
6
8
  min: number;
@@ -10,4 +12,4 @@ export interface SliderProps {
10
12
  testIdPrefix?: string;
11
13
  value: number;
12
14
  }
13
- export declare function Slider({ "aria-label": ariaLabel, id, max, min, onChange, step, testIdPrefix, value, }: SliderProps): import("react").JSX.Element;
15
+ export declare function Slider({ "aria-label": ariaLabel, className, disabled, id, max, min, onChange, step, testIdPrefix, value, }: SliderProps): import("react").JSX.Element;
@@ -1,5 +1,8 @@
1
1
  import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface PanelDockProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
3
+ /** At compact container widths, keep either the primary panel or dock and
4
+ * temporarily hide the other. Omit to preserve the side-by-side layout. */
5
+ compactMode?: "main" | "dock";
3
6
  /** Optional fixed-width supplementary panel. */
4
7
  dock?: ReactNode;
5
8
  /** Places the dock at the start or end of the main panel. Default: "end". */
@@ -15,4 +18,4 @@ export interface PanelDockProps extends Omit<HTMLAttributes<HTMLDivElement>, "ch
15
18
  * the panel contents and any persisted layout state; the DS owns the shared
16
19
  * canvas, clipping, and dock divider treatment.
17
20
  */
18
- export declare function PanelDock({ className, dock, dockPosition, dockWidth, main, ref, ...rest }: PanelDockProps): import("react").JSX.Element;
21
+ export declare function PanelDock({ className, compactMode, dock, dockPosition, dockWidth, main, ref, ...rest }: PanelDockProps): import("react").JSX.Element;
@@ -10,17 +10,21 @@ export interface SettingsShellNavigationItem {
10
10
  }
11
11
  export interface SettingsShellViewProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
12
12
  /** Settings sections rendered inside the controlled content flow. */
13
- children: ReactNode;
13
+ children?: ReactNode;
14
14
  /** Application-defined primary content header. */
15
15
  contentHeader?: ReactNode;
16
16
  /** Optional app-owned search or filtering control. */
17
17
  contentSearch?: ReactNode;
18
+ /** Opt-in shell density. Compact keeps category navigation to one calm row. */
19
+ density?: "compact" | "default";
18
20
  /** Optional app-owned footer controls and copy. */
19
21
  footer?: ReactNode;
22
+ /** Embedded layout: full grid, app nav slot, or center content only. */
23
+ layoutMode?: "embedded" | "navSlot" | "contentPanel" | "standalone";
20
24
  /** Compact navigation supplied for narrow layouts. */
21
25
  mobileNavigation?: ReactNode;
22
26
  /** Controlled desktop navigation items. */
23
- navigation: readonly SettingsShellNavigationItem[];
27
+ navigation?: readonly SettingsShellNavigationItem[];
24
28
  ref?: Ref<HTMLElement>;
25
29
  /** Optional app-owned content above the desktop navigation list. */
26
30
  sidebarHeader?: ReactNode;
@@ -30,4 +34,4 @@ export interface SettingsShellViewProps extends Omit<HTMLAttributes<HTMLElement>
30
34
  * Applications retain settings routes, persistence, tab state, copy, and the
31
35
  * individual setting fields while the DS owns the reusable shell chrome.
32
36
  */
33
- export declare function SettingsShellView({ children, className, contentHeader, contentSearch, footer, mobileNavigation, navigation, ref, sidebarHeader, ...rest }: SettingsShellViewProps): import("react").JSX.Element;
37
+ export declare function SettingsShellView({ children, className, contentHeader, contentSearch, density, footer, layoutMode, mobileNavigation, navigation, ref, sidebarHeader, ...rest }: SettingsShellViewProps): import("react").JSX.Element;
@@ -2,6 +2,11 @@ import type { ReactNode } from "react";
2
2
  import { type ButtonProps } from "../../core/Button/Button";
3
3
  export interface ComposerMenuTriggerProps extends Omit<ButtonProps, "children" | "type" | "variant"> {
4
4
  children: ReactNode;
5
+ /**
6
+ * Collapses the visual content to its leading child inside a narrow
7
+ * ComposerInput. Supply an explicit accessible name when enabling it.
8
+ */
9
+ compactAtNarrow?: boolean;
5
10
  /** Optional trailing badge, such as a selected effort level. */
6
11
  trailing?: ReactNode;
7
12
  }
@@ -11,4 +16,4 @@ export interface ComposerMenuTriggerProps extends Omit<ButtonProps, "children" |
11
16
  * State, menu contents, and command handling remain in the consumer; this
12
17
  * component owns only the reusable trigger presentation.
13
18
  */
14
- export declare function ComposerMenuTrigger({ children, className, trailing, ...rest }: ComposerMenuTriggerProps): import("react").JSX.Element;
19
+ export declare function ComposerMenuTrigger({ children, className, compactAtNarrow, trailing, ...rest }: ComposerMenuTriggerProps): import("react").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export type FileTreeNodeKind = "directory" | "file";
3
+ export type FileTreeIconTone = "accent" | "danger" | "default" | "info" | "success" | "warning";
3
4
  export type FileTreeState = "empty" | "error" | "loading" | "ready" | "unavailable";
4
5
  export interface FileTreeNodeMetadata {
5
6
  id: string;
@@ -19,6 +20,8 @@ export interface FileTreeNode {
19
20
  depth: number;
20
21
  expanded?: boolean;
21
22
  icon?: ReactNode;
23
+ /** Semantic icon color. The consuming application classifies the file. */
24
+ iconTone?: FileTreeIconTone;
22
25
  id: string;
23
26
  kind: FileTreeNodeKind;
24
27
  label: ReactNode;
@@ -1 +1 @@
1
- export { FileTree, type FileTreeLabels, type FileTreeNode, type FileTreeNodeAction, type FileTreeNodeKind, type FileTreeNodeMetadata, type FileTreeProps, type FileTreeState, } from "./FileTree";
1
+ export { FileTree, type FileTreeIconTone, type FileTreeLabels, type FileTreeNode, type FileTreeNodeAction, type FileTreeNodeKind, type FileTreeNodeMetadata, type FileTreeProps, type FileTreeState, } from "./FileTree";
@@ -35,7 +35,7 @@ export interface NavListProps extends HTMLAttributes<HTMLElement> {
35
35
  footer?: ReactNode;
36
36
  ref?: Ref<HTMLElement>;
37
37
  sections: NavListSection[];
38
- /** `sidebar` uses `--sidebar-*` tokens (tweakcn/shadcn app sidebar). */
38
+ /** `sidebar` uses `--sidebar-*` tokens (reference app sidebar). */
39
39
  tone?: NavListTone;
40
40
  }
41
41
  export declare function NavList({ sections, collapsed, current, footer, tone, className, ref, ...rest }: NavListProps): import("react").JSX.Element;
@@ -15,7 +15,7 @@ export interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElemen
15
15
  ref?: Ref<HTMLDivElement>;
16
16
  size?: "sm" | "md";
17
17
  value?: string;
18
- /** `filled` = pill track; `outline` = connected shadcn button group. */
18
+ /** `filled` = pill track; `outline` = connected reference button group. */
19
19
  variant?: "filled" | "outline";
20
20
  }
21
21
  export declare function SegmentedControl({ items, value, defaultValue, onChange, size, variant, outlineSelectedTone, fullWidth, className, ref, ...rest }: SegmentedControlProps): import("react").JSX.Element;
@@ -13,7 +13,7 @@ export interface SidebarQuickNavProps extends Omit<HTMLAttributes<HTMLElement>,
13
13
  items: SidebarQuickNavItem[];
14
14
  onSelect?: (id: string) => void;
15
15
  ref?: Ref<HTMLElement>;
16
- /** `sidebar` uses `--sidebar-*` tokens (tweakcn/shadcn app sidebar). */
16
+ /** `sidebar` uses `--sidebar-*` tokens (reference app sidebar). */
17
17
  tone?: SidebarQuickNavTone;
18
18
  }
19
19
  export declare function SidebarQuickNav({ items, activeId, collapsed, onSelect, tone, className, ref, "aria-label": ariaLabel, ...rest }: SidebarQuickNavProps): import("react").JSX.Element;
@@ -35,6 +35,8 @@ export interface SidebarTreeSection {
35
35
  onToggle?: (section: SidebarTreeSection) => void;
36
36
  }
37
37
  export interface SidebarTreeProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
38
+ /** Visual density. Defaults to the existing donor-compatible row geometry. */
39
+ density?: "default" | "compact";
38
40
  footer?: ReactNode;
39
41
  /** Public DS navigation component or another normalized quick-action view. */
40
42
  quickNav?: ReactNode;
@@ -43,4 +45,4 @@ export interface SidebarTreeProps extends Omit<HTMLAttributes<HTMLElement>, "chi
43
45
  /** Optional desktop title-bar spacer or product-owned top chrome. */
44
46
  titleBar?: ReactNode;
45
47
  }
46
- export declare function SidebarTree({ className, footer, quickNav, ref, sections, titleBar, ...rest }: SidebarTreeProps): import("react").JSX.Element;
48
+ export declare function SidebarTree({ className, density, footer, quickNav, ref, sections, titleBar, ...rest }: SidebarTreeProps): import("react").JSX.Element;
@@ -41,6 +41,8 @@ export interface SplitActionMenuActions {
41
41
  interface SplitActionMenuChoiceProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
42
42
  /** Accessible label for the choice trigger. */
43
43
  chooseLabel: string;
44
+ /** Keeps the closed primary compact while preserving labels in the menu. */
45
+ hidePrimaryLabel?: boolean;
44
46
  /** Called when the primary half is invoked. */
45
47
  onPrimary: () => void;
46
48
  /** Reports the newly selected option. The consumer persists the choice. */
@@ -18,7 +18,7 @@ export interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChang
18
18
  onClose?: (id: string) => void;
19
19
  ref?: Ref<HTMLDivElement>;
20
20
  size?: "sm" | "md";
21
- /** `underline` = nav tabs; `segmented` = muted pill switcher; `pill` = tweakcn preview/editor tabs;
21
+ /** `underline` = nav tabs; `segmented` = muted pill switcher; `pill` = reference preview/editor tabs;
22
22
  * `browser` = Chrome-style attached tabs (active tab merges into the panel below). */
23
23
  variant?: "underline" | "segmented" | "pill" | "browser";
24
24
  }
@@ -20,9 +20,11 @@ export interface WorkspaceLauncherProps extends Omit<HTMLAttributes<HTMLDivEleme
20
20
  ref?: Ref<HTMLDivElement>;
21
21
  /** Optional stable root test id. */
22
22
  testId?: string;
23
+ /** Visual treatment for actions; defaults to the original unframed list. */
24
+ variant?: "plain" | "surfaceRows";
23
25
  }
24
26
  /**
25
27
  * Presentational workspace launcher. Consumers determine available pane types,
26
28
  * labels, iconography, shortcuts, disabled state, and navigation effects.
27
29
  */
28
- export declare function WorkspaceLauncher({ className, items, ref, testId, ...rest }: WorkspaceLauncherProps): import("react").JSX.Element;
30
+ export declare function WorkspaceLauncher({ className, items, ref, testId, variant, ...rest }: WorkspaceLauncherProps): import("react").JSX.Element;
@@ -25,7 +25,7 @@ export interface ContextMenuProps {
25
25
  export declare function ContextMenu({ children, defaultOpen, onOpenChange, open, }: ContextMenuProps): ReactElement;
26
26
  export interface ContextMenuTriggerProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "style"> {
27
27
  accessibilityLabel?: string;
28
- accessibilityRole?: string;
28
+ accessibilityRole?: "button" | "tab";
29
29
  accessibilityState?: {
30
30
  disabled?: boolean;
31
31
  selected?: boolean;
@@ -52,7 +52,7 @@ export interface ContextMenuTriggerProps extends Omit<HTMLAttributes<HTMLDivElem
52
52
  testID?: string;
53
53
  triggerRef?: Ref<HTMLElement>;
54
54
  }
55
- export declare function ContextMenuTrigger({ accessibilityLabel, accessibilityRole: _accessibilityRole, accessibilityState, "aria-selected": ariaSelected, children, className, disabled, enabled, enabledOnWeb, onHoverIn, onHoverOut, onKeyDown, onPress, onPressIn, onPressOut, ref, style, testID, triggerRef, ...rest }: ContextMenuTriggerProps): ReactElement;
55
+ export declare function ContextMenuTrigger({ accessibilityLabel, accessibilityRole, accessibilityState, "aria-selected": ariaSelected, children, className, disabled, enabled, enabledOnMobile: _enabledOnMobile, enabledOnWeb, longPressDelayMs: _longPressDelayMs, onHoverIn, onHoverOut, onKeyDown, onPress, onPressIn, onPressOut, ref, style, testID, triggerRef, ...rest }: ContextMenuTriggerProps): ReactElement;
56
56
  export interface ContextMenuContentProps {
57
57
  align?: Alignment;
58
58
  children: ReactNode;
@@ -8,13 +8,15 @@ export interface MenuProps extends Omit<HTMLAttributes<HTMLDivElement>, "childre
8
8
  children: ReactNode;
9
9
  /** Gap between trigger and the menu panel (px). */
10
10
  offset?: number;
11
+ /** Called whenever the menu opens or closes. */
12
+ onOpenChange?(open: boolean): void;
11
13
  /** Which side to open on. Defaults to "bottom". */
12
14
  placement?: PlacementSide;
13
15
  ref?: Ref<HTMLDivElement>;
14
16
  /** The element that opens the menu. Receives aria-haspopup/aria-expanded/aria-controls. */
15
17
  trigger: ReactElement;
16
18
  }
17
- export declare function Menu({ align, children, offset, placement, trigger, className, ref, ...rest }: MenuProps): import("react").JSX.Element;
19
+ export declare function Menu({ align, children, offset, onOpenChange, placement, trigger, className, ref, ...rest }: MenuProps): import("react").JSX.Element;
18
20
  export interface MenuItemTrailingAction {
19
21
  /** Visual content, usually a compact icon. */
20
22
  icon: ReactNode;
@@ -43,7 +45,7 @@ export declare function MenuSeparator({ className, ref, ...rest }: MenuSeparator
43
45
  export interface MenuLabelProps extends HTMLAttributes<HTMLDivElement> {
44
46
  ref?: Ref<HTMLDivElement>;
45
47
  }
46
- /** Non-interactive heading row (tweakcn DropdownMenuLabel). */
48
+ /** Non-interactive heading row (reference DropdownMenuLabel). */
47
49
  export declare function MenuLabel({ className, children, ref, ...rest }: MenuLabelProps): import("react").JSX.Element;
48
50
  export interface MenuGroupProps extends HTMLAttributes<HTMLDivElement> {
49
51
  children: ReactNode;
@@ -2,8 +2,10 @@ import type { ReactNode } from "react";
2
2
  export interface AgentSessionStarterProps {
3
3
  children: ReactNode;
4
4
  className?: string;
5
+ /** Controls whether the starter supplies a card around the composer slot. */
6
+ composerFrame?: "card" | "none";
5
7
  eyebrow?: ReactNode;
6
8
  projectPath?: ReactNode;
7
9
  title?: ReactNode;
8
10
  }
9
- export declare function AgentSessionStarter({ children, className, eyebrow, projectPath, title, }: AgentSessionStarterProps): import("react").JSX.Element;
11
+ export declare function AgentSessionStarter({ children, className, composerFrame, eyebrow, projectPath, title, }: AgentSessionStarterProps): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import type { ReactNode, Ref } from "react";
2
2
  export type AppShellMode = "business" | "advanced";
3
3
  export type AppShellNavTone = "default" | "sidebar";
4
- /** `inset` renders the shadcn/tweakcn "sidebar layout" look: sidebar-tinted
4
+ /** `inset` renders the reference/reference "sidebar layout" look: sidebar-tinted
5
5
  * shell background with the main pane floating as a rounded, shadowed card. */
6
6
  export type AppShellSurface = "flat" | "inset";
7
7
  export interface AppShellProps {
@@ -1,7 +1,16 @@
1
1
  export interface ChatNavigationToolbarProps {
2
2
  activityState?: "read" | "running" | "unread";
3
+ canGoBack?: boolean;
4
+ canGoForward?: boolean;
3
5
  desktop?: boolean;
6
+ onBack?: () => void;
7
+ onForward?: () => void;
4
8
  onNewChat: () => void;
9
+ onSearch?: () => void;
5
10
  onShowSidebar?: () => void;
11
+ /** When false, omits Search without discarding the consumer callback. */
12
+ showSearch?: boolean;
13
+ /** When false, omits the sidebar reveal control (nav column already visible). */
14
+ showSidebarButton?: boolean;
6
15
  }
7
- export declare function ChatNavigationToolbar({ activityState, desktop, onNewChat, onShowSidebar, }: ChatNavigationToolbarProps): import("react").JSX.Element;
16
+ export declare function ChatNavigationToolbar({ activityState, canGoBack, canGoForward, desktop, onBack, onForward, onNewChat, onSearch, onShowSidebar, showSearch, showSidebarButton, }: ChatNavigationToolbarProps): import("react").JSX.Element;
@@ -2,6 +2,9 @@ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface TabbedColumnContentFrameProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
3
3
  /** Controlled workspace content, including application-owned pane lifecycles. */
4
4
  children: ReactNode;
5
+ /** Chrome composition. `stacked` preserves the existing header-over-tabs
6
+ * layout; `unified` places tabs and trailing header actions in one rail. */
7
+ chromeLayout?: "stacked" | "unified";
5
8
  /** Controlled header chrome rendered above tabs and content. */
6
9
  header?: ReactNode;
7
10
  /** Optional application-owned portal host rendered beside the main canvas. */
@@ -17,4 +20,4 @@ export interface TabbedColumnContentFrameProps extends Omit<HTMLAttributes<HTMLE
17
20
  * lifecycle, split persistence, and side effects while this view owns the
18
21
  * reusable canvas, column, and sidebar visual structure.
19
22
  */
20
- export declare function TabbedColumnContentFrame({ children, className, header, portalHost, ref, sidebar, tabStrip, ...rest }: TabbedColumnContentFrameProps): import("react").JSX.Element;
23
+ export declare function TabbedColumnContentFrame({ children, chromeLayout, className, header, portalHost, ref, sidebar, tabStrip, ...rest }: TabbedColumnContentFrameProps): import("react").JSX.Element;
@@ -1,17 +1,24 @@
1
1
  import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface WorkAreaLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
3
3
  conversation: ReactNode;
4
+ /** Shell chrome above the split body. In continuous mode it occupies only
5
+ * the conversation column so workspace chrome can remain adjacent at y=0. */
6
+ header?: ReactNode;
4
7
  maxWidth: number;
5
8
  minWidth: number;
6
9
  onWidthChange: (width: number) => void;
7
10
  open: boolean;
8
11
  ref?: Ref<HTMLDivElement>;
12
+ /** Structural surface relationship. `continuous` keeps both work panes on
13
+ * one semantic canvas and lets the separator—not a tonal slab—define them. */
14
+ surface?: "continuous" | "separated";
9
15
  width: number;
10
16
  workspace: ReactNode;
11
17
  workspaceContainerProps?: Omit<HTMLAttributes<HTMLDivElement>, "children" | "className"> & {
12
18
  className?: string;
13
19
  };
20
+ /** @deprecated Prefer `header` — kept for canvas-expanded overlay. */
14
21
  workspaceControls?: ReactNode;
15
22
  }
16
23
  /** Controlled conversation/workspace split frame. */
17
- export declare function WorkAreaLayout({ conversation, maxWidth, minWidth, onWidthChange, open, ref, width, workspace, workspaceContainerProps, workspaceControls, className, ...rootProps }: WorkAreaLayoutProps): import("react").JSX.Element;
24
+ export declare function WorkAreaLayout({ conversation, header, maxWidth, minWidth, onWidthChange, open, ref, surface, width, workspace, workspaceContainerProps, workspaceControls, className, ...rootProps }: WorkAreaLayoutProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
- /** tweakcn-aligned application blocks: ticker + 3-column feed grid. */
1
+ /** reference-aligned application blocks: ticker + 3-column feed grid. */
2
2
  export declare function ApplicationShowcase(): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
- /** tweakcn cards/forms — subscription upgrade card. */
1
+ /** reference cards/forms — subscription upgrade card. */
2
2
  export declare function CardsForms(): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- /** Shared tweakcn browser visitor chart series (chart-1..5). */
1
+ /** Shared reference browser visitor chart series (chart-1..5). */
2
2
  export declare const CHART_PREVIEW_DONUT: readonly [{
3
3
  readonly value: 275;
4
4
  readonly fill: "var(--chart-1)";
@@ -1,4 +1,4 @@
1
- /** Minimal theme-relevant primitives — shadcn-docs style, one demo + copyable snippet each. */
1
+ /** Minimal theme-relevant primitives — component docs style, one demo + copyable snippet each. */
2
2
  export declare const COMPONENT_DEMOS: readonly [{
3
3
  readonly id: "button";
4
4
  readonly label: "Button";
@@ -47,5 +47,8 @@ export declare const COMPONENT_DEMOS: readonly [{
47
47
  }, {
48
48
  readonly id: "workspace-split-layout";
49
49
  readonly label: "Workspace Split Layout";
50
+ }, {
51
+ readonly id: "interaction-state-lab";
52
+ readonly label: "Interaction State Lab";
50
53
  }];
51
54
  export type ComponentDemoId = (typeof COMPONENT_DEMOS)[number]["id"];
@@ -1,3 +1,3 @@
1
- export { CheckboxDemo, ModalDemo, NavListDemo, PopoverDemo, SelectDemo, SwitchDemo, TabsDemo, } from "./interactive-demos";
1
+ export { CheckboxDemo, InteractionStateLabDemo, ModalDemo, NavListDemo, PopoverDemo, SelectDemo, SwitchDemo, TabsDemo, } from "./interactive-demos";
2
2
  export { CommandPaletteDemo, CreateProjectModalDemo, ScheduledPanelDemo, WorkspaceSplitLayoutDemo, } from "./promotion-demos";
3
3
  export { AlertDemo, BadgeDemo, ButtonDemo, CardDemo, InputDemo, } from "./static-demos";
@@ -5,3 +5,4 @@ export declare function ModalDemo(): import("react").JSX.Element;
5
5
  export declare function PopoverDemo(): import("react").JSX.Element;
6
6
  export declare function TabsDemo(): import("react").JSX.Element;
7
7
  export declare function NavListDemo(): import("react").JSX.Element;
8
+ export declare function InteractionStateLabDemo(): import("react").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  export interface AccountSwitcherProps {
2
- /** Collapsed sidebar — icon-only trigger like tweakcn. */
2
+ /** Collapsed sidebar — icon-only trigger like the reference. */
3
3
  isCollapsed?: boolean;
4
4
  }
5
5
  export declare function AccountSwitcher({ isCollapsed }: AccountSwitcherProps): import("react").JSX.Element;
@@ -2,5 +2,5 @@ import { type MailDisplayMessage } from "./mailTypes";
2
2
  export interface MailDisplayProps {
3
3
  mail: MailDisplayMessage | null;
4
4
  }
5
- /** tweakcn mail message pane — toolbar, body, reply footer. */
5
+ /** reference mail message pane — toolbar, body, reply footer. */
6
6
  export declare function MailDisplay({ mail }: MailDisplayProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
- /** tweakcn-aligned mail example: account switcher, dual nav, inbox tabs, icon toolbar. */
1
+ /** reference-aligned mail example: account switcher, dual nav, inbox tabs, icon toolbar. */
2
2
  export declare function MailShowcase(): import("react").JSX.Element;
@@ -4,5 +4,5 @@ export interface MailAccount {
4
4
  icon: ReactNode;
5
5
  label: string;
6
6
  }
7
- /** tweakcn mail example accounts — trigger shows label, menu shows email + provider icon. */
7
+ /** reference mail example accounts — trigger shows label, menu shows email + provider icon. */
8
8
  export declare const MAIL_ACCOUNTS: MailAccount[];