@exxatdesignux/ui 0.3.0 → 0.4.1
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 +701 -6
- package/README.md +138 -0
- package/bin/init.mjs +134 -31
- package/consumer-extras/cursor-rules/exxat-board-cards.mdc +1 -1
- package/consumer-extras/cursor-rules/exxat-centralized-list-dataset.mdc +2 -2
- package/consumer-extras/cursor-rules/exxat-collaboration-access.mdc +1 -1
- package/consumer-extras/cursor-rules/exxat-data-tables.mdc +2 -0
- package/consumer-extras/cursor-rules/exxat-dedicated-search-surfaces.mdc +1 -1
- package/consumer-extras/cursor-rules/exxat-ds-agents.mdc +3 -3
- package/consumer-extras/cursor-rules/exxat-library-hub-header.mdc +28 -0
- package/consumer-extras/cursor-rules/exxat-mono-ids.mdc +1 -1
- package/consumer-extras/cursor-rules/exxat-person-identity-display.mdc +1 -1
- package/consumer-extras/cursor-rules/exxat-primary-nav-secondary-panel.mdc +6 -6
- package/consumer-extras/cursor-rules/exxat-reuse-before-custom.mdc +1 -1
- package/consumer-extras/cursor-skills/exxat-board-cards/SKILL.md +2 -2
- package/consumer-extras/cursor-skills/exxat-centralized-list-dataset/SKILL.md +1 -1
- package/consumer-extras/cursor-skills/exxat-collaboration-access/SKILL.md +3 -3
- package/consumer-extras/cursor-skills/exxat-dedicated-search-surfaces/SKILL.md +2 -2
- package/consumer-extras/cursor-skills/exxat-ds-skill/SKILL.md +7 -7
- package/consumer-extras/cursor-skills/exxat-kpi-flat-band/SKILL.md +1 -1
- package/consumer-extras/cursor-skills/exxat-list-page-view-shells/SKILL.md +1 -1
- package/consumer-extras/cursor-skills/exxat-mono-ids/SKILL.md +4 -4
- package/consumer-extras/cursor-skills/exxat-primary-nav-secondary-panel/SKILL.md +8 -8
- package/consumer-extras/cursor-skills/exxat-token-economy/SKILL.md +277 -0
- package/consumer-extras/handbook/HANDBOOK.md +2 -0
- package/consumer-extras/handbook/glossary.md +2 -1
- package/consumer-extras/handbook/reference-implementations.md +31 -4
- package/consumer-extras/patterns/collaboration-access-pattern.md +7 -7
- package/consumer-extras/patterns/data-views-pattern.md +18 -16
- package/consumer-extras/patterns/kpi-flat-band-pattern.md +2 -2
- package/dist/components/data-table/index.js +2 -2
- package/dist/components/data-table/index.js.map +1 -1
- package/dist/components/data-table/pagination.js +3 -3
- package/dist/components/data-table/pagination.js.map +1 -1
- package/dist/components/data-table/use-table-state.d.ts +1 -1
- package/dist/components/data-table/use-table-state.js.map +1 -1
- package/dist/components/data-views/data-row-list.js.map +1 -1
- package/dist/components/data-views/finder-panel-view.d.ts +1 -1
- package/dist/components/data-views/finder-panel-view.js.map +1 -1
- package/dist/components/data-views/hub-table.d.ts +9 -3
- package/dist/components/data-views/hub-table.js +262 -40
- package/dist/components/data-views/hub-table.js.map +1 -1
- package/dist/components/data-views/index.js +262 -40
- package/dist/components/data-views/index.js.map +1 -1
- package/dist/components/data-views/list-page-split-hub-tokens.d.ts +2 -2
- package/dist/components/data-views/list-page-split-hub-tokens.js.map +1 -1
- package/dist/components/data-views/list-page-tree-column-header.d.ts +1 -1
- package/dist/components/data-views/list-page-tree-column-header.js.map +1 -1
- package/dist/components/data-views/list-page-tree-panel-shell.js.map +1 -1
- package/dist/components/data-views/os-folder-glyph.d.ts +1 -1
- package/dist/components/data-views/os-folder-glyph.js.map +1 -1
- package/dist/components/ui/avatar.d.ts +1 -1
- package/dist/components/ui/key-metrics.js.map +1 -1
- package/dist/index.js +136 -39
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/src/components/data-table/index.tsx +2 -2
- package/src/components/data-table/pagination.tsx +5 -1
- package/src/components/data-table/use-table-state.ts +1 -1
- package/src/components/data-views/data-row-list.tsx +1 -1
- package/src/components/data-views/finder-panel-view.tsx +2 -2
- package/src/components/data-views/hub-table.tsx +149 -41
- package/src/components/data-views/list-page-split-hub-tokens.ts +2 -2
- package/src/components/data-views/list-page-tree-column-header.tsx +1 -1
- package/src/components/data-views/os-folder-glyph.tsx +1 -1
- package/src/components/ui/key-metrics.tsx +1 -1
- package/template/.claude/skills/exxat-ds-skill/SKILL.md +8 -7
- package/template/.cursor/rules/exxat-accessibility.mdc +1 -1
- package/template/.cursor/rules/exxat-command-menu.mdc +1 -1
- package/template/.cursor/rules/exxat-dashboard-view-charts.mdc +6 -6
- package/template/.cursor/rules/exxat-data-tables.mdc +3 -3
- package/template/.cursor/rules/exxat-kbd-shortcuts.mdc +5 -5
- package/template/.cursor/rules/exxat-mono-ids.mdc +1 -1
- package/template/.cursor/rules/exxat-page-vs-drawer.mdc +1 -1
- package/template/.cursor/rules/exxat-table-properties-drawer.mdc +1 -1
- package/template/AGENTS.md +43 -37
- package/template/app/(app)/columns/page.tsx +11 -0
- package/template/app/(app)/library/all/page.tsx +11 -0
- package/template/app/(app)/library/find/page.tsx +12 -0
- package/template/app/(app)/{question-bank → library}/layout.tsx +16 -16
- package/template/app/(app)/library/list/page.tsx +12 -0
- package/template/app/(app)/{question-bank → library}/new/page.tsx +10 -10
- package/template/app/(app)/library/page.tsx +11 -0
- package/template/app/(app)/tokens-themes/page.tsx +11 -0
- package/template/components/ask-leo-composer.tsx +2 -2
- package/template/components/columns-client.tsx +158 -0
- package/template/components/columns-showcase.tsx +541 -0
- package/template/components/data-views/index.ts +32 -6
- package/template/components/data-views/{question-bank-folder-tree-branch.tsx → library-folder-tree-branch.tsx} +19 -19
- package/template/components/data-views/table-cells.tsx +673 -0
- package/template/components/folder-details-shell.tsx +11 -11
- package/template/components/hub-tree-panel-view.tsx +24 -24
- package/template/components/{question-bank-board-view.tsx → library-board-view.tsx} +44 -44
- package/template/components/{question-bank-client.tsx → library-client.tsx} +82 -82
- package/template/components/{question-bank-dashboard-charts.tsx → library-dashboard-charts.tsx} +14 -14
- package/template/components/{question-bank-favorite-button.tsx → library-favorite-button.tsx} +7 -7
- package/template/components/{question-bank-hub-client.tsx → library-hub-client.tsx} +43 -43
- package/template/components/{question-bank-new-folder-sheet.tsx → library-new-folder-sheet.tsx} +14 -14
- package/template/components/{question-bank-os-folder-view.tsx → library-os-folder-view.tsx} +31 -31
- package/template/components/{question-bank-page-header.tsx → library-page-header.tsx} +6 -6
- package/template/components/library-panel-activator.tsx +8 -0
- package/template/components/{question-bank-secondary-nav.tsx → library-secondary-nav.tsx} +60 -60
- package/template/components/{question-bank-table.tsx → library-table.tsx} +97 -97
- package/template/components/list-hub-status-badge.tsx +2 -2
- package/template/components/{new-question-composer.tsx → new-library-item-form.tsx} +37 -37
- package/template/components/sidebar/app-sidebar.tsx +61 -5
- package/template/components/sidebar/secondary-panel.tsx +109 -56
- package/template/components/sidebar/sidebar-auto-collapse.tsx +2 -2
- package/template/components/sidebar/sidebar-auto-open.tsx +2 -1
- package/template/components/table-properties/types.ts +1 -1
- package/template/components/templates/discovery-hub-template.tsx +1 -1
- package/template/components/templates/new-focus-template.tsx +2 -2
- package/template/components/templates/secondary-panel-hub-template.tsx +1 -1
- package/template/components/tokens-secondary-nav.tsx +192 -0
- package/template/components/tokens-themes-client.tsx +476 -0
- package/template/components/tokens-themes-section.tsx +386 -0
- package/template/docs/HANDBOOK.md +187 -0
- package/template/docs/blueprints/README.md +1 -1
- package/template/docs/blueprints/board-card.md +1 -1
- package/template/docs/blueprints/data-table.md +2 -2
- package/template/docs/blueprints/list-page-template.md +3 -3
- package/template/docs/blueprints/page-header.md +4 -4
- package/template/docs/collaboration-access-pattern.md +7 -7
- package/template/docs/component-selection-guide.md +1 -1
- package/template/docs/data-views-pattern.md +18 -16
- package/template/docs/glossary.md +58 -0
- package/template/docs/kpi-flat-band-pattern.md +3 -3
- package/template/docs/kpi-trend-pattern.md +18 -3
- package/template/docs/large-dataset-strategy.md +155 -0
- package/template/docs/library-hub-header-pattern.md +25 -0
- package/template/docs/migrations/_template.md +1 -1
- package/template/docs/reference-implementations.md +151 -0
- package/template/docs/token-taxonomy.md +1 -1
- package/template/docs/voice-and-tone.md +262 -0
- package/template/eslint.config.mjs +9 -39
- package/template/hooks/use-secondary-panel-hub-nav.ts +10 -10
- package/template/lib/ask-leo-route-context.ts +6 -18
- package/template/lib/coach-mark-registry.ts +0 -16
- package/template/lib/command-menu-config.ts +5 -12
- package/template/lib/command-menu-search-data.ts +8 -39
- package/template/lib/{question-bank-authoring.ts → library-authoring.ts} +89 -88
- package/template/lib/library-dedicated-search.ts +19 -0
- package/template/lib/library-hub-search.ts +90 -0
- package/template/lib/library-nav.ts +477 -0
- package/template/lib/library-recent-searches.ts +22 -0
- package/template/lib/{placements-supported-views.ts → library-supported-views.ts} +2 -2
- package/template/lib/list-status-badges.ts +16 -104
- package/template/lib/mock/dashboard.ts +1 -1
- package/template/lib/mock/{question-bank-folders.ts → library-folders.ts} +30 -30
- package/template/lib/mock/library-header-collaborators.ts +54 -0
- package/template/lib/mock/{question-bank-inspector.ts → library-inspector.ts} +29 -29
- package/template/lib/mock/{question-bank-kpi.ts → library-kpi.ts} +20 -20
- package/template/lib/mock/library.ts +249 -0
- package/template/lib/mock/navigation.tsx +32 -26
- package/template/lib/table-state-lifecycle.ts +1 -1
- package/template/next.config.mjs +7 -4
- package/template/package.json +0 -1
- package/tokens/hooks-index.json +2874 -0
- package/consumer-extras/cursor-rules/exxat-question-bank-hub-header.mdc +0 -28
- package/template/app/(app)/examples/page.tsx +0 -41
- package/template/app/(app)/question-bank/find/page.tsx +0 -12
- package/template/app/(app)/question-bank/library/page.tsx +0 -11
- package/template/app/(app)/question-bank/list/page.tsx +0 -12
- package/template/app/(app)/question-bank/page.tsx +0 -11
- package/template/components/compliance-board-view.tsx +0 -142
- package/template/components/compliance-client.tsx +0 -92
- package/template/components/compliance-page-header.tsx +0 -89
- package/template/components/compliance-table.tsx +0 -468
- package/template/components/data-view-dashboard-charts-compliance.tsx +0 -963
- package/template/components/data-view-dashboard-charts-team.tsx +0 -971
- package/template/components/data-view-dashboard-charts.tsx +0 -1503
- package/template/components/new-placement-back-btn.tsx +0 -28
- package/template/components/new-placement-form.tsx +0 -942
- package/template/components/placement-board-card.tsx +0 -250
- package/template/components/placement-detail.tsx +0 -438
- package/template/components/placements-board-view.tsx +0 -397
- package/template/components/placements-client.tsx +0 -220
- package/template/components/placements-list-view.tsx +0 -124
- package/template/components/placements-page-header.tsx +0 -166
- package/template/components/placements-table-cells.test.tsx +0 -22
- package/template/components/placements-table-cells.tsx +0 -173
- package/template/components/placements-table-columns.tsx +0 -210
- package/template/components/placements-table.tsx +0 -934
- package/template/components/question-bank-panel-activator.tsx +0 -8
- package/template/components/rotations-empty-state.tsx +0 -50
- package/template/components/rotations-panel-activator.tsx +0 -8
- package/template/components/sites-board-view.tsx +0 -67
- package/template/components/sites-client.tsx +0 -154
- package/template/components/sites-table.tsx +0 -249
- package/template/components/team-board-view.tsx +0 -122
- package/template/components/team-client.tsx +0 -100
- package/template/components/team-page-header.tsx +0 -92
- package/template/components/team-table.tsx +0 -553
- package/template/docs/question-bank-hub-header-pattern.md +0 -25
- package/template/lib/compliance-supported-views.ts +0 -10
- package/template/lib/data-view-dashboard-placements-layout.ts +0 -215
- package/template/lib/mock/compliance-kpi.ts +0 -61
- package/template/lib/mock/compliance.ts +0 -146
- package/template/lib/mock/placements-kpi.ts +0 -134
- package/template/lib/mock/placements.ts +0 -176
- package/template/lib/mock/question-bank-header-collaborators.ts +0 -54
- package/template/lib/mock/question-bank.ts +0 -249
- package/template/lib/mock/sites-directory.ts +0 -16
- package/template/lib/mock/sites-kpi.ts +0 -25
- package/template/lib/mock/team-kpi.ts +0 -60
- package/template/lib/mock/team.ts +0 -118
- package/template/lib/placement-board-card-layout.ts +0 -79
- package/template/lib/question-bank-dedicated-search.ts +0 -19
- package/template/lib/question-bank-hub-search.ts +0 -90
- package/template/lib/question-bank-nav.ts +0 -477
- package/template/lib/question-bank-recent-searches.ts +0 -22
- package/template/lib/question-bank-supported-views.ts +0 -12
- package/template/lib/sites-supported-views.ts +0 -10
- package/template/lib/team-supported-views.ts +0 -10
package/dist/index.js
CHANGED
|
@@ -3042,8 +3042,8 @@ function DataTableInner({
|
|
|
3042
3042
|
setHeaderScrollLeft(e.currentTarget.scrollLeft);
|
|
3043
3043
|
},
|
|
3044
3044
|
className: cn(
|
|
3045
|
-
"mx-4 lg:mx-6 overflow-x-auto border border-border",
|
|
3046
|
-
hasFooter ? "rounded-t-lg" : "rounded-lg"
|
|
3045
|
+
"mx-4 lg:mx-6 overflow-x-auto border-t border-x border-border",
|
|
3046
|
+
hasFooter ? "rounded-t-lg" : "border-b rounded-lg"
|
|
3047
3047
|
),
|
|
3048
3048
|
children: /* @__PURE__ */ jsxs(
|
|
3049
3049
|
"table",
|
|
@@ -3693,7 +3693,7 @@ function DataTablePaginated({
|
|
|
3693
3693
|
hasFooter: true
|
|
3694
3694
|
}
|
|
3695
3695
|
),
|
|
3696
|
-
/* @__PURE__ */ jsx("div", { className: "mx-4 lg:mx-6 border-x border-b border-border rounded-b-lg overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
3696
|
+
/* @__PURE__ */ jsx("div", { className: "sticky bottom-0 z-40 mx-4 lg:mx-6 border-x border-b border-border rounded-b-lg overflow-hidden bg-background", children: /* @__PURE__ */ jsx(
|
|
3697
3697
|
PaginationBar,
|
|
3698
3698
|
{
|
|
3699
3699
|
page: safePage,
|
|
@@ -6180,6 +6180,8 @@ function HubTable({
|
|
|
6180
6180
|
handleRef,
|
|
6181
6181
|
tableRenderer,
|
|
6182
6182
|
paginationOverride,
|
|
6183
|
+
paginationPageSizeOptions = [10, 25, 50, 100],
|
|
6184
|
+
paginationInitialPageSize = 10,
|
|
6183
6185
|
syncedSearchFromUrl,
|
|
6184
6186
|
renderListRow,
|
|
6185
6187
|
listAriaLabel,
|
|
@@ -6225,13 +6227,23 @@ function HubTable({
|
|
|
6225
6227
|
},
|
|
6226
6228
|
[]
|
|
6227
6229
|
);
|
|
6230
|
+
const [internalPage, setInternalPage] = React10.useState(1);
|
|
6231
|
+
const [internalPageSize, setInternalPageSize] = React10.useState(paginationInitialPageSize);
|
|
6232
|
+
const chromeOwnedPagination = pagination === true && paginationOverride === void 0;
|
|
6233
|
+
const effectivePaginationOverride = paginationOverride ?? (chromeOwnedPagination ? { page: internalPage, pageSize: internalPageSize } : void 0);
|
|
6228
6234
|
const tableState = useTableState(
|
|
6229
6235
|
rows,
|
|
6230
6236
|
columns,
|
|
6231
6237
|
defaultSort,
|
|
6232
|
-
|
|
6238
|
+
effectivePaginationOverride,
|
|
6233
6239
|
syncedSearchFromUrl
|
|
6234
6240
|
);
|
|
6241
|
+
const handlePageChange = React10.useCallback((p) => setInternalPage(p), []);
|
|
6242
|
+
const handlePageSizeChange = React10.useCallback((n) => {
|
|
6243
|
+
setInternalPageSize(n);
|
|
6244
|
+
setInternalPage(1);
|
|
6245
|
+
}, []);
|
|
6246
|
+
const resetPage = React10.useCallback(() => setInternalPage(1), []);
|
|
6235
6247
|
const { setSheetOpen: openPropertiesSheet } = tableState;
|
|
6236
6248
|
React10.useImperativeHandle(
|
|
6237
6249
|
handleRef ?? null,
|
|
@@ -6287,27 +6299,70 @@ function HubTable({
|
|
|
6287
6299
|
drawerToolbarProps
|
|
6288
6300
|
]
|
|
6289
6301
|
);
|
|
6290
|
-
const defaultTableRenderer = (args2) =>
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
|
|
6304
|
-
|
|
6305
|
-
|
|
6306
|
-
|
|
6307
|
-
|
|
6308
|
-
|
|
6309
|
-
|
|
6310
|
-
|
|
6302
|
+
const defaultTableRenderer = (args2) => {
|
|
6303
|
+
const filteredCount = args2.state.rows.length;
|
|
6304
|
+
const totalPages = Math.max(1, Math.ceil(filteredCount / Math.max(1, internalPageSize)));
|
|
6305
|
+
const safePage = Math.min(internalPage, totalPages);
|
|
6306
|
+
return /* @__PURE__ */ jsxs("div", { className: "pb-6", children: [
|
|
6307
|
+
chromeOwnedPagination ? /* @__PURE__ */ jsx(
|
|
6308
|
+
CountSyncer,
|
|
6309
|
+
{
|
|
6310
|
+
count: filteredCount,
|
|
6311
|
+
onSync: (n) => {
|
|
6312
|
+
const next = Math.max(1, Math.ceil(n / Math.max(1, internalPageSize)));
|
|
6313
|
+
if (safePage > next) setInternalPage(next);
|
|
6314
|
+
},
|
|
6315
|
+
onReset: resetPage
|
|
6316
|
+
}
|
|
6317
|
+
) : null,
|
|
6318
|
+
/* @__PURE__ */ jsx(
|
|
6319
|
+
DataTable,
|
|
6320
|
+
{
|
|
6321
|
+
data: rows,
|
|
6322
|
+
columns,
|
|
6323
|
+
getRowId,
|
|
6324
|
+
getRowSelectionLabel,
|
|
6325
|
+
selectable,
|
|
6326
|
+
searchable: displayOptions.showToolbarSearch,
|
|
6327
|
+
showColumnHeaders: displayOptions.showColumnLabels,
|
|
6328
|
+
groupable,
|
|
6329
|
+
defaultSort,
|
|
6330
|
+
emptyState: emptyState ?? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "No records match your filters." }),
|
|
6331
|
+
conditionalRules,
|
|
6332
|
+
state: args2.state,
|
|
6333
|
+
renderFilterOptionValue,
|
|
6334
|
+
toolbarSlot: (s) => /* @__PURE__ */ jsx(TablePropertiesDrawerButton, { ...drawerToolbarProps, state: s }),
|
|
6335
|
+
bulkActionsSlot,
|
|
6336
|
+
onRowClick,
|
|
6337
|
+
hasFooter: chromeOwnedPagination
|
|
6338
|
+
}
|
|
6339
|
+
),
|
|
6340
|
+
chromeOwnedPagination ? /* @__PURE__ */ jsx(
|
|
6341
|
+
"div",
|
|
6342
|
+
{
|
|
6343
|
+
className: cn(
|
|
6344
|
+
"mx-4 lg:mx-6 border-x border-b border-border rounded-b-lg overflow-hidden bg-background",
|
|
6345
|
+
// z-40 sits above pinned cells (z-20), group headers (z-25), and column headers
|
|
6346
|
+
// (z-30 / z-40) so the sticky footer paints over any table content that scrolls
|
|
6347
|
+
// behind it. Pinned-left cells ship with their own `bg-dt-row-bg`, which
|
|
6348
|
+
// otherwise wins because of z-20 > z-10.
|
|
6349
|
+
"sticky bottom-0 z-40"
|
|
6350
|
+
),
|
|
6351
|
+
children: /* @__PURE__ */ jsx(
|
|
6352
|
+
PaginationBar,
|
|
6353
|
+
{
|
|
6354
|
+
page: safePage,
|
|
6355
|
+
pageSize: internalPageSize,
|
|
6356
|
+
total: filteredCount,
|
|
6357
|
+
pageSizeOptions: paginationPageSizeOptions,
|
|
6358
|
+
onPageChange: handlePageChange,
|
|
6359
|
+
onPageSizeChange: handlePageSizeChange
|
|
6360
|
+
}
|
|
6361
|
+
)
|
|
6362
|
+
}
|
|
6363
|
+
) : null
|
|
6364
|
+
] });
|
|
6365
|
+
};
|
|
6311
6366
|
const args = {
|
|
6312
6367
|
state: tableState,
|
|
6313
6368
|
toolbar,
|
|
@@ -6331,20 +6386,62 @@ function HubTable({
|
|
|
6331
6386
|
"data-table": () => (tableRenderer ?? defaultTableRenderer)(args)
|
|
6332
6387
|
};
|
|
6333
6388
|
if (renderers["list-with-toolbar"] == null && renderListRow != null) {
|
|
6334
|
-
composed["list-with-toolbar"] = () =>
|
|
6335
|
-
|
|
6336
|
-
|
|
6337
|
-
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
|
|
6341
|
-
|
|
6342
|
-
|
|
6343
|
-
|
|
6344
|
-
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6389
|
+
composed["list-with-toolbar"] = () => {
|
|
6390
|
+
const fullRows = args.state.rows;
|
|
6391
|
+
const pagedRows = chromeOwnedPagination ? args.state.pagedRows : fullRows;
|
|
6392
|
+
const filteredCount = fullRows.length;
|
|
6393
|
+
const totalPages = Math.max(1, Math.ceil(filteredCount / Math.max(1, internalPageSize)));
|
|
6394
|
+
const safePage = Math.min(internalPage, totalPages);
|
|
6395
|
+
return args.toolbarShell(
|
|
6396
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6397
|
+
chromeOwnedPagination ? /* @__PURE__ */ jsx(
|
|
6398
|
+
CountSyncer,
|
|
6399
|
+
{
|
|
6400
|
+
count: filteredCount,
|
|
6401
|
+
onSync: (n) => {
|
|
6402
|
+
const next = Math.max(1, Math.ceil(n / Math.max(1, internalPageSize)));
|
|
6403
|
+
if (safePage > next) setInternalPage(next);
|
|
6404
|
+
},
|
|
6405
|
+
onReset: resetPage
|
|
6406
|
+
}
|
|
6407
|
+
) : null,
|
|
6408
|
+
/* @__PURE__ */ jsx(
|
|
6409
|
+
DataRowList,
|
|
6410
|
+
{
|
|
6411
|
+
rows: pagedRows,
|
|
6412
|
+
getRowId: (row) => getRowId(row),
|
|
6413
|
+
ariaLabel: listAriaLabel ?? hubLabel,
|
|
6414
|
+
emptyState: listEmptyState ?? "No records match your filters.",
|
|
6415
|
+
...listVirtualizeThreshold !== void 0 ? { virtualizeThreshold: listVirtualizeThreshold } : {},
|
|
6416
|
+
...listEstimatedRowHeight !== void 0 ? { estimatedRowHeight: listEstimatedRowHeight } : {},
|
|
6417
|
+
renderRow: renderListRow
|
|
6418
|
+
}
|
|
6419
|
+
),
|
|
6420
|
+
chromeOwnedPagination ? /* @__PURE__ */ jsx(
|
|
6421
|
+
"div",
|
|
6422
|
+
{
|
|
6423
|
+
className: cn(
|
|
6424
|
+
"mx-4 lg:mx-6 border-x border-b border-border rounded-b-lg overflow-hidden bg-background",
|
|
6425
|
+
// Match the table-view footer — above pinned cells (z-20) and column
|
|
6426
|
+
// headers (z-30 / z-40) so the sticky chrome paints over scrolling rows.
|
|
6427
|
+
"sticky bottom-0 z-40"
|
|
6428
|
+
),
|
|
6429
|
+
children: /* @__PURE__ */ jsx(
|
|
6430
|
+
PaginationBar,
|
|
6431
|
+
{
|
|
6432
|
+
page: safePage,
|
|
6433
|
+
pageSize: internalPageSize,
|
|
6434
|
+
total: filteredCount,
|
|
6435
|
+
pageSizeOptions: paginationPageSizeOptions,
|
|
6436
|
+
onPageChange: handlePageChange,
|
|
6437
|
+
onPageSizeChange: handlePageSizeChange
|
|
6438
|
+
}
|
|
6439
|
+
)
|
|
6440
|
+
}
|
|
6441
|
+
) : null
|
|
6442
|
+
] })
|
|
6443
|
+
);
|
|
6444
|
+
};
|
|
6348
6445
|
}
|
|
6349
6446
|
if (renderers["board-with-toolbar"] == null && renderBoardCard != null && boardGroups != null) {
|
|
6350
6447
|
composed["board-with-toolbar"] = () => args.toolbarShell(
|