@wssto2/vue-core 0.5.2 → 0.5.4

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 (57) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js → ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js} +1 -1
  3. package/dist/{Activity-dpY2kIs2.js → Activity-DUjDaPfP.js} +4 -4
  4. package/dist/{Changes-CL8F1w8q.js → Changes-B0tZO6BZ.js} +3 -3
  5. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-l-e-6WeS.js → CollectionPage.vue_vue_type_script_setup_true_lang-o_Pj-JcD.js} +2 -2
  6. package/dist/{DateField.vue_vue_type_script_setup_true_lang-DRuWzSaX.js → DateField.vue_vue_type_script_setup_true_lang-CDg31ZU7.js} +1 -1
  7. package/dist/{DeadLetters-DopyRRx0.js → DeadLetters-IgVHao84.js} +2 -2
  8. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js → FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js} +1 -1
  9. package/dist/{FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js → FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js} +1 -1
  10. package/dist/{General-mrVzi-5R.js → General-C40HxupS.js} +6 -6
  11. package/dist/{NewRolePage-sfr7tQs5.js → NewRolePage-Bhy8KJO1.js} +2 -2
  12. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-ButMV_sf.js → NumberField.vue_vue_type_script_setup_true_lang-BdS7BxuS.js} +1 -1
  13. package/dist/{ProfilePage-EiTIYzZ5.js → ProfilePage-Bf7dFzGd.js} +9 -9
  14. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-BGtyOyWL.js → RoleEditor.vue_vue_type_script_setup_true_lang-C6oloGIh.js} +8 -8
  15. package/dist/{RolePage-ByUr3v_H.js → RolePage-BjbvciTg.js} +6 -6
  16. package/dist/{RolesPage-CvHrY9ZC.js → RolesPage-DzVOgF4z.js} +4 -4
  17. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-BwyMvkis.js → SegmentedField.vue_vue_type_script_setup_true_lang-DXe_iOS8.js} +1 -1
  18. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js → SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js} +2 -2
  19. package/dist/{SessionList.vue_vue_type_script_setup_true_lang-DhoTd5D7.js → SessionList.vue_vue_type_script_setup_true_lang-PuWIK-Wa.js} +2 -2
  20. package/dist/{Sessions-CHLokZ9e.js → Sessions-CRUObe5G.js} +2 -2
  21. package/dist/{SettingsPage-DvOGJz9L.js → SettingsPage-C0qEC0uI.js} +8 -8
  22. package/dist/{SignIn-ypRvdmjg.js → SignIn-Uy0Jujzz.js} +4 -4
  23. package/dist/{SignInPage-CbPeKlAo.js → SignInPage-CpVZfrLZ.js} +3 -3
  24. package/dist/{SignIns-BApzbGq-.js → SignIns-Cp5Gx2dk.js} +1 -1
  25. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-D_-HACqT.js → SwitchField.vue_vue_type_script_setup_true_lang-Dj5Aq8QT.js} +1 -1
  26. package/dist/{TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js → TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js} +2 -2
  27. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-DsjK2C9T.js → TextareaField.vue_vue_type_script_setup_true_lang-aT1P8Xqr.js} +1 -1
  28. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-Cz7KhUqt.js → TimeField.vue_vue_type_script_setup_true_lang-jPKPE1hc.js} +1 -1
  29. package/dist/{UserRecord-BCTaBajE.js → UserRecord-DbSMnTbj.js} +6 -6
  30. package/dist/{UsersList-CqSK3cQL.js → UsersList-9MicE2pG.js} +7 -7
  31. package/dist/access/index.js +1 -1
  32. package/dist/client/client.d.ts +2 -2
  33. package/dist/client/index.d.ts +1 -1
  34. package/dist/client/route.d.ts +22 -3
  35. package/dist/collection/http.d.ts +3 -2
  36. package/dist/collection/index.js +1 -1
  37. package/dist/form/FormRow.vue.d.ts +3 -0
  38. package/dist/form/index.js +22 -22
  39. package/dist/identity/index.js +2 -2
  40. package/dist/{index-BVlbcaKs.js → index-BdGnA1Jh.js} +12 -10
  41. package/dist/{index-BPwfLD7i.js → index-C-oM_Mnf.js} +2 -2
  42. package/dist/{index-auJqVMWC.js → index-Ok29ucE3.js} +13 -13
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.js +1 -1
  45. package/dist/modules/access/routes.d.ts +13 -13
  46. package/dist/modules/events/routes.d.ts +4 -4
  47. package/dist/modules/identity/routes.d.ts +31 -31
  48. package/dist/modules/notification/routes.d.ts +16 -16
  49. package/dist/notifications/index.js +1 -1
  50. package/dist/{options-g8RwEhBk.js → options-Bu0XbEpN.js} +104 -102
  51. package/dist/phone/index.js +1 -1
  52. package/dist/{status-BUFELJz2.js → status-C78NpXyB.js} +1 -1
  53. package/dist/styles.css +1 -1
  54. package/dist/{suggestions-CfFTHi8y.js → suggestions-ClyLexMO.js} +1 -1
  55. package/dist/{useCommand-CtqheKUv.js → useCommand-DyuPTosF.js} +1 -1
  56. package/dist/{useGroupSheet-ATvc0IiM.js → useGroupSheet-C2NyqWRp.js} +2 -2
  57. package/package.json +1 -1
@@ -13,13 +13,18 @@ interface RouteBase {
13
13
  readonly permission?: string;
14
14
  readonly public: boolean;
15
15
  }
16
- /** A typed call: `In` is what `client.request` takes, `Out` what it resolves to (`void`: no body). */
17
- export interface ApiRoute<In, Out> extends RouteBase {
16
+ /**
17
+ * A typed call: `In` is what `client.request` takes, `Out` what it resolves to (`void`: no body), `Meta` the
18
+ * envelope's top-level `meta` (go-core `route.WithMeta` / `route.Page`). `Meta` defaults to `unknown`, not
19
+ * `never`: a route that declares none may still be answered with a meta, and `unknown` makes the caller narrow it.
20
+ */
21
+ export interface ApiRoute<In, Out, Meta = unknown> extends RouteBase {
18
22
  readonly raw: false;
19
23
  /** Type-only; never set. */
20
24
  readonly [types]?: {
21
25
  readonly in: In;
22
26
  readonly out: Out;
27
+ readonly meta: Meta;
23
28
  };
24
29
  }
25
30
  /** A route without a JSON answer (an event stream, a file): it keeps method and path for links, `client.request` refuses it. */
@@ -30,8 +35,9 @@ export interface RawRoute extends RouteBase {
30
35
  * Declares one endpoint. go-core's generator writes these; the types come from the Go input and response.
31
36
  *
32
37
  * route<ShowInput, Ticket>("GET", "/v1/tickets/:id", { permission: "tickets.ticket:view" })
38
+ * route<ListInput, Ticket[], PageMeta>("GET", "/v1/tickets") // a page: `result.meta` is a PageMeta
33
39
  */
34
- export declare function route<In, Out>(method: HttpMethod, path: string, options?: RouteOptions): ApiRoute<In, Out>;
40
+ export declare function route<In, Out, Meta = unknown>(method: HttpMethod, path: string, options?: RouteOptions): ApiRoute<In, Out, Meta>;
35
41
  export declare namespace route {
36
42
  var raw: (method: HttpMethod, path: string, options?: RouteOptions) => RawRoute;
37
43
  }
@@ -40,6 +46,19 @@ export interface ViewCount {
40
46
  readonly key: string;
41
47
  readonly count: number;
42
48
  }
49
+ /**
50
+ * The `meta` go-core's `web.PageMeta` writes next to a page of rows (`route.Page[T]`); other keys
51
+ * (lookups, totals) may sit beside these. `readListPage` reads an `ApiResult<Row[], PageMeta>` with no cast.
52
+ */
53
+ export type PageMeta = Readonly<Record<string, unknown>> & {
54
+ readonly total: number;
55
+ readonly page: number;
56
+ readonly per_page: number;
57
+ readonly last_page: number;
58
+ readonly from: number;
59
+ readonly to: number;
60
+ readonly views?: readonly ViewCount[];
61
+ };
43
62
  /**
44
63
  * The wire shape of go-core's `datatable.DatatableResult[T]`: a page of rows with its numbers.
45
64
  * `readListPage` (`/collection`) reads it into a `ListPage` with no glue.
@@ -1,4 +1,4 @@
1
- import type { ApiResult, HttpClient, ListResult, QueryValue } from "../client";
1
+ import type { ApiResult, HttpClient, ListResult, PageMeta, QueryValue } from "../client";
2
2
  import type { CollectionLoader, ListPage, CollectionQuery } from "./types";
3
3
  /**
4
4
  * The query parameters go-core's datatable reads: `page`, `per_page`, `order_col`, `order_dir`,
@@ -8,10 +8,11 @@ export declare function listParams(query: CollectionQuery): Record<string, Query
8
8
  /**
9
9
  * Reads a list answer into a `ListPage`. Understands go-core's envelope (`data` is the rows,
10
10
  * `meta` has `total`, `page`, `per_page`, `last_page`, `from`, `to`, and may carry `views` and lookups)
11
- * and the shape with the numbers next to `data` (`current_page`), which is `ListResult<Row>`: pass a typed
11
+ * and the shape with the numbers next to `data` (`current_page`), which is `ListResult<Row>`; a `route.Page` route answers `Row[]` with a `PageMeta`. Pass a typed
12
12
  * route's result (`client.request(route, input)`) and `Row` is inferred. Missing numbers are derived
13
13
  * from what is there rather than becoming 0; `query` supplies the page and size that were asked for.
14
14
  */
15
+ export declare function readListPage<Row>(result: ApiResult<readonly Row[], PageMeta>, query: Pick<CollectionQuery, "page" | "pageSize">): ListPage<Row>;
15
16
  export declare function readListPage<Row>(result: ApiResult<ListResult<Row>, unknown>, query: Pick<CollectionQuery, "page" | "pageSize">): ListPage<Row>;
16
17
  export declare function readListPage<Row>(result: ApiResult<unknown, unknown>, query: Pick<CollectionQuery, "page" | "pageSize">): ListPage<Row>;
17
18
  /**
@@ -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-CdQowFlW.js";
2
- import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-l-e-6WeS.js";
2
+ import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-o_Pj-JcD.js";
3
3
  import { u as W, a as Y } from "../neighbors-Bv6vnWlW.js";
4
4
  import { a as te, b as se } from "../rowLayout-BBFyLbOl.js";
5
5
  import { _ as ae } from "../DataTable.vue_vue_type_script_setup_true_lang-BEvz5zqo.js";
@@ -34,6 +34,8 @@ type __VLS_Props = {
34
34
  labelLines?: 1 | 2 | 3;
35
35
  /** `top` aligns the label with the first line of a tall control (a textarea). */
36
36
  labelAlign?: "center" | "top";
37
+ /** A `setting` row on a phone: the label and sub on the full width, the value and the actions on their own lines under it. */
38
+ stackOnCompact?: boolean;
37
39
  };
38
40
  type __VLS_Slots = {
39
41
  default?: () => unknown;
@@ -59,6 +61,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
59
61
  indent: number;
60
62
  labelLines: 1 | 2 | 3;
61
63
  labelAlign: "center" | "top";
64
+ stackOnCompact: boolean;
62
65
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
63
66
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
64
67
  export default _default;
@@ -1,45 +1,45 @@
1
1
  import { _ as He, c as et, f as tt } from "../FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js";
2
2
  import { E as Co, u as So, a as Fo } from "../FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js";
3
- import { f as Te, u as at } from "../useCommand-CtqheKUv.js";
4
- import { _ as Lo, a as To } from "../useCommand-CtqheKUv.js";
3
+ import { f as Te, u as at } from "../useCommand-DyuPTosF.js";
4
+ import { _ as Lo, a as To } from "../useCommand-DyuPTosF.js";
5
5
  import { ref as A, computed as h, defineComponent as G, openBlock as u, createBlock as D, mergeProps as W, unref as n, createSlots as J, withCtx as f, createElementVNode as y, normalizeClass as I, createElementBlock as g, Fragment as ie, renderList as xe, createVNode as j, createCommentVNode as L, toDisplayString as _, renderSlot as F, mergeDefaults as ue, useModel as re, useId as De, withKeys as Ce, withModifiers as pe, createTextVNode as H, mergeModels as le, useTemplateRef as U, shallowRef as Ve, watch as ye, normalizeProps as ze, guardReactiveProps as qe, nextTick as he, provide as lt, inject as Ue, onBeforeUnmount as Ye, getCurrentScope as ot, onScopeDispose as nt, toValue as st, shallowReactive as Ee, normalizeStyle as rt, resolveDynamicComponent as it } from "vue";
6
6
  import { a as We } from "../leaveGuard-Cc8yeLxM.js";
7
7
  import { M as zo, c as qo, i as Do, l as Ro, u as Mo } from "../leaveGuard-Cc8yeLxM.js";
8
8
  import { _ as Io } from "../LeaveGuardRoot.vue_vue_type_script_setup_true_lang-Cv7KlA5y.js";
9
9
  import { u as Eo } from "../useResourceForm-CJfl8rj_.js";
10
10
  import { _ as Z } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
11
- import { u as Je, _ as ge, f as de, b as ce, a as Ze, c as Re, g as ut, j as dt, k as ct } from "../options-g8RwEhBk.js";
12
- import { e as Go, i as Ko, m as Po } from "../options-g8RwEhBk.js";
11
+ import { u as Je, _ as ge, f as de, b as ce, a as Ze, c as Re, g as ut, j as dt, k as ct } from "../options-Bu0XbEpN.js";
12
+ import { e as Go, i as Ko, m as Po } from "../options-Bu0XbEpN.js";
13
13
  import { useI18n as oe } from "vue-i18n";
14
14
  import { b as ft } from "../controlSurface-t7OEFESJ.js";
15
- import { a as mt } from "../TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
16
- import { _ as Ho } from "../TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
17
- import { u as vt, l as pt } from "../suggestions-CfFTHi8y.js";
18
- import { r as Yo } from "../suggestions-CfFTHi8y.js";
15
+ import { a as mt } from "../TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
16
+ import { _ as Ho } from "../TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
17
+ import { u as vt, l as pt } from "../suggestions-ClyLexMO.js";
18
+ import { r as Yo } from "../suggestions-ClyLexMO.js";
19
19
  import { s as $e, u as Ne, i as bt, o as _e, e as Se, k as yt, _ as gt, l as ht, c as kt, b as xt, t as Le, g as wt, q as $t } from "../useTypedEntry-C7k7Dyl-.js";
20
- import { u as _t, a as Ct, s as St } from "../DateField.vue_vue_type_script_setup_true_lang-DRuWzSaX.js";
21
- import { _ as Jo } from "../DateField.vue_vue_type_script_setup_true_lang-DRuWzSaX.js";
20
+ import { u as _t, a as Ct, s as St } from "../DateField.vue_vue_type_script_setup_true_lang-CDg31ZU7.js";
21
+ import { _ as Jo } from "../DateField.vue_vue_type_script_setup_true_lang-CDg31ZU7.js";
22
22
  import { _ as Xe } from "../DateButton.vue_vue_type_script_setup_true_lang-CovKG5lN.js";
23
23
  import { u as Ft } from "../format-D8X4zsx6.js";
24
24
  import { u as Me } from "../mediaQuery-CygcXmFW.js";
25
25
  import { _ as je } from "../Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
26
- import { u as Bt } from "../TimeField.vue_vue_type_script_setup_true_lang-Cz7KhUqt.js";
27
- import { _ as Xo } from "../TimeField.vue_vue_type_script_setup_true_lang-Cz7KhUqt.js";
26
+ import { u as Bt } from "../TimeField.vue_vue_type_script_setup_true_lang-jPKPE1hc.js";
27
+ import { _ as Xo } from "../TimeField.vue_vue_type_script_setup_true_lang-jPKPE1hc.js";
28
28
  import { _ as be } from "../Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
29
- import { _ as Lt } from "../FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
30
- import { a as en, c as tn, p as an, r as ln, u as on } from "../FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
31
- import { _ as sn } from "../FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js";
29
+ import { _ as Lt } from "../FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
30
+ import { a as en, c as tn, p as an, r as ln, u as on } from "../FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
31
+ import { _ as sn } from "../FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js";
32
32
  import { i as Tt } from "../intlLocale-CeRU44qJ.js";
33
33
  import { a as Vt } from "../environment-Dva-SG8D.js";
34
- import { _ as zt } from "../NumberField.vue_vue_type_script_setup_true_lang-ButMV_sf.js";
34
+ import { _ as zt } from "../NumberField.vue_vue_type_script_setup_true_lang-BdS7BxuS.js";
35
35
  import { _ as qt } from "../Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
36
- import { u as Dt, a as Ge } from "../SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js";
37
- import { _ as un, b as dn } from "../SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js";
38
- import { _ as fn, b as mn, a as vn, u as pn } from "../useGroupSheet-ATvc0IiM.js";
36
+ import { u as Dt, a as Ge } from "../SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js";
37
+ import { _ as un, b as dn } from "../SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js";
38
+ import { _ as fn, b as mn, a as vn, u as pn } from "../useGroupSheet-C2NyqWRp.js";
39
39
  import { _ as Ke } from "../PhotoViewer.vue_vue_type_script_setup_true_lang-CY5EZiyK.js";
40
- import { _ as yn } from "../SegmentedField.vue_vue_type_script_setup_true_lang-BwyMvkis.js";
41
- import { _ as hn } from "../SwitchField.vue_vue_type_script_setup_true_lang-D_-HACqT.js";
42
- import { _ as xn } from "../TextareaField.vue_vue_type_script_setup_true_lang-DsjK2C9T.js";
40
+ import { _ as yn } from "../SegmentedField.vue_vue_type_script_setup_true_lang-DXe_iOS8.js";
41
+ import { _ as hn } from "../SwitchField.vue_vue_type_script_setup_true_lang-Dj5Aq8QT.js";
42
+ import { _ as xn } from "../TextareaField.vue_vue_type_script_setup_true_lang-aT1P8Xqr.js";
43
43
  import { a as Rt } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
44
44
  import { _ as Mt, a as jt } from "../SectionList.vue_vue_type_script_setup_true_lang-wyW7n3Uq.js";
45
45
  import { p as It } from "../sectionIndex-BS0ic5W7.js";
@@ -1,5 +1,5 @@
1
- import { _ as t, h as n, j as a, i, k as o, d as r, l as d, m as u, n as f, r as l, s as p, o as y, q as A, f as c } from "../index-auJqVMWC.js";
2
- import { _ as I } from "../ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js";
1
+ import { _ as t, h as n, j as a, i, k as o, d as r, l as d, m as u, n as f, r as l, s as p, o as y, q as A, f as c } from "../index-Ok29ucE3.js";
2
+ import { _ as I } from "../ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js";
3
3
  export {
4
4
  I as ActionRow,
5
5
  t as SignInAsButton,
@@ -7,17 +7,17 @@ import { hasInjectionContext as Oe, inject as Ae, defineComponent as X, ref as O
7
7
  import { i as te } from "./error-Bb_dr_Ay.js";
8
8
  import { u as Ke } from "./describeError-BqGAUZgX.js";
9
9
  import { _ as J } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
10
- import { _ as z } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
11
- import { g as U } from "./options-g8RwEhBk.js";
10
+ import { _ as z } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
11
+ import { g as U } from "./options-Bu0XbEpN.js";
12
12
  import { _ as Pe } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
13
13
  import { t as ae } from "./toast-CqSDTWRX.js";
14
14
  import { _ as ue } from "./AccessGate.vue_vue_type_script_setup_true_lang-DZ9GcLC1.js";
15
15
  import { _ as Be } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
16
16
  import { _ as Ue } from "./EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js";
17
17
  import { u as Fe } from "./useLoad-W4tfxmm5.js";
18
- import { _ as Ge, a as Me } from "./SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js";
19
- import { _ as Ve } from "./SegmentedField.vue_vue_type_script_setup_true_lang-BwyMvkis.js";
20
- import { u as ze, _ as He } from "./useCommand-CtqheKUv.js";
18
+ import { _ as Ge, a as Me } from "./SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js";
19
+ import { _ as Ve } from "./SegmentedField.vue_vue_type_script_setup_true_lang-DXe_iOS8.js";
20
+ import { u as ze, _ as He } from "./useCommand-DyuPTosF.js";
21
21
  import { u as We } from "./platform-Dx6STiwY.js";
22
22
  import { _ as Ie } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
23
23
  import { u as Qe } from "./mediaQuery-CygcXmFW.js";
@@ -44,12 +44,12 @@ const D = {
44
44
  viewAccess: "iam.user:view",
45
45
  manageBindings: "iam.user:manage"
46
46
  }, de = Se({
47
- roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-CvHrY9ZC.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
48
- newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-sfr7tQs5.js"), meta: { access: F.manageRoles, titleKey: "core.access.new_title" } },
47
+ roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-DzVOgF4z.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
48
+ newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-Bhy8KJO1.js"), meta: { access: F.manageRoles, titleKey: "core.access.new_title" } },
49
49
  role: {
50
50
  name: "access.role",
51
51
  path: "/iam/roles/:ref",
52
- component: () => import("./RolePage-ByUr3v_H.js"),
52
+ component: () => import("./RolePage-BjbvciTg.js"),
53
53
  // A role's ref (its key, or the id of a custom one) swaps in place when a link leads to another role.
54
54
  meta: { access: F.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
55
55
  }
@@ -404,7 +404,7 @@ const ls = {
404
404
  }, 8, ["command", "title", "subtitle", "confirm-label"]));
405
405
  }
406
406
  }), bs = {
407
- class: "text-right text-footnote text-content-muted",
407
+ class: "text-right text-footnote text-content-muted compact:text-left",
408
408
  "data-test": "binding-scope"
409
409
  }, _s = /* @__PURE__ */ X({
410
410
  __name: "BindingRow",
@@ -415,6 +415,7 @@ const ls = {
415
415
  const l = s, e = W(), c = T(() => [e.roleKind(l.binding.role), ...l.binding.role.attrs.map(e.constraintLabel)].join(" · "));
416
416
  return (t, o) => (m(), N(n(U), {
417
417
  layout: "setting",
418
+ "stack-on-compact": "",
418
419
  label: n(e).roleName(l.binding.role),
419
420
  sub: c.value
420
421
  }, ge({
@@ -484,7 +485,7 @@ const ys = {
484
485
  class: "contents",
485
486
  "data-test": "effective-unavailable"
486
487
  }, Es = {
487
- class: "text-right text-footnote text-content-muted",
488
+ class: "text-right text-footnote text-content-muted compact:text-left",
488
489
  "data-test": "effective-reach"
489
490
  }, Cs = ["data-test"], Rs = {
490
491
  key: 0,
@@ -524,6 +525,7 @@ const ys = {
524
525
  (m(!0), g(K, null, B(b.screens, (_) => (m(), N(n(U), {
525
526
  key: _.key,
526
527
  layout: "setting",
528
+ "stack-on-compact": "",
527
529
  label: n(t).screenLabel(_.key)
528
530
  }, {
529
531
  sub: h(() => [
@@ -135,9 +135,9 @@ function Me(n = ee().http, t = W()) {
135
135
  return { state: $(e), hash: $(i), busy: $(a), inspect: c, enable: u, disable: g };
136
136
  }
137
137
  const Ne = "events.deadletter:view", $t = "events.deadletter:retry", Y = te({
138
- index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-DopyRRx0.js"), meta: { access: Ne, titleKey: "core.notifications.dead_letters.title" } }
138
+ index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-IgVHao84.js"), meta: { access: Ne, titleKey: "core.notifications.dead_letters.title" } }
139
139
  }), j = te({
140
- index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-DvOGJz9L.js"), meta: { titleKey: "core.notifications.settings.title" } }
140
+ index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-C0qEC0uI.js"), meta: { titleKey: "core.notifications.settings.title" } }
141
141
  }), Oe = /* @__PURE__ */ q({
142
142
  __name: "SettingsMenuItem",
143
143
  setup(n) {
@@ -15,15 +15,15 @@ import { useRouter as Y, useRoute as he } from "vue-router";
15
15
  import { _ as J } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-CPeNxh5K.js";
16
16
  import { _ as z } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
17
17
  import { u as ye } from "./leaveGuard-Cc8yeLxM.js";
18
- import { _ as ge } from "./FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js";
19
- import { _ as ve } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
18
+ import { _ as ge } from "./FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js";
19
+ import { _ as ve } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
20
20
  import { u as _e } from "./mediaQuery-CygcXmFW.js";
21
21
  import { u as be } from "./useDialog-CXR3hN0G.js";
22
22
  import { c as we } from "./closeOverlays-CjVsIrpL.js";
23
23
  import { u as xe } from "./FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js";
24
24
  import { u as Ee } from "./format-D8X4zsx6.js";
25
25
  import { b as Se } from "./routeResource-CcYA75T2.js";
26
- import "./ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js";
26
+ import "./ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js";
27
27
  import { _ as Te } from "./AccessGate.vue_vue_type_script_setup_true_lang-DZ9GcLC1.js";
28
28
  const b = {
29
29
  login: i("POST", "/v1/auth/login", { public: !0 }),
@@ -286,7 +286,7 @@ const De = ["aria-labelledby"], Fe = ["id"], Ne = { class: "mt-1 text-subheadlin
286
286
  ]));
287
287
  }
288
288
  }), He = G({
289
- login: { name: "login", path: "/login", component: () => import("./SignInPage-CbPeKlAo.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
289
+ login: { name: "login", path: "/login", component: () => import("./SignInPage-CpVZfrLZ.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
290
290
  });
291
291
  function Rs(e = {}) {
292
292
  return j({
@@ -354,7 +354,7 @@ function Is(e) {
354
354
  };
355
355
  }
356
356
  const ee = G({
357
- index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-EiTIYzZ5.js"), meta: { titleKey: "core.profile.title" } }
357
+ index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-Bf7dFzGd.js"), meta: { titleKey: "core.profile.title" } }
358
358
  }), Xe = /* @__PURE__ */ w({
359
359
  __name: "ProfileMenuItem",
360
360
  setup(e) {
@@ -378,19 +378,19 @@ function ss(e) {
378
378
  return { name: `users.record.${e.path}`, path: e.path, component: s, meta: { ...e.meta } };
379
379
  }
380
380
  const V = "iam.user:view", zs = "iam.user:manage", ts = "iam.user.activity:view", se = G({
381
- index: { name: "users.index", path: "/users", component: () => import("./UsersList-CqSK3cQL.js"), meta: { access: V, titleKey: "core.users.title" } },
381
+ index: { name: "users.index", path: "/users", component: () => import("./UsersList-9MicE2pG.js"), meta: { access: V, titleKey: "core.users.title" } },
382
382
  record: {
383
383
  name: "users.record",
384
384
  path: "/users/:id",
385
- component: () => import("./UserRecord-BCTaBajE.js"),
385
+ component: () => import("./UserRecord-DbSMnTbj.js"),
386
386
  meta: { access: V, titleKey: "core.users.title", remountOnParam: "id" },
387
387
  children: [
388
- { name: "users.record.general", path: "general", component: () => import("./General-mrVzi-5R.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
389
- { name: "users.record.signin", path: "signin", component: () => import("./SignIn-ypRvdmjg.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
390
- { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-CHLokZ9e.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
391
- { name: "users.record.signins", path: "signins", component: () => import("./SignIns-BApzbGq-.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
392
- { name: "users.record.changes", path: "changes", component: () => import("./Changes-CL8F1w8q.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
393
- { name: "users.record.activity", path: "activity", component: () => import("./Activity-dpY2kIs2.js"), meta: { access: ts, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
388
+ { name: "users.record.general", path: "general", component: () => import("./General-C40HxupS.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
389
+ { name: "users.record.signin", path: "signin", component: () => import("./SignIn-Uy0Jujzz.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
390
+ { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-CRUObe5G.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
391
+ { name: "users.record.signins", path: "signins", component: () => import("./SignIns-Cp5Gx2dk.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
392
+ { name: "users.record.changes", path: "changes", component: () => import("./Changes-B0tZO6BZ.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
393
+ { name: "users.record.activity", path: "activity", component: () => import("./Activity-DUjDaPfP.js"), meta: { access: ts, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
394
394
  ]
395
395
  }
396
396
  });
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** The version of @wssto2/vue-core (kept equal to package.json by index.test.ts). */
2
- export declare const version = "0.5.2";
2
+ export declare const version = "0.5.4";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const o = "0.5.2";
1
+ const o = "0.5.4";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1,16 +1,16 @@
1
1
  import type { BindableRoles, Binding, Replaced, Role, RoleComparison, RoleHolders, RoleList, ScopeOptions, SubjectAccess } from "./entities";
2
2
  export declare const accessRoutes: {
3
- readonly rolesList: import("../../client").ApiRoute<void, RoleList>;
3
+ readonly rolesList: import("../../client").ApiRoute<void, RoleList, unknown>;
4
4
  readonly rolesShow: import("../../client").ApiRoute<{
5
5
  ref: string;
6
- }, Role>;
6
+ }, Role, unknown>;
7
7
  readonly rolesHolders: import("../../client").ApiRoute<{
8
8
  ref: string;
9
- }, RoleHolders>;
9
+ }, RoleHolders, unknown>;
10
10
  readonly rolesCompare: import("../../client").ApiRoute<{
11
11
  ref: string;
12
12
  with: string;
13
- }, RoleComparison>;
13
+ }, RoleComparison, unknown>;
14
14
  readonly rolesCreate: import("../../client").ApiRoute<{
15
15
  name: string;
16
16
  description: string;
@@ -22,7 +22,7 @@ export declare const accessRoutes: {
22
22
  attribute: string;
23
23
  values: string[];
24
24
  }[];
25
- }, Role>;
25
+ }, Role, unknown>;
26
26
  readonly rolesUpdate: import("../../client").ApiRoute<{
27
27
  ref: string;
28
28
  name: string;
@@ -35,33 +35,33 @@ export declare const accessRoutes: {
35
35
  attribute: string;
36
36
  values: string[];
37
37
  }[];
38
- }, Role>;
38
+ }, Role, unknown>;
39
39
  readonly rolesDelete: import("../../client").ApiRoute<{
40
40
  ref: string;
41
- }, void>;
41
+ }, void, unknown>;
42
42
  readonly rolesReplace: import("../../client").ApiRoute<{
43
43
  ref: string;
44
44
  with: string;
45
- }, Replaced>;
45
+ }, Replaced, unknown>;
46
46
  readonly bindable: import("../../client").ApiRoute<{
47
47
  level: string;
48
48
  scope_id: number;
49
- }, BindableRoles>;
49
+ }, BindableRoles, unknown>;
50
50
  readonly subjectsAccess: import("../../client").ApiRoute<{
51
51
  id: number;
52
- }, SubjectAccess>;
52
+ }, SubjectAccess, unknown>;
53
53
  readonly subjectsScopes: import("../../client").ApiRoute<{
54
54
  id: number;
55
- }, ScopeOptions>;
55
+ }, ScopeOptions, unknown>;
56
56
  readonly subjectsBind: import("../../client").ApiRoute<{
57
57
  id: number;
58
58
  role_ref: string;
59
59
  level: string;
60
60
  scope_id?: number | null | undefined;
61
- }, Binding>;
61
+ }, Binding, unknown>;
62
62
  readonly subjectsUnbind: import("../../client").ApiRoute<{
63
63
  id: number;
64
64
  binding_id: number;
65
- }, void>;
65
+ }, void, unknown>;
66
66
  readonly me: import("../../client").RawRoute;
67
67
  };
@@ -5,13 +5,13 @@ export declare const eventsRoutes: {
5
5
  consumer?: string | undefined;
6
6
  page?: number | undefined;
7
7
  per_page?: number | undefined;
8
- }, ListResult<DeadLetterRow>>;
8
+ }, ListResult<DeadLetterRow>, unknown>;
9
9
  readonly deadLettersRetry: import("../../client").ApiRoute<{
10
10
  event: number;
11
11
  consumer: string;
12
- }, Retried>;
12
+ }, Retried, unknown>;
13
13
  readonly deadLettersRetryAll: import("../../client").ApiRoute<{
14
14
  consumer: string;
15
- }, Retried>;
16
- readonly consumers: import("../../client").ApiRoute<void, ConsumerNames>;
15
+ }, Retried, unknown>;
16
+ readonly consumers: import("../../client").ApiRoute<void, ConsumerNames, unknown>;
17
17
  };
@@ -4,19 +4,19 @@ export declare const identityRoutes: {
4
4
  readonly login: import("../../client").ApiRoute<{
5
5
  login: string;
6
6
  password: string;
7
- }, SessionResponse>;
7
+ }, SessionResponse, unknown>;
8
8
  readonly refresh: import("../../client").ApiRoute<{
9
9
  refresh_token: string;
10
- }, SessionResponse>;
11
- readonly logout: import("../../client").ApiRoute<void, void>;
12
- readonly me: import("../../client").ApiRoute<void, SessionResponse>;
10
+ }, SessionResponse, unknown>;
11
+ readonly logout: import("../../client").ApiRoute<void, void, unknown>;
12
+ readonly me: import("../../client").ApiRoute<void, SessionResponse, unknown>;
13
13
  readonly changeLocale: import("../../client").ApiRoute<{
14
14
  locale: string;
15
- }, void>;
15
+ }, void, unknown>;
16
16
  readonly loginAs: import("../../client").ApiRoute<{
17
17
  user_id: number;
18
- }, SessionResponse>;
19
- readonly loginAsReturn: import("../../client").ApiRoute<void, SessionResponse>;
18
+ }, SessionResponse, unknown>;
19
+ readonly loginAsReturn: import("../../client").ApiRoute<void, SessionResponse, unknown>;
20
20
  readonly usersList: import("../../client").ApiRoute<{
21
21
  view?: "inactive" | "all" | "locked" | "active" | undefined;
22
22
  search?: string | undefined;
@@ -24,10 +24,10 @@ export declare const identityRoutes: {
24
24
  order_dir?: string | undefined;
25
25
  page?: number | undefined;
26
26
  per_page?: number | undefined;
27
- }, ListResult<UserRow>>;
27
+ }, ListResult<UserRow>, unknown>;
28
28
  readonly usersShow: import("../../client").ApiRoute<{
29
29
  id: number;
30
- }, UserDetail>;
30
+ }, UserDetail, unknown>;
31
31
  readonly usersCreate: import("../../client").ApiRoute<{
32
32
  login: string;
33
33
  name: string;
@@ -35,7 +35,7 @@ export declare const identityRoutes: {
35
35
  locale: string;
36
36
  password: string;
37
37
  phone?: string | undefined;
38
- }, UserDetail>;
38
+ }, UserDetail, unknown>;
39
39
  readonly usersUpdate: import("../../client").ApiRoute<{
40
40
  id: number;
41
41
  login: string;
@@ -43,32 +43,32 @@ export declare const identityRoutes: {
43
43
  email: string;
44
44
  locale: string;
45
45
  phone?: string | undefined;
46
- }, UserDetail>;
46
+ }, UserDetail, unknown>;
47
47
  readonly usersSetPassword: import("../../client").ApiRoute<{
48
48
  id: number;
49
49
  password: string;
50
- }, void>;
50
+ }, void, unknown>;
51
51
  readonly usersDeactivate: import("../../client").ApiRoute<{
52
52
  id: number;
53
- }, void>;
53
+ }, void, unknown>;
54
54
  readonly usersActivate: import("../../client").ApiRoute<{
55
55
  id: number;
56
- }, void>;
56
+ }, void, unknown>;
57
57
  readonly usersUnlock: import("../../client").ApiRoute<{
58
58
  id: number;
59
- }, UnlockResult>;
59
+ }, UnlockResult, unknown>;
60
60
  readonly usersSignins: import("../../client").ApiRoute<{
61
61
  id: number;
62
62
  view?: "all" | "failed" | undefined;
63
63
  page?: number | undefined;
64
64
  per_page?: number | undefined;
65
- }, ListResult<SignInRow>>;
65
+ }, ListResult<SignInRow>, unknown>;
66
66
  readonly usersChanges: import("../../client").ApiRoute<{
67
67
  id: number;
68
68
  view?: "details" | "all" | "access" | undefined;
69
69
  page?: number | undefined;
70
70
  per_page?: number | undefined;
71
- }, ListResult<ChangeRow>>;
71
+ }, ListResult<ChangeRow>, unknown>;
72
72
  readonly usersActivity: import("../../client").ApiRoute<{
73
73
  id: number;
74
74
  area?: string | undefined;
@@ -76,43 +76,43 @@ export declare const identityRoutes: {
76
76
  to?: string | undefined;
77
77
  page?: number | undefined;
78
78
  per_page?: number | undefined;
79
- }, ListResult<ActivityRow>>;
79
+ }, ListResult<ActivityRow>, unknown>;
80
80
  readonly usersSessions: import("../../client").ApiRoute<{
81
81
  id: number;
82
- }, SessionList>;
82
+ }, SessionList, unknown>;
83
83
  readonly usersRevokeSession: import("../../client").ApiRoute<{
84
84
  id: number;
85
85
  session_id: number;
86
- }, void>;
86
+ }, void, unknown>;
87
87
  readonly usersRevokeSessions: import("../../client").ApiRoute<{
88
88
  id: number;
89
- }, void>;
90
- readonly profileShow: import("../../client").ApiRoute<void, ProfileResponse>;
89
+ }, void, unknown>;
90
+ readonly profileShow: import("../../client").ApiRoute<void, ProfileResponse, unknown>;
91
91
  readonly profileUpdate: import("../../client").ApiRoute<{
92
92
  name: string;
93
93
  phone?: string | undefined;
94
- }, ProfileResponse>;
94
+ }, ProfileResponse, unknown>;
95
95
  readonly profileChangePassword: import("../../client").ApiRoute<{
96
96
  current_password: string;
97
97
  new_password: string;
98
98
  new_password_confirmation: string;
99
- }, void>;
99
+ }, void, unknown>;
100
100
  readonly profileRequestEmail: import("../../client").ApiRoute<{
101
101
  email: string;
102
102
  current_password: string;
103
- }, PendingEmail>;
104
- readonly profileResendEmail: import("../../client").ApiRoute<void, PendingEmail>;
103
+ }, PendingEmail, unknown>;
104
+ readonly profileResendEmail: import("../../client").ApiRoute<void, PendingEmail, unknown>;
105
105
  readonly profileConfirmEmail: import("../../client").ApiRoute<{
106
106
  code: string;
107
- }, ProfileResponse>;
108
- readonly profileCancelEmail: import("../../client").ApiRoute<void, void>;
107
+ }, ProfileResponse, unknown>;
108
+ readonly profileCancelEmail: import("../../client").ApiRoute<void, void, unknown>;
109
109
  readonly profileSignins: import("../../client").ApiRoute<{
110
110
  view?: "all" | "failed" | undefined;
111
111
  page?: number | undefined;
112
112
  per_page?: number | undefined;
113
- }, ListResult<SignInRow>>;
114
- readonly profileSessions: import("../../client").ApiRoute<void, SessionList>;
113
+ }, ListResult<SignInRow>, unknown>;
114
+ readonly profileSessions: import("../../client").ApiRoute<void, SessionList, unknown>;
115
115
  readonly profileRevokeSession: import("../../client").ApiRoute<{
116
116
  session_id: number;
117
- }, void>;
117
+ }, void, unknown>;
118
118
  };