@wssto2/vue-core 0.19.0 → 0.21.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 (174) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +5 -1
  3. package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-Bg8JFAOT.js → AccessGate.vue_vue_type_script_setup_true_lang-Dw_pnsh9.js} +1 -1
  4. package/dist/{AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js → AccountMenuItem.vue_vue_type_script_setup_true_lang-C2TmmH38.js} +1 -1
  5. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-B5IMNnTf.js → ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js} +2 -2
  6. package/dist/{Activity-CiYn5E6A.js → Activity-CZzAt3SH.js} +9 -9
  7. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-oXWQTfBs.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-BkZzuICH.js} +6 -6
  8. package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-WuGvAOrj.js → AlertDialog.vue_vue_type_script_setup_true_lang-B0UvzCoE.js} +1 -1
  9. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-CX8mpXRE.js → AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js} +4 -4
  10. package/dist/{Banner.vue_vue_type_script_setup_true_lang-sv0phngk.js → Banner.vue_vue_type_script_setup_true_lang-BXZVOhfH.js} +1 -1
  11. package/dist/{Button.vue_vue_type_script_setup_true_lang-JrqhO99l.js → Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js} +1 -1
  12. package/dist/{Changes-Cy8STpLX.js → Changes-B0bhSNU3.js} +5 -5
  13. package/dist/CharacteristicsPage-fGnahf62.js +4 -0
  14. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-Dr6nFNBB.js → CollectionPage.vue_vue_type_script_setup_true_lang-Bf5WXVFZ.js} +12 -12
  15. package/dist/CollectionTree.vue_vue_type_script_setup_true_lang-DV0OhquO.js +345 -0
  16. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-D372wlxR.js → DataTable.vue_vue_type_script_setup_true_lang-Cw_E8w48.js} +1 -1
  17. package/dist/{DateField.vue_vue_type_script_setup_true_lang-D0KcfW8R.js → DateField.vue_vue_type_script_setup_true_lang-Cn8CNAwM.js} +4 -4
  18. package/dist/{DeadLetters-DhJkMpd_.js → DeadLetters--js7aeC6.js} +4 -4
  19. package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-92szOrYd.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-lnFUie1d.js} +1 -1
  20. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-DbZiO2RF.js → EmptyState.vue_vue_type_script_setup_true_lang-DHmu-UG-.js} +1 -1
  21. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-lvAuBG-0.js → FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js} +4 -4
  22. package/dist/{FormRow.vue_vue_type_script_setup_true_lang-CpgNVQF4.js → FormRow.vue_vue_type_script_setup_true_lang-B-uth5RB.js} +1 -1
  23. package/dist/{FormView.vue_vue_type_script_setup_true_lang-D01Jr4UU.js → FormView.vue_vue_type_script_setup_true_lang-CoQZG-hB.js} +2 -2
  24. package/dist/{General-CwTPC5UP.js → General-BGT9H69S.js} +8 -8
  25. package/dist/{HeaderAction.vue_vue_type_script_setup_true_lang-Da59TLBh.js → HeaderAction.vue_vue_type_script_setup_true_lang-Uw0vwV-o.js} +2 -2
  26. package/dist/{Icon.vue_vue_type_script_lang-BhhsFYwp.js → Icon.vue_vue_type_script_lang-BIzh8LF1.js} +19 -13
  27. package/dist/{IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js → IconTile.vue_vue_type_script_setup_true_lang-DRirnJvd.js} +1 -1
  28. package/dist/{IncidentRecord-hXEGuLGg.js → IncidentRecord-BETFfXbI.js} +17 -17
  29. package/dist/{IncidentsList-C41VyDwK.js → IncidentsList-BIr3a2To.js} +6 -6
  30. package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CrGrjrlO.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-DjXYh-p0.js} +1 -1
  31. package/dist/{Menu.vue_vue_type_script_setup_true_lang-Cqu4Ebsb.js → Menu.vue_vue_type_script_setup_true_lang-D2FsOVYA.js} +1 -1
  32. package/dist/{MenuButton.vue_vue_type_script_setup_true_lang-C-XRr5f2.js → MenuButton.vue_vue_type_script_setup_true_lang-BNzrYIzR.js} +1 -1
  33. package/dist/{Modal.vue_vue_type_script_setup_true_lang-CZ7WrDwu.js → Modal.vue_vue_type_script_setup_true_lang-BRRMKXOV.js} +2 -2
  34. package/dist/{NewRolePage-BYYZJkK7.js → NewRolePage-B0Y5MrTu.js} +4 -4
  35. package/dist/{NoAccess.vue_vue_type_script_setup_true_lang-BHzZtZ50.js → NoAccess.vue_vue_type_script_setup_true_lang-CnfE_AEl.js} +1 -1
  36. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-BhNZgEW6.js → NumberField.vue_vue_type_script_setup_true_lang-BDZ_0TH7.js} +2 -2
  37. package/dist/{Panel.vue_vue_type_script_setup_true_lang-D_Wg42hu.js → Panel.vue_vue_type_script_setup_true_lang-CwcJadT7.js} +1 -1
  38. package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-mYFuG-Y3.js → PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js} +12 -12
  39. package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-DmMg1T_V.js → PhotoViewer.vue_vue_type_script_setup_true_lang-BL485L63.js} +1 -1
  40. package/dist/{ProfilePage-DGEsIycR.js → ProfilePage-CMy2Dkr2.js} +17 -17
  41. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-B3BnYg1x.js → RecordHeader.vue_vue_type_script_setup_true_lang-D4PcZnbo.js} +2 -2
  42. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-1iZtj3rh.js → ResourcePage.vue_vue_type_script_setup_true_lang-CpGwm2tv.js} +4 -4
  43. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-BslSDDiM.js → RoleEditor.vue_vue_type_script_setup_true_lang-CMo8PrO7.js} +12 -12
  44. package/dist/{RolePage-C08ZUqw1.js → RolePage-DGFISfM1.js} +13 -13
  45. package/dist/{RolesPage-FOuY1VKg.js → RolesPage-Bq9EVB_3.js} +9 -9
  46. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-CodyVezo.js → SectionList.vue_vue_type_script_setup_true_lang-BdJ11lZo.js} +3 -3
  47. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-DCTFxfPB.js → SectionNavigator.vue_vue_type_script_setup_true_lang-CnzECivO.js} +6 -6
  48. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-CLR6EvzO.js → SegmentedField.vue_vue_type_script_setup_true_lang-D3IZil4q.js} +2 -2
  49. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-D5xYofdb.js → SelectField.vue_vue_type_script_setup_true_lang-DxCEwED6.js} +6 -6
  50. package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-CDr4WNIb.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DtVXUOdP.js} +8 -8
  51. package/dist/{ServiceAccountRecord-kWwIQGZb.js → ServiceAccountRecord-Dc7Gn52W.js} +18 -18
  52. package/dist/{ServiceAccountsList-CKy9_YHP.js → ServiceAccountsList-DBUFeka-.js} +10 -10
  53. package/dist/{Sessions-BDc8gdYH.js → Sessions-BMmqYZrJ.js} +7 -7
  54. package/dist/{SettingsPage-t-8kmFVT.js → SettingsPage-4Dolsr0t.js} +18 -18
  55. package/dist/Sheet.vue_vue_type_script_setup_true_lang-BVU5yzXe.js +163 -0
  56. package/dist/{SignIn-CqtkvtCZ.js → SignIn-uFn1ZWG8.js} +8 -8
  57. package/dist/{SignInPage-DcdNKZIb.js → SignInPage-DouCg9aD.js} +6 -6
  58. package/dist/{SignIns-D4-nGu0B.js → SignIns-CqN5UNmh.js} +5 -5
  59. package/dist/SortableList.vue_vue_type_script_setup_true_lang-D2-5Z_jO.js +112 -0
  60. package/dist/{StatusLine.vue_vue_type_script_setup_true_lang-DsdQmLq6.js → StatusLine.vue_vue_type_script_setup_true_lang-DBkQueB0.js} +1 -1
  61. package/dist/{SwipeActions.vue_vue_type_script_setup_true_lang-D8SiC0G7.js → SwipeActions.vue_vue_type_script_setup_true_lang-DUjUWq3G.js} +1 -1
  62. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-CLtcuofe.js → SwitchField.vue_vue_type_script_setup_true_lang-CTMjlNid.js} +2 -2
  63. package/dist/Tabs.vue_vue_type_script_setup_true_lang-7CJto6Mp.js +169 -0
  64. package/dist/{TextField.vue_vue_type_script_setup_true_lang-CVGh-p3J.js → TextField.vue_vue_type_script_setup_true_lang-B6Q65aQA.js} +4 -4
  65. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-YxUlNHSk.js → TextareaField.vue_vue_type_script_setup_true_lang-Cj0LKDdo.js} +2 -2
  66. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-DHNC_MLt.js → TimeField.vue_vue_type_script_setup_true_lang-TSnnjMn1.js} +4 -4
  67. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-d_KuxWjH.js → Timestamp.vue_vue_type_script_setup_true_lang-0WL7PP0j.js} +1 -1
  68. package/dist/{UserRecord-CwZCr9Im.js → UserRecord-CH5oNRLg.js} +10 -10
  69. package/dist/{UsersList-Cn19sFgv.js → UsersList-BmxWpt9h.js} +3 -3
  70. package/dist/{ViewTabs.vue_vue_type_script_setup_true_lang-BjdDXE3T.js → ViewTabs.vue_vue_type_script_setup_true_lang-BKI5DGuS.js} +1 -1
  71. package/dist/access/index.js +7 -7
  72. package/dist/app/index.js +2 -2
  73. package/dist/{application-CDSweJb9.js → application-C5fZyCB9.js} +8 -8
  74. package/dist/{back-LcLlFodC.js → back-CeozxCgQ.js} +2 -2
  75. package/dist/button/index.js +1 -1
  76. package/dist/characteristics/CharacteristicsPage.vue.d.ts +2 -0
  77. package/dist/characteristics/DeleteDialog.vue.d.ts +22 -0
  78. package/dist/characteristics/ItemSheet.vue.d.ts +25 -0
  79. package/dist/characteristics/access.d.ts +3 -0
  80. package/dist/characteristics/api.d.ts +23 -0
  81. package/dist/characteristics/context.d.ts +12 -0
  82. package/dist/characteristics/feature.d.ts +27 -0
  83. package/dist/characteristics/index.d.ts +10 -0
  84. package/dist/characteristics/index.js +617 -0
  85. package/dist/characteristics/model.d.ts +34 -0
  86. package/dist/characteristics/routes.d.ts +13 -0
  87. package/dist/collection/CollectionTree.vue.d.ts +51 -0
  88. package/dist/collection/CollectionTreeBranch.vue.d.ts +12 -0
  89. package/dist/collection/FileExplorer.vue.d.ts +53 -0
  90. package/dist/collection/RowMore.vue.d.ts +11 -0
  91. package/dist/collection/explorer.d.ts +11 -0
  92. package/dist/collection/index.d.ts +5 -0
  93. package/dist/collection/index.js +431 -158
  94. package/dist/collection/tree.d.ts +64 -0
  95. package/dist/content/DiffView.vue.d.ts +22 -0
  96. package/dist/content/PreviewFrame.vue.d.ts +46 -0
  97. package/dist/content/diff.d.ts +27 -0
  98. package/dist/content/index.d.ts +4 -0
  99. package/dist/content/index.js +552 -218
  100. package/dist/content/previewFrame.d.ts +50 -0
  101. package/dist/{contributions-B0x5x5xD.js → contributions-BSmIRPg1.js} +1 -1
  102. package/dist/controls/SortableList.vue.d.ts +32 -0
  103. package/dist/controls/Tabs.vue.d.ts +2 -0
  104. package/dist/controls/index.d.ts +1 -0
  105. package/dist/controls/index.js +18 -16
  106. package/dist/form/CharacteristicField.vue.d.ts +36 -0
  107. package/dist/form/CodeEditor.vue.d.ts +61 -0
  108. package/dist/form/I18nField.vue.d.ts +1 -1
  109. package/dist/form/MarkerList.vue.d.ts +20 -0
  110. package/dist/form/TextareaField.vue.d.ts +1 -1
  111. package/dist/form/index.d.ts +3 -0
  112. package/dist/form/index.js +1769 -1805
  113. package/dist/{guards-CNJ0ATVC.js → guards-BP9x7CLF.js} +1 -1
  114. package/dist/i18n/index.js +46 -46
  115. package/dist/icon/core.d.ts +6 -0
  116. package/dist/icon/index.js +1 -1
  117. package/dist/identity/index.js +3 -3
  118. package/dist/identity/profile/EmailChangeDialog.vue.d.ts +2 -2
  119. package/dist/incidents/index.js +1 -1
  120. package/dist/{index-SLJWm40T.js → index-4wyfEeIw.js} +9 -9
  121. package/dist/{index-BA2w8uwD.js → index-C_ZVaTkR.js} +27 -27
  122. package/dist/{index-1HS7O2-e.js → index-OVbtHAtG.js} +10 -10
  123. package/dist/index.d.ts +1 -1
  124. package/dist/index.js +1 -1
  125. package/dist/modal/Sheet.vue.d.ts +13 -0
  126. package/dist/modal/TabbedSheet.vue.d.ts +46 -0
  127. package/dist/modal/index.d.ts +1 -0
  128. package/dist/modal/index.js +123 -41
  129. package/dist/modules/characteristics/entities.d.ts +67 -0
  130. package/dist/modules/characteristics/routes.d.ts +55 -0
  131. package/dist/modules/characteristics/schemas.d.ts +50 -0
  132. package/dist/modules/identity/entities.d.ts +1 -0
  133. package/dist/navigation-C05vGEN8.js +55 -0
  134. package/dist/{neighbors-Dg_LU9ry.js → neighbors-BqfO6zf3.js} +2 -2
  135. package/dist/notifications/index.js +1 -1
  136. package/dist/onboarding/index.js +2 -2
  137. package/dist/{options-mOOX6JSS.js → options-DDCG86OV.js} +2 -2
  138. package/dist/overlay/index.js +4 -4
  139. package/dist/page/SectionNavigator.vue.d.ts +1 -1
  140. package/dist/page/SplitPane.vue.d.ts +54 -0
  141. package/dist/page/WorkbenchPage.vue.d.ts +72 -0
  142. package/dist/page/index.d.ts +2 -0
  143. package/dist/page/index.js +343 -104
  144. package/dist/phone/index.js +3 -3
  145. package/dist/platform/index.js +3 -3
  146. package/dist/platform/navigation.d.ts +10 -0
  147. package/dist/{platform-DU9QFts8.js → platform-YWfOO7b2.js} +94 -88
  148. package/dist/pwa/index.js +3 -3
  149. package/dist/resource/index.js +1 -1
  150. package/dist/{resources-BZLlAtoS.js → resources-DkI60fHL.js} +1 -1
  151. package/dist/router/index.js +4 -4
  152. package/dist/router/navigation.d.ts +2 -0
  153. package/dist/routes-DC8BWFz8.js +251 -0
  154. package/dist/{rowLayout-PIuD7MGo.js → rowLayout-zd3Yw6fO.js} +34 -33
  155. package/dist/{sectionIndex-BS0ic5W7.js → sectionIndex-CSr457Lb.js} +2 -2
  156. package/dist/{sections-BpiRLntE.js → sections-DXso1JSV.js} +2 -2
  157. package/dist/shell/NavigationList.vue.d.ts +1 -1
  158. package/dist/shell/index.js +522 -501
  159. package/dist/shell/navigationGroups.d.ts +4 -1
  160. package/dist/state/index.js +8 -8
  161. package/dist/{state-z1iPF1DT.js → state-DqCZdet7.js} +1 -1
  162. package/dist/styles.css +1 -1
  163. package/dist/{suggestions-DeMgs_ki.js → suggestions-DZ3B5RVH.js} +1 -1
  164. package/dist/testing/index.js +2 -2
  165. package/dist/{useCommand-DQKvro1n.js → useCommand-DerEnzIW.js} +4 -4
  166. package/dist/{useGroupSheet-CRw3MUmX.js → useGroupSheet-B9TCHIKH.js} +5 -5
  167. package/dist/{usePreferences-DB29UTFD.js → usePreferences-D38x73re.js} +1 -1
  168. package/dist/{useRecordDialog-0azHxxvm.js → useRecordDialog-DX97ivZD.js} +1 -1
  169. package/dist/{useResourceForm-zVuWerSn.js → useResourceForm-D8T1snBQ.js} +1 -1
  170. package/dist/{useTypedEntry-BsMV66Yc.js → useTypedEntry-CTkgM29Y.js} +2 -2
  171. package/package.json +6 -2
  172. package/dist/Sheet.vue_vue_type_script_setup_true_lang-BG8HUNfs.js +0 -145
  173. package/dist/Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js +0 -155
  174. package/dist/navigation-d-JAPBGA.js +0 -53
@@ -1,4 +1,6 @@
1
1
  export declare const coreIcons: {
2
+ readonly externalLink: "<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=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/><polyline points=\"15 3 21 3 21 9\"/><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"/></svg>";
3
+ readonly draggable: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><circle cx=\"9\" cy=\"6\" r=\"1.6\"/><circle cx=\"15\" cy=\"6\" r=\"1.6\"/><circle cx=\"9\" cy=\"12\" r=\"1.6\"/><circle cx=\"15\" cy=\"12\" r=\"1.6\"/><circle cx=\"9\" cy=\"18\" r=\"1.6\"/><circle cx=\"15\" cy=\"18\" r=\"1.6\"/></svg>";
2
4
  readonly close: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z\"></path></svg>";
3
5
  readonly loader4Line: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path></svg>";
4
6
  readonly expandUpDownLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M18.2072 9.0428 12.0001 2.83569 5.793 9.0428 7.20721 10.457 12.0001 5.66412 16.793 10.457 18.2072 9.0428ZM5.79285 14.9572 12 21.1643 18.2071 14.9572 16.7928 13.543 12 18.3359 7.20706 13.543 5.79285 14.9572Z\"></path></svg>";
@@ -54,5 +56,9 @@ export declare const coreIcons: {
54
56
  readonly gitRepositoryCommitsFill: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M14 17V23H12V17H9L13 12L17 17H14ZM16 19H19V16H18.2L13 9.5L7.64706 16H6.5C5.67157 16 5 16.6716 5 17.5C5 18.3284 5.67157 19 6.5 19H10V21H6.5C4.567 21 3 19.433 3 17.5V5C3 3.34315 4.34315 2 6 2H20C20.5523 2 21 2.44772 21 3V20C21 20.5523 20.5523 21 20 21H16V19ZM7 5V7H9V5H7ZM7 8V10H9V8H7Z\"></path></svg>";
55
57
  readonly fileTextLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M21 8V20.9932C21 21.5501 20.5552 22 20.0066 22H3.9934C3.44495 22 3 21.556 3 21.0082V2.9918C3 2.45531 3.4487 2 4.00221 2H14.9968L21 8ZM19 9H14V4H5V20H19V9ZM8 7H11V9H8V7ZM8 11H16V13H8V11ZM8 15H16V17H8V15Z\"></path></svg>";
56
58
  readonly chat4Fill: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M6.45455 19L2 22.5V4C2 3.44772 2.44772 3 3 3H21C21.5523 3 22 3.44772 22 4V18C22 18.5523 21.5523 19 21 19H6.45455Z\"></path></svg>";
59
+ readonly folderLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M4 5V19H20V7H11.5858L9.58579 5H4ZM12.4142 5H21C21.5523 5 22 5.44772 22 6V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3H10.4142L12.4142 5Z\"></path></svg>";
60
+ readonly fileLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M9 2.00318V2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8L9 2.00318ZM5.82918 8H9V4.83086L5.82918 8ZM11 4V9C11 9.55228 10.5523 10 10 10H5V20H19V4H11Z\"></path></svg>";
61
+ readonly tagLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M10.9042 2.10025L20.8037 3.51446L22.2179 13.414L13.0255 22.6063C12.635 22.9969 12.0019 22.9969 11.6113 22.6063L1.71184 12.7069C1.32132 12.3163 1.32132 11.6832 1.71184 11.2926L10.9042 2.10025ZM11.6113 4.22157L3.8295 11.9999L12.3184 20.4848L20.1002 12.7065L19.0395 5.27581L11.6113 4.22157ZM13.7326 10.5858C13.1468 10.0001 13.1468 9.05033 13.7326 8.46454C14.3184 7.87876 15.2681 7.87876 15.8539 8.46454C16.4397 9.05033 16.4397 10.0001 15.8539 10.5858C15.2681 11.1716 14.3184 11.1716 13.7326 10.5858Z\"></path></svg>";
62
+ readonly uploadLine: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M4 19H20V12H22V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V12H4V19ZM13 9V16H11V9H6L12 3L18 9H13Z\"></path></svg>";
57
63
  };
58
64
  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-BhhsFYwp.js";
1
+ import { _ as a, i as n, p as c } from "../Icon.vue_vue_type_script_lang-BIzh8LF1.js";
2
2
  export {
3
3
  a as Icon,
4
4
  n as installIcons,
@@ -1,7 +1,7 @@
1
1
  import { i as a } from "../preferences-hYhrw8Uy.js";
2
- import { k as o, r as n, t as i, P as r, j as u, h as c, _ as d, q as S, i as g, U as A, v as f, w as l, x as p, y as m, z as I, A as R, o as x, B as y, C as P, n as U, s as v, e as D, g as E, b, f as w, D as F, E as B, c as C } from "../index-BA2w8uwD.js";
3
- import { a as T, _ } from "../ActionRow.vue_vue_type_script_setup_true_lang-B5IMNnTf.js";
4
- import { i as k, l as N, r as O, s as j, a as q, u as z } from "../usePreferences-DB29UTFD.js";
2
+ import { k as o, r as n, t as i, P as r, j as u, h as c, _ as d, q as S, i as g, U as A, v as f, w as l, x as p, y as m, z as I, A as R, o as x, B as y, C as P, n as U, s as v, e as D, g as E, b, f as w, D as F, E as B, c as C } from "../index-C_ZVaTkR.js";
3
+ import { a as T, _ } from "../ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
4
+ import { i as k, l as N, r as O, s as j, a as q, u as z } from "../usePreferences-D38x73re.js";
5
5
  import { s as K } from "../routes-Beyr5NQo.js";
6
6
  export {
7
7
  T as ActionRow,
@@ -3,12 +3,12 @@ declare function present(existing: PendingEmail | null): void;
3
3
  declare const _default: import("vue").DefineComponent<{}, {
4
4
  present: typeof present;
5
5
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
- pending: (pending: PendingEmail | null) => any;
7
6
  changed: (profile: ProfileResponse) => any;
7
+ pending: (pending: PendingEmail | null) => any;
8
8
  cancelled: () => any;
9
9
  }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
10
- onPending?: ((pending: PendingEmail | null) => any) | undefined;
11
10
  onChanged?: ((profile: ProfileResponse) => any) | undefined;
11
+ onPending?: ((pending: PendingEmail | null) => any) | undefined;
12
12
  onCancelled?: (() => any) | undefined;
13
13
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
14
14
  export default _default;
@@ -1,4 +1,4 @@
1
- import { h as t, j as i, k as r, l as n, i as a } from "../index-1HS7O2-e.js";
1
+ import { h as t, j as i, k as r, l as n, i as a } from "../index-OVbtHAtG.js";
2
2
  export {
3
3
  t as MAX_REPORTS_PER_SESSION,
4
4
  i as clientErrorReporter,
@@ -2,20 +2,20 @@ import { r as v } from "./route-goWMxDUN.js";
2
2
  import { d as ve, p as me } from "./feature-DdUAfyi4.js";
3
3
  import { ref as C, readonly as $, defineComponent as q, openBlock as _, createBlock as U, unref as s, shallowRef as z, withCtx as A, createTextVNode as X, toDisplayString as L, mergeProps as Z, computed as N, createElementBlock as S, createElementVNode as P, createCommentVNode as R, createVNode as T, Fragment as G, renderList as be, normalizeClass as H, useTemplateRef as he, createSlots as ye } from "vue";
4
4
  import { d as ge } from "./context-Ch1r4fdN.js";
5
- import { u as ee } from "./platform-DU9QFts8.js";
5
+ import { u as ee } from "./platform-YWfOO7b2.js";
6
6
  import { d as te } from "./defineRoutes-BGAdiIrt.js";
7
7
  import { useI18n as I } from "vue-i18n";
8
- import { _ as _e } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
8
+ import { _ as _e } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-C2TmmH38.js";
9
9
  import { f as xe } from "./client-Do8v1I5l.js";
10
10
  import { u as we } from "./mediaQuery-CygcXmFW.js";
11
- import { _ as ke } from "./Sheet.vue_vue_type_script_setup_true_lang-BG8HUNfs.js";
11
+ import { _ as ke } from "./Sheet.vue_vue_type_script_setup_true_lang-BVU5yzXe.js";
12
12
  import { _ as Se } from "./Popover.vue_vue_type_script_setup_true_lang-BK8HL_V0.js";
13
- import { _ as J } from "./HeaderAction.vue_vue_type_script_setup_true_lang-Da59TLBh.js";
13
+ import { _ as J } from "./HeaderAction.vue_vue_type_script_setup_true_lang-Uw0vwV-o.js";
14
14
  import { useRouter as Te } from "vue-router";
15
- import { _ as K } from "./Button.vue_vue_type_script_setup_true_lang-JrqhO99l.js";
15
+ import { _ as K } from "./Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
16
16
  import { u as Ee } from "./format-C_HXlOYQ.js";
17
- import { _ as Pe } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
18
- import { _ as Ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-CX8mpXRE.js";
17
+ import { _ as Pe } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
18
+ import { _ as Ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
19
19
  const E = {
20
20
  list: v("GET", "/v1/notifications"),
21
21
  unread: v("GET", "/v1/notifications/unread"),
@@ -135,9 +135,9 @@ function Me(n = ee().http, t = W()) {
135
135
  return { state: $(e), hash: $(i), busy: $(a), inspect: c, enable: u, disable: g };
136
136
  }
137
137
  const Ne = "events.deadletter:view", $t = "events.deadletter:retry", Y = te({
138
- index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-DhJkMpd_.js"), meta: { access: Ne, titleKey: "core.notifications.dead_letters.title" } }
138
+ index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters--js7aeC6.js"), meta: { access: Ne, titleKey: "core.notifications.dead_letters.title" } }
139
139
  }), j = te({
140
- index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-t-8kmFVT.js"), meta: { titleKey: "core.notifications.settings.title" } }
140
+ index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-4Dolsr0t.js"), meta: { titleKey: "core.notifications.settings.title" } }
141
141
  }), Oe = /* @__PURE__ */ q({
142
142
  __name: "SettingsMenuItem",
143
143
  setup(n) {
@@ -8,34 +8,34 @@ import { a as Y } from "./error-CD7x0Jrz.js";
8
8
  import { u as pe } from "./environment-Dva-SG8D.js";
9
9
  import { u as B } from "./describeError-B-NMa--w.js";
10
10
  import { t as z } from "./toast-CqSDTWRX.js";
11
- import { u as I, h as W, f as te } from "./platform-DU9QFts8.js";
12
- import { i as H, r as qe, l as Fe, s as Ne, a as Be } from "./usePreferences-DB29UTFD.js";
11
+ import { u as I, h as W, f as te } from "./platform-YWfOO7b2.js";
12
+ import { i as H, r as qe, l as Fe, s as Ne, a as Be } from "./usePreferences-D38x73re.js";
13
13
  import { useI18n as C } from "vue-i18n";
14
- import { _ as fe } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
14
+ import { _ as fe } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
15
15
  import { useRouter as _e, useRoute as Ve, RouterLink as Me } from "vue-router";
16
- import { _ as ge } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
17
- import { _ as T } from "./Button.vue_vue_type_script_setup_true_lang-JrqhO99l.js";
16
+ import { _ as ge } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-C2TmmH38.js";
17
+ import { _ as T } from "./Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
18
18
  import { u as De } from "./leaveGuard-Cc8yeLxM.js";
19
- import { _ as We } from "./FormView.vue_vue_type_script_setup_true_lang-D01Jr4UU.js";
20
- import { _ as L } from "./TextField.vue_vue_type_script_setup_true_lang-CVGh-p3J.js";
19
+ import { _ as We } from "./FormView.vue_vue_type_script_setup_true_lang-CoQZG-hB.js";
20
+ import { _ as L } from "./TextField.vue_vue_type_script_setup_true_lang-B6Q65aQA.js";
21
21
  import { u as Ge } from "./mediaQuery-CygcXmFW.js";
22
22
  import { u as Xe } from "./useDialog-B4_MpX2v.js";
23
23
  import { c as Ye } from "./closeOverlays-CjVsIrpL.js";
24
- import { u as He, a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-lvAuBG-0.js";
24
+ import { u as He, a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js";
25
25
  import { u as J } from "./format-C_HXlOYQ.js";
26
26
  import { b as Je } from "./routeResource-DlTsGTg_.js";
27
- import { _ as F } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
28
- import { _ as U } from "./FormRow.vue_vue_type_script_setup_true_lang-CpgNVQF4.js";
29
- import { u as he, _ as be } from "./useCommand-DQKvro1n.js";
27
+ import { _ as F } from "./IconTile.vue_vue_type_script_setup_true_lang-DRirnJvd.js";
28
+ import { _ as U } from "./FormRow.vue_vue_type_script_setup_true_lang-B-uth5RB.js";
29
+ import { u as he, _ as be } from "./useCommand-DerEnzIW.js";
30
30
  import { u as ye } from "./serverMessages-C_KkDvpT.js";
31
- import { _ as Qe } from "./SelectField.vue_vue_type_script_setup_true_lang-D5xYofdb.js";
31
+ import { _ as Qe } from "./SelectField.vue_vue_type_script_setup_true_lang-DxCEwED6.js";
32
32
  import { d as Ze, r as et } from "./http-D6qOS6xs.js";
33
33
  import { z as r } from "zod";
34
- import "./ActionRow.vue_vue_type_script_setup_true_lang-B5IMNnTf.js";
34
+ import "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
35
35
  import { _ as G } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
36
- import { _ as tt } from "./DataTable.vue_vue_type_script_setup_true_lang-D372wlxR.js";
36
+ import { _ as tt } from "./DataTable.vue_vue_type_script_setup_true_lang-Cw_E8w48.js";
37
37
  import { _ as nt } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
38
- import { _ as st } from "./AccessGate.vue_vue_type_script_setup_true_lang-Bg8JFAOT.js";
38
+ import { _ as st } from "./AccessGate.vue_vue_type_script_setup_true_lang-Dw_pnsh9.js";
39
39
  import "./routes-Beyr5NQo.js";
40
40
  const [ot, ve] = N("vue-core.identity"), rt = { hidden: "" }, at = /* @__PURE__ */ $({
41
41
  __name: "LocaleSync",
@@ -246,7 +246,7 @@ const ft = ["aria-labelledby"], _t = ["id"], gt = { class: "mt-1 text-subheadlin
246
246
  ]));
247
247
  }
248
248
  }), wt = X({
249
- login: { name: "login", path: "/login", component: () => import("./SignInPage-DcdNKZIb.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
249
+ login: { name: "login", path: "/login", component: () => import("./SignInPage-DouCg9aD.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
250
250
  });
251
251
  function Xn(e = {}) {
252
252
  return ne({
@@ -381,7 +381,7 @@ function Hn(e) {
381
381
  };
382
382
  }
383
383
  const ke = X({
384
- index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-DGEsIycR.js"), meta: { titleKey: "core.profile.title" } }
384
+ index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-CMy2Dkr2.js"), meta: { titleKey: "core.profile.title" } }
385
385
  }), At = /* @__PURE__ */ $({
386
386
  __name: "ProfileMenuItem",
387
387
  setup(e) {
@@ -412,19 +412,19 @@ function jt(e, n) {
412
412
  return [...e.flatMap((s) => [s, ...o(s)]), ...n.filter((s) => s.after === void 0).map((s) => ce(s))];
413
413
  }
414
414
  const le = "iam.user:view", ts = "iam.user:manage", Kt = "iam.user.activity:view", Se = X({
415
- index: { name: "users.index", path: "/users", component: () => import("./UsersList-Cn19sFgv.js"), meta: { access: le, titleKey: "core.users.title" } },
415
+ index: { name: "users.index", path: "/users", component: () => import("./UsersList-BmxWpt9h.js"), meta: { access: le, titleKey: "core.users.title" } },
416
416
  record: {
417
417
  name: "users.record",
418
418
  path: "/users/:id",
419
- component: () => import("./UserRecord-CwZCr9Im.js"),
419
+ component: () => import("./UserRecord-CH5oNRLg.js"),
420
420
  meta: { access: le, titleKey: "core.users.title", remountOnParam: "id" },
421
421
  children: [
422
- { name: "users.record.general", path: "general", component: () => import("./General-CwTPC5UP.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
423
- { name: "users.record.signin", path: "signin", component: () => import("./SignIn-CqtkvtCZ.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
424
- { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-BDc8gdYH.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
425
- { name: "users.record.signins", path: "signins", component: () => import("./SignIns-D4-nGu0B.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
426
- { name: "users.record.changes", path: "changes", component: () => import("./Changes-Cy8STpLX.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
427
- { name: "users.record.activity", path: "activity", component: () => import("./Activity-CiYn5E6A.js"), meta: { access: Kt, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
422
+ { name: "users.record.general", path: "general", component: () => import("./General-BGT9H69S.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
423
+ { name: "users.record.signin", path: "signin", component: () => import("./SignIn-uFn1ZWG8.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
424
+ { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-BMmqYZrJ.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
425
+ { name: "users.record.signins", path: "signins", component: () => import("./SignIns-CqN5UNmh.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
426
+ { name: "users.record.changes", path: "changes", component: () => import("./Changes-B0bhSNU3.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
427
+ { name: "users.record.activity", path: "activity", component: () => import("./Activity-CZzAt3SH.js"), meta: { access: Kt, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
428
428
  ]
429
429
  }
430
430
  });
@@ -1153,11 +1153,11 @@ const Jt = ["title"], Qt = { class: "font-mono" }, cs = /* @__PURE__ */ $({
1153
1153
  }, 8, ["permission"])) : k("", !0);
1154
1154
  }
1155
1155
  }), [cn, ms] = N("vue-core.serviceaccounts"), ue = "iam.serviceaccount:view", ps = "iam.serviceaccount:manage", fs = "iam.serviceaccount:revoke", de = X({
1156
- index: { name: "serviceaccounts.index", path: "/iam/service-accounts", component: () => import("./ServiceAccountsList-CKy9_YHP.js"), meta: { access: ue, titleKey: "core.serviceaccounts.title_plural" } },
1156
+ index: { name: "serviceaccounts.index", path: "/iam/service-accounts", component: () => import("./ServiceAccountsList-DBUFeka-.js"), meta: { access: ue, titleKey: "core.serviceaccounts.title_plural" } },
1157
1157
  record: {
1158
1158
  name: "serviceaccounts.record",
1159
1159
  path: "/iam/service-accounts/:id",
1160
- component: () => import("./ServiceAccountRecord-kWwIQGZb.js"),
1160
+ component: () => import("./ServiceAccountRecord-Dc7Gn52W.js"),
1161
1161
  meta: { access: ue, titleKey: "core.serviceaccounts.title_plural", remountOnParam: "id" }
1162
1162
  }
1163
1163
  });
@@ -3,17 +3,17 @@ import { d as $, p as V } from "./feature-DdUAfyi4.js";
3
3
  import { defineComponent as y, computed as k, onMounted as U, watch as L, openBlock as S, createBlock as I, unref as e, withCtx as T, createElementVNode as X, createVNode as c, mergeProps as l, createCommentVNode as A, ref as B } from "vue";
4
4
  import { d as G } from "./context-Ch1r4fdN.js";
5
5
  import { useI18n as q } from "vue-i18n";
6
- import { a as O } from "./FormGroup.vue_vue_type_script_setup_true_lang-lvAuBG-0.js";
7
- import { _ as F } from "./SelectField.vue_vue_type_script_setup_true_lang-D5xYofdb.js";
8
- import { _ as b } from "./TextareaField.vue_vue_type_script_setup_true_lang-YxUlNHSk.js";
9
- import { _ as w } from "./TextField.vue_vue_type_script_setup_true_lang-CVGh-p3J.js";
10
- import { u as j, _ as K } from "./useCommand-DQKvro1n.js";
6
+ import { a as O } from "./FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js";
7
+ import { _ as F } from "./SelectField.vue_vue_type_script_setup_true_lang-DxCEwED6.js";
8
+ import { _ as b } from "./TextareaField.vue_vue_type_script_setup_true_lang-Cj0LKDdo.js";
9
+ import { _ as w } from "./TextField.vue_vue_type_script_setup_true_lang-B6Q65aQA.js";
10
+ import { u as j, _ as K } from "./useCommand-DerEnzIW.js";
11
11
  import { t as z } from "./toast-CqSDTWRX.js";
12
- import { u as R } from "./platform-DU9QFts8.js";
12
+ import { u as R } from "./platform-YWfOO7b2.js";
13
13
  import { d as H, r as Q, a as W } from "./http-D6qOS6xs.js";
14
- import { _ as Y } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
14
+ import { _ as Y } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-C2TmmH38.js";
15
15
  import { d as J } from "./defineRoutes-BGAdiIrt.js";
16
- import { d as Z } from "./application-CDSweJb9.js";
16
+ import { d as Z } from "./application-C5fZyCB9.js";
17
17
  import { R as ee } from "./client-Do8v1I5l.js";
18
18
  import { a as te } from "./error-CD7x0Jrz.js";
19
19
  const g = {
@@ -268,11 +268,11 @@ const Qe = {
268
268
  }, null, 8, ["label"])) : A("", !0);
269
269
  }
270
270
  }), P = J({
271
- index: { name: "incidents.index", path: "/incidents", component: () => import("./IncidentsList-C41VyDwK.js"), meta: { access: N, titleKey: "core.incidents.title" } },
271
+ index: { name: "incidents.index", path: "/incidents", component: () => import("./IncidentsList-BIr3a2To.js"), meta: { access: N, titleKey: "core.incidents.title" } },
272
272
  details: {
273
273
  name: "incidents.details",
274
274
  path: "/incidents/:incidentID",
275
- component: () => import("./IncidentRecord-hXEGuLGg.js"),
275
+ component: () => import("./IncidentRecord-BETFfXbI.js"),
276
276
  // Previous / next record swaps the id in place.
277
277
  meta: { access: N, titleKey: "core.incidents.title", remountOnParam: "incidentID" }
278
278
  }
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** The version of @wssto2/vue-core (kept equal to package.json by index.test.ts). */
2
- export declare const version = "0.19.0";
2
+ export declare const version = "0.21.0";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const o = "0.19.0";
1
+ const o = "0.21.0";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -11,6 +11,13 @@
11
11
  * Inertness, scroll lock, Escape and focus come from `useDialog`, the behaviour Modal and
12
12
  * AlertDialog use, so they nest.
13
13
  *
14
+ * - `size` (`md` 28rem, the default; `lg` 36rem; `xl` 48rem) is the width of the desktop slide-over; the bottom sheet ignores it.
15
+ * - `docked` makes the desktop sheet a **non-modal** panel in the page's own layout: no scrim, no scroll lock, no focus trap, the
16
+ * page beside it stays usable (inert nothing), and its content narrows to make room. Put the sheet as a child of a flex row
17
+ * next to the content (`<div class="flex h-full"><div class="min-w-0 flex-1">page</div><Sheet docked …/></div>`); it takes the
18
+ * row's height. Escape closes it while focus is inside it. On phones, tablets and touch screens a docked sheet is the usual
19
+ * bottom sheet, because there is no room beside the page.
20
+ *
14
21
  * <Sheet ref="sheet" :title="t('filters')" grouped>…body…<template #footer>…buttons…</template></Sheet>
15
22
  * sheet.value?.present() sheet.value?.dismiss()
16
23
  */
@@ -18,6 +25,10 @@ type __VLS_Props = {
18
25
  title?: string;
19
26
  /** The canvas behind inset groups (pickers) instead of a plain cell surface. */
20
27
  grouped?: boolean;
28
+ /** The width of the desktop slide-over. */
29
+ size?: "md" | "lg" | "xl";
30
+ /** A non-modal panel beside the page (desktop only); see above. */
31
+ docked?: boolean;
21
32
  };
22
33
  type __VLS_Slots = {
23
34
  default?: () => unknown;
@@ -42,7 +53,9 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
42
53
  onPresented?: (() => any) | undefined;
43
54
  }>, {
44
55
  title: string;
56
+ size: "md" | "lg" | "xl";
45
57
  grouped: boolean;
58
+ docked: boolean;
46
59
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
60
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
48
61
  export default _default;
@@ -0,0 +1,46 @@
1
+ /** One tab of a `TabbedSheet`. `error` marks it when something inside needs attention (a failed field): `true` says "Has errors", a text says it. */
2
+ export interface SheetTab<Value extends string | number = string | number> {
3
+ value: Value;
4
+ label: string;
5
+ error?: boolean | string;
6
+ }
7
+ declare const _default: <Value extends string | number>(__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<{
8
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
9
+ readonly onDismissed?: (() => any) | undefined;
10
+ readonly onPresented?: (() => any) | undefined;
11
+ readonly "onUpdate:tab"?: ((value: Value) => any) | undefined;
12
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onDismissed" | "onPresented" | "onUpdate:tab"> & ({
13
+ tabs: readonly SheetTab<Value>[];
14
+ title?: string;
15
+ grouped?: boolean;
16
+ size?: "md" | "lg" | "xl";
17
+ docked?: boolean;
18
+ /** The accessible name of the tab list. Default: the title. */
19
+ tabsLabel?: string;
20
+ } & {
21
+ tab: Value;
22
+ }) & Partial<{}>> & import("vue").PublicProps;
23
+ expose(exposed: import("vue").ShallowUnwrapRef<{
24
+ present: () => void | undefined;
25
+ dismiss: () => void | undefined;
26
+ }>): void;
27
+ attrs: any;
28
+ slots: {
29
+ default?: (scope: {
30
+ tab: Value;
31
+ }) => unknown;
32
+ footer?: () => unknown;
33
+ actions?: () => unknown;
34
+ /** Replaces the title and the close button, as in `Sheet`. */
35
+ header?: (scope: {
36
+ titleId: string;
37
+ }) => unknown;
38
+ };
39
+ emit: (((evt: "dismissed") => void) & ((evt: "presented") => void)) & ((evt: "update:tab", value: Value) => void);
40
+ }>) => import("vue").VNode & {
41
+ __ctx?: Awaited<typeof __VLS_setup>;
42
+ };
43
+ export default _default;
44
+ type __VLS_PrettifyLocal<T> = {
45
+ [K in keyof T]: T[K];
46
+ } & {};
@@ -1,5 +1,6 @@
1
1
  export { default as DiscardChangesModal } from "./DiscardChangesModal.vue";
2
2
  export { default as Modal } from "./Modal.vue";
3
3
  export { default as Sheet } from "./Sheet.vue";
4
+ export { default as TabbedSheet, type SheetTab } from "./TabbedSheet.vue";
4
5
  export { default as ShortcutHelp } from "./ShortcutHelp.vue";
5
6
  export { modalPlacementKey, type ModalPlacement } from "./placement";
@@ -1,56 +1,137 @@
1
- import { _ as G } from "../DiscardChangesModal.vue_vue_type_script_setup_true_lang-92szOrYd.js";
2
- import { _ as b } from "../Modal.vue_vue_type_script_setup_true_lang-CZ7WrDwu.js";
3
- import { m as O } from "../Modal.vue_vue_type_script_setup_true_lang-CZ7WrDwu.js";
4
- import { _ as T } from "../Sheet.vue_vue_type_script_setup_true_lang-BG8HUNfs.js";
5
- import { defineComponent as y, ref as k, computed as v, openBlock as t, createBlock as w, unref as i, withCtx as S, createElementVNode as r, createElementBlock as o, Fragment as c, renderList as u, toDisplayString as l, createCommentVNode as C } from "vue";
6
- import { useI18n as B } from "vue-i18n";
7
- import { a as M, u as $ } from "../shortcut-oixX55SZ.js";
8
- const j = {
1
+ import { _ as le } from "../DiscardChangesModal.vue_vue_type_script_setup_true_lang-lnFUie1d.js";
2
+ import { _ as M } from "../Modal.vue_vue_type_script_setup_true_lang-BRRMKXOV.js";
3
+ import { m as de } from "../Modal.vue_vue_type_script_setup_true_lang-BRRMKXOV.js";
4
+ import { _ as V } from "../Sheet.vue_vue_type_script_setup_true_lang-BVU5yzXe.js";
5
+ import { defineComponent as $, useModel as B, useTemplateRef as C, computed as x, openBlock as o, createBlock as S, createSlots as D, withCtx as i, createVNode as P, unref as v, createElementBlock as r, Fragment as c, renderList as f, withDirectives as L, renderSlot as h, vShow as N, normalizeProps as R, guardReactiveProps as T, mergeModels as k, ref as j, createElementVNode as u, toDisplayString as m, createCommentVNode as E } from "vue";
6
+ import { useI18n as w } from "vue-i18n";
7
+ import { _ as H } from "../Tabs.vue_vue_type_script_setup_true_lang-7CJto6Mp.js";
8
+ import { a as K, u as q } from "../shortcut-oixX55SZ.js";
9
+ const F = ["data-tab-panel"], oe = /* @__PURE__ */ $({
10
+ __name: "TabbedSheet",
11
+ props: /* @__PURE__ */ k({
12
+ tabs: {},
13
+ title: { default: void 0 },
14
+ grouped: { type: Boolean, default: !1 },
15
+ size: { default: "md" },
16
+ docked: { type: Boolean, default: !1 },
17
+ tabsLabel: { default: void 0 }
18
+ }, {
19
+ tab: { required: !0 },
20
+ tabModifiers: {}
21
+ }),
22
+ emits: /* @__PURE__ */ k(["presented", "dismissed"], ["update:tab"]),
23
+ setup(_, { expose: l }) {
24
+ const a = _, n = B(_, "tab"), { t: b } = w(), p = C("sheet"), d = x(
25
+ () => a.tabs.map((e) => ({
26
+ value: e.value,
27
+ label: e.label,
28
+ ...e.error ? { error: typeof e.error == "string" ? e.error : b("core.sheet.tab_error") } : {}
29
+ }))
30
+ );
31
+ return l({ present: () => p.value?.present(), dismiss: () => p.value?.dismiss() }), (e, s) => (o(), S(V, {
32
+ ref_key: "sheet",
33
+ ref: p,
34
+ title: a.title,
35
+ grouped: a.grouped,
36
+ size: a.size,
37
+ docked: a.docked,
38
+ onPresented: s[1] || (s[1] = (t) => e.$emit("presented")),
39
+ onDismissed: s[2] || (s[2] = (t) => e.$emit("dismissed"))
40
+ }, D({
41
+ default: i(() => [
42
+ P(H, {
43
+ modelValue: n.value,
44
+ "onUpdate:modelValue": s[0] || (s[0] = (t) => n.value = t),
45
+ tabs: d.value,
46
+ stretch: "",
47
+ label: a.tabsLabel ?? a.title ?? v(b)("core.sheet.tabs")
48
+ }, {
49
+ default: i(() => [
50
+ (o(!0), r(c, null, f(a.tabs, (t) => L((o(), r("div", {
51
+ key: t.value,
52
+ "data-tab-panel": String(t.value)
53
+ }, [
54
+ h(e.$slots, "default", {
55
+ tab: t.value
56
+ })
57
+ ], 8, F)), [
58
+ [N, t.value === n.value]
59
+ ])), 128))
60
+ ]),
61
+ _: 3
62
+ }, 8, ["modelValue", "tabs", "label"])
63
+ ]),
64
+ _: 2
65
+ }, [
66
+ e.$slots.actions ? {
67
+ name: "actions",
68
+ fn: i(() => [
69
+ h(e.$slots, "actions")
70
+ ]),
71
+ key: "0"
72
+ } : void 0,
73
+ e.$slots.header ? {
74
+ name: "header",
75
+ fn: i((t) => [
76
+ h(e.$slots, "header", R(T(t)))
77
+ ]),
78
+ key: "1"
79
+ } : void 0,
80
+ e.$slots.footer ? {
81
+ name: "footer",
82
+ fn: i(() => [
83
+ h(e.$slots, "footer")
84
+ ]),
85
+ key: "2"
86
+ } : void 0
87
+ ]), 1032, ["title", "grouped", "size", "docked"]));
88
+ }
89
+ }), I = {
9
90
  class: "flex flex-col gap-5",
10
91
  "data-test": "shortcut-help"
11
- }, D = { class: "mb-1 text-footnote font-semibold text-content-muted uppercase" }, E = { class: "divide-y divide-border-separator" }, H = { class: "text-body" }, K = { class: "flex shrink-0 items-center gap-1 text-footnote text-content-muted" }, N = { key: 0 }, V = { class: "text-footnote text-content-muted" }, R = /* @__PURE__ */ y({
92
+ }, U = { class: "mb-1 text-footnote font-semibold text-content-muted uppercase" }, A = { class: "divide-y divide-border-separator" }, G = { class: "text-body" }, J = { class: "flex shrink-0 items-center gap-1 text-footnote text-content-muted" }, O = { key: 0 }, Q = { class: "text-footnote text-content-muted" }, se = /* @__PURE__ */ $({
12
93
  __name: "ShortcutHelp",
13
- setup(z) {
14
- const { t: s, te: f } = B(), p = k(null), h = M();
15
- $({ key: "?", group: "general", label: () => s("core.shortcuts.show_help") }, () => p.value?.present());
16
- const x = v(() => {
17
- const a = /* @__PURE__ */ new Map();
18
- for (const e of h.value) a.set(e.group ?? "general", [...a.get(e.group ?? "general") ?? [], e]);
19
- return [...a].map(([e, n]) => ({ group: e, title: f(`core.shortcuts.groups.${e}`) ? s(`core.shortcuts.groups.${e}`) : e, rows: n }));
94
+ setup(_) {
95
+ const { t: l, te: a } = w(), n = j(null), b = K();
96
+ q({ key: "?", group: "general", label: () => l("core.shortcuts.show_help") }, () => n.value?.present());
97
+ const p = x(() => {
98
+ const d = /* @__PURE__ */ new Map();
99
+ for (const e of b.value) d.set(e.group ?? "general", [...d.get(e.group ?? "general") ?? [], e]);
100
+ return [...d].map(([e, s]) => ({ group: e, title: a(`core.shortcuts.groups.${e}`) ? l(`core.shortcuts.groups.${e}`) : e, rows: s }));
20
101
  });
21
- return (a, e) => (t(), w(b, {
102
+ return (d, e) => (o(), S(M, {
22
103
  ref_key: "modal",
23
- ref: p,
24
- title: i(s)("core.shortcuts.title"),
104
+ ref: n,
105
+ title: v(l)("core.shortcuts.title"),
25
106
  size: "sm"
26
107
  }, {
27
- default: S(() => [
28
- r("div", j, [
29
- (t(!0), o(c, null, u(x.value, (n) => (t(), o("section", {
30
- key: n.group
108
+ default: i(() => [
109
+ u("div", I, [
110
+ (o(!0), r(c, null, f(p.value, (s) => (o(), r("section", {
111
+ key: s.group
31
112
  }, [
32
- r("h3", D, l(n.title), 1),
33
- r("dl", E, [
34
- (t(!0), o(c, null, u(n.rows, (d) => (t(), o("div", {
35
- key: d.label,
113
+ u("h3", U, m(s.title), 1),
114
+ u("dl", A, [
115
+ (o(!0), r(c, null, f(s.rows, (t) => (o(), r("div", {
116
+ key: t.label,
36
117
  class: "flex items-center justify-between gap-4 py-1.5"
37
118
  }, [
38
- r("dt", H, l(d.label), 1),
39
- r("dd", K, [
40
- (t(!0), o(c, null, u(d.keys, (m, g) => (t(), o(c, {
41
- key: m.join("+")
119
+ u("dt", G, m(t.label), 1),
120
+ u("dd", J, [
121
+ (o(!0), r(c, null, f(t.keys, (g, z) => (o(), r(c, {
122
+ key: g.join("+")
42
123
  }, [
43
- g > 0 ? (t(), o("span", N, l(i(s)("core.shortcuts.or")), 1)) : C("", !0),
44
- (t(!0), o(c, null, u(m, (_) => (t(), o("kbd", {
45
- key: _,
124
+ z > 0 ? (o(), r("span", O, m(v(l)("core.shortcuts.or")), 1)) : E("", !0),
125
+ (o(!0), r(c, null, f(g, (y) => (o(), r("kbd", {
126
+ key: y,
46
127
  class: "min-w-6 rounded-control border border-border-separator bg-fill px-1.5 py-0.5 text-center font-mono text-content-strong"
47
- }, l(_), 1))), 128))
128
+ }, m(y), 1))), 128))
48
129
  ], 64))), 128))
49
130
  ])
50
131
  ]))), 128))
51
132
  ])
52
133
  ]))), 128)),
53
- r("p", V, l(i(s)("core.shortcuts.hint")), 1)
134
+ u("p", Q, m(v(l)("core.shortcuts.hint")), 1)
54
135
  ])
55
136
  ]),
56
137
  _: 1
@@ -58,9 +139,10 @@ const j = {
58
139
  }
59
140
  });
60
141
  export {
61
- G as DiscardChangesModal,
62
- b as Modal,
63
- T as Sheet,
64
- R as ShortcutHelp,
65
- O as modalPlacementKey
142
+ le as DiscardChangesModal,
143
+ M as Modal,
144
+ V as Sheet,
145
+ se as ShortcutHelp,
146
+ oe as TabbedSheet,
147
+ de as modalPlacementKey
66
148
  };
@@ -0,0 +1,67 @@
1
+ export type ChoiceResponse = {
2
+ value: string;
3
+ label: LabelResponse;
4
+ };
5
+ export type DeleteResponse = {
6
+ deleted: number;
7
+ usage_known: boolean;
8
+ };
9
+ export type DescriptionResponse = {
10
+ languages: string[];
11
+ levels: LevelResponse[];
12
+ };
13
+ export type FieldResponse = {
14
+ column: string;
15
+ label: LabelResponse;
16
+ type: string;
17
+ choices: ChoiceResponse[];
18
+ max: number;
19
+ in_list: boolean;
20
+ read_only: boolean;
21
+ under: ScopeResponse | null;
22
+ };
23
+ export type ItemResponse = {
24
+ level: number;
25
+ id: number;
26
+ parent_id: number;
27
+ name: string;
28
+ translations: Record<string, string>;
29
+ order: number;
30
+ active: boolean;
31
+ meta: Record<string, unknown>;
32
+ values: Record<string, unknown>;
33
+ };
34
+ export type LabelResponse = {
35
+ hr: string;
36
+ en: string;
37
+ };
38
+ export type LevelResponse = {
39
+ level: number;
40
+ label: LabelResponse;
41
+ name_max: number;
42
+ has_translations: boolean;
43
+ has_order: boolean;
44
+ has_active: boolean;
45
+ has_meta: boolean;
46
+ fields: FieldResponse[];
47
+ };
48
+ export type OptionResponse = {
49
+ value: string;
50
+ label: string;
51
+ };
52
+ export type ScopeResponse = {
53
+ level: number;
54
+ id: number;
55
+ };
56
+ export type TreeResponse = {
57
+ items: ItemResponse[];
58
+ };
59
+ export type UsageResponse = {
60
+ known: boolean;
61
+ uses: UseResponse[];
62
+ children: number;
63
+ };
64
+ export type UseResponse = {
65
+ what: string;
66
+ count: number;
67
+ };