@wssto2/vue-core 0.2.0 → 0.4.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 (309) hide show
  1. package/README.md +36 -0
  2. package/dist/AccessGate.vue_vue_type_script_setup_true_lang-DcbZBINh.js +22 -0
  3. package/dist/AccountMenuItem.vue_vue_type_script_setup_true_lang-CPeNxh5K.js +76 -0
  4. package/dist/ActionRow.vue_vue_type_script_setup_true_lang-LlfIPWsJ.js +45 -0
  5. package/dist/Activity-2gGxQn7v.js +156 -0
  6. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-CeKK8_g5.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-BoinCY93.js} +48 -47
  7. package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-e4hzkzg3.js → AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js} +1 -1
  8. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-CWLB3xsR.js → AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js} +4 -4
  9. package/dist/{Banner.vue_vue_type_script_setup_true_lang-n_wGPIIu.js → Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js} +1 -1
  10. package/dist/{BottomDock.vue_vue_type_script_setup_true_lang-DhlMnPC2.js → BottomDock.vue_vue_type_script_setup_true_lang-CjN7xYEr.js} +1 -1
  11. package/dist/{Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js → Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js} +1 -1
  12. package/dist/Changes-Bm8xvagD.js +129 -0
  13. package/dist/CollectionPage.vue_vue_type_script_setup_true_lang-DCBVw2Qd.js +1485 -0
  14. package/dist/DataTable.vue_vue_type_script_setup_true_lang-UH6f9puS.js +52 -0
  15. package/dist/DateField.vue_vue_type_script_setup_true_lang-GVasv8ao.js +255 -0
  16. package/dist/DeadLetters-CMRtXn_N.js +104 -0
  17. package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-DyhYHRyz.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-D1arePCZ.js} +1 -1
  18. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-BeGpHMUP.js → EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js} +1 -1
  19. package/dist/FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js +276 -0
  20. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js +136 -0
  21. package/dist/FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js +38 -0
  22. package/dist/General-CTqd0SLK.js +145 -0
  23. package/dist/HeaderAction.vue_vue_type_script_setup_true_lang-Cgji-Jrr.js +45 -0
  24. package/dist/{Icon.vue_vue_type_script_lang-DtC4_mkz.js → Icon.vue_vue_type_script_lang-D7oC-d-S.js} +54 -37
  25. package/dist/{IconTile.vue_vue_type_script_setup_true_lang-Csfv6Sel.js → IconTile.vue_vue_type_script_setup_true_lang-BpIjgu5E.js} +1 -1
  26. package/dist/KeyValue.vue_vue_type_script_setup_true_lang-wcZcvnow.js +35 -0
  27. package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CvwoT1JF.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-Cv7KlA5y.js} +2 -2
  28. package/dist/{Menu.vue_vue_type_script_setup_true_lang-CrMj6KPD.js → Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js} +66 -58
  29. package/dist/{Modal.vue_vue_type_script_setup_true_lang-BQZM49gC.js → Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js} +4 -4
  30. package/dist/NewRolePage-DTOWIxxC.js +42 -0
  31. package/dist/NoAccess.vue_vue_type_script_setup_true_lang-DWxq-MTM.js +31 -0
  32. package/dist/NumberField.vue_vue_type_script_setup_true_lang-C7N5nq0P.js +113 -0
  33. package/dist/OtpInput.vue_vue_type_script_setup_true_lang-gp4FfWAH.js +95 -0
  34. package/dist/PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js +47 -0
  35. package/dist/{Panel.vue_vue_type_script_setup_true_lang-BQmv3cLb.js → Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js} +1 -1
  36. package/dist/PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js +46 -0
  37. package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-ElDizaW2.js → PhotoViewer.vue_vue_type_script_setup_true_lang-QPCW3Xi6.js} +1 -1
  38. package/dist/Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js +125 -0
  39. package/dist/ProfilePage-BlpiWH_W.js +654 -0
  40. package/dist/{ProgressTrack.vue_vue_type_script_setup_true_lang-1DDaNs2W.js → ProgressTrack.vue_vue_type_script_setup_true_lang-B6Prw9hi.js} +2 -2
  41. package/dist/RecordHeader.vue_vue_type_script_setup_true_lang-C_ymvhHU.js +64 -0
  42. package/dist/ResourcePage.vue_vue_type_script_setup_true_lang-CwI_sROp.js +173 -0
  43. package/dist/RoleEditor.vue_vue_type_script_setup_true_lang-CmwvSytD.js +300 -0
  44. package/dist/RolePage-DZk7BZOc.js +315 -0
  45. package/dist/RolesPage-DzGGCMnm.js +115 -0
  46. package/dist/SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js +23 -0
  47. package/dist/SectionList.vue_vue_type_script_setup_true_lang-BFYls8fR.js +148 -0
  48. package/dist/SectionNavigator.vue_vue_type_script_setup_true_lang-DSMXEaCs.js +314 -0
  49. package/dist/SegmentedField.vue_vue_type_script_setup_true_lang-BMqWlpsL.js +58 -0
  50. package/dist/SelectField.vue_vue_type_script_setup_true_lang-7O1BAx04.js +423 -0
  51. package/dist/SessionList.vue_vue_type_script_setup_true_lang-D5KRitar.js +111 -0
  52. package/dist/Sessions-CWqjjTr1.js +96 -0
  53. package/dist/SettingsPage-C4s0IdkW.js +255 -0
  54. package/dist/Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js +145 -0
  55. package/dist/SignIn-zzKY__df.js +140 -0
  56. package/dist/SignInPage-Rqnus_s-.js +60 -0
  57. package/dist/SignInTable.vue_vue_type_script_setup_true_lang-CEbAvZ_C.js +79 -0
  58. package/dist/SignIns-Cnf9BVR0.js +66 -0
  59. package/dist/SwipeActions.vue_vue_type_script_setup_true_lang-BJIA2JfI.js +93 -0
  60. package/dist/SwitchField.vue_vue_type_script_setup_true_lang-CM8yp9JQ.js +64 -0
  61. package/dist/Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js +155 -0
  62. package/dist/TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js +269 -0
  63. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-CqAWfABZ.js +68 -0
  64. package/dist/TimeField.vue_vue_type_script_setup_true_lang-DWfAUlnz.js +164 -0
  65. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-CSY_mMm1.js → Timestamp.vue_vue_type_script_setup_true_lang-FVRUr-9y.js} +1 -1
  66. package/dist/UserRecord-DqigxVxH.js +267 -0
  67. package/dist/UsersList-DNlZsI9J.js +155 -0
  68. package/dist/ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js +28 -0
  69. package/dist/access/AddRoleDialog.vue.d.ts +19 -0
  70. package/dist/access/BindingRow.vue.d.ts +19 -0
  71. package/dist/access/EffectiveAccess.vue.d.ts +12 -0
  72. package/dist/access/NewRolePage.vue.d.ts +2 -0
  73. package/dist/access/PermissionTree.vue.d.ts +13 -0
  74. package/dist/access/PersonAccess.vue.d.ts +21 -0
  75. package/dist/access/ReplaceRoleDialog.vue.d.ts +17 -0
  76. package/dist/access/RoleCompareDialog.vue.d.ts +14 -0
  77. package/dist/access/RoleEditor.vue.d.ts +28 -0
  78. package/dist/access/RolePage.vue.d.ts +2 -0
  79. package/dist/access/RolesPage.vue.d.ts +2 -0
  80. package/dist/access/api.d.ts +26 -0
  81. package/dist/access/catalogue.d.ts +64 -0
  82. package/dist/access/context.d.ts +20 -0
  83. package/dist/access/effective.d.ts +42 -0
  84. package/dist/access/feature.d.ts +27 -0
  85. package/dist/access/index.d.ts +13 -0
  86. package/dist/access/index.js +15 -0
  87. package/dist/access/labels.d.ts +35 -0
  88. package/dist/access/refusals.d.ts +6 -0
  89. package/dist/access/routes.d.ts +45 -0
  90. package/dist/access/scopes.d.ts +20 -0
  91. package/dist/app/contributions.d.ts +1 -1
  92. package/dist/app/feature.d.ts +8 -0
  93. package/dist/app/index.js +259 -296
  94. package/dist/bottomDock-BZEiOPYZ.js +12 -0
  95. package/dist/button/Button.vue.d.ts +3 -3
  96. package/dist/button/index.js +1 -1
  97. package/dist/chrome-BS3xJcad.js +93 -0
  98. package/dist/client/client.d.ts +13 -0
  99. package/dist/client/index.d.ts +3 -1
  100. package/dist/client/index.js +11 -138
  101. package/dist/client/route.d.ts +59 -0
  102. package/dist/client-k9euDWF4.js +147 -0
  103. package/dist/closeOverlays-CjVsIrpL.js +8 -0
  104. package/dist/collection/definition.d.ts +3 -0
  105. package/dist/collection/http.d.ts +4 -2
  106. package/dist/collection/index.js +74 -2428
  107. package/dist/collection/useCollection.d.ts +2 -0
  108. package/dist/content/index.js +37 -66
  109. package/dist/contributions-DsfmDoRD.js +26 -0
  110. package/dist/control-7EP4tjYy.js +313 -0
  111. package/dist/controls/DateButton.vue.d.ts +1 -1
  112. package/dist/controls/PopupButton.vue.d.ts +1 -1
  113. package/dist/controls/index.js +11 -10
  114. package/dist/defineRoutes-BGAdiIrt.js +19 -0
  115. package/dist/{describeError-l5T9b8Uv.js → describeError-Ctga6GcS.js} +1 -1
  116. package/dist/environment-Dva-SG8D.js +6 -0
  117. package/dist/{error-Bb_dr_Ay.js → error-CD7x0Jrz.js} +2 -2
  118. package/dist/feature-DdUAfyi4.js +25 -0
  119. package/dist/fieldMessages-C3Rpbktw.js +25 -0
  120. package/dist/form/CheckboxField.vue.d.ts +1 -1
  121. package/dist/form/CommandDialog.vue.d.ts +1 -1
  122. package/dist/form/DateField.vue.d.ts +1 -1
  123. package/dist/form/DateTimeField.vue.d.ts +1 -1
  124. package/dist/form/EditorPage.vue.d.ts +1 -1
  125. package/dist/form/Field.vue.d.ts +1 -1
  126. package/dist/form/FileField.vue.d.ts +1 -1
  127. package/dist/form/FormGroup.vue.d.ts +1 -1
  128. package/dist/form/FormGroupButton.vue.d.ts +1 -1
  129. package/dist/form/FormRow.vue.d.ts +1 -1
  130. package/dist/form/I18nField.vue.d.ts +3 -3
  131. package/dist/form/MoneyField.vue.d.ts +1 -1
  132. package/dist/form/MonthYearField.vue.d.ts +1 -1
  133. package/dist/form/NumberCell.vue.d.ts +1 -1
  134. package/dist/form/NumberField.vue.d.ts +2 -2
  135. package/dist/form/OtpInput.vue.d.ts +2 -2
  136. package/dist/form/PhotoField.vue.d.ts +1 -1
  137. package/dist/form/SwitchField.vue.d.ts +1 -1
  138. package/dist/form/TextField.vue.d.ts +3 -3
  139. package/dist/form/TextareaField.vue.d.ts +3 -3
  140. package/dist/form/TimeField.vue.d.ts +1 -1
  141. package/dist/form/date/DatePickerSheet.vue.d.ts +1 -1
  142. package/dist/form/date/MonthYearPanel.vue.d.ts +1 -1
  143. package/dist/form/index.js +1159 -3474
  144. package/dist/guards-Dve61KjR.js +51 -0
  145. package/dist/http-CNcDHSOj.js +194 -0
  146. package/dist/i18n/index.d.ts +281 -0
  147. package/dist/i18n/index.js +52 -52
  148. package/dist/icon/core.d.ts +17 -0
  149. package/dist/icon/index.js +1 -1
  150. package/dist/identity/ImpersonationBanner.vue.d.ts +2 -0
  151. package/dist/identity/LocaleSync.vue.d.ts +2 -0
  152. package/dist/identity/SessionExpiry.vue.d.ts +2 -0
  153. package/dist/identity/SignInAsButton.vue.d.ts +15 -0
  154. package/dist/identity/SignInPage.vue.d.ts +2 -0
  155. package/dist/identity/context.d.ts +7 -0
  156. package/dist/identity/feature.d.ts +16 -0
  157. package/dist/identity/fieldMessages.d.ts +15 -0
  158. package/dist/identity/index.d.ts +16 -0
  159. package/dist/identity/index.js +18 -0
  160. package/dist/identity/profile/DetailsPanel.vue.d.ts +11 -0
  161. package/dist/identity/profile/EmailChangeDialog.vue.d.ts +14 -0
  162. package/dist/identity/profile/EmailPanel.vue.d.ts +11 -0
  163. package/dist/identity/profile/PanelActions.vue.d.ts +17 -0
  164. package/dist/identity/profile/PasswordPanel.vue.d.ts +2 -0
  165. package/dist/identity/profile/ProfileMenuItem.vue.d.ts +2 -0
  166. package/dist/identity/profile/ProfilePage.vue.d.ts +2 -0
  167. package/dist/identity/profile/SessionsPanel.vue.d.ts +2 -0
  168. package/dist/identity/profile/SignInsPanel.vue.d.ts +2 -0
  169. package/dist/identity/profile/VerifyCode.vue.d.ts +49 -0
  170. package/dist/identity/profile/routes.d.ts +13 -0
  171. package/dist/identity/session.d.ts +30 -0
  172. package/dist/identity/shared/ActionRow.vue.d.ts +20 -0
  173. package/dist/identity/shared/ChangeFeed.vue.d.ts +11 -0
  174. package/dist/identity/shared/PageBar.vue.d.ts +12 -0
  175. package/dist/identity/shared/SectionIntro.vue.d.ts +16 -0
  176. package/dist/identity/shared/SessionList.vue.d.ts +19 -0
  177. package/dist/identity/shared/SignInTable.vue.d.ts +11 -0
  178. package/dist/identity/shared/ViewTabs.vue.d.ts +23 -0
  179. package/dist/identity/shared/signInEvents.d.ts +9 -0
  180. package/dist/identity/signIn.d.ts +27 -0
  181. package/dist/identity/useSignInForm.d.ts +20 -0
  182. package/dist/identity/user.d.ts +6 -0
  183. package/dist/identity/users/DeactivateDialog.vue.d.ts +18 -0
  184. package/dist/identity/users/NewUserDialog.vue.d.ts +9 -0
  185. package/dist/identity/users/SetPasswordDialog.vue.d.ts +16 -0
  186. package/dist/identity/users/UserRecord.vue.d.ts +2 -0
  187. package/dist/identity/users/UsersList.vue.d.ts +2 -0
  188. package/dist/identity/users/access.d.ts +4 -0
  189. package/dist/identity/users/context.d.ts +9 -0
  190. package/dist/identity/users/feature.d.ts +34 -0
  191. package/dist/identity/users/languages.d.ts +4 -0
  192. package/dist/identity/users/list.d.ts +8 -0
  193. package/dist/identity/users/person.d.ts +26 -0
  194. package/dist/identity/users/personSections.d.ts +22 -0
  195. package/dist/identity/users/routes.d.ts +22 -0
  196. package/dist/identity/users/sections/Activity.vue.d.ts +2 -0
  197. package/dist/identity/users/sections/Changes.vue.d.ts +2 -0
  198. package/dist/identity/users/sections/General.vue.d.ts +2 -0
  199. package/dist/identity/users/sections/Sessions.vue.d.ts +2 -0
  200. package/dist/identity/users/sections/SignIn.vue.d.ts +2 -0
  201. package/dist/identity/users/sections/SignIns.vue.d.ts +2 -0
  202. package/dist/identity/users/status.d.ts +4 -0
  203. package/dist/index-BsJ92eub.js +504 -0
  204. package/dist/index-CGv-u1Ws.js +459 -0
  205. package/dist/index-GcLnFF-z.js +706 -0
  206. package/dist/index.d.ts +1 -1
  207. package/dist/index.js +1 -1
  208. package/dist/internal/languageName.d.ts +2 -0
  209. package/dist/keepAlive-WYQGRhuz.js +48 -0
  210. package/dist/languageName-CItV_SOv.js +11 -0
  211. package/dist/languages-BShG9LpE.js +10 -0
  212. package/dist/leaveGuard-Cc8yeLxM.js +72 -0
  213. package/dist/modal/Modal.vue.d.ts +1 -1
  214. package/dist/modal/Sheet.vue.d.ts +2 -0
  215. package/dist/modal/index.js +5 -5
  216. package/dist/modules/access/entities.d.ts +112 -0
  217. package/dist/modules/access/routes.d.ts +67 -0
  218. package/dist/modules/access/schemas.d.ts +73 -0
  219. package/dist/modules/events/entities.d.ts +16 -0
  220. package/dist/modules/events/routes.d.ts +17 -0
  221. package/dist/modules/events/schemas.d.ts +16 -0
  222. package/dist/modules/identity/entities.d.ts +150 -0
  223. package/dist/modules/identity/routes.d.ts +118 -0
  224. package/dist/modules/identity/schemas.d.ts +145 -0
  225. package/dist/modules/notification/entities.d.ts +46 -0
  226. package/dist/modules/notification/routes.d.ts +26 -0
  227. package/dist/modules/notification/schemas.d.ts +25 -0
  228. package/dist/{navigation-B33ikiCS.js → navigation-Cm3iChlR.js} +21 -20
  229. package/dist/neighbors-DpaIMQAL.js +86 -0
  230. package/dist/notifications/InboxPanel.vue.d.ts +16 -0
  231. package/dist/notifications/MarkAllRead.vue.d.ts +7 -0
  232. package/dist/notifications/NotificationBell.vue.d.ts +2 -0
  233. package/dist/notifications/SettingsLink.vue.d.ts +6 -0
  234. package/dist/notifications/context.d.ts +20 -0
  235. package/dist/notifications/deadletters/DeadLetters.vue.d.ts +2 -0
  236. package/dist/notifications/deadletters/access.d.ts +3 -0
  237. package/dist/notifications/deadletters/list.d.ts +3 -0
  238. package/dist/notifications/deadletters/routes.d.ts +13 -0
  239. package/dist/notifications/feature.d.ts +31 -0
  240. package/dist/notifications/inbox.d.ts +62 -0
  241. package/dist/notifications/index.d.ts +13 -0
  242. package/dist/notifications/index.js +8 -0
  243. package/dist/notifications/settings/EmailPanel.vue.d.ts +14 -0
  244. package/dist/notifications/settings/QuietHoursPanel.vue.d.ts +14 -0
  245. package/dist/notifications/settings/SettingsMenuItem.vue.d.ts +2 -0
  246. package/dist/notifications/settings/SettingsPage.vue.d.ts +2 -0
  247. package/dist/notifications/settings/categoryText.d.ts +9 -0
  248. package/dist/notifications/settings/routes.d.ts +13 -0
  249. package/dist/notifications/settings/settings.d.ts +18 -0
  250. package/dist/notifications/settings/state.d.ts +16 -0
  251. package/dist/notifications/state.d.ts +27 -0
  252. package/dist/notifications/stream.d.ts +21 -0
  253. package/dist/options-Ba_0uLWN.js +18 -0
  254. package/dist/overlay/AlertDialog.vue.d.ts +3 -3
  255. package/dist/overlay/Popover.vue.d.ts +1 -1
  256. package/dist/overlay/closeOverlays.d.ts +7 -0
  257. package/dist/overlay/index.js +21 -20
  258. package/dist/page/AdaptivePageShell.vue.d.ts +2 -2
  259. package/dist/page/ResourceHeader.vue.d.ts +2 -2
  260. package/dist/page/index.js +99 -457
  261. package/dist/phone/PhoneField.vue.d.ts +2 -2
  262. package/dist/phone/index.js +68 -67
  263. package/dist/platform/index.d.ts +2 -2
  264. package/dist/platform/index.js +73 -90
  265. package/dist/platform/platform.d.ts +2 -2
  266. package/dist/platform/session.d.ts +22 -1
  267. package/dist/platform-q3cjODLx.js +255 -0
  268. package/dist/resource/index.js +8 -248
  269. package/dist/route-goWMxDUN.js +13 -0
  270. package/dist/routeResource-DstM0hvf.js +82 -0
  271. package/dist/router/guards.d.ts +7 -1
  272. package/dist/router/index.js +23 -37
  273. package/dist/router/navigation.d.ts +1 -1
  274. package/dist/rowLayout-BqTEhEuy.js +603 -0
  275. package/dist/sectionIndex-BS0ic5W7.js +86 -0
  276. package/dist/{sections-LtxV5Mtk.js → sections-CntvUTxn.js} +1 -1
  277. package/dist/shell/AccountMenuItem.vue.d.ts +1 -1
  278. package/dist/shell/BackofficeShell.vue.d.ts +2 -2
  279. package/dist/shell/NavigationList.vue.d.ts +1 -1
  280. package/dist/shell/ShellBrand.vue.d.ts +1 -1
  281. package/dist/shell/backofficeShell.d.ts +1 -1
  282. package/dist/shell/identity.d.ts +1 -1
  283. package/dist/shell/index.js +491 -595
  284. package/dist/state/ProgressTrack.vue.d.ts +1 -1
  285. package/dist/state/index.js +59 -92
  286. package/dist/status-BuP3ULjH.js +33 -0
  287. package/dist/styles.css +1 -1
  288. package/dist/suggestions-BxMm6MQA.js +138 -0
  289. package/dist/testing/index.js +1 -1
  290. package/dist/toast-D9Z5To38.js +13 -0
  291. package/dist/transport-BnP7WC0Y.js +4 -0
  292. package/dist/useCommand-BkONMn3X.js +135 -0
  293. package/dist/useLoad-CYRVx6HW.js +39 -0
  294. package/dist/useResourceForm-D1hIpwW5.js +52 -0
  295. package/dist/useSaveChrome-chi6D3HY.js +25 -0
  296. package/dist/useSheetDrag-OsD6Eb6I.js +72 -0
  297. package/dist/useTypedEntry-aTfPBAhw.js +857 -0
  298. package/package.json +26 -5
  299. package/dist/NoAccess.vue_vue_type_script_setup_true_lang-OKW8pKYU.js +0 -78
  300. package/dist/SectionList.vue_vue_type_script_setup_true_lang-L9ita_Kx.js +0 -230
  301. package/dist/SelectField.vue_vue_type_script_setup_true_lang-DZTrU8NJ.js +0 -661
  302. package/dist/Sheet.vue_vue_type_script_setup_true_lang-CtkJ-4e3.js +0 -210
  303. package/dist/SwipeActions.vue_vue_type_script_setup_true_lang-CGTuEnTv.js +0 -243
  304. package/dist/chrome-D9pwD6iS.js +0 -101
  305. package/dist/environment-D3nozt9a.js +0 -75
  306. package/dist/feature-DyDtyMLU.js +0 -47
  307. package/dist/options-DAkBtYkI.js +0 -330
  308. package/dist/platform-jqlKVJ2e.js +0 -244
  309. package/dist/toast-DvrHQ6Ag.js +0 -131
@@ -34,5 +34,22 @@ export declare const coreIcons: {
34
34
  readonly message: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/></svg>";
35
35
  readonly copy: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"9\" width=\"12\" height=\"12\" rx=\"2\"/><path d=\"M5 15V5a2 2 0 0 1 2-2h10\"/></svg>";
36
36
  readonly history: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7v5l3 2\"/></svg>";
37
+ readonly user3Line: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M20 22H18V20C18 18.3431 16.6569 17 15 17H9C7.34315 17 6 18.3431 6 20V22H4V20C4 17.2386 6.23858 15 9 15H15C17.7614 15 20 17.2386 20 20V22ZM12 13C8.68629 13 6 10.3137 6 7C6 3.68629 8.68629 1 12 1C15.3137 1 18 3.68629 18 7C18 10.3137 15.3137 13 12 13ZM12 11C14.2091 11 16 9.20914 16 7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7C8 9.20914 9.79086 11 12 11Z\"></path></svg>";
38
+ readonly key2Line: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M10.7577 11.8281L18.6066 3.97919L20.0208 5.3934L18.6066 6.80761L21.0815 9.28249L19.6673 10.6967L17.1924 8.22183L15.7782 9.63604L17.8995 11.7574L16.4853 13.1716L14.364 11.0503L12.1719 13.2423C13.4581 15.1837 13.246 17.8251 11.5355 19.5355C9.58291 21.4882 6.41709 21.4882 4.46447 19.5355C2.51184 17.5829 2.51184 14.4171 4.46447 12.4645C6.17493 10.754 8.81633 10.5419 10.7577 11.8281ZM10.1213 18.1213C11.2929 16.9497 11.2929 15.0503 10.1213 13.8787C8.94975 12.7071 7.05025 12.7071 5.87868 13.8787C4.70711 15.0503 4.70711 16.9497 5.87868 18.1213C7.05025 19.2929 8.94975 19.2929 10.1213 18.1213Z\"></path></svg>";
39
+ readonly deviceLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19 8H21C21.5523 8 22 8.44772 22 9V21C22 21.5523 21.5523 22 21 22H13C12.4477 22 12 21.5523 12 21V20H4C3.44772 20 3 19.5523 3 19V3C3 2.44772 3.44772 2 4 2H18C18.5523 2 19 2.44772 19 3V8ZM17 8V4H5V18H12V9C12 8.44772 12.4477 8 13 8H17ZM14 10V20H20V10H14Z\"></path></svg>";
40
+ readonly timeFill: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM13 12V7H11V14H17V12H13Z\"></path></svg>";
41
+ readonly edit: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-edit\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"/><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"/></svg>";
42
+ readonly lockLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19 10H20C20.5523 10 21 10.4477 21 11V21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21V11C3 10.4477 3.44772 10 4 10H5V9C5 5.13401 8.13401 2 12 2C15.866 2 19 5.13401 19 9V10ZM5 12V20H19V12H5ZM11 14H13V18H11V14ZM17 10V9C17 6.23858 14.7614 4 12 4C9.23858 4 7 6.23858 7 9V10H17Z\"></path></svg>";
43
+ readonly checkCircle: "<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"css-i6dzq1\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline></svg>";
44
+ readonly addLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M11 11V5H13V11H19V13H13V19H11V13H5V11H11Z\"></path></svg>";
45
+ readonly mailUnreadFill: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M18.8032 8.4928C19.4663 8.81764 20.2118 9 21 9C21.3425 9 21.6769 8.96557 22 8.89998V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3H16.1C16.0344 3.32311 16 3.65753 16 4C16 5.23672 16.449 6.36857 17.1929 7.24142L12.0606 11.6829L5.64722 6.2377L4.35278 7.7623L12.0731 14.3171L18.8032 8.4928ZM21 7C19.3431 7 18 5.65685 18 4C18 2.34315 19.3431 1 21 1C22.6569 1 24 2.34315 24 4C24 5.65685 22.6569 7 21 7Z\"></path></svg>";
46
+ readonly eyeOff: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"/><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"/></svg>";
47
+ readonly listCheck: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M8 4H21V6H8V4ZM3 3.5H6V6.5H3V3.5ZM3 10.5H6V13.5H3V10.5ZM3 17.5H6V20.5H3V17.5ZM8 11H21V13H8V11ZM8 18H21V20H8V18Z\"></path></svg>";
48
+ readonly shieldStarFill: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M3.78307 2.82598L12 1L20.2169 2.82598C20.6745 2.92766 21 3.33347 21 3.80217V13.7889C21 15.795 19.9974 17.6684 18.3282 18.7812L12 23L5.6718 18.7812C4.00261 17.6684 3 15.795 3 13.7889V3.80217C3 3.33347 3.32553 2.92766 3.78307 2.82598ZM12 13.5L14.9389 15.0451L14.3776 11.7725L16.7553 9.45492L13.4695 8.97746L12 6L10.5305 8.97746L7.24472 9.45492L9.62236 11.7725L9.06107 15.0451L12 13.5Z\"></path></svg>";
49
+ readonly swapBoxLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M4.00488 5.00275V19.0027H20.0049V5.00275H4.00488ZM3.00488 3.00275H21.0049C21.5572 3.00275 22.0049 3.45046 22.0049 4.00275V20.0027C22.0049 20.555 21.5572 21.0027 21.0049 21.0027H3.00488C2.4526 21.0027 2.00488 20.555 2.00488 20.0027V4.00275C2.00488 3.45046 2.4526 3.00275 3.00488 3.00275ZM15.0049 7.00275L18.5049 10.0027L15.0049 13.0027V11.0027H11.0049V9.00275H15.0049V7.00275ZM9.00488 17.0027L5.50488 14.0027L9.00488 11.0027V13.0027H13.0049V15.0027H9.00488V17.0027Z\"></path></svg>";
50
+ readonly notification3Line: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M20 17H22V19H2V17H4V10C4 5.58172 7.58172 2 12 2C16.4183 2 20 5.58172 20 10V17ZM18 17V10C18 6.68629 15.3137 4 12 4C8.68629 4 6 6.68629 6 10V17H18ZM9 21H15V23H9V21Z\"></path></svg>";
51
+ readonly checkDoubleLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M11.602 13.7599L13.014 15.1719L21.4795 6.7063L22.8938 8.12051L13.014 18.0003L6.65 11.6363L8.06421 10.2221L10.189 12.3469L11.6025 13.7594L11.602 13.7599ZM11.6037 10.9322L16.5563 5.97949L17.9666 7.38977L13.0139 12.3424L11.6037 10.9322ZM8.77698 16.5873L7.36396 18.0003L1 11.6363L2.41421 10.2221L3.82723 11.6351L3.82604 11.6363L8.77698 16.5873Z\"></path></svg>";
52
+ readonly settings3Line: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M3.33946 17.0002C2.90721 16.2515 2.58277 15.4702 2.36133 14.6741C3.3338 14.1779 3.99972 13.1668 3.99972 12.0002C3.99972 10.8345 3.3348 9.824 2.36353 9.32741C2.81025 7.71651 3.65857 6.21627 4.86474 4.99001C5.7807 5.58416 6.98935 5.65534 7.99972 5.072C9.01009 4.48866 9.55277 3.40635 9.4962 2.31604C11.1613 1.8846 12.8847 1.90004 14.5031 2.31862C14.4475 3.40806 14.9901 4.48912 15.9997 5.072C17.0101 5.65532 18.2187 5.58416 19.1346 4.99007C19.7133 5.57986 20.2277 6.25151 20.66 7.00021C21.0922 7.7489 21.4167 8.53025 21.6381 9.32628C20.6656 9.82247 19.9997 10.8336 19.9997 12.0002C19.9997 13.166 20.6646 14.1764 21.6359 14.673C21.1892 16.2839 20.3409 17.7841 19.1347 19.0104C18.2187 18.4163 17.0101 18.3451 15.9997 18.9284C14.9893 19.5117 14.4467 20.5941 14.5032 21.6844C12.8382 22.1158 11.1148 22.1004 9.49633 21.6818C9.55191 20.5923 9.00929 19.5113 7.99972 18.9284C6.98938 18.3451 5.78079 18.4162 4.86484 19.0103C4.28617 18.4205 3.77172 17.7489 3.33946 17.0002ZM8.99972 17.1964C10.0911 17.8265 10.8749 18.8227 11.2503 19.9659C11.7486 20.0133 12.2502 20.014 12.7486 19.9675C13.1238 18.8237 13.9078 17.8268 14.9997 17.1964C16.0916 16.5659 17.347 16.3855 18.5252 16.6324C18.8146 16.224 19.0648 15.7892 19.2729 15.334C18.4706 14.4373 17.9997 13.2604 17.9997 12.0002C17.9997 10.74 18.4706 9.5632 19.2729 8.6665C19.1688 8.4405 19.0538 8.21822 18.9279 8.00021C18.802 7.78219 18.667 7.57148 18.5233 7.36842C17.3457 7.61476 16.0911 7.43414 14.9997 6.80405C13.9083 6.17395 13.1246 5.17768 12.7491 4.03455C12.2509 3.98714 11.7492 3.98646 11.2509 4.03292C10.8756 5.17671 10.0916 6.17364 8.99972 6.80405C7.9078 7.43447 6.65245 7.61494 5.47428 7.36803C5.18485 7.77641 4.93463 8.21117 4.72656 8.66637C5.52881 9.56311 5.99972 10.74 5.99972 12.0002C5.99972 13.2604 5.52883 14.4372 4.72656 15.3339C4.83067 15.5599 4.94564 15.7822 5.07152 16.0002C5.19739 16.2182 5.3324 16.4289 5.47612 16.632C6.65377 16.3857 7.90838 16.5663 8.99972 17.1964ZM11.9997 15.0002C10.3429 15.0002 8.99972 13.6571 8.99972 12.0002C8.99972 10.3434 10.3429 9.00021 11.9997 9.00021C13.6566 9.00021 14.9997 10.3434 14.9997 12.0002C14.9997 13.6571 13.6566 15.0002 11.9997 15.0002ZM11.9997 13.0002C12.552 13.0002 12.9997 12.5525 12.9997 12.0002C12.9997 11.4479 12.552 11.0002 11.9997 11.0002C11.4474 11.0002 10.9997 11.4479 10.9997 12.0002C10.9997 12.5525 11.4474 13.0002 11.9997 13.0002Z\"></path></svg>";
53
+ readonly moonLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M10 7C10 10.866 13.134 14 17 14C18.9584 14 20.729 13.1957 21.9995 11.8995C22 11.933 22 11.9665 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C12.0335 2 12.067 2 12.1005 2.00049C10.8043 3.27098 10 5.04157 10 7ZM4 12C4 16.4183 7.58172 20 12 20C15.0583 20 17.7158 18.2839 19.062 15.7621C18.3945 15.9187 17.7035 16 17 16C12.0294 16 8 11.9706 8 7C8 6.29648 8.08133 5.60547 8.2379 4.938C5.71611 6.28423 4 8.9417 4 12Z\"></path></svg>";
37
54
  };
38
55
  export type CoreIconName = keyof typeof coreIcons;
@@ -1,4 +1,4 @@
1
- import { _ as a, i as n, p as c } from "../Icon.vue_vue_type_script_lang-DtC4_mkz.js";
1
+ import { _ as a, i as n, p as c } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
2
2
  export {
3
3
  a as Icon,
4
4
  n as installIcons,
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import { type Permission } from "../platform";
2
+ /**
3
+ * The "sign in as" entry point of a person's page or row: shown only to whoever holds `permission` (the
4
+ * application's catalogue says which one grants it; the server decides again), never for oneself and never while
5
+ * already signed in as somebody else. Afterwards the app is that person's, from the home page, under the banner.
6
+ *
7
+ * <SignInAsButton :user-id="person.id" :name="person.name" permission="iam.user:impersonate" />
8
+ */
9
+ type __VLS_Props = {
10
+ userId: number;
11
+ name: string;
12
+ permission: Permission;
13
+ };
14
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import type { RouteLocationRaw } from "vue-router";
2
+ /** What the sign-in page needs from the feature that installed it. */
3
+ export interface IdentityContext {
4
+ /** Where a person goes after signing in when they were not heading anywhere in particular. */
5
+ readonly home: RouteLocationRaw;
6
+ }
7
+ export declare const identityContextKey: import("vue").InjectionKey<IdentityContext>, useIdentityContext: () => IdentityContext;
@@ -0,0 +1,16 @@
1
+ import type { RouteLocationRaw } from "vue-router";
2
+ import { type Feature } from "../app";
3
+ export interface IdentityFeatureOptions {
4
+ /** Where a person goes after signing in when they were not heading anywhere in particular. Default `/`. */
5
+ home?: RouteLocationRaw;
6
+ }
7
+ /**
8
+ * The sign-in screens of go-core's identity module, one feature to install: the sign-in page at `/login`
9
+ * (route name `login`, public), the prompt that asks for the password again when the session ends in the middle of
10
+ * work (the page stays, drafts survive; needs a shell with a `host` slot), a banner while signed in as somebody else, the session kept alive while the app is open, and the person's language kept
11
+ * in step with the server (the account menu's language row saves it with `change-locale`). Pair it with
12
+ * `createPlatform({ config, ...identityPlatform() })`, which wires the session, the refresh on 401 and sign-out.
13
+ *
14
+ * createApplication({ platform, shell: backofficeShell(), features: [identityFeature({ home: "/tickets" })] })
15
+ */
16
+ export declare function identityFeature(options?: IdentityFeatureOptions): Feature;
@@ -0,0 +1,15 @@
1
+ import type { FormFailureKind } from "../form";
2
+ /**
3
+ * What a form of these screens needs to speak go-core's refusals, in the app's language (an app's `errors.<reason>` first, then
4
+ * `core.errors.<reason>`): the reason of a field (`identity.email.taken`) becomes a sentence; a refusal of the whole action (a
5
+ * veto of the application's deactivation hook, a lock) says its reason instead of the generic line; a time a lock ends (`locked_until`)
6
+ * reads as a time of day. Spread into `useForm` / `useCommand`; `sentence` is the same for a toast or a line of your own:
7
+ *
8
+ * const messages = useServerMessages();
9
+ * useCommand({ ...messages, run, done });
10
+ */
11
+ export declare function useServerMessages(): {
12
+ sentence: (error: unknown, fallback?: string) => string;
13
+ translate: (message: string) => string;
14
+ failureMessage: (kind: FormFailureKind, error: unknown) => string | undefined;
15
+ };
@@ -0,0 +1,16 @@
1
+ export type * from "../modules/identity/entities";
2
+ export type * as Inputs from "../modules/identity/schemas";
3
+ export { identityRoutes } from "../modules/identity/routes";
4
+ export { identityFeature } from "./feature";
5
+ export type { IdentityFeatureOptions } from "./feature";
6
+ export { identityPlatform, identitySessionAdapter, renewIdentityTokens } from "./session";
7
+ export type { IdentityPlatformOptions } from "./session";
8
+ export { usersFeature } from "./users/feature";
9
+ export type { UsersFeatureOptions } from "./users/feature";
10
+ export type { PersonSection } from "./users/personSections";
11
+ export { profileRoutes } from "./profile/routes";
12
+ export { usersRoutes } from "./users/routes";
13
+ export { default as SignInAsButton } from "./SignInAsButton.vue";
14
+ export { isSessionEnded, lockedUntil, returnToOwnAccount, signIn, signInAs } from "./signIn";
15
+ export { parseIdentityUser } from "./user";
16
+ export type { IdentityUser } from "./user";
@@ -0,0 +1,18 @@
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-CGv-u1Ws.js";
2
+ export {
3
+ t as SignInAsButton,
4
+ n as identityFeature,
5
+ a as identityPlatform,
6
+ i as identityRoutes,
7
+ o as identitySessionAdapter,
8
+ r as isSessionEnded,
9
+ d as lockedUntil,
10
+ u as parseIdentityUser,
11
+ y as profileRoutes,
12
+ l as renewIdentityTokens,
13
+ I as returnToOwnAccount,
14
+ f as signIn,
15
+ p as signInAs,
16
+ A as usersFeature,
17
+ c as usersRoutes
18
+ };
@@ -0,0 +1,11 @@
1
+ import type { ProfileResponse } from "../../modules/identity/entities";
2
+ /** The person's own name and phone; the username is shown, never edited here (an administrator changes it). */
3
+ type __VLS_Props = {
4
+ profile: ProfileResponse;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ updated: (profile: ProfileResponse) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onUpdated?: ((profile: ProfileResponse) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { PendingEmail, ProfileResponse } from "../../modules/identity/entities";
2
+ declare function present(existing: PendingEmail | null): void;
3
+ declare const _default: import("vue").DefineComponent<{}, {
4
+ present: typeof present;
5
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ changed: (profile: ProfileResponse) => any;
7
+ pending: (pending: PendingEmail | null) => any;
8
+ cancelled: () => any;
9
+ }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
10
+ onChanged?: ((profile: ProfileResponse) => any) | undefined;
11
+ onPending?: ((pending: PendingEmail | null) => any) | undefined;
12
+ onCancelled?: (() => any) | undefined;
13
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
14
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { ProfileResponse } from "../../modules/identity/entities";
2
+ /** The current address, "Change e-mail address", and a change that waits for its code, to resume or cancel. */
3
+ type __VLS_Props = {
4
+ profile: ProfileResponse;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ updated: (profile: ProfileResponse) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onUpdated?: ((profile: ProfileResponse) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The action row at the foot of a panel that edits: one primary button saying what it does (with a spinner while it works),
3
+ * "Unsaved changes" and Cancel while there are edits, and, while it shows, leaving the page asks first.
4
+ */
5
+ type __VLS_Props = {
6
+ label: string;
7
+ processing?: boolean;
8
+ dirty: boolean;
9
+ };
10
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ cancel: () => any;
12
+ submit: () => any;
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onCancel?: (() => any) | undefined;
15
+ onSubmit?: (() => any) | undefined;
16
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The "enter the code we sent you" step: what was sent where, the boxes for the code, Verify, and "Resend" with the
3
+ * countdown until the server lets another be sent. It knows nothing about what the code is for: the caller passes the
4
+ * server's state in (when the code stops working, when a new one may be asked for) and handles `verify`, `resend` and
5
+ * `cancel`. A wrong code clears the boxes and puts the caret back in the first.
6
+ *
7
+ * <VerifyCode v-model="code" :description="…" :expires-at="p.expires_at" :resend-available-at="p.resend_available_at"
8
+ * :error="error" :verifying="busy" @verify="confirm" @resend="resend" @cancel="cancelChange" />
9
+ */
10
+ type __VLS_Props = {
11
+ description?: string;
12
+ length?: number;
13
+ /** When a new code may be asked for (ISO time). */
14
+ resendAvailableAt?: string | null;
15
+ /** When the code stops working (ISO time). */
16
+ expiresAt?: string | null;
17
+ /** What went wrong with the last attempt, in words. */
18
+ error?: string;
19
+ /** The code can no longer be used: the boxes are off and asking for a new one is the way on. */
20
+ expired?: boolean;
21
+ verifying?: boolean;
22
+ resending?: boolean;
23
+ };
24
+ type __VLS_PublicProps = __VLS_Props & {
25
+ modelValue?: string;
26
+ };
27
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
28
+ focus: () => void | undefined;
29
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
+ cancel: () => any;
31
+ "update:modelValue": (value: string) => any;
32
+ verify: (code: string) => any;
33
+ resend: () => any;
34
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
35
+ onCancel?: (() => any) | undefined;
36
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
37
+ onVerify?: ((code: string) => any) | undefined;
38
+ onResend?: (() => any) | undefined;
39
+ }>, {
40
+ length: number;
41
+ error: string;
42
+ description: string;
43
+ expired: boolean;
44
+ expiresAt: string | null;
45
+ resendAvailableAt: string | null;
46
+ verifying: boolean;
47
+ resending: boolean;
48
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
49
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import type { RouteRecordRaw } from "vue-router";
2
+ /**
3
+ * The route of "my profile": any signed-in person may open it (no permission), which is why it has no `access`. The name and
4
+ * path are fixed, so a link of the application can name them.
5
+ */
6
+ export interface ProfileRoutes {
7
+ /** The records `usersFeature` installs. */
8
+ readonly records: readonly RouteRecordRaw[];
9
+ readonly index: {
10
+ readonly name: "profile";
11
+ };
12
+ }
13
+ export declare const profileRoutes: ProfileRoutes;
@@ -0,0 +1,30 @@
1
+ import { type HttpClient } from "../client";
2
+ import { type PlatformOptions, type SessionAdapter, type SessionUser, type UserParser } from "../platform";
3
+ import type { BootstrapConfig } from "../platform";
4
+ import { type IdentityUser } from "./user";
5
+ /**
6
+ * The session over go-core's identity routes: `GET /v1/auth/me`; when that says 401 (the access token ran
7
+ * out while the app was closed) one refresh with the refresh cookie before giving up; sign-out ends it.
8
+ */
9
+ export declare function identitySessionAdapter<U extends SessionUser>(http: HttpClient, parseUser: UserParser<U>): SessionAdapter<U>;
10
+ /** What `createPlatform` is given to run on go-core's identity module. */
11
+ export type IdentityPlatformOptions<U extends SessionUser> = Required<Pick<PlatformOptions<U, BootstrapConfig>, "session" | "renewSession">>;
12
+ /**
13
+ * The platform options that wire the session to go-core's identity routes: reading it (`/auth/me`, with one
14
+ * refresh when the access token ran out), ending it, and renewing it when a request is answered 401.
15
+ *
16
+ * const platform = createPlatform({ config, ...identityPlatform() });
17
+ *
18
+ * The user is go-core's default projection (`IdentityUser`); an application that projects its own passes
19
+ * `parseUser`, which must keep the `id` and the `login` (the prompt for an expired session shows it).
20
+ */
21
+ export declare function identityPlatform(): IdentityPlatformOptions<IdentityUser>;
22
+ export declare function identityPlatform<U extends SessionUser & {
23
+ readonly login: string;
24
+ }>(options: {
25
+ parseUser: UserParser<U>;
26
+ }): IdentityPlatformOptions<U>;
27
+ /** Renews the tokens, for `keepSessionAlive({ renew })`: the session is read again afterwards. */
28
+ export declare const renewIdentityTokens: (platform: {
29
+ readonly http: HttpClient;
30
+ }) => Promise<void>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * A row of a grouped list that does something when it is pressed: its label in the action's colour (link for a routine
3
+ * one, red for a consequential one), the line saying what it does under it, and a chevron. A button, so the keyboard reaches it.
4
+ */
5
+ type __VLS_Props = {
6
+ label: string;
7
+ sub?: string;
8
+ tone?: "link" | "critical";
9
+ disabled?: boolean;
10
+ };
11
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ click: () => any;
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onClick?: (() => any) | undefined;
15
+ }>, {
16
+ disabled: boolean;
17
+ sub: string;
18
+ tone: "link" | "critical";
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { ChangeRow } from "../../modules/identity/entities";
2
+ /**
3
+ * What was changed on a person's account, newest first, one sentence per change ("Details changed", "Password changed"),
4
+ * with who did it (by the name the row carries, "somebody else" when the person is gone; nothing when it was the person themselves), what changed from what to what, and when. An action or a
5
+ * field this version does not know reads as a generic one, never as its key; a password is never shown.
6
+ */
7
+ type __VLS_Props = {
8
+ rows: readonly ChangeRow[];
9
+ };
10
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,12 @@
1
+ /** Paging for a list that is not a collection (a person's sign-ins, changes): the page and previous / next. Nothing for one page. */
2
+ type __VLS_Props = {
3
+ page: number;
4
+ lastPage: number;
5
+ total: number;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ "update:page": (page: number) => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ "onUpdate:page"?: ((page: number) => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ export default _default;
@@ -0,0 +1,16 @@
1
+ /** A section's title and one line on what it holds, above its groups; `#actions` puts a quiet action at its end. */
2
+ type __VLS_Props = {
3
+ title: string;
4
+ description?: string;
5
+ };
6
+ type __VLS_Slots = {
7
+ actions?: () => unknown;
8
+ };
9
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
11
+ export default _default;
12
+ type __VLS_WithSlots<T, S> = T & {
13
+ new (): {
14
+ $slots: S;
15
+ };
16
+ };
@@ -0,0 +1,19 @@
1
+ import type { SessionItem } from "../../modules/identity/entities";
2
+ /**
3
+ * The live sessions of a person, one row per device: the device, where from, when last used and when it ends, a mark on the
4
+ * one in use, the mark of a session somebody opened by signing in as the person, and "Sign out" per row. Shared by a
5
+ * person's record and by "my profile", so it takes its data and its actions as props.
6
+ */
7
+ type __VLS_Props = {
8
+ sessions: readonly SessionItem[];
9
+ /** Whether a row can be ended. The session in use never can: leaving it is signing out. */
10
+ canEnd: boolean;
11
+ header?: string;
12
+ footer?: string;
13
+ };
14
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ end: (session: SessionItem) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ onEnd?: ((session: SessionItem) => any) | undefined;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { SignInRow } from "../../modules/identity/entities";
2
+ /**
3
+ * A person's sign-in history as a table (rows below 1024 px): when, what happened as a badge (and who did it, for the events
4
+ * somebody else does), from which device and which address. Shared by a person's record and by "my profile".
5
+ */
6
+ type __VLS_Props = {
7
+ rows: readonly SignInRow[];
8
+ loading?: boolean;
9
+ };
10
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,23 @@
1
+ import type { ViewCount } from "../../client";
2
+ declare const _default: <View extends string>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
4
+ readonly "onUpdate:modelValue"?: ((value: View) => any) | undefined;
5
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & ({
6
+ views: readonly View[];
7
+ counts?: readonly ViewCount[];
8
+ labelOf: (view: View) => string;
9
+ label: string;
10
+ } & {
11
+ modelValue: View;
12
+ }) & Partial<{}>> & import("vue").PublicProps;
13
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
14
+ attrs: any;
15
+ slots: {};
16
+ emit: (evt: "update:modelValue", value: View) => void;
17
+ }>) => import("vue").VNode & {
18
+ __ctx?: Awaited<typeof __VLS_setup>;
19
+ };
20
+ export default _default;
21
+ type __VLS_PrettifyLocal<T> = {
22
+ [K in keyof T]: T[K];
23
+ } & {};
@@ -0,0 +1,9 @@
1
+ import type { Tone } from "../../state";
2
+ /** The style of an event; an event this version does not know is neutral and reads as a generic one, never as its key. */
3
+ export declare function signInEventStyle(event: string): {
4
+ tone: Tone;
5
+ byOther: boolean;
6
+ known: boolean;
7
+ };
8
+ /** The i18n key of an event's words: with the actor's name when somebody else did it and the name is known. */
9
+ export declare function signInEventKey(event: string, actorName: string | null): string;
@@ -0,0 +1,27 @@
1
+ import type { Platform } from "../platform";
2
+ import type { LoginInput } from "../modules/identity/schemas";
3
+ /**
4
+ * Whether a failure is the session having ended (a 401). The prompt for an expired session (or the sign-in page) says
5
+ * so; a toast for the failed request on top of it would only cover the prompt's buttons, so callers leave it out.
6
+ */
7
+ export declare const isSessionEnded: (error: unknown) => boolean;
8
+ /** The refusal of a sign-in that tells when the lock ends, as the moment it ends; null for any other failure. */
9
+ export declare function lockedUntil(error: unknown): Date | null;
10
+ /**
11
+ * Signs in with a login and a password: the server sets the cookies, then the session reads who is
12
+ * signed in (the same payload as at start-up). Rejects with the `ApiError` of a refusal
13
+ * (`identity.signin.failed` / `locked` / `inactive`, 429 when the attempts come too fast), or with the
14
+ * failure of reading the session afterwards.
15
+ */
16
+ export declare function signIn({ http, session }: Pick<Platform, "http" | "session">, input: LoginInput): Promise<void>;
17
+ /**
18
+ * Signs in as somebody else (go-core `login-as`; the server decides who may). Afterwards the session is that
19
+ * person's, with `impersonator` naming the real one. Rejects with the server's refusal
20
+ * (`identity.impersonation.disabled`, a missing or inactive account).
21
+ */
22
+ export declare function signInAs(platform: Pick<Platform, "http" | "session">, userId: number): Promise<void>;
23
+ /**
24
+ * Ends the impersonation: the session is the real person's own again, with no password asked. Rejects with
25
+ * `identity.impersonation.not_active` when the session is not an impersonation.
26
+ */
27
+ export declare function returnToOwnAccount(platform: Pick<Platform, "http" | "session">): Promise<void>;
@@ -0,0 +1,20 @@
1
+ import { type ComputedRef } from "vue";
2
+ import { type Form } from "../form";
3
+ interface SignInValues {
4
+ login: string;
5
+ password: string;
6
+ }
7
+ /**
8
+ * The state of a sign-in form, for the sign-in page and the prompt of an expired session: both fields required
9
+ * before the server is asked, and every refusal (wrong login or password, the lock with the time it ends, an
10
+ * inactive account, too many attempts) as one sentence for `passwordError`, in the app's language.
11
+ * `submit()` resolves true once the person is signed in.
12
+ */
13
+ export declare function useSignInForm(options?: {
14
+ login?: string;
15
+ }): {
16
+ form: Form<SignInValues>;
17
+ passwordError: ComputedRef<string | undefined>;
18
+ submit: () => Promise<boolean>;
19
+ };
20
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { UserParser } from "../platform";
2
+ import type { User } from "../modules/identity/entities";
3
+ /** The signed-in person as go-core's identity module projects them by default. */
4
+ export type IdentityUser = User;
5
+ /** Reads go-core's default user projection (`{ id, login, name, email, locale }`); throws naming the first wrong field. */
6
+ export declare const parseIdentityUser: UserParser<IdentityUser>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * "Deactivate": says what it does (signed out on every device now, cannot sign in, roles and history kept) and asks once.
3
+ * When the application's deactivation hook refuses (the person still owns something), the dialog stays open and says the
4
+ * reason in words above the consequences.
5
+ */
6
+ type __VLS_Props = {
7
+ id: number;
8
+ name: string;
9
+ sessionCount: number | null;
10
+ };
11
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
12
+ open: () => void;
13
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ done: () => any;
15
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
16
+ onDone?: (() => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import type { UserDetail } from "../../modules/identity/entities";
2
+ declare const _default: import("vue").DefineComponent<{}, {
3
+ create: () => void;
4
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
+ created: (user: UserDetail) => any;
6
+ }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
7
+ onCreated?: ((user: UserDetail) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
9
+ export default _default;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * "Set a new password": a password typed twice. Nobody can read a password, only replace it, and replacing it signs the
3
+ * person out everywhere and lifts their lock, which the dialog says before it is saved.
4
+ */
5
+ type __VLS_Props = {
6
+ id: number;
7
+ name: string;
8
+ };
9
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
10
+ open: () => void;
11
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ saved: () => any;
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onSaved?: (() => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import type { Permission } from "../../platform";
2
+ export declare const VIEW_USERS: Permission;
3
+ export declare const MANAGE_USERS: Permission;
4
+ export declare const VIEW_ACTIVITY: Permission;
@@ -0,0 +1,9 @@
1
+ import { type Permission } from "../../platform";
2
+ /** What the screens of `usersFeature` need from the feature that installed them. */
3
+ export interface UsersContext {
4
+ /** The permission that shows "Sign in as" on a person's record; false leaves it out. */
5
+ readonly signInAs: Permission | false;
6
+ /** The application's areas for the Activity section: an area key of the server's audit, and the i18n key that names it. */
7
+ readonly activityAreas: Readonly<Record<string, string>>;
8
+ }
9
+ export declare const usersContextKey: import("vue").InjectionKey<UsersContext>, useUsersContext: () => UsersContext;