@bfrs/agentic-components 0.4.0 → 0.4.2

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.
@@ -142,8 +142,11 @@ Use native Angular DOM event bindings for interactions. Do not pass React-style
142
142
  Registered tags cover the documented component surface, including
143
143
  `bfrs-button-group`, `bfrs-toast-provider`, `bfrs-table-toolbar`,
144
144
  `bfrs-table-empty-state`, `bfrs-table-error-state`, `bfrs-table-skeleton`,
145
- `bfrs-table-row-actions`, `bfrs-table-bulk-actions`, and
145
+ `bfrs-table-row-actions`, `bfrs-table-bulk-actions`,
146
146
  `bfrs-table-column-visibility`, and `bfrs-table-save-view` in addition to the existing component tags.
147
+ Primitive table building blocks `bfrs-table`, `bfrs-thead`, `bfrs-tbody`, `bfrs-tfoot`,
148
+ `bfrs-tr`, `bfrs-th`, and `bfrs-td` are also registered for custom layouts where `bfrs-data-table`
149
+ is too prescriptive.
147
150
  Existing form and pattern tags include `bfrs-date-range-picker`,
148
151
  `bfrs-multi-select`, `bfrs-horizontal-stepper`, `bfrs-step-progress-card`, `bfrs-data-table`,
149
152
  `bfrs-modal`, `bfrs-tabs`, and the rest of the documented `bfrs-*` surface.
@@ -1589,11 +1592,15 @@ Angular: pass `sorting` as JSON attribute `[sorting]='{"columnId":"name","direct
1589
1592
  accessorFn?: (row: T) => unknown;
1590
1593
  sortable?: boolean;
1591
1594
  cell?: (row: T) => ReactNode;
1595
+ width?: number | string;
1596
+ minWidth?: number | string;
1592
1597
  }
1593
1598
  ```
1594
1599
 
1595
1600
  `enableSorting`, `enableColumnPinning`, and `enableColumnReordering` are enabled by default. Pass `false` to disable each behavior for a simpler table.
1596
1601
 
1602
+ For pinned columns, declare `width` / `minWidth` for predictable layout. `DataTable` measures rendered header cell widths for sticky offsets so pinned columns stay fixed even when the table stretches.
1603
+
1597
1604
  When `loading` is true, `DataTable` renders built-in table-row skeleton placeholders rather than a spinner. The consumer app only owns the loading boolean.
1598
1605
 
1599
1606
  Use `TableSaveView` with `TableColumnVisibility` when the user changes columns or filters and needs to save the draft as a named view. It opens the "Save this view" modal, collects the view name, summarizes settings like hidden columns, and calls `onSave({ name, visibleColumnIds, hiddenColumnCount, filtersCount, appliedSettingLabels })`; persistence remains app-owned.
@@ -2521,7 +2528,7 @@ Custom elements: `bfrs-table`, `bfrs-thead`, `bfrs-tbody`, `bfrs-tfoot`, `bfrs-t
2521
2528
  | `min-width` | `bfrs-table` | CSS min-width on the table |
2522
2529
  | `aria-label` | `bfrs-table` | Accessibility label |
2523
2530
  | `sticky` | `bfrs-thead` | Boolean — sticks header at scroll top |
2524
- | `on-click` | `bfrs-tr` | Emits `click` event; adds `cursor-pointer` |
2531
+ | `on-click` | `bfrs-tr` | Boolean marker adds `cursor-pointer` styling. Use Angular `(click)` binding for the actual event handler |
2525
2532
  | `align` | `bfrs-th`, `bfrs-td` | `"left"`, `"center"`, or `"right"` |
2526
2533
  | `density` | `bfrs-th`, `bfrs-td` | Override density per cell (set explicitly; overrides table propagation) |
2527
2534
 
package/README.md CHANGED
@@ -260,9 +260,12 @@ DataTable also accepts declarative `leadingColumn`, `rowActions`,
260
260
  The standalone helpers are available as `bfrs-table-toolbar`,
261
261
  `bfrs-table-empty-state`, `bfrs-table-error-state`, `bfrs-table-skeleton`,
262
262
  `bfrs-table-row-actions`, `bfrs-table-bulk-actions`, and
263
- `bfrs-table-column-visibility`.
263
+ `bfrs-table-column-visibility`, plus `bfrs-table-save-view`.
264
+ For custom Angular table layouts where `bfrs-data-table` is too prescriptive,
265
+ use the primitive table tags: `bfrs-table`, `bfrs-thead`, `bfrs-tbody`,
266
+ `bfrs-tfoot`, `bfrs-tr`, `bfrs-th`, and `bfrs-td`.
264
267
 
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`.
268
+ 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-table-save-view`, `bfrs-data-table`, `bfrs-table`, `bfrs-thead`, `bfrs-tbody`, `bfrs-tfoot`, `bfrs-tr`, `bfrs-th`, `bfrs-td`, `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
269
 
267
270
  `HorizontalStepper` provides the compact horizontal flow layout with an optional announcement banner and parent-owned `onClose` / `onStepSelect` behavior:
268
271
 
@@ -0,0 +1,48 @@
1
+ import { ReactNode } from 'react';
2
+ import { TableDensity } from '../DataTable/DataTable.types';
3
+ export interface TableProps {
4
+ children?: ReactNode;
5
+ density?: TableDensity;
6
+ minWidth?: number | string;
7
+ maxHeight?: number | string;
8
+ className?: string;
9
+ tableClassName?: string;
10
+ "aria-label"?: string;
11
+ }
12
+ export declare function Table({ children, density, minWidth, maxHeight, className, tableClassName, "aria-label": ariaLabel }: TableProps): import("react/jsx-runtime").JSX.Element;
13
+ export interface TheadProps {
14
+ children?: ReactNode;
15
+ sticky?: boolean;
16
+ className?: string;
17
+ }
18
+ export declare function Thead({ children, sticky, className }: TheadProps): import("react/jsx-runtime").JSX.Element;
19
+ export interface TbodyProps {
20
+ children?: ReactNode;
21
+ className?: string;
22
+ }
23
+ export declare function Tbody({ children, className }: TbodyProps): import("react/jsx-runtime").JSX.Element;
24
+ export interface TfootProps {
25
+ children?: ReactNode;
26
+ className?: string;
27
+ }
28
+ export declare function Tfoot({ children, className }: TfootProps): import("react/jsx-runtime").JSX.Element;
29
+ export interface TrProps {
30
+ children?: ReactNode;
31
+ onClick?: () => void;
32
+ className?: string;
33
+ }
34
+ export declare function Tr({ children, onClick, className }: TrProps): import("react/jsx-runtime").JSX.Element;
35
+ export interface ThProps {
36
+ children?: ReactNode;
37
+ align?: "left" | "center" | "right";
38
+ colSpan?: number;
39
+ className?: string;
40
+ }
41
+ export declare function Th({ children, align, colSpan, className }: ThProps): import("react/jsx-runtime").JSX.Element;
42
+ export interface TdProps {
43
+ children?: ReactNode;
44
+ align?: "left" | "center" | "right";
45
+ colSpan?: number;
46
+ className?: string;
47
+ }
48
+ export declare function Td({ children, align, colSpan, className }: TdProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './Table';
@@ -51,6 +51,7 @@ export * from '../overlays/ConfirmDialog';
51
51
  export * from './data-display/Avatar';
52
52
  export * from '../data-display/MetricCard';
53
53
  export * from '../data-display/DataTable';
54
+ export * from '../data-display/Table';
54
55
  export * from './data-display/KpiCard';
55
56
  export * from './navigation/Tabs';
56
57
  export * from './navigation/Breadcrumbs';
@@ -654,6 +654,52 @@ export declare class BfrsTabsElement extends ValueCustomElement {
654
654
  disconnectedCallback(): void;
655
655
  protected renderElement(): unknown;
656
656
  }
657
+ export declare class BfrsTableElement extends ReactCustomElement {
658
+ static readonly tagName = "table";
659
+ static get observedAttributes(): string[];
660
+ protected defaultDisplay(): string;
661
+ protected renderElement(): unknown;
662
+ }
663
+ export declare class BfrsTheadElement extends ReactCustomElement {
664
+ static readonly tagName = "thead";
665
+ static get observedAttributes(): string[];
666
+ protected defaultDisplay(): string;
667
+ protected renderElement(): unknown;
668
+ }
669
+ export declare class BfrsTbodyElement extends ReactCustomElement {
670
+ static readonly tagName = "tbody";
671
+ static get observedAttributes(): string[];
672
+ protected defaultDisplay(): string;
673
+ protected renderElement(): unknown;
674
+ }
675
+ export declare class BfrsTfootElement extends ReactCustomElement {
676
+ static readonly tagName = "tfoot";
677
+ static get observedAttributes(): string[];
678
+ protected defaultDisplay(): string;
679
+ protected renderElement(): unknown;
680
+ }
681
+ export declare class BfrsTrElement extends ReactCustomElement {
682
+ static readonly tagName = "tr";
683
+ static get observedAttributes(): string[];
684
+ protected defaultDisplay(): string;
685
+ private readonly _onHoverIn;
686
+ private readonly _onHoverOut;
687
+ connectedCallback(): void;
688
+ disconnectedCallback(): void;
689
+ protected renderElement(): unknown;
690
+ }
691
+ export declare class BfrsThElement extends ReactCustomElement {
692
+ static readonly tagName = "th";
693
+ static get observedAttributes(): string[];
694
+ protected defaultDisplay(): string;
695
+ protected renderElement(): unknown;
696
+ }
697
+ export declare class BfrsTdElement extends ReactCustomElement {
698
+ static readonly tagName = "td";
699
+ static get observedAttributes(): string[];
700
+ protected defaultDisplay(): string;
701
+ protected renderElement(): unknown;
702
+ }
657
703
  export declare class BfrsBreadcrumbsElement extends ReactCustomElement {
658
704
  static readonly tagName = "breadcrumbs";
659
705
  static get observedAttributes(): string[];
@@ -896,6 +942,7 @@ declare global {
896
942
  "bfrs-suggest-input": BfrsSuggestInputElement;
897
943
  "bfrs-summary-bar": BfrsSummaryBarElement;
898
944
  "bfrs-switch": BfrsSwitchElement;
945
+ "bfrs-table": BfrsTableElement;
899
946
  "bfrs-table-pagination": BfrsTablePaginationElement;
900
947
  "bfrs-table-toolbar": BfrsTableToolbarElement;
901
948
  "bfrs-table-empty-state": BfrsTableEmptyStateElement;
@@ -909,7 +956,13 @@ declare global {
909
956
  "bfrs-tabs-list": BfrsTabsListElement;
910
957
  "bfrs-tabs-trigger": BfrsTabsTriggerElement;
911
958
  "bfrs-tabs-content": BfrsTabsContentElement;
959
+ "bfrs-tbody": BfrsTbodyElement;
960
+ "bfrs-td": BfrsTdElement;
912
961
  "bfrs-text": BfrsTextElement;
962
+ "bfrs-tfoot": BfrsTfootElement;
963
+ "bfrs-th": BfrsThElement;
964
+ "bfrs-thead": BfrsTheadElement;
965
+ "bfrs-tr": BfrsTrElement;
913
966
  "bfrs-textarea": BfrsTextareaElement;
914
967
  "bfrs-toast-manager": BfrsToastManagerElement;
915
968
  "bfrs-toast-provider": BfrsToastProviderElement;