@ai-matrx/design-system 0.48.9 → 0.48.11
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/CHANGELOG.md +23 -0
- package/dist/data-table/index.cjs +40 -31
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.js +40 -31
- package/dist/data-table/index.js.map +1 -1
- package/dist/data-table/pagination.cjs +4 -3
- package/dist/data-table/pagination.cjs.map +1 -1
- package/dist/data-table/pagination.js +4 -3
- package/dist/data-table/pagination.js.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/tap-target.css +3 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.48.11
|
|
4
|
+
|
|
5
|
+
Automatic changed-only republish (docs/metadata drift since the last tag — see
|
|
6
|
+
`git diff npm/design-system/v0.48.10..npm/design-system/v0.48.11 -- apps/shared/design-system`).
|
|
7
|
+
No source changes intended and no consumer action required.
|
|
8
|
+
|
|
9
|
+
## 0.48.10
|
|
10
|
+
### Unreleased
|
|
11
|
+
### page-pass shared fix (2026-09-27): a bottom sheet sizes to its content
|
|
12
|
+
|
|
13
|
+
- The adaptive `BottomSheet` has no 60dvh minimum (it keeps the 90dvh maximum): a two-action sheet was mostly empty and hosts overrode it with `min-h-0`. Proof: `bottom-sheet.test.tsx`, red on the old class.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### (2026-09-27 — an empty table)
|
|
17
|
+
|
|
18
|
+
- **An empty table (nothing searched or filtered) draws no pager** — "0-0 of 0" and a disabled pager said nothing the empty state did not. A search or filter that matched nothing keeps its footer (it still says what was searched).
|
|
19
|
+
- **The empty / failed-read message cell keeps its room** (`data-matrx-table-message-cell`, excluded from the density padding rule that squeezed it flush under the header).
|
|
20
|
+
- Proof: `MatrxDataTable.cards-no-frame.test.tsx` "zero rows"; `MatrxDataTable.progressive.test.tsx` "an EMPTY table".
|
|
21
|
+
|
|
22
|
+
### Consumer action
|
|
23
|
+
|
|
24
|
+
A test that expected the pager over an unfiltered empty table now expects none.
|
|
25
|
+
|
|
3
26
|
## 0.48.9
|
|
4
27
|
### ALC-15 round 5 (a host engine supersedes a built-in format; no JSON twins)
|
|
5
28
|
|
|
@@ -36522,6 +36522,7 @@ function GenericTablePagination({
|
|
|
36522
36522
|
const startItem = totalItems === 0 ? 0 : progressive ? 1 : (currentPage - 1) * effectiveItemsPerPage + 1;
|
|
36523
36523
|
const endItem = Math.min(progressive?.shownCount ?? currentPage * effectiveItemsPerPage, totalItems);
|
|
36524
36524
|
const defaultLabelFormat = (start, end, total) => {
|
|
36525
|
+
if (total === 0 && !unknownTotal) return "0 rows";
|
|
36525
36526
|
if (unknownTotal) return `${unknownTotal.pageRowCount.toLocaleString()} on page ${currentPage.toLocaleString()}`;
|
|
36526
36527
|
if (progressive) return progressive.loadedCount !== void 0 && progressive.loadedCount !== total ? `${end} shown / ${total} matching \xB7 ${progressive.loadedCount} loaded` : `${end} shown / ${total} loaded`;
|
|
36527
36528
|
return compact ? `${start}-${end} of ${total}` : `Showing ${start} to ${end} of ${total} entries`;
|
|
@@ -36576,7 +36577,7 @@ function GenericTablePagination({
|
|
|
36576
36577
|
{
|
|
36577
36578
|
className: cn("flex min-w-0 justify-center", infoContainerClassName),
|
|
36578
36579
|
children: showPageInfo && !hideEntriesInfo && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
36579
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "truncate text-xs tabular-nums text-muted-foreground sm:hidden", children: labelFormat ? formatLabel(startItem, endItem, totalItems) : unknownTotal ? defaultLabelFormat(startItem, endItem, totalItems) : progressive ? `${endItem}/${totalItems} ${progressive.loadedCount !== void 0 && progressive.loadedCount !== totalItems ? "matching" : "loaded"}` : `${startItem}-${endItem} / ${totalItems}` }),
|
|
36580
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "truncate text-xs tabular-nums text-muted-foreground sm:hidden", children: labelFormat ? formatLabel(startItem, endItem, totalItems) : unknownTotal ? defaultLabelFormat(startItem, endItem, totalItems) : totalItems === 0 ? "0 rows" : progressive ? `${endItem}/${totalItems} ${progressive.loadedCount !== void 0 && progressive.loadedCount !== totalItems ? "matching" : "loaded"}` : `${startItem}-${endItem} / ${totalItems}` }),
|
|
36580
36581
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
36581
36582
|
"span",
|
|
36582
36583
|
{
|
|
@@ -36651,7 +36652,7 @@ function GenericTablePagination({
|
|
|
36651
36652
|
),
|
|
36652
36653
|
fallbackClassName: page === currentPage ? pageActiveButtonClassName : pageButtonClassName,
|
|
36653
36654
|
onClick: () => onPageChange(page),
|
|
36654
|
-
disabled: isFetching,
|
|
36655
|
+
disabled: isFetching || totalPages <= 1,
|
|
36655
36656
|
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { children: page })
|
|
36656
36657
|
},
|
|
36657
36658
|
`mobile-${page}`
|
|
@@ -36667,7 +36668,7 @@ function GenericTablePagination({
|
|
|
36667
36668
|
visibilityClassName: "hidden sm:inline-flex",
|
|
36668
36669
|
fallbackClassName: currentPage === page ? pageActiveButtonClassName : pageButtonClassName,
|
|
36669
36670
|
onClick: () => onPageChange(page),
|
|
36670
|
-
disabled: isFetching,
|
|
36671
|
+
disabled: isFetching || totalPages <= 1,
|
|
36671
36672
|
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { children: page })
|
|
36672
36673
|
},
|
|
36673
36674
|
`desktop-${page}`
|
|
@@ -43905,7 +43906,9 @@ function BottomSheet({
|
|
|
43905
43906
|
{
|
|
43906
43907
|
className: cn(
|
|
43907
43908
|
"fixed inset-x-0 bottom-0 z-[10000] mt-24 flex flex-col rounded-t-2xl overflow-hidden",
|
|
43908
|
-
|
|
43909
|
+
// Adaptive sizes to its content, up to 90dvh — never a 60dvh floor that
|
|
43910
|
+
// left a two-action sheet mostly empty (hosts overrode it with min-h-0).
|
|
43911
|
+
size === "full" ? "h-[92dvh]" : "max-h-[90dvh]",
|
|
43909
43912
|
surface === "solid" && "border border-b-0 border-border bg-background shadow-2xl",
|
|
43910
43913
|
contentClassName
|
|
43911
43914
|
),
|
|
@@ -51181,10 +51184,11 @@ function MatrxDataTableCore(coreProps) {
|
|
|
51181
51184
|
},
|
|
51182
51185
|
"matrx-column-spacer-end"
|
|
51183
51186
|
) : null
|
|
51184
|
-
] }, `sk-${i}`)) : readFailure ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("td", { colSpan: renderedColSpan, className: "px-0 py-12 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "sticky left-0 flex flex-col items-center gap-2 whitespace-normal px-4", style: { width: "100cqw", maxWidth: "100%" }, children: readFailure }) }) }) : paginated.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
51187
|
+
] }, `sk-${i}`)) : readFailure ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("td", { colSpan: renderedColSpan, "data-matrx-table-message-cell": true, className: "px-0 py-12 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "sticky left-0 flex flex-col items-center gap-2 whitespace-normal px-4", style: { width: "100cqw", maxWidth: "100%" }, children: readFailure }) }) }) : paginated.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
51185
51188
|
"td",
|
|
51186
51189
|
{
|
|
51187
51190
|
colSpan: renderedColSpan,
|
|
51191
|
+
"data-matrx-table-message-cell": true,
|
|
51188
51192
|
className: "px-0 py-12 text-center",
|
|
51189
51193
|
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { "data-matrx-table-empty-state": true, className: "sticky left-0 flex flex-col items-center gap-2 whitespace-normal px-4", style: { width: "100cqw", maxWidth: "100%" }, children: [
|
|
51190
51194
|
renderedEmptyState?.icon,
|
|
@@ -51471,32 +51475,37 @@ function MatrxDataTableCore(coreProps) {
|
|
|
51471
51475
|
] }) : !isLoading && appendQuery.pagination.totalItems !== void 0 && data.length === appendQuery.pagination.totalItems ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "min-w-0 max-w-full break-words whitespace-normal px-3 text-xs text-muted-foreground sm:text-sm", children: "All rows loaded" }) : null
|
|
51472
51476
|
]
|
|
51473
51477
|
}
|
|
51474
|
-
) : !hidePagination ?
|
|
51475
|
-
|
|
51476
|
-
|
|
51477
|
-
|
|
51478
|
-
|
|
51479
|
-
|
|
51480
|
-
|
|
51481
|
-
|
|
51482
|
-
|
|
51483
|
-
|
|
51484
|
-
|
|
51485
|
-
|
|
51486
|
-
|
|
51487
|
-
|
|
51488
|
-
|
|
51489
|
-
|
|
51490
|
-
|
|
51491
|
-
|
|
51492
|
-
|
|
51493
|
-
|
|
51494
|
-
|
|
51495
|
-
|
|
51496
|
-
|
|
51497
|
-
|
|
51498
|
-
|
|
51499
|
-
|
|
51478
|
+
) : !hidePagination ? (
|
|
51479
|
+
// Keep the footer and disabled page controls in place for an empty table,
|
|
51480
|
+
// including an unfiltered empty source. The empty-state copy explains why
|
|
51481
|
+
// there are no records; the stable footer preserves the table controls.
|
|
51482
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(MatrxTableChrome, { part: "pagination", epoch: paginationEpoch, render: () => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
51483
|
+
GenericTablePagination,
|
|
51484
|
+
{
|
|
51485
|
+
totalItems,
|
|
51486
|
+
...paginationLabelFormat ? { labelFormat: paginationLabelFormat } : sourceTotal === void 0 ? {} : { labelFormat: (start, end, total) => `${(0, import_format5.formatCount)(start)}\u2013${(0, import_format5.formatCount)(end)} of ${(0, import_format5.formatCount)(total)} matching \xB7 ${(0, import_format5.formatCount)(data.length)} / ${(0, import_format5.formatCount)(sourceTotal)} loaded` },
|
|
51487
|
+
...localProgressiveEnabled ? { progressive: {
|
|
51488
|
+
shownCount: progressiveRows.shownCount,
|
|
51489
|
+
loadedCount: data.length,
|
|
51490
|
+
hasMore: progressiveRows.hasMore,
|
|
51491
|
+
onShowMore: () => void chromeLatest.current.showMore()
|
|
51492
|
+
} } : {},
|
|
51493
|
+
itemsPerPage: pageSize === 0 && allRowsAreLoaded ? 0 : effectivePageSize,
|
|
51494
|
+
currentPage: safePage,
|
|
51495
|
+
onPageChange: setPage,
|
|
51496
|
+
onItemsPerPageChange: (n2) => {
|
|
51497
|
+
setPageSize(n2);
|
|
51498
|
+
if (!controlledQuery) setPage(1);
|
|
51499
|
+
},
|
|
51500
|
+
pageSizeOptions: pageSizeOptions.filter((size) => size > 0),
|
|
51501
|
+
showAllOption: allRowsAreLoaded,
|
|
51502
|
+
allValue: 0,
|
|
51503
|
+
allOptionLabel: "All loaded",
|
|
51504
|
+
compact: true,
|
|
51505
|
+
hideEntriesInfo: false
|
|
51506
|
+
}
|
|
51507
|
+
) }) })
|
|
51508
|
+
) : null,
|
|
51500
51509
|
selection && selectionCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
51501
51510
|
"div",
|
|
51502
51511
|
{
|