@atscript/vue-table 0.1.106 → 0.1.107

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.
Files changed (45) hide show
  1. package/dist/{as-filter-dialog-DAvF5KI7.cjs → as-filter-dialog-BBMHtQRx.cjs} +2 -2
  2. package/dist/{as-filter-dialog-QjVypqE9.mjs → as-filter-dialog-BFy5tg8o.mjs} +2 -2
  3. package/dist/as-filter-dialog.cjs +1 -1
  4. package/dist/as-filter-dialog.mjs +1 -1
  5. package/dist/{as-filter-field-c0T27ONN.cjs → as-filter-field-BRSNhFa5.cjs} +1 -1
  6. package/dist/{as-filter-field-BR32vGGD.mjs → as-filter-field-DiSwUOJG.mjs} +1 -1
  7. package/dist/as-filter-field.cjs +1 -1
  8. package/dist/as-filter-field.mjs +1 -1
  9. package/dist/{as-filters-DhJy2qGo.cjs → as-filters-B82jw5f5.cjs} +1 -1
  10. package/dist/{as-filters-5Qyru0V1.mjs → as-filters-N95wOVF4.mjs} +1 -1
  11. package/dist/as-filters.cjs +1 -1
  12. package/dist/as-filters.mjs +1 -1
  13. package/dist/{as-table-B7RnEB9N.mjs → as-table-Bo2dAWTD.mjs} +8 -1
  14. package/dist/{as-table-BqIeLNSt.cjs → as-table-MKVsJZxT.cjs} +8 -1
  15. package/dist/as-table-actions.d.cts +1 -1
  16. package/dist/as-table-actions.d.mts +1 -1
  17. package/dist/{as-table-actions.vue-33oeDXOg.d.cts → as-table-actions.vue-CCCICVBr.d.cts} +1 -1
  18. package/dist/{as-table-actions.vue-DMf6-R5o.d.mts → as-table-actions.vue-l3DnLVxA.d.mts} +1 -1
  19. package/dist/{as-table-base-ZW7lQ-Id.mjs → as-table-base-BxruWtW2.mjs} +22 -5
  20. package/dist/{as-table-base-Bx9cxbk4.cjs → as-table-base-D6VP4rrr.cjs} +22 -5
  21. package/dist/as-table-root.d.cts +1 -1
  22. package/dist/as-table-root.d.mts +1 -1
  23. package/dist/{as-table-root.vue-B52eHZRL.d.mts → as-table-root.vue-BjeThuub.d.mts} +4 -4
  24. package/dist/{as-table-root.vue-Cmk2Altf.d.cts → as-table-root.vue-BukHIoYu.d.cts} +4 -4
  25. package/dist/{as-table-status-Cs4G2sK3.mjs → as-table-status-4OaguC5n.mjs} +77 -4
  26. package/dist/{as-table-status-Bunm0FTz.cjs → as-table-status-Diyy3DFB.cjs} +82 -3
  27. package/dist/as-table.cjs +1 -1
  28. package/dist/as-table.d.cts +1 -1
  29. package/dist/as-table.d.mts +1 -1
  30. package/dist/as-table.mjs +1 -1
  31. package/dist/{as-table.vue-CBrxpL4X.d.cts → as-table.vue-CDPbZQRG.d.cts} +12 -4
  32. package/dist/{as-table.vue-WF12BUAO.d.mts → as-table.vue-DaVtNFIe.d.mts} +12 -4
  33. package/dist/{as-window-table-CqPCI_jD.mjs → as-window-table-BUrMxrbr.mjs} +137 -111
  34. package/dist/{as-window-table-C8eJc_FV.cjs → as-window-table-DtnaCKyR.cjs} +137 -111
  35. package/dist/as-window-table.cjs +1 -1
  36. package/dist/as-window-table.d.cts +1 -1
  37. package/dist/as-window-table.d.mts +1 -1
  38. package/dist/as-window-table.mjs +1 -1
  39. package/dist/{as-window-table.vue-Cs5RHe_j.d.cts → as-window-table.vue-DvzoPu-B.d.cts} +12 -4
  40. package/dist/{as-window-table.vue-BJExjL2G.d.mts → as-window-table.vue-Gs52IsYw.d.mts} +12 -4
  41. package/dist/index.cjs +5 -5
  42. package/dist/index.d.cts +4 -4
  43. package/dist/index.d.mts +4 -4
  44. package/dist/index.mjs +5 -5
  45. package/package.json +4 -4
@@ -47,27 +47,35 @@ type __VLS_Props = {
47
47
  * compose their own column layout.
48
48
  */
49
49
  rowActionsColumn?: "first" | "last" | "merge-select" | false;
50
+ /**
51
+ * Render without a header row. Omits `<thead>` entirely (not
52
+ * `display:none`); column widths are carried by the `<colgroup>`, so data
53
+ * columns keep their annotated/seeded widths. Header-driven interactions
54
+ * (sort/filter/reorder/resize) are unavailable in headless mode.
55
+ */
56
+ headless?: boolean;
50
57
  };
51
58
  declare var __VLS_21: string, __VLS_22: any, __VLS_24: {};
52
59
  type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_21>]?: (props: typeof __VLS_22) => any } & {
53
60
  'query-loading'?: (props: typeof __VLS_24) => any;
54
61
  };
55
62
  declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
63
+ "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
56
64
  "row-click": (row: Record<string, unknown>, event: MouseEvent) => any;
57
65
  "row-dblclick": (row: Record<string, unknown>, event: MouseEvent) => any;
58
- "main-action": (row: Record<string, unknown>, absIndex: number, event: KeyboardEvent | MouseEvent) => any;
59
66
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
67
+ "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
60
68
  "onRow-click"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
61
69
  "onRow-dblclick"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
62
- "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: KeyboardEvent | MouseEvent) => any) | undefined;
63
70
  }>, {
64
71
  select: SelectionMode;
65
- stickyHeader: boolean;
66
- virtualOverscan: number;
67
72
  reorderable: boolean;
68
73
  resizable: boolean;
69
74
  columnMinWidth: number;
70
75
  rowDelete: boolean | RowDeleteOpt;
76
+ headless: boolean;
77
+ stickyHeader: boolean;
78
+ virtualOverscan: number;
71
79
  rowActionsColumn: "first" | "last" | "merge-select" | false;
72
80
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
73
81
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -47,27 +47,35 @@ type __VLS_Props = {
47
47
  * compose their own column layout.
48
48
  */
49
49
  rowActionsColumn?: "first" | "last" | "merge-select" | false;
50
+ /**
51
+ * Render without a header row. Omits `<thead>` entirely (not
52
+ * `display:none`); column widths are carried by the `<colgroup>`, so data
53
+ * columns keep their annotated/seeded widths. Header-driven interactions
54
+ * (sort/filter/reorder/resize) are unavailable in headless mode.
55
+ */
56
+ headless?: boolean;
50
57
  };
51
58
  declare var __VLS_21: string, __VLS_22: any, __VLS_24: {};
52
59
  type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_21>]?: (props: typeof __VLS_22) => any } & {
53
60
  'query-loading'?: (props: typeof __VLS_24) => any;
54
61
  };
55
62
  declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
63
+ "main-action": (row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any;
56
64
  "row-click": (row: Record<string, unknown>, event: MouseEvent) => any;
57
65
  "row-dblclick": (row: Record<string, unknown>, event: MouseEvent) => any;
58
- "main-action": (row: Record<string, unknown>, absIndex: number, event: KeyboardEvent | MouseEvent) => any;
59
66
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
67
+ "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: MouseEvent | KeyboardEvent) => any) | undefined;
60
68
  "onRow-click"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
61
69
  "onRow-dblclick"?: ((row: Record<string, unknown>, event: MouseEvent) => any) | undefined;
62
- "onMain-action"?: ((row: Record<string, unknown>, absIndex: number, event: KeyboardEvent | MouseEvent) => any) | undefined;
63
70
  }>, {
64
71
  select: SelectionMode;
65
- stickyHeader: boolean;
66
- virtualOverscan: number;
67
72
  reorderable: boolean;
68
73
  resizable: boolean;
69
74
  columnMinWidth: number;
70
75
  rowDelete: boolean | RowDeleteOpt;
76
+ headless: boolean;
77
+ stickyHeader: boolean;
78
+ virtualOverscan: number;
71
79
  rowActionsColumn: "first" | "last" | "merge-select" | false;
72
80
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
73
81
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -2,7 +2,7 @@ import { a as useTableContext, i as useRegisterMainActionListener } from "./use-
2
2
  import { t as useSelectModeReset } from "./use-table-selection-C84z4OZy.mjs";
3
3
  import { t as useHasEmitListener } from "./use-has-emit-listener-BTMDIv2e.mjs";
4
4
  import { t as getCellValue } from "./get-cell-value-C8LLc_Rr.mjs";
5
- import { a as useCellResolver, i as useCellComponents, n as as_table_header_default, r as useRafBatch, t as as_table_status_default } from "./as-table-status-Cs4G2sK3.mjs";
5
+ import { a as useCellComponents, i as useRafBatch, n as as_table_header_default, o as useCellResolver, r as as_table_colgroup_default, t as as_table_status_default } from "./as-table-status-4OaguC5n.mjs";
6
6
  import { t as useTableColumnHandlers } from "./use-table-column-handlers-CpiiIniD.mjs";
7
7
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, guardReactiveProps, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, unref, useSlots, watch, withCtx, withModifiers } from "vue";
8
8
  import { DEFAULT_ROW_HEIGHT_PX, clampTopIndex, filledFilterCount } from "@atscript/ui-table";
@@ -236,6 +236,11 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
236
236
  enterAction: {
237
237
  type: String,
238
238
  required: false
239
+ },
240
+ headless: {
241
+ type: Boolean,
242
+ required: false,
243
+ default: false
239
244
  }
240
245
  },
241
246
  emits: [
@@ -412,125 +417,139 @@ var as_window_table_base_default = /* @__PURE__ */ defineComponent({
412
417
  role: "grid",
413
418
  "aria-rowcount": unref(state).totalCount.value + 1,
414
419
  "aria-multiselectable": __props.select === "multi" ? "true" : void 0
415
- }, [createVNode(as_table_header_default, {
416
- columns: unref(state).columns.value,
417
- sorters: unref(state).sorters.value,
418
- filters: unref(state).filters.value,
419
- "column-menu": __props.columnMenu,
420
- "column-widths": unref(state).columnWidths.value,
421
- reorderable: __props.reorderable,
422
- resizable: __props.resizable,
423
- "column-min-width": __props.columnMinWidth,
424
- "has-select-column": hasValue.value,
425
- "select-all-state": selectAllState.value,
426
- "with-filler": true,
427
- "enable-auto-fit": true,
428
- "aria-rowindex": 1,
429
- onSort: unref(onSort),
430
- onHide: unref(onHide),
431
- onFilter: unref(onFilter),
432
- onFiltersOff: unref(onFiltersOff),
433
- onResetWidth: unref(onResetWidth),
434
- onReorder: unref(onReorder),
435
- onResize: unref(state).setColumnWidth,
436
- onSelectAllToggle
437
- }, createSlots({ _: 2 }, [renderList(unref(state).columns.value, (col) => {
438
- return {
439
- name: `header-${col.path}`,
440
- fn: withCtx((scope) => [renderSlot(_ctx.$slots, `header-${col.path}`, normalizeProps(guardReactiveProps(scope)))])
441
- };
442
- })]), 1032, [
443
- "columns",
444
- "sorters",
445
- "filters",
446
- "column-menu",
447
- "column-widths",
448
- "reorderable",
449
- "resizable",
450
- "column-min-width",
451
- "has-select-column",
452
- "select-all-state",
453
- "onSort",
454
- "onHide",
455
- "onFilter",
456
- "onFiltersOff",
457
- "onResetWidth",
458
- "onReorder",
459
- "onResize"
460
- ]), createElementVNode("tbody", {
461
- ref_key: "poolRef",
462
- ref: poolRef,
463
- class: "as-window-row-pool",
464
- tabindex: "0",
465
- "aria-activedescendant": unref(state).activeIndex.value >= 0 ? unref(state).rowId(unref(state).activeIndex.value) : "",
466
- onWheel,
467
- onKeydown,
468
- onTouchstart: onTouchStart,
469
- onTouchmove: withModifiers(onTouchMove, ["prevent"]),
470
- onTouchend: onTouchEnd
471
- }, [(openBlock(true), createElementBlock(Fragment, null, renderList(visibleSlots.value, (slot) => {
472
- return openBlock(), createElementBlock(Fragment, { key: `slot-${slot.s}` }, [slot.row !== void 0 ? (openBlock(), createElementBlock("tr", {
420
+ }, [
421
+ createVNode(as_table_colgroup_default, {
422
+ columns: unref(state).columns.value,
423
+ "column-widths": unref(state).columnWidths.value,
424
+ "has-select": hasValue.value,
425
+ "with-filler": true
426
+ }, null, 8, [
427
+ "columns",
428
+ "column-widths",
429
+ "has-select"
430
+ ]),
431
+ !__props.headless ? (openBlock(), createBlock(as_table_header_default, {
473
432
  key: 0,
474
- id: unref(state).rowId(unref(state).topIndex.value + slot.s),
475
- class: normalizeClass(["as-window-data-row", { "as-table-row-active": unref(state).activeIndex.value === unref(state).topIndex.value + slot.s }]),
476
- role: "row",
477
- "aria-rowindex": unref(state).topIndex.value + slot.s + 2,
478
- "aria-selected": slot.ariaSelected,
479
- style: normalizeStyle(rowStyle.value),
480
- onClick: ($event) => onRowClick(slot.row, $event, unref(state).topIndex.value + slot.s),
481
- onDblclick: ($event) => onRowDblClick(slot.row, $event, unref(state).topIndex.value + slot.s)
482
- }, [
483
- hasValue.value ? (openBlock(), createElementBlock("td", _hoisted_5, [createElementVNode("span", {
484
- class: normalizeClass(["as-table-checkbox", { "as-table-checkbox-checked": slot.selected }]),
485
- role: "checkbox",
486
- tabindex: "0",
487
- "aria-checked": slot.selected ? "true" : "false"
488
- }, [slot.selected ? (openBlock(), createElementBlock("span", _hoisted_7)) : createCommentVNode("v-if", true)], 10, _hoisted_6)])) : createCommentVNode("v-if", true),
489
- unref(hasAnyCellBindings) ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(unref(state).columns.value, (col) => {
490
- return openBlock(), createElementBlock(Fragment, { key: col.path }, [(openBlock(true), createElementBlock(Fragment, null, renderList([unref(cellResolver)(col, slot.row, unref(state).topIndex.value + slot.s)], (bindings) => {
491
- return openBlock(), createElementBlock(Fragment, { key: 0 }, [cellSlotFlags.value[col.path] ? (openBlock(), createElementBlock("td", mergeProps({
492
- key: 0,
493
- role: "gridcell"
494
- }, { ref_for: true }, bindings), [renderSlot(_ctx.$slots, `cell-${col.path}`, {
433
+ columns: unref(state).columns.value,
434
+ sorters: unref(state).sorters.value,
435
+ filters: unref(state).filters.value,
436
+ "column-menu": __props.columnMenu,
437
+ "column-widths": unref(state).columnWidths.value,
438
+ reorderable: __props.reorderable,
439
+ resizable: __props.resizable,
440
+ "column-min-width": __props.columnMinWidth,
441
+ "has-select-column": hasValue.value,
442
+ "select-all-state": selectAllState.value,
443
+ "with-filler": true,
444
+ "enable-auto-fit": true,
445
+ "aria-rowindex": 1,
446
+ onSort: unref(onSort),
447
+ onHide: unref(onHide),
448
+ onFilter: unref(onFilter),
449
+ onFiltersOff: unref(onFiltersOff),
450
+ onResetWidth: unref(onResetWidth),
451
+ onReorder: unref(onReorder),
452
+ onResize: unref(state).setColumnWidth,
453
+ onSelectAllToggle
454
+ }, createSlots({ _: 2 }, [renderList(unref(state).columns.value, (col) => {
455
+ return {
456
+ name: `header-${col.path}`,
457
+ fn: withCtx((scope) => [renderSlot(_ctx.$slots, `header-${col.path}`, normalizeProps(guardReactiveProps(scope)))])
458
+ };
459
+ })]), 1032, [
460
+ "columns",
461
+ "sorters",
462
+ "filters",
463
+ "column-menu",
464
+ "column-widths",
465
+ "reorderable",
466
+ "resizable",
467
+ "column-min-width",
468
+ "has-select-column",
469
+ "select-all-state",
470
+ "onSort",
471
+ "onHide",
472
+ "onFilter",
473
+ "onFiltersOff",
474
+ "onResetWidth",
475
+ "onReorder",
476
+ "onResize"
477
+ ])) : createCommentVNode("v-if", true),
478
+ createElementVNode("tbody", {
479
+ ref_key: "poolRef",
480
+ ref: poolRef,
481
+ class: "as-window-row-pool",
482
+ tabindex: "0",
483
+ "aria-activedescendant": unref(state).activeIndex.value >= 0 ? unref(state).rowId(unref(state).activeIndex.value) : "",
484
+ onWheel,
485
+ onKeydown,
486
+ onTouchstart: onTouchStart,
487
+ onTouchmove: withModifiers(onTouchMove, ["prevent"]),
488
+ onTouchend: onTouchEnd
489
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(visibleSlots.value, (slot) => {
490
+ return openBlock(), createElementBlock(Fragment, { key: `slot-${slot.s}` }, [slot.row !== void 0 ? (openBlock(), createElementBlock("tr", {
491
+ key: 0,
492
+ id: unref(state).rowId(unref(state).topIndex.value + slot.s),
493
+ class: normalizeClass(["as-window-data-row", { "as-table-row-active": unref(state).activeIndex.value === unref(state).topIndex.value + slot.s }]),
494
+ role: "row",
495
+ "aria-rowindex": unref(state).topIndex.value + slot.s + 2,
496
+ "aria-selected": slot.ariaSelected,
497
+ style: normalizeStyle(rowStyle.value),
498
+ onClick: ($event) => onRowClick(slot.row, $event, unref(state).topIndex.value + slot.s),
499
+ onDblclick: ($event) => onRowDblClick(slot.row, $event, unref(state).topIndex.value + slot.s)
500
+ }, [
501
+ hasValue.value ? (openBlock(), createElementBlock("td", _hoisted_5, [createElementVNode("span", {
502
+ class: normalizeClass(["as-table-checkbox", { "as-table-checkbox-checked": slot.selected }]),
503
+ role: "checkbox",
504
+ tabindex: "0",
505
+ "aria-checked": slot.selected ? "true" : "false"
506
+ }, [slot.selected ? (openBlock(), createElementBlock("span", _hoisted_7)) : createCommentVNode("v-if", true)], 10, _hoisted_6)])) : createCommentVNode("v-if", true),
507
+ unref(hasAnyCellBindings) ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(unref(state).columns.value, (col) => {
508
+ return openBlock(), createElementBlock(Fragment, { key: col.path }, [(openBlock(true), createElementBlock(Fragment, null, renderList([unref(cellResolver)(col, slot.row, unref(state).topIndex.value + slot.s)], (bindings) => {
509
+ return openBlock(), createElementBlock(Fragment, { key: 0 }, [cellSlotFlags.value[col.path] ? (openBlock(), createElementBlock("td", mergeProps({
510
+ key: 0,
511
+ role: "gridcell"
512
+ }, { ref_for: true }, bindings), [renderSlot(_ctx.$slots, `cell-${col.path}`, {
513
+ row: slot.row,
514
+ value: unref(getCellValue)(slot.row, col.path),
515
+ column: col
516
+ })], 16)) : (openBlock(), createBlock(resolveDynamicComponent(unref(cellComponents)[col.path]), mergeProps({
517
+ key: 1,
518
+ row: slot.row,
519
+ column: col,
520
+ role: "gridcell"
521
+ }, { ref_for: true }, bindings), null, 16, ["row", "column"]))], 64);
522
+ }), 128))], 64);
523
+ }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 2 }, renderList(unref(state).columns.value, (col) => {
524
+ return openBlock(), createElementBlock(Fragment, { key: col.path }, [cellSlotFlags.value[col.path] ? (openBlock(), createElementBlock("td", _hoisted_8, [renderSlot(_ctx.$slots, `cell-${col.path}`, {
495
525
  row: slot.row,
496
526
  value: unref(getCellValue)(slot.row, col.path),
497
527
  column: col
498
- })], 16)) : (openBlock(), createBlock(resolveDynamicComponent(unref(cellComponents)[col.path]), mergeProps({
528
+ })])) : (openBlock(), createBlock(resolveDynamicComponent(unref(cellComponents)[col.path]), {
499
529
  key: 1,
500
530
  row: slot.row,
501
531
  column: col,
502
532
  role: "gridcell"
503
- }, { ref_for: true }, bindings), null, 16, ["row", "column"]))], 64);
504
- }), 128))], 64);
505
- }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 2 }, renderList(unref(state).columns.value, (col) => {
506
- return openBlock(), createElementBlock(Fragment, { key: col.path }, [cellSlotFlags.value[col.path] ? (openBlock(), createElementBlock("td", _hoisted_8, [renderSlot(_ctx.$slots, `cell-${col.path}`, {
507
- row: slot.row,
508
- value: unref(getCellValue)(slot.row, col.path),
509
- column: col
510
- })])) : (openBlock(), createBlock(resolveDynamicComponent(unref(cellComponents)[col.path]), {
511
- key: 1,
512
- row: slot.row,
513
- column: col,
533
+ }, null, 8, ["row", "column"]))], 64);
534
+ }), 128)),
535
+ _cache[1] || (_cache[1] = createElementVNode("td", {
536
+ class: "as-td-filler",
514
537
  role: "gridcell"
515
- }, null, 8, ["row", "column"]))], 64);
516
- }), 128)),
517
- _cache[1] || (_cache[1] = createElementVNode("td", {
518
- class: "as-td-filler",
519
- role: "gridcell"
520
- }, null, -1))
521
- ], 46, _hoisted_4)) : (openBlock(), createBlock(as_window_skeleton_row_default, {
522
- key: 1,
523
- columns: unref(state).columns.value,
524
- "row-height": __props.rowHeight,
525
- "has-select": hasValue.value,
526
- errored: slot.errored
527
- }, null, 8, [
528
- "columns",
529
- "row-height",
530
- "has-select",
531
- "errored"
532
- ]))], 64);
533
- }), 128))], 40, _hoisted_3)], 8, _hoisted_2),
538
+ }, null, -1))
539
+ ], 46, _hoisted_4)) : (openBlock(), createBlock(as_window_skeleton_row_default, {
540
+ key: 1,
541
+ columns: unref(state).columns.value,
542
+ "row-height": __props.rowHeight,
543
+ "has-select": hasValue.value,
544
+ errored: slot.errored
545
+ }, null, 8, [
546
+ "columns",
547
+ "row-height",
548
+ "has-select",
549
+ "errored"
550
+ ]))], 64);
551
+ }), 128))], 40, _hoisted_3)
552
+ ], 8, _hoisted_2),
534
553
  createCommentVNode(" Error / empty placeholders render INSIDE the wrapper so they cover\n the empty pool body when there's nothing to show; suppressed during\n a `querying` refresh because the full-table overlay covers that case. "),
535
554
  createVNode(as_table_status_default, {
536
555
  "query-error": unref(state).queryError.value,
@@ -633,6 +652,11 @@ var as_window_table_default = /* @__PURE__ */ defineComponent({
633
652
  type: [Boolean, Object],
634
653
  required: false,
635
654
  default: false
655
+ },
656
+ headless: {
657
+ type: Boolean,
658
+ required: false,
659
+ default: false
636
660
  }
637
661
  },
638
662
  emits: [
@@ -682,6 +706,7 @@ var as_window_table_default = /* @__PURE__ */ defineComponent({
682
706
  resizable: __props.resizable,
683
707
  "column-min-width": __props.columnMinWidth,
684
708
  select: __props.select,
709
+ headless: __props.headless,
685
710
  "enter-action": __props.enterAction,
686
711
  onRowClick: _cache[0] || (_cache[0] = (row, ev) => emit("row-click", row, ev)),
687
712
  onRowDblclick: _cache[1] || (_cache[1] = (row, ev) => emit("row-dblclick", row, ev)),
@@ -699,6 +724,7 @@ var as_window_table_default = /* @__PURE__ */ defineComponent({
699
724
  "resizable",
700
725
  "column-min-width",
701
726
  "select",
727
+ "headless",
702
728
  "enter-action"
703
729
  ]), unref(state).querying.value ? (openBlock(), createElementBlock("div", _hoisted_1, [renderSlot(_ctx.$slots, "query-loading", {}, () => [_cache[2] || (_cache[2] = createElementVNode("span", {
704
730
  class: "as-table-query-overlay-icon",