@nextcloud/vue 8.21.0 → 8.23.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 (483) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +71 -65
  3. package/dist/Components/NcActionButton.cjs +2 -167
  4. package/dist/Components/NcActionButton.cjs.map +1 -1
  5. package/dist/Components/NcActionButton.mjs +2 -167
  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 +1 -1
  14. package/dist/Components/NcActionCheckbox.mjs +1 -1
  15. package/dist/Components/NcActionInput.cjs +1 -1
  16. package/dist/Components/NcActionInput.mjs +1 -1
  17. package/dist/Components/NcActionLink.cjs +1 -1
  18. package/dist/Components/NcActionLink.mjs +1 -1
  19. package/dist/Components/NcActionRadio.cjs +1 -1
  20. package/dist/Components/NcActionRadio.mjs +1 -1
  21. package/dist/Components/NcActionRouter.cjs +1 -1
  22. package/dist/Components/NcActionRouter.mjs +1 -1
  23. package/dist/Components/NcActionText.cjs +1 -1
  24. package/dist/Components/NcActionText.mjs +1 -1
  25. package/dist/Components/NcActionTextEditable.cjs +1 -1
  26. package/dist/Components/NcActionTextEditable.mjs +1 -1
  27. package/dist/Components/NcActions.cjs +1 -1
  28. package/dist/Components/NcActions.mjs +1 -1
  29. package/dist/Components/NcAppContent.cjs +1 -1
  30. package/dist/Components/NcAppContent.mjs +1 -1
  31. package/dist/Components/NcAppNavigation.cjs +1 -1
  32. package/dist/Components/NcAppNavigation.mjs +1 -1
  33. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  34. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  35. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  36. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  37. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  38. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  39. package/dist/Components/NcAppNavigationSearch.cjs +1 -1
  40. package/dist/Components/NcAppNavigationSearch.mjs +1 -1
  41. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  42. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  43. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  44. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  45. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  46. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  47. package/dist/Components/NcAppSidebar.cjs +1 -1
  48. package/dist/Components/NcAppSidebar.mjs +1 -1
  49. package/dist/Components/NcAvatar.cjs +1 -1
  50. package/dist/Components/NcAvatar.mjs +1 -1
  51. package/dist/Components/NcBreadcrumb.cjs +1 -1
  52. package/dist/Components/NcBreadcrumb.mjs +1 -1
  53. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  54. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  55. package/dist/Components/NcButton.cjs +2 -2
  56. package/dist/Components/NcButton.cjs.map +1 -1
  57. package/dist/Components/NcButton.mjs +2 -2
  58. package/dist/Components/NcButton.mjs.map +1 -1
  59. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  60. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  61. package/dist/Components/NcChip.cjs +5 -5
  62. package/dist/Components/NcChip.mjs +4 -4
  63. package/dist/Components/NcCollectionList.cjs +1 -1
  64. package/dist/Components/NcCollectionList.mjs +1 -1
  65. package/dist/Components/NcColorPicker.cjs +1 -1
  66. package/dist/Components/NcColorPicker.mjs +1 -1
  67. package/dist/Components/NcContent.cjs +1 -1
  68. package/dist/Components/NcContent.mjs +1 -1
  69. package/dist/Components/NcCounterBubble.cjs +1 -1
  70. package/dist/Components/NcCounterBubble.mjs +1 -1
  71. package/dist/Components/NcDashboardWidget.cjs +1 -1
  72. package/dist/Components/NcDashboardWidget.mjs +1 -1
  73. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  74. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  75. package/dist/Components/NcDateTime.cjs +1 -1
  76. package/dist/Components/NcDateTime.mjs +1 -1
  77. package/dist/Components/NcDateTimePicker.cjs +6 -6
  78. package/dist/Components/NcDateTimePicker.mjs +6 -6
  79. package/dist/Components/NcDateTimePickerNative.cjs +22 -18
  80. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  81. package/dist/Components/NcDateTimePickerNative.mjs +22 -18
  82. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  83. package/dist/Components/NcDialog.cjs +1 -1
  84. package/dist/Components/NcDialog.mjs +1 -1
  85. package/dist/Components/NcDialogButton.cjs +1 -1
  86. package/dist/Components/NcDialogButton.mjs +1 -1
  87. package/dist/Components/NcEmojiPicker.cjs +1 -1
  88. package/dist/Components/NcEmojiPicker.mjs +1 -1
  89. package/dist/Components/NcHeaderButton.cjs +2 -2
  90. package/dist/Components/NcHeaderButton.cjs.map +1 -1
  91. package/dist/Components/NcHeaderButton.mjs +2 -2
  92. package/dist/Components/NcHeaderButton.mjs.map +1 -1
  93. package/dist/Components/NcHeaderMenu.cjs +1 -1
  94. package/dist/Components/NcHeaderMenu.mjs +1 -1
  95. package/dist/Components/NcInputField.cjs +1 -1
  96. package/dist/Components/NcInputField.mjs +1 -1
  97. package/dist/Components/NcListItem.cjs +1 -1
  98. package/dist/Components/NcListItem.mjs +1 -1
  99. package/dist/Components/NcListItemIcon.cjs +1 -1
  100. package/dist/Components/NcListItemIcon.mjs +1 -1
  101. package/dist/Components/NcModal.cjs +59 -61
  102. package/dist/Components/NcModal.cjs.map +1 -1
  103. package/dist/Components/NcModal.mjs +59 -61
  104. package/dist/Components/NcModal.mjs.map +1 -1
  105. package/dist/Components/NcPasswordField.cjs +1 -1
  106. package/dist/Components/NcPasswordField.mjs +1 -1
  107. package/dist/Components/NcPopover.cjs +1 -1
  108. package/dist/Components/NcPopover.mjs +1 -1
  109. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  110. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  111. package/dist/Components/NcRichContenteditable.cjs +2 -2
  112. package/dist/Components/NcRichContenteditable.mjs +2 -2
  113. package/dist/Components/NcRichText.cjs +2 -2
  114. package/dist/Components/NcRichText.mjs +3 -3
  115. package/dist/Components/NcSelect.cjs +1 -1
  116. package/dist/Components/NcSelect.mjs +1 -1
  117. package/dist/Components/NcSelectTags.cjs +1 -1
  118. package/dist/Components/NcSelectTags.mjs +1 -1
  119. package/dist/Components/NcSettingsInputText.cjs +1 -1
  120. package/dist/Components/NcSettingsInputText.mjs +1 -1
  121. package/dist/Components/NcSettingsSection.cjs +1 -1
  122. package/dist/Components/NcSettingsSection.mjs +1 -1
  123. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  124. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  125. package/dist/Components/NcTextField.cjs +1 -1
  126. package/dist/Components/NcTextField.mjs +1 -1
  127. package/dist/Components/NcTimezonePicker.cjs +1 -1
  128. package/dist/Components/NcTimezonePicker.mjs +1 -1
  129. package/dist/Components/NcUserBubble.cjs +1 -1
  130. package/dist/Components/NcUserBubble.mjs +1 -1
  131. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  132. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  133. package/dist/Composables/useHotKey.cjs +22 -5
  134. package/dist/Composables/useHotKey.cjs.map +1 -1
  135. package/dist/Composables/useHotKey.mjs +22 -5
  136. package/dist/Composables/useHotKey.mjs.map +1 -1
  137. package/dist/Directives/Linkify.cjs +14 -2
  138. package/dist/Directives/Linkify.cjs.map +1 -1
  139. package/dist/Directives/Linkify.mjs +11 -1
  140. package/dist/Directives/Linkify.mjs.map +1 -1
  141. package/dist/Functions/contactsMenu.cjs +21 -0
  142. package/dist/Functions/contactsMenu.cjs.map +1 -0
  143. package/dist/Functions/contactsMenu.mjs +21 -0
  144. package/dist/Functions/contactsMenu.mjs.map +1 -0
  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/richEditor.cjs +1 -2
  150. package/dist/Mixins/richEditor.cjs.map +1 -1
  151. package/dist/Mixins/richEditor.mjs +1 -2
  152. package/dist/Mixins/richEditor.mjs.map +1 -1
  153. package/dist/assets/{NcActionButton-CNq6xIdS.css → NcActionButton-BYN2SUN0.css} +21 -21
  154. package/dist/assets/{NcActionCaption-JVhz4Wp7.css → NcActionCaption-BNDtcWJ7.css} +4 -4
  155. package/dist/assets/{NcActionCheckbox-DeW2CCVc.css → NcActionCheckbox-Dan0EvGm.css} +18 -18
  156. package/dist/assets/{NcActionInput-CNRERfyh.css → NcActionInput-Dz21fyVD.css} +69 -65
  157. package/dist/assets/{NcActionLink-CC6a7Hsf.css → NcActionLink-BG9B9dP4.css} +6 -5
  158. package/dist/assets/{NcActionRadio-DC7Wp9rR.css → NcActionRadio-C87waXE-.css} +18 -18
  159. package/dist/assets/{NcActionRouter-CsIBHw6E.css → NcActionRouter-BAGuUfFu.css} +6 -5
  160. package/dist/assets/{NcActionText-BSD_HYx4.css → NcActionText-Cjp26Bn0.css} +6 -5
  161. package/dist/assets/{NcActionTextEditable-Cg16Q4zr.css → NcActionTextEditable-1TXeJ5zp.css} +68 -64
  162. package/dist/assets/{NcActions-DM_LoRlx.css → NcActions-C4SuFczn.css} +12 -15
  163. package/dist/assets/{NcAppContent-D97xom6z.css → NcAppContent-BO0ksFwD.css} +19 -19
  164. package/dist/assets/{NcAppNavigation-CBN6X2dT.css → NcAppNavigation-CJj8AvqM.css} +13 -13
  165. package/dist/assets/{NcAppNavigationCaption-Dt5K_hKD.css → NcAppNavigationCaption-DU9PxTvu.css} +9 -9
  166. package/dist/assets/{NcAppNavigationItem-CNZsPcla.css → NcAppNavigationItem-lh9Say1M.css} +39 -39
  167. package/dist/assets/{NcAppNavigationNewItem-CQ1f40wK.css → NcAppNavigationNewItem-fUP3wQTQ.css} +37 -37
  168. package/dist/assets/{NcAppNavigationSettings-BV_QS8jh.css → NcAppNavigationSettings-vd47rlNY.css} +14 -14
  169. package/dist/assets/{NcAppNavigationToggle-Chtb7sE7.css → NcAppNavigationToggle-B6FCDJp7.css} +3 -3
  170. package/dist/assets/{NcAvatar-xe4gdFKk.css → NcAvatar-CcJlFpcI.css} +25 -25
  171. package/dist/assets/{NcButton-BHDLon1_.css → NcButton-CfOAX-eQ.css} +47 -47
  172. package/dist/assets/{NcCheckboxRadioSwitch-D0kAZROF.css → NcCheckboxRadioSwitch-DuFrRU9C.css} +45 -42
  173. package/dist/assets/{NcColorPicker-Dw2wy2tU.css → NcColorPicker-C1DuuANb.css} +28 -28
  174. package/dist/assets/{NcCounterBubble-DdYmHnng.css → NcCounterBubble-CI-DxLjL.css} +7 -7
  175. package/dist/assets/{NcDashboardWidgetItem-BtOuK4mf.css → NcDashboardWidgetItem-B8_6-_k8.css} +16 -16
  176. package/dist/assets/{NcDateTimePicker-Dp2wSSiQ.css → NcDateTimePicker-MkokZozI.css} +22 -18
  177. package/dist/assets/NcDateTimePickerNative-DVGEymgr.css +60 -0
  178. package/dist/assets/{NcEmojiPicker-BNCW1Q94.css → NcEmojiPicker-rk5qcSl7.css} +75 -57
  179. package/dist/assets/{NcHeaderButton-DH4Qtw3P.css → NcHeaderButton-BPkJ5wxD.css} +7 -7
  180. package/dist/assets/{NcHeaderMenu-C2XbJMYL.css → NcHeaderMenu-BYjnMPPl.css} +11 -11
  181. package/dist/assets/{NcInputField-CUsdr7lV.css → NcInputField-CzryIHRa.css} +32 -32
  182. package/dist/assets/{NcListItem-BBu5UTTe.css → NcListItem-GE5S37TT.css} +48 -47
  183. package/dist/assets/{NcMentionBubble-Bt71nB8X.css → NcMentionBubble-BL05HUeF.css} +12 -13
  184. package/dist/assets/{NcModal-BBKX-T6V.css → NcModal-ZfCDJxwd.css} +63 -61
  185. package/dist/assets/{NcPasswordField-DZ6dcMzH.css → NcPasswordField-whtKJFcB.css} +2 -2
  186. package/dist/assets/{NcPopover-TS4CW9MJ.css → NcPopover-DpakVVxI.css} +16 -5
  187. package/dist/assets/{NcRelatedResourcesPanel-DIhZx6lY.css → NcRelatedResourcesPanel-DSf7TVcC.css} +14 -14
  188. package/dist/assets/{NcRichContenteditable-DkYYyQTJ.css → NcRichContenteditable-BV6g3dmd.css} +53 -42
  189. package/dist/assets/NcRichText-zt8ALFHi.css +323 -0
  190. package/dist/assets/{NcSettingsSection-Dlaob2ni.css → NcSettingsSection-_mX6UqM_.css} +9 -9
  191. package/dist/assets/{NcUserBubble-CNid1YOT.css → NcUserBubble-BsTKRhKz.css} +11 -11
  192. package/dist/assets/{referencePickerModal-BhhuyO3J.css → referencePickerModal-CTumspFH.css} +46 -46
  193. package/dist/chunks/ChevronLeft-BK4j9oVH.mjs +37 -0
  194. package/dist/chunks/ChevronLeft-BK4j9oVH.mjs.map +1 -0
  195. package/dist/chunks/ChevronLeft-CAiEPWc5.cjs +36 -0
  196. package/dist/chunks/ChevronLeft-CAiEPWc5.cjs.map +1 -0
  197. package/dist/chunks/{GenColors-DpvFVzBN.mjs → GenColors-Bp97WTnT.mjs} +1 -1
  198. package/dist/chunks/{GenColors-DpvFVzBN.mjs.map → GenColors-Bp97WTnT.mjs.map} +1 -1
  199. package/dist/chunks/{GenColors-iV_vrBr4.cjs → GenColors-DH0trnvh.cjs} +1 -1
  200. package/dist/chunks/{GenColors-iV_vrBr4.cjs.map → GenColors-DH0trnvh.cjs.map} +1 -1
  201. package/dist/chunks/NcActionButton-CEysTg4c.mjs +177 -0
  202. package/dist/chunks/NcActionButton-CEysTg4c.mjs.map +1 -0
  203. package/dist/chunks/NcActionButton-DcpUnqA7.cjs +176 -0
  204. package/dist/chunks/NcActionButton-DcpUnqA7.cjs.map +1 -0
  205. package/dist/chunks/{NcActionButtonGroup-ue4dTx-p.mjs → NcActionButtonGroup-CCsqO10Q.mjs} +1 -1
  206. package/dist/chunks/{NcActionButtonGroup-ue4dTx-p.mjs.map → NcActionButtonGroup-CCsqO10Q.mjs.map} +1 -1
  207. package/dist/chunks/{NcActionButtonGroup-C0nQ7J_W.cjs → NcActionButtonGroup-CljgCf7q.cjs} +1 -1
  208. package/dist/chunks/{NcActionButtonGroup-C0nQ7J_W.cjs.map → NcActionButtonGroup-CljgCf7q.cjs.map} +1 -1
  209. package/dist/chunks/{NcActionCheckbox-C_wvm9IO.mjs → NcActionCheckbox-BnL71Qmi.mjs} +2 -2
  210. package/dist/chunks/{NcActionCheckbox-C_wvm9IO.mjs.map → NcActionCheckbox-BnL71Qmi.mjs.map} +1 -1
  211. package/dist/chunks/{NcActionCheckbox-DwU16qcU.cjs → NcActionCheckbox-Dd5Y6f63.cjs} +2 -2
  212. package/dist/chunks/{NcActionCheckbox-DwU16qcU.cjs.map → NcActionCheckbox-Dd5Y6f63.cjs.map} +1 -1
  213. package/dist/chunks/{NcActionInput-D0qZP5ag.cjs → NcActionInput-Co580YPc.cjs} +7 -7
  214. package/dist/chunks/{NcActionInput-D0qZP5ag.cjs.map → NcActionInput-Co580YPc.cjs.map} +1 -1
  215. package/dist/chunks/{NcActionInput-4-s29xoN.mjs → NcActionInput-DbFfZx2L.mjs} +7 -7
  216. package/dist/chunks/{NcActionInput-4-s29xoN.mjs.map → NcActionInput-DbFfZx2L.mjs.map} +1 -1
  217. package/dist/chunks/{NcActionRadio-vHwjWOHS.cjs → NcActionRadio-BQ0jAh5V.cjs} +16 -8
  218. package/dist/chunks/NcActionRadio-BQ0jAh5V.cjs.map +1 -0
  219. package/dist/chunks/{NcActionRadio-Dl6W62Vm.mjs → NcActionRadio-CCTupqRR.mjs} +14 -8
  220. package/dist/chunks/NcActionRadio-CCTupqRR.mjs.map +1 -0
  221. package/dist/chunks/{NcActionTextEditable-97R7dFen.cjs → NcActionTextEditable-C-ZP8_Tn.cjs} +8 -4
  222. package/dist/chunks/NcActionTextEditable-C-ZP8_Tn.cjs.map +1 -0
  223. package/dist/chunks/{NcActionTextEditable-DZCFtqIP.mjs → NcActionTextEditable-JRD-G0CT.mjs} +8 -4
  224. package/dist/chunks/NcActionTextEditable-JRD-G0CT.mjs.map +1 -0
  225. package/dist/chunks/{NcActions-CCYNSnCn.cjs → NcActions-B9hBFogn.cjs} +5 -30
  226. package/dist/chunks/{NcActions-NA1n25Vt.mjs.map → NcActions-B9hBFogn.cjs.map} +1 -1
  227. package/dist/chunks/{NcActions-NA1n25Vt.mjs → NcActions-DV02tDLT.mjs} +5 -30
  228. package/dist/chunks/{NcActions-CCYNSnCn.cjs.map → NcActions-DV02tDLT.mjs.map} +1 -1
  229. package/dist/chunks/{NcAppContent-CIMgDnJM.mjs → NcAppContent-D3ku3oxL.mjs} +18 -8
  230. package/dist/chunks/NcAppContent-D3ku3oxL.mjs.map +1 -0
  231. package/dist/chunks/{NcAppContent-DdzUMomS.cjs → NcAppContent-DdfRZmsz.cjs} +18 -8
  232. package/dist/chunks/NcAppContent-DdfRZmsz.cjs.map +1 -0
  233. package/dist/chunks/{NcAppNavigation-BuKJwvwT.cjs → NcAppNavigation-DQnt1SXa.cjs} +42 -9
  234. package/dist/chunks/NcAppNavigation-DQnt1SXa.cjs.map +1 -0
  235. package/dist/chunks/{NcAppNavigation-wz0Fsxe4.mjs → NcAppNavigation-ZFb93kAU.mjs} +42 -9
  236. package/dist/chunks/NcAppNavigation-ZFb93kAU.mjs.map +1 -0
  237. package/dist/chunks/{NcAppNavigationCaption-DBKM-x5x.mjs → NcAppNavigationCaption-DXufL2i4.mjs} +3 -3
  238. package/dist/chunks/{NcAppNavigationCaption-DBKM-x5x.mjs.map → NcAppNavigationCaption-DXufL2i4.mjs.map} +1 -1
  239. package/dist/chunks/{NcAppNavigationCaption-DUPonEWi.cjs → NcAppNavigationCaption-LypfQqMe.cjs} +3 -3
  240. package/dist/chunks/{NcAppNavigationCaption-DUPonEWi.cjs.map → NcAppNavigationCaption-LypfQqMe.cjs.map} +1 -1
  241. package/dist/chunks/{NcAppNavigationItem-Y_CVXzId.cjs → NcAppNavigationItem-D-1kyfhH.cjs} +12 -12
  242. package/dist/chunks/NcAppNavigationItem-D-1kyfhH.cjs.map +1 -0
  243. package/dist/chunks/{NcAppNavigationItem-BkkuFdfa.mjs → NcAppNavigationItem-rJoyDMUX.mjs} +11 -11
  244. package/dist/chunks/NcAppNavigationItem-rJoyDMUX.mjs.map +1 -0
  245. package/dist/chunks/{NcAppNavigationNewItem-BFFG7VDH.mjs → NcAppNavigationNewItem-CO4Mau1P.mjs} +3 -3
  246. package/dist/chunks/{NcAppNavigationNewItem-BFFG7VDH.mjs.map → NcAppNavigationNewItem-CO4Mau1P.mjs.map} +1 -1
  247. package/dist/chunks/{NcAppNavigationNewItem-B76-cCDH.cjs → NcAppNavigationNewItem-DV3fOuWq.cjs} +3 -3
  248. package/dist/chunks/{NcAppNavigationNewItem-B76-cCDH.cjs.map → NcAppNavigationNewItem-DV3fOuWq.cjs.map} +1 -1
  249. package/dist/chunks/{NcAppNavigationSearch-DVBgbwyd.cjs → NcAppNavigationSearch-BVBeLYXH.cjs} +3 -3
  250. package/dist/chunks/{NcAppNavigationSearch-DVBgbwyd.cjs.map → NcAppNavigationSearch-BVBeLYXH.cjs.map} +1 -1
  251. package/dist/chunks/{NcAppNavigationSearch-Bg-WTyms.mjs → NcAppNavigationSearch-DpaZRVqv.mjs} +3 -3
  252. package/dist/chunks/{NcAppNavigationSearch-Bg-WTyms.mjs.map → NcAppNavigationSearch-DpaZRVqv.mjs.map} +1 -1
  253. package/dist/chunks/{NcAppNavigationSettings-BH5t68oV.cjs → NcAppNavigationSettings-CpBSr0CG.cjs} +5 -6
  254. package/dist/chunks/{NcAppNavigationSettings-BH5t68oV.cjs.map → NcAppNavigationSettings-CpBSr0CG.cjs.map} +1 -1
  255. package/dist/chunks/{NcAppNavigationSettings-CieV4qU5.mjs → NcAppNavigationSettings-DgUbSU0v.mjs} +5 -6
  256. package/dist/chunks/{NcAppNavigationSettings-CieV4qU5.mjs.map → NcAppNavigationSettings-DgUbSU0v.mjs.map} +1 -1
  257. package/dist/chunks/{NcAppNavigationToggle-Dwg-dMWx.cjs → NcAppNavigationToggle-BbDj_xom.cjs} +10 -6
  258. package/dist/chunks/NcAppNavigationToggle-BbDj_xom.cjs.map +1 -0
  259. package/dist/chunks/{NcAppNavigationToggle-Dw0ZPjy2.mjs → NcAppNavigationToggle-Z_4QmE4l.mjs} +10 -6
  260. package/dist/chunks/NcAppNavigationToggle-Z_4QmE4l.mjs.map +1 -0
  261. package/dist/chunks/{NcAppSettingsDialog-Dkl3cqU-.cjs → NcAppSettingsDialog-CLTp2nax.cjs} +3 -3
  262. package/dist/chunks/{NcAppSettingsDialog-Dkl3cqU-.cjs.map → NcAppSettingsDialog-CLTp2nax.cjs.map} +1 -1
  263. package/dist/chunks/{NcAppSettingsDialog-B4GS8urN.mjs → NcAppSettingsDialog-DEPymL7F.mjs} +3 -3
  264. package/dist/chunks/{NcAppSettingsDialog-B4GS8urN.mjs.map → NcAppSettingsDialog-DEPymL7F.mjs.map} +1 -1
  265. package/dist/chunks/{NcAppSidebar-DaJVGxLh.mjs → NcAppSidebar-C149M_Fz.mjs} +4 -4
  266. package/dist/chunks/{NcAppSidebar-DaJVGxLh.mjs.map → NcAppSidebar-C149M_Fz.mjs.map} +1 -1
  267. package/dist/chunks/{NcAppSidebar-B75YJPC-.cjs → NcAppSidebar-CGra4INE.cjs} +4 -4
  268. package/dist/chunks/{NcAppSidebar-B75YJPC-.cjs.map → NcAppSidebar-CGra4INE.cjs.map} +1 -1
  269. package/dist/chunks/{NcAvatar-DypzACJs.cjs → NcAvatar-BGtTigLZ.cjs} +37 -15
  270. package/dist/chunks/NcAvatar-BGtTigLZ.cjs.map +1 -0
  271. package/dist/chunks/{NcAvatar-B8e2YFLI.mjs → NcAvatar-DTd55tcm.mjs} +37 -15
  272. package/dist/chunks/NcAvatar-DTd55tcm.mjs.map +1 -0
  273. package/dist/chunks/{NcBreadcrumb-DVn5-KGF.cjs → NcBreadcrumb-DxF8JaOu.cjs} +1 -1
  274. package/dist/chunks/{NcBreadcrumb-DVn5-KGF.cjs.map → NcBreadcrumb-DxF8JaOu.cjs.map} +1 -1
  275. package/dist/chunks/{NcBreadcrumb-MucRC9Y6.mjs → NcBreadcrumb-bWA_vFfP.mjs} +1 -1
  276. package/dist/chunks/{NcBreadcrumb-MucRC9Y6.mjs.map → NcBreadcrumb-bWA_vFfP.mjs.map} +1 -1
  277. package/dist/chunks/{NcBreadcrumbs-JqPHfTRj.cjs → NcBreadcrumbs-IhjgM1JZ.cjs} +4 -4
  278. package/dist/chunks/{NcBreadcrumbs-JqPHfTRj.cjs.map → NcBreadcrumbs-IhjgM1JZ.cjs.map} +1 -1
  279. package/dist/chunks/{NcBreadcrumbs-D59osZ3o.mjs → NcBreadcrumbs-sClaGRTt.mjs} +3 -3
  280. package/dist/chunks/{NcBreadcrumbs-D59osZ3o.mjs.map → NcBreadcrumbs-sClaGRTt.mjs.map} +1 -1
  281. package/dist/chunks/{NcCheckboxRadioSwitch-DdquK4fW.cjs → NcCheckboxRadioSwitch-BeqHHlB9.cjs} +3 -3
  282. package/dist/chunks/{NcCheckboxRadioSwitch-DdquK4fW.cjs.map → NcCheckboxRadioSwitch-BeqHHlB9.cjs.map} +1 -1
  283. package/dist/chunks/{NcCheckboxRadioSwitch-R1y0mLbC.mjs → NcCheckboxRadioSwitch-TK3dfQ23.mjs} +3 -3
  284. package/dist/chunks/{NcCheckboxRadioSwitch-R1y0mLbC.mjs.map → NcCheckboxRadioSwitch-TK3dfQ23.mjs.map} +1 -1
  285. package/dist/chunks/{NcCollectionList-BBs48HVU.cjs → NcCollectionList-960B7fbH.cjs} +8 -8
  286. package/dist/chunks/{NcCollectionList-BBs48HVU.cjs.map → NcCollectionList-960B7fbH.cjs.map} +1 -1
  287. package/dist/chunks/{NcCollectionList-COYakeMz.mjs → NcCollectionList-AVScwDI5.mjs} +7 -7
  288. package/dist/chunks/{NcCollectionList-COYakeMz.mjs.map → NcCollectionList-AVScwDI5.mjs.map} +1 -1
  289. package/dist/chunks/{NcColorPicker-Df6UVuYn.cjs → NcColorPicker-Cfc8caOi.cjs} +23 -18
  290. package/dist/chunks/NcColorPicker-Cfc8caOi.cjs.map +1 -0
  291. package/dist/chunks/{NcColorPicker-8wU8rMbF.mjs → NcColorPicker-CxUVj8Z0.mjs} +23 -18
  292. package/dist/chunks/NcColorPicker-CxUVj8Z0.mjs.map +1 -0
  293. package/dist/chunks/{NcContent-BXi18ILU.cjs → NcContent-8DrfnMbH.cjs} +2 -2
  294. package/dist/chunks/{NcContent-BXi18ILU.cjs.map → NcContent-8DrfnMbH.cjs.map} +1 -1
  295. package/dist/chunks/{NcContent-BEcHmywv.mjs → NcContent-CUGljSwq.mjs} +2 -2
  296. package/dist/chunks/{NcContent-BEcHmywv.mjs.map → NcContent-CUGljSwq.mjs.map} +1 -1
  297. package/dist/chunks/{NcCounterBubble-DF2rwIo4.cjs → NcCounterBubble-BRrUO34D.cjs} +19 -8
  298. package/dist/chunks/{NcCounterBubble-DF2rwIo4.cjs.map → NcCounterBubble-BRrUO34D.cjs.map} +1 -1
  299. package/dist/chunks/{NcCounterBubble-M1q9GRkH.mjs → NcCounterBubble-CDfRYl8B.mjs} +19 -8
  300. package/dist/chunks/{NcCounterBubble-M1q9GRkH.mjs.map → NcCounterBubble-CDfRYl8B.mjs.map} +1 -1
  301. package/dist/chunks/{NcDashboardWidget-GDdmCQm-.mjs → NcDashboardWidget-52sFYtbl.mjs} +4 -4
  302. package/dist/chunks/{NcDashboardWidget-GDdmCQm-.mjs.map → NcDashboardWidget-52sFYtbl.mjs.map} +1 -1
  303. package/dist/chunks/{NcDashboardWidget-Bu-WC7kg.cjs → NcDashboardWidget-DLT7_5SX.cjs} +4 -4
  304. package/dist/chunks/{NcDashboardWidget-Bu-WC7kg.cjs.map → NcDashboardWidget-DLT7_5SX.cjs.map} +1 -1
  305. package/dist/chunks/{NcDashboardWidgetItem-CI59K-wE.cjs → NcDashboardWidgetItem-D8hdHDZu.cjs} +6 -6
  306. package/dist/chunks/{NcDashboardWidgetItem-CI59K-wE.cjs.map → NcDashboardWidgetItem-D8hdHDZu.cjs.map} +1 -1
  307. package/dist/chunks/{NcDashboardWidgetItem-vMP_Z6ay.mjs → NcDashboardWidgetItem-DU3WZN-y.mjs} +5 -5
  308. package/dist/chunks/{NcDashboardWidgetItem-vMP_Z6ay.mjs.map → NcDashboardWidgetItem-DU3WZN-y.mjs.map} +1 -1
  309. package/dist/chunks/{NcDateTime-CaJHhgab.cjs → NcDateTime-BRGrNYn0.cjs} +1 -1
  310. package/dist/chunks/{NcDateTime-CaJHhgab.cjs.map → NcDateTime-BRGrNYn0.cjs.map} +1 -1
  311. package/dist/chunks/{NcDateTime-D5UaJ0tw.mjs → NcDateTime-CGh9MkHy.mjs} +1 -1
  312. package/dist/chunks/{NcDateTime-D5UaJ0tw.mjs.map → NcDateTime-CGh9MkHy.mjs.map} +1 -1
  313. package/dist/chunks/{NcDialog-CzWTz2Qr.mjs → NcDialog-B9vjcT1J.mjs} +1 -1
  314. package/dist/chunks/{NcDialog-CzWTz2Qr.mjs.map → NcDialog-B9vjcT1J.mjs.map} +1 -1
  315. package/dist/chunks/{NcDialog-CWGgSCpv.cjs → NcDialog-CfYmQm13.cjs} +1 -1
  316. package/dist/chunks/{NcDialog-CWGgSCpv.cjs.map → NcDialog-CfYmQm13.cjs.map} +1 -1
  317. package/dist/chunks/{NcDialogButton-B5jVZIGf.mjs → NcDialogButton-B2SWZUHD.mjs} +2 -2
  318. package/dist/chunks/{NcDialogButton-B5jVZIGf.mjs.map → NcDialogButton-B2SWZUHD.mjs.map} +1 -1
  319. package/dist/chunks/{NcDialogButton-B7d1LWFN.cjs → NcDialogButton-HxcYXT5L.cjs} +2 -2
  320. package/dist/chunks/{NcDialogButton-B7d1LWFN.cjs.map → NcDialogButton-HxcYXT5L.cjs.map} +1 -1
  321. package/dist/chunks/{NcEmojiPicker-BSoMzxJl.mjs → NcEmojiPicker-BXZBDiWy.mjs} +70 -43
  322. package/dist/chunks/NcEmojiPicker-BXZBDiWy.mjs.map +1 -0
  323. package/dist/chunks/{NcEmojiPicker-XRtfmbk_.cjs → NcEmojiPicker-Cpll3Z7O.cjs} +70 -43
  324. package/dist/chunks/NcEmojiPicker-Cpll3Z7O.cjs.map +1 -0
  325. package/dist/chunks/{NcHeaderMenu-CzS2doDR.cjs → NcHeaderMenu-BaHhnhN0.cjs} +3 -4
  326. package/dist/chunks/NcHeaderMenu-BaHhnhN0.cjs.map +1 -0
  327. package/dist/chunks/{NcHeaderMenu-vLqcJ-_w.mjs → NcHeaderMenu-CLcpStap.mjs} +3 -4
  328. package/dist/chunks/NcHeaderMenu-CLcpStap.mjs.map +1 -0
  329. package/dist/chunks/{NcInputConfirmCancel-DwmLGFYb.mjs → NcInputConfirmCancel-ruvJ51Mx.mjs} +2 -2
  330. package/dist/chunks/{NcInputConfirmCancel-DwmLGFYb.mjs.map → NcInputConfirmCancel-ruvJ51Mx.mjs.map} +1 -1
  331. package/dist/chunks/{NcInputConfirmCancel-CYQsG_3t.cjs → NcInputConfirmCancel-usP54-1l.cjs} +2 -2
  332. package/dist/chunks/{NcInputConfirmCancel-CYQsG_3t.cjs.map → NcInputConfirmCancel-usP54-1l.cjs.map} +1 -1
  333. package/dist/chunks/{NcInputField-ixTTHy3h.mjs → NcInputField-CU5a68Pc.mjs} +6 -7
  334. package/dist/chunks/NcInputField-CU5a68Pc.mjs.map +1 -0
  335. package/dist/chunks/{NcInputField-CbBdbdE8.cjs → NcInputField-DkhKrb8k.cjs} +6 -7
  336. package/dist/chunks/NcInputField-DkhKrb8k.cjs.map +1 -0
  337. package/dist/chunks/{NcListItem-DMaVvwXJ.cjs → NcListItem-DD-ogntB.cjs} +7 -12
  338. package/dist/chunks/{NcListItem-DMaVvwXJ.cjs.map → NcListItem-DD-ogntB.cjs.map} +1 -1
  339. package/dist/chunks/{NcListItem-DCh0J8Z4.mjs → NcListItem-Du0jflbS.mjs} +7 -12
  340. package/dist/chunks/{NcListItem-DCh0J8Z4.mjs.map → NcListItem-Du0jflbS.mjs.map} +1 -1
  341. package/dist/chunks/{NcListItemIcon-C6Ok3G7x.mjs → NcListItemIcon-21-8tZ2J.mjs} +2 -3
  342. package/dist/chunks/{NcListItemIcon-C6Ok3G7x.mjs.map → NcListItemIcon-21-8tZ2J.mjs.map} +1 -1
  343. package/dist/chunks/{NcListItemIcon-BLvWsnbD.cjs → NcListItemIcon-BP2C6QPu.cjs} +2 -3
  344. package/dist/chunks/{NcListItemIcon-BLvWsnbD.cjs.map → NcListItemIcon-BP2C6QPu.cjs.map} +1 -1
  345. package/dist/chunks/{NcPasswordField-CAGGdgVF.mjs → NcPasswordField-C6zTx4jJ.mjs} +16 -13
  346. package/dist/chunks/NcPasswordField-C6zTx4jJ.mjs.map +1 -0
  347. package/dist/chunks/{NcPasswordField-DLuNgJF2.cjs → NcPasswordField-DbFsY4Md.cjs} +18 -15
  348. package/dist/chunks/NcPasswordField-DbFsY4Md.cjs.map +1 -0
  349. package/dist/chunks/{NcPopover-MxwUgZu1.cjs → NcPopover-BKlH1mbx.cjs} +12 -13
  350. package/dist/chunks/NcPopover-BKlH1mbx.cjs.map +1 -0
  351. package/dist/chunks/{NcPopover-DzYbNu-I.mjs → NcPopover-DFCPlZpS.mjs} +12 -13
  352. package/dist/chunks/NcPopover-DFCPlZpS.mjs.map +1 -0
  353. package/dist/chunks/{NcRelatedResourcesPanel-BRoP-NiB.cjs → NcRelatedResourcesPanel-BlasfRyj.cjs} +11 -6
  354. package/dist/chunks/NcRelatedResourcesPanel-BlasfRyj.cjs.map +1 -0
  355. package/dist/chunks/{NcRelatedResourcesPanel-Bts9eDYA.mjs → NcRelatedResourcesPanel-D1wjzlCt.mjs} +11 -6
  356. package/dist/chunks/NcRelatedResourcesPanel-D1wjzlCt.mjs.map +1 -0
  357. package/dist/chunks/{NcRichContenteditable-BznZW1Mm.mjs → NcRichContenteditable-BGdgK6Rt.mjs} +21 -21
  358. package/dist/chunks/NcRichContenteditable-BGdgK6Rt.mjs.map +1 -0
  359. package/dist/chunks/{NcRichContenteditable-GOiGqL9S.cjs → NcRichContenteditable-DVD649BN.cjs} +21 -21
  360. package/dist/chunks/NcRichContenteditable-DVD649BN.cjs.map +1 -0
  361. package/dist/chunks/{NcRichText-BNxuFkK-.cjs → NcRichText-CnnsKa8W.cjs} +28 -41
  362. package/dist/chunks/NcRichText-CnnsKa8W.cjs.map +1 -0
  363. package/dist/chunks/{NcRichText-CytzoTXW.mjs → NcRichText-LKapJOAf.mjs} +29 -42
  364. package/dist/chunks/NcRichText-LKapJOAf.mjs.map +1 -0
  365. package/dist/chunks/{NcSelect-DvGJHzaa.mjs → NcSelect-BvpEfjtz.mjs} +3 -3
  366. package/dist/chunks/{NcSelect-DvGJHzaa.mjs.map → NcSelect-BvpEfjtz.mjs.map} +1 -1
  367. package/dist/chunks/{NcSelect-Cp83bFsi.cjs → NcSelect-Cr_CFqNk.cjs} +3 -3
  368. package/dist/chunks/{NcSelect-Cp83bFsi.cjs.map → NcSelect-Cr_CFqNk.cjs.map} +1 -1
  369. package/dist/chunks/{NcSelectTags-Bi9DIwx_.cjs → NcSelectTags-BxJEJZ0W.cjs} +2 -2
  370. package/dist/chunks/{NcSelectTags-Bi9DIwx_.cjs.map → NcSelectTags-BxJEJZ0W.cjs.map} +1 -1
  371. package/dist/chunks/{NcSelectTags-B4PjZQtt.mjs → NcSelectTags-yVos6fB8.mjs} +2 -2
  372. package/dist/chunks/{NcSelectTags-B4PjZQtt.mjs.map → NcSelectTags-yVos6fB8.mjs.map} +1 -1
  373. package/dist/chunks/{NcSettingsInputText-DhZ_giTf.mjs → NcSettingsInputText-DzjW5iHT.mjs} +2 -2
  374. package/dist/chunks/{NcSettingsInputText-DhZ_giTf.mjs.map → NcSettingsInputText-DzjW5iHT.mjs.map} +1 -1
  375. package/dist/chunks/{NcSettingsInputText-BYq049Qz.cjs → NcSettingsInputText-GL0a7etX.cjs} +2 -2
  376. package/dist/chunks/{NcSettingsInputText-BYq049Qz.cjs.map → NcSettingsInputText-GL0a7etX.cjs.map} +1 -1
  377. package/dist/chunks/{NcSettingsSection-B7SqDXbX.mjs → NcSettingsSection-BXxHFEGz.mjs} +4 -4
  378. package/dist/chunks/{NcSettingsSection-B7SqDXbX.mjs.map → NcSettingsSection-BXxHFEGz.mjs.map} +1 -1
  379. package/dist/chunks/{NcSettingsSection-Dn7Qmknm.cjs → NcSettingsSection-CJYVADt2.cjs} +4 -4
  380. package/dist/chunks/{NcSettingsSection-Dn7Qmknm.cjs.map → NcSettingsSection-CJYVADt2.cjs.map} +1 -1
  381. package/dist/chunks/{NcSettingsSelectGroup-DypyXuEW.cjs → NcSettingsSelectGroup-BTnOlySM.cjs} +3 -3
  382. package/dist/chunks/{NcSettingsSelectGroup-DypyXuEW.cjs.map → NcSettingsSelectGroup-BTnOlySM.cjs.map} +1 -1
  383. package/dist/chunks/{NcSettingsSelectGroup-BAhG6V1R.mjs → NcSettingsSelectGroup-BiI2D550.mjs} +3 -3
  384. package/dist/chunks/{NcSettingsSelectGroup-BAhG6V1R.mjs.map → NcSettingsSelectGroup-BiI2D550.mjs.map} +1 -1
  385. package/dist/chunks/{NcTextField-rCaBV_TN.cjs → NcTextField-BKXPIe0I.cjs} +9 -5
  386. package/dist/chunks/NcTextField-BKXPIe0I.cjs.map +1 -0
  387. package/dist/chunks/{NcTextField-8RXOuqAy.mjs → NcTextField-CIiNGo2q.mjs} +9 -5
  388. package/dist/chunks/NcTextField-CIiNGo2q.mjs.map +1 -0
  389. package/dist/chunks/{NcTimezonePicker-D64nWJh7.mjs → NcTimezonePicker-B5lkrpg4.mjs} +4 -4
  390. package/dist/chunks/{NcTimezonePicker-D64nWJh7.mjs.map → NcTimezonePicker-B5lkrpg4.mjs.map} +1 -1
  391. package/dist/chunks/{NcTimezonePicker-B5ps-VnZ.cjs → NcTimezonePicker-CouwhWKh.cjs} +4 -4
  392. package/dist/chunks/{NcTimezonePicker-B5ps-VnZ.cjs.map → NcTimezonePicker-CouwhWKh.cjs.map} +1 -1
  393. package/dist/chunks/{NcUserBubble-Q0TscgXh.mjs → NcUserBubble-7svwYkFv.mjs} +5 -5
  394. package/dist/chunks/{NcUserBubble-Q0TscgXh.mjs.map → NcUserBubble-7svwYkFv.mjs.map} +1 -1
  395. package/dist/chunks/{NcUserBubble-Cg86HaKF.cjs → NcUserBubble-CT8n4fXf.cjs} +5 -5
  396. package/dist/chunks/{NcUserBubble-Cg86HaKF.cjs.map → NcUserBubble-CT8n4fXf.cjs.map} +1 -1
  397. package/dist/chunks/{NcUserStatusIcon-CvuiXAZR.mjs → NcUserStatusIcon-BRDxSfqh.mjs} +3 -3
  398. package/dist/chunks/{NcUserStatusIcon-CvuiXAZR.mjs.map → NcUserStatusIcon-BRDxSfqh.mjs.map} +1 -1
  399. package/dist/chunks/{NcUserStatusIcon-CP1EGHie.cjs → NcUserStatusIcon-CRX6G1lZ.cjs} +3 -3
  400. package/dist/chunks/{NcUserStatusIcon-CP1EGHie.cjs.map → NcUserStatusIcon-CRX6G1lZ.cjs.map} +1 -1
  401. package/dist/chunks/{ScopeComponent-ClDcATYc.cjs → ScopeComponent-DumACiuv.cjs} +1 -1
  402. package/dist/chunks/{ScopeComponent-ClDcATYc.cjs.map → ScopeComponent-DumACiuv.cjs.map} +1 -1
  403. package/dist/chunks/{ScopeComponent-BLLOK04K.mjs → ScopeComponent-l9iK4gT7.mjs} +1 -1
  404. package/dist/chunks/{ScopeComponent-BLLOK04K.mjs.map → ScopeComponent-l9iK4gT7.mjs.map} +1 -1
  405. package/dist/chunks/_l10n-BFZBMn-A.mjs +130 -0
  406. package/dist/chunks/_l10n-BFZBMn-A.mjs.map +1 -0
  407. package/dist/chunks/_l10n-CUjmuQOi.cjs +129 -0
  408. package/dist/chunks/{_l10n-Ch5mEdUH.cjs.map → _l10n-CUjmuQOi.cjs.map} +1 -1
  409. package/dist/chunks/{index-bI_wyL5-.cjs → index-BiECbTbJ.cjs} +3 -4
  410. package/dist/chunks/index-BiECbTbJ.cjs.map +1 -0
  411. package/dist/chunks/{index-bjwozrEX.mjs → index-G8WQDZ8G.mjs} +3 -4
  412. package/dist/chunks/index-G8WQDZ8G.mjs.map +1 -0
  413. package/dist/chunks/logger-3HuiEIF6.cjs +4 -0
  414. package/dist/chunks/logger-3HuiEIF6.cjs.map +1 -0
  415. package/dist/chunks/logger-D3RVzcfQ.mjs +5 -0
  416. package/dist/chunks/logger-D3RVzcfQ.mjs.map +1 -0
  417. package/dist/chunks/{referencePickerModal-C4eGo6D2.cjs → referencePickerModal-C81hzdRI.cjs} +14 -14
  418. package/dist/chunks/referencePickerModal-C81hzdRI.cjs.map +1 -0
  419. package/dist/chunks/{referencePickerModal-C6YJvRC9.mjs → referencePickerModal-O217yxI1.mjs} +14 -14
  420. package/dist/chunks/referencePickerModal-O217yxI1.mjs.map +1 -0
  421. package/dist/chunks/{usernameToColor-Cx2qDZ1W.mjs → usernameToColor-D4cWttCX.mjs} +1 -1
  422. package/dist/chunks/{usernameToColor-Cx2qDZ1W.mjs.map → usernameToColor-D4cWttCX.mjs.map} +1 -1
  423. package/dist/chunks/{usernameToColor-CWxjw-Pq.cjs → usernameToColor-D_kVgtXG.cjs} +1 -1
  424. package/dist/chunks/{usernameToColor-CWxjw-Pq.cjs.map → usernameToColor-D_kVgtXG.cjs.map} +1 -1
  425. package/dist/composables/useFormatDateTime.d.ts +20 -21
  426. package/dist/composables/useIsDarkTheme/index.d.ts +0 -1
  427. package/dist/functions/contactsMenu/index.d.ts +40 -0
  428. package/dist/functions/dialog/index.d.ts +0 -1
  429. package/dist/functions/index.d.ts +1 -0
  430. package/dist/index.cjs +56 -53
  431. package/dist/index.cjs.map +1 -1
  432. package/dist/index.mjs +57 -54
  433. package/dist/index.mjs.map +1 -1
  434. package/dist/plugin.d.ts +0 -1
  435. package/dist/utils/logger.d.ts +5 -0
  436. package/package.json +29 -11
  437. package/dist/assets/NcDateTimePickerNative-BfZfqRvD.css +0 -47
  438. package/dist/assets/NcRichText-BlRmdWCX.css +0 -412
  439. package/dist/chunks/Linkify-BtgR-dXX.mjs +0 -14
  440. package/dist/chunks/Linkify-BtgR-dXX.mjs.map +0 -1
  441. package/dist/chunks/Linkify-yeOn5L6T.cjs +0 -15
  442. package/dist/chunks/Linkify-yeOn5L6T.cjs.map +0 -1
  443. package/dist/chunks/NcActionRadio-Dl6W62Vm.mjs.map +0 -1
  444. package/dist/chunks/NcActionRadio-vHwjWOHS.cjs.map +0 -1
  445. package/dist/chunks/NcActionTextEditable-97R7dFen.cjs.map +0 -1
  446. package/dist/chunks/NcActionTextEditable-DZCFtqIP.mjs.map +0 -1
  447. package/dist/chunks/NcAppContent-CIMgDnJM.mjs.map +0 -1
  448. package/dist/chunks/NcAppContent-DdzUMomS.cjs.map +0 -1
  449. package/dist/chunks/NcAppNavigation-BuKJwvwT.cjs.map +0 -1
  450. package/dist/chunks/NcAppNavigation-wz0Fsxe4.mjs.map +0 -1
  451. package/dist/chunks/NcAppNavigationItem-BkkuFdfa.mjs.map +0 -1
  452. package/dist/chunks/NcAppNavigationItem-Y_CVXzId.cjs.map +0 -1
  453. package/dist/chunks/NcAppNavigationToggle-Dw0ZPjy2.mjs.map +0 -1
  454. package/dist/chunks/NcAppNavigationToggle-Dwg-dMWx.cjs.map +0 -1
  455. package/dist/chunks/NcAvatar-B8e2YFLI.mjs.map +0 -1
  456. package/dist/chunks/NcAvatar-DypzACJs.cjs.map +0 -1
  457. package/dist/chunks/NcColorPicker-8wU8rMbF.mjs.map +0 -1
  458. package/dist/chunks/NcColorPicker-Df6UVuYn.cjs.map +0 -1
  459. package/dist/chunks/NcEmojiPicker-BSoMzxJl.mjs.map +0 -1
  460. package/dist/chunks/NcEmojiPicker-XRtfmbk_.cjs.map +0 -1
  461. package/dist/chunks/NcHeaderMenu-CzS2doDR.cjs.map +0 -1
  462. package/dist/chunks/NcHeaderMenu-vLqcJ-_w.mjs.map +0 -1
  463. package/dist/chunks/NcInputField-CbBdbdE8.cjs.map +0 -1
  464. package/dist/chunks/NcInputField-ixTTHy3h.mjs.map +0 -1
  465. package/dist/chunks/NcPasswordField-CAGGdgVF.mjs.map +0 -1
  466. package/dist/chunks/NcPasswordField-DLuNgJF2.cjs.map +0 -1
  467. package/dist/chunks/NcPopover-DzYbNu-I.mjs.map +0 -1
  468. package/dist/chunks/NcPopover-MxwUgZu1.cjs.map +0 -1
  469. package/dist/chunks/NcRelatedResourcesPanel-BRoP-NiB.cjs.map +0 -1
  470. package/dist/chunks/NcRelatedResourcesPanel-Bts9eDYA.mjs.map +0 -1
  471. package/dist/chunks/NcRichContenteditable-BznZW1Mm.mjs.map +0 -1
  472. package/dist/chunks/NcRichContenteditable-GOiGqL9S.cjs.map +0 -1
  473. package/dist/chunks/NcRichText-BNxuFkK-.cjs.map +0 -1
  474. package/dist/chunks/NcRichText-CytzoTXW.mjs.map +0 -1
  475. package/dist/chunks/NcTextField-8RXOuqAy.mjs.map +0 -1
  476. package/dist/chunks/NcTextField-rCaBV_TN.cjs.map +0 -1
  477. package/dist/chunks/_l10n-B-QPoWAJ.mjs +0 -132
  478. package/dist/chunks/_l10n-B-QPoWAJ.mjs.map +0 -1
  479. package/dist/chunks/_l10n-Ch5mEdUH.cjs +0 -131
  480. package/dist/chunks/index-bI_wyL5-.cjs.map +0 -1
  481. package/dist/chunks/index-bjwozrEX.mjs.map +0 -1
  482. package/dist/chunks/referencePickerModal-C4eGo6D2.cjs.map +0 -1
  483. package/dist/chunks/referencePickerModal-C6YJvRC9.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
- require('../assets/NcAppContent-D97xom6z.css');
1
+ require('../assets/NcAppContent-BO0ksFwD.css');
2
2
  "use strict";
3
3
  const Components_NcButton = require("../Components/NcButton.cjs");
4
- const _l10n = require("./_l10n-Ch5mEdUH.cjs");
4
+ const _l10n = require("./_l10n-CUjmuQOi.cjs");
5
5
  require("../Directives/Tooltip.cjs");
6
6
  const eventBus = require("@nextcloud/event-bus");
7
7
  const ArrowRight = require("./ArrowRight-DPARnmu3.cjs");
@@ -14,7 +14,7 @@ const browserStorage$1 = require("@nextcloud/browser-storage");
14
14
  const core = require("@vueuse/core");
15
15
  const splitpanes = require("splitpanes");
16
16
  require("splitpanes/dist/splitpanes.css");
17
- _l10n.register(_l10n.t26);
17
+ _l10n.register(_l10n.t25);
18
18
  const _sfc_main$1 = {
19
19
  name: "NcAppDetailsToggle",
20
20
  directives: {
@@ -88,11 +88,19 @@ const _sfc_main = {
88
88
  props: {
89
89
  /**
90
90
  * Allows to disable the control by swipe of the app navigation open state
91
+ * @deprecated will be removed with the next version - use `disableSwipe` instead
91
92
  */
92
93
  allowSwipeNavigation: {
93
94
  type: Boolean,
94
95
  default: true
95
96
  },
97
+ /**
98
+ * Allows to disable the control by swipe of the app navigation open state.
99
+ */
100
+ disableSwipe: {
101
+ type: Boolean,
102
+ default: false
103
+ },
96
104
  /**
97
105
  * Allows you to set the default width of the resizable list in % on vertical-split
98
106
  * Allows you to set the default height of the resizable list in % on horizontal-split
@@ -127,7 +135,8 @@ const _sfc_main = {
127
135
  default: ""
128
136
  },
129
137
  /**
130
- * When in mobile view, only the list or the details are shown
138
+ * When in mobile view, only the list or the details are shown.
139
+ *
131
140
  * If you provide a list, you need to provide a variable
132
141
  * that will be set to true by the user when an element of
133
142
  * the list gets selected. The details will then show a back
@@ -165,7 +174,8 @@ const _sfc_main = {
165
174
  ],
166
175
  setup() {
167
176
  return {
168
- isMobile: Composables_useIsMobile.useIsMobile()
177
+ isMobile: Composables_useIsMobile.useIsMobile(),
178
+ isRTL: l10n.isRTL()
169
179
  };
170
180
  },
171
181
  data() {
@@ -216,7 +226,7 @@ const _sfc_main = {
216
226
  this.checkSlots();
217
227
  },
218
228
  mounted() {
219
- if (this.allowSwipeNavigation) {
229
+ if (this.allowSwipeNavigation && !this.disableSwipe) {
220
230
  this.swiping = core.useSwipe(this.$el, {
221
231
  onSwipeEnd: this.handleSwipe
222
232
  });
@@ -288,7 +298,7 @@ var _sfc_render = function render2() {
288
298
  } } }) : _vm._e(), !_vm.showDetails ? _vm._t("list") : _vm._t("default")], 2) : _vm.layout === "vertical-split" || _vm.layout === "horizontal-split" ? _c("div", { staticClass: "app-content-wrapper" }, [_c("Splitpanes", { staticClass: "default-theme", class: {
289
299
  "splitpanes--horizontal": _vm.layout === "horizontal-split",
290
300
  "splitpanes--vertical": _vm.layout === "vertical-split"
291
- }, attrs: { "horizontal": _vm.layout === "horizontal-split" }, on: { "resized": _vm.handlePaneResize } }, [_c("Pane", { staticClass: "splitpanes__pane-list", attrs: { "size": _vm.listPaneSize || _vm.paneDefaults.list.size, "min-size": _vm.paneDefaults.list.min, "max-size": _vm.paneDefaults.list.max } }, [_vm._t("list")], 2), _c("Pane", { staticClass: "splitpanes__pane-details", attrs: { "size": _vm.detailsPaneSize, "min-size": _vm.paneDefaults.details.min, "max-size": _vm.paneDefaults.details.max } }, [_vm._t("default")], 2)], 1)], 1) : _vm._e()] : _vm._e(), !_vm.hasList ? _vm._t("default") : _vm._e()], 2);
301
+ }, attrs: { "horizontal": _vm.layout === "horizontal-split", "rtl": _vm.isRTL }, on: { "resized": _vm.handlePaneResize } }, [_c("Pane", { staticClass: "splitpanes__pane-list", attrs: { "size": _vm.listPaneSize || _vm.paneDefaults.list.size, "min-size": _vm.paneDefaults.list.min, "max-size": _vm.paneDefaults.list.max } }, [_vm._t("list")], 2), _c("Pane", { staticClass: "splitpanes__pane-details", attrs: { "size": _vm.detailsPaneSize, "min-size": _vm.paneDefaults.details.min, "max-size": _vm.paneDefaults.details.max } }, [_vm._t("default")], 2)], 1)], 1) : _vm._e()] : _vm._e(), !_vm.hasList ? _vm._t("default") : _vm._e()], 2);
292
302
  };
293
303
  var _sfc_staticRenderFns = [];
294
304
  var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
@@ -297,7 +307,7 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
297
307
  _sfc_staticRenderFns,
298
308
  false,
299
309
  null,
300
- "7b4bc577"
310
+ "79779e34"
301
311
  );
302
312
  const NcAppContent = __component__.exports;
303
313
  exports.NcAppContent = NcAppContent;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppContent-DdfRZmsz.cjs","sources":["../../src/components/NcAppContent/NcAppDetailsToggle.vue","../../src/components/NcAppContent/NcAppContent.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcButton v-tooltip=\"title\"\n\t\ttype=\"tertiary\"\n\t\t:aria-label=\"title\"\n\t\tclass=\"app-details-toggle\"\n\t\t:class=\"{ 'app-details-toggle--mobile': isMobile }\">\n\t\t<template #icon>\n\t\t\t<ArrowLeft v-if=\"isRTL\" :size=\"20\" />\n\t\t\t<ArrowRight v-else :size=\"20\" />\n\t\t</template>\n\t</NcButton>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.js'\nimport { t } from '../../l10n.js'\nimport Tooltip from '../../directives/Tooltip/index.js'\n\nimport { emit } from '@nextcloud/event-bus'\n\nimport ArrowRight from 'vue-material-design-icons/ArrowRight.vue'\nimport ArrowLeft from 'vue-material-design-icons/ArrowLeft.vue'\n\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { isRTL } from '@nextcloud/l10n'\n\nexport default {\n\tname: 'NcAppDetailsToggle',\n\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\n\tcomponents: {\n\t\tNcButton,\n\t\tArrowRight,\n\t\tArrowLeft,\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\tisRTL: isRTL(),\n\t\t\tisMobile: useIsMobile(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\treturn t('Go back to the list')\n\t\t},\n\t},\n\twatch: {\n\t\tisMobile: {\n\t\t\timmediate: true,\n\t\t\thandler() {\n\t\t\t\tthis.toggleAppNavigationButton(this.isMobile)\n\t\t\t},\n\t\t},\n\t},\n\n\tbeforeDestroy() {\n\t\tif (this.isMobile) {\n\t\t\tthis.toggleAppNavigationButton(false)\n\t\t}\n\t},\n\n\tmethods: {\n\t\ttoggleAppNavigationButton(hide = true) {\n\t\t\tconst appNavigationToggle = document.querySelector('.app-navigation .app-navigation-toggle')\n\t\t\tif (appNavigationToggle) {\n\t\t\t\tappNavigationToggle.style.display = hide ? 'none' : null\n\n\t\t\t\t// If we hide the NavigationToggle, we need to make sure the Navigation is also closed\n\t\t\t\tif (hide === true) {\n\t\t\t\t\temit('toggle-navigation', { open: false })\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.app-details-toggle {\n\tposition: sticky;\n\twidth: var(--default-clickable-area);\n\theight: var(--default-clickable-area);\n\tpadding: $icon-margin;\n\tcursor: pointer;\n\topacity: .6;\n\ttransform: rotate(180deg);\n\tbackground-color: var(--color-main-background);\n\tz-index: 2000;\n\n\ttop: var(--app-navigation-padding);\n\t// Navigation Toggle button width + 2 paddings around\n\tinset-inline-start: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);\n\t&--mobile {\n\t\t// There is no NavigationToggle button\n\t\tinset-inline-start: var(--app-navigation-padding);\n\t}\n\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\topacity: 1;\n\t}\n}\n\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis components provides a wrapper around the main app's content.\n\nSingle-column layouts can just use the default slot. A resizable column\ncan be added by providing content to the named slot `list`.\n\n### CSS variables\nIn the css section some css variables are declared and will be available for\nall the children of the NcAppContent component\n\n### Examples\n\n#### Usage: Single-column content\n```vue\n<template>\n\t<NcAppContent>\n\t\t<h2>Single-column main content</h2>\n\t</NcAppContent>\n</template>\n```\n\n#### Usage: Two resizable columns\n```vue\n<template>\n\t<NcAppContent>\n\t\t<template #list>\n\t\t\t<div>Resizable list content</div>\n\t\t</template>\n\n\t\t<div>Main content</div>\n\t</NcAppContent>\n</template>\n```\n\n#### Overriding Defaults\nThe default, min and max sizes (in percent) of the resizable list column can be overridden.\nThe list size must be between the min and the max width value.\n\n```\n<NcAppContent\n\t:list-size=\"35\"\n\t:list-min-width=\"20\"\n\t:list-max-width=\"45\"\n>...</NcAppContent>\n```\n</docs>\n\n<template>\n\t<main id=\"app-content-vue\" class=\"app-content no-snapper\" :class=\"{ 'app-content--has-list': hasList }\">\n\t\t<h1 v-if=\"pageHeading\" class=\"hidden-visually\">\n\t\t\t{{ pageHeading }}\n\t\t</h1>\n\n\t\t<template v-if=\"hasList\">\n\t\t\t<!-- Mobile view does not allow resizeable panes -->\n\t\t\t<div v-if=\"isMobile || layout === 'no-split'\"\n\t\t\t\tclass=\"app-content-wrapper app-content-wrapper--no-split\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'app-content-wrapper--show-details': showDetails,\n\t\t\t\t\t'app-content-wrapper--show-list': !showDetails,\n\t\t\t\t\t'app-content-wrapper--mobile': isMobile,}\">\n\t\t\t\t<NcAppDetailsToggle v-if=\"showDetails\" @click.native.stop.prevent=\"hideDetails\" />\n\n\t\t\t\t<slot v-if=\"!showDetails\" name=\"list\" />\n\t\t\t\t<slot v-else />\n\t\t\t</div>\n\t\t\t<div v-else-if=\"layout === 'vertical-split' || layout === 'horizontal-split'\" class=\"app-content-wrapper\">\n\t\t\t\t<Splitpanes :horizontal=\"layout === 'horizontal-split'\"\n\t\t\t\t\tclass=\"default-theme\"\n\t\t\t\t\t:class=\"{ 'splitpanes--horizontal': layout === 'horizontal-split',\n\t\t\t\t\t\t'splitpanes--vertical': layout === 'vertical-split'\n\t\t\t\t\t}\"\n\t\t\t\t\t:rtl=\"isRTL\"\n\t\t\t\t\t@resized=\"handlePaneResize\">\n\t\t\t\t\t<Pane class=\"splitpanes__pane-list\"\n\t\t\t\t\t\t:size=\"listPaneSize || paneDefaults.list.size\"\n\t\t\t\t\t\t:min-size=\"paneDefaults.list.min\"\n\t\t\t\t\t\t:max-size=\"paneDefaults.list.max\">\n\t\t\t\t\t\t<!-- @slot Provide a list to the app content -->\n\t\t\t\t\t\t<slot name=\"list\" />\n\t\t\t\t\t</Pane>\n\n\t\t\t\t\t<Pane class=\"splitpanes__pane-details\"\n\t\t\t\t\t\t:size=\"detailsPaneSize\"\n\t\t\t\t\t\t:min-size=\"paneDefaults.details.min\"\n\t\t\t\t\t\t:max-size=\"paneDefaults.details.max\">\n\t\t\t\t\t\t<!-- @slot Provide the main content to the app content -->\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</Pane>\n\t\t\t\t</Splitpanes>\n\t\t\t</div>\n\t\t</template>\n\t\t<!-- @slot Provide the main content to the app content -->\n\t\t<slot v-if=\"!hasList\" />\n\t</main>\n</template>\n\n<script>\nimport NcAppDetailsToggle from './NcAppDetailsToggle.vue'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\n\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { useSwipe } from '@vueuse/core'\nimport { Splitpanes, Pane } from 'splitpanes'\n\nimport 'splitpanes/dist/splitpanes.css'\nimport { emit } from '@nextcloud/event-bus'\nimport { isRTL } from '@nextcloud/l10n'\n\nconst browserStorage = getBuilder('nextcloud').persist().build()\n\n/**\n * App content container to be used for the main content of your app\n *\n */\nexport default {\n\tname: 'NcAppContent',\n\n\tcomponents: {\n\t\tNcAppDetailsToggle,\n\t\tPane,\n\t\tSplitpanes,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Allows to disable the control by swipe of the app navigation open state\n\t\t * @deprecated will be removed with the next version - use `disableSwipe` instead\n\t\t */\n\t\tallowSwipeNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Allows to disable the control by swipe of the app navigation open state.\n\t\t */\n\t\tdisableSwipe: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Allows you to set the default width of the resizable list in % on vertical-split\n\t\t * Allows you to set the default height of the resizable list in % on horizontal-split\n\t\t * Must be between listMinWidth and listMaxWidth\n\t\t */\n\t\tlistSize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 20,\n\t\t},\n\n\t\t/**\n\t\t * Allows you to set the minimum width of the list column in % on vertical-split\n\t\t * Allows you to set the minimum height of the list column in % on horizontal-split\n\t\t */\n\t\tlistMinWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 15,\n\t\t},\n\n\t\t/**\n\t\t * Allows you to set the maximum width of the list column in % on vertical-split\n\t\t * Allows you to set the maximum height of the list column in % on horizontal-split\n\t\t */\n\t\tlistMaxWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 40,\n\t\t},\n\n\t\t/**\n\t\t * Specify the config key for the pane config sizes\n\t\t * Default is the global var appName if you use the webpack-vue-config\n\t\t */\n\t\tpaneConfigKey: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * When in mobile view, only the list or the details are shown.\n\t\t *\n\t\t * If you provide a list, you need to provide a variable\n\t\t * that will be set to true by the user when an element of\n\t\t * the list gets selected. The details will then show a back\n\t\t * arrow to return to the list that will update this prop to false.\n\t\t */\n\t\tshowDetails: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Specify the `<h1>` page heading\n\t\t */\n\t\tpageHeading: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Content layout used when there is a list together with content:\n\t\t * - `vertical-split` - a 2-column layout with list and default content separated vertically\n\t\t * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n\t\t * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n\t\t * On mobile screen `no-split` layout is forced.\n\t\t */\n\t\tlayout: {\n\t\t\ttype: String,\n\t\t\tdefault: 'vertical-split',\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['no-split', 'vertical-split', 'horizontal-split'].includes(value)\n\t\t\t},\n\t\t},\n\t},\n\n\temits: [\n\t\t'update:showDetails',\n\t\t'resize:list',\n\t],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t\tisRTL: isRTL(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcontentHeight: 0,\n\t\t\thasList: false,\n\t\t\thasContent: false,\n\t\t\tswiping: {},\n\t\t\tlistPaneSize: this.restorePaneConfig(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpaneConfigID() {\n\t\t\t// If provided, let's use it\n\t\t\tif (this.paneConfigKey !== '') {\n\t\t\t\treturn `pane-list-size-${this.paneConfigKey}`\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Using the webpack-vue-config, appName is a global variable\n\t\t\t\t// This will throw a ReferenceError when the global variable is missing\n\t\t\t\t// In that case either you provide paneConfigKey or else it fallback\n\t\t\t\t// to a global storage key\n\t\t\t\treturn `pane-list-size-${appName}`\n\t\t\t} catch (e) {\n\t\t\t\tconsole.info('[INFO] AppContent:', 'falling back to global nextcloud pane config')\n\t\t\t\treturn 'pane-list-size-nextcloud'\n\t\t\t}\n\t\t},\n\n\t\tdetailsPaneSize() {\n\t\t\tif (this.listPaneSize) {\n\t\t\t\treturn 100 - this.listPaneSize\n\t\t\t}\n\t\t\treturn this.paneDefaults.details.size\n\t\t},\n\n\t\tpaneDefaults() {\n\t\t\treturn {\n\t\t\t\tlist: {\n\t\t\t\t\tsize: this.listSize,\n\t\t\t\t\tmin: this.listMinWidth,\n\t\t\t\t\tmax: this.listMaxWidth,\n\t\t\t\t},\n\n\t\t\t\t// set the inverse values of the details column\n\t\t\t\t// based on the provided (or default) values of the list column\n\t\t\t\tdetails: {\n\t\t\t\t\tsize: 100 - this.listSize,\n\t\t\t\t\tmin: 100 - this.listMaxWidth,\n\t\t\t\t\tmax: 100 - this.listMinWidth,\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t},\n\n\tupdated() {\n\t\tthis.checkSlots()\n\t},\n\n\tmounted() {\n\t\tif (this.allowSwipeNavigation && !this.disableSwipe) {\n\t\t\tthis.swiping = useSwipe(this.$el, {\n\t\t\t\tonSwipeEnd: this.handleSwipe,\n\t\t\t})\n\t\t}\n\n\t\tthis.checkSlots()\n\t\tthis.restorePaneConfig()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * handle the swipe event\n\t\t *\n\t\t * @param {TouchEvent} e The touch event\n\t\t * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n\t\t */\n\t\thandleSwipe(e, direction) {\n\t\t\tconst minSwipeX = 70\n\t\t\tconst touchZone = 300\n\t\t\tif (Math.abs(this.swiping.lengthX) > minSwipeX) {\n\t\t\t\tif (this.swiping.coordsStart.x < (touchZone / 2) && direction === 'right') {\n\t\t\t\t\temit('toggle-navigation', {\n\t\t\t\t\t\topen: true,\n\t\t\t\t\t})\n\t\t\t\t} else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === 'left') {\n\t\t\t\t\temit('toggle-navigation', {\n\t\t\t\t\t\topen: false,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thandlePaneResize(event) {\n\t\t\tconst listPaneSize = parseInt(event[0].size, 10)\n\t\t\tbrowserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize))\n\t\t\tthis.listPaneSize = listPaneSize\n\t\t\t/**\n\t\t\t * Emitted when the list pane is resized by the user\n\t\t\t */\n\t\t\tthis.$emit('resize:list', { size: listPaneSize })\n\t\t\tconsole.debug('AppContent pane config', listPaneSize)\n\t\t},\n\n\t\t// $slots is not reactive, we need to update this manually\n\t\tcheckSlots() {\n\t\t\tthis.hasList = !!this.$scopedSlots.list\n\t\t\tthis.hasContent = !!this.$scopedSlots.default\n\t\t},\n\n\t\t// browserStorage is not reactive, we need to update this manually\n\t\trestorePaneConfig() {\n\t\t\tconst listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10)\n\t\t\tif (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n\t\t\t\tconsole.debug('AppContent pane config', listPaneSize)\n\t\t\t\tthis.listPaneSize = listPaneSize\n\t\t\t\treturn listPaneSize\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * The user clicked the back arrow from the details view\n\t\t */\n\t\thideDetails() {\n\t\t\tthis.$emit('update:showDetails', false)\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n\n.app-content {\n\tposition: initial;\n\tz-index: 1000;\n\tflex-basis: 100vw;\n\theight: 100%;\n\t// Overriding server styles TODO: cleanup!\n\tmargin: 0 !important;\n\tbackground-color: var(--color-main-background);\n\tmin-width: 0;\n\n\t&:not(.app-content--has-list) {\n\t\toverflow: auto;\n\t}\n}\n\n.app-content-wrapper {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\n// Mobile list/details handling\n.app-content-wrapper--no-split {\n\t&.app-content-wrapper--show-list :deep() {\n\t\t.app-content-list {\n\t\t\tdisplay: flex;\n\t\t}\n\t\t.app-content-details {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\t&.app-content-wrapper--show-details :deep() {\n\t\t.app-content-list {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.app-content-details {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n:deep(.splitpanes.default-theme) {\n\t.app-content-list {\n\t\tmax-width: none;\n\t\t/* Thin scrollbar is hard to catch on resizable columns */\n\t\tscrollbar-width: auto;\n\t}\n\n\t.splitpanes__pane {\n\t\tbackground-color: transparent;\n\t\ttransition: none;\n\n\t\t&-list {\n\t\t\tmin-width: 300px;\n\t\t\tposition: sticky;\n\n\t\t\t@media only screen and (width < $breakpoint-mobile) {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t\t&-details {\n\t\t\toverflow-y: auto;\n\n\t\t\t@media only screen and (width < $breakpoint-mobile) {\n\t\t\t\tmin-width: 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t.splitpanes__splitter {\n\t\tbackground-color: var(--color-main-background);\n\t\t&::before, &::after {\n\t\t\tbackground-color: var(--color-border);\n\t\t}\n\t}\n\n\t&.splitpanes--vertical .splitpanes__splitter {\n\t\tborder-left: 1px solid var(--color-border);\n\t}\n\n\t&.splitpanes--horizontal .splitpanes__splitter {\n\t\tborder-top: 1px solid var(--color-border);\n\t}\n}\n\n.app-content-wrapper--show-list {\n\t:deep(.app-content-list) {\n\t\tmax-width: none;\n\t}\n}\n</style>\n"],"names":["_sfc_main","Tooltip","NcButton","ArrowRight","ArrowLeft","isRTL","useIsMobile","t","emit","getBuilder","Pane","Splitpanes","useSwipe"],"mappings":"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"}
@@ -1,12 +1,15 @@
1
- require('../assets/NcAppNavigation-CBN6X2dT.css');
1
+ require('../assets/NcAppNavigation-CJj8AvqM.css');
2
2
  "use strict";
3
- const Composables_useIsMobile = require("../Composables/useIsMobile.cjs");
4
- const focusTrap$1 = require("./focusTrap-EeXFmjdI.cjs");
5
- const eventBus = require("@nextcloud/event-bus");
6
3
  const focusTrap = require("focus-trap");
7
- const Components_NcAppNavigationList = require("../Components/NcAppNavigationList.cjs");
8
- const NcAppNavigationToggle = require("./NcAppNavigationToggle-Dwg-dMWx.cjs");
4
+ const eventBus = require("@nextcloud/event-bus");
5
+ const tabbable = require("tabbable");
9
6
  const Vue = require("vue");
7
+ const focusTrap$1 = require("./focusTrap-EeXFmjdI.cjs");
8
+ const logger = require("./logger-3HuiEIF6.cjs");
9
+ const Composables_useHotKey = require("../Composables/useHotKey.cjs");
10
+ const Composables_useIsMobile = require("../Composables/useIsMobile.cjs");
11
+ const Components_NcAppNavigationList = require("../Components/NcAppNavigationList.cjs");
12
+ const NcAppNavigationToggle = require("./NcAppNavigationToggle-BbDj_xom.cjs");
10
13
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
11
14
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
12
15
  const Vue__default = /* @__PURE__ */ _interopDefault(Vue);
@@ -72,6 +75,10 @@ const _sfc_main = {
72
75
  escapeDeactivates: false
73
76
  });
74
77
  this.toggleFocusTrap();
78
+ Composables_useHotKey.useHotKey("n", this.onKeyDown, {
79
+ prevent: true,
80
+ stop: true
81
+ });
75
82
  },
76
83
  unmounted() {
77
84
  this.setHasAppNavigation(false);
@@ -84,7 +91,7 @@ const _sfc_main = {
84
91
  *
85
92
  * @param {boolean} [state] set the state instead of inverting the current one
86
93
  */
87
- toggleNavigation(state) {
94
+ async toggleNavigation(state) {
88
95
  if (this.open === state) {
89
96
  eventBus.emit("navigation-toggled", {
90
97
  open: this.open
@@ -94,6 +101,10 @@ const _sfc_main = {
94
101
  this.open = typeof state === "undefined" ? !this.open : state;
95
102
  const bodyStyles = getComputedStyle(document.body);
96
103
  const animationLength = parseInt(bodyStyles.getPropertyValue("--animation-quick")) || 100;
104
+ if (this.open) {
105
+ await this.$nextTick();
106
+ this.focusFirstElement();
107
+ }
97
108
  setTimeout(() => {
98
109
  eventBus.emit("navigation-toggled", {
99
110
  open: this.open
@@ -114,9 +125,31 @@ const _sfc_main = {
114
125
  }
115
126
  },
116
127
  handleEsc() {
117
- if (this.isMobile) {
128
+ if (this.isMobile && this.open) {
118
129
  this.toggleNavigation(false);
119
130
  }
131
+ },
132
+ focusFirstElement() {
133
+ const element = tabbable.tabbable(this.$refs.appNavigationContainer)[0];
134
+ if (element) {
135
+ element.focus();
136
+ logger.logger.debug("Focusing first element in the navigation", { element });
137
+ }
138
+ },
139
+ onKeyDown(event) {
140
+ if (event.key === "n") {
141
+ if (!this.open) {
142
+ this.toggleNavigation(true);
143
+ return;
144
+ }
145
+ if (this.isFocusWithinNavigation()) {
146
+ this.toggleNavigation(false);
147
+ }
148
+ }
149
+ },
150
+ isFocusWithinNavigation() {
151
+ const activeElement = document.activeElement;
152
+ return this.$refs.appNavigationContainer.contains(activeElement);
120
153
  }
121
154
  }
122
155
  };
@@ -134,7 +167,7 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
134
167
  _sfc_staticRenderFns,
135
168
  false,
136
169
  null,
137
- "13cc36d5"
170
+ "1329aac9"
138
171
  );
139
172
  const NcAppNavigation = __component__.exports;
140
173
  exports.NcAppNavigation = NcAppNavigation;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppNavigation-DQnt1SXa.cjs","sources":["../../src/components/NcAppNavigation/NcAppNavigation.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n```vue\n<template>\n\t<div class=\"styleguide-nc-content\">\n\t\t<NcAppNavigation>\n\t\t\t<template #search>\n\t\t\t\t<NcAppNavigationSearch v-model=\"searchValue\">\n\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t<NcActions>\n\t\t\t\t\t\t\t<NcActionButton close-after-click @click=\"showModal = true\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconCog :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tApp settings (close after click)\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton @click=\"showModal = true\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconCog :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tApp settings (handle only click)\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</NcActions>\n\t\t\t\t\t</template>\n\t\t\t\t</NcAppNavigationSearch>\n\t\t\t</template>\n\t\t\t<template #list>\n\t\t\t\t<NcAppNavigationItem v-for=\"item in items\" :key=\"item\" :name=\"item\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconCheck :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t</template>\n\t\t\t<template #footer>\n\t\t\t\t<div class=\"navigation__footer\">\n\t\t\t\t\t<NcButton wide @click=\"showModal = true\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconCog />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tApp settings\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcModal v-if=\"showModal\" name=\"Modal for focus-trap check\" @close=\"showModal = false\">\n\t\t\t\t\t\t<div class=\"modal-content\">\n\t\t\t\t\t\t\t<h4>Focus-trap should be locked inside the modal</h4>\n\t\t\t\t\t\t\t<NcTextField :value.sync=\"modalValue\" label=\"Focus me\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</NcModal>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</NcAppNavigation>\n\t</div>\n</template>\n\n<script>\n\timport IconCheck from 'vue-material-design-icons/Check'\n\timport IconCog from 'vue-material-design-icons/Cog'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconCheck,\n\t\t\tIconCog,\n\t\t},\n\t\tprovide() {\n\t\t\treturn {\n\t\t\t\t'NcContent:setHasAppNavigation': () => {},\n\t\t\t}\n\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\titems: Array.from({ length: 5 }, (v, i) => `Item ${i+1}`),\n\t\t\t\tsearchValue: '',\n\t\t\t\tmodalValue: '',\n\t\t\t\tshowModal: false,\n\t\t\t}\n\t\t},\n\t}\n</script>\n\n<style scoped>\n\t/* Mock NcContent */\n\t.styleguide-nc-content {\n\t\tposition: relative;\n\t\theight: 300px;\n\t\tbackground-color: var(--color-background-plain);\n\t\toverflow: hidden;\n\t}\n\n\t.navigation__header,\n\t.navigation__footer {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 4px;\n\t\tpadding: 4px;\n\t}\n\n\t.modal-content {\n\t\theight: 120px;\n\t\tpadding: 10px;\n\t}\n</style>\n```\n\nThe navigation bar can be open and closed from anywhere in the app using the\nnextcloud event bus.\n\n### Install the event bus package\n\n```bash\nnpm i -S @nextcloud/event-bus\n```\n\n### Usage\n\n#### Open the navigation\n\n```js static\nimport { emit } from '@nextcloud/event-bus'\nemit('toggle-navigation', {\n\topen: true,\n})\n```\n\n#### Close the navigation\n\n```js static\nimport { emit } from '@nextcloud/event-bus'\nemit('toggle-navigation', {\n\topen: false,\n})\n```\n\n</docs>\n\n<template>\n\t<div ref=\"appNavigationContainer\"\n\t\tclass=\"app-navigation\"\n\t\t:class=\"{'app-navigation--close':!open }\">\n\t\t<nav id=\"app-navigation-vue\"\n\t\t\t:aria-hidden=\"open ? 'false' : 'true'\"\n\t\t\t:aria-label=\"ariaLabel || undefined\"\n\t\t\t:aria-labelledby=\"ariaLabelledby || undefined\"\n\t\t\tclass=\"app-navigation__content\"\n\t\t\t:inert=\"!open || undefined\"\n\t\t\t@keydown.esc=\"handleEsc\">\n\t\t\t<div class=\"app-navigation__search\">\n\t\t\t\t<!-- @slot For in-app search you can pass a `NcAppNavigationSearch` component as the slot content. -->\n\t\t\t\t<slot name=\"search\" />\n\t\t\t</div>\n\t\t\t<div class=\"app-navigation__body\" :class=\"{ 'app-navigation__body--no-list': !$scopedSlots.list }\">\n\t\t\t\t<!-- @slot The main content of the navigation. If no list is passed to the #list slot, stretched vertically. -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\n\t\t\t<NcAppNavigationList v-if=\"$scopedSlots.list\" class=\"app-navigation__list\">\n\t\t\t\t<!-- @slot List for Navigation list items. Stretched between the main content and the footer -->\n\t\t\t\t<slot name=\"list\" />\n\t\t\t</NcAppNavigationList>\n\n\t\t\t<!-- @slot Footer for e.g. NcAppNavigationSettings -->\n\t\t\t<slot name=\"footer\" />\n\t\t</nav>\n\t\t<NcAppNavigationToggle :open=\"open\" @update:open=\"toggleNavigation\" />\n\t</div>\n</template>\n\n<script>\nimport { createFocusTrap } from 'focus-trap'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { tabbable } from 'tabbable'\nimport Vue from 'vue'\n\nimport { getTrapStack } from '../../utils/focusTrap.js'\nimport { logger } from '../../utils/logger.ts'\nimport { useHotKey } from '../../composables/useHotKey/index.js'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\n\nimport NcAppNavigationList from '../NcAppNavigationList/index.js'\nimport NcAppNavigationToggle from '../NcAppNavigationToggle/index.js'\n\nexport default {\n\tname: 'NcAppNavigation',\n\n\tcomponents: {\n\t\tNcAppNavigationList,\n\t\tNcAppNavigationToggle,\n\t},\n\n\t// Injected from NcContent\n\tinject: {\n\t\tsetHasAppNavigation: {\n\t\t\tdefault: () => () => Vue.util.warn('NcAppNavigation is not mounted inside NcContent, this is probably an error.'),\n\t\t\tfrom: 'NcContent:setHasAppNavigation',\n\t\t},\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The aria label to describe the navigation\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * aria-labelledby attribute to describe the navigation\n\t\t */\n\t\tariaLabelledby: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\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\topen: !this.isMobile,\n\t\t\tfocusTrap: null,\n\t\t}\n\t},\n\n\twatch: {\n\t\tisMobile() {\n\t\t\tthis.open = !this.isMobile\n\t\t\tthis.toggleFocusTrap()\n\t\t},\n\t\topen() {\n\t\t\tthis.toggleFocusTrap()\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.setHasAppNavigation(true)\n\t\tsubscribe('toggle-navigation', this.toggleNavigationByEventBus)\n\t\t// Emit an event with the initial state of the navigation\n\t\temit('navigation-toggled', {\n\t\t\topen: this.open,\n\t\t})\n\n\t\tthis.focusTrap = createFocusTrap(this.$refs.appNavigationContainer, {\n\t\t\tallowOutsideClick: true,\n\t\t\tfallbackFocus: this.$refs.appNavigationContainer,\n\t\t\ttrapStack: getTrapStack(),\n\t\t\tescapeDeactivates: false,\n\t\t})\n\t\tthis.toggleFocusTrap()\n\n\t\t// N opens + focuses the navigation\n\t\tuseHotKey('n', this.onKeyDown, {\n\t\t\tprevent: true,\n\t\t\tstop: true,\n\t\t})\n\t},\n\tunmounted() {\n\t\tthis.setHasAppNavigation(false)\n\t\tunsubscribe('toggle-navigation', this.toggleNavigationByEventBus)\n\t\tthis.focusTrap.deactivate()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the navigation\n\t\t *\n\t\t * @param {boolean} [state] set the state instead of inverting the current one\n\t\t */\n\t\tasync toggleNavigation(state) {\n\t\t\t// Early return if already in that state\n\t\t\tif (this.open === state) {\n\t\t\t\temit('navigation-toggled', {\n\t\t\t\t\topen: this.open,\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.open = (typeof state === 'undefined') ? !this.open : state\n\t\t\tconst bodyStyles = getComputedStyle(document.body)\n\t\t\tconst animationLength = parseInt(bodyStyles.getPropertyValue('--animation-quick')) || 100\n\n\t\t\t// If we just opened, we focus the first element\n\t\t\tif (this.open) {\n\t\t\t\tawait this.$nextTick()\n\t\t\t\tthis.focusFirstElement()\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\temit('navigation-toggled', {\n\t\t\t\t\topen: this.open,\n\t\t\t\t})\n\t\t\t// We wait for 1.5 times the animation length to give the animation time to really finish.\n\t\t\t}, 1.5 * animationLength)\n\t\t},\n\n\t\ttoggleNavigationByEventBus({ open }) {\n\t\t\tthis.toggleNavigation(open)\n\t\t},\n\n\t\t/**\n\t\t * Activate focus trap if it is currently needed, otherwise deactivate\n\t\t */\n\t\ttoggleFocusTrap() {\n\t\t\tif (this.isMobile && this.open) {\n\t\t\t\tthis.focusTrap.activate()\n\t\t\t} else {\n\t\t\t\tthis.focusTrap.deactivate()\n\t\t\t}\n\t\t},\n\n\t\thandleEsc() {\n\t\t\tif (this.isMobile && this.open) {\n\t\t\t\tthis.toggleNavigation(false)\n\t\t\t}\n\t\t},\n\n\t\tfocusFirstElement() {\n\t\t\tconst element = tabbable(this.$refs.appNavigationContainer)[0]\n\t\t\tif (element) {\n\t\t\t\telement.focus()\n\t\t\t\tlogger.debug('Focusing first element in the navigation', { element })\n\t\t\t}\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\t// toggle the navigation on 'n' key\n\t\t\tif (event.key === 'n') {\n\t\t\t\t// If the navigation is closed, open it\n\t\t\t\tif (!this.open) {\n\t\t\t\t\tthis.toggleNavigation(true)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// If the navigation is open and the focus is within the navigation, close it\n\t\t\t\tif (this.isFocusWithinNavigation()) {\n\t\t\t\t\tthis.toggleNavigation(false)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tisFocusWithinNavigation() {\n\t\t\tconst activeElement = document.activeElement\n\t\t\treturn this.$refs.appNavigationContainer.contains(activeElement)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.app-navigation,\n.app-content {\n\t/** Distance of the app navigation toggle and the first navigation item to the top edge of the app content container */\n\t--app-navigation-padding: #{$app-navigation-padding};\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.app-navigation {\n\t// Set scoped variable override\n\t// Using --color-text-maxcontrast as a fallback evaluates to an invalid value as it references itself in this scope instead of the variable defined higher up\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));\n\ttransition: transform var(--animation-quick), margin var(--animation-quick);\n\twidth: $navigation-width;\n\t// Left toggle button padding + toggle button + right padding from NcAppContent\n\t--app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));\n\tmax-width: var(--app-navigation-max-width);\n\tposition: relative;\n\ttop: 0;\n\tinset-inline-start: 0;\n\tpadding: 0px;\n\t// Above NcAppContent\n\tz-index: 1800;\n\theight: 100%;\n\tbox-sizing: border-box;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tbackground-color: var(--color-main-background-blur, var(--color-main-background));\n\t-webkit-backdrop-filter: var(--filter-background-blur, none);\n\tbackdrop-filter: var(--filter-background-blur, none);\n\n\t&--close {\n\t\tmargin-inline-start: calc(-1 * min($navigation-width, var(--app-navigation-max-width)));\n\t}\n\n\t&__search {\n\t\twidth: 100%;\n\t}\n\n\t&__body {\n\t\toverflow-y: scroll;\n\t}\n\n\t// For legacy purposes support passing a bare list to the content in #default slot and including #footer slot\n\t// Same styles as NcAppNavigationList\n\t&__content > ul {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: var(--default-grid-baseline, 4px);\n\t\tpadding: var(--app-navigation-padding);\n\t}\n\n\t// Always stretch the navigation list\n\t& &__list {\n\t\theight: 100%;\n\t}\n\n\t// Stretch the main content if there is no stretched list\n\t&__body--no-list {\n\t\tflex: 1 1 auto;\n\t\toverflow: auto;\n\t\theight: 100%;\n\t}\n\n\t&__content {\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n}\n\n// Add extra border for high contrast mode\n[data-themes*=\"highcontrast\"] {\n\t.app-navigation {\n\t\tborder-inline-end: 1px solid var(--color-border);\n\t}\n}\n\n// When on mobile, we make the navigation slide over the NcAppContent\n@media only screen and (max-width: $breakpoint-mobile) {\n\t.app-navigation {\n\t\tposition: absolute;\n\t\tborder-inline-end: 1px solid var(--color-border);\n\t}\n}\n\n// Put the toggle behind NcAppSidebar on small screens\n@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-navigation {\n\t\tz-index: 1400;\n\t}\n}\n\n</style>\n"],"names":["NcAppNavigationList","NcAppNavigationToggle","Vue","useIsMobile","subscribe","emit","createFocusTrap","getTrapStack","useHotKey","unsubscribe","tabbable","logger"],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- import '../assets/NcAppNavigation-CBN6X2dT.css';
2
- import { useIsMobile } from "../Composables/useIsMobile.mjs";
3
- import { g as getTrapStack } from "./focusTrap-Cecv_gjR.mjs";
4
- import { subscribe, emit, unsubscribe } from "@nextcloud/event-bus";
1
+ import '../assets/NcAppNavigation-CJj8AvqM.css';
5
2
  import { createFocusTrap } from "focus-trap";
6
- import NcAppNavigationList from "../Components/NcAppNavigationList.mjs";
7
- import { N as NcAppNavigationToggle } from "./NcAppNavigationToggle-Dw0ZPjy2.mjs";
3
+ import { subscribe, emit, unsubscribe } from "@nextcloud/event-bus";
4
+ import { tabbable } from "tabbable";
8
5
  import Vue from "vue";
6
+ import { g as getTrapStack } from "./focusTrap-Cecv_gjR.mjs";
7
+ import { l as logger } from "./logger-D3RVzcfQ.mjs";
8
+ import { useHotKey } from "../Composables/useHotKey.mjs";
9
+ import { useIsMobile } from "../Composables/useIsMobile.mjs";
10
+ import NcAppNavigationList from "../Components/NcAppNavigationList.mjs";
11
+ import { N as NcAppNavigationToggle } from "./NcAppNavigationToggle-Z_4QmE4l.mjs";
9
12
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
10
13
  const _sfc_main = {
11
14
  name: "NcAppNavigation",
@@ -69,6 +72,10 @@ const _sfc_main = {
69
72
  escapeDeactivates: false
70
73
  });
71
74
  this.toggleFocusTrap();
75
+ useHotKey("n", this.onKeyDown, {
76
+ prevent: true,
77
+ stop: true
78
+ });
72
79
  },
73
80
  unmounted() {
74
81
  this.setHasAppNavigation(false);
@@ -81,7 +88,7 @@ const _sfc_main = {
81
88
  *
82
89
  * @param {boolean} [state] set the state instead of inverting the current one
83
90
  */
84
- toggleNavigation(state) {
91
+ async toggleNavigation(state) {
85
92
  if (this.open === state) {
86
93
  emit("navigation-toggled", {
87
94
  open: this.open
@@ -91,6 +98,10 @@ const _sfc_main = {
91
98
  this.open = typeof state === "undefined" ? !this.open : state;
92
99
  const bodyStyles = getComputedStyle(document.body);
93
100
  const animationLength = parseInt(bodyStyles.getPropertyValue("--animation-quick")) || 100;
101
+ if (this.open) {
102
+ await this.$nextTick();
103
+ this.focusFirstElement();
104
+ }
94
105
  setTimeout(() => {
95
106
  emit("navigation-toggled", {
96
107
  open: this.open
@@ -111,9 +122,31 @@ const _sfc_main = {
111
122
  }
112
123
  },
113
124
  handleEsc() {
114
- if (this.isMobile) {
125
+ if (this.isMobile && this.open) {
115
126
  this.toggleNavigation(false);
116
127
  }
128
+ },
129
+ focusFirstElement() {
130
+ const element = tabbable(this.$refs.appNavigationContainer)[0];
131
+ if (element) {
132
+ element.focus();
133
+ logger.debug("Focusing first element in the navigation", { element });
134
+ }
135
+ },
136
+ onKeyDown(event) {
137
+ if (event.key === "n") {
138
+ if (!this.open) {
139
+ this.toggleNavigation(true);
140
+ return;
141
+ }
142
+ if (this.isFocusWithinNavigation()) {
143
+ this.toggleNavigation(false);
144
+ }
145
+ }
146
+ },
147
+ isFocusWithinNavigation() {
148
+ const activeElement = document.activeElement;
149
+ return this.$refs.appNavigationContainer.contains(activeElement);
117
150
  }
118
151
  }
119
152
  };
@@ -131,7 +164,7 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
131
164
  _sfc_staticRenderFns,
132
165
  false,
133
166
  null,
134
- "13cc36d5"
167
+ "1329aac9"
135
168
  );
136
169
  const NcAppNavigation = __component__.exports;
137
170
  export {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppNavigation-ZFb93kAU.mjs","sources":["../../src/components/NcAppNavigation/NcAppNavigation.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n```vue\n<template>\n\t<div class=\"styleguide-nc-content\">\n\t\t<NcAppNavigation>\n\t\t\t<template #search>\n\t\t\t\t<NcAppNavigationSearch v-model=\"searchValue\">\n\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t<NcActions>\n\t\t\t\t\t\t\t<NcActionButton close-after-click @click=\"showModal = true\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconCog :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tApp settings (close after click)\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton @click=\"showModal = true\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconCog :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tApp settings (handle only click)\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</NcActions>\n\t\t\t\t\t</template>\n\t\t\t\t</NcAppNavigationSearch>\n\t\t\t</template>\n\t\t\t<template #list>\n\t\t\t\t<NcAppNavigationItem v-for=\"item in items\" :key=\"item\" :name=\"item\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconCheck :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t</template>\n\t\t\t<template #footer>\n\t\t\t\t<div class=\"navigation__footer\">\n\t\t\t\t\t<NcButton wide @click=\"showModal = true\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconCog />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tApp settings\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcModal v-if=\"showModal\" name=\"Modal for focus-trap check\" @close=\"showModal = false\">\n\t\t\t\t\t\t<div class=\"modal-content\">\n\t\t\t\t\t\t\t<h4>Focus-trap should be locked inside the modal</h4>\n\t\t\t\t\t\t\t<NcTextField :value.sync=\"modalValue\" label=\"Focus me\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</NcModal>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</NcAppNavigation>\n\t</div>\n</template>\n\n<script>\n\timport IconCheck from 'vue-material-design-icons/Check'\n\timport IconCog from 'vue-material-design-icons/Cog'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconCheck,\n\t\t\tIconCog,\n\t\t},\n\t\tprovide() {\n\t\t\treturn {\n\t\t\t\t'NcContent:setHasAppNavigation': () => {},\n\t\t\t}\n\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\titems: Array.from({ length: 5 }, (v, i) => `Item ${i+1}`),\n\t\t\t\tsearchValue: '',\n\t\t\t\tmodalValue: '',\n\t\t\t\tshowModal: false,\n\t\t\t}\n\t\t},\n\t}\n</script>\n\n<style scoped>\n\t/* Mock NcContent */\n\t.styleguide-nc-content {\n\t\tposition: relative;\n\t\theight: 300px;\n\t\tbackground-color: var(--color-background-plain);\n\t\toverflow: hidden;\n\t}\n\n\t.navigation__header,\n\t.navigation__footer {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 4px;\n\t\tpadding: 4px;\n\t}\n\n\t.modal-content {\n\t\theight: 120px;\n\t\tpadding: 10px;\n\t}\n</style>\n```\n\nThe navigation bar can be open and closed from anywhere in the app using the\nnextcloud event bus.\n\n### Install the event bus package\n\n```bash\nnpm i -S @nextcloud/event-bus\n```\n\n### Usage\n\n#### Open the navigation\n\n```js static\nimport { emit } from '@nextcloud/event-bus'\nemit('toggle-navigation', {\n\topen: true,\n})\n```\n\n#### Close the navigation\n\n```js static\nimport { emit } from '@nextcloud/event-bus'\nemit('toggle-navigation', {\n\topen: false,\n})\n```\n\n</docs>\n\n<template>\n\t<div ref=\"appNavigationContainer\"\n\t\tclass=\"app-navigation\"\n\t\t:class=\"{'app-navigation--close':!open }\">\n\t\t<nav id=\"app-navigation-vue\"\n\t\t\t:aria-hidden=\"open ? 'false' : 'true'\"\n\t\t\t:aria-label=\"ariaLabel || undefined\"\n\t\t\t:aria-labelledby=\"ariaLabelledby || undefined\"\n\t\t\tclass=\"app-navigation__content\"\n\t\t\t:inert=\"!open || undefined\"\n\t\t\t@keydown.esc=\"handleEsc\">\n\t\t\t<div class=\"app-navigation__search\">\n\t\t\t\t<!-- @slot For in-app search you can pass a `NcAppNavigationSearch` component as the slot content. -->\n\t\t\t\t<slot name=\"search\" />\n\t\t\t</div>\n\t\t\t<div class=\"app-navigation__body\" :class=\"{ 'app-navigation__body--no-list': !$scopedSlots.list }\">\n\t\t\t\t<!-- @slot The main content of the navigation. If no list is passed to the #list slot, stretched vertically. -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\n\t\t\t<NcAppNavigationList v-if=\"$scopedSlots.list\" class=\"app-navigation__list\">\n\t\t\t\t<!-- @slot List for Navigation list items. Stretched between the main content and the footer -->\n\t\t\t\t<slot name=\"list\" />\n\t\t\t</NcAppNavigationList>\n\n\t\t\t<!-- @slot Footer for e.g. NcAppNavigationSettings -->\n\t\t\t<slot name=\"footer\" />\n\t\t</nav>\n\t\t<NcAppNavigationToggle :open=\"open\" @update:open=\"toggleNavigation\" />\n\t</div>\n</template>\n\n<script>\nimport { createFocusTrap } from 'focus-trap'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { tabbable } from 'tabbable'\nimport Vue from 'vue'\n\nimport { getTrapStack } from '../../utils/focusTrap.js'\nimport { logger } from '../../utils/logger.ts'\nimport { useHotKey } from '../../composables/useHotKey/index.js'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\n\nimport NcAppNavigationList from '../NcAppNavigationList/index.js'\nimport NcAppNavigationToggle from '../NcAppNavigationToggle/index.js'\n\nexport default {\n\tname: 'NcAppNavigation',\n\n\tcomponents: {\n\t\tNcAppNavigationList,\n\t\tNcAppNavigationToggle,\n\t},\n\n\t// Injected from NcContent\n\tinject: {\n\t\tsetHasAppNavigation: {\n\t\t\tdefault: () => () => Vue.util.warn('NcAppNavigation is not mounted inside NcContent, this is probably an error.'),\n\t\t\tfrom: 'NcContent:setHasAppNavigation',\n\t\t},\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The aria label to describe the navigation\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * aria-labelledby attribute to describe the navigation\n\t\t */\n\t\tariaLabelledby: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\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\topen: !this.isMobile,\n\t\t\tfocusTrap: null,\n\t\t}\n\t},\n\n\twatch: {\n\t\tisMobile() {\n\t\t\tthis.open = !this.isMobile\n\t\t\tthis.toggleFocusTrap()\n\t\t},\n\t\topen() {\n\t\t\tthis.toggleFocusTrap()\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.setHasAppNavigation(true)\n\t\tsubscribe('toggle-navigation', this.toggleNavigationByEventBus)\n\t\t// Emit an event with the initial state of the navigation\n\t\temit('navigation-toggled', {\n\t\t\topen: this.open,\n\t\t})\n\n\t\tthis.focusTrap = createFocusTrap(this.$refs.appNavigationContainer, {\n\t\t\tallowOutsideClick: true,\n\t\t\tfallbackFocus: this.$refs.appNavigationContainer,\n\t\t\ttrapStack: getTrapStack(),\n\t\t\tescapeDeactivates: false,\n\t\t})\n\t\tthis.toggleFocusTrap()\n\n\t\t// N opens + focuses the navigation\n\t\tuseHotKey('n', this.onKeyDown, {\n\t\t\tprevent: true,\n\t\t\tstop: true,\n\t\t})\n\t},\n\tunmounted() {\n\t\tthis.setHasAppNavigation(false)\n\t\tunsubscribe('toggle-navigation', this.toggleNavigationByEventBus)\n\t\tthis.focusTrap.deactivate()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the navigation\n\t\t *\n\t\t * @param {boolean} [state] set the state instead of inverting the current one\n\t\t */\n\t\tasync toggleNavigation(state) {\n\t\t\t// Early return if already in that state\n\t\t\tif (this.open === state) {\n\t\t\t\temit('navigation-toggled', {\n\t\t\t\t\topen: this.open,\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.open = (typeof state === 'undefined') ? !this.open : state\n\t\t\tconst bodyStyles = getComputedStyle(document.body)\n\t\t\tconst animationLength = parseInt(bodyStyles.getPropertyValue('--animation-quick')) || 100\n\n\t\t\t// If we just opened, we focus the first element\n\t\t\tif (this.open) {\n\t\t\t\tawait this.$nextTick()\n\t\t\t\tthis.focusFirstElement()\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\temit('navigation-toggled', {\n\t\t\t\t\topen: this.open,\n\t\t\t\t})\n\t\t\t// We wait for 1.5 times the animation length to give the animation time to really finish.\n\t\t\t}, 1.5 * animationLength)\n\t\t},\n\n\t\ttoggleNavigationByEventBus({ open }) {\n\t\t\tthis.toggleNavigation(open)\n\t\t},\n\n\t\t/**\n\t\t * Activate focus trap if it is currently needed, otherwise deactivate\n\t\t */\n\t\ttoggleFocusTrap() {\n\t\t\tif (this.isMobile && this.open) {\n\t\t\t\tthis.focusTrap.activate()\n\t\t\t} else {\n\t\t\t\tthis.focusTrap.deactivate()\n\t\t\t}\n\t\t},\n\n\t\thandleEsc() {\n\t\t\tif (this.isMobile && this.open) {\n\t\t\t\tthis.toggleNavigation(false)\n\t\t\t}\n\t\t},\n\n\t\tfocusFirstElement() {\n\t\t\tconst element = tabbable(this.$refs.appNavigationContainer)[0]\n\t\t\tif (element) {\n\t\t\t\telement.focus()\n\t\t\t\tlogger.debug('Focusing first element in the navigation', { element })\n\t\t\t}\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\t// toggle the navigation on 'n' key\n\t\t\tif (event.key === 'n') {\n\t\t\t\t// If the navigation is closed, open it\n\t\t\t\tif (!this.open) {\n\t\t\t\t\tthis.toggleNavigation(true)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// If the navigation is open and the focus is within the navigation, close it\n\t\t\t\tif (this.isFocusWithinNavigation()) {\n\t\t\t\t\tthis.toggleNavigation(false)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tisFocusWithinNavigation() {\n\t\t\tconst activeElement = document.activeElement\n\t\t\treturn this.$refs.appNavigationContainer.contains(activeElement)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.app-navigation,\n.app-content {\n\t/** Distance of the app navigation toggle and the first navigation item to the top edge of the app content container */\n\t--app-navigation-padding: #{$app-navigation-padding};\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.app-navigation {\n\t// Set scoped variable override\n\t// Using --color-text-maxcontrast as a fallback evaluates to an invalid value as it references itself in this scope instead of the variable defined higher up\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));\n\ttransition: transform var(--animation-quick), margin var(--animation-quick);\n\twidth: $navigation-width;\n\t// Left toggle button padding + toggle button + right padding from NcAppContent\n\t--app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));\n\tmax-width: var(--app-navigation-max-width);\n\tposition: relative;\n\ttop: 0;\n\tinset-inline-start: 0;\n\tpadding: 0px;\n\t// Above NcAppContent\n\tz-index: 1800;\n\theight: 100%;\n\tbox-sizing: border-box;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tbackground-color: var(--color-main-background-blur, var(--color-main-background));\n\t-webkit-backdrop-filter: var(--filter-background-blur, none);\n\tbackdrop-filter: var(--filter-background-blur, none);\n\n\t&--close {\n\t\tmargin-inline-start: calc(-1 * min($navigation-width, var(--app-navigation-max-width)));\n\t}\n\n\t&__search {\n\t\twidth: 100%;\n\t}\n\n\t&__body {\n\t\toverflow-y: scroll;\n\t}\n\n\t// For legacy purposes support passing a bare list to the content in #default slot and including #footer slot\n\t// Same styles as NcAppNavigationList\n\t&__content > ul {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: var(--default-grid-baseline, 4px);\n\t\tpadding: var(--app-navigation-padding);\n\t}\n\n\t// Always stretch the navigation list\n\t& &__list {\n\t\theight: 100%;\n\t}\n\n\t// Stretch the main content if there is no stretched list\n\t&__body--no-list {\n\t\tflex: 1 1 auto;\n\t\toverflow: auto;\n\t\theight: 100%;\n\t}\n\n\t&__content {\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n}\n\n// Add extra border for high contrast mode\n[data-themes*=\"highcontrast\"] {\n\t.app-navigation {\n\t\tborder-inline-end: 1px solid var(--color-border);\n\t}\n}\n\n// When on mobile, we make the navigation slide over the NcAppContent\n@media only screen and (max-width: $breakpoint-mobile) {\n\t.app-navigation {\n\t\tposition: absolute;\n\t\tborder-inline-end: 1px solid var(--color-border);\n\t}\n}\n\n// Put the toggle behind NcAppSidebar on small screens\n@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-navigation {\n\t\tz-index: 1400;\n\t}\n}\n\n</style>\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import '../assets/NcAppNavigationCaption-Dt5K_hKD.css';
2
- import { N as NcActions } from "./NcActions-NA1n25Vt.mjs";
1
+ import '../assets/NcAppNavigationCaption-DU9PxTvu.css';
2
+ import { N as NcActions } from "./NcActions-DV02tDLT.mjs";
3
3
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
4
4
  const _sfc_main = {
5
5
  name: "NcAppNavigationCaption",
@@ -69,7 +69,7 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
69
69
  _sfc_staticRenderFns,
70
70
  false,
71
71
  null,
72
- "af6cfb9c"
72
+ "1133b4da"
73
73
  );
74
74
  const NcAppNavigationCaption = __component__.exports;
75
75
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigationCaption-DBKM-x5x.mjs","sources":["../../src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Basic usage\n\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationCaption\n\t\t\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconPlus :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tThis is an action\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationCaption>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<script>\n\timport IconPlus from 'vue-material-design-icons/Plus.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconPlus,\n\t\t},\n\t}\n\t</script>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n### Element with a slot for custom actions icon\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationCaption\n\t\t\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t\t\t<template #actionsTriggerIcon>\n\t\t\t\t\t\t\t<IconPlus slot=\"icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconPencil :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tRename\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconDelete :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconArrowRight :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tValidate\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconDownload :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tDownload\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationCaption>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<script>\n\t\timport IconArrowRight from 'vue-material-design-icons/ArrowRight.vue'\n\t\timport IconDelete from 'vue-material-design-icons/Delete.vue'\n\t\timport IconDownload from 'vue-material-design-icons/Download.vue'\n\t\timport IconPencil from 'vue-material-design-icons/Pencil.vue'\n\t\timport IconPlus from 'vue-material-design-icons/Plus.vue'\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tIconArrowRight,\n\t\t\t\tIconDelete,\n\t\t\t\tIconDownload,\n\t\t\t\tIconPencil,\n\t\t\t\tIconPlus,\n\t\t\t}\n\t\t}\n\t</script>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n### Element used as a heading\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<!-- if you need multiple lists you can use it in the default slot like this: -->\n\t\t\t\t<NcAppNavigationCaption heading-id=\"people-heading\"\n\t\t\t\t\tis-heading\n\t\t\t\t\tname=\"People\" />\n\t\t\t\t<NcAppNavigationList aria-labelledby=\"people-heading\">\n\t\t\t\t\t<NcAppNavigationItem name=\"Emma\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Jane\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Jake\" />\n\t\t\t\t</NcAppNavigationList>\n\t\t\t\t<NcAppNavigationCaption heading-id=\"places-heading\"\n\t\t\t\t\tis-heading\n\t\t\t\t\tname=\"Places\" />\n\t\t\t\t<NcAppNavigationList aria-labelledby=\"places-heading\">\n\t\t\t\t\t<NcAppNavigationItem name=\"America\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Australia\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Europe\" />\n\t\t\t\t</NcAppNavigationList>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n</docs>\n\n<template>\n\t<component :is=\"wrapperTag\"\n\t\tclass=\"app-navigation-caption\"\n\t\t:class=\"{ 'app-navigation-caption--heading': isHeading }\">\n\t\t<!-- Name of the caption -->\n\t\t<component :is=\"captionTag\"\n\t\t\t:id=\"headingId\"\n\t\t\tclass=\"app-navigation-caption__name\">\n\t\t\t{{ name }}\n\t\t</component>\n\n\t\t<!-- Actions -->\n\t\t<div v-if=\"hasActions\"\n\t\t\tclass=\"app-navigation-caption__actions\">\n\t\t\t<NcActions v-bind=\"$attrs\"\n\t\t\t\tv-on=\"$listeners\">\n\t\t\t\t<!-- @slot Slot for the actions menu -->\n\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t<template #icon>\n\t\t\t\t\t<slot name=\"actionsTriggerIcon\" />\n\t\t\t\t</template>\n\t\t\t</NcActions>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport NcActions from '../NcActions/index.js'\n\nexport default {\n\tname: 'NcAppNavigationCaption',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tinheritAttrs: false,\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `id` to set on the inner caption\n\t\t * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n\t\t */\n\t\theadingId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable when used as a heading\n\t\t * e.g. Before NcAppNavigationList\n\t\t */\n\t\tisHeading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * If `isHeading` is set, this defines the heading level that should be used\n\t\t */\n\t\theadingLevel: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\n\t\t/**\n\t\t * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n\t\t */\n\t\t// Not an actual prop but needed to show in vue-styleguidist docs\n\t\t// eslint-disable-next-line\n\t\t' ': {},\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isHeading ? 'div' : 'li'\n\t\t},\n\t\tcaptionTag() {\n\t\t\t// Limit to at least h2 as h1 is considered invalid and reserved\n\t\t\tconst headingLevel = Math.max(2, this.headingLevel)\n\t\t\treturn this.isHeading ? `h${headingLevel}` : 'span'\n\t\t},\n\t\t// Check if the actions slot is populated\n\t\thasActions() {\n\t\t\treturn !!this.$slots.actions\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.app-navigation-caption {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t&--heading {\n\t\tpadding: var(--app-navigation-padding);\n\t\t&:not(:first-child):not(:last-child) {\n\t\t\tpadding: 0 var(--app-navigation-padding);\n\t\t}\n\t}\n\n\t&__name {\n\t\tfont-weight: bold;\n\t\tcolor: var(--color-main-text);\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: var(--default-clickable-area);\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tbox-shadow: none !important;\n\t\tflex-shrink: 1;\n\t\t// padding to align the name with the icon of app navigation items\n\t\tpadding: 0 calc(var(--default-grid-baseline, 4px) * 2) 0 calc(var(--default-grid-baseline, 4px) * 2);\n\t\tpadding-right: 0;\n\t\tmargin-top: 0px;\n\t\tmargin-bottom: var(--default-grid-baseline);\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 var(--default-clickable-area);\n\t}\n}\n\n// extra top space if it's not the first item on the list\n.app-navigation-caption:not(:first-child) {\n\tmargin-top: calc(var(--default-clickable-area) / 2);\n}\n</style>\n"],"names":[],"mappings":";;AAmLA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,cAAA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,KAAA,CAAA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,QAAA;AAAA,IACA;AAAA,IACA,aAAA;AAEA,YAAA,eAAA,KAAA,IAAA,GAAA,KAAA,YAAA;AACA,aAAA,KAAA,YAAA,IAAA,YAAA,KAAA;AAAA,IACA;AAAA;AAAA,IAEA,aAAA;AACA,aAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcAppNavigationCaption-DXufL2i4.mjs","sources":["../../src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Basic usage\n\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationCaption\n\t\t\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconPlus :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tThis is an action\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationCaption>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<script>\n\timport IconPlus from 'vue-material-design-icons/Plus.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconPlus,\n\t\t},\n\t}\n\t</script>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n### Element with a slot for custom actions icon\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationCaption\n\t\t\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t\t\t<template #actionsTriggerIcon>\n\t\t\t\t\t\t\t<IconPlus slot=\"icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconPencil :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tRename\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconDelete :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconArrowRight :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tValidate\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconDownload :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tDownload\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationCaption>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<script>\n\t\timport IconArrowRight from 'vue-material-design-icons/ArrowRight.vue'\n\t\timport IconDelete from 'vue-material-design-icons/Delete.vue'\n\t\timport IconDownload from 'vue-material-design-icons/Download.vue'\n\t\timport IconPencil from 'vue-material-design-icons/Pencil.vue'\n\t\timport IconPlus from 'vue-material-design-icons/Plus.vue'\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tIconArrowRight,\n\t\t\t\tIconDelete,\n\t\t\t\tIconDownload,\n\t\t\t\tIconPencil,\n\t\t\t\tIconPlus,\n\t\t\t}\n\t\t}\n\t</script>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n### Element used as a heading\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<!-- if you need multiple lists you can use it in the default slot like this: -->\n\t\t\t\t<NcAppNavigationCaption heading-id=\"people-heading\"\n\t\t\t\t\tis-heading\n\t\t\t\t\tname=\"People\" />\n\t\t\t\t<NcAppNavigationList aria-labelledby=\"people-heading\">\n\t\t\t\t\t<NcAppNavigationItem name=\"Emma\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Jane\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Jake\" />\n\t\t\t\t</NcAppNavigationList>\n\t\t\t\t<NcAppNavigationCaption heading-id=\"places-heading\"\n\t\t\t\t\tis-heading\n\t\t\t\t\tname=\"Places\" />\n\t\t\t\t<NcAppNavigationList aria-labelledby=\"places-heading\">\n\t\t\t\t\t<NcAppNavigationItem name=\"America\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Australia\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Europe\" />\n\t\t\t\t</NcAppNavigationList>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n</docs>\n\n<template>\n\t<component :is=\"wrapperTag\"\n\t\tclass=\"app-navigation-caption\"\n\t\t:class=\"{ 'app-navigation-caption--heading': isHeading }\">\n\t\t<!-- Name of the caption -->\n\t\t<component :is=\"captionTag\"\n\t\t\t:id=\"headingId\"\n\t\t\tclass=\"app-navigation-caption__name\">\n\t\t\t{{ name }}\n\t\t</component>\n\n\t\t<!-- Actions -->\n\t\t<div v-if=\"hasActions\"\n\t\t\tclass=\"app-navigation-caption__actions\">\n\t\t\t<NcActions v-bind=\"$attrs\"\n\t\t\t\tv-on=\"$listeners\">\n\t\t\t\t<!-- @slot Slot for the actions menu -->\n\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t<template #icon>\n\t\t\t\t\t<slot name=\"actionsTriggerIcon\" />\n\t\t\t\t</template>\n\t\t\t</NcActions>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport NcActions from '../NcActions/index.js'\n\nexport default {\n\tname: 'NcAppNavigationCaption',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tinheritAttrs: false,\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `id` to set on the inner caption\n\t\t * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n\t\t */\n\t\theadingId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable when used as a heading\n\t\t * e.g. Before NcAppNavigationList\n\t\t */\n\t\tisHeading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * If `isHeading` is set, this defines the heading level that should be used\n\t\t */\n\t\theadingLevel: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\n\t\t/**\n\t\t * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n\t\t */\n\t\t// Not an actual prop but needed to show in vue-styleguidist docs\n\t\t// eslint-disable-next-line\n\t\t' ': {},\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isHeading ? 'div' : 'li'\n\t\t},\n\t\tcaptionTag() {\n\t\t\t// Limit to at least h2 as h1 is considered invalid and reserved\n\t\t\tconst headingLevel = Math.max(2, this.headingLevel)\n\t\t\treturn this.isHeading ? `h${headingLevel}` : 'span'\n\t\t},\n\t\t// Check if the actions slot is populated\n\t\thasActions() {\n\t\t\treturn !!this.$slots.actions\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.app-navigation-caption {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t&--heading {\n\t\tpadding: var(--app-navigation-padding);\n\t\t&:not(:first-child):not(:last-child) {\n\t\t\tpadding: 0 var(--app-navigation-padding);\n\t\t}\n\t}\n\n\t&__name {\n\t\tfont-weight: bold;\n\t\tcolor: var(--color-main-text);\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: var(--default-clickable-area);\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tbox-shadow: none !important;\n\t\tflex-shrink: 1;\n\t\t// padding to align the name with the icon of app navigation items\n\t\tpadding-block: 0;\n\t\tpadding-inline: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\t\tmargin-top: 0px;\n\t\tmargin-bottom: var(--default-grid-baseline);\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 var(--default-clickable-area);\n\t}\n}\n\n// extra top space if it's not the first item on the list\n.app-navigation-caption:not(:first-child) {\n\tmargin-top: calc(var(--default-clickable-area) / 2);\n}\n</style>\n"],"names":[],"mappings":";;AAmLA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,cAAA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,KAAA,CAAA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,QAAA;AAAA,IACA;AAAA,IACA,aAAA;AAEA,YAAA,eAAA,KAAA,IAAA,GAAA,KAAA,YAAA;AACA,aAAA,KAAA,YAAA,IAAA,YAAA,KAAA;AAAA,IACA;AAAA;AAAA,IAEA,aAAA;AACA,aAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
- require('../assets/NcAppNavigationCaption-Dt5K_hKD.css');
1
+ require('../assets/NcAppNavigationCaption-DU9PxTvu.css');
2
2
  "use strict";
3
- const NcActions = require("./NcActions-CCYNSnCn.cjs");
3
+ const NcActions = require("./NcActions-B9hBFogn.cjs");
4
4
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
5
5
  const _sfc_main = {
6
6
  name: "NcAppNavigationCaption",
@@ -70,7 +70,7 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
70
70
  _sfc_staticRenderFns,
71
71
  false,
72
72
  null,
73
- "af6cfb9c"
73
+ "1133b4da"
74
74
  );
75
75
  const NcAppNavigationCaption = __component__.exports;
76
76
  exports.NcAppNavigationCaption = NcAppNavigationCaption;
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigationCaption-DUPonEWi.cjs","sources":["../../src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Basic usage\n\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationCaption\n\t\t\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconPlus :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tThis is an action\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationCaption>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<script>\n\timport IconPlus from 'vue-material-design-icons/Plus.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconPlus,\n\t\t},\n\t}\n\t</script>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n### Element with a slot for custom actions icon\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationCaption\n\t\t\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t\t\t<template #actionsTriggerIcon>\n\t\t\t\t\t\t\t<IconPlus slot=\"icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconPencil :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tRename\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconDelete :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconArrowRight :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tValidate\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconDownload :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tDownload\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationCaption>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<script>\n\t\timport IconArrowRight from 'vue-material-design-icons/ArrowRight.vue'\n\t\timport IconDelete from 'vue-material-design-icons/Delete.vue'\n\t\timport IconDownload from 'vue-material-design-icons/Download.vue'\n\t\timport IconPencil from 'vue-material-design-icons/Pencil.vue'\n\t\timport IconPlus from 'vue-material-design-icons/Plus.vue'\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tIconArrowRight,\n\t\t\t\tIconDelete,\n\t\t\t\tIconDownload,\n\t\t\t\tIconPencil,\n\t\t\t\tIconPlus,\n\t\t\t}\n\t\t}\n\t</script>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n### Element used as a heading\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<!-- if you need multiple lists you can use it in the default slot like this: -->\n\t\t\t\t<NcAppNavigationCaption heading-id=\"people-heading\"\n\t\t\t\t\tis-heading\n\t\t\t\t\tname=\"People\" />\n\t\t\t\t<NcAppNavigationList aria-labelledby=\"people-heading\">\n\t\t\t\t\t<NcAppNavigationItem name=\"Emma\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Jane\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Jake\" />\n\t\t\t\t</NcAppNavigationList>\n\t\t\t\t<NcAppNavigationCaption heading-id=\"places-heading\"\n\t\t\t\t\tis-heading\n\t\t\t\t\tname=\"Places\" />\n\t\t\t\t<NcAppNavigationList aria-labelledby=\"places-heading\">\n\t\t\t\t\t<NcAppNavigationItem name=\"America\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Australia\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Europe\" />\n\t\t\t\t</NcAppNavigationList>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n</docs>\n\n<template>\n\t<component :is=\"wrapperTag\"\n\t\tclass=\"app-navigation-caption\"\n\t\t:class=\"{ 'app-navigation-caption--heading': isHeading }\">\n\t\t<!-- Name of the caption -->\n\t\t<component :is=\"captionTag\"\n\t\t\t:id=\"headingId\"\n\t\t\tclass=\"app-navigation-caption__name\">\n\t\t\t{{ name }}\n\t\t</component>\n\n\t\t<!-- Actions -->\n\t\t<div v-if=\"hasActions\"\n\t\t\tclass=\"app-navigation-caption__actions\">\n\t\t\t<NcActions v-bind=\"$attrs\"\n\t\t\t\tv-on=\"$listeners\">\n\t\t\t\t<!-- @slot Slot for the actions menu -->\n\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t<template #icon>\n\t\t\t\t\t<slot name=\"actionsTriggerIcon\" />\n\t\t\t\t</template>\n\t\t\t</NcActions>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport NcActions from '../NcActions/index.js'\n\nexport default {\n\tname: 'NcAppNavigationCaption',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tinheritAttrs: false,\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `id` to set on the inner caption\n\t\t * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n\t\t */\n\t\theadingId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable when used as a heading\n\t\t * e.g. Before NcAppNavigationList\n\t\t */\n\t\tisHeading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * If `isHeading` is set, this defines the heading level that should be used\n\t\t */\n\t\theadingLevel: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\n\t\t/**\n\t\t * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n\t\t */\n\t\t// Not an actual prop but needed to show in vue-styleguidist docs\n\t\t// eslint-disable-next-line\n\t\t' ': {},\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isHeading ? 'div' : 'li'\n\t\t},\n\t\tcaptionTag() {\n\t\t\t// Limit to at least h2 as h1 is considered invalid and reserved\n\t\t\tconst headingLevel = Math.max(2, this.headingLevel)\n\t\t\treturn this.isHeading ? `h${headingLevel}` : 'span'\n\t\t},\n\t\t// Check if the actions slot is populated\n\t\thasActions() {\n\t\t\treturn !!this.$slots.actions\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.app-navigation-caption {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t&--heading {\n\t\tpadding: var(--app-navigation-padding);\n\t\t&:not(:first-child):not(:last-child) {\n\t\t\tpadding: 0 var(--app-navigation-padding);\n\t\t}\n\t}\n\n\t&__name {\n\t\tfont-weight: bold;\n\t\tcolor: var(--color-main-text);\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: var(--default-clickable-area);\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tbox-shadow: none !important;\n\t\tflex-shrink: 1;\n\t\t// padding to align the name with the icon of app navigation items\n\t\tpadding: 0 calc(var(--default-grid-baseline, 4px) * 2) 0 calc(var(--default-grid-baseline, 4px) * 2);\n\t\tpadding-right: 0;\n\t\tmargin-top: 0px;\n\t\tmargin-bottom: var(--default-grid-baseline);\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 var(--default-clickable-area);\n\t}\n}\n\n// extra top space if it's not the first item on the list\n.app-navigation-caption:not(:first-child) {\n\tmargin-top: calc(var(--default-clickable-area) / 2);\n}\n</style>\n"],"names":["NcActions"],"mappings":";;;AAmLA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,WAAAA,UAAA;AAAA,EACA;AAAA,EAEA,cAAA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,KAAA,CAAA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,QAAA;AAAA,IACA;AAAA,IACA,aAAA;AAEA,YAAA,eAAA,KAAA,IAAA,GAAA,KAAA,YAAA;AACA,aAAA,KAAA,YAAA,IAAA,YAAA,KAAA;AAAA,IACA;AAAA;AAAA,IAEA,aAAA;AACA,aAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcAppNavigationCaption-LypfQqMe.cjs","sources":["../../src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Basic usage\n\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationCaption\n\t\t\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconPlus :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tThis is an action\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationCaption>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<script>\n\timport IconPlus from 'vue-material-design-icons/Plus.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconPlus,\n\t\t},\n\t}\n\t</script>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n### Element with a slot for custom actions icon\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationCaption\n\t\t\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t\t\t<template #actionsTriggerIcon>\n\t\t\t\t\t\t\t<IconPlus slot=\"icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconPencil :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tRename\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconDelete :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconArrowRight :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tValidate\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconDownload :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\tDownload\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationCaption>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<script>\n\t\timport IconArrowRight from 'vue-material-design-icons/ArrowRight.vue'\n\t\timport IconDelete from 'vue-material-design-icons/Delete.vue'\n\t\timport IconDownload from 'vue-material-design-icons/Download.vue'\n\t\timport IconPencil from 'vue-material-design-icons/Pencil.vue'\n\t\timport IconPlus from 'vue-material-design-icons/Plus.vue'\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tIconArrowRight,\n\t\t\t\tIconDelete,\n\t\t\t\tIconDownload,\n\t\t\t\tIconPencil,\n\t\t\t\tIconPlus,\n\t\t\t}\n\t\t}\n\t</script>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n### Element used as a heading\n```vue\n\t<template>\n\t\t<div class=\"styleguide-nc-content\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<!-- if you need multiple lists you can use it in the default slot like this: -->\n\t\t\t\t<NcAppNavigationCaption heading-id=\"people-heading\"\n\t\t\t\t\tis-heading\n\t\t\t\t\tname=\"People\" />\n\t\t\t\t<NcAppNavigationList aria-labelledby=\"people-heading\">\n\t\t\t\t\t<NcAppNavigationItem name=\"Emma\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Jane\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Jake\" />\n\t\t\t\t</NcAppNavigationList>\n\t\t\t\t<NcAppNavigationCaption heading-id=\"places-heading\"\n\t\t\t\t\tis-heading\n\t\t\t\t\tname=\"Places\" />\n\t\t\t\t<NcAppNavigationList aria-labelledby=\"places-heading\">\n\t\t\t\t\t<NcAppNavigationItem name=\"America\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Australia\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"Europe\" />\n\t\t\t\t</NcAppNavigationList>\n\t\t\t</NcAppNavigation>\n\t\t</div>\n\t</template>\n\t<style scoped>\n\t\t/* Mock NcContent */\n\t\t.styleguide-nc-content {\n\t\t\tbackground-color: var(--color-background-plain);\n\t\t\toverflow: hidden;\n\t\t}\n\t</style>\n```\n\n</docs>\n\n<template>\n\t<component :is=\"wrapperTag\"\n\t\tclass=\"app-navigation-caption\"\n\t\t:class=\"{ 'app-navigation-caption--heading': isHeading }\">\n\t\t<!-- Name of the caption -->\n\t\t<component :is=\"captionTag\"\n\t\t\t:id=\"headingId\"\n\t\t\tclass=\"app-navigation-caption__name\">\n\t\t\t{{ name }}\n\t\t</component>\n\n\t\t<!-- Actions -->\n\t\t<div v-if=\"hasActions\"\n\t\t\tclass=\"app-navigation-caption__actions\">\n\t\t\t<NcActions v-bind=\"$attrs\"\n\t\t\t\tv-on=\"$listeners\">\n\t\t\t\t<!-- @slot Slot for the actions menu -->\n\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t<template #icon>\n\t\t\t\t\t<slot name=\"actionsTriggerIcon\" />\n\t\t\t\t</template>\n\t\t\t</NcActions>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport NcActions from '../NcActions/index.js'\n\nexport default {\n\tname: 'NcAppNavigationCaption',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tinheritAttrs: false,\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `id` to set on the inner caption\n\t\t * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n\t\t */\n\t\theadingId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable when used as a heading\n\t\t * e.g. Before NcAppNavigationList\n\t\t */\n\t\tisHeading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * If `isHeading` is set, this defines the heading level that should be used\n\t\t */\n\t\theadingLevel: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\n\t\t/**\n\t\t * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n\t\t */\n\t\t// Not an actual prop but needed to show in vue-styleguidist docs\n\t\t// eslint-disable-next-line\n\t\t' ': {},\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isHeading ? 'div' : 'li'\n\t\t},\n\t\tcaptionTag() {\n\t\t\t// Limit to at least h2 as h1 is considered invalid and reserved\n\t\t\tconst headingLevel = Math.max(2, this.headingLevel)\n\t\t\treturn this.isHeading ? `h${headingLevel}` : 'span'\n\t\t},\n\t\t// Check if the actions slot is populated\n\t\thasActions() {\n\t\t\treturn !!this.$slots.actions\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.app-navigation-caption {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t&--heading {\n\t\tpadding: var(--app-navigation-padding);\n\t\t&:not(:first-child):not(:last-child) {\n\t\t\tpadding: 0 var(--app-navigation-padding);\n\t\t}\n\t}\n\n\t&__name {\n\t\tfont-weight: bold;\n\t\tcolor: var(--color-main-text);\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: var(--default-clickable-area);\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tbox-shadow: none !important;\n\t\tflex-shrink: 1;\n\t\t// padding to align the name with the icon of app navigation items\n\t\tpadding-block: 0;\n\t\tpadding-inline: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\t\tmargin-top: 0px;\n\t\tmargin-bottom: var(--default-grid-baseline);\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 var(--default-clickable-area);\n\t}\n}\n\n// extra top space if it's not the first item on the list\n.app-navigation-caption:not(:first-child) {\n\tmargin-top: calc(var(--default-clickable-area) / 2);\n}\n</style>\n"],"names":["NcActions"],"mappings":";;;AAmLA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,WAAAA,UAAA;AAAA,EACA;AAAA,EAEA,cAAA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,KAAA,CAAA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,QAAA;AAAA,IACA;AAAA,IACA,aAAA;AAEA,YAAA,eAAA,KAAA,IAAA,GAAA,KAAA,YAAA;AACA,aAAA,KAAA,YAAA,IAAA,YAAA,KAAA;AAAA,IACA;AAAA;AAAA,IAEA,aAAA;AACA,aAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
@@ -1,18 +1,18 @@
1
- require('../assets/NcAppNavigationItem-CNZsPcla.css');
1
+ require('../assets/NcAppNavigationItem-lh9Say1M.css');
2
2
  "use strict";
3
- const NcActions = require("./NcActions-CCYNSnCn.cjs");
4
- const Components_NcActionButton = require("../Components/NcActionButton.cjs");
3
+ const NcActions = require("./NcActions-B9hBFogn.cjs");
4
+ const NcActionButton = require("./NcActionButton-DcpUnqA7.cjs");
5
5
  const Components_NcLoadingIcon = require("../Components/NcLoadingIcon.cjs");
6
6
  const Components_NcVNodes = require("../Components/NcVNodes.cjs");
7
7
  const Components_NcButton = require("../Components/NcButton.cjs");
8
- const _l10n = require("./_l10n-Ch5mEdUH.cjs");
8
+ const _l10n = require("./_l10n-CUjmuQOi.cjs");
9
9
  const ChevronDown = require("./ChevronDown-BlfyuflD.cjs");
10
10
  const ChevronUp = require("./ChevronUp-Bpd__OBZ.cjs");
11
11
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
12
12
  const Composables_useIsMobile = require("../Composables/useIsMobile.cjs");
13
- const NcInputConfirmCancel = require("./NcInputConfirmCancel-CYQsG_3t.cjs");
13
+ const NcInputConfirmCancel = require("./NcInputConfirmCancel-usP54-1l.cjs");
14
14
  const GenRandomId = require("./GenRandomId-BQDud3d4.cjs");
15
- _l10n.register(_l10n.t20);
15
+ _l10n.register(_l10n.t19);
16
16
  const _sfc_main$3 = {
17
17
  name: "NcAppNavigationIconCollapsible",
18
18
  components: {
@@ -51,10 +51,10 @@ var __component__$3 = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
51
51
  _sfc_staticRenderFns$3,
52
52
  false,
53
53
  null,
54
- "cadd59ae"
54
+ "f65a0daf"
55
55
  );
56
56
  const NcAppNavigationIconCollapsible = __component__$3.exports;
57
- _l10n.register(_l10n.t21, _l10n.t48);
57
+ _l10n.register(_l10n.t20, _l10n.t47);
58
58
  const _sfc_main$2 = {
59
59
  name: "PencilIcon",
60
60
  emits: ["click"],
@@ -125,7 +125,7 @@ const _sfc_main = {
125
125
  name: "NcAppNavigationItem",
126
126
  components: {
127
127
  NcActions: NcActions.NcActions,
128
- NcActionButton: Components_NcActionButton,
128
+ NcActionButton: NcActionButton.NcActionButton,
129
129
  NcAppNavigationIconCollapsible,
130
130
  NcInputConfirmCancel: NcInputConfirmCancel.NcInputConfirmCancel,
131
131
  NcLoadingIcon: Components_NcLoadingIcon,
@@ -446,10 +446,10 @@ const _sfc_main = {
446
446
  }
447
447
  if (this.focused) {
448
448
  e.preventDefault();
449
- this.$refs.actions.$refs.menuButton.$el.focus();
449
+ this.$refs.actions.$refs.triggerButton.$el.focus();
450
450
  this.focused = false;
451
451
  } else {
452
- this.$refs.actions.$refs.menuButton.$el.blur();
452
+ this.$refs.actions.$refs.triggerButton.$el.blur();
453
453
  }
454
454
  },
455
455
  /**
@@ -502,7 +502,7 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
502
502
  _sfc_staticRenderFns,
503
503
  false,
504
504
  null,
505
- "700d1da3"
505
+ "54906a49"
506
506
  );
507
507
  const NcAppNavigationItem = __component__.exports;
508
508
  exports.NcAppNavigationItem = NcAppNavigationItem;