@wssto2/vue-core 0.21.0 → 0.22.0

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 (30) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{Activity-CZzAt3SH.js → Activity-COtW_n6d.js} +1 -1
  3. package/dist/{Changes-B0bhSNU3.js → Changes-DGjV18aQ.js} +1 -1
  4. package/dist/{General-BGT9H69S.js → General-xayJ3Y-j.js} +1 -1
  5. package/dist/{NewRolePage-B0Y5MrTu.js → NewRolePage-B2qo3_Ht.js} +2 -2
  6. package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js → PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js} +1 -1
  7. package/dist/{ProfilePage-CMy2Dkr2.js → ProfilePage-KK6lV4Yd.js} +1 -1
  8. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CMo8PrO7.js → RoleEditor.vue_vue_type_script_setup_true_lang-DbyVIoj9.js} +2 -2
  9. package/dist/{RolePage-DGFISfM1.js → RolePage-QLKrhjd_.js} +2 -2
  10. package/dist/{RolesPage-Bq9EVB_3.js → RolesPage-UHWfuxiU.js} +1 -1
  11. package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DtVXUOdP.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-qKkn3XrU.js} +1 -1
  12. package/dist/{ServiceAccountRecord-Dc7Gn52W.js → ServiceAccountRecord-04tOH3XA.js} +3 -3
  13. package/dist/{ServiceAccountsList-DBUFeka-.js → ServiceAccountsList-CDtwLH3o.js} +2 -2
  14. package/dist/{Sessions-BMmqYZrJ.js → Sessions-BClXu0cg.js} +1 -1
  15. package/dist/{SignIn-uFn1ZWG8.js → SignIn-BVQtcHZv.js} +1 -1
  16. package/dist/{SignInPage-DouCg9aD.js → SignInPage-2ocu1_7y.js} +1 -1
  17. package/dist/{SignIns-CqN5UNmh.js → SignIns-CdUgFZ1e.js} +1 -1
  18. package/dist/{UserRecord-CH5oNRLg.js → UserRecord-Ces8OW7J.js} +1 -1
  19. package/dist/{UsersList-BmxWpt9h.js → UsersList-Ad4zHRYa.js} +1 -1
  20. package/dist/access/index.js +4 -4
  21. package/dist/form/dynamic/schema.d.ts +4 -0
  22. package/dist/form/index.js +277 -275
  23. package/dist/identity/index.js +1 -1
  24. package/dist/{index-C_ZVaTkR.js → index-DlD5ZlZq.js} +12 -12
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/shell/index.js +1 -1
  28. package/dist/styles.css +1 -1
  29. package/package.json +3 -2
  30. package/src/styles/base.css +6 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.22.0 — 2026-11-08
4
+
5
+ Two gaps site-builder's page editor and content forms found.
6
+
7
+ ### New
8
+ - **form:** a schema `number` field takes `props.grouping` and `props.decimals`, passed to `NumberField` (top-level and collection-child fields), so a year shows `2026`, not `2.026`.
9
+ - **styles:** the `scrollbar-hide` utility (`PhotoViewer`, `SectionNavigator` used it; it did not exist).
10
+ - **check:** `npm run check:css` (part of `check`): every static `class="…"` in `src/**/*.vue` must have a rule in `dist/styles.css`. `:class` expressions are not checked.
11
+
12
+ ### Fixed
13
+ - **form:** the error mark on `DynamicForm`'s language switch, and the failed-load text in the resource picker and the rich text field, were never coloured: `text-critical` is not a theme class. They use `text-status-danger-content`.
14
+ - Other classes with no rule, replaced by theme tokens: `text-muted` → `text-content-muted`, `bg-surface-muted` (and its `hover:`/`aria-*` forms) → the `fill` ones, `hover:border-accent` → `hover:border-border-selected`, `text-accent` → `text-content-link`, `text-title3` → `text-headline` (`EffectiveAccess`, `PermissionTree`), `text-callout` → `text-subheadline` (`QuickSearchButton`).
15
+
3
16
  ## 0.21.0 — 2026-11-07
4
17
 
5
18
  The list pieces for site-builder's pages list, template resources and Karakteristike (approved mock-ups in site-builder `next/design/`), and the screen of go-core's characteristics module. Needs go-core v1.34.0-rc.1.
@@ -13,7 +13,7 @@ import { b as W } from "./routeResource-DlTsGTg_.js";
13
13
  import { _ as X } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
14
14
  import { _ as Y } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as Z } from "./useLoad-M7V-AVwR.js";
16
- import { P as tt, f as et, j as at } from "./index-C_ZVaTkR.js";
16
+ import { P as tt, f as et, j as at } from "./index-DlD5ZlZq.js";
17
17
  import { _ as st } from "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
18
18
  const ot = {
19
19
  class: "flex min-w-0 flex-col gap-group-gap",
@@ -5,7 +5,7 @@ import { u as b } from "./platform-YWfOO7b2.js";
5
5
  import { b as V } from "./routeResource-DlTsGTg_.js";
6
6
  import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
7
7
  import { u as E } from "./useLoad-M7V-AVwR.js";
8
- import { P as N, f as B, k as P, j as S } from "./index-C_ZVaTkR.js";
8
+ import { P as N, f as B, k as P, j as S } from "./index-DlD5ZlZq.js";
9
9
  import { _ as U } from "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
10
10
  import { _ as I } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BKI5DGuS.js";
11
11
  const W = {
@@ -15,7 +15,7 @@ import { b as M } from "./routeResource-DlTsGTg_.js";
15
15
  import { u as O } from "./serverMessages-C_KkDvpT.js";
16
16
  import { _ as U, a as $ } from "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
17
17
  import { u as j } from "./keepAlive-ClGnsIzT.js";
18
- import { P as z, e as H } from "./index-C_ZVaTkR.js";
18
+ import { P as z, e as H } from "./index-DlD5ZlZq.js";
19
19
  const J = {
20
20
  class: "flex min-w-0 max-w-200 flex-col gap-group-gap",
21
21
  "data-person-general": ""
@@ -4,8 +4,8 @@ import { useRoute as k, useRouter as R } from "vue-router";
4
4
  import { _ as $ } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-BkZzuICH.js";
5
5
  import { _ as b } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
6
6
  import { u as g } from "./useLoad-M7V-AVwR.js";
7
- import { u as x } from "./PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js";
8
- import { _ as P } from "./RoleEditor.vue_vue_type_script_setup_true_lang-CMo8PrO7.js";
7
+ import { u as x } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js";
8
+ import { _ as P } from "./RoleEditor.vue_vue_type_script_setup_true_lang-DbyVIoj9.js";
9
9
  import { accessPages as u } from "./access/index.js";
10
10
  const j = /* @__PURE__ */ _({
11
11
  __name: "NewRolePage",
@@ -322,7 +322,7 @@ function os(l, s) {
322
322
  const ts = {
323
323
  class: "flex min-w-0 flex-col gap-group-gap",
324
324
  "data-test": "effective-access"
325
- }, ls = { class: "px-row-inset text-title3 font-semibold text-content-strong" }, ns = {
325
+ }, ls = { class: "px-row-inset text-headline font-semibold text-content-strong" }, ns = {
326
326
  class: "block",
327
327
  "data-test": "effective-actions"
328
328
  }, cs = {
@@ -5,7 +5,7 @@ import { u as F } from "./platform-YWfOO7b2.js";
5
5
  import { _ as ee } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
6
6
  import { u as te } from "./useLoad-M7V-AVwR.js";
7
7
  import { i as S } from "./preferences-hYhrw8Uy.js";
8
- import { h as xe, q as $e, j as ke, f as qe } from "./index-C_ZVaTkR.js";
8
+ import { h as xe, q as $e, j as ke, f as qe } from "./index-DlD5ZlZq.js";
9
9
  import { a as K, u as ne, p as Ce } from "./FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js";
10
10
  import { _ as de } from "./FormView.vue_vue_type_script_setup_true_lang-CoQZG-hB.js";
11
11
  import { u as Se, _ as Ee, a as Ve, b as Pe } from "./useGroupSheet-B9TCHIKH.js";
@@ -9,7 +9,7 @@ import { u as ne } from "./useSaveChrome-DB9OwIjT.js";
9
9
  import { t as le } from "./toast-CqSDTWRX.js";
10
10
  import { _ as E } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
11
11
  import { _ as R } from "./Banner.vue_vue_type_script_setup_true_lang-BXZVOhfH.js";
12
- import { u as re } from "./PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js";
12
+ import { u as re } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js";
13
13
  import { g as W, u as G, p as ie, o as T, h as K, i as M, s as ce, j as ue, f as de, a as me, k as fe } from "./refusals-DfPzVNNY.js";
14
14
  import { _ as pe } from "./Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
15
15
  import { _ as _e } from "./Tabs.vue_vue_type_script_setup_true_lang-7CJto6Mp.js";
@@ -34,7 +34,7 @@ function he(y, c, d, o) {
34
34
  const ke = {
35
35
  class: "flex min-w-0 flex-col gap-4 lg:grid lg:grid-cols-[15rem_minmax(0,1fr)] lg:items-start lg:gap-8",
36
36
  "data-test": "permission-tree"
37
- }, xe = ["aria-label"], we = ["data-test", "aria-current", "onClick"], $e = { class: "min-w-0 flex-1 truncate" }, Oe = ["data-test"], Ve = ["data-test"], je = { class: "flex min-w-0 items-center justify-between gap-3 px-row-inset" }, Le = { class: "min-w-0 flex-1 text-title3 font-semibold text-content-strong" }, Ce = { class: "text-footnote tabular-nums text-content-muted" }, qe = {
37
+ }, xe = ["aria-label"], we = ["data-test", "aria-current", "onClick"], $e = { class: "min-w-0 flex-1 truncate" }, Oe = ["data-test"], Ve = ["data-test"], je = { class: "flex min-w-0 items-center justify-between gap-3 px-row-inset" }, Le = { class: "min-w-0 flex-1 text-headline font-semibold text-content-strong" }, Ce = { class: "text-footnote tabular-nums text-content-muted" }, qe = {
38
38
  key: 0,
39
39
  class: "contents",
40
40
  "data-test": "tree-toggle-all"
@@ -12,12 +12,12 @@ import { a as le, u as se } from "./routeResource-DlTsGTg_.js";
12
12
  import { a as re } from "./ResourcePage.vue_vue_type_script_setup_true_lang-CpGwm2tv.js";
13
13
  import { _ as ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
14
14
  import { _ as H } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
- import { u as O } from "./PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js";
15
+ import { u as O } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js";
16
16
  import { u as U, f as ne, e as ie, g as ue, a as M } from "./refusals-DfPzVNNY.js";
17
17
  import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-DxCEwED6.js";
18
18
  import { u as me, _ as pe } from "./useCommand-DerEnzIW.js";
19
19
  import { _ as fe } from "./Modal.vue_vue_type_script_setup_true_lang-BRRMKXOV.js";
20
- import { _ as de } from "./RoleEditor.vue_vue_type_script_setup_true_lang-CMo8PrO7.js";
20
+ import { _ as de } from "./RoleEditor.vue_vue_type_script_setup_true_lang-DbyVIoj9.js";
21
21
  import { accessPages as T } from "./access/index.js";
22
22
  const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
23
23
  __name: "ReplaceRoleDialog",
@@ -11,7 +11,7 @@ import { u as K } from "./platform-YWfOO7b2.js";
11
11
  import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
12
12
  import { _ as q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
13
13
  import { u as z } from "./useLoad-M7V-AVwR.js";
14
- import { u as G } from "./PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js";
14
+ import { u as G } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js";
15
15
  import { u as H, a as J } from "./refusals-DfPzVNNY.js";
16
16
  import { accessPages as x } from "./access/index.js";
17
17
  const M = {
@@ -9,7 +9,7 @@ import { _ as j } from "./useCommand-DerEnzIW.js";
9
9
  import { u as F } from "./useRecordDialog-DX97ivZD.js";
10
10
  import { t as H } from "./toast-CqSDTWRX.js";
11
11
  import { u as S } from "./platform-YWfOO7b2.js";
12
- import { l as J, m as Q } from "./index-C_ZVaTkR.js";
12
+ import { l as J, m as Q } from "./index-DlD5ZlZq.js";
13
13
  import { r as W } from "./http-D6qOS6xs.js";
14
14
  import { i as X } from "./preferences-hYhrw8Uy.js";
15
15
  import { s as l } from "./routes-Beyr5NQo.js";
@@ -2,7 +2,7 @@ import { defineComponent as P, useTemplateRef as F, ref as N, openBlock as r, cr
2
2
  import { useI18n as q } from "vue-i18n";
3
3
  import { useRoute as re } from "vue-router";
4
4
  import { u as le } from "./refusals-DfPzVNNY.js";
5
- import { a as ie } from "./PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js";
5
+ import { a as ie } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js";
6
6
  import { _ as ee } from "./IconTile.vue_vue_type_script_setup_true_lang-DRirnJvd.js";
7
7
  import { _ as ue } from "./Tabs.vue_vue_type_script_setup_true_lang-7CJto6Mp.js";
8
8
  import { a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js";
@@ -15,8 +15,8 @@ import { u as ae } from "./platform-YWfOO7b2.js";
15
15
  import { u as me, a as ve } from "./routeResource-DlTsGTg_.js";
16
16
  import { a as fe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-CpGwm2tv.js";
17
17
  import { _ as O } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
18
- import { m as ce, R as _e, l as pe, n as ye } from "./index-C_ZVaTkR.js";
19
- import { u as W, a as X, _ as ke } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DtVXUOdP.js";
18
+ import { m as ce, R as _e, l as pe, n as ye } from "./index-DlD5ZlZq.js";
19
+ import { u as W, a as X, _ as ke } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-qKkn3XrU.js";
20
20
  import { _ as J } from "./Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
21
21
  import { _ as be } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
22
22
  import { _ as ge } from "./Modal.vue_vue_type_script_setup_true_lang-BRRMKXOV.js";
@@ -13,8 +13,8 @@ import { u as X } from "./platform-YWfOO7b2.js";
13
13
  import { _ as Y } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
14
14
  import { _ as Z } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as ee } from "./useLoad-M7V-AVwR.js";
16
- import { l as te, m as $, n as A } from "./index-C_ZVaTkR.js";
17
- import { u as ae, _ as oe } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DtVXUOdP.js";
16
+ import { l as te, m as $, n as A } from "./index-DlD5ZlZq.js";
17
+ import { u as ae, _ as oe } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-qKkn3XrU.js";
18
18
  const se = {
19
19
  class: "flex min-w-0 flex-col gap-group-gap",
20
20
  "data-test": "service-segment"
@@ -9,7 +9,7 @@ import { u as D } from "./platform-YWfOO7b2.js";
9
9
  import { b as L } from "./routeResource-DlTsGTg_.js";
10
10
  import { _ as O } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
11
11
  import { _ as T } from "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
12
- import { P as V, e as I, g as j, h as z } from "./index-C_ZVaTkR.js";
12
+ import { P as V, e as I, g as j, h as z } from "./index-DlD5ZlZq.js";
13
13
  import { i as F } from "./usePreferences-D38x73re.js";
14
14
  const G = {
15
15
  class: "flex min-w-0 flex-col gap-group-gap",
@@ -12,7 +12,7 @@ import { u as z, h as F } from "./platform-YWfOO7b2.js";
12
12
  import { b as L } from "./routeResource-DlTsGTg_.js";
13
13
  import { _ as O } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
14
14
  import { i as T } from "./usePreferences-D38x73re.js";
15
- import { f as j, P as G, e as H, _ as J } from "./index-C_ZVaTkR.js";
15
+ import { f as j, P as G, e as H, _ as J } from "./index-DlD5ZlZq.js";
16
16
  import { _ as K, a as M } from "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
17
17
  const Q = {
18
18
  key: 0,
@@ -6,7 +6,7 @@ import { _ as N } from "./Panel.vue_vue_type_script_setup_true_lang-CwcJadT7.js"
6
6
  import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-CoQZG-hB.js";
7
7
  import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-B6Q65aQA.js";
8
8
  import { r as $ } from "./guards-BP9x7CLF.js";
9
- import { u as C, a as E } from "./index-C_ZVaTkR.js";
9
+ import { u as C, a as E } from "./index-DlD5ZlZq.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) {
@@ -5,7 +5,7 @@ import { u as b } from "./platform-YWfOO7b2.js";
5
5
  import { b as k } from "./routeResource-DlTsGTg_.js";
6
6
  import { _ as I } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
7
7
  import { u as R } from "./useLoad-M7V-AVwR.js";
8
- import { P as C, i as E, j as B } from "./index-C_ZVaTkR.js";
8
+ import { P as C, i as E, j as B } from "./index-DlD5ZlZq.js";
9
9
  import { _ as P } from "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
10
10
  import { _ as h } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BKI5DGuS.js";
11
11
  const U = {
@@ -14,7 +14,7 @@ import { A as J } from "./access-DmAceEo5.js";
14
14
  import { _ as Q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as W } from "./useLoad-M7V-AVwR.js";
16
16
  import { i as X } from "./usePreferences-D38x73re.js";
17
- import { P as Y, p as Z, c as ee, d as se, b as ae, M as te, o as oe, s as re } from "./index-C_ZVaTkR.js";
17
+ import { P as Y, p as Z, c as ee, d as se, b as ae, M as te, o as oe, s as re } from "./index-DlD5ZlZq.js";
18
18
  import { a as ne } from "./FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js";
19
19
  import { _ as A } from "./TextField.vue_vue_type_script_setup_true_lang-B6Q65aQA.js";
20
20
  import { u as ie, _ as ce } from "./useCommand-DerEnzIW.js";
@@ -6,7 +6,7 @@ import { _ as V } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js
6
6
  import { u as L } from "./format-C_HXlOYQ.js";
7
7
  import { u as z } from "./platform-YWfOO7b2.js";
8
8
  import { _ as A } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
- import { b as D, U as I, c as f, d as M, M as q, s as F } from "./index-C_ZVaTkR.js";
9
+ import { b as D, U as I, c as f, d as M, M as q, s as F } from "./index-DlD5ZlZq.js";
10
10
  const G = ["datetime"], Z = /* @__PURE__ */ C({
11
11
  __name: "UsersList",
12
12
  setup(K) {
@@ -1,4 +1,4 @@
1
- import { _ as Q, a as U, b as W } from "../PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js";
1
+ import { _ as Q, a as U, b as W } from "../PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js";
2
2
  import { d as _, p as x } from "../feature-DdUAfyi4.js";
3
3
  import { a as n, b } from "../refusals-DfPzVNNY.js";
4
4
  import { d as Y, p as Z, r as ee, c as se, u as te, e as oe, f as ce } from "../refusals-DfPzVNNY.js";
@@ -10,12 +10,12 @@ import { _ as P } from "../Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.j
10
10
  import { _ as B } from "../Panel.vue_vue_type_script_setup_true_lang-CwcJadT7.js";
11
11
  import { _ as K } from "../Icon.vue_vue_type_script_lang-BIzh8LF1.js";
12
12
  const p = h({
13
- roles: { name: "access.roles", path: "/iam/roles", component: () => import("../RolesPage-Bq9EVB_3.js"), meta: { access: n.viewRoles, titleKey: "core.access.title" } },
14
- newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("../NewRolePage-B0Y5MrTu.js"), meta: { access: n.manageRoles, titleKey: "core.access.new_title" } },
13
+ roles: { name: "access.roles", path: "/iam/roles", component: () => import("../RolesPage-UHWfuxiU.js"), meta: { access: n.viewRoles, titleKey: "core.access.title" } },
14
+ newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("../NewRolePage-B2qo3_Ht.js"), meta: { access: n.manageRoles, titleKey: "core.access.new_title" } },
15
15
  role: {
16
16
  name: "access.role",
17
17
  path: "/iam/roles/:ref",
18
- component: () => import("../RolePage-DGFISfM1.js"),
18
+ component: () => import("../RolePage-QLKrhjd_.js"),
19
19
  // A role's ref (its key, or the id of a custom one) swaps in place when a link leads to another role.
20
20
  meta: { access: n.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
21
21
  }
@@ -49,6 +49,10 @@ export interface SchemaFieldProps {
49
49
  readonly rows?: number;
50
50
  /** A `rich_text` field: show the video embed button. */
51
51
  readonly video?: boolean;
52
+ /** A `number` field: no thousands separator (a year, a code), as `NumberField grouping`. */
53
+ readonly grouping?: boolean;
54
+ /** A `number` field: the most fraction digits it takes, as `NumberField decimals`. */
55
+ readonly decimals?: number;
52
56
  /** A `collection` field: the label of its add button. */
53
57
  readonly addLabel?: string;
54
58
  }