@bfrs/agentic-components 0.3.5 → 0.3.7

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.
@@ -115,7 +115,50 @@ Use native Angular DOM event bindings for interactions. Do not pass React-style
115
115
  <bfrs-paper (click)="openDetails()">Open details</bfrs-paper>
116
116
  ```
117
117
 
118
- Registered tags cover the documented component surface: `bfrs-box`, `bfrs-container`, `bfrs-paper`, `bfrs-stack`, `bfrs-grid`, `bfrs-text`, `bfrs-icon`, `bfrs-button`, `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-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-data-table`, `bfrs-tabs`, `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`.
118
+ Registered tags cover the documented component surface, including
119
+ `bfrs-button-group`, `bfrs-toast-provider`, `bfrs-table-toolbar`,
120
+ `bfrs-table-empty-state`, `bfrs-table-error-state`, `bfrs-table-skeleton`,
121
+ `bfrs-table-row-actions`, `bfrs-table-bulk-actions`, and
122
+ `bfrs-table-column-visibility` in addition to the existing component tags.
123
+ Existing form and pattern tags include `bfrs-date-range-picker`,
124
+ `bfrs-multi-select`, `bfrs-step-progress-card`, `bfrs-data-table`,
125
+ `bfrs-modal`, `bfrs-tabs`, and the rest of the documented `bfrs-*` surface.
126
+
127
+ ReactNode-based composition is exposed through native named slots. Angular
128
+ components placed in these slots remain live across the Shadow DOM boundary:
129
+
130
+ ```html
131
+ <bfrs-page-header title="Orders">
132
+ <bfrs-breadcrumbs slot="breadcrumb" [props]="{ items: breadcrumbs }"></bfrs-breadcrumbs>
133
+ <bfrs-button slot="secondary-actions" variant="outline">Export</bfrs-button>
134
+ <bfrs-button slot="actions">Create order</bfrs-button>
135
+ </bfrs-page-header>
136
+
137
+ <bfrs-modal title="Edit order" [attr.open]="open || null">
138
+ <app-order-form></app-order-form>
139
+ <app-modal-actions slot="footer"></app-modal-actions>
140
+ </bfrs-modal>
141
+ ```
142
+
143
+ Supported composition slots include `left-icon`, `right-icon`, `label`,
144
+ `helper-text`, `error-message`, `prefix`, `suffix`, `trigger`, `title`,
145
+ `description`, `footer`, `actions`, `primary-action`, `secondary-actions`,
146
+ `search-input`, `filter-trigger`, `breadcrumb`, `header`, `sidebar`, `brand`,
147
+ `tabs`, `search`, `icon`, `empty-state`, `error`, and `row-actions-header`.
148
+
149
+ `bfrs-tabs` uses item-specific slots named `tab-{value}-label`,
150
+ `tab-{value}-badge`, and `tab-{value}-content`. Menu and navigation item
151
+ schemas additionally accept `iconName`, `iconSlot`, `labelSlot`, `badgeSlot`,
152
+ and related slot-name fields.
153
+
154
+ The React compound tabs API is available as `bfrs-tabs-list`,
155
+ `bfrs-tabs-trigger`, and `bfrs-tabs-content`. The parent `bfrs-tabs` coordinates
156
+ their selected state and emits `value-change`.
157
+
158
+ Mount `bfrs-toast-provider` once when Angular needs the equivalent of
159
+ `ToastProvider` and `useToast`. The element exposes `toast()`, `success()`,
160
+ `warning()`, `danger()`, `info()`, `dismiss()`, and `clear()` methods, and emits
161
+ `toast-change`, `toast-action`, `dismiss`, and `clear`.
119
162
 
120
163
  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`.
121
164
 
package/README.md CHANGED
@@ -185,7 +185,84 @@ orderColumns = [
185
185
  Registered custom-element events are re-emitted by `bfrs-data-table` as
186
186
  `cell-event` with `{ eventName, detail, columnId, row, rowId, rowIndex }`.
187
187
 
188
- Registered tags include `bfrs-box`, `bfrs-container`, `bfrs-paper`, `bfrs-stack`, `bfrs-grid`, `bfrs-text`, `bfrs-icon`, `bfrs-button`, `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-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-data-table`, `bfrs-tabs`, `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`.
188
+ ReactNode props are exposed to Angular as native named slots. Slotted Angular
189
+ components remain live; they are not converted to static HTML:
190
+
191
+ ```html
192
+ <bfrs-page-header title="Orders">
193
+ <bfrs-breadcrumbs slot="breadcrumb" [props]="{ items: breadcrumbs }"></bfrs-breadcrumbs>
194
+ <bfrs-button slot="secondary-actions" variant="outline">Export</bfrs-button>
195
+ <bfrs-button slot="actions">Create order</bfrs-button>
196
+ </bfrs-page-header>
197
+
198
+ <bfrs-workspace-header toggle (toggle-sidebar)="toggleSidebar()">
199
+ <app-brand slot="brand"></app-brand>
200
+ <app-workspace-tabs slot="tabs"></app-workspace-tabs>
201
+ <app-global-search slot="search"></app-global-search>
202
+ <app-user-actions slot="actions"></app-user-actions>
203
+ </bfrs-workspace-header>
204
+ ```
205
+
206
+ Common named slots include `left-icon`, `right-icon`, `label`, `helper-text`,
207
+ `error-message`, `trigger`, `title`, `description`, `footer`, `actions`,
208
+ `primary-action`, `secondary-actions`, `search-input`, `filter-trigger`,
209
+ `breadcrumb`, `header`, `sidebar`, `brand`, `tabs`, `search`, `icon`,
210
+ `empty-state`, `error`, and `row-actions-header`.
211
+
212
+ Tabs accept serializable items and live slots using the convention
213
+ `tab-{value}-label`, `tab-{value}-badge`, and `tab-{value}-content`:
214
+
215
+ ```html
216
+ <bfrs-tabs [props]="{ items: [{ value: 'open', label: 'Open' }, { value: 'closed', label: 'Closed' }] }">
217
+ <bfrs-badge slot="tab-open-badge" count="4"></bfrs-badge>
218
+ <app-open-orders slot="tab-open-content"></app-open-orders>
219
+ <app-closed-orders slot="tab-closed-content"></app-closed-orders>
220
+ </bfrs-tabs>
221
+ ```
222
+
223
+ Angular can also use the compound API directly:
224
+
225
+ ```html
226
+ <bfrs-tabs value="open" (value-change)="activeTab = $event.detail.value">
227
+ <bfrs-tabs-list>
228
+ <bfrs-tabs-trigger value="open">Open <bfrs-badge slot="badge" count="4"></bfrs-badge></bfrs-tabs-trigger>
229
+ <bfrs-tabs-trigger value="closed">Closed</bfrs-tabs-trigger>
230
+ </bfrs-tabs-list>
231
+ <bfrs-tabs-content value="open"><app-open-orders></app-open-orders></bfrs-tabs-content>
232
+ <bfrs-tabs-content value="closed"><app-closed-orders></app-closed-orders></bfrs-tabs-content>
233
+ </bfrs-tabs>
234
+ ```
235
+
236
+ For imperative notifications, mount one provider and call its public methods
237
+ through `ViewChild`:
238
+
239
+ ```html
240
+ <bfrs-toast-provider #toasts placement="bottom-center"
241
+ (toast-action)="handleToastAction($event.detail)">
242
+ </bfrs-toast-provider>
243
+ ```
244
+
245
+ ```ts
246
+ @ViewChild("toasts") toasts!: ElementRef<HTMLElement & {
247
+ success(input: string | { title: string; description?: string }): string;
248
+ danger(input: string | { title: string; description?: string }): string;
249
+ dismiss(id: string): void;
250
+ clear(): void;
251
+ }>;
252
+
253
+ save() {
254
+ this.toasts.nativeElement.success("Order saved");
255
+ }
256
+ ```
257
+
258
+ DataTable also accepts declarative `leadingColumn`, `rowActions`,
259
+ `rowClassRules`, `rowIdKey`, `accessorPath`, and `sortValueKey` configuration.
260
+ The standalone helpers are available as `bfrs-table-toolbar`,
261
+ `bfrs-table-empty-state`, `bfrs-table-error-state`, `bfrs-table-skeleton`,
262
+ `bfrs-table-row-actions`, `bfrs-table-bulk-actions`, and
263
+ `bfrs-table-column-visibility`.
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`.
189
266
 
190
267
  ## Theme Overrides
191
268
 
@@ -1,2 +1,2 @@
1
1
  import { DataTableProps } from './DataTable.types';
2
- export declare function DataTable<Row>({ data, columns, getRowId, loading, error, emptyState, emptyTitle, emptyDescription, pagination, enableSorting, sorting, defaultSorting, onSortingChange, visibleColumnIds, columnOrder, defaultColumnOrder, onColumnOrderChange, enableColumnPinning, pinnedColumnCount, defaultPinnedColumnCount, onPinnedColumnCountChange, pinLeadingColumn, defaultPinLeadingColumn, onPinLeadingColumnChange, enableColumnReordering, resetKey, showSortIcon, leadingColumn, rowActions, rowActionsHeader, rowActionsWidth, stickyRowActions, selection, selectedRowIds, onSelectedRowIdsChange, stickyHeader, minWidth, density, className, tableClassName, headerClassName, rowClassName, cellClassName, onRowClick, "aria-label": ariaLabel }: DataTableProps<Row>): import("react/jsx-runtime").JSX.Element;
2
+ export declare function DataTable<Row>({ data, columns, getRowId, loading, error, emptyState, emptyTitle, emptyDescription, pagination, enableSorting, sorting, defaultSorting, onSortingChange, visibleColumnIds, columnOrder, defaultColumnOrder, onColumnOrderChange, enableColumnPinning, pinnedColumnCount, defaultPinnedColumnCount, onPinnedColumnCountChange, pinLeadingColumn, defaultPinLeadingColumn, onPinLeadingColumnChange, enableColumnReordering, resetKey, showSortIcon, leadingColumn, rowActions, rowActionsHeader, rowActionsWidth, stickyRowActions, selection, selectedRowIds, onSelectedRowIdsChange, stickyHeader, minWidth, maxHeight, density, className, tableClassName, headerClassName, rowClassName, cellClassName, onRowClick, "aria-label": ariaLabel }: DataTableProps<Row>): import("react/jsx-runtime").JSX.Element;
@@ -60,7 +60,7 @@ export type DataTableProps<Row> = {
60
60
  emptyState?: ReactNode;
61
61
  emptyTitle?: ReactNode;
62
62
  emptyDescription?: ReactNode;
63
- pagination?: DataTablePagination;
63
+ pagination?: TablePaginationProps;
64
64
  enableSorting?: boolean;
65
65
  sorting?: DataTableSorting | null;
66
66
  defaultSorting?: DataTableSorting | null;
@@ -89,6 +89,12 @@ export type DataTableProps<Row> = {
89
89
  onSelectedRowIdsChange?: (ids: string[]) => void;
90
90
  stickyHeader?: boolean;
91
91
  minWidth?: number | string;
92
+ /**
93
+ * Caps the height of the scrollable region so the body scrolls vertically
94
+ * while the sticky header stays fixed at the top. Pair with the `pagination`
95
+ * prop to keep the footer fixed below the scroll area.
96
+ */
97
+ maxHeight?: number | string;
92
98
  density?: TableDensity;
93
99
  className?: string;
94
100
  tableClassName?: string;
@@ -109,7 +115,10 @@ export type TableToolbarProps = {
109
115
  className?: string;
110
116
  };
111
117
  export type TablePaginationProps = DataTablePagination & {
112
- itemLabel?: string;
118
+ /** Suffix shown after the count, e.g. "Orders" -> "15 Orders". Defaults to "items". */
119
+ itemLabel?: ReactNode;
120
+ /** Leading label for the page-size control. Defaults to "Items per page:". */
121
+ itemsPerPageLabel?: ReactNode;
113
122
  className?: string;
114
123
  /**
115
124
  * Page-size control presentation. "select" (default, unchanged) renders a
@@ -160,5 +169,9 @@ export type TableColumnVisibilityProps = {
160
169
  label?: ReactNode;
161
170
  resetLabel?: ReactNode;
162
171
  onReset?: () => void;
172
+ /** Label for the "Show all" footer button. Defaults to "Show all". */
173
+ showAllLabel?: ReactNode;
174
+ /** Override the "Show all" action. Defaults to making every column visible. */
175
+ onShowAll?: () => void;
163
176
  className?: string;
164
177
  };
@@ -1,2 +1,2 @@
1
1
  import { TableColumnVisibilityProps } from './DataTable.types';
2
- export declare function TableColumnVisibility({ columns, visibleColumnIds, onVisibleColumnIdsChange, label, resetLabel, onReset, className }: TableColumnVisibilityProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function TableColumnVisibility({ columns, visibleColumnIds, onVisibleColumnIdsChange, label, resetLabel, onReset, showAllLabel, onShowAll, className }: TableColumnVisibilityProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { TablePaginationProps } from './DataTable.types';
2
- export declare function TablePagination({ page, totalPages, pageSize, totalItems, pageSizeOptions, onPageChange, onPageSizeChange, itemLabel, className, pageSizeControl, showPageNavigation }: TablePaginationProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function TablePagination({ page, totalPages, pageSize, totalItems, pageSizeOptions, onPageChange, onPageSizeChange, itemLabel, itemsPerPageLabel, className, pageSizeControl, showPageNavigation }: TablePaginationProps): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- export declare const Input: import('react').ForwardRefExoticComponent<Omit<import('react').InputHTMLAttributes<HTMLInputElement>, "size"> & {
1
+ export declare const Input: import('react').ForwardRefExoticComponent<Omit<import('react').InputHTMLAttributes<HTMLInputElement>, "size" | "prefix"> & {
2
2
  size?: import('./Input.types').InputSize;
3
3
  label?: import('react').ReactNode;
4
4
  helperText?: import('react').ReactNode;
@@ -1,6 +1,6 @@
1
1
  import { InputHTMLAttributes, ReactNode } from 'react';
2
2
  export type InputSize = "xs" | "sm" | "md" | "lg";
3
- export type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "size"> & {
3
+ export type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "prefix"> & {
4
4
  size?: InputSize;
5
5
  label?: ReactNode;
6
6
  helperText?: ReactNode;
@@ -3,12 +3,12 @@ import { VariantProps } from 'class-variance-authority';
3
3
  declare const alertVariants: (props?: ({
4
4
  tone?: "success" | "warning" | "danger" | "info" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
- export type AlertProps = HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants> & {
6
+ export type AlertProps = Omit<HTMLAttributes<HTMLDivElement>, "title"> & VariantProps<typeof alertVariants> & {
7
7
  title?: ReactNode;
8
8
  action?: ReactNode;
9
9
  icon?: ReactNode;
10
10
  };
11
- export declare const Alert: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
11
+ export declare const Alert: import('react').ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "title"> & VariantProps<(props?: ({
12
12
  tone?: "success" | "warning" | "danger" | "info" | null | undefined;
13
13
  } & import('class-variance-authority/types').ClassProp) | undefined) => string> & {
14
14
  title?: ReactNode;
@@ -1,12 +1,41 @@
1
+ import { ReactNode } from 'react';
1
2
  import { ButtonProps } from './components/primitives/Button';
2
3
  import { BadgeProps } from './components/primitives/Badge';
3
4
  import { ChipProps } from './components/primitives/Chip';
4
5
  import { AvatarProps } from './components/ui/data-display/Avatar';
5
6
  import { ColorSwatchValue } from './components/ui/forms/ColorSwatchGroup';
6
- import { DataTableColumn } from './components/data-display/DataTable';
7
+ import { TableEmptyState, TableErrorState, DataTableColumn, DataTableLeadingColumn } from './components/data-display/DataTable';
8
+ import { ToastTone } from './components/feedback/Toast';
7
9
  import { BfrsColorScheme } from './components/ui/providers/BfrsProvider';
8
10
  type UnknownProps = Record<string, unknown>;
9
11
  type CheckedValue = boolean | "indeterminate";
12
+ export type BfrsToastElementInput = string | {
13
+ id?: string;
14
+ title: string;
15
+ description?: string;
16
+ tone?: ToastTone;
17
+ duration?: number;
18
+ iconName?: string;
19
+ actionId?: string;
20
+ actionLabel?: string;
21
+ dismissible?: boolean;
22
+ className?: string;
23
+ };
24
+ export type DataTableElementRowClassRule = {
25
+ path: string;
26
+ className: string;
27
+ equals?: unknown;
28
+ notEquals?: unknown;
29
+ truthy?: boolean;
30
+ };
31
+ export type DataTableElementLeadingColumn = Omit<DataTableLeadingColumn<UnknownProps>, "cell" | "header"> & {
32
+ header?: string;
33
+ cellType?: DataTableElementCellType;
34
+ cellConfig?: DataTableElementCellConfig;
35
+ action?: DataTableElementCellAction;
36
+ actions?: DataTableElementCellAction[];
37
+ actionsDisplay?: "inline" | "menu";
38
+ };
10
39
  export type DataTableElementCellAction = {
11
40
  id?: string;
12
41
  label?: string;
@@ -76,6 +105,8 @@ export type DataTableElementCellConfig = {
76
105
  };
77
106
  export type DataTableElementCellType = "text" | "chip" | "chips" | "badge" | "badges" | "image" | "avatar" | "link" | "custom-element" | "button" | "buttons" | "actions";
78
107
  export type DataTableElementColumn = DataTableColumn<UnknownProps> & {
108
+ accessorPath?: string;
109
+ sortValueKey?: string;
79
110
  cellType?: DataTableElementCellType;
80
111
  cellConfig?: DataTableElementCellConfig;
81
112
  action?: DataTableElementCellAction;
@@ -100,6 +131,7 @@ declare abstract class ReactCustomElement extends HTMLElement {
100
131
  private hasCapturedInitialContent;
101
132
  private initialRenderQueued;
102
133
  private propertyProps;
134
+ private lightDomObserver;
103
135
  get props(): UnknownProps;
104
136
  set props(value: UnknownProps);
105
137
  connectedCallback(): void;
@@ -113,8 +145,13 @@ declare abstract class ReactCustomElement extends HTMLElement {
113
145
  protected colorSchemeAttribute(): BfrsColorScheme;
114
146
  protected slottedText(fallback?: string): string | undefined;
115
147
  protected htmlContent(fallback?: string): unknown;
148
+ protected hasSlot(name?: string): boolean;
149
+ protected slotNode(name?: string, fallback?: ReactNode): ReactNode;
150
+ protected defaultContentNode(fallback?: string): ReactNode;
116
151
  protected booleanAttribute(name: string, fallback?: boolean): boolean;
152
+ protected booleanValue(attributeName: string, propName: string, fallback?: boolean): boolean;
117
153
  protected numberAttribute(name: string): number | undefined;
154
+ protected numberValue(attributeName: string, propName: string): number | undefined;
118
155
  protected jsonAttribute<Value>(name: string, fallback: Value): Value;
119
156
  protected mergedProps(): {
120
157
  [x: string]: unknown;
@@ -124,6 +161,7 @@ declare abstract class ReactCustomElement extends HTMLElement {
124
161
  protected objectValue<Value extends UnknownProps>(name: string, fallback: Value): Value;
125
162
  protected emit(name: string, detail?: unknown): void;
126
163
  private applyDefaultDisplay;
164
+ private observeLightDom;
127
165
  private ensureMountNode;
128
166
  private scheduleInitialUpdate;
129
167
  private captureInitialContent;
@@ -139,6 +177,11 @@ export declare class BfrsButtonElement extends ReactCustomElement {
139
177
  static get observedAttributes(): string[];
140
178
  protected renderElement(): unknown;
141
179
  }
180
+ export declare class BfrsButtonGroupElement extends ReactCustomElement {
181
+ static readonly tagName = "button-group";
182
+ static get observedAttributes(): string[];
183
+ protected renderElement(): unknown;
184
+ }
142
185
  export declare class BfrsInputElement extends ReactCustomElement {
143
186
  static readonly tagName = "input";
144
187
  static get observedAttributes(): string[];
@@ -450,6 +493,21 @@ export declare class BfrsToastManagerElement extends ReactCustomElement {
450
493
  static get observedAttributes(): string[];
451
494
  protected renderElement(): unknown;
452
495
  }
496
+ export declare class BfrsToastProviderElement extends ReactCustomElement {
497
+ static readonly tagName = "toast-provider";
498
+ static get observedAttributes(): string[];
499
+ private toasts;
500
+ private idCounter;
501
+ protected defaultDisplay(): string;
502
+ toast(input: BfrsToastElementInput): string;
503
+ success(input: string | Omit<Exclude<BfrsToastElementInput, string>, "tone">): string;
504
+ warning(input: string | Omit<Exclude<BfrsToastElementInput, string>, "tone">): string;
505
+ danger(input: string | Omit<Exclude<BfrsToastElementInput, string>, "tone">): string;
506
+ info(input: string | Omit<Exclude<BfrsToastElementInput, string>, "tone">): string;
507
+ dismiss(id: string): void;
508
+ clear(): void;
509
+ protected renderElement(): unknown;
510
+ }
453
511
  export declare class BfrsModalElement extends OpenCustomElement {
454
512
  static readonly tagName = "modal";
455
513
  static get observedAttributes(): string[];
@@ -504,6 +562,51 @@ export declare class BfrsTablePaginationElement extends ReactCustomElement {
504
562
  protected defaultDisplay(): string;
505
563
  protected renderElement(): unknown;
506
564
  }
565
+ export declare class BfrsTableToolbarElement extends ReactCustomElement {
566
+ static readonly tagName = "table-toolbar";
567
+ static get observedAttributes(): string[];
568
+ protected defaultDisplay(): string;
569
+ protected renderElement(): unknown;
570
+ }
571
+ declare abstract class BfrsTableStateElement extends ReactCustomElement {
572
+ protected abstract stateComponent(): typeof TableEmptyState | typeof TableErrorState;
573
+ protected abstract defaultTitle(): string;
574
+ static get observedAttributes(): string[];
575
+ protected defaultDisplay(): string;
576
+ protected renderElement(): unknown;
577
+ }
578
+ export declare class BfrsTableEmptyStateElement extends BfrsTableStateElement {
579
+ static readonly tagName = "table-empty-state";
580
+ protected stateComponent(): typeof TableEmptyState;
581
+ protected defaultTitle(): string;
582
+ }
583
+ export declare class BfrsTableErrorStateElement extends BfrsTableStateElement {
584
+ static readonly tagName = "table-error-state";
585
+ protected stateComponent(): typeof TableErrorState;
586
+ protected defaultTitle(): string;
587
+ }
588
+ export declare class BfrsTableSkeletonElement extends ReactCustomElement {
589
+ static readonly tagName = "table-skeleton";
590
+ static get observedAttributes(): string[];
591
+ protected defaultDisplay(): string;
592
+ protected renderElement(): unknown;
593
+ }
594
+ export declare class BfrsTableRowActionsElement extends ReactCustomElement {
595
+ static readonly tagName = "table-row-actions";
596
+ static get observedAttributes(): string[];
597
+ protected renderElement(): unknown;
598
+ }
599
+ export declare class BfrsTableBulkActionsElement extends ReactCustomElement {
600
+ static readonly tagName = "table-bulk-actions";
601
+ static get observedAttributes(): string[];
602
+ protected defaultDisplay(): string;
603
+ protected renderElement(): unknown;
604
+ }
605
+ export declare class BfrsTableColumnVisibilityElement extends ReactCustomElement {
606
+ static readonly tagName = "table-column-visibility";
607
+ static get observedAttributes(): string[];
608
+ protected renderElement(): unknown;
609
+ }
507
610
  export declare class BfrsDataTableElement extends ReactCustomElement {
508
611
  static readonly tagName = "data-table";
509
612
  static get observedAttributes(): string[];
@@ -520,9 +623,29 @@ export declare class BfrsDataTableElement extends ReactCustomElement {
520
623
  private renderButtonGroupCell;
521
624
  private renderActionMenuCell;
522
625
  }
626
+ export declare class BfrsTabsListElement extends ReactCustomElement {
627
+ static readonly tagName = "tabs-list";
628
+ static get observedAttributes(): string[];
629
+ protected defaultDisplay(): string;
630
+ protected renderElement(): unknown;
631
+ }
632
+ export declare class BfrsTabsTriggerElement extends ReactCustomElement {
633
+ static readonly tagName = "tabs-trigger";
634
+ static get observedAttributes(): string[];
635
+ protected renderElement(): unknown;
636
+ }
637
+ export declare class BfrsTabsContentElement extends ReactCustomElement {
638
+ static readonly tagName = "tabs-content";
639
+ static get observedAttributes(): string[];
640
+ protected defaultDisplay(): string;
641
+ protected renderElement(): unknown;
642
+ }
523
643
  export declare class BfrsTabsElement extends ValueCustomElement {
524
644
  static readonly tagName = "tabs";
525
645
  static get observedAttributes(): string[];
646
+ private readonly handleTabSelect;
647
+ connectedCallback(): void;
648
+ disconnectedCallback(): void;
526
649
  protected renderElement(): unknown;
527
650
  }
528
651
  export declare class BfrsBreadcrumbsElement extends ReactCustomElement {
@@ -693,6 +816,7 @@ declare global {
693
816
  "bfrs-business-info-display-card": BfrsBusinessInfoDisplayCardElement;
694
817
  "bfrs-business-info-display-card-skeleton": BfrsBusinessInfoDisplayCardSkeletonElement;
695
818
  "bfrs-button": BfrsButtonElement;
819
+ "bfrs-button-group": BfrsButtonGroupElement;
696
820
  "bfrs-card": BfrsCardElement;
697
821
  "bfrs-card-content": BfrsCardContentElement;
698
822
  "bfrs-card-footer": BfrsCardFooterElement;
@@ -759,10 +883,21 @@ declare global {
759
883
  "bfrs-summary-bar": BfrsSummaryBarElement;
760
884
  "bfrs-switch": BfrsSwitchElement;
761
885
  "bfrs-table-pagination": BfrsTablePaginationElement;
886
+ "bfrs-table-toolbar": BfrsTableToolbarElement;
887
+ "bfrs-table-empty-state": BfrsTableEmptyStateElement;
888
+ "bfrs-table-error-state": BfrsTableErrorStateElement;
889
+ "bfrs-table-skeleton": BfrsTableSkeletonElement;
890
+ "bfrs-table-row-actions": BfrsTableRowActionsElement;
891
+ "bfrs-table-bulk-actions": BfrsTableBulkActionsElement;
892
+ "bfrs-table-column-visibility": BfrsTableColumnVisibilityElement;
762
893
  "bfrs-tabs": BfrsTabsElement;
894
+ "bfrs-tabs-list": BfrsTabsListElement;
895
+ "bfrs-tabs-trigger": BfrsTabsTriggerElement;
896
+ "bfrs-tabs-content": BfrsTabsContentElement;
763
897
  "bfrs-text": BfrsTextElement;
764
898
  "bfrs-textarea": BfrsTextareaElement;
765
899
  "bfrs-toast-manager": BfrsToastManagerElement;
900
+ "bfrs-toast-provider": BfrsToastProviderElement;
766
901
  "bfrs-tip": BfrsTipElement;
767
902
  "bfrs-tooltip": BfrsTooltipElement;
768
903
  "bfrs-workspace-header": BfrsWorkspaceHeaderElement;