@nextcloud/vue 9.8.2 → 9.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. package/CHANGELOG.md +95 -60
  2. package/README.md +21 -0
  3. package/dist/assets/{NcActionButton-DLer-aUY.css → NcActionButton.css} +1 -0
  4. package/dist/assets/{NcActionCheckbox-wD8m_a8-.css → NcActionCheckbox.css} +1 -0
  5. package/dist/assets/{NcActionInput-t9WvlgV0.css → NcActionInput.css} +70 -66
  6. package/dist/assets/{NcActionLink-b4Ph5q10.css → NcActionLink.css} +1 -0
  7. package/dist/assets/{NcActionRadio-D2rLM1ci.css → NcActionRadio.css} +1 -0
  8. package/dist/assets/{NcActionRouter-BWXfCfxM.css → NcActionRouter.css} +1 -0
  9. package/dist/assets/{NcActionText-Dzegj6AY.css → NcActionText.css} +1 -0
  10. package/dist/assets/{NcActionTextEditable-BlZeHZ7J.css → NcActionTextEditable.css} +67 -65
  11. package/dist/assets/{NcActions-DOI7rRa0.css → NcActions.css} +14 -11
  12. package/dist/assets/{NcAppContent-BC7DBer3.css → NcAppContent.css} +20 -20
  13. package/dist/assets/{NcAppNavigation-2b1jxOXM.css → NcAppNavigation.css} +17 -17
  14. package/dist/assets/{NcAppNavigationItem-BsuZoJAq.css → NcAppNavigationItem.css} +53 -49
  15. package/dist/assets/NcAppNavigationList.css +52 -0
  16. package/dist/assets/{NcAppNavigationNewItem-MaYQVcKF.css → NcAppNavigationNewItem.css} +4 -0
  17. package/dist/assets/{NcAppNavigationSettings-B4ZZe32B.css → NcAppNavigationSettings.css} +6 -6
  18. package/dist/assets/{NcAppSettingsDialog-BPOsEn6K.css → NcAppSettingsDialog.css} +31 -31
  19. package/dist/assets/{NcAppSettingsShortcutsSection-ABRbmy1I.css → NcAppSettingsShortcutsSection.css} +1 -1
  20. package/dist/assets/{NcAppSidebar-TcyGhk0L.css → NcAppSidebar.css} +67 -67
  21. package/dist/assets/{NcAssistantButton-CeNrbdrG.css → NcAssistantButton.css} +9 -9
  22. package/dist/assets/{NcAssistantContent-DI-vub5j.css → NcAssistantContent.css} +3 -3
  23. package/dist/assets/{NcAssistantIcon-DyenP95c.css → NcAssistantIcon.css} +4 -4
  24. package/dist/assets/{NcAvatar-Bs7qEhkA.css → NcAvatar.css} +39 -24
  25. package/dist/assets/{NcBlurHash-CloqLmG2.css → NcBlurHash.css} +2 -2
  26. package/dist/assets/{NcBreadcrumbs-5gl8Syfa.css → NcBreadcrumbs.css} +6 -6
  27. package/dist/assets/{NcButton-Bf9wuDV-.css → NcButton.css} +52 -50
  28. package/dist/assets/{NcCheckboxRadioSwitch-BlQSZVW0.css → NcCheckboxRadioSwitch.css} +36 -36
  29. package/dist/assets/{NcDateTimePicker-HT1ZTE-Z.css → NcDateTimePicker.css} +235 -235
  30. package/dist/assets/NcDateTimePickerNative.css +38 -0
  31. package/dist/assets/{NcEllipsisedOption-CPWbbgBy.css → NcEllipsisedOption.css} +10 -5
  32. package/dist/assets/{NcFilePicker-CGYCxNdK.css → NcFilePicker.css} +1 -1
  33. package/dist/assets/{NcFormBox-D_5h4Op_.css → NcFormBox.css} +11 -11
  34. package/dist/assets/{NcFormBoxButton-DZ9GqF8V.css → NcFormBoxButton.css} +2 -2
  35. package/dist/assets/{NcFormBoxItem-syU6X_5H.css → NcFormBoxItem.css} +19 -15
  36. package/dist/assets/{NcFormBoxSwitch-D-GBFFaK.css → NcFormBoxSwitch.css} +2 -2
  37. package/dist/assets/{NcFormGroup-C9rXaPCl.css → NcFormGroup.css} +7 -7
  38. package/dist/assets/{NcGuestContent-j8ai4O1K.css → NcGuestContent.css} +3 -3
  39. package/dist/assets/{NcHeaderMenu-Hy0UKyUu.css → NcHeaderMenu.css} +22 -24
  40. package/dist/assets/{NcHotkey-0gFtnVYv.css → NcHotkey.css} +8 -8
  41. package/dist/assets/{NcHotkeyList-DqyUQBw6.css → NcHotkeyList.css} +2 -2
  42. package/dist/assets/{NcIconToggleSwitch-BrjPjGQL.css → NcIconToggleSwitch.css} +4 -4
  43. package/dist/assets/{NcInputConfirmCancel-BEmwC87z.css → NcInputConfirmCancel.css} +8 -8
  44. package/dist/assets/{NcInputField-DpyFJ1xw.css → NcInputField.css} +43 -43
  45. package/dist/assets/{NcKbd-B2M-oGN9.css → NcKbd.css} +3 -3
  46. package/dist/assets/{NcListItem-1uR7AJIf.css → NcListItem.css} +58 -58
  47. package/dist/assets/{NcMentionBubble-ptHUq68a.css → NcMentionBubble.css} +9 -9
  48. package/dist/assets/NcPopover.css +108 -0
  49. package/dist/assets/NcProfileHoverCard.css +340 -0
  50. package/dist/assets/{NcProgressBar-B6wveIA1.css → NcProgressBar.css} +14 -14
  51. package/dist/assets/{NcRadioGroup-CqQ5ahHP.css → NcRadioGroup.css} +2 -2
  52. package/dist/assets/{NcRadioGroupButton-B1d2yRTk.css → NcRadioGroupButton.css} +19 -14
  53. package/dist/assets/NcReferenceWidget.css +150 -0
  54. package/dist/assets/{NcRelatedResourcesPanel-CiG_Ixb6.css → NcRelatedResourcesPanel.css} +24 -24
  55. package/dist/assets/{NcRichContenteditable-BggdwT5n.css → NcRichContenteditable.css} +37 -37
  56. package/dist/assets/{NcRichText-BTu-LT3p.css → NcRichText.css} +93 -93
  57. package/dist/assets/NcSelect.css +372 -0
  58. package/dist/assets/NcSelectUsers.css +12 -0
  59. package/dist/assets/{autolink-DH5K5u8D.css → autolink.css} +3 -3
  60. package/dist/assets/{referencePickerModal-Dod7nzta.css → referencePickerModal.css} +37 -151
  61. package/dist/chunks/{ArrowRight-B1ncAhus.mjs → ArrowRight.mjs} +2 -2
  62. package/dist/chunks/ArrowRight.mjs.map +1 -0
  63. package/dist/chunks/{ChevronDown-C6gc637b.mjs → ChevronDown.mjs} +2 -2
  64. package/dist/chunks/ChevronDown.mjs.map +1 -0
  65. package/dist/chunks/{ChevronUp-ChH8oB7p.mjs → ChevronUp.mjs} +2 -2
  66. package/dist/chunks/ChevronUp.mjs.map +1 -0
  67. package/dist/chunks/{Close-CuhcJnX2.mjs → Close.mjs} +2 -2
  68. package/dist/chunks/Close.mjs.map +1 -0
  69. package/dist/chunks/{NcActionButton-BO5T5ePT.mjs → NcActionButton.mjs} +7 -7
  70. package/dist/chunks/NcActionButton.mjs.map +1 -0
  71. package/dist/chunks/{NcActionButtonGroup-B9LfyE-G.mjs → NcActionButtonGroup.mjs} +6 -6
  72. package/dist/chunks/NcActionButtonGroup.mjs.map +1 -0
  73. package/dist/chunks/{NcActionCaption-f7L9gBlT.mjs → NcActionCaption.mjs} +4 -4
  74. package/dist/chunks/NcActionCaption.mjs.map +1 -0
  75. package/dist/chunks/{NcActionCheckbox-DBqiK-AZ.mjs → NcActionCheckbox.mjs} +8 -8
  76. package/dist/chunks/NcActionCheckbox.mjs.map +1 -0
  77. package/dist/chunks/{NcActionInput-BO0lB4VP.mjs → NcActionInput.mjs} +13 -12
  78. package/dist/chunks/NcActionInput.mjs.map +1 -0
  79. package/dist/chunks/{NcActionLink-BFiaYt9A.mjs → NcActionLink.mjs} +5 -5
  80. package/dist/chunks/NcActionLink.mjs.map +1 -0
  81. package/dist/chunks/{NcActionRadio-BA08CAtA.mjs → NcActionRadio.mjs} +8 -8
  82. package/dist/chunks/NcActionRadio.mjs.map +1 -0
  83. package/dist/chunks/{NcActionRouter-vYFtIOzD.mjs → NcActionRouter.mjs} +5 -5
  84. package/dist/chunks/NcActionRouter.mjs.map +1 -0
  85. package/dist/chunks/{NcActionSeparator-B9pNQaji.mjs → NcActionSeparator.mjs} +3 -3
  86. package/dist/chunks/NcActionSeparator.mjs.map +1 -0
  87. package/dist/chunks/{NcActionText-CQ9qwJ0p.mjs → NcActionText.mjs} +5 -5
  88. package/dist/chunks/NcActionText.mjs.map +1 -0
  89. package/dist/chunks/{NcActionTextEditable-B8y_GEre.mjs → NcActionTextEditable.mjs} +8 -8
  90. package/dist/chunks/NcActionTextEditable.mjs.map +1 -0
  91. package/dist/chunks/{NcActions-DY4GGONi.mjs → NcActions.mjs} +28 -13
  92. package/dist/chunks/NcActions.mjs.map +1 -0
  93. package/dist/chunks/{NcAppContent--92JdjRr.mjs → NcAppContent.mjs} +12 -12
  94. package/dist/chunks/NcAppContent.mjs.map +1 -0
  95. package/dist/chunks/{NcAppContentDetails.vue_vue_type_script_setup_true_lang-BWl5Pw5g.mjs → NcAppContentDetails.vue_vue_type_script_setup_true_lang.mjs} +1 -1
  96. package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  97. package/dist/chunks/{NcAppContentList-Copx3Ver.mjs → NcAppContentList.mjs} +2 -2
  98. package/dist/chunks/NcAppContentList.mjs.map +1 -0
  99. package/dist/chunks/{NcAppNavigation-Bb9-C2eO.mjs → NcAppNavigation.mjs} +20 -18
  100. package/dist/chunks/NcAppNavigation.mjs.map +1 -0
  101. package/dist/chunks/{NcAppNavigationCaption-BptTnvQU.mjs → NcAppNavigationCaption.mjs} +4 -4
  102. package/dist/chunks/NcAppNavigationCaption.mjs.map +1 -0
  103. package/dist/chunks/{NcAppNavigationIconBullet-BmU-dPcY.mjs → NcAppNavigationIconBullet.mjs} +3 -3
  104. package/dist/chunks/NcAppNavigationIconBullet.mjs.map +1 -0
  105. package/dist/chunks/{NcAppNavigationItem-B0-60shw.mjs → NcAppNavigationItem.mjs} +58 -29
  106. package/dist/chunks/NcAppNavigationItem.mjs.map +1 -0
  107. package/dist/chunks/NcAppNavigationList.mjs +147 -0
  108. package/dist/chunks/NcAppNavigationList.mjs.map +1 -0
  109. package/dist/chunks/{NcAppNavigationNew-Dspn3-4i.mjs → NcAppNavigationNew.mjs} +4 -4
  110. package/dist/chunks/NcAppNavigationNew.mjs.map +1 -0
  111. package/dist/chunks/{NcAppNavigationNewItem-Cg8IJ6ZV.mjs → NcAppNavigationNewItem.mjs} +5 -5
  112. package/dist/chunks/NcAppNavigationNewItem.mjs.map +1 -0
  113. package/dist/chunks/{NcAppNavigationSearch-CiOKjV3M.mjs → NcAppNavigationSearch.mjs} +7 -7
  114. package/dist/chunks/NcAppNavigationSearch.mjs.map +1 -0
  115. package/dist/chunks/{NcAppNavigationSettings-1BzAhIDg.mjs → NcAppNavigationSettings.mjs} +16 -16
  116. package/dist/chunks/NcAppNavigationSettings.mjs.map +1 -0
  117. package/dist/chunks/{NcAppNavigationSpacer-CIRC4ZEj.mjs → NcAppNavigationSpacer.mjs} +3 -3
  118. package/dist/chunks/NcAppNavigationSpacer.mjs.map +1 -0
  119. package/dist/chunks/{NcAppSettingsDialog-BgZCuMK0.mjs → NcAppSettingsDialog.mjs} +14 -14
  120. package/dist/chunks/NcAppSettingsDialog.mjs.map +1 -0
  121. package/dist/chunks/{NcAppSettingsSection-BosSmisT.mjs → NcAppSettingsSection.mjs} +5 -5
  122. package/dist/chunks/NcAppSettingsSection.mjs.map +1 -0
  123. package/dist/chunks/{NcAppSettingsShortcutsSection-og6gyYxr.mjs → NcAppSettingsShortcutsSection.mjs} +7 -7
  124. package/dist/chunks/NcAppSettingsShortcutsSection.mjs.map +1 -0
  125. package/dist/chunks/{NcAppSidebar-DX26aRNB.mjs → NcAppSidebar.mjs} +26 -26
  126. package/dist/chunks/NcAppSidebar.mjs.map +1 -0
  127. package/dist/chunks/{NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs → NcAppSidebarHeader.vue_vue_type_script_setup_true_lang.mjs} +1 -1
  128. package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  129. package/dist/chunks/{NcAppSidebarTab-DOSDDbGA.mjs → NcAppSidebarTab.mjs} +3 -3
  130. package/dist/chunks/NcAppSidebarTab.mjs.map +1 -0
  131. package/dist/chunks/{NcAssistantButton-BMuKy6Mh.mjs → NcAssistantButton.mjs} +14 -14
  132. package/dist/chunks/NcAssistantButton.mjs.map +1 -0
  133. package/dist/chunks/{NcAssistantContent-D24YPWRc.mjs → NcAssistantContent.mjs} +6 -6
  134. package/dist/chunks/NcAssistantContent.mjs.map +1 -0
  135. package/dist/chunks/{NcAssistantIcon-DW-HrfQg.mjs → NcAssistantIcon.mjs} +9 -9
  136. package/dist/chunks/NcAssistantIcon.mjs.map +1 -0
  137. package/dist/chunks/{NcAvatar-DX-Nk9Es.mjs → NcAvatar.mjs} +218 -83
  138. package/dist/chunks/NcAvatar.mjs.map +1 -0
  139. package/dist/chunks/{NcBlurHash-BGaeAt4-.mjs → NcBlurHash.mjs} +6 -6
  140. package/dist/chunks/NcBlurHash.mjs.map +1 -0
  141. package/dist/chunks/{NcBreadcrumb-DHvm77Vw.mjs → NcBreadcrumb.mjs} +6 -6
  142. package/dist/chunks/NcBreadcrumb.mjs.map +1 -0
  143. package/dist/chunks/{NcBreadcrumbs-B_uysWv6.mjs → NcBreadcrumbs.mjs} +9 -10
  144. package/dist/chunks/NcBreadcrumbs.mjs.map +1 -0
  145. package/dist/chunks/{NcButton-QbPBynlU.mjs → NcButton.mjs} +6 -6
  146. package/dist/chunks/NcButton.mjs.map +1 -0
  147. package/dist/chunks/{NcCheckboxRadioSwitch-BVTMQSAg.mjs → NcCheckboxRadioSwitch.mjs} +22 -12
  148. package/dist/chunks/NcCheckboxRadioSwitch.mjs.map +1 -0
  149. package/dist/chunks/{NcChip-BCtDxh7v.mjs → NcChip.mjs} +9 -9
  150. package/dist/chunks/NcChip.mjs.map +1 -0
  151. package/dist/chunks/{NcCollectionList-DNfWulkK.mjs → NcCollectionList.mjs} +12 -12
  152. package/dist/chunks/NcCollectionList.mjs.map +1 -0
  153. package/dist/chunks/{NcColorPicker-CGE4Kei4.mjs → NcColorPicker.mjs} +12 -12
  154. package/dist/chunks/NcColorPicker.mjs.map +1 -0
  155. package/dist/chunks/{NcContent-BhMoPROW.mjs → NcContent.mjs} +9 -9
  156. package/dist/chunks/NcContent.mjs.map +1 -0
  157. package/dist/chunks/{NcCounterBubble-CV0YMrXW.mjs → NcCounterBubble.mjs} +3 -3
  158. package/dist/chunks/NcCounterBubble.mjs.map +1 -0
  159. package/dist/chunks/{NcDashboardWidget-DKZ8Mgt0.mjs → NcDashboardWidget.mjs} +8 -8
  160. package/dist/chunks/NcDashboardWidget.mjs.map +1 -0
  161. package/dist/chunks/{NcDashboardWidgetItem-DxA6-V0R.mjs → NcDashboardWidgetItem.mjs} +6 -6
  162. package/dist/chunks/NcDashboardWidgetItem.mjs.map +1 -0
  163. package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs → NcDateTime.vue_vue_type_script_setup_true_lang.mjs} +1 -1
  164. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  165. package/dist/chunks/NcDateTimePicker.mjs +2979 -0
  166. package/dist/chunks/NcDateTimePicker.mjs.map +1 -0
  167. package/dist/chunks/{NcDateTimePickerNative-BeM4WOA4.mjs → NcDateTimePickerNative.mjs} +21 -26
  168. package/dist/chunks/NcDateTimePickerNative.mjs.map +1 -0
  169. package/dist/chunks/{NcDialog-D1u-qo74.mjs → NcDialog.mjs} +6 -6
  170. package/dist/chunks/NcDialog.mjs.map +1 -0
  171. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-Cn-8O9iZ.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang.mjs} +6 -6
  172. package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  173. package/dist/chunks/{NcEllipsisedOption-D6Amb91K.mjs → NcEllipsisedOption.mjs} +5 -5
  174. package/dist/chunks/NcEllipsisedOption.mjs.map +1 -0
  175. package/dist/chunks/{NcEmojiPicker-R2GSAiCW.mjs → NcEmojiPicker.mjs} +12 -12
  176. package/dist/chunks/NcEmojiPicker.mjs.map +1 -0
  177. package/dist/chunks/{NcEmptyContent-CGAPqk4S.mjs → NcEmptyContent.mjs} +4 -4
  178. package/dist/chunks/NcEmptyContent.mjs.map +1 -0
  179. package/dist/chunks/{NcFilePicker-C7Xs8E2Q.mjs → NcFilePicker.mjs} +9 -9
  180. package/dist/chunks/NcFilePicker.mjs.map +1 -0
  181. package/dist/chunks/{NcFormBox-3Ql2JSK8.mjs → NcFormBox.mjs} +9 -9
  182. package/dist/chunks/NcFormBox.mjs.map +1 -0
  183. package/dist/chunks/{NcFormBoxButton-DIKZK9kp.mjs → NcFormBoxButton.mjs} +8 -8
  184. package/dist/chunks/NcFormBoxButton.mjs.map +1 -0
  185. package/dist/chunks/{NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BVCoU7LB.mjs → NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang.mjs} +4 -4
  186. package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  187. package/dist/chunks/{NcFormBoxItem-CV8UrJib.mjs → NcFormBoxItem.mjs} +14 -14
  188. package/dist/chunks/NcFormBoxItem.mjs.map +1 -0
  189. package/dist/chunks/{NcFormBoxSwitch-C0hMaYEj.mjs → NcFormBoxSwitch.mjs} +8 -8
  190. package/dist/chunks/NcFormBoxSwitch.mjs.map +1 -0
  191. package/dist/chunks/{NcFormGroup-W-Wgps0q.mjs → NcFormGroup.mjs} +11 -11
  192. package/dist/chunks/NcFormGroup.mjs.map +1 -0
  193. package/dist/chunks/NcGuestContent.mjs +19 -0
  194. package/dist/chunks/NcGuestContent.mjs.map +1 -0
  195. package/dist/chunks/{NcHeaderButton-m4oAOSTa.mjs → NcHeaderButton.mjs} +5 -5
  196. package/dist/chunks/NcHeaderButton.mjs.map +1 -0
  197. package/dist/chunks/{NcHeaderMenu-DRxcyWNX.mjs → NcHeaderMenu.mjs} +14 -20
  198. package/dist/chunks/NcHeaderMenu.mjs.map +1 -0
  199. package/dist/chunks/{NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs → NcHighlight.vue_vue_type_script_lang.mjs} +1 -1
  200. package/dist/chunks/NcHighlight.vue_vue_type_script_lang.mjs.map +1 -0
  201. package/dist/chunks/{NcHotkey-9HBkzRAt.mjs → NcHotkey.mjs} +8 -8
  202. package/dist/chunks/NcHotkey.mjs.map +1 -0
  203. package/dist/chunks/{NcHotkeyList-BWerT8qH.mjs → NcHotkeyList.mjs} +8 -8
  204. package/dist/chunks/NcHotkeyList.mjs.map +1 -0
  205. package/dist/chunks/{NcIconSvgWrapper-g8ubWhoz.mjs → NcIconSvgWrapper.mjs} +3 -3
  206. package/dist/chunks/NcIconSvgWrapper.mjs.map +1 -0
  207. package/dist/chunks/{NcIconToggleSwitch-CWzIC2ar.mjs → NcIconToggleSwitch.mjs} +6 -6
  208. package/dist/chunks/NcIconToggleSwitch.mjs.map +1 -0
  209. package/dist/chunks/{NcInputConfirmCancel-B6qC3s63.mjs → NcInputConfirmCancel.mjs} +13 -13
  210. package/dist/chunks/NcInputConfirmCancel.mjs.map +1 -0
  211. package/dist/chunks/{NcInputField-B1bGxYHt.mjs → NcInputField.mjs} +9 -9
  212. package/dist/chunks/NcInputField.mjs.map +1 -0
  213. package/dist/chunks/{NcKbd-DCsSL73F.mjs → NcKbd.mjs} +8 -8
  214. package/dist/chunks/NcKbd.mjs.map +1 -0
  215. package/dist/chunks/{NcListItem-DItks2Sq.mjs → NcListItem.mjs} +12 -12
  216. package/dist/chunks/NcListItem.mjs.map +1 -0
  217. package/dist/chunks/{NcListItemIcon-BKbbR_Vf.mjs → NcListItemIcon.mjs} +7 -7
  218. package/dist/chunks/NcListItemIcon.mjs.map +1 -0
  219. package/dist/chunks/{NcLoadingIcon-BOVpFVQz.mjs → NcLoadingIcon.mjs} +3 -3
  220. package/dist/chunks/NcLoadingIcon.mjs.map +1 -0
  221. package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs → NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs} +2 -2
  222. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs.map +1 -0
  223. package/dist/chunks/{NcModal-B-YLND3e.mjs → NcModal.mjs} +12 -12
  224. package/dist/chunks/NcModal.mjs.map +1 -0
  225. package/dist/chunks/{NcNoteCard-mI7qVZ9j.mjs → NcNoteCard.mjs} +6 -6
  226. package/dist/chunks/NcNoteCard.mjs.map +1 -0
  227. package/dist/chunks/{NcPasswordField-Be5_qcfm.mjs → NcPasswordField.mjs} +9 -9
  228. package/dist/chunks/NcPasswordField.mjs.map +1 -0
  229. package/dist/chunks/{NcPopover-CObDh89q.mjs → NcPopover.mjs} +9 -10
  230. package/dist/chunks/NcPopover.mjs.map +1 -0
  231. package/dist/chunks/NcProfileHoverCard.mjs +777 -0
  232. package/dist/chunks/NcProfileHoverCard.mjs.map +1 -0
  233. package/dist/chunks/{NcProgressBar-C-ane-Ni.mjs → NcProgressBar.mjs} +20 -10
  234. package/dist/chunks/NcProgressBar.mjs.map +1 -0
  235. package/dist/chunks/{NcRadioGroup-DYwRkXaY.mjs → NcRadioGroup.mjs} +8 -8
  236. package/dist/chunks/NcRadioGroup.mjs.map +1 -0
  237. package/dist/chunks/{NcRadioGroupButton-WKdAdfUy.mjs → NcRadioGroupButton.mjs} +12 -12
  238. package/dist/chunks/NcRadioGroupButton.mjs.map +1 -0
  239. package/dist/chunks/NcReferenceWidget.mjs +292 -0
  240. package/dist/chunks/NcReferenceWidget.mjs.map +1 -0
  241. package/dist/chunks/{NcRelatedResourcesPanel-Bk9l-BN3.mjs → NcRelatedResourcesPanel.mjs} +35 -19
  242. package/dist/chunks/NcRelatedResourcesPanel.mjs.map +1 -0
  243. package/dist/chunks/{NcRichContenteditable-BwGkxhDF.mjs → NcRichContenteditable.mjs} +50 -39
  244. package/dist/chunks/NcRichContenteditable.mjs.map +1 -0
  245. package/dist/chunks/{NcRichText-Dkk6iX8F.mjs → NcRichText.mjs} +44 -15
  246. package/dist/chunks/NcRichText.mjs.map +1 -0
  247. package/dist/chunks/{NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DbQnMYZm.mjs → NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang.mjs} +1 -1
  248. package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  249. package/dist/chunks/{NcSelect-BOFzoCwK.mjs → NcSelect.mjs} +55 -29
  250. package/dist/chunks/NcSelect.mjs.map +1 -0
  251. package/dist/chunks/{NcSelectTags-D7qWNjXa.mjs → NcSelectTags.mjs} +6 -6
  252. package/dist/chunks/NcSelectTags.mjs.map +1 -0
  253. package/dist/chunks/{NcSelectUsers-0AajBWY6.mjs → NcSelectUsers.mjs} +6 -6
  254. package/dist/chunks/NcSelectUsers.mjs.map +1 -0
  255. package/dist/chunks/{NcSettingsSection-DmfxX2se.mjs → NcSettingsSection.mjs} +5 -5
  256. package/dist/chunks/NcSettingsSection.mjs.map +1 -0
  257. package/dist/chunks/{NcSettingsSelectGroup-TN64yH4k.mjs → NcSettingsSelectGroup.mjs} +7 -7
  258. package/dist/chunks/NcSettingsSelectGroup.mjs.map +1 -0
  259. package/dist/chunks/{NcTextArea-Dxzj4zdb.mjs → NcTextArea.mjs} +8 -8
  260. package/dist/chunks/NcTextArea.mjs.map +1 -0
  261. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs → NcTextField.vue_vue_type_script_setup_true_lang.mjs} +7 -7
  262. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  263. package/dist/chunks/{NcThemeProvider.vue_vue_type_script_setup_true_lang-wie70gn4.mjs → NcThemeProvider.vue_vue_type_script_setup_true_lang.mjs} +2 -2
  264. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  265. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang.mjs} +5 -5
  266. package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  267. package/dist/chunks/{NcUserBubble-BXBgGflZ.mjs → NcUserBubble.mjs} +5 -5
  268. package/dist/chunks/NcUserBubble.mjs.map +1 -0
  269. package/dist/chunks/{NcUserStatusIcon-DsviB2Cr.mjs → NcUserStatusIcon.mjs} +7 -7
  270. package/dist/chunks/NcUserStatusIcon.mjs.map +1 -0
  271. package/dist/chunks/{NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs → NcVNodes.vue_vue_type_script_lang.mjs} +1 -1
  272. package/dist/chunks/NcVNodes.vue_vue_type_script_lang.mjs.map +1 -0
  273. package/dist/chunks/{_l10n-CG4CuN3H.mjs → _l10n.mjs} +106 -104
  274. package/dist/chunks/_l10n.mjs.map +1 -0
  275. package/dist/chunks/{_plugin-vue_export-helper-1tPrXgE0.mjs → _plugin-vue_export-helper.mjs} +1 -1
  276. package/dist/chunks/_plugin-vue_export-helper.mjs.map +1 -0
  277. package/dist/chunks/{actionGlobal-BZFdtdJL.mjs → actionGlobal.mjs} +1 -1
  278. package/dist/chunks/actionGlobal.mjs.map +1 -0
  279. package/dist/chunks/{actionText-BXR0sWNu.mjs → actionText.mjs} +3 -3
  280. package/dist/chunks/actionText.mjs.map +1 -0
  281. package/dist/chunks/{appName-DyNMVZpX.mjs → appName.mjs} +2 -2
  282. package/dist/chunks/appName.mjs.map +1 -0
  283. package/dist/chunks/{autolink-B2azbG18.mjs → autolink.mjs} +7 -7
  284. package/dist/chunks/autolink.mjs.map +1 -0
  285. package/dist/chunks/{colors-BDeMBgfq.mjs → colors.mjs} +3 -3
  286. package/dist/chunks/colors.mjs.map +1 -0
  287. package/dist/chunks/{constants-wIEKSp2G.mjs → constants.mjs} +1 -1
  288. package/dist/chunks/constants.mjs.map +1 -0
  289. package/dist/chunks/{constants-Ciwvl5xb.mjs → constants2.mjs} +1 -1
  290. package/dist/chunks/constants2.mjs.map +1 -0
  291. package/dist/chunks/{createElementId-DhjFt1I9.mjs → createElementId.mjs} +1 -1
  292. package/dist/chunks/createElementId.mjs.map +1 -0
  293. package/dist/chunks/{customPickerElements-Cu7bLbap.mjs → customPickerElements.mjs} +3 -60
  294. package/dist/chunks/customPickerElements.mjs.map +1 -0
  295. package/dist/chunks/{emoji-C8k9NUlo.mjs → emoji.mjs} +1 -1
  296. package/dist/chunks/emoji.mjs.map +1 -0
  297. package/dist/chunks/{focusTrap-HJQ4pqHV.mjs → focusTrap.mjs} +1 -1
  298. package/dist/chunks/focusTrap.mjs.map +1 -0
  299. package/dist/chunks/highlight.mjs +5 -0
  300. package/dist/chunks/highlight.mjs.map +1 -0
  301. package/dist/chunks/{legacy-BoqDmOCa.mjs → legacy.mjs} +4 -2
  302. package/dist/chunks/legacy.mjs.map +1 -0
  303. package/dist/chunks/{logger-D3RVzcfQ.mjs → logger.mjs} +1 -1
  304. package/dist/chunks/logger.mjs.map +1 -0
  305. package/dist/chunks/{mdi-CpchYUUV.mjs → mdi.mjs} +12 -14
  306. package/dist/chunks/mdi.mjs.map +1 -0
  307. package/dist/chunks/{platform-CC2ecGvV.mjs → platform.mjs} +1 -1
  308. package/dist/chunks/platform.mjs.map +1 -0
  309. package/dist/chunks/{referencePickerModal-CD1BjLPe.mjs → referencePickerModal.mjs} +140 -258
  310. package/dist/chunks/referencePickerModal.mjs.map +1 -0
  311. package/dist/chunks/{rtl-v0UOPAM7.mjs → rtl.mjs} +1 -1
  312. package/dist/chunks/rtl.mjs.map +1 -0
  313. package/dist/chunks/{useAppSettingsDialog-C73Wx6iQ.mjs → useAppSettingsDialog.mjs} +1 -1
  314. package/dist/chunks/useAppSettingsDialog.mjs.map +1 -0
  315. package/dist/chunks/{useCopy-PckLYUAU.mjs → useCopy.mjs} +4 -4
  316. package/dist/chunks/useCopy.mjs.map +1 -0
  317. package/dist/chunks/{useNcActions-BzPO2c4h.mjs → useNcActions.mjs} +1 -1
  318. package/dist/chunks/useNcActions.mjs.map +1 -0
  319. package/dist/chunks/{useNcFormBox-Djlh582y.mjs → useNcFormBox.mjs} +1 -1
  320. package/dist/chunks/useNcFormBox.mjs.map +1 -0
  321. package/dist/chunks/{useNcRadioGroup-D6llQmAl.mjs → useNcRadioGroup.mjs} +1 -1
  322. package/dist/chunks/useNcRadioGroup.mjs.map +1 -0
  323. package/dist/chunks/{useTrapStackControl-B6cEicto.mjs → useTrapStackControl.mjs} +2 -2
  324. package/dist/chunks/useTrapStackControl.mjs.map +1 -0
  325. package/dist/chunks/widgets.mjs +66 -0
  326. package/dist/chunks/widgets.mjs.map +1 -0
  327. package/dist/components/NcActionButton/index.mjs +1 -1
  328. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  329. package/dist/components/NcActionCaption/index.mjs +1 -1
  330. package/dist/components/NcActionCheckbox/index.mjs +1 -1
  331. package/dist/components/NcActionInput/NcActionInput.vue.d.ts +270 -99
  332. package/dist/components/NcActionInput/index.mjs +1 -1
  333. package/dist/components/NcActionLink/index.mjs +1 -1
  334. package/dist/components/NcActionRadio/index.mjs +1 -1
  335. package/dist/components/NcActionRouter/index.mjs +1 -1
  336. package/dist/components/NcActionSeparator/index.mjs +1 -1
  337. package/dist/components/NcActionText/index.mjs +1 -1
  338. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  339. package/dist/components/NcActions/NcActions.vue.d.ts +17 -2
  340. package/dist/components/NcActions/index.mjs +1 -1
  341. package/dist/components/NcAppContent/index.mjs +1 -1
  342. package/dist/components/NcAppContentDetails/index.mjs +1 -1
  343. package/dist/components/NcAppContentList/index.mjs +1 -1
  344. package/dist/components/NcAppNavigation/index.mjs +1 -1
  345. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +11 -2
  346. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  347. package/dist/components/NcAppNavigationIconBullet/index.mjs +1 -1
  348. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +20 -7
  349. package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +1 -1
  350. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  351. package/dist/components/NcAppNavigationList/NcAppNavigationList.vue.d.ts +57 -1
  352. package/dist/components/NcAppNavigationList/highlight.d.ts +12 -0
  353. package/dist/components/NcAppNavigationList/index.mjs +1 -1
  354. package/dist/components/NcAppNavigationNew/index.mjs +1 -1
  355. package/dist/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +1 -1
  356. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  357. package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +16 -16
  358. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  359. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  360. package/dist/components/NcAppNavigationSpacer/index.mjs +1 -1
  361. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  362. package/dist/components/NcAppSettingsSection/index.mjs +1 -1
  363. package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
  364. package/dist/components/NcAppSettingsShortcutsSection/index.mjs +1 -1
  365. package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +12 -3
  366. package/dist/components/NcAppSidebar/index.mjs +1 -1
  367. package/dist/components/NcAppSidebarHeader/index.mjs +1 -1
  368. package/dist/components/NcAppSidebarTab/index.mjs +1 -1
  369. package/dist/components/NcAssistantButton/index.mjs +1 -1
  370. package/dist/components/NcAssistantContent/index.mjs +1 -1
  371. package/dist/components/NcAssistantIcon/index.mjs +1 -1
  372. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +62 -138
  373. package/dist/components/NcAvatar/index.mjs +1 -1
  374. package/dist/components/NcBlurHash/index.mjs +1 -1
  375. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +12 -3
  376. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  377. package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +23 -5
  378. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  379. package/dist/components/NcButton/index.mjs +1 -1
  380. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  381. package/dist/components/NcChip/index.mjs +1 -1
  382. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +273 -278
  383. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +55 -139
  384. package/dist/components/NcCollectionList/index.mjs +1 -1
  385. package/dist/components/NcCollectionList/useCollections.d.ts +5 -1
  386. package/dist/components/NcColorPicker/index.mjs +1 -1
  387. package/dist/components/NcContent/index.mjs +1 -1
  388. package/dist/components/NcCounterBubble/index.mjs +1 -1
  389. package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +99 -276
  390. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  391. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +55 -139
  392. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  393. package/dist/components/NcDateTime/index.mjs +1 -1
  394. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +83 -79
  395. package/dist/components/NcDateTimePicker/dateFnsLocaleLoader.d.ts +3 -0
  396. package/dist/components/NcDateTimePicker/format.d.ts +35 -0
  397. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  398. package/dist/components/NcDateTimePicker/useDateFnsLocale.d.ts +16 -0
  399. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  400. package/dist/components/NcDialog/NcDialog.vue.d.ts +1 -1
  401. package/dist/components/NcDialog/index.mjs +1 -1
  402. package/dist/components/NcDialogButton/index.mjs +1 -1
  403. package/dist/components/NcEllipsisedOption/index.mjs +1 -1
  404. package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +14 -11
  405. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  406. package/dist/components/NcEmptyContent/index.mjs +1 -1
  407. package/dist/components/NcFilePicker/index.mjs +1 -1
  408. package/dist/components/NcFormBox/index.mjs +1 -1
  409. package/dist/components/NcFormBoxButton/index.mjs +1 -1
  410. package/dist/components/NcFormBoxCopyButton/index.mjs +1 -1
  411. package/dist/components/NcFormBoxSwitch/index.mjs +1 -1
  412. package/dist/components/NcFormGroup/index.mjs +1 -1
  413. package/dist/components/NcGuestContent/index.mjs +1 -1
  414. package/dist/components/NcHeaderButton/index.mjs +1 -1
  415. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  416. package/dist/components/NcHighlight/index.mjs +1 -1
  417. package/dist/components/NcHotkey/index.mjs +1 -1
  418. package/dist/components/NcHotkeyList/index.mjs +1 -1
  419. package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
  420. package/dist/components/NcInputField/NcInputField.vue.d.ts +8 -5
  421. package/dist/components/NcInputField/index.mjs +1 -1
  422. package/dist/components/NcKbd/index.mjs +1 -1
  423. package/dist/components/NcListItem/NcListItem.vue.d.ts +13 -4
  424. package/dist/components/NcListItem/index.mjs +1 -1
  425. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +46 -139
  426. package/dist/components/NcListItemIcon/index.mjs +1 -1
  427. package/dist/components/NcLoadingIcon/index.mjs +1 -1
  428. package/dist/components/NcModal/index.mjs +1 -1
  429. package/dist/components/NcNoteCard/index.mjs +1 -1
  430. package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +16 -16
  431. package/dist/components/NcPasswordField/index.mjs +1 -1
  432. package/dist/components/NcPopover/index.mjs +1 -1
  433. package/dist/components/NcProfileHoverCard/NcProfileHoverCard.vue.d.ts +80 -0
  434. package/dist/components/NcProfileHoverCard/index.d.ts +5 -0
  435. package/dist/components/NcProfileHoverCard/index.mjs +5 -0
  436. package/dist/components/NcProfileHoverCard/index.mjs.map +1 -0
  437. package/dist/components/NcProfileHoverCard/profileCache.d.ts +31 -0
  438. package/dist/components/NcProgressBar/NcProgressBar.vue.d.ts +27 -0
  439. package/dist/components/NcProgressBar/index.mjs +1 -1
  440. package/dist/components/NcRadioGroup/index.mjs +1 -1
  441. package/dist/components/NcRadioGroupButton/index.mjs +1 -1
  442. package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +9 -3
  443. package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +18 -0
  444. package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +12 -0
  445. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  446. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +12 -0
  447. package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +6 -0
  448. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +2 -2
  449. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  450. package/dist/components/NcRichText/NcReferenceList.vue.d.ts +37 -0
  451. package/dist/components/NcRichText/NcReferencePicker/NcCustomPickerElement.vue.d.ts +3 -1
  452. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +171 -2
  453. package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +17 -12
  454. package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +365 -18
  455. package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +368 -19
  456. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +177 -2
  457. package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +1 -0
  458. package/dist/components/NcRichText/NcRichText.vue.d.ts +25 -0
  459. package/dist/components/NcRichText/autolink.d.ts +7 -5
  460. package/dist/components/NcRichText/index.d.ts +2 -2
  461. package/dist/components/NcRichText/index.mjs +15 -12
  462. package/dist/components/NcRichText/index.mjs.map +1 -1
  463. package/dist/components/NcSavingIndicatorIcon/index.mjs +1 -1
  464. package/dist/components/NcSelect/NcSelect.vue.d.ts +169 -1
  465. package/dist/components/NcSelect/index.mjs +1 -1
  466. package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +171 -3
  467. package/dist/components/NcSelectTags/index.mjs +1 -1
  468. package/dist/components/NcSelectUsers/index.mjs +1 -1
  469. package/dist/components/NcSettingsSection/index.mjs +1 -1
  470. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +169 -1
  471. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  472. package/dist/components/NcTextArea/index.mjs +1 -1
  473. package/dist/components/NcTextField/NcTextField.vue.d.ts +23 -17
  474. package/dist/components/NcTextField/index.mjs +1 -1
  475. package/dist/components/NcThemeProvider/index.mjs +1 -1
  476. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  477. package/dist/components/NcUserBubble/index.mjs +1 -1
  478. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  479. package/dist/components/NcVNodes/index.mjs +1 -1
  480. package/dist/components/index.d.ts +1 -0
  481. package/dist/composables/useFormatDateTime/index.mjs +11 -5
  482. package/dist/composables/useFormatDateTime/index.mjs.map +1 -1
  483. package/dist/composables/useHotKey/index.mjs +1 -1
  484. package/dist/composables/useIsDarkTheme/index.mjs +1 -1
  485. package/dist/functions/contactsMenu/index.mjs +1 -1
  486. package/dist/functions/emoji/index.mjs +1 -1
  487. package/dist/functions/reference/index.d.ts +7 -4
  488. package/dist/functions/reference/index.mjs +14 -12
  489. package/dist/functions/reference/index.mjs.map +1 -1
  490. package/dist/functions/reference/referencePickerModal.d.ts +16 -1
  491. package/dist/functions/reference/widgets.d.ts +11 -1
  492. package/dist/functions/registerReference/index.mjs +10 -9
  493. package/dist/functions/registerReference/index.mjs.map +1 -1
  494. package/dist/functions/usernameToColor/index.mjs +1 -1
  495. package/dist/index.mjs +121 -115
  496. package/dist/index.mjs.map +1 -1
  497. package/dist/mixins/userStatus.d.ts +5 -4
  498. package/dist/utils/legacy.d.ts +2 -0
  499. package/package.json +24 -23
  500. package/dist/assets/NcAppNavigationList--36j6Acm.css +0 -28
  501. package/dist/assets/NcDateTimePickerNative-BP6eg8aU.css +0 -60
  502. package/dist/assets/NcPopover-C7YEE_vn.css +0 -123
  503. package/dist/assets/NcSelect-CvDEQAjD.css +0 -245
  504. package/dist/assets/NcSelectUsers-YF5729PJ.css +0 -4
  505. package/dist/chunks/ArrowRight-B1ncAhus.mjs.map +0 -1
  506. package/dist/chunks/ChevronDown-C6gc637b.mjs.map +0 -1
  507. package/dist/chunks/ChevronUp-ChH8oB7p.mjs.map +0 -1
  508. package/dist/chunks/Close-CuhcJnX2.mjs.map +0 -1
  509. package/dist/chunks/NcActionButton-BO5T5ePT.mjs.map +0 -1
  510. package/dist/chunks/NcActionButtonGroup-B9LfyE-G.mjs.map +0 -1
  511. package/dist/chunks/NcActionCaption-f7L9gBlT.mjs.map +0 -1
  512. package/dist/chunks/NcActionCheckbox-DBqiK-AZ.mjs.map +0 -1
  513. package/dist/chunks/NcActionInput-BO0lB4VP.mjs.map +0 -1
  514. package/dist/chunks/NcActionLink-BFiaYt9A.mjs.map +0 -1
  515. package/dist/chunks/NcActionRadio-BA08CAtA.mjs.map +0 -1
  516. package/dist/chunks/NcActionRouter-vYFtIOzD.mjs.map +0 -1
  517. package/dist/chunks/NcActionSeparator-B9pNQaji.mjs.map +0 -1
  518. package/dist/chunks/NcActionText-CQ9qwJ0p.mjs.map +0 -1
  519. package/dist/chunks/NcActionTextEditable-B8y_GEre.mjs.map +0 -1
  520. package/dist/chunks/NcActions-DY4GGONi.mjs.map +0 -1
  521. package/dist/chunks/NcAppContent--92JdjRr.mjs.map +0 -1
  522. package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-BWl5Pw5g.mjs.map +0 -1
  523. package/dist/chunks/NcAppContentList-Copx3Ver.mjs.map +0 -1
  524. package/dist/chunks/NcAppNavigation-Bb9-C2eO.mjs.map +0 -1
  525. package/dist/chunks/NcAppNavigationCaption-BptTnvQU.mjs.map +0 -1
  526. package/dist/chunks/NcAppNavigationIconBullet-BmU-dPcY.mjs.map +0 -1
  527. package/dist/chunks/NcAppNavigationItem-B0-60shw.mjs.map +0 -1
  528. package/dist/chunks/NcAppNavigationList-CGSWabRB.mjs +0 -17
  529. package/dist/chunks/NcAppNavigationList-CGSWabRB.mjs.map +0 -1
  530. package/dist/chunks/NcAppNavigationNew-Dspn3-4i.mjs.map +0 -1
  531. package/dist/chunks/NcAppNavigationNewItem-Cg8IJ6ZV.mjs.map +0 -1
  532. package/dist/chunks/NcAppNavigationSearch-CiOKjV3M.mjs.map +0 -1
  533. package/dist/chunks/NcAppNavigationSettings-1BzAhIDg.mjs.map +0 -1
  534. package/dist/chunks/NcAppNavigationSpacer-CIRC4ZEj.mjs.map +0 -1
  535. package/dist/chunks/NcAppSettingsDialog-BgZCuMK0.mjs.map +0 -1
  536. package/dist/chunks/NcAppSettingsSection-BosSmisT.mjs.map +0 -1
  537. package/dist/chunks/NcAppSettingsShortcutsSection-og6gyYxr.mjs.map +0 -1
  538. package/dist/chunks/NcAppSidebar-DX26aRNB.mjs.map +0 -1
  539. package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map +0 -1
  540. package/dist/chunks/NcAppSidebarTab-DOSDDbGA.mjs.map +0 -1
  541. package/dist/chunks/NcAssistantButton-BMuKy6Mh.mjs.map +0 -1
  542. package/dist/chunks/NcAssistantContent-D24YPWRc.mjs.map +0 -1
  543. package/dist/chunks/NcAssistantIcon-DW-HrfQg.mjs.map +0 -1
  544. package/dist/chunks/NcAvatar-DX-Nk9Es.mjs.map +0 -1
  545. package/dist/chunks/NcBlurHash-BGaeAt4-.mjs.map +0 -1
  546. package/dist/chunks/NcBreadcrumb-DHvm77Vw.mjs.map +0 -1
  547. package/dist/chunks/NcBreadcrumbs-B_uysWv6.mjs.map +0 -1
  548. package/dist/chunks/NcButton-QbPBynlU.mjs.map +0 -1
  549. package/dist/chunks/NcCheckboxRadioSwitch-BVTMQSAg.mjs.map +0 -1
  550. package/dist/chunks/NcChip-BCtDxh7v.mjs.map +0 -1
  551. package/dist/chunks/NcCollectionList-DNfWulkK.mjs.map +0 -1
  552. package/dist/chunks/NcColorPicker-CGE4Kei4.mjs.map +0 -1
  553. package/dist/chunks/NcContent-BhMoPROW.mjs.map +0 -1
  554. package/dist/chunks/NcCounterBubble-CV0YMrXW.mjs.map +0 -1
  555. package/dist/chunks/NcDashboardWidget-DKZ8Mgt0.mjs.map +0 -1
  556. package/dist/chunks/NcDashboardWidgetItem-DxA6-V0R.mjs.map +0 -1
  557. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs.map +0 -1
  558. package/dist/chunks/NcDateTimePicker-CK4rhfEB.mjs +0 -409
  559. package/dist/chunks/NcDateTimePicker-CK4rhfEB.mjs.map +0 -1
  560. package/dist/chunks/NcDateTimePickerNative-BeM4WOA4.mjs.map +0 -1
  561. package/dist/chunks/NcDialog-D1u-qo74.mjs.map +0 -1
  562. package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-Cn-8O9iZ.mjs.map +0 -1
  563. package/dist/chunks/NcEllipsisedOption-D6Amb91K.mjs.map +0 -1
  564. package/dist/chunks/NcEmojiPicker-R2GSAiCW.mjs.map +0 -1
  565. package/dist/chunks/NcEmptyContent-CGAPqk4S.mjs.map +0 -1
  566. package/dist/chunks/NcFilePicker-C7Xs8E2Q.mjs.map +0 -1
  567. package/dist/chunks/NcFormBox-3Ql2JSK8.mjs.map +0 -1
  568. package/dist/chunks/NcFormBoxButton-DIKZK9kp.mjs.map +0 -1
  569. package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BVCoU7LB.mjs.map +0 -1
  570. package/dist/chunks/NcFormBoxItem-CV8UrJib.mjs.map +0 -1
  571. package/dist/chunks/NcFormBoxSwitch-C0hMaYEj.mjs.map +0 -1
  572. package/dist/chunks/NcFormGroup-W-Wgps0q.mjs.map +0 -1
  573. package/dist/chunks/NcGuestContent-_z22nZMF.mjs +0 -25
  574. package/dist/chunks/NcGuestContent-_z22nZMF.mjs.map +0 -1
  575. package/dist/chunks/NcHeaderButton-m4oAOSTa.mjs.map +0 -1
  576. package/dist/chunks/NcHeaderMenu-DRxcyWNX.mjs.map +0 -1
  577. package/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map +0 -1
  578. package/dist/chunks/NcHotkey-9HBkzRAt.mjs.map +0 -1
  579. package/dist/chunks/NcHotkeyList-BWerT8qH.mjs.map +0 -1
  580. package/dist/chunks/NcIconSvgWrapper-g8ubWhoz.mjs.map +0 -1
  581. package/dist/chunks/NcIconToggleSwitch-CWzIC2ar.mjs.map +0 -1
  582. package/dist/chunks/NcInputConfirmCancel-B6qC3s63.mjs.map +0 -1
  583. package/dist/chunks/NcInputField-B1bGxYHt.mjs.map +0 -1
  584. package/dist/chunks/NcKbd-DCsSL73F.mjs.map +0 -1
  585. package/dist/chunks/NcListItem-DItks2Sq.mjs.map +0 -1
  586. package/dist/chunks/NcListItemIcon-BKbbR_Vf.mjs.map +0 -1
  587. package/dist/chunks/NcLoadingIcon-BOVpFVQz.mjs.map +0 -1
  588. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs.map +0 -1
  589. package/dist/chunks/NcModal-B-YLND3e.mjs.map +0 -1
  590. package/dist/chunks/NcNoteCard-mI7qVZ9j.mjs.map +0 -1
  591. package/dist/chunks/NcPasswordField-Be5_qcfm.mjs.map +0 -1
  592. package/dist/chunks/NcPopover-CObDh89q.mjs.map +0 -1
  593. package/dist/chunks/NcProgressBar-C-ane-Ni.mjs.map +0 -1
  594. package/dist/chunks/NcRadioGroup-DYwRkXaY.mjs.map +0 -1
  595. package/dist/chunks/NcRadioGroupButton-WKdAdfUy.mjs.map +0 -1
  596. package/dist/chunks/NcRelatedResourcesPanel-Bk9l-BN3.mjs.map +0 -1
  597. package/dist/chunks/NcRichContenteditable-BwGkxhDF.mjs.map +0 -1
  598. package/dist/chunks/NcRichText-Dkk6iX8F.mjs.map +0 -1
  599. package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DbQnMYZm.mjs.map +0 -1
  600. package/dist/chunks/NcSelect-BOFzoCwK.mjs.map +0 -1
  601. package/dist/chunks/NcSelectTags-D7qWNjXa.mjs.map +0 -1
  602. package/dist/chunks/NcSelectUsers-0AajBWY6.mjs.map +0 -1
  603. package/dist/chunks/NcSettingsSection-DmfxX2se.mjs.map +0 -1
  604. package/dist/chunks/NcSettingsSelectGroup-TN64yH4k.mjs.map +0 -1
  605. package/dist/chunks/NcTextArea-Dxzj4zdb.mjs.map +0 -1
  606. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs.map +0 -1
  607. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-wie70gn4.mjs.map +0 -1
  608. package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs.map +0 -1
  609. package/dist/chunks/NcUserBubble-BXBgGflZ.mjs.map +0 -1
  610. package/dist/chunks/NcUserStatusIcon-DsviB2Cr.mjs.map +0 -1
  611. package/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map +0 -1
  612. package/dist/chunks/_l10n-CG4CuN3H.mjs.map +0 -1
  613. package/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs.map +0 -1
  614. package/dist/chunks/actionGlobal-BZFdtdJL.mjs.map +0 -1
  615. package/dist/chunks/actionText-BXR0sWNu.mjs.map +0 -1
  616. package/dist/chunks/appName-DyNMVZpX.mjs.map +0 -1
  617. package/dist/chunks/autolink-B2azbG18.mjs.map +0 -1
  618. package/dist/chunks/colors-BDeMBgfq.mjs.map +0 -1
  619. package/dist/chunks/constants-Ciwvl5xb.mjs.map +0 -1
  620. package/dist/chunks/constants-wIEKSp2G.mjs.map +0 -1
  621. package/dist/chunks/createElementId-DhjFt1I9.mjs.map +0 -1
  622. package/dist/chunks/customPickerElements-Cu7bLbap.mjs.map +0 -1
  623. package/dist/chunks/emoji-C8k9NUlo.mjs.map +0 -1
  624. package/dist/chunks/focusTrap-HJQ4pqHV.mjs.map +0 -1
  625. package/dist/chunks/legacy-BoqDmOCa.mjs.map +0 -1
  626. package/dist/chunks/logger-D3RVzcfQ.mjs.map +0 -1
  627. package/dist/chunks/mdi-CpchYUUV.mjs.map +0 -1
  628. package/dist/chunks/platform-CC2ecGvV.mjs.map +0 -1
  629. package/dist/chunks/referencePickerModal-CD1BjLPe.mjs.map +0 -1
  630. package/dist/chunks/rtl-v0UOPAM7.mjs.map +0 -1
  631. package/dist/chunks/useAppSettingsDialog-C73Wx6iQ.mjs.map +0 -1
  632. package/dist/chunks/useCopy-PckLYUAU.mjs.map +0 -1
  633. package/dist/chunks/useNcActions-BzPO2c4h.mjs.map +0 -1
  634. package/dist/chunks/useNcFormBox-Djlh582y.mjs.map +0 -1
  635. package/dist/chunks/useNcRadioGroup-D6llQmAl.mjs.map +0 -1
  636. package/dist/chunks/useTrapStackControl-B6cEicto.mjs.map +0 -1
  637. /package/dist/assets/{NcActionButtonGroup-Bt8kRk79.css → NcActionButtonGroup.css} +0 -0
  638. /package/dist/assets/{NcActionCaption-DnG2OyWa.css → NcActionCaption.css} +0 -0
  639. /package/dist/assets/{NcActionSeparator-Ct2RnclR.css → NcActionSeparator.css} +0 -0
  640. /package/dist/assets/{NcAppNavigationCaption-ggcWspH2.css → NcAppNavigationCaption.css} +0 -0
  641. /package/dist/assets/{NcAppNavigationIconBullet-DLQJkObX.css → NcAppNavigationIconBullet.css} +0 -0
  642. /package/dist/assets/{NcAppNavigationNew-Bn8zj5lM.css → NcAppNavigationNew.css} +0 -0
  643. /package/dist/assets/{NcAppNavigationSearch-DD7mo6OW.css → NcAppNavigationSearch.css} +0 -0
  644. /package/dist/assets/{NcAppNavigationSpacer-LST5uYYS.css → NcAppNavigationSpacer.css} +0 -0
  645. /package/dist/assets/{NcAppSettingsSection-DIw8GLHR.css → NcAppSettingsSection.css} +0 -0
  646. /package/dist/assets/{NcAppSidebarTab-Xd3HTDbw.css → NcAppSidebarTab.css} +0 -0
  647. /package/dist/assets/{NcBreadcrumb-BxhZKQlW.css → NcBreadcrumb.css} +0 -0
  648. /package/dist/assets/{NcChip-DbSI4mFP.css → NcChip.css} +0 -0
  649. /package/dist/assets/{NcCollectionList-e5JFvzqX.css → NcCollectionList.css} +0 -0
  650. /package/dist/assets/{NcColorPicker-DVYGs8R3.css → NcColorPicker.css} +0 -0
  651. /package/dist/assets/{NcContent-DX4Rs6Pc.css → NcContent.css} +0 -0
  652. /package/dist/assets/{NcCounterBubble-ZnteskDR.css → NcCounterBubble.css} +0 -0
  653. /package/dist/assets/{NcDashboardWidget-nZuIL1UN.css → NcDashboardWidget.css} +0 -0
  654. /package/dist/assets/{NcDashboardWidgetItem-DpVmEBwQ.css → NcDashboardWidgetItem.css} +0 -0
  655. /package/dist/assets/{NcDialog-BSV74Bru.css → NcDialog.css} +0 -0
  656. /package/dist/assets/{NcEmojiPicker-vNKR9S87.css → NcEmojiPicker.css} +0 -0
  657. /package/dist/assets/{NcEmptyContent-DJMDuGVz.css → NcEmptyContent.css} +0 -0
  658. /package/dist/assets/{NcHeaderButton-CVOQgRjm.css → NcHeaderButton.css} +0 -0
  659. /package/dist/assets/{NcIconSvgWrapper-N3OwSN9O.css → NcIconSvgWrapper.css} +0 -0
  660. /package/dist/assets/{NcListItemIcon-DJRcmlo1.css → NcListItemIcon.css} +0 -0
  661. /package/dist/assets/{NcLoadingIcon-CWUlo4XY.css → NcLoadingIcon.css} +0 -0
  662. /package/dist/assets/{NcModal-D81luiuU.css → NcModal.css} +0 -0
  663. /package/dist/assets/{NcNoteCard-DfescGKl.css → NcNoteCard.css} +0 -0
  664. /package/dist/assets/{NcPasswordField-BN4HFgU5.css → NcPasswordField.css} +0 -0
  665. /package/dist/assets/{NcSettingsSection-f5rBJsKJ.css → NcSettingsSection.css} +0 -0
  666. /package/dist/assets/{NcSettingsSelectGroup-D_fSrafm.css → NcSettingsSelectGroup.css} +0 -0
  667. /package/dist/assets/{NcTextArea-BxGe3Lqn.css → NcTextArea.css} +0 -0
  668. /package/dist/assets/{NcUserBubble-DFUmBxeb.css → NcUserBubble.css} +0 -0
  669. /package/dist/assets/{NcUserStatusIcon-B3aHoBAd.css → NcUserStatusIcon.css} +0 -0
@@ -1,18 +1,20 @@
1
- import '../assets/NcAppNavigationItem-BsuZoJAq.css';
1
+ import '../assets/NcAppNavigationItem.css';
2
+ import { emit } from "@nextcloud/event-bus";
2
3
  import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, withKeys, withModifiers, renderSlot, createVNode, createTextVNode } from "vue";
3
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
4
- import { C as ChevronDown } from "./ChevronDown-C6gc637b.mjs";
5
- import { C as ChevronUp } from "./ChevronUp-ChH8oB7p.mjs";
6
- import { r as register, N as t21, a as t, b as t51, O as t23 } from "./_l10n-CG4CuN3H.mjs";
7
- import { i as isLegacy34 } from "./legacy-BoqDmOCa.mjs";
8
- import { N as NcButton } from "./NcButton-QbPBynlU.mjs";
9
- import { N as NcInputConfirmCancel } from "./NcInputConfirmCancel-B6qC3s63.mjs";
4
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
5
+ import { C as ChevronDown } from "./ChevronDown.mjs";
6
+ import { C as ChevronUp } from "./ChevronUp.mjs";
7
+ import { r as register, N as t22, a as t, b as t52, O as t24 } from "./_l10n.mjs";
8
+ import { i as isLegacy34 } from "./legacy.mjs";
9
+ import { N as NcButton } from "./NcButton.mjs";
10
+ import { N as NcInputConfirmCancel } from "./NcInputConfirmCancel.mjs";
10
11
  import { useIsMobile } from "../composables/useIsMobile/index.mjs";
11
- import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
12
- import { N as NcActionButton } from "./NcActionButton-BO5T5ePT.mjs";
13
- import { N as NcActions } from "./NcActions-DY4GGONi.mjs";
14
- import { N as NcLoadingIcon } from "./NcLoadingIcon-BOVpFVQz.mjs";
15
- import { _ as _sfc_main$4 } from "./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs";
12
+ import { c as createElementId } from "./createElementId.mjs";
13
+ import { N as NcActionButton } from "./NcActionButton.mjs";
14
+ import { N as NcActions } from "./NcActions.mjs";
15
+ import { A as APP_NAVIGATION_HIGHLIGHT } from "./highlight.mjs";
16
+ import { N as NcLoadingIcon } from "./NcLoadingIcon.mjs";
17
+ import { _ as _sfc_main$4 } from "./NcVNodes.vue_vue_type_script_lang.mjs";
16
18
  const _sfc_main$3 = {
17
19
  name: "PencilIcon",
18
20
  emits: ["click"],
@@ -99,7 +101,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
99
101
  ], 16, _hoisted_1$1);
100
102
  }
101
103
  const Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
102
- register(t21);
104
+ register(t22);
103
105
  const _sfc_main$1 = {
104
106
  name: "NcAppNavigationIconCollapsible",
105
107
  components: {
@@ -107,9 +109,6 @@ const _sfc_main$1 = {
107
109
  ChevronDown,
108
110
  ChevronUp
109
111
  },
110
- setup() {
111
- return { isLegacy34 };
112
- },
113
112
  props: {
114
113
  /**
115
114
  * Is the list currently open (or collapsed)
@@ -127,6 +126,9 @@ const _sfc_main$1 = {
127
126
  }
128
127
  },
129
128
  emits: ["click"],
129
+ setup() {
130
+ return { isLegacy34 };
131
+ },
130
132
  computed: {
131
133
  labelButton() {
132
134
  return this.open ? t("Collapse menu") : t("Open menu");
@@ -163,8 +165,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
163
165
  _: 1
164
166
  }, 8, ["class", "aria-label", "variant", "onClick"]);
165
167
  }
166
- const NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-acf5ed2f"]]);
167
- register(t23, t51);
168
+ const NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-cfbd3794"]]);
169
+ register(t24, t52);
168
170
  const _sfc_main = {
169
171
  name: "NcAppNavigationItem",
170
172
  components: {
@@ -177,6 +179,10 @@ const _sfc_main = {
177
179
  Pencil,
178
180
  Undo
179
181
  },
182
+ inject: {
183
+ // Provided by NcAppNavigationList, absent when used outside of one
184
+ highlight: { from: APP_NAVIGATION_HIGHLIGHT, default: null }
185
+ },
180
186
  props: {
181
187
  /**
182
188
  * If you are not using vue-router you can use the property to set this item as the active navigation entry.
@@ -399,7 +405,21 @@ const _sfc_main = {
399
405
  mounted() {
400
406
  this.actionsBoundariesElement = document.querySelector("#content-vue") || void 0;
401
407
  },
408
+ beforeUnmount() {
409
+ this.releaseHighlight();
410
+ },
402
411
  methods: {
412
+ /** Ask the parent list to move its highlight onto this entry */
413
+ requestHighlight() {
414
+ if (this.editingActive) {
415
+ return;
416
+ }
417
+ this.highlight?.show(this.$refs.entry);
418
+ },
419
+ /** Tell the parent list this entry no longer wants the highlight */
420
+ releaseHighlight() {
421
+ this.highlight?.hide(this.$refs.entry);
422
+ },
403
423
  // sync opened menu state with prop
404
424
  onMenuToggle(state) {
405
425
  this.$emit("update:menuOpen", state);
@@ -414,7 +434,7 @@ const _sfc_main = {
414
434
  * Handle link click
415
435
  *
416
436
  * @param {PointerEvent} event - Native click event
417
- * @param {Function} [navigate] - VueRouter link's navigate if any
437
+ * @param {(event: PointerEvent) => void} [navigate] - VueRouter link's navigate if any
418
438
  * @param {string} [routerLinkHref] - VueRouter link's href
419
439
  */
420
440
  onClick(event, navigate, routerLinkHref) {
@@ -425,6 +445,9 @@ const _sfc_main = {
425
445
  if (routerLinkHref) {
426
446
  navigate?.(event);
427
447
  event.preventDefault();
448
+ if (this.isMobile) {
449
+ emit("toggle-navigation", { open: false });
450
+ }
428
451
  }
429
452
  },
430
453
  // Edition methods
@@ -464,15 +487,18 @@ const _sfc_main = {
464
487
  * @param {Event} e the keydown event
465
488
  */
466
489
  handleTab(e) {
467
- if (!this.$refs.actions) {
490
+ if (this.editingActive) {
468
491
  return;
469
492
  }
470
- if (this.focused) {
493
+ const actionsContainer = this.$el?.querySelector(".app-navigation-entry__utils");
494
+ if (!actionsContainer) {
495
+ return;
496
+ }
497
+ const focusableElement = actionsContainer.querySelector("button");
498
+ if (this.focused && focusableElement) {
471
499
  e.preventDefault();
472
- this.$refs.actions.$refs.triggerButton.$el.focus();
500
+ focusableElement.focus();
473
501
  this.focused = false;
474
- } else {
475
- this.$refs.actions.$refs.triggerButton.$el.blur();
476
502
  }
477
503
  },
478
504
  /**
@@ -524,12 +550,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
524
550
  (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? "router-link" : "NcVNodes"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {
525
551
  default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [
526
552
  createElementVNode("div", {
553
+ ref: "entry",
527
554
  class: normalizeClass(["app-navigation-entry", {
528
555
  "app-navigation-entry--editing": $data.editingActive,
529
556
  "app-navigation-entry--deleted": $props.undo,
530
557
  "app-navigation-entry--legacy": $setup.isLegacy34,
531
558
  active: $props.to && isActive || $props.active
532
- }])
559
+ }]),
560
+ onPointerenter: _cache[4] || (_cache[4] = (...args) => $options.requestHighlight && $options.requestHighlight(...args)),
561
+ onFocusin: _cache[5] || (_cache[5] = (...args) => $options.requestHighlight && $options.requestHighlight(...args))
533
562
  }, [
534
563
  !$props.undo ? (openBlock(), createElementBlock("a", {
535
564
  key: 0,
@@ -631,7 +660,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
631
660
  onClick: withModifiers($options.toggleCollapse, ["prevent", "stop"])
632
661
  }, null, 8, ["active", "open", "onClick"])) : createCommentVNode("", true),
633
662
  renderSlot(_ctx.$slots, "extra", {}, void 0, true)
634
- ], 2)
663
+ ], 34)
635
664
  ]),
636
665
  _: 3
637
666
  }, 16)),
@@ -640,8 +669,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
640
669
  ])) : createCommentVNode("", true)
641
670
  ], 10, _hoisted_1);
642
671
  }
643
- const NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e4d562ae"]]);
672
+ const NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-01bef41b"]]);
644
673
  export {
645
674
  NcAppNavigationItem as N
646
675
  };
647
- //# sourceMappingURL=NcAppNavigationItem-B0-60shw.mjs.map
676
+ //# sourceMappingURL=NcAppNavigationItem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppNavigationItem.mjs","sources":["../../node_modules/vue-material-design-icons/Pencil.vue","../../node_modules/vue-material-design-icons/Undo.vue","../../src/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue","../../src/components/NcAppNavigationItem/NcAppNavigationItem.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon pencil-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=\"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PencilIcon\",\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 undo-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.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UndoIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<!-- Button to expand or collapse children -->\n\t<NcButton\n\t\tclass=\"icon-collapse\"\n\t\t:class=\"{\n\t\t\t'icon-collapse--active': active,\n\t\t\t'icon-collapse--open': open,\n\t\t}\"\n\t\t:aria-label=\"labelButton\"\n\t\t:variant=\"(active && isLegacy34) ? 'tertiary-on-primary' : 'tertiary'\"\n\t\t@click=\"onClick\">\n\t\t<template #icon>\n\t\t\t<ChevronUp\n\t\t\t\tv-if=\"open\"\n\t\t\t\t:size=\"20\" />\n\t\t\t<ChevronDown\n\t\t\t\tv-else\n\t\t\t\t:size=\"20\" />\n\t\t</template>\n\t</NcButton>\n</template>\n\n<script>\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport ChevronUp from 'vue-material-design-icons/ChevronUp.vue'\nimport { t } from '../../l10n.ts'\nimport { isLegacy34 } from '../../utils/legacy.ts'\nimport NcButton from '../NcButton/index.ts'\n\nexport default {\n\tname: 'NcAppNavigationIconCollapsible',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tChevronDown,\n\t\tChevronUp,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Is the list currently open (or collapsed)\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Is the navigation item currently active.\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['click'],\n\n\tsetup() {\n\t\treturn { isLegacy34 }\n\t},\n\n\tcomputed: {\n\t\tlabelButton() {\n\t\t\treturn this.open ? t('Collapse menu') : t('Open menu')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonClick(e) {\n\t\t\tthis.$emit('click', e)\n\t\t},\n\t},\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.icon-collapse {\n\tposition: relative;\n\tinset-inline-end: 0;\n\n\t// the whole navigation item is hovered thus will have the hover color - to distinguish we need to set a different color here.\n\t&:hover {\n\t\tbackground-color: var(--color-background-dark) !important;\n\t}\n\t&--active:hover {\n\t\tbackground-color: var(--color-primary-element) !important;\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### Usage\n\n#### Simple element\n\n* With an icon:\n\n```vue\n\t<template>\n\t\t<ul>\n\t\t\t<NcAppNavigationItem name=\"My name\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Check :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t</ul>\n\t</template>\n\t<script>\n\timport Check from 'vue-material-design-icons/Check.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tCheck,\n\t\t},\n\t}\n\t</script>\n```\n* With a spinning loader instead of the icon:\n\n```vue\n<ul>\n\t<NcAppNavigationItem name=\"Loading Item\" :loading=\"true\" />\n</ul>\n```\n* With an active state (only needed when not using `vue-router` and the `to` property, otherwise this is set automatically)\n\n```vue\n<ul>\n\t<NcAppNavigationItem name=\"Current page\" :active=\"true\" />\n</ul>\n```\n\n* Using different icons based on the active state (e.g. using vue-router and showing the filled variant for the current route):\n\n```vue\n<template>\n\t<ul>\n\t\t<NcAppNavigationItem name=\"Current page\" :active=\"true\">\n\t\t\t<template #icon=\"{ active }\">\n\t\t\t\t<NcIconSvgWrapper :path=\"active ? mdiFolder : mdiFolderOutline\" />\n\t\t\t</template>\n\t\t</NcAppNavigationItem>\n\t\t<NcAppNavigationItem name=\"Other page\">\n\t\t\t<template #icon=\"{ active }\">\n\t\t\t\t<NcIconSvgWrapper :path=\"active ? mdiFolder : mdiFolderOutline\" />\n\t\t\t</template>\n\t\t</NcAppNavigationItem>\n\t</ul>\n</template>\n<script>\nimport { mdiFolder, mdiFolderOutline } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiFolder,\n\t\t\tmdiFolderOutline,\n\t\t}\n\t},\n}\n</script>\n```\n\n#### Element with actions\nWrap the children in a template. If you have more than 2 actions, a popover menu and a menu\nbutton will be automatically created.\n\n```vue\n\t<template>\n\t\t<div id=\"app-navigation-vue-action\"><!-- Just a wrapper necessary in the docs. Not needed when NcAppNavigation is correctly used as parent. -->\n\t\t\t<ul>\n\t\t\t\t<NcAppNavigationItem name=\"Item with actions\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Check :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t<NcActionButton @click=\"alert('Edit')\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\tEdit\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton @click=\"alert('Delete')\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionLink name=\"Link\" href=\"https://nextcloud.com\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcActionLink>\n\t\t\t\t\t</template>\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t</ul>\n\t\t</div>\n\t</template>\n\t<script>\n\timport Check from 'vue-material-design-icons/Check.vue'\n\timport Delete from 'vue-material-design-icons/Delete.vue'\n\timport OpenInNew from 'vue-material-design-icons/OpenInNew.vue'\n\timport Pencil from 'vue-material-design-icons/Pencil.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tCheck,\n\t\t\tDelete,\n\t\t\tOpenInNew,\n\t\t\tPencil,\n\t\t},\n\t\tmethods: {\n\t\t\talert(msg) {\n\t\t\t\talert(msg)\n\t\t\t},\n\t\t},\n\t}\n\t</script>\n```\n\n#### Element with counter\nJust nest the counter in a template within `<NcAppNavigationItem>` and add `#counter` to it.\n\n```vue\n\t<template>\n\t\t<ul>\n\t\t\t<NcAppNavigationItem name=\"Item with counter\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconFolderOutline :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<template #counter>\n\t\t\t\t\t<NcCounterBubble :count=\"90\" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t</ul>\n\t</template>\n\t<script>\n\timport IconFolderOutline from 'vue-material-design-icons/FolderOutline.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconFolderOutline,\n\t\t},\n\t}\n\t</script>\n```\n\n#### Element with children\n\nWrap the children in a template with the `slot` property and use the prop `allowCollapse` to choose whether to allow or\nprevent the user from collapsing the items.\n\n```vue\n\t<template>\n\t\t<ul>\n\t\t\t<NcAppNavigationItem name=\"Item with children\" :allowCollapse=\"true\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconFolderOutline :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<template #counter>\n\t\t\t\t\t<NcCounterBubble :count=\"90\" />\n\t\t\t\t</template>\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcActionButton @click=\"alert('Edit')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tEdit\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton @click=\"alert('Delete')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDelete\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionLink name=\"Link\" href=\"https://nextcloud.com\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcActionLink>\n\t\t\t\t</template>\n\t\t\t\t<template #default>\n\t\t\t\t\t<NcAppNavigationItem name=\"AppNavigationItemChild1\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"AppNavigationItemChild2\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"AppNavigationItemChild3\" />\n\t\t\t\t\t<NcAppNavigationItem name=\"AppNavigationItemChild4\" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t</ul>\n\t</template>\n\t<script>\n\timport IconFolderOutline from 'vue-material-design-icons/FolderOutline.vue'\n\timport Delete from 'vue-material-design-icons/Delete.vue'\n\timport OpenInNew from 'vue-material-design-icons/OpenInNew.vue'\n\timport Pencil from 'vue-material-design-icons/Pencil.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconFolderOutline,\n\t\t\tDelete,\n\t\t\tOpenInNew,\n\t\t\tPencil,\n\t\t},\n\t\tmethods: {\n\t\t\talert(msg) {\n\t\t\t\talert(msg)\n\t\t\t},\n\t\t},\n\t}\n\t</script>\n```\n\n#### Editable element\nAdd the prop `:editable=true` and an edit placeholder if you need it. By default\nthe placeholder is the previous name of the element.\n\n```vue\n\t<template>\n\t\t<ul>\n\t\t\t<NcAppNavigationItem name=\"Editable Item\" :editable=\"true\"\n\t\t\t\teditPlaceholder=\"your_placeholder_here\" @update:name=\"function(value){alert(value)}\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconFolderOutline :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t</ul>\n\t</template>\n\t<script>\n\timport IconFolderOutline from 'vue-material-design-icons/FolderOutline.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tIconFolderOutline,\n\t\t},\n\t\tmethods: {\n\t\t\talert(msg) {\n\t\t\t\talert(msg)\n\t\t\t},\n\t\t},\n\t}\n\t</script>\n```\n\n#### Undo element\nJust set the `undo` and `name` props. When clicking the undo button, an `undo` event is emitted.\n\n```vue\n\t<template>\n\t\t<ul>\n\t\t\t<NcAppNavigationItem :undo=\"true\" name=\"Deleted important entry\" @undo=\"alert('undo delete')\" />\n\t\t</ul>\n\t</template>\n\t<script>\n\texport default {\n\t\tmethods: {\n\t\t\talert(msg) {\n\t\t\t\talert(msg)\n\t\t\t},\n\t\t},\n\t}\n\t</script>\n```\n\n#### Link element\nHref that start by http will be treated as external and opened in a new tab\n```\n<div>\n\t<ul>\n\t\t<NcAppNavigationItem name=\"Files\" href=\"/index.php/apps/files\" />\n\t\t<NcAppNavigationItem name=\"Nextcloud\" href=\"https://nextcloud.com\" />\n\t</ul>\n</div>\n```\n\n#### Custom title\n```\n<ul>\n\t<NcAppNavigationItem name=\"Nextcloud\" title=\"Open the Nextcloud website\" href=\"https://nextcloud.com\" />\n</ul>\n```\n\n#### Pinned element\nJust set the `pinned` prop.\n```\n<ul>\n\t<NcAppNavigationItem name=\"Pinned item\" :pinned=\"true\" />\n</ul>\n```\n</docs>\n\n<template>\n\t<li\n\t\t:id=\"id\"\n\t\t:class=\"{\n\t\t\t'app-navigation-entry--opened': opened,\n\t\t\t'app-navigation-entry--pinned': pinned,\n\t\t\t'app-navigation-entry--collapsible': allowCollapse && !!$slots.default,\n\t\t}\"\n\t\tclass=\"app-navigation-entry-wrapper\">\n\t\t<component\n\t\t\t:is=\"isRouterLink ? 'router-link' : 'NcVNodes'\"\n\t\t\tv-slot=\"{ href: routerLinkHref, navigate, isActive }\"\n\t\t\tv-bind=\"{ ...isRouterLink && { custom: true, to } }\">\n\t\t\t<div\n\t\t\t\tref=\"entry\"\n\t\t\t\tclass=\"app-navigation-entry\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'app-navigation-entry--editing': editingActive,\n\t\t\t\t\t'app-navigation-entry--deleted': undo,\n\t\t\t\t\t'app-navigation-entry--legacy': isLegacy34,\n\t\t\t\t\tactive: (to && isActive) || active,\n\t\t\t\t}\"\n\t\t\t\t@pointerenter=\"requestHighlight\"\n\t\t\t\t@focusin=\"requestHighlight\">\n\t\t\t\t<!-- Icon and name -->\n\t\t\t\t<a\n\t\t\t\t\tv-if=\"!undo\"\n\t\t\t\t\tclass=\"app-navigation-entry-link\"\n\t\t\t\t\t:aria-current=\"active || (to && isActive) ? 'page' : undefined\"\n\t\t\t\t\t:aria-description=\"ariaDescription\"\n\t\t\t\t\t:aria-expanded=\"!!$slots.default ? opened.toString() : undefined\"\n\t\t\t\t\t:href=\"href || routerLinkHref || '#'\"\n\t\t\t\t\t:target=\"isExternal(href) ? '_blank' : undefined\"\n\t\t\t\t\t:title=\"title || name\"\n\t\t\t\t\t@blur=\"handleBlur\"\n\t\t\t\t\t@click=\"onClick($event, navigate, routerLinkHref)\"\n\t\t\t\t\t@focus=\"handleFocus\"\n\t\t\t\t\t@keydown.tab.exact=\"handleTab\">\n\n\t\t\t\t\t<!-- icon if not collapsible -->\n\t\t\t\t\t<!-- never show the icon over the collapsible if mobile -->\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"app-navigation-entry-icon\"\n\t\t\t\t\t\t:class=\"{ [icon]: icon }\">\n\t\t\t\t\t\t<NcLoadingIcon v-if=\"loading\" />\n\t\t\t\t\t\t<!-- @slot Slot for the optional leading icon. This slots get the `active`-slot attribute passed which is based on the vue-routers active route or the `active` prop. -->\n\t\t\t\t\t\t<slot v-else name=\"icon\" :active=\"active || (to && isActive)\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class=\"app-navigation-entry__name\" :class=\"{ 'hidden-visually': editingActive }\">\n\t\t\t\t\t\t{{ name }}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div v-if=\"editingActive\" class=\"editingContainer\">\n\t\t\t\t\t\t<NcInputConfirmCancel\n\t\t\t\t\t\t\tref=\"editingInput\"\n\t\t\t\t\t\t\tv-model=\"editingValue\"\n\t\t\t\t\t\t\t:placeholder=\"editPlaceholder !== '' ? editPlaceholder : name\"\n\t\t\t\t\t\t\t:primary=\"(to && isActive) || active\"\n\t\t\t\t\t\t\t@cancel=\"cancelEditing\"\n\t\t\t\t\t\t\t@confirm=\"handleEditingDone\" />\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\n\t\t\t\t<!-- undo entry -->\n\t\t\t\t<div v-if=\"undo\" class=\"app-navigation-entry__deleted\">\n\t\t\t\t\t<div class=\"app-navigation-entry__deleted-description\">\n\t\t\t\t\t\t{{ name }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Counter and Actions -->\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"(!!$slots.actions || !!$slots.counter || editable || undo) && !editingActive\"\n\t\t\t\t\tclass=\"app-navigation-entry__utils\"\n\t\t\t\t\t:class=\"{ 'app-navigation-entry__utils--display-actions': forceDisplayActions || menuOpenLocalValue || menuOpen }\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"!!$slots.counter\"\n\t\t\t\t\t\tclass=\"app-navigation-entry__counter-wrapper\">\n\t\t\t\t\t\t<!-- @slot Slot for the `NcCounterBubble` -->\n\t\t\t\t\t\t<slot name=\"counter\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<NcActions\n\t\t\t\t\t\tv-if=\"!!$slots.actions || (editable && !editingActive) || undo\"\n\t\t\t\t\t\tref=\"actions\"\n\t\t\t\t\t\tclass=\"app-navigation-entry__actions\"\n\t\t\t\t\t\tcontainer=\"#app-navigation-vue\"\n\t\t\t\t\t\t:boundariesElement=\"actionsBoundariesElement\"\n\t\t\t\t\t\t:inline=\"inlineActions\"\n\t\t\t\t\t\t:placement=\"menuPlacement\"\n\t\t\t\t\t\t:open=\"menuOpen\"\n\t\t\t\t\t\t:forceMenu=\"forceMenu\"\n\t\t\t\t\t\t:defaultIcon=\"menuIcon\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t@update:open=\"onMenuToggle\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<!-- @slot Slot for the custom menu icon -->\n\t\t\t\t\t\t\t<slot name=\"menu-icon\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<NcActionButton\n\t\t\t\t\t\t\tv-if=\"editable && !editingActive\"\n\t\t\t\t\t\t\t:aria-label=\"editButtonAriaLabel\"\n\t\t\t\t\t\t\t@click=\"handleEdit\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ editLabel }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton\n\t\t\t\t\t\t\tv-if=\"undo\"\n\t\t\t\t\t\t\t:aria-label=\"undoButtonAriaLabel\"\n\t\t\t\t\t\t\t@click=\"handleUndo\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Undo :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<!-- @slot Slot for additional `NcAction*` -->\n\t\t\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t\t</NcActions>\n\t\t\t\t</div>\n\t\t\t\t<NcAppNavigationIconCollapsible\n\t\t\t\t\tv-if=\"allowCollapse && !!$slots.default\"\n\t\t\t\t\t:active=\"(to && isActive) || active\"\n\t\t\t\t\t:open=\"opened\"\n\t\t\t\t\t@click.prevent.stop=\"toggleCollapse\" />\n\n\t\t\t\t<!-- @slot Slot for anything (virtual) that should be mounted in the component, like a related modal -->\n\t\t\t\t<slot name=\"extra\" />\n\t\t\t</div>\n\t\t</component>\n\t\t<!-- Children elements -->\n\t\t<ul v-if=\"canHaveChildren && !!$slots.default\" class=\"app-navigation-entry__children\">\n\t\t\t<!-- @slot Slot for children -->\n\t\t\t<slot />\n\t\t</ul>\n\t</li>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\nimport Undo from 'vue-material-design-icons/Undo.vue'\nimport NcAppNavigationIconCollapsible from './NcAppNavigationIconCollapsible.vue'\nimport NcInputConfirmCancel from './NcInputConfirmCancel.vue'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { t } from '../../l10n.ts'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport { isLegacy34 } from '../../utils/legacy.ts'\nimport NcActionButton from '../NcActionButton/index.js'\nimport NcActions from '../NcActions/index.js'\nimport { APP_NAVIGATION_HIGHLIGHT } from '../NcAppNavigationList/highlight.ts'\nimport NcLoadingIcon from '../NcLoadingIcon/index.ts'\nimport NcVNodes from '../NcVNodes/index.ts'\n\nexport default {\n\tname: 'NcAppNavigationItem',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcAppNavigationIconCollapsible,\n\t\tNcInputConfirmCancel,\n\t\tNcLoadingIcon,\n\t\tNcVNodes,\n\t\tPencil,\n\t\tUndo,\n\t},\n\n\tinject: {\n\t\t// Provided by NcAppNavigationList, absent when used outside of one\n\t\thighlight: { from: APP_NAVIGATION_HIGHLIGHT, default: null },\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n\t\t * When using vue-router and the `to` property this is set automatically.\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * The main text content of the entry.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * The title attribute of the element.\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the list item element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => createElementId(),\n\t\t\tvalidator: (id) => id.trim() !== '',\n\t\t},\n\n\t\t/**\n\t\t * Refers to the icon on the left, this prop accepts a class\n\t\t * like 'icon-category-enabled'.\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Displays a loading animated icon on the left of the element\n\t\t * instead of the icon.\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 * Passing in a route will make the root element of this\n\t\t * component a `<router-link />` that points to that route.\n\t\t * By leaving this blank, the root element will be a `<li>`.\n\t\t */\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * A direct link. This will be used as the `href` attribute.\n\t\t * This will ignore any `to` prop being defined.\n\t\t */\n\t\thref: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Gives the possibility to collapse the children elements into the\n\t\t * parent element (true) or expands the children elements (false).\n\t\t */\n\t\tallowCollapse: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Makes the name of the item editable by providing an `ActionButton`\n\t\t * component that toggles a form\n\t\t */\n\t\teditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Only for 'editable' items, sets label for the edit action button.\n\t\t */\n\t\teditLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n\t\t */\n\t\teditPlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Pins the item to the bottom left area, above the settings. Do not\n\t\t * place 'non-pinned' `AppnavigationItem` components below `pinned`\n\t\t * ones.\n\t\t */\n\t\tpinned: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Puts the item in the 'undo' state.\n\t\t */\n\t\tundo: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * The navigation collapsible state (synced)\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * The actions menu open state (synced)\n\t\t */\n\t\tmenuOpen: {\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\n\t\t/**\n\t\t * The action's menu default icon\n\t\t */\n\t\tmenuIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * The action's menu direction\n\t\t */\n\t\tmenuPlacement: {\n\t\t\ttype: String,\n\t\t\tdefault: 'bottom',\n\t\t},\n\n\t\t/**\n\t\t * Entry aria details\n\t\t */\n\t\tariaDescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * To be used only when the elements in the actions menu are very important\n\t\t */\n\t\tforceDisplayActions: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Number of action items outside the menu\n\t\t */\n\t\tinlineActions: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t},\n\n\temits: [\n\t\t'update:menuOpen',\n\t\t'update:open',\n\t\t'update:name',\n\t\t'click',\n\t\t'undo',\n\t],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t\tisLegacy34,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tactionsBoundariesElement: undefined,\n\t\t\teditingValue: '',\n\t\t\topened: this.open, // Collapsible state\n\t\t\teditingActive: false,\n\t\t\t/**\n\t\t\t * Tracks the open state of the actions menu\n\t\t\t */\n\t\t\tmenuOpenLocalValue: false,\n\t\t\tfocused: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisRouterLink() {\n\t\t\treturn this.to && !this.href\n\t\t},\n\n\t\t// Checks if the component is already a children of another\n\t\t// instance of AppNavigationItem\n\t\tcanHaveChildren() {\n\t\t\tif (this.$parent.$options._componentTag === 'AppNavigationItem') {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\teditButtonAriaLabel() {\n\t\t\treturn this.editLabel ? this.editLabel : t('Edit item')\n\t\t},\n\n\t\tundoButtonAriaLabel() {\n\t\t\treturn t('Undo changes')\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(newVal) {\n\t\t\tthis.opened = newVal\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.actionsBoundariesElement = document.querySelector('#content-vue') || undefined\n\t},\n\n\tbeforeUnmount() {\n\t\t// Release the highlight, e.g. when a virtual scroller drops this entry\n\t\tthis.releaseHighlight()\n\t},\n\n\tmethods: {\n\t\t/** Ask the parent list to move its highlight onto this entry */\n\t\trequestHighlight() {\n\t\t\t// Entries being edited have their own UI\n\t\t\tif (this.editingActive) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.highlight?.show(this.$refs.entry)\n\t\t},\n\n\t\t/** Tell the parent list this entry no longer wants the highlight */\n\t\treleaseHighlight() {\n\t\t\tthis.highlight?.hide(this.$refs.entry)\n\t\t},\n\n\t\t// sync opened menu state with prop\n\t\tonMenuToggle(state) {\n\t\t\tthis.$emit('update:menuOpen', state)\n\t\t\tthis.menuOpenLocalValue = state\n\t\t},\n\n\t\t// toggle the collapsible state\n\t\ttoggleCollapse() {\n\t\t\tthis.opened = !this.opened\n\t\t\tthis.$emit('update:open', this.opened)\n\t\t},\n\n\t\t/**\n\t\t * Handle link click\n\t\t *\n\t\t * @param {PointerEvent} event - Native click event\n\t\t * @param {(event: PointerEvent) => void} [navigate] - VueRouter link's navigate if any\n\t\t * @param {string} [routerLinkHref] - VueRouter link's href\n\t\t */\n\t\tonClick(event, navigate, routerLinkHref) {\n\t\t\t// Always forward native event\n\t\t\tthis.$emit('click', event)\n\t\t\t// Do not navigate with control keys - it is opening in a new tab\n\t\t\tif (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Prevent default link behaviour if it's a router-link and navigate manually\n\t\t\tif (routerLinkHref) {\n\t\t\t\tnavigate?.(event)\n\t\t\t\tevent.preventDefault()\n\t\t\t\t// On mobile, close app-navigation when navigating so it doesn't overlay content\n\t\t\t\tif (this.isMobile) {\n\t\t\t\t\temit('toggle-navigation', { open: false })\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Edition methods\n\t\thandleEdit() {\n\t\t\tthis.editingValue = this.name\n\t\t\tthis.editingActive = true\n\t\t\tthis.onMenuToggle(false)\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs.editingInput.focusInput()\n\t\t\t})\n\t\t},\n\n\t\tcancelEditing() {\n\t\t\tthis.editingActive = false\n\t\t},\n\n\t\thandleEditingDone() {\n\t\t\tthis.$emit('update:name', this.editingValue)\n\t\t\tthis.editingValue = ''\n\t\t\tthis.editingActive = false\n\t\t},\n\n\t\t// Undo methods\n\t\thandleUndo() {\n\t\t\tthis.$emit('undo')\n\t\t},\n\n\t\t/**\n\t\t * Show actions upon focus\n\t\t */\n\t\thandleFocus() {\n\t\t\tthis.focused = true\n\t\t},\n\n\t\thandleBlur() {\n\t\t\tthis.focused = false\n\t\t},\n\n\t\t/**\n\t\t * This method checks if the root element of the component is focused and\n\t\t * if that's the case it focuses the actions button if available\n\t\t *\n\t\t * @param {Event} e the keydown event\n\t\t */\n\t\thandleTab(e) {\n\t\t\tif (this.editingActive) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst actionsContainer = this.$el?.querySelector('.app-navigation-entry__utils')\n\t\t\tif (!actionsContainer) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst focusableElement = actionsContainer.querySelector('button')\n\t\t\tif (this.focused && focusableElement) {\n\t\t\t\te.preventDefault()\n\t\t\t\tfocusableElement.focus()\n\t\t\t\tthis.focused = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Is this an external link\n\t\t *\n\t\t * @param {string} href The link to check\n\t\t * @return {boolean} Whether it is external or not\n\t\t */\n\t\tisExternal(href) {\n\t\t\t// Match any protocol\n\t\t\treturn href && href.match(/[a-z]+:\\/\\//i)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n@use '../../assets/NcAppNavigationItem.scss';\n</style>\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","_createBlock","NcVNodes","_normalizeClass","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","_withCtx","_renderSlot","_createVNode","_toDisplayString","_createTextVNode"],"mappings":";;;;;;;;;;;;;;;;AAoBA,MAAKA,cAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO,CAAC,OAAO;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA;IAER,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;AAxBY,MAAAC,eAAA,EAAA,GAAE,sJAAqJ;;;sBAXjKC,mBAeO,QAfPC,WAAc,KAAA,QAAM;AAAA,IACb,eAAa,OAAA,QAAK,OAAA;AAAA,IAClB,cAAY,OAAA;AAAA,IACb,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAE,KAAA,MAAK,SAAU,MAAM;AAAA;kBACjCD,mBAQM,OAAA;AAAA,MARA,MAAM,OAAA;AAAA,MACP,OAAM;AAAA,MACL,OAAO,OAAA;AAAA,MACP,QAAQ,OAAA;AAAA,MACT,SAAQ;AAAA;MACXE,mBAEO,QAFPH,cAEO;AAAA,QADQ,OAAA,SAAbI,UAAA,GAAAH,mBAAuC,uCAAhB,OAAA,KAAK,GAAA,CAAA;;;;;;ACOpC,MAAKF,cAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO,CAAC,OAAO;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA;IAER,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;AAxBY,MAAAC,eAAA,EAAA,GAAE,6JAA4J;;;sBAXxKC,mBAeO,QAfPC,WAAc,KAAA,QAAM;AAAA,IACb,eAAa,OAAA,QAAK,OAAA;AAAA,IAClB,cAAY,OAAA;AAAA,IACb,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAE,KAAA,MAAK,SAAU,MAAM;AAAA;kBACjCD,mBAQM,OAAA;AAAA,MARA,MAAM,OAAA;AAAA,MACP,OAAM;AAAA,MACL,OAAO,OAAA;AAAA,MACP,QAAQ,OAAA;AAAA,MACT,SAAQ;AAAA;MACXE,mBAEO,QAFPH,cAEO;AAAA,QADQ,OAAA,SAAbI,UAAA,GAAAH,mBAAuC,uCAAhB,OAAA,KAAK,GAAA,CAAA;;;;;;;ACqBpC,MAAKF,cAAU;AAAA,EACd,MAAM;AAAA,EAEN,YAAY;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA;EAGD,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA;;;;IAMX,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA;;EAIZ,OAAO,CAAC,OAAO;AAAA,EAEf,QAAQ;AACP,WAAO,EAAE,WAAS;AAAA,EACnB;AAAA,EAEA,UAAU;AAAA,IACT,cAAc;AACb,aAAO,KAAK,OAAO,EAAE,eAAe,IAAI,EAAE,WAAW;AAAA,IACtD;AAAA;EAGD,SAAS;AAAA,IACR,QAAQ,GAAG;AACV,WAAK,MAAM,SAAS,CAAC;AAAA,IACtB;AAAA;AAGF;;;;;sBAxECM,YAiBW,qBAAA;AAAA,IAhBV,uBAAM,iBAAe;AAAA,+BACiB,OAAA;AAAA,6BAAkC,OAAA;AAAA;IAIvE,cAAY,SAAA;AAAA,IACZ,SAAU,OAAA,UAAU,OAAA,aAAU,wBAAA;AAAA,IAC9B,SAAO,SAAA;AAAA;IACG,cACV,MAEc;AAAA,MADP,OAAA,qBADPA,YAEc,sBAAA;AAAA;QAAZ,MAAM;AAAA,0BACRA,YAEc,wBAAA;AAAA;QAAZ,MAAM;AAAA;;;;;;;ACobX,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,YAAY;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAAC;AAAAA,IACA;AAAA,IACA;AAAA;EAGD,QAAQ;AAAA;AAAA,IAEP,WAAW,EAAE,MAAM,0BAA0B,SAAS,KAAG;AAAA;EAG1D,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKN,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,MAAM;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA;;;;IAMX,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,IAAI;AAAA,MACH,MAAM;AAAA,MACN,SAAS,MAAM,gBAAe;AAAA,MAC9B,WAAW,CAAC,OAAO,GAAG,KAAI,MAAO;AAAA;;;;;IAOlC,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOV,SAAS;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;;;;;IAQV,IAAI;AAAA,MACH,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA;;;;;IAOV,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOV,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOV,UAAU;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,WAAW;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA;;;;;;IAQV,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,UAAU;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,WAAW;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,UAAU;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,qBAAqB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA;;EAIX,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;EAGD,QAAQ;AACP,WAAO;AAAA,MACN,UAAU,YAAW;AAAA,MACrB;AAAA,IACD;AAAA,EACD;AAAA,EAEA,OAAO;AACN,WAAO;AAAA,MACN,0BAA0B;AAAA,MAC1B,cAAc;AAAA,MACd,QAAQ,KAAK;AAAA;AAAA,MACb,eAAe;AAAA;AAAA;AAAA;AAAA,MAIf,oBAAoB;AAAA,MACpB,SAAS;AAAA,IACV;AAAA,EACD;AAAA,EAEA,UAAU;AAAA,IACT,eAAe;AACd,aAAO,KAAK,MAAM,CAAC,KAAK;AAAA,IACzB;AAAA;AAAA;AAAA,IAIA,kBAAkB;AACjB,UAAI,KAAK,QAAQ,SAAS,kBAAkB,qBAAqB;AAChE,eAAO;AAAA,MACR,OAAO;AACN,eAAO;AAAA,MACR;AAAA,IACD;AAAA,IAEA,sBAAsB;AACrB,aAAO,KAAK,YAAY,KAAK,YAAY,EAAE,WAAW;AAAA,IACvD;AAAA,IAEA,sBAAsB;AACrB,aAAO,EAAE,cAAc;AAAA,IACxB;AAAA;EAGD,OAAO;AAAA,IACN,KAAK,QAAQ;AACZ,WAAK,SAAS;AAAA,IACf;AAAA;EAGD,UAAU;AACT,SAAK,2BAA2B,SAAS,cAAc,cAAc,KAAK;AAAA,EAC3E;AAAA,EAEA,gBAAgB;AAEf,SAAK,iBAAgB;AAAA,EACtB;AAAA,EAEA,SAAS;AAAA;AAAA,IAER,mBAAmB;AAElB,UAAI,KAAK,eAAe;AACvB;AAAA,MACD;AACA,WAAK,WAAW,KAAK,KAAK,MAAM,KAAK;AAAA,IACtC;AAAA;AAAA,IAGA,mBAAmB;AAClB,WAAK,WAAW,KAAK,KAAK,MAAM,KAAK;AAAA,IACtC;AAAA;AAAA,IAGA,aAAa,OAAO;AACnB,WAAK,MAAM,mBAAmB,KAAK;AACnC,WAAK,qBAAqB;AAAA,IAC3B;AAAA;AAAA,IAGA,iBAAiB;AAChB,WAAK,SAAS,CAAC,KAAK;AACpB,WAAK,MAAM,eAAe,KAAK,MAAM;AAAA,IACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,QAAQ,OAAO,UAAU,gBAAgB;AAExC,WAAK,MAAM,SAAS,KAAK;AAEzB,UAAI,MAAM,WAAW,MAAM,UAAU,MAAM,WAAW,MAAM,UAAU;AACrE;AAAA,MACD;AAEA,UAAI,gBAAgB;AACnB,mBAAW,KAAK;AAChB,cAAM,eAAc;AAEpB,YAAI,KAAK,UAAU;AAClB,eAAK,qBAAqB,EAAE,MAAM,OAAO;AAAA,QAC1C;AAAA,MACD;AAAA,IACD;AAAA;AAAA,IAGA,aAAa;AACZ,WAAK,eAAe,KAAK;AACzB,WAAK,gBAAgB;AACrB,WAAK,aAAa,KAAK;AACvB,WAAK,UAAU,MAAM;AACpB,aAAK,MAAM,aAAa,WAAU;AAAA,MACnC,CAAC;AAAA,IACF;AAAA,IAEA,gBAAgB;AACf,WAAK,gBAAgB;AAAA,IACtB;AAAA,IAEA,oBAAoB;AACnB,WAAK,MAAM,eAAe,KAAK,YAAY;AAC3C,WAAK,eAAe;AACpB,WAAK,gBAAgB;AAAA,IACtB;AAAA;AAAA,IAGA,aAAa;AACZ,WAAK,MAAM,MAAM;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,cAAc;AACb,WAAK,UAAU;AAAA,IAChB;AAAA,IAEA,aAAa;AACZ,WAAK,UAAU;AAAA,IAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,UAAU,GAAG;AACZ,UAAI,KAAK,eAAe;AACvB;AAAA,MACD;AAEA,YAAM,mBAAmB,KAAK,KAAK,cAAc,8BAA8B;AAC/E,UAAI,CAAC,kBAAkB;AACtB;AAAA,MACD;AAEA,YAAM,mBAAmB,iBAAiB,cAAc,QAAQ;AAChE,UAAI,KAAK,WAAW,kBAAkB;AACrC,UAAE,eAAc;AAChB,yBAAiB,MAAK;AACtB,aAAK,UAAU;AAAA,MAChB;AAAA,IACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,WAAW,MAAM;AAEhB,aAAO,QAAQ,KAAK,MAAM,cAAc;AAAA,IACzC;AAAA;AAEF;;;;;EApf+B,OAAM;;;;EAYhB,OAAM;;AACjB,MAAA,aAAA,EAAA,OAAM,4CAA2C;;;EAYrD,OAAM;;;;EAqDqC,OAAM;;;;;;;;;;sBAhItDL,mBAoIK,MAAA;AAAA,IAnIH,IAAI,OAAA;AAAA,IACJ,OAAKM,eAAA,CAAA;AAAA,sCAAuC,MAAA;AAAA,sCAA2C,OAAA;AAAA,2CAAgD,OAAA,iBAAa,CAAA,CAAM,KAAA,OAAO;AAAA,OAK5J,8BAA8B,CAAA;AAAA;KACpCH,UAAA,GAAAC,YAsHYG,wBArHN,SAAA,eAAY,gBAAA,UAAA,GAAAC,eAAAC,mBAAA,EAAA,GAEJ,SAAA,oCAAgC,OAAA,KAAE,CAAA,CAAA,GAAA;AAAA,MAC/C,SAAAC,QAAA,CAiHM,EAAA,MAnHU,gBAAgB,UAAU,eAAQ;AAAA,QAElDR,mBAiHM,OAAA;AAAA,UAhHL,KAAI;AAAA,UACJ,uBAAM,wBAAsB;AAAA,6CACoB,MAAA;AAAA,6CAAqD,OAAA;AAAA,4CAA2C,OAAA;AAAA,oBAA0B,OAAA,MAAM,YAAa,OAAA;AAAA;UAM5L,uDAAc,SAAA,oBAAA,SAAA,iBAAA,GAAA,IAAA;AAAA,UACd,kDAAS,SAAA,oBAAA,SAAA,iBAAA,GAAA,IAAA;AAAA;WAGF,OAAA,qBADRF,mBAmCI,KAAA;AAAA;YAjCH,OAAM;AAAA,YACL,gBAAc,OAAA,UAAW,aAAM,oBAAqB;AAAA,YACpD,oBAAkB,OAAA;AAAA,YAClB,iBAAa,CAAA,CAAI,YAAO,UAAU,MAAA,OAAO,SAAQ,IAAK;AAAA,YACtD,MAAM,OAAA,QAAQ,kBAAc;AAAA,YAC5B,QAAQ,SAAA,WAAW,OAAA,IAAI,eAAe;AAAA,YACtC,OAAO,OAAA,SAAS,OAAA;AAAA,YAChB,+CAAM,SAAA,cAAA,SAAA,WAAA,GAAA,IAAA;AAAA,YACN,qBAAO,SAAA,QAAQ,QAAQ,UAAU,cAAc;AAAA,YAC/C,gDAAO,SAAA,eAAA,SAAA,YAAA,GAAA,IAAA;AAAA,YACP,yEAAmB,SAAA,aAAA,SAAA,UAAA,GAAA,IAAA,GAAS,CAAA,OAAA,CAAA,GAAA,CAAA,KAAA,CAAA;AAAA;YAI7BE,mBAMM,OAAA;AAAA,cALL,OAAKI,eAAA,CAAC,6BAA2B,EAAA,CACtB,OAAA,IAAI,GAAG,OAAA,MAAI,CAAA;AAAA;cACD,OAAA,wBAArBF,YAAgC,0BAAA,EAAA,KAAA,EAAA,CAAA,KAEhCO,WAAgE,KAAA,QAAA,QAAA;AAAA;gBAAtC,QAAQ,OAAA,UAAW,OAAA,MAAM;AAAA;;YAEpDT,mBAEO,QAAA;AAAA,cAFD,OAAKI,eAAA,CAAC,8BAA4B,EAAA,mBAA8B,MAAA,eAAa,CAAA;AAAA,+BAC/E,OAAA,IAAI,GAAA,CAAA;AAAA,YAEG,MAAA,iBAAXH,aAAAH,mBAQM,OARN,YAQM;AAAA,cAPLY,YAMgC,iCAAA;AAAA,gBAL/B,KAAI;AAAA,4BACK,MAAA;AAAA,6EAAA,MAAA,eAAY;AAAA,gBACpB,aAAa,OAAA,oBAAe,KAAU,OAAA,kBAAkB,OAAA;AAAA,gBACxD,SAAU,OAAA,MAAM,YAAa,OAAA;AAAA,gBAC7B,UAAQ,SAAA;AAAA,gBACR,WAAS,SAAA;AAAA;;;UAKF,OAAA,QAAXT,aAAAH,mBAIM,OAJN,YAIM;AAAA,YAHLE,mBAEM,OAFN,YAEMW,gBADF,OAAA,IAAI,GAAA,CAAA;AAAA;aAMC,KAAA,OAAO,WAAO,CAAA,CAAM,KAAA,OAAO,WAAW,OAAA,YAAY,OAAA,SAAI,CAAM,MAAA,8BADtEb,mBA+CM,OAAA;AAAA;YA7CL,uBAAM,+BAA6B,EAAA,gDACuB,8BAAuB,MAAA,sBAAsB,OAAA,SAAQ,CAAA,CAAA;AAAA;YAEtG,CAAA,CAAA,KAAA,OAAO,WADhBG,aAAAH,mBAKM,OALN,YAKM;AAAA,cADLW,WAAuB,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;YAGf,CAAA,CAAA,KAAA,OAAO,WAAY,mBAAQ,CAAK,MAAA,iBAAkB,OAAA,qBAD3DP,YAoCY,sBAAA;AAAA;cAlCX,KAAI;AAAA,cACJ,OAAM;AAAA,cACN,WAAU;AAAA,cACT,mBAAmB,MAAA;AAAA,cACnB,QAAQ,OAAA;AAAA,cACR,WAAW,OAAA;AAAA,cACX,MAAM,OAAA;AAAA,cACN,WAAW,OAAA;AAAA,cACX,aAAa,OAAA;AAAA,cACd,SAAQ;AAAA,cACP,iBAAa,SAAA;AAAA;cACH,cAEV,MAAyB;AAAA,gBAAzBO,WAAyB,KAAA,QAAA,aAAA,CAAA,GAAA,QAAA,IAAA;AAAA;+BAE1B,MAQiB;AAAA,gBAPV,OAAA,aAAa,MAAA,8BADpBP,YAQiB,2BAAA;AAAA;kBANf,cAAY,SAAA;AAAA,kBACZ,SAAO,SAAA;AAAA;kBACG,cACV,MAAqB;AAAA,oBAArBQ,YAAqB,mBAAA,EAAZ,MAAM,GAAE,CAAA;AAAA;mCACP,MACX;AAAA,oBADWE,gBAAA,sBACR,OAAA,SAAS,GAAA,CAAA;AAAA;;;gBAGN,OAAA,qBADPV,YAOiB,2BAAA;AAAA;kBALf,cAAY,SAAA;AAAA,kBACZ,SAAO,SAAA;AAAA;kBACG,cACV,MAAmB;AAAA,oBAAnBQ,YAAmB,iBAAA,EAAZ,MAAM,GAAE,CAAA;AAAA;;;gBAIjBD,WAAuB,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;;;UAIlB,OAAA,iBAAa,CAAA,CAAM,KAAA,OAAO,wBADjCP,YAIwC,2CAAA;AAAA;YAFtC,QAAS,OAAA,MAAM,YAAa,OAAA;AAAA,YAC5B,MAAM,MAAA;AAAA,YACN,uBAAoB,SAAA,gBAAc,CAAA,WAAA,MAAA,CAAA;AAAA;UAGpCO,WAAqB,KAAA,QAAA,SAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;;;IAIb,SAAA,mBAAe,CAAA,CAAM,KAAA,OAAO,WAAtCR,aAAAH,mBAGK,MAHL,YAGK;AAAA,MADJW,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;;;","x_google_ignoreList":[0,1]}
@@ -0,0 +1,147 @@
1
+ import '../assets/NcAppNavigationList.css';
2
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle, renderSlot } from "vue";
3
+ import { A as APP_NAVIGATION_HIGHLIGHT } from "./highlight.mjs";
4
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
5
+ const _sfc_main = defineComponent({
6
+ name: "NcAppNavigationList",
7
+ provide() {
8
+ return {
9
+ [APP_NAVIGATION_HIGHLIGHT]: {
10
+ show: this.show,
11
+ hide: this.hide
12
+ }
13
+ };
14
+ },
15
+ data() {
16
+ return {
17
+ /** Entry the highlight is on, as reported by that entry itself */
18
+ entry: null,
19
+ /** Whether the highlight is shown */
20
+ visible: false,
21
+ /** Whether position changes should transition (slide) or snap */
22
+ animated: false,
23
+ /** Whether the highlight sits on the active entry (turns transparent) */
24
+ overActive: false,
25
+ /** Vertical offset of the highlight inside the scrollable content */
26
+ top: 0,
27
+ /** Height of the highlight */
28
+ height: 0,
29
+ /** Pending animation frame for re-measuring while scrolling */
30
+ scrollFrame: 0
31
+ };
32
+ },
33
+ computed: {
34
+ highlightStyle() {
35
+ return {
36
+ transform: `translateY(${this.top}px)`,
37
+ height: `${this.height}px`
38
+ };
39
+ }
40
+ },
41
+ beforeUnmount() {
42
+ if (this.scrollFrame) {
43
+ cancelAnimationFrame(this.scrollFrame);
44
+ }
45
+ },
46
+ methods: {
47
+ /**
48
+ * Move the highlight onto an entry. It slides there if already visible,
49
+ * otherwise it snaps into place so it does not slide in from the entry
50
+ * that was hovered before. Over the active entry it turns transparent so
51
+ * that entry keeps its own static highlight.
52
+ *
53
+ * @param entry the entry element asking for the highlight
54
+ */
55
+ show(entry) {
56
+ this.entry = entry;
57
+ this.overActive = entry.classList.contains("active");
58
+ if (this.visible) {
59
+ this.animated = true;
60
+ this.measure();
61
+ return;
62
+ }
63
+ this.animated = false;
64
+ this.measure();
65
+ this.visible = true;
66
+ this.$nextTick(() => requestAnimationFrame(() => {
67
+ this.animated = true;
68
+ }));
69
+ },
70
+ /**
71
+ * Hide the highlight if it is on the given entry, e.g. because that entry
72
+ * is being removed. While the pointer only moves between entries the
73
+ * highlight stays visible, so it can slide on to the next one.
74
+ *
75
+ * @param entry the entry element that no longer wants the highlight
76
+ */
77
+ hide(entry) {
78
+ if (this.entry === entry) {
79
+ this.hideNow();
80
+ }
81
+ },
82
+ /** Hide the highlight, as the pointer or focus left the list */
83
+ hideNow() {
84
+ this.visible = false;
85
+ },
86
+ /**
87
+ * Hide the highlight once focus leaves the list entirely
88
+ *
89
+ * @param event the focusout event
90
+ */
91
+ onFocusOut(event) {
92
+ const list = this.$refs.list;
93
+ if (!list.contains(event.relatedTarget)) {
94
+ this.hideNow();
95
+ }
96
+ },
97
+ /** Read the current entry's geometry relative to the list content */
98
+ measure() {
99
+ const list = this.$refs.list;
100
+ if (!list || !this.entry) {
101
+ return;
102
+ }
103
+ const entryRect = this.entry.getBoundingClientRect();
104
+ const listRect = list.getBoundingClientRect();
105
+ this.top = entryRect.top - listRect.top + list.scrollTop;
106
+ this.height = entryRect.height;
107
+ },
108
+ /**
109
+ * Keep the highlight on its entry while scrolling. Needed because a
110
+ * virtual scroller repositions its entries as the list scrolls.
111
+ */
112
+ onScroll() {
113
+ if (!this.visible || this.scrollFrame) {
114
+ return;
115
+ }
116
+ this.scrollFrame = requestAnimationFrame(() => {
117
+ this.scrollFrame = 0;
118
+ this.measure();
119
+ });
120
+ }
121
+ }
122
+ });
123
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
124
+ return openBlock(), createElementBlock("ul", {
125
+ ref: "list",
126
+ class: normalizeClass(["app-navigation-list", { "app-navigation-list--animated-highlight": _ctx.visible }]),
127
+ onPointerleave: _cache[0] || (_cache[0] = (...args) => _ctx.hideNow && _ctx.hideNow(...args)),
128
+ onFocusout: _cache[1] || (_cache[1] = (...args) => _ctx.onFocusOut && _ctx.onFocusOut(...args)),
129
+ onScrollPassive: _cache[2] || (_cache[2] = (...args) => _ctx.onScroll && _ctx.onScroll(...args))
130
+ }, [
131
+ createElementVNode("div", {
132
+ class: normalizeClass(["app-navigation-list__highlight", {
133
+ "app-navigation-list__highlight--visible": _ctx.visible,
134
+ "app-navigation-list__highlight--animated": _ctx.animated,
135
+ "app-navigation-list__highlight--over-active": _ctx.overActive
136
+ }]),
137
+ style: normalizeStyle(_ctx.highlightStyle),
138
+ "aria-hidden": "true"
139
+ }, null, 6),
140
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
141
+ ], 34);
142
+ }
143
+ const NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-3e73e246"]]);
144
+ export {
145
+ NcAppNavigationList as N
146
+ };
147
+ //# sourceMappingURL=NcAppNavigationList.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppNavigationList.mjs","sources":["../../src/components/NcAppNavigationList/NcAppNavigationList.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nList wrapper for use in NcAppNavigation.\n\nThe list renders a single hover/focus highlight that slides between entries\ninstead of every entry painting its own hover background. When it slides onto\nthe active entry it turns transparent, so the active entry keeps its own\nstatic highlight.\n\nEntries ask for the highlight themselves - `NcAppNavigationItem` does this out\nof the box. The list never inspects the DOM to find out what is hovered, so it\nalso works when entries are rendered by a virtual scroller. If no entry ever\nasks for it the per-entry hover background is used as a fallback.\n\n#### Example\n\nUsage with NcAppNavigationCaption as a heading.\n\n```vue\n<NcAppNavigation>\n\t<NcAppNavigationList>\n\t\t<NcAppNavigationItem name=\"First\" />\n\t\t<NcAppNavigationItem name=\"Second\" />\n\t\t<NcAppNavigationItem name=\"Third\" />\n\t</NcAppNavigationList>\n\t<NcAppNavigationCaption name=\"Sections\" is-heading />\n\t<NcAppNavigationList>\n\t\t<NcAppNavigationItem name=\"Foo\" />\n\t\t<NcAppNavigationItem name=\"Bar\" />\n\t\t<NcAppNavigationItem name=\"Baz\" />\n\t</NcAppNavigationList>\n</NcAppNavigation>\n```\n</docs>\n\n<template>\n\t<ul\n\t\tref=\"list\"\n\t\tclass=\"app-navigation-list\"\n\t\t:class=\"{ 'app-navigation-list--animated-highlight': visible }\"\n\t\t@pointerleave=\"hideNow\"\n\t\t@focusout=\"onFocusOut\"\n\t\t@scroll.passive=\"onScroll\">\n\t\t<div\n\t\t\tclass=\"app-navigation-list__highlight\"\n\t\t\t:class=\"{\n\t\t\t\t'app-navigation-list__highlight--visible': visible,\n\t\t\t\t'app-navigation-list__highlight--animated': animated,\n\t\t\t\t'app-navigation-list__highlight--over-active': overActive,\n\t\t\t}\"\n\t\t\t:style=\"highlightStyle\"\n\t\t\taria-hidden=\"true\" />\n\t\t<slot />\n\t</ul>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { APP_NAVIGATION_HIGHLIGHT } from './highlight.ts'\n\nexport default defineComponent({\n\tname: 'NcAppNavigationList',\n\n\tprovide() {\n\t\treturn {\n\t\t\t[APP_NAVIGATION_HIGHLIGHT]: {\n\t\t\t\tshow: this.show,\n\t\t\t\thide: this.hide,\n\t\t\t},\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t/** Entry the highlight is on, as reported by that entry itself */\n\t\t\tentry: null as HTMLElement | null,\n\t\t\t/** Whether the highlight is shown */\n\t\t\tvisible: false,\n\t\t\t/** Whether position changes should transition (slide) or snap */\n\t\t\tanimated: false,\n\t\t\t/** Whether the highlight sits on the active entry (turns transparent) */\n\t\t\toverActive: false,\n\t\t\t/** Vertical offset of the highlight inside the scrollable content */\n\t\t\ttop: 0,\n\t\t\t/** Height of the highlight */\n\t\t\theight: 0,\n\t\t\t/** Pending animation frame for re-measuring while scrolling */\n\t\t\tscrollFrame: 0,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\thighlightStyle(): Record<string, string> {\n\t\t\treturn {\n\t\t\t\ttransform: `translateY(${this.top}px)`,\n\t\t\t\theight: `${this.height}px`,\n\t\t\t}\n\t\t},\n\t},\n\n\tbeforeUnmount() {\n\t\tif (this.scrollFrame) {\n\t\t\tcancelAnimationFrame(this.scrollFrame)\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Move the highlight onto an entry. It slides there if already visible,\n\t\t * otherwise it snaps into place so it does not slide in from the entry\n\t\t * that was hovered before. Over the active entry it turns transparent so\n\t\t * that entry keeps its own static highlight.\n\t\t *\n\t\t * @param entry the entry element asking for the highlight\n\t\t */\n\t\tshow(entry: HTMLElement) {\n\t\t\tthis.entry = entry\n\t\t\tthis.overActive = entry.classList.contains('active')\n\t\t\tif (this.visible) {\n\t\t\t\tthis.animated = true\n\t\t\t\tthis.measure()\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Re-appearing: snap to the new position, then allow sliding again\n\t\t\tthis.animated = false\n\t\t\tthis.measure()\n\t\t\tthis.visible = true\n\t\t\tthis.$nextTick(() => requestAnimationFrame(() => {\n\t\t\t\tthis.animated = true\n\t\t\t}))\n\t\t},\n\n\t\t/**\n\t\t * Hide the highlight if it is on the given entry, e.g. because that entry\n\t\t * is being removed. While the pointer only moves between entries the\n\t\t * highlight stays visible, so it can slide on to the next one.\n\t\t *\n\t\t * @param entry the entry element that no longer wants the highlight\n\t\t */\n\t\thide(entry: HTMLElement) {\n\t\t\tif (this.entry === entry) {\n\t\t\t\tthis.hideNow()\n\t\t\t}\n\t\t},\n\n\t\t/** Hide the highlight, as the pointer or focus left the list */\n\t\thideNow() {\n\t\t\tthis.visible = false\n\t\t},\n\n\t\t/**\n\t\t * Hide the highlight once focus leaves the list entirely\n\t\t *\n\t\t * @param event the focusout event\n\t\t */\n\t\tonFocusOut(event: FocusEvent) {\n\t\t\tconst list = this.$refs.list as HTMLElement\n\t\t\tif (!list.contains(event.relatedTarget as Node | null)) {\n\t\t\t\tthis.hideNow()\n\t\t\t}\n\t\t},\n\n\t\t/** Read the current entry's geometry relative to the list content */\n\t\tmeasure() {\n\t\t\tconst list = this.$refs.list as HTMLElement | undefined\n\t\t\tif (!list || !this.entry) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst entryRect = this.entry.getBoundingClientRect()\n\t\t\tconst listRect = list.getBoundingClientRect()\n\t\t\tthis.top = entryRect.top - listRect.top + list.scrollTop\n\t\t\tthis.height = entryRect.height\n\t\t},\n\n\t\t/**\n\t\t * Keep the highlight on its entry while scrolling. Needed because a\n\t\t * virtual scroller repositions its entries as the list scrolls.\n\t\t */\n\t\tonScroll() {\n\t\t\tif (!this.visible || this.scrollFrame) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.scrollFrame = requestAnimationFrame(() => {\n\t\t\t\tthis.scrollFrame = 0\n\t\t\t\tthis.measure()\n\t\t\t})\n\t\t},\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.app-navigation-list {\n\tposition: relative;\n\twidth: 100%;\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--default-grid-baseline, 4px);\n\tpadding: var(--app-navigation-padding);\n\tisolation: isolate; // keep the highlight layered predictably within the list\n\n\t&__highlight {\n\t\t// Half of --animation-quick, so the highlight keeps up with the pointer\n\t\t--highlight-animation-duration: calc(var(--animation-quick) / 2);\n\t\tposition: absolute;\n\t\tinset-inline: var(--app-navigation-padding);\n\t\ttop: 0;\n\t\theight: 0;\n\t\t// As the first positioned child it paints below the entry wrappers\n\t\t// (also positioned), so it sits behind the entry content.\n\t\tz-index: 0;\n\t\tpointer-events: none;\n\t\topacity: 0;\n\t\tborder-radius: var(--border-radius-element);\n\t\t// Matches the per-entry hover background of non-legacy entries.\n\t\tbackground-color: color-mix(in srgb, var(--color-primary-element) 8%, transparent);\n\t\t// Only the position is transitioned, height snaps. Entries in a list are\n\t\t// usually equally high, so this is not visible, and it keeps the slide off\n\t\t// the layout path.\n\t\twill-change: transform;\n\t\t// The fade and the background morph are always transitioned; sliding is\n\t\t// opt-in via --animated so the highlight snaps when it (re)appears.\n\t\t// ease-out so it leaves the old entry immediately and feels responsive.\n\t\ttransition:\n\t\t\topacity var(--highlight-animation-duration) ease-out,\n\t\t\tbackground-color var(--highlight-animation-duration) ease-out;\n\n\t\t&--animated {\n\t\t\ttransition:\n\t\t\t\ttransform var(--highlight-animation-duration) ease-out,\n\t\t\t\topacity var(--highlight-animation-duration) ease-out,\n\t\t\t\tbackground-color var(--highlight-animation-duration) ease-out;\n\t\t}\n\n\t\t&--visible {\n\t\t\topacity: 1;\n\t\t}\n\n\t\t// Over the active entry the highlight turns transparent so the active\n\t\t// entry's own static highlight shows through unchanged, while the\n\t\t// highlight still slides on and off it for a continuous motion.\n\t\t&--over-active {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\t// Reduced motion is handled globally: the --animation-quick variable is\n\t// collapsed under a prefers-reduced-motion media query by the server theme,\n\t// so these transitions become instant without a component-level override.\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_renderSlot"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import '../assets/NcAppNavigationNew-Bn8zj5lM.css';
2
- import { N as NcButton } from "./NcButton-QbPBynlU.mjs";
1
+ import '../assets/NcAppNavigationNew.css';
2
+ import { N as NcButton } from "./NcButton.mjs";
3
3
  import { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, createTextVNode, toDisplayString, renderSlot } from "vue";
4
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
4
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
5
5
  const _sfc_main = {
6
6
  components: {
7
7
  NcButton
@@ -69,4 +69,4 @@ const NcAppNavigationNew = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _s
69
69
  export {
70
70
  NcAppNavigationNew as N
71
71
  };
72
- //# sourceMappingURL=NcAppNavigationNew-Dspn3-4i.mjs.map
72
+ //# sourceMappingURL=NcAppNavigationNew.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppNavigationNew.mjs","sources":["../../src/components/NcAppNavigationNew/NcAppNavigationNew.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n <docs>\n### Usage\n\n ```\n <template>\n\t<NcAppNavigationNew text=\"New Element\">\n\t\t<template #icon>\n\t\t\t<Plus :size=\"20\" />\n\t\t</template>\n\t</NcAppNavigationNew>\n </template>\n <script>\n import Plus from 'vue-material-design-icons/Plus'\n\n export default {\n\tcomponents: {\n\t\tPlus,\n\t},\n }\n </script>\n ```\n </docs>\n\n<template>\n\t<div class=\"app-navigation-new\">\n\t\t<NcButton\n\t\t\t:id=\"buttonId\"\n\t\t\t:disabled\n\t\t\t:variant\n\t\t\t@click=\"$emit('click')\">\n\t\t\t<template #icon>\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</template>\n\t\t\t{{ text }}\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.ts'\n\nexport default {\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Id of the button\n\t\t */\n\t\tbuttonId: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Disabled state of the button\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Main text of the button\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * The color variant to use.\n\t\t *\n\t\t * @default 'primary'\n\t\t */\n\t\tvariant: {\n\t\t\ttype: String,\n\t\t\tdefault: 'primary',\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['primary', 'secondary', 'tertiary'].indexOf(value) !== -1\n\t\t\t},\n\t\t},\n\t},\n\n\temits: ['click'],\n}\n</script>\n\n<style lang=\"scss\" scoped>\n/* 'New' button */\n.app-navigation-new {\n\tdisplay: block;\n\tpadding: calc(var(--default-grid-baseline, 4px) * 2);\n\tbutton {\n\t\twidth: 100%;\n\t}\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_createVNode","_renderSlot","_createTextVNode"],"mappings":";;;AA8CA,MAAK,YAAU;AAAA,EACd,YAAY;AAAA,IACX;AAAA;EAGD,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,UAAU;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA;;;;IAMV,UAAU;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA;;;;IAMV,MAAM;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA;;;;;;IAQX,SAAS;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU,OAAO;AAChB,eAAO,CAAC,WAAW,aAAa,UAAU,EAAE,QAAQ,KAAK,MAAM;AAAA,MAChE;AAAA;;EAIF,OAAO,CAAC,OAAO;AAChB;AAhEM,MAAA,aAAA,EAAA,OAAM,qBAAoB;;;AAA/B,SAAAA,UAAA,GAAAC,mBAWM,OAXN,YAWM;AAAA,IAVLC,YASW,qBAAA;AAAA,MART,IAAI,OAAA;AAAA,MACJ,UAAA,OAAA;AAAA,MACA,SAAA,OAAA;AAAA,MACA,+CAAO,KAAA,MAAK,OAAA;AAAA;MACF,cACV,MAAoB;AAAA,QAApBC,WAAoB,KAAA,QAAA,QAAA,CAAA,GAAA,QAAA,IAAA;AAAA;uBACV,MACX;AAAA,QADWC,gBAAA,sBACR,OAAA,IAAI,GAAA,CAAA;AAAA;;;;;;"}
@@ -1,8 +1,8 @@
1
- import '../assets/NcAppNavigationNewItem-MaYQVcKF.css';
2
- import { N as NcInputConfirmCancel } from "./NcInputConfirmCancel-B6qC3s63.mjs";
3
- import { N as NcLoadingIcon } from "./NcLoadingIcon-BOVpFVQz.mjs";
1
+ import '../assets/NcAppNavigationNewItem.css';
2
+ import { N as NcInputConfirmCancel } from "./NcInputConfirmCancel.mjs";
3
+ import { N as NcLoadingIcon } from "./NcLoadingIcon.mjs";
4
4
  import { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, createBlock, renderSlot, toDisplayString, createCommentVNode, createVNode } from "vue";
5
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
5
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
6
6
  const _sfc_main = {
7
7
  name: "NcAppNavigationNewItem",
8
8
  components: {
@@ -118,4 +118,4 @@ const NcAppNavigationNewItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["render"
118
118
  export {
119
119
  NcAppNavigationNewItem as N
120
120
  };
121
- //# sourceMappingURL=NcAppNavigationNewItem-Cg8IJ6ZV.mjs.map
121
+ //# sourceMappingURL=NcAppNavigationNewItem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppNavigationNewItem.mjs","sources":["../../src/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\n#### New Item element\n```vue\n\t<template>\n\t\t<NcAppNavigationNewItem name=\"New Item\" @new-item=\"function(value){alert(value)}\">\n\t\t\t<template #icon>\n\t\t\t\t<Plus :size=\"20\" />\n\t\t\t</template>\n\t\t</NcAppNavigationNewItem>\n\t</template>\n\t<script>\n\timport Plus from 'vue-material-design-icons/Plus'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tPlus,\n\t\t},\n\t}\n\t</script>\n```\n\n#### New Item element with a loading animation instead of the icon\n```vue\n\t<template>\n\t\t<NcAppNavigationNewItem name=\"New Item\" :loading=\"true\">\n\t\t\t<template #icon>\n\t\t\t\t<Plus :size=\"20\" />\n\t\t\t</template>\n\t\t</NcAppNavigationNewItem>\n\t</template>\n\t<script>\n\timport Plus from 'vue-material-design-icons/Plus'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tPlus,\n\t\t},\n\t}\n\t</script>\n```\n</docs>\n\n<template>\n\t<li\n\t\tclass=\"app-navigation-entry\"\n\t\t:class=\"{\n\t\t\t'app-navigation-entry--newItemActive': newItemActive,\n\t\t}\">\n\t\t<!-- New Item -->\n\t\t<button class=\"app-navigation-entry-button\" @click=\"handleNewItem\">\n\t\t\t<span\n\t\t\t\tclass=\"app-navigation-entry-icon\"\n\t\t\t\t:class=\"{ [icon]: !loading }\">\n\t\t\t\t<NcLoadingIcon v-if=\"loading\" />\n\t\t\t\t<slot v-else name=\"icon\" />\n\t\t\t</span>\n\n\t\t\t<span v-if=\"!newItemActive\" class=\"app-navigation-new-item__name\" :title=\"name\">\n\t\t\t\t{{ name }}\n\t\t\t</span>\n\n\t\t\t<!-- new Item input -->\n\t\t\t<span v-if=\"newItemActive\" class=\"newItemContainer\">\n\t\t\t\t<NcInputConfirmCancel\n\t\t\t\t\tref=\"newItemInput\"\n\t\t\t\t\tv-model=\"newItemValue\"\n\t\t\t\t\t:placeholder=\"editPlaceholder !== '' ? editPlaceholder : name\"\n\t\t\t\t\t@cancel=\"cancelNewItem\"\n\t\t\t\t\t@confirm=\"handleNewItemDone\" />\n\t\t\t</span>\n\t\t</button>\n\t</li>\n</template>\n\n<script>\nimport NcInputConfirmCancel from '../NcAppNavigationItem/NcInputConfirmCancel.vue'\nimport NcLoadingIcon from '../NcLoadingIcon/index.ts'\n\nexport default {\n\tname: 'NcAppNavigationNewItem',\n\n\tcomponents: {\n\t\tNcInputConfirmCancel,\n\t\tNcLoadingIcon,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The name of the element.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Refers to the icon on the left, this prop accepts a class\n\t\t * like 'icon-category-enabled'.\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Displays a loading animated icon on the left of the element\n\t\t * instead of the icon.\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 * Only for 'editable' items, sets label for the edit action button.\n\t\t */\n\t\teditLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Sets the placeholder text for the editing form.\n\t\t */\n\t\teditPlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: ['newItem'],\n\n\tdata() {\n\t\treturn {\n\t\t\tnewItemValue: '',\n\t\t\tnewItemActive: false,\n\t\t}\n\t},\n\n\tmethods: {\n\t\thandleNewItem() {\n\t\t\tif (!this.loading) {\n\t\t\t\tthis.newItemActive = true\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.$refs.newItemInput.focusInput()\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tcancelNewItem() {\n\t\t\tthis.newItemActive = false\n\t\t},\n\n\t\thandleNewItemDone() {\n\t\t\tthis.$emit('newItem', this.newItemValue)\n\t\t\tthis.newItemValue = ''\n\t\t\tthis.newItemActive = false\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n@use '../../assets/NcAppNavigationItem.scss';\n\n.app-navigation-new-item__name {\n\toverflow: hidden;\n\tmax-width: 100%;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tpadding-inline-start: 7px;\n\tfont-size: 14px;\n}\n\n.newItemContainer {\n\twidth: calc(100% - var(--default-clickable-area));\n\tmargin: auto;\n}\n</style>\n"],"names":["_createElementBlock","_createElementVNode","_normalizeClass","_createBlock","_renderSlot","_openBlock","_createVNode"],"mappings":";;;;AAqFA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,YAAY;AAAA,IACX;AAAA,IACA;AAAA;EAGD,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA;;;;;IAOX,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOV,SAAS;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,WAAW;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMV,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA;;EAIX,OAAO,CAAC,SAAS;AAAA,EAEjB,OAAO;AACN,WAAO;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,IAChB;AAAA,EACD;AAAA,EAEA,SAAS;AAAA,IACR,gBAAgB;AACf,UAAI,CAAC,KAAK,SAAS;AAClB,aAAK,gBAAgB;AACrB,aAAK,UAAU,MAAM;AACpB,eAAK,MAAM,aAAa,WAAU;AAAA,QACnC,CAAC;AAAA,MACF;AAAA,IACD;AAAA,IAEA,gBAAgB;AACf,WAAK,gBAAgB;AAAA,IACtB;AAAA,IAEA,oBAAoB;AACnB,WAAK,MAAM,WAAW,KAAK,YAAY;AACvC,WAAK,eAAe;AACpB,WAAK,gBAAgB;AAAA,IACtB;AAAA;AAEF;;;;EAjG8B,OAAM;;;;;sBAnBnCA,mBA4BK,MAAA;AAAA,IA3BJ,uBAAM,wBAAsB;AAAA,6CACwB,MAAA;AAAA;;IAIpDC,mBAqBS,UAAA;AAAA,MArBD,OAAM;AAAA,MAA+B,gDAAO,SAAA,iBAAA,SAAA,cAAA,GAAA,IAAA;AAAA;MACnDA,mBAKO,QAAA;AAAA,QAJN,OAAKC,eAAA,CAAC,6BAA2B,EAAA,CACtB,OAAA,IAAI,IAAI,OAAA,SAAO,CAAA;AAAA;QACL,OAAA,wBAArBC,YAAgC,0BAAA,EAAA,KAAA,EAAA,CAAA,KAChCC,WAA2B,KAAA,QAAA,QAAA,EAAA,KAAA,EAAA,GAAA,QAAA,IAAA;AAAA;OAGf,MAAA,8BAAbJ,mBAEO,QAAA;AAAA;QAFqB,OAAM;AAAA,QAAiC,OAAO,OAAA;AAAA,yBACtE,OAAA,IAAI,GAAA,GAAA,UAAA;MAII,MAAA,iBAAZK,aAAAL,mBAOO,QAPP,YAOO;AAAA,QANNM,YAKgC,iCAAA;AAAA,UAJ/B,KAAI;AAAA,sBACK,MAAA;AAAA,uEAAA,MAAA,eAAY;AAAA,UACpB,aAAa,OAAA,oBAAe,KAAU,OAAA,kBAAkB,OAAA;AAAA,UACxD,UAAQ,SAAA;AAAA,UACR,WAAS,SAAA;AAAA;;;;;;"}
@@ -1,11 +1,11 @@
1
- import '../assets/NcAppNavigationSearch-DD7mo6OW.css';
1
+ import '../assets/NcAppNavigationSearch.css';
2
2
  import { defineComponent, useModel, useSlots, ref, useTemplateRef, watch, openBlock, createElementBlock, normalizeClass, createVNode, unref, withCtx, renderSlot, createCommentVNode, mergeModels, nextTick } from "vue";
3
3
  import { useFocusWithin } from "@vueuse/core";
4
- import { I as IconClose } from "./Close-CuhcJnX2.mjs";
5
- import { N as NcInputField } from "./NcInputField-B1bGxYHt.mjs";
6
- import { r as register, C as t44, u as t16, a as t } from "./_l10n-CG4CuN3H.mjs";
7
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
8
- register(t16, t44);
4
+ import { I as IconClose } from "./Close.mjs";
5
+ import { N as NcInputField } from "./NcInputField.mjs";
6
+ import { r as register, C as t45, v as t17, a as t } from "./_l10n.mjs";
7
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
8
+ register(t17, t45);
9
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
10
10
  __name: "NcAppNavigationSearch",
11
11
  props: /* @__PURE__ */ mergeModels({
@@ -101,4 +101,4 @@ const NcAppNavigationSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeI
101
101
  export {
102
102
  NcAppNavigationSearch as N
103
103
  };
104
- //# sourceMappingURL=NcAppNavigationSearch-CiOKjV3M.mjs.map
104
+ //# sourceMappingURL=NcAppNavigationSearch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppNavigationSearch.mjs","sources":["../../src/components/NcAppNavigationSearch/NcAppNavigationSearch.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\n```vue\n<template>\n\t<div class=\"styleguide-wrapper\">\n\t\t<NcContent app-name=\"styleguide-app-navigation\" class=\"content-styleguidist\">\n\t\t\t<NcAppNavigation>\n\t\t\t\t<template #search>\n\t\t\t\t\t<NcAppNavigationSearch v-model=\"searchQuery\">\n\t\t\t\t\t\t<template #actions>\n\t\t\t\t\t\t\t<NcActions aria-label=\"Filters\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconFilterOutline :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t<IconAccountOutline :size=\"20\" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\tFilter by name\n\t\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t<IconCalendarAccountOutline :size=\"20\" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\tFilter by year\n\t\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t</NcActions>\n\t\t\t\t\t\t\t<NcButton aria-label=\"Search globally\" variant=\"tertiary\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconSearchGlobalOutline :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationSearch>\n\t\t\t\t</template>\n\t\t\t\t<template #list>\n\t\t\t\t\t<NcAppNavigationItem name=\"First navigation entry\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconStarOutline :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationItem>\n\t\t\t\t\t<NcAppNavigationItem name=\"Second navigation entry\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconStarOutline :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcAppNavigationItem>\n\t\t\t\t</template>\n\t\t\t</NcAppNavigation>\n\t\t\t<NcAppContent>\n\t\t\t\t<ul class=\"fake-content\">\n\t\t\t\t\t<li>Search query: {{ searchQuery }}</li>\n\t\t\t\t\t<li v-for=\"(item, index) in items\" :key=\"index\">\n\t\t\t\t\t\t{{ item }}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</NcAppContent>\n\t\t</NcContent>\n\t</div>\n</template>\n<script>\nimport IconAccountOutline from 'vue-material-design-icons/AccountOutline.vue'\nimport IconCalendarAccountOutline from 'vue-material-design-icons/CalendarAccountOutline.vue'\nimport IconFilterOutline from 'vue-material-design-icons/FilterOutline.vue'\nimport IconSearchGlobalOutline from 'vue-material-design-icons/CloudSearchOutline.vue'\nimport IconStarOutline from 'vue-material-design-icons/StarOutline.vue'\n\nconst exampleItem = ['Mary', 'Patricia', 'James', 'Michael']\n\nexport default {\n\tcomponents: {\n\t\tIconAccountOutline,\n\t\tIconCalendarAccountOutline,\n\t\tIconFilterOutline,\n\t\tIconSearchGlobalOutline,\n\t\tIconStarOutline,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsearchQuery: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\titems() {\n\t\t\treturn exampleItem.filter((item) => item.toLocaleLowerCase().includes(this.searchQuery.toLocaleLowerCase()))\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n/* This styles just mock NcContent and NcAppContent */\n.content-styleguidist {\n\tposition: relative !important;\n\tmargin: 0 !important;\n\t/* prevent jumping */\n\tmin-height: 200px;\n}\n\n.content-styleguidist > * {\n\theight: auto;\n}\n\n.fake-content {\n\tpadding: var(--app-navigation-padding);\n\tpadding-top: calc(2 * var(--app-navigation-padding) + var(--default-clickable-area));\n}\n\n.styleguide-wrapper {\n\tbackground-color: var(--color-background-plain);\n\tpadding: var(--body-container-margin);\n}\n</style>\n```\n</docs>\n\n<template>\n\t<div\n\t\tclass=\"app-navigation-search\"\n\t\t:class=\"{\n\t\t\t'app-navigation-search--has-actions': hasActions(),\n\t\t}\">\n\t\t<NcInputField\n\t\t\tref=\"inputElement\"\n\t\t\tv-model=\"model\"\n\t\t\t:aria-label=\"label\"\n\t\t\tclass=\"app-navigation-search__input\"\n\t\t\tlabelOutside\n\t\t\t:placeholder=\"placeholder ?? label\"\n\t\t\t:showTrailingButton=\"model.length > 0\"\n\t\t\t:trailingButtonLabel=\"t('Clear search')\"\n\t\t\ttype=\"search\"\n\t\t\t@trailingButtonClick=\"onCloseSearch\">\n\t\t\t<template #trailing-button-icon>\n\t\t\t\t<IconClose :size=\"20\" />\n\t\t\t</template>\n\t\t</NcInputField>\n\t\t<div\n\t\t\tv-if=\"hasActions()\"\n\t\t\tref=\"actionsContainer\"\n\t\t\tclass=\"app-navigation-search__actions\"\n\t\t\t:class=\"{\n\t\t\t\t'app-navigation-search__actions--hidden': !showActions,\n\t\t\t\t'hidden-visually': hideActions,\n\t\t\t}\">\n\t\t\t<slot name=\"actions\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useFocusWithin } from '@vueuse/core'\nimport { nextTick, ref, useSlots, useTemplateRef, watch } from 'vue'\nimport IconClose from 'vue-material-design-icons/Close.vue'\nimport NcInputField from '../NcInputField/NcInputField.vue'\nimport { t } from '../../l10n.ts'\n\n/**\n * Current search input\n */\nconst model = defineModel<string>({ default: '' })\n\ndefineProps({\n\t/**\n\t * Text used to label the search input\n\t */\n\tlabel: {\n\t\ttype: String,\n\t\tdefault: t('Search …'),\n\t},\n\n\t/**\n\t * Placeholder of the search input\n\t * By default the value of `label` is used.\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: null,\n\t},\n})\n\nconst slots = useSlots()\n\nconst inputElement = ref()\nconst { focused: inputHasFocus } = useFocusWithin(inputElement)\n\n/** Timeout used to define when the search input is fully expanded */\nconst transitionTimeout = Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue('--animation-quick')) || 100\n\nconst actionsContainerElement = useTemplateRef('actionsContainer')\nconst hasActions = () => !!slots.actions?.({})\nconst showActions = ref(true)\nconst timeoutId = ref()\n/** This is used to hide the actions after the transition is done */\nconst hideActions = ref(false)\nwatch(inputHasFocus, () => {\n\tshowActions.value = !inputHasFocus.value\n\twindow.clearTimeout(timeoutId.value)\n\tif (showActions.value) {\n\t\thideActions.value = false\n\t} else {\n\t\t// If the transition is done, we fully hide the actions visually\n\t\twindow.setTimeout(() => {\n\t\t\thideActions.value = !showActions.value\n\t\t}, transitionTimeout)\n\t}\n})\n\n/**\n * Handle close the search\n */\nfunction onCloseSearch() {\n\tmodel.value = ''\n\tif (hasActions()) {\n\t\tshowActions.value = true\n\t\tnextTick(() => actionsContainerElement.value?.querySelector('button')?.focus())\n\t}\n}\n</script>\n\n<style scoped lang=\"scss\">\n.app-navigation-search {\n\tdisplay: flex;\n\tgap: var(--app-navigation-padding);\n\tpadding: var(--app-navigation-padding);\n\n\t&__input {\n\t\t--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n\t}\n\n\t&--has-actions &__input {\n\t\tflex-grow: 1;\n\t\tz-index: 3;\n\t}\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tgap: var(--default-grid-baseline);\n\n\t\tmargin-inline-start: 0;\n\t\tmax-width: calc(2 * var(--default-clickable-area) + var(--default-grid-baseline));\n\t\tmax-height: var(--default-clickable-area);\n\n\t\ttransition: margin-inline-start var(--animation-quick);\n\n\t\t&--hidden {\n\t\t\tmargin-inline-start: calc(-1 * var(--default-clickable-area));\n\t\t}\n\t}\n}\n</style>\n"],"names":["_useModel","_createElementBlock","_createVNode","_unref","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsKA,UAAM,QAAQA,SAAmB,SAAA,YAAgB;AAqBjD,UAAM,QAAQ,SAAA;AAEd,UAAM,eAAe,IAAA;AACrB,UAAM,EAAE,SAAS,kBAAkB,eAAe,YAAY;AAG9D,UAAM,oBAAoB,OAAO,SAAS,OAAO,iBAAiB,OAAO,SAAS,IAAI,EAAE,iBAAiB,mBAAmB,CAAC,KAAK;AAElI,UAAM,0BAA0B,eAAe,kBAAkB;AACjE,UAAM,aAAa,MAAM,CAAC,CAAC,MAAM,UAAU,CAAA,CAAE;AAC7C,UAAM,cAAc,IAAI,IAAI;AAC5B,UAAM,YAAY,IAAA;AAElB,UAAM,cAAc,IAAI,KAAK;AAC7B,UAAM,eAAe,MAAM;AAC1B,kBAAY,QAAQ,CAAC,cAAc;AACnC,aAAO,aAAa,UAAU,KAAK;AACnC,UAAI,YAAY,OAAO;AACtB,oBAAY,QAAQ;AAAA,MACrB,OAAO;AAEN,eAAO,WAAW,MAAM;AACvB,sBAAY,QAAQ,CAAC,YAAY;AAAA,QAClC,GAAG,iBAAiB;AAAA,MACrB;AAAA,IACD,CAAC;AAKD,aAAS,gBAAgB;AACxB,YAAM,QAAQ;AACd,UAAI,cAAc;AACjB,oBAAY,QAAQ;AACpB,iBAAS,MAAM,wBAAwB,OAAO,cAAc,QAAQ,GAAG,OAAO;AAAA,MAC/E;AAAA,IACD;;0BApGCC,mBA8BM,OAAA;AAAA,QA7BL,uBAAM,yBAAuB;AAAA,gDACsB,WAAA;AAAA,QAAU;;QAG7DC,YAce,cAAA;AAAA,mBAbV;AAAA,UAAJ,KAAI;AAAA,sBACK,MAAA;AAAA,uEAAA,MAAK,QAAA;AAAA,UACb,cAAY,QAAA;AAAA,UACb,OAAM;AAAA,UACN,cAAA;AAAA,UACC,aAAa,QAAA,eAAe,QAAA;AAAA,UAC5B,oBAAoB,MAAA,MAAM,SAAM;AAAA,UAChC,qBAAqBC,MAAA,CAAA,EAAC,cAAA;AAAA,UACvB,MAAK;AAAA,UACJ,uBAAqB;AAAA,QAAA;UACX,gCACV,MAAwB;AAAA,YAAxBD,YAAwB,WAAA,EAAZ,MAAM,IAAE;AAAA,UAAA;;;QAIf,6BADPD,mBASM,OAAA;AAAA;UAPL,KAAI;AAAA,UACJ,uBAAM,kCAAgC;AAAA,uDACmB,YAAA;AAAA,+BAAoC,YAAA;AAAA,UAAA;;UAI7FG,WAAuB,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,QAAA;;;;;;"}
@@ -1,14 +1,14 @@
1
- import '../assets/NcAppNavigationSettings-B4ZZe32B.css';
1
+ import '../assets/NcAppNavigationSettings.css';
2
2
  import { defineComponent, ref, useTemplateRef, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Transition, withDirectives, renderSlot, vShow } from "vue";
3
- import { C as mdiCog, D as mdiCogOutline } from "./mdi-CpchYUUV.mjs";
3
+ import { x as mdiCog, y as mdiCogOutline } from "./mdi.mjs";
4
4
  import { onClickOutside } from "@vueuse/core";
5
- import { N as NcButton } from "./NcButton-QbPBynlU.mjs";
6
- import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-g8ubWhoz.mjs";
7
- import { r as register, B as t47, a as t } from "./_l10n-CG4CuN3H.mjs";
8
- import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
9
- import { a as isLegacy } from "./legacy-BoqDmOCa.mjs";
10
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
11
- register(t47);
5
+ import { N as NcButton } from "./NcButton.mjs";
6
+ import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper.mjs";
7
+ import { r as register, B as t48, a as t } from "./_l10n.mjs";
8
+ import { c as createElementId } from "./createElementId.mjs";
9
+ import { a as isLegacy } from "./legacy.mjs";
10
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
11
+ register(t48);
12
12
  const _hoisted_1 = ["id"];
13
13
  const _sfc_main = /* @__PURE__ */ defineComponent({
14
14
  __name: "NcAppNavigationSettings",
@@ -74,12 +74,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
74
74
  };
75
75
  }
76
76
  });
77
- const container = "_container_F8eZN";
78
- const header = "_header_6cJQC";
79
- const button = "_button_WIBAi";
80
- const content = "_content_n4gdW";
81
- const animationActive = "_animationActive_Qy1KZ";
82
- const animationStop = "_animationStop_xLHlm";
77
+ const container = "_container_xI0aW";
78
+ const header = "_header_SBKjd";
79
+ const button = "_button_q-hTK";
80
+ const content = "_content_dIvPc";
81
+ const animationActive = "_animationActive_QkEzk";
82
+ const animationStop = "_animationStop_oedIi";
83
83
  const style0 = {
84
84
  container,
85
85
  header,
@@ -95,4 +95,4 @@ const NcAppNavigationSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssM
95
95
  export {
96
96
  NcAppNavigationSettings as N
97
97
  };
98
- //# sourceMappingURL=NcAppNavigationSettings-1BzAhIDg.mjs.map
98
+ //# sourceMappingURL=NcAppNavigationSettings.mjs.map