@wssto2/vue-core 0.4.17 → 0.4.18

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 (48) hide show
  1. package/dist/{Activity-DnFB6WXf.js → Activity-DB9ABAMb.js} +2 -2
  2. package/dist/{Changes-DMrQYv2e.js → Changes-IIczcs6O.js} +1 -1
  3. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-CVnZzaBm.js → CollectionPage.vue_vue_type_script_setup_true_lang-CUoyYpaW.js} +2 -2
  4. package/dist/{DateField.vue_vue_type_script_setup_true_lang-BIXzNzYo.js → DateField.vue_vue_type_script_setup_true_lang-8mvjzRA-.js} +1 -1
  5. package/dist/{DeadLetters-BF9PS4mA.js → DeadLetters-Bq5YpnvT.js} +2 -2
  6. package/dist/{General-yInbmj6I.js → General-DQruOZs2.js} +3 -3
  7. package/dist/{NewRolePage-09C3P6fE.js → NewRolePage-BcA8jBBQ.js} +2 -2
  8. package/dist/{Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js → Popover.vue_vue_type_script_setup_true_lang-BTOzgIQF.js} +12 -12
  9. package/dist/{ProfilePage-CvV44C0m.js → ProfilePage-BqdCzyax.js} +2 -2
  10. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-BqWoby16.js → RoleEditor.vue_vue_type_script_setup_true_lang-DPpCuJWk.js} +2 -2
  11. package/dist/{RolePage-DuIFjSKH.js → RolePage-IES_ADt5.js} +3 -3
  12. package/dist/{RolesPage-BzqBqils.js → RolesPage-D0K7tEL-.js} +2 -2
  13. package/dist/SelectField.vue_vue_type_script_setup_true_lang-DkbBJpYX.js +489 -0
  14. package/dist/{Sessions-_qmODKw2.js → Sessions-BfpiOhGs.js} +1 -1
  15. package/dist/{SettingsPage-Bz48sO08.js → SettingsPage-BnEpURcU.js} +2 -2
  16. package/dist/{SignIn-DJsTGQ79.js → SignIn-DrLE0gNr.js} +1 -1
  17. package/dist/{SignInPage-Bb78MIDk.js → SignInPage-CRynZCU2.js} +2 -2
  18. package/dist/{SignIns-yRjJrf47.js → SignIns-BQ8tISWn.js} +1 -1
  19. package/dist/{TextField.vue_vue_type_script_setup_true_lang-D3-R5XXG.js → TextField.vue_vue_type_script_setup_true_lang-CWgn-vGl.js} +97 -90
  20. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-DrLtIexs.js → TimeField.vue_vue_type_script_setup_true_lang-BebAIPeL.js} +1 -1
  21. package/dist/{UserRecord-4L0FrCty.js → UserRecord-CqmPm4Fv.js} +3 -3
  22. package/dist/{UsersList-ww_-FoAq.js → UsersList-CHAray61.js} +5 -5
  23. package/dist/access/index.js +1 -1
  24. package/dist/collection/index.js +1 -1
  25. package/dist/form/ComboField.vue.d.ts +11 -8
  26. package/dist/form/MultiSelectField.vue.d.ts +8 -5
  27. package/dist/form/OptionList.vue.d.ts +7 -4
  28. package/dist/form/SelectField.vue.d.ts +11 -8
  29. package/dist/form/SuggestionList.vue.d.ts +11 -6
  30. package/dist/form/index.d.ts +2 -0
  31. package/dist/form/index.js +981 -929
  32. package/dist/form/options.d.ts +18 -5
  33. package/dist/form/suggestions.d.ts +12 -12
  34. package/dist/form/useOptions.d.ts +12 -12
  35. package/dist/form/useRecordDialog.d.ts +47 -0
  36. package/dist/identity/index.js +1 -1
  37. package/dist/{index-C6vCe149.js → index-91Lo0hJy.js} +3 -3
  38. package/dist/{index-JjALCpwi.js → index-sYamgVg7.js} +11 -11
  39. package/dist/{index-DW9gyWL1.js → index-wlRejl73.js} +4 -4
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/notifications/index.js +1 -1
  43. package/dist/overlay/index.js +1 -1
  44. package/dist/shell/index.js +1 -1
  45. package/dist/{status-Cz54-7z7.js → status-B_IMA25a.js} +1 -1
  46. package/dist/{suggestions-BxMm6MQA.js → suggestions-DHJFKB26.js} +50 -50
  47. package/package.json +1 -1
  48. package/dist/SelectField.vue_vue_type_script_setup_true_lang-C1Flb1hA.js +0 -465
@@ -1,10 +1,10 @@
1
- import { defineComponent as O, useTemplateRef as z, computed as y, watch as ee, nextTick as te, openBlock as n, createElementBlock as i, withModifiers as oe, normalizeStyle as se, unref as s, createElementVNode as m, toDisplayString as r, createCommentVNode as u, Fragment as E, renderList as ne, normalizeClass as B, createBlock as A, createTextVNode as F, useModel as ae, ref as ie, mergeProps as le, createSlots as re, withCtx as q, withDirectives as ce, vModelDynamic as de, renderSlot as P, mergeModels as K, mergeDefaults as ue } from "vue";
1
+ import { defineComponent as O, useTemplateRef as z, computed as v, watch as ee, nextTick as te, openBlock as a, createElementBlock as l, withModifiers as oe, normalizeStyle as se, unref as s, createElementVNode as f, toDisplayString as r, createCommentVNode as p, Fragment as F, renderList as ne, normalizeClass as B, createBlock as A, renderSlot as L, createTextVNode as P, useModel as ae, ref as ie, mergeProps as le, createSlots as re, withCtx as q, withDirectives as ce, vModelDynamic as de, mergeModels as K, mergeDefaults as ue } from "vue";
2
2
  import { useI18n as G } from "vue-i18n";
3
3
  import { b as pe } from "./controlSurface-t7OEFESJ.js";
4
4
  import { a as me, c as fe, _ as he, f as ve, b as ge } from "./control-B_Nwtmag.js";
5
5
  import { _ as ye } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
6
  import { u as xe } from "./anchored-Cj4--8dT.js";
7
- import { l as U, m as be, u as ke, c as _e } from "./suggestions-BxMm6MQA.js";
7
+ import { l as U, m as be, u as ke, c as _e } from "./suggestions-DHJFKB26.js";
8
8
  const we = ["id", "aria-busy"], $e = { class: "min-h-0 flex-1 overflow-y-auto p-1.5" }, Me = {
9
9
  key: 0,
10
10
  class: "px-2.5 pb-1 pt-1.5 text-caption font-semibold uppercase text-content-disabled",
@@ -42,67 +42,74 @@ const we = ["id", "aria-busy"], $e = { class: "min-h-0 flex-1 overflow-y-auto p-
42
42
  status: {},
43
43
  recent: { type: Boolean },
44
44
  emptyMessage: { type: Boolean },
45
- hint: {}
45
+ hint: { default: void 0 },
46
+ selected: { default: null }
46
47
  },
47
48
  emits: ["pick", "hover"],
48
- setup(w, { emit: L }) {
49
- const o = w, t = L, { t: c } = G(), b = z("panel"), k = y(() => U(o.open, o.items.length, o.status, o.emptyMessage)), _ = y(() => o.status === "loading"), f = (h) => be(h.label, o.query), { style: S } = xe(b, {
49
+ setup(_, { emit: S }) {
50
+ const o = _, t = S, { t: c } = G(), x = z("panel"), b = v(() => U(o.open, o.items.length, o.status, o.emptyMessage)), k = v(() => o.status === "loading"), w = (u) => u, g = (u) => be(u.label, o.query), { style: C } = xe(x, {
50
51
  reference: () => o.anchor,
51
52
  placement: () => "bottom-start",
52
53
  offset: 4,
53
54
  padding: 8,
54
- fit: (h, v) => {
55
- h.style.width = `${o.anchor?.offsetWidth ?? 0}px`, h.style.maxHeight = `${Math.max(120, Math.min(320, v.height))}px`;
55
+ fit: (u, h) => {
56
+ u.style.width = `${o.anchor?.offsetWidth ?? 0}px`, u.style.maxHeight = `${Math.max(120, Math.min(320, h.height))}px`;
56
57
  }
57
58
  });
58
- return ee(() => o.highlighted, () => void te(() => b.value?.querySelector("[aria-selected='true']")?.scrollIntoView?.({ block: "nearest" }))), (h, v) => k.value ? (n(), i("div", {
59
+ return ee(() => o.highlighted, () => void te(() => x.value?.querySelector("[aria-selected='true']")?.scrollIntoView?.({ block: "nearest" }))), (u, h) => b.value ? (a(), l("div", {
59
60
  key: 0,
60
61
  id: `${o.id}-list`,
61
62
  ref_key: "panel",
62
- ref: b,
63
+ ref: x,
63
64
  role: "listbox",
64
- "aria-busy": _.value || void 0,
65
- style: se(s(S)),
65
+ "aria-busy": k.value || void 0,
66
+ style: se(s(C)),
66
67
  "data-test": "suggestion-list",
67
68
  class: "z-1000 flex flex-col overflow-hidden rounded-menu bg-surface-overlay shadow-float",
68
- onMousedown: v[0] || (v[0] = oe(() => {
69
+ onMousedown: h[0] || (h[0] = oe(() => {
69
70
  }, ["prevent"]))
70
71
  }, [
71
- m("div", $e, [
72
- o.recent ? (n(), i("p", Me, r(s(c)("core.form.suggestions.recent")), 1)) : u("", !0),
73
- o.items.length > 0 ? (n(!0), i(E, { key: 1 }, ne(o.items, (a, g) => (n(), i("div", {
74
- id: `${o.id}-option-${g}`,
75
- key: String(a.value),
72
+ f("div", $e, [
73
+ o.recent ? (a(), l("p", Me, r(s(c)("core.form.suggestions.recent")), 1)) : p("", !0),
74
+ o.items.length > 0 ? (a(!0), l(F, { key: 1 }, ne(o.items, (i, n) => (a(), l("div", {
75
+ id: `${o.id}-option-${n}`,
76
+ key: String(i.value),
76
77
  role: "option",
77
- "aria-selected": g === o.highlighted,
78
- "aria-disabled": a.disabled || void 0,
78
+ "aria-selected": n === o.highlighted,
79
+ "aria-disabled": i.disabled || void 0,
79
80
  "data-test": "suggestion-option",
80
- class: B(["flex cursor-pointer items-center gap-2.5 rounded-control px-2.5 py-2", [g === o.highlighted ? "bg-tint-soft" : "hover:bg-fill", a.disabled ? "cursor-not-allowed opacity-45" : "", _.value ? "opacity-60" : ""]]),
81
- onMouseenter: (l) => t("hover", g),
82
- onClick: (l) => !a.disabled && t("pick", a)
81
+ class: B(["flex cursor-pointer items-center gap-2.5 rounded-control px-2.5 py-2", [n === o.highlighted ? "bg-tint-soft" : "hover:bg-fill", i.disabled ? "cursor-not-allowed opacity-45" : "", k.value ? "opacity-60" : ""]]),
82
+ onMouseenter: (d) => t("hover", n),
83
+ onClick: (d) => !i.disabled && t("pick", i)
83
84
  }, [
84
- o.recent ? (n(), A(s(ye), {
85
+ o.recent ? (a(), A(s(ye), {
85
86
  key: 0,
86
87
  name: "history",
87
88
  size: 16,
88
89
  class: "shrink-0 text-content-disabled"
89
- })) : u("", !0),
90
- m("span", Be, [
91
- m("span", Le, [
92
- o.recent ? (n(), i(E, { key: 0 }, [
93
- F(r(a.label), 1)
94
- ], 64)) : (n(), i(E, { key: 1 }, [
95
- F(r(f(a).before), 1),
96
- f(a).match ? (n(), i("strong", Se, r(f(a).match), 1)) : u("", !0),
97
- F(r(f(a).after), 1)
98
- ], 64))
99
- ]),
100
- a.description ? (n(), i("span", Ce, r(a.description), 1)) : u("", !0)
90
+ })) : p("", !0),
91
+ L(u.$slots, "option", {
92
+ option: w(i),
93
+ active: n === o.highlighted,
94
+ selected: o.selected === i.value
95
+ }, () => [
96
+ f("span", Be, [
97
+ f("span", Le, [
98
+ o.recent ? (a(), l(F, { key: 0 }, [
99
+ P(r(i.label), 1)
100
+ ], 64)) : (a(), l(F, { key: 1 }, [
101
+ P(r(g(i).before), 1),
102
+ g(i).match ? (a(), l("strong", Se, r(g(i).match), 1)) : p("", !0),
103
+ P(r(g(i).after), 1)
104
+ ], 64))
105
+ ]),
106
+ i.description ? (a(), l("span", Ce, r(i.description), 1)) : p("", !0)
107
+ ])
101
108
  ])
102
- ], 42, qe))), 128)) : o.status === "loading" ? (n(), i("p", De, r(s(c)("core.form.select.loading")), 1)) : o.status === "failed" ? (n(), i("p", Ve, r(s(c)("core.form.select.failed")), 1)) : (n(), i("p", Te, r(s(c)("core.form.select.no_matches")), 1))
109
+ ], 42, qe))), 128)) : o.status === "loading" ? (a(), l("p", De, r(s(c)("core.form.select.loading")), 1)) : o.status === "failed" ? (a(), l("p", Ve, r(s(c)("core.form.select.failed")), 1)) : (a(), l("p", Te, r(s(c)("core.form.select.no_matches")), 1))
103
110
  ]),
104
- o.hint && o.items.length > 0 ? (n(), i("p", Ee, r(o.hint), 1)) : u("", !0)
105
- ], 44, we)) : u("", !0);
111
+ o.hint && o.items.length > 0 ? (a(), l("p", Ee, r(o.hint), 1)) : p("", !0)
112
+ ], 44, we)) : p("", !0);
106
113
  }
107
114
  }), Pe = {
108
115
  key: 0,
@@ -156,130 +163,130 @@ const we = ["id", "aria-busy"], $e = { class: "min-h-0 flex-1 overflow-y-auto p-
156
163
  modelModifiers: {}
157
164
  }),
158
165
  emits: /* @__PURE__ */ K(["picked"], ["update:modelValue"]),
159
- setup(w, { expose: L, emit: o }) {
160
- const t = w, c = ae(w, "modelValue"), b = o, k = z("input"), _ = z("anchor"), f = !!me(), S = fe("text", () => t.error ? "error" : t.disabled ? "locked" : "rest"), h = y(() => f ? pe(t.width) : "w-full"), { t: v } = G(), a = (e) => typeof e == "string" ? { value: e, label: e } : { value: e.text, label: e.text, ...e.detail !== void 0 ? { description: e.detail } : {} }, g = y(() => {
166
+ setup(_, { expose: S, emit: o }) {
167
+ const t = _, c = ae(_, "modelValue"), x = o, b = z("input"), k = z("anchor"), w = !!me(), g = fe("text", () => t.error ? "error" : t.disabled ? "locked" : "rest"), C = v(() => w ? pe(t.width) : "w-full"), { t: u } = G(), h = (e) => typeof e == "string" ? { value: e, label: e } : { value: e.text, label: e.text, ...e.detail !== void 0 ? { description: e.detail } : {} }, i = v(() => {
161
168
  const e = t.suggestions;
162
169
  if (e)
163
- return typeof e == "function" ? async (p, x) => (await e(p, x)).map(a) : e.map(a);
164
- }), l = y(() => g.value !== void 0), d = ke({
165
- source: () => g.value,
170
+ return typeof e == "function" ? async (m, y) => (await e(m, y)).map(h) : e.map(h);
171
+ }), n = v(() => i.value !== void 0), d = ke({
172
+ source: () => i.value,
166
173
  minLength: () => t.suggestionsMinLength,
167
174
  debounce: () => t.suggestionsDebounce,
168
175
  limit: () => t.suggestionsLimit,
169
176
  listAllWhenEmpty: !1,
170
177
  recents: () => t.recents
171
- }), { items: C, open: D, status: N, highlighted: R, showingRecent: W } = d, H = ie(!0), V = () => {
172
- const e = k.value;
178
+ }), { items: D, open: V, status: N, highlighted: R, showingRecent: W } = d, H = ie(!0), T = () => {
179
+ const e = b.value;
173
180
  H.value = !e || e.selectionStart === e.value.length && e.selectionEnd === e.value.length;
174
- }, $ = y(() => l.value && D.value && !W.value && H.value && d.current.value ? _e(c.value, d.current.value.label) : ""), I = y(() => U(D.value, C.value.length, N.value, !1));
181
+ }, $ = v(() => n.value && V.value && !W.value && H.value && d.current.value ? _e(c.value, d.current.value.label) : ""), I = v(() => U(V.value, D.value.length, N.value, !1));
175
182
  function j(e) {
176
- V(), l.value && d.ask(e.target.value);
183
+ T(), n.value && d.ask(e.target.value);
177
184
  }
178
- function T(e) {
179
- c.value = e.value, d.remember(e), d.close(), b("picked", { text: e.value, ...e.description !== void 0 ? { detail: e.description } : {} });
185
+ function E(e) {
186
+ c.value = e.value, d.remember(e), d.close(), x("picked", { text: e.value, ...e.description !== void 0 ? { detail: e.description } : {} });
180
187
  }
181
188
  function J() {
182
- l.value && c.value === "" && d.show("");
189
+ n.value && c.value === "" && d.show("");
183
190
  }
184
191
  function Q() {
185
192
  const e = d.current.value;
186
- return !$.value || !e ? !1 : (T(e), !0);
193
+ return !$.value || !e ? !1 : (E(e), !0);
187
194
  }
188
195
  const X = (e) => {
189
- l.value && d.keydown(e, { pick: T, enterNeedsMove: !0, complete: Q });
196
+ n.value && d.keydown(e, { pick: E, enterNeedsMove: !0, complete: Q });
190
197
  };
191
- return L({ focus: () => k.value?.focus() }), (e, p) => (n(), A(he, le(s(ve)(t), {
198
+ return S({ focus: () => b.value?.focus() }), (e, m) => (a(), A(he, le(s(ve)(t), {
192
199
  value: c.value,
193
200
  prefix: t.prefix,
194
201
  suffix: t.suffix,
195
202
  "value-style": t.mono ? "mono" : void 0
196
203
  }), re({
197
- default: q(({ id: x, describedby: Y, invalid: Z }) => [
198
- m("div", {
204
+ default: q(({ id: y, describedby: Y, invalid: Z }) => [
205
+ f("div", {
199
206
  ref_key: "anchor",
200
- ref: _,
201
- class: B(["flex items-center gap-1.5", [s(S), h.value]])
207
+ ref: k,
208
+ class: B(["flex items-center gap-1.5", [s(g), C.value]])
202
209
  }, [
203
- t.prefix ? (n(), i("span", Pe, r(t.prefix), 1)) : u("", !0),
204
- m("div", ze, [
205
- ce(m("input", {
206
- id: x,
210
+ t.prefix ? (a(), l("span", Pe, r(t.prefix), 1)) : p("", !0),
211
+ f("div", ze, [
212
+ ce(f("input", {
213
+ id: y,
207
214
  ref_key: "input",
208
- ref: k,
209
- "onUpdate:modelValue": p[0] || (p[0] = (M) => c.value = M),
215
+ ref: b,
216
+ "onUpdate:modelValue": m[0] || (m[0] = (M) => c.value = M),
210
217
  type: t.type,
211
218
  name: t.name,
212
219
  placeholder: t.placeholder,
213
220
  maxlength: t.maxLength,
214
- autocomplete: l.value ? "off" : t.autocomplete,
221
+ autocomplete: n.value ? "off" : t.autocomplete,
215
222
  disabled: t.disabled,
216
223
  required: t.required,
217
224
  "aria-required": t.required || void 0,
218
225
  "aria-invalid": Z || void 0,
219
226
  "aria-describedby": Y,
220
- role: l.value ? "combobox" : void 0,
221
- "aria-autocomplete": l.value ? "both" : void 0,
222
- "aria-expanded": l.value ? I.value : void 0,
223
- "aria-controls": l.value ? `${x}-list` : void 0,
224
- "aria-activedescendant": l.value && I.value && s(C).length > 0 ? `${x}-option-${s(R)}` : void 0,
225
- class: B(["block w-full min-w-0 border-0 bg-transparent px-0 py-1 text-body text-content-strong placeholder:text-content-disabled focus:outline-none focus:ring-0 disabled:cursor-not-allowed", [t.mono ? "font-mono" : "", f && !l.value ? "compact:text-right" : ""]]),
227
+ role: n.value ? "combobox" : void 0,
228
+ "aria-autocomplete": n.value ? "both" : void 0,
229
+ "aria-expanded": n.value ? I.value : void 0,
230
+ "aria-controls": n.value ? `${y}-list` : void 0,
231
+ "aria-activedescendant": n.value && I.value && s(D).length > 0 ? `${y}-option-${s(R)}` : void 0,
232
+ class: B(["block w-full min-w-0 border-0 bg-transparent px-0 py-1 text-body text-content-strong placeholder:text-content-disabled focus:outline-none focus:ring-0 disabled:cursor-not-allowed", [t.mono ? "font-mono" : "", w && !n.value ? "compact:text-right" : ""]]),
226
233
  onInput: j,
227
- onKeyup: V,
228
- onClick: V,
234
+ onKeyup: T,
235
+ onClick: T,
229
236
  onKeydown: X,
230
237
  onFocus: J,
231
- onBlur: p[1] || (p[1] = (M) => s(d).close())
238
+ onBlur: m[1] || (m[1] = (M) => s(d).close())
232
239
  }, null, 42, Ae), [
233
240
  [de, c.value]
234
241
  ]),
235
- $.value ? (n(), i("span", {
242
+ $.value ? (a(), l("span", {
236
243
  key: 0,
237
244
  "aria-hidden": "true",
238
245
  class: B(["pointer-events-none absolute inset-0 flex items-center overflow-hidden whitespace-pre py-1 text-body", t.mono ? "font-mono" : ""]),
239
246
  "data-test": "completion"
240
247
  }, [
241
- m("span", Ne, r(c.value), 1),
242
- m("span", Re, r($.value), 1)
243
- ], 2)) : u("", !0)
248
+ f("span", Ne, r(c.value), 1),
249
+ f("span", Re, r($.value), 1)
250
+ ], 2)) : p("", !0)
244
251
  ]),
245
- t.suffix ? (n(), i("span", We, r(t.suffix), 1)) : u("", !0)
252
+ t.suffix ? (a(), l("span", We, r(t.suffix), 1)) : p("", !0)
246
253
  ], 2),
247
- l.value ? (n(), A(Fe, {
254
+ n.value ? (a(), A(Fe, {
248
255
  key: 0,
249
- id: x,
250
- anchor: _.value,
251
- open: s(D),
252
- items: s(C),
256
+ id: y,
257
+ anchor: k.value,
258
+ open: s(V),
259
+ items: s(D),
253
260
  highlighted: s(R),
254
261
  query: c.value,
255
262
  status: s(N),
256
263
  recent: s(W),
257
264
  "empty-message": !1,
258
- hint: $.value ? s(v)("core.form.suggestions.keys_complete") : s(v)("core.form.suggestions.keys_pick"),
259
- onPick: T,
260
- onHover: p[2] || (p[2] = (M) => s(d).highlight(M))
261
- }, null, 8, ["id", "anchor", "open", "items", "highlighted", "query", "status", "recent", "hint"])) : u("", !0)
265
+ hint: $.value ? s(u)("core.form.suggestions.keys_complete") : s(u)("core.form.suggestions.keys_pick"),
266
+ onPick: E,
267
+ onHover: m[2] || (m[2] = (M) => s(d).highlight(M))
268
+ }, null, 8, ["id", "anchor", "open", "items", "highlighted", "query", "status", "recent", "hint"])) : p("", !0)
262
269
  ]),
263
270
  _: 2
264
271
  }, [
265
272
  e.$slots.trailing ? {
266
273
  name: "trailing",
267
274
  fn: q(() => [
268
- P(e.$slots, "trailing")
275
+ L(e.$slots, "trailing")
269
276
  ]),
270
277
  key: "0"
271
278
  } : void 0,
272
279
  e.$slots.labelTrailing ? {
273
280
  name: "labelTrailing",
274
281
  fn: q(() => [
275
- P(e.$slots, "labelTrailing")
282
+ L(e.$slots, "labelTrailing")
276
283
  ]),
277
284
  key: "1"
278
285
  } : void 0,
279
286
  e.$slots.readonly ? {
280
287
  name: "readonly",
281
288
  fn: q(() => [
282
- P(e.$slots, "readonly")
289
+ L(e.$slots, "readonly")
283
290
  ]),
284
291
  key: "2"
285
292
  } : void 0
@@ -4,7 +4,7 @@ import { _ as Z } from "./DateButton.vue_vue_type_script_setup_true_lang-EcqrfWK
4
4
  import { u as ee } from "./format-D8X4zsx6.js";
5
5
  import { _ as te } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
6
  import { u as oe } from "./mediaQuery-CygcXmFW.js";
7
- import { _ as le } from "./Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js";
7
+ import { _ as le } from "./Popover.vue_vue_type_script_setup_true_lang-BTOzgIQF.js";
8
8
  import { c as ae, _ as re, f as se, b as ie } from "./control-B_Nwtmag.js";
9
9
  import { d as ne, r as ue, t as F, p as me, u as de, a as ce, i as L, _ as pe, b as fe, c as ve } from "./useTypedEntry-C7k7Dyl-.js";
10
10
  function be(i) {
@@ -3,7 +3,7 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { a as F } from "./neighbors-DVN_cADL.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-B-NMa--w.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-JjALCpwi.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-sYamgVg7.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-CW81A_bn.js";
@@ -18,8 +18,8 @@ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-BokxZ7LU
18
18
  import { e as B } from "./control-B_Nwtmag.js";
19
19
  import { u as z, _ as K } from "./useCommand-YN9EMb7s.js";
20
20
  import { u as U } from "./fieldMessages-6HVzSDqG.js";
21
- import { u as ce, s as le } from "./status-Cz54-7z7.js";
22
- import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-D3-R5XXG.js";
21
+ import { u as ce, s as le } from "./status-B_IMA25a.js";
22
+ import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-CWgn-vGl.js";
23
23
  const ue = /* @__PURE__ */ R({
24
24
  __name: "DeactivateDialog",
25
25
  props: {
@@ -1,18 +1,18 @@
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-CVnZzaBm.js";
4
+ import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-CUoyYpaW.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-D8X4zsx6.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-JjALCpwi.js";
10
- import { U as j, u as H, s as J } from "./status-Cz54-7z7.js";
9
+ import { i as K, f as E, M as W } from "./index-sYamgVg7.js";
10
+ import { U as j, u as H, s as J } from "./status-B_IMA25a.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-BokxZ7LU.js";
14
- import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-C1Flb1hA.js";
15
- import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-D3-R5XXG.js";
14
+ import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-DkbBJpYX.js";
15
+ import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-CWgn-vGl.js";
16
16
  import { u as Z, _ as ee } from "./useCommand-YN9EMb7s.js";
17
17
  import { t as se } from "./toast-CqSDTWRX.js";
18
18
  import { u as te } from "./fieldMessages-6HVzSDqG.js";
@@ -1,4 +1,4 @@
1
- import { _ as a, i as c, j as o, c as r, b as n, k as i, l as u, p as l, m as p, n as t, u as d, f as m } from "../index-DW9gyWL1.js";
1
+ import { _ as a, i as c, j as o, c as r, b as n, k as i, l as u, p as l, m as p, n as t, u as d, f as m } from "../index-wlRejl73.js";
2
2
  export {
3
3
  a as BindingRow,
4
4
  c as PersonAccess,
@@ -1,5 +1,5 @@
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-CVnZzaBm.js";
2
+ import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-CUoyYpaW.js";
3
3
  import { u as W, a as Y } from "../neighbors-DVN_cADL.js";
4
4
  import { a as te, b as se } from "../rowLayout-BFz4Kdoy.js";
5
5
  import { _ as ae } from "../DataTable.vue_vue_type_script_setup_true_lang-Wuvo-l_z.js";
@@ -1,19 +1,19 @@
1
1
  import { type ControlWidth } from "../controls";
2
2
  import { type FieldProps, type FieldSlots } from "./field";
3
- import type { SelectOption } from "./options";
4
- declare const _default: <Value extends string | number>(__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
+ import type { OptionSlotScope, SelectOption } from "./options";
4
+ declare const _default: <Value extends string | number, Meta = undefined>(__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<{
5
5
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
6
6
  readonly "onUpdate:modelValue"?: ((value: Value | null) => any) | undefined;
7
- readonly onPicked?: ((option: SelectOption<Value>) => any) | undefined;
7
+ readonly onPicked?: ((option: SelectOption<Value, Meta>) => any) | undefined;
8
8
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue" | "onPicked"> & (FieldProps & {
9
9
  /** A fixed list, filtered locally. */
10
- options?: readonly SelectOption<Value>[];
10
+ options?: readonly SelectOption<Value, Meta>[];
11
11
  /** Searches the server; the answer for the text typed. */
12
12
  search?: (query: string, context: {
13
13
  signal: AbortSignal;
14
- }) => Promise<readonly SelectOption<Value>[]>;
14
+ }) => Promise<readonly SelectOption<Value, Meta>[]>;
15
15
  /** The option of the current value when the caller already has it (a saved record's customer). */
16
- selected?: SelectOption<Value> | null;
16
+ selected?: SelectOption<Value, Meta> | null;
17
17
  placeholder?: string;
18
18
  /** The fewest characters before `search` is asked. */
19
19
  minLength?: number;
@@ -31,8 +31,11 @@ declare const _default: <Value extends string | number>(__VLS_props: NonNullable
31
31
  focus: () => void | undefined;
32
32
  }>): void;
33
33
  attrs: any;
34
- slots: FieldSlots;
35
- emit: ((evt: "picked", option: SelectOption<Value>) => void) & ((evt: "update:modelValue", value: Value | null) => void);
34
+ slots: FieldSlots & {
35
+ /** Replaces what an option row says (an icon, a badge); the row, its keys and roles stay. */
36
+ option?: (scope: OptionSlotScope<Value, Meta>) => unknown;
37
+ };
38
+ emit: ((evt: "picked", option: SelectOption<Value, Meta>) => void) & ((evt: "update:modelValue", value: Value | null) => void);
36
39
  }>) => import("vue").VNode & {
37
40
  __ctx?: Awaited<typeof __VLS_setup>;
38
41
  };
@@ -1,13 +1,13 @@
1
1
  import { type FieldProps, type FieldSlots } from "./field";
2
- import type { SelectOption } from "./options";
2
+ import type { OptionSlotScope, SelectOption } from "./options";
3
3
  import { type OptionsSource } from "./useOptions";
4
- declare const _default: <Value extends string | number>(__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<{
4
+ declare const _default: <Value extends string | number, Meta = undefined>(__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<{
5
5
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
6
6
  readonly "onUpdate:modelValue"?: ((value: Value[]) => any) | undefined;
7
7
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & (FieldProps & {
8
- options: OptionsSource<Value>;
8
+ options: OptionsSource<Value, Meta>;
9
9
  /** The options of the current values when the caller already has them (a saved record's equipment): their labels show before the options arrive, or when they do not contain them. */
10
- selected?: readonly SelectOption<Value>[];
10
+ selected?: readonly SelectOption<Value, Meta>[];
11
11
  placeholder?: string;
12
12
  searchFrom?: number;
13
13
  } & {
@@ -15,7 +15,10 @@ declare const _default: <Value extends string | number>(__VLS_props: NonNullable
15
15
  }) & Partial<{}>> & import("vue").PublicProps;
16
16
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
17
17
  attrs: any;
18
- slots: FieldSlots;
18
+ slots: FieldSlots & {
19
+ /** Replaces what an option row says (an icon, a badge); the row, its check, keys and roles stay. */
20
+ option?: (scope: OptionSlotScope<Value, Meta>) => unknown;
21
+ };
19
22
  emit: (evt: "update:modelValue", value: Value[]) => void;
20
23
  }>) => import("vue").VNode & {
21
24
  __ctx?: Awaited<typeof __VLS_setup>;
@@ -1,11 +1,11 @@
1
- import { type SelectOption } from "./options";
1
+ import { type OptionSlotScope, type SelectOption } from "./options";
2
2
  import type { SuggestionStatus } from "./suggestions";
3
- declare const _default: <Value extends string | number>(__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
+ declare const _default: <Value extends string | number, Meta = undefined>(__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<{
4
4
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
5
5
  readonly onSelect?: ((value: Value | null) => any) | undefined;
6
6
  readonly onRetry?: (() => any) | undefined;
7
7
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onSelect" | "onRetry"> & {
8
- options: readonly SelectOption<Value>[];
8
+ options: readonly SelectOption<Value, Meta>[];
9
9
  /** The chosen value, or the chosen values when `multiple`. */
10
10
  modelValue?: Value | null | readonly Value[];
11
11
  multiple?: boolean;
@@ -20,7 +20,10 @@ declare const _default: <Value extends string | number>(__VLS_props: NonNullable
20
20
  } & Partial<{}>> & import("vue").PublicProps;
21
21
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
22
22
  attrs: any;
23
- slots: {};
23
+ slots: {
24
+ /** Replaces what a row says (the dot, label and description): an icon, a badge. The row, its check, keys and roles stay. */
25
+ option?: (scope: OptionSlotScope<Value, Meta>) => unknown;
26
+ };
24
27
  emit: ((evt: "select", value: Value | null) => void) & ((evt: "retry") => void);
25
28
  }>) => import("vue").VNode & {
26
29
  __ctx?: Awaited<typeof __VLS_setup>;
@@ -1,13 +1,13 @@
1
1
  import { type FieldProps, type FieldSlots } from "./field";
2
- import type { SelectOption } from "./options";
3
- import { type OptionsSource } from "./useOptions";
4
- declare const _default: <Value extends string | number, Clearable extends boolean = false>(__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<{
2
+ import type { OptionSlotScope, SelectOption } from "./options";
3
+ import { type AsyncOptions, type OptionsSource } from "./useOptions";
4
+ declare const _default: <Value extends string | number, Clearable extends boolean = false, Meta = undefined, Source extends OptionsSource<Value, Meta> = OptionsSource<Value, Meta>>(__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<{
5
5
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
6
- readonly "onUpdate:modelValue"?: ((value: Clearable extends true ? Value | null : Value) => any) | undefined;
6
+ readonly "onUpdate:modelValue"?: ((value: Clearable extends true ? Value | null : Source extends AsyncOptions<Value, Meta> ? Value | null : Value) => any) | undefined;
7
7
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & (FieldProps & {
8
- options: OptionsSource<Value>;
8
+ options: Source & OptionsSource<Value, Meta>;
9
9
  /** The option of the current value when the caller already has it (a saved record's model): its label shows before the options arrive, or when they do not contain it. */
10
- selected?: SelectOption<Value> | null;
10
+ selected?: SelectOption<Value, Meta> | null;
11
11
  placeholder?: string;
12
12
  clearable?: Clearable;
13
13
  modelValue?: Value | null;
@@ -16,8 +16,11 @@ declare const _default: <Value extends string | number, Clearable extends boolea
16
16
  }) & Partial<{}>> & import("vue").PublicProps;
17
17
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
18
18
  attrs: any;
19
- slots: FieldSlots;
20
- emit: (evt: "update:modelValue", value: Clearable extends true ? Value | null : Value) => void;
19
+ slots: FieldSlots & {
20
+ /** Replaces what an option row says (an icon, a badge); the row, its check, keys and roles stay. */
21
+ option?: (scope: OptionSlotScope<Value, Meta>) => unknown;
22
+ };
23
+ emit: (evt: "update:modelValue", value: Clearable extends true ? Value | null : Source extends AsyncOptions<Value, Meta> ? Value | null : Value) => void;
21
24
  }>) => import("vue").VNode & {
22
25
  __ctx?: Awaited<typeof __VLS_setup>;
23
26
  };
@@ -1,15 +1,15 @@
1
- import type { SelectOption } from "./options";
1
+ import type { OptionSlotScope, SelectOption } from "./options";
2
2
  import { type SuggestionStatus } from "./suggestions";
3
- declare const _default: <Value extends string | number>(__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
+ declare const _default: <Value extends string | number, Meta = undefined>(__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<{
4
4
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
5
- readonly onPick?: ((option: SelectOption<Value>) => any) | undefined;
5
+ readonly onPick?: ((option: SelectOption<Value, Meta>) => any) | undefined;
6
6
  readonly onHover?: ((index: number) => any) | undefined;
7
7
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onPick" | "onHover"> & {
8
8
  /** The input's id: the list and its rows are named from it (`aria-controls`, `aria-activedescendant`). */
9
9
  id: string;
10
10
  anchor: HTMLElement | null;
11
11
  open: boolean;
12
- items: readonly SelectOption<Value>[];
12
+ items: readonly SelectOption<Value, Meta>[];
13
13
  highlighted: number;
14
14
  query: string;
15
15
  status: SuggestionStatus;
@@ -19,11 +19,16 @@ declare const _default: <Value extends string | number>(__VLS_props: NonNullable
19
19
  emptyMessage: boolean;
20
20
  /** The line of keys under the list (hidden on touch screens). */
21
21
  hint?: string;
22
+ /** The chosen value, for the `#option` slot's `selected`. */
23
+ selected?: Value | null;
22
24
  } & Partial<{}>> & import("vue").PublicProps;
23
25
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
24
26
  attrs: any;
25
- slots: {};
26
- emit: ((evt: "pick", option: SelectOption<Value>) => void) & ((evt: "hover", index: number) => void);
27
+ slots: {
28
+ /** Replaces what a row says (label with the match marked, and detail). The row, its keys and roles stay. */
29
+ option?: (scope: OptionSlotScope<Value, Meta>) => unknown;
30
+ };
31
+ emit: ((evt: "pick", option: SelectOption<Value, Meta>) => void) & ((evt: "hover", index: number) => void);
27
32
  }>) => import("vue").VNode & {
28
33
  __ctx?: Awaited<typeof __VLS_setup>;
29
34
  };
@@ -68,6 +68,8 @@ export type { SaveChromeOptions } from "./useSaveChrome";
68
68
  export { default as CommandDialog } from "./CommandDialog.vue";
69
69
  export { useCommand } from "./useCommand";
70
70
  export type { Command, CommandOptions } from "./useCommand";
71
+ export { useRecordDialog } from "./useRecordDialog";
72
+ export type { RecordDialog, RecordDialogOptions } from "./useRecordDialog";
71
73
  export { default as NumberCell } from "./NumberCell.vue";
72
74
  export { useStepForm } from "./steps";
73
75
  export type { StepDefinition, StepDialogBinding, StepDraftOptions, StepFlow, StepFormOptions, StepState } from "./steps";