@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
package/README.md CHANGED
@@ -18,6 +18,9 @@ Its plan and rules are in [PLAN.md](PLAN.md).
18
18
  | `@wssto2/vue-core/resource`, `/page` | `useRouteResource`, `ResourcePage`, `SectionNavigator`, `AdaptivePageShell` |
19
19
  | `@wssto2/vue-core/button`, `/controls`, `/content`, `/state`, `/overlay`, `/modal`, `/icon` | the primitives |
20
20
  | `@wssto2/vue-core/i18n`, `/format`, `/client` | messages, `useDescribeError`, formatting, `HttpClient` and `ApiError` |
21
+ | `@wssto2/vue-core/identity`, `/access` | go-core's module contracts (types, route tables) and, in `/identity`, `identityFeature` (sign-in page, language), `identityPlatform()` and `usersFeature` (users, "my profile"): [sign-in](docs/recipes/sign-in.md), [users](docs/recipes/users.md) |
22
+ | `@wssto2/vue-core/access` (screens) | `accessFeature({ catalogue })`: roles list and editor, compare, replace, a person's roles (`PersonAccess`) and what they can do: [roles and access](docs/recipes/access.md) |
23
+ | `@wssto2/vue-core/notifications` | go-core's notification and events modules: `notificationsFeature({ categories, deadLetters })`: the bell with the unread count, the inbox (popover, bottom sheet on phones), the live stream, the failed-events page: [notifications](docs/recipes/notifications.md) |
21
24
  | `@wssto2/vue-core/testing` | `createTestPlatform`, `createTestApp`, fake transports: for your tests, [testing](docs/recipes/testing.md) |
22
25
 
23
26
  Nothing is reachable by a deep import. The peers are `vue`, `vue-router` and `vue-i18n`; the library never bundles them.
@@ -190,6 +193,25 @@ Its texts are JSON files under the feature, loaded the first time one of its rou
190
193
 
191
194
  The views are [a list page](docs/recipes/list-page.md) and [a record page](docs/recipes/record-page.md).
192
195
 
196
+ ## Typed routes
197
+
198
+ go-core's generator writes one `route<In, Out>(method, path, options?)` per endpoint; `client.request(route, input)` calls it with the input and the answer typed. Details, a list from a route and the errors: [typed routes](docs/recipes/typed-routes.md).
199
+
200
+ <!-- example: docs/examples/routes/api.ts:1-11 -->
201
+ ```ts
202
+ import { createHttpClient, isApiError } from "@wssto2/vue-core/client";
203
+ import { ticketsRoutes } from "./routes";
204
+ import { route } from "@wssto2/vue-core/client";
205
+
206
+ const http = createHttpClient({ baseUrl: "/api" });
207
+
208
+ // A path parameter and the rest as the query: GET /api/v1/tickets/7
209
+ export async function loadTicket(id: number, signal: AbortSignal) {
210
+ const result = await http.request(ticketsRoutes.show, { id }, { signal });
211
+ return result.data; // typed as Ticket
212
+ }
213
+ ```
214
+
193
215
  ## Permissions, destinations and icons
194
216
 
195
217
  The library knows none of your permissions, none of your backend's menu destinations and none of your icons. You declare them by merging into three interfaces, like vue-router's `RouteMeta`; after that a typo in `meta.access`, in a navigation binding or in `<Icon name>` is a compile error:
@@ -206,6 +228,12 @@ declare module "@wssto2/vue-core/platform" {
206
228
  "tickets:view": true;
207
229
  "tickets:update": true;
208
230
  "accounts:view": true;
231
+ // go-core's access module defines these in the catalogue, so a generated union has them (the roles screens name them).
232
+ "iam.role:view": true;
233
+ "iam.role:manage": true;
234
+ "iam.role:delete": true;
235
+ "iam.user:view": true;
236
+ "iam.user:manage": true;
209
237
  }
210
238
  }
211
239
 
@@ -213,6 +241,9 @@ declare module "@wssto2/vue-core/router" {
213
241
  interface DestinationRegistry {
214
242
  tickets: true;
215
243
  accounts: true;
244
+ users: true;
245
+ "iam.roles": true;
246
+ "events.deadletters": true;
216
247
  }
217
248
  }
218
249
 
@@ -299,6 +330,11 @@ The library's own texts are under the `core` namespace in English, Croatian, Bos
299
330
  - [Shell](docs/recipes/shell.md): the default shell, contributions from features, keyboard shortcuts and their help, running inside a frame, a custom shell
300
331
  - [App setup](docs/recipes/app-setup.md): config, session, effects, locales and flags, permissions in the UI, error sentences, startup errors
301
332
  - [Forms](docs/recipes/forms.md): form state, fields, a record edited in group sheets, a long form, commands
333
+ - [Typed routes](docs/recipes/typed-routes.md): generated routes, `client.request`, a list from a route
334
+ - [Sign-in](docs/recipes/sign-in.md): go-core's identity module: the sign-in page, the session wiring, the language, the module's committed types, the dev server
335
+ - [Users and profile](docs/recipes/users.md): the users list and a person's record, "my profile" with the e-mail change by code, opting out, extra sections, refusals
336
+ - [Roles and access](docs/recipes/access.md): go-core's access module: the roles list and editor from your catalogue, a person's roles and effective access, where a role applies, the refusals
337
+ - [Notifications](docs/recipes/notifications.md): the bell, the inbox and the live stream, categories, the failed-events page, trying it against go-core's dev server
302
338
  - [Theming](docs/recipes/theming.md): brand accent, dark mode, tokens, status tones and category hues
303
339
  - [Testing](docs/recipes/testing.md): the application's environment and a fake backend for your tests
304
340
 
@@ -0,0 +1,22 @@
1
+ import { defineComponent as t, computed as i, renderSlot as n } from "vue";
2
+ import { u as l } from "./platform-q3cjODLx.js";
3
+ const m = /* @__PURE__ */ t({
4
+ __name: "AccessGate",
5
+ props: {
6
+ permission: {},
7
+ any: {},
8
+ all: {}
9
+ },
10
+ setup(r) {
11
+ const o = r, e = l().access, a = i(() => {
12
+ if (o.permission !== void 0) return e.can(o.permission);
13
+ if (o.any !== void 0) return e.canAny(o.any);
14
+ if (o.all !== void 0) return e.canAll(o.all);
15
+ throw new Error("AccessGate needs one of the props permission, any or all.");
16
+ });
17
+ return (s, c) => a.value ? n(s.$slots, "default", {}, void 0, void 0, 0) : n(s.$slots, "fallback", {}, void 0, void 0, 1);
18
+ }
19
+ });
20
+ export {
21
+ m as _
22
+ };
@@ -0,0 +1,76 @@
1
+ import { defineComponent as p, computed as r, openBlock as o, createElementBlock as d, normalizeClass as a, createBlock as c, resolveDynamicComponent as C, unref as i, mergeProps as E, withCtx as S, createCommentVNode as f, createElementVNode as m, toDisplayString as O } from "vue";
2
+ import { RouterLink as R } from "vue-router";
3
+ import { _ as s } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
4
+ import { _ as z } from "./CountryFlag.vue_vue_type_script_setup_true_lang-Kry_vPPZ.js";
5
+ import { d as v } from "./context-Ch1r4fdN.js";
6
+ const [D, B] = v("vue-core.accountMenu"), [F] = v("vue-core.headerSurface"), h = "focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus", I = "relative not-first:before:absolute not-first:before:top-0 not-first:before:right-0 not-first:before:left-[calc(var(--app-row-inset)+2.25rem)] not-first:before:border-t not-first:before:border-border-separator", H = /* @__PURE__ */ p({
7
+ __name: "AccountMenuItem",
8
+ props: {
9
+ label: {},
10
+ icon: { default: void 0 },
11
+ to: { default: void 0 },
12
+ checked: { type: Boolean, default: void 0 },
13
+ selected: { type: Boolean, default: void 0 },
14
+ tone: { default: void 0 },
15
+ flag: { default: void 0 }
16
+ },
17
+ emits: ["click"],
18
+ setup(e, { emit: k }) {
19
+ const l = e, b = k, u = B(), t = r(() => u.appearance === "sheet"), x = r(() => l.checked !== void 0 || l.selected !== void 0), n = r(() => l.tone === "critical"), w = `flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-1.5 text-left text-sm hover:bg-fill ${h}`, y = `flex min-h-row w-full cursor-pointer items-center gap-3 px-row-inset py-2 text-left text-body transition-colors duration-motion-fast active:bg-fill ${h}`;
20
+ function g() {
21
+ x.value || u.close(), b("click");
22
+ }
23
+ return (M, N) => (o(), d("div", {
24
+ class: a(t.value ? I : "")
25
+ }, [
26
+ (o(), c(C(e.to ? i(R) : "button"), E(e.to ? { to: e.to } : { type: "button" }, {
27
+ class: [t.value ? y : w, n.value ? "text-content-destructive" : "text-content-strong", t.value && n.value ? "justify-center" : ""],
28
+ role: e.checked !== void 0 ? "switch" : void 0,
29
+ "aria-checked": e.checked,
30
+ "aria-current": e.selected ? "true" : void 0,
31
+ "data-account-menu-item": "",
32
+ onClick: g
33
+ }), {
34
+ default: S(() => [
35
+ e.flag ? (o(), c(z, {
36
+ key: 0,
37
+ country: e.flag
38
+ }, null, 8, ["country"])) : e.icon && !(t.value && n.value) ? (o(), c(i(s), {
39
+ key: 1,
40
+ name: e.icon,
41
+ size: t.value ? 22 : 16,
42
+ class: a(["shrink-0", n.value ? "" : "text-content-muted"])
43
+ }, null, 8, ["name", "size", "class"])) : f("", !0),
44
+ m("span", {
45
+ class: a(["min-w-0 truncate", t.value && n.value ? "" : "flex-1"])
46
+ }, O(e.label), 3),
47
+ e.checked !== void 0 ? (o(), d("span", {
48
+ key: 2,
49
+ "aria-hidden": "true",
50
+ class: a(["relative inline-flex shrink-0 rounded-full transition-colors duration-motion-fast", [e.checked ? "bg-control-on" : "bg-fill-strong", t.value ? "h-switch-height w-switch-width" : "h-5 w-9"]])
51
+ }, [
52
+ m("span", {
53
+ class: a(["absolute top-0.5 left-0.5 aspect-square h-[calc(100%-0.25rem)] rounded-full bg-white shadow-knob transition-transform duration-motion-fast", e.checked ? t.value ? "translate-x-[calc(var(--app-switch-width)-var(--app-switch-height))]" : "translate-x-4" : "translate-x-0"])
54
+ }, null, 2)
55
+ ], 2)) : e.selected ? (o(), c(i(s), {
56
+ key: 3,
57
+ name: "checkCustom",
58
+ size: 16,
59
+ class: "shrink-0 text-content-link"
60
+ })) : e.to && t.value ? (o(), c(i(s), {
61
+ key: 4,
62
+ name: "arrowRightSLine",
63
+ size: 18,
64
+ class: "shrink-0 text-content-disabled"
65
+ })) : f("", !0)
66
+ ]),
67
+ _: 1
68
+ }, 16, ["class", "role", "aria-checked", "aria-current"]))
69
+ ], 2));
70
+ }
71
+ });
72
+ export {
73
+ H as _,
74
+ D as a,
75
+ F as h
76
+ };
@@ -0,0 +1,45 @@
1
+ import { defineComponent as r, openBlock as s, createBlock as d, unref as n, withCtx as f, createElementVNode as t, normalizeClass as m, toDisplayString as l, createElementBlock as u, createCommentVNode as p, createVNode as b } from "vue";
2
+ import { e as _ } from "./control-7EP4tjYy.js";
3
+ import { _ as x } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
4
+ const k = ["disabled"], y = { class: "flex min-w-0 flex-1 flex-col" }, h = {
5
+ key: 0,
6
+ class: "text-footnote text-content-muted"
7
+ }, N = /* @__PURE__ */ r({
8
+ __name: "ActionRow",
9
+ props: {
10
+ label: {},
11
+ sub: { default: void 0 },
12
+ tone: { default: "link" },
13
+ disabled: { type: Boolean, default: !1 }
14
+ },
15
+ emits: ["click"],
16
+ setup(i, { emit: a }) {
17
+ const e = i, c = a;
18
+ return (v, o) => (s(), d(n(_), { layout: "stacked" }, {
19
+ default: f(() => [
20
+ t("button", {
21
+ type: "button",
22
+ disabled: e.disabled,
23
+ class: "flex w-full items-center gap-3 py-0.5 text-left focus-visible:outline-2 focus-visible:outline-border-focus disabled:opacity-50",
24
+ onClick: o[0] || (o[0] = (w) => c("click"))
25
+ }, [
26
+ t("span", y, [
27
+ t("span", {
28
+ class: m(["text-body", e.tone === "critical" ? "text-content-destructive" : "text-content-link"])
29
+ }, l(e.label), 3),
30
+ e.sub ? (s(), u("span", h, l(e.sub), 1)) : p("", !0)
31
+ ]),
32
+ b(n(x), {
33
+ name: "arrowRightSLine",
34
+ size: 18,
35
+ class: "shrink-0 text-content-disabled"
36
+ })
37
+ ], 8, k)
38
+ ]),
39
+ _: 1
40
+ }));
41
+ }
42
+ });
43
+ export {
44
+ N as _
45
+ };
@@ -0,0 +1,156 @@
1
+ import { defineComponent as S, ref as g, watch as w, computed as k, openBlock as i, createElementBlock as y, createVNode as _, unref as t, createElementVNode as r, withCtx as f, toDisplayString as u, Fragment as C, renderList as N, createBlock as x, createTextVNode as j, createCommentVNode as R } from "vue";
2
+ import { useI18n as q } from "vue-i18n";
3
+ import { _ as D } from "./IconTile.vue_vue_type_script_setup_true_lang-BpIjgu5E.js";
4
+ import { _ as I } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
5
+ import { u as O } from "./format-B8mJm946.js";
6
+ import { _ as U } from "./DateField.vue_vue_type_script_setup_true_lang-GVasv8ao.js";
7
+ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
8
+ import { e as z } from "./control-7EP4tjYy.js";
9
+ import { P as G, c as H, i as J } from "./index-CGv-u1Ws.js";
10
+ import { u as K } from "./platform-q3cjODLx.js";
11
+ import { b as M } from "./routeResource-DstM0hvf.js";
12
+ import { _ as Q } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
13
+ import { _ as W } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
14
+ import { u as X } from "./useLoad-CYRVx6HW.js";
15
+ import { _ as Y } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js";
16
+ import { _ as Z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
17
+ const ee = {
18
+ class: "flex min-w-0 flex-col gap-group-gap",
19
+ "data-person-activity": ""
20
+ }, te = { class: "flex flex-wrap items-end justify-between gap-3" }, ae = {
21
+ class: "flex items-end gap-2",
22
+ "data-activity-range": ""
23
+ }, se = {
24
+ key: 0,
25
+ class: "px-row-inset py-4 text-body text-content-muted",
26
+ "data-activity-empty": ""
27
+ }, oe = {
28
+ key: 1,
29
+ class: "flex min-w-0 flex-col gap-group-gap",
30
+ "data-activity-feed": ""
31
+ }, le = { class: "flex flex-wrap items-center gap-x-1.5" }, ne = { class: "text-body tabular-nums text-content-muted" }, ie = { class: "px-row-inset text-footnote text-content-muted" }, we = /* @__PURE__ */ S({
32
+ __name: "Activity",
33
+ setup(re) {
34
+ const { t: o, te: $ } = q(), { http: A } = K(), V = O(), b = M(G), { activityAreas: B } = H(), c = g("all"), d = g(null), m = g(null), v = g(1), p = X(
35
+ async ({ signal: a }) => {
36
+ const e = b.id.value;
37
+ if (e === null) return null;
38
+ const s = { id: e, page: v.value, per_page: 20, ...c.value === "all" ? {} : { area: c.value }, ...d.value ? { from: d.value } : {}, ...m.value ? { to: m.value } : {} };
39
+ return (await A.request(J.usersActivity, s, { signal: a })).data;
40
+ },
41
+ { watch: () => b.id.value }
42
+ );
43
+ w([c, d, m], () => {
44
+ v.value = 1, p.reload();
45
+ }), w(v, () => void p.reload());
46
+ const h = (a) => {
47
+ if (a === "all" || a === "identity" || a === "other") return o(`core.users.activity.areas.${a}`);
48
+ const e = B[a];
49
+ return e && $(e) ? o(e) : o("core.users.activity.areas.other");
50
+ }, E = k(() => p.data.value?.meta?.views ?? []), P = k(() => {
51
+ const a = E.value.filter((e) => e.key === "all" || e.key === c.value || e.count > 0).map((e) => ({ value: e.key, label: h(e.key), badge: e.count }));
52
+ return a.length > 0 ? a : [{ value: "all", label: h("all") }];
53
+ }), F = (a) => $(`core.users.activity.actions.${a}`) ? o(`core.users.activity.actions.${a}`) : o("core.users.activity.actions.other"), L = k(() => {
54
+ const a = [];
55
+ for (const e of p.data.value?.data ?? []) {
56
+ const s = e.created_at.slice(0, 10), l = a[a.length - 1];
57
+ l && l.key === s ? l.rows.push(e) : a.push({ key: s, header: V.date(e.created_at), rows: [e] });
58
+ }
59
+ return a;
60
+ });
61
+ return (a, e) => (i(), y("div", ee, [
62
+ _(Z, {
63
+ title: t(o)("core.users.sections.activity"),
64
+ description: t(o)("core.users.intro.activity", { name: t(b).data.value?.name ?? "" })
65
+ }, null, 8, ["title", "description"]),
66
+ r("div", te, [
67
+ _(t(I), {
68
+ modelValue: c.value,
69
+ "onUpdate:modelValue": e[0] || (e[0] = (s) => c.value = s),
70
+ tabs: P.value,
71
+ presentation: "scope",
72
+ label: t(o)("core.users.activity.areas_label")
73
+ }, null, 8, ["modelValue", "tabs", "label"]),
74
+ r("div", ae, [
75
+ _(t(U), {
76
+ modelValue: d.value,
77
+ "onUpdate:modelValue": e[1] || (e[1] = (s) => d.value = s),
78
+ label: t(o)("core.users.activity.since"),
79
+ max: m.value ?? void 0
80
+ }, null, 8, ["modelValue", "label", "max"]),
81
+ _(t(U), {
82
+ modelValue: m.value,
83
+ "onUpdate:modelValue": e[2] || (e[2] = (s) => m.value = s),
84
+ label: t(o)("core.users.activity.until"),
85
+ min: d.value ?? void 0
86
+ }, null, 8, ["modelValue", "label", "min"])
87
+ ])
88
+ ]),
89
+ _(t(Q), {
90
+ state: t(p).state.value,
91
+ "skeleton-rows": 5,
92
+ "is-empty": () => !1,
93
+ onRetry: e[4] || (e[4] = (s) => t(p).reload())
94
+ }, {
95
+ default: f(({ value: s }) => [
96
+ !s || s.data.length === 0 ? (i(), y("p", se, u(t(o)("core.users.activity.empty")), 1)) : (i(), y("div", oe, [
97
+ (i(!0), y(C, null, N(L.value, (l) => (i(), x(t(T), {
98
+ key: l.key,
99
+ header: l.header
100
+ }, {
101
+ default: f(() => [
102
+ (i(!0), y(C, null, N(l.rows, (n) => (i(), x(t(z), {
103
+ key: n.id,
104
+ layout: "setting",
105
+ label: `${F(n.action)}`,
106
+ "data-activity-row": ""
107
+ }, {
108
+ leading: f(() => [
109
+ _(t(D), {
110
+ tone: "anchor",
111
+ icon: "listCheck"
112
+ })
113
+ ]),
114
+ sub: f(() => [
115
+ r("span", le, [
116
+ r("span", null, u(h(n.area)), 1),
117
+ e[5] || (e[5] = r("span", { "aria-hidden": "true" }, "·", -1)),
118
+ r("span", null, u(n.record_type) + " #" + u(n.record_id), 1)
119
+ ])
120
+ ]),
121
+ default: f(() => [
122
+ n.signed_in_as ? (i(), x(t(W), {
123
+ key: 0,
124
+ tone: "warning",
125
+ "data-activity-signed-in-as": ""
126
+ }, {
127
+ default: f(() => [
128
+ j(u(n.signed_in_as.name ? t(o)("core.users.activity.signed_in_as", { name: n.signed_in_as.name }) : t(o)("core.users.activity.signed_in_as_other")), 1)
129
+ ]),
130
+ _: 2
131
+ }, 1024)) : R("", !0),
132
+ r("span", ne, u(t(V).time(n.created_at)), 1)
133
+ ]),
134
+ _: 2
135
+ }, 1032, ["label"]))), 128))
136
+ ]),
137
+ _: 2
138
+ }, 1032, ["header"]))), 128))
139
+ ])),
140
+ s ? (i(), x(Y, {
141
+ key: 2,
142
+ page: v.value,
143
+ "onUpdate:page": e[3] || (e[3] = (l) => v.value = l),
144
+ "last-page": s.last_page,
145
+ total: s.total
146
+ }, null, 8, ["page", "last-page", "total"])) : R("", !0),
147
+ r("p", ie, u(t(o)("core.users.activity.footer")), 1)
148
+ ]),
149
+ _: 1
150
+ }, 8, ["state"])
151
+ ]));
152
+ }
153
+ });
154
+ export {
155
+ we as default
156
+ };
@@ -1,11 +1,12 @@
1
- import { defineComponent as $, getCurrentInstance as D, inject as F, computed as k, openBlock as l, createBlock as _, Teleport as O, renderSlot as v, createElementBlock as p, Fragment as I, renderList as M, withCtx as x, createTextVNode as w, toDisplayString as h, unref as s, createElementVNode as f, mergeProps as H, createVNode as b, createCommentVNode as m, toValue as z, watch as B, onMounted as R, onBeforeUnmount as S, useTemplateRef as V, provide as A, ref as K, createSlots as q, normalizeClass as Q } from "vue";
1
+ import { defineComponent as $, getCurrentInstance as D, inject as F, computed as k, openBlock as l, createBlock as _, Teleport as O, renderSlot as v, createElementBlock as p, Fragment as I, renderList as M, withCtx as x, createTextVNode as w, toDisplayString as h, unref as s, createElementVNode as m, mergeProps as H, createVNode as b, createCommentVNode as f, toValue as z, watch as B, onMounted as R, onBeforeUnmount as S, useTemplateRef as V, provide as A, ref as K, createSlots as q, normalizeClass as Q } from "vue";
2
2
  import { a as j } from "./mediaQuery-CygcXmFW.js";
3
- import { b as U, f as N, c as W, p as Y } from "./chrome-D9pwD6iS.js";
3
+ import { b as U } from "./bottomDock-BZEiOPYZ.js";
4
4
  import { useI18n as E } from "vue-i18n";
5
- import { _ as G } from "./Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js";
6
- import { _ as y } from "./Icon.vue_vue_type_script_lang-DtC4_mkz.js";
7
- import { _ as J } from "./Menu.vue_vue_type_script_setup_true_lang-CrMj6KPD.js";
8
- import { RouterLink as L, useRoute as X } from "vue-router";
5
+ import { _ as W } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
6
+ import { _ as y } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
7
+ import { _ as Y } from "./Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js";
8
+ import { RouterLink as L, useRoute as G } from "vue-router";
9
+ import { b as N, c as J, p as X } from "./chrome-BS3xJcad.js";
9
10
  import { d as Z } from "./context-Ch1r4fdN.js";
10
11
  const ee = /* @__PURE__ */ $({
11
12
  __name: "BottomDockPortal",
@@ -44,7 +45,7 @@ const ee = /* @__PURE__ */ $({
44
45
  return t === e.leading || t.prominence === "plain" ? "plain" : t.prominence === "standard" ? "standard" : t.placement === "primary" ? "primary" : "standard";
45
46
  }
46
47
  return (t, a) => i.value.length || r.value.length ? (l(), p("div", te, [
47
- (l(!0), p(I, null, M(i.value, (d) => (l(), _(G, {
48
+ (l(!0), p(I, null, M(i.value, (d) => (l(), _(W, {
48
49
  key: d.id,
49
50
  prominence: c(d),
50
51
  icon: d.icon,
@@ -59,13 +60,13 @@ const ee = /* @__PURE__ */ $({
59
60
  ]),
60
61
  _: 2
61
62
  }, 1032, ["prominence", "icon", "disabled", "processing", "keyboard-shortcut", "data-page-action", "onClick"]))), 128)),
62
- r.value.length ? (l(), _(J, {
63
+ r.value.length ? (l(), _(Y, {
63
64
  key: 0,
64
65
  items: r.value,
65
66
  label: s(n)("core.page.more_actions")
66
67
  }, {
67
68
  trigger: x(({ toggle: d, attrs: g }) => [
68
- f("button", H({ type: "button" }, g, {
69
+ m("button", H({ type: "button" }, g, {
69
70
  "aria-label": s(n)("core.page.more_actions"),
70
71
  "data-page-overflow": "",
71
72
  class: "hit-target flex size-9 cursor-pointer items-center justify-center rounded-button bg-fill text-content-strong transition-colors duration-motion-fast hover:bg-fill-strong focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus",
@@ -75,10 +76,10 @@ const ee = /* @__PURE__ */ $({
75
76
  ], 16, ne)
76
77
  ]),
77
78
  _: 1
78
- }, 8, ["items", "label"])) : m("", !0)
79
- ])) : m("", !0);
79
+ }, 8, ["items", "label"])) : f("", !0)
80
+ ])) : f("", !0);
80
81
  }
81
- }), ae = { class: "sticky top-0 z-20 flex min-h-bar-height min-w-0 flex-wrap items-center gap-2.5 border-b border-border-separator bg-surface-page/85 py-2 pr-6 pl-4 backdrop-blur-xl" }, oe = ["aria-label"], se = {
82
+ }), ae = { class: "sticky top-[var(--shell-banner-h,0px)] z-20 flex min-h-bar-height min-w-0 flex-wrap items-center gap-2.5 border-b border-border-separator bg-surface-page/85 py-2 pr-6 pl-4 backdrop-blur-xl" }, oe = ["aria-label"], se = {
82
83
  class: "flex shrink-0 text-content-link",
83
84
  "aria-hidden": "true"
84
85
  }, le = { class: "flex min-w-0 items-center" }, re = {
@@ -106,13 +107,13 @@ const ee = /* @__PURE__ */ $({
106
107
  "aria-label": s(n)("core.page.breadcrumbs"),
107
108
  class: "-ml-1 flex min-w-0 items-center"
108
109
  }, [
109
- f("span", se, [
110
+ m("span", se, [
110
111
  b(s(y), {
111
112
  name: "arrowLeftSLine",
112
113
  size: 20
113
114
  })
114
115
  ]),
115
- f("ol", le, [
116
+ m("ol", le, [
116
117
  (l(!0), p(I, null, M(i.value, (a) => (l(), p("li", {
117
118
  key: a.label,
118
119
  class: "flex min-w-0 max-w-48 shrink items-center max-lg:hidden"
@@ -127,14 +128,14 @@ const ee = /* @__PURE__ */ $({
127
128
  ]),
128
129
  _: 2
129
130
  }, 1032, ["to"]),
130
- f("span", re, [
131
+ m("span", re, [
131
132
  b(s(y), {
132
133
  name: "arrowRightSLine",
133
134
  size: 14
134
135
  })
135
136
  ])
136
137
  ]))), 128)),
137
- f("li", ie, [
138
+ m("li", ie, [
138
139
  b(s(L), {
139
140
  to: r.value.to,
140
141
  "data-page-back": "",
@@ -158,19 +159,19 @@ const ee = /* @__PURE__ */ $({
158
159
  name: "arrowLeftSLine",
159
160
  size: 20
160
161
  }),
161
- f("span", ce, h(e.back.label), 1)
162
+ m("span", ce, h(e.back.label), 1)
162
163
  ]),
163
164
  _: 1
164
- }, 8, ["to"])) : m("", !0),
165
- t[1] || (t[1] = f("div", { class: "min-w-0 flex-1" }, null, -1)),
165
+ }, 8, ["to"])) : f("", !0),
166
+ t[1] || (t[1] = m("div", { class: "min-w-0 flex-1" }, null, -1)),
166
167
  v(c.$slots, "pager"),
167
168
  e.status ? (l(), p("span", ue, [
168
- t[0] || (t[0] = f("span", {
169
+ t[0] || (t[0] = m("span", {
169
170
  class: "size-1.75 rounded-full bg-tint",
170
171
  "aria-hidden": "true"
171
172
  }, null, -1)),
172
173
  w(h(e.status), 1)
173
- ])) : m("", !0),
174
+ ])) : f("", !0),
174
175
  b(P, {
175
176
  actions: e.actions,
176
177
  leading: e.leading
@@ -189,7 +190,7 @@ function pe(u, e, n = !0) {
189
190
  c?.disconnect(), r.clearTitle();
190
191
  });
191
192
  }
192
- const fe = { class: "flex min-w-0 flex-wrap items-center gap-x-4 gap-y-3" }, me = { class: "flex min-w-0 flex-[1_1_16rem] items-center gap-3.5" }, ge = {
193
+ const me = { class: "flex min-w-0 flex-wrap items-center gap-x-4 gap-y-3" }, fe = { class: "flex min-w-0 flex-[1_1_16rem] items-center gap-3.5" }, ge = {
193
194
  key: 0,
194
195
  "aria-hidden": "true",
195
196
  class: "flex size-10 shrink-0 items-center justify-center rounded-group bg-tile-brand text-tile-brand-foreground compact:hidden"
@@ -222,47 +223,47 @@ const fe = { class: "flex min-w-0 flex-wrap items-center gap-x-4 gap-y-3" }, me
222
223
  },
223
224
  setup(u) {
224
225
  const e = u, { locale: n } = E(), i = j("(max-width: 47.999rem)"), r = k(() => e.count == null ? null : new Intl.NumberFormat(n.value).format(e.count)), c = V("titleElement");
225
- return pe(c, () => e.title), (t, a) => (l(), p("div", fe, [
226
- f("div", me, [
226
+ return pe(c, () => e.title), (t, a) => (l(), p("div", me, [
227
+ m("div", fe, [
227
228
  v(t.$slots, "leading", {}, () => [
228
229
  e.icon ? (l(), p("span", ge, [
229
230
  b(s(y), {
230
231
  name: e.icon,
231
232
  size: 20
232
233
  }, null, 8, ["name"])
233
- ])) : m("", !0)
234
+ ])) : f("", !0)
234
235
  ]),
235
- f("div", ve, [
236
- f("div", be, [
237
- f("h1", {
236
+ m("div", ve, [
237
+ m("div", be, [
238
+ m("h1", {
238
239
  ref_key: "titleElement",
239
240
  ref: c,
240
241
  class: "min-w-0 text-large-title font-semibold tracking-tight break-words text-content-strong"
241
242
  }, h(e.title), 513),
242
- r.value !== null ? (l(), p("span", he, h(r.value), 1)) : m("", !0)
243
+ r.value !== null ? (l(), p("span", he, h(r.value), 1)) : f("", !0)
243
244
  ]),
244
- e.description ? (l(), p("p", ke, h(e.description), 1)) : m("", !0),
245
+ e.description ? (l(), p("p", ke, h(e.description), 1)) : f("", !0),
245
246
  v(t.$slots, "description")
246
247
  ])
247
248
  ]),
248
249
  e.inlineActions || !s(i) ? (l(), p("div", _e, [
249
250
  e.status ? (l(), p("span", xe, [
250
- a[0] || (a[0] = f("span", {
251
+ a[0] || (a[0] = m("span", {
251
252
  class: "size-1.75 rounded-full bg-tint",
252
253
  "aria-hidden": "true"
253
254
  }, null, -1)),
254
255
  w(h(e.status), 1)
255
- ])) : m("", !0),
256
+ ])) : f("", !0),
256
257
  b(P, {
257
258
  actions: e.actions,
258
259
  leading: e.leading
259
260
  }, null, 8, ["actions", "leading"])
260
- ])) : m("", !0)
261
+ ])) : f("", !0)
261
262
  ]));
262
263
  }
263
- }), [ye, Ve] = Z("vue-core.pageSectionBack");
264
+ }), [ye, je] = Z("vue-core.pageSectionBack");
264
265
  function $e(u, e) {
265
- const i = X().fullPath;
266
+ const i = G().fullPath;
266
267
  let r, c;
267
268
  function t() {
268
269
  r?.disconnect(), clearTimeout(c), document.removeEventListener("pointerdown", t, !0), document.removeEventListener("keydown", t, !0);
@@ -285,7 +286,7 @@ function $e(u, e) {
285
286
  const Se = { key: 1 }, Te = {
286
287
  key: 2,
287
288
  class: "flex justify-center pt-2"
288
- }, Ce = { class: "dock-safe-area pointer-events-auto order-1 border-t border-border-separator bg-surface-cell pt-screen-padding pr-[max(var(--app-screen-padding),var(--app-safe-right))] pb-screen-padding pl-[max(var(--app-screen-padding),var(--app-safe-left))]" }, je = /* @__PURE__ */ $({
289
+ }, Ce = { class: "dock-safe-area pointer-events-auto order-1 border-t border-border-separator bg-surface-cell pt-screen-padding pr-[max(var(--app-screen-padding),var(--app-safe-right))] pb-screen-padding pl-[max(var(--app-screen-padding),var(--app-safe-left))]" }, Ne = /* @__PURE__ */ $({
289
290
  __name: "AdaptivePageShell",
290
291
  props: {
291
292
  title: {},
@@ -299,8 +300,8 @@ const Se = { key: 1 }, Te = {
299
300
  width: { default: "full" }
300
301
  },
301
302
  setup(u) {
302
- const e = u, n = N() ?? W();
303
- A(Y, n);
303
+ const e = u, n = N() ?? J();
304
+ A(X, n);
304
305
  const i = n.claimShell();
305
306
  S(i);
306
307
  const r = V("root");
@@ -345,8 +346,8 @@ const Se = { key: 1 }, Te = {
345
346
  ]),
346
347
  key: "0"
347
348
  } : void 0
348
- ]), 1032, ["back", "path", "actions", "leading", "status"])) : m("", !0),
349
- f("div", {
349
+ ]), 1032, ["back", "path", "actions", "leading", "status"])) : f("", !0),
350
+ m("div", {
350
351
  class: Q(["mx-auto flex min-w-0 flex-col gap-section-gap pt-section-gap pr-[max(var(--app-screen-padding),var(--app-safe-right))] pb-[max(var(--app-screen-padding),var(--app-safe-bottom),calc(var(--bottom-dock-h,0px)+var(--app-screen-padding)))] pl-[max(var(--app-screen-padding),var(--app-safe-left))] lg:pt-[calc(var(--app-section-gap)*1.5)] lg:pr-[max(2.5rem,var(--app-safe-right))] lg:pl-[max(2.5rem,var(--app-safe-left))]", T[e.width]])
351
352
  }, [
352
353
  v(o.$slots, "header", {}, () => [
@@ -364,33 +365,33 @@ const Se = { key: 1 }, Te = {
364
365
  key: 0,
365
366
  actions: s(n).actions.value,
366
367
  leading: s(n).leading.value
367
- }, null, 8, ["actions", "leading"])) : m("", !0),
368
+ }, null, 8, ["actions", "leading"])) : f("", !0),
368
369
  o.$slots.notices ? (l(), p("div", Se, [
369
370
  v(o.$slots, "notices")
370
- ])) : m("", !0),
371
+ ])) : f("", !0),
371
372
  v(o.$slots, "default"),
372
373
  o.$slots.pager && s(c) ? (l(), p("div", Te, [
373
374
  v(o.$slots, "pager")
374
- ])) : m("", !0)
375
+ ])) : f("", !0)
375
376
  ], 2),
376
377
  o.$slots.bottom ? (l(), _(ee, { key: 1 }, {
377
378
  default: x(() => [
378
- f("div", Ce, [
379
+ m("div", Ce, [
379
380
  v(o.$slots, "bottom")
380
381
  ])
381
382
  ]),
382
383
  _: 3
383
- })) : m("", !0)
384
+ })) : f("", !0)
384
385
  ], 512));
385
386
  }
386
387
  });
387
388
  export {
388
389
  ee as _,
389
- je as a,
390
+ Ne as a,
390
391
  P as b,
391
392
  de as c,
392
393
  we as d,
393
- Ve as e,
394
+ je as e,
394
395
  ye as p,
395
396
  pe as u
396
397
  };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as H, ref as L, useId as S, computed as u, watch as J, openBlock as a, createBlock as p, Teleport as K, createElementBlock as r, unref as t, createVNode as T, Transition as z, withCtx as I, createCommentVNode as s, createElementVNode as o, toDisplayString as l, renderSlot as V, normalizeClass as d, createTextVNode as $ } from "vue";
2
2
  import { useI18n as Q } from "vue-i18n";
3
- import { _ as j } from "./Icon.vue_vue_type_script_lang-DtC4_mkz.js";
3
+ import { _ as j } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
4
4
  import { u as R } from "./mediaQuery-CygcXmFW.js";
5
5
  import { u as U } from "./useDialog-CXR3hN0G.js";
6
6
  const X = ["aria-labelledby", "aria-describedby", "data-presentation"], Y = { class: "overflow-hidden rounded-menu bg-surface-overlay/95 backdrop-blur-xl" }, Z = { class: "flex flex-col gap-1 px-4 py-3.5 text-center" }, ee = ["id"], te = ["id"], ae = ["disabled"], ne = ["disabled"], oe = ["id"], ie = ["id"], se = ["disabled"], le = ["disabled"], pe = /* @__PURE__ */ H({
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as h, openBlock as a, createElementBlock as n, computed as $, Fragment as _, unref as o, renderSlot as y, renderList as w, createBlock as v, createVNode as u, withCtx as c, createElementVNode as d, toDisplayString as i, createCommentVNode as m, createTextVNode as g, normalizeClass as b, createSlots as x } from "vue";
2
2
  import { useI18n as C } from "vue-i18n";
3
- import { _ as k } from "./Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js";
4
- import { _ as E } from "./Icon.vue_vue_type_script_lang-DtC4_mkz.js";
5
- import { _ as S } from "./Banner.vue_vue_type_script_setup_true_lang-n_wGPIIu.js";
6
- import { _ as V } from "./EmptyState.vue_vue_type_script_setup_true_lang-BeGpHMUP.js";
3
+ import { _ as k } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
+ import { _ as E } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
5
+ import { _ as S } from "./Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
6
+ import { _ as V } from "./EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js";
7
7
  function K(s) {
8
8
  return s.status === "loading" || s.status === "failed" ? void 0 : s.value;
9
9
  }