@nextcloud/vue 8.8.1 → 8.9.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 (576) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/Components/NcActionButton.cjs +3 -3
  3. package/dist/Components/NcActionButton.mjs +6 -6
  4. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  6. package/dist/Components/NcActionCaption.cjs +2 -2
  7. package/dist/Components/NcActionCaption.mjs +2 -2
  8. package/dist/Components/NcActionCheckbox.cjs +2 -2
  9. package/dist/Components/NcActionCheckbox.mjs +4 -4
  10. package/dist/Components/NcActionInput.cjs +1 -1
  11. package/dist/Components/NcActionInput.mjs +1 -1
  12. package/dist/Components/NcActionLink.cjs +3 -3
  13. package/dist/Components/NcActionLink.mjs +4 -4
  14. package/dist/Components/NcActionRadio.cjs +2 -2
  15. package/dist/Components/NcActionRadio.mjs +4 -4
  16. package/dist/Components/NcActionRouter.cjs +3 -3
  17. package/dist/Components/NcActionRouter.mjs +4 -4
  18. package/dist/Components/NcActionSeparator.cjs +2 -2
  19. package/dist/Components/NcActionSeparator.mjs +2 -2
  20. package/dist/Components/NcActionText.cjs +3 -3
  21. package/dist/Components/NcActionText.mjs +4 -4
  22. package/dist/Components/NcActionTextEditable.cjs +3 -3
  23. package/dist/Components/NcActionTextEditable.mjs +6 -6
  24. package/dist/Components/NcActions.cjs +1 -1
  25. package/dist/Components/NcActions.mjs +1 -1
  26. package/dist/Components/NcAppContent.cjs +1 -1
  27. package/dist/Components/NcAppContent.mjs +1 -1
  28. package/dist/Components/NcAppContentDetails.cjs +1 -1
  29. package/dist/Components/NcAppContentDetails.mjs +1 -1
  30. package/dist/Components/NcAppContentList.cjs +1 -1
  31. package/dist/Components/NcAppContentList.mjs +1 -1
  32. package/dist/Components/NcAppNavigation.cjs +1 -1
  33. package/dist/Components/NcAppNavigation.mjs +1 -1
  34. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  35. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  36. package/dist/Components/NcAppNavigationIconBullet.cjs +2 -2
  37. package/dist/Components/NcAppNavigationIconBullet.mjs +2 -2
  38. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  39. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  40. package/dist/Components/NcAppNavigationList.cjs +2 -2
  41. package/dist/Components/NcAppNavigationList.mjs +2 -2
  42. package/dist/Components/NcAppNavigationNew.cjs +2 -2
  43. package/dist/Components/NcAppNavigationNew.mjs +2 -2
  44. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  45. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  46. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  47. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  48. package/dist/Components/NcAppNavigationSpacer.cjs +2 -2
  49. package/dist/Components/NcAppNavigationSpacer.mjs +2 -2
  50. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  51. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  52. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  53. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  54. package/dist/Components/NcAppSettingsSection.cjs +8 -5
  55. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  56. package/dist/Components/NcAppSettingsSection.mjs +8 -5
  57. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  58. package/dist/Components/NcAppSidebar.cjs +1 -1
  59. package/dist/Components/NcAppSidebar.mjs +1 -1
  60. package/dist/Components/NcAppSidebarTab.cjs +5 -4
  61. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  62. package/dist/Components/NcAppSidebarTab.mjs +5 -4
  63. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  64. package/dist/Components/NcAvatar.cjs +1 -1
  65. package/dist/Components/NcAvatar.mjs +1 -1
  66. package/dist/Components/NcBreadcrumb.cjs +1 -1
  67. package/dist/Components/NcBreadcrumb.mjs +1 -1
  68. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  69. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  70. package/dist/Components/NcButton.cjs +27 -26
  71. package/dist/Components/NcButton.cjs.map +1 -1
  72. package/dist/Components/NcButton.mjs +28 -27
  73. package/dist/Components/NcButton.mjs.map +1 -1
  74. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  75. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  76. package/dist/Components/NcColorPicker.cjs +1 -1
  77. package/dist/Components/NcColorPicker.mjs +1 -1
  78. package/dist/Components/NcContent.cjs +1 -1
  79. package/dist/Components/NcContent.mjs +1 -1
  80. package/dist/Components/NcCounterBubble.cjs +2 -2
  81. package/dist/Components/NcCounterBubble.mjs +2 -2
  82. package/dist/Components/NcDashboardWidget.cjs +1 -1
  83. package/dist/Components/NcDashboardWidget.mjs +1 -1
  84. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  85. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  86. package/dist/Components/NcDateTime.cjs +1 -1
  87. package/dist/Components/NcDateTime.mjs +1 -1
  88. package/dist/Components/NcDateTimePicker.cjs +42 -40
  89. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  90. package/dist/Components/NcDateTimePicker.mjs +27 -25
  91. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  92. package/dist/Components/NcDateTimePickerNative.cjs +11 -11
  93. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  94. package/dist/Components/NcDateTimePickerNative.mjs +12 -12
  95. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  96. package/dist/Components/NcDialog.cjs +1 -1
  97. package/dist/Components/NcDialog.mjs +1 -1
  98. package/dist/Components/NcDialogButton.cjs +1 -1
  99. package/dist/Components/NcDialogButton.mjs +1 -1
  100. package/dist/Components/NcEllipsisedOption.cjs +2 -2
  101. package/dist/Components/NcEllipsisedOption.mjs +3 -3
  102. package/dist/Components/NcEmojiPicker.cjs +1 -1
  103. package/dist/Components/NcEmojiPicker.mjs +1 -1
  104. package/dist/Components/NcEmptyContent.cjs +9 -8
  105. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  106. package/dist/Components/NcEmptyContent.mjs +9 -8
  107. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  108. package/dist/Components/NcGuestContent.cjs +2 -2
  109. package/dist/Components/NcGuestContent.mjs +2 -2
  110. package/dist/Components/NcHeaderMenu.cjs +1 -1
  111. package/dist/Components/NcHeaderMenu.mjs +1 -1
  112. package/dist/Components/NcHighlight.cjs +1 -1
  113. package/dist/Components/NcHighlight.mjs +1 -1
  114. package/dist/Components/NcIconSvgWrapper.cjs +1 -1
  115. package/dist/Components/NcIconSvgWrapper.mjs +1 -1
  116. package/dist/Components/NcInputField.cjs +4 -4
  117. package/dist/Components/NcInputField.cjs.map +1 -1
  118. package/dist/Components/NcInputField.mjs +7 -7
  119. package/dist/Components/NcInputField.mjs.map +1 -1
  120. package/dist/Components/NcListItem.cjs +1 -1
  121. package/dist/Components/NcListItem.mjs +1 -1
  122. package/dist/Components/NcListItemIcon.cjs +1 -1
  123. package/dist/Components/NcListItemIcon.mjs +1 -1
  124. package/dist/Components/NcLoadingIcon.cjs +2 -2
  125. package/dist/Components/NcLoadingIcon.mjs +2 -2
  126. package/dist/Components/NcModal.cjs +8 -7
  127. package/dist/Components/NcModal.cjs.map +1 -1
  128. package/dist/Components/NcModal.mjs +19 -18
  129. package/dist/Components/NcModal.mjs.map +1 -1
  130. package/dist/Components/NcNoteCard.cjs +3 -3
  131. package/dist/Components/NcNoteCard.mjs +3 -3
  132. package/dist/Components/NcPasswordField.cjs +1 -1
  133. package/dist/Components/NcPasswordField.mjs +1 -1
  134. package/dist/Components/NcPopover.cjs +1 -1
  135. package/dist/Components/NcPopover.mjs +1 -1
  136. package/dist/Components/NcProgressBar.cjs +1 -1
  137. package/dist/Components/NcProgressBar.mjs +1 -1
  138. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  139. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  140. package/dist/Components/NcRichContenteditable.cjs +1 -1
  141. package/dist/Components/NcRichContenteditable.mjs +2 -2
  142. package/dist/Components/NcRichText.cjs +1 -1
  143. package/dist/Components/NcRichText.cjs.map +1 -1
  144. package/dist/Components/NcRichText.mjs +8 -8
  145. package/dist/Components/NcRichText.mjs.map +1 -1
  146. package/dist/Components/NcSavingIndicatorIcon.cjs +1 -1
  147. package/dist/Components/NcSavingIndicatorIcon.mjs +1 -1
  148. package/dist/Components/NcSelect.cjs +1 -1
  149. package/dist/Components/NcSelect.mjs +1 -1
  150. package/dist/Components/NcSelectTags.cjs +1 -1
  151. package/dist/Components/NcSelectTags.mjs +1 -1
  152. package/dist/Components/NcSettingsInputText.cjs +1 -1
  153. package/dist/Components/NcSettingsInputText.mjs +1 -1
  154. package/dist/Components/NcSettingsSection.cjs +1 -1
  155. package/dist/Components/NcSettingsSection.mjs +1 -1
  156. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  157. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  158. package/dist/Components/NcTextArea.cjs +4 -4
  159. package/dist/Components/NcTextArea.cjs.map +1 -1
  160. package/dist/Components/NcTextArea.mjs +7 -7
  161. package/dist/Components/NcTextArea.mjs.map +1 -1
  162. package/dist/Components/NcTextField.cjs +1 -1
  163. package/dist/Components/NcTextField.mjs +1 -1
  164. package/dist/Components/NcTimezonePicker.cjs +1 -1
  165. package/dist/Components/NcTimezonePicker.mjs +1 -1
  166. package/dist/Components/NcUserBubble.cjs +1 -1
  167. package/dist/Components/NcUserBubble.mjs +1 -1
  168. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  169. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  170. package/dist/Components/NcVNodes.cjs +11 -10
  171. package/dist/Components/NcVNodes.cjs.map +1 -1
  172. package/dist/Components/NcVNodes.mjs +12 -11
  173. package/dist/Components/NcVNodes.mjs.map +1 -1
  174. package/dist/Directives/Linkify.cjs +5 -4
  175. package/dist/Directives/Linkify.cjs.map +1 -1
  176. package/dist/Directives/Linkify.mjs +6 -5
  177. package/dist/Directives/Linkify.mjs.map +1 -1
  178. package/dist/Directives/Tooltip.cjs +1 -1
  179. package/dist/Directives/Tooltip.mjs +1 -1
  180. package/dist/Functions/reference.cjs +2 -1
  181. package/dist/Functions/reference.cjs.map +1 -1
  182. package/dist/Functions/reference.mjs +12 -11
  183. package/dist/Functions/registerReference.cjs +11 -69
  184. package/dist/Functions/registerReference.cjs.map +1 -1
  185. package/dist/Functions/registerReference.mjs +9 -67
  186. package/dist/Functions/registerReference.mjs.map +1 -1
  187. package/dist/Functions/usernameToColor.cjs +1 -1
  188. package/dist/Functions/usernameToColor.mjs +1 -1
  189. package/dist/Mixins/richEditor.cjs +2 -2
  190. package/dist/Mixins/richEditor.mjs +2 -2
  191. package/dist/assets/{NcActions-mt8BQ_bn.css → NcActions-CEbgl0_n.css} +12 -12
  192. package/dist/assets/{NcAppContent-SZz3PTd8.css → NcAppContent-Cv8rRTyy.css} +1 -0
  193. package/dist/assets/{NcDateTimePicker-IOou-rT3.css → NcDateTimePicker-C3D1hmlB.css} +10 -10
  194. package/dist/assets/{NcEmojiPicker-hTlSVIq0.css → NcEmojiPicker-B-4WNYcx.css} +1 -0
  195. package/dist/assets/{NcRelatedResourcesPanel-oq5eMIoh.css → NcRelatedResourcesPanel-COW9gzml.css} +72 -6
  196. package/dist/assets/{NcRichText-kDp48Nji.css → NcRichText-BMe-xENJ.css} +5 -2
  197. package/dist/assets/{referencePickerModal-A0PlFUEI.css → referencePickerModal-C1KJzICb.css} +34 -14
  198. package/dist/chunks/{AlertCircleOutline-HYz1lvHU.cjs → AlertCircleOutline-DHFN4OkX.cjs} +1 -1
  199. package/dist/chunks/{AlertCircleOutline-HYz1lvHU.cjs.map → AlertCircleOutline-DHFN4OkX.cjs.map} +1 -1
  200. package/dist/chunks/{AlertCircleOutline-XY0EPUmQ.mjs → AlertCircleOutline-U_bhL30C.mjs} +1 -1
  201. package/dist/chunks/{AlertCircleOutline-XY0EPUmQ.mjs.map → AlertCircleOutline-U_bhL30C.mjs.map} +1 -1
  202. package/dist/chunks/{ArrowLeft-fC5aEWWu.cjs → ArrowLeft-CjNnGIlF.cjs} +1 -1
  203. package/dist/chunks/{ArrowLeft-fC5aEWWu.cjs.map → ArrowLeft-CjNnGIlF.cjs.map} +1 -1
  204. package/dist/chunks/{ArrowLeft-uW5eNVkY.mjs → ArrowLeft-kklNBL9z.mjs} +1 -1
  205. package/dist/chunks/{ArrowLeft-uW5eNVkY.mjs.map → ArrowLeft-kklNBL9z.mjs.map} +1 -1
  206. package/dist/chunks/{ArrowRight-16bLxoZc.mjs → ArrowRight-C3BxTDjF.mjs} +1 -1
  207. package/dist/chunks/{ArrowRight-16bLxoZc.mjs.map → ArrowRight-C3BxTDjF.mjs.map} +1 -1
  208. package/dist/chunks/{ArrowRight-uUC8qW2c.cjs → ArrowRight-CxzzJJQ6.cjs} +1 -1
  209. package/dist/chunks/{ArrowRight-uUC8qW2c.cjs.map → ArrowRight-CxzzJJQ6.cjs.map} +1 -1
  210. package/dist/chunks/{Check-qy5XrF1J.mjs → Check-CRLmJNGG.mjs} +1 -1
  211. package/dist/chunks/{Check-qy5XrF1J.mjs.map → Check-CRLmJNGG.mjs.map} +1 -1
  212. package/dist/chunks/{Check-QBzDcHpr.cjs → Check-CVn5nytg.cjs} +1 -1
  213. package/dist/chunks/{Check-QBzDcHpr.cjs.map → Check-CVn5nytg.cjs.map} +1 -1
  214. package/dist/chunks/{ChevronDown-Hc_DTRav.cjs → ChevronDown-DQPox_nl.cjs} +1 -1
  215. package/dist/chunks/{ChevronDown-Hc_DTRav.cjs.map → ChevronDown-DQPox_nl.cjs.map} +1 -1
  216. package/dist/chunks/{ChevronDown-suAKKmeb.mjs → ChevronDown-HHJdUMN4.mjs} +1 -1
  217. package/dist/chunks/{ChevronDown-suAKKmeb.mjs.map → ChevronDown-HHJdUMN4.mjs.map} +1 -1
  218. package/dist/chunks/{ChevronRight-MdQC55Yq.cjs → ChevronRight-BAJhNawb.cjs} +1 -1
  219. package/dist/chunks/{ChevronRight-MdQC55Yq.cjs.map → ChevronRight-BAJhNawb.cjs.map} +1 -1
  220. package/dist/chunks/{ChevronRight-9owhU_17.mjs → ChevronRight-DL3e8bjj.mjs} +1 -1
  221. package/dist/chunks/{ChevronRight-9owhU_17.mjs.map → ChevronRight-DL3e8bjj.mjs.map} +1 -1
  222. package/dist/chunks/ChevronUp-B6TIgl1a.mjs +37 -0
  223. package/dist/chunks/ChevronUp-B6TIgl1a.mjs.map +1 -0
  224. package/dist/chunks/ChevronUp-kmHRpe7H.cjs +35 -0
  225. package/dist/chunks/ChevronUp-kmHRpe7H.cjs.map +1 -0
  226. package/dist/chunks/{Close-QtH6_3PP.mjs → Close-BtO5TPBO.mjs} +1 -1
  227. package/dist/chunks/{Close-QtH6_3PP.mjs.map → Close-BtO5TPBO.mjs.map} +1 -1
  228. package/dist/chunks/{Close-dotk0707.cjs → Close-DBfrdXMw.cjs} +1 -1
  229. package/dist/chunks/{Close-dotk0707.cjs.map → Close-DBfrdXMw.cjs.map} +1 -1
  230. package/dist/chunks/{DotsHorizontal-6hepLUSS.cjs → DotsHorizontal-B8kTqpHe.cjs} +1 -1
  231. package/dist/chunks/{DotsHorizontal-6hepLUSS.cjs.map → DotsHorizontal-B8kTqpHe.cjs.map} +1 -1
  232. package/dist/chunks/{DotsHorizontal-IbmXTXRA.mjs → DotsHorizontal-DfVgEXgz.mjs} +1 -1
  233. package/dist/chunks/{DotsHorizontal-IbmXTXRA.mjs.map → DotsHorizontal-DfVgEXgz.mjs.map} +1 -1
  234. package/dist/chunks/{GenColors-DI6G7se8.mjs → GenColors-BteFtwOv.mjs} +3 -3
  235. package/dist/chunks/{GenColors-DI6G7se8.mjs.map → GenColors-BteFtwOv.mjs.map} +1 -1
  236. package/dist/chunks/{GenColors-WX-nGJls.cjs → GenColors-vI-bx9ZY.cjs} +3 -3
  237. package/dist/chunks/{GenColors-WX-nGJls.cjs.map → GenColors-vI-bx9ZY.cjs.map} +1 -1
  238. package/dist/chunks/{GenRandomId-ULxaMkkr.cjs.map → GenRandomId-B2O1GMbH.cjs.map} +1 -1
  239. package/dist/chunks/{GenRandomId-VodkdWbp.mjs.map → GenRandomId-BW3iYFf9.mjs.map} +1 -1
  240. package/dist/chunks/{Linkify-V7PfCeZ8.mjs.map → Linkify-BaDLLFxP.mjs.map} +1 -1
  241. package/dist/chunks/{Linkify-f3s3nAe_.cjs.map → Linkify-Dola0NBa.cjs.map} +1 -1
  242. package/dist/chunks/{NcActionButtonGroup-vn4L_-bD.cjs → NcActionButtonGroup-BdxkXNwc.cjs} +3 -3
  243. package/dist/chunks/{NcActionButtonGroup-vn4L_-bD.cjs.map → NcActionButtonGroup-BdxkXNwc.cjs.map} +1 -1
  244. package/dist/chunks/{NcActionButtonGroup-r7iOjoQx.mjs → NcActionButtonGroup-SS3PkUD2.mjs} +5 -5
  245. package/dist/chunks/{NcActionButtonGroup-r7iOjoQx.mjs.map → NcActionButtonGroup-SS3PkUD2.mjs.map} +1 -1
  246. package/dist/chunks/{NcActionInput-rojOjWGA.mjs → NcActionInput-BHq3Le0q.mjs} +9 -9
  247. package/dist/chunks/{NcActionInput-rojOjWGA.mjs.map → NcActionInput-BHq3Le0q.mjs.map} +1 -1
  248. package/dist/chunks/{NcActionInput-iUn4neUB.cjs → NcActionInput-D308ZntG.cjs} +4 -4
  249. package/dist/chunks/{NcActionInput-iUn4neUB.cjs.map → NcActionInput-D308ZntG.cjs.map} +1 -1
  250. package/dist/chunks/{NcActions-4NCnCJdf.mjs → NcActions-CpU9WXzM.mjs} +135 -131
  251. package/dist/chunks/{NcActions-4NCnCJdf.mjs.map → NcActions-CpU9WXzM.mjs.map} +1 -1
  252. package/dist/chunks/{NcActions-tPPh2p8F.cjs → NcActions-Dfkog_G0.cjs} +134 -130
  253. package/dist/chunks/{NcActions-tPPh2p8F.cjs.map → NcActions-Dfkog_G0.cjs.map} +1 -1
  254. package/dist/chunks/{NcAppContent-jkpg6g7U.mjs → NcAppContent-BDwOdxJE.mjs} +6 -6
  255. package/dist/chunks/{NcAppContent-jkpg6g7U.mjs.map → NcAppContent-BDwOdxJE.mjs.map} +1 -1
  256. package/dist/chunks/{NcAppContent-ZjNUuV0Q.cjs → NcAppContent-kqYjKpzU.cjs} +6 -6
  257. package/dist/chunks/{NcAppContent-ZjNUuV0Q.cjs.map → NcAppContent-kqYjKpzU.cjs.map} +1 -1
  258. package/dist/chunks/{NcAppNavigation-jWJsOIts.mjs → NcAppNavigation-C1Qe3lsk.mjs} +4 -4
  259. package/dist/chunks/{NcAppNavigation-jWJsOIts.mjs.map → NcAppNavigation-C1Qe3lsk.mjs.map} +1 -1
  260. package/dist/chunks/{NcAppNavigation-CNOTInDF.cjs → NcAppNavigation-C423R_m2.cjs} +2 -2
  261. package/dist/chunks/{NcAppNavigation-CNOTInDF.cjs.map → NcAppNavigation-C423R_m2.cjs.map} +1 -1
  262. package/dist/chunks/{NcAppNavigationCaption-HAxOA6LJ.cjs → NcAppNavigationCaption-BKchbDsJ.cjs} +2 -2
  263. package/dist/chunks/{NcAppNavigationCaption-HAxOA6LJ.cjs.map → NcAppNavigationCaption-BKchbDsJ.cjs.map} +1 -1
  264. package/dist/chunks/{NcAppNavigationCaption-t_NRjmPr.mjs → NcAppNavigationCaption-DsT6O4Hx.mjs} +3 -3
  265. package/dist/chunks/{NcAppNavigationCaption-t_NRjmPr.mjs.map → NcAppNavigationCaption-DsT6O4Hx.mjs.map} +1 -1
  266. package/dist/chunks/{NcAppNavigationItem-MA9ORoUF.cjs → NcAppNavigationItem-CABF2T4q.cjs} +47 -79
  267. package/dist/chunks/NcAppNavigationItem-CABF2T4q.cjs.map +1 -0
  268. package/dist/chunks/{NcAppNavigationItem-_F3PGjJA.mjs → NcAppNavigationItem-bjPcEx5D.mjs} +55 -86
  269. package/dist/chunks/NcAppNavigationItem-bjPcEx5D.mjs.map +1 -0
  270. package/dist/chunks/{NcAppNavigationNewItem-AChqGXVZ.mjs → NcAppNavigationNewItem-BHCgaCoK.mjs} +3 -3
  271. package/dist/chunks/{NcAppNavigationNewItem-AChqGXVZ.mjs.map → NcAppNavigationNewItem-BHCgaCoK.mjs.map} +1 -1
  272. package/dist/chunks/{NcAppNavigationNewItem-CDAeQ7VS.cjs → NcAppNavigationNewItem-t45tM5u1.cjs} +2 -2
  273. package/dist/chunks/{NcAppNavigationNewItem-CDAeQ7VS.cjs.map → NcAppNavigationNewItem-t45tM5u1.cjs.map} +1 -1
  274. package/dist/chunks/{NcAppNavigationSettings-1n_Ld521.mjs → NcAppNavigationSettings-BQD7JA4m.mjs} +4 -4
  275. package/dist/chunks/{NcAppNavigationSettings-1n_Ld521.mjs.map → NcAppNavigationSettings-BQD7JA4m.mjs.map} +1 -1
  276. package/dist/chunks/{NcAppNavigationSettings-qW2qjrEY.cjs → NcAppNavigationSettings-CBeUiVLk.cjs} +5 -5
  277. package/dist/chunks/{NcAppNavigationSettings-qW2qjrEY.cjs.map → NcAppNavigationSettings-CBeUiVLk.cjs.map} +1 -1
  278. package/dist/chunks/{NcAppNavigationToggle-H-gUVQa_.mjs → NcAppNavigationToggle-BZxbkhCr.mjs} +3 -3
  279. package/dist/chunks/{NcAppNavigationToggle-H-gUVQa_.mjs.map → NcAppNavigationToggle-BZxbkhCr.mjs.map} +1 -1
  280. package/dist/chunks/{NcAppNavigationToggle-mJ8JlXiA.cjs → NcAppNavigationToggle-DDChOnAq.cjs} +2 -2
  281. package/dist/chunks/{NcAppNavigationToggle-mJ8JlXiA.cjs.map → NcAppNavigationToggle-DDChOnAq.cjs.map} +1 -1
  282. package/dist/chunks/{NcAppSettingsDialog-Sra5JJSN.mjs → NcAppSettingsDialog-DeFBTD2J.mjs} +35 -28
  283. package/dist/chunks/{NcAppSettingsDialog-JAKe849o.cjs.map → NcAppSettingsDialog-DeFBTD2J.mjs.map} +1 -1
  284. package/dist/chunks/{NcAppSettingsDialog-JAKe849o.cjs → NcAppSettingsDialog-EUys9Os_.cjs} +29 -22
  285. package/dist/chunks/{NcAppSettingsDialog-Sra5JJSN.mjs.map → NcAppSettingsDialog-EUys9Os_.cjs.map} +1 -1
  286. package/dist/chunks/{NcAppSidebar-3es9kNNh.mjs → NcAppSidebar-CdSvRI6l.mjs} +26 -22
  287. package/dist/chunks/{NcAppSidebar-3es9kNNh.mjs.map → NcAppSidebar-CdSvRI6l.mjs.map} +1 -1
  288. package/dist/chunks/{NcAppSidebar-8_YcevI9.cjs → NcAppSidebar-Du-IRmEO.cjs} +17 -13
  289. package/dist/chunks/{NcAppSidebar-8_YcevI9.cjs.map → NcAppSidebar-Du-IRmEO.cjs.map} +1 -1
  290. package/dist/chunks/{NcAvatar-Vp4PnmMw.cjs → NcAvatar-BEet_8fB.cjs} +57 -53
  291. package/dist/chunks/{NcAvatar-Vp4PnmMw.cjs.map → NcAvatar-BEet_8fB.cjs.map} +1 -1
  292. package/dist/chunks/{NcAvatar-MHywJkM4.mjs → NcAvatar-e0M-nnF6.mjs} +73 -69
  293. package/dist/chunks/{NcAvatar-MHywJkM4.mjs.map → NcAvatar-e0M-nnF6.mjs.map} +1 -1
  294. package/dist/chunks/{NcBreadcrumb-K8expM4Y.mjs → NcBreadcrumb-CVMyBckA.mjs} +7 -7
  295. package/dist/chunks/{NcBreadcrumb-K8expM4Y.mjs.map → NcBreadcrumb-CVMyBckA.mjs.map} +1 -1
  296. package/dist/chunks/{NcBreadcrumb-lksx7xyQ.cjs → NcBreadcrumb-DVXsgQkE.cjs} +4 -4
  297. package/dist/chunks/{NcBreadcrumb-lksx7xyQ.cjs.map → NcBreadcrumb-DVXsgQkE.cjs.map} +1 -1
  298. package/dist/chunks/{NcBreadcrumbs-cwBxvntJ.cjs → NcBreadcrumbs-DkgzO9f5.cjs} +103 -99
  299. package/dist/chunks/{NcBreadcrumbs-cwBxvntJ.cjs.map → NcBreadcrumbs-DkgzO9f5.cjs.map} +1 -1
  300. package/dist/chunks/{NcBreadcrumbs-rX1BVFSi.mjs → NcBreadcrumbs-DqRU0BfB.mjs} +65 -61
  301. package/dist/chunks/{NcBreadcrumbs-rX1BVFSi.mjs.map → NcBreadcrumbs-DqRU0BfB.mjs.map} +1 -1
  302. package/dist/chunks/{NcCheckboxRadioSwitch-hel9-sAH.mjs → NcCheckboxRadioSwitch-7Yib86y3.mjs} +6 -6
  303. package/dist/chunks/{NcCheckboxRadioSwitch-hel9-sAH.mjs.map → NcCheckboxRadioSwitch-7Yib86y3.mjs.map} +1 -1
  304. package/dist/chunks/{NcCheckboxRadioSwitch-BUIaJMqW.cjs → NcCheckboxRadioSwitch-Dt96X5bR.cjs} +5 -5
  305. package/dist/chunks/{NcCheckboxRadioSwitch-BUIaJMqW.cjs.map → NcCheckboxRadioSwitch-Dt96X5bR.cjs.map} +1 -1
  306. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs +4 -0
  307. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs.map +1 -0
  308. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs +3 -0
  309. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs.map +1 -0
  310. package/dist/chunks/{NcColorPicker-_OGhRcL2.cjs → NcColorPicker-BVqwn1Fr.cjs} +4 -5
  311. package/dist/chunks/{NcColorPicker-rdotuXIn.mjs.map → NcColorPicker-BVqwn1Fr.cjs.map} +1 -1
  312. package/dist/chunks/{NcColorPicker-rdotuXIn.mjs → NcColorPicker-Dkxeigs5.mjs} +11 -12
  313. package/dist/chunks/{NcColorPicker-_OGhRcL2.cjs.map → NcColorPicker-Dkxeigs5.mjs.map} +1 -1
  314. package/dist/chunks/NcContent-Bmeq8hLO.cjs +80 -0
  315. package/dist/chunks/{NcContent-M9BJMGg0.mjs.map → NcContent-Bmeq8hLO.cjs.map} +1 -1
  316. package/dist/chunks/NcContent-COIw1X7V.mjs +87 -0
  317. package/dist/chunks/{NcContent-qCB26fzT.cjs.map → NcContent-COIw1X7V.mjs.map} +1 -1
  318. package/dist/chunks/{NcDashboardWidget-oK144Mdz.mjs → NcDashboardWidget-Cxz_n1AN.mjs} +6 -6
  319. package/dist/chunks/{NcDashboardWidget-oK144Mdz.mjs.map → NcDashboardWidget-Cxz_n1AN.mjs.map} +1 -1
  320. package/dist/chunks/{NcDashboardWidget-ajzKRBC2.cjs → NcDashboardWidget-DArU3jbL.cjs} +3 -3
  321. package/dist/chunks/{NcDashboardWidget-ajzKRBC2.cjs.map → NcDashboardWidget-DArU3jbL.cjs.map} +1 -1
  322. package/dist/chunks/{NcDashboardWidgetItem-hmytFH9r.cjs → NcDashboardWidgetItem-BAhzcFfs.cjs} +2 -2
  323. package/dist/chunks/{NcDashboardWidgetItem-hmytFH9r.cjs.map → NcDashboardWidgetItem-BAhzcFfs.cjs.map} +1 -1
  324. package/dist/chunks/{NcDashboardWidgetItem-H0TN4xZv.mjs → NcDashboardWidgetItem-BV2tuXoj.mjs} +4 -4
  325. package/dist/chunks/{NcDashboardWidgetItem-H0TN4xZv.mjs.map → NcDashboardWidgetItem-BV2tuXoj.mjs.map} +1 -1
  326. package/dist/chunks/{NcDateTime-FfZJDKud.mjs → NcDateTime-B0oaElJX.mjs} +2 -2
  327. package/dist/chunks/{NcDateTime-FfZJDKud.mjs.map → NcDateTime-B0oaElJX.mjs.map} +1 -1
  328. package/dist/chunks/{NcDateTime-7m58XSm1.cjs → NcDateTime-Dl0XztMt.cjs} +1 -1
  329. package/dist/chunks/{NcDateTime-7m58XSm1.cjs.map → NcDateTime-Dl0XztMt.cjs.map} +1 -1
  330. package/dist/chunks/{NcDialog-f6KwlaqC.cjs → NcDialog-C6nYgBDF.cjs} +3 -3
  331. package/dist/chunks/{NcDialog-f6KwlaqC.cjs.map → NcDialog-C6nYgBDF.cjs.map} +1 -1
  332. package/dist/chunks/{NcDialog-_HZnlBi4.mjs → NcDialog-D6YSjidf.mjs} +5 -5
  333. package/dist/chunks/{NcDialog-_HZnlBi4.mjs.map → NcDialog-D6YSjidf.mjs.map} +1 -1
  334. package/dist/chunks/{NcDialogButton-CtdP0-DO.cjs → NcDialogButton-D7ibBxsQ.cjs} +11 -10
  335. package/dist/chunks/{NcDialogButton-xDZQrfsw.mjs.map → NcDialogButton-D7ibBxsQ.cjs.map} +1 -1
  336. package/dist/chunks/{NcDialogButton-xDZQrfsw.mjs → NcDialogButton-DQFoaN7q.mjs} +14 -13
  337. package/dist/chunks/{NcDialogButton-CtdP0-DO.cjs.map → NcDialogButton-DQFoaN7q.mjs.map} +1 -1
  338. package/dist/chunks/{NcEmojiPicker-fsigxTm2.cjs → NcEmojiPicker-BCdoIKXJ.cjs} +54 -52
  339. package/dist/chunks/{NcEmojiPicker-fsigxTm2.cjs.map → NcEmojiPicker-BCdoIKXJ.cjs.map} +1 -1
  340. package/dist/chunks/{NcEmojiPicker-g4_HENyr.mjs → NcEmojiPicker-fRx7dTTf.mjs} +12 -10
  341. package/dist/chunks/{NcEmojiPicker-g4_HENyr.mjs.map → NcEmojiPicker-fRx7dTTf.mjs.map} +1 -1
  342. package/dist/chunks/{NcHeaderMenu-0d6eqre6.cjs → NcHeaderMenu-BUeI4DGP.cjs} +11 -9
  343. package/dist/chunks/{NcHeaderMenu-0d6eqre6.cjs.map → NcHeaderMenu-BUeI4DGP.cjs.map} +1 -1
  344. package/dist/chunks/{NcHeaderMenu-91qMsRIw.mjs → NcHeaderMenu-CXBimxcN.mjs} +11 -9
  345. package/dist/chunks/{NcHeaderMenu-91qMsRIw.mjs.map → NcHeaderMenu-CXBimxcN.mjs.map} +1 -1
  346. package/dist/chunks/{NcIconSvgWrapper-CvnWKK7h.mjs → NcIconSvgWrapper-BTdzvQGV.mjs} +3 -3
  347. package/dist/chunks/{NcIconSvgWrapper-CvnWKK7h.mjs.map → NcIconSvgWrapper-BTdzvQGV.mjs.map} +1 -1
  348. package/dist/chunks/{NcIconSvgWrapper-RwagV5P9.cjs → NcIconSvgWrapper-kIn1eQyv.cjs} +3 -3
  349. package/dist/chunks/{NcIconSvgWrapper-RwagV5P9.cjs.map → NcIconSvgWrapper-kIn1eQyv.cjs.map} +1 -1
  350. package/dist/chunks/{NcInputConfirmCancel-1G2LMh5T.mjs → NcInputConfirmCancel-BXZqwqY6.mjs} +5 -5
  351. package/dist/chunks/{NcInputConfirmCancel-1G2LMh5T.mjs.map → NcInputConfirmCancel-BXZqwqY6.mjs.map} +1 -1
  352. package/dist/chunks/{NcInputConfirmCancel-9l24xmqk.cjs → NcInputConfirmCancel-DpgXTGmT.cjs} +2 -2
  353. package/dist/chunks/{NcInputConfirmCancel-9l24xmqk.cjs.map → NcInputConfirmCancel-DpgXTGmT.cjs.map} +1 -1
  354. package/dist/chunks/{NcListItem-JO4s1J8T.mjs → NcListItem-C5oWvAZQ.mjs} +5 -5
  355. package/dist/chunks/{NcListItem-JO4s1J8T.mjs.map → NcListItem-C5oWvAZQ.mjs.map} +1 -1
  356. package/dist/chunks/{NcListItem-y9KnglaX.cjs → NcListItem-wxqWqs4s.cjs} +3 -3
  357. package/dist/chunks/{NcListItem-y9KnglaX.cjs.map → NcListItem-wxqWqs4s.cjs.map} +1 -1
  358. package/dist/chunks/{NcListItemIcon-JWu3t5En.cjs → NcListItemIcon-DfdkSCin.cjs} +6 -5
  359. package/dist/chunks/{NcListItemIcon-JWu3t5En.cjs.map → NcListItemIcon-DfdkSCin.cjs.map} +1 -1
  360. package/dist/chunks/{NcListItemIcon-NPSUuwgH.mjs → NcListItemIcon-WH9TUCxb.mjs} +8 -7
  361. package/dist/chunks/{NcListItemIcon-NPSUuwgH.mjs.map → NcListItemIcon-WH9TUCxb.mjs.map} +1 -1
  362. package/dist/chunks/{NcPasswordField-sshf3uoz.mjs → NcPasswordField-BPAivxc_.mjs} +38 -38
  363. package/dist/chunks/{NcPasswordField-sshf3uoz.mjs.map → NcPasswordField-BPAivxc_.mjs.map} +1 -1
  364. package/dist/chunks/{NcPasswordField-r4LxrITz.cjs → NcPasswordField-BgNcvN0V.cjs} +16 -16
  365. package/dist/chunks/{NcPasswordField-r4LxrITz.cjs.map → NcPasswordField-BgNcvN0V.cjs.map} +1 -1
  366. package/dist/chunks/{NcPopover-93ns_0K4.mjs → NcPopover--V3R3EKV.mjs} +39 -33
  367. package/dist/chunks/{NcPopover-93ns_0K4.mjs.map → NcPopover--V3R3EKV.mjs.map} +1 -1
  368. package/dist/chunks/{NcPopover-fv7OFtxM.cjs → NcPopover-h-t7Dnjk.cjs} +16 -10
  369. package/dist/chunks/{NcPopover-fv7OFtxM.cjs.map → NcPopover-h-t7Dnjk.cjs.map} +1 -1
  370. package/dist/chunks/{NcProgressBar-BthaVVHU.cjs → NcProgressBar-BYk5hfPI.cjs} +3 -3
  371. package/dist/chunks/{NcProgressBar-BthaVVHU.cjs.map → NcProgressBar-BYk5hfPI.cjs.map} +1 -1
  372. package/dist/chunks/{NcProgressBar-h2ufKS6c.mjs → NcProgressBar-DDAeXyp8.mjs} +3 -3
  373. package/dist/chunks/{NcProgressBar-h2ufKS6c.mjs.map → NcProgressBar-DDAeXyp8.mjs.map} +1 -1
  374. package/dist/chunks/NcRelatedResourcesPanel-Cp8Au2iI.cjs +371 -0
  375. package/dist/chunks/NcRelatedResourcesPanel-Cp8Au2iI.cjs.map +1 -0
  376. package/dist/chunks/NcRelatedResourcesPanel-LTNqJecS.mjs +381 -0
  377. package/dist/chunks/NcRelatedResourcesPanel-LTNqJecS.mjs.map +1 -0
  378. package/dist/chunks/{NcRichContenteditable-1aWhJhMf.mjs → NcRichContenteditable-CHggLQuR.mjs} +42 -35
  379. package/dist/chunks/{NcRichContenteditable-1aWhJhMf.mjs.map → NcRichContenteditable-CHggLQuR.mjs.map} +1 -1
  380. package/dist/chunks/{NcRichContenteditable-tQi-Ee-6.cjs → NcRichContenteditable-hT5m_2tr.cjs} +120 -113
  381. package/dist/chunks/{NcRichContenteditable-tQi-Ee-6.cjs.map → NcRichContenteditable-hT5m_2tr.cjs.map} +1 -1
  382. package/dist/chunks/{NcRichText-LKlliqlj.mjs → NcRichText-BBXbh0Hh.mjs} +65 -62
  383. package/dist/chunks/NcRichText-BBXbh0Hh.mjs.map +1 -0
  384. package/dist/chunks/{NcRichText-zUTcd9g0.cjs → NcRichText-BWX8BLVh.cjs} +53 -50
  385. package/dist/chunks/NcRichText-BWX8BLVh.cjs.map +1 -0
  386. package/dist/chunks/{NcSavingIndicatorIcon-wcQ0mBIL.cjs → NcSavingIndicatorIcon-BTvUkUn-.cjs} +1 -1
  387. package/dist/chunks/{NcSavingIndicatorIcon-wcQ0mBIL.cjs.map → NcSavingIndicatorIcon-BTvUkUn-.cjs.map} +1 -1
  388. package/dist/chunks/{NcSavingIndicatorIcon-IqoMFcDK.mjs → NcSavingIndicatorIcon-Bf0SEmgS.mjs} +1 -1
  389. package/dist/chunks/{NcSavingIndicatorIcon-IqoMFcDK.mjs.map → NcSavingIndicatorIcon-Bf0SEmgS.mjs.map} +1 -1
  390. package/dist/chunks/{NcSelect-Hw3T6JKO.mjs → NcSelect-BVmjiQFa.mjs} +55 -51
  391. package/dist/chunks/{NcSelect-Hw3T6JKO.mjs.map → NcSelect-BVmjiQFa.mjs.map} +1 -1
  392. package/dist/chunks/{NcSelect-KpQ1z3xL.cjs → NcSelect-DjTSAsNL.cjs} +50 -46
  393. package/dist/chunks/{NcSelect-KpQ1z3xL.cjs.map → NcSelect-DjTSAsNL.cjs.map} +1 -1
  394. package/dist/chunks/{NcSelectTags-dBHEZJKD.cjs → NcSelectTags-BJvxyO8E.cjs} +2 -11
  395. package/dist/chunks/{NcSelectTags-dBHEZJKD.cjs.map → NcSelectTags-BJvxyO8E.cjs.map} +1 -1
  396. package/dist/chunks/{NcSelectTags-_JF5U0z-.mjs → NcSelectTags-Ccv-eQzZ.mjs} +4 -13
  397. package/dist/chunks/{NcSelectTags-_JF5U0z-.mjs.map → NcSelectTags-Ccv-eQzZ.mjs.map} +1 -1
  398. package/dist/chunks/{NcSettingsInputText-8TTOXLUf.cjs → NcSettingsInputText-CcO2Du6E.cjs} +3 -3
  399. package/dist/chunks/{NcSettingsInputText-8TTOXLUf.cjs.map → NcSettingsInputText-CcO2Du6E.cjs.map} +1 -1
  400. package/dist/chunks/{NcSettingsInputText-xNWnltHw.mjs → NcSettingsInputText-DXxmqvcd.mjs} +4 -4
  401. package/dist/chunks/{NcSettingsInputText-xNWnltHw.mjs.map → NcSettingsInputText-DXxmqvcd.mjs.map} +1 -1
  402. package/dist/chunks/{NcSettingsSection-f1NU2FVI.mjs → NcSettingsSection-DBe4fKFA.mjs} +3 -3
  403. package/dist/chunks/{NcSettingsSection-f1NU2FVI.mjs.map → NcSettingsSection-DBe4fKFA.mjs.map} +1 -1
  404. package/dist/chunks/{NcSettingsSection-wQR22_HI.cjs → NcSettingsSection-qgIYSB_M.cjs} +3 -3
  405. package/dist/chunks/{NcSettingsSection-wQR22_HI.cjs.map → NcSettingsSection-qgIYSB_M.cjs.map} +1 -1
  406. package/dist/chunks/{NcSettingsSelectGroup-7rZs5am4.cjs → NcSettingsSelectGroup-DD8PEgvQ.cjs} +6 -6
  407. package/dist/chunks/{NcSettingsSelectGroup-7rZs5am4.cjs.map → NcSettingsSelectGroup-DD8PEgvQ.cjs.map} +1 -1
  408. package/dist/chunks/{NcSettingsSelectGroup-KR0JI731.mjs → NcSettingsSelectGroup-d2TLOW1O.mjs} +8 -8
  409. package/dist/chunks/{NcSettingsSelectGroup-KR0JI731.mjs.map → NcSettingsSelectGroup-d2TLOW1O.mjs.map} +1 -1
  410. package/dist/chunks/{NcTextField-u76gJqK3.mjs → NcTextField-CU-YIhL3.mjs} +4 -4
  411. package/dist/chunks/{NcTextField-u76gJqK3.mjs.map → NcTextField-CU-YIhL3.mjs.map} +1 -1
  412. package/dist/chunks/{NcTextField-ejnIVzP2.cjs → NcTextField-CsnzlYWD.cjs} +2 -2
  413. package/dist/chunks/{NcTextField-ejnIVzP2.cjs.map → NcTextField-CsnzlYWD.cjs.map} +1 -1
  414. package/dist/chunks/NcTimezonePicker-C-Ci2IuC.cjs +3780 -0
  415. package/dist/chunks/{NcTimezonePicker-OON0Y0l1.cjs.map → NcTimezonePicker-C-Ci2IuC.cjs.map} +1 -1
  416. package/dist/chunks/NcTimezonePicker-gvp9MAcg.mjs +3786 -0
  417. package/dist/chunks/{NcTimezonePicker-s9HDKbHx.mjs.map → NcTimezonePicker-gvp9MAcg.mjs.map} +1 -1
  418. package/dist/chunks/{NcUserBubble-cv1Ae_v4.cjs → NcUserBubble-COhpp9l_.cjs} +4 -3
  419. package/dist/chunks/{NcUserBubble-2gGv-0Sv.mjs.map → NcUserBubble-COhpp9l_.cjs.map} +1 -1
  420. package/dist/chunks/{NcUserBubble-2gGv-0Sv.mjs → NcUserBubble-CbufscPi.mjs} +6 -5
  421. package/dist/chunks/{NcUserBubble-cv1Ae_v4.cjs.map → NcUserBubble-CbufscPi.mjs.map} +1 -1
  422. package/dist/chunks/{NcUserStatusIcon-q3okK462.mjs → NcUserStatusIcon-0SGYQL9L.mjs} +37 -54
  423. package/dist/chunks/{NcUserStatusIcon-q3okK462.mjs.map → NcUserStatusIcon-0SGYQL9L.mjs.map} +1 -1
  424. package/dist/chunks/NcUserStatusIcon-C7dfcW39.cjs +150 -0
  425. package/dist/chunks/{NcUserStatusIcon-ydS217hk.cjs.map → NcUserStatusIcon-C7dfcW39.cjs.map} +1 -1
  426. package/dist/chunks/{ScopeComponent-fOJOJbfW.mjs → ScopeComponent-DFDrMcn0.mjs} +1 -1
  427. package/dist/chunks/{ScopeComponent-fOJOJbfW.mjs.map → ScopeComponent-DFDrMcn0.mjs.map} +1 -1
  428. package/dist/chunks/{ScopeComponent-ad_Jva5z.cjs → ScopeComponent-DXQGLon_.cjs} +1 -1
  429. package/dist/chunks/{ScopeComponent-ad_Jva5z.cjs.map → ScopeComponent-DXQGLon_.cjs.map} +1 -1
  430. package/dist/chunks/_l10n-B986q8RC.cjs +66 -0
  431. package/dist/chunks/_l10n-B986q8RC.cjs.map +1 -0
  432. package/dist/chunks/_l10n-D8Scz3mH.mjs +68 -0
  433. package/dist/chunks/_l10n-D8Scz3mH.mjs.map +1 -0
  434. package/dist/chunks/_plugin-vue2_normalizer-Bj5bLKV4.mjs.map +1 -0
  435. package/dist/chunks/_plugin-vue2_normalizer-GXKvuwrq.cjs.map +1 -0
  436. package/dist/chunks/{actionGlobal-fRayfdEK.mjs.map → actionGlobal-D49NL940.mjs.map} +1 -1
  437. package/dist/chunks/{actionGlobal-SGFis4LZ.cjs.map → actionGlobal-DL1VaQzF.cjs.map} +1 -1
  438. package/dist/chunks/{actionText-nj1gFMEY.cjs → actionText-iWNpvZuI.cjs} +1 -1
  439. package/dist/chunks/{actionText-nj1gFMEY.cjs.map → actionText-iWNpvZuI.cjs.map} +1 -1
  440. package/dist/chunks/{actionText-bMy_49i8.mjs → actionText-jLsEBszD.mjs} +1 -1
  441. package/dist/chunks/{actionText-bMy_49i8.mjs.map → actionText-jLsEBszD.mjs.map} +1 -1
  442. package/dist/chunks/{autolink-oKM43mOC.mjs.map → autolink-BtgUDDdk.mjs.map} +1 -1
  443. package/dist/chunks/{autolink-gVCgJtXh.cjs.map → autolink-D0rLUkqm.cjs.map} +1 -1
  444. package/dist/chunks/{emoji-mJIuLpNR.cjs → emoji-DEH9dtOa.cjs} +7 -6
  445. package/dist/chunks/{emoji-mJIuLpNR.cjs.map → emoji-DEH9dtOa.cjs.map} +1 -1
  446. package/dist/chunks/{emoji-tllD0Rvt.mjs → emoji-k4gWHxrE.mjs} +4 -3
  447. package/dist/chunks/{emoji-tllD0Rvt.mjs.map → emoji-k4gWHxrE.mjs.map} +1 -1
  448. package/dist/chunks/{focusTrap-Py2bQ9-r.mjs.map → focusTrap-Be9GEB5C.mjs.map} +1 -1
  449. package/dist/chunks/{focusTrap-n3H52LOw.cjs.map → focusTrap-xauhLvvr.cjs.map} +1 -1
  450. package/dist/chunks/index-Bh9FEWbr.cjs +87 -0
  451. package/dist/chunks/index-Bh9FEWbr.cjs.map +1 -0
  452. package/dist/chunks/{index-XRGLuo0a.cjs → index-CIsMzBte.cjs} +9 -11
  453. package/dist/chunks/{index-XRGLuo0a.cjs.map → index-CIsMzBte.cjs.map} +1 -1
  454. package/dist/chunks/index-CU14QsCg.mjs +88 -0
  455. package/dist/chunks/index-CU14QsCg.mjs.map +1 -0
  456. package/dist/chunks/{index-FO4BaGaF.cjs → index-Cke9rKBg.cjs} +1 -1
  457. package/dist/chunks/{index-FO4BaGaF.cjs.map → index-Cke9rKBg.cjs.map} +1 -1
  458. package/dist/chunks/{index-2phCrsSH.mjs → index-CnpswYi6.mjs} +1 -1
  459. package/dist/chunks/{index-2phCrsSH.mjs.map → index-CnpswYi6.mjs.map} +1 -1
  460. package/dist/chunks/{index-05Rfhge1.mjs → index-DYXjj9ET.mjs} +10 -12
  461. package/dist/chunks/{index-05Rfhge1.mjs.map → index-DYXjj9ET.mjs.map} +1 -1
  462. package/dist/chunks/{logger-3m1eQsSo.mjs.map → logger-C7qcfVW8.mjs.map} +1 -1
  463. package/dist/chunks/{logger-G6OKp5ly.cjs.map → logger-D9RRY4er.cjs.map} +1 -1
  464. package/dist/chunks/{referencePickerModal-02Pa52XN.mjs → referencePickerModal-DUhJWt2e.mjs} +721 -659
  465. package/dist/chunks/referencePickerModal-DUhJWt2e.mjs.map +1 -0
  466. package/dist/chunks/{referencePickerModal-87PoyCB_.cjs → referencePickerModal-DV7-XzCc.cjs} +377 -315
  467. package/dist/chunks/referencePickerModal-DV7-XzCc.cjs.map +1 -0
  468. package/dist/chunks/{usernameToColor-zos-xTTA.cjs → usernameToColor-DibvD_OP.cjs} +1 -1
  469. package/dist/chunks/{usernameToColor-zos-xTTA.cjs.map → usernameToColor-DibvD_OP.cjs.map} +1 -1
  470. package/dist/chunks/{usernameToColor-exoSzo-C.mjs → usernameToColor-iYF-oKTP.mjs} +1 -1
  471. package/dist/chunks/{usernameToColor-exoSzo-C.mjs.map → usernameToColor-iYF-oKTP.mjs.map} +1 -1
  472. package/dist/functions/reference/widgets.d.ts +37 -0
  473. package/dist/index.cjs +18 -17
  474. package/dist/index.cjs.map +1 -1
  475. package/dist/index.mjs +112 -111
  476. package/package.json +13 -13
  477. package/dist/chunks/NcAppNavigationItem-MA9ORoUF.cjs.map +0 -1
  478. package/dist/chunks/NcAppNavigationItem-_F3PGjJA.mjs.map +0 -1
  479. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-UbvywlEZ.cjs +0 -4
  480. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-UbvywlEZ.cjs.map +0 -1
  481. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-pNm38e__.mjs +0 -3
  482. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-pNm38e__.mjs.map +0 -1
  483. package/dist/chunks/NcContent-M9BJMGg0.mjs +0 -131
  484. package/dist/chunks/NcContent-qCB26fzT.cjs +0 -124
  485. package/dist/chunks/NcRelatedResourcesPanel-3uGS3Og7.mjs +0 -211
  486. package/dist/chunks/NcRelatedResourcesPanel-3uGS3Og7.mjs.map +0 -1
  487. package/dist/chunks/NcRelatedResourcesPanel-I6QLPffA.cjs +0 -205
  488. package/dist/chunks/NcRelatedResourcesPanel-I6QLPffA.cjs.map +0 -1
  489. package/dist/chunks/NcRichText-LKlliqlj.mjs.map +0 -1
  490. package/dist/chunks/NcRichText-zUTcd9g0.cjs.map +0 -1
  491. package/dist/chunks/NcTimezonePicker-OON0Y0l1.cjs +0 -7195
  492. package/dist/chunks/NcTimezonePicker-s9HDKbHx.mjs +0 -7201
  493. package/dist/chunks/NcUserStatusIcon-ydS217hk.cjs +0 -167
  494. package/dist/chunks/_l10n-9dioj9MT.mjs +0 -66
  495. package/dist/chunks/_l10n-9dioj9MT.mjs.map +0 -1
  496. package/dist/chunks/_l10n-qu3Uu6RR.cjs +0 -64
  497. package/dist/chunks/_l10n-qu3Uu6RR.cjs.map +0 -1
  498. package/dist/chunks/_plugin-vue2_normalizer-DCfUPqga.cjs.map +0 -1
  499. package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs.map +0 -1
  500. package/dist/chunks/referencePickerModal-02Pa52XN.mjs.map +0 -1
  501. package/dist/chunks/referencePickerModal-87PoyCB_.cjs.map +0 -1
  502. /package/dist/assets/{NcActionButton-rOZFVQA8.css → NcActionButton-Cs5kVVAD.css} +0 -0
  503. /package/dist/assets/{NcActionButtonGroup-oXobVIqQ.css → NcActionButtonGroup-ChehtUip.css} +0 -0
  504. /package/dist/assets/{NcActionCaption-afJqyJO6.css → NcActionCaption-Bp8mrIk7.css} +0 -0
  505. /package/dist/assets/{NcActionCheckbox-6Pvlr1E7.css → NcActionCheckbox-Do--WvUT.css} +0 -0
  506. /package/dist/assets/{NcActionInput-4zSvDkWm.css → NcActionInput-DjNK8ORa.css} +0 -0
  507. /package/dist/assets/{NcActionLink-zdzQgwtH.css → NcActionLink-DN3NCDC0.css} +0 -0
  508. /package/dist/assets/{NcActionRadio-eOr9Sp-D.css → NcActionRadio-B46v1Kn4.css} +0 -0
  509. /package/dist/assets/{NcActionRouter-MFTD6tYI.css → NcActionRouter-wVMPq1gi.css} +0 -0
  510. /package/dist/assets/{NcActionSeparator-l98xWbiL.css → NcActionSeparator-CX3zFZuI.css} +0 -0
  511. /package/dist/assets/{NcActionText-GJYwsw_U.css → NcActionText-YljCzD9Q.css} +0 -0
  512. /package/dist/assets/{NcActionTextEditable-JrYuWEDd.css → NcActionTextEditable-mti5YQN1.css} +0 -0
  513. /package/dist/assets/{NcAppNavigation-9nlYnuUQ.css → NcAppNavigation-D2eVie5R.css} +0 -0
  514. /package/dist/assets/{NcAppNavigationCaption-I1dcvB0N.css → NcAppNavigationCaption-jV1y8HQ1.css} +0 -0
  515. /package/dist/assets/{NcAppNavigationIconBullet-Nf3ARMLv.css → NcAppNavigationIconBullet-1_cBEwu8.css} +0 -0
  516. /package/dist/assets/{NcAppNavigationItem-caMsw_N_.css → NcAppNavigationItem-BxoyzD83.css} +0 -0
  517. /package/dist/assets/{NcAppNavigationList-RooPPg4w.css → NcAppNavigationList-BGig8-Dj.css} +0 -0
  518. /package/dist/assets/{NcAppNavigationNew-joyd78FM.css → NcAppNavigationNew-COjJ3vwU.css} +0 -0
  519. /package/dist/assets/{NcAppNavigationNewItem-ue-H4LQY.css → NcAppNavigationNewItem-C574fgtB.css} +0 -0
  520. /package/dist/assets/{NcAppNavigationSettings-Jx_6RpSn.css → NcAppNavigationSettings-nH_pGlKc.css} +0 -0
  521. /package/dist/assets/{NcAppNavigationSpacer-uaft91Uz.css → NcAppNavigationSpacer-C5p-33VT.css} +0 -0
  522. /package/dist/assets/{NcAppNavigationToggle-3vMKtCQL.css → NcAppNavigationToggle-De8wq0JA.css} +0 -0
  523. /package/dist/assets/{NcAppSettingsDialog-0eOo3ERv.css → NcAppSettingsDialog-DR46jcRG.css} +0 -0
  524. /package/dist/assets/{NcAppSettingsSection-ahfdhix_.css → NcAppSettingsSection-BqF92GLH.css} +0 -0
  525. /package/dist/assets/{NcAppSidebar-RkF-tqKy.css → NcAppSidebar-BGQX62or.css} +0 -0
  526. /package/dist/assets/{NcAppSidebarTab-FywbKxqo.css → NcAppSidebarTab-XLBsrGqg.css} +0 -0
  527. /package/dist/assets/{NcAvatar-5H9cqcD1.css → NcAvatar-Dkf1ypwP.css} +0 -0
  528. /package/dist/assets/{NcBreadcrumb-HspaFygg.css → NcBreadcrumb-eyloXKCC.css} +0 -0
  529. /package/dist/assets/{NcBreadcrumbs-KBV0Jccv.css → NcBreadcrumbs-oFXQlxy-.css} +0 -0
  530. /package/dist/assets/{NcButton-4Wj3KJn8.css → NcButton-DhaPcomf.css} +0 -0
  531. /package/dist/assets/{NcCheckboxRadioSwitch-mgKotCbU.css → NcCheckboxRadioSwitch-CaAqi0Jt.css} +0 -0
  532. /package/dist/assets/{NcColorPicker-jW6HOxWA.css → NcColorPicker-CNboc7FY.css} +0 -0
  533. /package/dist/assets/{NcContent-LWR23l9i.css → NcContent-tZHbeX2L.css} +0 -0
  534. /package/dist/assets/{NcCounterBubble-rgkmqN46.css → NcCounterBubble-CuCSao3j.css} +0 -0
  535. /package/dist/assets/{NcDashboardWidget-01deRW9Z.css → NcDashboardWidget-DTV15Fb1.css} +0 -0
  536. /package/dist/assets/{NcDashboardWidgetItem-OL--xR_P.css → NcDashboardWidgetItem-4v77FH89.css} +0 -0
  537. /package/dist/assets/{NcDateTimePickerNative-5yybtvfx.css → NcDateTimePickerNative-DnLJu29_.css} +0 -0
  538. /package/dist/assets/{NcDialog-DN-rY-55.css → NcDialog-M36tj7nk.css} +0 -0
  539. /package/dist/assets/{NcEllipsisedOption-eoI10kvc.css → NcEllipsisedOption-B6gjXSS9.css} +0 -0
  540. /package/dist/assets/{NcEmptyContent-pSz7F6Oe.css → NcEmptyContent-ClLPsXo5.css} +0 -0
  541. /package/dist/assets/{NcGuestContent-mGGTzI2_.css → NcGuestContent-CYYZPMjb.css} +0 -0
  542. /package/dist/assets/{NcHeaderMenu-Srn5iXdL.css → NcHeaderMenu-BKufmJd0.css} +0 -0
  543. /package/dist/assets/{NcIconSvgWrapper-KLotijwU.css → NcIconSvgWrapper-oui2KPBT.css} +0 -0
  544. /package/dist/assets/{NcInputConfirmCancel-ks8z8dIn.css → NcInputConfirmCancel-CSzzPx0i.css} +0 -0
  545. /package/dist/assets/{NcInputField-L2Lld_iG.css → NcInputField-vYuV3-IY.css} +0 -0
  546. /package/dist/assets/{NcListItem-L8LeGwpe.css → NcListItem-vwt4bCl6.css} +0 -0
  547. /package/dist/assets/{NcListItemIcon-PQ2s6ZqX.css → NcListItemIcon-9Dazpmpd.css} +0 -0
  548. /package/dist/assets/{NcLoadingIcon-hZn7TJM8.css → NcLoadingIcon-CFmftMkz.css} +0 -0
  549. /package/dist/assets/{NcMentionBubble-YYl1ib_F.css → NcMentionBubble-BhiXWJv8.css} +0 -0
  550. /package/dist/assets/{NcModal-sIK5sUoC.css → NcModal-CwgrmxSg.css} +0 -0
  551. /package/dist/assets/{NcNoteCard-f0NZpwjL.css → NcNoteCard-B_Q1mnCM.css} +0 -0
  552. /package/dist/assets/{NcPopover-MK4GcuPY.css → NcPopover-wrgZy49g.css} +0 -0
  553. /package/dist/assets/{NcProgressBar-w4-G5gQR.css → NcProgressBar-DDj4bmBB.css} +0 -0
  554. /package/dist/assets/{NcRichContenteditable-rW6l0h3m.css → NcRichContenteditable-CtbqXSHe.css} +0 -0
  555. /package/dist/assets/{NcSelect-OGgZlx4Q.css → NcSelect-4aBmXHhA.css} +0 -0
  556. /package/dist/assets/{NcSettingsInputText-MPi6a3Yy.css → NcSettingsInputText-w-LprdjK.css} +0 -0
  557. /package/dist/assets/{NcSettingsSection-PEWm0eeL.css → NcSettingsSection-8RabR54v.css} +0 -0
  558. /package/dist/assets/{NcSettingsSelectGroup-_Jpb8yE3.css → NcSettingsSelectGroup-D8mlvzIT.css} +0 -0
  559. /package/dist/assets/{NcTextArea-4rVwq6GK.css → NcTextArea-DitXCroY.css} +0 -0
  560. /package/dist/assets/{NcUserBubble-jjzI5imn.css → NcUserBubble-COPMjmKa.css} +0 -0
  561. /package/dist/assets/{NcUserStatusIcon-62u43_6P.css → NcUserStatusIcon-Dra7jf_o.css} +0 -0
  562. /package/dist/assets/{Tooltip-wOLIuz0Q.css → Tooltip-DA4si7PR.css} +0 -0
  563. /package/dist/chunks/{GenRandomId-ULxaMkkr.cjs → GenRandomId-B2O1GMbH.cjs} +0 -0
  564. /package/dist/chunks/{GenRandomId-VodkdWbp.mjs → GenRandomId-BW3iYFf9.mjs} +0 -0
  565. /package/dist/chunks/{Linkify-V7PfCeZ8.mjs → Linkify-BaDLLFxP.mjs} +0 -0
  566. /package/dist/chunks/{Linkify-f3s3nAe_.cjs → Linkify-Dola0NBa.cjs} +0 -0
  567. /package/dist/chunks/{_plugin-vue2_normalizer-u6G_3nkj.mjs → _plugin-vue2_normalizer-Bj5bLKV4.mjs} +0 -0
  568. /package/dist/chunks/{_plugin-vue2_normalizer-DCfUPqga.cjs → _plugin-vue2_normalizer-GXKvuwrq.cjs} +0 -0
  569. /package/dist/chunks/{actionGlobal-fRayfdEK.mjs → actionGlobal-D49NL940.mjs} +0 -0
  570. /package/dist/chunks/{actionGlobal-SGFis4LZ.cjs → actionGlobal-DL1VaQzF.cjs} +0 -0
  571. /package/dist/chunks/{autolink-oKM43mOC.mjs → autolink-BtgUDDdk.mjs} +0 -0
  572. /package/dist/chunks/{autolink-gVCgJtXh.cjs → autolink-D0rLUkqm.cjs} +0 -0
  573. /package/dist/chunks/{focusTrap-Py2bQ9-r.mjs → focusTrap-Be9GEB5C.mjs} +0 -0
  574. /package/dist/chunks/{focusTrap-n3H52LOw.cjs → focusTrap-xauhLvvr.cjs} +0 -0
  575. /package/dist/chunks/{logger-3m1eQsSo.mjs → logger-C7qcfVW8.mjs} +0 -0
  576. /package/dist/chunks/{logger-G6OKp5ly.cjs → logger-D9RRY4er.cjs} +0 -0
@@ -1,8 +1,8 @@
1
- import '../assets/NcAppSidebar-RkF-tqKy.css';
1
+ import '../assets/NcAppSidebar-BGQX62or.css';
2
2
  import n from "../Components/NcVNodes.mjs";
3
- import { N as o } from "./NcCheckboxRadioSwitch-hel9-sAH.mjs";
4
- import { n as s } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
5
- import { N as l } from "./NcActions-4NCnCJdf.mjs";
3
+ import { N as o } from "./NcCheckboxRadioSwitch-7Yib86y3.mjs";
4
+ import { n as s } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
5
+ import { N as l } from "./NcActions-CpU9WXzM.mjs";
6
6
  import u from "../Components/NcLoadingIcon.mjs";
7
7
  import c from "../Components/NcButton.mjs";
8
8
  import d from "../Components/NcEmptyContent.mjs";
@@ -10,11 +10,11 @@ import { directive as p } from "../Directives/Focus.mjs";
10
10
  import { directive as f } from "../Directives/Linkify.mjs";
11
11
  import "../Directives/Tooltip.mjs";
12
12
  import { useIsSmallMobile as m } from "../Composables/useIsMobile.mjs";
13
- import { G as b } from "./GenRandomId-VodkdWbp.mjs";
14
- import { g as h } from "./focusTrap-Py2bQ9-r.mjs";
15
- import { r as _, I as y, a as r } from "./_l10n-9dioj9MT.mjs";
16
- import { A as g } from "./ArrowRight-16bLxoZc.mjs";
17
- import { C as k } from "./Close-QtH6_3PP.mjs";
13
+ import { G as b } from "./GenRandomId-BW3iYFf9.mjs";
14
+ import { g as h } from "./focusTrap-Be9GEB5C.mjs";
15
+ import { r as _, G as y, a as r } from "./_l10n-D8Scz3mH.mjs";
16
+ import { A as g } from "./ArrowRight-C3BxTDjF.mjs";
17
+ import { C as k } from "./Close-BtO5TPBO.mjs";
18
18
  import { vOnClickOutside as T } from "@vueuse/components";
19
19
  import { createFocusTrap as v } from "focus-trap";
20
20
  import { VTooltip as C } from "floating-vue";
@@ -115,7 +115,7 @@ const S = {
115
115
  * Focus the current active tab
116
116
  */
117
117
  focusActiveTab() {
118
- this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();
118
+ this.$el.querySelector("#tab-button-".concat(this.activeTab)).focus();
119
119
  },
120
120
  /**
121
121
  * Focus the content on tab
@@ -166,7 +166,7 @@ var N = function() {
166
166
  }, function(t) {
167
167
  return !t.type.indexOf("key") && e._k(t.keyCode, "page-down", void 0, t.key, void 0) || t.ctrlKey || t.shiftKey || t.altKey || t.metaKey ? null : (t.preventDefault(), t.stopPropagation(), e.focusLastTab.apply(null, arguments));
168
168
  }] } }, e._l(e.tabs, function(t) {
169
- return a("NcCheckboxRadioSwitch", { key: t.id, staticClass: "app-sidebar-tabs__tab", class: { active: t.id === e.activeTab }, attrs: { "aria-controls": `tab-${t.id}`, "aria-selected": String(e.activeTab === t.id), "button-variant": !0, checked: e.activeTab === t.id, "wrapper-id": `tab-button-${t.id}`, tabindex: e.activeTab === t.id ? 0 : -1, "button-variant-grouped": "horizontal", role: "tab", type: "button" }, on: { "update:checked": function(U) {
169
+ return a("NcCheckboxRadioSwitch", { key: t.id, staticClass: "app-sidebar-tabs__tab", class: { active: t.id === e.activeTab }, attrs: { "aria-controls": "tab-".concat(t.id), "aria-selected": String(e.activeTab === t.id), "button-variant": !0, checked: e.activeTab === t.id, "wrapper-id": "tab-button-".concat(t.id), tabindex: e.activeTab === t.id ? 0 : -1, "button-variant-grouped": "horizontal", role: "tab", type: "button" }, on: { "update:checked": function(G) {
170
170
  return e.setActive(t.id);
171
171
  } }, scopedSlots: e._u([{ key: "icon", fn: function() {
172
172
  return [a("NcVNodes", { attrs: { vnodes: t.renderIcon() } }, [a("span", { staticClass: "app-sidebar-tabs__tab-icon", class: t.icon })])];
@@ -216,7 +216,7 @@ var F = function() {
216
216
  null,
217
217
  null
218
218
  );
219
- const I = K.exports, R = {
219
+ const R = K.exports, I = {
220
220
  name: "StarOutlineIcon",
221
221
  emits: ["click"],
222
222
  props: {
@@ -239,7 +239,7 @@ var B = function() {
239
239
  return e.$emit("click", t);
240
240
  } } }, "span", e.$attrs, !1), [a("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [a("path", { attrs: { d: "M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z" } }, [e.title ? a("title", [e._v(e._s(e.title))]) : e._e()])])]);
241
241
  }, O = [], D = /* @__PURE__ */ s(
242
- R,
242
+ I,
243
243
  B,
244
244
  O,
245
245
  !1,
@@ -258,7 +258,7 @@ const M = D.exports, P = {
258
258
  NcLoadingIcon: u,
259
259
  NcEmptyContent: d,
260
260
  Close: k,
261
- Star: I,
261
+ Star: R,
262
262
  StarOutline: M
263
263
  },
264
264
  directives: {
@@ -424,19 +424,21 @@ const M = D.exports, P = {
424
424
  this.elementToReturnFocus && this.focus(), this.toggleFocusTrap();
425
425
  },
426
426
  beforeDestroy() {
427
- this.$emit("closed"), this.focusTrap?.deactivate();
427
+ var i;
428
+ this.$emit("closed"), (i = this.focusTrap) == null || i.deactivate();
428
429
  },
429
430
  methods: {
430
431
  preserveElementToReturnFocus() {
431
432
  if (document.activeElement && document.activeElement !== document.body && (this.elementToReturnFocus = document.activeElement, this.elementToReturnFocus.getAttribute("role") === "menuitem")) {
432
433
  const i = this.elementToReturnFocus.closest('[role="menu"]');
433
434
  if (i) {
434
- const e = document.querySelector(`[aria-controls="${i.id}"]`);
435
+ const e = document.querySelector('[aria-controls="'.concat(i.id, '"]'));
435
436
  this.elementToReturnFocus = e;
436
437
  }
437
438
  }
438
439
  },
439
440
  initFocusTrap() {
441
+ var i;
440
442
  this.focusTrap || (this.focusTrap = v([
441
443
  // The sidebar itself
442
444
  this.$refs.sidebar,
@@ -444,7 +446,7 @@ const M = D.exports, P = {
444
446
  document.querySelector("#header"),
445
447
  // The app navigation toggle. Navigation can be opened above the sidebar
446
448
  // Take the parent element, because the focus-trap requires a container with elements, not the element itself
447
- document.querySelector('[aria-controls="app-navigation-vue"]')?.parentElement
449
+ (i = document.querySelector('[aria-controls="app-navigation-vue"]')) == null ? void 0 : i.parentElement
448
450
  ], {
449
451
  allowOutsideClick: !0,
450
452
  fallbackFocus: this.$refs.closeButton,
@@ -456,7 +458,8 @@ const M = D.exports, P = {
456
458
  * Activate focus trap if it is currently needed, otherwise deactivate
457
459
  */
458
460
  toggleFocusTrap() {
459
- this.isMobile ? (this.initFocusTrap(), this.focusTrap.activate()) : this.focusTrap?.deactivate();
461
+ var i;
462
+ this.isMobile ? (this.initFocusTrap(), this.focusTrap.activate()) : (i = this.focusTrap) == null || i.deactivate();
460
463
  },
461
464
  onBeforeEnter(i) {
462
465
  this.$emit("opening", i);
@@ -468,7 +471,8 @@ const M = D.exports, P = {
468
471
  this.$emit("closing", i);
469
472
  },
470
473
  onAfterLeave(i) {
471
- this.$emit("closed", i), this.elementToReturnFocus?.focus({ focusVisible: !0 }), this.elementToReturnFocus = null;
474
+ var e;
475
+ this.$emit("closed", i), (e = this.elementToReturnFocus) == null || e.focus({ focusVisible: !0 }), this.elementToReturnFocus = null;
472
476
  },
473
477
  /**
474
478
  * Used to tell parent component the user asked to close the sidebar
@@ -539,7 +543,7 @@ const M = D.exports, P = {
539
543
  };
540
544
  var z = function() {
541
545
  var e = this, a = e._self._c;
542
- return a("transition", { attrs: { appear: "", name: "slide-right" }, on: { "before-enter": e.onBeforeEnter, "after-enter": e.onAfterEnter, "before-leave": e.onBeforeLeave, "after-leave": e.onAfterLeave } }, [a("aside", { ref: "sidebar", staticClass: "app-sidebar", attrs: { id: "app-sidebar-vue", "aria-labelledby": `app-sidebar-vue-${e.uid}__header` }, on: { keydown: function(t) {
546
+ return a("transition", { attrs: { appear: "", name: "slide-right" }, on: { "before-enter": e.onBeforeEnter, "after-enter": e.onAfterEnter, "before-leave": e.onBeforeLeave, "after-leave": e.onAfterLeave } }, [a("aside", { ref: "sidebar", staticClass: "app-sidebar", attrs: { id: "app-sidebar-vue", "aria-labelledby": "app-sidebar-vue-".concat(e.uid, "__header") }, on: { keydown: function(t) {
543
547
  if (!t.type.indexOf("key") && e._k(t.keyCode, "esc", 27, t.key, ["Esc", "Escape"]))
544
548
  return null;
545
549
  t.stopPropagation(), e.isMobile && e.closeSidebar();
@@ -549,7 +553,7 @@ var z = function() {
549
553
  } }, [a("div", { staticClass: "app-sidebar-header__info" }, [e.hasFigure && !e.empty ? a("div", { staticClass: "app-sidebar-header__figure", class: {
550
554
  "app-sidebar-header__figure--with-action": e.hasFigureClickListener
551
555
  }, style: {
552
- backgroundImage: `url(${e.background})`
556
+ backgroundImage: "url(".concat(e.background, ")")
553
557
  }, attrs: { tabindex: "0" }, on: { click: e.onFigureClick, keydown: function(t) {
554
558
  return !t.type.indexOf("key") && e._k(t.keyCode, "enter", 13, t.key, "Enter") ? null : e.onFigureClick.apply(null, arguments);
555
559
  } } }, [e._t("header")], 2) : e._e(), e.empty ? e._e() : a("div", { staticClass: "app-sidebar-header__desc", class: {
@@ -563,7 +567,7 @@ var z = function() {
563
567
  } }, scopedSlots: e._u([{ key: "icon", fn: function() {
564
568
  return [e.starLoading ? a("NcLoadingIcon") : e.isStarred ? a("Star", { attrs: { size: 20 } }) : a("StarOutline", { attrs: { size: 20 } })];
565
569
  }, proxy: !0 }], null, !1, 2575459756) }) : e._e()];
566
- })], 2) : e._e(), a("div", { staticClass: "app-sidebar-header__name-container" }, [a("div", { staticClass: "app-sidebar-header__mainname-container" }, [a("h2", { directives: [{ name: "show", rawName: "v-show", value: !e.nameEditable, expression: "!nameEditable" }, { name: "linkify", rawName: "v-linkify", value: { text: e.name, linkify: e.linkifyName }, expression: "{text: name, linkify: linkifyName}" }], ref: "header", staticClass: "app-sidebar-header__mainname", attrs: { id: `app-sidebar-vue-${e.uid}__header`, "aria-label": e.title, title: e.title, tabindex: e.nameEditable ? 0 : -1 }, on: { click: function(t) {
570
+ })], 2) : e._e(), a("div", { staticClass: "app-sidebar-header__name-container" }, [a("div", { staticClass: "app-sidebar-header__mainname-container" }, [a("h2", { directives: [{ name: "show", rawName: "v-show", value: !e.nameEditable, expression: "!nameEditable" }, { name: "linkify", rawName: "v-linkify", value: { text: e.name, linkify: e.linkifyName }, expression: "{text: name, linkify: linkifyName}" }], ref: "header", staticClass: "app-sidebar-header__mainname", attrs: { id: "app-sidebar-vue-".concat(e.uid, "__header"), "aria-label": e.title, title: e.title, tabindex: e.nameEditable ? 0 : -1 }, on: { click: function(t) {
567
571
  return t.target !== t.currentTarget ? null : e.editName.apply(null, arguments);
568
572
  } } }, [e._v(" " + e._s(e.name) + " ")]), e.nameEditable ? [a("form", { directives: [{ name: "click-outside", rawName: "v-click-outside", value: () => e.onSubmitName(), expression: "() => onSubmitName()" }], staticClass: "app-sidebar-header__mainname-form", on: { submit: function(t) {
569
573
  return t.preventDefault(), e.onSubmitName.apply(null, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"NcAppSidebar-3es9kNNh.mjs","sources":["../../src/components/NcAppSidebar/NcAppSidebarTabs.vue","../../node_modules/vue-material-design-icons/Star.vue","../../node_modules/vue-material-design-icons/StarOutline.vue","../../src/components/NcAppSidebar/NcAppSidebar.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n - @copyright Copyright (c) 2020 Simon Belbeoch <simon.belbeoch@gmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license AGPL-3.0-or-later\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<!-- Follows the tab aria guidelines\n\thttps://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html -->\n<template>\n\t<div class=\"app-sidebar-tabs\">\n\t\t<!-- tabs navigation -->\n\t\t<!-- 33 and 34 code is for page up and page down -->\n\t\t<div v-if=\"hasMultipleTabs\"\n\t\t\trole=\"tablist\"\n\t\t\tclass=\"app-sidebar-tabs__nav\"\n\t\t\t@keydown.left.exact.prevent.stop=\"focusPreviousTab\"\n\t\t\t@keydown.right.exact.prevent.stop=\"focusNextTab\"\n\t\t\t@keydown.tab.exact.prevent.stop=\"focusActiveTabContent\"\n\t\t\t@keydown.home.exact.prevent.stop=\"focusFirstTab\"\n\t\t\t@keydown.end.exact.prevent.stop=\"focusLastTab\"\n\t\t\t@keydown.page-up.exact.prevent.stop=\"focusFirstTab\"\n\t\t\t@keydown.page-down.exact.prevent.stop=\"focusLastTab\">\n\t\t\t<NcCheckboxRadioSwitch v-for=\"tab in tabs\"\n\t\t\t\t:key=\"tab.id\"\n\t\t\t\t:aria-controls=\"`tab-${tab.id}`\"\n\t\t\t\t:aria-selected=\"String(activeTab === tab.id)\"\n\t\t\t\t:button-variant=\"true\"\n\t\t\t\t:checked=\"activeTab === tab.id\"\n\t\t\t\t:wrapper-id=\"`tab-button-${tab.id}`\"\n\t\t\t\t:tabindex=\"activeTab === tab.id ? 0 : -1\"\n\t\t\t\tbutton-variant-grouped=\"horizontal\"\n\t\t\t\tclass=\"app-sidebar-tabs__tab\"\n\t\t\t\t:class=\"{ active: tab.id === activeTab }\"\n\t\t\t\trole=\"tab\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t@update:checked=\"setActive(tab.id)\">\n\t\t\t\t<span class=\"app-sidebar-tabs__tab-caption\">\n\t\t\t\t\t{{ tab.name }}\n\t\t\t\t</span>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcVNodes :vnodes=\"tab.renderIcon()\">\n\t\t\t\t\t\t<span class=\"app-sidebar-tabs__tab-icon\" :class=\"tab.icon\" />\n\t\t\t\t\t</NcVNodes>\n\t\t\t\t</template>\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</div>\n\n\t\t<!-- tabs content -->\n\t\t<div :class=\"{'app-sidebar-tabs__content--multiple': hasMultipleTabs}\"\n\t\t\tclass=\"app-sidebar-tabs__content\">\n\t\t\t<!-- @slot Tabs content - NcAppSidebarTab components or any content if there is no tabs -->\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcVNodes from '../NcVNodes/index.js'\nimport NcCheckboxRadioSwitch from '../NcCheckboxRadioSwitch/index.js'\n\nexport default {\n\tname: 'NcAppSidebarTabs',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t\tNcVNodes,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tregisterTab: this.registerTab,\n\t\t\tunregisterTab: this.unregisterTab,\n\t\t\t// Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n\t\t\tgetActiveTab: () => this.activeTab,\n\t\t\t// Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n\t\t\tisTablistShown: () => this.hasMultipleTabs,\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Id of the tab to activate\n\t\t */\n\t\tactive: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: ['update:active'],\n\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n\t\t\t */\n\t\t\ttabs: [],\n\t\t\t/**\n\t\t\t * Local active (open) tab's ID. It allows to use component without active.sync\n\t\t\t */\n\t\t\tactiveTab: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Has multiple tabs. If only one tab - its content is shown without navigation\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasMultipleTabs() {\n\t\t\treturn this.tabs.length > 1\n\t\t},\n\n\t\tcurrentTabIndex() {\n\t\t\treturn this.tabs.findIndex((tab) => tab.id === this.activeTab)\n\t\t},\n\t},\n\n\twatch: {\n\t\tactive(active) {\n\t\t\t// Prevent running it twice\n\t\t\tif (active !== this.activeTab) {\n\t\t\t\tthis.updateActive()\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\n\t\t/**\n\t\t * Set the current active tab\n\t\t *\n\t\t * @param {string} id the id of the tab\n\t\t */\n\t\tsetActive(id) {\n\t\t\tthis.activeTab = id\n\t\t\t/**\n\t\t\t * @property {string} active - active tab's id\n\t\t\t */\n\t\t\tthis.$emit('update:active', this.activeTab)\n\t\t},\n\n\t\t/**\n\t\t * Focus the previous tab\n\t\t * and emit to the parent component\n\t\t */\n\t\tfocusPreviousTab() {\n\t\t\tif (this.currentTabIndex > 0) {\n\t\t\t\tthis.setActive(this.tabs[this.currentTabIndex - 1].id)\n\t\t\t}\n\t\t\tthis.focusActiveTab()\n\t\t},\n\n\t\t/**\n\t\t * Focus the next tab\n\t\t * and emit to the parent component\n\t\t */\n\t\tfocusNextTab() {\n\t\t\tif (this.currentTabIndex < this.tabs.length - 1) {\n\t\t\t\tthis.setActive(this.tabs[this.currentTabIndex + 1].id)\n\t\t\t}\n\t\t\tthis.focusActiveTab()\n\t\t},\n\n\t\t/**\n\t\t * Focus the first tab\n\t\t * and emit to the parent component\n\t\t */\n\t\tfocusFirstTab() {\n\t\t\tthis.setActive(this.tabs[0].id)\n\t\t\tthis.focusActiveTab()\n\t\t},\n\n\t\t/**\n\t\t * Focus the last tab\n\t\t * and emit to the parent component\n\t\t */\n\t\tfocusLastTab() {\n\t\t\tthis.setActive(this.tabs[this.tabs.length - 1].id)\n\t\t\tthis.focusActiveTab()\n\t\t},\n\n\t\t/**\n\t\t * Focus the current active tab\n\t\t */\n\t\tfocusActiveTab() {\n\t\t\tthis.$el.querySelector(`#tab-button-${this.activeTab}`).focus()\n\t\t},\n\n\t\t/**\n\t\t * Focus the content on tab\n\t\t * see aria accessibility guidelines\n\t\t */\n\t\tfocusActiveTabContent() {\n\t\t\tthis.$el.querySelector('#tab-' + this.activeTab).focus()\n\t\t},\n\n\t\t/**\n\t\t * Update the current active tab\n\t\t */\n\t\tupdateActive() {\n\t\t\tthis.activeTab = this.active\n\t\t\t&& this.tabs.some(tab => tab.id === this.active)\n\t\t\t\t? this.active\n\t\t\t\t: this.tabs.length > 0\n\t\t\t\t\t? this.tabs[0].id\n\t\t\t\t\t: ''\n\t\t},\n\n\t\t/**\n\t\t * Register child tab in the tabs\n\t\t *\n\t\t * @param {object} tab child tab passed to slot\n\t\t */\n\t\tregisterTab(tab) {\n\t\t\tthis.tabs.push(tab)\n\t\t\tthis.tabs.sort((a, b) => {\n\t\t\t\tif (a.order === b.order) {\n\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name)\n\t\t\t\t}\n\t\t\t\treturn a.order - b.order\n\t\t\t})\n\t\t\tthis.updateActive()\n\t\t},\n\n\t\t/**\n\t\t * Unregister child tab from the tabs\n\t\t *\n\t\t * @param {string} id tab's id\n\t\t */\n\t\tunregisterTab(id) {\n\t\t\tconst tabIndex = this.tabs.findIndex((tab) => tab.id === id)\n\t\t\tif (tabIndex !== -1) {\n\t\t\t\tthis.tabs.splice(tabIndex, 1)\n\t\t\t}\n\t\t\tif (this.activeTab === id) {\n\t\t\t\tthis.updateActive()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.app-sidebar-tabs {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 0;\n\tflex: 1 1 100%;\n\n\t&__nav {\n\t\tdisplay: flex;\n\t\tjustify-content: stretch;\n\t\tmargin: 10px 8px 0 8px;\n\t\tborder-bottom: 1px solid var(--color-border);\n\n\t\t// Override checkbox-radio-switch styles so that it looks like tabs\n\t\t& :deep(.checkbox-radio-switch--button-variant) {\n\t\t\tborder: unset !important;\n\t\t\tborder-radius: 0 !important;\n\t\t\t.checkbox-content {\n\t\t\t\tpadding: var(--default-grid-baseline);\n\t\t\t\tborder-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0 !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t\tborder-bottom: var(--default-grid-baseline) solid transparent !important;\n\t\t\t\t.checkbox-content__icon--checked > * {\n\t\t\t\t\tcolor: var(--color-main-text) !important;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.checkbox-radio-switch--checked .checkbox-radio-switch__content{\n\t\t\t\tbackground: transparent !important;\n\t\t\t\tcolor: var(--color-main-text) !important;\n\t\t\t\tborder-bottom: var(--default-grid-baseline) solid var(--color-primary-element) !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__tab {\n\t\tflex: 1 1;\n\t\t&.active {\n\t\t\tcolor: var(--color-primary-element);\n\t\t}\n\n\t\t&-caption {\n\t\t\tflex: 0 1 100%;\n\t\t\twidth: 100%;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t&-icon {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbackground-size: 20px;\n\t\t}\n\n\t\t// Override max-width to use all available space\n\t\t:deep(.checkbox-radio-switch__content) {\n\t\t\tmax-width: unset;\n\t\t}\n\t}\n\n\t&__content {\n\t\tposition: relative;\n\t\tmin-height: 256px;\n\t\theight: 100%;\n\t\t// force the use of the tab component if more than one tab\n\t\t// you can just put raw content if you don't use tabs\n\t\t&--multiple > :not(section) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n</style>\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon star-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"StarIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon star-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"StarOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - @copyright Copyright (c) 2019 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<docs>\n### General description\n\nThis component provides a way to include the standardised sidebar.\nThe standard properties like name, subname, starred, etc. allow to automatically\ninclude a standard-header like it's used by the files app.\n\n### Standard usage\n\n```vue\n<template>\n\t<NcAppSidebar\n\t\t:starred=\"starred\"\n\t\tname=\"cat-picture.jpg\"\n\t\tsubname=\"last edited 3 weeks ago\">\n\t\t<NcAppSidebarTab name=\"Search\" id=\"search-tab\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</template>\n\t\t\tSearch tab content\n\t\t</NcAppSidebarTab>\n\t\t<NcAppSidebarTab name=\"Settings\" id=\"settings-tab\">\n\t\t\t<template #icon>\n\t\t\t\t<Cog :size=\"20\" />\n\t\t\t</template>\n\t\t\tSettings tab content\n\t\t</NcAppSidebarTab>\n\t\t<NcAppSidebarTab name=\"Sharing\" id=\"share-tab\">\n\t\t\t<template #icon>\n\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t</template>\n\t\t\tSharing tab content\n\t\t</NcAppSidebarTab>\n\t</NcAppSidebar>\n</template>\n<script>\n\timport Magnify from 'vue-material-design-icons/Magnify'\n\timport Cog from 'vue-material-design-icons/Cog'\n\timport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tMagnify,\n\t\t\tCog,\n\t\t\tShareVariant,\n\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tstarred: false,\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n### One tab\n\nSingle tab is rendered without navigation.\n\n```vue\n<template>\n\t<div>\n\t\t<NcAppSidebar\n\t\t\tname=\"cat-picture.jpg\"\n\t\t\tsubname=\"last edited 3 weeks ago\">\n\t\t\t<NcAppSidebarTab name=\"Settings\" id=\"settings-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Cog :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSingle tab content\n\t\t\t</NcAppSidebarTab>\n\t\t</NcAppSidebar>\n\t</div>\n</template>\n<script>\nimport Cog from 'vue-material-design-icons/Cog'\n\nexport default {\n\tcomponents: {\n\t\tCog,\n\t},\n}\n</script>\n```\n\n### Dynamic tabs\n\n```vue\n<template>\n\t<div>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"showTabs[0]\">Show search tab</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"showTabs[1]\">Show settings tab</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"showTabs[2]\">Show sharing tab</NcCheckboxRadioSwitch>\n\t\t<NcAppSidebar\n\t\t\tname=\"cat-picture.jpg\"\n\t\t\tsubname=\"last edited 3 weeks ago\">\n\t\t\t<NcAppSidebarTab v-if=\"showTabs[0]\" name=\"Search\" id=\"search-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSearch tab content\n\t\t\t</NcAppSidebarTab>\n\t\t\t<NcAppSidebarTab v-if=\"showTabs[1]\" name=\"Settings\" id=\"settings-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Cog :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSettings\n\t\t\t</NcAppSidebarTab>\n\t\t\t<NcAppSidebarTab v-if=\"showTabs[2]\" name=\"Sharing\" id=\"share-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSharing tab content\n\t\t\t</NcAppSidebarTab>\n\t\t</NcAppSidebar>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\nimport Cog from 'vue-material-design-icons/Cog'\nimport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t\tCog,\n\t\tShareVariant,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowTabs: [true, true, false],\n\t\t}\n\t},\n}\n</script>\n```\n\n### Custom order\n\n```vue\n<template>\n\t<NcAppSidebar\n\t\tname=\"cat-picture.jpg\"\n\t\tsubname=\"last edited 3 weeks ago\">\n\t\t<NcAppSidebarTab name=\"Search\" id=\"search-tab\" :order=\"3\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</template>\n\t\t\tSearch tab content\n\t\t</NcAppSidebarTab>\n\t\t<NcAppSidebarTab name=\"Settings\" id=\"settings-tab\" :order=\"2\">\n\t\t\t<template #icon>\n\t\t\t\t<Cog :size=\"20\" />\n\t\t\t</template>\n\t\t\tSettings tab content\n\t\t</NcAppSidebarTab>\n\t\t<NcAppSidebarTab name=\"Sharing\" id=\"share-tab\" :order=\"1\">\n\t\t\t<template #icon>\n\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t</template>\n\t\t\tSharing tab content\n\t\t</NcAppSidebarTab>\n\t</NcAppSidebar>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\nimport Cog from 'vue-material-design-icons/Cog'\nimport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t\tCog,\n\t\tShareVariant,\n\t},\n}\n</script>\n```\n\n### Activating tab programmatically\n\n```vue\n<template>\n\t<div>\n\t\t<NcSelect v-model=\"active\" :options=\"['search-tab', 'settings-tab', 'share-tab']\" />\n\t\t<NcAppSidebar\n\t\t\tname=\"cat-picture.jpg\"\n\t\t\tsubname=\"last edited 3 weeks ago\"\n\t\t\t:active.sync=\"active\">\n\t\t\t<NcAppSidebarTab name=\"Search\" id=\"search-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSearch tab content\n\t\t\t</NcAppSidebarTab>\n\t\t\t<NcAppSidebarTab name=\"Settings\" id=\"settings-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Cog :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSettings\n\t\t\t</NcAppSidebarTab>\n\t\t\t<NcAppSidebarTab name=\"Sharing\" id=\"share-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSharing tab content\n\t\t\t</NcAppSidebarTab>\n\t\t</NcAppSidebar>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\nimport Cog from 'vue-material-design-icons/Cog'\nimport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t\tCog,\n\t\tShareVariant,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tactive: 'search-tab',\n\t\t}\n\t},\n}\n</script>\n```\n\n### Editable name\n\n```vue\n<template>\n\t<NcAppSidebar\n\t\t:name.sync=\"name\"\n\t\t:name-editable=\"true\"\n\t\tname-placeholder=\"Filename\"\n\t\tsubname=\"last edited 3 weeks ago\">\n\t\t<!-- Insert your slots and tabs here -->\n\t</NcAppSidebar>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tname: 'cat-picture.jpg',\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n### Editable name after click with custom tertiary action\n\n```vue\n<template>\n\t<NcAppSidebar\n\t\t:name=\"name\"\n\t\t:name-editable.sync=\"nameEditable\"\n\t\t:name-placeholder=\"namePlaceholder\"\n\t\t:subname=\"subname\"\n\t\t@update:name=\"nameUpdate\">\n\t\t<template #tertiary-actions>\n\t\t\t<form>\n\t\t\t\t<input type=\"checkbox\" @click=\"toggledCheckbox\"/>\n\t\t\t</form>\n\t\t</template>\n\t</NcAppSidebar>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tname: 'cat-picture.jpg',\n\t\t\t\tnamePlaceholder: 'Filename',\n\t\t\t\tsubname: 'last edited 3 weeks ago',\n\t\t\t\tnameEditable: false\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tnameUpdate(e) {\n\t\t\t\tthis.name = e\n\t\t\t},\n\t\t\ttoggledCheckbox() {\n\t\t\t\talert('toggle')\n\t\t\t}\n\t\t}\n\t}\n</script>\n```\n\n### Custom subname\n\nInstead of using the `subname` prop you can use the same called slot. This is handy if you need to add accessible information.\nLike in the following example where the goal is to show a star icon to mark the file a favorite.\nSimplying adding `★` would not work as screen readers might not or wrongly announce the icon meaning this information is lost.\n\nA working alternative would be using an icon together with an `aria-label`:\n\n```vue\n\t<template>\n\t\t<NcAppSidebar name=\"cat-picture.jpg\">\n\t\t\t<template #subname>\n\t\t\t\t<NcIconSvgWrapper inline :path=\"mdiStar\" name=\"Favorite\" />\n\t\t\t\t123 KiB, a month ago\n\t\t\t</template>\n\t\t</NcAppSidebar>\n\t</template>\n\t<script>\n\timport { mdiStar } from '@mdi/js'\n\n\texport default {\n\t\tsetup() {\n\t\t\treturn {\n\t\t\t\tmdiStar,\n\t\t\t}\n\t\t}\n\t}\n\t</script>\n```\n\n### Empty sidebar for e.g. empty content component.\n\n```vue\n\t<template>\n\t\t<NcAppSidebar\n\t\t\tname=\"cat-picture.jpg\"\n\t\t\t:empty=\"true\">\n\t\t\t<NcEmptyContent name=\"Content not found.\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</NcAppSidebar>\n\t</template>\n\t<script>\n\timport Magnify from 'vue-material-design-icons/Magnify'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tMagnify,\n\t\t},\n\t}\n\t</script>\n```\n</docs>\n\n<template>\n\t<transition appear\n\t\tname=\"slide-right\"\n\t\t@before-enter=\"onBeforeEnter\"\n\t\t@after-enter=\"onAfterEnter\"\n\t\t@before-leave=\"onBeforeLeave\"\n\t\t@after-leave=\"onAfterLeave\">\n\t\t<aside id=\"app-sidebar-vue\"\n\t\t\tref=\"sidebar\"\n\t\t\tclass=\"app-sidebar\"\n\t\t\t:aria-labelledby=\"`app-sidebar-vue-${uid}__header`\"\n\t\t\t@keydown.esc.stop=\"isMobile && closeSidebar()\">\n\t\t\t<header :class=\"{\n\t\t\t\t\t'app-sidebar-header--with-figure': hasFigure,\n\t\t\t\t\t'app-sidebar-header--compact': compact,\n\t\t\t\t}\"\n\t\t\t\tclass=\"app-sidebar-header\">\n\t\t\t\t<!-- container for figure and description, allows easy switching to compact mode -->\n\t\t\t\t<div class=\"app-sidebar-header__info\">\n\t\t\t\t\t<!-- sidebar header illustration/figure -->\n\t\t\t\t\t<div v-if=\"hasFigure && !empty\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'app-sidebar-header__figure--with-action': hasFigureClickListener\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"app-sidebar-header__figure\"\n\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\tbackgroundImage: `url(${background})`\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click=\"onFigureClick\"\n\t\t\t\t\t\t@keydown.enter=\"onFigureClick\">\n\t\t\t\t\t\t<slot class=\"app-sidebar-header__background\" name=\"header\" />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<!-- sidebar details -->\n\t\t\t\t\t<div v-if=\"!empty\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'app-sidebar-header__desc--with-tertiary-action': canStar || $slots['tertiary-actions'],\n\t\t\t\t\t\t\t'app-sidebar-header__desc--editable': nameEditable && !subname,\n\t\t\t\t\t\t\t'app-sidebar-header__desc--with-subname--editable': nameEditable && subname,\n\t\t\t\t\t\t\t'app-sidebar-header__desc--without-actions': !$slots['secondary-actions'],\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"app-sidebar-header__desc\">\n\t\t\t\t\t\t<!-- favourite icon -->\n\t\t\t\t\t\t<div v-if=\"canStar || $slots['tertiary-actions']\" class=\"app-sidebar-header__tertiary-actions\">\n\t\t\t\t\t\t\t<slot name=\"tertiary-actions\">\n\t\t\t\t\t\t\t\t<NcButton v-if=\"canStar\"\n\t\t\t\t\t\t\t\t\t:aria-label=\"favoriteTranslated\"\n\t\t\t\t\t\t\t\t\t:pressed=\"isStarred\"\n\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__star\"\n\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t@click.prevent=\"toggleStarred\">\n\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t<NcLoadingIcon v-if=\"starLoading\" />\n\t\t\t\t\t\t\t\t\t\t<Star v-else-if=\"isStarred\" :size=\"20\" />\n\t\t\t\t\t\t\t\t\t\t<StarOutline v-else :size=\"20\" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<!-- name -->\n\t\t\t\t\t\t<div class=\"app-sidebar-header__name-container\">\n\t\t\t\t\t\t\t<div class=\"app-sidebar-header__mainname-container\">\n\t\t\t\t\t\t\t\t<!-- main name -->\n\t\t\t\t\t\t\t\t<h2 v-show=\"!nameEditable\"\n\t\t\t\t\t\t\t\t\t:id=\"`app-sidebar-vue-${uid}__header`\"\n\t\t\t\t\t\t\t\t\tref=\"header\"\n\t\t\t\t\t\t\t\t\tv-linkify=\"{text: name, linkify: linkifyName}\"\n\t\t\t\t\t\t\t\t\t:aria-label=\"title\"\n\t\t\t\t\t\t\t\t\t:title=\"title\"\n\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__mainname\"\n\t\t\t\t\t\t\t\t\t:tabindex=\"nameEditable ? 0 : -1\"\n\t\t\t\t\t\t\t\t\t@click.self=\"editName\">\n\t\t\t\t\t\t\t\t\t{{ name }}\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<template v-if=\"nameEditable\">\n\t\t\t\t\t\t\t\t\t<form v-click-outside=\"() => onSubmitName()\"\n\t\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__mainname-form\"\n\t\t\t\t\t\t\t\t\t\t@submit.prevent=\"onSubmitName\">\n\t\t\t\t\t\t\t\t\t\t<input ref=\"nameInput\"\n\t\t\t\t\t\t\t\t\t\t\tv-focus\n\t\t\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__mainname-input\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t:placeholder=\"namePlaceholder\"\n\t\t\t\t\t\t\t\t\t\t\t:value=\"name\"\n\t\t\t\t\t\t\t\t\t\t\t@keydown.esc.stop=\"onDismissEditing\"\n\t\t\t\t\t\t\t\t\t\t\t@input=\"onNameInput\">\n\t\t\t\t\t\t\t\t\t\t<NcButton type=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t\t\t\t:aria-label=\"changeNameTranslated\"\n\t\t\t\t\t\t\t\t\t\t\tnative-type=\"submit\">\n\t\t\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<!-- header main menu -->\n\t\t\t\t\t\t\t\t<NcActions v-if=\"$slots['secondary-actions']\"\n\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__menu\"\n\t\t\t\t\t\t\t\t\t:force-menu=\"forceMenu\">\n\t\t\t\t\t\t\t\t\t<slot name=\"secondary-actions\" />\n\t\t\t\t\t\t\t\t</NcActions>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- secondary name -->\n\t\t\t\t\t\t\t<p v-if=\"subname.trim() !== '' || $slots['subname']\"\n\t\t\t\t\t\t\t\t:title=\"subtitle || undefined\"\n\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__subname\">\n\t\t\t\t\t\t\t\t<!-- @slot Alternative to the `subname` prop can be used for more complex conent. It will be rendered within a `p` tag. -->\n\t\t\t\t\t\t\t\t<slot name=\"subname\">\n\t\t\t\t\t\t\t\t\t{{ subname }}\n\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<NcButton ref=\"closeButton\"\n\t\t\t\t\t:title=\"closeTranslated\"\n\t\t\t\t\t:aria-label=\"closeTranslated\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\tclass=\"app-sidebar__close\"\n\t\t\t\t\t@click.prevent=\"closeSidebar\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Close :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\n\t\t\t\t<div v-if=\"$slots['description'] && !empty\" class=\"app-sidebar-header__description\">\n\t\t\t\t\t<slot name=\"description\" />\n\t\t\t\t</div>\n\t\t\t</header>\n\n\t\t\t<NcAppSidebarTabs v-show=\"!loading\"\n\t\t\t\tref=\"tabs\"\n\t\t\t\t:active=\"active\"\n\t\t\t\t@update:active=\"onUpdateActive\">\n\t\t\t\t<slot />\n\t\t\t</NcAppSidebarTabs>\n\n\t\t\t<NcEmptyContent v-if=\"loading\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcLoadingIcon :size=\"64\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</aside>\n\t</transition>\n</template>\n\n<script>\nimport NcAppSidebarTabs from './NcAppSidebarTabs.vue'\nimport NcActions from '../NcActions/index.js'\nimport NcLoadingIcon from '../NcLoadingIcon/index.js'\nimport NcButton from '../NcButton/index.js'\nimport NcEmptyContent from '../NcEmptyContent/index.js'\nimport Focus from '../../directives/Focus/index.js'\nimport Linkify from '../../directives/Linkify/index.js'\nimport Tooltip from '../../directives/Tooltip/index.js'\nimport { useIsSmallMobile } from '../../composables/useIsMobile/index.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport { getTrapStack } from '../../utils/focusTrap.js'\nimport { t } from '../../l10n.js'\n\nimport ArrowRight from 'vue-material-design-icons/ArrowRight.vue'\nimport Close from 'vue-material-design-icons/Close.vue'\nimport Star from 'vue-material-design-icons/Star.vue'\nimport StarOutline from 'vue-material-design-icons/StarOutline.vue'\n\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\n\nexport default {\n\tname: 'NcAppSidebar',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tNcAppSidebarTabs,\n\t\tArrowRight,\n\t\tNcButton,\n\t\tNcLoadingIcon,\n\t\tNcEmptyContent,\n\t\tClose,\n\t\tStar,\n\t\tStarOutline,\n\t},\n\n\tdirectives: {\n\t\tfocus: Focus,\n\t\tlinkify: Linkify,\n\t\tClickOutside,\n\t\tTooltip,\n\t},\n\n\tprops: {\n\t\tactive: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Allow to edit the sidebar name.\n\t\t */\n\t\tnameEditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tnamePlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tsubname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Title to display for the subname.\n\t\t */\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Url to the top header background image\n\t\t * Applied with css\n\t\t */\n\t\tbackground: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Enable the favourite icon if not null\n\t\t * See fired events\n\t\t */\n\t\tstarred: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Show loading spinner instead of the star icon\n\t\t */\n\t\tstarLoading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Show loading spinner instead of tabs\n\t\t */\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Display the sidebar in compact mode\n\t\t */\n\t\tcompact: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Only display close button and default slot content.\n\t\t * Don't display other header content and primary and secondary actions.\n\t\t * Useful when showing the EmptyContent component as content.\n\t\t */\n\t\tempty: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the actions to display in a three dot menu\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Linkify the name\n\t\t */\n\t\tlinkifyName: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Title to display for the name.\n\t\t * Can be set to the same text in case it's too long.\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closing',\n\t\t'closed',\n\t\t'opening',\n\t\t'opened',\n\t\t'figure-click',\n\t\t'update:starred',\n\t\t'update:nameEditable',\n\t\t'update:name',\n\t\t'update:active',\n\t\t'submit-name',\n\t\t'dismiss-editing',\n\t],\n\n\tsetup() {\n\t\treturn {\n\t\t\tuid: GenRandomId(),\n\t\t\tisMobile: useIsSmallMobile(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tchangeNameTranslated: t('Change name'),\n\t\t\tcloseTranslated: t('Close sidebar'),\n\t\t\tfavoriteTranslated: t('Favorite'),\n\t\t\tisStarred: this.starred,\n\t\t\tfocusTrap: null,\n\t\t\telementToReturnFocus: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcanStar() {\n\t\t\treturn this.isStarred !== null\n\t\t},\n\t\thasFigure() {\n\t\t\treturn this.$slots.header || this.background\n\t\t},\n\t\thasFigureClickListener() {\n\t\t\treturn this.$listeners['figure-click']\n\t\t},\n\t},\n\n\twatch: {\n\t\tstarred() {\n\t\t\tthis.isStarred = this.starred\n\t\t},\n\n\t\tisMobile() {\n\t\t\tthis.toggleFocusTrap()\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.preserveElementToReturnFocus()\n\t},\n\n\tmounted() {\n\t\t// Focus sidebar on open only if it was opened by a user interaction\n\t\tif (this.elementToReturnFocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\tthis.toggleFocusTrap()\n\t},\n\n\tbeforeDestroy() {\n\t\t// Make sure that the 'closed' event is dispatched even if this element is destroyed before the 'after-leave' event is received.\n\t\tthis.$emit('closed')\n\t\tthis.focusTrap?.deactivate()\n\t},\n\n\tmethods: {\n\t\tpreserveElementToReturnFocus() {\n\t\t\t// Save the element that had focus before the sidebar was opened to return back on close\n\t\t\tif (document.activeElement && document.activeElement !== document.body) {\n\t\t\t\tthis.elementToReturnFocus = document.activeElement\n\n\t\t\t\t// Special case for menus (NcActions)\n\t\t\t\t// If a sidebar was opened from a menu item, we want to return focus to the menu trigger instead of the item\n\t\t\t\tif (this.elementToReturnFocus.getAttribute('role') === 'menuitem') {\n\t\t\t\t\tconst menu = this.elementToReturnFocus.closest('[role=\"menu\"]')\n\t\t\t\t\tif (menu) {\n\t\t\t\t\t\tconst menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`)\n\t\t\t\t\t\tthis.elementToReturnFocus = menuTrigger\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tinitFocusTrap() {\n\t\t\tif (this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.focusTrap = createFocusTrap([\n\t\t\t\t// The sidebar itself\n\t\t\t\tthis.$refs.sidebar,\n\t\t\t\t// Nextcloud Server header navigarion\n\t\t\t\tdocument.querySelector('#header'),\n\t\t\t\t// The app navigation toggle. Navigation can be opened above the sidebar\n\t\t\t\t// Take the parent element, because the focus-trap requires a container with elements, not the element itself\n\t\t\t\tdocument.querySelector('[aria-controls=\"app-navigation-vue\"]')?.parentElement,\n\t\t\t], {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\tfallbackFocus: this.$refs.closeButton,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tescapeDeactivates: false,\n\t\t\t})\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) {\n\t\t\t\tthis.initFocusTrap()\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\tonBeforeEnter(element) {\n\t\t\t/**\n\t\t\t * The sidebar is opening and the transition is in progress\n\t\t\t *\n\t\t\t * @type {HTMLElement}\n\t\t\t */\n\t\t\tthis.$emit('opening', element)\n\t\t},\n\t\tonAfterEnter(element) {\n\t\t\t/**\n\t\t\t * The sidebar is opened and the transition is complete\n\t\t\t *\n\t\t\t * @type {HTMLElement}\n\t\t\t */\n\t\t\tthis.$emit('opened', element)\n\t\t},\n\t\tonBeforeLeave(element) {\n\t\t\t/**\n\t\t\t * The sidebar is closing and the transition is in progress\n\t\t\t *\n\t\t\t * @type {HTMLElement}\n\t\t\t */\n\t\t\tthis.$emit('closing', element)\n\t\t},\n\t\tonAfterLeave(element) {\n\t\t\t/**\n\t\t\t * The sidebar is closed and the transition is complete\n\t\t\t *\n\t\t\t * @type {HTMLElement}\n\t\t\t */\n\t\t\tthis.$emit('closed', element)\n\n\t\t\t// Return focus to the element that had focus before the sidebar was opened\n\t\t\tthis.elementToReturnFocus?.focus({ focusVisible: true })\n\t\t\tthis.elementToReturnFocus = null\n\t\t},\n\n\t\t/**\n\t\t * Used to tell parent component the user asked to close the sidebar\n\t\t *\n\t\t * @param {Event} e close icon click event\n\t\t */\n\t\tcloseSidebar(e) {\n\t\t\t/**\n\t\t\t * The user clicked to closed the sidebar\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('close', e)\n\t\t},\n\n\t\t/**\n\t\t * Emit figure click event to parent component\n\t\t *\n\t\t * @param {Event} e click event\n\t\t */\n\t\tonFigureClick(e) {\n\t\t\t/**\n\t\t\t * The figure/background header has been clicked\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('figure-click', e)\n\t\t},\n\n\t\t/**\n\t\t * Toggle the favourite state\n\t\t * and emit to the parent component\n\t\t */\n\t\ttoggleStarred() {\n\t\t\tthis.isStarred = !this.isStarred\n\t\t\t/**\n\t\t\t * Emitted when the starred value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:starred', this.isStarred)\n\t\t},\n\n\t\teditName() {\n\t\t\t/**\n\t\t\t * Emitted when the nameEditable value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:nameEditable', true)\n\t\t\t// Focus the name input\n\t\t\tif (this.nameEditable) {\n\t\t\t\tthis.$nextTick(\n\t\t\t\t\t() => this.$refs.nameInput.focus(),\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Focus the sidebar\n\t\t * @public\n\t\t */\n\t\tfocus() {\n\t\t\tthis.$refs.header.focus()\n\t\t},\n\n\t\t/**\n\t\t * Focus the active tab\n\t\t * @public\n\t\t */\n\t\tfocusActiveTabContent() {\n\t\t\t// If a tab is focused then probably a new trigger element moved the focus to the sidebar\n\t\t\tthis.preserveElementToReturnFocus()\n\n\t\t\tthis.$refs.tabs.focusActiveTabContent()\n\t\t},\n\n\t\t/**\n\t\t * Emit name change event to parent component\n\t\t *\n\t\t * @param {Event} event input event\n\t\t */\n\t\tonNameInput(event) {\n\t\t\t/**\n\t\t\t * Emitted when the name value changes\n\t\t\t *\n\t\t\t * @type {string|Date}\n\t\t\t */\n\t\t\tthis.$emit('update:name', event.target.value)\n\t\t},\n\n\t\t/**\n\t\t * Emit when the name form edit confirm button is pressed in order\n\t\t * to change the name.\n\t\t *\n\t\t * @param {Event} event submit event\n\t\t */\n\t\tonSubmitName(event) {\n\t\t\t// Disable editing\n\t\t\tthis.$emit('update:nameEditable', false)\n\t\t\t/**\n\t\t\t * Emitted when the name edit input has been submitted\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('submit-name', event)\n\t\t},\n\t\tonDismissEditing() {\n\t\t\t// Disable editing\n\t\t\tthis.$emit('update:nameEditable', false)\n\t\t\t/**\n\t\t\t * Emitted when the name edit has been cancelled\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('dismiss-editing')\n\t\t},\n\t\tonUpdateActive(activeTab) {\n\t\t\t/**\n\t\t\t * The active tab changed\n\t\t\t *\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tthis.$emit('update:active', activeTab)\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n$sidebar-min-width: 300px;\n$sidebar-max-width: 500px;\n\n$desc-vertical-padding: 18px;\n$desc-vertical-padding-compact: 10px;\n$desc-input-padding: 7px;\n\n// name and subname\n$desc-name-height: 30px;\n$desc-subname-height: 22px;\n$desc-height: $desc-name-height + $desc-subname-height;\n\n$top-buttons-spacing: 6px;\n\n/*\n\tSidebar: to be used within #content\n\tapp-content will be shrinked properly\n*/\n.app-sidebar {\n\tz-index: 1500;\n\ttop: 0;\n\tright: 0;\n\tdisplay: flex;\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\tflex-direction: column;\n\tflex-shrink: 0;\n\twidth: 27vw;\n\tmin-width: $sidebar-min-width;\n\tmax-width: $sidebar-max-width;\n\theight: 100%;\n\tborder-left: 1px solid var(--color-border);\n\tbackground: var(--color-main-background);\n\n\t.app-sidebar-header {\n\t\t> .app-sidebar__close {\n\t\t\tposition: absolute;\n\t\t\tz-index: 100;\n\t\t\ttop: $top-buttons-spacing;\n\t\t\tright: $top-buttons-spacing;\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_normal;\n\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t&:hover,\n\t\t\t&:active,\n\t\t\t&:focus {\n\t\t\t\topacity: $opacity_full;\n\t\t\t\tbackground-color: $action-background-hover;\n\t\t\t}\n\t\t}\n\n\t\t// Compact mode only affects a sidebar with a figure\n\t\t&--compact.app-sidebar-header--with-figure {\n\t\t\t.app-sidebar-header__info {\n\t\t\t\tflex-direction: row;\n\n\t\t\t\t.app-sidebar-header__figure {\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\twidth: $desc-height + $desc-vertical-padding;\n\t\t\t\t\theight: $desc-height + $desc-vertical-padding;\n\t\t\t\t\tmargin: math.div($desc-vertical-padding, 2);\n\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\tflex: 0 0 auto;\n\t\t\t\t}\n\t\t\t\t.app-sidebar-header__desc {\n\t\t\t\t\tpadding-left: 0;\n\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\tmin-width: 0;\n\t\t\t\t\tpadding-right: 2 * $clickable-area + $top-buttons-spacing;\n\t\t\t\t\tpadding-top: $desc-vertical-padding-compact;\n\n\t\t\t\t\t&.app-sidebar-header__desc--without-actions {\n\t\t\t\t\t\tpadding-right: #{$clickable-area + $top-buttons-spacing};\n\t\t\t\t\t}\n\n\t\t\t\t\t.app-sidebar-header__tertiary-actions {\n\t\t\t\t\t\tz-index: 3; // above star\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\ttop: math.div($desc-vertical-padding, 2);\n\t\t\t\t\t\tleft: -1 * $clickable-area;\n\t\t\t\t\t\tgap: 0; // override gap\n\t\t\t\t\t}\n\t\t\t\t\t.app-sidebar-header__menu {\n\t\t\t\t\t\ttop: $top-buttons-spacing;\n\t\t\t\t\t\tright: $clickable-area + $top-buttons-spacing; // left of the close button\n\t\t\t\t\t\tbackground-color: transparent;\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// sidebar without figure\n\t\t&:not(.app-sidebar-header--with-figure) {\n\t\t\t// align the menu with the close button\n\t\t\t.app-sidebar-header__menu {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: $top-buttons-spacing;\n\t\t\t\tright: $top-buttons-spacing + $clickable-area;\n\t\t\t}\n\t\t\t// increase the padding to not overlap the menu\n\t\t\t.app-sidebar-header__desc {\n\t\t\t\tpadding-right: #{$clickable-area * 2 + $top-buttons-spacing};\n\n\t\t\t\t&.app-sidebar-header__desc--without-actions {\n\t\t\t\t\tpadding-right: #{$clickable-area + $top-buttons-spacing};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// the container with the figure and the description\n\t\t.app-sidebar-header__info {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t// header background\n\t\t&__figure {\n\t\t\twidth: 100%;\n\t\t\theight: 250px;\n\t\t\tmax-height: 250px;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: contain;\n\t\t\t&--with-action {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\n\t\t// description\n\t\t&__desc {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tpadding: #{$desc-vertical-padding} #{$top-buttons-spacing} #{$desc-vertical-padding} #{math.div($desc-vertical-padding, 2)};\n\t\t\tgap: 0 4px;\n\n\t\t\t// custom overrides\n\t\t\t&--with-tertiary-action {\n\t\t\t\tpadding-left: 6px;\n\t\t\t}\n\n\t\t\t&--editable .app-sidebar-header__mainname-form,\n\t\t\t&--with-subname--editable .app-sidebar-header__mainname-form {\n\t\t\t\tmargin-top: -2px;\n\t\t\t\tmargin-bottom: -2px;\n\t\t\t}\n\n\t\t\t&--with-subname--editable .app-sidebar-header__subname {\n\t\t\t\tmargin-top: -2px;\n\t\t\t}\n\n\t\t\t.app-sidebar-header__tertiary-actions {\n\t\t\t\tdisplay: flex;\n\t\t\t\theight: $clickable-area;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\tjustify-content: center;\n\t\t\t\tflex: 0 0 auto;\n\n\t\t\t\t.app-sidebar-header__star {\n\t\t\t\t\t// Override default Button component styles\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\t&:not([aria-pressed='true']):hover {\n\t\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// names\n\t\t\t.app-sidebar-header__name-container {\n\t\t\t\tflex: 1 1 auto;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: center;\n\t\t\t\tmin-width: 0;\n\n\t\t\t\t.app-sidebar-header__mainname-container {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tmin-height: $clickable-area;\n\n\t\t\t\t\t// main name\n\t\t\t\t\t.app-sidebar-header__mainname {\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\tmin-height: 30px;\n\t\t\t\t\t\tfont-size: 20px;\n\t\t\t\t\t\tline-height: $desc-name-height;\n\n\t\t\t\t\t\t// Needs 'deep' as the link is generated by the linkify directive\n\t\t\t\t\t\t&:deep(.linkified) {\n\t\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.app-sidebar-header__mainname-form {\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\t\talign-items: center;\n\n\t\t\t\t\t\tinput.app-sidebar-header__mainname-input {\n\t\t\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t\tpadding: $desc-input-padding;\n\t\t\t\t\t\t\tfont-size: 20px;\n\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// main menu\n\t\t\t\t\t.app-sidebar-header__menu {\n\t\t\t\t\t\theight: $clickable-area;\n\t\t\t\t\t\twidth: $clickable-area;\n\t\t\t\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t\t\t\tbackground-color: $action-background-hover;\n\t\t\t\t\t\tmargin-left: 5px;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// shared between main and subname\n\t\t\t\t.app-sidebar-header__mainname,\n\t\t\t\t.app-sidebar-header__subname {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\t}\n\n\t\t\t\t// subname\n\t\t\t\t.app-sidebar-header__subname {\n\t\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\t\tpadding: 0;\n\n\t\t\t\t\t* {\n\t\t\t\t\t\tvertical-align: text-bottom;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// sidebar description slot\n\t\t&__description {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin: 0 10px;\n\t\t}\n\t}\n}\n\n// Make the sidebar full-width on small screens\n@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-sidebar {\n\t\twidth: 100vw;\n\t\tmax-width: 100vw;\n\t}\n}\n\n.slide-right-leave-active,\n.slide-right-enter-active {\n\ttransition-duration: var(--animation-quick);\n\ttransition-property: max-width, min-width;\n}\n\n.slide-right-enter-to,\n.slide-right-leave {\n\tmin-width: $sidebar-min-width;\n\tmax-width: $sidebar-max-width;\n}\n\n.slide-right-enter,\n.slide-right-leave-to {\n\tmin-width: 0 !important;\n\tmax-width: 0 !important;\n}\n</style>\n\n<style lang=\"scss\">\n// ! slots specific designs, cannot be scoped\n// if any button inside the description slot, increase visual padding\n.app-sidebar-header__description {\n\tbutton, .button,\n\tinput[type='button'],\n\tinput[type='submit'],\n\tinput[type='reset'] {\n\t\tpadding: 6px 22px;\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","NcCheckboxRadioSwitch","NcVNodes","tab","active","id","a","b","tabIndex","NcActions","NcAppSidebarTabs","ArrowRight","NcButton","NcLoadingIcon","NcEmptyContent","Close","Star","StarOutline","Focus","Linkify","ClickOutside","Tooltip","GenRandomId","useIsSmallMobile","t","menu","menuTrigger","createFocusTrap","getTrapStack","element","e","event","activeTab"],"mappings":"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","x_google_ignoreList":[1,2]}
1
+ {"version":3,"file":"NcAppSidebar-CdSvRI6l.mjs","sources":["../../src/components/NcAppSidebar/NcAppSidebarTabs.vue","../../node_modules/vue-material-design-icons/Star.vue","../../node_modules/vue-material-design-icons/StarOutline.vue","../../src/components/NcAppSidebar/NcAppSidebar.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n - @copyright Copyright (c) 2020 Simon Belbeoch <simon.belbeoch@gmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license AGPL-3.0-or-later\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<!-- Follows the tab aria guidelines\n\thttps://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html -->\n<template>\n\t<div class=\"app-sidebar-tabs\">\n\t\t<!-- tabs navigation -->\n\t\t<!-- 33 and 34 code is for page up and page down -->\n\t\t<div v-if=\"hasMultipleTabs\"\n\t\t\trole=\"tablist\"\n\t\t\tclass=\"app-sidebar-tabs__nav\"\n\t\t\t@keydown.left.exact.prevent.stop=\"focusPreviousTab\"\n\t\t\t@keydown.right.exact.prevent.stop=\"focusNextTab\"\n\t\t\t@keydown.tab.exact.prevent.stop=\"focusActiveTabContent\"\n\t\t\t@keydown.home.exact.prevent.stop=\"focusFirstTab\"\n\t\t\t@keydown.end.exact.prevent.stop=\"focusLastTab\"\n\t\t\t@keydown.page-up.exact.prevent.stop=\"focusFirstTab\"\n\t\t\t@keydown.page-down.exact.prevent.stop=\"focusLastTab\">\n\t\t\t<NcCheckboxRadioSwitch v-for=\"tab in tabs\"\n\t\t\t\t:key=\"tab.id\"\n\t\t\t\t:aria-controls=\"`tab-${tab.id}`\"\n\t\t\t\t:aria-selected=\"String(activeTab === tab.id)\"\n\t\t\t\t:button-variant=\"true\"\n\t\t\t\t:checked=\"activeTab === tab.id\"\n\t\t\t\t:wrapper-id=\"`tab-button-${tab.id}`\"\n\t\t\t\t:tabindex=\"activeTab === tab.id ? 0 : -1\"\n\t\t\t\tbutton-variant-grouped=\"horizontal\"\n\t\t\t\tclass=\"app-sidebar-tabs__tab\"\n\t\t\t\t:class=\"{ active: tab.id === activeTab }\"\n\t\t\t\trole=\"tab\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t@update:checked=\"setActive(tab.id)\">\n\t\t\t\t<span class=\"app-sidebar-tabs__tab-caption\">\n\t\t\t\t\t{{ tab.name }}\n\t\t\t\t</span>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcVNodes :vnodes=\"tab.renderIcon()\">\n\t\t\t\t\t\t<span class=\"app-sidebar-tabs__tab-icon\" :class=\"tab.icon\" />\n\t\t\t\t\t</NcVNodes>\n\t\t\t\t</template>\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</div>\n\n\t\t<!-- tabs content -->\n\t\t<div :class=\"{'app-sidebar-tabs__content--multiple': hasMultipleTabs}\"\n\t\t\tclass=\"app-sidebar-tabs__content\">\n\t\t\t<!-- @slot Tabs content - NcAppSidebarTab components or any content if there is no tabs -->\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcVNodes from '../NcVNodes/index.js'\nimport NcCheckboxRadioSwitch from '../NcCheckboxRadioSwitch/index.js'\n\nexport default {\n\tname: 'NcAppSidebarTabs',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t\tNcVNodes,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tregisterTab: this.registerTab,\n\t\t\tunregisterTab: this.unregisterTab,\n\t\t\t// Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n\t\t\tgetActiveTab: () => this.activeTab,\n\t\t\t// Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n\t\t\tisTablistShown: () => this.hasMultipleTabs,\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Id of the tab to activate\n\t\t */\n\t\tactive: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: ['update:active'],\n\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n\t\t\t */\n\t\t\ttabs: [],\n\t\t\t/**\n\t\t\t * Local active (open) tab's ID. It allows to use component without active.sync\n\t\t\t */\n\t\t\tactiveTab: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Has multiple tabs. If only one tab - its content is shown without navigation\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasMultipleTabs() {\n\t\t\treturn this.tabs.length > 1\n\t\t},\n\n\t\tcurrentTabIndex() {\n\t\t\treturn this.tabs.findIndex((tab) => tab.id === this.activeTab)\n\t\t},\n\t},\n\n\twatch: {\n\t\tactive(active) {\n\t\t\t// Prevent running it twice\n\t\t\tif (active !== this.activeTab) {\n\t\t\t\tthis.updateActive()\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\n\t\t/**\n\t\t * Set the current active tab\n\t\t *\n\t\t * @param {string} id the id of the tab\n\t\t */\n\t\tsetActive(id) {\n\t\t\tthis.activeTab = id\n\t\t\t/**\n\t\t\t * @property {string} active - active tab's id\n\t\t\t */\n\t\t\tthis.$emit('update:active', this.activeTab)\n\t\t},\n\n\t\t/**\n\t\t * Focus the previous tab\n\t\t * and emit to the parent component\n\t\t */\n\t\tfocusPreviousTab() {\n\t\t\tif (this.currentTabIndex > 0) {\n\t\t\t\tthis.setActive(this.tabs[this.currentTabIndex - 1].id)\n\t\t\t}\n\t\t\tthis.focusActiveTab()\n\t\t},\n\n\t\t/**\n\t\t * Focus the next tab\n\t\t * and emit to the parent component\n\t\t */\n\t\tfocusNextTab() {\n\t\t\tif (this.currentTabIndex < this.tabs.length - 1) {\n\t\t\t\tthis.setActive(this.tabs[this.currentTabIndex + 1].id)\n\t\t\t}\n\t\t\tthis.focusActiveTab()\n\t\t},\n\n\t\t/**\n\t\t * Focus the first tab\n\t\t * and emit to the parent component\n\t\t */\n\t\tfocusFirstTab() {\n\t\t\tthis.setActive(this.tabs[0].id)\n\t\t\tthis.focusActiveTab()\n\t\t},\n\n\t\t/**\n\t\t * Focus the last tab\n\t\t * and emit to the parent component\n\t\t */\n\t\tfocusLastTab() {\n\t\t\tthis.setActive(this.tabs[this.tabs.length - 1].id)\n\t\t\tthis.focusActiveTab()\n\t\t},\n\n\t\t/**\n\t\t * Focus the current active tab\n\t\t */\n\t\tfocusActiveTab() {\n\t\t\tthis.$el.querySelector(`#tab-button-${this.activeTab}`).focus()\n\t\t},\n\n\t\t/**\n\t\t * Focus the content on tab\n\t\t * see aria accessibility guidelines\n\t\t */\n\t\tfocusActiveTabContent() {\n\t\t\tthis.$el.querySelector('#tab-' + this.activeTab).focus()\n\t\t},\n\n\t\t/**\n\t\t * Update the current active tab\n\t\t */\n\t\tupdateActive() {\n\t\t\tthis.activeTab = this.active\n\t\t\t&& this.tabs.some(tab => tab.id === this.active)\n\t\t\t\t? this.active\n\t\t\t\t: this.tabs.length > 0\n\t\t\t\t\t? this.tabs[0].id\n\t\t\t\t\t: ''\n\t\t},\n\n\t\t/**\n\t\t * Register child tab in the tabs\n\t\t *\n\t\t * @param {object} tab child tab passed to slot\n\t\t */\n\t\tregisterTab(tab) {\n\t\t\tthis.tabs.push(tab)\n\t\t\tthis.tabs.sort((a, b) => {\n\t\t\t\tif (a.order === b.order) {\n\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name)\n\t\t\t\t}\n\t\t\t\treturn a.order - b.order\n\t\t\t})\n\t\t\tthis.updateActive()\n\t\t},\n\n\t\t/**\n\t\t * Unregister child tab from the tabs\n\t\t *\n\t\t * @param {string} id tab's id\n\t\t */\n\t\tunregisterTab(id) {\n\t\t\tconst tabIndex = this.tabs.findIndex((tab) => tab.id === id)\n\t\t\tif (tabIndex !== -1) {\n\t\t\t\tthis.tabs.splice(tabIndex, 1)\n\t\t\t}\n\t\t\tif (this.activeTab === id) {\n\t\t\t\tthis.updateActive()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.app-sidebar-tabs {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 0;\n\tflex: 1 1 100%;\n\n\t&__nav {\n\t\tdisplay: flex;\n\t\tjustify-content: stretch;\n\t\tmargin: 10px 8px 0 8px;\n\t\tborder-bottom: 1px solid var(--color-border);\n\n\t\t// Override checkbox-radio-switch styles so that it looks like tabs\n\t\t& :deep(.checkbox-radio-switch--button-variant) {\n\t\t\tborder: unset !important;\n\t\t\tborder-radius: 0 !important;\n\t\t\t.checkbox-content {\n\t\t\t\tpadding: var(--default-grid-baseline);\n\t\t\t\tborder-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0 !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t\tborder-bottom: var(--default-grid-baseline) solid transparent !important;\n\t\t\t\t.checkbox-content__icon--checked > * {\n\t\t\t\t\tcolor: var(--color-main-text) !important;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.checkbox-radio-switch--checked .checkbox-radio-switch__content{\n\t\t\t\tbackground: transparent !important;\n\t\t\t\tcolor: var(--color-main-text) !important;\n\t\t\t\tborder-bottom: var(--default-grid-baseline) solid var(--color-primary-element) !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__tab {\n\t\tflex: 1 1;\n\t\t&.active {\n\t\t\tcolor: var(--color-primary-element);\n\t\t}\n\n\t\t&-caption {\n\t\t\tflex: 0 1 100%;\n\t\t\twidth: 100%;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t&-icon {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbackground-size: 20px;\n\t\t}\n\n\t\t// Override max-width to use all available space\n\t\t:deep(.checkbox-radio-switch__content) {\n\t\t\tmax-width: unset;\n\t\t}\n\t}\n\n\t&__content {\n\t\tposition: relative;\n\t\tmin-height: 256px;\n\t\theight: 100%;\n\t\t// force the use of the tab component if more than one tab\n\t\t// you can just put raw content if you don't use tabs\n\t\t&--multiple > :not(section) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n</style>\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon star-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"StarIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon star-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"StarOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - @copyright Copyright (c) 2019 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<docs>\n### General description\n\nThis component provides a way to include the standardised sidebar.\nThe standard properties like name, subname, starred, etc. allow to automatically\ninclude a standard-header like it's used by the files app.\n\n### Standard usage\n\n```vue\n<template>\n\t<NcAppSidebar\n\t\t:starred=\"starred\"\n\t\tname=\"cat-picture.jpg\"\n\t\tsubname=\"last edited 3 weeks ago\">\n\t\t<NcAppSidebarTab name=\"Search\" id=\"search-tab\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</template>\n\t\t\tSearch tab content\n\t\t</NcAppSidebarTab>\n\t\t<NcAppSidebarTab name=\"Settings\" id=\"settings-tab\">\n\t\t\t<template #icon>\n\t\t\t\t<Cog :size=\"20\" />\n\t\t\t</template>\n\t\t\tSettings tab content\n\t\t</NcAppSidebarTab>\n\t\t<NcAppSidebarTab name=\"Sharing\" id=\"share-tab\">\n\t\t\t<template #icon>\n\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t</template>\n\t\t\tSharing tab content\n\t\t</NcAppSidebarTab>\n\t</NcAppSidebar>\n</template>\n<script>\n\timport Magnify from 'vue-material-design-icons/Magnify'\n\timport Cog from 'vue-material-design-icons/Cog'\n\timport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tMagnify,\n\t\t\tCog,\n\t\t\tShareVariant,\n\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tstarred: false,\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n### One tab\n\nSingle tab is rendered without navigation.\n\n```vue\n<template>\n\t<div>\n\t\t<NcAppSidebar\n\t\t\tname=\"cat-picture.jpg\"\n\t\t\tsubname=\"last edited 3 weeks ago\">\n\t\t\t<NcAppSidebarTab name=\"Settings\" id=\"settings-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Cog :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSingle tab content\n\t\t\t</NcAppSidebarTab>\n\t\t</NcAppSidebar>\n\t</div>\n</template>\n<script>\nimport Cog from 'vue-material-design-icons/Cog'\n\nexport default {\n\tcomponents: {\n\t\tCog,\n\t},\n}\n</script>\n```\n\n### Dynamic tabs\n\n```vue\n<template>\n\t<div>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"showTabs[0]\">Show search tab</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"showTabs[1]\">Show settings tab</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"showTabs[2]\">Show sharing tab</NcCheckboxRadioSwitch>\n\t\t<NcAppSidebar\n\t\t\tname=\"cat-picture.jpg\"\n\t\t\tsubname=\"last edited 3 weeks ago\">\n\t\t\t<NcAppSidebarTab v-if=\"showTabs[0]\" name=\"Search\" id=\"search-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSearch tab content\n\t\t\t</NcAppSidebarTab>\n\t\t\t<NcAppSidebarTab v-if=\"showTabs[1]\" name=\"Settings\" id=\"settings-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Cog :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSettings\n\t\t\t</NcAppSidebarTab>\n\t\t\t<NcAppSidebarTab v-if=\"showTabs[2]\" name=\"Sharing\" id=\"share-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSharing tab content\n\t\t\t</NcAppSidebarTab>\n\t\t</NcAppSidebar>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\nimport Cog from 'vue-material-design-icons/Cog'\nimport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t\tCog,\n\t\tShareVariant,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowTabs: [true, true, false],\n\t\t}\n\t},\n}\n</script>\n```\n\n### Custom order\n\n```vue\n<template>\n\t<NcAppSidebar\n\t\tname=\"cat-picture.jpg\"\n\t\tsubname=\"last edited 3 weeks ago\">\n\t\t<NcAppSidebarTab name=\"Search\" id=\"search-tab\" :order=\"3\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</template>\n\t\t\tSearch tab content\n\t\t</NcAppSidebarTab>\n\t\t<NcAppSidebarTab name=\"Settings\" id=\"settings-tab\" :order=\"2\">\n\t\t\t<template #icon>\n\t\t\t\t<Cog :size=\"20\" />\n\t\t\t</template>\n\t\t\tSettings tab content\n\t\t</NcAppSidebarTab>\n\t\t<NcAppSidebarTab name=\"Sharing\" id=\"share-tab\" :order=\"1\">\n\t\t\t<template #icon>\n\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t</template>\n\t\t\tSharing tab content\n\t\t</NcAppSidebarTab>\n\t</NcAppSidebar>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\nimport Cog from 'vue-material-design-icons/Cog'\nimport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t\tCog,\n\t\tShareVariant,\n\t},\n}\n</script>\n```\n\n### Activating tab programmatically\n\n```vue\n<template>\n\t<div>\n\t\t<NcSelect v-model=\"active\" :options=\"['search-tab', 'settings-tab', 'share-tab']\" />\n\t\t<NcAppSidebar\n\t\t\tname=\"cat-picture.jpg\"\n\t\t\tsubname=\"last edited 3 weeks ago\"\n\t\t\t:active.sync=\"active\">\n\t\t\t<NcAppSidebarTab name=\"Search\" id=\"search-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSearch tab content\n\t\t\t</NcAppSidebarTab>\n\t\t\t<NcAppSidebarTab name=\"Settings\" id=\"settings-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Cog :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSettings\n\t\t\t</NcAppSidebarTab>\n\t\t\t<NcAppSidebarTab name=\"Sharing\" id=\"share-tab\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSharing tab content\n\t\t\t</NcAppSidebarTab>\n\t\t</NcAppSidebar>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\nimport Cog from 'vue-material-design-icons/Cog'\nimport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t\tCog,\n\t\tShareVariant,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tactive: 'search-tab',\n\t\t}\n\t},\n}\n</script>\n```\n\n### Editable name\n\n```vue\n<template>\n\t<NcAppSidebar\n\t\t:name.sync=\"name\"\n\t\t:name-editable=\"true\"\n\t\tname-placeholder=\"Filename\"\n\t\tsubname=\"last edited 3 weeks ago\">\n\t\t<!-- Insert your slots and tabs here -->\n\t</NcAppSidebar>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tname: 'cat-picture.jpg',\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n### Editable name after click with custom tertiary action\n\n```vue\n<template>\n\t<NcAppSidebar\n\t\t:name=\"name\"\n\t\t:name-editable.sync=\"nameEditable\"\n\t\t:name-placeholder=\"namePlaceholder\"\n\t\t:subname=\"subname\"\n\t\t@update:name=\"nameUpdate\">\n\t\t<template #tertiary-actions>\n\t\t\t<form>\n\t\t\t\t<input type=\"checkbox\" @click=\"toggledCheckbox\"/>\n\t\t\t</form>\n\t\t</template>\n\t</NcAppSidebar>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tname: 'cat-picture.jpg',\n\t\t\t\tnamePlaceholder: 'Filename',\n\t\t\t\tsubname: 'last edited 3 weeks ago',\n\t\t\t\tnameEditable: false\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tnameUpdate(e) {\n\t\t\t\tthis.name = e\n\t\t\t},\n\t\t\ttoggledCheckbox() {\n\t\t\t\talert('toggle')\n\t\t\t}\n\t\t}\n\t}\n</script>\n```\n\n### Custom subname\n\nInstead of using the `subname` prop you can use the same called slot. This is handy if you need to add accessible information.\nLike in the following example where the goal is to show a star icon to mark the file a favorite.\nSimplying adding `★` would not work as screen readers might not or wrongly announce the icon meaning this information is lost.\n\nA working alternative would be using an icon together with an `aria-label`:\n\n```vue\n\t<template>\n\t\t<NcAppSidebar name=\"cat-picture.jpg\">\n\t\t\t<template #subname>\n\t\t\t\t<NcIconSvgWrapper inline :path=\"mdiStar\" name=\"Favorite\" />\n\t\t\t\t123 KiB, a month ago\n\t\t\t</template>\n\t\t</NcAppSidebar>\n\t</template>\n\t<script>\n\timport { mdiStar } from '@mdi/js'\n\n\texport default {\n\t\tsetup() {\n\t\t\treturn {\n\t\t\t\tmdiStar,\n\t\t\t}\n\t\t}\n\t}\n\t</script>\n```\n\n### Empty sidebar for e.g. empty content component.\n\n```vue\n\t<template>\n\t\t<NcAppSidebar\n\t\t\tname=\"cat-picture.jpg\"\n\t\t\t:empty=\"true\">\n\t\t\t<NcEmptyContent name=\"Content not found.\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</NcAppSidebar>\n\t</template>\n\t<script>\n\timport Magnify from 'vue-material-design-icons/Magnify'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tMagnify,\n\t\t},\n\t}\n\t</script>\n```\n</docs>\n\n<template>\n\t<transition appear\n\t\tname=\"slide-right\"\n\t\t@before-enter=\"onBeforeEnter\"\n\t\t@after-enter=\"onAfterEnter\"\n\t\t@before-leave=\"onBeforeLeave\"\n\t\t@after-leave=\"onAfterLeave\">\n\t\t<aside id=\"app-sidebar-vue\"\n\t\t\tref=\"sidebar\"\n\t\t\tclass=\"app-sidebar\"\n\t\t\t:aria-labelledby=\"`app-sidebar-vue-${uid}__header`\"\n\t\t\t@keydown.esc.stop=\"isMobile && closeSidebar()\">\n\t\t\t<header :class=\"{\n\t\t\t\t\t'app-sidebar-header--with-figure': hasFigure,\n\t\t\t\t\t'app-sidebar-header--compact': compact,\n\t\t\t\t}\"\n\t\t\t\tclass=\"app-sidebar-header\">\n\t\t\t\t<!-- container for figure and description, allows easy switching to compact mode -->\n\t\t\t\t<div class=\"app-sidebar-header__info\">\n\t\t\t\t\t<!-- sidebar header illustration/figure -->\n\t\t\t\t\t<div v-if=\"hasFigure && !empty\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'app-sidebar-header__figure--with-action': hasFigureClickListener\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"app-sidebar-header__figure\"\n\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\tbackgroundImage: `url(${background})`\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click=\"onFigureClick\"\n\t\t\t\t\t\t@keydown.enter=\"onFigureClick\">\n\t\t\t\t\t\t<slot class=\"app-sidebar-header__background\" name=\"header\" />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<!-- sidebar details -->\n\t\t\t\t\t<div v-if=\"!empty\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'app-sidebar-header__desc--with-tertiary-action': canStar || $slots['tertiary-actions'],\n\t\t\t\t\t\t\t'app-sidebar-header__desc--editable': nameEditable && !subname,\n\t\t\t\t\t\t\t'app-sidebar-header__desc--with-subname--editable': nameEditable && subname,\n\t\t\t\t\t\t\t'app-sidebar-header__desc--without-actions': !$slots['secondary-actions'],\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"app-sidebar-header__desc\">\n\t\t\t\t\t\t<!-- favourite icon -->\n\t\t\t\t\t\t<div v-if=\"canStar || $slots['tertiary-actions']\" class=\"app-sidebar-header__tertiary-actions\">\n\t\t\t\t\t\t\t<slot name=\"tertiary-actions\">\n\t\t\t\t\t\t\t\t<NcButton v-if=\"canStar\"\n\t\t\t\t\t\t\t\t\t:aria-label=\"favoriteTranslated\"\n\t\t\t\t\t\t\t\t\t:pressed=\"isStarred\"\n\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__star\"\n\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t@click.prevent=\"toggleStarred\">\n\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t<NcLoadingIcon v-if=\"starLoading\" />\n\t\t\t\t\t\t\t\t\t\t<Star v-else-if=\"isStarred\" :size=\"20\" />\n\t\t\t\t\t\t\t\t\t\t<StarOutline v-else :size=\"20\" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<!-- name -->\n\t\t\t\t\t\t<div class=\"app-sidebar-header__name-container\">\n\t\t\t\t\t\t\t<div class=\"app-sidebar-header__mainname-container\">\n\t\t\t\t\t\t\t\t<!-- main name -->\n\t\t\t\t\t\t\t\t<h2 v-show=\"!nameEditable\"\n\t\t\t\t\t\t\t\t\t:id=\"`app-sidebar-vue-${uid}__header`\"\n\t\t\t\t\t\t\t\t\tref=\"header\"\n\t\t\t\t\t\t\t\t\tv-linkify=\"{text: name, linkify: linkifyName}\"\n\t\t\t\t\t\t\t\t\t:aria-label=\"title\"\n\t\t\t\t\t\t\t\t\t:title=\"title\"\n\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__mainname\"\n\t\t\t\t\t\t\t\t\t:tabindex=\"nameEditable ? 0 : -1\"\n\t\t\t\t\t\t\t\t\t@click.self=\"editName\">\n\t\t\t\t\t\t\t\t\t{{ name }}\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<template v-if=\"nameEditable\">\n\t\t\t\t\t\t\t\t\t<form v-click-outside=\"() => onSubmitName()\"\n\t\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__mainname-form\"\n\t\t\t\t\t\t\t\t\t\t@submit.prevent=\"onSubmitName\">\n\t\t\t\t\t\t\t\t\t\t<input ref=\"nameInput\"\n\t\t\t\t\t\t\t\t\t\t\tv-focus\n\t\t\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__mainname-input\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t:placeholder=\"namePlaceholder\"\n\t\t\t\t\t\t\t\t\t\t\t:value=\"name\"\n\t\t\t\t\t\t\t\t\t\t\t@keydown.esc.stop=\"onDismissEditing\"\n\t\t\t\t\t\t\t\t\t\t\t@input=\"onNameInput\">\n\t\t\t\t\t\t\t\t\t\t<NcButton type=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t\t\t\t:aria-label=\"changeNameTranslated\"\n\t\t\t\t\t\t\t\t\t\t\tnative-type=\"submit\">\n\t\t\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<!-- header main menu -->\n\t\t\t\t\t\t\t\t<NcActions v-if=\"$slots['secondary-actions']\"\n\t\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__menu\"\n\t\t\t\t\t\t\t\t\t:force-menu=\"forceMenu\">\n\t\t\t\t\t\t\t\t\t<slot name=\"secondary-actions\" />\n\t\t\t\t\t\t\t\t</NcActions>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- secondary name -->\n\t\t\t\t\t\t\t<p v-if=\"subname.trim() !== '' || $slots['subname']\"\n\t\t\t\t\t\t\t\t:title=\"subtitle || undefined\"\n\t\t\t\t\t\t\t\tclass=\"app-sidebar-header__subname\">\n\t\t\t\t\t\t\t\t<!-- @slot Alternative to the `subname` prop can be used for more complex conent. It will be rendered within a `p` tag. -->\n\t\t\t\t\t\t\t\t<slot name=\"subname\">\n\t\t\t\t\t\t\t\t\t{{ subname }}\n\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<NcButton ref=\"closeButton\"\n\t\t\t\t\t:title=\"closeTranslated\"\n\t\t\t\t\t:aria-label=\"closeTranslated\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\tclass=\"app-sidebar__close\"\n\t\t\t\t\t@click.prevent=\"closeSidebar\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Close :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\n\t\t\t\t<div v-if=\"$slots['description'] && !empty\" class=\"app-sidebar-header__description\">\n\t\t\t\t\t<slot name=\"description\" />\n\t\t\t\t</div>\n\t\t\t</header>\n\n\t\t\t<NcAppSidebarTabs v-show=\"!loading\"\n\t\t\t\tref=\"tabs\"\n\t\t\t\t:active=\"active\"\n\t\t\t\t@update:active=\"onUpdateActive\">\n\t\t\t\t<slot />\n\t\t\t</NcAppSidebarTabs>\n\n\t\t\t<NcEmptyContent v-if=\"loading\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcLoadingIcon :size=\"64\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</aside>\n\t</transition>\n</template>\n\n<script>\nimport NcAppSidebarTabs from './NcAppSidebarTabs.vue'\nimport NcActions from '../NcActions/index.js'\nimport NcLoadingIcon from '../NcLoadingIcon/index.js'\nimport NcButton from '../NcButton/index.js'\nimport NcEmptyContent from '../NcEmptyContent/index.js'\nimport Focus from '../../directives/Focus/index.js'\nimport Linkify from '../../directives/Linkify/index.js'\nimport Tooltip from '../../directives/Tooltip/index.js'\nimport { useIsSmallMobile } from '../../composables/useIsMobile/index.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport { getTrapStack } from '../../utils/focusTrap.js'\nimport { t } from '../../l10n.js'\n\nimport ArrowRight from 'vue-material-design-icons/ArrowRight.vue'\nimport Close from 'vue-material-design-icons/Close.vue'\nimport Star from 'vue-material-design-icons/Star.vue'\nimport StarOutline from 'vue-material-design-icons/StarOutline.vue'\n\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\n\nexport default {\n\tname: 'NcAppSidebar',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tNcAppSidebarTabs,\n\t\tArrowRight,\n\t\tNcButton,\n\t\tNcLoadingIcon,\n\t\tNcEmptyContent,\n\t\tClose,\n\t\tStar,\n\t\tStarOutline,\n\t},\n\n\tdirectives: {\n\t\tfocus: Focus,\n\t\tlinkify: Linkify,\n\t\tClickOutside,\n\t\tTooltip,\n\t},\n\n\tprops: {\n\t\tactive: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Allow to edit the sidebar name.\n\t\t */\n\t\tnameEditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tnamePlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tsubname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Title to display for the subname.\n\t\t */\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Url to the top header background image\n\t\t * Applied with css\n\t\t */\n\t\tbackground: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Enable the favourite icon if not null\n\t\t * See fired events\n\t\t */\n\t\tstarred: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Show loading spinner instead of the star icon\n\t\t */\n\t\tstarLoading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Show loading spinner instead of tabs\n\t\t */\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Display the sidebar in compact mode\n\t\t */\n\t\tcompact: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Only display close button and default slot content.\n\t\t * Don't display other header content and primary and secondary actions.\n\t\t * Useful when showing the EmptyContent component as content.\n\t\t */\n\t\tempty: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the actions to display in a three dot menu\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Linkify the name\n\t\t */\n\t\tlinkifyName: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Title to display for the name.\n\t\t * Can be set to the same text in case it's too long.\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closing',\n\t\t'closed',\n\t\t'opening',\n\t\t'opened',\n\t\t'figure-click',\n\t\t'update:starred',\n\t\t'update:nameEditable',\n\t\t'update:name',\n\t\t'update:active',\n\t\t'submit-name',\n\t\t'dismiss-editing',\n\t],\n\n\tsetup() {\n\t\treturn {\n\t\t\tuid: GenRandomId(),\n\t\t\tisMobile: useIsSmallMobile(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tchangeNameTranslated: t('Change name'),\n\t\t\tcloseTranslated: t('Close sidebar'),\n\t\t\tfavoriteTranslated: t('Favorite'),\n\t\t\tisStarred: this.starred,\n\t\t\tfocusTrap: null,\n\t\t\telementToReturnFocus: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcanStar() {\n\t\t\treturn this.isStarred !== null\n\t\t},\n\t\thasFigure() {\n\t\t\treturn this.$slots.header || this.background\n\t\t},\n\t\thasFigureClickListener() {\n\t\t\treturn this.$listeners['figure-click']\n\t\t},\n\t},\n\n\twatch: {\n\t\tstarred() {\n\t\t\tthis.isStarred = this.starred\n\t\t},\n\n\t\tisMobile() {\n\t\t\tthis.toggleFocusTrap()\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.preserveElementToReturnFocus()\n\t},\n\n\tmounted() {\n\t\t// Focus sidebar on open only if it was opened by a user interaction\n\t\tif (this.elementToReturnFocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\tthis.toggleFocusTrap()\n\t},\n\n\tbeforeDestroy() {\n\t\t// Make sure that the 'closed' event is dispatched even if this element is destroyed before the 'after-leave' event is received.\n\t\tthis.$emit('closed')\n\t\tthis.focusTrap?.deactivate()\n\t},\n\n\tmethods: {\n\t\tpreserveElementToReturnFocus() {\n\t\t\t// Save the element that had focus before the sidebar was opened to return back on close\n\t\t\tif (document.activeElement && document.activeElement !== document.body) {\n\t\t\t\tthis.elementToReturnFocus = document.activeElement\n\n\t\t\t\t// Special case for menus (NcActions)\n\t\t\t\t// If a sidebar was opened from a menu item, we want to return focus to the menu trigger instead of the item\n\t\t\t\tif (this.elementToReturnFocus.getAttribute('role') === 'menuitem') {\n\t\t\t\t\tconst menu = this.elementToReturnFocus.closest('[role=\"menu\"]')\n\t\t\t\t\tif (menu) {\n\t\t\t\t\t\tconst menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`)\n\t\t\t\t\t\tthis.elementToReturnFocus = menuTrigger\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tinitFocusTrap() {\n\t\t\tif (this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.focusTrap = createFocusTrap([\n\t\t\t\t// The sidebar itself\n\t\t\t\tthis.$refs.sidebar,\n\t\t\t\t// Nextcloud Server header navigarion\n\t\t\t\tdocument.querySelector('#header'),\n\t\t\t\t// The app navigation toggle. Navigation can be opened above the sidebar\n\t\t\t\t// Take the parent element, because the focus-trap requires a container with elements, not the element itself\n\t\t\t\tdocument.querySelector('[aria-controls=\"app-navigation-vue\"]')?.parentElement,\n\t\t\t], {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\tfallbackFocus: this.$refs.closeButton,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tescapeDeactivates: false,\n\t\t\t})\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) {\n\t\t\t\tthis.initFocusTrap()\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\tonBeforeEnter(element) {\n\t\t\t/**\n\t\t\t * The sidebar is opening and the transition is in progress\n\t\t\t *\n\t\t\t * @type {HTMLElement}\n\t\t\t */\n\t\t\tthis.$emit('opening', element)\n\t\t},\n\t\tonAfterEnter(element) {\n\t\t\t/**\n\t\t\t * The sidebar is opened and the transition is complete\n\t\t\t *\n\t\t\t * @type {HTMLElement}\n\t\t\t */\n\t\t\tthis.$emit('opened', element)\n\t\t},\n\t\tonBeforeLeave(element) {\n\t\t\t/**\n\t\t\t * The sidebar is closing and the transition is in progress\n\t\t\t *\n\t\t\t * @type {HTMLElement}\n\t\t\t */\n\t\t\tthis.$emit('closing', element)\n\t\t},\n\t\tonAfterLeave(element) {\n\t\t\t/**\n\t\t\t * The sidebar is closed and the transition is complete\n\t\t\t *\n\t\t\t * @type {HTMLElement}\n\t\t\t */\n\t\t\tthis.$emit('closed', element)\n\n\t\t\t// Return focus to the element that had focus before the sidebar was opened\n\t\t\tthis.elementToReturnFocus?.focus({ focusVisible: true })\n\t\t\tthis.elementToReturnFocus = null\n\t\t},\n\n\t\t/**\n\t\t * Used to tell parent component the user asked to close the sidebar\n\t\t *\n\t\t * @param {Event} e close icon click event\n\t\t */\n\t\tcloseSidebar(e) {\n\t\t\t/**\n\t\t\t * The user clicked to closed the sidebar\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('close', e)\n\t\t},\n\n\t\t/**\n\t\t * Emit figure click event to parent component\n\t\t *\n\t\t * @param {Event} e click event\n\t\t */\n\t\tonFigureClick(e) {\n\t\t\t/**\n\t\t\t * The figure/background header has been clicked\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('figure-click', e)\n\t\t},\n\n\t\t/**\n\t\t * Toggle the favourite state\n\t\t * and emit to the parent component\n\t\t */\n\t\ttoggleStarred() {\n\t\t\tthis.isStarred = !this.isStarred\n\t\t\t/**\n\t\t\t * Emitted when the starred value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:starred', this.isStarred)\n\t\t},\n\n\t\teditName() {\n\t\t\t/**\n\t\t\t * Emitted when the nameEditable value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:nameEditable', true)\n\t\t\t// Focus the name input\n\t\t\tif (this.nameEditable) {\n\t\t\t\tthis.$nextTick(\n\t\t\t\t\t() => this.$refs.nameInput.focus(),\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Focus the sidebar\n\t\t * @public\n\t\t */\n\t\tfocus() {\n\t\t\tthis.$refs.header.focus()\n\t\t},\n\n\t\t/**\n\t\t * Focus the active tab\n\t\t * @public\n\t\t */\n\t\tfocusActiveTabContent() {\n\t\t\t// If a tab is focused then probably a new trigger element moved the focus to the sidebar\n\t\t\tthis.preserveElementToReturnFocus()\n\n\t\t\tthis.$refs.tabs.focusActiveTabContent()\n\t\t},\n\n\t\t/**\n\t\t * Emit name change event to parent component\n\t\t *\n\t\t * @param {Event} event input event\n\t\t */\n\t\tonNameInput(event) {\n\t\t\t/**\n\t\t\t * Emitted when the name value changes\n\t\t\t *\n\t\t\t * @type {string|Date}\n\t\t\t */\n\t\t\tthis.$emit('update:name', event.target.value)\n\t\t},\n\n\t\t/**\n\t\t * Emit when the name form edit confirm button is pressed in order\n\t\t * to change the name.\n\t\t *\n\t\t * @param {Event} event submit event\n\t\t */\n\t\tonSubmitName(event) {\n\t\t\t// Disable editing\n\t\t\tthis.$emit('update:nameEditable', false)\n\t\t\t/**\n\t\t\t * Emitted when the name edit input has been submitted\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('submit-name', event)\n\t\t},\n\t\tonDismissEditing() {\n\t\t\t// Disable editing\n\t\t\tthis.$emit('update:nameEditable', false)\n\t\t\t/**\n\t\t\t * Emitted when the name edit has been cancelled\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('dismiss-editing')\n\t\t},\n\t\tonUpdateActive(activeTab) {\n\t\t\t/**\n\t\t\t * The active tab changed\n\t\t\t *\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tthis.$emit('update:active', activeTab)\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n$sidebar-min-width: 300px;\n$sidebar-max-width: 500px;\n\n$desc-vertical-padding: 18px;\n$desc-vertical-padding-compact: 10px;\n$desc-input-padding: 7px;\n\n// name and subname\n$desc-name-height: 30px;\n$desc-subname-height: 22px;\n$desc-height: $desc-name-height + $desc-subname-height;\n\n$top-buttons-spacing: 6px;\n\n/*\n\tSidebar: to be used within #content\n\tapp-content will be shrinked properly\n*/\n.app-sidebar {\n\tz-index: 1500;\n\ttop: 0;\n\tright: 0;\n\tdisplay: flex;\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\tflex-direction: column;\n\tflex-shrink: 0;\n\twidth: 27vw;\n\tmin-width: $sidebar-min-width;\n\tmax-width: $sidebar-max-width;\n\theight: 100%;\n\tborder-left: 1px solid var(--color-border);\n\tbackground: var(--color-main-background);\n\n\t.app-sidebar-header {\n\t\t> .app-sidebar__close {\n\t\t\tposition: absolute;\n\t\t\tz-index: 100;\n\t\t\ttop: $top-buttons-spacing;\n\t\t\tright: $top-buttons-spacing;\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_normal;\n\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t&:hover,\n\t\t\t&:active,\n\t\t\t&:focus {\n\t\t\t\topacity: $opacity_full;\n\t\t\t\tbackground-color: $action-background-hover;\n\t\t\t}\n\t\t}\n\n\t\t// Compact mode only affects a sidebar with a figure\n\t\t&--compact.app-sidebar-header--with-figure {\n\t\t\t.app-sidebar-header__info {\n\t\t\t\tflex-direction: row;\n\n\t\t\t\t.app-sidebar-header__figure {\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\twidth: $desc-height + $desc-vertical-padding;\n\t\t\t\t\theight: $desc-height + $desc-vertical-padding;\n\t\t\t\t\tmargin: math.div($desc-vertical-padding, 2);\n\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\tflex: 0 0 auto;\n\t\t\t\t}\n\t\t\t\t.app-sidebar-header__desc {\n\t\t\t\t\tpadding-left: 0;\n\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\tmin-width: 0;\n\t\t\t\t\tpadding-right: 2 * $clickable-area + $top-buttons-spacing;\n\t\t\t\t\tpadding-top: $desc-vertical-padding-compact;\n\n\t\t\t\t\t&.app-sidebar-header__desc--without-actions {\n\t\t\t\t\t\tpadding-right: #{$clickable-area + $top-buttons-spacing};\n\t\t\t\t\t}\n\n\t\t\t\t\t.app-sidebar-header__tertiary-actions {\n\t\t\t\t\t\tz-index: 3; // above star\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\ttop: math.div($desc-vertical-padding, 2);\n\t\t\t\t\t\tleft: -1 * $clickable-area;\n\t\t\t\t\t\tgap: 0; // override gap\n\t\t\t\t\t}\n\t\t\t\t\t.app-sidebar-header__menu {\n\t\t\t\t\t\ttop: $top-buttons-spacing;\n\t\t\t\t\t\tright: $clickable-area + $top-buttons-spacing; // left of the close button\n\t\t\t\t\t\tbackground-color: transparent;\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// sidebar without figure\n\t\t&:not(.app-sidebar-header--with-figure) {\n\t\t\t// align the menu with the close button\n\t\t\t.app-sidebar-header__menu {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: $top-buttons-spacing;\n\t\t\t\tright: $top-buttons-spacing + $clickable-area;\n\t\t\t}\n\t\t\t// increase the padding to not overlap the menu\n\t\t\t.app-sidebar-header__desc {\n\t\t\t\tpadding-right: #{$clickable-area * 2 + $top-buttons-spacing};\n\n\t\t\t\t&.app-sidebar-header__desc--without-actions {\n\t\t\t\t\tpadding-right: #{$clickable-area + $top-buttons-spacing};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// the container with the figure and the description\n\t\t.app-sidebar-header__info {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t// header background\n\t\t&__figure {\n\t\t\twidth: 100%;\n\t\t\theight: 250px;\n\t\t\tmax-height: 250px;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: contain;\n\t\t\t&--with-action {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\n\t\t// description\n\t\t&__desc {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tpadding: #{$desc-vertical-padding} #{$top-buttons-spacing} #{$desc-vertical-padding} #{math.div($desc-vertical-padding, 2)};\n\t\t\tgap: 0 4px;\n\n\t\t\t// custom overrides\n\t\t\t&--with-tertiary-action {\n\t\t\t\tpadding-left: 6px;\n\t\t\t}\n\n\t\t\t&--editable .app-sidebar-header__mainname-form,\n\t\t\t&--with-subname--editable .app-sidebar-header__mainname-form {\n\t\t\t\tmargin-top: -2px;\n\t\t\t\tmargin-bottom: -2px;\n\t\t\t}\n\n\t\t\t&--with-subname--editable .app-sidebar-header__subname {\n\t\t\t\tmargin-top: -2px;\n\t\t\t}\n\n\t\t\t.app-sidebar-header__tertiary-actions {\n\t\t\t\tdisplay: flex;\n\t\t\t\theight: $clickable-area;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\tjustify-content: center;\n\t\t\t\tflex: 0 0 auto;\n\n\t\t\t\t.app-sidebar-header__star {\n\t\t\t\t\t// Override default Button component styles\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\t&:not([aria-pressed='true']):hover {\n\t\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// names\n\t\t\t.app-sidebar-header__name-container {\n\t\t\t\tflex: 1 1 auto;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: center;\n\t\t\t\tmin-width: 0;\n\n\t\t\t\t.app-sidebar-header__mainname-container {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tmin-height: $clickable-area;\n\n\t\t\t\t\t// main name\n\t\t\t\t\t.app-sidebar-header__mainname {\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\tmin-height: 30px;\n\t\t\t\t\t\tfont-size: 20px;\n\t\t\t\t\t\tline-height: $desc-name-height;\n\n\t\t\t\t\t\t// Needs 'deep' as the link is generated by the linkify directive\n\t\t\t\t\t\t&:deep(.linkified) {\n\t\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.app-sidebar-header__mainname-form {\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\t\talign-items: center;\n\n\t\t\t\t\t\tinput.app-sidebar-header__mainname-input {\n\t\t\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t\tpadding: $desc-input-padding;\n\t\t\t\t\t\t\tfont-size: 20px;\n\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// main menu\n\t\t\t\t\t.app-sidebar-header__menu {\n\t\t\t\t\t\theight: $clickable-area;\n\t\t\t\t\t\twidth: $clickable-area;\n\t\t\t\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t\t\t\tbackground-color: $action-background-hover;\n\t\t\t\t\t\tmargin-left: 5px;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// shared between main and subname\n\t\t\t\t.app-sidebar-header__mainname,\n\t\t\t\t.app-sidebar-header__subname {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\t}\n\n\t\t\t\t// subname\n\t\t\t\t.app-sidebar-header__subname {\n\t\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\t\tpadding: 0;\n\n\t\t\t\t\t* {\n\t\t\t\t\t\tvertical-align: text-bottom;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// sidebar description slot\n\t\t&__description {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin: 0 10px;\n\t\t}\n\t}\n}\n\n// Make the sidebar full-width on small screens\n@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-sidebar {\n\t\twidth: 100vw;\n\t\tmax-width: 100vw;\n\t}\n}\n\n.slide-right-leave-active,\n.slide-right-enter-active {\n\ttransition-duration: var(--animation-quick);\n\ttransition-property: max-width, min-width;\n}\n\n.slide-right-enter-to,\n.slide-right-leave {\n\tmin-width: $sidebar-min-width;\n\tmax-width: $sidebar-max-width;\n}\n\n.slide-right-enter,\n.slide-right-leave-to {\n\tmin-width: 0 !important;\n\tmax-width: 0 !important;\n}\n</style>\n\n<style lang=\"scss\">\n// ! slots specific designs, cannot be scoped\n// if any button inside the description slot, increase visual padding\n.app-sidebar-header__description {\n\tbutton, .button,\n\tinput[type='button'],\n\tinput[type='submit'],\n\tinput[type='reset'] {\n\t\tpadding: 6px 22px;\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","NcCheckboxRadioSwitch","NcVNodes","tab","active","id","a","b","tabIndex","NcActions","NcAppSidebarTabs","ArrowRight","NcButton","NcLoadingIcon","NcEmptyContent","Close","Star","StarOutline","Focus","Linkify","ClickOutside","Tooltip","GenRandomId","useIsSmallMobile","t","_a","menu","menuTrigger","createFocusTrap","getTrapStack","element","e","event","activeTab"],"mappings":"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","x_google_ignoreList":[1,2]}
@@ -1,8 +1,8 @@
1
- require('../assets/NcAppSidebar-RkF-tqKy.css');
1
+ require('../assets/NcAppSidebar-BGQX62or.css');
2
2
  "use strict";
3
- const n = require("../Components/NcVNodes.cjs"), o = require("./NcCheckboxRadioSwitch-BUIaJMqW.cjs"), r = require("./_plugin-vue2_normalizer-DCfUPqga.cjs"), l = require("./NcActions-tPPh2p8F.cjs"), c = require("../Components/NcLoadingIcon.cjs"), u = require("../Components/NcButton.cjs"), d = require("../Components/NcEmptyContent.cjs"), p = require("../Directives/Focus.cjs"), f = require("../Directives/Linkify.cjs");
3
+ const n = require("../Components/NcVNodes.cjs"), o = require("./NcCheckboxRadioSwitch-Dt96X5bR.cjs"), r = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), l = require("./NcActions-Dfkog_G0.cjs"), c = require("../Components/NcLoadingIcon.cjs"), u = require("../Components/NcButton.cjs"), d = require("../Components/NcEmptyContent.cjs"), p = require("../Directives/Focus.cjs"), f = require("../Directives/Linkify.cjs");
4
4
  require("../Directives/Tooltip.cjs");
5
- const m = require("../Composables/useIsMobile.cjs"), b = require("./GenRandomId-ULxaMkkr.cjs"), h = require("./focusTrap-n3H52LOw.cjs"), s = require("./_l10n-qu3Uu6RR.cjs"), _ = require("./ArrowRight-uUC8qW2c.cjs"), y = require("./Close-dotk0707.cjs"), g = require("@vueuse/components"), k = require("focus-trap"), T = require("floating-vue"), v = {
5
+ const m = require("../Composables/useIsMobile.cjs"), b = require("./GenRandomId-B2O1GMbH.cjs"), h = require("./focusTrap-xauhLvvr.cjs"), s = require("./_l10n-B986q8RC.cjs"), _ = require("./ArrowRight-CxzzJJQ6.cjs"), y = require("./Close-DBfrdXMw.cjs"), g = require("@vueuse/components"), k = require("focus-trap"), T = require("floating-vue"), v = {
6
6
  name: "NcAppSidebarTabs",
7
7
  components: {
8
8
  NcCheckboxRadioSwitch: o.NcCheckboxRadioSwitch,
@@ -99,7 +99,7 @@ const m = require("../Composables/useIsMobile.cjs"), b = require("./GenRandomId-
99
99
  * Focus the current active tab
100
100
  */
101
101
  focusActiveTab() {
102
- this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();
102
+ this.$el.querySelector("#tab-button-".concat(this.activeTab)).focus();
103
103
  },
104
104
  /**
105
105
  * Focus the content on tab
@@ -150,7 +150,7 @@ var C = function() {
150
150
  }, function(t) {
151
151
  return !t.type.indexOf("key") && e._k(t.keyCode, "page-down", void 0, t.key, void 0) || t.ctrlKey || t.shiftKey || t.altKey || t.metaKey ? null : (t.preventDefault(), t.stopPropagation(), e.focusLastTab.apply(null, arguments));
152
152
  }] } }, e._l(e.tabs, function(t) {
153
- return a("NcCheckboxRadioSwitch", { key: t.id, staticClass: "app-sidebar-tabs__tab", class: { active: t.id === e.activeTab }, attrs: { "aria-controls": `tab-${t.id}`, "aria-selected": String(e.activeTab === t.id), "button-variant": !0, checked: e.activeTab === t.id, "wrapper-id": `tab-button-${t.id}`, tabindex: e.activeTab === t.id ? 0 : -1, "button-variant-grouped": "horizontal", role: "tab", type: "button" }, on: { "update:checked": function(V) {
153
+ return a("NcCheckboxRadioSwitch", { key: t.id, staticClass: "app-sidebar-tabs__tab", class: { active: t.id === e.activeTab }, attrs: { "aria-controls": "tab-".concat(t.id), "aria-selected": String(e.activeTab === t.id), "button-variant": !0, checked: e.activeTab === t.id, "wrapper-id": "tab-button-".concat(t.id), tabindex: e.activeTab === t.id ? 0 : -1, "button-variant-grouped": "horizontal", role: "tab", type: "button" }, on: { "update:checked": function(V) {
154
154
  return e.setActive(t.id);
155
155
  } }, scopedSlots: e._u([{ key: "icon", fn: function() {
156
156
  return [a("NcVNodes", { attrs: { vnodes: t.renderIcon() } }, [a("span", { staticClass: "app-sidebar-tabs__tab-icon", class: t.icon })])];
@@ -408,19 +408,21 @@ const B = I.exports, O = {
408
408
  this.elementToReturnFocus && this.focus(), this.toggleFocusTrap();
409
409
  },
410
410
  beforeDestroy() {
411
- this.$emit("closed"), this.focusTrap?.deactivate();
411
+ var i;
412
+ this.$emit("closed"), (i = this.focusTrap) == null || i.deactivate();
412
413
  },
413
414
  methods: {
414
415
  preserveElementToReturnFocus() {
415
416
  if (document.activeElement && document.activeElement !== document.body && (this.elementToReturnFocus = document.activeElement, this.elementToReturnFocus.getAttribute("role") === "menuitem")) {
416
417
  const i = this.elementToReturnFocus.closest('[role="menu"]');
417
418
  if (i) {
418
- const e = document.querySelector(`[aria-controls="${i.id}"]`);
419
+ const e = document.querySelector('[aria-controls="'.concat(i.id, '"]'));
419
420
  this.elementToReturnFocus = e;
420
421
  }
421
422
  }
422
423
  },
423
424
  initFocusTrap() {
425
+ var i;
424
426
  this.focusTrap || (this.focusTrap = k.createFocusTrap([
425
427
  // The sidebar itself
426
428
  this.$refs.sidebar,
@@ -428,7 +430,7 @@ const B = I.exports, O = {
428
430
  document.querySelector("#header"),
429
431
  // The app navigation toggle. Navigation can be opened above the sidebar
430
432
  // Take the parent element, because the focus-trap requires a container with elements, not the element itself
431
- document.querySelector('[aria-controls="app-navigation-vue"]')?.parentElement
433
+ (i = document.querySelector('[aria-controls="app-navigation-vue"]')) == null ? void 0 : i.parentElement
432
434
  ], {
433
435
  allowOutsideClick: !0,
434
436
  fallbackFocus: this.$refs.closeButton,
@@ -440,7 +442,8 @@ const B = I.exports, O = {
440
442
  * Activate focus trap if it is currently needed, otherwise deactivate
441
443
  */
442
444
  toggleFocusTrap() {
443
- this.isMobile ? (this.initFocusTrap(), this.focusTrap.activate()) : this.focusTrap?.deactivate();
445
+ var i;
446
+ this.isMobile ? (this.initFocusTrap(), this.focusTrap.activate()) : (i = this.focusTrap) == null || i.deactivate();
444
447
  },
445
448
  onBeforeEnter(i) {
446
449
  this.$emit("opening", i);
@@ -452,7 +455,8 @@ const B = I.exports, O = {
452
455
  this.$emit("closing", i);
453
456
  },
454
457
  onAfterLeave(i) {
455
- this.$emit("closed", i), this.elementToReturnFocus?.focus({ focusVisible: !0 }), this.elementToReturnFocus = null;
458
+ var e;
459
+ this.$emit("closed", i), (e = this.elementToReturnFocus) == null || e.focus({ focusVisible: !0 }), this.elementToReturnFocus = null;
456
460
  },
457
461
  /**
458
462
  * Used to tell parent component the user asked to close the sidebar
@@ -523,7 +527,7 @@ const B = I.exports, O = {
523
527
  };
524
528
  var z = function() {
525
529
  var e = this, a = e._self._c;
526
- return a("transition", { attrs: { appear: "", name: "slide-right" }, on: { "before-enter": e.onBeforeEnter, "after-enter": e.onAfterEnter, "before-leave": e.onBeforeLeave, "after-leave": e.onAfterLeave } }, [a("aside", { ref: "sidebar", staticClass: "app-sidebar", attrs: { id: "app-sidebar-vue", "aria-labelledby": `app-sidebar-vue-${e.uid}__header` }, on: { keydown: function(t) {
530
+ return a("transition", { attrs: { appear: "", name: "slide-right" }, on: { "before-enter": e.onBeforeEnter, "after-enter": e.onAfterEnter, "before-leave": e.onBeforeLeave, "after-leave": e.onAfterLeave } }, [a("aside", { ref: "sidebar", staticClass: "app-sidebar", attrs: { id: "app-sidebar-vue", "aria-labelledby": "app-sidebar-vue-".concat(e.uid, "__header") }, on: { keydown: function(t) {
527
531
  if (!t.type.indexOf("key") && e._k(t.keyCode, "esc", 27, t.key, ["Esc", "Escape"]))
528
532
  return null;
529
533
  t.stopPropagation(), e.isMobile && e.closeSidebar();
@@ -533,7 +537,7 @@ var z = function() {
533
537
  } }, [a("div", { staticClass: "app-sidebar-header__info" }, [e.hasFigure && !e.empty ? a("div", { staticClass: "app-sidebar-header__figure", class: {
534
538
  "app-sidebar-header__figure--with-action": e.hasFigureClickListener
535
539
  }, style: {
536
- backgroundImage: `url(${e.background})`
540
+ backgroundImage: "url(".concat(e.background, ")")
537
541
  }, attrs: { tabindex: "0" }, on: { click: e.onFigureClick, keydown: function(t) {
538
542
  return !t.type.indexOf("key") && e._k(t.keyCode, "enter", 13, t.key, "Enter") ? null : e.onFigureClick.apply(null, arguments);
539
543
  } } }, [e._t("header")], 2) : e._e(), e.empty ? e._e() : a("div", { staticClass: "app-sidebar-header__desc", class: {
@@ -547,7 +551,7 @@ var z = function() {
547
551
  } }, scopedSlots: e._u([{ key: "icon", fn: function() {
548
552
  return [e.starLoading ? a("NcLoadingIcon") : e.isStarred ? a("Star", { attrs: { size: 20 } }) : a("StarOutline", { attrs: { size: 20 } })];
549
553
  }, proxy: !0 }], null, !1, 2575459756) }) : e._e()];
550
- })], 2) : e._e(), a("div", { staticClass: "app-sidebar-header__name-container" }, [a("div", { staticClass: "app-sidebar-header__mainname-container" }, [a("h2", { directives: [{ name: "show", rawName: "v-show", value: !e.nameEditable, expression: "!nameEditable" }, { name: "linkify", rawName: "v-linkify", value: { text: e.name, linkify: e.linkifyName }, expression: "{text: name, linkify: linkifyName}" }], ref: "header", staticClass: "app-sidebar-header__mainname", attrs: { id: `app-sidebar-vue-${e.uid}__header`, "aria-label": e.title, title: e.title, tabindex: e.nameEditable ? 0 : -1 }, on: { click: function(t) {
554
+ })], 2) : e._e(), a("div", { staticClass: "app-sidebar-header__name-container" }, [a("div", { staticClass: "app-sidebar-header__mainname-container" }, [a("h2", { directives: [{ name: "show", rawName: "v-show", value: !e.nameEditable, expression: "!nameEditable" }, { name: "linkify", rawName: "v-linkify", value: { text: e.name, linkify: e.linkifyName }, expression: "{text: name, linkify: linkifyName}" }], ref: "header", staticClass: "app-sidebar-header__mainname", attrs: { id: "app-sidebar-vue-".concat(e.uid, "__header"), "aria-label": e.title, title: e.title, tabindex: e.nameEditable ? 0 : -1 }, on: { click: function(t) {
551
555
  return t.target !== t.currentTarget ? null : e.editName.apply(null, arguments);
552
556
  } } }, [e._v(" " + e._s(e.name) + " ")]), e.nameEditable ? [a("form", { directives: [{ name: "click-outside", rawName: "v-click-outside", value: () => e.onSubmitName(), expression: "() => onSubmitName()" }], staticClass: "app-sidebar-header__mainname-form", on: { submit: function(t) {
553
557
  return t.preventDefault(), e.onSubmitName.apply(null, arguments);