@nextcloud/vue 8.10.0 → 8.11.1

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 (310) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  3. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  4. package/dist/Components/NcActionInput.cjs +1 -1
  5. package/dist/Components/NcActionInput.mjs +1 -1
  6. package/dist/Components/NcActions.cjs +1 -1
  7. package/dist/Components/NcActions.mjs +1 -1
  8. package/dist/Components/NcAppContent.cjs +1 -1
  9. package/dist/Components/NcAppContent.mjs +1 -1
  10. package/dist/Components/NcAppNavigation.cjs +1 -1
  11. package/dist/Components/NcAppNavigation.mjs +1 -1
  12. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  13. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  14. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  15. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  16. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  17. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  18. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  19. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  20. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  21. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  22. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  23. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  24. package/dist/Components/NcAppSidebar.cjs +1 -1
  25. package/dist/Components/NcAppSidebar.mjs +1 -1
  26. package/dist/Components/NcAvatar.cjs +1 -1
  27. package/dist/Components/NcAvatar.mjs +1 -1
  28. package/dist/Components/NcBreadcrumb.cjs +1 -1
  29. package/dist/Components/NcBreadcrumb.mjs +1 -1
  30. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  31. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  32. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  33. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  34. package/dist/Components/NcColorPicker.cjs +1 -1
  35. package/dist/Components/NcColorPicker.mjs +1 -1
  36. package/dist/Components/NcContent.cjs +1 -1
  37. package/dist/Components/NcContent.mjs +1 -1
  38. package/dist/Components/NcDashboardWidget.cjs +1 -1
  39. package/dist/Components/NcDashboardWidget.mjs +1 -1
  40. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  41. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  42. package/dist/Components/NcDateTime.cjs +1 -1
  43. package/dist/Components/NcDateTime.mjs +1 -1
  44. package/dist/Components/NcDateTimePicker.cjs +2 -2
  45. package/dist/Components/NcDateTimePicker.mjs +4 -4
  46. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  47. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  48. package/dist/Components/NcEmojiPicker.cjs +1 -1
  49. package/dist/Components/NcEmojiPicker.mjs +1 -1
  50. package/dist/Components/NcHeaderMenu.cjs +1 -1
  51. package/dist/Components/NcHeaderMenu.mjs +1 -1
  52. package/dist/Components/NcListItem.cjs +1 -1
  53. package/dist/Components/NcListItem.mjs +1 -1
  54. package/dist/Components/NcListItemIcon.cjs +1 -1
  55. package/dist/Components/NcListItemIcon.mjs +1 -1
  56. package/dist/Components/NcModal.cjs +1 -1
  57. package/dist/Components/NcModal.mjs +3 -3
  58. package/dist/Components/NcPasswordField.cjs +1 -1
  59. package/dist/Components/NcPasswordField.mjs +1 -1
  60. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  61. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  62. package/dist/Components/NcRichContenteditable.cjs +1 -1
  63. package/dist/Components/NcRichContenteditable.mjs +2 -2
  64. package/dist/Components/NcRichText.cjs +1 -1
  65. package/dist/Components/NcRichText.mjs +3 -3
  66. package/dist/Components/NcSelect.cjs +1 -1
  67. package/dist/Components/NcSelect.mjs +1 -1
  68. package/dist/Components/NcSelectTags.cjs +1 -1
  69. package/dist/Components/NcSelectTags.mjs +1 -1
  70. package/dist/Components/NcSettingsInputText.cjs +1 -1
  71. package/dist/Components/NcSettingsInputText.mjs +1 -1
  72. package/dist/Components/NcSettingsSection.cjs +1 -1
  73. package/dist/Components/NcSettingsSection.mjs +1 -1
  74. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  75. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  76. package/dist/Components/NcTextField.cjs +1 -1
  77. package/dist/Components/NcTextField.mjs +1 -1
  78. package/dist/Components/NcTimezonePicker.cjs +1 -1
  79. package/dist/Components/NcTimezonePicker.mjs +1 -1
  80. package/dist/Components/NcUserBubble.cjs +1 -1
  81. package/dist/Components/NcUserBubble.mjs +1 -1
  82. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  83. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  84. package/dist/Functions/reference.cjs +1 -1
  85. package/dist/Functions/reference.mjs +1 -1
  86. package/dist/Functions/usernameToColor.cjs +1 -1
  87. package/dist/Functions/usernameToColor.mjs +1 -1
  88. package/dist/Mixins/richEditor.cjs +1 -1
  89. package/dist/Mixins/richEditor.mjs +1 -1
  90. package/dist/assets/{NcActionInput-DjNK8ORa.css → NcActionInput-8F2WF3yH.css} +67 -67
  91. package/dist/assets/{NcAppContent-DcXMrsBz.css → NcAppContent-aWiDWWeq.css} +22 -19
  92. package/dist/assets/{NcAppNavigation-BgGJuJPv.css → NcAppNavigation-wkQJnaLW.css} +12 -12
  93. package/dist/assets/{NcAppSidebar-BGQX62or.css → NcAppSidebar-BJPR-mTB.css} +45 -50
  94. package/dist/assets/{NcAvatar-Dkf1ypwP.css → NcAvatar-CR4U9eTm.css} +27 -27
  95. package/dist/assets/{NcDateTimePicker-DR7jRFm4.css → NcDateTimePicker-qKgAO9KO.css} +10 -10
  96. package/dist/assets/NcListItem-BIFTbr17.css +180 -0
  97. package/dist/assets/{NcMentionBubble-BhiXWJv8.css → NcMentionBubble-7PQ8wEko.css} +9 -9
  98. package/dist/assets/{NcRichContenteditable-DvTdg1DO.css → NcRichContenteditable-BQ2-fqnd.css} +10 -10
  99. package/dist/assets/{referencePickerModal-DZ7qJeiJ.css → referencePickerModal-DWB2ghBg.css} +19 -19
  100. package/dist/chunks/{GenColors-SIdMEx1i.mjs → GenColors-D0bH59Rv.mjs} +1 -1
  101. package/dist/chunks/{GenColors-SIdMEx1i.mjs.map → GenColors-D0bH59Rv.mjs.map} +1 -1
  102. package/dist/chunks/{GenColors-DQEIzxqb.cjs → GenColors-Du2-qv6X.cjs} +1 -1
  103. package/dist/chunks/{GenColors-DQEIzxqb.cjs.map → GenColors-Du2-qv6X.cjs.map} +1 -1
  104. package/dist/chunks/{NcActionButtonGroup-B47_9Jpc.cjs → NcActionButtonGroup-Cawk1Q5J.cjs} +1 -1
  105. package/dist/chunks/{NcActionButtonGroup-B47_9Jpc.cjs.map → NcActionButtonGroup-Cawk1Q5J.cjs.map} +1 -1
  106. package/dist/chunks/{NcActionButtonGroup-D6_CIr2e.mjs → NcActionButtonGroup-jODsi2kz.mjs} +1 -1
  107. package/dist/chunks/{NcActionButtonGroup-D6_CIr2e.mjs.map → NcActionButtonGroup-jODsi2kz.mjs.map} +1 -1
  108. package/dist/chunks/{NcActionInput-GZcIfn-2.mjs → NcActionInput-BJSgHPYh.mjs} +6 -6
  109. package/dist/chunks/NcActionInput-BJSgHPYh.mjs.map +1 -0
  110. package/dist/chunks/{NcActionInput-BPPLjfW5.cjs → NcActionInput-NL0c8XAX.cjs} +3 -3
  111. package/dist/chunks/NcActionInput-NL0c8XAX.cjs.map +1 -0
  112. package/dist/chunks/{NcActions-D2wvJbMw.mjs → NcActions-B1Ue3gj8.mjs} +1 -1
  113. package/dist/chunks/{NcActions-D2wvJbMw.mjs.map → NcActions-B1Ue3gj8.mjs.map} +1 -1
  114. package/dist/chunks/{NcActions-B049TCK5.cjs → NcActions-X10TnO-4.cjs} +1 -1
  115. package/dist/chunks/{NcActions-B049TCK5.cjs.map → NcActions-X10TnO-4.cjs.map} +1 -1
  116. package/dist/chunks/{NcAppContent-CUnQ4EVa.mjs → NcAppContent-BkVLz0T8.mjs} +24 -17
  117. package/dist/chunks/NcAppContent-BkVLz0T8.mjs.map +1 -0
  118. package/dist/chunks/{NcAppContent-CuOJJPbt.cjs → NcAppContent-CxdfMOVw.cjs} +49 -42
  119. package/dist/chunks/NcAppContent-CxdfMOVw.cjs.map +1 -0
  120. package/dist/chunks/{NcAppNavigation-Dl1g_orJ.mjs → NcAppNavigation-BxaQQTmk.mjs} +3 -3
  121. package/dist/chunks/{NcAppNavigation-Dl1g_orJ.mjs.map → NcAppNavigation-BxaQQTmk.mjs.map} +1 -1
  122. package/dist/chunks/{NcAppNavigation-DtxPGDOf.cjs → NcAppNavigation-CmBNq0sh.cjs} +3 -3
  123. package/dist/chunks/{NcAppNavigation-DtxPGDOf.cjs.map → NcAppNavigation-CmBNq0sh.cjs.map} +1 -1
  124. package/dist/chunks/{NcAppNavigationCaption-g4NsNSvL.mjs → NcAppNavigationCaption-BQsUUBUS.mjs} +1 -1
  125. package/dist/chunks/{NcAppNavigationCaption-g4NsNSvL.mjs.map → NcAppNavigationCaption-BQsUUBUS.mjs.map} +1 -1
  126. package/dist/chunks/{NcAppNavigationCaption-BefNtbTx.cjs → NcAppNavigationCaption-CUJSIO54.cjs} +1 -1
  127. package/dist/chunks/{NcAppNavigationCaption-BefNtbTx.cjs.map → NcAppNavigationCaption-CUJSIO54.cjs.map} +1 -1
  128. package/dist/chunks/{NcAppNavigationItem-BSV20azN.mjs → NcAppNavigationItem-Cheox0NI.mjs} +3 -3
  129. package/dist/chunks/{NcAppNavigationItem-BSV20azN.mjs.map → NcAppNavigationItem-Cheox0NI.mjs.map} +1 -1
  130. package/dist/chunks/{NcAppNavigationItem-DVlpQH-e.cjs → NcAppNavigationItem-DdfXf1p_.cjs} +1 -1
  131. package/dist/chunks/{NcAppNavigationItem-DVlpQH-e.cjs.map → NcAppNavigationItem-DdfXf1p_.cjs.map} +1 -1
  132. package/dist/chunks/{NcAppNavigationNewItem-DG-KzABc.cjs → NcAppNavigationNewItem-BkyKxjL8.cjs} +1 -1
  133. package/dist/chunks/{NcAppNavigationNewItem-DG-KzABc.cjs.map → NcAppNavigationNewItem-BkyKxjL8.cjs.map} +1 -1
  134. package/dist/chunks/{NcAppNavigationNewItem-C7PviElx.mjs → NcAppNavigationNewItem-Dmb8qw0g.mjs} +1 -1
  135. package/dist/chunks/{NcAppNavigationNewItem-C7PviElx.mjs.map → NcAppNavigationNewItem-Dmb8qw0g.mjs.map} +1 -1
  136. package/dist/chunks/{NcAppNavigationSettings-CoutbNdC.cjs → NcAppNavigationSettings-CCjTkNf3.cjs} +2 -2
  137. package/dist/chunks/{NcAppNavigationSettings-CoutbNdC.cjs.map → NcAppNavigationSettings-CCjTkNf3.cjs.map} +1 -1
  138. package/dist/chunks/{NcAppNavigationSettings-D8MkJD-a.mjs → NcAppNavigationSettings-_O0oYU8k.mjs} +2 -2
  139. package/dist/chunks/{NcAppNavigationSettings-D8MkJD-a.mjs.map → NcAppNavigationSettings-_O0oYU8k.mjs.map} +1 -1
  140. package/dist/chunks/{NcAppNavigationToggle-n8ES2H5d.mjs → NcAppNavigationToggle-VDwkZ4nu.mjs} +1 -1
  141. package/dist/chunks/{NcAppNavigationToggle-n8ES2H5d.mjs.map → NcAppNavigationToggle-VDwkZ4nu.mjs.map} +1 -1
  142. package/dist/chunks/{NcAppNavigationToggle-ACf6tmPq.cjs → NcAppNavigationToggle-nnE6CrRb.cjs} +1 -1
  143. package/dist/chunks/{NcAppNavigationToggle-ACf6tmPq.cjs.map → NcAppNavigationToggle-nnE6CrRb.cjs.map} +1 -1
  144. package/dist/chunks/{NcAppSettingsDialog-CmQPplb5.mjs → NcAppSettingsDialog-CECnsnfv.mjs} +1 -1
  145. package/dist/chunks/{NcAppSettingsDialog-CmQPplb5.mjs.map → NcAppSettingsDialog-CECnsnfv.mjs.map} +1 -1
  146. package/dist/chunks/{NcAppSettingsDialog-DYr9eXTI.cjs → NcAppSettingsDialog-wqDewrRQ.cjs} +1 -1
  147. package/dist/chunks/{NcAppSettingsDialog-DYr9eXTI.cjs.map → NcAppSettingsDialog-wqDewrRQ.cjs.map} +1 -1
  148. package/dist/chunks/{NcAppSidebar-CSjqjYTb.mjs → NcAppSidebar-9W8ytMkj.mjs} +5 -5
  149. package/dist/chunks/{NcAppSidebar-BsbmJ5H_.cjs.map → NcAppSidebar-9W8ytMkj.mjs.map} +1 -1
  150. package/dist/chunks/{NcAppSidebar-BsbmJ5H_.cjs → NcAppSidebar-DkDtOUbu.cjs} +4 -4
  151. package/dist/chunks/{NcAppSidebar-CSjqjYTb.mjs.map → NcAppSidebar-DkDtOUbu.cjs.map} +1 -1
  152. package/dist/chunks/{NcAvatar-Bn9oT7sS.cjs → NcAvatar-CO9waN_L.cjs} +59 -59
  153. package/dist/chunks/NcAvatar-CO9waN_L.cjs.map +1 -0
  154. package/dist/chunks/{NcAvatar-BdtXzaRJ.mjs → NcAvatar-GULQurjA.mjs} +80 -77
  155. package/dist/chunks/NcAvatar-GULQurjA.mjs.map +1 -0
  156. package/dist/chunks/{NcBreadcrumb-DApyHRGZ.cjs → NcBreadcrumb-BBZofeFG.cjs} +1 -1
  157. package/dist/chunks/{NcBreadcrumb-DApyHRGZ.cjs.map → NcBreadcrumb-BBZofeFG.cjs.map} +1 -1
  158. package/dist/chunks/{NcBreadcrumb-D8yGqnFJ.mjs → NcBreadcrumb-BerOYeSO.mjs} +1 -1
  159. package/dist/chunks/{NcBreadcrumb-D8yGqnFJ.mjs.map → NcBreadcrumb-BerOYeSO.mjs.map} +1 -1
  160. package/dist/chunks/{NcBreadcrumbs-DVyfjkgH.mjs → NcBreadcrumbs-BypDKcgj.mjs} +2 -2
  161. package/dist/chunks/{NcBreadcrumbs-DVyfjkgH.mjs.map → NcBreadcrumbs-BypDKcgj.mjs.map} +1 -1
  162. package/dist/chunks/{NcBreadcrumbs-BoA2lxaY.cjs → NcBreadcrumbs-D0aoSiDN.cjs} +1 -1
  163. package/dist/chunks/{NcBreadcrumbs-BoA2lxaY.cjs.map → NcBreadcrumbs-D0aoSiDN.cjs.map} +1 -1
  164. package/dist/chunks/{NcCheckboxRadioSwitch-DiNnRbJI.mjs → NcCheckboxRadioSwitch-BcwXUfkk.mjs} +2 -2
  165. package/dist/chunks/{NcCheckboxRadioSwitch-DiNnRbJI.mjs.map → NcCheckboxRadioSwitch-BcwXUfkk.mjs.map} +1 -1
  166. package/dist/chunks/{NcCheckboxRadioSwitch-BEYj-jaN.cjs → NcCheckboxRadioSwitch-UnycoV8I.cjs} +2 -2
  167. package/dist/chunks/{NcCheckboxRadioSwitch-BEYj-jaN.cjs.map → NcCheckboxRadioSwitch-UnycoV8I.cjs.map} +1 -1
  168. package/dist/chunks/{NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Dh3GUSYj.cjs → NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Dfig4O2O.cjs} +1 -1
  169. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Dfig4O2O.cjs.map +1 -0
  170. package/dist/chunks/{NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-DMJGZndr.mjs → NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Zn4mWlPY.mjs} +1 -1
  171. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Zn4mWlPY.mjs.map +1 -0
  172. package/dist/chunks/{NcColorPicker-Acx2mFFG.cjs → NcColorPicker-BUsEYIj3.cjs} +1 -1
  173. package/dist/chunks/{NcColorPicker-Acx2mFFG.cjs.map → NcColorPicker-BUsEYIj3.cjs.map} +1 -1
  174. package/dist/chunks/{NcColorPicker-sge8Yr9m.mjs → NcColorPicker-C29EJ5Gw.mjs} +2 -2
  175. package/dist/chunks/{NcColorPicker-sge8Yr9m.mjs.map → NcColorPicker-C29EJ5Gw.mjs.map} +1 -1
  176. package/dist/chunks/{NcContent-kTlEGtKt.mjs → NcContent-CQk_EERB.mjs} +1 -1
  177. package/dist/chunks/{NcContent-kTlEGtKt.mjs.map → NcContent-CQk_EERB.mjs.map} +1 -1
  178. package/dist/chunks/{NcContent-COHfXhM3.cjs → NcContent-D-F_hXQE.cjs} +1 -1
  179. package/dist/chunks/{NcContent-COHfXhM3.cjs.map → NcContent-D-F_hXQE.cjs.map} +1 -1
  180. package/dist/chunks/{NcDashboardWidget-CL7e1yAw.mjs → NcDashboardWidget-B5kIIXjc.mjs} +3 -3
  181. package/dist/chunks/{NcDashboardWidget-CL7e1yAw.mjs.map → NcDashboardWidget-B5kIIXjc.mjs.map} +1 -1
  182. package/dist/chunks/{NcDashboardWidget-CyrKw12p.cjs → NcDashboardWidget-DLTh61Jk.cjs} +1 -1
  183. package/dist/chunks/{NcDashboardWidget-CyrKw12p.cjs.map → NcDashboardWidget-DLTh61Jk.cjs.map} +1 -1
  184. package/dist/chunks/{NcDashboardWidgetItem-C6Npm5U9.cjs → NcDashboardWidgetItem-BKhL4kyY.cjs} +1 -1
  185. package/dist/chunks/{NcDashboardWidgetItem-C6Npm5U9.cjs.map → NcDashboardWidgetItem-BKhL4kyY.cjs.map} +1 -1
  186. package/dist/chunks/{NcDashboardWidgetItem-Cq-HAbIB.mjs → NcDashboardWidgetItem-xj-DfJjn.mjs} +2 -2
  187. package/dist/chunks/{NcDashboardWidgetItem-Cq-HAbIB.mjs.map → NcDashboardWidgetItem-xj-DfJjn.mjs.map} +1 -1
  188. package/dist/chunks/{NcDateTime-B1X22iSf.mjs → NcDateTime-BeI2IjH3.mjs} +1 -1
  189. package/dist/chunks/{NcDateTime-B1X22iSf.mjs.map → NcDateTime-BeI2IjH3.mjs.map} +1 -1
  190. package/dist/chunks/{NcDateTime-CyKYSWsT.cjs → NcDateTime-DuS_515z.cjs} +1 -1
  191. package/dist/chunks/{NcDateTime-CyKYSWsT.cjs.map → NcDateTime-DuS_515z.cjs.map} +1 -1
  192. package/dist/chunks/{NcEmojiPicker-r6eAlCKl.mjs → NcEmojiPicker-028V7lKH.mjs} +4 -4
  193. package/dist/chunks/{NcEmojiPicker-r6eAlCKl.mjs.map → NcEmojiPicker-028V7lKH.mjs.map} +1 -1
  194. package/dist/chunks/{NcEmojiPicker-DuZc08BD.cjs → NcEmojiPicker-BDRuuzNw.cjs} +1 -1
  195. package/dist/chunks/{NcEmojiPicker-DuZc08BD.cjs.map → NcEmojiPicker-BDRuuzNw.cjs.map} +1 -1
  196. package/dist/chunks/{NcHeaderMenu-BUeI4DGP.cjs → NcHeaderMenu-58OTmM-5.cjs} +1 -1
  197. package/dist/chunks/{NcHeaderMenu-BUeI4DGP.cjs.map → NcHeaderMenu-58OTmM-5.cjs.map} +1 -1
  198. package/dist/chunks/{NcHeaderMenu-CXBimxcN.mjs → NcHeaderMenu-DOGXti7v.mjs} +1 -1
  199. package/dist/chunks/{NcHeaderMenu-CXBimxcN.mjs.map → NcHeaderMenu-DOGXti7v.mjs.map} +1 -1
  200. package/dist/chunks/{NcInputConfirmCancel-fwl4-RD4.mjs → NcInputConfirmCancel-D5GYt1Th.mjs} +1 -1
  201. package/dist/chunks/{NcInputConfirmCancel-fwl4-RD4.mjs.map → NcInputConfirmCancel-D5GYt1Th.mjs.map} +1 -1
  202. package/dist/chunks/{NcInputConfirmCancel-DAaMkW9I.cjs → NcInputConfirmCancel-unF2X_Ax.cjs} +1 -1
  203. package/dist/chunks/{NcInputConfirmCancel-DAaMkW9I.cjs.map → NcInputConfirmCancel-unF2X_Ax.cjs.map} +1 -1
  204. package/dist/chunks/{NcListItem-8heZoa83.cjs → NcListItem-BnsP7HQy.cjs} +6 -4
  205. package/dist/chunks/NcListItem-BnsP7HQy.cjs.map +1 -0
  206. package/dist/chunks/{NcListItem-DxnCJdGU.mjs → NcListItem-DUrmhUuv.mjs} +9 -7
  207. package/dist/chunks/NcListItem-DUrmhUuv.mjs.map +1 -0
  208. package/dist/chunks/{NcListItemIcon-DyE902SK.mjs → NcListItemIcon-9um1JI9_.mjs} +2 -2
  209. package/dist/chunks/{NcListItemIcon-DyE902SK.mjs.map → NcListItemIcon-9um1JI9_.mjs.map} +1 -1
  210. package/dist/chunks/{NcListItemIcon-D5NW3bY2.cjs → NcListItemIcon-Dd_ykGiP.cjs} +2 -2
  211. package/dist/chunks/{NcListItemIcon-D5NW3bY2.cjs.map → NcListItemIcon-Dd_ykGiP.cjs.map} +1 -1
  212. package/dist/chunks/{NcPasswordField-BeIfZq-I.mjs → NcPasswordField-BE4xwMjQ.mjs} +1 -1
  213. package/dist/chunks/{NcPasswordField-BeIfZq-I.mjs.map → NcPasswordField-BE4xwMjQ.mjs.map} +1 -1
  214. package/dist/chunks/{NcPasswordField-Bx3rarNt.cjs → NcPasswordField-ghqpLn7G.cjs} +1 -1
  215. package/dist/chunks/{NcPasswordField-Bx3rarNt.cjs.map → NcPasswordField-ghqpLn7G.cjs.map} +1 -1
  216. package/dist/chunks/{NcRelatedResourcesPanel-C8HsjDiN.mjs → NcRelatedResourcesPanel-CuvKC8Is.mjs} +1 -1
  217. package/dist/chunks/{NcRelatedResourcesPanel-C8HsjDiN.mjs.map → NcRelatedResourcesPanel-CuvKC8Is.mjs.map} +1 -1
  218. package/dist/chunks/{NcRelatedResourcesPanel-BmE02hfU.cjs → NcRelatedResourcesPanel-_r1K7ZaY.cjs} +1 -1
  219. package/dist/chunks/{NcRelatedResourcesPanel-BmE02hfU.cjs.map → NcRelatedResourcesPanel-_r1K7ZaY.cjs.map} +1 -1
  220. package/dist/chunks/{NcRichContenteditable-DVCrsKyc.cjs → NcRichContenteditable-Bm4NjGuD.cjs} +9 -13
  221. package/dist/chunks/NcRichContenteditable-Bm4NjGuD.cjs.map +1 -0
  222. package/dist/chunks/{NcRichContenteditable-COl1GELF.mjs → NcRichContenteditable-Bo4te1z-.mjs} +14 -18
  223. package/dist/chunks/NcRichContenteditable-Bo4te1z-.mjs.map +1 -0
  224. package/dist/chunks/{NcRichText-Dow2nMvP.cjs → NcRichText-BP7ht7d4.cjs} +2 -2
  225. package/dist/chunks/{NcRichText-Dow2nMvP.cjs.map → NcRichText-BP7ht7d4.cjs.map} +1 -1
  226. package/dist/chunks/{NcRichText-BEoKx41c.mjs → NcRichText-DUCudV4J.mjs} +2 -2
  227. package/dist/chunks/{NcRichText-BEoKx41c.mjs.map → NcRichText-DUCudV4J.mjs.map} +1 -1
  228. package/dist/chunks/{NcSelect-CyESQ4uQ.cjs → NcSelect-C58Mm9lZ.cjs} +1 -1
  229. package/dist/chunks/{NcSelect-CyESQ4uQ.cjs.map → NcSelect-C58Mm9lZ.cjs.map} +1 -1
  230. package/dist/chunks/{NcSelect-C_dMqtoe.mjs → NcSelect-DRVEZt73.mjs} +2 -2
  231. package/dist/chunks/{NcSelect-C_dMqtoe.mjs.map → NcSelect-DRVEZt73.mjs.map} +1 -1
  232. package/dist/chunks/{NcSelectTags-BoX-3tOa.mjs → NcSelectTags-35nlauoq.mjs} +2 -2
  233. package/dist/chunks/{NcSelectTags-BoX-3tOa.mjs.map → NcSelectTags-35nlauoq.mjs.map} +1 -1
  234. package/dist/chunks/{NcSelectTags-Bl95j2Kh.cjs → NcSelectTags-Cleij1YB.cjs} +1 -1
  235. package/dist/chunks/{NcSelectTags-Bl95j2Kh.cjs.map → NcSelectTags-Cleij1YB.cjs.map} +1 -1
  236. package/dist/chunks/{NcSettingsInputText-fLyjAE06.mjs → NcSettingsInputText-BxsnpVjM.mjs} +1 -1
  237. package/dist/chunks/{NcSettingsInputText-fLyjAE06.mjs.map → NcSettingsInputText-BxsnpVjM.mjs.map} +1 -1
  238. package/dist/chunks/{NcSettingsInputText-DlBTOZRv.cjs → NcSettingsInputText-Cy7Umyq4.cjs} +1 -1
  239. package/dist/chunks/{NcSettingsInputText-DlBTOZRv.cjs.map → NcSettingsInputText-Cy7Umyq4.cjs.map} +1 -1
  240. package/dist/chunks/{NcSettingsSection-COSdi50c.mjs → NcSettingsSection-BntYMcIt.mjs} +1 -1
  241. package/dist/chunks/{NcSettingsSection-COSdi50c.mjs.map → NcSettingsSection-BntYMcIt.mjs.map} +1 -1
  242. package/dist/chunks/{NcSettingsSection-CoHKnYDP.cjs → NcSettingsSection-fWPqQmzZ.cjs} +1 -1
  243. package/dist/chunks/{NcSettingsSection-CoHKnYDP.cjs.map → NcSettingsSection-fWPqQmzZ.cjs.map} +1 -1
  244. package/dist/chunks/{NcSettingsSelectGroup-2wsNrz7x.cjs → NcSettingsSelectGroup-68kJocD5.cjs} +1 -1
  245. package/dist/chunks/{NcSettingsSelectGroup-2wsNrz7x.cjs.map → NcSettingsSelectGroup-68kJocD5.cjs.map} +1 -1
  246. package/dist/chunks/{NcSettingsSelectGroup-BZG67QrR.mjs → NcSettingsSelectGroup-CehQI4oG.mjs} +2 -2
  247. package/dist/chunks/{NcSettingsSelectGroup-BZG67QrR.mjs.map → NcSettingsSelectGroup-CehQI4oG.mjs.map} +1 -1
  248. package/dist/chunks/{NcTextField-BEpgHsY2.mjs → NcTextField-BAKyJTQ0.mjs} +1 -1
  249. package/dist/chunks/{NcTextField-BEpgHsY2.mjs.map → NcTextField-BAKyJTQ0.mjs.map} +1 -1
  250. package/dist/chunks/{NcTextField-C-2-Of6b.cjs → NcTextField-DKppZoIo.cjs} +1 -1
  251. package/dist/chunks/{NcTextField-C-2-Of6b.cjs.map → NcTextField-DKppZoIo.cjs.map} +1 -1
  252. package/dist/chunks/{NcTimezonePicker-JJeMG5Mo.mjs → NcTimezonePicker-8juQvyGU.mjs} +2 -2
  253. package/dist/chunks/{NcTimezonePicker-JJeMG5Mo.mjs.map → NcTimezonePicker-8juQvyGU.mjs.map} +1 -1
  254. package/dist/chunks/{NcTimezonePicker-BMlKQe6-.cjs → NcTimezonePicker-D6psCKlf.cjs} +1 -1
  255. package/dist/chunks/{NcTimezonePicker-BMlKQe6-.cjs.map → NcTimezonePicker-D6psCKlf.cjs.map} +1 -1
  256. package/dist/chunks/{NcUserBubble-RZlZRmxZ.mjs → NcUserBubble-6o5fw3gB.mjs} +1 -1
  257. package/dist/chunks/{NcUserBubble-RZlZRmxZ.mjs.map → NcUserBubble-6o5fw3gB.mjs.map} +1 -1
  258. package/dist/chunks/{NcUserBubble-DMBDwtwW.cjs → NcUserBubble-J_kbLTpc.cjs} +1 -1
  259. package/dist/chunks/{NcUserBubble-DMBDwtwW.cjs.map → NcUserBubble-J_kbLTpc.cjs.map} +1 -1
  260. package/dist/chunks/{NcUserStatusIcon-7yBYL8ur.cjs → NcUserStatusIcon-Bqtgf32T.cjs} +1 -1
  261. package/dist/chunks/{NcUserStatusIcon-7yBYL8ur.cjs.map → NcUserStatusIcon-Bqtgf32T.cjs.map} +1 -1
  262. package/dist/chunks/{NcUserStatusIcon-DMQxYiY6.mjs → NcUserStatusIcon-D_ItGF5U.mjs} +1 -1
  263. package/dist/chunks/{NcUserStatusIcon-DMQxYiY6.mjs.map → NcUserStatusIcon-D_ItGF5U.mjs.map} +1 -1
  264. package/dist/chunks/{ScopeComponent-9FoStIVM.mjs → ScopeComponent-BZYPT7rR.mjs} +3 -3
  265. package/dist/chunks/{ScopeComponent-9FoStIVM.mjs.map → ScopeComponent-BZYPT7rR.mjs.map} +1 -1
  266. package/dist/chunks/{ScopeComponent-DdL1psE0.cjs → ScopeComponent-C0EJf0Ag.cjs} +1 -1
  267. package/dist/chunks/{ScopeComponent-DdL1psE0.cjs.map → ScopeComponent-C0EJf0Ag.cjs.map} +1 -1
  268. package/dist/chunks/{_l10n-DZggkcVs.cjs → _l10n-BVVVUgGU.cjs} +1 -1
  269. package/dist/chunks/_l10n-BVVVUgGU.cjs.map +1 -0
  270. package/dist/chunks/{_l10n-CAwwH-o2.mjs → _l10n-BZu8wI2q.mjs} +1 -1
  271. package/dist/chunks/_l10n-BZu8wI2q.mjs.map +1 -0
  272. package/dist/chunks/getAvatarUrl-BHpn8LgJ.mjs +32 -0
  273. package/dist/chunks/getAvatarUrl-BHpn8LgJ.mjs.map +1 -0
  274. package/dist/chunks/getAvatarUrl-CjIpoO6I.cjs +31 -0
  275. package/dist/chunks/getAvatarUrl-CjIpoO6I.cjs.map +1 -0
  276. package/dist/chunks/{index-CVsxVZon.cjs → index-CMnR5Pf6.cjs} +7 -12
  277. package/dist/chunks/index-CMnR5Pf6.cjs.map +1 -0
  278. package/dist/chunks/{index-BAVa4G2v.mjs → index-uiNhPYvS.mjs} +23 -28
  279. package/dist/chunks/index-uiNhPYvS.mjs.map +1 -0
  280. package/dist/chunks/{referencePickerModal-Ig4S8WI3.cjs → referencePickerModal-CoaOqLOw.cjs} +76 -73
  281. package/dist/chunks/referencePickerModal-CoaOqLOw.cjs.map +1 -0
  282. package/dist/chunks/{referencePickerModal-CtIcJRWz.mjs → referencePickerModal-DJNSkODj.mjs} +133 -130
  283. package/dist/chunks/referencePickerModal-DJNSkODj.mjs.map +1 -0
  284. package/dist/chunks/{usernameToColor-7pQQJMR_.cjs → usernameToColor-B7GSjspk.cjs} +1 -1
  285. package/dist/chunks/{usernameToColor-7pQQJMR_.cjs.map → usernameToColor-B7GSjspk.cjs.map} +1 -1
  286. package/dist/chunks/{usernameToColor-3Z3jKEos.mjs → usernameToColor-CgqbKJ4t.mjs} +1 -1
  287. package/dist/chunks/{usernameToColor-3Z3jKEos.mjs.map → usernameToColor-CgqbKJ4t.mjs.map} +1 -1
  288. package/dist/index.cjs +4 -4
  289. package/dist/index.mjs +43 -43
  290. package/dist/utils/getAvatarUrl.d.ts +22 -0
  291. package/package.json +1 -1
  292. package/dist/assets/NcListItem-DLFj1G31.css +0 -175
  293. package/dist/chunks/NcActionInput-BPPLjfW5.cjs.map +0 -1
  294. package/dist/chunks/NcActionInput-GZcIfn-2.mjs.map +0 -1
  295. package/dist/chunks/NcAppContent-CUnQ4EVa.mjs.map +0 -1
  296. package/dist/chunks/NcAppContent-CuOJJPbt.cjs.map +0 -1
  297. package/dist/chunks/NcAvatar-BdtXzaRJ.mjs.map +0 -1
  298. package/dist/chunks/NcAvatar-Bn9oT7sS.cjs.map +0 -1
  299. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-DMJGZndr.mjs.map +0 -1
  300. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Dh3GUSYj.cjs.map +0 -1
  301. package/dist/chunks/NcListItem-8heZoa83.cjs.map +0 -1
  302. package/dist/chunks/NcListItem-DxnCJdGU.mjs.map +0 -1
  303. package/dist/chunks/NcRichContenteditable-COl1GELF.mjs.map +0 -1
  304. package/dist/chunks/NcRichContenteditable-DVCrsKyc.cjs.map +0 -1
  305. package/dist/chunks/_l10n-CAwwH-o2.mjs.map +0 -1
  306. package/dist/chunks/_l10n-DZggkcVs.cjs.map +0 -1
  307. package/dist/chunks/index-BAVa4G2v.mjs.map +0 -1
  308. package/dist/chunks/index-CVsxVZon.cjs.map +0 -1
  309. package/dist/chunks/referencePickerModal-CtIcJRWz.mjs.map +0 -1
  310. package/dist/chunks/referencePickerModal-Ig4S8WI3.cjs.map +0 -1
@@ -1,10 +1,10 @@
1
- require('../assets/NcAppContent-DcXMrsBz.css');
1
+ require('../assets/NcAppContent-aWiDWWeq.css');
2
2
  "use strict";
3
- const u = require("../Components/NcButton.cjs"), n = require("./_l10n-DZggkcVs.cjs");
3
+ const u = require("../Components/NcButton.cjs"), a = require("./_l10n-BVVVUgGU.cjs");
4
4
  require("../Directives/Tooltip.cjs");
5
- const a = require("@nextcloud/event-bus"), c = require("./ArrowRight-CxzzJJQ6.cjs"), p = require("../Composables/useIsMobile.cjs"), r = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), h = require("floating-vue"), g = require("@nextcloud/browser-storage"), d = require("@vueuse/core"), l = require("splitpanes");
5
+ const n = require("@nextcloud/event-bus"), c = require("./ArrowRight-CxzzJJQ6.cjs"), p = require("../Composables/useIsMobile.cjs"), r = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), h = require("floating-vue"), g = require("@nextcloud/browser-storage"), d = require("@vueuse/core"), l = require("splitpanes");
6
6
  require("splitpanes/dist/splitpanes.css");
7
- n.register(n.t24);
7
+ a.register(a.t24);
8
8
  const f = {
9
9
  name: "NcAppDetailsToggle",
10
10
  directives: {
@@ -21,7 +21,7 @@ const f = {
21
21
  },
22
22
  computed: {
23
23
  title() {
24
- return n.t("Go back to the list");
24
+ return a.t("Go back to the list");
25
25
  }
26
26
  },
27
27
  watch: {
@@ -36,18 +36,18 @@ const f = {
36
36
  this.isMobile && this.toggleAppNavigationButton(!1);
37
37
  },
38
38
  methods: {
39
- toggleAppNavigationButton(t = !0) {
40
- const e = document.querySelector(".app-navigation .app-navigation-toggle");
41
- e && (e.style.display = t ? "none" : null, t === !0 && a.emit("toggle-navigation", { open: !1 }));
39
+ toggleAppNavigationButton(e = !0) {
40
+ const t = document.querySelector(".app-navigation .app-navigation-toggle");
41
+ t && (t.style.display = e ? "none" : null, e === !0 && n.emit("toggle-navigation", { open: !1 }));
42
42
  }
43
43
  }
44
44
  };
45
45
  var m = function() {
46
- var e = this, i = e._self._c;
47
- return i("NcButton", { directives: [{ name: "tooltip", rawName: "v-tooltip", value: e.title, expression: "title" }], staticClass: "app-details-toggle", class: { "app-details-toggle--mobile": e.isMobile }, attrs: { type: "tertiary", "aria-label": e.title }, scopedSlots: e._u([{ key: "icon", fn: function() {
46
+ var t = this, i = t._self._c;
47
+ return i("NcButton", { directives: [{ name: "tooltip", rawName: "v-tooltip", value: t.title, expression: "title" }], staticClass: "app-details-toggle", class: { "app-details-toggle--mobile": t.isMobile }, attrs: { type: "tertiary", "aria-label": t.title }, scopedSlots: t._u([{ key: "icon", fn: function() {
48
48
  return [i("ArrowRight", { attrs: { size: 20 } })];
49
49
  }, proxy: !0 }]) });
50
- }, _ = [], S = /* @__PURE__ */ r.normalizeComponent(
50
+ }, _ = [], z = /* @__PURE__ */ r.normalizeComponent(
51
51
  f,
52
52
  m,
53
53
  _,
@@ -57,10 +57,10 @@ var m = function() {
57
57
  null,
58
58
  null
59
59
  );
60
- const w = S.exports, o = g.getBuilder("nextcloud").persist().build(), z = {
60
+ const S = z.exports, o = g.getBuilder("nextcloud").persist().build(), v = {
61
61
  name: "NcAppContent",
62
62
  components: {
63
- NcAppDetailsToggle: w,
63
+ NcAppDetailsToggle: S,
64
64
  Pane: l.Pane,
65
65
  Splitpanes: l.Splitpanes
66
66
  },
@@ -73,7 +73,8 @@ const w = S.exports, o = g.getBuilder("nextcloud").persist().build(), z = {
73
73
  default: !0
74
74
  },
75
75
  /**
76
- * Allows you to set the default width of the resizable list in %
76
+ * Allows you to set the default width of the resizable list in % on vertical-split
77
+ * Allows you to set the default height of the resizable list in % on horizontal-split
77
78
  * Must be between listMinWidth and listMaxWidth
78
79
  */
79
80
  listSize: {
@@ -81,14 +82,16 @@ const w = S.exports, o = g.getBuilder("nextcloud").persist().build(), z = {
81
82
  default: 20
82
83
  },
83
84
  /**
84
- * Allows you to set the minimum width of the list column in %
85
+ * Allows you to set the minimum width of the list column in % on vertical-split
86
+ * Allows you to set the minimum height of the list column in % on horizontal-split
85
87
  */
86
88
  listMinWidth: {
87
89
  type: Number,
88
90
  default: 15
89
91
  },
90
92
  /**
91
- * Allows you to set the maximum width of the list column in %
93
+ * Allows you to set the maximum width of the list column in % on vertical-split
94
+ * Allows you to set the maximum height of the list column in % on horizontal-split
92
95
  */
93
96
  listMaxWidth: {
94
97
  type: Number,
@@ -124,13 +127,14 @@ const w = S.exports, o = g.getBuilder("nextcloud").persist().build(), z = {
124
127
  * Content layout used when there is a list together with content:
125
128
  * - `vertical-split` - a 2-column layout with list and default content separated vertically
126
129
  * - `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.
130
+ * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally
127
131
  * On mobile screen `no-split` layout is forced.
128
132
  */
129
133
  layout: {
130
134
  type: String,
131
135
  default: "vertical-split",
132
- validator(t) {
133
- return ["no-split", "vertical-split"].includes(t);
136
+ validator(e) {
137
+ return ["no-split", "vertical-split", "horizontal-split"].includes(e);
134
138
  }
135
139
  }
136
140
  },
@@ -197,16 +201,16 @@ const w = S.exports, o = g.getBuilder("nextcloud").persist().build(), z = {
197
201
  * @param {TouchEvent} e The touch event
198
202
  * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event
199
203
  */
200
- handleSwipe(t, e) {
201
- Math.abs(this.swiping.lengthX) > 70 && (this.swiping.coordsStart.x < 300 / 2 && e === "right" ? a.emit("toggle-navigation", {
204
+ handleSwipe(e, t) {
205
+ Math.abs(this.swiping.lengthX) > 70 && (this.swiping.coordsStart.x < 300 / 2 && t === "right" ? n.emit("toggle-navigation", {
202
206
  open: !0
203
- }) : this.swiping.coordsStart.x < 300 * 1.5 && e === "left" && a.emit("toggle-navigation", {
207
+ }) : this.swiping.coordsStart.x < 300 * 1.5 && t === "left" && n.emit("toggle-navigation", {
204
208
  open: !1
205
209
  }));
206
210
  },
207
- handlePaneResize(t) {
208
- const e = parseInt(t[0].size, 10);
209
- o.setItem(this.paneConfigID, JSON.stringify(e)), this.listPaneSize = e, this.$emit("resize:list", { size: e }), console.debug("AppContent pane config", e);
211
+ handlePaneResize(e) {
212
+ const t = parseInt(e[0].size, 10);
213
+ o.setItem(this.paneConfigID, JSON.stringify(t)), this.listPaneSize = t, this.$emit("resize:list", { size: t }), console.debug("AppContent pane config", t);
210
214
  },
211
215
  // $slots is not reactive, we need to update this manually
212
216
  checkSlots() {
@@ -214,9 +218,9 @@ const w = S.exports, o = g.getBuilder("nextcloud").persist().build(), z = {
214
218
  },
215
219
  // browserStorage is not reactive, we need to update this manually
216
220
  restorePaneConfig() {
217
- const t = parseInt(o.getItem(this.paneConfigID), 10);
218
- if (!isNaN(t) && t !== this.listPaneSize)
219
- return console.debug("AppContent pane config", t), this.listPaneSize = t, t;
221
+ const e = parseInt(o.getItem(this.paneConfigID), 10);
222
+ if (!isNaN(e) && e !== this.listPaneSize)
223
+ return console.debug("AppContent pane config", e), this.listPaneSize = e, e;
220
224
  },
221
225
  /**
222
226
  * The user clicked the back arrow from the details view
@@ -226,24 +230,27 @@ const w = S.exports, o = g.getBuilder("nextcloud").persist().build(), z = {
226
230
  }
227
231
  }
228
232
  };
229
- var v = function() {
230
- var e = this, i = e._self._c;
231
- return i("main", { staticClass: "app-content no-snapper", class: { "app-content--has-list": e.hasList }, attrs: { id: "app-content-vue" } }, [e.pageHeading ? i("h1", { staticClass: "hidden-visually" }, [e._v(" " + e._s(e.pageHeading) + " ")]) : e._e(), e.hasList ? [e.isMobile || e.layout === "no-split" ? i("div", { staticClass: "app-content-wrapper app-content-wrapper--no-split", class: {
232
- "app-content-wrapper--show-details": e.showDetails,
233
- "app-content-wrapper--show-list": !e.showDetails,
234
- "app-content-wrapper--mobile": e.isMobile
235
- } }, [e.showDetails ? i("NcAppDetailsToggle", { nativeOn: { click: function(s) {
236
- return s.stopPropagation(), s.preventDefault(), e.hideDetails.apply(null, arguments);
237
- } } }) : e._e(), e.showDetails ? e._t("default") : e._t("list")], 2) : e.layout === "vertical-split" ? i("div", { staticClass: "app-content-wrapper" }, [i("Splitpanes", { staticClass: "default-theme", on: { resized: e.handlePaneResize } }, [i("Pane", { staticClass: "splitpanes__pane-list", attrs: { size: e.listPaneSize || e.paneDefaults.list.size, "min-size": e.paneDefaults.list.min, "max-size": e.paneDefaults.list.max } }, [e._t("list")], 2), i("Pane", { staticClass: "splitpanes__pane-details", attrs: { size: e.detailsPaneSize, "min-size": e.paneDefaults.details.min, "max-size": e.paneDefaults.details.max } }, [e._t("default")], 2)], 1)], 1) : e._e()] : e._e(), e.hasList ? e._e() : e._t("default")], 2);
238
- }, b = [], C = /* @__PURE__ */ r.normalizeComponent(
239
- z,
233
+ var w = function() {
234
+ var t = this, i = t._self._c;
235
+ return i("main", { staticClass: "app-content no-snapper", class: { "app-content--has-list": t.hasList }, attrs: { id: "app-content-vue" } }, [t.pageHeading ? i("h1", { staticClass: "hidden-visually" }, [t._v(" " + t._s(t.pageHeading) + " ")]) : t._e(), t.hasList ? [t.isMobile || t.layout === "no-split" ? i("div", { staticClass: "app-content-wrapper app-content-wrapper--no-split", class: {
236
+ "app-content-wrapper--show-details": t.showDetails,
237
+ "app-content-wrapper--show-list": !t.showDetails,
238
+ "app-content-wrapper--mobile": t.isMobile
239
+ } }, [t.showDetails ? i("NcAppDetailsToggle", { nativeOn: { click: function(s) {
240
+ return s.stopPropagation(), s.preventDefault(), t.hideDetails.apply(null, arguments);
241
+ } } }) : t._e(), t.showDetails ? t._t("default") : t._t("list")], 2) : t.layout === "vertical-split" || t.layout === "horizontal-split" ? i("div", { staticClass: "app-content-wrapper" }, [i("Splitpanes", { staticClass: "default-theme", class: {
242
+ "splitpanes--horizontal": t.layout === "horizontal-split",
243
+ "splitpanes--vertical": t.layout === "vertical-split"
244
+ }, attrs: { horizontal: t.layout === "horizontal-split" }, on: { resized: t.handlePaneResize } }, [i("Pane", { staticClass: "splitpanes__pane-list", attrs: { size: t.listPaneSize || t.paneDefaults.list.size, "min-size": t.paneDefaults.list.min, "max-size": t.paneDefaults.list.max } }, [t._t("list")], 2), i("Pane", { staticClass: "splitpanes__pane-details", attrs: { size: t.detailsPaneSize, "min-size": t.paneDefaults.details.min, "max-size": t.paneDefaults.details.max } }, [t._t("default")], 2)], 1)], 1) : t._e()] : t._e(), t.hasList ? t._e() : t._t("default")], 2);
245
+ }, y = [], b = /* @__PURE__ */ r.normalizeComponent(
240
246
  v,
241
- b,
247
+ w,
248
+ y,
242
249
  !1,
243
250
  null,
244
- "0b75042f",
251
+ "a284c47e",
245
252
  null,
246
253
  null
247
254
  );
248
- const y = C.exports;
249
- exports.NcAppContent = y;
255
+ const C = b.exports;
256
+ exports.NcAppContent = C;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppContent-CxdfMOVw.cjs","sources":["../../src/components/NcAppContent/NcAppDetailsToggle.vue","../../src/components/NcAppContent/NcAppContent.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\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<ArrowRight :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 { useIsMobile } from '../../composables/useIsMobile/index.js'\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},\n\tsetup() {\n\t\treturn {\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: $clickable-area;\n\theight: $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\tleft: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);\n\t&--mobile {\n\t\t// There is no NavigationToggle button\n\t\tleft: 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 - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\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\t\t\t\t<slot v-if=\"!showDetails\" name=\"list\" />\n\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@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'\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 */\n\t\tallowSwipeNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\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 * 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}\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) {\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\t.app-content-wrapper--vertical-split {\n\t\t.splitpanes__splitter {\n\t\t\twidth: 9px;\n\t\t\tmargin-left: -5px;\n\t\t\tbackground-color: transparent;\n\t\t\tborder-left: none;\n\n\t\t\t&:before,\n\t\t\t&:after {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\t.app-content-wrapper--horizontal-split {\n\t\t.splitpanes__splitter {\n\t\t\theight: 9px;\n\t\t\tmargin-top: -5px;\n\t\t}\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","useIsMobile","t","hide","appNavigationToggle","emit","browserStorage","getBuilder","NcAppDetailsToggle","Pane","Splitpanes","value","useSwipe","direction","event","listPaneSize"],"mappings":";;;;;;AA4CA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,SAAAC,EAAA;AAAA,EACA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAC;AAAAA,IACA,YAAAC,EAAA;AAAA,EACA;AAAA,EACA,QAAA;AACA,WAAA;AAAA,MACA,UAAAC,EAAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAAC,EAAAA,EAAA,qBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AAAA,IACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AACA,aAAA,0BAAA,KAAA,QAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,gBAAA;AACA,IAAA,KAAA,YACA,KAAA,0BAAA,EAAA;AAAA,EAEA;AAAA,EAEA,SAAA;AAAA,IACA,0BAAAC,IAAA,IAAA;AACA,YAAAC,IAAA,SAAA,cAAA,wCAAA;AACA,MAAAA,MACAA,EAAA,MAAA,UAAAD,IAAA,SAAA,MAGAA,MAAA,MACAE,EAAAA,KAAA,qBAAA,EAAA,MAAA,GAAA,CAAA;AAAA,IAGA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;qBCsCAC,IAAAC,EAAAA,WAAA,WAAA,EAAA,QAAA,EAAA,MAAA,GAMAV,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,oBAAAW;AAAA,IACA,MAAAC,EAAA;AAAA,IACA,YAAAC,EAAA;AAAA,EACA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,sBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,eAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAAC,GAAA;AACA,eAAA,CAAA,YAAA,kBAAA,kBAAA,EAAA,SAAAA,CAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA;AACA,WAAA;AAAA,MACA,UAAAV,EAAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,eAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA,CAAA;AAAA,MACA,cAAA,KAAA,kBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,eAAA;AAEA,UAAA,KAAA,kBAAA;AACA,eAAA,kBAAA,YAAA;AAGA,UAAA;AAKA,eAAA,kBAAA;AAAA,MACA,QAAA;AACA,uBAAA,KAAA,sBAAA,8CAAA,GACA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,kBAAA;AACA,aAAA,KAAA,eACA,MAAA,KAAA,eAEA,KAAA,aAAA,QAAA;AAAA,IACA;AAAA,IAEA,eAAA;AACA,aAAA;AAAA,QACA,MAAA;AAAA,UACA,MAAA,KAAA;AAAA,UACA,KAAA,KAAA;AAAA,UACA,KAAA,KAAA;AAAA,QACA;AAAA;AAAA;AAAA,QAIA,SAAA;AAAA,UACA,MAAA,MAAA,KAAA;AAAA,UACA,KAAA,MAAA,KAAA;AAAA,UACA,KAAA,MAAA,KAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,WAAA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,IAAA,KAAA,yBACA,KAAA,UAAAW,WAAA,KAAA,KAAA;AAAA,MACA,YAAA,KAAA;AAAA,IACA,CAAA,IAGA,KAAA,WAAA,GACA,KAAA,kBAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA,GAAAC,GAAA;AAGA,MAAA,KAAA,IAAA,KAAA,QAAA,OAAA,IAAA,OACA,KAAA,QAAA,YAAA,IAAA,MAAA,KAAAA,MAAA,UACAR,EAAAA,KAAA,qBAAA;AAAA,QACA,MAAA;AAAA,MACA,CAAA,IACA,KAAA,QAAA,YAAA,IAAA,MAAA,OAAAQ,MAAA,UACAR,EAAAA,KAAA,qBAAA;AAAA,QACA,MAAA;AAAA,MACA,CAAA;AAAA,IAGA;AAAA,IAEA,iBAAAS,GAAA;AACA,YAAAC,IAAA,SAAAD,EAAA,CAAA,EAAA,MAAA,EAAA;AACA,MAAAR,EAAA,QAAA,KAAA,cAAA,KAAA,UAAAS,CAAA,CAAA,GACA,KAAA,eAAAA,GAIA,KAAA,MAAA,eAAA,EAAA,MAAAA,EAAA,CAAA,GACA,QAAA,MAAA,0BAAAA,CAAA;AAAA,IACA;AAAA;AAAA,IAGA,aAAA;AACA,WAAA,UAAA,CAAA,CAAA,KAAA,aAAA,MACA,KAAA,aAAA,CAAA,CAAA,KAAA,aAAA;AAAA,IACA;AAAA;AAAA,IAGA,oBAAA;AACA,YAAAA,IAAA,SAAAT,EAAA,QAAA,KAAA,YAAA,GAAA,EAAA;AACA,UAAA,CAAA,MAAAS,CAAA,KAAAA,MAAA,KAAA;AACA,uBAAA,MAAA,0BAAAA,CAAA,GACA,KAAA,eAAAA,GACAA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA,IAKA,cAAA;AACA,WAAA,MAAA,sBAAA,EAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
- import '../assets/NcAppNavigation-BgGJuJPv.css';
1
+ import '../assets/NcAppNavigation-wkQJnaLW.css';
2
2
  import { useIsMobile as n } from "../Composables/useIsMobile.mjs";
3
3
  import { g as s } from "./focusTrap-Be9GEB5C.mjs";
4
4
  import { subscribe as p, emit as o, unsubscribe as r } from "@nextcloud/event-bus";
5
5
  import { createFocusTrap as l } from "focus-trap";
6
- import { N as g } from "./NcAppNavigationToggle-n8ES2H5d.mjs";
6
+ import { N as g } from "./NcAppNavigationToggle-VDwkZ4nu.mjs";
7
7
  import c from "../Components/NcAppNavigationList.mjs";
8
8
  import u from "vue";
9
9
  import { n as d } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
@@ -114,7 +114,7 @@ var f = function() {
114
114
  h,
115
115
  !1,
116
116
  null,
117
- "e7c1d2d1",
117
+ "42389274",
118
118
  null,
119
119
  null
120
120
  );
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigation-Dl1g_orJ.mjs","sources":["../../src/components/NcAppNavigation/NcAppNavigation.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<docs>\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__body\" :class=\"{ 'app-navigation__body--no-list': !$scopedSlots.list }\">\n\t\t\t\t<!-- 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<!-- 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<!-- 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 { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.js'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { createFocusTrap } from 'focus-trap'\n\nimport NcAppNavigationToggle from '../NcAppNavigationToggle/index.js'\nimport NcAppNavigationList from '../NcAppNavigationList/index.js'\nimport Vue from 'vue'\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\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\ttoggleNavigation(state) {\n\t\t\t// Early return if alreay 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\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) {\n\t\t\t\tthis.toggleNavigation(false)\n\t\t\t}\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 naviation 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\tmax-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));\n\tposition: relative;\n\ttop: 0;\n\tleft: 0;\n\tpadding: 0px;\n\t// Above appcontent\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\ttransform: translateX(-100%);\n\t\tposition: absolute;\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-right: 1px solid var(--color-border);\n\t}\n}\n\n// When on mobile, we make the navigation slide over the appcontent\n@media only screen and (max-width: $breakpoint-mobile) {\n\t.app-navigation:not(.app-navigation--close) {\n\t\tposition: absolute;\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcAppNavigationList","NcAppNavigationToggle","Vue","useIsMobile","subscribe","emit","createFocusTrap","getTrapStack","unsubscribe","state","bodyStyles","animationLength","open"],"mappings":";;;;;;;;AA6FA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,qBAAAC;AAAA,IACA,uBAAAC;AAAA,EACA;AAAA;AAAA,EAGA,QAAA;AAAA,IACA,qBAAA;AAAA,MACA,SAAA,MAAA,MAAAC,EAAA,KAAA,KAAA,6EAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA;AACA,WAAA;AAAA,MACA,UAAAC,EAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,MAAA,CAAA,KAAA;AAAA,MACA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,WAAA;AACA,WAAA,OAAA,CAAA,KAAA,UACA,KAAA,gBAAA;AAAA,IACA;AAAA,IACA,OAAA;AACA,WAAA,gBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,oBAAA,EAAA,GACAC,EAAA,qBAAA,KAAA,0BAAA,GAEAC,EAAA,sBAAA;AAAA,MACA,MAAA,KAAA;AAAA,IACA,CAAA,GAEA,KAAA,YAAAC,EAAA,KAAA,MAAA,wBAAA;AAAA,MACA,mBAAA;AAAA,MACA,eAAA,KAAA,MAAA;AAAA,MACA,WAAAC,EAAA;AAAA,MACA,mBAAA;AAAA,IACA,CAAA,GACA,KAAA,gBAAA;AAAA,EACA;AAAA,EACA,YAAA;AACA,SAAA,oBAAA,EAAA,GACAC,EAAA,qBAAA,KAAA,0BAAA,GACA,KAAA,UAAA,WAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,iBAAAC,GAAA;AAEA,UAAA,KAAA,SAAAA,GAAA;AACA,QAAAJ,EAAA,sBAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AACA;AAAA,MACA;AAEA,WAAA,OAAA,OAAAI,IAAA,MAAA,CAAA,KAAA,OAAAA;AACA,YAAAC,IAAA,iBAAA,SAAA,IAAA,GACAC,IAAA,SAAAD,EAAA,iBAAA,mBAAA,CAAA,KAAA;AAEA,iBAAA,MAAA;AACA,QAAAL,EAAA,sBAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AAAA,MAEA,GAAA,MAAAM,CAAA;AAAA,IACA;AAAA,IAEA,2BAAA,EAAA,MAAAC,KAAA;AACA,WAAA,iBAAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AACA,MAAA,KAAA,YAAA,KAAA,OACA,KAAA,UAAA,SAAA,IAEA,KAAA,UAAA,WAAA;AAAA,IAEA;AAAA,IAEA,YAAA;AACA,MAAA,KAAA,YACA,KAAA,iBAAA,EAAA;AAAA,IAEA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcAppNavigation-BxaQQTmk.mjs","sources":["../../src/components/NcAppNavigation/NcAppNavigation.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<docs>\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__body\" :class=\"{ 'app-navigation__body--no-list': !$scopedSlots.list }\">\n\t\t\t\t<!-- 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<!-- 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<!-- 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 { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.js'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { createFocusTrap } from 'focus-trap'\n\nimport NcAppNavigationToggle from '../NcAppNavigationToggle/index.js'\nimport NcAppNavigationList from '../NcAppNavigationList/index.js'\nimport Vue from 'vue'\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\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\ttoggleNavigation(state) {\n\t\t\t// Early return if alreay 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\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) {\n\t\t\t\tthis.toggleNavigation(false)\n\t\t\t}\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 naviation 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\tleft: 0;\n\tpadding: 0px;\n\t// Above appcontent\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-left: calc(-1 * min($navigation-width, var(--app-navigation-max-width)));\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-right: 1px solid var(--color-border);\n\t}\n}\n\n// When on mobile, we make the navigation slide over the appcontent\n@media only screen and (max-width: $breakpoint-mobile) {\n\t.app-navigation {\n\t\tposition: absolute;\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcAppNavigationList","NcAppNavigationToggle","Vue","useIsMobile","subscribe","emit","createFocusTrap","getTrapStack","unsubscribe","state","bodyStyles","animationLength","open"],"mappings":";;;;;;;;AA6FA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,qBAAAC;AAAA,IACA,uBAAAC;AAAA,EACA;AAAA;AAAA,EAGA,QAAA;AAAA,IACA,qBAAA;AAAA,MACA,SAAA,MAAA,MAAAC,EAAA,KAAA,KAAA,6EAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA;AACA,WAAA;AAAA,MACA,UAAAC,EAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,MAAA,CAAA,KAAA;AAAA,MACA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,WAAA;AACA,WAAA,OAAA,CAAA,KAAA,UACA,KAAA,gBAAA;AAAA,IACA;AAAA,IACA,OAAA;AACA,WAAA,gBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,oBAAA,EAAA,GACAC,EAAA,qBAAA,KAAA,0BAAA,GAEAC,EAAA,sBAAA;AAAA,MACA,MAAA,KAAA;AAAA,IACA,CAAA,GAEA,KAAA,YAAAC,EAAA,KAAA,MAAA,wBAAA;AAAA,MACA,mBAAA;AAAA,MACA,eAAA,KAAA,MAAA;AAAA,MACA,WAAAC,EAAA;AAAA,MACA,mBAAA;AAAA,IACA,CAAA,GACA,KAAA,gBAAA;AAAA,EACA;AAAA,EACA,YAAA;AACA,SAAA,oBAAA,EAAA,GACAC,EAAA,qBAAA,KAAA,0BAAA,GACA,KAAA,UAAA,WAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,iBAAAC,GAAA;AAEA,UAAA,KAAA,SAAAA,GAAA;AACA,QAAAJ,EAAA,sBAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AACA;AAAA,MACA;AAEA,WAAA,OAAA,OAAAI,IAAA,MAAA,CAAA,KAAA,OAAAA;AACA,YAAAC,IAAA,iBAAA,SAAA,IAAA,GACAC,IAAA,SAAAD,EAAA,iBAAA,mBAAA,CAAA,KAAA;AAEA,iBAAA,MAAA;AACA,QAAAL,EAAA,sBAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AAAA,MAEA,GAAA,MAAAM,CAAA;AAAA,IACA;AAAA,IAEA,2BAAA,EAAA,MAAAC,KAAA;AACA,WAAA,iBAAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AACA,MAAA,KAAA,YAAA,KAAA,OACA,KAAA,UAAA,SAAA,IAEA,KAAA,UAAA,WAAA;AAAA,IAEA;AAAA,IAEA,YAAA;AACA,MAAA,KAAA,YACA,KAAA,iBAAA,EAAA;AAAA,IAEA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
- require('../assets/NcAppNavigation-BgGJuJPv.css');
1
+ require('../assets/NcAppNavigation-wkQJnaLW.css');
2
2
  "use strict";
3
- const o = require("../Composables/useIsMobile.cjs"), s = require("./focusTrap-xauhLvvr.cjs"), a = require("@nextcloud/event-bus"), p = require("focus-trap"), l = require("./NcAppNavigationToggle-ACf6tmPq.cjs"), r = require("../Components/NcAppNavigationList.cjs"), g = require("vue"), c = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), u = (e) => e && e.__esModule ? e : { default: e }, d = /* @__PURE__ */ u(g), v = {
3
+ const o = require("../Composables/useIsMobile.cjs"), s = require("./focusTrap-xauhLvvr.cjs"), a = require("@nextcloud/event-bus"), p = require("focus-trap"), l = require("./NcAppNavigationToggle-nnE6CrRb.cjs"), r = require("../Components/NcAppNavigationList.cjs"), g = require("vue"), c = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), u = (e) => e && e.__esModule ? e : { default: e }, d = /* @__PURE__ */ u(g), v = {
4
4
  name: "NcAppNavigation",
5
5
  components: {
6
6
  NcAppNavigationList: r,
@@ -107,7 +107,7 @@ var f = function() {
107
107
  N,
108
108
  !1,
109
109
  null,
110
- "e7c1d2d1",
110
+ "42389274",
111
111
  null,
112
112
  null
113
113
  );
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigation-DtxPGDOf.cjs","sources":["../../src/components/NcAppNavigation/NcAppNavigation.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<docs>\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__body\" :class=\"{ 'app-navigation__body--no-list': !$scopedSlots.list }\">\n\t\t\t\t<!-- 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<!-- 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<!-- 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 { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.js'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { createFocusTrap } from 'focus-trap'\n\nimport NcAppNavigationToggle from '../NcAppNavigationToggle/index.js'\nimport NcAppNavigationList from '../NcAppNavigationList/index.js'\nimport Vue from 'vue'\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\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\ttoggleNavigation(state) {\n\t\t\t// Early return if alreay 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\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) {\n\t\t\t\tthis.toggleNavigation(false)\n\t\t\t}\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 naviation 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\tmax-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));\n\tposition: relative;\n\ttop: 0;\n\tleft: 0;\n\tpadding: 0px;\n\t// Above appcontent\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\ttransform: translateX(-100%);\n\t\tposition: absolute;\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-right: 1px solid var(--color-border);\n\t}\n}\n\n// When on mobile, we make the navigation slide over the appcontent\n@media only screen and (max-width: $breakpoint-mobile) {\n\t.app-navigation:not(.app-navigation--close) {\n\t\tposition: absolute;\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcAppNavigationList","NcAppNavigationToggle","Vue","useIsMobile","subscribe","emit","createFocusTrap","getTrapStack","unsubscribe","state","bodyStyles","animationLength","open"],"mappings":";iaA6FAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,qBAAAC;AAAAA,IACA,uBAAAC,EAAA;AAAA,EACA;AAAA;AAAA,EAGA,QAAA;AAAA,IACA,qBAAA;AAAA,MACA,SAAA,MAAA,MAAAC,EAAAA,QAAA,KAAA,KAAA,6EAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA;AACA,WAAA;AAAA,MACA,UAAAC,EAAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,MAAA,CAAA,KAAA;AAAA,MACA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,WAAA;AACA,WAAA,OAAA,CAAA,KAAA,UACA,KAAA,gBAAA;AAAA,IACA;AAAA,IACA,OAAA;AACA,WAAA,gBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,oBAAA,EAAA,GACAC,YAAA,qBAAA,KAAA,0BAAA,GAEAC,EAAAA,KAAA,sBAAA;AAAA,MACA,MAAA,KAAA;AAAA,IACA,CAAA,GAEA,KAAA,YAAAC,EAAAA,gBAAA,KAAA,MAAA,wBAAA;AAAA,MACA,mBAAA;AAAA,MACA,eAAA,KAAA,MAAA;AAAA,MACA,WAAAC,EAAAA,aAAA;AAAA,MACA,mBAAA;AAAA,IACA,CAAA,GACA,KAAA,gBAAA;AAAA,EACA;AAAA,EACA,YAAA;AACA,SAAA,oBAAA,EAAA,GACAC,cAAA,qBAAA,KAAA,0BAAA,GACA,KAAA,UAAA,WAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,iBAAAC,GAAA;AAEA,UAAA,KAAA,SAAAA,GAAA;AACAJ,QAAAA,EAAAA,KAAA,sBAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AACA;AAAA,MACA;AAEA,WAAA,OAAA,OAAAI,IAAA,MAAA,CAAA,KAAA,OAAAA;AACA,YAAAC,IAAA,iBAAA,SAAA,IAAA,GACAC,IAAA,SAAAD,EAAA,iBAAA,mBAAA,CAAA,KAAA;AAEA,iBAAA,MAAA;AACAL,QAAAA,EAAAA,KAAA,sBAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AAAA,MAEA,GAAA,MAAAM,CAAA;AAAA,IACA;AAAA,IAEA,2BAAA,EAAA,MAAAC,KAAA;AACA,WAAA,iBAAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AACA,MAAA,KAAA,YAAA,KAAA,OACA,KAAA,UAAA,SAAA,IAEA,KAAA,UAAA,WAAA;AAAA,IAEA;AAAA,IAEA,YAAA;AACA,MAAA,KAAA,YACA,KAAA,iBAAA,EAAA;AAAA,IAEA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcAppNavigation-CmBNq0sh.cjs","sources":["../../src/components/NcAppNavigation/NcAppNavigation.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<docs>\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__body\" :class=\"{ 'app-navigation__body--no-list': !$scopedSlots.list }\">\n\t\t\t\t<!-- 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<!-- 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<!-- 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 { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.js'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { createFocusTrap } from 'focus-trap'\n\nimport NcAppNavigationToggle from '../NcAppNavigationToggle/index.js'\nimport NcAppNavigationList from '../NcAppNavigationList/index.js'\nimport Vue from 'vue'\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\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\ttoggleNavigation(state) {\n\t\t\t// Early return if alreay 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\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) {\n\t\t\t\tthis.toggleNavigation(false)\n\t\t\t}\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 naviation 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\tleft: 0;\n\tpadding: 0px;\n\t// Above appcontent\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-left: calc(-1 * min($navigation-width, var(--app-navigation-max-width)));\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-right: 1px solid var(--color-border);\n\t}\n}\n\n// When on mobile, we make the navigation slide over the appcontent\n@media only screen and (max-width: $breakpoint-mobile) {\n\t.app-navigation {\n\t\tposition: absolute;\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcAppNavigationList","NcAppNavigationToggle","Vue","useIsMobile","subscribe","emit","createFocusTrap","getTrapStack","unsubscribe","state","bodyStyles","animationLength","open"],"mappings":";iaA6FAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,qBAAAC;AAAAA,IACA,uBAAAC,EAAA;AAAA,EACA;AAAA;AAAA,EAGA,QAAA;AAAA,IACA,qBAAA;AAAA,MACA,SAAA,MAAA,MAAAC,EAAAA,QAAA,KAAA,KAAA,6EAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA;AACA,WAAA;AAAA,MACA,UAAAC,EAAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,MAAA,CAAA,KAAA;AAAA,MACA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,WAAA;AACA,WAAA,OAAA,CAAA,KAAA,UACA,KAAA,gBAAA;AAAA,IACA;AAAA,IACA,OAAA;AACA,WAAA,gBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,oBAAA,EAAA,GACAC,YAAA,qBAAA,KAAA,0BAAA,GAEAC,EAAAA,KAAA,sBAAA;AAAA,MACA,MAAA,KAAA;AAAA,IACA,CAAA,GAEA,KAAA,YAAAC,EAAAA,gBAAA,KAAA,MAAA,wBAAA;AAAA,MACA,mBAAA;AAAA,MACA,eAAA,KAAA,MAAA;AAAA,MACA,WAAAC,EAAAA,aAAA;AAAA,MACA,mBAAA;AAAA,IACA,CAAA,GACA,KAAA,gBAAA;AAAA,EACA;AAAA,EACA,YAAA;AACA,SAAA,oBAAA,EAAA,GACAC,cAAA,qBAAA,KAAA,0BAAA,GACA,KAAA,UAAA,WAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,iBAAAC,GAAA;AAEA,UAAA,KAAA,SAAAA,GAAA;AACAJ,QAAAA,EAAAA,KAAA,sBAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AACA;AAAA,MACA;AAEA,WAAA,OAAA,OAAAI,IAAA,MAAA,CAAA,KAAA,OAAAA;AACA,YAAAC,IAAA,iBAAA,SAAA,IAAA,GACAC,IAAA,SAAAD,EAAA,iBAAA,mBAAA,CAAA,KAAA;AAEA,iBAAA,MAAA;AACAL,QAAAA,EAAAA,KAAA,sBAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AAAA,MAEA,GAAA,MAAAM,CAAA;AAAA,IACA;AAAA,IAEA,2BAAA,EAAA,MAAAC,KAAA;AACA,WAAA,iBAAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AACA,MAAA,KAAA,YAAA,KAAA,OACA,KAAA,UAAA,SAAA,IAEA,KAAA,UAAA,WAAA;AAAA,IAEA;AAAA,IAEA,YAAA;AACA,MAAA,KAAA,YACA,KAAA,iBAAA,EAAA;AAAA,IAEA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import '../assets/NcAppNavigationCaption-jV1y8HQ1.css';
2
- import { N as a } from "./NcActions-D2wvJbMw.mjs";
2
+ import { N as a } from "./NcActions-B1Ue3gj8.mjs";
3
3
  import { n as i } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
4
4
  const s = {
5
5
  name: "NcAppNavigationCaption",
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigationCaption-g4NsNSvL.mjs","sources":["../../src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue"],"sourcesContent":["<docs>\n```vue\n\t<template>\n\t\t<ul class=\"nav\">\n\t\t\t<NcAppNavigationCaption\n\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tThis is an action\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationCaption>\n\t\t</ul>\n\t</template>\n\t<script>\n\timport Plus from 'vue-material-design-icons/Plus'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tPlus,\n\t\t},\n\t}\n\t</script>\n\t<style scoped>\n\t\t/* mock the appnavigation */\n\t\tul.nav {\n\t\t\tbackground-color: #cce6f4;\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<ul class=\"nav\">\n\t\t\t<NcAppNavigationCaption\n\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t<template #actionsTriggerIcon>\n\t\t\t\t\t<Plus slot=\"icon\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tRename\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDelete\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tValidate\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Download :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDownload\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationCaption>\n\t\t</ul>\n\t</template>\n\t<script>\n\t\timport ArrowRight from 'vue-material-design-icons/ArrowRight'\n\t\timport Delete from 'vue-material-design-icons/Delete'\n\t\timport Download from 'vue-material-design-icons/Download'\n\t\timport Pencil from 'vue-material-design-icons/Pencil'\n\t\timport Plus from 'vue-material-design-icons/Plus'\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tArrowRight,\n\t\t\t\tDelete,\n\t\t\t\tDownload,\n\t\t\t\tPencil,\n\t\t\t\tPlus,\n\t\t\t}\n\t\t}\n\t</script>\n\t<style scoped>\n\t\t/* mock the appnavigation */\n\t\tul.nav {\n\t\t\tbackground-color: #cce6f4;\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\" class=\"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 * 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 * 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\treturn this.isHeading ? 'h2' : '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: $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: 0;\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) * 3);\n\t\tmargin-bottom: 12px;\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 $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: math.div($clickable-area, 2);\n}\n</style>\n"],"names":["_sfc_main","NcActions"],"mappings":";;AA8HA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,WAAAC;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;AAAA,IAOA,KAAA,CAAA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,QAAA;AAAA,IACA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,OAAA;AAAA,IACA;AAAA;AAAA,IAEA,aAAA;AACA,aAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcAppNavigationCaption-BQsUUBUS.mjs","sources":["../../src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue"],"sourcesContent":["<docs>\n```vue\n\t<template>\n\t\t<ul class=\"nav\">\n\t\t\t<NcAppNavigationCaption\n\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tThis is an action\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationCaption>\n\t\t</ul>\n\t</template>\n\t<script>\n\timport Plus from 'vue-material-design-icons/Plus'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tPlus,\n\t\t},\n\t}\n\t</script>\n\t<style scoped>\n\t\t/* mock the appnavigation */\n\t\tul.nav {\n\t\t\tbackground-color: #cce6f4;\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<ul class=\"nav\">\n\t\t\t<NcAppNavigationCaption\n\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t<template #actionsTriggerIcon>\n\t\t\t\t\t<Plus slot=\"icon\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tRename\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDelete\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tValidate\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Download :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDownload\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationCaption>\n\t\t</ul>\n\t</template>\n\t<script>\n\t\timport ArrowRight from 'vue-material-design-icons/ArrowRight'\n\t\timport Delete from 'vue-material-design-icons/Delete'\n\t\timport Download from 'vue-material-design-icons/Download'\n\t\timport Pencil from 'vue-material-design-icons/Pencil'\n\t\timport Plus from 'vue-material-design-icons/Plus'\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tArrowRight,\n\t\t\t\tDelete,\n\t\t\t\tDownload,\n\t\t\t\tPencil,\n\t\t\t\tPlus,\n\t\t\t}\n\t\t}\n\t</script>\n\t<style scoped>\n\t\t/* mock the appnavigation */\n\t\tul.nav {\n\t\t\tbackground-color: #cce6f4;\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\" class=\"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 * 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 * 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\treturn this.isHeading ? 'h2' : '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: $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: 0;\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) * 3);\n\t\tmargin-bottom: 12px;\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 $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: math.div($clickable-area, 2);\n}\n</style>\n"],"names":["_sfc_main","NcActions"],"mappings":";;AA8HA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,WAAAC;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;AAAA,IAOA,KAAA,CAAA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,QAAA;AAAA,IACA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,OAAA;AAAA,IACA;AAAA;AAAA,IAEA,aAAA;AACA,aAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  require('../assets/NcAppNavigationCaption-jV1y8HQ1.css');
2
2
  "use strict";
3
- const a = require("./NcActions-B049TCK5.cjs"), i = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), s = {
3
+ const a = require("./NcActions-X10TnO-4.cjs"), i = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), s = {
4
4
  name: "NcAppNavigationCaption",
5
5
  components: {
6
6
  NcActions: a.NcActions
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppNavigationCaption-BefNtbTx.cjs","sources":["../../src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue"],"sourcesContent":["<docs>\n```vue\n\t<template>\n\t\t<ul class=\"nav\">\n\t\t\t<NcAppNavigationCaption\n\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tThis is an action\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationCaption>\n\t\t</ul>\n\t</template>\n\t<script>\n\timport Plus from 'vue-material-design-icons/Plus'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tPlus,\n\t\t},\n\t}\n\t</script>\n\t<style scoped>\n\t\t/* mock the appnavigation */\n\t\tul.nav {\n\t\t\tbackground-color: #cce6f4;\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<ul class=\"nav\">\n\t\t\t<NcAppNavigationCaption\n\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t<template #actionsTriggerIcon>\n\t\t\t\t\t<Plus slot=\"icon\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tRename\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDelete\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tValidate\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Download :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDownload\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationCaption>\n\t\t</ul>\n\t</template>\n\t<script>\n\t\timport ArrowRight from 'vue-material-design-icons/ArrowRight'\n\t\timport Delete from 'vue-material-design-icons/Delete'\n\t\timport Download from 'vue-material-design-icons/Download'\n\t\timport Pencil from 'vue-material-design-icons/Pencil'\n\t\timport Plus from 'vue-material-design-icons/Plus'\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tArrowRight,\n\t\t\t\tDelete,\n\t\t\t\tDownload,\n\t\t\t\tPencil,\n\t\t\t\tPlus,\n\t\t\t}\n\t\t}\n\t</script>\n\t<style scoped>\n\t\t/* mock the appnavigation */\n\t\tul.nav {\n\t\t\tbackground-color: #cce6f4;\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\" class=\"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 * 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 * 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\treturn this.isHeading ? 'h2' : '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: $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: 0;\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) * 3);\n\t\tmargin-bottom: 12px;\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 $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: math.div($clickable-area, 2);\n}\n</style>\n"],"names":["_sfc_main","NcActions"],"mappings":";sGA8HAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,WAAAC,EAAA;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;AAAA,IAOA,KAAA,CAAA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,QAAA;AAAA,IACA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,OAAA;AAAA,IACA;AAAA;AAAA,IAEA,aAAA;AACA,aAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcAppNavigationCaption-CUJSIO54.cjs","sources":["../../src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue"],"sourcesContent":["<docs>\n```vue\n\t<template>\n\t\t<ul class=\"nav\">\n\t\t\t<NcAppNavigationCaption\n\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tThis is an action\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationCaption>\n\t\t</ul>\n\t</template>\n\t<script>\n\timport Plus from 'vue-material-design-icons/Plus'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tPlus,\n\t\t},\n\t}\n\t</script>\n\t<style scoped>\n\t\t/* mock the appnavigation */\n\t\tul.nav {\n\t\t\tbackground-color: #cce6f4;\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<ul class=\"nav\">\n\t\t\t<NcAppNavigationCaption\n\t\t\t\tname=\"Your caption goes here\">\n\t\t\t\t<template #actionsTriggerIcon>\n\t\t\t\t\t<Plus slot=\"icon\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tRename\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDelete\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tValidate\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Download :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDownload\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationCaption>\n\t\t</ul>\n\t</template>\n\t<script>\n\t\timport ArrowRight from 'vue-material-design-icons/ArrowRight'\n\t\timport Delete from 'vue-material-design-icons/Delete'\n\t\timport Download from 'vue-material-design-icons/Download'\n\t\timport Pencil from 'vue-material-design-icons/Pencil'\n\t\timport Plus from 'vue-material-design-icons/Plus'\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tArrowRight,\n\t\t\t\tDelete,\n\t\t\t\tDownload,\n\t\t\t\tPencil,\n\t\t\t\tPlus,\n\t\t\t}\n\t\t}\n\t</script>\n\t<style scoped>\n\t\t/* mock the appnavigation */\n\t\tul.nav {\n\t\t\tbackground-color: #cce6f4;\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\" class=\"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 * 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 * 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\treturn this.isHeading ? 'h2' : '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: $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: 0;\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) * 3);\n\t\tmargin-bottom: 12px;\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 $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: math.div($clickable-area, 2);\n}\n</style>\n"],"names":["_sfc_main","NcActions"],"mappings":";sGA8HAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,WAAAC,EAAA;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;AAAA,IAOA,KAAA,CAAA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,QAAA;AAAA,IACA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,YAAA,OAAA;AAAA,IACA;AAAA;AAAA,IAEA,aAAA;AACA,aAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
@@ -1,15 +1,15 @@
1
1
  import '../assets/NcAppNavigationItem-BxoyzD83.css';
2
- import { N as u } from "./NcActions-D2wvJbMw.mjs";
2
+ import { N as u } from "./NcActions-B1Ue3gj8.mjs";
3
3
  import p from "../Components/NcActionButton.mjs";
4
4
  import d from "../Components/NcLoadingIcon.mjs";
5
5
  import f from "../Components/NcVNodes.mjs";
6
6
  import m from "../Components/NcButton.mjs";
7
- import { r, H as _, a as o, c as h, I as g } from "./_l10n-CAwwH-o2.mjs";
7
+ import { r, H as _, a as o, c as h, I as g } from "./_l10n-BZu8wI2q.mjs";
8
8
  import { C as y } from "./ChevronDown-HHJdUMN4.mjs";
9
9
  import { C as v } from "./ChevronUp-B6TIgl1a.mjs";
10
10
  import { n as s } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
11
11
  import { useIsMobile as C } from "../Composables/useIsMobile.mjs";
12
- import { N as b } from "./NcInputConfirmCancel-fwl4-RD4.mjs";
12
+ import { N as b } from "./NcInputConfirmCancel-D5GYt1Th.mjs";
13
13
  import { G as k } from "./GenRandomId-BW3iYFf9.mjs";
14
14
  r(_);
15
15
  const N = {