@wssto2/vue-core 0.4.26 → 0.4.28

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 (56) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/{Activity-B6R8Jghz.js → Activity-BWkVX1Nx.js} +2 -2
  3. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js} +58 -53
  4. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js → AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js} +45 -40
  5. package/dist/Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js +50 -0
  6. package/dist/{Changes-BQG7IV49.js → Changes-MG77TDwz.js} +3 -3
  7. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-BrbQ0Y5d.js → CollectionPage.vue_vue_type_script_setup_true_lang-Bnpv9TEj.js} +2 -2
  8. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-DPuH84I7.js → DataTable.vue_vue_type_script_setup_true_lang-BEvz5zqo.js} +1 -1
  9. package/dist/{DeadLetters-CJZSWjsn.js → DeadLetters-CkDE71B3.js} +2 -2
  10. package/dist/{General-tsRC866T.js → General-UTBVEXbN.js} +1 -1
  11. package/dist/{NewRolePage-L57Zg1Mg.js → NewRolePage-B7DwFWPk.js} +4 -4
  12. package/dist/{ProfilePage-B9WUrImn.js → ProfilePage-C8VhiKIh.js} +4 -4
  13. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-szzWzdDu.js → RecordHeader.vue_vue_type_script_setup_true_lang-fmx0f8xi.js} +1 -1
  14. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-BFaaFQSm.js → ResourcePage.vue_vue_type_script_setup_true_lang-BFBGvevP.js} +2 -2
  15. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-Hr0WgL1K.js → RoleEditor.vue_vue_type_script_setup_true_lang-DRHmjA9w.js} +1 -1
  16. package/dist/{RolePage-uezn-Og1.js → RolePage-ODFu68Ce.js} +5 -5
  17. package/dist/{RolesPage-DkMAJZR6.js → RolesPage-B5RwSZ89.js} +3 -3
  18. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-BJnz2ROc.js → SectionList.vue_vue_type_script_setup_true_lang-wyW7n3Uq.js} +1 -1
  19. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-BYRc0-qh.js → SectionNavigator.vue_vue_type_script_setup_true_lang-Dmv6TpCi.js} +2 -2
  20. package/dist/{Sessions-BDu3nMmz.js → Sessions-DWj2OGo0.js} +2 -2
  21. package/dist/{SettingsPage-CA7YCy6K.js → SettingsPage-C3fPSmi7.js} +3 -3
  22. package/dist/{SignIn-DQzS20kM.js → SignIn-COThB9XN.js} +1 -1
  23. package/dist/{SignInPage-ft3unWwX.js → SignInPage-CdzgSvRm.js} +1 -1
  24. package/dist/{SignInTable.vue_vue_type_script_setup_true_lang-ByEAVfjv.js → SignInTable.vue_vue_type_script_setup_true_lang-Bs0yTi2E.js} +1 -1
  25. package/dist/{SignIns-C3h_YIkc.js → SignIns-cztICmqt.js} +3 -3
  26. package/dist/Timestamp.vue_vue_type_script_setup_true_lang-CutyQkJb.js +52 -0
  27. package/dist/{UserRecord-BO5-wsYt.js → UserRecord-BWMnXz4q.js} +5 -5
  28. package/dist/{UsersList-D3b3DGN5.js → UsersList-Chq8yM5C.js} +4 -4
  29. package/dist/access/index.js +1 -1
  30. package/dist/collection/index.js +3 -3
  31. package/dist/content/Avatar.vue.d.ts +6 -0
  32. package/dist/content/Timestamp.vue.d.ts +15 -0
  33. package/dist/content/index.js +2 -2
  34. package/dist/form/index.js +2 -2
  35. package/dist/identity/index.js +1 -1
  36. package/dist/{index-BVU76sBO.js → index-BhtJR4c_.js} +10 -10
  37. package/dist/{index-CvJSAsfk.js → index-C3E6DcO0.js} +4 -4
  38. package/dist/{index-C3CzOub7.js → index-sTBBHqNG.js} +3 -3
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/notifications/index.js +1 -1
  42. package/dist/overlay/MenuButton.vue.d.ts +24 -0
  43. package/dist/overlay/index.d.ts +1 -0
  44. package/dist/overlay/index.js +59 -35
  45. package/dist/page/index.js +5 -5
  46. package/dist/resource/index.js +1 -1
  47. package/dist/{rowLayout-D1vrdy0s.js → rowLayout-BBFyLbOl.js} +1 -1
  48. package/dist/shell/index.js +3 -1
  49. package/dist/state/async.d.ts +16 -0
  50. package/dist/state/index.d.ts +1 -1
  51. package/dist/state/index.js +38 -37
  52. package/dist/{status-8KH7PITT.js → status-dGvfh1TP.js} +1 -1
  53. package/dist/styles.css +1 -1
  54. package/package.json +1 -1
  55. package/dist/Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js +0 -35
  56. package/dist/Timestamp.vue_vue_type_script_setup_true_lang-CU2Y5oYl.js +0 -34
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as p, useTemplateRef as u, openBlock as t, createElementBlock as c, renderSlot as r, createCommentVNode as s, createElementVNode as n, toDisplayString as a, Fragment as d, renderList as f, createBlock as h, resolveDynamicComponent as g, withCtx as x, createVNode as _, unref as k } from "vue";
2
2
  import { _ as b } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
3
- import { u as w } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js";
3
+ import { u as w } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
4
4
  const v = { class: "flex min-w-0 flex-wrap items-center gap-5 compact:flex-col compact:gap-2 compact:text-center" }, y = {
5
5
  key: 0,
6
6
  class: "min-w-0 max-w-full shrink-0"
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as S, openBlock as a, createElementBlock as v, unref as t, createBlock as d, withCtx as s, createVNode as i, normalizeClass as m, createElementVNode as R, toDisplayString as y, computed as f, createSlots as $, renderSlot as u, createCommentVNode as A } from "vue";
2
2
  import { useI18n as z } from "vue-i18n";
3
- import { a as C } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js";
4
- import { _ as B } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
3
+ import { a as C } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
4
+ import { _ as B } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
5
5
  import { _ as D } from "./EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js";
6
6
  import { useRouter as K, RouterLink as w } from "vue-router";
7
7
  import { u as N } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
@@ -9,7 +9,7 @@ import { u as ae } from "./useSaveChrome-7huA3FzR.js";
9
9
  import { t as oe } from "./toast-CqSDTWRX.js";
10
10
  import { _ as S } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
11
11
  import { _ as E } from "./Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
12
- import { d as G, u as J, p as ne, o as R, r as D, g as H, s as le, e as re, a as ie, f as ce, b as ue, h as de } from "./index-CvJSAsfk.js";
12
+ import { d as G, u as J, p as ne, o as R, r as D, g as H, s as le, e as re, a as ie, f as ce, b as ue, h as de } from "./index-C3E6DcO0.js";
13
13
  import { _ as me } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
14
14
  import { _ as fe } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
15
15
  import { _ as pe } from "./SegmentedField.vue_vue_type_script_setup_true_lang-Dg-_ZjgR.js";
@@ -7,17 +7,17 @@ import { e as F } from "./control-B4SdblL6.js";
7
7
  import { u as Z } from "./describeError-B-NMa--w.js";
8
8
  import { _ as ee } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
9
9
  import { t as q } from "./toast-CqSDTWRX.js";
10
- import { _ as oe } from "./RecordHeader.vue_vue_type_script_setup_true_lang-szzWzdDu.js";
10
+ import { _ as oe } from "./RecordHeader.vue_vue_type_script_setup_true_lang-fmx0f8xi.js";
11
11
  import { u as te } from "./platform-PZpUkkMS.js";
12
12
  import { a as ae, u as le } from "./routeResource-DlTsGTg_.js";
13
- import { a as se } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BFaaFQSm.js";
14
- import { _ as re } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
13
+ import { a as se } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BFBGvevP.js";
14
+ import { _ as re } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
15
15
  import { _ as H } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
16
- import { u as O, a as U, f as ce, d as ne, b as M, c as T } from "./index-CvJSAsfk.js";
16
+ import { u as O, a as U, f as ce, d as ne, b as M, c as T } from "./index-C3E6DcO0.js";
17
17
  import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-C3FbRQW7.js";
18
18
  import { u as ie, _ as ue } from "./useCommand-Cj-APj-P.js";
19
19
  import { _ as me } from "./Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js";
20
- import { _ as pe } from "./RoleEditor.vue_vue_type_script_setup_true_lang-Hr0WgL1K.js";
20
+ import { _ as pe } from "./RoleEditor.vue_vue_type_script_setup_true_lang-DRHmjA9w.js";
21
21
  const de = { "data-test": "role-replace" }, fe = /* @__PURE__ */ I({
22
22
  __name: "ReplaceRoleDialog",
23
23
  props: {
@@ -6,12 +6,12 @@ import { _ as E } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
6
6
  import { _ as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js";
7
7
  import { e as j } from "./control-B4SdblL6.js";
8
8
  import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-CP2WeU36.js";
9
- import { a as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js";
9
+ import { a as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
10
10
  import { u as K } from "./platform-PZpUkkMS.js";
11
- import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
11
+ import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.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, a as H, b as J, c as x } from "./index-CvJSAsfk.js";
14
+ import { u as G, a as H, b as J, c as x } from "./index-C3E6DcO0.js";
15
15
  const M = {
16
16
  class: "flex min-w-0 flex-col gap-group-gap",
17
17
  "data-test": "roles-index"
@@ -2,7 +2,7 @@ import { defineComponent as $, computed as _, unref as s, openBlock as l, create
2
2
  import { useI18n as S } from "vue-i18n";
3
3
  import { _ as j } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
4
4
  import { _ as N } from "./Menu.vue_vue_type_script_setup_true_lang-DsFOeCVe.js";
5
- import { _ as V } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js";
5
+ import { _ as V } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
6
6
  import { a as q } from "./sectionIndex-BS0ic5W7.js";
7
7
  const M = {
8
8
  class: "dock-safe-area pointer-events-none",
@@ -6,9 +6,9 @@ import { _ as G } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
6
  import { a as re } from "./mediaQuery-CygcXmFW.js";
7
7
  import { u as ie } from "./access-DmAceEo5.js";
8
8
  import { u as ce, a as ue } from "./sections-CeZl-Jxg.js";
9
- import { p as de } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js";
9
+ import { p as de } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
10
10
  import { p as me } from "./sectionIndex-BS0ic5W7.js";
11
- import { _ as K, a as pe } from "./SectionList.vue_vue_type_script_setup_true_lang-BJnz2ROc.js";
11
+ import { _ as K, a as pe } from "./SectionList.vue_vue_type_script_setup_true_lang-wyW7n3Uq.js";
12
12
  const fe = {
13
13
  key: 0,
14
14
  "data-test": "section-navigator",
@@ -2,12 +2,12 @@ import { defineComponent as x, useTemplateRef as v, computed as w, ref as $, ope
2
2
  import { useI18n as N } from "vue-i18n";
3
3
  import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
4
  import { u as A } from "./describeError-B-NMa--w.js";
5
- import { P as D, b as L, e as O, i as g, d as T } from "./index-BVU76sBO.js";
5
+ import { P as D, b as L, e as O, i as g, d as T } from "./index-BhtJR4c_.js";
6
6
  import { _ as k } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
7
7
  import { t as b } from "./toast-CqSDTWRX.js";
8
8
  import { u as V } from "./platform-PZpUkkMS.js";
9
9
  import { b as I } from "./routeResource-DlTsGTg_.js";
10
- import { _ as j } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
10
+ import { _ as j } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
11
11
  import { _ as z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
12
12
  import { _ as F } from "./SessionList.vue_vue_type_script_setup_true_lang-D5qm77Zo.js";
13
13
  const G = {
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as w, openBlock as u, createBlock as b, unref as e, withCtx as p, createElementBlock as g, toDisplayString as y, Fragment as $, renderList as Q, createElementVNode as P, createVNode as d, createTextVNode as U, createCommentVNode as S, computed as V, mergeProps as h, ref as D } from "vue";
2
2
  import { useI18n as v } from "vue-i18n";
3
3
  import { useRouter as I } from "vue-router";
4
- import { a as j } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js";
4
+ import { a as j } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
5
5
  import { t as T } from "./toast-CqSDTWRX.js";
6
6
  import { u as N } from "./fieldMessages-6HVzSDqG.js";
7
- import { _ as A } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
7
+ import { _ as A } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
8
8
  import { _ as O } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
9
9
  import { _ as R } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js";
10
10
  import { e as G } from "./control-B4SdblL6.js";
@@ -15,7 +15,7 @@ import { _ as W } from "./FormView.vue_vue_type_script_setup_true_lang-BUrYkjmF.
15
15
  import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-DBxKAWRo.js";
16
16
  import { a as k, n as X } from "./useTypedEntry-C7k7Dyl-.js";
17
17
  import { _ as Y } from "./PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js";
18
- import { n as q } from "./index-C3CzOub7.js";
18
+ import { n as q } from "./index-sTBBHqNG.js";
19
19
  import { u as ee } from "./platform-PZpUkkMS.js";
20
20
  import { u as te } from "./useLoad-M7V-AVwR.js";
21
21
  function ne() {
@@ -6,7 +6,7 @@ import { u as D } from "./format-D8X4zsx6.js";
6
6
  import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js";
7
7
  import { e as b } from "./control-B4SdblL6.js";
8
8
  import { u as U } from "./describeError-B-NMa--w.js";
9
- import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-BVU76sBO.js";
9
+ import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-BhtJR4c_.js";
10
10
  import { t as h } from "./toast-CqSDTWRX.js";
11
11
  import { u as j, h as G } from "./platform-PZpUkkMS.js";
12
12
  import { b as H } from "./routeResource-DlTsGTg_.js";
@@ -6,7 +6,7 @@ import { _ as N } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js"
6
6
  import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-BUrYkjmF.js";
7
7
  import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-CP2WeU36.js";
8
8
  import { r as $ } from "./guards-BJZjc3FZ.js";
9
- import { u as C, a as E } from "./index-BVU76sBO.js";
9
+ import { u as C, a as E } from "./index-BhtJR4c_.js";
10
10
  const V = { class: "flex flex-1 flex-col items-center justify-center gap-8" }, k = { class: "text-xl font-semibold text-content-strong" }, H = /* @__PURE__ */ d({
11
11
  __name: "SignInPage",
12
12
  setup(q) {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as _, computed as p, openBlock as y, createElementBlock as g, createVNode as l, unref as i, withCtx as s, createElementVNode as a, toDisplayString as r, createTextVNode as h } from "vue";
2
2
  import { useI18n as b } from "vue-i18n";
3
- import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-DPuH84I7.js";
3
+ import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-BEvz5zqo.js";
4
4
  import { _ as v } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
5
5
  const w = {
6
6
  signed_in: { tone: "positive", byOther: !1 },
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as g, ref as m, watch as p, openBlock as c, createElementBlock as v, createVNode as i, unref as e, withCtx as w, createBlock as x, createCommentVNode as y, createElementVNode as V, toDisplayString as $ } from "vue";
2
2
  import { useI18n as N } from "vue-i18n";
3
- import { P as S, i as b } from "./index-BVU76sBO.js";
3
+ import { P as S, i as b } from "./index-BhtJR4c_.js";
4
4
  import { u as k } from "./platform-PZpUkkMS.js";
5
5
  import { b as I } from "./routeResource-DlTsGTg_.js";
6
- import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
6
+ import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
7
7
  import { u as C } from "./useLoad-M7V-AVwR.js";
8
8
  import { _ as E } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js";
9
9
  import { _ as B } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
10
- import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-ByEAVfjv.js";
10
+ import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-Bs0yTi2E.js";
11
11
  import { _ as h } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js";
12
12
  const U = {
13
13
  class: "flex min-w-0 flex-col gap-group-gap",
@@ -0,0 +1,52 @@
1
+ import { defineComponent as x, computed as s, openBlock as n, createElementBlock as o, createVNode as m, createElementVNode as l, toDisplayString as a, unref as u, createTextVNode as f } from "vue";
2
+ import { useI18n as v } from "vue-i18n";
3
+ import { u as h, t as g } from "./format-D8X4zsx6.js";
4
+ import { _ as w } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
5
+ import { _ as y } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
6
+ const k = {
7
+ key: 0,
8
+ class: "inline-grid max-w-full min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-x-2 text-xs",
9
+ "data-timestamp-author": ""
10
+ }, T = { class: "min-w-0 truncate text-content" }, V = ["datetime"], E = ["datetime"], I = {
11
+ key: 2,
12
+ class: "text-xs text-content-muted"
13
+ }, z = /* @__PURE__ */ x({
14
+ __name: "Timestamp",
15
+ props: {
16
+ value: { default: void 0 },
17
+ precision: { default: "dateTime" },
18
+ author: { default: null }
19
+ },
20
+ setup(d) {
21
+ const p = /^\d{4}-\d{2}-\d{2}$/, t = d, { t: _ } = v(), r = h(), e = s(() => g(t.value)), i = s(() => {
22
+ if (e.value)
23
+ return typeof t.value == "string" && p.test(t.value) ? t.value : e.value.toISOString();
24
+ }), c = s(() => t.precision === "date" ? r.date(e.value) : r.dateTime(e.value));
25
+ return (D, N) => e.value && t.author ? (n(), o("span", k, [
26
+ m(y, {
27
+ name: t.author.name,
28
+ src: t.author.avatarUrl,
29
+ size: "xs",
30
+ class: "row-span-2"
31
+ }, null, 8, ["name", "src"]),
32
+ l("span", T, a(t.author.name), 1),
33
+ l("time", {
34
+ datetime: i.value,
35
+ class: "whitespace-nowrap text-content-muted"
36
+ }, a(c.value), 9, V)
37
+ ])) : e.value ? (n(), o("time", {
38
+ key: 1,
39
+ datetime: i.value,
40
+ class: "inline-flex items-center gap-2 text-xs text-content"
41
+ }, [
42
+ m(u(w), {
43
+ name: "calendarEventFill",
44
+ class: "text-content-muted"
45
+ }),
46
+ f(a(c.value), 1)
47
+ ], 8, E)) : (n(), o("span", I, a(u(_)("core.state.empty")), 1));
48
+ }
49
+ });
50
+ export {
51
+ z as _
52
+ };
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as R, openBlock as q, createBlock as P, unref as e, withCtx as u, createVNode as t, mergeProps as L, provide as N, computed as g, useTemplateRef as $, createElementVNode as x, toDisplayString as C, createTextVNode as j } from "vue";
2
2
  import { useI18n as A } from "vue-i18n";
3
3
  import { a as F } from "./neighbors-RVQ4O3Qv.js";
4
- import { _ as H } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
4
+ import { _ as H } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.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-BVU76sBO.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-BhtJR4c_.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
- import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-BYRc0-qh.js";
9
+ import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-Dmv6TpCi.js";
10
10
  import { u as E } from "./platform-PZpUkkMS.js";
11
11
  import { a as te } from "./routeResource-DlTsGTg_.js";
12
- import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BFaaFQSm.js";
12
+ import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BFBGvevP.js";
13
13
  import { A as re } from "./access-DmAceEo5.js";
14
14
  import { _ as ne } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as ie } from "./useLoad-M7V-AVwR.js";
@@ -18,7 +18,7 @@ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5
18
18
  import { e as B } from "./control-B4SdblL6.js";
19
19
  import { u as z, _ as K } from "./useCommand-Cj-APj-P.js";
20
20
  import { u as U } from "./fieldMessages-6HVzSDqG.js";
21
- import { u as ce, s as le } from "./status-8KH7PITT.js";
21
+ import { u as ce, s as le } from "./status-dGvfh1TP.js";
22
22
  import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-CP2WeU36.js";
23
23
  const ue = /* @__PURE__ */ R({
24
24
  __name: "DeactivateDialog",
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as U, openBlock as p, createBlock as C, unref as e, withCtx as c, createVNode as r, mergeProps as i, useTemplateRef as V, computed as q, createTextVNode as z, toDisplayString as $, createCommentVNode as A, createElementBlock as S, normalizeClass as N } from "vue";
2
2
  import { useI18n as B } from "vue-i18n";
3
3
  import { useRouter as M } from "vue-router";
4
- import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-BrbQ0Y5d.js";
5
- import { _ as I } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
4
+ import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-Bnpv9TEj.js";
5
+ import { _ as I } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
6
6
  import { u as F } from "./format-D8X4zsx6.js";
7
7
  import { u as L } from "./platform-PZpUkkMS.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-BVU76sBO.js";
10
- import { U as j, u as H, s as J } from "./status-8KH7PITT.js";
9
+ import { i as K, f as E, M as W } from "./index-BhtJR4c_.js";
10
+ import { U as j, u as H, s as J } from "./status-dGvfh1TP.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-DSwSRsA5.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-CvJSAsfk.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-C3E6DcO0.js";
2
2
  export {
3
3
  a as BindingRow,
4
4
  c as PersonAccess,
@@ -1,8 +1,8 @@
1
1
  import { D as O, L as j, a as U, h as G, l as X, r as Z } from "../http-BFfkA7gN.js";
2
- import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-BrbQ0Y5d.js";
2
+ import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-Bnpv9TEj.js";
3
3
  import { u as W, a as Y } from "../neighbors-RVQ4O3Qv.js";
4
- import { a as te, b as se } from "../rowLayout-D1vrdy0s.js";
5
- import { _ as ae } from "../DataTable.vue_vue_type_script_setup_true_lang-DPuH84I7.js";
4
+ import { a as te, b as se } from "../rowLayout-BBFyLbOl.js";
5
+ import { _ as ae } from "../DataTable.vue_vue_type_script_setup_true_lang-BEvz5zqo.js";
6
6
  import { defineComponent as y, openBlock as c, createElementBlock as d, Fragment as h, renderList as v, createBlock as k, unref as f, withCtx as C, normalizeClass as m, createVNode as p, createCommentVNode as g, computed as w, toValue as E } from "vue";
7
7
  import { _ } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
8
8
  import { _ as S } from "../Tooltip.vue_vue_type_script_setup_true_lang-mErNPt8e.js";
@@ -4,9 +4,14 @@
4
4
  *
5
5
  * <Avatar name="Josip Žlimen" size="md" />
6
6
  * <Avatar name="Josip Žlimen" size="xl" tone="anchor" /> the monogram of a record header
7
+ * <Avatar name="Josip Žlimen" :src="user.photoUrl" /> the photo, initials until it loads
8
+ *
9
+ * `src` is a full URL the app has already built (no fetching or auth here). The initials show when
10
+ * it is empty, while it loads and if it fails to load: never a broken-image icon. A changed `src` retries.
7
11
  */
8
12
  type __VLS_Props = {
9
13
  name?: string | null;
14
+ src?: string | null;
10
15
  size?: "xs" | "sm" | "md" | "lg" | "xl";
11
16
  tone?: "neutral" | "anchor";
12
17
  };
@@ -14,5 +19,6 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
14
19
  name: string | null;
15
20
  size: "xs" | "sm" | "md" | "lg" | "xl";
16
21
  tone: "neutral" | "anchor";
22
+ src: string | null;
17
23
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
24
  export default _default;
@@ -3,15 +3,30 @@
3
3
  * with the calendar icon. Nothing to show (no value, one that is not a date, or an unset one: Go's
4
4
  * zero time, the epoch) reads "No data".
5
5
  *
6
+ * With an `author` (who changed the record) the calendar icon gives way to the person: a small
7
+ * avatar, centred on two lines, the name on the first (a long one truncates) and the date on the
8
+ * second in muted text (never truncated, never wrapped). The cell is as wide as the wider of the
9
+ * two, so a list column stays narrow. One layout; there is no option for the inline one.
10
+ *
6
11
  * <Timestamp :value="lead.created_at" />
7
12
  * <Timestamp :value="invoice.due" precision="date" />
13
+ * <Timestamp :value="lead.updated_at" :author="{ name: lead.updated_by }" />
8
14
  */
9
15
  type __VLS_Props = {
10
16
  value?: string | Date | null;
11
17
  precision?: "date" | "dateTime";
18
+ /** Who changed it. `avatarUrl` is the photo's full URL, built by the app; initials show until it loads or without it. */
19
+ author?: {
20
+ name: string;
21
+ avatarUrl?: string | null;
22
+ } | null;
12
23
  };
13
24
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
25
  value: string | Date | null;
15
26
  precision: "date" | "dateTime";
27
+ author: {
28
+ name: string;
29
+ avatarUrl?: string | null;
30
+ } | null;
16
31
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
32
  export default _default;
@@ -1,8 +1,8 @@
1
- import { _ as K, i as S } from "../Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
1
+ import { _ as K, i as S } from "../Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
2
2
  import { defineComponent as o, openBlock as t, createElementBlock as l, createElementVNode as c, toDisplayString as u, createCommentVNode as d, normalizeClass as f, Fragment as _, renderList as g, createBlock as i, createSlots as x, withCtx as p, renderSlot as m, resolveDynamicComponent as y } from "vue";
3
3
  import { _ as b } from "../KeyValue.vue_vue_type_script_setup_true_lang-wcZcvnow.js";
4
4
  import { _ as F } from "../Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
5
- import { _ as N } from "../Timestamp.vue_vue_type_script_setup_true_lang-CU2Y5oYl.js";
5
+ import { _ as N } from "../Timestamp.vue_vue_type_script_setup_true_lang-CutyQkJb.js";
6
6
  const k = {
7
7
  role: "separator",
8
8
  class: "my-2 flex items-center gap-4"
@@ -44,8 +44,8 @@ import { _ as Gt } from "../Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.j
44
44
  import { _ as Ze } from "../Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
45
45
  import { D as Nt } from "../useWaitStatus-fsacMl4W.js";
46
46
  import { t as Pt } from "../toast-CqSDTWRX.js";
47
- import { a as Kt } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js";
48
- import { _ as At, a as Ht } from "../SectionList.vue_vue_type_script_setup_true_lang-BJnz2ROc.js";
47
+ import { a as Kt } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
48
+ import { _ as At, a as Ht } from "../SectionList.vue_vue_type_script_setup_true_lang-wyW7n3Uq.js";
49
49
  import { p as Ut } from "../sectionIndex-BS0ic5W7.js";
50
50
  import { u as Yt } from "../useSaveChrome-7huA3FzR.js";
51
51
  import { matchedRouteKey as Wt, onBeforeRouteLeave as Jt } from "vue-router";
@@ -1,4 +1,4 @@
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 y, r as l, o as I, s as f, q as p, t as A, f as c } from "../index-BVU76sBO.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 y, r as l, o as I, s as f, q as p, t as A, f as c } from "../index-BhtJR4c_.js";
2
2
  export {
3
3
  t as SignInAsButton,
4
4
  n as identityFeature,
@@ -315,7 +315,7 @@ function Cs(e) {
315
315
  const Ye = async (e) => {
316
316
  await B(e.http);
317
317
  }, Je = z({
318
- login: { name: "login", path: "/login", component: () => import("./SignInPage-ft3unWwX.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
318
+ login: { name: "login", path: "/login", component: () => import("./SignInPage-CdzgSvRm.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
319
319
  });
320
320
  function Os(e = {}) {
321
321
  return H({
@@ -334,7 +334,7 @@ function Os(e = {}) {
334
334
  });
335
335
  }
336
336
  const Z = z({
337
- index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-B9WUrImn.js"), meta: { titleKey: "core.profile.title" } }
337
+ index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-C8VhiKIh.js"), meta: { titleKey: "core.profile.title" } }
338
338
  }), Qe = /* @__PURE__ */ E({
339
339
  __name: "ProfileMenuItem",
340
340
  setup(e) {
@@ -358,19 +358,19 @@ function es(e) {
358
358
  return { name: `users.record.${e.path}`, path: e.path, component: s, meta: { ...e.meta } };
359
359
  }
360
360
  const W = "iam.user:view", qs = "iam.user:manage", ss = "iam.user.activity:view", ee = z({
361
- index: { name: "users.index", path: "/users", component: () => import("./UsersList-D3b3DGN5.js"), meta: { access: W, titleKey: "core.users.title" } },
361
+ index: { name: "users.index", path: "/users", component: () => import("./UsersList-Chq8yM5C.js"), meta: { access: W, titleKey: "core.users.title" } },
362
362
  record: {
363
363
  name: "users.record",
364
364
  path: "/users/:id",
365
- component: () => import("./UserRecord-BO5-wsYt.js"),
365
+ component: () => import("./UserRecord-BWMnXz4q.js"),
366
366
  meta: { access: W, titleKey: "core.users.title", remountOnParam: "id" },
367
367
  children: [
368
- { name: "users.record.general", path: "general", component: () => import("./General-tsRC866T.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
369
- { name: "users.record.signin", path: "signin", component: () => import("./SignIn-DQzS20kM.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
370
- { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-BDu3nMmz.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
371
- { name: "users.record.signins", path: "signins", component: () => import("./SignIns-C3h_YIkc.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
372
- { name: "users.record.changes", path: "changes", component: () => import("./Changes-BQG7IV49.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
373
- { name: "users.record.activity", path: "activity", component: () => import("./Activity-B6R8Jghz.js"), meta: { access: ss, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
368
+ { name: "users.record.general", path: "general", component: () => import("./General-UTBVEXbN.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
369
+ { name: "users.record.signin", path: "signin", component: () => import("./SignIn-COThB9XN.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
370
+ { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-DWj2OGo0.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
371
+ { name: "users.record.signins", path: "signins", component: () => import("./SignIns-cztICmqt.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
372
+ { name: "users.record.changes", path: "changes", component: () => import("./Changes-MG77TDwz.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
373
+ { name: "users.record.activity", path: "activity", component: () => import("./Activity-BWkVX1Nx.js"), meta: { access: ss, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
374
374
  ]
375
375
  }
376
376
  });
@@ -12,7 +12,7 @@ import { e as U } from "./control-B4SdblL6.js";
12
12
  import { _ as Te } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
13
13
  import { t as ee } from "./toast-CqSDTWRX.js";
14
14
  import { _ as ce } from "./AccessGate.vue_vue_type_script_setup_true_lang-J5HoyGNJ.js";
15
- import { _ as Oe } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
15
+ import { _ as Oe } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
16
16
  import { u as Ae } from "./useLoad-M7V-AVwR.js";
17
17
  import { _ as De, a as Ke } from "./SelectField.vue_vue_type_script_setup_true_lang-C3FbRQW7.js";
18
18
  import { _ as Be } from "./SegmentedField.vue_vue_type_script_setup_true_lang-Dg-_ZjgR.js";
@@ -43,12 +43,12 @@ const C = {
43
43
  viewAccess: "iam.user:view",
44
44
  manageBindings: "iam.user:manage"
45
45
  }, re = Ee({
46
- roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-DkMAJZR6.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
47
- newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-L57Zg1Mg.js"), meta: { access: F.manageRoles, titleKey: "core.access.new_title" } },
46
+ roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-B5RwSZ89.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
47
+ newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-B7DwFWPk.js"), meta: { access: F.manageRoles, titleKey: "core.access.new_title" } },
48
48
  role: {
49
49
  name: "access.role",
50
50
  path: "/iam/roles/:ref",
51
- component: () => import("./RolePage-uezn-Og1.js"),
51
+ component: () => import("./RolePage-ODFu68Ce.js"),
52
52
  // A role's ref (its key, or the id of a custom one) swaps in place when a link leads to another role.
53
53
  meta: { access: F.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
54
54
  }
@@ -14,7 +14,7 @@ import { useRouter as ge } from "vue-router";
14
14
  import { _ as F } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
15
15
  import { u as ye } from "./format-D8X4zsx6.js";
16
16
  import { _ as xe } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
17
- import { _ as he } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
17
+ import { _ as he } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
18
18
  const M = {
19
19
  list: y("GET", "/v1/notifications"),
20
20
  unread: y("GET", "/v1/notifications/unread"),
@@ -31,9 +31,9 @@ const M = {
31
31
  deadLettersRetryAll: y("POST", "/v1/events/dead-letters/retry", { permission: "events.deadletter:retry" }),
32
32
  consumers: y("GET", "/v1/events/consumers", { permission: "events.deadletter:view" })
33
33
  }, [ke, ee] = fe("vue-core.notifications"), we = "events.deadletter:view", bt = "events.deadletter:retry", J = Z({
34
- index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-CJZSWjsn.js"), meta: { access: we, titleKey: "core.notifications.dead_letters.title" } }
34
+ index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-CkDE71B3.js"), meta: { access: we, titleKey: "core.notifications.dead_letters.title" } }
35
35
  }), j = Z({
36
- index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-CA7YCy6K.js"), meta: { titleKey: "core.notifications.settings.title" } }
36
+ index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-C3fPSmi7.js"), meta: { titleKey: "core.notifications.settings.title" } }
37
37
  }), Te = /* @__PURE__ */ z({
38
38
  __name: "SettingsMenuItem",
39
39
  setup(o) {
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.4.26";
2
+ export declare const version = "0.4.28";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const o = "0.4.26";
1
+ const o = "0.4.28";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1,4 +1,4 @@
1
- import { d as s, e as o, n as a, a as i, b as n } from "../index-C3CzOub7.js";
1
+ import { d as s, e as o, n as a, a as i, b as n } from "../index-sTBBHqNG.js";
2
2
  export {
3
3
  s as deadLettersRoutes,
4
4
  o as eventsRoutes,
@@ -0,0 +1,24 @@
1
+ import { type IconName } from "../icon";
2
+ /**
3
+ * The "⋯" button of a `Menu`: an icon-only round button for its `#trigger` slot, with the trigger
4
+ * attrs (`aria-haspopup`, `aria-expanded`, `aria-controls`). Plain at rest (no fill, muted icon, like
5
+ * an iOS row's "⋯"); the fill shows on hover, keyboard focus and while the menu is open. The 44px
6
+ * touch target on compact is an invisible hit area, so the row does not grow. Spread the slot scope on it.
7
+ *
8
+ * <Menu :items="items" :label="t('rowActions')">
9
+ * <template #trigger="trigger"><MenuButton v-bind="trigger" :label="t('rowActions')" /></template>
10
+ * </Menu>
11
+ */
12
+ type __VLS_Props = {
13
+ /** The accessible name (the button shows only an icon). */
14
+ label: string;
15
+ icon?: IconName;
16
+ /** The slot scope of `Menu`'s `#trigger`: */
17
+ presented: boolean;
18
+ toggle: () => void;
19
+ attrs: Record<string, string | boolean>;
20
+ };
21
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
22
+ icon: IconName;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
+ export default _default;
@@ -1,5 +1,6 @@
1
1
  export { default as AlertDialog } from "./AlertDialog.vue";
2
2
  export { default as Menu, type MenuItem } from "./Menu.vue";
3
+ export { default as MenuButton } from "./MenuButton.vue";
3
4
  export { default as Popover } from "./Popover.vue";
4
5
  export { default as Toaster } from "./Toaster.vue";
5
6
  export { default as Tooltip } from "./Tooltip.vue";