@aircall/blocks 0.17.0 → 0.18.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.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { Badge, Button, CounterBadge, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, SidebarProvider, TabsList, useSidebar } from "@aircall/ds";
1
+ import { Badge, Button, Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle, CounterBadge, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, SidebarProvider, Skeleton, TabsList, useSidebar } from "@aircall/ds";
2
2
  import * as React$1 from "react";
3
3
  import { VariantProps } from "class-variance-authority";
4
+ import { useRender } from "@base-ui/react/use-render";
4
5
  import * as _tanstack_react_form0 from "@tanstack/react-form";
5
6
  import { DeepKeys, DeepKeysOfType, DeepValue, FieldAsyncValidateOrFn, FieldListeners, FieldValidateOrFn, FieldValidators } from "@tanstack/react-form";
6
- import { useRender } from "@base-ui/react/use-render";
7
7
  import * as class_variance_authority_types0 from "class-variance-authority/types";
8
8
 
9
9
  //#region src/components/empty-state.d.ts
@@ -25,11 +25,13 @@ type EmptyStateMediaProps = Omit<React$1.ComponentProps<typeof EmptyMedia>, 'var
25
25
  declare namespace EmptyStateMedia {
26
26
  type Props = EmptyStateMediaProps;
27
27
  }
28
+ /** Title line of an empty state. Wraps the DS `EmptyTitle`. */
28
29
  declare const EmptyStateTitle: React$1.ForwardRefExoticComponent<Omit<EmptyStateTitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
29
30
  interface EmptyStateTitleProps extends React$1.ComponentProps<typeof EmptyTitle> {}
30
31
  declare namespace EmptyStateTitle {
31
32
  type Props = EmptyStateTitleProps;
32
33
  }
34
+ /** Supporting description text of an empty state. Wraps the DS `EmptyDescription`. */
33
35
  declare const EmptyStateDescription: React$1.ForwardRefExoticComponent<Omit<EmptyStateDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
34
36
  interface EmptyStateDescriptionProps extends React$1.ComponentProps<typeof EmptyDescription> {}
35
37
  declare namespace EmptyStateDescription {
@@ -46,6 +48,11 @@ declare namespace EmptyStateActions {
46
48
  type Props = EmptyStateActionsProps;
47
49
  }
48
50
  type EmptyStateButtonProps = Omit<React$1.ComponentProps<typeof Button>, 'size'>;
51
+ /**
52
+ * Action button for an empty state — the only button allowed inside one. Wraps
53
+ * the DS `Button` with `size` locked to `default` for visual consistency across
54
+ * empty states; consumers still choose the `variant`.
55
+ */
49
56
  declare const EmptyStateButton: React$1.ForwardRefExoticComponent<Omit<EmptyStateButtonProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
50
57
  declare namespace EmptyStateButton {
51
58
  type Props = EmptyStateButtonProps;
@@ -53,49 +60,193 @@ declare namespace EmptyStateButton {
53
60
  type EmptyStateExternalLinkProps = Omit<EmptyStateButtonProps, 'variant' | 'render'> & {
54
61
  href: string;
55
62
  };
63
+ /**
64
+ * External "Learn more"-style link for an empty state. Renders a real `<a>` (via
65
+ * `EmptyStateButton` with `variant="link"`) that opens in a new tab. Pass
66
+ * `children` to override the default "Learn more" label, including any icon.
67
+ *
68
+ * @default children "Learn more"
69
+ */
56
70
  declare const EmptyStateExternalLink: React$1.ForwardRefExoticComponent<Omit<EmptyStateExternalLinkProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
57
71
  declare namespace EmptyStateExternalLink {
58
72
  type Props = EmptyStateExternalLinkProps;
59
73
  }
60
74
  //#endregion
61
75
  //#region src/components/coming-soon.d.ts
76
+ /**
77
+ * Root of the "Coming soon" empty state — shown when a feature exists in the UI
78
+ * but is not yet available. Renders a `<div>` (the DS `Empty` container); compose
79
+ * it from its parts.
80
+ *
81
+ * @example
82
+ * ```tsx
83
+ * <ComingSoonEmptyState>
84
+ * <EmptyStateHeader>
85
+ * <ComingSoonMedia />
86
+ * <ComingSoonTitle />
87
+ * <ComingSoonDescription />
88
+ * </EmptyStateHeader>
89
+ * <EmptyStateActions>
90
+ * <EmptyStateButton variant="outline" onClick={goBack}>Go back</EmptyStateButton>
91
+ * <EmptyStateExternalLink href={docsUrl} />
92
+ * </EmptyStateActions>
93
+ * </ComingSoonEmptyState>
94
+ * ```
95
+ */
62
96
  declare const ComingSoonEmptyState: React$1.ForwardRefExoticComponent<Omit<EmptyStateProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
97
+ /** Decorative media slot of the "Coming soon" empty state (a sprout icon). Renders a `<div>`, hidden from assistive tech. */
63
98
  declare const ComingSoonMedia: React$1.ForwardRefExoticComponent<Omit<Omit<EmptyStateMediaProps, "children">, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
99
+ /** Title line of the "Coming soon" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
64
100
  declare const ComingSoonTitle: React$1.ForwardRefExoticComponent<Omit<EmptyStateTitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
101
+ /** Supporting description text of the "Coming soon" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
65
102
  declare const ComingSoonDescription: React$1.ForwardRefExoticComponent<Omit<EmptyStateDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
66
103
  //#endregion
67
104
  //#region src/components/restricted-access.d.ts
105
+ /**
106
+ * Root of the "Restricted access" empty state — shown when the user lacks
107
+ * permission to view a page. Renders a `<div>` (the DS `Empty` container); pair
108
+ * it with an `EmptyStateExternalLink` for the "Learn more" action.
109
+ *
110
+ * @example
111
+ * ```tsx
112
+ * <RestrictedAccessEmptyState>
113
+ * <EmptyStateHeader>
114
+ * <RestrictedAccessMedia />
115
+ * <RestrictedAccessTitle />
116
+ * <RestrictedAccessDescription />
117
+ * </EmptyStateHeader>
118
+ * <EmptyStateActions>
119
+ * <EmptyStateExternalLink href={docsUrl} />
120
+ * </EmptyStateActions>
121
+ * </RestrictedAccessEmptyState>
122
+ * ```
123
+ */
68
124
  declare const RestrictedAccessEmptyState: React$1.ForwardRefExoticComponent<Omit<EmptyStateProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
125
+ /** Decorative media slot of the "Restricted access" empty state (a locked padlock icon). Renders a `<div>`, hidden from assistive tech. */
69
126
  declare const RestrictedAccessMedia: React$1.ForwardRefExoticComponent<Omit<Omit<EmptyStateMediaProps, "children">, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
127
+ /** Title line of the "Restricted access" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
70
128
  declare const RestrictedAccessTitle: React$1.ForwardRefExoticComponent<Omit<EmptyStateTitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
129
+ /** Supporting description text of the "Restricted access" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
71
130
  declare const RestrictedAccessDescription: React$1.ForwardRefExoticComponent<Omit<EmptyStateDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
72
131
  //#endregion
73
132
  //#region src/components/not-found.d.ts
133
+ /**
134
+ * Root of the "Not found" empty state — shown when a page or route cannot be
135
+ * found. Renders a `<div>` (the DS `Empty` container); pair it with an
136
+ * `EmptyStateButton` for the navigation action (e.g. "Go to inbox").
137
+ *
138
+ * @example
139
+ * ```tsx
140
+ * <NotFoundEmptyState>
141
+ * <EmptyStateHeader>
142
+ * <NotFoundMedia />
143
+ * <NotFoundTitle />
144
+ * <NotFoundDescription />
145
+ * </EmptyStateHeader>
146
+ * <EmptyStateActions>
147
+ * <EmptyStateButton onClick={goToInbox}>Go to inbox</EmptyStateButton>
148
+ * </EmptyStateActions>
149
+ * </NotFoundEmptyState>
150
+ * ```
151
+ */
74
152
  declare const NotFoundEmptyState: React$1.ForwardRefExoticComponent<Omit<EmptyStateProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
153
+ /** Decorative media slot of the "Not found" empty state (a search icon). Renders a `<div>`, hidden from assistive tech. */
75
154
  declare const NotFoundMedia: React$1.ForwardRefExoticComponent<Omit<Omit<EmptyStateMediaProps, "children">, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
155
+ /** Title line of the "Not found" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
76
156
  declare const NotFoundTitle: React$1.ForwardRefExoticComponent<Omit<EmptyStateTitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
157
+ /** Supporting description text of the "Not found" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
77
158
  declare const NotFoundDescription: React$1.ForwardRefExoticComponent<Omit<EmptyStateDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
78
159
  //#endregion
79
160
  //#region src/components/no-data.d.ts
161
+ /**
162
+ * Root of the "No data" empty state — shown when a search or filter returns no
163
+ * results. Renders a `<div>` (the DS `Empty` container) with `role="status"` so
164
+ * it announces politely after a user action; pair it with an `EmptyStateButton`
165
+ * for the "Reset" action.
166
+ *
167
+ * @example
168
+ * ```tsx
169
+ * <NoDataEmptyState>
170
+ * <EmptyStateHeader>
171
+ * <NoDataMedia />
172
+ * <NoDataTitle />
173
+ * <NoDataDescription />
174
+ * </EmptyStateHeader>
175
+ * <EmptyStateActions>
176
+ * <EmptyStateButton variant="outline" onClick={resetFilters}>Reset</EmptyStateButton>
177
+ * </EmptyStateActions>
178
+ * </NoDataEmptyState>
179
+ * ```
180
+ */
80
181
  declare const NoDataEmptyState: React$1.ForwardRefExoticComponent<Omit<EmptyStateProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
182
+ /** Decorative media slot of the "No data" empty state (a search icon). Renders a `<div>`, hidden from assistive tech. */
81
183
  declare const NoDataMedia: React$1.ForwardRefExoticComponent<Omit<Omit<EmptyStateMediaProps, "children">, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
184
+ /** Title line of the "No data" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
82
185
  declare const NoDataTitle: React$1.ForwardRefExoticComponent<Omit<EmptyStateTitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
186
+ /** Supporting description text of the "No data" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
83
187
  declare const NoDataDescription: React$1.ForwardRefExoticComponent<Omit<EmptyStateDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
84
188
  //#endregion
85
189
  //#region src/components/no-support.d.ts
190
+ /**
191
+ * Root of the "No support" empty state — shown when the current browser can't
192
+ * render a page. Renders a `<div>` (the DS `Empty` container); pair it with an
193
+ * `EmptyStateExternalLink` for the "Learn more" action.
194
+ *
195
+ * @example
196
+ * ```tsx
197
+ * <NoSupportEmptyState>
198
+ * <EmptyStateHeader>
199
+ * <NoSupportMedia />
200
+ * <NoSupportTitle />
201
+ * <NoSupportDescription />
202
+ * </EmptyStateHeader>
203
+ * <EmptyStateActions>
204
+ * <EmptyStateExternalLink href={docsUrl} />
205
+ * </EmptyStateActions>
206
+ * </NoSupportEmptyState>
207
+ * ```
208
+ */
86
209
  declare const NoSupportEmptyState: React$1.ForwardRefExoticComponent<Omit<EmptyStateProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
210
+ /** Decorative media slot of the "No support" empty state (a settings icon). Renders a `<div>`, hidden from assistive tech. */
87
211
  declare const NoSupportMedia: React$1.ForwardRefExoticComponent<Omit<Omit<EmptyStateMediaProps, "children">, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
212
+ /** Title line of the "No support" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
88
213
  declare const NoSupportTitle: React$1.ForwardRefExoticComponent<Omit<EmptyStateTitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
214
+ /** Supporting description text of the "No support" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
89
215
  declare const NoSupportDescription: React$1.ForwardRefExoticComponent<Omit<EmptyStateDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
90
216
  //#endregion
91
217
  //#region src/components/unknown-error.d.ts
218
+ /**
219
+ * Root of the "Unknown error" empty state — shown when content fails to load
220
+ * unexpectedly. Renders a `<div>` (the DS `Empty` container) with `role="alert"`
221
+ * so it announces assertively; pair it with a primary `EmptyStateButton` for the
222
+ * "Try again" action.
223
+ *
224
+ * @example
225
+ * ```tsx
226
+ * <UnknownErrorEmptyState>
227
+ * <EmptyStateHeader>
228
+ * <UnknownErrorMedia />
229
+ * <UnknownErrorTitle />
230
+ * <UnknownErrorDescription />
231
+ * </EmptyStateHeader>
232
+ * <EmptyStateActions>
233
+ * <EmptyStateButton onClick={retry}>Try again</EmptyStateButton>
234
+ * </EmptyStateActions>
235
+ * </UnknownErrorEmptyState>
236
+ * ```
237
+ */
92
238
  declare const UnknownErrorEmptyState: React$1.ForwardRefExoticComponent<Omit<EmptyStateProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
239
+ /** Decorative media slot of the "Unknown error" empty state (a warning triangle icon). Renders a `<div>`, hidden from assistive tech. */
93
240
  declare const UnknownErrorMedia: React$1.ForwardRefExoticComponent<Omit<Omit<EmptyStateMediaProps, "children">, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
241
+ /** Title line of the "Unknown error" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
94
242
  declare const UnknownErrorTitle: React$1.ForwardRefExoticComponent<Omit<EmptyStateTitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
243
+ /** Supporting description text of the "Unknown error" empty state. Renders a `<div>` with the design copy by default; pass children to override. */
95
244
  declare const UnknownErrorDescription: React$1.ForwardRefExoticComponent<Omit<EmptyStateDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
96
245
  //#endregion
97
246
  //#region src/components/chatbot-response-block.d.ts
247
+ /** Feedback state for a response: thumbs up, thumbs down, or none. */
98
248
  type ChatbotResponseBlockFeedback = 'up' | 'down' | null;
249
+ /** A cited source shown in the response's sources hover card. */
99
250
  type ChatbotResponseBlockSource = {
100
251
  title: string;
101
252
  url: string;
@@ -111,6 +262,22 @@ type ChatbotResponseBlockProps = {
111
262
  onFeedback?: (value: ChatbotResponseBlockFeedback) => void;
112
263
  className?: string;
113
264
  };
265
+ /**
266
+ * Renders a chatbot response from markdown, splitting it into markdown text and
267
+ * embedded component blocks (table, audio, transcript, loading), with a sources
268
+ * hover card and copy / thumbs-up / thumbs-down feedback controls. Renders a
269
+ * `<div>` (`data-slot="chatbot-response-block"`).
270
+ *
271
+ * @example
272
+ * ```tsx
273
+ * <ChatbotResponseBlock
274
+ * messageId="msg-1"
275
+ * markdown="**Hello** from the assistant"
276
+ * sources={[{ title: 'Help center', url: 'https://help.aircall.io' }]}
277
+ * onFeedback={value => console.log(value)}
278
+ * />
279
+ * ```
280
+ */
114
281
  declare function ChatbotResponseBlock({
115
282
  messageId,
116
283
  markdown,
@@ -148,6 +315,26 @@ declare function ChatbotResponseLoading({
148
315
  }: ChatbotResponseLoadingProps): React$1.JSX.Element;
149
316
  //#endregion
150
317
  //#region src/components/chatbot-page.d.ts
318
+ /**
319
+ * Root layout shell for the AI chatbot experience; provides the `SidebarProvider`
320
+ * context required by `ChatbotSidebar` and lays out the sidebar and content
321
+ * columns. Renders a `SidebarProvider` (a `<div>` wrapper) with the sidebar width
322
+ * preset and full-height overrides for panel/modal contexts.
323
+ *
324
+ * @example
325
+ * ```tsx
326
+ * <ChatbotPage>
327
+ * <ChatbotSidebar conversations={[...]} />
328
+ * <ChatbotPageContent>
329
+ * <ChatbotPageBody>
330
+ * <ChatbotPageHeading>Need help?</ChatbotPageHeading>
331
+ * <ChatbotInput />
332
+ * </ChatbotPageBody>
333
+ * <ChatbotPageFooter betaTermsHref="https://legal.aircall.io/..." />
334
+ * </ChatbotPageContent>
335
+ * </ChatbotPage>
336
+ * ```
337
+ */
151
338
  declare const ChatbotPage: React$1.ForwardRefExoticComponent<ChatbotPageProps & React$1.RefAttributes<HTMLDivElement>>;
152
339
  interface ChatbotPageProps {
153
340
  children?: React$1.ReactNode;
@@ -324,6 +511,7 @@ declare function ChatbotPanelHeader({
324
511
  }: ChatbotPanelHeaderProps): React$1.JSX.Element;
325
512
  //#endregion
326
513
  //#region src/components/chatbot-sidebar.d.ts
514
+ /** A single conversation row in the `ChatbotSidebar` recent list. */
327
515
  interface ChatbotSidebarConversation {
328
516
  id: string;
329
517
  /** Display title — truncated with ellipsis when it overflows. */
@@ -364,12 +552,26 @@ interface ChatbotSidebarProps {
364
552
  popup?: boolean;
365
553
  className?: string;
366
554
  }
555
+ /**
556
+ * Conversation-history sidebar: an optional "New Chat" entry plus a scrollable,
557
+ * resizable list of recent conversations, each with an optional trailing ⋯ menu.
558
+ * Renders the DS `Sidebar` (a `<div>`), or a plain `<div>` when `popup`. Must be
559
+ * rendered inside a `SidebarProvider`.
560
+ *
561
+ * @example
562
+ * ```tsx
563
+ * <SidebarProvider>
564
+ * <ChatbotSidebar conversations={items} onSelectConversation={open} />
565
+ * </SidebarProvider>
566
+ * ```
567
+ */
367
568
  declare const ChatbotSidebar: React$1.ForwardRefExoticComponent<ChatbotSidebarProps & React$1.RefAttributes<HTMLDivElement>>;
368
569
  declare namespace ChatbotSidebar {
369
570
  type Props = ChatbotSidebarProps;
370
571
  }
371
572
  //#endregion
372
573
  //#region src/components/chatbot-input.d.ts
574
+ /** A suggestion pill shown in a row below the `ChatbotInput`. */
373
575
  interface ChatbotInputSuggestion {
374
576
  id: string;
375
577
  /** Text shown on the pill button. */
@@ -407,6 +609,18 @@ type ChatbotInputProps = Omit<React$1.ComponentProps<'textarea'>, 'onChange' | '
407
609
  activeConversationId?: string; /** Called when the user selects a conversation from the history popover. */
408
610
  onSelectConversation?: (id: string) => void;
409
611
  };
612
+ /**
613
+ * Chatbot message composer: an auto-growing `InputGroup` textarea with a send/stop
614
+ * button, plus optional suggestion pills and a conversation-history popover. Works
615
+ * controlled (`value` + `onValueChange`) or uncontrolled. Enter submits;
616
+ * Shift+Enter inserts a newline. Renders the DS `InputGroup` (a `<div>`) wrapping a
617
+ * `<textarea>`.
618
+ *
619
+ * @example
620
+ * ```tsx
621
+ * <ChatbotInput value={text} onValueChange={setText} onSubmit={send} />
622
+ * ```
623
+ */
410
624
  declare function ChatbotInput({
411
625
  className,
412
626
  value,
@@ -427,6 +641,19 @@ declare function ChatbotInput({
427
641
  }: ChatbotInputProps): React$1.JSX.Element;
428
642
  //#endregion
429
643
  //#region src/components/copy-button.d.ts
644
+ /**
645
+ * Copy-to-clipboard button. Composes DS `Button`; copies `value` on click and
646
+ * exposes a `copied` state (auto-reset after `timeout`) to its `CopyButtonIcon`
647
+ * and `CopyButtonLabel` children via context. Renders a `<button>`.
648
+ *
649
+ * @example
650
+ * ```tsx
651
+ * <CopyButton value="npm i @aircall/ds">
652
+ * <CopyButtonIcon />
653
+ * <CopyButtonLabel />
654
+ * </CopyButton>
655
+ * ```
656
+ */
430
657
  declare const CopyButton: React$1.ForwardRefExoticComponent<Omit<CopyButtonProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
431
658
  interface CopyButtonProps extends Omit<React$1.ComponentProps<typeof Button>, 'onClick' | 'variant'> {
432
659
  value: string;
@@ -438,6 +665,10 @@ interface CopyButtonProps extends Omit<React$1.ComponentProps<typeof Button>, 'o
438
665
  declare namespace CopyButton {
439
666
  type Props = CopyButtonProps;
440
667
  }
668
+ /**
669
+ * Icon for `CopyButton` that swaps between a copy glyph and a check glyph based on
670
+ * the parent's copied state. Renders an `<svg>`. Must be used inside a `CopyButton`.
671
+ */
441
672
  declare const CopyButtonIcon: React$1.ForwardRefExoticComponent<CopyButtonIconProps & React$1.RefAttributes<SVGSVGElement>>;
442
673
  interface CopyButtonIconProps {
443
674
  className?: string;
@@ -445,6 +676,10 @@ interface CopyButtonIconProps {
445
676
  declare namespace CopyButtonIcon {
446
677
  type Props = CopyButtonIconProps;
447
678
  }
679
+ /**
680
+ * Text label for `CopyButton` that shows `label` normally and `copiedLabel` after a
681
+ * successful copy. Renders a `<span>`. Must be used inside a `CopyButton`.
682
+ */
448
683
  declare const CopyButtonLabel: React$1.ForwardRefExoticComponent<CopyButtonLabelProps & React$1.RefAttributes<HTMLSpanElement>>;
449
684
  interface CopyButtonLabelProps {
450
685
  label?: string;
@@ -457,6 +692,17 @@ declare namespace CopyButtonLabel {
457
692
  //#endregion
458
693
  //#region src/components/chatbot-panel-suggestion.d.ts
459
694
  type ChatbotPanelSuggestionProps = Omit<React.ComponentProps<typeof Button>, 'variant' | 'size'>;
695
+ /**
696
+ * Pill-shaped prompt suggestion shown in the chatbot panel; a preset styling of
697
+ * `Button` with a green border and surface background. Renders a `<button>`.
698
+ *
699
+ * @example
700
+ * ```tsx
701
+ * <ChatbotPanelSuggestion onClick={() => ask('How do I set my phone line?')}>
702
+ * How do I set my phone line?
703
+ * </ChatbotPanelSuggestion>
704
+ * ```
705
+ */
460
706
  declare function ChatbotPanelSuggestion({
461
707
  className,
462
708
  ...props
@@ -464,6 +710,16 @@ declare function ChatbotPanelSuggestion({
464
710
  //#endregion
465
711
  //#region src/components/chatbot-user-message.d.ts
466
712
  type ChatbotUserMessageProps = React.ComponentProps<'div'>;
713
+ /**
714
+ * Right-aligned chat bubble for a user's message; clamps long content to six
715
+ * lines with a "Show more" / "Show less" toggle. Renders a `<div>`
716
+ * (`data-slot="chatbot-user-message"`).
717
+ *
718
+ * @example
719
+ * ```tsx
720
+ * <ChatbotUserMessage>How do I set up my phone number?</ChatbotUserMessage>
721
+ * ```
722
+ */
467
723
  declare function ChatbotUserMessage({
468
724
  className,
469
725
  children,
@@ -471,31 +727,68 @@ declare function ChatbotUserMessage({
471
727
  }: ChatbotUserMessageProps): React$1.JSX.Element;
472
728
  //#endregion
473
729
  //#region src/components/dashboard-standalone-page.d.ts
730
+ /**
731
+ * Full-screen takeover shell for focused, sidebar-less flows; renders a flex-row `<div>`
732
+ * holding one or more `DashboardStandalonePageContent` panels side by side.
733
+ *
734
+ * @example
735
+ * ```tsx
736
+ * <DashboardStandalonePage>
737
+ * <DashboardStandalonePageContent>
738
+ * <DashboardStandalonePageHeader>
739
+ * <DashboardStandalonePageTitle>Create user</DashboardStandalonePageTitle>
740
+ * <DashboardStandalonePageActions side="start">
741
+ * <DashboardStandalonePageAction>Cancel</DashboardStandalonePageAction>
742
+ * </DashboardStandalonePageActions>
743
+ * </DashboardStandalonePageHeader>
744
+ * <DashboardStandalonePageMain>…</DashboardStandalonePageMain>
745
+ * </DashboardStandalonePageContent>
746
+ * </DashboardStandalonePage>
747
+ * ```
748
+ */
474
749
  declare const DashboardStandalonePage: React$1.ForwardRefExoticComponent<Omit<DashboardStandalonePageProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
475
750
  interface DashboardStandalonePageProps extends React$1.ComponentProps<'div'> {}
476
751
  declare namespace DashboardStandalonePage {
477
752
  type Props = DashboardStandalonePageProps;
478
753
  }
754
+ /**
755
+ * Rounded, bordered content panel that fills the shell; renders a `<div>`.
756
+ * Typically wraps a `DashboardStandalonePageHeader` above a `DashboardStandalonePageMain`.
757
+ */
479
758
  declare const DashboardStandalonePageContent: React$1.ForwardRefExoticComponent<Omit<DashboardStandalonePageContentProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
480
759
  interface DashboardStandalonePageContentProps extends React$1.ComponentProps<'div'> {}
481
760
  declare namespace DashboardStandalonePageContent {
482
761
  type Props = DashboardStandalonePageContentProps;
483
762
  }
763
+ /**
764
+ * Fixed-height (64px) header bar with an optically centered title and absolutely
765
+ * positioned action slots; renders a `<header>`.
766
+ */
484
767
  declare const DashboardStandalonePageHeader: React$1.ForwardRefExoticComponent<Omit<DashboardStandalonePageHeaderProps, "ref"> & React$1.RefAttributes<HTMLElement>>;
485
768
  interface DashboardStandalonePageHeaderProps extends React$1.ComponentProps<'header'> {}
486
769
  declare namespace DashboardStandalonePageHeader {
487
770
  type Props = DashboardStandalonePageHeaderProps;
488
771
  }
772
+ /**
773
+ * Centered, truncated page title in the header; renders an `<h1>`.
774
+ */
489
775
  declare const DashboardStandalonePageTitle: React$1.ForwardRefExoticComponent<Omit<DashboardStandalonePageTitleProps, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
490
776
  interface DashboardStandalonePageTitleProps extends React$1.ComponentProps<'h1'> {}
491
777
  declare namespace DashboardStandalonePageTitle {
492
778
  type Props = DashboardStandalonePageTitleProps;
493
779
  }
780
+ /**
781
+ * Optional subtitle stacked beneath the title in the header; renders a `<p>`.
782
+ */
494
783
  declare const DashboardStandalonePageDescription: React$1.ForwardRefExoticComponent<Omit<DashboardStandalonePageDescriptionProps, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
495
784
  interface DashboardStandalonePageDescriptionProps extends React$1.ComponentProps<'p'> {}
496
785
  declare namespace DashboardStandalonePageDescription {
497
786
  type Props = DashboardStandalonePageDescriptionProps;
498
787
  }
788
+ /**
789
+ * Action slot absolutely pinned to the header's left or right edge; renders a `<div>`.
790
+ * Sitting outside the flow, it never shifts the centered title.
791
+ */
499
792
  declare const DashboardStandalonePageActions: React$1.ForwardRefExoticComponent<Omit<DashboardStandalonePageActionsProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
500
793
  interface DashboardStandalonePageActionsProps extends React$1.ComponentProps<'div'> {
501
794
  side?: 'start' | 'end';
@@ -503,11 +796,17 @@ interface DashboardStandalonePageActionsProps extends React$1.ComponentProps<'di
503
796
  declare namespace DashboardStandalonePageActions {
504
797
  type Props = DashboardStandalonePageActionsProps;
505
798
  }
799
+ /**
800
+ * Header action button rendering a ds `Button` (ghost, `lg` by default); renders a `<button>`.
801
+ */
506
802
  declare const DashboardStandalonePageAction: React$1.ForwardRefExoticComponent<Omit<DashboardStandalonePageActionProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
507
803
  interface DashboardStandalonePageActionProps extends React$1.ComponentProps<typeof Button> {}
508
804
  declare namespace DashboardStandalonePageAction {
509
805
  type Props = DashboardStandalonePageActionProps;
510
806
  }
807
+ /**
808
+ * Scrollable, transparent content area below the header inside the panel; renders a `<main>`.
809
+ */
511
810
  declare const DashboardStandalonePageMain: React$1.ForwardRefExoticComponent<Omit<DashboardStandalonePageMainProps, "ref"> & React$1.RefAttributes<HTMLElement>>;
512
811
  interface DashboardStandalonePageMainProps extends React$1.ComponentProps<'main'> {}
513
812
  declare namespace DashboardStandalonePageMain {
@@ -515,26 +814,54 @@ declare namespace DashboardStandalonePageMain {
515
814
  }
516
815
  //#endregion
517
816
  //#region src/components/dashboard-page.d.ts
817
+ /**
818
+ * Full-screen outer shell for a dashboard view; renders a `<div>`.
819
+ * Stacks an optional `DashboardPageBanner` above a `DashboardSidebarProvider`
820
+ * that holds the sidebar and a `DashboardPageContent`.
821
+ *
822
+ * @example
823
+ * ```tsx
824
+ * <DashboardPage>
825
+ * <DashboardSidebarProvider>
826
+ * <DashboardSidebar>…</DashboardSidebar>
827
+ * <DashboardPageContent>…</DashboardPageContent>
828
+ * </DashboardSidebarProvider>
829
+ * </DashboardPage>
830
+ * ```
831
+ */
518
832
  declare const DashboardPage: React$1.ForwardRefExoticComponent<Omit<DashboardPageProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
519
833
  interface DashboardPageProps extends React$1.ComponentProps<'div'> {}
520
834
  declare namespace DashboardPage {
521
835
  type Props = DashboardPageProps;
522
836
  }
837
+ /**
838
+ * Full-width top row that sits flush above the sidebar/content row; renders a `<div>`.
839
+ * Use to host trial notices, announcements, or any ds `Banner`.
840
+ */
523
841
  declare const DashboardPageBanner: React$1.ForwardRefExoticComponent<Omit<DashboardPageBannerProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
524
842
  interface DashboardPageBannerProps extends React$1.ComponentProps<'div'> {}
525
843
  declare namespace DashboardPageBanner {
526
844
  type Props = DashboardPageBannerProps;
527
845
  }
846
+ /**
847
+ * White content card filling the right column beside the sidebar; renders a `<div>`.
848
+ */
528
849
  declare const DashboardPageContent: React$1.ForwardRefExoticComponent<Omit<DashboardPageContentProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
529
850
  interface DashboardPageContentProps extends React$1.ComponentProps<'div'> {}
530
851
  declare namespace DashboardPageContent {
531
852
  type Props = DashboardPageContentProps;
532
853
  }
854
+ /**
855
+ * Scrollable content area inside `DashboardPageContent`; renders a `<main>`.
856
+ */
533
857
  declare const DashboardPageMain: React$1.ForwardRefExoticComponent<Omit<DashboardPageMainProps, "ref"> & React$1.RefAttributes<HTMLElement>>;
534
858
  interface DashboardPageMainProps extends React$1.ComponentProps<'main'> {}
535
859
  declare namespace DashboardPageMain {
536
860
  type Props = DashboardPageMainProps;
537
861
  }
862
+ /**
863
+ * Left-aligned tab bar placed as a sibling of `DashboardPageHeader`; renders a ds `TabsList`.
864
+ */
538
865
  declare const DashboardPageTabs: React$1.ForwardRefExoticComponent<Omit<DashboardPageTabsProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
539
866
  interface DashboardPageTabsProps extends React$1.ComponentProps<typeof TabsList> {}
540
867
  declare namespace DashboardPageTabs {
@@ -542,31 +869,62 @@ declare namespace DashboardPageTabs {
542
869
  }
543
870
  //#endregion
544
871
  //#region src/components/dashboard-page-header.d.ts
872
+ /**
873
+ * Header for a `DashboardPageContent`; renders a `<div>` that establishes a
874
+ * `@container` context with an inner CSS-grid its sub-components self-place into.
875
+ *
876
+ * @example
877
+ * ```tsx
878
+ * <DashboardPageHeader>
879
+ * <DashboardPageHeaderTitle>Team</DashboardPageHeaderTitle>
880
+ * <DashboardPageHeaderActions>
881
+ * <DashboardPageHeaderAction>Invite</DashboardPageHeaderAction>
882
+ * </DashboardPageHeaderActions>
883
+ * </DashboardPageHeader>
884
+ * ```
885
+ */
545
886
  declare const DashboardPageHeader: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
546
887
  interface DashboardPageHeaderProps extends React$1.ComponentProps<'div'> {}
547
888
  declare namespace DashboardPageHeader {
548
889
  type Props = DashboardPageHeaderProps;
549
890
  }
891
+ /**
892
+ * Back-navigation row for Level 2 headers; renders a `<div>` in the grid `nav` area.
893
+ */
550
894
  declare const DashboardPageHeaderNav: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderNavProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
551
895
  interface DashboardPageHeaderNavProps extends React$1.ComponentProps<'div'> {}
552
896
  declare namespace DashboardPageHeaderNav {
553
897
  type Props = DashboardPageHeaderNavProps;
554
898
  }
899
+ /**
900
+ * Back button rendering a ghost, small ds `Button` with a leading chevron icon.
901
+ * Accepts a render prop so it can become an `<a>` or router `<Link>`.
902
+ */
555
903
  declare const DashboardPageHeaderNavBack: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderNavBackProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
556
904
  interface DashboardPageHeaderNavBackProps extends Omit<React$1.ComponentProps<typeof Button>, 'variant' | 'size'> {}
557
905
  declare namespace DashboardPageHeaderNavBack {
558
906
  type Props = DashboardPageHeaderNavBackProps;
559
907
  }
908
+ /**
909
+ * Icon/flag slot shown left of the title; renders a `<div>` in the grid `prefix` area.
910
+ */
560
911
  declare const DashboardPageHeaderPrefix: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderPrefixProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
561
912
  interface DashboardPageHeaderPrefixProps extends React$1.ComponentProps<'div'> {}
562
913
  declare namespace DashboardPageHeaderPrefix {
563
914
  type Props = DashboardPageHeaderPrefixProps;
564
915
  }
916
+ /**
917
+ * Wrapper that stacks the title and subtitle; renders a `<div>` in the grid `info` area.
918
+ */
565
919
  declare const DashboardPageHeaderTitleGroup: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderTitleGroupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
566
920
  interface DashboardPageHeaderTitleGroupProps extends React$1.ComponentProps<'div'> {}
567
921
  declare namespace DashboardPageHeaderTitleGroup {
568
922
  type Props = DashboardPageHeaderTitleGroupProps;
569
923
  }
924
+ /**
925
+ * Page title; renders an `<h1>`, self-placing in the grid `info` area or deferring
926
+ * layout to `DashboardPageHeaderTitleGroup` when nested inside one.
927
+ */
570
928
  declare const DashboardPageHeaderTitle: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderTitleProps, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
571
929
  interface DashboardPageHeaderTitleProps extends React$1.ComponentProps<'h1'> {
572
930
  size?: 'lg' | 'sm';
@@ -574,21 +932,34 @@ interface DashboardPageHeaderTitleProps extends React$1.ComponentProps<'h1'> {
574
932
  declare namespace DashboardPageHeaderTitle {
575
933
  type Props = DashboardPageHeaderTitleProps;
576
934
  }
935
+ /**
936
+ * Optional subtitle line/block placed beneath the title; renders a `<div>`.
937
+ */
577
938
  declare const DashboardPageHeaderSubtitle: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderSubtitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
578
939
  interface DashboardPageHeaderSubtitleProps extends React$1.ComponentProps<'div'> {}
579
940
  declare namespace DashboardPageHeaderSubtitle {
580
941
  type Props = DashboardPageHeaderSubtitleProps;
581
942
  }
943
+ /**
944
+ * Muted, clamped description text under the title; renders a `<div>`.
945
+ */
582
946
  declare const DashboardPageHeaderDescription: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
583
947
  interface DashboardPageHeaderDescriptionProps extends React$1.ComponentProps<'div'> {}
584
948
  declare namespace DashboardPageHeaderDescription {
585
949
  type Props = DashboardPageHeaderDescriptionProps;
586
950
  }
951
+ /**
952
+ * Flex container for header actions; renders a `<div>` in the grid `actions` area.
953
+ */
587
954
  declare const DashboardPageHeaderActions: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderActionsProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
588
955
  interface DashboardPageHeaderActionsProps extends React$1.ComponentProps<'div'> {}
589
956
  declare namespace DashboardPageHeaderActions {
590
957
  type Props = DashboardPageHeaderActionsProps;
591
958
  }
959
+ /**
960
+ * Header action button rendering a ds `Button` locked to the actions area sizes;
961
+ * renders a `<button>` (defaults to a labeled `lg` CTA, or `icon-lg` for icon-only triggers).
962
+ */
592
963
  declare const DashboardPageHeaderAction: React$1.ForwardRefExoticComponent<Omit<DashboardPageHeaderActionProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
593
964
  interface DashboardPageHeaderActionProps extends Omit<React$1.ComponentProps<typeof Button>, 'size'> {
594
965
  size?: 'lg' | 'icon-lg';
@@ -687,6 +1058,237 @@ declare namespace ScoreBadge {
687
1058
  */
688
1059
  declare const ScoreBadge: React$1.ForwardRefExoticComponent<Omit<ScoreBadgeProps, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
689
1060
  //#endregion
1061
+ //#region src/helpers/format-kpi.d.ts
1062
+ /**
1063
+ * KPI formatting helpers — private to `@aircall/blocks`.
1064
+ * Number/percent formatting aligns with ScoreBadge `kind` / `formatOptions`.
1065
+ */
1066
+ type KpiKind = 'number' | 'percent' | 'duration' | 'text';
1067
+ /**
1068
+ * How `kind="duration"` is displayed.
1069
+ * - `long` — `"1h 2min 3s"`
1070
+ * - `clock` — zero-padded `"20:53"` / `"05:04"` per {@link KpiDurationScale}
1071
+ */
1072
+ type KpiDurationStyle = 'long' | 'clock';
1073
+ /**
1074
+ * Clock scale when {@link KpiDurationStyle} is `"clock"`.
1075
+ * - `hours` — `HH:MM` with default unit `hr/min`
1076
+ * - `minutes` — `MM:SS` with default unit `min/sec`
1077
+ */
1078
+ type KpiDurationScale = 'hours' | 'minutes';
1079
+ //#endregion
1080
+ //#region src/components/kpi.d.ts
1081
+ /**
1082
+ * Direction of change — controls the trend **icon** only.
1083
+ * Color comes from {@link KpiTone}, so an upward change can be good or bad.
1084
+ */
1085
+ type KpiTrend = 'up' | 'down' | 'neutral';
1086
+ /**
1087
+ * Semantic meaning of the change — controls **color** only.
1088
+ * Same vocabulary as {@link SentimentBadge} (`positive` / `negative` / `neutral`).
1089
+ * Never inferred from {@link KpiTrend}: an "up" abandoned-calls metric stays red
1090
+ * when `tone="negative"`.
1091
+ */
1092
+ type KpiTone = 'positive' | 'negative' | 'neutral';
1093
+ /**
1094
+ * KPI tile container. Thin wrapper around DS `Card` (`size="sm"` by default)
1095
+ * that provides a `disabled` context for nested {@link KpiValue}s.
1096
+ * When `disabled`, applies `opacity-50` and `cursor-not-allowed`, and blocks
1097
+ * activation of nested interactive values.
1098
+ * Compose with DS `CardHeader` / `CardTitle` / `CardContent` / `CardAction`,
1099
+ * {@link KpiValue}, and {@link KpiDescription}.
1100
+ *
1101
+ * @example
1102
+ * ```tsx
1103
+ * import { CardHeader, CardTitle, CardContent } from '@aircall/ds';
1104
+ * import { KpiCard, KpiValue, KpiDescription } from '@aircall/blocks';
1105
+ *
1106
+ * <KpiCard>
1107
+ * <CardHeader>
1108
+ * <CardTitle>Answered</CardTitle>
1109
+ * </CardHeader>
1110
+ * <CardContent className="flex flex-col gap-1">
1111
+ * <KpiValue value={123.1} kind="percent" trend="up" tone="positive" />
1112
+ * <KpiDescription trend="up" tone="positive">+2.48% vs previous period</KpiDescription>
1113
+ * </CardContent>
1114
+ * </KpiCard>
1115
+ * ```
1116
+ */
1117
+ declare const KpiCard: React$1.ForwardRefExoticComponent<Omit<KpiCardProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1118
+ interface KpiCardProps extends React$1.ComponentProps<typeof Card> {
1119
+ /**
1120
+ * When `true`, applies `opacity-50` and `cursor-not-allowed`, and cascades
1121
+ * so nested {@link KpiValue}s cannot be activated.
1122
+ * @default false
1123
+ */
1124
+ disabled?: boolean;
1125
+ }
1126
+ declare namespace KpiCard {
1127
+ type Props = KpiCardProps;
1128
+ }
1129
+ /**
1130
+ * KPI metric value. Formats via `useDsLocale` and renders primary (and optional
1131
+ * secondary) typography, with trend variants. Passing `onClick` makes the value
1132
+ * interactive (button + dotted underline). Prefer {@link KpiCard}`s `disabled`
1133
+ * for tile-level muting; a local `disabled` still works for standalone use.
1134
+ * Compose inside DS `CardContent` with {@link KpiDescription}.
1135
+ *
1136
+ * Prop naming: `kind` + `formatOptions` for formatting; `trend` is direction
1137
+ * (icon); `tone` is meaning (color) — "up" is not always good.
1138
+ *
1139
+ * @example
1140
+ * ```tsx
1141
+ * <KpiValue value={123.1} kind="percent" trend="up" tone="positive" />
1142
+ * ```
1143
+ */
1144
+ declare const KpiValue: React$1.ForwardRefExoticComponent<Omit<KpiValueProps, "ref"> & React$1.RefAttributes<HTMLElement>>;
1145
+ type KpiValueProps = Omit<useRender.ComponentProps<'div'>, 'children'> & {
1146
+ /**
1147
+ * Raw value. `null` / `undefined` (or non-finite number) renders `"--"`.
1148
+ * Ignored when `children` is passed.
1149
+ *
1150
+ * - `number` — formatted by {@link KpiValueProps.kind} (`number` / `percent` / `duration`)
1151
+ * - `string` — always rendered as-is (`kind` is ignored). Coerce numeric API
1152
+ * strings before passing if you need number formatting.
1153
+ */
1154
+ value?: number | string | null;
1155
+ /**
1156
+ * How a **numeric** `value` is formatted. Ignored when `value` is a `string`
1157
+ * (opaque text) or when `children` is passed.
1158
+ * @default 'number' when value is a number; 'text' when value is a string
1159
+ */
1160
+ kind?: KpiKind;
1161
+ /**
1162
+ * Extra `Intl.NumberFormat` options merged over the per-kind defaults.
1163
+ * Ignored for `kind="duration"` / `kind="text"`.
1164
+ */
1165
+ formatOptions?: Intl.NumberFormatOptions;
1166
+ /**
1167
+ * How `kind="duration"` is displayed.
1168
+ * @default 'long' — `"1h 2min 3s"`
1169
+ * `'clock'` — zero-padded `"20:53"` / `"05:04"` per {@link KpiValueProps.durationScale}
1170
+ */
1171
+ durationStyle?: KpiDurationStyle;
1172
+ /**
1173
+ * Clock scale when {@link KpiValueProps.durationStyle} is `"clock"`.
1174
+ * @default 'minutes' — `MM:SS` + unit `min/sec`
1175
+ * `'hours'` — `HH:MM` + unit `hr/min`
1176
+ */
1177
+ durationScale?: KpiDurationScale;
1178
+ /**
1179
+ * Secondary unit after the value (Additional variant) — e.g. `avg`.
1180
+ * For `kind="number"`, fractional digits also use this style; `unit` is
1181
+ * appended after them. Prefer `kind="percent"` when the unit is `%`.
1182
+ * For `durationStyle="clock"`, defaults to `hr/min` / `min/sec` from
1183
+ * {@link KpiValueProps.durationScale}; pass `unit=""` to suppress.
1184
+ */
1185
+ unit?: React$1.ReactNode;
1186
+ /**
1187
+ * Direction of change — icon only (`up` / `down` / `neutral`).
1188
+ * Does **not** pick color; pair with {@link KpiValueProps.tone}.
1189
+ */
1190
+ trend?: KpiTrend;
1191
+ /**
1192
+ * Whether the change is good or bad — color only.
1193
+ * @default 'neutral'
1194
+ */
1195
+ tone?: KpiTone;
1196
+ /**
1197
+ * Marks a clickable value as selected (solid underline + `text-primary`).
1198
+ * Only applies when `onClick` is set.
1199
+ * @default false
1200
+ */
1201
+ active?: boolean;
1202
+ /**
1203
+ * Mutes the value (`text-muted-foreground`) for standalone use. Prefer
1204
+ * {@link KpiCard}`s `disabled` when composing a tile — that fades the whole
1205
+ * card via `opacity-50` and still blocks interactive activation.
1206
+ * @default false
1207
+ */
1208
+ disabled?: boolean;
1209
+ /**
1210
+ * Escape hatch: custom primary content instead of `value` formatting.
1211
+ * `unit` / `trend` / `tone` still apply.
1212
+ */
1213
+ children?: React$1.ReactNode;
1214
+ };
1215
+ declare namespace KpiValue {
1216
+ type Props = KpiValueProps;
1217
+ }
1218
+ interface KpiDescriptionProps extends React$1.ComponentProps<'div'> {
1219
+ /**
1220
+ * Trailing trend icon direction (`up` / `down` / `neutral`).
1221
+ * Does **not** pick color; pair with {@link KpiDescriptionProps.tone}.
1222
+ */
1223
+ trend?: KpiTrend;
1224
+ /**
1225
+ * Icon color only — whether the change is good or bad. Text stays foreground.
1226
+ * @default 'neutral'
1227
+ */
1228
+ tone?: KpiTone;
1229
+ }
1230
+ declare namespace KpiDescription {
1231
+ type Props = KpiDescriptionProps;
1232
+ }
1233
+ /**
1234
+ * Supporting comparison / context line under a {@link KpiValue}. Compose as a
1235
+ * sibling inside DS `CardContent` — not the metric title (`CardTitle` owns that).
1236
+ *
1237
+ * Text stays foreground; `trend` / `tone` only color the trailing icon so an
1238
+ * upward change that is bad uses `trend="up" tone="negative"`.
1239
+ *
1240
+ * @example
1241
+ * ```tsx
1242
+ * <KpiDescription trend="up" tone="positive">+2.48% vs previous period</KpiDescription>
1243
+ * <KpiDescription trend="up" tone="negative">+12% abandoned</KpiDescription>
1244
+ * ```
1245
+ */
1246
+ declare const KpiDescription: React$1.ForwardRefExoticComponent<Omit<KpiDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1247
+ /**
1248
+ * Loading placeholder sized for a {@link KpiValue} row. Thin wrapper around
1249
+ * DS `Skeleton` (`h-4 w-[45px]` with vertical margin to match the value row).
1250
+ * Swap in place of {@link KpiValue} while data loads.
1251
+ *
1252
+ * @example
1253
+ * ```tsx
1254
+ * <CardContent>
1255
+ * {loading ? <KpiValueSkeleton /> : <KpiValue value={123} />}
1256
+ * </CardContent>
1257
+ * ```
1258
+ */
1259
+ declare const KpiValueSkeleton: React$1.ForwardRefExoticComponent<Omit<KpiValueSkeletonProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1260
+ interface KpiValueSkeletonProps extends React$1.ComponentProps<typeof Skeleton> {}
1261
+ declare namespace KpiValueSkeleton {
1262
+ type Props = KpiValueSkeletonProps;
1263
+ }
1264
+ /**
1265
+ * Loading placeholder sized for a {@link KpiDescription} row. Thin wrapper
1266
+ * around DS `Skeleton` (`12×144`, matching `text-xs` comparison copy).
1267
+ * Swap in place of {@link KpiDescription} while data loads.
1268
+ *
1269
+ * @example
1270
+ * ```tsx
1271
+ * <CardContent className="flex flex-col gap-1">
1272
+ * {loading ? (
1273
+ * <>
1274
+ * <KpiValueSkeleton />
1275
+ * <KpiDescriptionSkeleton />
1276
+ * </>
1277
+ * ) : (
1278
+ * <>
1279
+ * <KpiValue value={123} />
1280
+ * <KpiDescription>+2.48% vs previous period</KpiDescription>
1281
+ * </>
1282
+ * )}
1283
+ * </CardContent>
1284
+ * ```
1285
+ */
1286
+ declare const KpiDescriptionSkeleton: React$1.ForwardRefExoticComponent<Omit<KpiDescriptionSkeletonProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1287
+ interface KpiDescriptionSkeletonProps extends React$1.ComponentProps<typeof Skeleton> {}
1288
+ declare namespace KpiDescriptionSkeleton {
1289
+ type Props = KpiDescriptionSkeletonProps;
1290
+ }
1291
+ //#endregion
690
1292
  //#region src/components/sentiment-badge.d.ts
691
1293
  /**
692
1294
  * The three conversation sentiments a {@link SentimentBadge} can display. Each
@@ -737,10 +1339,12 @@ declare function ChatbotPanelTrigger({
737
1339
  }: ChatbotPanelTriggerProps): React$1.JSX.Element;
738
1340
  //#endregion
739
1341
  //#region src/components/chatbot-expand-suggestion.d.ts
1342
+ /** A selectable category filter pill shown above the suggestions list. */
740
1343
  interface ChatbotExpandSuggestionCategory {
741
1344
  value: string;
742
1345
  label: string;
743
1346
  }
1347
+ /** A single clickable suggestion row. */
744
1348
  interface ChatbotExpandSuggestionItem {
745
1349
  id: string;
746
1350
  text: string;
@@ -760,12 +1364,27 @@ interface ChatbotExpandSuggestionProps {
760
1364
  onSuggestionClick?: (suggestion: ChatbotExpandSuggestionItem) => void;
761
1365
  className?: string;
762
1366
  }
1367
+ /**
1368
+ * Displays category filter pills and a list of clickable suggestion rows for the
1369
+ * chatbot idle state. Renders a `<div>` wrapping an optional `ToggleGroup` of
1370
+ * category pills and a list of `Item` rows separated by `Separator`.
1371
+ *
1372
+ * @example
1373
+ * ```tsx
1374
+ * <ChatbotExpandSuggestion
1375
+ * categories={[{ value: 'billing', label: 'Billing' }]}
1376
+ * suggestions={[{ id: '1', text: 'How do I reset my password?' }]}
1377
+ * onSuggestionClick={suggestion => console.log(suggestion.text)}
1378
+ * />
1379
+ * ```
1380
+ */
763
1381
  declare const ChatbotExpandSuggestion: React$1.ForwardRefExoticComponent<ChatbotExpandSuggestionProps & React$1.RefAttributes<HTMLDivElement>>;
764
1382
  declare namespace ChatbotExpandSuggestion {
765
1383
  type Props = ChatbotExpandSuggestionProps;
766
1384
  }
767
1385
  //#endregion
768
1386
  //#region src/components/chatbot-panel.d.ts
1387
+ /** A suggestion pill shown in the panel's empty state. */
769
1388
  type ChatbotPanelSuggestionItem = {
770
1389
  /** Stable id; falls back to the label when omitted. */id?: string; /** Pill copy, also used as the message text on select. */
771
1390
  label: string;
@@ -808,6 +1427,21 @@ type ChatbotPanelProps = Omit<React$1.ComponentProps<'div'>, 'title' | 'onSubmit
808
1427
  onWidthChange?: (width: number) => void; /** Conversation content. When empty, the empty state renders instead. */
809
1428
  children?: React$1.ReactNode;
810
1429
  };
1430
+ /**
1431
+ * Presentational chatbot surface — header, scrollable conversation area (or a
1432
+ * built-in empty state), composer, and disclaimer — in a width-resizable shell.
1433
+ * Owns no visibility state (the consumer controls show/hide); pass the conversation
1434
+ * as `children`, and no children renders the empty state. Renders a `<div>`
1435
+ * container.
1436
+ *
1437
+ * @example
1438
+ * ```tsx
1439
+ * <ChatbotPanel onClose={close} onSubmit={send}>
1440
+ * <ChatbotUserMessage>Hi</ChatbotUserMessage>
1441
+ * <ChatbotResponseBlock>Hello!</ChatbotResponseBlock>
1442
+ * </ChatbotPanel>
1443
+ * ```
1444
+ */
811
1445
  declare function ChatbotPanel({
812
1446
  title,
813
1447
  onMenu,
@@ -856,23 +1490,25 @@ declare function useCopyToClipboard(value: string, {
856
1490
  };
857
1491
  //#endregion
858
1492
  //#region src/components/card-save-bar.d.ts
1493
+ type CardSaveBarProps = {
1494
+ submitLabel?: string;
1495
+ savingLabel?: string;
1496
+ resetLabel?: string;
1497
+ };
859
1498
  /**
860
- * Animated save/discard bar for card-layout forms. Slides in when the form is dirty, collapses when clean.
1499
+ * Save/discard bar for card-layout forms the TanStack Form adapter around
1500
+ * `SaveBar`. Reads `isDirty`, `isSubmitting`, and `canSubmit` from form context
1501
+ * and renders `SaveBar` (which owns the animation, buttons, and the
1502
+ * `data-slot="card-footer"` that flushes it to the card edge).
861
1503
  *
862
- * Reads `isDirty`, `isSubmitting`, and `canSubmit` from context no props needed for form wiring.
863
- * Must be placed **inside** the `<form>` element and wrapped by `form.AppForm` (or any `formContext` provider).
864
- * Pair with `<Card className="overflow-hidden pb-0">` so the bar's border sits flush at the card edge.
1504
+ * Must be placed **inside** the `<form>` element and wrapped by `form.AppForm`
1505
+ * (or any `formContext` provider).
865
1506
  *
866
1507
  * @example
867
1508
  * <form.AppForm>
868
1509
  * <form.CardSaveBar submitLabel="Save" resetLabel="Discard" />
869
1510
  * </form.AppForm>
870
1511
  */
871
- type CardSaveBarProps = {
872
- submitLabel?: string;
873
- savingLabel?: string;
874
- resetLabel?: string;
875
- };
876
1512
  declare function CardSaveBar({
877
1513
  submitLabel,
878
1514
  savingLabel,
@@ -880,10 +1516,14 @@ declare function CardSaveBar({
880
1516
  }: CardSaveBarProps): React$1.JSX.Element;
881
1517
  //#endregion
882
1518
  //#region src/components/submit-button.d.ts
1519
+ type SubmitButtonProps = Omit<React.ComponentProps<typeof Button>, 'type' | 'disabled'> & {
1520
+ loadingLabel?: string;
1521
+ };
883
1522
  /**
884
1523
  * Context-aware submit button. Disables itself when the form cannot be submitted or is submitting.
885
1524
  * Shows `loadingLabel` (default `"Saving…"`) while submitting.
886
1525
  *
1526
+ * Renders a DS `<Button type="submit">` (a `<button>` element).
887
1527
  * Must be a descendant of `form.AppForm` (or any `formContext` provider).
888
1528
  * Use for inline/flat layouts where `CardSaveBar` is not needed.
889
1529
  * Accepts all `Button` props except `type` and `disabled` (managed internally).
@@ -893,9 +1533,6 @@ declare function CardSaveBar({
893
1533
  * <form.SubmitButton loadingLabel="Saving…">Save</form.SubmitButton>
894
1534
  * </form.AppForm>
895
1535
  */
896
- type SubmitButtonProps = Omit<React.ComponentProps<typeof Button>, 'type' | 'disabled'> & {
897
- loadingLabel?: string;
898
- };
899
1536
  declare function SubmitButton({
900
1537
  children,
901
1538
  loadingLabel,
@@ -1538,6 +2175,7 @@ type LayoutProps = {
1538
2175
  * and error share one growing column on the opposite side.
1539
2176
  */
1540
2177
  type ControlVariant = 'inline' | 'fill';
2178
+ /** Props for `FormFieldShell` — the normalized label / description / layout inputs it renders from. */
1541
2179
  type FormFieldShellProps = {
1542
2180
  label?: LabelProp;
1543
2181
  description?: DescriptionProp;
@@ -1554,6 +2192,13 @@ type FormFieldShellProps = {
1554
2192
  controlPosition?: LayoutProps['controlPosition'];
1555
2193
  controlVariant?: ControlVariant;
1556
2194
  };
2195
+ /**
2196
+ * Internal layout shell shared by every `Form*Field` wrapper. Normalizes the
2197
+ * `label` / `description` props, lays out the `Field → label row → description →
2198
+ * control → error` skeleton per `orientation` / `controlVariant`, and applies the
2199
+ * error-display policy plus `data-invalid`. Reads the bound field from context,
2200
+ * so it must render inside `form.AppField`. Renders a DS `Field`.
2201
+ */
1557
2202
  declare function FormFieldShell({
1558
2203
  label,
1559
2204
  description,
@@ -2208,12 +2853,127 @@ declare function toFieldErrors(errors: readonly unknown[]): Array<{
2208
2853
  message: string;
2209
2854
  }>;
2210
2855
  //#endregion
2856
+ //#region src/components/setting-card.d.ts
2857
+ /**
2858
+ * Root container for a setting card. Renders the DS `Card`.
2859
+ *
2860
+ * By default the level (and therefore the background) is detected automatically:
2861
+ * a top-level card is level 1 (muted background, borderless); a card nested
2862
+ * inside another card's `SettingCardContent` becomes level 2 (white background,
2863
+ * border). Pass `level` to force a specific level — needed for the rare third
2864
+ * nesting level, which reuses the level-1 look (`level={1}`).
2865
+ *
2866
+ * @example
2867
+ * ```tsx
2868
+ * <SettingCard>
2869
+ * <SettingCardHeader>
2870
+ * <SettingCardTitle>Call recording</SettingCardTitle>
2871
+ * <SettingCardDescription>Record inbound and outbound calls.</SettingCardDescription>
2872
+ * <SettingCardAction>
2873
+ * <Switch checked={enabled} onCheckedChange={setEnabled} />
2874
+ * </SettingCardAction>
2875
+ * </SettingCardHeader>
2876
+ * {enabled && <SettingCardContent>…</SettingCardContent>}
2877
+ * </SettingCard>
2878
+ * ```
2879
+ *
2880
+ * @example
2881
+ * ```tsx
2882
+ * // With a save/discard bar: put the form on the OUTER level and drop
2883
+ * // `form.CardSaveBar` in as the last child. It reads dirty/submitting/canSubmit
2884
+ * // from form context, slides in when dirty, and carries `data-slot="card-footer"`
2885
+ * // so the card flushes it to the edge automatically. No `className` needed.
2886
+ * <form onSubmit={e => { e.preventDefault(); void form.handleSubmit(); }}>
2887
+ * <SettingCard>
2888
+ * <SettingCardHeader>
2889
+ * <SettingCardTitle>Profile</SettingCardTitle>
2890
+ * <SettingCardDescription>Update your display name.</SettingCardDescription>
2891
+ * </SettingCardHeader>
2892
+ * <SettingCardContent>…</SettingCardContent>
2893
+ * <form.AppForm>
2894
+ * <form.CardSaveBar resetLabel="Undo" />
2895
+ * </form.AppForm>
2896
+ * </SettingCard>
2897
+ * </form>
2898
+ * ```
2899
+ */
2900
+ declare const SettingCard: React$1.ForwardRefExoticComponent<Omit<SettingCardProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2901
+ interface SettingCardProps extends React$1.ComponentProps<typeof Card> {
2902
+ /**
2903
+ * Force the visual level instead of auto-detecting from nesting.
2904
+ * `1` = muted background, borderless. `2` = white background, border.
2905
+ * Leave undefined to detect automatically (top-level → 1, nested → 2).
2906
+ */
2907
+ level?: 1 | 2;
2908
+ }
2909
+ declare namespace SettingCard {
2910
+ type Props = SettingCardProps;
2911
+ }
2912
+ /**
2913
+ * Header row of a setting card. Wraps DS `CardHeader`, which lays out the
2914
+ * title/description on the left and the `SettingCardAction` on the right.
2915
+ */
2916
+ declare const SettingCardHeader: React$1.ForwardRefExoticComponent<Omit<SettingCardHeaderProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2917
+ interface SettingCardHeaderProps extends React$1.ComponentProps<typeof CardHeader> {}
2918
+ declare namespace SettingCardHeader {
2919
+ type Props = SettingCardHeaderProps;
2920
+ }
2921
+ /**
2922
+ * Title of a setting card. Wraps DS `CardTitle`, overriding its type ramp so
2923
+ * weight and size follow the card's level (auto-detected from nesting, like the
2924
+ * background): level 1 is 18px bold, level 2 (nested) is 16px medium. A forced
2925
+ * level-1 card that is still nested (the rare 3rd level) keeps the 16px-medium
2926
+ * title, matching the design guidance for that case.
2927
+ */
2928
+ declare const SettingCardTitle: React$1.ForwardRefExoticComponent<Omit<SettingCardTitleProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2929
+ interface SettingCardTitleProps extends React$1.ComponentProps<typeof CardTitle> {}
2930
+ declare namespace SettingCardTitle {
2931
+ type Props = SettingCardTitleProps;
2932
+ }
2933
+ /**
2934
+ * Supporting description under the title. Wraps DS `CardDescription` (14px muted).
2935
+ * Inline links (e.g. "Learn more") can be placed inside its children.
2936
+ */
2937
+ declare const SettingCardDescription: React$1.ForwardRefExoticComponent<Omit<SettingCardDescriptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2938
+ interface SettingCardDescriptionProps extends React$1.ComponentProps<typeof CardDescription> {}
2939
+ declare namespace SettingCardDescription {
2940
+ type Props = SettingCardDescriptionProps;
2941
+ }
2942
+ /**
2943
+ * Top-right control slot of the header — holds a single control, either a
2944
+ * `<Switch>` (toggle card) or a `<Button>` (action card). Wraps DS `CardAction`.
2945
+ * The two never co-occur, so this is one slot, not two.
2946
+ */
2947
+ declare const SettingCardAction: React$1.ForwardRefExoticComponent<Omit<SettingCardActionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2948
+ interface SettingCardActionProps extends React$1.ComponentProps<typeof CardAction> {}
2949
+ declare namespace SettingCardAction {
2950
+ type Props = SettingCardActionProps;
2951
+ }
2952
+ /**
2953
+ * Body of a setting card. Wraps DS `CardContent` and carries the
2954
+ * `data-setting-card-content` marker that drives nesting detection: any
2955
+ * `SettingCard` rendered inside here auto-detects level 2.
2956
+ *
2957
+ * For progressive disclosure, render this conditionally — mount it only when
2958
+ * the header's toggle is on — so gated fields never mount while disabled.
2959
+ */
2960
+ declare const SettingCardContent: React$1.ForwardRefExoticComponent<Omit<SettingCardContentProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2961
+ interface SettingCardContentProps extends React$1.ComponentProps<typeof CardContent> {}
2962
+ declare namespace SettingCardContent {
2963
+ type Props = SettingCardContentProps;
2964
+ }
2965
+ //#endregion
2211
2966
  //#region src/components/save-bar.d.ts
2212
2967
  /**
2213
- * Headless animated save/discard bar. Slides in when `isDirty`, collapses when clean.
2968
+ * Headless animated save/discard bar the shared UI behind `CardSaveBar`.
2969
+ * Slides in when `isDirty`, collapses when clean (animates real content height
2970
+ * via a grid-rows transition, so appear and disappear are both smooth).
2214
2971
  *
2215
- * Unlike `CardSaveBar`, this component is form-library agnostic wire it manually via `form.Subscribe`.
2216
- * Use when you need the save-bar UI outside of a card layout, or with a custom form setup.
2972
+ * Form-library agnostic: wire the state yourself (via `form.Subscribe`, a store,
2973
+ * or local state). Its root carries `data-slot="card-footer"`, so a surrounding
2974
+ * `Card` collapses its bottom padding (`has-data-[slot=card-footer]:pb-0`) and
2975
+ * the bar sits flush at the card edge. For TanStack Form, prefer `CardSaveBar`,
2976
+ * which reads the state from context and renders this.
2217
2977
  *
2218
2978
  * @example
2219
2979
  * <form.Subscribe selector={s => ({ isDirty: s.isDirty, isSubmitting: s.isSubmitting, canSubmit: s.canSubmit })}>
@@ -2320,62 +3080,130 @@ type DashboardSidebarNavProps = {
2320
3080
  */
2321
3081
  renderLink?: (href: string) => React$1.ReactElement;
2322
3082
  };
3083
+ /**
3084
+ * Data-driven sidebar navigation. Maps a `groups` array into the
3085
+ * `DashboardSidebar` primitives, rendering each item as a link, a dropdown
3086
+ * submenu, or an action button (with optional badges, counts, and tooltips).
3087
+ *
3088
+ * Renders a fragment of `DashboardSidebarGroup` sections — it has no wrapper
3089
+ * element of its own, so place it inside a `DashboardSidebarContent`.
3090
+ *
3091
+ * @example
3092
+ * <DashboardSidebarNav
3093
+ * groups={groups}
3094
+ * renderLink={href => <Link to={href} />}
3095
+ * />
3096
+ */
2323
3097
  declare function DashboardSidebarNav({
2324
3098
  groups,
2325
3099
  renderLink
2326
3100
  }: DashboardSidebarNavProps): React$1.JSX.Element;
2327
3101
  //#endregion
2328
3102
  //#region src/components/dashboard-sidebar.d.ts
3103
+ /**
3104
+ * Context provider and flex-row layout wrapping the sidebar and page content;
3105
+ * renders a ds `SidebarProvider`. Provides the state consumed by `useDashboardSidebar`.
3106
+ *
3107
+ * @example
3108
+ * ```tsx
3109
+ * <DashboardSidebarProvider>
3110
+ * <DashboardSidebar>
3111
+ * <DashboardSidebarContent>
3112
+ * <DashboardSidebarMenu>
3113
+ * <DashboardSidebarMenuItem>
3114
+ * <DashboardSidebarMenuButton icon={<Home />}>Home</DashboardSidebarMenuButton>
3115
+ * </DashboardSidebarMenuItem>
3116
+ * </DashboardSidebarMenu>
3117
+ * </DashboardSidebarContent>
3118
+ * </DashboardSidebar>
3119
+ * <DashboardPageContent>…</DashboardPageContent>
3120
+ * </DashboardSidebarProvider>
3121
+ * ```
3122
+ */
2329
3123
  declare const DashboardSidebarProvider: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarProviderProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2330
3124
  interface DashboardSidebarProviderProps extends React$1.ComponentProps<typeof SidebarProvider> {}
2331
3125
  declare namespace DashboardSidebarProvider {
2332
3126
  type Props = DashboardSidebarProviderProps;
2333
3127
  }
3128
+ /**
3129
+ * Root sidebar column that grows/shrinks with the collapse state; renders a `<div>`.
3130
+ * Holds `DashboardSidebarHeader`, `DashboardSidebarContent`, and `DashboardSidebarFooter`.
3131
+ */
2334
3132
  declare const DashboardSidebar: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2335
3133
  interface DashboardSidebarProps extends React$1.ComponentProps<'div'> {}
2336
3134
  declare namespace DashboardSidebar {
2337
3135
  type Props = DashboardSidebarProps;
2338
3136
  }
3137
+ /**
3138
+ * Top bar of the sidebar that houses the collapse toggle; renders a `<div>`.
3139
+ */
2339
3140
  declare const DashboardSidebarHeader: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarHeaderProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2340
3141
  interface DashboardSidebarHeaderProps extends React$1.ComponentProps<'div'> {}
2341
3142
  declare namespace DashboardSidebarHeader {
2342
3143
  type Props = DashboardSidebarHeaderProps;
2343
3144
  }
3145
+ /**
3146
+ * Collapse/expand toggle rendering a ghost, icon ds `Button`; renders a `<button>`.
3147
+ * Swaps its icon and aria-label based on the sidebar state.
3148
+ */
2344
3149
  declare const DashboardSidebarTrigger: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2345
3150
  interface DashboardSidebarTriggerProps extends React$1.ComponentProps<typeof Button> {}
2346
3151
  declare namespace DashboardSidebarTrigger {
2347
3152
  type Props = DashboardSidebarTriggerProps;
2348
3153
  }
3154
+ /**
3155
+ * Scrollable middle section of the sidebar (scrollbar hidden); renders a `<div>`.
3156
+ */
2349
3157
  declare const DashboardSidebarContent: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarContentProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2350
3158
  interface DashboardSidebarContentProps extends React$1.ComponentProps<'div'> {}
2351
3159
  declare namespace DashboardSidebarContent {
2352
3160
  type Props = DashboardSidebarContentProps;
2353
3161
  }
3162
+ /**
3163
+ * Frosted-glass bottom section of the sidebar; renders a `<div>`.
3164
+ */
2354
3165
  declare const DashboardSidebarFooter: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarFooterProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2355
3166
  interface DashboardSidebarFooterProps extends React$1.ComponentProps<'div'> {}
2356
3167
  declare namespace DashboardSidebarFooter {
2357
3168
  type Props = DashboardSidebarFooterProps;
2358
3169
  }
3170
+ /**
3171
+ * Groups a set of menu items (optionally labelled); renders a `<div>`.
3172
+ */
2359
3173
  declare const DashboardSidebarGroup: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarGroupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2360
3174
  interface DashboardSidebarGroupProps extends React$1.ComponentProps<'div'> {}
2361
3175
  declare namespace DashboardSidebarGroup {
2362
3176
  type Props = DashboardSidebarGroupProps;
2363
3177
  }
3178
+ /**
3179
+ * Section heading for a group, hidden when the sidebar is collapsed; renders a `<div>`
3180
+ * by default, overridable via the `render` prop.
3181
+ */
2364
3182
  declare const DashboardSidebarGroupLabel: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarGroupLabelProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2365
3183
  type DashboardSidebarGroupLabelProps = useRender.ComponentProps<'div'> & React$1.ComponentProps<'div'>;
2366
3184
  declare namespace DashboardSidebarGroupLabel {
2367
3185
  type Props = DashboardSidebarGroupLabelProps;
2368
3186
  }
3187
+ /**
3188
+ * List container for menu items; renders a `<ul>`.
3189
+ */
2369
3190
  declare const DashboardSidebarMenu: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarMenuProps, "ref"> & React$1.RefAttributes<HTMLUListElement>>;
2370
3191
  interface DashboardSidebarMenuProps extends React$1.ComponentProps<'ul'> {}
2371
3192
  declare namespace DashboardSidebarMenu {
2372
3193
  type Props = DashboardSidebarMenuProps;
2373
3194
  }
3195
+ /**
3196
+ * Wrapper for a single menu row; renders a `<li>` (relative, for badge positioning).
3197
+ */
2374
3198
  declare const DashboardSidebarMenuItem: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarMenuItemProps, "ref"> & React$1.RefAttributes<HTMLLIElement>>;
2375
3199
  interface DashboardSidebarMenuItemProps extends React$1.ComponentProps<'li'> {}
2376
3200
  declare namespace DashboardSidebarMenuItem {
2377
3201
  type Props = DashboardSidebarMenuItemProps;
2378
3202
  }
3203
+ /**
3204
+ * Pill-shaped navigation item with a leading icon circle and optional trailing action;
3205
+ * renders a `<button>` by default, overridable via the `render` prop (e.g. a router `<Link>`).
3206
+ */
2379
3207
  declare const DashboardSidebarMenuButton: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarMenuButtonProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2380
3208
  type DashboardSidebarMenuButtonProps = useRender.ComponentProps<'button'> & React$1.ComponentProps<'button'> & {
2381
3209
  isActive?: boolean;
@@ -2398,16 +3226,29 @@ type DashboardSidebarMenuButtonProps = useRender.ComponentProps<'button'> & Reac
2398
3226
  declare namespace DashboardSidebarMenuButton {
2399
3227
  type Props = DashboardSidebarMenuButtonProps;
2400
3228
  }
3229
+ /**
3230
+ * Notification count badge for a menu item; renders a ds `CounterBadge` positioned
3231
+ * absolutely at the row's right edge (moves to the icon corner when collapsed).
3232
+ * Place it inside `DashboardSidebarMenuItem`, as a sibling of the button.
3233
+ */
2401
3234
  declare const DashboardSidebarMenuBadge: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarMenuBadgeProps, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
2402
3235
  interface DashboardSidebarMenuBadgeProps extends React$1.ComponentProps<typeof CounterBadge> {}
2403
3236
  declare namespace DashboardSidebarMenuBadge {
2404
3237
  type Props = DashboardSidebarMenuBadgeProps;
2405
3238
  }
3239
+ /**
3240
+ * Popover-style panel (white card with border and shadow) opening beside a trigger;
3241
+ * renders a `<div>`. Hosts `DashboardSidebarSubmenuItem` and `DashboardSidebarSubmenuSeparator`.
3242
+ */
2406
3243
  declare const DashboardSidebarSubmenu: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarSubmenuProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2407
3244
  interface DashboardSidebarSubmenuProps extends React$1.ComponentProps<'div'> {}
2408
3245
  declare namespace DashboardSidebarSubmenu {
2409
3246
  type Props = DashboardSidebarSubmenuProps;
2410
3247
  }
3248
+ /**
3249
+ * One row inside a submenu; renders a `<div>` by default, overridable via the `render`
3250
+ * prop (e.g. an `<a>` or router `<Link>` for navigation).
3251
+ */
2411
3252
  declare const DashboardSidebarSubmenuItem: React$1.ForwardRefExoticComponent<Omit<DashboardSidebarSubmenuItemProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2412
3253
  type DashboardSidebarSubmenuItemProps = useRender.ComponentProps<'div'> & React$1.ComponentProps<'div'> & {
2413
3254
  isActive?: boolean;
@@ -2415,6 +3256,9 @@ type DashboardSidebarSubmenuItemProps = useRender.ComponentProps<'div'> & React$
2415
3256
  declare namespace DashboardSidebarSubmenuItem {
2416
3257
  type Props = DashboardSidebarSubmenuItemProps;
2417
3258
  }
3259
+ /**
3260
+ * Thin horizontal divider between submenu items; renders a `<div>`.
3261
+ */
2418
3262
  declare const DashboardSidebarSubmenuSeparator: React$1.ForwardRefExoticComponent<DashboardSidebarSubmenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>>;
2419
3263
  interface DashboardSidebarSubmenuSeparatorProps {
2420
3264
  className?: string;
@@ -2423,4 +3267,4 @@ declare namespace DashboardSidebarSubmenuSeparator {
2423
3267
  type Props = DashboardSidebarSubmenuSeparatorProps;
2424
3268
  }
2425
3269
  //#endregion
2426
- export { type ArrayField, type ArrayItem, BetaBadge, type BoundForm, CardSaveBar, type CardSaveBarProps, ChatbotExpandSuggestion, type ChatbotExpandSuggestionProps, ChatbotInput, type ChatbotInputProps, type ChatbotInputSuggestion, ChatbotPage, ChatbotPageBody, type ChatbotPageBodyProps, ChatbotPageContent, type ChatbotPageContentProps, ChatbotPageConversation, type ChatbotPageConversationProps, ChatbotPageFooter, type ChatbotPageFooterProps, ChatbotPageHeading, type ChatbotPageHeadingProps, ChatbotPageInputBar, type ChatbotPageInputBarProps, type ChatbotPageProps, ChatbotPanel, ChatbotPanelHeader, type ChatbotPanelHeaderProps, type ChatbotPanelProps, ChatbotPanelSuggestion, type ChatbotPanelSuggestionItem, type ChatbotPanelSuggestionProps, ChatbotPanelTrigger, type ChatbotPanelTriggerProps, ChatbotResponseBlock, type ChatbotResponseBlockFeedback, type ChatbotResponseBlockProps, ChatbotResponseLoading, type ChatbotResponseLoadingProps, ChatbotSidebar, type ChatbotSidebarConversation, ChatbotUserMessage, type ChatbotUserMessageProps, type ComboboxControl, ComingSoonDescription, ComingSoonEmptyState, ComingSoonMedia, ComingSoonTitle, CommonForm, CopyButton, CopyButtonIcon, CopyButtonLabel, DashboardPage, DashboardPageBanner, DashboardPageContent, DashboardPageHeader, DashboardPageHeaderAction, DashboardPageHeaderActions, DashboardPageHeaderDescription, DashboardPageHeaderNav, DashboardPageHeaderNavBack, DashboardPageHeaderPrefix, DashboardPageHeaderSubtitle, DashboardPageHeaderTitle, DashboardPageHeaderTitleGroup, DashboardPageMain, DashboardPageTabs, DashboardSidebar, DashboardSidebarContent, DashboardSidebarFooter, DashboardSidebarGroup, DashboardSidebarGroupLabel, DashboardSidebarHeader, DashboardSidebarMenu, DashboardSidebarMenuBadge, DashboardSidebarMenuButton, DashboardSidebarMenuItem, DashboardSidebarNav, type DashboardSidebarNavGroup, type DashboardSidebarNavItem, type DashboardSidebarNavItemAction, type DashboardSidebarNavItemLink, type DashboardSidebarNavItemSubmenu, type DashboardSidebarNavSubmenuItem, DashboardSidebarProvider, DashboardSidebarSubmenu, DashboardSidebarSubmenuItem, DashboardSidebarSubmenuSeparator, DashboardSidebarTrigger, DashboardStandalonePage, DashboardStandalonePageAction, DashboardStandalonePageActions, DashboardStandalonePageContent, DashboardStandalonePageDescription, DashboardStandalonePageHeader, DashboardStandalonePageMain, DashboardStandalonePageTitle, DeprecatedBadge, EmptyState, EmptyStateActions, EmptyStateButton, EmptyStateDescription, EmptyStateExternalLink, EmptyStateHeader, EmptyStateMedia, EmptyStateTitle, type FieldBindingProps, FormArrayField, type FormArrayFieldProps, FormComboboxField, type FormComboboxFieldProps, FormFieldBase, FormFieldShell, type FormFieldShellProps, type FormFieldValidators, FormInputField, type FormInputFieldProps, FormMultiComboboxField, type FormMultiComboboxFieldProps, FormNumericField, type FormNumericFieldProps, FormOTPField, type FormOTPFieldProps, FormRadioGroupField, type FormRadioGroupFieldProps, FormSelectField, type FormSelectFieldProps, FormSliderField, type FormSliderFieldProps, FormSwitchField, type FormSwitchFieldProps, FormTextareaField, type FormTextareaFieldProps, FormToggleGroupField, type FormToggleGroupFieldProps, type InputControl, type MultiComboboxControl, type NecessityProps, NewBadge, NoDataDescription, NoDataEmptyState, NoDataMedia, NoDataTitle, NoSupportDescription, NoSupportEmptyState, NoSupportMedia, NoSupportTitle, NotFoundDescription, NotFoundEmptyState, NotFoundMedia, NotFoundTitle, type NumericControl, type OTPControl, PERCENTAGE_THRESHOLDS, ProfessionalBadge, type RadioGroupControl, RestrictedAccessDescription, RestrictedAccessEmptyState, RestrictedAccessMedia, RestrictedAccessTitle, RoleBadge, type RoleBadgeRole, SaveBar, type SaveBarProps, ScoreBadge, type ScoreKind, type ScoreThreshold, type ScoreThresholds, type ScoreTone, type SelectControl, type Sentiment, SentimentBadge, type SliderControl, SubmitButton, type SubmitButtonProps, type SwitchControl, type TextareaControl, type ToggleGroupControl, TrialBadge, type TypedField, UnknownErrorDescription, UnknownErrorEmptyState, UnknownErrorMedia, UnknownErrorTitle, fieldContext, formContext, toFieldErrors, useCopyToClipboard, useSidebar as useDashboardSidebar, useFieldContext, useForm, useFormContext, withFieldGroup, withForm };
3270
+ export { type ArrayField, type ArrayItem, BetaBadge, type BoundForm, CardSaveBar, type CardSaveBarProps, ChatbotExpandSuggestion, type ChatbotExpandSuggestionProps, ChatbotInput, type ChatbotInputProps, type ChatbotInputSuggestion, ChatbotPage, ChatbotPageBody, type ChatbotPageBodyProps, ChatbotPageContent, type ChatbotPageContentProps, ChatbotPageConversation, type ChatbotPageConversationProps, ChatbotPageFooter, type ChatbotPageFooterProps, ChatbotPageHeading, type ChatbotPageHeadingProps, ChatbotPageInputBar, type ChatbotPageInputBarProps, type ChatbotPageProps, ChatbotPanel, ChatbotPanelHeader, type ChatbotPanelHeaderProps, type ChatbotPanelProps, ChatbotPanelSuggestion, type ChatbotPanelSuggestionItem, type ChatbotPanelSuggestionProps, ChatbotPanelTrigger, type ChatbotPanelTriggerProps, ChatbotResponseBlock, type ChatbotResponseBlockFeedback, type ChatbotResponseBlockProps, ChatbotResponseLoading, type ChatbotResponseLoadingProps, ChatbotSidebar, type ChatbotSidebarConversation, ChatbotUserMessage, type ChatbotUserMessageProps, type ComboboxControl, ComingSoonDescription, ComingSoonEmptyState, ComingSoonMedia, ComingSoonTitle, CommonForm, CopyButton, CopyButtonIcon, CopyButtonLabel, DashboardPage, DashboardPageBanner, DashboardPageContent, DashboardPageHeader, DashboardPageHeaderAction, DashboardPageHeaderActions, DashboardPageHeaderDescription, DashboardPageHeaderNav, DashboardPageHeaderNavBack, DashboardPageHeaderPrefix, DashboardPageHeaderSubtitle, DashboardPageHeaderTitle, DashboardPageHeaderTitleGroup, DashboardPageMain, DashboardPageTabs, DashboardSidebar, DashboardSidebarContent, DashboardSidebarFooter, DashboardSidebarGroup, DashboardSidebarGroupLabel, DashboardSidebarHeader, DashboardSidebarMenu, DashboardSidebarMenuBadge, DashboardSidebarMenuButton, DashboardSidebarMenuItem, DashboardSidebarNav, type DashboardSidebarNavGroup, type DashboardSidebarNavItem, type DashboardSidebarNavItemAction, type DashboardSidebarNavItemLink, type DashboardSidebarNavItemSubmenu, type DashboardSidebarNavSubmenuItem, DashboardSidebarProvider, DashboardSidebarSubmenu, DashboardSidebarSubmenuItem, DashboardSidebarSubmenuSeparator, DashboardSidebarTrigger, DashboardStandalonePage, DashboardStandalonePageAction, DashboardStandalonePageActions, DashboardStandalonePageContent, DashboardStandalonePageDescription, DashboardStandalonePageHeader, DashboardStandalonePageMain, DashboardStandalonePageTitle, DeprecatedBadge, EmptyState, EmptyStateActions, EmptyStateButton, EmptyStateDescription, EmptyStateExternalLink, EmptyStateHeader, EmptyStateMedia, EmptyStateTitle, type FieldBindingProps, FormArrayField, type FormArrayFieldProps, FormComboboxField, type FormComboboxFieldProps, FormFieldBase, FormFieldShell, type FormFieldShellProps, type FormFieldValidators, FormInputField, type FormInputFieldProps, FormMultiComboboxField, type FormMultiComboboxFieldProps, FormNumericField, type FormNumericFieldProps, FormOTPField, type FormOTPFieldProps, FormRadioGroupField, type FormRadioGroupFieldProps, FormSelectField, type FormSelectFieldProps, FormSliderField, type FormSliderFieldProps, FormSwitchField, type FormSwitchFieldProps, FormTextareaField, type FormTextareaFieldProps, FormToggleGroupField, type FormToggleGroupFieldProps, type InputControl, KpiCard, KpiDescription, KpiDescriptionSkeleton, type KpiDurationScale, type KpiDurationStyle, type KpiKind, type KpiTone, type KpiTrend, KpiValue, KpiValueSkeleton, type MultiComboboxControl, type NecessityProps, NewBadge, NoDataDescription, NoDataEmptyState, NoDataMedia, NoDataTitle, NoSupportDescription, NoSupportEmptyState, NoSupportMedia, NoSupportTitle, NotFoundDescription, NotFoundEmptyState, NotFoundMedia, NotFoundTitle, type NumericControl, type OTPControl, PERCENTAGE_THRESHOLDS, ProfessionalBadge, type RadioGroupControl, RestrictedAccessDescription, RestrictedAccessEmptyState, RestrictedAccessMedia, RestrictedAccessTitle, RoleBadge, type RoleBadgeRole, SaveBar, type SaveBarProps, ScoreBadge, type ScoreKind, type ScoreThreshold, type ScoreThresholds, type ScoreTone, type SelectControl, type Sentiment, SentimentBadge, SettingCard, SettingCardAction, SettingCardContent, SettingCardDescription, SettingCardHeader, SettingCardTitle, type SliderControl, SubmitButton, type SubmitButtonProps, type SwitchControl, type TextareaControl, type ToggleGroupControl, TrialBadge, type TypedField, UnknownErrorDescription, UnknownErrorEmptyState, UnknownErrorMedia, UnknownErrorTitle, fieldContext, formContext, toFieldErrors, useCopyToClipboard, useSidebar as useDashboardSidebar, useFieldContext, useForm, useFormContext, withFieldGroup, withForm };