@atscript/vue-table 0.1.132 → 0.1.134

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 (163) hide show
  1. package/dist/as-action-form-dialog.cjs +42 -30
  2. package/dist/as-action-form-dialog.mjs +42 -30
  3. package/dist/{as-action-menu-content-C5qx9MPE.cjs → as-action-menu-content-C_D_Fepo.cjs} +1 -1
  4. package/dist/{as-action-menu-content-4UfcabUe.mjs → as-action-menu-content-rim8hAO9.mjs} +1 -1
  5. package/dist/{as-cell-array-2qmJ1lT2.mjs → as-cell-array-BWHkJX3I.mjs} +2 -2
  6. package/dist/{as-cell-array-iPeUnk2G.cjs → as-cell-array-D-8Pqlgo.cjs} +2 -2
  7. package/dist/as-cell-array.cjs +1 -1
  8. package/dist/as-cell-array.mjs +1 -1
  9. package/dist/{as-cell-date-DyixWKuS.cjs → as-cell-date-DviMJEqs.cjs} +2 -2
  10. package/dist/{as-cell-date-BwFgi6O0.mjs → as-cell-date-mGlnDeLP.mjs} +2 -2
  11. package/dist/as-cell-date.cjs +1 -1
  12. package/dist/as-cell-date.mjs +1 -1
  13. package/dist/{as-cell-json--95Xq6yq.mjs → as-cell-json-2I081xnO.mjs} +2 -2
  14. package/dist/{as-cell-json-Bvv2P7YV.cjs → as-cell-json-CaVB6e7V.cjs} +2 -2
  15. package/dist/as-cell-json.cjs +1 -1
  16. package/dist/as-cell-json.mjs +1 -1
  17. package/dist/{as-cell-number-DuPMOesI.cjs → as-cell-number-BnYbxOiG.cjs} +2 -2
  18. package/dist/{as-cell-number-DKRaS9pM.mjs → as-cell-number-CP2AZI9g.mjs} +2 -2
  19. package/dist/as-cell-number.cjs +1 -1
  20. package/dist/as-cell-number.mjs +1 -1
  21. package/dist/{as-cell-union-DJNsEKTi.cjs → as-cell-union-BjMP91PS.cjs} +3 -3
  22. package/dist/{as-cell-union-C9FukGqF.mjs → as-cell-union-NHpDCXty.mjs} +3 -3
  23. package/dist/as-cell-union.cjs +1 -1
  24. package/dist/as-cell-union.mjs +1 -1
  25. package/dist/as-column-menu.cjs +1 -1
  26. package/dist/as-column-menu.d.cts +1 -1
  27. package/dist/as-column-menu.d.mts +1 -1
  28. package/dist/as-column-menu.mjs +1 -1
  29. package/dist/{as-column-menu.vue-u_DNy3f-.d.cts → as-column-menu.vue-De7SRhj6.d.cts} +1 -1
  30. package/dist/{as-column-menu.vue-DL5N9mKR.d.mts → as-column-menu.vue-Dg0H1dOd.d.mts} +1 -1
  31. package/dist/{as-config-dialog-BehfqIGd.mjs → as-config-dialog-BUBHiVlf.mjs} +56 -35
  32. package/dist/{as-config-dialog-BOYWPYYH.cjs → as-config-dialog-DvBptYMS.cjs} +55 -34
  33. package/dist/as-config-dialog.cjs +1 -1
  34. package/dist/as-config-dialog.mjs +1 -1
  35. package/dist/{as-confirm-dialog-UwhDHysk.cjs → as-confirm-dialog-ByMfIG0A.cjs} +12 -9
  36. package/dist/{as-confirm-dialog-bpN4A-KN.mjs → as-confirm-dialog-G4ZoL_Xo.mjs} +12 -9
  37. package/dist/as-confirm-dialog.cjs +1 -1
  38. package/dist/as-confirm-dialog.mjs +1 -1
  39. package/dist/{as-filter-dialog-D1qzq-8b.mjs → as-filter-dialog-BJWH8cvc.mjs} +34 -26
  40. package/dist/{as-filter-dialog-Dh2Ylthb.cjs → as-filter-dialog-C2oyT0yt.cjs} +33 -25
  41. package/dist/as-filter-dialog.cjs +1 -1
  42. package/dist/as-filter-dialog.mjs +1 -1
  43. package/dist/{as-filter-field-DirBmnbb.mjs → as-filter-field-B2skq4K0.mjs} +4 -4
  44. package/dist/{as-filter-field-DRsDJdpx.cjs → as-filter-field-DxGfasQj.cjs} +4 -4
  45. package/dist/as-filter-field.cjs +1 -1
  46. package/dist/as-filter-field.mjs +1 -1
  47. package/dist/as-filter-input.cjs +1 -1
  48. package/dist/as-filter-input.mjs +1 -1
  49. package/dist/as-filters-Bhte22La.cjs +130 -0
  50. package/dist/as-filters-DogNVlqr.mjs +125 -0
  51. package/dist/as-filters.cjs +1 -1
  52. package/dist/as-filters.d.cts +1 -1
  53. package/dist/as-filters.d.mts +1 -1
  54. package/dist/as-filters.mjs +1 -1
  55. package/dist/as-filters.vue-BG_ysCkC.d.mts +65 -0
  56. package/dist/as-filters.vue-DcxDnWAU.d.cts +65 -0
  57. package/dist/{as-preset-dialog-CDqCAR7N.mjs → as-preset-dialog-BwHV6Y77.mjs} +71 -21
  58. package/dist/{as-preset-dialog-DpM06jqR.cjs → as-preset-dialog-D2a6nxEX.cjs} +75 -25
  59. package/dist/as-preset-dialog.cjs +1 -1
  60. package/dist/as-preset-dialog.mjs +1 -1
  61. package/dist/{as-preset-picker-CISaxEZ0.mjs → as-preset-picker-B0JnyAPA.mjs} +39 -15
  62. package/dist/{as-preset-picker-jUS_YDX8.cjs → as-preset-picker-DbkmapBx.cjs} +45 -21
  63. package/dist/as-preset-picker.cjs +1 -1
  64. package/dist/as-preset-picker.mjs +1 -1
  65. package/dist/{as-row-actions-xqJeAdQl.mjs → as-row-actions-BkIsJVBm.mjs} +24 -11
  66. package/dist/{as-row-actions-Bm6Bzyno.cjs → as-row-actions-CRg8LHGk.cjs} +24 -11
  67. package/dist/as-row-actions.cjs +1 -1
  68. package/dist/as-row-actions.d.cts +1 -1
  69. package/dist/as-row-actions.d.mts +1 -1
  70. package/dist/as-row-actions.mjs +1 -1
  71. package/dist/{as-row-actions.vue-Bvcc2tUN.d.cts → as-row-actions.vue-VpJsBAJ4.d.mts} +8 -0
  72. package/dist/{as-row-actions.vue-DUSDuoR2.d.mts → as-row-actions.vue-dn_DKcMm.d.cts} +8 -0
  73. package/dist/{as-table-CDSG2yED.mjs → as-table-BEvsX87E.mjs} +26 -8
  74. package/dist/{as-table-actions-DMxeaczm.mjs → as-table-actions-B5upF1bQ.mjs} +69 -18
  75. package/dist/{as-table-actions-gV4lqqxc.cjs → as-table-actions-B6sKd4sl.cjs} +68 -17
  76. package/dist/as-table-actions.cjs +1 -1
  77. package/dist/as-table-actions.d.cts +1 -1
  78. package/dist/as-table-actions.d.mts +1 -1
  79. package/dist/as-table-actions.mjs +1 -1
  80. package/dist/{as-table-actions.vue-B-cgiCXP.d.cts → as-table-actions.vue-CoxhpIlJ.d.mts} +2 -2
  81. package/dist/{as-table-actions.vue-ClMa0OD1.d.mts → as-table-actions.vue-Kic8m28V.d.cts} +2 -2
  82. package/dist/{as-table-base-BaTE3VSN.mjs → as-table-base-BxKBdIdS.mjs} +142 -47
  83. package/dist/{as-table-base-RG2TEIgV.cjs → as-table-base-DLuhKz69.cjs} +142 -47
  84. package/dist/{as-table-cell-value-D1JkTQt0.cjs → as-table-cell-value-BAi5yadc.cjs} +2 -2
  85. package/dist/{as-table-cell-value-CPcFxSOj.mjs → as-table-cell-value-BVcfhhCb.mjs} +2 -2
  86. package/dist/as-table-cell-value.cjs +1 -1
  87. package/dist/as-table-cell-value.mjs +1 -1
  88. package/dist/{as-table-header-cell-CIqlO6Lw.cjs → as-table-header-cell-Bv6q5iKA.cjs} +2 -2
  89. package/dist/{as-table-header-cell-Bdhl5Lox.mjs → as-table-header-cell-Xd3cvnII.mjs} +2 -2
  90. package/dist/as-table-header-cell.cjs +1 -1
  91. package/dist/as-table-header-cell.d.cts +1 -1
  92. package/dist/as-table-header-cell.d.mts +1 -1
  93. package/dist/as-table-header-cell.mjs +1 -1
  94. package/dist/{as-table-header-cell.vue-BCszzxtU.d.mts → as-table-header-cell.vue-AS6u4e6v.d.cts} +2 -2
  95. package/dist/{as-table-header-cell.vue-BzTzfGRo.d.cts → as-table-header-cell.vue-zKOmlzhT.d.mts} +2 -2
  96. package/dist/{as-table-root-BLReUbRH.mjs → as-table-root-C1A6JkwL.mjs} +112 -10
  97. package/dist/{as-table-root-DLJ_3Jf4.cjs → as-table-root-DlYjnZax.cjs} +112 -10
  98. package/dist/as-table-root.cjs +1 -1
  99. package/dist/as-table-root.d.cts +1 -1
  100. package/dist/as-table-root.d.mts +1 -1
  101. package/dist/as-table-root.mjs +1 -1
  102. package/dist/{as-table-root.vue-QMT93qPk.d.mts → as-table-root.vue-CWk9YgpG.d.mts} +257 -41
  103. package/dist/{as-table-root.vue-D0T3n-Vm.d.cts → as-table-root.vue-D94eypcL.d.cts} +258 -42
  104. package/dist/{as-table-status-Du4WLF4k.cjs → as-table-status-B2HPerJT.cjs} +54 -38
  105. package/dist/{as-table-status-DGTZlpyq.mjs → as-table-status-QzlBdSiR.mjs} +54 -38
  106. package/dist/{as-table-BWUPzjRn.cjs → as-table-vJbZyZVx.cjs} +26 -8
  107. package/dist/as-table.cjs +1 -1
  108. package/dist/as-table.d.cts +1 -1
  109. package/dist/as-table.d.mts +1 -1
  110. package/dist/as-table.mjs +1 -1
  111. package/dist/{as-table.vue-Ds7MEp37.d.cts → as-table.vue-BB1vaNL6.d.cts} +28 -4
  112. package/dist/{as-table.vue-Ce5606ZO.d.mts → as-table.vue-BUDFTCpo.d.mts} +28 -4
  113. package/dist/{as-window-table-DWujiUQy.mjs → as-window-table-BH0tDDnr.mjs} +107 -24
  114. package/dist/{as-window-table-jD_y9yet.cjs → as-window-table-Bl_q72WL.cjs} +107 -24
  115. package/dist/as-window-table.cjs +1 -1
  116. package/dist/as-window-table.d.cts +1 -1
  117. package/dist/as-window-table.d.mts +1 -1
  118. package/dist/as-window-table.mjs +1 -1
  119. package/dist/{as-window-table.vue-DfZF1Mux.d.mts → as-window-table.vue-Be2IA0Eb.d.cts} +27 -4
  120. package/dist/{as-window-table.vue-Bhf9BK8E.d.cts → as-window-table.vue-CLqFM2ff.d.mts} +27 -4
  121. package/dist/error-message-CfKpn_5w.cjs +18 -0
  122. package/dist/error-message-gNEXnnbb.mjs +13 -0
  123. package/dist/index.cjs +237 -41
  124. package/dist/index.d.cts +10 -10
  125. package/dist/index.d.mts +10 -10
  126. package/dist/index.mjs +230 -43
  127. package/dist/{types-ByU4O0Yf.d.mts → types--ex8BJIO.d.cts} +263 -5
  128. package/dist/{types-CTMxE_zA.d.cts → types-CBGaTR2Z.d.mts} +263 -5
  129. package/dist/{use-table-CyFcVtUN.mjs → use-table-BFhbfWgY.mjs} +48 -23
  130. package/dist/{use-table-component-K6xj1obF.mjs → use-table-component-CRmLHdqi.mjs} +1 -1
  131. package/dist/{use-table-component-DO_kvKSf.cjs → use-table-component-DS5NJPzs.cjs} +1 -1
  132. package/dist/{use-table-nav-bridge-uOQUDooh.cjs → use-table-nav-bridge-DS14D_rG.cjs} +1 -1
  133. package/dist/{use-table-nav-bridge-DeGeaQX-.mjs → use-table-nav-bridge-DzJN5v9a.mjs} +1 -1
  134. package/dist/{use-table-nvBq1dZ4.cjs → use-table-nvuZdgUd.cjs} +51 -20
  135. package/dist/{use-table-state-BxX3SpeW.mjs → use-table-state-mBXx11aH.mjs} +501 -105
  136. package/dist/{use-table-state-Oi2ds4_a.cjs → use-table-state-mhm-YWnu.cjs} +541 -109
  137. package/package.json +9 -9
  138. package/dist/as-filters-DCZTHjf5.cjs +0 -51
  139. package/dist/as-filters-beIud9sF.mjs +0 -46
  140. package/dist/as-filters.vue-DmECMd1v.d.mts +0 -10
  141. package/dist/as-filters.vue-fv-tRL2H.d.cts +0 -10
  142. package/dist/preset-aspect-display-IICxAlVo.mjs +0 -43
  143. package/dist/preset-aspect-display-TWwf6j1B.cjs +0 -72
  144. /package/dist/{as-cell-json-popover-Dkdv5Y9E.mjs → as-cell-json-popover-CH5bAcLE.mjs} +0 -0
  145. /package/dist/{as-cell-json-popover-BM2QLgfk.cjs → as-cell-json-popover-vty5vMjW.cjs} +0 -0
  146. /package/dist/{as-column-menu-kTIQfLTi.mjs → as-column-menu-BMTS3DO2.mjs} +0 -0
  147. /package/dist/{as-column-menu-fZVbJ9lU.cjs → as-column-menu-D_8NxujZ.cjs} +0 -0
  148. /package/dist/{as-filter-input-BM23TNeh.mjs → as-filter-input-C8KmOus8.mjs} +0 -0
  149. /package/dist/{as-filter-input-DJu2k9gO.cjs → as-filter-input-DUqpkTkg.cjs} +0 -0
  150. /package/dist/{format-cell-D1Ziv96Q.mjs → format-cell-Bx7wNc4X.mjs} +0 -0
  151. /package/dist/{format-cell-vCNTh4WZ.cjs → format-cell-DaxV6WIJ.cjs} +0 -0
  152. /package/dist/{get-cell-value-4rHKP-TG.cjs → get-cell-value-CJT4fk4y.cjs} +0 -0
  153. /package/dist/{get-cell-value-C8LLc_Rr.mjs → get-cell-value-Cb3X8nUn.mjs} +0 -0
  154. /package/dist/{use-cell-locale-MQXoONh5.mjs → use-cell-locale-CxQOQsns.mjs} +0 -0
  155. /package/dist/{use-cell-locale-BGBRQB7s.cjs → use-cell-locale-caG2Fzpc.cjs} +0 -0
  156. /package/dist/{use-has-emit-listener-hhOH8CBI.cjs → use-has-emit-listener-BaGFZDyM.cjs} +0 -0
  157. /package/dist/{use-has-emit-listener-BTMDIv2e.mjs → use-has-emit-listener-DrBbsLHQ.mjs} +0 -0
  158. /package/dist/{use-seed-on-open-Dg9I89fU.cjs → use-seed-on-open-9TSm1Vbv.cjs} +0 -0
  159. /package/dist/{use-seed-on-open-DO3A1kIb.mjs → use-seed-on-open-DSh4XFyp.mjs} +0 -0
  160. /package/dist/{use-table-column-handlers-ehreEzcx.cjs → use-table-column-handlers-BMrP0WY2.cjs} +0 -0
  161. /package/dist/{use-table-column-handlers-CpiiIniD.mjs → use-table-column-handlers-Bx3JERqs.mjs} +0 -0
  162. /package/dist/{use-table-selection-Cmiu1h4S.cjs → use-table-selection-DtCV3rhu.cjs} +0 -0
  163. /package/dist/{use-table-selection-C84z4OZy.mjs → use-table-selection-ULbKT2xW.mjs} +0 -0
@@ -1,9 +1,9 @@
1
- import { a as useTableContext } from "./use-table-state-BxX3SpeW.mjs";
2
- import { t as useTableComponent } from "./use-table-component-K6xj1obF.mjs";
3
- import { t as useSeedOnOpen } from "./use-seed-on-open-DO3A1kIb.mjs";
1
+ import { a as useTableContext } from "./use-table-state-mBXx11aH.mjs";
2
+ import { t as useTableComponent } from "./use-table-component-CRmLHdqi.mjs";
3
+ import { t as useSeedOnOpen } from "./use-seed-on-open-DSh4XFyp.mjs";
4
4
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, nextTick, normalizeClass, normalizeProps, openBlock, reactive, ref, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, unref, useModel, vModelText, watch, withCtx, withDirectives, withModifiers } from "vue";
5
5
  import { arraysEqual, sortersEqual } from "@atscript/ui-table";
6
- import { DialogClose, DialogContent, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, ListboxContent, ListboxFilter, ListboxItem, ListboxItemIndicator, ListboxRoot, TabsContent, TabsList, TabsRoot, TabsTrigger } from "reka-ui";
6
+ import { DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, ListboxContent, ListboxFilter, ListboxItem, ListboxItemIndicator, ListboxRoot, TabsContent, TabsList, TabsRoot, TabsTrigger } from "reka-ui";
7
7
  //#region src/composables/use-dialog-tab-keyboard.ts
8
8
  /**
9
9
  * Cmd/Ctrl+digit tab switching for dialogs. Owns the keyboard-handler logic
@@ -476,16 +476,22 @@ const _hoisted_1 = { class: "as-config-dialog-header" };
476
476
  const _hoisted_2 = { class: "as-config-field-label-wrap" };
477
477
  const _hoisted_3 = { class: "as-config-field-label-text" };
478
478
  const _hoisted_4 = {
479
+ key: 0,
480
+ class: "as-config-field-hint"
481
+ };
482
+ const _hoisted_5 = { class: "as-config-field-label-wrap" };
483
+ const _hoisted_6 = { class: "as-config-field-label-text" };
484
+ const _hoisted_7 = {
479
485
  key: 0,
480
486
  class: "as-config-field-count"
481
487
  };
482
- const _hoisted_5 = { class: "as-config-tab-summary" };
483
- const _hoisted_6 = { class: "as-config-tab-summary-count" };
484
- const _hoisted_7 = { class: "as-config-tab-summary-count-num" };
485
- const _hoisted_8 = { class: "as-config-tab-summary-count-num" };
486
- const _hoisted_9 = { class: "as-config-tab-summary-count-num" };
487
- const _hoisted_10 = { class: "as-config-tab-summary-hint" };
488
- const _hoisted_11 = { class: "as-config-dialog-footer" };
488
+ const _hoisted_8 = { class: "as-config-tab-summary" };
489
+ const _hoisted_9 = { class: "as-config-tab-summary-count" };
490
+ const _hoisted_10 = { class: "as-config-tab-summary-count-num" };
491
+ const _hoisted_11 = { class: "as-config-tab-summary-count-num" };
492
+ const _hoisted_12 = { class: "as-config-tab-summary-count-num" };
493
+ const _hoisted_13 = { class: "as-config-tab-summary-hint" };
494
+ const _hoisted_14 = { class: "as-config-dialog-footer" };
489
495
  //#endregion
490
496
  //#region src/components/defaults/as-config-dialog.vue
491
497
  var as_config_dialog_default = /* @__PURE__ */ defineComponent({
@@ -515,7 +521,7 @@ var as_config_dialog_default = /* @__PURE__ */ defineComponent({
515
521
  sortersModel.value = state.sorters.value.map((s) => ({ ...s }));
516
522
  });
517
523
  const filterableColumns = computed(() => state.allColumns.value.filter((c) => c.filterable));
518
- const sortableColumns = computed(() => state.allColumns.value.filter((c) => c.sortable));
524
+ const sortableColumns = computed(() => state.allColumns.value.filter((c) => c.sortable && !(c.local && state.navMode.value === "window")));
519
525
  function filterCount(path) {
520
526
  return state.filters.value[path]?.length ?? 0;
521
527
  }
@@ -556,19 +562,27 @@ var as_config_dialog_default = /* @__PURE__ */ defineComponent({
556
562
  onKeydown: unref(onDialogKeydown)
557
563
  }, {
558
564
  default: withCtx(() => [
559
- createElementVNode("div", _hoisted_1, [createVNode(unref(DialogTitle), { class: "as-config-dialog-title" }, {
560
- default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode("Table Settings", -1)])]),
561
- _: 1
562
- }), createVNode(unref(DialogClose), {
563
- class: "as-config-dialog-close",
564
- "aria-label": "Close"
565
- }, {
566
- default: withCtx(() => [..._cache[7] || (_cache[7] = [createElementVNode("span", {
567
- class: "i-as-close",
568
- "aria-hidden": "true"
569
- }, null, -1)])]),
570
- _: 1
571
- })]),
565
+ createElementVNode("div", _hoisted_1, [
566
+ createVNode(unref(DialogTitle), { class: "as-config-dialog-title" }, {
567
+ default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode("Table Settings", -1)])]),
568
+ _: 1
569
+ }),
570
+ createCommentVNode(" Reka requires a description on every DialogContent — without it\n it logs a warning and leaves `aria-describedby=\"undefined\"` on\n the surface. The dialog has no visible sub-heading, so the copy\n is screen-reader-only. "),
571
+ createVNode(unref(DialogDescription), { class: "sr-only" }, {
572
+ default: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode(" Choose which columns are visible, which fields appear in the filter bar, and the sort order of the table. ", -1)])]),
573
+ _: 1
574
+ }),
575
+ createVNode(unref(DialogClose), {
576
+ class: "as-config-dialog-close",
577
+ "aria-label": "Close"
578
+ }, {
579
+ default: withCtx(() => [..._cache[8] || (_cache[8] = [createElementVNode("span", {
580
+ class: "i-as-close",
581
+ "aria-hidden": "true"
582
+ }, null, -1)])]),
583
+ _: 1
584
+ })
585
+ ]),
572
586
  createVNode(unref(TabsRoot), {
573
587
  modelValue: activeTab.value,
574
588
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => activeTab.value = $event),
@@ -582,11 +596,11 @@ var as_config_dialog_default = /* @__PURE__ */ defineComponent({
582
596
  class: "as-config-tab-trigger"
583
597
  }, {
584
598
  default: withCtx(() => [
585
- _cache[8] || (_cache[8] = createElementVNode("span", {
599
+ _cache[9] || (_cache[9] = createElementVNode("span", {
586
600
  class: "as-config-tab-icon i-as-columns",
587
601
  "aria-hidden": "true"
588
602
  }, null, -1)),
589
- _cache[9] || (_cache[9] = createTextVNode(" Columns ", -1)),
603
+ _cache[10] || (_cache[10] = createTextVNode(" Columns ", -1)),
590
604
  createElementVNode("span", { class: normalizeClass(["as-config-tab-count", { "as-config-tab-count-active": activeTab.value === "columns" }]) }, toDisplayString(columnsModel.value.length), 3)
591
605
  ]),
592
606
  _: 1
@@ -596,11 +610,11 @@ var as_config_dialog_default = /* @__PURE__ */ defineComponent({
596
610
  class: "as-config-tab-trigger"
597
611
  }, {
598
612
  default: withCtx(() => [
599
- _cache[10] || (_cache[10] = createElementVNode("span", {
613
+ _cache[11] || (_cache[11] = createElementVNode("span", {
600
614
  class: "as-config-tab-icon i-as-filter",
601
615
  "aria-hidden": "true"
602
616
  }, null, -1)),
603
- _cache[11] || (_cache[11] = createTextVNode(" Filters ", -1)),
617
+ _cache[12] || (_cache[12] = createTextVNode(" Filters ", -1)),
604
618
  createElementVNode("span", { class: normalizeClass(["as-config-tab-count", { "as-config-tab-count-active": activeTab.value === "filters" }]) }, toDisplayString(filtersModel.value.length), 3)
605
619
  ]),
606
620
  _: 1
@@ -610,11 +624,11 @@ var as_config_dialog_default = /* @__PURE__ */ defineComponent({
610
624
  class: "as-config-tab-trigger"
611
625
  }, {
612
626
  default: withCtx(() => [
613
- _cache[12] || (_cache[12] = createElementVNode("span", {
627
+ _cache[13] || (_cache[13] = createElementVNode("span", {
614
628
  class: "as-config-tab-icon i-as-sorters",
615
629
  "aria-hidden": "true"
616
630
  }, null, -1)),
617
- _cache[13] || (_cache[13] = createTextVNode(" Sorters ", -1)),
631
+ _cache[14] || (_cache[14] = createTextVNode(" Sorters ", -1)),
618
632
  createElementVNode("span", { class: normalizeClass(["as-config-tab-count", { "as-config-tab-count-active": activeTab.value === "sorters" }]) }, toDisplayString(sortersModel.value.length), 3)
619
633
  ]),
620
634
  _: 1
@@ -630,7 +644,14 @@ var as_config_dialog_default = /* @__PURE__ */ defineComponent({
630
644
  columns: unref(state).allColumns.value,
631
645
  modelValue: columnsModel.value,
632
646
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => columnsModel.value = $event)
633
- }, null, 8, ["columns", "modelValue"]))]),
647
+ }, {
648
+ label: withCtx(({ label, value }) => [createElementVNode("span", _hoisted_2, [
649
+ createElementVNode("span", _hoisted_3, toDisplayString(label), 1),
650
+ createCommentVNode(" Client-owned (`:display-columns`) columns are rendered by\n the app, not fetched — say so, so nobody hunts for a\n missing field on the server. "),
651
+ unref(state).localColumnPaths.value.has(value) ? (openBlock(), createElementBlock("span", _hoisted_4, "client")) : createCommentVNode("v-if", true)
652
+ ])]),
653
+ _: 1
654
+ }, 8, ["columns", "modelValue"]))]),
634
655
  _: 1
635
656
  }),
636
657
  createVNode(unref(TabsContent), {
@@ -642,7 +663,7 @@ var as_config_dialog_default = /* @__PURE__ */ defineComponent({
642
663
  modelValue: filtersModel.value,
643
664
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => filtersModel.value = $event)
644
665
  }, {
645
- label: withCtx(({ label, value }) => [createElementVNode("span", _hoisted_2, [createElementVNode("span", _hoisted_3, toDisplayString(label), 1), filterCount(value) > 0 ? (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(filterCount(value)), 1)) : createCommentVNode("v-if", true)])]),
666
+ label: withCtx(({ label, value }) => [createElementVNode("span", _hoisted_5, [createElementVNode("span", _hoisted_6, toDisplayString(label), 1), filterCount(value) > 0 ? (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString(filterCount(value)), 1)) : createCommentVNode("v-if", true)])]),
646
667
  _: 1
647
668
  }, 8, ["columns", "modelValue"]))]),
648
669
  _: 1
@@ -661,8 +682,8 @@ var as_config_dialog_default = /* @__PURE__ */ defineComponent({
661
682
  ]),
662
683
  _: 1
663
684
  }, 8, ["modelValue"]),
664
- createElementVNode("div", _hoisted_5, [createElementVNode("span", _hoisted_6, [activeTab.value === "columns" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createElementVNode("span", _hoisted_7, toDisplayString(columnsModel.value.length), 1), createTextVNode(" of " + toDisplayString(unref(state).allColumns.value.length) + " columns visible ", 1)], 64)) : activeTab.value === "filters" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createElementVNode("span", _hoisted_8, toDisplayString(filtersModel.value.length), 1), createTextVNode(" of " + toDisplayString(filterableColumns.value.length) + " filterable columns shown as filter pills ", 1)], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [createElementVNode("span", _hoisted_9, toDisplayString(sortersModel.value.length), 1), createTextVNode(" of " + toDisplayString(sortableColumns.value.length) + " sortable columns in effect ", 1)], 64))]), createElementVNode("span", _hoisted_10, [activeTab.value === "columns" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(" Checked columns are rendered in the table. Drag rows to reorder. ")], 64)) : activeTab.value === "filters" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(" Checked columns appear in the filter bar for quick filtering. ")], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [createTextVNode(" Rows are ordered by these fields, top-to-bottom. ")], 64))])]),
665
- createElementVNode("div", _hoisted_11, [activeTab.value === "sorters" && sortersModel.value.length > 0 ? (openBlock(), createElementBlock("button", {
685
+ createElementVNode("div", _hoisted_8, [createElementVNode("span", _hoisted_9, [activeTab.value === "columns" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createElementVNode("span", _hoisted_10, toDisplayString(columnsModel.value.length), 1), createTextVNode(" of " + toDisplayString(unref(state).allColumns.value.length) + " columns visible ", 1)], 64)) : activeTab.value === "filters" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createElementVNode("span", _hoisted_11, toDisplayString(filtersModel.value.length), 1), createTextVNode(" of " + toDisplayString(filterableColumns.value.length) + " filterable columns shown as filter pills ", 1)], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [createElementVNode("span", _hoisted_12, toDisplayString(sortersModel.value.length), 1), createTextVNode(" of " + toDisplayString(sortableColumns.value.length) + " sortable columns in effect ", 1)], 64))]), createElementVNode("span", _hoisted_13, [activeTab.value === "columns" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(" Checked columns are rendered in the table. Drag rows to reorder. ")], 64)) : activeTab.value === "filters" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(" Checked columns appear in the filter bar for quick filtering. ")], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [createTextVNode(" Rows are ordered by these fields, top-to-bottom. ")], 64))])]),
686
+ createElementVNode("div", _hoisted_14, [activeTab.value === "sorters" && sortersModel.value.length > 0 ? (openBlock(), createElementBlock("button", {
666
687
  key: 0,
667
688
  type: "button",
668
689
  class: "as-filter-btn-ghost",
@@ -1,6 +1,6 @@
1
- const require_use_table_state = require("./use-table-state-Oi2ds4_a.cjs");
2
- const require_use_table_component = require("./use-table-component-DO_kvKSf.cjs");
3
- const require_use_seed_on_open = require("./use-seed-on-open-Dg9I89fU.cjs");
1
+ const require_use_table_state = require("./use-table-state-mhm-YWnu.cjs");
2
+ const require_use_table_component = require("./use-table-component-DS5NJPzs.cjs");
3
+ const require_use_seed_on_open = require("./use-seed-on-open-9TSm1Vbv.cjs");
4
4
  let vue = require("vue");
5
5
  let _atscript_ui_table = require("@atscript/ui-table");
6
6
  let reka_ui = require("reka-ui");
@@ -476,16 +476,22 @@ const _hoisted_1 = { class: "as-config-dialog-header" };
476
476
  const _hoisted_2 = { class: "as-config-field-label-wrap" };
477
477
  const _hoisted_3 = { class: "as-config-field-label-text" };
478
478
  const _hoisted_4 = {
479
+ key: 0,
480
+ class: "as-config-field-hint"
481
+ };
482
+ const _hoisted_5 = { class: "as-config-field-label-wrap" };
483
+ const _hoisted_6 = { class: "as-config-field-label-text" };
484
+ const _hoisted_7 = {
479
485
  key: 0,
480
486
  class: "as-config-field-count"
481
487
  };
482
- const _hoisted_5 = { class: "as-config-tab-summary" };
483
- const _hoisted_6 = { class: "as-config-tab-summary-count" };
484
- const _hoisted_7 = { class: "as-config-tab-summary-count-num" };
485
- const _hoisted_8 = { class: "as-config-tab-summary-count-num" };
486
- const _hoisted_9 = { class: "as-config-tab-summary-count-num" };
487
- const _hoisted_10 = { class: "as-config-tab-summary-hint" };
488
- const _hoisted_11 = { class: "as-config-dialog-footer" };
488
+ const _hoisted_8 = { class: "as-config-tab-summary" };
489
+ const _hoisted_9 = { class: "as-config-tab-summary-count" };
490
+ const _hoisted_10 = { class: "as-config-tab-summary-count-num" };
491
+ const _hoisted_11 = { class: "as-config-tab-summary-count-num" };
492
+ const _hoisted_12 = { class: "as-config-tab-summary-count-num" };
493
+ const _hoisted_13 = { class: "as-config-tab-summary-hint" };
494
+ const _hoisted_14 = { class: "as-config-dialog-footer" };
489
495
  //#endregion
490
496
  //#region src/components/defaults/as-config-dialog.vue
491
497
  var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
@@ -515,7 +521,7 @@ var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
515
521
  sortersModel.value = state.sorters.value.map((s) => ({ ...s }));
516
522
  });
517
523
  const filterableColumns = (0, vue.computed)(() => state.allColumns.value.filter((c) => c.filterable));
518
- const sortableColumns = (0, vue.computed)(() => state.allColumns.value.filter((c) => c.sortable));
524
+ const sortableColumns = (0, vue.computed)(() => state.allColumns.value.filter((c) => c.sortable && !(c.local && state.navMode.value === "window")));
519
525
  function filterCount(path) {
520
526
  return state.filters.value[path]?.length ?? 0;
521
527
  }
@@ -556,19 +562,27 @@ var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
556
562
  onKeydown: (0, vue.unref)(onDialogKeydown)
557
563
  }, {
558
564
  default: (0, vue.withCtx)(() => [
559
- (0, vue.createElementVNode)("div", _hoisted_1, [(0, vue.createVNode)((0, vue.unref)(reka_ui.DialogTitle), { class: "as-config-dialog-title" }, {
560
- default: (0, vue.withCtx)(() => [..._cache[6] || (_cache[6] = [(0, vue.createTextVNode)("Table Settings", -1)])]),
561
- _: 1
562
- }), (0, vue.createVNode)((0, vue.unref)(reka_ui.DialogClose), {
563
- class: "as-config-dialog-close",
564
- "aria-label": "Close"
565
- }, {
566
- default: (0, vue.withCtx)(() => [..._cache[7] || (_cache[7] = [(0, vue.createElementVNode)("span", {
567
- class: "i-as-close",
568
- "aria-hidden": "true"
569
- }, null, -1)])]),
570
- _: 1
571
- })]),
565
+ (0, vue.createElementVNode)("div", _hoisted_1, [
566
+ (0, vue.createVNode)((0, vue.unref)(reka_ui.DialogTitle), { class: "as-config-dialog-title" }, {
567
+ default: (0, vue.withCtx)(() => [..._cache[6] || (_cache[6] = [(0, vue.createTextVNode)("Table Settings", -1)])]),
568
+ _: 1
569
+ }),
570
+ (0, vue.createCommentVNode)(" Reka requires a description on every DialogContent — without it\n it logs a warning and leaves `aria-describedby=\"undefined\"` on\n the surface. The dialog has no visible sub-heading, so the copy\n is screen-reader-only. "),
571
+ (0, vue.createVNode)((0, vue.unref)(reka_ui.DialogDescription), { class: "sr-only" }, {
572
+ default: (0, vue.withCtx)(() => [..._cache[7] || (_cache[7] = [(0, vue.createTextVNode)(" Choose which columns are visible, which fields appear in the filter bar, and the sort order of the table. ", -1)])]),
573
+ _: 1
574
+ }),
575
+ (0, vue.createVNode)((0, vue.unref)(reka_ui.DialogClose), {
576
+ class: "as-config-dialog-close",
577
+ "aria-label": "Close"
578
+ }, {
579
+ default: (0, vue.withCtx)(() => [..._cache[8] || (_cache[8] = [(0, vue.createElementVNode)("span", {
580
+ class: "i-as-close",
581
+ "aria-hidden": "true"
582
+ }, null, -1)])]),
583
+ _: 1
584
+ })
585
+ ]),
572
586
  (0, vue.createVNode)((0, vue.unref)(reka_ui.TabsRoot), {
573
587
  modelValue: activeTab.value,
574
588
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => activeTab.value = $event),
@@ -582,11 +596,11 @@ var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
582
596
  class: "as-config-tab-trigger"
583
597
  }, {
584
598
  default: (0, vue.withCtx)(() => [
585
- _cache[8] || (_cache[8] = (0, vue.createElementVNode)("span", {
599
+ _cache[9] || (_cache[9] = (0, vue.createElementVNode)("span", {
586
600
  class: "as-config-tab-icon i-as-columns",
587
601
  "aria-hidden": "true"
588
602
  }, null, -1)),
589
- _cache[9] || (_cache[9] = (0, vue.createTextVNode)(" Columns ", -1)),
603
+ _cache[10] || (_cache[10] = (0, vue.createTextVNode)(" Columns ", -1)),
590
604
  (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(["as-config-tab-count", { "as-config-tab-count-active": activeTab.value === "columns" }]) }, (0, vue.toDisplayString)(columnsModel.value.length), 3)
591
605
  ]),
592
606
  _: 1
@@ -596,11 +610,11 @@ var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
596
610
  class: "as-config-tab-trigger"
597
611
  }, {
598
612
  default: (0, vue.withCtx)(() => [
599
- _cache[10] || (_cache[10] = (0, vue.createElementVNode)("span", {
613
+ _cache[11] || (_cache[11] = (0, vue.createElementVNode)("span", {
600
614
  class: "as-config-tab-icon i-as-filter",
601
615
  "aria-hidden": "true"
602
616
  }, null, -1)),
603
- _cache[11] || (_cache[11] = (0, vue.createTextVNode)(" Filters ", -1)),
617
+ _cache[12] || (_cache[12] = (0, vue.createTextVNode)(" Filters ", -1)),
604
618
  (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(["as-config-tab-count", { "as-config-tab-count-active": activeTab.value === "filters" }]) }, (0, vue.toDisplayString)(filtersModel.value.length), 3)
605
619
  ]),
606
620
  _: 1
@@ -610,11 +624,11 @@ var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
610
624
  class: "as-config-tab-trigger"
611
625
  }, {
612
626
  default: (0, vue.withCtx)(() => [
613
- _cache[12] || (_cache[12] = (0, vue.createElementVNode)("span", {
627
+ _cache[13] || (_cache[13] = (0, vue.createElementVNode)("span", {
614
628
  class: "as-config-tab-icon i-as-sorters",
615
629
  "aria-hidden": "true"
616
630
  }, null, -1)),
617
- _cache[13] || (_cache[13] = (0, vue.createTextVNode)(" Sorters ", -1)),
631
+ _cache[14] || (_cache[14] = (0, vue.createTextVNode)(" Sorters ", -1)),
618
632
  (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(["as-config-tab-count", { "as-config-tab-count-active": activeTab.value === "sorters" }]) }, (0, vue.toDisplayString)(sortersModel.value.length), 3)
619
633
  ]),
620
634
  _: 1
@@ -630,7 +644,14 @@ var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
630
644
  columns: (0, vue.unref)(state).allColumns.value,
631
645
  modelValue: columnsModel.value,
632
646
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => columnsModel.value = $event)
633
- }, null, 8, ["columns", "modelValue"]))]),
647
+ }, {
648
+ label: (0, vue.withCtx)(({ label, value }) => [(0, vue.createElementVNode)("span", _hoisted_2, [
649
+ (0, vue.createElementVNode)("span", _hoisted_3, (0, vue.toDisplayString)(label), 1),
650
+ (0, vue.createCommentVNode)(" Client-owned (`:display-columns`) columns are rendered by\n the app, not fetched — say so, so nobody hunts for a\n missing field on the server. "),
651
+ (0, vue.unref)(state).localColumnPaths.value.has(value) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_4, "client")) : (0, vue.createCommentVNode)("v-if", true)
652
+ ])]),
653
+ _: 1
654
+ }, 8, ["columns", "modelValue"]))]),
634
655
  _: 1
635
656
  }),
636
657
  (0, vue.createVNode)((0, vue.unref)(reka_ui.TabsContent), {
@@ -642,7 +663,7 @@ var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
642
663
  modelValue: filtersModel.value,
643
664
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => filtersModel.value = $event)
644
665
  }, {
645
- label: (0, vue.withCtx)(({ label, value }) => [(0, vue.createElementVNode)("span", _hoisted_2, [(0, vue.createElementVNode)("span", _hoisted_3, (0, vue.toDisplayString)(label), 1), filterCount(value) > 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_4, (0, vue.toDisplayString)(filterCount(value)), 1)) : (0, vue.createCommentVNode)("v-if", true)])]),
666
+ label: (0, vue.withCtx)(({ label, value }) => [(0, vue.createElementVNode)("span", _hoisted_5, [(0, vue.createElementVNode)("span", _hoisted_6, (0, vue.toDisplayString)(label), 1), filterCount(value) > 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_7, (0, vue.toDisplayString)(filterCount(value)), 1)) : (0, vue.createCommentVNode)("v-if", true)])]),
646
667
  _: 1
647
668
  }, 8, ["columns", "modelValue"]))]),
648
669
  _: 1
@@ -661,8 +682,8 @@ var as_config_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
661
682
  ]),
662
683
  _: 1
663
684
  }, 8, ["modelValue"]),
664
- (0, vue.createElementVNode)("div", _hoisted_5, [(0, vue.createElementVNode)("span", _hoisted_6, [activeTab.value === "columns" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createElementVNode)("span", _hoisted_7, (0, vue.toDisplayString)(columnsModel.value.length), 1), (0, vue.createTextVNode)(" of " + (0, vue.toDisplayString)((0, vue.unref)(state).allColumns.value.length) + " columns visible ", 1)], 64)) : activeTab.value === "filters" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createElementVNode)("span", _hoisted_8, (0, vue.toDisplayString)(filtersModel.value.length), 1), (0, vue.createTextVNode)(" of " + (0, vue.toDisplayString)(filterableColumns.value.length) + " filterable columns shown as filter pills ", 1)], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createElementVNode)("span", _hoisted_9, (0, vue.toDisplayString)(sortersModel.value.length), 1), (0, vue.createTextVNode)(" of " + (0, vue.toDisplayString)(sortableColumns.value.length) + " sortable columns in effect ", 1)], 64))]), (0, vue.createElementVNode)("span", _hoisted_10, [activeTab.value === "columns" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)(" Checked columns are rendered in the table. Drag rows to reorder. ")], 64)) : activeTab.value === "filters" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createTextVNode)(" Checked columns appear in the filter bar for quick filtering. ")], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createTextVNode)(" Rows are ordered by these fields, top-to-bottom. ")], 64))])]),
665
- (0, vue.createElementVNode)("div", _hoisted_11, [activeTab.value === "sorters" && sortersModel.value.length > 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", {
685
+ (0, vue.createElementVNode)("div", _hoisted_8, [(0, vue.createElementVNode)("span", _hoisted_9, [activeTab.value === "columns" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createElementVNode)("span", _hoisted_10, (0, vue.toDisplayString)(columnsModel.value.length), 1), (0, vue.createTextVNode)(" of " + (0, vue.toDisplayString)((0, vue.unref)(state).allColumns.value.length) + " columns visible ", 1)], 64)) : activeTab.value === "filters" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createElementVNode)("span", _hoisted_11, (0, vue.toDisplayString)(filtersModel.value.length), 1), (0, vue.createTextVNode)(" of " + (0, vue.toDisplayString)(filterableColumns.value.length) + " filterable columns shown as filter pills ", 1)], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createElementVNode)("span", _hoisted_12, (0, vue.toDisplayString)(sortersModel.value.length), 1), (0, vue.createTextVNode)(" of " + (0, vue.toDisplayString)(sortableColumns.value.length) + " sortable columns in effect ", 1)], 64))]), (0, vue.createElementVNode)("span", _hoisted_13, [activeTab.value === "columns" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)(" Checked columns are rendered in the table. Drag rows to reorder. ")], 64)) : activeTab.value === "filters" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createTextVNode)(" Checked columns appear in the filter bar for quick filtering. ")], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createTextVNode)(" Rows are ordered by these fields, top-to-bottom. ")], 64))])]),
686
+ (0, vue.createElementVNode)("div", _hoisted_14, [activeTab.value === "sorters" && sortersModel.value.length > 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", {
666
687
  key: 0,
667
688
  type: "button",
668
689
  class: "as-filter-btn-ghost",
@@ -1,2 +1,2 @@
1
- const require_as_config_dialog = require("./as-config-dialog-BOYWPYYH.cjs");
1
+ const require_as_config_dialog = require("./as-config-dialog-DvBptYMS.cjs");
2
2
  module.exports = require_as_config_dialog.as_config_dialog_default;
@@ -1,2 +1,2 @@
1
- import { t as as_config_dialog_default } from "./as-config-dialog-BehfqIGd.mjs";
1
+ import { t as as_config_dialog_default } from "./as-config-dialog-BUBHiVlf.mjs";
2
2
  export { as_config_dialog_default as default };
@@ -1,4 +1,4 @@
1
- const require_use_table_state = require("./use-table-state-Oi2ds4_a.cjs");
1
+ const require_use_table_state = require("./use-table-state-mhm-YWnu.cjs");
2
2
  let vue = require("vue");
3
3
  let reka_ui = require("reka-ui");
4
4
  //#region src/components/defaults/as-confirm-dialog.vue?vue&type=script&setup=true&lang.ts
@@ -16,29 +16,32 @@ var as_confirm_dialog_default = /* @__PURE__ */ (0, vue.defineComponent)({
16
16
  if (!val) state.dismissPrompt();
17
17
  }
18
18
  });
19
- const req = (0, vue.computed)(() => state.confirmRequest.value);
19
+ const req = state.confirmDisplay;
20
20
  return (_ctx, _cache) => {
21
21
  return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.AlertDialogRoot), {
22
22
  open: isOpen.value,
23
- "onUpdate:open": _cache[2] || (_cache[2] = ($event) => isOpen.value = $event)
23
+ "onUpdate:open": _cache[3] || (_cache[3] = ($event) => isOpen.value = $event)
24
24
  }, {
25
25
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(reka_ui.AlertDialogPortal), null, {
26
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(reka_ui.AlertDialogOverlay), { class: "as-confirm-dialog-overlay" }), (0, vue.createVNode)((0, vue.unref)(reka_ui.AlertDialogContent), { class: "as-confirm-dialog-content" }, {
26
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(reka_ui.AlertDialogOverlay), { class: "as-confirm-dialog-overlay" }), (0, vue.createVNode)((0, vue.unref)(reka_ui.AlertDialogContent), {
27
+ class: "as-confirm-dialog-content",
28
+ onAfterLeave: _cache[2] || (_cache[2] = ($event) => (0, vue.unref)(state).releaseConfirm())
29
+ }, {
27
30
  default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", _hoisted_1, [(0, vue.createVNode)((0, vue.unref)(reka_ui.AlertDialogTitle), { class: "as-confirm-dialog-title" }, {
28
- default: (0, vue.withCtx)(() => [..._cache[3] || (_cache[3] = [(0, vue.createTextVNode)("Confirmation", -1)])]),
31
+ default: (0, vue.withCtx)(() => [..._cache[4] || (_cache[4] = [(0, vue.createTextVNode)("Confirmation", -1)])]),
29
32
  _: 1
30
33
  }), (0, vue.createVNode)((0, vue.unref)(reka_ui.AlertDialogDescription), { class: "as-confirm-dialog-body" }, {
31
- default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(req.value?.message), 1)]),
34
+ default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(req)?.message), 1)]),
32
35
  _: 1
33
36
  })]), (0, vue.createElementVNode)("div", _hoisted_2, [(0, vue.createElementVNode)("button", {
34
37
  type: "button",
35
38
  class: "as-confirm-dialog-cancel",
36
39
  onClick: _cache[0] || (_cache[0] = ($event) => (0, vue.unref)(state).dismissPrompt())
37
- }, (0, vue.toDisplayString)(req.value?.cancelButton ?? "Cancel"), 1), (0, vue.createElementVNode)("button", {
40
+ }, (0, vue.toDisplayString)((0, vue.unref)(req)?.cancelButton ?? "Cancel"), 1), (0, vue.createElementVNode)("button", {
38
41
  type: "button",
39
- class: (0, vue.normalizeClass)(["as-confirm-dialog-confirm", req.value?.scope ? `as-confirm-dialog-confirm-${req.value.scope}` : void 0]),
42
+ class: (0, vue.normalizeClass)(["as-confirm-dialog-confirm", (0, vue.unref)(req)?.scope ? `as-confirm-dialog-confirm-${(0, vue.unref)(req).scope}` : void 0]),
40
43
  onClick: _cache[1] || (_cache[1] = ($event) => (0, vue.unref)(state).acceptPrompt())
41
- }, (0, vue.toDisplayString)(req.value?.confirmButton ?? "Confirm"), 3)])]),
44
+ }, (0, vue.toDisplayString)((0, vue.unref)(req)?.confirmButton ?? "Confirm"), 3)])]),
42
45
  _: 1
43
46
  })]),
44
47
  _: 1
@@ -1,4 +1,4 @@
1
- import { a as useTableContext } from "./use-table-state-BxX3SpeW.mjs";
1
+ import { a as useTableContext } from "./use-table-state-mBXx11aH.mjs";
2
2
  import { computed, createBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref, withCtx } from "vue";
3
3
  import { AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle } from "reka-ui";
4
4
  //#region src/components/defaults/as-confirm-dialog.vue?vue&type=script&setup=true&lang.ts
@@ -16,29 +16,32 @@ var as_confirm_dialog_default = /* @__PURE__ */ defineComponent({
16
16
  if (!val) state.dismissPrompt();
17
17
  }
18
18
  });
19
- const req = computed(() => state.confirmRequest.value);
19
+ const req = state.confirmDisplay;
20
20
  return (_ctx, _cache) => {
21
21
  return openBlock(), createBlock(unref(AlertDialogRoot), {
22
22
  open: isOpen.value,
23
- "onUpdate:open": _cache[2] || (_cache[2] = ($event) => isOpen.value = $event)
23
+ "onUpdate:open": _cache[3] || (_cache[3] = ($event) => isOpen.value = $event)
24
24
  }, {
25
25
  default: withCtx(() => [createVNode(unref(AlertDialogPortal), null, {
26
- default: withCtx(() => [createVNode(unref(AlertDialogOverlay), { class: "as-confirm-dialog-overlay" }), createVNode(unref(AlertDialogContent), { class: "as-confirm-dialog-content" }, {
26
+ default: withCtx(() => [createVNode(unref(AlertDialogOverlay), { class: "as-confirm-dialog-overlay" }), createVNode(unref(AlertDialogContent), {
27
+ class: "as-confirm-dialog-content",
28
+ onAfterLeave: _cache[2] || (_cache[2] = ($event) => unref(state).releaseConfirm())
29
+ }, {
27
30
  default: withCtx(() => [createElementVNode("div", _hoisted_1, [createVNode(unref(AlertDialogTitle), { class: "as-confirm-dialog-title" }, {
28
- default: withCtx(() => [..._cache[3] || (_cache[3] = [createTextVNode("Confirmation", -1)])]),
31
+ default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("Confirmation", -1)])]),
29
32
  _: 1
30
33
  }), createVNode(unref(AlertDialogDescription), { class: "as-confirm-dialog-body" }, {
31
- default: withCtx(() => [createTextVNode(toDisplayString(req.value?.message), 1)]),
34
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(req)?.message), 1)]),
32
35
  _: 1
33
36
  })]), createElementVNode("div", _hoisted_2, [createElementVNode("button", {
34
37
  type: "button",
35
38
  class: "as-confirm-dialog-cancel",
36
39
  onClick: _cache[0] || (_cache[0] = ($event) => unref(state).dismissPrompt())
37
- }, toDisplayString(req.value?.cancelButton ?? "Cancel"), 1), createElementVNode("button", {
40
+ }, toDisplayString(unref(req)?.cancelButton ?? "Cancel"), 1), createElementVNode("button", {
38
41
  type: "button",
39
- class: normalizeClass(["as-confirm-dialog-confirm", req.value?.scope ? `as-confirm-dialog-confirm-${req.value.scope}` : void 0]),
42
+ class: normalizeClass(["as-confirm-dialog-confirm", unref(req)?.scope ? `as-confirm-dialog-confirm-${unref(req).scope}` : void 0]),
40
43
  onClick: _cache[1] || (_cache[1] = ($event) => unref(state).acceptPrompt())
41
- }, toDisplayString(req.value?.confirmButton ?? "Confirm"), 3)])]),
44
+ }, toDisplayString(unref(req)?.confirmButton ?? "Confirm"), 3)])]),
42
45
  _: 1
43
46
  })]),
44
47
  _: 1
@@ -1,2 +1,2 @@
1
- const require_as_confirm_dialog = require("./as-confirm-dialog-UwhDHysk.cjs");
1
+ const require_as_confirm_dialog = require("./as-confirm-dialog-ByMfIG0A.cjs");
2
2
  module.exports = require_as_confirm_dialog.as_confirm_dialog_default;
@@ -1,2 +1,2 @@
1
- import { t as as_confirm_dialog_default } from "./as-confirm-dialog-bpN4A-KN.mjs";
1
+ import { t as as_confirm_dialog_default } from "./as-confirm-dialog-G4ZoL_Xo.mjs";
2
2
  export { as_confirm_dialog_default as default };
@@ -1,16 +1,16 @@
1
- import { a as useTableContext, r as provideTableContext, t as createStaticTableState } from "./use-table-state-BxX3SpeW.mjs";
2
- import { n as useTable } from "./use-table-CyFcVtUN.mjs";
3
- import { t as useTableNavBridge } from "./use-table-nav-bridge-DeGeaQX-.mjs";
4
- import { t as useTableComponent } from "./use-table-component-K6xj1obF.mjs";
5
- import { n as useDialogTabKeyboard, t as as_config_dialog_default } from "./as-config-dialog-BehfqIGd.mjs";
6
- import { t as useSeedOnOpen } from "./use-seed-on-open-DO3A1kIb.mjs";
7
- import { t as as_filter_input_default } from "./as-filter-input-BM23TNeh.mjs";
8
- import { t as as_window_table_default } from "./as-window-table-DWujiUQy.mjs";
9
- import { t as as_filters_default } from "./as-filters-beIud9sF.mjs";
1
+ import { a as useTableContext, r as provideTableContext, t as createStaticTableState } from "./use-table-state-mBXx11aH.mjs";
2
+ import { r as useTable } from "./use-table-BFhbfWgY.mjs";
3
+ import { t as useTableNavBridge } from "./use-table-nav-bridge-DzJN5v9a.mjs";
4
+ import { t as useTableComponent } from "./use-table-component-CRmLHdqi.mjs";
5
+ import { n as useDialogTabKeyboard, t as as_config_dialog_default } from "./as-config-dialog-BUBHiVlf.mjs";
6
+ import { t as useSeedOnOpen } from "./use-seed-on-open-DSh4XFyp.mjs";
7
+ import { t as as_filter_input_default } from "./as-filter-input-C8KmOus8.mjs";
8
+ import { t as as_window_table_default } from "./as-window-table-BH0tDDnr.mjs";
9
+ import { t as as_filters_default } from "./as-filters-DogNVlqr.mjs";
10
10
  import { resolveValueHelp, valueHelpDictPaths } from "@atscript/ui";
11
11
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, normalizeStyle, onMounted, openBlock, ref, renderList, resolveDynamicComponent, shallowRef, toDisplayString, unref, useModel, watch, withCtx } from "vue";
12
12
  import { columnFilterType, conditionLabel, conditionsForType, dateShortcuts, defaultCondition, filledFilterCount, formatFilterCondition, isFilled, isSimpleEq, sameColumnSet } from "@atscript/ui-table";
13
- import { DialogClose, DialogContent, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, TabsContent, TabsList, TabsRoot, TabsTrigger } from "reka-ui";
13
+ import { DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, TabsContent, TabsList, TabsRoot, TabsTrigger } from "reka-ui";
14
14
  //#region src/components/internal/as-filter-conditions.vue?vue&type=script&setup=true&lang.ts
15
15
  const _hoisted_1$2 = ["value", "onChange"];
16
16
  const _hoisted_2$2 = ["value"];
@@ -452,19 +452,27 @@ var as_filter_dialog_default = /* @__PURE__ */ defineComponent({
452
452
  onKeydown: unref(onDialogKeydown)
453
453
  }, {
454
454
  default: withCtx(() => [
455
- createElementVNode("div", _hoisted_1, [createVNode(unref(DialogTitle), { class: "as-filter-dialog-title" }, {
456
- default: withCtx(() => [_cache[5] || (_cache[5] = createElementVNode("span", { class: "as-filter-dialog-title-label" }, "Filter", -1)), createElementVNode("span", _hoisted_2, toDisplayString(column.value?.label), 1)]),
457
- _: 1
458
- }), createVNode(unref(DialogClose), {
459
- class: "as-filter-dialog-close",
460
- "aria-label": "Close"
461
- }, {
462
- default: withCtx(() => [..._cache[6] || (_cache[6] = [createElementVNode("span", {
463
- class: "i-as-close",
464
- "aria-hidden": "true"
465
- }, null, -1)])]),
466
- _: 1
467
- })]),
455
+ createElementVNode("div", _hoisted_1, [
456
+ createVNode(unref(DialogTitle), { class: "as-filter-dialog-title" }, {
457
+ default: withCtx(() => [_cache[5] || (_cache[5] = createElementVNode("span", { class: "as-filter-dialog-title-label" }, "Filter", -1)), createElementVNode("span", _hoisted_2, toDisplayString(column.value?.label), 1)]),
458
+ _: 1
459
+ }),
460
+ createCommentVNode(" Reka requires a description on every DialogContent — without it\n it logs a warning and leaves `aria-describedby=\"undefined\"` on\n the surface. The column name is already in the title, so the\n copy is screen-reader-only. "),
461
+ createVNode(unref(DialogDescription), { class: "sr-only" }, {
462
+ default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode(" Build the filter conditions applied to this column. ", -1)])]),
463
+ _: 1
464
+ }),
465
+ createVNode(unref(DialogClose), {
466
+ class: "as-filter-dialog-close",
467
+ "aria-label": "Close"
468
+ }, {
469
+ default: withCtx(() => [..._cache[7] || (_cache[7] = [createElementVNode("span", {
470
+ class: "i-as-close",
471
+ "aria-hidden": "true"
472
+ }, null, -1)])]),
473
+ _: 1
474
+ })
475
+ ]),
468
476
  column.value && hasValueHelp.value ? (openBlock(), createBlock(unref(TabsRoot), {
469
477
  key: 0,
470
478
  modelValue: activeTab.value,
@@ -477,7 +485,7 @@ var as_filter_dialog_default = /* @__PURE__ */ defineComponent({
477
485
  value: "value-help",
478
486
  class: "as-config-tab-trigger"
479
487
  }, {
480
- default: withCtx(() => [_cache[7] || (_cache[7] = createTextVNode(" Values ", -1)), valueHelpConditions.value.length > 0 ? (openBlock(), createElementBlock("span", {
488
+ default: withCtx(() => [_cache[8] || (_cache[8] = createTextVNode(" Values ", -1)), valueHelpConditions.value.length > 0 ? (openBlock(), createElementBlock("span", {
481
489
  key: 0,
482
490
  class: normalizeClass(["as-config-tab-count", { "as-config-tab-count-active": activeTab.value === "value-help" }])
483
491
  }, toDisplayString(valueHelpConditions.value.length), 3)) : createCommentVNode("v-if", true)]),
@@ -486,7 +494,7 @@ var as_filter_dialog_default = /* @__PURE__ */ defineComponent({
486
494
  value: "conditions",
487
495
  class: "as-config-tab-trigger"
488
496
  }, {
489
- default: withCtx(() => [_cache[8] || (_cache[8] = createTextVNode(" Conditions ", -1)), filledFreeCount.value > 0 ? (openBlock(), createElementBlock("span", {
497
+ default: withCtx(() => [_cache[9] || (_cache[9] = createTextVNode(" Conditions ", -1)), filledFreeCount.value > 0 ? (openBlock(), createElementBlock("span", {
490
498
  key: 0,
491
499
  class: normalizeClass(["as-config-tab-count", { "as-config-tab-count-active": activeTab.value === "conditions" }])
492
500
  }, toDisplayString(filledFreeCount.value), 3)) : createCommentVNode("v-if", true)]),
@@ -536,7 +544,7 @@ var as_filter_dialog_default = /* @__PURE__ */ defineComponent({
536
544
  class: "as-filter-dialog-chip-remove",
537
545
  "aria-label": "Remove",
538
546
  onClick: ($event) => removeChip(chip)
539
- }, [..._cache[9] || (_cache[9] = [createElementVNode("span", {
547
+ }, [..._cache[10] || (_cache[10] = [createElementVNode("span", {
540
548
  class: "i-as-close",
541
549
  "aria-hidden": "true"
542
550
  }, null, -1)])], 8, _hoisted_8)]);