@nextcloud/vue 8.13.0 → 8.15.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 (446) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +1 -0
  3. package/dist/Components/NcActionButton.cjs +2 -2
  4. package/dist/Components/NcActionButton.cjs.map +1 -1
  5. package/dist/Components/NcActionButton.mjs +2 -2
  6. package/dist/Components/NcActionButton.mjs.map +1 -1
  7. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  8. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  9. package/dist/Components/NcActionCaption.cjs +2 -2
  10. package/dist/Components/NcActionCaption.cjs.map +1 -1
  11. package/dist/Components/NcActionCaption.mjs +2 -2
  12. package/dist/Components/NcActionCaption.mjs.map +1 -1
  13. package/dist/Components/NcActionCheckbox.cjs +2 -2
  14. package/dist/Components/NcActionCheckbox.cjs.map +1 -1
  15. package/dist/Components/NcActionCheckbox.mjs +2 -2
  16. package/dist/Components/NcActionCheckbox.mjs.map +1 -1
  17. package/dist/Components/NcActionInput.cjs +1 -1
  18. package/dist/Components/NcActionInput.mjs +1 -1
  19. package/dist/Components/NcActionLink.cjs +1 -1
  20. package/dist/Components/NcActionLink.mjs +1 -1
  21. package/dist/Components/NcActionRadio.cjs +2 -2
  22. package/dist/Components/NcActionRadio.cjs.map +1 -1
  23. package/dist/Components/NcActionRadio.mjs +2 -2
  24. package/dist/Components/NcActionRadio.mjs.map +1 -1
  25. package/dist/Components/NcActionRouter.cjs +1 -1
  26. package/dist/Components/NcActionRouter.mjs +1 -1
  27. package/dist/Components/NcActionText.cjs +1 -1
  28. package/dist/Components/NcActionText.mjs +1 -1
  29. package/dist/Components/NcActionTextEditable.cjs +2 -2
  30. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  31. package/dist/Components/NcActionTextEditable.mjs +2 -2
  32. package/dist/Components/NcActionTextEditable.mjs.map +1 -1
  33. package/dist/Components/NcActions.cjs +1 -1
  34. package/dist/Components/NcActions.mjs +1 -1
  35. package/dist/Components/NcAppContent.cjs +1 -1
  36. package/dist/Components/NcAppContent.mjs +1 -1
  37. package/dist/Components/NcAppNavigation.cjs +1 -1
  38. package/dist/Components/NcAppNavigation.mjs +1 -1
  39. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  40. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  41. package/dist/Components/NcAppNavigationIconBullet.cjs +2 -2
  42. package/dist/Components/NcAppNavigationIconBullet.cjs.map +1 -1
  43. package/dist/Components/NcAppNavigationIconBullet.mjs +2 -2
  44. package/dist/Components/NcAppNavigationIconBullet.mjs.map +1 -1
  45. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  46. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  47. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  48. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  49. package/dist/Components/NcAppNavigationSearch.cjs +3 -0
  50. package/dist/Components/NcAppNavigationSearch.cjs.map +1 -0
  51. package/dist/Components/NcAppNavigationSearch.mjs +4 -0
  52. package/dist/Components/NcAppNavigationSearch.mjs.map +1 -0
  53. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  54. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  55. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  56. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  57. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  58. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  59. package/dist/Components/NcAppSettingsSection.cjs +3 -3
  60. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  61. package/dist/Components/NcAppSettingsSection.mjs +3 -3
  62. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  63. package/dist/Components/NcAppSidebar.cjs +1 -1
  64. package/dist/Components/NcAppSidebar.mjs +1 -1
  65. package/dist/Components/NcAvatar.cjs +1 -1
  66. package/dist/Components/NcAvatar.mjs +1 -1
  67. package/dist/Components/NcBreadcrumb.cjs +1 -1
  68. package/dist/Components/NcBreadcrumb.mjs +1 -1
  69. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  70. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  71. package/dist/Components/NcButton.cjs +15 -3
  72. package/dist/Components/NcButton.cjs.map +1 -1
  73. package/dist/Components/NcButton.mjs +15 -3
  74. package/dist/Components/NcButton.mjs.map +1 -1
  75. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  76. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  77. package/dist/Components/NcChip.cjs +3 -3
  78. package/dist/Components/NcChip.mjs +3 -3
  79. package/dist/Components/NcCollectionList.cjs +3 -0
  80. package/dist/Components/NcCollectionList.cjs.map +1 -0
  81. package/dist/Components/NcCollectionList.mjs +4 -0
  82. package/dist/Components/NcCollectionList.mjs.map +1 -0
  83. package/dist/Components/NcColorPicker.cjs +1 -1
  84. package/dist/Components/NcColorPicker.mjs +1 -1
  85. package/dist/Components/NcContent.cjs +1 -1
  86. package/dist/Components/NcContent.mjs +1 -1
  87. package/dist/Components/NcCounterBubble.cjs +2 -2
  88. package/dist/Components/NcCounterBubble.cjs.map +1 -1
  89. package/dist/Components/NcCounterBubble.mjs +2 -2
  90. package/dist/Components/NcCounterBubble.mjs.map +1 -1
  91. package/dist/Components/NcDashboardWidget.cjs +1 -1
  92. package/dist/Components/NcDashboardWidget.mjs +1 -1
  93. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  94. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  95. package/dist/Components/NcDateTime.cjs +1 -1
  96. package/dist/Components/NcDateTime.mjs +1 -1
  97. package/dist/Components/NcDateTimePicker.cjs +5 -5
  98. package/dist/Components/NcDateTimePicker.mjs +5 -5
  99. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  100. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  101. package/dist/Components/NcDialog.cjs +1 -1
  102. package/dist/Components/NcDialog.mjs +1 -1
  103. package/dist/Components/NcEmojiPicker.cjs +1 -1
  104. package/dist/Components/NcEmojiPicker.mjs +1 -1
  105. package/dist/Components/NcHeaderMenu.cjs +1 -1
  106. package/dist/Components/NcHeaderMenu.mjs +1 -1
  107. package/dist/Components/NcInputField.cjs +11 -14
  108. package/dist/Components/NcInputField.cjs.map +1 -1
  109. package/dist/Components/NcInputField.mjs +11 -14
  110. package/dist/Components/NcInputField.mjs.map +1 -1
  111. package/dist/Components/NcListItem.cjs +1 -1
  112. package/dist/Components/NcListItem.mjs +1 -1
  113. package/dist/Components/NcListItemIcon.cjs +1 -1
  114. package/dist/Components/NcListItemIcon.mjs +1 -1
  115. package/dist/Components/NcModal.cjs +40 -11
  116. package/dist/Components/NcModal.cjs.map +1 -1
  117. package/dist/Components/NcModal.mjs +38 -11
  118. package/dist/Components/NcModal.mjs.map +1 -1
  119. package/dist/Components/NcPasswordField.cjs +1 -1
  120. package/dist/Components/NcPasswordField.mjs +1 -1
  121. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  122. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  123. package/dist/Components/NcRichContenteditable.cjs +2 -2
  124. package/dist/Components/NcRichContenteditable.mjs +2 -2
  125. package/dist/Components/NcRichText.cjs +2 -2
  126. package/dist/Components/NcRichText.mjs +3 -3
  127. package/dist/Components/NcSelect.cjs +1 -1
  128. package/dist/Components/NcSelect.mjs +1 -1
  129. package/dist/Components/NcSelectTags.cjs +1 -1
  130. package/dist/Components/NcSelectTags.mjs +1 -1
  131. package/dist/Components/NcSettingsInputText.cjs +1 -1
  132. package/dist/Components/NcSettingsInputText.mjs +1 -1
  133. package/dist/Components/NcSettingsSection.cjs +1 -1
  134. package/dist/Components/NcSettingsSection.mjs +1 -1
  135. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  136. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  137. package/dist/Components/NcTextField.cjs +1 -1
  138. package/dist/Components/NcTextField.mjs +1 -1
  139. package/dist/Components/NcTimezonePicker.cjs +1 -1
  140. package/dist/Components/NcTimezonePicker.mjs +1 -1
  141. package/dist/Components/NcUserBubble.cjs +1 -1
  142. package/dist/Components/NcUserBubble.mjs +1 -1
  143. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  144. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  145. package/dist/Functions/reference.cjs +1 -1
  146. package/dist/Functions/reference.mjs +1 -1
  147. package/dist/Functions/usernameToColor.cjs +1 -1
  148. package/dist/Functions/usernameToColor.mjs +1 -1
  149. package/dist/Mixins/clickOutsideOptions.cjs.map +1 -1
  150. package/dist/Mixins/clickOutsideOptions.mjs.map +1 -1
  151. package/dist/Mixins/richEditor.cjs +1 -1
  152. package/dist/Mixins/richEditor.mjs +1 -1
  153. package/dist/assets/{NcActionButton-BQGADRoe.css → NcActionButton-D90PTEA5.css} +25 -25
  154. package/dist/assets/{NcActionCaption-D-VXTPLI.css → NcActionCaption-B7FZTc3Y.css} +4 -4
  155. package/dist/assets/{NcActionRadio-mQBhh9vp.css → NcActionCheckbox-C-PJVvtb.css} +13 -13
  156. package/dist/assets/NcActionInput-C_3Csa6A.css +220 -0
  157. package/dist/assets/{NcActionLink-Djp7wPGg.css → NcActionLink-Db_ZlqWs.css} +9 -9
  158. package/dist/assets/{NcActionCheckbox-_DSvRrCm.css → NcActionRadio-CpCvyMa_.css} +13 -13
  159. package/dist/assets/{NcActionRouter-DzcScCc6.css → NcActionRouter-DidTlbov.css} +9 -9
  160. package/dist/assets/{NcActionText-DSk64KBl.css → NcActionText-DCx1DWXe.css} +9 -9
  161. package/dist/assets/NcActionTextEditable-Dud9NOdm.css +238 -0
  162. package/dist/assets/{NcActions-DtkhUUGj.css → NcActions-BAHCEkZI.css} +14 -14
  163. package/dist/assets/{NcAppContent-D0DGjfq9.css → NcAppContent-DVBVZyuW.css} +27 -33
  164. package/dist/assets/{NcAppNavigation-DvCTUTpR.css → NcAppNavigation-DdJfTimg.css} +17 -11
  165. package/dist/assets/{NcAppNavigationCaption-32LhJ9Co.css → NcAppNavigationCaption-CYv7YhUS.css} +12 -12
  166. package/dist/assets/{NcAppNavigationIconBullet-EfIZU7x-.css → NcAppNavigationIconBullet-By_0o2dG.css} +4 -4
  167. package/dist/assets/{NcAppNavigationItem-CflKjlYl.css → NcAppNavigationItem-Vg0-UrGT.css} +43 -43
  168. package/dist/assets/{NcAppNavigationNewItem-CO3GnR26.css → NcAppNavigationNewItem-s6Dd9PrB.css} +46 -46
  169. package/dist/assets/NcAppNavigationSearch-BLGG_WBn.css +41 -0
  170. package/dist/assets/{NcAppNavigationSettings-CbV2ZQ9_.css → NcAppNavigationSettings-AzpTlUym.css} +19 -19
  171. package/dist/assets/{NcAppNavigationToggle-DzpFNOgZ.css → NcAppNavigationToggle-DvYpNzHv.css} +4 -4
  172. package/dist/assets/{NcAppSettingsDialog-DkvJ9cKe.css → NcAppSettingsDialog-YgAGku7I.css} +12 -12
  173. package/dist/assets/{NcAppSettingsSection-B5r6VWct.css → NcAppSettingsSection-qU4SUZvh.css} +4 -4
  174. package/dist/assets/{NcAppSidebar-ITHlK5rW.css → NcAppSidebar-CpV7czJx.css} +70 -70
  175. package/dist/assets/{NcBreadcrumb-rVleA0T6.css → NcBreadcrumb-DOvK-XG1.css} +16 -16
  176. package/dist/assets/{NcBreadcrumbs-Bue16qCC.css → NcBreadcrumbs-CPUAM38l.css} +6 -6
  177. package/dist/assets/NcButton-BHxZm42y.css +210 -0
  178. package/dist/assets/{NcCheckboxRadioSwitch-CFKCb80n.css → NcCheckboxRadioSwitch-BkBep4wT.css} +46 -46
  179. package/dist/assets/NcCollectionList-ETQTqkqt.css +221 -0
  180. package/dist/assets/{NcColorPicker-DH3H7HLS.css → NcColorPicker-CpkfRGO1.css} +33 -33
  181. package/dist/assets/{NcCounterBubble-DT16e2bg.css → NcCounterBubble-BlAq2Vim.css} +8 -8
  182. package/dist/assets/{NcDashboardWidget-CwzqyUG9.css → NcDashboardWidget-CpstyXok.css} +13 -13
  183. package/dist/assets/{NcDashboardWidgetItem-JCtQhwhS.css → NcDashboardWidgetItem-Qe5SSOhA.css} +14 -14
  184. package/dist/assets/{NcDateTimePicker-Cs-VgGon.css → NcDateTimePicker-Aq9TnHYj.css} +8 -8
  185. package/dist/assets/{NcDialog-BR3cQR_R.css → NcDialog-j6_6dpiF.css} +15 -15
  186. package/dist/assets/{NcHeaderMenu-BbpDtHjf.css → NcHeaderMenu-CuAI7Fgb.css} +13 -13
  187. package/dist/assets/NcInputField-B7T0X2lM.css +166 -0
  188. package/dist/assets/NcListItem-Cah9oImZ.css +164 -0
  189. package/dist/assets/{NcListItemIcon-Cd4723rU.css → NcListItemIcon-DxPdaRV5.css} +14 -14
  190. package/dist/assets/{NcMentionBubble-B-xYaJDc.css → NcMentionBubble-C6t8od-_.css} +13 -10
  191. package/dist/assets/{NcModal-6bpKFk4w.css → NcModal-Ch7ovo9y.css} +69 -69
  192. package/dist/assets/{NcRelatedResourcesPanel-i_FBo7DY.css → NcRelatedResourcesPanel-BE9CQ8s8.css} +25 -25
  193. package/dist/assets/{NcRichContenteditable-BIclrp8v.css → NcRichContenteditable-CkvTrjfG.css} +13 -13
  194. package/dist/assets/{NcRichText-BKoK9ulg.css → NcRichText-BKnmtD0n.css} +4 -4
  195. package/dist/assets/{NcSelect-9AZOhTlS.css → NcSelect-BQt_SpyP.css} +1 -1
  196. package/dist/assets/{NcSettingsSection-B_Dat_E8.css → NcSettingsSection-DZwOPKg1.css} +11 -11
  197. package/dist/assets/{referencePickerModal-C_c_8fEM.css → referencePickerModal-9BcmmfUy.css} +36 -36
  198. package/dist/chunks/{GenColors-BvNpSI9g.mjs → GenColors-BV6-FB5-.mjs} +1 -1
  199. package/dist/chunks/{GenColors-BvNpSI9g.mjs.map → GenColors-BV6-FB5-.mjs.map} +1 -1
  200. package/dist/chunks/{GenColors-Cf5olCPx.cjs → GenColors-CzzMrdzl.cjs} +1 -1
  201. package/dist/chunks/{GenColors-Cf5olCPx.cjs.map → GenColors-CzzMrdzl.cjs.map} +1 -1
  202. package/dist/chunks/{NcActionButtonGroup-BO4eSfV4.cjs → NcActionButtonGroup-CIHtVerj.cjs} +1 -1
  203. package/dist/chunks/{NcActionButtonGroup-BO4eSfV4.cjs.map → NcActionButtonGroup-CIHtVerj.cjs.map} +1 -1
  204. package/dist/chunks/{NcActionButtonGroup-DCKhQnHH.mjs → NcActionButtonGroup-YZjkAQfi.mjs} +1 -1
  205. package/dist/chunks/{NcActionButtonGroup-DCKhQnHH.mjs.map → NcActionButtonGroup-YZjkAQfi.mjs.map} +1 -1
  206. package/dist/chunks/{NcActionInput-CEjCUwt0.cjs → NcActionInput-BolqgAyP.cjs} +7 -7
  207. package/dist/chunks/{NcActionInput-CEjCUwt0.cjs.map → NcActionInput-BolqgAyP.cjs.map} +1 -1
  208. package/dist/chunks/{NcActionInput-9zrp0_WC.mjs → NcActionInput-Dffj2gx5.mjs} +7 -7
  209. package/dist/chunks/{NcActionInput-9zrp0_WC.mjs.map → NcActionInput-Dffj2gx5.mjs.map} +1 -1
  210. package/dist/chunks/{NcActions-B4kN_x_I.cjs → NcActions-BanQsba7.cjs} +42 -15
  211. package/dist/chunks/NcActions-BanQsba7.cjs.map +1 -0
  212. package/dist/chunks/{NcActions-VXT4YqSd.mjs → NcActions-jYBYK6WE.mjs} +43 -16
  213. package/dist/chunks/NcActions-jYBYK6WE.mjs.map +1 -0
  214. package/dist/chunks/{NcAppContent-CoKCN5M3.cjs → NcAppContent-3ufgCG77.cjs} +5 -5
  215. package/dist/chunks/NcAppContent-3ufgCG77.cjs.map +1 -0
  216. package/dist/chunks/{NcAppContent-B-VnA8x6.mjs → NcAppContent-C4K-sTYm.mjs} +5 -5
  217. package/dist/chunks/NcAppContent-C4K-sTYm.mjs.map +1 -0
  218. package/dist/chunks/{NcAppNavigation-Bto5gXEz.cjs → NcAppNavigation-Dcf2w78V.cjs} +4 -4
  219. package/dist/chunks/NcAppNavigation-Dcf2w78V.cjs.map +1 -0
  220. package/dist/chunks/{NcAppNavigation-BoSCCzgq.mjs → NcAppNavigation-hx60VxfZ.mjs} +4 -4
  221. package/dist/chunks/NcAppNavigation-hx60VxfZ.mjs.map +1 -0
  222. package/dist/chunks/{NcAppNavigationCaption-D5IlWwqU.mjs → NcAppNavigationCaption-C5x4p-eV.mjs} +3 -3
  223. package/dist/chunks/NcAppNavigationCaption-C5x4p-eV.mjs.map +1 -0
  224. package/dist/chunks/{NcAppNavigationCaption-7V2xr2JU.cjs → NcAppNavigationCaption-Hb65-Hwg.cjs} +3 -3
  225. package/dist/chunks/NcAppNavigationCaption-Hb65-Hwg.cjs.map +1 -0
  226. package/dist/chunks/{NcAppNavigationItem-BvTE5-IF.mjs → NcAppNavigationItem-JGpx1LjC.mjs} +12 -11
  227. package/dist/chunks/NcAppNavigationItem-JGpx1LjC.mjs.map +1 -0
  228. package/dist/chunks/{NcAppNavigationItem-D0BY5hCQ.cjs → NcAppNavigationItem-heUPZili.cjs} +12 -11
  229. package/dist/chunks/NcAppNavigationItem-heUPZili.cjs.map +1 -0
  230. package/dist/chunks/{NcAppNavigationNewItem-DI3F9V41.cjs → NcAppNavigationNewItem-Bk8Qo0Yf.cjs} +3 -3
  231. package/dist/chunks/NcAppNavigationNewItem-Bk8Qo0Yf.cjs.map +1 -0
  232. package/dist/chunks/{NcAppNavigationNewItem-a_KNNkkf.mjs → NcAppNavigationNewItem-U7nmcavB.mjs} +3 -3
  233. package/dist/chunks/NcAppNavigationNewItem-U7nmcavB.mjs.map +1 -0
  234. package/dist/chunks/NcAppNavigationSearch-Ak-Cq3nx.mjs +106 -0
  235. package/dist/chunks/NcAppNavigationSearch-Ak-Cq3nx.mjs.map +1 -0
  236. package/dist/chunks/NcAppNavigationSearch-ClnL2j6U.cjs +105 -0
  237. package/dist/chunks/NcAppNavigationSearch-ClnL2j6U.cjs.map +1 -0
  238. package/dist/chunks/{NcAppNavigationSettings-CkdNLEGg.cjs → NcAppNavigationSettings-DABhRWZL.cjs} +5 -5
  239. package/dist/chunks/{NcAppNavigationSettings-ZYhJhZza.mjs.map → NcAppNavigationSettings-DABhRWZL.cjs.map} +1 -1
  240. package/dist/chunks/{NcAppNavigationSettings-ZYhJhZza.mjs → NcAppNavigationSettings-DtpUeFhv.mjs} +5 -5
  241. package/dist/chunks/{NcAppNavigationSettings-CkdNLEGg.cjs.map → NcAppNavigationSettings-DtpUeFhv.mjs.map} +1 -1
  242. package/dist/chunks/{NcAppNavigationToggle-dTKw7Sw8.cjs → NcAppNavigationToggle-Ci9rArNU.cjs} +4 -4
  243. package/dist/chunks/{NcAppNavigationToggle-dHmyeRMf.mjs.map → NcAppNavigationToggle-Ci9rArNU.cjs.map} +1 -1
  244. package/dist/chunks/{NcAppNavigationToggle-dHmyeRMf.mjs → NcAppNavigationToggle-DTbZFYws.mjs} +4 -4
  245. package/dist/chunks/{NcAppNavigationToggle-dTKw7Sw8.cjs.map → NcAppNavigationToggle-DTbZFYws.mjs.map} +1 -1
  246. package/dist/chunks/{NcAppSettingsDialog-DB9IGg_1.cjs → NcAppSettingsDialog-DZcj5Hg3.cjs} +5 -5
  247. package/dist/chunks/{NcAppSettingsDialog-DB9IGg_1.cjs.map → NcAppSettingsDialog-DZcj5Hg3.cjs.map} +1 -1
  248. package/dist/chunks/{NcAppSettingsDialog-B_JHYQei.mjs → NcAppSettingsDialog-Dgqy88lj.mjs} +5 -5
  249. package/dist/chunks/{NcAppSettingsDialog-B_JHYQei.mjs.map → NcAppSettingsDialog-Dgqy88lj.mjs.map} +1 -1
  250. package/dist/chunks/{NcAppSidebar-DfMS3rRN.mjs → NcAppSidebar-CCL2-_-5.mjs} +31 -16
  251. package/dist/chunks/NcAppSidebar-CCL2-_-5.mjs.map +1 -0
  252. package/dist/chunks/{NcAppSidebar-Be2hX08l.cjs → NcAppSidebar-CfD7b5WF.cjs} +31 -16
  253. package/dist/chunks/NcAppSidebar-CfD7b5WF.cjs.map +1 -0
  254. package/dist/chunks/{NcAvatar-DrN_43xE.mjs → NcAvatar-CLQ7_AQw.mjs} +6 -6
  255. package/dist/chunks/{NcAvatar-DrN_43xE.mjs.map → NcAvatar-CLQ7_AQw.mjs.map} +1 -1
  256. package/dist/chunks/{NcAvatar-B1PwcHhO.cjs → NcAvatar-CjtwClIu.cjs} +6 -6
  257. package/dist/chunks/{NcAvatar-B1PwcHhO.cjs.map → NcAvatar-CjtwClIu.cjs.map} +1 -1
  258. package/dist/chunks/{NcBreadcrumb-C1VWgdNk.cjs → NcBreadcrumb-CDSQfqgy.cjs} +3 -3
  259. package/dist/chunks/{NcBreadcrumb-C1VWgdNk.cjs.map → NcBreadcrumb-CDSQfqgy.cjs.map} +1 -1
  260. package/dist/chunks/{NcBreadcrumb-BB7O3NvV.mjs → NcBreadcrumb-lCjBkeeU.mjs} +3 -3
  261. package/dist/chunks/{NcBreadcrumb-BB7O3NvV.mjs.map → NcBreadcrumb-lCjBkeeU.mjs.map} +1 -1
  262. package/dist/chunks/{NcBreadcrumbs-BRl8V6ie.mjs → NcBreadcrumbs-LgHb45DJ.mjs} +4 -4
  263. package/dist/chunks/NcBreadcrumbs-LgHb45DJ.mjs.map +1 -0
  264. package/dist/chunks/{NcBreadcrumbs-BZFTIrPp.cjs → NcBreadcrumbs-eOkyOf9_.cjs} +4 -4
  265. package/dist/chunks/NcBreadcrumbs-eOkyOf9_.cjs.map +1 -0
  266. package/dist/chunks/{NcCheckboxRadioSwitch-08IiPYnO.mjs → NcCheckboxRadioSwitch-BU-MnU4U.mjs} +11 -5
  267. package/dist/chunks/NcCheckboxRadioSwitch-BU-MnU4U.mjs.map +1 -0
  268. package/dist/chunks/{NcCheckboxRadioSwitch-BC-PCCMB.cjs → NcCheckboxRadioSwitch-BbMh0Uc8.cjs} +11 -5
  269. package/dist/chunks/NcCheckboxRadioSwitch-BbMh0Uc8.cjs.map +1 -0
  270. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_919d07b7_lang-D3PU8il5.mjs +3 -0
  271. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_919d07b7_lang-D3PU8il5.mjs.map +1 -0
  272. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_919d07b7_lang-D63ceZ-I.cjs +4 -0
  273. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_919d07b7_lang-D63ceZ-I.cjs.map +1 -0
  274. package/dist/chunks/NcCollectionList-Csni5btL.mjs +428 -0
  275. package/dist/chunks/NcCollectionList-Csni5btL.mjs.map +1 -0
  276. package/dist/chunks/NcCollectionList-DAeLF8Lc.cjs +430 -0
  277. package/dist/chunks/NcCollectionList-DAeLF8Lc.cjs.map +1 -0
  278. package/dist/chunks/{NcColorPicker-C5AAUZow.mjs → NcColorPicker-19JdVR99.mjs} +4 -4
  279. package/dist/chunks/{NcColorPicker-DQVfrnSU.cjs.map → NcColorPicker-19JdVR99.mjs.map} +1 -1
  280. package/dist/chunks/{NcColorPicker-DQVfrnSU.cjs → NcColorPicker-DuJJC4lB.cjs} +4 -4
  281. package/dist/chunks/{NcColorPicker-C5AAUZow.mjs.map → NcColorPicker-DuJJC4lB.cjs.map} +1 -1
  282. package/dist/chunks/{NcContent-DqUD53yw.cjs → NcContent-BPWplwmy.cjs} +2 -2
  283. package/dist/chunks/{NcContent-DqUD53yw.cjs.map → NcContent-BPWplwmy.cjs.map} +1 -1
  284. package/dist/chunks/{NcContent-DlpAl0Ng.mjs → NcContent-D2roywh0.mjs} +2 -2
  285. package/dist/chunks/{NcContent-DlpAl0Ng.mjs.map → NcContent-D2roywh0.mjs.map} +1 -1
  286. package/dist/chunks/{NcDashboardWidget-DHZ91zbH.cjs → NcDashboardWidget-CiQ9nKkn.cjs} +6 -6
  287. package/dist/chunks/{NcDashboardWidget-DHZ91zbH.cjs.map → NcDashboardWidget-CiQ9nKkn.cjs.map} +1 -1
  288. package/dist/chunks/{NcDashboardWidget-Bgws_A-4.mjs → NcDashboardWidget-eYMkaNge.mjs} +6 -6
  289. package/dist/chunks/{NcDashboardWidget-Bgws_A-4.mjs.map → NcDashboardWidget-eYMkaNge.mjs.map} +1 -1
  290. package/dist/chunks/{NcDashboardWidgetItem-7POJ_0UL.cjs → NcDashboardWidgetItem-BlmOcEja.cjs} +4 -4
  291. package/dist/chunks/{NcDashboardWidgetItem-7POJ_0UL.cjs.map → NcDashboardWidgetItem-BlmOcEja.cjs.map} +1 -1
  292. package/dist/chunks/{NcDashboardWidgetItem-yOTSuJJW.mjs → NcDashboardWidgetItem-BtIXF3nP.mjs} +4 -4
  293. package/dist/chunks/{NcDashboardWidgetItem-yOTSuJJW.mjs.map → NcDashboardWidgetItem-BtIXF3nP.mjs.map} +1 -1
  294. package/dist/chunks/{NcDateTime-DPpc-ffs.cjs → NcDateTime-C06to8gC.cjs} +1 -1
  295. package/dist/chunks/{NcDateTime-DPpc-ffs.cjs.map → NcDateTime-C06to8gC.cjs.map} +1 -1
  296. package/dist/chunks/{NcDateTime-DBvDI3ZP.mjs → NcDateTime-D63dAM9i.mjs} +1 -1
  297. package/dist/chunks/{NcDateTime-DBvDI3ZP.mjs.map → NcDateTime-D63dAM9i.mjs.map} +1 -1
  298. package/dist/chunks/{NcDialog-dCyByQCG.cjs → NcDialog-DGaf6Udc.cjs} +6 -4
  299. package/dist/chunks/{NcDialog-CDQmAtFa.mjs.map → NcDialog-DGaf6Udc.cjs.map} +1 -1
  300. package/dist/chunks/{NcDialog-CDQmAtFa.mjs → NcDialog-VincZ0XS.mjs} +6 -4
  301. package/dist/chunks/{NcDialog-dCyByQCG.cjs.map → NcDialog-VincZ0XS.mjs.map} +1 -1
  302. package/dist/chunks/{NcEmojiPicker-CEeN-AZM.mjs → NcEmojiPicker-C5QwBqju.mjs} +5 -5
  303. package/dist/chunks/{NcEmojiPicker-CEeN-AZM.mjs.map → NcEmojiPicker-C5QwBqju.mjs.map} +1 -1
  304. package/dist/chunks/{NcEmojiPicker-CNiHLIbP.cjs → NcEmojiPicker-C6N8_T2s.cjs} +5 -5
  305. package/dist/chunks/{NcEmojiPicker-CNiHLIbP.cjs.map → NcEmojiPicker-C6N8_T2s.cjs.map} +1 -1
  306. package/dist/chunks/{NcHeaderMenu-C7peZLEA.cjs → NcHeaderMenu-D-Jo3l41.cjs} +4 -4
  307. package/dist/chunks/NcHeaderMenu-D-Jo3l41.cjs.map +1 -0
  308. package/dist/chunks/{NcHeaderMenu-BEp6lzuy.mjs → NcHeaderMenu-Da6Ob-6t.mjs} +4 -4
  309. package/dist/chunks/NcHeaderMenu-Da6Ob-6t.mjs.map +1 -0
  310. package/dist/chunks/{NcInputConfirmCancel-BojmHIVt.mjs → NcInputConfirmCancel-CHbaA18n.mjs} +2 -2
  311. package/dist/chunks/{NcInputConfirmCancel-BojmHIVt.mjs.map → NcInputConfirmCancel-CHbaA18n.mjs.map} +1 -1
  312. package/dist/chunks/{NcInputConfirmCancel-CD8NS4jj.cjs → NcInputConfirmCancel-Cabqh9yr.cjs} +2 -2
  313. package/dist/chunks/{NcInputConfirmCancel-CD8NS4jj.cjs.map → NcInputConfirmCancel-Cabqh9yr.cjs.map} +1 -1
  314. package/dist/chunks/{NcListItem-PX9C1UU4.mjs → NcListItem-0EnLrbng.mjs} +5 -5
  315. package/dist/chunks/NcListItem-0EnLrbng.mjs.map +1 -0
  316. package/dist/chunks/{NcListItem-Bt5RbZT6.cjs → NcListItem-BfbxhMcD.cjs} +5 -5
  317. package/dist/chunks/NcListItem-BfbxhMcD.cjs.map +1 -0
  318. package/dist/chunks/{NcListItemIcon-CSD8rRYj.cjs → NcListItemIcon-57iRCVpy.cjs} +4 -4
  319. package/dist/chunks/{NcListItemIcon-CSD8rRYj.cjs.map → NcListItemIcon-57iRCVpy.cjs.map} +1 -1
  320. package/dist/chunks/{NcListItemIcon-NtOXrncP.mjs → NcListItemIcon-Bw6Wddoz.mjs} +4 -4
  321. package/dist/chunks/{NcListItemIcon-NtOXrncP.mjs.map → NcListItemIcon-Bw6Wddoz.mjs.map} +1 -1
  322. package/dist/chunks/{NcPasswordField-Y4-be0L7.cjs → NcPasswordField-Iq8u9C_A.cjs} +2 -2
  323. package/dist/chunks/{NcPasswordField-Y4-be0L7.cjs.map → NcPasswordField-Iq8u9C_A.cjs.map} +1 -1
  324. package/dist/chunks/{NcPasswordField-XxjYVmM9.mjs → NcPasswordField-U7jnnuI6.mjs} +2 -2
  325. package/dist/chunks/{NcPasswordField-XxjYVmM9.mjs.map → NcPasswordField-U7jnnuI6.mjs.map} +1 -1
  326. package/dist/chunks/{NcRelatedResourcesPanel-Dlf-t8iR.cjs → NcRelatedResourcesPanel-CHMgVvv8.cjs} +7 -7
  327. package/dist/chunks/NcRelatedResourcesPanel-CHMgVvv8.cjs.map +1 -0
  328. package/dist/chunks/{NcRelatedResourcesPanel-wFENPmmn.mjs → NcRelatedResourcesPanel-TaYxpT6y.mjs} +7 -7
  329. package/dist/chunks/NcRelatedResourcesPanel-TaYxpT6y.mjs.map +1 -0
  330. package/dist/chunks/{NcRichContenteditable-DdG9-ftG.cjs → NcRichContenteditable-B32ivG6v.cjs} +14 -11
  331. package/dist/chunks/{NcRichContenteditable-DdG9-ftG.cjs.map → NcRichContenteditable-B32ivG6v.cjs.map} +1 -1
  332. package/dist/chunks/{NcRichContenteditable-BGW5Ut1z.mjs → NcRichContenteditable-Jk627HvF.mjs} +14 -11
  333. package/dist/chunks/{NcRichContenteditable-BGW5Ut1z.mjs.map → NcRichContenteditable-Jk627HvF.mjs.map} +1 -1
  334. package/dist/chunks/{NcRichText-B0CKR0jj.cjs → NcRichText-DhS9L0ia.cjs} +14 -6
  335. package/dist/chunks/NcRichText-DhS9L0ia.cjs.map +1 -0
  336. package/dist/chunks/{NcRichText-D3knHFLh.mjs → NcRichText-rgX1D4Mv.mjs} +14 -6
  337. package/dist/chunks/NcRichText-rgX1D4Mv.mjs.map +1 -0
  338. package/dist/chunks/{NcSelect-BXjYMf6X.cjs → NcSelect-CFkeC89U.cjs} +4 -4
  339. package/dist/chunks/{NcSelect-BVltxWdw.mjs.map → NcSelect-CFkeC89U.cjs.map} +1 -1
  340. package/dist/chunks/{NcSelect-BVltxWdw.mjs → NcSelect-VXa9BD3h.mjs} +4 -4
  341. package/dist/chunks/{NcSelect-BXjYMf6X.cjs.map → NcSelect-VXa9BD3h.mjs.map} +1 -1
  342. package/dist/chunks/{NcSelectTags-DzNoReBn.cjs → NcSelectTags-BGqJO7nz.cjs} +2 -2
  343. package/dist/chunks/{NcSelectTags-DzNoReBn.cjs.map → NcSelectTags-BGqJO7nz.cjs.map} +1 -1
  344. package/dist/chunks/{NcSelectTags-BA6aGEca.mjs → NcSelectTags-CnMksmUz.mjs} +2 -2
  345. package/dist/chunks/{NcSelectTags-BA6aGEca.mjs.map → NcSelectTags-CnMksmUz.mjs.map} +1 -1
  346. package/dist/chunks/{NcSettingsInputText-CXURkBMD.mjs → NcSettingsInputText-6NUV0AUU.mjs} +2 -2
  347. package/dist/chunks/{NcSettingsInputText-CXURkBMD.mjs.map → NcSettingsInputText-6NUV0AUU.mjs.map} +1 -1
  348. package/dist/chunks/{NcSettingsInputText-B3aogzD0.cjs → NcSettingsInputText-BHQoBpdB.cjs} +2 -2
  349. package/dist/chunks/{NcSettingsInputText-B3aogzD0.cjs.map → NcSettingsInputText-BHQoBpdB.cjs.map} +1 -1
  350. package/dist/chunks/{NcSettingsSection-PZ3JkBWO.mjs → NcSettingsSection-HExFhUqF.mjs} +4 -4
  351. package/dist/chunks/{NcSettingsSection-B8Nn29kV.cjs.map → NcSettingsSection-HExFhUqF.mjs.map} +1 -1
  352. package/dist/chunks/{NcSettingsSection-B8Nn29kV.cjs → NcSettingsSection-NrhuTTW4.cjs} +4 -4
  353. package/dist/chunks/{NcSettingsSection-PZ3JkBWO.mjs.map → NcSettingsSection-NrhuTTW4.cjs.map} +1 -1
  354. package/dist/chunks/{NcSettingsSelectGroup-Z3yYfNTs.mjs → NcSettingsSelectGroup-BvSwvGmQ.mjs} +3 -3
  355. package/dist/chunks/{NcSettingsSelectGroup-Z3yYfNTs.mjs.map → NcSettingsSelectGroup-BvSwvGmQ.mjs.map} +1 -1
  356. package/dist/chunks/{NcSettingsSelectGroup-k5AMJoPl.cjs → NcSettingsSelectGroup-DKwhOABo.cjs} +3 -3
  357. package/dist/chunks/{NcSettingsSelectGroup-k5AMJoPl.cjs.map → NcSettingsSelectGroup-DKwhOABo.cjs.map} +1 -1
  358. package/dist/chunks/{NcTextField-C8iERu7z.mjs → NcTextField-DCDVcnqT.mjs} +2 -2
  359. package/dist/chunks/NcTextField-DCDVcnqT.mjs.map +1 -0
  360. package/dist/chunks/{NcTextField-Y_QNDoeN.cjs → NcTextField-DMo1G8i6.cjs} +2 -2
  361. package/dist/chunks/NcTextField-DMo1G8i6.cjs.map +1 -0
  362. package/dist/chunks/{NcTimezonePicker-BlnrXG8A.mjs → NcTimezonePicker-CTNhHwMc.mjs} +4 -4
  363. package/dist/chunks/{NcTimezonePicker-BlnrXG8A.mjs.map → NcTimezonePicker-CTNhHwMc.mjs.map} +1 -1
  364. package/dist/chunks/{NcTimezonePicker-DDNT7-mK.cjs → NcTimezonePicker-aP3TJBd2.cjs} +4 -4
  365. package/dist/chunks/{NcTimezonePicker-DDNT7-mK.cjs.map → NcTimezonePicker-aP3TJBd2.cjs.map} +1 -1
  366. package/dist/chunks/{NcUserBubble-BiLpvdja.mjs → NcUserBubble-CT56m7hy.mjs} +1 -1
  367. package/dist/chunks/{NcUserBubble-BiLpvdja.mjs.map → NcUserBubble-CT56m7hy.mjs.map} +1 -1
  368. package/dist/chunks/{NcUserBubble-eXO4wtN5.cjs → NcUserBubble-CTJW09AG.cjs} +1 -1
  369. package/dist/chunks/{NcUserBubble-eXO4wtN5.cjs.map → NcUserBubble-CTJW09AG.cjs.map} +1 -1
  370. package/dist/chunks/{NcUserStatusIcon-DLhfp6bb.mjs → NcUserStatusIcon-Bw4HYlgZ.mjs} +3 -3
  371. package/dist/chunks/{NcUserStatusIcon-DLhfp6bb.mjs.map → NcUserStatusIcon-Bw4HYlgZ.mjs.map} +1 -1
  372. package/dist/chunks/{NcUserStatusIcon-J509k6M1.cjs → NcUserStatusIcon-DAsG7fFc.cjs} +3 -3
  373. package/dist/chunks/{NcUserStatusIcon-J509k6M1.cjs.map → NcUserStatusIcon-DAsG7fFc.cjs.map} +1 -1
  374. package/dist/chunks/{ScopeComponent-BJmRUKzI.mjs → ScopeComponent-C0xOBUg-.mjs} +1 -1
  375. package/dist/chunks/{ScopeComponent-BJmRUKzI.mjs.map → ScopeComponent-C0xOBUg-.mjs.map} +1 -1
  376. package/dist/chunks/{ScopeComponent-Dn9AdAJf.cjs → ScopeComponent-p6wwuGWn.cjs} +1 -1
  377. package/dist/chunks/{ScopeComponent-Dn9AdAJf.cjs.map → ScopeComponent-p6wwuGWn.cjs.map} +1 -1
  378. package/dist/chunks/_l10n-CG5VZvYT.mjs +130 -0
  379. package/dist/chunks/_l10n-CG5VZvYT.mjs.map +1 -0
  380. package/dist/chunks/_l10n-DdIq5MvQ.cjs +129 -0
  381. package/dist/chunks/{_l10n-BGF_R72e.cjs.map → _l10n-DdIq5MvQ.cjs.map} +1 -1
  382. package/dist/chunks/actionGlobal-DqVa7c7G.mjs.map +1 -1
  383. package/dist/chunks/actionGlobal-L0Ls8tPJ.cjs.map +1 -1
  384. package/dist/chunks/{index-CVcTbcD3.mjs → index-DbA2OZyf.mjs} +2 -2
  385. package/dist/chunks/index-DbA2OZyf.mjs.map +1 -0
  386. package/dist/chunks/{index-C8XDBNYC.cjs → index-oIpl1nrk.cjs} +2 -2
  387. package/dist/chunks/index-oIpl1nrk.cjs.map +1 -0
  388. package/dist/chunks/{referencePickerModal-D7ZD0avR.cjs → referencePickerModal-Dk80B426.cjs} +15 -16
  389. package/dist/chunks/referencePickerModal-Dk80B426.cjs.map +1 -0
  390. package/dist/chunks/{referencePickerModal-CGhrhjCk.mjs → referencePickerModal-X5iEJq4e.mjs} +15 -16
  391. package/dist/chunks/referencePickerModal-X5iEJq4e.mjs.map +1 -0
  392. package/dist/chunks/{usernameToColor-BKMu6XL_.cjs → usernameToColor-B18lWdWj.cjs} +1 -1
  393. package/dist/chunks/{usernameToColor-BKMu6XL_.cjs.map → usernameToColor-B18lWdWj.cjs.map} +1 -1
  394. package/dist/chunks/{usernameToColor-BkmF7_85.mjs → usernameToColor-BlQigKGC.mjs} +1 -1
  395. package/dist/chunks/{usernameToColor-BkmF7_85.mjs.map → usernameToColor-BlQigKGC.mjs.map} +1 -1
  396. package/dist/components/NcCollectionList/service.d.ts +47 -0
  397. package/dist/composables/actions/useActionText.d.ts +14 -0
  398. package/dist/index.cjs +50 -42
  399. package/dist/index.cjs.map +1 -1
  400. package/dist/index.mjs +53 -45
  401. package/dist/index.mjs.map +1 -1
  402. package/package.json +4 -2
  403. package/dist/assets/NcActionInput-K-aWGceI.css +0 -222
  404. package/dist/assets/NcActionTextEditable-BIjM-JsZ.css +0 -238
  405. package/dist/assets/NcButton-BlkIlpQf.css +0 -191
  406. package/dist/assets/NcInputField-CyNcetxP.css +0 -164
  407. package/dist/assets/NcListItem-DTaecNLV.css +0 -156
  408. package/dist/chunks/NcActions-B4kN_x_I.cjs.map +0 -1
  409. package/dist/chunks/NcActions-VXT4YqSd.mjs.map +0 -1
  410. package/dist/chunks/NcAppContent-B-VnA8x6.mjs.map +0 -1
  411. package/dist/chunks/NcAppContent-CoKCN5M3.cjs.map +0 -1
  412. package/dist/chunks/NcAppNavigation-BoSCCzgq.mjs.map +0 -1
  413. package/dist/chunks/NcAppNavigation-Bto5gXEz.cjs.map +0 -1
  414. package/dist/chunks/NcAppNavigationCaption-7V2xr2JU.cjs.map +0 -1
  415. package/dist/chunks/NcAppNavigationCaption-D5IlWwqU.mjs.map +0 -1
  416. package/dist/chunks/NcAppNavigationItem-BvTE5-IF.mjs.map +0 -1
  417. package/dist/chunks/NcAppNavigationItem-D0BY5hCQ.cjs.map +0 -1
  418. package/dist/chunks/NcAppNavigationNewItem-DI3F9V41.cjs.map +0 -1
  419. package/dist/chunks/NcAppNavigationNewItem-a_KNNkkf.mjs.map +0 -1
  420. package/dist/chunks/NcAppSidebar-Be2hX08l.cjs.map +0 -1
  421. package/dist/chunks/NcAppSidebar-DfMS3rRN.mjs.map +0 -1
  422. package/dist/chunks/NcBreadcrumbs-BRl8V6ie.mjs.map +0 -1
  423. package/dist/chunks/NcBreadcrumbs-BZFTIrPp.cjs.map +0 -1
  424. package/dist/chunks/NcCheckboxRadioSwitch-08IiPYnO.mjs.map +0 -1
  425. package/dist/chunks/NcCheckboxRadioSwitch-BC-PCCMB.cjs.map +0 -1
  426. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_45bd1a5d_lang-DM3kps3m.cjs +0 -4
  427. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_45bd1a5d_lang-DM3kps3m.cjs.map +0 -1
  428. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_45bd1a5d_lang-DP6Ws4da.mjs +0 -3
  429. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_45bd1a5d_lang-DP6Ws4da.mjs.map +0 -1
  430. package/dist/chunks/NcHeaderMenu-BEp6lzuy.mjs.map +0 -1
  431. package/dist/chunks/NcHeaderMenu-C7peZLEA.cjs.map +0 -1
  432. package/dist/chunks/NcListItem-Bt5RbZT6.cjs.map +0 -1
  433. package/dist/chunks/NcListItem-PX9C1UU4.mjs.map +0 -1
  434. package/dist/chunks/NcRelatedResourcesPanel-Dlf-t8iR.cjs.map +0 -1
  435. package/dist/chunks/NcRelatedResourcesPanel-wFENPmmn.mjs.map +0 -1
  436. package/dist/chunks/NcRichText-B0CKR0jj.cjs.map +0 -1
  437. package/dist/chunks/NcRichText-D3knHFLh.mjs.map +0 -1
  438. package/dist/chunks/NcTextField-C8iERu7z.mjs.map +0 -1
  439. package/dist/chunks/NcTextField-Y_QNDoeN.cjs.map +0 -1
  440. package/dist/chunks/_l10n-B6zipH_A.mjs +0 -122
  441. package/dist/chunks/_l10n-B6zipH_A.mjs.map +0 -1
  442. package/dist/chunks/_l10n-BGF_R72e.cjs +0 -121
  443. package/dist/chunks/index-C8XDBNYC.cjs.map +0 -1
  444. package/dist/chunks/index-CVcTbcD3.mjs.map +0 -1
  445. package/dist/chunks/referencePickerModal-CGhrhjCk.mjs.map +0 -1
  446. package/dist/chunks/referencePickerModal-D7ZD0avR.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppNavigationSearch-ClnL2j6U.cjs","sources":["../../src/components/NcAppNavigationSearch/NcAppNavigationSearch.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\n```vue\n<template>\n\t<div class=\"styleguide-wrapper\">\n\t\t<NcContent app-name=\"styleguide-app-navigation\" class=\"content-styleguidist\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #search>\n\t\t\t\t\t<NcAppNavigationSearch v-model=\"searchQuery\">\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActions aria-label=\"Filters\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconFilter :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t<IconAccount :size=\"20\" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\tFilter by name\n\t\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t<IconCalendarAccount :size=\"20\" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\tFilter by year\n\t\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t</NcActions>\n\t\t\t\t\t\t\t<NcButton aria-label=\"Search globally\" type=\"tertiary\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconSearchGlobal :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationSearch>\n\t\t\t\t</template>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationItem name=\"First navigation entry\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconStar :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationItem>\n\t\t\t\t\t<NcAppNavigationItem name=\"Second navigation entry\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconStar :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationItem>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t\t<NcAppContent>\n\t\t\t\t<ul class=\"fake-content\">\n\t\t\t\t\t<li>Search query: {{ searchQuery }}</li>\n\t\t\t\t\t<li v-for=\"(item, index) in items\" :key=\"index\">\n\t\t\t\t\t\t{{ item }}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</NcAppContent>\n\t\t</NcContent>\n\t</div>\n</template>\n<script>\nimport IconAccount from 'vue-material-design-icons/Account.vue'\nimport IconCalendarAccount from 'vue-material-design-icons/CalendarAccount.vue'\nimport IconFilter from 'vue-material-design-icons/Filter.vue'\nimport IconSearchGlobal from 'vue-material-design-icons/CloudSearch.vue'\nimport IconStar from 'vue-material-design-icons/Star.vue'\n\nconst exampleItem = ['Mary', 'Patricia', 'James', 'Michael']\n\nexport default {\n\tcomponents: {\n\t\tIconAccount,\n\t\tIconCalendarAccount,\n\t\tIconFilter,\n\t\tIconSearchGlobal,\n\t\tIconStar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsearchQuery: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\titems() {\n\t\t\treturn exampleItem.filter((item) => item.toLocaleLowerCase().includes(this.searchQuery.toLocaleLowerCase()))\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n/* This styles just mock NcContent and NcAppContent */\n.content-styleguidist {\n\tposition: relative !important;\n\tmargin: 0 !important;\n\t/* prevent jumping */\n\tmin-height: 200px;\n}\n\n.content-styleguidist > * {\n\theight: auto;\n}\n\n.fake-content {\n\tpadding: var(--app-navigation-padding);\n\tpadding-top: calc(2 * var(--app-navigation-padding) + var(--default-clickable-area));\n}\n\n.styleguide-wrapper {\n\tbackground-color: var(--color-background-plain);\n\tpadding: var(--body-container-margin);\n}\n</style>\n```\n</docs>\n<template>\n\t<div class=\"app-navigation-search\"\n\t\t:class=\"{\n\t\t\t'app-navigation-search--has-actions': hasActions(),\n\t\t}\">\n\t\t<NcInputField ref=\"inputElement\"\n\t\t\t:aria-label=\"label\"\n\t\t\tclass=\"app-navigation-search__input\"\n\t\t\tlabel-outside\n\t\t\t:placeholder=\"placeholder ?? label\"\n\t\t\tshow-trailing-button\n\t\t\t:trailing-button-label=\"t('Clear search')\"\n\t\t\ttype=\"search\"\n\t\t\t:value=\"modelValue\"\n\t\t\t@update:value=\"$emit('update:modelValue', $event)\"\n\t\t\t@trailing-button-click=\"onCloseSearch\">\n\t\t\t<template #trailing-button-icon>\n\t\t\t\t<IconClose :size=\"20\" />\n\t\t\t</template>\n\t\t</NcInputField>\n\t\t<div v-if=\"hasActions()\"\n\t\t\tref=\"actionsContainer\"\n\t\t\tclass=\"app-navigation-search__actions\"\n\t\t\t:class=\"{\n\t\t\t\t'app-navigation-search__actions--hidden': !showActions,\n\t\t\t\t'hidden-visually': hideActions,\n\t\t\t}\">\n\t\t\t<slot name=\"actions\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup>\nimport { useFocusWithin } from '@vueuse/core'\nimport { ref, nextTick, useSlots, watch } from 'vue'\nimport { t } from '../../l10n.js'\n\nimport IconClose from 'vue-material-design-icons/Close.vue'\nimport NcInputField from '../NcInputField/NcInputField.vue'\n\ndefineProps({\n\t/**\n\t * Current search input\n\t */\n\tmodelValue: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\t/**\n\t * Text used to label the search input\n\t */\n\tlabel: {\n\t\ttype: String,\n\t\tdefault: t('Search…'),\n\t},\n\n\t/**\n\t * Placeholder of the search input\n\t * By default the value of `label` is used.\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: null,\n\t},\n})\n\nconst emit = defineEmits(['update:modelValue'])\nconst slots = useSlots()\n\nconst inputElement = ref()\nconst { focused: inputHasFocus } = useFocusWithin(inputElement)\n\n/** Timeout used to define when the search input is fully expanded */\nconst transitionTimeout = Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue('--animation-quick')) || 100\n\n/**\n * @type {import('vue').Ref<HTMLDivElement>}\n */\nconst actionsContainer = ref()\nconst hasActions = () => !!slots.actions\nconst showActions = ref(true)\nconst timeoutId = ref()\n/** This is used to hide the actions after the transition is done */\nconst hideActions = ref(false)\nwatch(inputHasFocus, () => {\n\tshowActions.value = !inputHasFocus.value\n})\nwatch(showActions, (show) => {\n\twindow.clearTimeout(timeoutId.value)\n\tif (show) {\n\t\thideActions.value = false\n\t} else {\n\t\t// If the transition is done, we fully hide the actions visually\n\t\twindow.setTimeout(() => {\n\t\t\thideActions.value = !show\n\t\t}, transitionTimeout)\n\t}\n})\n\n/**\n * Handle close the search\n */\nfunction onCloseSearch() {\n\temit('update:modelValue', '')\n\tif (hasActions()) {\n\t\tshowActions.value = true\n\t\tnextTick(() => actionsContainer.value.querySelector('button')?.focus())\n\t}\n}\n</script>\n\n<script>\nexport default {\n\tname: 'NcAppNavigationSearch',\n\tmodel: {\n\t\tevent: 'update:modelValue',\n\t\tprop: 'modelValue',\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.app-navigation-search {\n\tdisplay: flex;\n\tgap: var(--app-navigation-padding);\n\tpadding: var(--app-navigation-padding);\n\n\t&--has-actions &__input {\n\t\tflex-grow: 1;\n\t\tz-index: 3;\n\t}\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tgap: var(--default-grid-baseline);\n\n\t\tmargin-inline-start: 0;\n\t\tmax-width: calc(2 * var(--default-clickable-area) + var(--default-grid-baseline));\n\t\tmax-height: var(--default-clickable-area);\n\n\t\ttransition: margin-inline-start var(--animation-quick);\n\n\t\t&--hidden {\n\t\t\tmargin-inline-start: calc(-1 * var(--default-clickable-area));\n\t\t}\n\t}\n\n\t&__input {\n\t\t// This is a fallback for legacy version (Nextcloud 29 and older) so that we keep the pill like design there\n\t\t--input-border-radius: var(--border-radius-element, var(--border-radius-pill)) !important;\n\t}\n}\n</style>\n"],"names":["useSlots","ref","useFocusWithin","watch","nextTick"],"mappings":";;;;;;;;AAyOA,MAAA,cAAe;AAAA,EACd,MAAM;AAAA,EACN,OAAO;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACN;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnDA,UAAM,QAAQA,IAAAA,SAAU;AAExB,UAAM,eAAeC,IAAAA,IAAK;AAC1B,UAAM,EAAE,SAAS,kBAAkBC,KAAAA,eAAe,YAAY;AAG9D,UAAM,oBAAoB,OAAO,SAAS,OAAO,iBAAiB,OAAO,SAAS,IAAI,EAAE,iBAAiB,mBAAmB,CAAC,KAAK;AAKlI,UAAM,mBAAmBD,IAAAA,IAAK;AAC9B,UAAM,aAAa,MAAM,CAAC,CAAC,MAAM;AACjC,UAAM,cAAcA,IAAG,IAAC,IAAI;AAC5B,UAAM,YAAYA,IAAAA,IAAK;AAEvB,UAAM,cAAcA,IAAG,IAAC,KAAK;AAC7BE,QAAK,MAAC,eAAe,MAAM;AAC1B,kBAAY,QAAQ,CAAC,cAAc;AAAA,IACpC,CAAC;AACDA,QAAAA,MAAM,aAAa,CAAC,SAAS;AAC5B,aAAO,aAAa,UAAU,KAAK;AACnC,UAAI,MAAM;AACT,oBAAY,QAAQ;AAAA,MACtB,OAAQ;AAEN,eAAO,WAAW,MAAM;AACvB,sBAAY,QAAQ,CAAC;AAAA,QACrB,GAAE,iBAAiB;AAAA,MACpB;AAAA,IACF,CAAC;AAKD,aAAS,gBAAgB;AACxB,WAAK,qBAAqB,EAAE;AAC5B,UAAI,WAAU,GAAI;AACjB,oBAAY,QAAQ;AACpBC,YAAQ,SAAC,MAAM;;AAAA,wCAAiB,MAAM,cAAc,QAAQ,MAA7C,mBAAgD;AAAA,SAAO;AAAA,MACtE;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
- require('../assets/NcMentionBubble-B-xYaJDc.css');
2
- require('../assets/NcAppNavigationSettings-CbV2ZQ9_.css');
1
+ require('../assets/NcMentionBubble-C6t8od-_.css');
2
+ require('../assets/NcAppNavigationSettings-AzpTlUym.css');
3
3
  "use strict";
4
- const _l10n = require("./_l10n-BGF_R72e.cjs");
4
+ const _l10n = require("./_l10n-DdIq5MvQ.cjs");
5
5
  const Mixins_clickOutsideOptions = require("../Mixins/clickOutsideOptions.cjs");
6
6
  require("../Composables/useIsFullscreen.cjs");
7
7
  require("../Composables/useIsMobile.cjs");
@@ -16,7 +16,7 @@ require("@nextcloud/auth");
16
16
  require("@nextcloud/axios");
17
17
  require("@nextcloud/capabilities");
18
18
  const components = require("@vueuse/components");
19
- _l10n.register(_l10n.t39);
19
+ _l10n.register(_l10n.t43);
20
20
  const _sfc_main$1 = {
21
21
  name: "CogIcon",
22
22
  emits: ["click"],
@@ -102,7 +102,7 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
102
102
  _sfc_staticRenderFns,
103
103
  false,
104
104
  null,
105
- "88874174",
105
+ "981e215c",
106
106
  null,
107
107
  null
108
108
  );
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigationSettings-ZYhJhZza.mjs","sources":["../../node_modules/vue-material-design-icons/Cog.vue","../../src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon cog-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div id=\"app-settings\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:class=\"{ open }\">\n\t\t<div id=\"app-settings__header\">\n\t\t\t<button class=\"settings-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t\taria-controls=\"app-settings__content\"\n\t\t\t\t@click=\"toggleMenu\">\n\t\t\t\t<Cog class=\"settings-button__icon\" :size=\"20\" />\n\t\t\t\t<span class=\"settings-button__label\">{{ name }}</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<Transition name=\"slide-up\">\n\t\t\t<div v-show=\"open\" id=\"app-settings__content\">\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</Transition>\n\t</div>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport { clickOutsideOptions } from '../../mixins/index.js'\n\nimport Cog from 'vue-material-design-icons/Cog.vue'\n\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\n\nexport default {\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tCog,\n\t},\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: t('Settings'),\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\topen: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\t},\n\tmethods: {\n\t\ttoggleMenu() {\n\t\t\tthis.open = !this.open\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.open = false\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n#app-settings {\n\tmargin-top: auto;\n\tpadding: $app-navigation-settings-margin;\n\n\t&__header {\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $app-navigation-settings-margin $app-navigation-settings-margin $app-navigation-settings-margin;\n\n\t\t.settings-button {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 0;\n\t\t\theight: $clickable-area;\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbox-shadow: none;\n\t\t\tborder: 0;\n\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\ttext-align: left;\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: 100%;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tpadding-right: 14px;\n\t\t\tline-height: $clickable-area;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\n\t\t\t&__icon {\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmin-width: $clickable-area;\n\t\t\t}\n\t\t\t&__label {\n\t\t\t\toverflow: hidden;\n\t\t\t\tmax-width: 100%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: block;\n\t\tpadding: 10px;\n\n\t\t/* prevent scrolled contents from stopping too early */\n\t\tmargin-bottom: -$app-navigation-settings-margin;\n\n\t\t/* restrict height of settings and make scrollable */\n\t\tmax-height: 300px;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n.slide-up-leave-active,\n.slide-up-enter-active {\n\ttransition-duration: var(--animation-slow);\n\ttransition-property: max-height, padding;\n\toverflow-y: hidden !important;\n}\n\n.slide-up-enter,\n.slide-up-leave-to {\n\tmax-height: 0 !important;\n\tpadding: 0 10px !important;\n}\n\n</style>\n"],"names":["_sfc_main","ClickOutside"],"mappings":";;;;;;;;;;;;;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;ACDA,MAAA,YAAA;AAAA,EACA,YAAA;AAAA,IACA,cAAAC;AAAAA,EACA;AAAA,EACA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AACA,WAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,UAAA;AAAA,IACA,qBAAA;AACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,aAAA;AACA,WAAA,OAAA,CAAA,KAAA;AAAA,IACA;AAAA,IACA,YAAA;AACA,WAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"NcAppNavigationSettings-DABhRWZL.cjs","sources":["../../node_modules/vue-material-design-icons/Cog.vue","../../src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon cog-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div id=\"app-settings\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:class=\"{ open }\">\n\t\t<div id=\"app-settings__header\">\n\t\t\t<button class=\"settings-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t\taria-controls=\"app-settings__content\"\n\t\t\t\t@click=\"toggleMenu\">\n\t\t\t\t<Cog class=\"settings-button__icon\" :size=\"20\" />\n\t\t\t\t<span class=\"settings-button__label\">{{ name }}</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<Transition name=\"slide-up\">\n\t\t\t<div v-show=\"open\" id=\"app-settings__content\">\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</Transition>\n\t</div>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport { clickOutsideOptions } from '../../mixins/index.js'\n\nimport Cog from 'vue-material-design-icons/Cog.vue'\n\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\n\nexport default {\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tCog,\n\t},\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: t('Settings'),\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\topen: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\t},\n\tmethods: {\n\t\ttoggleMenu() {\n\t\t\tthis.open = !this.open\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.open = false\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n#app-settings {\n\tmargin-top: auto;\n\tpadding: $app-navigation-settings-margin;\n\n\t&__header {\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $app-navigation-settings-margin $app-navigation-settings-margin $app-navigation-settings-margin;\n\n\t\t.settings-button {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 0;\n\t\t\theight: var(--default-clickable-area);\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tbackground-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t\tborder: 0;\n\t\t\tborder-radius: var(--body-container-radius);\n\t\t\ttext-align: left;\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: 100%;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tpadding-right: 14px;\n\t\t\tline-height: var(--default-clickable-area);\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\n\t\t\t&__icon {\n\t\t\t\twidth: var(--default-clickable-area);\n\t\t\t\theight: var(--default-clickable-area);\n\t\t\t\tmin-width: var(--default-clickable-area);\n\t\t\t}\n\t\t\t&__label {\n\t\t\t\toverflow: hidden;\n\t\t\t\tmax-width: 100%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: block;\n\t\tpadding: 10px;\n\n\t\t/* prevent scrolled contents from stopping too early */\n\t\tmargin-bottom: -$app-navigation-settings-margin;\n\n\t\t/* restrict height of settings and make scrollable */\n\t\tmax-height: 300px;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n.slide-up-leave-active,\n.slide-up-enter-active {\n\ttransition-duration: var(--animation-slow);\n\ttransition-property: max-height, padding;\n\toverflow-y: hidden !important;\n}\n\n.slide-up-enter,\n.slide-up-leave-to {\n\tmax-height: 0 !important;\n\tpadding: 0 10px !important;\n}\n\n</style>\n"],"names":["_sfc_main","ClickOutside","clickOutsideOptions","t"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;ACDA,MAAA,YAAA;AAAA,EACA,YAAA;AAAA,IACA,cAAAC,WAAA;AAAA,EACA;AAAA,EACA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,QAAA;AAAA,IACAC;AAAAA,EACA;AAAA,EACA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAAC,MAAA,EAAA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AACA,WAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,UAAA;AAAA,IACA,qBAAA;AACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,aAAA;AACA,WAAA,OAAA,CAAA,KAAA;AAAA,IACA;AAAA,IACA,YAAA;AACA,WAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
- import '../assets/NcMentionBubble-B-xYaJDc.css';
2
- import '../assets/NcAppNavigationSettings-CbV2ZQ9_.css';
3
- import { r as register, s as t39, a as t } from "./_l10n-B6zipH_A.mjs";
1
+ import '../assets/NcMentionBubble-C6t8od-_.css';
2
+ import '../assets/NcAppNavigationSettings-AzpTlUym.css';
3
+ import { r as register, v as t43, a as t } from "./_l10n-CG5VZvYT.mjs";
4
4
  import clickOutsideOptions from "../Mixins/clickOutsideOptions.mjs";
5
5
  import "../Composables/useIsFullscreen.mjs";
6
6
  import "../Composables/useIsMobile.mjs";
@@ -15,7 +15,7 @@ import "@nextcloud/auth";
15
15
  import "@nextcloud/axios";
16
16
  import "@nextcloud/capabilities";
17
17
  import { vOnClickOutside } from "@vueuse/components";
18
- register(t39);
18
+ register(t43);
19
19
  const _sfc_main$1 = {
20
20
  name: "CogIcon",
21
21
  emits: ["click"],
@@ -101,7 +101,7 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
101
101
  _sfc_staticRenderFns,
102
102
  false,
103
103
  null,
104
- "88874174",
104
+ "981e215c",
105
105
  null,
106
106
  null
107
107
  );
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigationSettings-CkdNLEGg.cjs","sources":["../../node_modules/vue-material-design-icons/Cog.vue","../../src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon cog-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div id=\"app-settings\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:class=\"{ open }\">\n\t\t<div id=\"app-settings__header\">\n\t\t\t<button class=\"settings-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t\taria-controls=\"app-settings__content\"\n\t\t\t\t@click=\"toggleMenu\">\n\t\t\t\t<Cog class=\"settings-button__icon\" :size=\"20\" />\n\t\t\t\t<span class=\"settings-button__label\">{{ name }}</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<Transition name=\"slide-up\">\n\t\t\t<div v-show=\"open\" id=\"app-settings__content\">\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</Transition>\n\t</div>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport { clickOutsideOptions } from '../../mixins/index.js'\n\nimport Cog from 'vue-material-design-icons/Cog.vue'\n\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\n\nexport default {\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tCog,\n\t},\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: t('Settings'),\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\topen: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\t},\n\tmethods: {\n\t\ttoggleMenu() {\n\t\t\tthis.open = !this.open\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.open = false\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n#app-settings {\n\tmargin-top: auto;\n\tpadding: $app-navigation-settings-margin;\n\n\t&__header {\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $app-navigation-settings-margin $app-navigation-settings-margin $app-navigation-settings-margin;\n\n\t\t.settings-button {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 0;\n\t\t\theight: $clickable-area;\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbox-shadow: none;\n\t\t\tborder: 0;\n\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\ttext-align: left;\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: 100%;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tpadding-right: 14px;\n\t\t\tline-height: $clickable-area;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\n\t\t\t&__icon {\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmin-width: $clickable-area;\n\t\t\t}\n\t\t\t&__label {\n\t\t\t\toverflow: hidden;\n\t\t\t\tmax-width: 100%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: block;\n\t\tpadding: 10px;\n\n\t\t/* prevent scrolled contents from stopping too early */\n\t\tmargin-bottom: -$app-navigation-settings-margin;\n\n\t\t/* restrict height of settings and make scrollable */\n\t\tmax-height: 300px;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n.slide-up-leave-active,\n.slide-up-enter-active {\n\ttransition-duration: var(--animation-slow);\n\ttransition-property: max-height, padding;\n\toverflow-y: hidden !important;\n}\n\n.slide-up-enter,\n.slide-up-leave-to {\n\tmax-height: 0 !important;\n\tpadding: 0 10px !important;\n}\n\n</style>\n"],"names":["_sfc_main","ClickOutside","clickOutsideOptions","t"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;ACDA,MAAA,YAAA;AAAA,EACA,YAAA;AAAA,IACA,cAAAC,WAAA;AAAA,EACA;AAAA,EACA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,QAAA;AAAA,IACAC;AAAAA,EACA;AAAA,EACA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAAC,MAAA,EAAA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AACA,WAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,UAAA;AAAA,IACA,qBAAA;AACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,aAAA;AACA,WAAA,OAAA,CAAA,KAAA;AAAA,IACA;AAAA,IACA,YAAA;AACA,WAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"NcAppNavigationSettings-DtpUeFhv.mjs","sources":["../../node_modules/vue-material-design-icons/Cog.vue","../../src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon cog-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div id=\"app-settings\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:class=\"{ open }\">\n\t\t<div id=\"app-settings__header\">\n\t\t\t<button class=\"settings-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t\taria-controls=\"app-settings__content\"\n\t\t\t\t@click=\"toggleMenu\">\n\t\t\t\t<Cog class=\"settings-button__icon\" :size=\"20\" />\n\t\t\t\t<span class=\"settings-button__label\">{{ name }}</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<Transition name=\"slide-up\">\n\t\t\t<div v-show=\"open\" id=\"app-settings__content\">\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</Transition>\n\t</div>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport { clickOutsideOptions } from '../../mixins/index.js'\n\nimport Cog from 'vue-material-design-icons/Cog.vue'\n\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\n\nexport default {\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tCog,\n\t},\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: t('Settings'),\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\topen: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\t},\n\tmethods: {\n\t\ttoggleMenu() {\n\t\t\tthis.open = !this.open\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.open = false\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n#app-settings {\n\tmargin-top: auto;\n\tpadding: $app-navigation-settings-margin;\n\n\t&__header {\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $app-navigation-settings-margin $app-navigation-settings-margin $app-navigation-settings-margin;\n\n\t\t.settings-button {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 0;\n\t\t\theight: var(--default-clickable-area);\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tbackground-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t\tborder: 0;\n\t\t\tborder-radius: var(--body-container-radius);\n\t\t\ttext-align: left;\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: 100%;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tpadding-right: 14px;\n\t\t\tline-height: var(--default-clickable-area);\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\n\t\t\t&__icon {\n\t\t\t\twidth: var(--default-clickable-area);\n\t\t\t\theight: var(--default-clickable-area);\n\t\t\t\tmin-width: var(--default-clickable-area);\n\t\t\t}\n\t\t\t&__label {\n\t\t\t\toverflow: hidden;\n\t\t\t\tmax-width: 100%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: block;\n\t\tpadding: 10px;\n\n\t\t/* prevent scrolled contents from stopping too early */\n\t\tmargin-bottom: -$app-navigation-settings-margin;\n\n\t\t/* restrict height of settings and make scrollable */\n\t\tmax-height: 300px;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n.slide-up-leave-active,\n.slide-up-enter-active {\n\ttransition-duration: var(--animation-slow);\n\ttransition-property: max-height, padding;\n\toverflow-y: hidden !important;\n}\n\n.slide-up-enter,\n.slide-up-leave-to {\n\tmax-height: 0 !important;\n\tpadding: 0 10px !important;\n}\n\n</style>\n"],"names":["_sfc_main","ClickOutside"],"mappings":";;;;;;;;;;;;;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;ACDA,MAAA,YAAA;AAAA,EACA,YAAA;AAAA,IACA,cAAAC;AAAAA,EACA;AAAA,EACA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AACA,WAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,UAAA;AAAA,IACA,qBAAA;AACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,aAAA;AACA,WAAA,OAAA,CAAA,KAAA;AAAA,IACA;AAAA,IACA,YAAA;AACA,WAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
@@ -1,9 +1,9 @@
1
- require('../assets/NcAppNavigationToggle-DzpFNOgZ.css');
1
+ require('../assets/NcAppNavigationToggle-DvYpNzHv.css');
2
2
  "use strict";
3
3
  const Components_NcButton = require("../Components/NcButton.cjs");
4
- const _l10n = require("./_l10n-BGF_R72e.cjs");
4
+ const _l10n = require("./_l10n-DdIq5MvQ.cjs");
5
5
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-DbFIE4_M.cjs");
6
- _l10n.register(_l10n.t17);
6
+ _l10n.register(_l10n.t19);
7
7
  const _sfc_main$2 = {
8
8
  name: "MenuIcon",
9
9
  emits: ["click"],
@@ -121,7 +121,7 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
121
121
  _sfc_staticRenderFns,
122
122
  false,
123
123
  null,
124
- "c7ea6d8e",
124
+ "b6024aba",
125
125
  null,
126
126
  null
127
127
  );
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigationToggle-dHmyeRMf.mjs","sources":["../../node_modules/vue-material-design-icons/Menu.vue","../../node_modules/vue-material-design-icons/MenuOpen.vue","../../src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-open-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuOpenIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"app-navigation-toggle-wrapper\">\n\t\t<NcButton class=\"app-navigation-toggle\"\n\t\t\ttype=\"tertiary\"\n\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t:aria-label=\"label\"\n\t\t\t:title=\"label\"\n\t\t\taria-controls=\"app-navigation-vue\"\n\t\t\t@click=\"toggleNavigation\">\n\t\t\t<template #icon>\n\t\t\t\t<MenuOpenIcon v-if=\"open\" :size=\"20\" />\n\t\t\t\t<MenuIcon v-else :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.js'\nimport { t } from '../../l10n.js'\n\nimport MenuIcon from 'vue-material-design-icons/Menu.vue'\nimport MenuOpenIcon from 'vue-material-design-icons/MenuOpen.vue'\n\nexport default {\n\tname: 'NcAppNavigationToggle',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tMenuIcon,\n\t\tMenuOpenIcon,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Tracks whether the toggle has been clicked or not.\n\t\t * If it has been clicked, switches between the different MenuIcons\n\t\t * and emits a boolean indicating its opened status\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['update:open'],\n\n\tcomputed: {\n\t\tlabel() {\n\t\t\treturn this.open ? t('Close navigation') : t('Open navigation')\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Once the toggle has been clicked, emits the toggle status\n\t\t * so parent components can gauge the status of the navigation button\n\t\t */\n\t\ttoggleNavigation() {\n\t\t\tthis.$emit('update:open', !this.open)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.app-navigation-toggle-wrapper {\n\tposition: absolute;\n\ttop: var(--app-navigation-padding);\n\tright: calc(0px - var(--app-navigation-padding));\n\tmargin-right: - $clickable-area;\n}\n\nbutton.app-navigation-toggle {\n\tbackground-color: var(--color-main-background);\n}\n</style>\n"],"names":["_sfc_main"],"mappings":";;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;ACPA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA,CAAA,aAAA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAA,KAAA,OAAA,EAAA,kBAAA,IAAA,EAAA,iBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AACA,WAAA,MAAA,eAAA,CAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"NcAppNavigationToggle-Ci9rArNU.cjs","sources":["../../node_modules/vue-material-design-icons/Menu.vue","../../node_modules/vue-material-design-icons/MenuOpen.vue","../../src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-open-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuOpenIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"app-navigation-toggle-wrapper\">\n\t\t<NcButton class=\"app-navigation-toggle\"\n\t\t\ttype=\"tertiary\"\n\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t:aria-label=\"label\"\n\t\t\t:title=\"label\"\n\t\t\taria-controls=\"app-navigation-vue\"\n\t\t\t@click=\"toggleNavigation\">\n\t\t\t<template #icon>\n\t\t\t\t<MenuOpenIcon v-if=\"open\" :size=\"20\" />\n\t\t\t\t<MenuIcon v-else :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.js'\nimport { t } from '../../l10n.js'\n\nimport MenuIcon from 'vue-material-design-icons/Menu.vue'\nimport MenuOpenIcon from 'vue-material-design-icons/MenuOpen.vue'\n\nexport default {\n\tname: 'NcAppNavigationToggle',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tMenuIcon,\n\t\tMenuOpenIcon,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Tracks whether the toggle has been clicked or not.\n\t\t * If it has been clicked, switches between the different MenuIcons\n\t\t * and emits a boolean indicating its opened status\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['update:open'],\n\n\tcomputed: {\n\t\tlabel() {\n\t\t\treturn this.open ? t('Close navigation') : t('Open navigation')\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Once the toggle has been clicked, emits the toggle status\n\t\t * so parent components can gauge the status of the navigation button\n\t\t */\n\t\ttoggleNavigation() {\n\t\t\tthis.$emit('update:open', !this.open)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.app-navigation-toggle-wrapper {\n\tposition: absolute;\n\ttop: var(--app-navigation-padding);\n\tright: calc(0px - var(--app-navigation-padding));\n\tmargin-right: calc(-1 * var(--default-clickable-area));\n}\n\nbutton.app-navigation-toggle {\n\tbackground-color: var(--color-main-background);\n}\n</style>\n"],"names":["_sfc_main","NcButton","t"],"mappings":";;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;ACPA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAC;AAAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA,CAAA,aAAA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAA,KAAA,OAAAC,MAAAA,EAAA,kBAAA,IAAAA,MAAA,EAAA,iBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AACA,WAAA,MAAA,eAAA,CAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1]}
@@ -1,8 +1,8 @@
1
- import '../assets/NcAppNavigationToggle-DzpFNOgZ.css';
1
+ import '../assets/NcAppNavigationToggle-DvYpNzHv.css';
2
2
  import NcButton from "../Components/NcButton.mjs";
3
- import { r as register, A as t17, a as t } from "./_l10n-B6zipH_A.mjs";
3
+ import { r as register, C as t19, a as t } from "./_l10n-CG5VZvYT.mjs";
4
4
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-D637Qkok.mjs";
5
- register(t17);
5
+ register(t19);
6
6
  const _sfc_main$2 = {
7
7
  name: "MenuIcon",
8
8
  emits: ["click"],
@@ -120,7 +120,7 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
120
120
  _sfc_staticRenderFns,
121
121
  false,
122
122
  null,
123
- "c7ea6d8e",
123
+ "b6024aba",
124
124
  null,
125
125
  null
126
126
  );
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigationToggle-dTKw7Sw8.cjs","sources":["../../node_modules/vue-material-design-icons/Menu.vue","../../node_modules/vue-material-design-icons/MenuOpen.vue","../../src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-open-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuOpenIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"app-navigation-toggle-wrapper\">\n\t\t<NcButton class=\"app-navigation-toggle\"\n\t\t\ttype=\"tertiary\"\n\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t:aria-label=\"label\"\n\t\t\t:title=\"label\"\n\t\t\taria-controls=\"app-navigation-vue\"\n\t\t\t@click=\"toggleNavigation\">\n\t\t\t<template #icon>\n\t\t\t\t<MenuOpenIcon v-if=\"open\" :size=\"20\" />\n\t\t\t\t<MenuIcon v-else :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.js'\nimport { t } from '../../l10n.js'\n\nimport MenuIcon from 'vue-material-design-icons/Menu.vue'\nimport MenuOpenIcon from 'vue-material-design-icons/MenuOpen.vue'\n\nexport default {\n\tname: 'NcAppNavigationToggle',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tMenuIcon,\n\t\tMenuOpenIcon,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Tracks whether the toggle has been clicked or not.\n\t\t * If it has been clicked, switches between the different MenuIcons\n\t\t * and emits a boolean indicating its opened status\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['update:open'],\n\n\tcomputed: {\n\t\tlabel() {\n\t\t\treturn this.open ? t('Close navigation') : t('Open navigation')\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Once the toggle has been clicked, emits the toggle status\n\t\t * so parent components can gauge the status of the navigation button\n\t\t */\n\t\ttoggleNavigation() {\n\t\t\tthis.$emit('update:open', !this.open)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.app-navigation-toggle-wrapper {\n\tposition: absolute;\n\ttop: var(--app-navigation-padding);\n\tright: calc(0px - var(--app-navigation-padding));\n\tmargin-right: - $clickable-area;\n}\n\nbutton.app-navigation-toggle {\n\tbackground-color: var(--color-main-background);\n}\n</style>\n"],"names":["_sfc_main","NcButton","t"],"mappings":";;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;ACPA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAC;AAAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA,CAAA,aAAA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAA,KAAA,OAAAC,MAAAA,EAAA,kBAAA,IAAAA,MAAA,EAAA,iBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AACA,WAAA,MAAA,eAAA,CAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"NcAppNavigationToggle-DTbZFYws.mjs","sources":["../../node_modules/vue-material-design-icons/Menu.vue","../../node_modules/vue-material-design-icons/MenuOpen.vue","../../src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-open-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuOpenIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"app-navigation-toggle-wrapper\">\n\t\t<NcButton class=\"app-navigation-toggle\"\n\t\t\ttype=\"tertiary\"\n\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t:aria-label=\"label\"\n\t\t\t:title=\"label\"\n\t\t\taria-controls=\"app-navigation-vue\"\n\t\t\t@click=\"toggleNavigation\">\n\t\t\t<template #icon>\n\t\t\t\t<MenuOpenIcon v-if=\"open\" :size=\"20\" />\n\t\t\t\t<MenuIcon v-else :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.js'\nimport { t } from '../../l10n.js'\n\nimport MenuIcon from 'vue-material-design-icons/Menu.vue'\nimport MenuOpenIcon from 'vue-material-design-icons/MenuOpen.vue'\n\nexport default {\n\tname: 'NcAppNavigationToggle',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tMenuIcon,\n\t\tMenuOpenIcon,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Tracks whether the toggle has been clicked or not.\n\t\t * If it has been clicked, switches between the different MenuIcons\n\t\t * and emits a boolean indicating its opened status\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['update:open'],\n\n\tcomputed: {\n\t\tlabel() {\n\t\t\treturn this.open ? t('Close navigation') : t('Open navigation')\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Once the toggle has been clicked, emits the toggle status\n\t\t * so parent components can gauge the status of the navigation button\n\t\t */\n\t\ttoggleNavigation() {\n\t\t\tthis.$emit('update:open', !this.open)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.app-navigation-toggle-wrapper {\n\tposition: absolute;\n\ttop: var(--app-navigation-padding);\n\tright: calc(0px - var(--app-navigation-padding));\n\tmargin-right: calc(-1 * var(--default-clickable-area));\n}\n\nbutton.app-navigation-toggle {\n\tbackground-color: var(--color-main-background);\n}\n</style>\n"],"names":["_sfc_main"],"mappings":";;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;ACPA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA,CAAA,aAAA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAA,KAAA,OAAA,EAAA,kBAAA,IAAA,EAAA,iBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AACA,WAAA,MAAA,eAAA,CAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1]}
@@ -1,16 +1,16 @@
1
- require('../assets/NcAppSettingsDialog-DkvJ9cKe.css');
1
+ require('../assets/NcAppSettingsDialog-YgAGku7I.css');
2
2
  "use strict";
3
- const NcDialog = require("./NcDialog-dCyByQCG.cjs");
3
+ const NcDialog = require("./NcDialog-DGaf6Udc.cjs");
4
4
  const Components_NcVNodes = require("../Components/NcVNodes.cjs");
5
5
  const Composables_useIsMobile = require("../Composables/useIsMobile.cjs");
6
- const _l10n = require("./_l10n-BGF_R72e.cjs");
6
+ const _l10n = require("./_l10n-DdIq5MvQ.cjs");
7
7
  const debounce = require("debounce");
8
8
  const Vue = require("vue");
9
9
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-DbFIE4_M.cjs");
10
10
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
11
11
  const debounce__default = /* @__PURE__ */ _interopDefault(debounce);
12
12
  const Vue__default = /* @__PURE__ */ _interopDefault(Vue);
13
- _l10n.register(_l10n.t40);
13
+ _l10n.register(_l10n.t44);
14
14
  const _sfc_main = {
15
15
  name: "NcAppSettingsDialog",
16
16
  components: {
@@ -223,7 +223,7 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
223
223
  _sfc_staticRenderFns,
224
224
  false,
225
225
  null,
226
- "87cb2b4f",
226
+ "d9de5a67",
227
227
  null,
228
228
  null
229
229
  );
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppSettingsDialog-DB9IGg_1.cjs","sources":["../../src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nJust nest the `AppSettingSections` component into `NcAppSettingsDialog`,\nproviding the section's name prop. You can put your settings within each\n`NcAppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-5\" name=\"Example name 5\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-6\" name=\"Example name 6\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-7\" name=\"Example name 7\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-8\" name=\"Example name 8\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-9\" name=\"Example name 9\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-10\" name=\"Example name 10\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also add icons to the section navigation:\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Instagram\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Instagram :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tInstagram setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Mastodon\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Mastodon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tMastodon setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Twitch\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitch :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tTwitch setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Twitter\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitter :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tTwitter setting\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nimport Instagram from 'vue-material-design-icons/Instagram.vue'\nimport Mastodon from 'vue-material-design-icons/Mastodon.vue'\nimport Twitch from 'vue-material-design-icons/Twitch.vue'\nimport Twitter from 'vue-material-design-icons/Twitter.vue'\n\nexport default {\n\tcomponents: {\n\t\tInstagram,\n\t\tMastodon,\n\t\tTwitch,\n\t\tTwitter,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcDialog v-if=\"open\"\n\t\t:navigation-aria-label=\"settingsNavigationAriaLabel\"\n\t\tv-bind=\"dialogProperties\"\n\t\t@update:open=\"handleCloseModal\">\n\t\t<template v-if=\"hasNavigation\" #navigation=\"{ isCollapsed }\">\n\t\t\t<ul v-if=\"!isCollapsed\"\n\t\t\t\tclass=\"navigation-list\">\n\t\t\t\t<li v-for=\"section in sections\" :key=\"section.id\">\n\t\t\t\t\t<a :aria-current=\"`${section.id === selectedSection}`\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'navigation-list__link': true,\n\t\t\t\t\t\t\t'navigation-list__link--active': section.id === selectedSection,\n\t\t\t\t\t\t\t'navigation-list__link--icon': hasNavigationIcons,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:href=\"`#settings-section_${section.id}`\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click.prevent=\"handleSettingsNavigationClick(section.id)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSettingsNavigationClick(section.id)\">\n\t\t\t\t\t\t<div v-if=\"hasNavigationIcons\" class=\"navigation-list__link-icon\">\n\t\t\t\t\t\t\t<NcVNodes v-if=\"section.icon\" :vnodes=\"section.icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"navigation-list__link-text\">\n\t\t\t\t\t\t\t{{ section.name }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t\t<div ref=\"settingsScroller\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<script>\nimport NcDialog from '../NcDialog/index.js'\nimport NcVNodes from '../NcVNodes/index.js'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { t } from '../../l10n.js'\n\nimport debounce from 'debounce'\nimport Vue from 'vue'\n\nexport default {\n\n\tname: 'NcAppSettingsDialog',\n\n\tcomponents: {\n\t\tNcDialog,\n\t\tNcVNodes,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tregisterSection: this.registerSection,\n\t\t\tunregisterSection: this.unregisterSection,\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Determines the open / closed state of the modal\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Shows the navigation on desktop if true\n\t\t */\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Name of the settings\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Additional elements to add to the focus trap\n\t\t */\n\t\tadditionalTrapElements: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t},\n\n\temits: ['update:open'],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedSection: '',\n\t\t\tlinkClicked: false,\n\t\t\taddedScrollListener: false,\n\t\t\tscroller: null,\n\t\t\t/**\n\t\t\t * Currently registered settings sections\n\t\t\t * @type {{ id: string, name: string, icon?: import('vue').VNode[] }[]}\n\t\t\t */\n\t\t\tsections: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdialogProperties() {\n\t\t\treturn {\n\t\t\t\tadditionalTrapElements: this.additionalTrapElements,\n\t\t\t\tcloseOnClickOutside: true,\n\t\t\t\tclass: 'app-settings',\n\t\t\t\tcontainer: this.container,\n\t\t\t\tcontentClasses: 'app-settings__content',\n\t\t\t\tsize: 'large',\n\t\t\t\tname: this.name,\n\t\t\t\tnavigationClasses: 'app-settings__navigation',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if one or more navigation entries provide icons\n\t\t */\n\t\thasNavigationIcons() {\n\t\t\treturn this.sections.some(({ icon }) => !!icon)\n\t\t},\n\n\t\thasNavigation() {\n\t\t\tif (this.isMobile || !this.showNavigation) {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\tsettingsNavigationAriaLabel() {\n\t\t\treturn t('Settings navigation')\n\t\t},\n\t},\n\n\tupdated() {\n\t\t// Check that the scroller element has been mounted\n\t\tif (!this.$refs.settingsScroller) {\n\t\t\treturn\n\t\t}\n\t\t// Get the scroller element\n\t\tthis.scroller = this.$refs.settingsScroller\n\t\tif (!this.addedScrollListener) {\n\t\t\tthis.scroller.addEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = true\n\t\t}\n\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Called when a new section is registered\n\t\t * @param {string} id The section ID\n\t\t * @param {string} name The section name\n\t\t * @param {import('vue').VNode[]|undefined} icon Optional icon component\n\t\t */\n\t\tregisterSection(id, name, icon) {\n\t\t\t// Check for the uniqueness of section names\n\t\t\tif (this.sections.some(({ id: otherId }) => id === otherId)) {\n\t\t\t\tthrow new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`)\n\t\t\t}\n\t\t\tif (this.sections.some(({ name: otherName }) => name === otherName)) {\n\t\t\t\tVue.util.warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`)\n\t\t\t}\n\n\t\t\tconst newSections = [...this.sections, { id, name, icon }]\n\t\t\t// Sort sections by order in slots\n\t\t\tthis.sections = newSections.sort(({ id: idA }, { id: idB }) => {\n\t\t\t\tconst indexOf = (id) => this.$slots.default?.findIndex?.(vnode => vnode?.componentOptions?.propsData?.id === id) ?? -1\n\t\t\t\treturn indexOf(idA) - indexOf(idB)\n\t\t\t})\n\n\t\t\t// If this is the first section registered, set it as selected\n\t\t\tif (this.sections.length === 1) {\n\t\t\t\tthis.selectedSection = id\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Called when a section is unregistered to remove it from dialog\n\t\t * @param {string} id The section ID\n\t\t */\n\t\tunregisterSection(id) {\n\t\t\tthis.sections = this.sections.filter(({ id: otherId }) => id !== otherId)\n\n\t\t\t// If the current section is unregistered, set the first section as selected\n\t\t\tif (this.selectedSection === id) {\n\t\t\t\tthis.selectedSection = this.sections[0]?.id ?? ''\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the content to the selected settings section.absolute\n\t\t *\n\t\t * @param {string} item the ID of the section\n\t\t */\n\t\thandleSettingsNavigationClick(item) {\n\t\t\tthis.linkClicked = true\n\t\t\tdocument.getElementById('settings-section_' + item).scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t\tthis.selectedSection = item\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.linkClicked = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\thandleCloseModal(isOpen) {\n\t\t\tif (isOpen) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$emit('update:open', false)\n\t\t\t// Remove scroll listener each time the modal is closed\n\t\t\tthis.scroller.removeEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = false\n\t\t\tthis.scroller.scrollTop = 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (!this.linkClicked) {\n\t\t\t\tthis.unfocusNavigationItem()\n\t\t\t}\n\t\t},\n\n\t\t// Remove selected section once the user starts scrolling\n\t\tunfocusNavigationItem: debounce(function() {\n\t\t\tthis.selectedSection = ''\n\t\t\tif (document.activeElement.className.includes('navigation-list__link')) {\n\t\t\t\tdocument.activeElement.blur()\n\t\t\t}\n\t\t}, 300),\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.app-settings {\n\t:deep &__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\t:deep &__content {\n\t\tbox-sizing: border-box;\n\t\tpadding-inline: 16px;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\tbox-sizing: border-box;\n\toverflow-y: auto;\n\tpadding: 12px;\n\n\t&__link {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\tfont-size: 16px;\n\t\theight: $clickable-area;\n\t\tmargin: 4px 0;\n\t\tline-height: $clickable-area;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t}\n\n\t\t&--icon {\n\t\t\tpadding-inline-start: 8px;\n\t\t\tgap: 4px;\n\t\t}\n\n\t\t&-icon {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-content: center;\n\t\t\twidth: 36px;\n\t\t\tmax-width: 36px;\n\t\t}\n\t}\n}\n\n@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-settings {\n\t\t:deep .dialog__name {\n\t\t\tpadding-inline-start: 16px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["NcDialog","NcVNodes","useIsMobile","t","Vue","id","_b","_a","debounce"],"mappings":"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"}
1
+ {"version":3,"file":"NcAppSettingsDialog-DZcj5Hg3.cjs","sources":["../../src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nJust nest the `AppSettingSections` component into `NcAppSettingsDialog`,\nproviding the section's name prop. You can put your settings within each\n`NcAppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-5\" name=\"Example name 5\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-6\" name=\"Example name 6\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-7\" name=\"Example name 7\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-8\" name=\"Example name 8\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-9\" name=\"Example name 9\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-10\" name=\"Example name 10\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also add icons to the section navigation:\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Instagram\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Instagram :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tInstagram setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Mastodon\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Mastodon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tMastodon setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Twitch\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitch :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tTwitch setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Twitter\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitter :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tTwitter setting\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nimport Instagram from 'vue-material-design-icons/Instagram.vue'\nimport Mastodon from 'vue-material-design-icons/Mastodon.vue'\nimport Twitch from 'vue-material-design-icons/Twitch.vue'\nimport Twitter from 'vue-material-design-icons/Twitter.vue'\n\nexport default {\n\tcomponents: {\n\t\tInstagram,\n\t\tMastodon,\n\t\tTwitch,\n\t\tTwitter,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcDialog v-if=\"open\"\n\t\t:navigation-aria-label=\"settingsNavigationAriaLabel\"\n\t\tv-bind=\"dialogProperties\"\n\t\t@update:open=\"handleCloseModal\">\n\t\t<template v-if=\"hasNavigation\" #navigation=\"{ isCollapsed }\">\n\t\t\t<ul v-if=\"!isCollapsed\"\n\t\t\t\tclass=\"navigation-list\">\n\t\t\t\t<li v-for=\"section in sections\" :key=\"section.id\">\n\t\t\t\t\t<a :aria-current=\"`${section.id === selectedSection}`\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'navigation-list__link': true,\n\t\t\t\t\t\t\t'navigation-list__link--active': section.id === selectedSection,\n\t\t\t\t\t\t\t'navigation-list__link--icon': hasNavigationIcons,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:href=\"`#settings-section_${section.id}`\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click.prevent=\"handleSettingsNavigationClick(section.id)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSettingsNavigationClick(section.id)\">\n\t\t\t\t\t\t<div v-if=\"hasNavigationIcons\" class=\"navigation-list__link-icon\">\n\t\t\t\t\t\t\t<NcVNodes v-if=\"section.icon\" :vnodes=\"section.icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"navigation-list__link-text\">\n\t\t\t\t\t\t\t{{ section.name }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t\t<div ref=\"settingsScroller\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<script>\nimport NcDialog from '../NcDialog/index.js'\nimport NcVNodes from '../NcVNodes/index.js'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { t } from '../../l10n.js'\n\nimport debounce from 'debounce'\nimport Vue from 'vue'\n\nexport default {\n\n\tname: 'NcAppSettingsDialog',\n\n\tcomponents: {\n\t\tNcDialog,\n\t\tNcVNodes,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tregisterSection: this.registerSection,\n\t\t\tunregisterSection: this.unregisterSection,\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Determines the open / closed state of the modal\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Shows the navigation on desktop if true\n\t\t */\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Name of the settings\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Additional elements to add to the focus trap\n\t\t */\n\t\tadditionalTrapElements: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t},\n\n\temits: ['update:open'],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedSection: '',\n\t\t\tlinkClicked: false,\n\t\t\taddedScrollListener: false,\n\t\t\tscroller: null,\n\t\t\t/**\n\t\t\t * Currently registered settings sections\n\t\t\t * @type {{ id: string, name: string, icon?: import('vue').VNode[] }[]}\n\t\t\t */\n\t\t\tsections: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdialogProperties() {\n\t\t\treturn {\n\t\t\t\tadditionalTrapElements: this.additionalTrapElements,\n\t\t\t\tcloseOnClickOutside: true,\n\t\t\t\tclass: 'app-settings',\n\t\t\t\tcontainer: this.container,\n\t\t\t\tcontentClasses: 'app-settings__content',\n\t\t\t\tsize: 'large',\n\t\t\t\tname: this.name,\n\t\t\t\tnavigationClasses: 'app-settings__navigation',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if one or more navigation entries provide icons\n\t\t */\n\t\thasNavigationIcons() {\n\t\t\treturn this.sections.some(({ icon }) => !!icon)\n\t\t},\n\n\t\thasNavigation() {\n\t\t\tif (this.isMobile || !this.showNavigation) {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\tsettingsNavigationAriaLabel() {\n\t\t\treturn t('Settings navigation')\n\t\t},\n\t},\n\n\tupdated() {\n\t\t// Check that the scroller element has been mounted\n\t\tif (!this.$refs.settingsScroller) {\n\t\t\treturn\n\t\t}\n\t\t// Get the scroller element\n\t\tthis.scroller = this.$refs.settingsScroller\n\t\tif (!this.addedScrollListener) {\n\t\t\tthis.scroller.addEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = true\n\t\t}\n\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Called when a new section is registered\n\t\t * @param {string} id The section ID\n\t\t * @param {string} name The section name\n\t\t * @param {import('vue').VNode[]|undefined} icon Optional icon component\n\t\t */\n\t\tregisterSection(id, name, icon) {\n\t\t\t// Check for the uniqueness of section names\n\t\t\tif (this.sections.some(({ id: otherId }) => id === otherId)) {\n\t\t\t\tthrow new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`)\n\t\t\t}\n\t\t\tif (this.sections.some(({ name: otherName }) => name === otherName)) {\n\t\t\t\tVue.util.warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`)\n\t\t\t}\n\n\t\t\tconst newSections = [...this.sections, { id, name, icon }]\n\t\t\t// Sort sections by order in slots\n\t\t\tthis.sections = newSections.sort(({ id: idA }, { id: idB }) => {\n\t\t\t\tconst indexOf = (id) => this.$slots.default?.findIndex?.(vnode => vnode?.componentOptions?.propsData?.id === id) ?? -1\n\t\t\t\treturn indexOf(idA) - indexOf(idB)\n\t\t\t})\n\n\t\t\t// If this is the first section registered, set it as selected\n\t\t\tif (this.sections.length === 1) {\n\t\t\t\tthis.selectedSection = id\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Called when a section is unregistered to remove it from dialog\n\t\t * @param {string} id The section ID\n\t\t */\n\t\tunregisterSection(id) {\n\t\t\tthis.sections = this.sections.filter(({ id: otherId }) => id !== otherId)\n\n\t\t\t// If the current section is unregistered, set the first section as selected\n\t\t\tif (this.selectedSection === id) {\n\t\t\t\tthis.selectedSection = this.sections[0]?.id ?? ''\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the content to the selected settings section.absolute\n\t\t *\n\t\t * @param {string} item the ID of the section\n\t\t */\n\t\thandleSettingsNavigationClick(item) {\n\t\t\tthis.linkClicked = true\n\t\t\tdocument.getElementById('settings-section_' + item).scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t\tthis.selectedSection = item\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.linkClicked = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\thandleCloseModal(isOpen) {\n\t\t\tif (isOpen) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$emit('update:open', false)\n\t\t\t// Remove scroll listener each time the modal is closed\n\t\t\tthis.scroller.removeEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = false\n\t\t\tthis.scroller.scrollTop = 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (!this.linkClicked) {\n\t\t\t\tthis.unfocusNavigationItem()\n\t\t\t}\n\t\t},\n\n\t\t// Remove selected section once the user starts scrolling\n\t\tunfocusNavigationItem: debounce(function() {\n\t\t\tthis.selectedSection = ''\n\t\t\tif (document.activeElement.className.includes('navigation-list__link')) {\n\t\t\t\tdocument.activeElement.blur()\n\t\t\t}\n\t\t}, 300),\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.app-settings {\n\t:deep &__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\t:deep &__content {\n\t\tbox-sizing: border-box;\n\t\tpadding-inline: 16px;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\tbox-sizing: border-box;\n\toverflow-y: auto;\n\tpadding: 12px;\n\n\t&__link {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\tfont-size: 16px;\n\t\theight: var(--default-clickable-area);\n\t\tmargin: 4px 0;\n\t\tline-height: var(--default-clickable-area);\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t}\n\n\t\t&--icon {\n\t\t\tpadding-inline-start: 8px;\n\t\t\tgap: 4px;\n\t\t}\n\n\t\t&-icon {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-content: center;\n\t\t\twidth: 36px;\n\t\t\tmax-width: 36px;\n\t\t}\n\t}\n}\n\n@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-settings {\n\t\t:deep .dialog__name {\n\t\t\tpadding-inline-start: 16px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["NcDialog","NcVNodes","useIsMobile","t","Vue","id","_b","_a","debounce"],"mappings":";;;;;;;;;;;;AAwKA,MAAA,YAAA;AAAA,EAEA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAA,SAAA;AAAA,IACA,UAAAC;AAAAA,EACA;AAAA,EAEA,UAAA;AACA,WAAA;AAAA,MACA,iBAAA,KAAA;AAAA,MACA,mBAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,wBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA;AAAA,IACA;AAAA,EAEA;AAAA,EAEA,OAAA,CAAA,aAAA;AAAA,EAEA,QAAA;AACA,WAAA;AAAA,MACA,UAAAC,wBAAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,aAAA;AAAA,MACA,qBAAA;AAAA,MACA,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAKA,UAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,mBAAA;AACA,aAAA;AAAA,QACA,wBAAA,KAAA;AAAA,QACA,qBAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA,KAAA;AAAA,QACA,gBAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA,KAAA;AAAA,QACA,mBAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,qBAAA;AACA,aAAA,KAAA,SAAA,KAAA,CAAA,EAAA,KAAA,MAAA,CAAA,CAAA,IAAA;AAAA,IACA;AAAA,IAEA,gBAAA;AACA,UAAA,KAAA,YAAA,CAAA,KAAA,gBAAA;AACA,eAAA;AAAA,MACA,OAAA;AACA,eAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,8BAAA;AACA,aAAAC,MAAAA,EAAA,qBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAEA,QAAA,CAAA,KAAA,MAAA,kBAAA;AACA;AAAA,IACA;AAEA,SAAA,WAAA,KAAA,MAAA;AACA,QAAA,CAAA,KAAA,qBAAA;AACA,WAAA,SAAA,iBAAA,UAAA,KAAA,YAAA;AACA,WAAA,sBAAA;AAAA,IACA;AAAA,EAEA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,gBAAA,IAAA,MAAA,MAAA;AAEA,UAAA,KAAA,SAAA,KAAA,CAAA,EAAA,IAAA,QAAA,MAAA,OAAA,OAAA,GAAA;AACA,cAAA,IAAA,MAAA,+BAAA,WAAA,+DAAA;AAAA,MACA;AACA,UAAA,KAAA,SAAA,KAAA,CAAA,EAAA,MAAA,UAAA,MAAA,SAAA,SAAA,GAAA;AACAC,qBAAA,QAAA,KAAA,KAAA,iCAAA,aAAA,iEAAA;AAAA,MACA;AAEA,YAAA,cAAA,CAAA,GAAA,KAAA,UAAA,EAAA,IAAA,MAAA,MAAA;AAEA,WAAA,WAAA,YAAA,KAAA,CAAA,EAAA,IAAA,OAAA,EAAA,IAAA,UAAA;AACA,cAAA,UAAA,CAAAC,QAAA;;AAAA,wCAAA,OAAA,YAAA,mBAAA,cAAA,4BAAA,WAAA;;AAAA,qBAAAC,OAAAC,MAAA,+BAAA,qBAAA,gBAAAA,IAAA,cAAA,gBAAAD,IAAA,QAAAD;AAAA,iBAAA,YAAA;AAAA;AACA,eAAA,QAAA,GAAA,IAAA,QAAA,GAAA;AAAA,MACA,CAAA;AAGA,UAAA,KAAA,SAAA,WAAA,GAAA;AACA,aAAA,kBAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,kBAAA,IAAA;;AACA,WAAA,WAAA,KAAA,SAAA,OAAA,CAAA,EAAA,IAAA,QAAA,MAAA,OAAA,OAAA;AAGA,UAAA,KAAA,oBAAA,IAAA;AACA,aAAA,mBAAA,gBAAA,SAAA,CAAA,MAAA,mBAAA,OAAA,YAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,8BAAA,MAAA;AACA,WAAA,cAAA;AACA,eAAA,eAAA,sBAAA,IAAA,EAAA,eAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,MACA,CAAA;AACA,WAAA,kBAAA;AACA,iBAAA,MAAA;AACA,aAAA,cAAA;AAAA,MACA,GAAA,GAAA;AAAA,IACA;AAAA,IAEA,iBAAA,QAAA;AACA,UAAA,QAAA;AACA;AAAA,MACA;AAEA,WAAA,MAAA,eAAA,KAAA;AAEA,WAAA,SAAA,oBAAA,UAAA,KAAA,YAAA;AACA,WAAA,sBAAA;AACA,WAAA,SAAA,YAAA;AAAA,IACA;AAAA,IAEA,eAAA;AACA,UAAA,CAAA,KAAA,aAAA;AACA,aAAA,sBAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA,IAGA,uBAAAG,kBAAA,QAAA,WAAA;AACA,WAAA,kBAAA;AACA,UAAA,SAAA,cAAA,UAAA,SAAA,uBAAA,GAAA;AACA,iBAAA,cAAA,KAAA;AAAA,MACA;AAAA,IACA,GAAA,GAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,12 +1,12 @@
1
- import '../assets/NcAppSettingsDialog-DkvJ9cKe.css';
2
- import { N as NcDialog } from "./NcDialog-CDQmAtFa.mjs";
1
+ import '../assets/NcAppSettingsDialog-YgAGku7I.css';
2
+ import { N as NcDialog } from "./NcDialog-VincZ0XS.mjs";
3
3
  import NcVNodes from "../Components/NcVNodes.mjs";
4
4
  import { useIsMobile } from "../Composables/useIsMobile.mjs";
5
- import { r as register, l as t40, a as t } from "./_l10n-B6zipH_A.mjs";
5
+ import { r as register, l as t44, a as t } from "./_l10n-CG5VZvYT.mjs";
6
6
  import debounce from "debounce";
7
7
  import Vue from "vue";
8
8
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-D637Qkok.mjs";
9
- register(t40);
9
+ register(t44);
10
10
  const _sfc_main = {
11
11
  name: "NcAppSettingsDialog",
12
12
  components: {
@@ -219,7 +219,7 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
219
219
  _sfc_staticRenderFns,
220
220
  false,
221
221
  null,
222
- "87cb2b4f",
222
+ "d9de5a67",
223
223
  null,
224
224
  null
225
225
  );
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppSettingsDialog-B_JHYQei.mjs","sources":["../../src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nJust nest the `AppSettingSections` component into `NcAppSettingsDialog`,\nproviding the section's name prop. You can put your settings within each\n`NcAppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-5\" name=\"Example name 5\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-6\" name=\"Example name 6\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-7\" name=\"Example name 7\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-8\" name=\"Example name 8\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-9\" name=\"Example name 9\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-10\" name=\"Example name 10\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also add icons to the section navigation:\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Instagram\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Instagram :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tInstagram setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Mastodon\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Mastodon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tMastodon setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Twitch\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitch :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tTwitch setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Twitter\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitter :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tTwitter setting\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nimport Instagram from 'vue-material-design-icons/Instagram.vue'\nimport Mastodon from 'vue-material-design-icons/Mastodon.vue'\nimport Twitch from 'vue-material-design-icons/Twitch.vue'\nimport Twitter from 'vue-material-design-icons/Twitter.vue'\n\nexport default {\n\tcomponents: {\n\t\tInstagram,\n\t\tMastodon,\n\t\tTwitch,\n\t\tTwitter,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcDialog v-if=\"open\"\n\t\t:navigation-aria-label=\"settingsNavigationAriaLabel\"\n\t\tv-bind=\"dialogProperties\"\n\t\t@update:open=\"handleCloseModal\">\n\t\t<template v-if=\"hasNavigation\" #navigation=\"{ isCollapsed }\">\n\t\t\t<ul v-if=\"!isCollapsed\"\n\t\t\t\tclass=\"navigation-list\">\n\t\t\t\t<li v-for=\"section in sections\" :key=\"section.id\">\n\t\t\t\t\t<a :aria-current=\"`${section.id === selectedSection}`\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'navigation-list__link': true,\n\t\t\t\t\t\t\t'navigation-list__link--active': section.id === selectedSection,\n\t\t\t\t\t\t\t'navigation-list__link--icon': hasNavigationIcons,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:href=\"`#settings-section_${section.id}`\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click.prevent=\"handleSettingsNavigationClick(section.id)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSettingsNavigationClick(section.id)\">\n\t\t\t\t\t\t<div v-if=\"hasNavigationIcons\" class=\"navigation-list__link-icon\">\n\t\t\t\t\t\t\t<NcVNodes v-if=\"section.icon\" :vnodes=\"section.icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"navigation-list__link-text\">\n\t\t\t\t\t\t\t{{ section.name }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t\t<div ref=\"settingsScroller\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<script>\nimport NcDialog from '../NcDialog/index.js'\nimport NcVNodes from '../NcVNodes/index.js'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { t } from '../../l10n.js'\n\nimport debounce from 'debounce'\nimport Vue from 'vue'\n\nexport default {\n\n\tname: 'NcAppSettingsDialog',\n\n\tcomponents: {\n\t\tNcDialog,\n\t\tNcVNodes,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tregisterSection: this.registerSection,\n\t\t\tunregisterSection: this.unregisterSection,\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Determines the open / closed state of the modal\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Shows the navigation on desktop if true\n\t\t */\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Name of the settings\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Additional elements to add to the focus trap\n\t\t */\n\t\tadditionalTrapElements: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t},\n\n\temits: ['update:open'],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedSection: '',\n\t\t\tlinkClicked: false,\n\t\t\taddedScrollListener: false,\n\t\t\tscroller: null,\n\t\t\t/**\n\t\t\t * Currently registered settings sections\n\t\t\t * @type {{ id: string, name: string, icon?: import('vue').VNode[] }[]}\n\t\t\t */\n\t\t\tsections: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdialogProperties() {\n\t\t\treturn {\n\t\t\t\tadditionalTrapElements: this.additionalTrapElements,\n\t\t\t\tcloseOnClickOutside: true,\n\t\t\t\tclass: 'app-settings',\n\t\t\t\tcontainer: this.container,\n\t\t\t\tcontentClasses: 'app-settings__content',\n\t\t\t\tsize: 'large',\n\t\t\t\tname: this.name,\n\t\t\t\tnavigationClasses: 'app-settings__navigation',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if one or more navigation entries provide icons\n\t\t */\n\t\thasNavigationIcons() {\n\t\t\treturn this.sections.some(({ icon }) => !!icon)\n\t\t},\n\n\t\thasNavigation() {\n\t\t\tif (this.isMobile || !this.showNavigation) {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\tsettingsNavigationAriaLabel() {\n\t\t\treturn t('Settings navigation')\n\t\t},\n\t},\n\n\tupdated() {\n\t\t// Check that the scroller element has been mounted\n\t\tif (!this.$refs.settingsScroller) {\n\t\t\treturn\n\t\t}\n\t\t// Get the scroller element\n\t\tthis.scroller = this.$refs.settingsScroller\n\t\tif (!this.addedScrollListener) {\n\t\t\tthis.scroller.addEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = true\n\t\t}\n\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Called when a new section is registered\n\t\t * @param {string} id The section ID\n\t\t * @param {string} name The section name\n\t\t * @param {import('vue').VNode[]|undefined} icon Optional icon component\n\t\t */\n\t\tregisterSection(id, name, icon) {\n\t\t\t// Check for the uniqueness of section names\n\t\t\tif (this.sections.some(({ id: otherId }) => id === otherId)) {\n\t\t\t\tthrow new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`)\n\t\t\t}\n\t\t\tif (this.sections.some(({ name: otherName }) => name === otherName)) {\n\t\t\t\tVue.util.warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`)\n\t\t\t}\n\n\t\t\tconst newSections = [...this.sections, { id, name, icon }]\n\t\t\t// Sort sections by order in slots\n\t\t\tthis.sections = newSections.sort(({ id: idA }, { id: idB }) => {\n\t\t\t\tconst indexOf = (id) => this.$slots.default?.findIndex?.(vnode => vnode?.componentOptions?.propsData?.id === id) ?? -1\n\t\t\t\treturn indexOf(idA) - indexOf(idB)\n\t\t\t})\n\n\t\t\t// If this is the first section registered, set it as selected\n\t\t\tif (this.sections.length === 1) {\n\t\t\t\tthis.selectedSection = id\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Called when a section is unregistered to remove it from dialog\n\t\t * @param {string} id The section ID\n\t\t */\n\t\tunregisterSection(id) {\n\t\t\tthis.sections = this.sections.filter(({ id: otherId }) => id !== otherId)\n\n\t\t\t// If the current section is unregistered, set the first section as selected\n\t\t\tif (this.selectedSection === id) {\n\t\t\t\tthis.selectedSection = this.sections[0]?.id ?? ''\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the content to the selected settings section.absolute\n\t\t *\n\t\t * @param {string} item the ID of the section\n\t\t */\n\t\thandleSettingsNavigationClick(item) {\n\t\t\tthis.linkClicked = true\n\t\t\tdocument.getElementById('settings-section_' + item).scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t\tthis.selectedSection = item\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.linkClicked = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\thandleCloseModal(isOpen) {\n\t\t\tif (isOpen) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$emit('update:open', false)\n\t\t\t// Remove scroll listener each time the modal is closed\n\t\t\tthis.scroller.removeEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = false\n\t\t\tthis.scroller.scrollTop = 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (!this.linkClicked) {\n\t\t\t\tthis.unfocusNavigationItem()\n\t\t\t}\n\t\t},\n\n\t\t// Remove selected section once the user starts scrolling\n\t\tunfocusNavigationItem: debounce(function() {\n\t\t\tthis.selectedSection = ''\n\t\t\tif (document.activeElement.className.includes('navigation-list__link')) {\n\t\t\t\tdocument.activeElement.blur()\n\t\t\t}\n\t\t}, 300),\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.app-settings {\n\t:deep &__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\t:deep &__content {\n\t\tbox-sizing: border-box;\n\t\tpadding-inline: 16px;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\tbox-sizing: border-box;\n\toverflow-y: auto;\n\tpadding: 12px;\n\n\t&__link {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\tfont-size: 16px;\n\t\theight: $clickable-area;\n\t\tmargin: 4px 0;\n\t\tline-height: $clickable-area;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t}\n\n\t\t&--icon {\n\t\t\tpadding-inline-start: 8px;\n\t\t\tgap: 4px;\n\t\t}\n\n\t\t&-icon {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-content: center;\n\t\t\twidth: 36px;\n\t\t\tmax-width: 36px;\n\t\t}\n\t}\n}\n\n@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-settings {\n\t\t:deep .dialog__name {\n\t\t\tpadding-inline-start: 16px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["id","_b","_a"],"mappings":"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"}
1
+ {"version":3,"file":"NcAppSettingsDialog-Dgqy88lj.mjs","sources":["../../src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nJust nest the `AppSettingSections` component into `NcAppSettingsDialog`,\nproviding the section's name prop. You can put your settings within each\n`NcAppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-5\" name=\"Example name 5\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-6\" name=\"Example name 6\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-7\" name=\"Example name 7\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-8\" name=\"Example name 8\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-9\" name=\"Example name 9\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-10\" name=\"Example name 10\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also add icons to the section navigation:\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Instagram\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Instagram :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tInstagram setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Mastodon\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Mastodon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tMastodon setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Twitch\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitch :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tTwitch setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Twitter\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitter :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tTwitter setting\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nimport Instagram from 'vue-material-design-icons/Instagram.vue'\nimport Mastodon from 'vue-material-design-icons/Mastodon.vue'\nimport Twitch from 'vue-material-design-icons/Twitch.vue'\nimport Twitter from 'vue-material-design-icons/Twitter.vue'\n\nexport default {\n\tcomponents: {\n\t\tInstagram,\n\t\tMastodon,\n\t\tTwitch,\n\t\tTwitter,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcDialog v-if=\"open\"\n\t\t:navigation-aria-label=\"settingsNavigationAriaLabel\"\n\t\tv-bind=\"dialogProperties\"\n\t\t@update:open=\"handleCloseModal\">\n\t\t<template v-if=\"hasNavigation\" #navigation=\"{ isCollapsed }\">\n\t\t\t<ul v-if=\"!isCollapsed\"\n\t\t\t\tclass=\"navigation-list\">\n\t\t\t\t<li v-for=\"section in sections\" :key=\"section.id\">\n\t\t\t\t\t<a :aria-current=\"`${section.id === selectedSection}`\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'navigation-list__link': true,\n\t\t\t\t\t\t\t'navigation-list__link--active': section.id === selectedSection,\n\t\t\t\t\t\t\t'navigation-list__link--icon': hasNavigationIcons,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:href=\"`#settings-section_${section.id}`\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click.prevent=\"handleSettingsNavigationClick(section.id)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSettingsNavigationClick(section.id)\">\n\t\t\t\t\t\t<div v-if=\"hasNavigationIcons\" class=\"navigation-list__link-icon\">\n\t\t\t\t\t\t\t<NcVNodes v-if=\"section.icon\" :vnodes=\"section.icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"navigation-list__link-text\">\n\t\t\t\t\t\t\t{{ section.name }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t\t<div ref=\"settingsScroller\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<script>\nimport NcDialog from '../NcDialog/index.js'\nimport NcVNodes from '../NcVNodes/index.js'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { t } from '../../l10n.js'\n\nimport debounce from 'debounce'\nimport Vue from 'vue'\n\nexport default {\n\n\tname: 'NcAppSettingsDialog',\n\n\tcomponents: {\n\t\tNcDialog,\n\t\tNcVNodes,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tregisterSection: this.registerSection,\n\t\t\tunregisterSection: this.unregisterSection,\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Determines the open / closed state of the modal\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Shows the navigation on desktop if true\n\t\t */\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Name of the settings\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Additional elements to add to the focus trap\n\t\t */\n\t\tadditionalTrapElements: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t},\n\n\temits: ['update:open'],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedSection: '',\n\t\t\tlinkClicked: false,\n\t\t\taddedScrollListener: false,\n\t\t\tscroller: null,\n\t\t\t/**\n\t\t\t * Currently registered settings sections\n\t\t\t * @type {{ id: string, name: string, icon?: import('vue').VNode[] }[]}\n\t\t\t */\n\t\t\tsections: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdialogProperties() {\n\t\t\treturn {\n\t\t\t\tadditionalTrapElements: this.additionalTrapElements,\n\t\t\t\tcloseOnClickOutside: true,\n\t\t\t\tclass: 'app-settings',\n\t\t\t\tcontainer: this.container,\n\t\t\t\tcontentClasses: 'app-settings__content',\n\t\t\t\tsize: 'large',\n\t\t\t\tname: this.name,\n\t\t\t\tnavigationClasses: 'app-settings__navigation',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if one or more navigation entries provide icons\n\t\t */\n\t\thasNavigationIcons() {\n\t\t\treturn this.sections.some(({ icon }) => !!icon)\n\t\t},\n\n\t\thasNavigation() {\n\t\t\tif (this.isMobile || !this.showNavigation) {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\tsettingsNavigationAriaLabel() {\n\t\t\treturn t('Settings navigation')\n\t\t},\n\t},\n\n\tupdated() {\n\t\t// Check that the scroller element has been mounted\n\t\tif (!this.$refs.settingsScroller) {\n\t\t\treturn\n\t\t}\n\t\t// Get the scroller element\n\t\tthis.scroller = this.$refs.settingsScroller\n\t\tif (!this.addedScrollListener) {\n\t\t\tthis.scroller.addEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = true\n\t\t}\n\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Called when a new section is registered\n\t\t * @param {string} id The section ID\n\t\t * @param {string} name The section name\n\t\t * @param {import('vue').VNode[]|undefined} icon Optional icon component\n\t\t */\n\t\tregisterSection(id, name, icon) {\n\t\t\t// Check for the uniqueness of section names\n\t\t\tif (this.sections.some(({ id: otherId }) => id === otherId)) {\n\t\t\t\tthrow new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`)\n\t\t\t}\n\t\t\tif (this.sections.some(({ name: otherName }) => name === otherName)) {\n\t\t\t\tVue.util.warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`)\n\t\t\t}\n\n\t\t\tconst newSections = [...this.sections, { id, name, icon }]\n\t\t\t// Sort sections by order in slots\n\t\t\tthis.sections = newSections.sort(({ id: idA }, { id: idB }) => {\n\t\t\t\tconst indexOf = (id) => this.$slots.default?.findIndex?.(vnode => vnode?.componentOptions?.propsData?.id === id) ?? -1\n\t\t\t\treturn indexOf(idA) - indexOf(idB)\n\t\t\t})\n\n\t\t\t// If this is the first section registered, set it as selected\n\t\t\tif (this.sections.length === 1) {\n\t\t\t\tthis.selectedSection = id\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Called when a section is unregistered to remove it from dialog\n\t\t * @param {string} id The section ID\n\t\t */\n\t\tunregisterSection(id) {\n\t\t\tthis.sections = this.sections.filter(({ id: otherId }) => id !== otherId)\n\n\t\t\t// If the current section is unregistered, set the first section as selected\n\t\t\tif (this.selectedSection === id) {\n\t\t\t\tthis.selectedSection = this.sections[0]?.id ?? ''\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the content to the selected settings section.absolute\n\t\t *\n\t\t * @param {string} item the ID of the section\n\t\t */\n\t\thandleSettingsNavigationClick(item) {\n\t\t\tthis.linkClicked = true\n\t\t\tdocument.getElementById('settings-section_' + item).scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t\tthis.selectedSection = item\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.linkClicked = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\thandleCloseModal(isOpen) {\n\t\t\tif (isOpen) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$emit('update:open', false)\n\t\t\t// Remove scroll listener each time the modal is closed\n\t\t\tthis.scroller.removeEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = false\n\t\t\tthis.scroller.scrollTop = 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (!this.linkClicked) {\n\t\t\t\tthis.unfocusNavigationItem()\n\t\t\t}\n\t\t},\n\n\t\t// Remove selected section once the user starts scrolling\n\t\tunfocusNavigationItem: debounce(function() {\n\t\t\tthis.selectedSection = ''\n\t\t\tif (document.activeElement.className.includes('navigation-list__link')) {\n\t\t\t\tdocument.activeElement.blur()\n\t\t\t}\n\t\t}, 300),\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.app-settings {\n\t:deep &__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\t:deep &__content {\n\t\tbox-sizing: border-box;\n\t\tpadding-inline: 16px;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\tbox-sizing: border-box;\n\toverflow-y: auto;\n\tpadding: 12px;\n\n\t&__link {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\tfont-size: 16px;\n\t\theight: var(--default-clickable-area);\n\t\tmargin: 4px 0;\n\t\tline-height: var(--default-clickable-area);\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t}\n\n\t\t&--icon {\n\t\t\tpadding-inline-start: 8px;\n\t\t\tgap: 4px;\n\t\t}\n\n\t\t&-icon {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-content: center;\n\t\t\twidth: 36px;\n\t\t\tmax-width: 36px;\n\t\t}\n\t}\n}\n\n@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-settings {\n\t\t:deep .dialog__name {\n\t\t\tpadding-inline-start: 16px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["id","_b","_a"],"mappings":"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"}