@bwp-web/components 0.11.6 → 0.12.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.
@@ -20,10 +20,12 @@ export type BiampTableProps<TData> = BoxProps & {
20
20
  empty?: boolean | ReactNode;
21
21
  /** When true, renders a checkbox column for row selection. @default false */
22
22
  enableRowSelection?: boolean;
23
+ /** When true, renders an expand/collapse toggle column for rows that have sub-rows. @default false */
24
+ enableExpanding?: boolean;
23
25
  /** When true, hides the "select all" header checkbox while keeping individual row checkboxes. */
24
26
  hideSelectAll?: boolean;
25
27
  /** Returns a human-readable name for a row, used in ARIA labels (e.g. "Select: Conference Room A"). Falls back to row index. */
26
28
  getRowLabel?: (row: TData) => string;
27
29
  };
28
- export declare function BiampTable<TData>({ table, onRowClick, isRowClickable, loading, error, empty, enableRowSelection, hideSelectAll, getRowLabel, sx, ...boxProps }: BiampTableProps<TData>): import("react/jsx-runtime").JSX.Element;
30
+ export declare function BiampTable<TData>({ table, onRowClick, isRowClickable, loading, error, empty, enableRowSelection, enableExpanding, hideSelectAll, getRowLabel, sx, ...boxProps }: BiampTableProps<TData>): import("react/jsx-runtime").JSX.Element;
29
31
  //# sourceMappingURL=BiampTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BiampTable.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAUd,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAc,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAc,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAG9E,OAAO,iBAAiB,CAAC;AAGzB,MAAM,MAAM,eAAe,CAAC,KAAK,IAAI,QAAQ,GAAG;IAC9C,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC;IACzC,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wKAAwK;IACxK,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACpC,6IAA6I;IAC7I,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gIAAgI;IAChI,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;CACtC,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,EAChC,KAAK,EACL,UAAU,EACV,cAAc,EACd,OAAO,EACP,KAAK,EACL,KAAK,EACL,kBAA0B,EAC1B,aAAa,EACb,WAAW,EACX,EAAE,EACF,GAAG,QAAQ,EACZ,EAAE,eAAe,CAAC,KAAK,CAAC,2CAkTxB"}
1
+ {"version":3,"file":"BiampTable.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAWd,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAc,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAc,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAGtD,OAAO,iBAAiB,CAAC;AAGzB,MAAM,MAAM,eAAe,CAAC,KAAK,IAAI,QAAQ,GAAG;IAC9C,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC;IACzC,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wKAAwK;IACxK,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACpC,6IAA6I;IAC7I,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sGAAsG;IACtG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gIAAgI;IAChI,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;CACtC,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,EAChC,KAAK,EACL,UAAU,EACV,cAAc,EACd,OAAO,EACP,KAAK,EACL,KAAK,EACL,kBAA0B,EAC1B,eAAuB,EACvB,aAAa,EACb,WAAW,EACX,EAAE,EACF,GAAG,QAAQ,EACZ,EAAE,eAAe,CAAC,KAAK,CAAC,2CAkVxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"BiampTableColumnVisibility.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTableColumnVisibility.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,YAAY,EAIlB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,gBAAgB,GAC3B,eAAe,CAEjB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAC9C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAClB,gBAAgB,CAOlB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EACjD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EACnB,iBAAiB,CAAC,EAAE,gBAAgB,GACnC,MAAM,CAUR;AAED,MAAM,MAAM,+BAA+B,CAAC,KAAK,IAAI,IAAI,CACvD,YAAY,EACZ,MAAM,CACP,GAAG;IACF,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAcF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,EAChD,KAAK,EACL,YAAyB,EACzB,QAAQ,EACR,YAA0D,EAC1D,eAA0D,EAC1D,SAAS,EACT,GAAG,YAAY,EAChB,EAAE,+BAA+B,CAAC,KAAK,CAAC,2CAuExC"}
1
+ {"version":3,"file":"BiampTableColumnVisibility.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTableColumnVisibility.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,YAAY,EAIlB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,gBAAgB,GAC3B,eAAe,CAEjB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAC9C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAClB,gBAAgB,CAOlB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EACjD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EACnB,iBAAiB,CAAC,EAAE,gBAAgB,GACnC,MAAM,CAUR;AAED,MAAM,MAAM,+BAA+B,CAAC,KAAK,IAAI,IAAI,CACvD,YAAY,EACZ,MAAM,CACP,GAAG;IACF,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAcF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,EAChD,KAAK,EACL,YAAyB,EACzB,QAAQ,EACR,YAA0D,EAC1D,eAA0D,EAC1D,SAAS,EACT,GAAG,YAAY,EAChB,EAAE,+BAA+B,CAAC,KAAK,CAAC,2CA6ExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BiampTableToolbarActions.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTableToolbarActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AAErD,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,6BAA6B,2CAM/B"}
1
+ {"version":3,"file":"BiampTableToolbarActions.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTableToolbarActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AAErD,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,6BAA6B,2CAa/B"}
@@ -18,6 +18,8 @@ export type BiampTableToolbarSearchProps = {
18
18
  expandable?: boolean;
19
19
  /** Accessible label for the collapsed icon button (only used when expandable is true). @default placeholder */
20
20
  expandLabel?: string;
21
+ /** When true, renders a simplified full-width InputBase on screens below the `md` breakpoint. @default true */
22
+ enableMobileView?: boolean;
21
23
  } & Omit<TextFieldProps, 'onChange' | 'value' | 'defaultValue'>;
22
- export declare function BiampTableToolbarSearch({ onChange, defaultValue, debounceDelay, maxLength, maxWidth, placeholder, clearLabel, expandable, expandLabel, sx, ...textFieldProps }: BiampTableToolbarSearchProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function BiampTableToolbarSearch({ onChange, defaultValue, debounceDelay, maxLength, maxWidth, placeholder, clearLabel, expandable, expandLabel, enableMobileView, sx, ...textFieldProps }: BiampTableToolbarSearchProps): import("react/jsx-runtime").JSX.Element;
23
25
  //# sourceMappingURL=BiampTableToolbarSearch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BiampTableToolbarSearch.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTableToolbarSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAQvB,MAAM,MAAM,4BAA4B,GAAG;IACzC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uGAAuG;IACvG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+GAA+G;IAC/G,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC,CAAC;AAYhE,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,YAAiB,EACjB,aAA0C,EAC1C,SAAe,EACf,QAAc,EACd,WAAsB,EACtB,UAA2B,EAC3B,UAAkB,EAClB,WAAW,EACX,EAAE,EACF,GAAG,cAAc,EAClB,EAAE,4BAA4B,2CAmG9B"}
1
+ {"version":3,"file":"BiampTableToolbarSearch.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTableToolbarSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAQvB,MAAM,MAAM,4BAA4B,GAAG;IACzC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uGAAuG;IACvG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+GAA+G;IAC/G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+GAA+G;IAC/G,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC,CAAC;AAYhE,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,YAAiB,EACjB,aAA0C,EAC1C,SAAe,EACf,QAAc,EACd,WAAsB,EACtB,UAA2B,EAC3B,UAAkB,EAClB,WAAW,EACX,gBAAuB,EACvB,EAAE,EACF,GAAG,cAAc,EAClB,EAAE,4BAA4B,2CA4H9B"}
@@ -7,6 +7,8 @@ declare module '@tanstack/react-table' {
7
7
  sticky?: 'left' | 'right';
8
8
  /** Whether this column is visible by default. Defaults to `true` (visible). */
9
9
  defaultVisible?: boolean;
10
+ /** Human-readable label used in the column-visibility menu when `header` is not a string. */
11
+ columnLabel?: string;
10
12
  }
11
13
  }
12
14
  //# sourceMappingURL=tanstack-meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-meta.d.ts","sourceRoot":"","sources":["../../src/BiampTable/tanstack-meta.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,QAAQ,uBAAuB,CAAC;IACrC,UAAU,UAAU,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM;QAChD,0DAA0D;QAC1D,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,sEAAsE;QACtE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1B,+EAA+E;QAC/E,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;CACF"}
1
+ {"version":3,"file":"tanstack-meta.d.ts","sourceRoot":"","sources":["../../src/BiampTable/tanstack-meta.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,QAAQ,uBAAuB,CAAC;IACrC,UAAU,UAAU,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM;QAChD,0DAA0D;QAC1D,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,sEAAsE;QACtE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1B,+EAA+E;QAC/E,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,6FAA6F;QAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CACF"}
package/dist/index.cjs CHANGED
@@ -614,6 +614,7 @@ function BiampTable({
614
614
  error,
615
615
  empty,
616
616
  enableRowSelection = false,
617
+ enableExpanding = false,
617
618
  hideSelectAll,
618
619
  getRowLabel,
619
620
  sx,
@@ -627,24 +628,9 @@ function BiampTable({
627
628
  enableRowSelection ? 48 : 0
628
629
  );
629
630
  const containerRef = (0, import_react3.useRef)(null);
630
- const lastScrollLeftRef = (0, import_react3.useRef)(null);
631
- const onContainerScroll = (0, import_react3.useCallback)((target) => {
632
- const { scrollLeft, scrollWidth, clientWidth } = target;
633
- if (!containerRef.current || lastScrollLeftRef.current === scrollLeft)
634
- return;
635
- containerRef.current.dataset["rightShadow"] = scrollWidth - clientWidth > scrollLeft ? "true" : "false";
636
- lastScrollLeftRef.current = scrollLeft;
637
- }, []);
638
- (0, import_react3.useEffect)(() => {
639
- if (!containerRef.current) return;
640
- const observer = new ResizeObserver(
641
- ([{ target }]) => onContainerScroll(target)
642
- );
643
- observer.observe(containerRef.current);
644
- return () => observer.disconnect();
645
- }, [onContainerScroll]);
646
631
  const showLoading = useLoadingDelay(!!loading);
647
632
  const rows = table.getRowModel().rows;
633
+ const hasExpandableRows = enableExpanding && rows.some((r) => r.getCanExpand());
648
634
  const showError = !!error && !loading;
649
635
  const showEmpty = !showError && !loading && rows.length === 0;
650
636
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
@@ -653,7 +639,6 @@ function BiampTable({
653
639
  component: import_material6.Box,
654
640
  ...boxProps,
655
641
  ref: containerRef,
656
- onScroll: (e) => onContainerScroll(e.currentTarget),
657
642
  sx: {
658
643
  display: "flex",
659
644
  flexDirection: "column",
@@ -661,12 +646,6 @@ function BiampTable({
661
646
  overflow: "auto",
662
647
  overscrollBehavior: "none",
663
648
  position: "relative",
664
- '& [data-sticky="right"]': {
665
- transition: "box-shadow .2s"
666
- },
667
- '&[data-right-shadow="true"] [data-sticky="right"]': {
668
- boxShadow: ({ palette }) => `-16px 0px 12px -2px ${palette.background.default}`
669
- },
670
649
  ...sx
671
650
  },
672
651
  children: [
@@ -693,6 +672,7 @@ function BiampTable({
693
672
  checked: table.getIsAllPageRowsSelected(),
694
673
  indeterminate: table.getIsSomePageRowsSelected(),
695
674
  onChange: table.getToggleAllPageRowsSelectedHandler(),
675
+ sx: rows.length === 0 ? { visibility: "hidden" } : void 0,
696
676
  slotProps: { input: { "aria-label": "Select all rows" } }
697
677
  }
698
678
  )
@@ -781,6 +761,7 @@ function BiampTable({
781
761
  disabled: !row.getCanSelect(),
782
762
  onChange: row.getToggleSelectedHandler(),
783
763
  onClick: (e) => e.stopPropagation(),
764
+ sx: !row.getCanSelect() ? { visibility: "hidden" } : void 0,
784
765
  slotProps: {
785
766
  input: {
786
767
  "aria-label": getRowLabel ? `Select ${getRowLabel(row.original)}` : `Select row ${row.index + 1}`
@@ -790,8 +771,11 @@ function BiampTable({
790
771
  )
791
772
  }
792
773
  ),
793
- row.getVisibleCells().map((cell) => {
774
+ row.getVisibleCells().map((cell, cellIndex, cells) => {
794
775
  const sticky = cell.column.columnDef.meta?.sticky;
776
+ const isExpandCell = enableExpanding && !sticky && cellIndex === cells.findIndex(
777
+ (c) => !c.column.columnDef.meta?.sticky
778
+ );
795
779
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
796
780
  import_material6.TableCell,
797
781
  {
@@ -811,7 +795,45 @@ function BiampTable({
811
795
  }
812
796
  }
813
797
  },
814
- children: (0, import_react_table.flexRender)(
798
+ children: isExpandCell ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
799
+ import_material6.Box,
800
+ {
801
+ sx: {
802
+ display: "flex",
803
+ alignItems: "center",
804
+ pl: `${row.depth * 12}px`
805
+ },
806
+ children: [
807
+ row.getCanExpand() ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
808
+ import_material6.IconButton,
809
+ {
810
+ variant: "none",
811
+ onClick: (e) => {
812
+ e.stopPropagation();
813
+ row.toggleExpanded();
814
+ },
815
+ "aria-label": row.getIsExpanded() ? `Collapse ${getRowLabel ? getRowLabel(row.original) : `row ${row.index + 1}`}` : `Expand ${getRowLabel ? getRowLabel(row.original) : `row ${row.index + 1}`}`,
816
+ "aria-expanded": row.getIsExpanded(),
817
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
818
+ import_assets5.ChevronRightIcon,
819
+ {
820
+ variant: "xs",
821
+ sx: {
822
+ color: ({ palette }) => palette.text.secondary,
823
+ transition: "transform 150ms ease",
824
+ transform: row.getIsExpanded() ? "rotate(90deg)" : "rotate(0deg)"
825
+ }
826
+ }
827
+ )
828
+ }
829
+ ) : hasExpandableRows ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_material6.Box, { sx: { width: 28 } }) : null,
830
+ (0, import_react_table.flexRender)(
831
+ cell.column.columnDef.cell,
832
+ cell.getContext()
833
+ )
834
+ ]
835
+ }
836
+ ) : (0, import_react_table.flexRender)(
815
837
  cell.column.columnDef.cell,
816
838
  cell.getContext()
817
839
  )
@@ -988,6 +1010,7 @@ function BiampTableColumnVisibility({
988
1010
  /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
989
1011
  import_material9.ListItem,
990
1012
  {
1013
+ dense: true,
991
1014
  sx: columnListItemSx,
992
1015
  onClick: () => table.toggleAllColumnsVisible(!allVisible),
993
1016
  children: [
@@ -996,39 +1019,45 @@ function BiampTableColumnVisibility({
996
1019
  {
997
1020
  checked: allVisible,
998
1021
  indeterminate: !allVisible && someVisible,
999
- size: "small",
1000
1022
  slotProps: { input: { "aria-label": `${showAllLabel} columns` } }
1001
1023
  }
1002
1024
  ),
1003
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material9.Typography, { variant: "caption", children: showAllLabel })
1025
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material9.Typography, { variant: "caption", fontWeight: 600, children: showAllLabel })
1004
1026
  ]
1005
1027
  }
1006
1028
  ),
1007
1029
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material9.Divider, {}),
1008
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material9.Box, { sx: { maxHeight: 340, overflow: "auto" }, children: table.getAllLeafColumns().map((column) => {
1009
- const columnName = typeof column.columnDef.header === "string" ? column.columnDef.header : column.id;
1010
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1011
- import_material9.ListItem,
1012
- {
1013
- sx: columnListItemSx,
1014
- onClick: column.getToggleVisibilityHandler(),
1015
- children: [
1016
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1017
- import_material9.Checkbox,
1018
- {
1019
- checked: column.getIsVisible(),
1020
- size: "small",
1021
- slotProps: {
1022
- input: { "aria-label": `Show ${columnName}` }
1023
- }
1024
- }
1025
- ),
1026
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material9.Typography, { variant: "caption", children: columnName })
1027
- ]
1028
- },
1029
- column.id
1030
- );
1031
- }) })
1030
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1031
+ import_material9.Box,
1032
+ {
1033
+ sx: { maxHeight: 340, overflow: "auto", overscrollBehavior: "none" },
1034
+ children: table.getAllLeafColumns().map((column) => {
1035
+ const columnName = column.columnDef.meta?.columnLabel ?? (typeof column.columnDef.header === "string" ? column.columnDef.header : column.id);
1036
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1037
+ import_material9.ListItem,
1038
+ {
1039
+ dense: true,
1040
+ sx: columnListItemSx,
1041
+ onClick: column.getToggleVisibilityHandler(),
1042
+ children: [
1043
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1044
+ import_material9.Checkbox,
1045
+ {
1046
+ checked: column.getIsVisible(),
1047
+ sx: { py: 1 },
1048
+ slotProps: {
1049
+ input: { "aria-label": `Show ${columnName}` }
1050
+ }
1051
+ }
1052
+ ),
1053
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material9.Typography, { variant: "caption", children: columnName })
1054
+ ]
1055
+ },
1056
+ column.id
1057
+ );
1058
+ })
1059
+ }
1060
+ )
1032
1061
  ] })
1033
1062
  }
1034
1063
  );
@@ -1206,7 +1235,18 @@ function BiampTableToolbarActions({
1206
1235
  children,
1207
1236
  ...props
1208
1237
  }) {
1209
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_material13.Box, { display: "flex", alignItems: "center", gap: 1, ml: "auto", ...props, children });
1238
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1239
+ import_material13.Box,
1240
+ {
1241
+ display: "flex",
1242
+ alignItems: "center",
1243
+ ml: "auto",
1244
+ gap: { xs: 0, md: 1 },
1245
+ mr: { xs: 1, md: 0 },
1246
+ ...props,
1247
+ children
1248
+ }
1249
+ );
1210
1250
  }
1211
1251
 
1212
1252
  // src/BiampTable/BiampTableToolbarExport.tsx
@@ -1415,9 +1455,11 @@ function BiampTableToolbarSearch({
1415
1455
  clearLabel = "Clear search",
1416
1456
  expandable = false,
1417
1457
  expandLabel,
1458
+ enableMobileView = true,
1418
1459
  sx,
1419
1460
  ...textFieldProps
1420
1461
  }) {
1462
+ const isMobile = (0, import_material16.useMediaQuery)((t) => t.breakpoints.down("md"));
1421
1463
  const [inputValue, setInputValue] = (0, import_react8.useState)(defaultValue);
1422
1464
  const [isExpanded, setIsExpanded] = (0, import_react8.useState)(false);
1423
1465
  const debouncedOnChange = useDebouncedCallback(onChange, debounceDelay);
@@ -1481,6 +1523,30 @@ function BiampTableToolbarSearch({
1481
1523
  ...textFieldProps
1482
1524
  }
1483
1525
  );
1526
+ if (isMobile && enableMobileView) {
1527
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_material16.Box, { display: "flex", alignItems: "center", width: "100%", pr: 1, gap: 1, children: [
1528
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_assets9.SearchIcon, { sx: { width: 16, height: 16 } }),
1529
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1530
+ import_material16.InputBase,
1531
+ {
1532
+ name: "search",
1533
+ type: "text",
1534
+ placeholder,
1535
+ inputProps: { maxLength, "aria-label": "Search" },
1536
+ fullWidth: true,
1537
+ value: inputValue,
1538
+ sx: {
1539
+ paddingLeft: 1,
1540
+ height: "36px !important",
1541
+ minHeight: "36px !important",
1542
+ fontSize: (t) => t.typography.body2.fontSize
1543
+ },
1544
+ onChange: handleChange,
1545
+ endAdornment: clearButton
1546
+ }
1547
+ )
1548
+ ] });
1549
+ }
1484
1550
  if (expandable) {
1485
1551
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_material16.Box, { display: "flex", alignItems: "center", minWidth: 28, children: [
1486
1552
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(