@wssto2/vue-core 0.4.7 → 0.4.9

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 (36) hide show
  1. package/README.md +2 -1
  2. package/dist/{Activity-CEeZADHC.js → Activity-DqXMzELT.js} +1 -1
  3. package/dist/{Changes-B7TxVDoE.js → Changes-DCaXBsq_.js} +1 -1
  4. package/dist/CollectionPage.vue_vue_type_script_setup_true_lang-DkpFEHUw.js +1569 -0
  5. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-KPm5NrDE.js → DataTable.vue_vue_type_script_setup_true_lang-ChS9ULwk.js} +21 -17
  6. package/dist/{DeadLetters-DwKeKpu6.js → DeadLetters-DBUALYXL.js} +2 -2
  7. package/dist/{General-C43nVs_x.js → General-DfIB1vjc.js} +1 -1
  8. package/dist/{ProfilePage-BXVPsyS8.js → ProfilePage-CWwwAhnr.js} +2 -2
  9. package/dist/{Sessions-9OEiLpje.js → Sessions-DkbKDSEn.js} +1 -1
  10. package/dist/{SettingsPage-CmPy-kpL.js → SettingsPage-BNdeH-_0.js} +1 -1
  11. package/dist/{SignIn-f-HF9B7-.js → SignIn-5ms3eSbU.js} +1 -1
  12. package/dist/{SignInPage-C8zaS_7r.js → SignInPage-BcRFC7oq.js} +1 -1
  13. package/dist/{SignInTable.vue_vue_type_script_setup_true_lang-ALAuc0sI.js → SignInTable.vue_vue_type_script_setup_true_lang-CIv34nRn.js} +1 -1
  14. package/dist/{SignIns-DzKz0Ple.js → SignIns-BmLrfWe8.js} +2 -2
  15. package/dist/{UserRecord-pciJE77m.js → UserRecord-CHBrlCAl.js} +2 -2
  16. package/dist/{UsersList-YRJTY69g.js → UsersList-hOhdxWGr.js} +3 -3
  17. package/dist/collection/CollectionPage.vue.d.ts +2 -0
  18. package/dist/collection/CollectionRows.vue.d.ts +6 -1
  19. package/dist/collection/CollectionTable.vue.d.ts +9 -0
  20. package/dist/collection/CollectionToolbar.vue.d.ts +3 -2
  21. package/dist/collection/DataTable.vue.d.ts +3 -0
  22. package/dist/collection/index.js +3 -3
  23. package/dist/collection/rowInteractions.d.ts +3 -1
  24. package/dist/i18n/index.js +8 -8
  25. package/dist/identity/index.js +1 -1
  26. package/dist/{index-DnYLRcv6.js → index-Cz4LtYKa.js} +2 -2
  27. package/dist/{index-DoowoCS7.js → index-DrZIn13a.js} +10 -10
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/notifications/index.js +1 -1
  31. package/dist/rowLayout-D1cYQghV.js +663 -0
  32. package/dist/{status-GT-QFBrB.js → status-DJh5qgMg.js} +1 -1
  33. package/dist/styles.css +1 -1
  34. package/package.json +1 -1
  35. package/dist/CollectionPage.vue_vue_type_script_setup_true_lang-DzuvFLj2.js +0 -1546
  36. package/dist/rowLayout-BkQWulan.js +0 -621
@@ -1,6 +1,6 @@
1
- import { defineComponent as d, computed as s, useSlots as u, openBlock as w, createElementBlock as p, createVNode as y, unref as f, createSlots as m, renderList as b, withCtx as h, renderSlot as v, normalizeProps as _, guardReactiveProps as g } from "vue";
2
- import { u as k, _ as R } from "./rowLayout-BkQWulan.js";
3
- const B = ["aria-busy"], S = /* @__PURE__ */ d({
1
+ import { defineComponent as d, computed as u, useSlots as p, openBlock as w, createElementBlock as y, createVNode as f, unref as k, createSlots as b, renderList as m, withCtx as h, renderSlot as v, normalizeProps as _, guardReactiveProps as g } from "vue";
2
+ import { u as R, _ as L } from "./rowLayout-D1cYQghV.js";
3
+ const F = ["aria-busy"], V = /* @__PURE__ */ d({
4
4
  __name: "DataTable",
5
5
  props: {
6
6
  rows: {},
@@ -14,39 +14,43 @@ const B = ["aria-busy"], S = /* @__PURE__ */ d({
14
14
  rowHeight: { default: void 0 },
15
15
  density: { default: "regular" },
16
16
  actionsVisible: { type: Boolean, default: !1 },
17
- rowClass: { type: Function, default: void 0 }
17
+ rowClass: { type: Function, default: void 0 },
18
+ pick: { type: Function, default: void 0 },
19
+ pickLabel: { default: void 0 }
18
20
  },
19
- setup(r) {
20
- const o = r, { phone: a } = k(() => o.columns), n = s(() => o.loading ? "loading" : o.rows.length === 0 ? "empty" : "rows"), l = (e) => o.recordRoute ? o.recordRoute(e) : null, i = s(() => Object.keys(u()));
21
- return (e, C) => (w(), p("div", {
21
+ setup(s) {
22
+ const o = s, { phone: a } = R(() => o.columns), l = u(() => o.loading ? "loading" : o.rows.length === 0 ? "empty" : "rows"), i = (e) => o.recordRoute && !o.pick ? o.recordRoute(e) : null, n = p(), r = () => Object.keys(n);
23
+ return (e, B) => (w(), y("div", {
22
24
  "aria-busy": o.loading || void 0,
23
25
  "data-test": "data-table"
24
26
  }, [
25
- y(R, {
27
+ f(L, {
26
28
  columns: o.columns,
27
29
  rows: o.rows,
28
30
  "row-key": o.rowKey,
29
- display: n.value,
30
- phone: f(a),
31
- link: l,
31
+ display: l.value,
32
+ phone: k(a),
33
+ link: i,
32
34
  "row-actions": o.rowActions,
33
35
  "row-label": o.rowLabel,
34
36
  "row-height": o.rowHeight,
35
37
  density: o.density,
36
38
  "actions-visible": o.actionsVisible,
37
39
  "skeleton-rows": o.skeletonRows,
38
- "row-class": o.rowClass
39
- }, m({ _: 2 }, [
40
- b(i.value, (t) => ({
40
+ "row-class": o.rowClass,
41
+ pick: o.pick,
42
+ "pick-label": o.pickLabel
43
+ }, b({ _: 2 }, [
44
+ m(r(), (t) => ({
41
45
  name: t,
42
46
  fn: h((c) => [
43
47
  v(e.$slots, t, _(g(c ?? {})))
44
48
  ])
45
49
  }))
46
- ]), 1032, ["columns", "rows", "row-key", "display", "phone", "row-actions", "row-label", "row-height", "density", "actions-visible", "skeleton-rows", "row-class"])
47
- ], 8, B));
50
+ ]), 1032, ["columns", "rows", "row-key", "display", "phone", "row-actions", "row-label", "row-height", "density", "actions-visible", "skeleton-rows", "row-class", "pick", "pick-label"])
51
+ ], 8, F));
48
52
  }
49
53
  });
50
54
  export {
51
- S as _
55
+ V as _
52
56
  };
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as B, useTemplateRef as C, computed as y, ref as v, openBlock as D, createBlock as z, unref as r, withCtx as m, createVNode as F, createElementVNode as b, normalizeClass as $, toDisplayString as h } from "vue";
2
2
  import { useI18n as q } from "vue-i18n";
3
3
  import { a as k } from "./error-CD7x0Jrz.js";
4
- import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang-DzuvFLj2.js";
4
+ import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang-DkpFEHUw.js";
5
5
  import { u as P } from "./describeError-Ctga6GcS.js";
6
6
  import { u as I } from "./format-B8mJm946.js";
7
- import { e as a, R as O } from "./index-DnYLRcv6.js";
7
+ import { e as a, R as O } from "./index-Cz4LtYKa.js";
8
8
  import { _ as W } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
9
9
  import { t as i } from "./toast-CqSDTWRX.js";
10
10
  import { u as Y } from "./useLoad-CYRVx6HW.js";
@@ -8,7 +8,7 @@ import { _ as F } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.
8
8
  import { _ as L } from "./SelectField.vue_vue_type_script_setup_true_lang-BJoAkBo2.js";
9
9
  import { _ as f } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
10
10
  import { u as A } from "./useSaveChrome-DuWm0Czf.js";
11
- import { P as D, b as G, i as I } from "./index-DoowoCS7.js";
11
+ import { P as D, b as G, i as I } from "./index-DrZIn13a.js";
12
12
  import { t as M } from "./toast-CqSDTWRX.js";
13
13
  import { u as O } from "./platform-q3cjODLx.js";
14
14
  import { b as U } from "./routeResource-DstM0hvf.js";
@@ -4,7 +4,7 @@ import { a as ge } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang
4
4
  import { u as L } from "./platform-q3cjODLx.js";
5
5
  import { _ as Q } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
6
6
  import { u as Y } from "./useLoad-CYRVx6HW.js";
7
- import { i as k, d as G } from "./index-DoowoCS7.js";
7
+ import { i as k, d as G } from "./index-DrZIn13a.js";
8
8
  import { u as Z } from "./FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js";
9
9
  import { _ as ee } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js";
10
10
  import { _ as U } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
@@ -23,7 +23,7 @@ import { _ as he } from "./OtpInput.vue_vue_type_script_setup_true_lang-gp4FfWAH
23
23
  import { _ as $e } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
24
24
  import { _ as qe } from "./SessionList.vue_vue_type_script_setup_true_lang-D4k5QeWS.js";
25
25
  import { _ as ke } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js";
26
- import { _ as Ce } from "./SignInTable.vue_vue_type_script_setup_true_lang-ALAuc0sI.js";
26
+ import { _ as Ce } from "./SignInTable.vue_vue_type_script_setup_true_lang-CIv34nRn.js";
27
27
  import { _ as Se } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js";
28
28
  const Pe = /* @__PURE__ */ A({
29
29
  __name: "DetailsPanel",
@@ -2,7 +2,7 @@ import { defineComponent as x, useTemplateRef as v, computed as w, ref as $, ope
2
2
  import { useI18n as N } from "vue-i18n";
3
3
  import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
4
  import { u as A } from "./describeError-Ctga6GcS.js";
5
- import { P as D, b as L, e as O, i as g, d as T } from "./index-DoowoCS7.js";
5
+ import { P as D, b as L, e as O, i as g, d as T } from "./index-DrZIn13a.js";
6
6
  import { _ as k } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
7
7
  import { t as b } from "./toast-CqSDTWRX.js";
8
8
  import { u as V } from "./platform-q3cjODLx.js";
@@ -15,7 +15,7 @@ import { _ as W } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.
15
15
  import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-DWfAUlnz.js";
16
16
  import { a as k, n as X } from "./useTypedEntry-aTfPBAhw.js";
17
17
  import { _ as Y } from "./PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js";
18
- import { n as q } from "./index-DnYLRcv6.js";
18
+ import { n as q } from "./index-Cz4LtYKa.js";
19
19
  import { u as ee } from "./platform-q3cjODLx.js";
20
20
  import { u as te } from "./useLoad-CYRVx6HW.js";
21
21
  function ne() {
@@ -6,7 +6,7 @@ import { u as D } from "./format-B8mJm946.js";
6
6
  import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
7
7
  import { e as b } from "./control-7EP4tjYy.js";
8
8
  import { u as U } from "./describeError-Ctga6GcS.js";
9
- import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-DoowoCS7.js";
9
+ import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-DrZIn13a.js";
10
10
  import { t as h } from "./toast-CqSDTWRX.js";
11
11
  import { u as j, h as G } from "./platform-q3cjODLx.js";
12
12
  import { b as H } from "./routeResource-DstM0hvf.js";
@@ -6,7 +6,7 @@ import { _ as N } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js"
6
6
  import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js";
7
7
  import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
8
8
  import { r as $ } from "./guards-Dve61KjR.js";
9
- import { u as C, a as E } from "./index-DoowoCS7.js";
9
+ import { u as C, a as E } from "./index-DrZIn13a.js";
10
10
  const V = { class: "flex flex-1 flex-col items-center justify-center gap-8" }, k = { class: "text-xl font-semibold text-content-strong" }, H = /* @__PURE__ */ d({
11
11
  __name: "SignInPage",
12
12
  setup(q) {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as _, computed as p, openBlock as y, createElementBlock as g, createVNode as l, unref as i, withCtx as s, createElementVNode as a, toDisplayString as r, createTextVNode as h } from "vue";
2
2
  import { useI18n as b } from "vue-i18n";
3
- import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-KPm5NrDE.js";
3
+ import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-ChS9ULwk.js";
4
4
  import { _ as v } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
5
5
  const w = {
6
6
  signed_in: { tone: "positive", byOther: !1 },
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as g, ref as m, watch as p, openBlock as c, createElementBlock as v, createVNode as i, unref as e, withCtx as w, createBlock as x, createCommentVNode as y, createElementVNode as V, toDisplayString as $ } from "vue";
2
2
  import { useI18n as N } from "vue-i18n";
3
- import { P as S, i as b } from "./index-DoowoCS7.js";
3
+ import { P as S, i as b } from "./index-DrZIn13a.js";
4
4
  import { u as k } from "./platform-q3cjODLx.js";
5
5
  import { b as I } from "./routeResource-DstM0hvf.js";
6
6
  import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
7
7
  import { u as C } from "./useLoad-CYRVx6HW.js";
8
8
  import { _ as E } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js";
9
9
  import { _ as B } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
10
- import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-ALAuc0sI.js";
10
+ import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-CIv34nRn.js";
11
11
  import { _ as h } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js";
12
12
  const U = {
13
13
  class: "flex min-w-0 flex-col gap-group-gap",
@@ -3,7 +3,7 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { u as F } from "./neighbors-BRf4Eh2R.js";
4
4
  import { _ as H } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
5
5
  import { u as J } from "./describeError-Ctga6GcS.js";
6
- import { i as w, P as Q, p as W, f as X, M as Y, g as Z, d as ee } from "./index-DoowoCS7.js";
6
+ import { i as w, P as Q, p as W, f as X, M as Y, g as Z, d as ee } from "./index-DrZIn13a.js";
7
7
  import { _ as se } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
8
8
  import { t as k } from "./toast-CqSDTWRX.js";
9
9
  import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-ROl9_pdO.js";
@@ -18,7 +18,7 @@ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a
18
18
  import { e as B } from "./control-7EP4tjYy.js";
19
19
  import { u as z, _ as K } from "./useCommand-BkONMn3X.js";
20
20
  import { u as U } from "./fieldMessages-C3Rpbktw.js";
21
- import { u as ce, s as le } from "./status-GT-QFBrB.js";
21
+ import { u as ce, s as le } from "./status-DJh5qgMg.js";
22
22
  import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
23
23
  const ue = /* @__PURE__ */ R({
24
24
  __name: "DeactivateDialog",
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as U, openBlock as p, createBlock as C, unref as e, withCtx as c, createVNode as r, mergeProps as i, useTemplateRef as V, computed as q, createTextVNode as z, toDisplayString as $, createCommentVNode as A, createElementBlock as S, normalizeClass as N } from "vue";
2
2
  import { useI18n as B } from "vue-i18n";
3
3
  import { useRouter as M } from "vue-router";
4
- import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-DzuvFLj2.js";
4
+ import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-DkpFEHUw.js";
5
5
  import { _ as I } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
6
6
  import { u as F } from "./format-B8mJm946.js";
7
7
  import { u as L } from "./platform-q3cjODLx.js";
8
8
  import { _ as G } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
- import { i as K, f as E, M as W } from "./index-DoowoCS7.js";
10
- import { U as j, u as H, s as J } from "./status-GT-QFBrB.js";
9
+ import { i as K, f as E, M as W } from "./index-DrZIn13a.js";
10
+ import { U as j, u as H, s as J } from "./status-DJh5qgMg.js";
11
11
  import { u as O } from "./environment-Dva-SG8D.js";
12
12
  import { u as Q } from "./languages-BShG9LpE.js";
13
13
  import { _ as X } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
@@ -17,6 +17,8 @@ declare const _default: <Row extends object, Col extends Column<Row>>(__VLS_prop
17
17
  density?: "regular" | "condensed";
18
18
  viewsPresentation?: "segmented" | "scope";
19
19
  actionsVisible?: boolean;
20
+ pick?: (row: Row) => void;
21
+ pickLabel?: string;
20
22
  } & Partial<{}>> & import("vue").PublicProps;
21
23
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
22
24
  attrs: any;
@@ -31,8 +31,13 @@ declare const _default: <Row extends object, Col extends Column<Row>>(__VLS_prop
31
31
  /** Rows to reserve the height of while loading, so the card does not jump when they land. */
32
32
  reserveRows?: number;
33
33
  rowClass?: (row: Row) => string | undefined;
34
+ /** A picker: the rows are choices (see `CollectionTable`). */
35
+ pick?: (row: Row) => void;
36
+ pickLabel?: string;
34
37
  } & Partial<{}>> & import("vue").PublicProps;
35
- expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
38
+ expose(exposed: import("vue").ShallowUnwrapRef<{
39
+ focusRows: () => boolean;
40
+ }>): void;
36
41
  attrs: any;
37
42
  slots: import("./slots").CellSlots<Row, Col> & {
38
43
  leading?: ((scope: {
@@ -19,6 +19,15 @@ declare const _default: <Row extends object, Col extends Column<Row>>(__VLS_prop
19
19
  * as a lead's contact actions: swipe and the context menu are enough there.
20
20
  */
21
21
  actionsVisible?: boolean;
22
+ /**
23
+ * A picker: the list is for choosing one row, as in a modal that assigns or selects. A click or tap on
24
+ * the row calls `pick(row)` (a button or link inside it keeps its own click), the arrows move the
25
+ * current row, Enter picks it, Down in the search field moves into the rows, and Enter in the search
26
+ * field picks the only row left. Instead of `recordRoute`: a row is a choice or a link, never both.
27
+ */
28
+ pick?: (row: Row) => void;
29
+ /** The accessible name of the choices ("Choose one" by default); say what is chosen. */
30
+ pickLabel?: string;
22
31
  } & Partial<{}>> & import("vue").PublicProps;
23
32
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
24
33
  attrs: any;
@@ -2,7 +2,8 @@ import type { Collection } from "./useCollection";
2
2
  declare const _default: <Row>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
3
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
4
4
  readonly onTouched?: ((keys: string[]) => any) | undefined;
5
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onTouched"> & {
5
+ readonly onSearchKey?: ((event: KeyboardEvent, settled: boolean) => any) | undefined;
6
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onTouched" | "onSearchKey"> & {
6
7
  collection: Collection<Row>;
7
8
  narrow: boolean;
8
9
  /** Phone rows sit on the canvas: the toolbar has no card of its own. */
@@ -13,7 +14,7 @@ declare const _default: <Row>(__VLS_props: NonNullable<Awaited<typeof __VLS_setu
13
14
  slots: {
14
15
  default?: () => unknown;
15
16
  };
16
- emit: (evt: "touched", keys: string[]) => void;
17
+ emit: ((evt: "touched", keys: string[]) => void) & ((evt: "searchKey", event: KeyboardEvent, settled: boolean) => void);
17
18
  }>) => import("vue").VNode & {
18
19
  __ctx?: Awaited<typeof __VLS_setup>;
19
20
  };
@@ -22,6 +22,9 @@ declare const _default: <Row extends object, const Col extends Column<Row, never
22
22
  actionsVisible?: boolean;
23
23
  /** Extra classes for a row, e.g. to set apart a total or the newest row. */
24
24
  rowClass?: (row: Row) => string | undefined;
25
+ /** A picker: a click or tap on the row calls `pick(row)`, the arrows and Enter do too (see `CollectionTable`); instead of `recordRoute`. */
26
+ pick?: (row: Row) => void;
27
+ pickLabel?: string;
25
28
  } & Partial<{}>> & import("vue").PublicProps;
26
29
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
27
30
  attrs: any;
@@ -1,8 +1,8 @@
1
1
  import { D as O, L as j, a as U, h as G, l as X, r as Z } from "../http-D_D9YbLH.js";
2
- import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-DzuvFLj2.js";
2
+ import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-DkpFEHUw.js";
3
3
  import { u as W } from "../neighbors-BRf4Eh2R.js";
4
- import { a as ee, b as te } from "../rowLayout-BkQWulan.js";
5
- import { _ as oe } from "../DataTable.vue_vue_type_script_setup_true_lang-KPm5NrDE.js";
4
+ import { a as ee, b as te } from "../rowLayout-D1cYQghV.js";
5
+ import { _ as oe } from "../DataTable.vue_vue_type_script_setup_true_lang-ChS9ULwk.js";
6
6
  import { defineComponent as y, openBlock as c, createElementBlock as d, Fragment as h, renderList as v, createBlock as k, unref as f, withCtx as C, normalizeClass as m, createVNode as p, createCommentVNode as g, computed as w, toValue as E } from "vue";
7
7
  import { _ } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
8
8
  import { _ as S } from "../Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js";
@@ -7,12 +7,14 @@ export interface RowInteractionOptions<Row> {
7
7
  label: () => ((row: Row) => string) | undefined;
8
8
  /** Where a click on the row goes. */
9
9
  target: (row: Row) => RouteLocationRaw | null;
10
+ /** A picker's choose: a click on the row picks it instead of going to `target`. */
11
+ pick?: () => ((row: Row) => void) | undefined;
10
12
  /** Opens the context menu at a point. */
11
13
  presentMenu: (x: number, y: number) => void;
12
14
  moreLabel: () => string;
13
15
  }
14
16
  /**
15
- * What makes a list row behave like a native one: a click opens the record (except on its links and
17
+ * What makes a list row behave like a native one: a click opens the record (or, in a picker, picks the row) (except on its links and
16
18
  * buttons, or while text is selected), a modified click opens a new tab, a right click or a long
17
19
  * press (iOS has no contextmenu for one) lists the row's actions, and the press that opened that
18
20
  * menu never also opens the record. Swipe actions are the row's links.