@lensui/lens-table 0.1.31 → 0.1.32

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.cjs CHANGED
@@ -778,7 +778,8 @@ function isColumnFilterable(column) {
778
778
  }
779
779
  function getHeaderTitleRequiredWidth(column, titleWidth) {
780
780
  const minimumReadableTitleWidth = Math.min(Math.ceil(titleWidth), 28);
781
- return minimumReadableTitleWidth + (column.align === "center" ? 20 : 22);
781
+ const horizontalPadding = 24;
782
+ return minimumReadableTitleWidth + horizontalPadding + (column.align === "center" ? 20 : 22);
782
783
  }
783
784
  function getVisibleHeaderActions(column, width, columnDraggable = false, titleWidth = 26, actionSlotWidth = HEADER_ACTION_SLOT_WIDTH) {
784
785
  const capacity = Math.max(0, Math.floor((width - getHeaderTitleRequiredWidth(column, titleWidth)) / actionSlotWidth));
@@ -1634,6 +1635,7 @@ function TableInner({
1634
1635
  rows: sourceRows,
1635
1636
  rowKey,
1636
1637
  width = "100%",
1638
+ stretchColumns = true,
1637
1639
  height = "100%",
1638
1640
  autoHeight = true,
1639
1641
  layout,
@@ -2121,8 +2123,8 @@ function TableInner({
2121
2123
  const hasManualColumnWidths = Object.keys(resizedColumnWidths).length > 0;
2122
2124
  const metrics = (0, import_react5.useMemo)(() => buildColumnMetrics(columns, {
2123
2125
  columnDraggable,
2124
- viewportWidth: hasManualColumnWidths ? 0 : viewport.width
2125
- }), [columnDraggable, columns, hasManualColumnWidths, viewport.width]);
2126
+ viewportWidth: !stretchColumns || hasManualColumnWidths ? 0 : viewport.width
2127
+ }), [columnDraggable, columns, hasManualColumnWidths, stretchColumns, viewport.width]);
2126
2128
  const contentWidth = metrics.length > 0 ? metrics[metrics.length - 1].right : 0;
2127
2129
  const contentHeight = rows.length * rowHeight;
2128
2130
  const fixedWidth = (0, import_react5.useMemo)(() => columns.reduce((width2, column, index) => column.fixed === "left" ? width2 + metrics[index].width : width2, 0), [columns, metrics]);
package/dist/index.d.cts CHANGED
@@ -342,6 +342,8 @@ interface TableProps<Row extends object> {
342
342
  /** Stable row id. Defaults to the row's `id` field when omitted. */
343
343
  rowKey?: keyof Row | ((row: Row, index: number) => GridKey);
344
344
  width?: number | string;
345
+ /** Stretch columns to fill unused viewport width. Defaults to true. */
346
+ stretchColumns?: boolean;
345
347
  /** Grid height. Defaults to 100%; falls back to 480px when the parent has no height. */
346
348
  height?: number | string;
347
349
  /** Shrink the grid to its real content height when there are fewer rows than the configured max height can display. Defaults to true. */
package/dist/index.d.ts CHANGED
@@ -342,6 +342,8 @@ interface TableProps<Row extends object> {
342
342
  /** Stable row id. Defaults to the row's `id` field when omitted. */
343
343
  rowKey?: keyof Row | ((row: Row, index: number) => GridKey);
344
344
  width?: number | string;
345
+ /** Stretch columns to fill unused viewport width. Defaults to true. */
346
+ stretchColumns?: boolean;
345
347
  /** Grid height. Defaults to 100%; falls back to 480px when the parent has no height. */
346
348
  height?: number | string;
347
349
  /** Shrink the grid to its real content height when there are fewer rows than the configured max height can display. Defaults to true. */
package/dist/index.js CHANGED
@@ -748,7 +748,8 @@ function isColumnFilterable(column) {
748
748
  }
749
749
  function getHeaderTitleRequiredWidth(column, titleWidth) {
750
750
  const minimumReadableTitleWidth = Math.min(Math.ceil(titleWidth), 28);
751
- return minimumReadableTitleWidth + (column.align === "center" ? 20 : 22);
751
+ const horizontalPadding = 24;
752
+ return minimumReadableTitleWidth + horizontalPadding + (column.align === "center" ? 20 : 22);
752
753
  }
753
754
  function getVisibleHeaderActions(column, width, columnDraggable = false, titleWidth = 26, actionSlotWidth = HEADER_ACTION_SLOT_WIDTH) {
754
755
  const capacity = Math.max(0, Math.floor((width - getHeaderTitleRequiredWidth(column, titleWidth)) / actionSlotWidth));
@@ -1604,6 +1605,7 @@ function TableInner({
1604
1605
  rows: sourceRows,
1605
1606
  rowKey,
1606
1607
  width = "100%",
1608
+ stretchColumns = true,
1607
1609
  height = "100%",
1608
1610
  autoHeight = true,
1609
1611
  layout,
@@ -2091,8 +2093,8 @@ function TableInner({
2091
2093
  const hasManualColumnWidths = Object.keys(resizedColumnWidths).length > 0;
2092
2094
  const metrics = useMemo(() => buildColumnMetrics(columns, {
2093
2095
  columnDraggable,
2094
- viewportWidth: hasManualColumnWidths ? 0 : viewport.width
2095
- }), [columnDraggable, columns, hasManualColumnWidths, viewport.width]);
2096
+ viewportWidth: !stretchColumns || hasManualColumnWidths ? 0 : viewport.width
2097
+ }), [columnDraggable, columns, hasManualColumnWidths, stretchColumns, viewport.width]);
2096
2098
  const contentWidth = metrics.length > 0 ? metrics[metrics.length - 1].right : 0;
2097
2099
  const contentHeight = rows.length * rowHeight;
2098
2100
  const fixedWidth = useMemo(() => columns.reduce((width2, column, index) => column.fixed === "left" ? width2 + metrics[index].width : width2, 0), [columns, metrics]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lensui/lens-table",
3
- "version": "0.1.31",
3
+ "version": "0.1.32",
4
4
  "description": "A lightweight, canvas-rendered React table component for LensUI.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",