@bfrs/agentic-components 0.3.8 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,6 +51,7 @@ import {
51
51
  FileDropzone,
52
52
  RevealField,
53
53
  RevealAndCopy,
54
+ HorizontalStepper,
54
55
  Modal,
55
56
  DataTable,
56
57
  TableColumnVisibility,
@@ -144,7 +145,7 @@ Registered tags cover the documented component surface, including
144
145
  `bfrs-table-row-actions`, `bfrs-table-bulk-actions`, and
145
146
  `bfrs-table-column-visibility`, and `bfrs-table-save-view` in addition to the existing component tags.
146
147
  Existing form and pattern tags include `bfrs-date-range-picker`,
147
- `bfrs-multi-select`, `bfrs-step-progress-card`, `bfrs-data-table`,
148
+ `bfrs-multi-select`, `bfrs-horizontal-stepper`, `bfrs-step-progress-card`, `bfrs-data-table`,
148
149
  `bfrs-modal`, `bfrs-tabs`, and the rest of the documented `bfrs-*` surface.
149
150
 
150
151
  ReactNode-based composition is exposed through native named slots. Angular
@@ -185,7 +186,7 @@ Mount `bfrs-toast-provider` once when Angular needs the equivalent of
185
186
 
186
187
  Use attributes for simple props: `variant`, `size`, `tone`, `label`, `loading`, `disabled`, `required`, `error-message`, `error-text`, `helper-text`, `prefix`, `suffix`, `min`, `max`, `step`, and `value`. Use `[props]` or the `props` JSON attribute for structured props like `options`, palette arrays, `items`, `columns`, `data`, `sections`, `steps`, and `toasts`.
187
188
 
188
- Common component events: `(value-change)`, `(checked-change)`, `(open-change)`, `(reveal-change)`, `(copy)`, `(copy-error)`, `(close)`, `(confirm)`, `(cancel)`, `(cell-action)`, `(cell-event)`, `(row-click)`, `(sort-change)`, `(page-change)`, `(page-size-change)`, `(action-select)`, `(dropdown-select)`, `(date-range-change)`, `(search-change)`, `(open-filters)`, `(apply)`, `(reset)`, and `(submit)`. Payloads are available on `$event.detail`.
189
+ Common component events: `(value-change)`, `(checked-change)`, `(open-change)`, `(reveal-change)`, `(copy)`, `(copy-error)`, `(close)`, `(step-select)`, `(confirm)`, `(cancel)`, `(cell-action)`, `(cell-event)`, `(row-click)`, `(sort-change)`, `(page-change)`, `(page-size-change)`, `(action-select)`, `(dropdown-select)`, `(date-range-change)`, `(search-change)`, `(open-filters)`, `(apply)`, `(reset)`, and `(submit)`. Payloads are available on `$event.detail`.
189
190
 
190
191
  For validated forms, keep client validation, API validation, and submit side effects in the consuming app. In React, wrap controls in `FormField`, pass field errors through `errorText`, and set the control's `error` prop when supported. In Angular, wrap controls that do not render their own label in `bfrs-form-field`; pass `error-text` and `helper-text` there, listen to the control's `(value-change)`, and manage success/failure notifications with `bfrs-toast-manager`.
191
192
 
@@ -1040,20 +1041,22 @@ Radio group. Renders a list of mutually exclusive options.
1040
1041
  value={plan}
1041
1042
  onValueChange={setPlan}
1042
1043
  options={[
1043
- { value: "free", label: "Free" },
1044
- { value: "pro", label: "Pro" },
1045
- { value: "enterprise", label: "Enterprise" },
1044
+ { value: "free", label: "Free", description: "For testing basic workflows." },
1045
+ { value: "pro", label: "Pro", description: "For growing teams that need automation." },
1046
+ { value: "enterprise", label: "Enterprise", description: "For custom limits and support." },
1046
1047
  ]}
1047
1048
  />
1048
1049
  ```
1049
1050
 
1050
1051
  | Prop | Type | Default |
1051
1052
  |------|------|---------|
1052
- | `options` | `{ value: string; label: string }[]` | **required** |
1053
+ | `options` | `{ value: string; label: ReactNode; description?: ReactNode; disabled?: boolean }[]` | **required** |
1053
1054
  | `value` | `string` | — |
1054
1055
  | `onValueChange` | `(value: string) => void` | — |
1055
1056
  | `error` | `boolean` | `false` |
1056
1057
 
1058
+ Each option renders `label` as the primary text and optional `description` as secondary text below it, matching the Checkbox label stack.
1059
+
1057
1060
  ---
1058
1061
 
1059
1062
  #### `Switch`
@@ -2233,6 +2236,72 @@ Built-in loading behavior:
2233
2236
 
2234
2237
  ---
2235
2238
 
2239
+ #### `HorizontalStepper`
2240
+
2241
+ Compact horizontal flow stepper matching the activation-panel layout: optional announcement banner, centered connected steps, and heading/subheading copy below. Uses semantic theme tokens instead of hardcoded screenshot colors. Actions remain parent-owned: React passes `onClose` / `onStepSelect`; custom elements emit `(close)` / `(step-select)`.
2242
+
2243
+ For custom elements, add `selectable` when steps should be clickable and emit `(step-select)`.
2244
+
2245
+ Variants:
2246
+ - `primary` — default theme-colored activation or plan-selection flow.
2247
+ - `success` — completed or positive-confirmation flows.
2248
+ - `info` — informational setup or guidance flows.
2249
+ - `warning` — pending verification or caution flows.
2250
+ - `neutral` — low-emphasis wizard progress where status color should stay quiet.
2251
+
2252
+ ```tsx
2253
+ <HorizontalStepper
2254
+ announcement="Great Choice! Early COD Remittance activation in progress.."
2255
+ closeButton
2256
+ onClose={handleClose}
2257
+ currentStep={0}
2258
+ title="Select a Plan"
2259
+ subheading="Get guaranteed remittance from the shipment delivered date."
2260
+ size="sm"
2261
+ variant="primary"
2262
+ steps={[
2263
+ { label: "Select Plan", secondaryText: "Choose payout speed" },
2264
+ { label: "Verify OTP", secondaryText: "Confirm activation" },
2265
+ ]}
2266
+ />
2267
+ ```
2268
+
2269
+ ```html
2270
+ <bfrs-horizontal-stepper
2271
+ announcement="Great Choice! Early COD Remittance activation in progress.."
2272
+ title="Select a Plan"
2273
+ subheading="Get guaranteed remittance from the shipment delivered date."
2274
+ current-step="0"
2275
+ close-button
2276
+ size="sm"
2277
+ selectable
2278
+ variant="primary"
2279
+ [props]="{ steps: remittanceSteps }"
2280
+ (close)="dismissStepper()"
2281
+ (step-select)="selectStep($event.detail)">
2282
+ </bfrs-horizontal-stepper>
2283
+ ```
2284
+
2285
+ | Prop | Type | Default |
2286
+ |------|------|---------|
2287
+ | `steps` | `{ label: ReactNode; secondaryText?: ReactNode; description?: ReactNode; status?: "done" \| "active" \| "pending" \| "disabled"; disabled?: boolean }[]` | **required** |
2288
+ | `currentStep` | `number` | `0` |
2289
+ | `title` | `ReactNode` | — |
2290
+ | `subheading` | `ReactNode` | — |
2291
+ | `description` | `ReactNode` | — alias for `subheading` |
2292
+ | `announcement` | `ReactNode` | — |
2293
+ | `closeButton` | `boolean` | `false` |
2294
+ | `closeLabel` | `string` | `"Close"` |
2295
+ | `onClose` | `() => void` | — |
2296
+ | `onStepSelect` | `(step, index) => void` | — |
2297
+ | `size` | `"sm" \| "md"` | `"sm"` |
2298
+ | `surface` | `"card" \| "plain"` | `"card"` |
2299
+ | `variant` | `"primary" \| "success" \| "info" \| "warning" \| "neutral"` | `"primary"` |
2300
+
2301
+ Each step renders `label` as the primary text and optional `secondaryText` below it. `description` is kept as a backwards-compatible alias for `secondaryText`.
2302
+
2303
+ ---
2304
+
2236
2305
  #### `StepProgressCard`
2237
2306
 
2238
2307
  Step-by-step progress indicator. Calculates `done` / `active` / `pending` state automatically from `currentStep` and preserves the green completed-dot, active-star, and rail-fill transitions. Defaults to the Figma-derived plain progress block; pass `surface="card"` for the standard card wrapper.
@@ -2343,6 +2412,121 @@ Step-by-step progress indicator. Calculates `done` / `active` / `pending` state
2343
2412
 
2344
2413
  ---
2345
2414
 
2415
+ ## Table / Thead / Tbody / Tfoot / Tr / Th / Td
2416
+
2417
+ Primitive table components with DataTable-matching styles, density support, and row hover effects. Use these for custom layouts where `DataTable` is too prescriptive.
2418
+
2419
+ ### React
2420
+
2421
+ ```tsx
2422
+ import { Table, Thead, Tbody, Tfoot, Tr, Th, Td } from "@bfrs/agentic-components";
2423
+
2424
+ <Table density="compact" sticky aria-label="Orders">
2425
+ <Thead sticky>
2426
+ <Tr>
2427
+ <Th>Order</Th>
2428
+ <Th align="right">Amount</Th>
2429
+ <Th>Status</Th>
2430
+ </Tr>
2431
+ </Thead>
2432
+ <Tbody>
2433
+ {orders.map((order) => (
2434
+ <Tr key={order.id} onClick={() => navigate(`/orders/${order.id}`)}>
2435
+ <Td>{order.id}</Td>
2436
+ <Td align="right">₹{order.amount}</Td>
2437
+ <Td>{order.status}</Td>
2438
+ </Tr>
2439
+ ))}
2440
+ </Tbody>
2441
+ <Tfoot>
2442
+ <Tr>
2443
+ <Th colSpan={2}>Total</Th>
2444
+ <Th align="right">₹{total}</Th>
2445
+ </Tr>
2446
+ </Tfoot>
2447
+ </Table>
2448
+ ```
2449
+
2450
+ #### Table props
2451
+
2452
+ | Prop | Type | Default | Description |
2453
+ |------|------|---------|-------------|
2454
+ | `density` | `"compact" \| "default" \| "comfortable"` | `"default"` | Cell padding density — propagates to Th/Td via React context |
2455
+ | `maxHeight` | `string \| number` | — | Enables vertical scrolling at this height |
2456
+ | `minWidth` | `string \| number` | — | Minimum table width (useful for fixed-layout tables) |
2457
+ | `className` | `string` | — | Applied to the outer border wrapper |
2458
+ | `tableClassName` | `string` | — | Applied to the `<table>` element |
2459
+ | `aria-label` | `string` | `"Table"` | Accessibility label |
2460
+ | `children` | `ReactNode` | — | `Thead`, `Tbody`, `Tfoot` elements |
2461
+
2462
+ #### Thead props
2463
+
2464
+ | Prop | Type | Default | Description |
2465
+ |------|------|---------|-------------|
2466
+ | `sticky` | `boolean` | `false` | Sticks the header at the top of the scroll container |
2467
+ | `className` | `string` | — | Extra class on `<thead>` |
2468
+
2469
+ #### Tr props
2470
+
2471
+ | Prop | Type | Default | Description |
2472
+ |------|------|---------|-------------|
2473
+ | `onClick` | `() => void` | — | Row click handler; adds `cursor-pointer` automatically |
2474
+ | `className` | `string` | — | Extra class on `<tr>` |
2475
+
2476
+ #### Th props
2477
+
2478
+ | Prop | Type | Default | Description |
2479
+ |------|------|---------|-------------|
2480
+ | `align` | `"left" \| "center" \| "right"` | `"left"` | Text alignment |
2481
+ | `colSpan` | `number` | — | HTML colspan |
2482
+ | `className` | `string` | — | Extra class on `<th>` |
2483
+
2484
+ #### Td props
2485
+
2486
+ | Prop | Type | Default | Description |
2487
+ |------|------|---------|-------------|
2488
+ | `align` | `"left" \| "center" \| "right"` | `"left"` | Text alignment |
2489
+ | `colSpan` | `number` | — | HTML colspan |
2490
+ | `className` | `string` | — | Extra class on `<td>` |
2491
+
2492
+ ### Angular (custom elements)
2493
+
2494
+ Custom elements: `bfrs-table`, `bfrs-thead`, `bfrs-tbody`, `bfrs-tfoot`, `bfrs-tr`, `bfrs-th`, `bfrs-td`.
2495
+
2496
+ `bfrs-table` propagates `density` to all descendant `bfrs-th` and `bfrs-td` elements automatically. Row hover transitions the background color of all `bfrs-td` children via JavaScript events.
2497
+
2498
+ ```html
2499
+ <bfrs-table density="compact" max-height="400px" aria-label="Orders">
2500
+ <bfrs-thead sticky>
2501
+ <bfrs-tr>
2502
+ <bfrs-th>Order</bfrs-th>
2503
+ <bfrs-th align="right">Amount</bfrs-th>
2504
+ <bfrs-th>Status</bfrs-th>
2505
+ </bfrs-tr>
2506
+ </bfrs-thead>
2507
+ <bfrs-tbody>
2508
+ <bfrs-tr *ngFor="let order of orders" (click)="navigate(order.id)">
2509
+ <bfrs-td>{{ order.id }}</bfrs-td>
2510
+ <bfrs-td align="right">₹{{ order.amount }}</bfrs-td>
2511
+ <bfrs-td>{{ order.status }}</bfrs-td>
2512
+ </bfrs-tr>
2513
+ </bfrs-tbody>
2514
+ </bfrs-table>
2515
+ ```
2516
+
2517
+ | Attribute | Element | Description |
2518
+ |-----------|---------|-------------|
2519
+ | `density` | `bfrs-table` | `"compact"`, `"default"`, or `"comfortable"` — propagated to all th/td |
2520
+ | `max-height` | `bfrs-table` | CSS max-height for scroll container |
2521
+ | `min-width` | `bfrs-table` | CSS min-width on the table |
2522
+ | `aria-label` | `bfrs-table` | Accessibility label |
2523
+ | `sticky` | `bfrs-thead` | Boolean — sticks header at scroll top |
2524
+ | `on-click` | `bfrs-tr` | Emits `click` event; adds `cursor-pointer` |
2525
+ | `align` | `bfrs-th`, `bfrs-td` | `"left"`, `"center"`, or `"right"` |
2526
+ | `density` | `bfrs-th`, `bfrs-td` | Override density per cell (set explicitly; overrides table propagation) |
2527
+
2528
+ ---
2529
+
2346
2530
  ## What NOT to do
2347
2531
 
2348
2532
  - Do not use raw Tailwind classes for spacing, color, or typography — use `Stack`, `Text`, and component props instead
package/README.md CHANGED
@@ -262,7 +262,30 @@ The standalone helpers are available as `bfrs-table-toolbar`,
262
262
  `bfrs-table-row-actions`, `bfrs-table-bulk-actions`, and
263
263
  `bfrs-table-column-visibility`.
264
264
 
265
- Registered tags include `bfrs-box`, `bfrs-container`, `bfrs-paper`, `bfrs-stack`, `bfrs-grid`, `bfrs-text`, `bfrs-icon`, `bfrs-button`, `bfrs-button-group`, `bfrs-icon-button`, `bfrs-form-field`, `bfrs-label`, `bfrs-input`, `bfrs-slider`, `bfrs-color-picker`, `bfrs-color-swatch-group`, `bfrs-textarea`, `bfrs-select`, `bfrs-date-range-picker`, `bfrs-searchable-select`, `bfrs-multi-select`, `bfrs-suggest-input`, `bfrs-option-card-group`, `bfrs-selectable-chip-group`, `bfrs-number-stepper`, `bfrs-file-dropzone`, `bfrs-reveal-field`, `bfrs-checkbox`, `bfrs-radio`, `bfrs-switch`, `bfrs-badge`, `bfrs-chip`, `bfrs-alert`, `bfrs-info-card`, `bfrs-tip`, `bfrs-toast-manager`, `bfrs-toast-provider`, `bfrs-spinner`, `bfrs-skeleton`, `bfrs-empty-state`, `bfrs-error-state`, `bfrs-loading-state`, `bfrs-modal`, `bfrs-drawer`, `bfrs-confirm-dialog`, `bfrs-dropdown`, `bfrs-tooltip`, `bfrs-popover`, `bfrs-avatar`, `bfrs-metric-card`, `bfrs-table-pagination`, `bfrs-table-toolbar`, `bfrs-table-empty-state`, `bfrs-table-error-state`, `bfrs-table-skeleton`, `bfrs-table-row-actions`, `bfrs-table-bulk-actions`, `bfrs-table-column-visibility`, `bfrs-data-table`, `bfrs-tabs`, `bfrs-tabs-list`, `bfrs-tabs-trigger`, `bfrs-tabs-content`, `bfrs-breadcrumbs`, `bfrs-action-menu`, `bfrs-page-header`, `bfrs-section-header`, `bfrs-layout-shell`, `bfrs-form-section`, `bfrs-filter-bar`, `bfrs-filter-drawer`, `bfrs-chat-bubble`, `bfrs-chat-composer`, `bfrs-full-page-loader`, `bfrs-business-info-display-card`, `bfrs-collapsible`, `bfrs-accordion`, `bfrs-summary-bar`, `bfrs-entity-display-card`, `bfrs-reveal-and-copy`, and `bfrs-step-progress-card`.
265
+ Registered tags include `bfrs-box`, `bfrs-container`, `bfrs-paper`, `bfrs-stack`, `bfrs-grid`, `bfrs-text`, `bfrs-icon`, `bfrs-button`, `bfrs-button-group`, `bfrs-icon-button`, `bfrs-form-field`, `bfrs-label`, `bfrs-input`, `bfrs-slider`, `bfrs-color-picker`, `bfrs-color-swatch-group`, `bfrs-textarea`, `bfrs-select`, `bfrs-date-range-picker`, `bfrs-searchable-select`, `bfrs-multi-select`, `bfrs-suggest-input`, `bfrs-option-card-group`, `bfrs-selectable-chip-group`, `bfrs-number-stepper`, `bfrs-file-dropzone`, `bfrs-reveal-field`, `bfrs-checkbox`, `bfrs-radio`, `bfrs-switch`, `bfrs-badge`, `bfrs-chip`, `bfrs-alert`, `bfrs-info-card`, `bfrs-tip`, `bfrs-toast-manager`, `bfrs-toast-provider`, `bfrs-spinner`, `bfrs-skeleton`, `bfrs-empty-state`, `bfrs-error-state`, `bfrs-loading-state`, `bfrs-modal`, `bfrs-drawer`, `bfrs-confirm-dialog`, `bfrs-dropdown`, `bfrs-tooltip`, `bfrs-popover`, `bfrs-avatar`, `bfrs-metric-card`, `bfrs-table-pagination`, `bfrs-table-toolbar`, `bfrs-table-empty-state`, `bfrs-table-error-state`, `bfrs-table-skeleton`, `bfrs-table-row-actions`, `bfrs-table-bulk-actions`, `bfrs-table-column-visibility`, `bfrs-data-table`, `bfrs-tabs`, `bfrs-tabs-list`, `bfrs-tabs-trigger`, `bfrs-tabs-content`, `bfrs-breadcrumbs`, `bfrs-action-menu`, `bfrs-page-header`, `bfrs-section-header`, `bfrs-layout-shell`, `bfrs-form-section`, `bfrs-filter-bar`, `bfrs-filter-drawer`, `bfrs-chat-bubble`, `bfrs-chat-composer`, `bfrs-full-page-loader`, `bfrs-business-info-display-card`, `bfrs-collapsible`, `bfrs-accordion`, `bfrs-summary-bar`, `bfrs-entity-display-card`, `bfrs-reveal-and-copy`, `bfrs-horizontal-stepper`, and `bfrs-step-progress-card`.
266
+
267
+ `HorizontalStepper` provides the compact horizontal flow layout with an optional announcement banner and parent-owned `onClose` / `onStepSelect` behavior:
268
+
269
+ ```tsx
270
+ import { HorizontalStepper } from "@bfrs/agentic-components";
271
+
272
+ <HorizontalStepper
273
+ announcement="Great Choice! Early COD Remittance activation in progress.."
274
+ closeButton
275
+ onClose={handleClose}
276
+ currentStep={0}
277
+ title="Select a Plan"
278
+ subheading="Get guaranteed remittance from the shipment delivered date."
279
+ size="sm"
280
+ variant="primary"
281
+ steps={[
282
+ { label: "Select Plan", secondaryText: "Choose payout speed" },
283
+ { label: "Verify OTP", secondaryText: "Confirm activation" }
284
+ ]}
285
+ />
286
+ ```
287
+
288
+ Use `variant="primary" | "success" | "info" | "warning" | "neutral"` for semantic color treatment, and `size="sm" | "md"` for compact or roomier layouts.
266
289
 
267
290
  ## Theme Overrides
268
291
 
@@ -357,10 +380,10 @@ function SaveButton() {
357
380
 
358
381
  ### Checkbox
359
382
 
360
- Use `Checkbox` for independent true/false decisions or multi-select choices. It renders as a square checklist control, while `Radio` renders circular options for single-choice groups.
383
+ Use `Checkbox` for independent true/false decisions or multi-select choices. It renders as a square checklist control, while `Radio` renders circular options for single-choice groups. Both support primary text plus secondary description text.
361
384
 
362
385
  ```tsx
363
- import { Checkbox } from "@bfrs/agentic-components";
386
+ import { Checkbox, Radio } from "@bfrs/agentic-components";
364
387
 
365
388
  <Checkbox
366
389
  label="Accept terms"
@@ -370,6 +393,14 @@ import { Checkbox } from "@bfrs/agentic-components";
370
393
  />
371
394
 
372
395
  <Checkbox label="Partially selected" checked="indeterminate" />
396
+
397
+ <Radio
398
+ options={[
399
+ { value: "registered", label: "Registered business", description: "Company GST and business KYC are available." },
400
+ { value: "individual", label: "Individual seller", description: "Use personal details for seller verification." }
401
+ ]}
402
+ defaultValue="registered"
403
+ />
373
404
  ```
374
405
 
375
406
  ## Development
@@ -1,7 +1,9 @@
1
+ import { ReactNode } from 'react';
1
2
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
2
3
  export type RadioOption = {
3
4
  value: string;
4
- label: string;
5
+ label: ReactNode;
6
+ description?: ReactNode;
5
7
  disabled?: boolean;
6
8
  };
7
9
  export type RadioProps = RadioGroupPrimitive.RadioGroupProps & {
@@ -66,6 +66,7 @@ export * from './patterns/ChatBubble';
66
66
  export * from './patterns/ChatComposer';
67
67
  export * from './patterns/FullPageLoader';
68
68
  export * from './patterns/BusinessInfoDisplayCard';
69
+ export * from './patterns/HorizontalStepper';
69
70
  export * from './patterns/StepProgressCard';
70
71
  export * from './patterns/RevealAndCopy';
71
72
  export * from './patterns/Collapsible';
@@ -0,0 +1,45 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export type HorizontalStepperState = "done" | "active" | "pending" | "disabled";
3
+ export type HorizontalStepperVariant = "primary" | "success" | "info" | "warning" | "neutral";
4
+ export type HorizontalStepperSize = "sm" | "md";
5
+ export type HorizontalStepperStep = {
6
+ id?: string;
7
+ label: ReactNode;
8
+ secondaryText?: ReactNode;
9
+ /** Backwards-compatible alias for secondaryText. Prefer secondaryText for new code. */
10
+ description?: ReactNode;
11
+ status?: HorizontalStepperState;
12
+ disabled?: boolean;
13
+ };
14
+ export type HorizontalStepperProps = HTMLAttributes<HTMLElement> & {
15
+ steps: HorizontalStepperStep[];
16
+ currentStep?: number;
17
+ title?: ReactNode;
18
+ subheading?: ReactNode;
19
+ /** Backwards-compatible alias for subheading. Prefer subheading for new code. */
20
+ description?: ReactNode;
21
+ announcement?: ReactNode;
22
+ closeButton?: boolean;
23
+ closeLabel?: string;
24
+ onClose?: () => void;
25
+ onStepSelect?: (step: HorizontalStepperStep, index: number) => void;
26
+ size?: HorizontalStepperSize;
27
+ surface?: "card" | "plain";
28
+ variant?: HorizontalStepperVariant;
29
+ };
30
+ export declare const HorizontalStepper: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
31
+ steps: HorizontalStepperStep[];
32
+ currentStep?: number;
33
+ title?: ReactNode;
34
+ subheading?: ReactNode;
35
+ /** Backwards-compatible alias for subheading. Prefer subheading for new code. */
36
+ description?: ReactNode;
37
+ announcement?: ReactNode;
38
+ closeButton?: boolean;
39
+ closeLabel?: string;
40
+ onClose?: () => void;
41
+ onStepSelect?: (step: HorizontalStepperStep, index: number) => void;
42
+ size?: HorizontalStepperSize;
43
+ surface?: "card" | "plain";
44
+ variant?: HorizontalStepperVariant;
45
+ } & import('react').RefAttributes<HTMLElement>>;
@@ -0,0 +1 @@
1
+ export * from './HorizontalStepper';
@@ -787,6 +787,12 @@ export declare class BfrsStepProgressCardElement extends ReactCustomElement {
787
787
  protected defaultDisplay(): string;
788
788
  protected renderElement(): unknown;
789
789
  }
790
+ export declare class BfrsHorizontalStepperElement extends ReactCustomElement {
791
+ static readonly tagName = "horizontal-stepper";
792
+ static get observedAttributes(): string[];
793
+ protected defaultDisplay(): string;
794
+ protected renderElement(): unknown;
795
+ }
790
796
  export declare class BfrsStepProgressCardSkeletonElement extends ReactCustomElement {
791
797
  static readonly tagName = "step-progress-card-skeleton";
792
798
  static get observedAttributes(): string[];
@@ -884,6 +890,7 @@ declare global {
884
890
  "bfrs-skeleton": BfrsSkeletonElement;
885
891
  "bfrs-spinner": BfrsSpinnerElement;
886
892
  "bfrs-stack": BfrsStackElement;
893
+ "bfrs-horizontal-stepper": BfrsHorizontalStepperElement;
887
894
  "bfrs-step-progress-card": BfrsStepProgressCardElement;
888
895
  "bfrs-step-progress-card-skeleton": BfrsStepProgressCardSkeletonElement;
889
896
  "bfrs-suggest-input": BfrsSuggestInputElement;