@refraction-ui/react 0.18.4 → 0.19.1

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 (94) hide show
  1. package/dist/index.cjs +7147 -5367
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +3413 -2754
  4. package/dist/index.js.map +1 -1
  5. package/dist/internal/analytics/index.d.cts +6 -0
  6. package/dist/internal/analytics/index.d.ts +6 -0
  7. package/dist/internal/calendar/index.d.cts +5 -3
  8. package/dist/internal/calendar/index.d.ts +5 -3
  9. package/dist/internal/call-controls/index.d.ts +1 -3
  10. package/dist/internal/command-input/index.d.cts +10 -2
  11. package/dist/internal/command-input/index.d.ts +10 -2
  12. package/dist/internal/conversation/index.d.cts +2 -0
  13. package/dist/internal/conversation/index.d.ts +2 -0
  14. package/dist/internal/date-picker/index.d.cts +2 -0
  15. package/dist/internal/date-picker/index.d.ts +2 -0
  16. package/dist/internal/device-frame/index.d.cts +1 -3
  17. package/dist/internal/device-frame/index.d.ts +1 -3
  18. package/dist/internal/emoji-picker/index.d.cts +1 -3
  19. package/dist/internal/emoji-picker/index.d.ts +1 -3
  20. package/dist/internal/file-tree/index.d.cts +125 -0
  21. package/dist/internal/file-tree/index.d.ts +125 -0
  22. package/dist/internal/footer/index.d.cts +2 -0
  23. package/dist/internal/footer/index.d.ts +2 -0
  24. package/dist/internal/logger/index.d.cts +4 -0
  25. package/dist/internal/logger/index.d.ts +4 -0
  26. package/dist/internal/presence-indicator/index.d.cts +1 -3
  27. package/dist/internal/presence-indicator/index.d.ts +1 -3
  28. package/dist/internal/react-app-shell/index.d.cts +7 -51
  29. package/dist/internal/react-app-shell/index.d.ts +7 -51
  30. package/dist/internal/react-avatar-group/index.d.cts +1 -21
  31. package/dist/internal/react-avatar-group/index.d.ts +1 -21
  32. package/dist/internal/react-calendar/index.d.cts +2 -27
  33. package/dist/internal/react-calendar/index.d.ts +2 -27
  34. package/dist/internal/react-charts/index.d.cts +20 -10
  35. package/dist/internal/react-charts/index.d.ts +20 -10
  36. package/dist/internal/react-command/index.d.cts +1 -1
  37. package/dist/internal/react-command/index.d.ts +1 -1
  38. package/dist/internal/react-conversation/index.d.cts +2 -6
  39. package/dist/internal/react-conversation/index.d.ts +2 -6
  40. package/dist/internal/react-cookie-consent/index.d.cts +1 -6
  41. package/dist/internal/react-cookie-consent/index.d.ts +1 -6
  42. package/dist/internal/react-date-picker/index.d.cts +1 -0
  43. package/dist/internal/react-date-picker/index.d.ts +1 -0
  44. package/dist/internal/react-device-frame/index.d.cts +1 -25
  45. package/dist/internal/react-device-frame/index.d.ts +1 -25
  46. package/dist/internal/react-dropdown-menu/index.d.cts +1 -1
  47. package/dist/internal/react-dropdown-menu/index.d.ts +1 -1
  48. package/dist/internal/react-emoji-picker/index.d.cts +1 -5
  49. package/dist/internal/react-emoji-picker/index.d.ts +1 -5
  50. package/dist/internal/react-file-tree/index.d.cts +30 -3
  51. package/dist/internal/react-file-tree/index.d.ts +30 -3
  52. package/dist/internal/react-file-upload/index.d.cts +1 -6
  53. package/dist/internal/react-file-upload/index.d.ts +1 -6
  54. package/dist/internal/react-inline-editor/index.d.cts +1 -6
  55. package/dist/internal/react-inline-editor/index.d.ts +1 -6
  56. package/dist/internal/react-keyboard-shortcut/index.d.cts +1 -1
  57. package/dist/internal/react-keyboard-shortcut/index.d.ts +1 -1
  58. package/dist/internal/react-language-selector/index.d.cts +2 -13
  59. package/dist/internal/react-language-selector/index.d.ts +2 -13
  60. package/dist/internal/react-location-selector/index.d.cts +1 -3
  61. package/dist/internal/react-location-selector/index.d.ts +1 -3
  62. package/dist/internal/react-pagination/index.d.ts +22 -1
  63. package/dist/internal/react-presence-indicator/index.d.cts +1 -21
  64. package/dist/internal/react-presence-indicator/index.d.ts +1 -21
  65. package/dist/internal/react-radio/index.d.ts +2 -17
  66. package/dist/internal/react-reaction-bar/index.d.cts +1 -21
  67. package/dist/internal/react-reaction-bar/index.d.ts +1 -21
  68. package/dist/internal/react-search-bar/index.d.cts +1 -12
  69. package/dist/internal/react-search-bar/index.d.ts +1 -12
  70. package/dist/internal/react-slider/index.d.cts +22 -1
  71. package/dist/internal/react-slider/index.d.ts +22 -1
  72. package/dist/internal/react-status-indicator/index.d.cts +1 -5
  73. package/dist/internal/react-status-indicator/index.d.ts +1 -5
  74. package/dist/internal/react-tabs/index.d.cts +2 -8
  75. package/dist/internal/react-tabs/index.d.ts +2 -8
  76. package/dist/internal/react-thread-view/index.d.cts +1 -21
  77. package/dist/internal/react-thread-view/index.d.ts +1 -21
  78. package/dist/internal/react-version-selector/index.d.cts +2 -12
  79. package/dist/internal/react-version-selector/index.d.ts +2 -12
  80. package/dist/internal/reaction-bar/index.d.cts +1 -3
  81. package/dist/internal/reaction-bar/index.d.ts +1 -3
  82. package/dist/internal/status-indicator/index.d.cts +1 -3
  83. package/dist/internal/status-indicator/index.d.ts +1 -3
  84. package/dist/internal/thread-view/index.d.cts +3 -5
  85. package/dist/internal/thread-view/index.d.ts +3 -5
  86. package/dist/internal/toast/index.d.cts +7 -1
  87. package/dist/internal/toast/index.d.ts +7 -1
  88. package/dist/internal/voice-pill/index.d.cts +2 -2
  89. package/dist/internal/voice-pill/index.d.ts +2 -2
  90. package/dist/module-X3HTTRQK.js +6438 -0
  91. package/dist/module-X3HTTRQK.js.map +1 -0
  92. package/package.json +1 -1
  93. package/dist/module-XHEQRMQB.js +0 -5320
  94. package/dist/module-XHEQRMQB.js.map +0 -1
@@ -1,8 +1,29 @@
1
1
  import * as React from 'react';
2
2
 
3
- interface SliderProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
+ interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'min' | 'max' | 'step'> {
4
+ /** Current value (controlled). Pair with `onChange`/`onValueChange`. */
5
+ value?: number;
6
+ /** Initial value for uncontrolled usage (defaults to `min`). */
7
+ defaultValue?: number;
8
+ /** Minimum selectable value (default 0). */
9
+ min?: number;
10
+ /** Maximum selectable value (default 100). */
11
+ max?: number;
12
+ /** Granularity between selectable values (default 1). */
13
+ step?: number;
14
+ /** Called with the new numeric value as the user moves the thumb. */
15
+ onChange?: (value: number) => void;
16
+ /** Alias of `onChange`, matching the library-wide naming convention. */
17
+ onValueChange?: (value: number) => void;
4
18
  variant?: 'default';
5
19
  }
20
+ /**
21
+ * Slider — a single-value range control over a native
22
+ * `<input type="range">`. Value clamping, step rounding, and ARIA come from
23
+ * the headless `@refraction-ui/slider` core; keyboard interaction is native
24
+ * to the input (the core's `getSliderValueFromKey` pins the same rules for
25
+ * non-native adapters).
26
+ */
6
27
  declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLInputElement>>;
7
28
 
8
29
  export { Slider, type SliderProps };
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as React from 'react';
3
2
  import { StatusType } from '../status-indicator/index.cjs';
4
3
  export { StatusProps as CoreStatusProps, STATUS_COLORS, STATUS_LABELS, StatusAPI, StatusType, statusContainerStyles, statusDotVariants, statusLabelStyles, statusPulseVariants } from '../status-indicator/index.cjs';
@@ -13,9 +12,6 @@ interface StatusIndicatorProps {
13
12
  showLabel?: boolean;
14
13
  className?: string;
15
14
  }
16
- declare function StatusIndicator({ type, label, children, pulse, showLabel, className, }: StatusIndicatorProps): react_jsx_runtime.JSX.Element;
17
- declare namespace StatusIndicator {
18
- var displayName: string;
19
- }
15
+ declare const StatusIndicator: React.ForwardRefExoticComponent<StatusIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
20
16
 
21
17
  export { StatusIndicator, type StatusIndicatorProps };
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as React from 'react';
3
2
  import { StatusType } from '../status-indicator/index.js';
4
3
  export { StatusProps as CoreStatusProps, STATUS_COLORS, STATUS_LABELS, StatusAPI, StatusType, statusContainerStyles, statusDotVariants, statusLabelStyles, statusPulseVariants } from '../status-indicator/index.js';
@@ -13,9 +12,6 @@ interface StatusIndicatorProps {
13
12
  showLabel?: boolean;
14
13
  className?: string;
15
14
  }
16
- declare function StatusIndicator({ type, label, children, pulse, showLabel, className, }: StatusIndicatorProps): react_jsx_runtime.JSX.Element;
17
- declare namespace StatusIndicator {
18
- var displayName: string;
19
- }
15
+ declare const StatusIndicator: React.ForwardRefExoticComponent<StatusIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
20
16
 
21
17
  export { StatusIndicator, type StatusIndicatorProps };
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  export { TabsProps as CoreTabsProps, TabsAPI, TabsState, tabsListVariants, tabsTriggerVariants } from '../tabs/index.cjs';
3
3
 
4
- interface TabsProps {
4
+ interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  value?: string;
6
6
  defaultValue?: string;
7
7
  onValueChange?: (value: string) => void;
@@ -9,13 +9,7 @@ interface TabsProps {
9
9
  className?: string;
10
10
  children?: React.ReactNode;
11
11
  }
12
- declare function Tabs({ value: controlledValue, defaultValue, onValueChange, orientation, className, children, }: TabsProps): React.DetailedReactHTMLElement<{
13
- className: string | undefined;
14
- 'data-orientation': "horizontal" | "vertical";
15
- }, HTMLElement>;
16
- declare namespace Tabs {
17
- var displayName: string;
18
- }
12
+ declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
19
13
  interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {
20
14
  }
21
15
  declare const TabsList: React.ForwardRefExoticComponent<TabsListProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  export { TabsProps as CoreTabsProps, TabsAPI, TabsState, tabsListVariants, tabsTriggerVariants } from '../tabs/index.js';
3
3
 
4
- interface TabsProps {
4
+ interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  value?: string;
6
6
  defaultValue?: string;
7
7
  onValueChange?: (value: string) => void;
@@ -9,13 +9,7 @@ interface TabsProps {
9
9
  className?: string;
10
10
  children?: React.ReactNode;
11
11
  }
12
- declare function Tabs({ value: controlledValue, defaultValue, onValueChange, orientation, className, children, }: TabsProps): React.DetailedReactHTMLElement<{
13
- className: string | undefined;
14
- 'data-orientation': "horizontal" | "vertical";
15
- }, HTMLElement>;
16
- declare namespace Tabs {
17
- var displayName: string;
18
- }
12
+ declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
19
13
  interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {
20
14
  }
21
15
  declare const TabsList: React.ForwardRefExoticComponent<TabsListProps & React.RefAttributes<HTMLDivElement>>;
@@ -9,26 +9,6 @@ interface ThreadViewProps {
9
9
  currentUserId?: string;
10
10
  className?: string;
11
11
  }
12
- declare function ThreadView({ messages, onReply, onReact, currentUserId, className, }: ThreadViewProps): React.DetailedReactHTMLElement<{
13
- className: string;
14
- role?: string | undefined;
15
- tabIndex?: number | undefined;
16
- 'aria-label'?: string | undefined;
17
- 'aria-labelledby'?: string | undefined;
18
- 'aria-describedby'?: string | undefined;
19
- 'aria-controls'?: string | undefined;
20
- 'aria-expanded'?: boolean | undefined;
21
- 'aria-selected'?: boolean | undefined;
22
- 'aria-hidden'?: boolean | undefined;
23
- 'aria-disabled'?: boolean | undefined;
24
- 'aria-pressed'?: boolean | "mixed" | undefined;
25
- 'aria-checked'?: boolean | "mixed" | undefined;
26
- 'aria-current'?: boolean | "page" | "step" | "location" | "date" | "time" | undefined;
27
- 'aria-live'?: "off" | "assertive" | "polite" | undefined;
28
- 'aria-atomic'?: boolean | undefined;
29
- }, HTMLElement>;
30
- declare namespace ThreadView {
31
- var displayName: string;
32
- }
12
+ declare const ThreadView: React.ForwardRefExoticComponent<ThreadViewProps & React.RefAttributes<HTMLDivElement>>;
33
13
 
34
14
  export { ThreadView, type ThreadViewProps };
@@ -9,26 +9,6 @@ interface ThreadViewProps {
9
9
  currentUserId?: string;
10
10
  className?: string;
11
11
  }
12
- declare function ThreadView({ messages, onReply, onReact, currentUserId, className, }: ThreadViewProps): React.DetailedReactHTMLElement<{
13
- className: string;
14
- role?: string | undefined;
15
- tabIndex?: number | undefined;
16
- 'aria-label'?: string | undefined;
17
- 'aria-labelledby'?: string | undefined;
18
- 'aria-describedby'?: string | undefined;
19
- 'aria-controls'?: string | undefined;
20
- 'aria-expanded'?: boolean | undefined;
21
- 'aria-selected'?: boolean | undefined;
22
- 'aria-hidden'?: boolean | undefined;
23
- 'aria-disabled'?: boolean | undefined;
24
- 'aria-pressed'?: boolean | "mixed" | undefined;
25
- 'aria-checked'?: boolean | "mixed" | undefined;
26
- 'aria-current'?: boolean | "page" | "step" | "location" | "date" | "time" | undefined;
27
- 'aria-live'?: "off" | "assertive" | "polite" | undefined;
28
- 'aria-atomic'?: boolean | undefined;
29
- }, HTMLElement>;
30
- declare namespace ThreadView {
31
- var displayName: string;
32
- }
12
+ declare const ThreadView: React.ForwardRefExoticComponent<ThreadViewProps & React.RefAttributes<HTMLDivElement>>;
33
13
 
34
14
  export { ThreadView, type ThreadViewProps };
@@ -1,14 +1,7 @@
1
1
  import * as React from 'react';
2
- import { VersionOption, VersionSelectorAPI } from '../version-selector/index.cjs';
2
+ import { VersionOption } from '../version-selector/index.cjs';
3
3
  export { VersionOption, latestBadgeVariants, optionVariants, versionSelectorVariants } from '../version-selector/index.cjs';
4
4
 
5
- interface VersionSelectorContextValue {
6
- api: VersionSelectorAPI;
7
- isOpen: boolean;
8
- setOpen: (value: boolean) => void;
9
- select: (value: string) => void;
10
- versions: VersionOption[];
11
- }
12
5
  interface VersionSelectorProps {
13
6
  value?: string;
14
7
  onValueChange?: (value: string) => void;
@@ -16,9 +9,6 @@ interface VersionSelectorProps {
16
9
  placeholder?: string;
17
10
  className?: string;
18
11
  }
19
- declare function VersionSelector({ value: controlledValue, onValueChange, versions, placeholder, className, }: VersionSelectorProps): React.FunctionComponentElement<React.ProviderProps<VersionSelectorContextValue | null>>;
20
- declare namespace VersionSelector {
21
- var displayName: string;
22
- }
12
+ declare const VersionSelector: React.ForwardRefExoticComponent<VersionSelectorProps & React.RefAttributes<HTMLDivElement>>;
23
13
 
24
14
  export { VersionSelector, type VersionSelectorProps };
@@ -1,14 +1,7 @@
1
1
  import * as React from 'react';
2
- import { VersionOption, VersionSelectorAPI } from '../version-selector/index.js';
2
+ import { VersionOption } from '../version-selector/index.js';
3
3
  export { VersionOption, latestBadgeVariants, optionVariants, versionSelectorVariants } from '../version-selector/index.js';
4
4
 
5
- interface VersionSelectorContextValue {
6
- api: VersionSelectorAPI;
7
- isOpen: boolean;
8
- setOpen: (value: boolean) => void;
9
- select: (value: string) => void;
10
- versions: VersionOption[];
11
- }
12
5
  interface VersionSelectorProps {
13
6
  value?: string;
14
7
  onValueChange?: (value: string) => void;
@@ -16,9 +9,6 @@ interface VersionSelectorProps {
16
9
  placeholder?: string;
17
10
  className?: string;
18
11
  }
19
- declare function VersionSelector({ value: controlledValue, onValueChange, versions, placeholder, className, }: VersionSelectorProps): React.FunctionComponentElement<React.ProviderProps<VersionSelectorContextValue | null>>;
20
- declare namespace VersionSelector {
21
- var displayName: string;
22
- }
12
+ declare const VersionSelector: React.ForwardRefExoticComponent<VersionSelectorProps & React.RefAttributes<HTMLDivElement>>;
23
13
 
24
14
  export { VersionSelector, type VersionSelectorProps };
@@ -1,5 +1,3 @@
1
- import { AccessibilityProps } from '../shared/index.cjs';
2
-
3
1
  interface Reaction {
4
2
  /** The emoji character */
5
3
  emoji: string;
@@ -24,7 +22,7 @@ interface ReactionBarAPI {
24
22
  /** Add a new reaction */
25
23
  add(emoji: string): void;
26
24
  /** ARIA props for the reaction bar container */
27
- ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
25
+ ariaProps: Record<string, string | number | boolean>;
28
26
  /** Get ARIA props for an individual reaction pill */
29
27
  getReactionAriaProps(reaction: Reaction): Record<string, unknown>;
30
28
  /** ARIA props for the "add reaction" button */
@@ -1,5 +1,3 @@
1
- import { AccessibilityProps } from '../shared/index.js';
2
-
3
1
  interface Reaction {
4
2
  /** The emoji character */
5
3
  emoji: string;
@@ -24,7 +22,7 @@ interface ReactionBarAPI {
24
22
  /** Add a new reaction */
25
23
  add(emoji: string): void;
26
24
  /** ARIA props for the reaction bar container */
27
- ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
25
+ ariaProps: Record<string, string | number | boolean>;
28
26
  /** Get ARIA props for an individual reaction pill */
29
27
  getReactionAriaProps(reaction: Reaction): Record<string, unknown>;
30
28
  /** ARIA props for the "add reaction" button */
@@ -1,5 +1,3 @@
1
- import { AccessibilityProps } from '../shared/index.cjs';
2
-
3
1
  type StatusType = 'success' | 'error' | 'warning' | 'info' | 'pending' | 'neutral';
4
2
  interface StatusProps {
5
3
  /** The status type */
@@ -11,7 +9,7 @@ interface StatusProps {
11
9
  }
12
10
  interface StatusAPI {
13
11
  /** ARIA attributes for the status indicator */
14
- ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
12
+ ariaProps: Record<string, string | number | boolean>;
15
13
  /** The status type */
16
14
  type: StatusType;
17
15
  /** The display label */
@@ -1,5 +1,3 @@
1
- import { AccessibilityProps } from '../shared/index.js';
2
-
3
1
  type StatusType = 'success' | 'error' | 'warning' | 'info' | 'pending' | 'neutral';
4
2
  interface StatusProps {
5
3
  /** The status type */
@@ -11,7 +9,7 @@ interface StatusProps {
11
9
  }
12
10
  interface StatusAPI {
13
11
  /** ARIA attributes for the status indicator */
14
- ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
12
+ ariaProps: Record<string, string | number | boolean>;
15
13
  /** The status type */
16
14
  type: StatusType;
17
15
  /** The display label */
@@ -1,5 +1,3 @@
1
- import { AccessibilityProps } from '../shared/index.cjs';
2
-
3
1
  interface MessageReaction {
4
2
  emoji: string;
5
3
  count: number;
@@ -64,11 +62,11 @@ interface ThreadViewAPI {
64
62
  /** Format relative time (e.g., "2 minutes ago") */
65
63
  formatRelativeTime(date: Date): string;
66
64
  /** ARIA props for the thread container */
67
- ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
65
+ ariaProps: Record<string, string | number | boolean>;
68
66
  /** Get ARIA props for a message */
69
- getMessageAriaProps(message: MessageData): Record<string, unknown>;
67
+ getMessageAriaProps(message: MessageData): Record<string, string | number | boolean>;
70
68
  /** Get ARIA props for a reply button */
71
- getReplyButtonAriaProps(messageId: string): Record<string, unknown>;
69
+ getReplyButtonAriaProps(messageId: string): Record<string, string | number | boolean>;
72
70
  /** Generated IDs */
73
71
  ids: {
74
72
  thread: string;
@@ -1,5 +1,3 @@
1
- import { AccessibilityProps } from '../shared/index.js';
2
-
3
1
  interface MessageReaction {
4
2
  emoji: string;
5
3
  count: number;
@@ -64,11 +62,11 @@ interface ThreadViewAPI {
64
62
  /** Format relative time (e.g., "2 minutes ago") */
65
63
  formatRelativeTime(date: Date): string;
66
64
  /** ARIA props for the thread container */
67
- ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
65
+ ariaProps: Record<string, string | number | boolean>;
68
66
  /** Get ARIA props for a message */
69
- getMessageAriaProps(message: MessageData): Record<string, unknown>;
67
+ getMessageAriaProps(message: MessageData): Record<string, string | number | boolean>;
70
68
  /** Get ARIA props for a reply button */
71
- getReplyButtonAriaProps(messageId: string): Record<string, unknown>;
69
+ getReplyButtonAriaProps(messageId: string): Record<string, string | number | boolean>;
72
70
  /** Generated IDs */
73
71
  ids: {
74
72
  thread: string;
@@ -12,6 +12,8 @@ interface ToastProps {
12
12
  open?: boolean;
13
13
  /** Callback when open state changes */
14
14
  onOpenChange?: (open: boolean) => void;
15
+ /** Elapsed-time clock for timer pause/resume math (ms). Default: ambient `Date.now()` — inject for deterministic tests. */
16
+ now?: () => number;
15
17
  }
16
18
  interface ToastState {
17
19
  open: boolean;
@@ -53,7 +55,11 @@ interface ToastManagerAPI {
53
55
  /** Subscribe to toast list changes. Returns unsubscribe function. */
54
56
  subscribe(fn: (toasts: ReadonlyArray<ToastEntry>) => void): () => void;
55
57
  }
56
- declare function createToastManager(): ToastManagerAPI;
58
+ interface ToastManagerConfig {
59
+ /** Clock for entry `createdAt` stamps (ms). Default: ambient `Date.now()` — inject for deterministic tests. */
60
+ now?: () => number;
61
+ }
62
+ declare function createToastManager(config?: ToastManagerConfig): ToastManagerAPI;
57
63
 
58
64
  declare const toastVariants: (props?: ({
59
65
  variant?: "default" | "success" | "error" | "warning" | undefined;
@@ -12,6 +12,8 @@ interface ToastProps {
12
12
  open?: boolean;
13
13
  /** Callback when open state changes */
14
14
  onOpenChange?: (open: boolean) => void;
15
+ /** Elapsed-time clock for timer pause/resume math (ms). Default: ambient `Date.now()` — inject for deterministic tests. */
16
+ now?: () => number;
15
17
  }
16
18
  interface ToastState {
17
19
  open: boolean;
@@ -53,7 +55,11 @@ interface ToastManagerAPI {
53
55
  /** Subscribe to toast list changes. Returns unsubscribe function. */
54
56
  subscribe(fn: (toasts: ReadonlyArray<ToastEntry>) => void): () => void;
55
57
  }
56
- declare function createToastManager(): ToastManagerAPI;
58
+ interface ToastManagerConfig {
59
+ /** Clock for entry `createdAt` stamps (ms). Default: ambient `Date.now()` — inject for deterministic tests. */
60
+ now?: () => number;
61
+ }
62
+ declare function createToastManager(config?: ToastManagerConfig): ToastManagerAPI;
57
63
 
58
64
  declare const toastVariants: (props?: ({
59
65
  variant?: "default" | "success" | "error" | "warning" | undefined;
@@ -1,4 +1,4 @@
1
- import { AccessibilityProps, TokenContract } from '../shared/index.cjs';
1
+ import { TokenContract } from '../shared/index.cjs';
2
2
 
3
3
  type VoicePillSpeaker = 'ai' | 'user' | (string & {});
4
4
  type VoicePillPosition = 'inline' | 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end' | 'left-start' | 'left-center' | 'left-end' | 'right-start' | 'right-center' | 'right-end';
@@ -43,7 +43,7 @@ interface VoicePillAPI {
43
43
  /** Invoke the mute callback when provided */
44
44
  toggleMute(): void;
45
45
  /** ARIA props for the live status pill */
46
- ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
46
+ ariaProps: Record<string, string | number | boolean>;
47
47
  /** ARIA props for the mute toggle */
48
48
  toggleMuteAriaProps: Record<string, unknown>;
49
49
  /** Data attributes reflecting speaker/state */
@@ -1,4 +1,4 @@
1
- import { AccessibilityProps, TokenContract } from '../shared/index.js';
1
+ import { TokenContract } from '../shared/index.js';
2
2
 
3
3
  type VoicePillSpeaker = 'ai' | 'user' | (string & {});
4
4
  type VoicePillPosition = 'inline' | 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end' | 'left-start' | 'left-center' | 'left-end' | 'right-start' | 'right-center' | 'right-end';
@@ -43,7 +43,7 @@ interface VoicePillAPI {
43
43
  /** Invoke the mute callback when provided */
44
44
  toggleMute(): void;
45
45
  /** ARIA props for the live status pill */
46
- ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
46
+ ariaProps: Record<string, string | number | boolean>;
47
47
  /** ARIA props for the mute toggle */
48
48
  toggleMuteAriaProps: Record<string, unknown>;
49
49
  /** Data attributes reflecting speaker/state */