@xenosystem/blocks 0.13.21 → 0.13.22

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.
@@ -781,6 +781,7 @@ interface TableViewModel {
781
781
  totalHeight: number;
782
782
  offsetTop: number;
783
783
  rows: TableViewRow[];
784
+ rowCount: number;
784
785
  pivotHeads: {
785
786
  key: string;
786
787
  name: string;
@@ -947,6 +947,7 @@ import {
947
947
  Column,
948
948
  EmptyState,
949
949
  ErrorState,
950
+ Grid,
950
951
  GridCell,
951
952
  GridHeader,
952
953
  GridHeaderCell,
@@ -1115,6 +1116,7 @@ function tableViewState(c, options = {}) {
1115
1116
  totalHeight: rowWindow.totalHeight,
1116
1117
  offsetTop: rowWindow.offsetTop,
1117
1118
  rows,
1119
+ rowCount: result?.rows.length ?? 0,
1118
1120
  pivotHeads: pivot && !pivotEmpty ? columns.map((col) => ({ key: col.column.id, name: col.column.name })) : [],
1119
1121
  pivotRows,
1120
1122
  footerShown: showFooter,
@@ -1196,6 +1198,7 @@ var EMPTY = {
1196
1198
  totalHeight: 0,
1197
1199
  offsetTop: 0,
1198
1200
  rows: [],
1201
+ rowCount: 0,
1199
1202
  pivotHeads: [],
1200
1203
  pivotRows: [],
1201
1204
  footerShown: true,
@@ -1296,27 +1299,31 @@ var TABLE_DECLARATION = {
1296
1299
  {
1297
1300
  component: "table/Scroller",
1298
1301
  when: { input: "view.grid" },
1299
- children: [
1300
- { component: "chrome/GridHeader", props: { width: { input: "view.width" }, height: { input: "view.headerHeight" } }, children: [HEADER_CELL("view.frozenHeaders"), { component: "chrome/GridSpacer", props: { width: { input: "view.spacerWidth" } } }, HEADER_CELL("view.headers")] },
1301
- {
1302
- component: "chrome/VirtualWindow",
1303
- props: { totalHeight: { input: "view.totalHeight" }, offsetTop: { input: "view.offsetTop" } },
1304
- children: [
1305
- {
1306
- component: "chrome/GridRow",
1307
- each: { input: "view.rows", key: "key" },
1308
- props: { height: { item: "height" }, width: { item: "width" }, selected: { item: "selected" }, zebra: { item: "zebra" } },
1309
- on: { onClick: ui("rowClick", { id: { item: "id" }, ctrlKey: { arg: "ctrlKey" }, metaKey: { arg: "metaKey" } }), onDoubleClick: ui("rowDouble", { id: { item: "id" } }) },
1310
- children: [
1311
- { component: "chrome/GridCell", when: { item: "hasGutter" }, props: { width: { item: "gutterWidth" }, gutter: { value: true } }, children: [text({ item: "ordinal" })] },
1312
- CELL("frozenCells"),
1313
- { component: "chrome/GridSpacer", props: { width: { input: "view.spacerWidth" } } },
1314
- CELL("cells")
1315
- ]
1316
- }
1317
- ]
1318
- }
1319
- ]
1302
+ children: [{
1303
+ component: "chrome/Grid",
1304
+ props: { label: { value: "Rows" }, rowCount: { input: "view.rowCount" } },
1305
+ children: [
1306
+ { component: "chrome/GridHeader", props: { width: { input: "view.width" }, height: { input: "view.headerHeight" } }, children: [HEADER_CELL("view.frozenHeaders"), { component: "chrome/GridSpacer", props: { width: { input: "view.spacerWidth" } } }, HEADER_CELL("view.headers")] },
1307
+ {
1308
+ component: "chrome/VirtualWindow",
1309
+ props: { totalHeight: { input: "view.totalHeight" }, offsetTop: { input: "view.offsetTop" } },
1310
+ children: [
1311
+ {
1312
+ component: "chrome/GridRow",
1313
+ each: { input: "view.rows", key: "key" },
1314
+ props: { height: { item: "height" }, width: { item: "width" }, selected: { item: "selected" }, zebra: { item: "zebra" } },
1315
+ on: { onClick: ui("rowClick", { id: { item: "id" }, ctrlKey: { arg: "ctrlKey" }, metaKey: { arg: "metaKey" } }), onDoubleClick: ui("rowDouble", { id: { item: "id" } }) },
1316
+ children: [
1317
+ { component: "chrome/GridCell", when: { item: "hasGutter" }, props: { width: { item: "gutterWidth" }, gutter: { value: true } }, children: [text({ item: "ordinal" })] },
1318
+ CELL("frozenCells"),
1319
+ { component: "chrome/GridSpacer", props: { width: { input: "view.spacerWidth" } } },
1320
+ CELL("cells")
1321
+ ]
1322
+ }
1323
+ ]
1324
+ }
1325
+ ]
1326
+ }]
1320
1327
  },
1321
1328
  {
1322
1329
  component: "chrome/StatusBar",
@@ -1390,7 +1397,7 @@ function TablePanelView({ controller, ...options }) {
1390
1397
  r.cells.map((c) => /* @__PURE__ */ jsx(PivotCell, { numeric: true, children: c.text }, c.key))
1391
1398
  ] }, r.key))
1392
1399
  ] }) : null }) : null,
1393
- view.grid ? /* @__PURE__ */ jsxs(TableScroller, { controller, children: [
1400
+ view.grid ? /* @__PURE__ */ jsx(TableScroller, { controller, children: /* @__PURE__ */ jsxs(Grid, { label: "Rows", rowCount: view.rowCount, children: [
1394
1401
  /* @__PURE__ */ jsxs(GridHeader, { width: view.width, height: view.headerHeight, children: [
1395
1402
  view.frozenHeaders.map(header),
1396
1403
  /* @__PURE__ */ jsx(GridSpacer, { width: view.spacerWidth }),
@@ -1402,7 +1409,7 @@ function TablePanelView({ controller, ...options }) {
1402
1409
  /* @__PURE__ */ jsx(GridSpacer, { width: view.spacerWidth }),
1403
1410
  r.cells.map(cell)
1404
1411
  ] }, r.key)) })
1405
- ] }) : null,
1412
+ ] }) }) : null,
1406
1413
  view.footerShown ? /* @__PURE__ */ jsx(StatusBar, { left: /* @__PURE__ */ jsx(Text, { role: "number", children: view.countLabel }), right: view.selectedLabel ? /* @__PURE__ */ jsx(Text, { role: "meta", children: view.selectedLabel }) : null }) : null
1407
1414
  ] });
1408
1415
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenosystem/blocks",
3
- "version": "0.13.21",
3
+ "version": "0.13.22",
4
4
  "description": "XENO Blocks — rung 3 of the front ladder: components composed into a contract-bearing unit (manifest: ports, intents, commands, agent surface), rendered by @xenosystem/workbench. ONE package, one subpath per family (/auth, /edit, /data, /time, /ops, /trust, /agent), one named export per block — XENO PACKAGE NAMING - STANDARD.md.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -64,7 +64,7 @@
64
64
  "peerDependencies": {
65
65
  "@duckdb/duckdb-wasm": ">=1.28.0",
66
66
  "@xenosystem/block-sdk": ">=0.3.4 <1",
67
- "@xenosystem/components": ">=0.28.0 <1",
67
+ "@xenosystem/components": ">=0.28.1 <1",
68
68
  "@xenosystem/data-core": "^0.1.0",
69
69
  "@xenosystem/elements": ">=0.0.1",
70
70
  "@xenosystem/elements-react": ">=0.0.1",
@@ -81,7 +81,7 @@
81
81
  "@types/react": "^19.0.0",
82
82
  "@types/react-dom": "^19.0.0",
83
83
  "@xenosystem/block-sdk": "^0.3.4",
84
- "@xenosystem/components": "^0.28.0",
84
+ "@xenosystem/components": "^0.28.1",
85
85
  "@xenosystem/data-core": "^0.1.0",
86
86
  "@xenosystem/elements": "0.0.1",
87
87
  "@xenosystem/elements-react": "0.0.1",