@nextcloud/vue 8.33.0 → 8.35.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 (572) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +2 -2
  3. package/dist/Components/NcActionButton.cjs +1 -1
  4. package/dist/Components/NcActionButton.mjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  6. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  7. package/dist/Components/NcActionInput.cjs +1 -1
  8. package/dist/Components/NcActionInput.mjs +1 -1
  9. package/dist/Components/NcActionTextEditable.cjs +1 -1
  10. package/dist/Components/NcActionTextEditable.mjs +1 -1
  11. package/dist/Components/NcActions.cjs +1 -1
  12. package/dist/Components/NcActions.mjs +1 -1
  13. package/dist/Components/NcAppContent.cjs +1 -1
  14. package/dist/Components/NcAppContent.mjs +1 -1
  15. package/dist/Components/NcAppNavigation.cjs +1 -1
  16. package/dist/Components/NcAppNavigation.mjs +1 -1
  17. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  18. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  19. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  20. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  21. package/dist/Components/NcAppNavigationNew.cjs +1 -1
  22. package/dist/Components/NcAppNavigationNew.mjs +1 -1
  23. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  24. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  25. package/dist/Components/NcAppNavigationSearch.cjs +1 -1
  26. package/dist/Components/NcAppNavigationSearch.mjs +1 -1
  27. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  28. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  29. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  30. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  31. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  32. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  33. package/dist/Components/NcAppSettingsSection.cjs +1 -1
  34. package/dist/Components/NcAppSettingsSection.mjs +1 -1
  35. package/dist/Components/NcAppSettingsSectionShortcuts.cjs +2 -2
  36. package/dist/Components/NcAppSettingsSectionShortcuts.mjs +1 -1
  37. package/dist/Components/NcAppSettingsShortcutsSection.cjs +4 -0
  38. package/dist/Components/NcAppSettingsShortcutsSection.cjs.map +1 -0
  39. package/dist/Components/NcAppSettingsShortcutsSection.mjs +5 -0
  40. package/dist/Components/NcAppSettingsShortcutsSection.mjs.map +1 -0
  41. package/dist/Components/NcAppSidebar.cjs +1 -1
  42. package/dist/Components/NcAppSidebar.mjs +1 -1
  43. package/dist/Components/NcAssistantButton.cjs +1 -1
  44. package/dist/Components/NcAssistantButton.mjs +1 -1
  45. package/dist/Components/NcAssistantIcon.cjs +1 -1
  46. package/dist/Components/NcAssistantIcon.mjs +1 -1
  47. package/dist/Components/NcAvatar.cjs +1 -1
  48. package/dist/Components/NcAvatar.mjs +1 -1
  49. package/dist/Components/NcBreadcrumb.cjs +1 -1
  50. package/dist/Components/NcBreadcrumb.mjs +1 -1
  51. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  52. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  53. package/dist/Components/NcButton.cjs +1 -1
  54. package/dist/Components/NcButton.mjs +1 -1
  55. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  56. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  57. package/dist/Components/NcChip.cjs +7 -7
  58. package/dist/Components/NcChip.cjs.map +1 -1
  59. package/dist/Components/NcChip.mjs +7 -7
  60. package/dist/Components/NcChip.mjs.map +1 -1
  61. package/dist/Components/NcCollectionList.cjs +1 -1
  62. package/dist/Components/NcCollectionList.mjs +1 -1
  63. package/dist/Components/NcColorPicker.cjs +1 -1
  64. package/dist/Components/NcColorPicker.mjs +1 -1
  65. package/dist/Components/NcContent.cjs +1 -1
  66. package/dist/Components/NcContent.mjs +1 -1
  67. package/dist/Components/NcDashboardWidget.cjs +1 -1
  68. package/dist/Components/NcDashboardWidget.mjs +1 -1
  69. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  70. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  71. package/dist/Components/NcDateTimePicker.cjs +5 -5
  72. package/dist/Components/NcDateTimePicker.mjs +5 -5
  73. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  74. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  75. package/dist/Components/NcDialog.cjs +1 -1
  76. package/dist/Components/NcDialog.mjs +1 -1
  77. package/dist/Components/NcDialogButton.cjs +1 -1
  78. package/dist/Components/NcDialogButton.mjs +1 -1
  79. package/dist/Components/NcEmojiPicker.cjs +1 -1
  80. package/dist/Components/NcEmojiPicker.mjs +1 -1
  81. package/dist/Components/NcFormBox.cjs +4 -0
  82. package/dist/Components/NcFormBox.cjs.map +1 -0
  83. package/dist/Components/NcFormBox.mjs +5 -0
  84. package/dist/Components/NcFormBox.mjs.map +1 -0
  85. package/dist/Components/NcFormBoxButton.cjs +4 -0
  86. package/dist/Components/NcFormBoxButton.cjs.map +1 -0
  87. package/dist/Components/NcFormBoxButton.mjs +5 -0
  88. package/dist/Components/NcFormBoxButton.mjs.map +1 -0
  89. package/dist/Components/NcFormBoxCopyButton.cjs +4 -0
  90. package/dist/Components/NcFormBoxCopyButton.cjs.map +1 -0
  91. package/dist/Components/NcFormBoxCopyButton.mjs +5 -0
  92. package/dist/Components/NcFormBoxCopyButton.mjs.map +1 -0
  93. package/dist/Components/NcFormBoxSwitch.cjs +4 -0
  94. package/dist/Components/NcFormBoxSwitch.cjs.map +1 -0
  95. package/dist/Components/NcFormBoxSwitch.mjs +5 -0
  96. package/dist/Components/NcFormBoxSwitch.mjs.map +1 -0
  97. package/dist/Components/NcFormGroup.cjs +4 -0
  98. package/dist/Components/NcFormGroup.cjs.map +1 -0
  99. package/dist/Components/NcFormGroup.mjs +5 -0
  100. package/dist/Components/NcFormGroup.mjs.map +1 -0
  101. package/dist/Components/NcHeaderButton.cjs +1 -1
  102. package/dist/Components/NcHeaderButton.mjs +1 -1
  103. package/dist/Components/NcHeaderMenu.cjs +1 -1
  104. package/dist/Components/NcHeaderMenu.mjs +1 -1
  105. package/dist/Components/NcHotkey.cjs +1 -1
  106. package/dist/Components/NcHotkey.mjs +1 -1
  107. package/dist/Components/NcHotkeyList.cjs +1 -1
  108. package/dist/Components/NcHotkeyList.mjs +1 -1
  109. package/dist/Components/NcIconSvgWrapper.cjs +1 -1
  110. package/dist/Components/NcIconSvgWrapper.mjs +1 -1
  111. package/dist/Components/NcInputField.cjs +1 -1
  112. package/dist/Components/NcInputField.mjs +1 -1
  113. package/dist/Components/NcKbd.cjs +1 -1
  114. package/dist/Components/NcKbd.mjs +1 -1
  115. package/dist/Components/NcListItem.cjs +1 -1
  116. package/dist/Components/NcListItem.mjs +1 -1
  117. package/dist/Components/NcListItemIcon.cjs +1 -1
  118. package/dist/Components/NcListItemIcon.mjs +1 -1
  119. package/dist/Components/NcModal.cjs +7 -7
  120. package/dist/Components/NcModal.mjs +7 -7
  121. package/dist/Components/NcNoteCard.cjs +2 -2
  122. package/dist/Components/NcNoteCard.cjs.map +1 -1
  123. package/dist/Components/NcNoteCard.mjs +2 -2
  124. package/dist/Components/NcNoteCard.mjs.map +1 -1
  125. package/dist/Components/NcPasswordField.cjs +1 -1
  126. package/dist/Components/NcPasswordField.mjs +1 -1
  127. package/dist/Components/NcRadioGroup.cjs +1 -1
  128. package/dist/Components/NcRadioGroup.mjs +1 -1
  129. package/dist/Components/NcRadioGroupButton.cjs +1 -1
  130. package/dist/Components/NcRadioGroupButton.mjs +1 -1
  131. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  132. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  133. package/dist/Components/NcRichContenteditable.cjs +1 -1
  134. package/dist/Components/NcRichContenteditable.mjs +1 -1
  135. package/dist/Components/NcRichText.cjs +2 -2
  136. package/dist/Components/NcRichText.mjs +3 -3
  137. package/dist/Components/NcSelect.cjs +1 -1
  138. package/dist/Components/NcSelect.mjs +1 -1
  139. package/dist/Components/NcSelectTags.cjs +1 -1
  140. package/dist/Components/NcSelectTags.mjs +1 -1
  141. package/dist/Components/NcSelectUsers.cjs +1 -1
  142. package/dist/Components/NcSelectUsers.mjs +1 -1
  143. package/dist/Components/NcSettingsInputText.cjs +1 -1
  144. package/dist/Components/NcSettingsInputText.mjs +1 -1
  145. package/dist/Components/NcSettingsSection.cjs +1 -1
  146. package/dist/Components/NcSettingsSection.mjs +1 -1
  147. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  148. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  149. package/dist/Components/NcTextArea.cjs +1 -1
  150. package/dist/Components/NcTextArea.mjs +1 -1
  151. package/dist/Components/NcTextField.cjs +1 -1
  152. package/dist/Components/NcTextField.mjs +1 -1
  153. package/dist/Components/NcTimezonePicker.cjs +1 -1
  154. package/dist/Components/NcTimezonePicker.mjs +1 -1
  155. package/dist/Components/NcUserBubble.cjs +1 -1
  156. package/dist/Components/NcUserBubble.mjs +1 -1
  157. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  158. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  159. package/dist/Composables/useFormatDateTime.cjs +1 -1
  160. package/dist/Composables/useFormatDateTime.mjs +1 -1
  161. package/dist/Composables/useHotKey.cjs +1 -1
  162. package/dist/Composables/useHotKey.cjs.map +1 -1
  163. package/dist/Composables/useHotKey.mjs +1 -1
  164. package/dist/Composables/useHotKey.mjs.map +1 -1
  165. package/dist/Functions/reference.cjs +1 -1
  166. package/dist/Functions/reference.mjs +1 -1
  167. package/dist/Functions/usernameToColor.cjs +1 -1
  168. package/dist/Functions/usernameToColor.mjs +1 -1
  169. package/dist/assets/{NcActions-B4-9qwLn.css → NcActions-CVw1SmBu.css} +11 -11
  170. package/dist/assets/{NcAppContent-Ri_iNfn5.css → NcAppContent-CY_qJiOL.css} +19 -19
  171. package/dist/assets/{NcAppNavigation-Bg4Oe7WC.css → NcAppNavigation-Dbpqdigp.css} +12 -12
  172. package/dist/assets/{NcAppNavigationItem-DSL2nLRf.css → NcAppNavigationItem-De04deJW.css} +36 -36
  173. package/dist/assets/{NcAppNavigationSearch-o97SOfOb.css → NcAppNavigationSearch-DWhTZbjb.css} +6 -6
  174. package/dist/assets/{NcAppSettingsDialog-2axspyf-.css → NcAppSettingsDialog-p8V4OFR1.css} +39 -10
  175. package/dist/assets/NcAppSettingsSection-Yg4NYCih.css +46 -0
  176. package/dist/assets/{NcAppSidebar-Bd2cj1W-.css → NcAppSidebar-DujbJ9sN.css} +44 -44
  177. package/dist/assets/{NcAvatar-Cm4kVIfS.css → NcAvatar-CK9ipsjF.css} +24 -24
  178. package/dist/assets/{NcButton-uQUvp7DS.css → NcButton-n-KI8Bqb.css} +46 -46
  179. package/dist/assets/{NcChip-ByvuZS2-.css → NcChip-DLfUzq07.css} +12 -12
  180. package/dist/assets/{NcDashboardWidget-DzJMoJ_B.css → NcDashboardWidget-CodY3evn.css} +12 -12
  181. package/dist/assets/{NcDateTimePicker-BmMuUpwr.css → NcDateTimePicker-DzPH7x0i.css} +8 -8
  182. package/dist/assets/NcFormBox-D-kcijXp.css +54 -0
  183. package/dist/assets/{NcAppSettingsSection-CLSVNQzv.css → NcFormBoxButton-C6EvdLK4.css} +13 -11
  184. package/dist/assets/NcFormBoxItem-BfXKp9xJ.css +88 -0
  185. package/dist/assets/NcFormBoxSwitch-BmyNQCbA.css +37 -0
  186. package/dist/assets/NcFormGroup-BrD0Scm7.css +43 -0
  187. package/dist/assets/{NcHotkey-QklVKSyr.css → NcHotkey-4yi1Hobg.css} +10 -9
  188. package/dist/assets/NcHotkeyList-gAZN0WIu.css +8 -0
  189. package/dist/assets/{NcIconSvgWrapper-DJQ2Kuip.css → NcIconSvgWrapper-Cm1Dmlij.css} +7 -7
  190. package/dist/assets/{NcInputField-CtUAgq1i.css → NcInputField-DDJ6W_1o.css} +84 -63
  191. package/dist/assets/{NcListItem-rxOwDYE-.css → NcListItem-BX2N-9Dt.css} +44 -44
  192. package/dist/assets/{NcListItemIcon-Co3jVZZ8.css → NcListItemIcon-BDyiLlk2.css} +13 -13
  193. package/dist/assets/{NcNoteCard-Dz5-u2BY.css → NcNoteCard-CwNXZ4vV.css} +12 -12
  194. package/dist/assets/{NcPasswordField-mhXQk8aT.css → NcPasswordField-CiN_phAQ.css} +2 -2
  195. package/dist/assets/NcRadioGroup-1zpSX8V5.css +21 -0
  196. package/dist/assets/{NcRadioGroupButton-qxDfssOp.css → NcRadioGroupButton-DRZ1_-yY.css} +11 -19
  197. package/dist/assets/{NcRichContenteditable-CO5ziuZO.css → NcRichContenteditable-BjQ4qHUO.css} +11 -11
  198. package/dist/assets/{NcRichText-BpXupu1n.css → NcRichText-C72XMOoz.css} +109 -86
  199. package/dist/assets/{NcSelect-B1pyRV6j.css → NcSelect-z8dCuG3q.css} +53 -6
  200. package/dist/assets/NcTextArea-Tr_3gutt.css +156 -0
  201. package/dist/chunks/{NcActionButton-DSq_luox.cjs → NcActionButton-BS9Mv3XD.cjs} +3 -3
  202. package/dist/chunks/{NcActionButton-DSq_luox.cjs.map → NcActionButton-BS9Mv3XD.cjs.map} +1 -1
  203. package/dist/chunks/{NcActionButton-CD1Z-o2Y.mjs → NcActionButton-CECxOkhK.mjs} +3 -3
  204. package/dist/chunks/{NcActionButton-CD1Z-o2Y.mjs.map → NcActionButton-CECxOkhK.mjs.map} +1 -1
  205. package/dist/chunks/{NcActionButtonGroup-DKVCsZhH.cjs → NcActionButtonGroup-CbKrDPie.cjs} +2 -2
  206. package/dist/chunks/{NcActionButtonGroup-DKVCsZhH.cjs.map → NcActionButtonGroup-CbKrDPie.cjs.map} +1 -1
  207. package/dist/chunks/{NcActionButtonGroup-Bd-SOAHU.mjs → NcActionButtonGroup-D_ldp8Lw.mjs} +2 -2
  208. package/dist/chunks/{NcActionButtonGroup-Bd-SOAHU.mjs.map → NcActionButtonGroup-D_ldp8Lw.mjs.map} +1 -1
  209. package/dist/chunks/{NcActionInput-D4MLI-0P.mjs → NcActionInput-CB9jcc0_.mjs} +5 -5
  210. package/dist/chunks/{NcActionInput-D4MLI-0P.mjs.map → NcActionInput-CB9jcc0_.mjs.map} +1 -1
  211. package/dist/chunks/{NcActionInput-BMUreHhp.cjs → NcActionInput-Cd7bhV5-.cjs} +5 -5
  212. package/dist/chunks/{NcActionInput-BMUreHhp.cjs.map → NcActionInput-Cd7bhV5-.cjs.map} +1 -1
  213. package/dist/chunks/{NcActionTextEditable-5mNFl7Jm.mjs → NcActionTextEditable-CNEW3Fav.mjs} +3 -3
  214. package/dist/chunks/{NcActionTextEditable-5mNFl7Jm.mjs.map → NcActionTextEditable-CNEW3Fav.mjs.map} +1 -1
  215. package/dist/chunks/{NcActionTextEditable-C8B1qqqe.cjs → NcActionTextEditable-D-peY-RA.cjs} +3 -3
  216. package/dist/chunks/{NcActionTextEditable-C8B1qqqe.cjs.map → NcActionTextEditable-D-peY-RA.cjs.map} +1 -1
  217. package/dist/chunks/{NcActions-BvFVkIzX.mjs → NcActions-C-CwY6XQ.mjs} +44 -33
  218. package/dist/chunks/NcActions-C-CwY6XQ.mjs.map +1 -0
  219. package/dist/chunks/{NcActions-CF9VxHHD.cjs → NcActions-S-0Ec5lH.cjs} +43 -32
  220. package/dist/chunks/NcActions-S-0Ec5lH.cjs.map +1 -0
  221. package/dist/chunks/{NcAppContent-C7hwN-sU.mjs → NcAppContent-BvgsOP0K.mjs} +8 -11
  222. package/dist/chunks/NcAppContent-BvgsOP0K.mjs.map +1 -0
  223. package/dist/chunks/{NcAppContent-BSyhjn2J.cjs → NcAppContent-CMntmSFj.cjs} +8 -11
  224. package/dist/chunks/NcAppContent-CMntmSFj.cjs.map +1 -0
  225. package/dist/chunks/{NcAppNavigation-DApCpI_F.cjs → NcAppNavigation-BcFTYsgM.cjs} +4 -4
  226. package/dist/chunks/NcAppNavigation-BcFTYsgM.cjs.map +1 -0
  227. package/dist/chunks/{NcAppNavigation-B2cKVKBH.mjs → NcAppNavigation-DgekTp_z.mjs} +4 -4
  228. package/dist/chunks/NcAppNavigation-DgekTp_z.mjs.map +1 -0
  229. package/dist/chunks/{NcAppNavigationCaption-BOHmVyQb.cjs → NcAppNavigationCaption-1-KiRt-N.cjs} +2 -2
  230. package/dist/chunks/{NcAppNavigationCaption-BOHmVyQb.cjs.map → NcAppNavigationCaption-1-KiRt-N.cjs.map} +1 -1
  231. package/dist/chunks/{NcAppNavigationCaption-bTauZtcw.mjs → NcAppNavigationCaption-D7mH8K7B.mjs} +2 -2
  232. package/dist/chunks/{NcAppNavigationCaption-bTauZtcw.mjs.map → NcAppNavigationCaption-D7mH8K7B.mjs.map} +1 -1
  233. package/dist/chunks/{NcAppNavigationItem-geCwhCsd.mjs → NcAppNavigationItem-B6YKr1n2.mjs} +9 -9
  234. package/dist/chunks/NcAppNavigationItem-B6YKr1n2.mjs.map +1 -0
  235. package/dist/chunks/{NcAppNavigationItem-DbtR6u7Y.cjs → NcAppNavigationItem-CkAgsU6p.cjs} +9 -9
  236. package/dist/chunks/NcAppNavigationItem-CkAgsU6p.cjs.map +1 -0
  237. package/dist/chunks/{NcAppNavigationNew-BYvFykgl.cjs → NcAppNavigationNew-ByTNXL-2.cjs} +2 -2
  238. package/dist/chunks/{NcAppNavigationNew-BYvFykgl.cjs.map → NcAppNavigationNew-ByTNXL-2.cjs.map} +1 -1
  239. package/dist/chunks/{NcAppNavigationNew-BHzvRlVc.mjs → NcAppNavigationNew-t3Rkrwjh.mjs} +2 -2
  240. package/dist/chunks/{NcAppNavigationNew-BHzvRlVc.mjs.map → NcAppNavigationNew-t3Rkrwjh.mjs.map} +1 -1
  241. package/dist/chunks/{NcAppNavigationNewItem-Yy56yPrn.mjs → NcAppNavigationNewItem-C96AER1b.mjs} +2 -2
  242. package/dist/chunks/{NcAppNavigationNewItem-Yy56yPrn.mjs.map → NcAppNavigationNewItem-C96AER1b.mjs.map} +1 -1
  243. package/dist/chunks/{NcAppNavigationNewItem-Dqnwa8Gl.cjs → NcAppNavigationNewItem-D7dxbu-1.cjs} +2 -2
  244. package/dist/chunks/{NcAppNavigationNewItem-Dqnwa8Gl.cjs.map → NcAppNavigationNewItem-D7dxbu-1.cjs.map} +1 -1
  245. package/dist/chunks/{NcAppNavigationSearch-pMlFjm9w.cjs → NcAppNavigationSearch-C9dLgU2t.cjs} +6 -6
  246. package/dist/chunks/NcAppNavigationSearch-C9dLgU2t.cjs.map +1 -0
  247. package/dist/chunks/{NcAppNavigationSearch-WfL4IPD8.mjs → NcAppNavigationSearch-CuqE2exX.mjs} +6 -6
  248. package/dist/chunks/NcAppNavigationSearch-CuqE2exX.mjs.map +1 -0
  249. package/dist/chunks/{NcAppNavigationSettings-BhK7vlfP.mjs → NcAppNavigationSettings-Ba8OcJxl.mjs} +6 -6
  250. package/dist/chunks/{NcAppNavigationSettings-BhK7vlfP.mjs.map → NcAppNavigationSettings-Ba8OcJxl.mjs.map} +1 -1
  251. package/dist/chunks/{NcAppNavigationSettings-C6qjJ3hF.cjs → NcAppNavigationSettings-C7d5dhkD.cjs} +6 -6
  252. package/dist/chunks/{NcAppNavigationSettings-C6qjJ3hF.cjs.map → NcAppNavigationSettings-C7d5dhkD.cjs.map} +1 -1
  253. package/dist/chunks/{NcAppNavigationToggle-DlnxjlcH.mjs → NcAppNavigationToggle-B0N05AxP.mjs} +3 -3
  254. package/dist/chunks/{NcAppNavigationToggle-DlnxjlcH.mjs.map → NcAppNavigationToggle-B0N05AxP.mjs.map} +1 -1
  255. package/dist/chunks/{NcAppNavigationToggle-8lSuagjd.cjs → NcAppNavigationToggle-Ck-d5mHe.cjs} +3 -3
  256. package/dist/chunks/{NcAppNavigationToggle-8lSuagjd.cjs.map → NcAppNavigationToggle-Ck-d5mHe.cjs.map} +1 -1
  257. package/dist/chunks/{NcAppSettingsDialog-8YaW7ud3.mjs → NcAppSettingsDialog-PRGGDKCy.mjs} +55 -14
  258. package/dist/chunks/NcAppSettingsDialog-PRGGDKCy.mjs.map +1 -0
  259. package/dist/chunks/{NcAppSettingsDialog--RlMIfbo.cjs → NcAppSettingsDialog-fOCnfyD-.cjs} +53 -12
  260. package/dist/chunks/NcAppSettingsDialog-fOCnfyD-.cjs.map +1 -0
  261. package/dist/chunks/{NcAppSettingsSection-DVrBPuLD.mjs → NcAppSettingsSection-Cq1VIzMR.mjs} +9 -7
  262. package/dist/chunks/NcAppSettingsSection-Cq1VIzMR.mjs.map +1 -0
  263. package/dist/chunks/{NcAppSettingsSection-OPWPqi2Y.cjs → NcAppSettingsSection-Q5PB51ht.cjs} +8 -6
  264. package/dist/chunks/NcAppSettingsSection-Q5PB51ht.cjs.map +1 -0
  265. package/dist/chunks/{NcAppSettingsSectionShortcuts-CdP-4ktS.mjs → NcAppSettingsShortcutsSection-BGMDhIXI.mjs} +7 -7
  266. package/dist/chunks/NcAppSettingsShortcutsSection-BGMDhIXI.mjs.map +1 -0
  267. package/dist/chunks/{NcAppSettingsSectionShortcuts-CBYgfYGz.cjs → NcAppSettingsShortcutsSection-DI5YBdYf.cjs} +7 -7
  268. package/dist/chunks/NcAppSettingsShortcutsSection-DI5YBdYf.cjs.map +1 -0
  269. package/dist/chunks/{NcAppSidebar-f7tuofzM.mjs → NcAppSidebar-1Q4AznUI.mjs} +7 -7
  270. package/dist/chunks/NcAppSidebar-1Q4AznUI.mjs.map +1 -0
  271. package/dist/chunks/{NcAppSidebar-DLb6ALHL.cjs → NcAppSidebar-BA8rmpOk.cjs} +7 -7
  272. package/dist/chunks/NcAppSidebar-BA8rmpOk.cjs.map +1 -0
  273. package/dist/chunks/{NcAssistantButton-enexPvoC.mjs → NcAssistantButton-BPXX2mz6.mjs} +5 -5
  274. package/dist/chunks/{NcAssistantButton-enexPvoC.mjs.map → NcAssistantButton-BPXX2mz6.mjs.map} +1 -1
  275. package/dist/chunks/{NcAssistantButton-BMzPE7WA.cjs → NcAssistantButton-CAJQBxgk.cjs} +5 -5
  276. package/dist/chunks/{NcAssistantButton-BMzPE7WA.cjs.map → NcAssistantButton-CAJQBxgk.cjs.map} +1 -1
  277. package/dist/chunks/{NcAssistantIcon-XwQFzBgA.mjs → NcAssistantIcon-CKWZRzXg.mjs} +2 -2
  278. package/dist/chunks/{NcAssistantIcon-XwQFzBgA.mjs.map → NcAssistantIcon-CKWZRzXg.mjs.map} +1 -1
  279. package/dist/chunks/{NcAssistantIcon-DfVd2zWt.cjs → NcAssistantIcon-jHDGZ_Bd.cjs} +2 -2
  280. package/dist/chunks/{NcAssistantIcon-DfVd2zWt.cjs.map → NcAssistantIcon-jHDGZ_Bd.cjs.map} +1 -1
  281. package/dist/chunks/{NcAvatar-DwUmx6Fg.mjs → NcAvatar-4h0wo9uv.mjs} +28 -24
  282. package/dist/chunks/NcAvatar-4h0wo9uv.mjs.map +1 -0
  283. package/dist/chunks/{NcAvatar-BwioPrbY.cjs → NcAvatar-BrDByW-X.cjs} +28 -24
  284. package/dist/chunks/NcAvatar-BrDByW-X.cjs.map +1 -0
  285. package/dist/chunks/{NcBreadcrumb-B-zWjBNp.cjs → NcBreadcrumb-BUsCwbnF.cjs} +3 -3
  286. package/dist/chunks/{NcBreadcrumb-B-zWjBNp.cjs.map → NcBreadcrumb-BUsCwbnF.cjs.map} +1 -1
  287. package/dist/chunks/{NcBreadcrumb-ljdZbX7p.mjs → NcBreadcrumb-CcKJsew_.mjs} +3 -3
  288. package/dist/chunks/{NcBreadcrumb-ljdZbX7p.mjs.map → NcBreadcrumb-CcKJsew_.mjs.map} +1 -1
  289. package/dist/chunks/{NcBreadcrumbs-B6tPEu9b.cjs → NcBreadcrumbs-W9wcvU4n.cjs} +4 -4
  290. package/dist/chunks/{NcBreadcrumbs-B6tPEu9b.cjs.map → NcBreadcrumbs-W9wcvU4n.cjs.map} +1 -1
  291. package/dist/chunks/{NcBreadcrumbs-D2DtX3XC.mjs → NcBreadcrumbs-bDlnNcz1.mjs} +4 -4
  292. package/dist/chunks/{NcBreadcrumbs-D2DtX3XC.mjs.map → NcBreadcrumbs-bDlnNcz1.mjs.map} +1 -1
  293. package/dist/chunks/{NcButton-CJBZrdiL.cjs → NcButton-CuFElrFD.cjs} +3 -3
  294. package/dist/chunks/NcButton-CuFElrFD.cjs.map +1 -0
  295. package/dist/chunks/{NcButton-DUZTtFhr.mjs → NcButton-Dz2O6cSU.mjs} +3 -3
  296. package/dist/chunks/NcButton-Dz2O6cSU.mjs.map +1 -0
  297. package/dist/chunks/{NcCheckboxRadioSwitch-wSD3hWxs.cjs → NcCheckboxRadioSwitch-CG2BbMsv.cjs} +2 -2
  298. package/dist/chunks/{NcCheckboxRadioSwitch-wSD3hWxs.cjs.map → NcCheckboxRadioSwitch-CG2BbMsv.cjs.map} +1 -1
  299. package/dist/chunks/{NcCheckboxRadioSwitch-NPJuwzqS.mjs → NcCheckboxRadioSwitch-CX3HXCEk.mjs} +2 -2
  300. package/dist/chunks/{NcCheckboxRadioSwitch-NPJuwzqS.mjs.map → NcCheckboxRadioSwitch-CX3HXCEk.mjs.map} +1 -1
  301. package/dist/chunks/{NcCollectionList-D85QdobI.mjs → NcCollectionList-CejmntlL.mjs} +7 -7
  302. package/dist/chunks/{NcCollectionList-D85QdobI.mjs.map → NcCollectionList-CejmntlL.mjs.map} +1 -1
  303. package/dist/chunks/{NcCollectionList-Br6V_EiM.cjs → NcCollectionList-DSk0m1Ap.cjs} +7 -7
  304. package/dist/chunks/{NcCollectionList-Br6V_EiM.cjs.map → NcCollectionList-DSk0m1Ap.cjs.map} +1 -1
  305. package/dist/chunks/{NcColorPicker-BoS26yac.mjs → NcColorPicker-BERjJHgc.mjs} +6 -6
  306. package/dist/chunks/{NcColorPicker-BoS26yac.mjs.map → NcColorPicker-BERjJHgc.mjs.map} +1 -1
  307. package/dist/chunks/{NcColorPicker-Dg3d5_aQ.cjs → NcColorPicker-BPVlMiBg.cjs} +6 -6
  308. package/dist/chunks/{NcColorPicker-Dg3d5_aQ.cjs.map → NcColorPicker-BPVlMiBg.cjs.map} +1 -1
  309. package/dist/chunks/{NcContent-BbPae-OV.cjs → NcContent-DWLtsXHf.cjs} +5 -5
  310. package/dist/chunks/{NcContent-BbPae-OV.cjs.map → NcContent-DWLtsXHf.cjs.map} +1 -1
  311. package/dist/chunks/{NcContent-D8OFKv52.mjs → NcContent-yW5m-Mj5.mjs} +5 -5
  312. package/dist/chunks/{NcContent-D8OFKv52.mjs.map → NcContent-yW5m-Mj5.mjs.map} +1 -1
  313. package/dist/chunks/{NcDashboardWidget-SSlGHcII.mjs → NcDashboardWidget-Bk6i__T-.mjs} +7 -7
  314. package/dist/chunks/NcDashboardWidget-Bk6i__T-.mjs.map +1 -0
  315. package/dist/chunks/{NcDashboardWidget-mEPmvuR0.cjs → NcDashboardWidget-Dc0fUaGv.cjs} +7 -7
  316. package/dist/chunks/NcDashboardWidget-Dc0fUaGv.cjs.map +1 -0
  317. package/dist/chunks/{NcDashboardWidgetItem-BqlNJI6a.mjs → NcDashboardWidgetItem--NyYqf1-.mjs} +4 -4
  318. package/dist/chunks/{NcDashboardWidgetItem-BqlNJI6a.mjs.map → NcDashboardWidgetItem--NyYqf1-.mjs.map} +1 -1
  319. package/dist/chunks/{NcDashboardWidgetItem-C7AmqxH4.cjs → NcDashboardWidgetItem-DiSoDid-.cjs} +4 -4
  320. package/dist/chunks/{NcDashboardWidgetItem-C7AmqxH4.cjs.map → NcDashboardWidgetItem-DiSoDid-.cjs.map} +1 -1
  321. package/dist/chunks/{NcDialog-Bg0hY6TP.mjs → NcDialog-8ipQ69_t.mjs} +2 -2
  322. package/dist/chunks/{NcDialog-Bg0hY6TP.mjs.map → NcDialog-8ipQ69_t.mjs.map} +1 -1
  323. package/dist/chunks/{NcDialog-D020rlVy.cjs → NcDialog-WN4eYniZ.cjs} +2 -2
  324. package/dist/chunks/{NcDialog-D020rlVy.cjs.map → NcDialog-WN4eYniZ.cjs.map} +1 -1
  325. package/dist/chunks/{NcDialogButton-8JhFaC5X.cjs → NcDialogButton-BFV6qd7F.cjs} +5 -5
  326. package/dist/chunks/{NcDialogButton-8JhFaC5X.cjs.map → NcDialogButton-BFV6qd7F.cjs.map} +1 -1
  327. package/dist/chunks/{NcDialogButton-DSrC6lFd.mjs → NcDialogButton-CSC8PAz-.mjs} +5 -5
  328. package/dist/chunks/{NcDialogButton-DSrC6lFd.mjs.map → NcDialogButton-CSC8PAz-.mjs.map} +1 -1
  329. package/dist/chunks/{NcEmojiPicker-DwXhWYHY.cjs → NcEmojiPicker-BENbptkx.cjs} +7 -7
  330. package/dist/chunks/{NcEmojiPicker-DwXhWYHY.cjs.map → NcEmojiPicker-BENbptkx.cjs.map} +1 -1
  331. package/dist/chunks/{NcEmojiPicker-CAphjgaf.mjs → NcEmojiPicker-DlizXqla.mjs} +7 -7
  332. package/dist/chunks/{NcEmojiPicker-CAphjgaf.mjs.map → NcEmojiPicker-DlizXqla.mjs.map} +1 -1
  333. package/dist/chunks/NcFormBox-DL435pbV.mjs +56 -0
  334. package/dist/chunks/NcFormBox-DL435pbV.mjs.map +1 -0
  335. package/dist/chunks/NcFormBox-_JqkU_xn.cjs +55 -0
  336. package/dist/chunks/NcFormBox-_JqkU_xn.cjs.map +1 -0
  337. package/dist/chunks/NcFormBoxButton-B4STyrn7.cjs +137 -0
  338. package/dist/chunks/NcFormBoxButton-B4STyrn7.cjs.map +1 -0
  339. package/dist/chunks/NcFormBoxButton-DR_OMvmB.mjs +138 -0
  340. package/dist/chunks/NcFormBoxButton-DR_OMvmB.mjs.map +1 -0
  341. package/dist/chunks/NcFormBoxCopyButton-BQt4cqDo.mjs +47 -0
  342. package/dist/chunks/NcFormBoxCopyButton-BQt4cqDo.mjs.map +1 -0
  343. package/dist/chunks/NcFormBoxCopyButton-CthOiHuc.cjs +46 -0
  344. package/dist/chunks/NcFormBoxCopyButton-CthOiHuc.cjs.map +1 -0
  345. package/dist/chunks/NcFormBoxItem-BcNIAmpc.mjs +87 -0
  346. package/dist/chunks/NcFormBoxItem-BcNIAmpc.mjs.map +1 -0
  347. package/dist/chunks/NcFormBoxItem-BfXaRfkc.cjs +86 -0
  348. package/dist/chunks/NcFormBoxItem-BfXaRfkc.cjs.map +1 -0
  349. package/dist/chunks/NcFormBoxSwitch-BUBD5jli.cjs +96 -0
  350. package/dist/chunks/NcFormBoxSwitch-BUBD5jli.cjs.map +1 -0
  351. package/dist/chunks/NcFormBoxSwitch-BqbGsapa.mjs +97 -0
  352. package/dist/chunks/NcFormBoxSwitch-BqbGsapa.mjs.map +1 -0
  353. package/dist/chunks/NcFormGroup-BfsPo9aC.mjs +69 -0
  354. package/dist/chunks/NcFormGroup-BfsPo9aC.mjs.map +1 -0
  355. package/dist/chunks/NcFormGroup-CBMl_9_J.cjs +68 -0
  356. package/dist/chunks/NcFormGroup-CBMl_9_J.cjs.map +1 -0
  357. package/dist/chunks/{NcHeaderButton-6kuTEKbj.cjs → NcHeaderButton-CpWQbzfF.cjs} +2 -2
  358. package/dist/chunks/{NcHeaderButton-6kuTEKbj.cjs.map → NcHeaderButton-CpWQbzfF.cjs.map} +1 -1
  359. package/dist/chunks/{NcHeaderButton-TgPjfPtk.mjs → NcHeaderButton-Dvo1_Bwc.mjs} +2 -2
  360. package/dist/chunks/{NcHeaderButton-TgPjfPtk.mjs.map → NcHeaderButton-Dvo1_Bwc.mjs.map} +1 -1
  361. package/dist/chunks/{NcHeaderMenu-CwjH_j0c.cjs → NcHeaderMenu-Cmu-m_aM.cjs} +2 -2
  362. package/dist/chunks/{NcHeaderMenu-CwjH_j0c.cjs.map → NcHeaderMenu-Cmu-m_aM.cjs.map} +1 -1
  363. package/dist/chunks/{NcHeaderMenu-Hk8OTuma.mjs → NcHeaderMenu-Cuh8ay0F.mjs} +2 -2
  364. package/dist/chunks/{NcHeaderMenu-Hk8OTuma.mjs.map → NcHeaderMenu-Cuh8ay0F.mjs.map} +1 -1
  365. package/dist/chunks/{NcHotkey-CUPH5u09.cjs → NcHotkey-CuAapY_f.cjs} +7 -7
  366. package/dist/chunks/{NcHotkey-CUPH5u09.cjs.map → NcHotkey-CuAapY_f.cjs.map} +1 -1
  367. package/dist/chunks/{NcHotkey-BVMf1V89.mjs → NcHotkey-DcpG5Pla.mjs} +7 -7
  368. package/dist/chunks/{NcHotkey-BVMf1V89.mjs.map → NcHotkey-DcpG5Pla.mjs.map} +1 -1
  369. package/dist/chunks/{NcHotkeyList-jfSroQAQ.mjs → NcHotkeyList-CV_FJXF8.mjs} +5 -5
  370. package/dist/chunks/NcHotkeyList-CV_FJXF8.mjs.map +1 -0
  371. package/dist/chunks/{NcHotkeyList-CUjp1-hr.cjs → NcHotkeyList-CyJKMulK.cjs} +5 -5
  372. package/dist/chunks/NcHotkeyList-CyJKMulK.cjs.map +1 -0
  373. package/dist/chunks/{NcIconSvgWrapper-D-aKMbf3.cjs → NcIconSvgWrapper-Bbl4kXZI.cjs} +4 -4
  374. package/dist/chunks/NcIconSvgWrapper-Bbl4kXZI.cjs.map +1 -0
  375. package/dist/chunks/{NcIconSvgWrapper-BreCg8pX.mjs → NcIconSvgWrapper-Bui9PhAS.mjs} +4 -4
  376. package/dist/chunks/NcIconSvgWrapper-Bui9PhAS.mjs.map +1 -0
  377. package/dist/chunks/{NcInputConfirmCancel-XPlRewAN.mjs → NcInputConfirmCancel-D7omQqvB.mjs} +3 -3
  378. package/dist/chunks/{NcInputConfirmCancel-XPlRewAN.mjs.map → NcInputConfirmCancel-D7omQqvB.mjs.map} +1 -1
  379. package/dist/chunks/{NcInputConfirmCancel-Bk_FQ5aA.cjs → NcInputConfirmCancel-lLiyPQvo.cjs} +3 -3
  380. package/dist/chunks/{NcInputConfirmCancel-Bk_FQ5aA.cjs.map → NcInputConfirmCancel-lLiyPQvo.cjs.map} +1 -1
  381. package/dist/chunks/{NcInputField-DUtDY_1I.mjs → NcInputField-CZRuRX_c.mjs} +4 -4
  382. package/dist/chunks/NcInputField-CZRuRX_c.mjs.map +1 -0
  383. package/dist/chunks/{NcInputField-DAllLk3X.cjs → NcInputField-Dyvi0lw3.cjs} +4 -4
  384. package/dist/chunks/NcInputField-Dyvi0lw3.cjs.map +1 -0
  385. package/dist/chunks/{NcKbd-BdW5UbhW.mjs → NcKbd-ChdGXvZR.mjs} +2 -2
  386. package/dist/chunks/{NcKbd-BdW5UbhW.mjs.map → NcKbd-ChdGXvZR.mjs.map} +1 -1
  387. package/dist/chunks/{NcKbd-CVBh8nyU.cjs → NcKbd-CyyEm6BD.cjs} +2 -2
  388. package/dist/chunks/{NcKbd-CVBh8nyU.cjs.map → NcKbd-CyyEm6BD.cjs.map} +1 -1
  389. package/dist/chunks/{NcListItem-D3HiK7ra.cjs → NcListItem-DB6prfmf.cjs} +6 -6
  390. package/dist/chunks/NcListItem-DB6prfmf.cjs.map +1 -0
  391. package/dist/chunks/{NcListItem-YVemqwZ_.mjs → NcListItem-DP0kl2g5.mjs} +6 -6
  392. package/dist/chunks/NcListItem-DP0kl2g5.mjs.map +1 -0
  393. package/dist/chunks/{NcListItemIcon-DL1VwHvL.cjs → NcListItemIcon-BM5iJwye.cjs} +5 -5
  394. package/dist/chunks/NcListItemIcon-BM5iJwye.cjs.map +1 -0
  395. package/dist/chunks/{NcListItemIcon-BKwmcXnO.mjs → NcListItemIcon-D41xabRp.mjs} +5 -5
  396. package/dist/chunks/NcListItemIcon-D41xabRp.mjs.map +1 -0
  397. package/dist/chunks/{NcPasswordField-BeEYmL5N.cjs → NcPasswordField-Cq8yg7NE.cjs} +8 -8
  398. package/dist/chunks/{NcPasswordField-CujpFQHq.mjs.map → NcPasswordField-Cq8yg7NE.cjs.map} +1 -1
  399. package/dist/chunks/{NcPasswordField-CujpFQHq.mjs → NcPasswordField-D2xXHnvI.mjs} +8 -8
  400. package/dist/chunks/{NcPasswordField-BeEYmL5N.cjs.map → NcPasswordField-D2xXHnvI.mjs.map} +1 -1
  401. package/dist/chunks/{NcRadioGroup-VKZJ0Vnh.mjs → NcRadioGroup-D0rC63G8.mjs} +10 -19
  402. package/dist/chunks/NcRadioGroup-D0rC63G8.mjs.map +1 -0
  403. package/dist/chunks/{NcRadioGroup-BZ-humrK.cjs → NcRadioGroup-D59En1O3.cjs} +10 -19
  404. package/dist/chunks/NcRadioGroup-D59En1O3.cjs.map +1 -0
  405. package/dist/chunks/{NcRadioGroupButton-CD4tkF_s.mjs → NcRadioGroupButton-3Pu4Iqdf.mjs} +11 -9
  406. package/dist/chunks/NcRadioGroupButton-3Pu4Iqdf.mjs.map +1 -0
  407. package/dist/chunks/{NcRadioGroupButton-DrqgN-8C.cjs → NcRadioGroupButton-DoOf7cE1.cjs} +11 -9
  408. package/dist/chunks/NcRadioGroupButton-DoOf7cE1.cjs.map +1 -0
  409. package/dist/chunks/{NcRelatedResourcesPanel-BTyqVb_E.mjs → NcRelatedResourcesPanel-BbjG2Qvg.mjs} +6 -6
  410. package/dist/chunks/{NcRelatedResourcesPanel-BTyqVb_E.mjs.map → NcRelatedResourcesPanel-BbjG2Qvg.mjs.map} +1 -1
  411. package/dist/chunks/{NcRelatedResourcesPanel-CO6jajKF.cjs → NcRelatedResourcesPanel-DUxV4_Bt.cjs} +6 -6
  412. package/dist/chunks/{NcRelatedResourcesPanel-CO6jajKF.cjs.map → NcRelatedResourcesPanel-DUxV4_Bt.cjs.map} +1 -1
  413. package/dist/chunks/{NcRichContenteditable-BjxmdpS0.cjs → NcRichContenteditable-C_PlLt-H.cjs} +14 -11
  414. package/dist/chunks/{NcRichContenteditable-BjxmdpS0.cjs.map → NcRichContenteditable-C_PlLt-H.cjs.map} +1 -1
  415. package/dist/chunks/{NcRichContenteditable-BivvoSO5.mjs → NcRichContenteditable-S7ASR6NI.mjs} +14 -11
  416. package/dist/chunks/{NcRichContenteditable-BivvoSO5.mjs.map → NcRichContenteditable-S7ASR6NI.mjs.map} +1 -1
  417. package/dist/chunks/{NcRichText-Dy5By94Y.mjs → NcRichText-C7k_8zuH.mjs} +57 -14
  418. package/dist/chunks/NcRichText-C7k_8zuH.mjs.map +1 -0
  419. package/dist/chunks/{NcRichText-DoQg3Lha.cjs → NcRichText-kd0NZSP_.cjs} +56 -13
  420. package/dist/chunks/NcRichText-kd0NZSP_.cjs.map +1 -0
  421. package/dist/chunks/{NcSelect-QVd6uJPA.mjs → NcSelect-CkB50N9T.mjs} +11 -8
  422. package/dist/chunks/NcSelect-CkB50N9T.mjs.map +1 -0
  423. package/dist/chunks/{NcSelect-Bw8EG_xU.cjs → NcSelect-DfosTlgF.cjs} +11 -8
  424. package/dist/chunks/NcSelect-DfosTlgF.cjs.map +1 -0
  425. package/dist/chunks/{NcSelectTags-D-22teKJ.mjs → NcSelectTags-DrDrZUA6.mjs} +3 -3
  426. package/dist/chunks/{NcSelectTags-D-22teKJ.mjs.map → NcSelectTags-DrDrZUA6.mjs.map} +1 -1
  427. package/dist/chunks/{NcSelectTags-aGwTgIM-.cjs → NcSelectTags-deek6JXy.cjs} +3 -3
  428. package/dist/chunks/{NcSelectTags-aGwTgIM-.cjs.map → NcSelectTags-deek6JXy.cjs.map} +1 -1
  429. package/dist/chunks/{NcSelectUsers-Qhrizan5.cjs → NcSelectUsers-Cu5KZCxC.cjs} +5 -5
  430. package/dist/chunks/{NcSelectUsers-Qhrizan5.cjs.map → NcSelectUsers-Cu5KZCxC.cjs.map} +1 -1
  431. package/dist/chunks/{NcSelectUsers-DR6-q1aK.mjs → NcSelectUsers-HmMuAP19.mjs} +5 -5
  432. package/dist/chunks/{NcSelectUsers-DR6-q1aK.mjs.map → NcSelectUsers-HmMuAP19.mjs.map} +1 -1
  433. package/dist/chunks/{NcSettingsInputText-Q8DDr-Yj.mjs → NcSettingsInputText-wFKkjw2t.mjs} +3 -3
  434. package/dist/chunks/{NcSettingsInputText-Q8DDr-Yj.mjs.map → NcSettingsInputText-wFKkjw2t.mjs.map} +1 -1
  435. package/dist/chunks/{NcSettingsInputText-O8870Grr.cjs → NcSettingsInputText-ynxiTO4n.cjs} +3 -3
  436. package/dist/chunks/{NcSettingsInputText-O8870Grr.cjs.map → NcSettingsInputText-ynxiTO4n.cjs.map} +1 -1
  437. package/dist/chunks/{NcSettingsSection-DKpzo7eI.cjs → NcSettingsSection-Bvo098h3.cjs} +3 -3
  438. package/dist/chunks/{NcSettingsSection-DKpzo7eI.cjs.map → NcSettingsSection-Bvo098h3.cjs.map} +1 -1
  439. package/dist/chunks/{NcSettingsSection-VxcVEF8L.mjs → NcSettingsSection-ZV3KIsxm.mjs} +3 -3
  440. package/dist/chunks/{NcSettingsSection-VxcVEF8L.mjs.map → NcSettingsSection-ZV3KIsxm.mjs.map} +1 -1
  441. package/dist/chunks/{NcSettingsSelectGroup-CZ0EjeJb.mjs → NcSettingsSelectGroup-CXGxufce.mjs} +4 -4
  442. package/dist/chunks/{NcSettingsSelectGroup-CZ0EjeJb.mjs.map → NcSettingsSelectGroup-CXGxufce.mjs.map} +1 -1
  443. package/dist/chunks/{NcSettingsSelectGroup-BQWwtSEb.cjs → NcSettingsSelectGroup-DmHVvBng.cjs} +4 -4
  444. package/dist/chunks/{NcSettingsSelectGroup-BQWwtSEb.cjs.map → NcSettingsSelectGroup-DmHVvBng.cjs.map} +1 -1
  445. package/dist/chunks/{NcTextArea-DHmD6-6s.mjs → NcTextArea-CIgfjLRv.mjs} +3 -3
  446. package/dist/chunks/NcTextArea-CIgfjLRv.mjs.map +1 -0
  447. package/dist/chunks/{NcTextArea-DkVtHTpD.cjs → NcTextArea-Dd8ctlvG.cjs} +3 -3
  448. package/dist/chunks/NcTextArea-Dd8ctlvG.cjs.map +1 -0
  449. package/dist/chunks/{NcTextField-52Fnd27A.cjs → NcTextField-CYbpyxC1.cjs} +6 -6
  450. package/dist/chunks/NcTextField-CYbpyxC1.cjs.map +1 -0
  451. package/dist/chunks/{NcTextField-CVfixgfj.mjs → NcTextField-CijJWC3h.mjs} +6 -6
  452. package/dist/chunks/NcTextField-CijJWC3h.mjs.map +1 -0
  453. package/dist/chunks/{NcTimezonePicker-CtFsF-jG.cjs → NcTimezonePicker-8z2Jxzq-.cjs} +5 -5
  454. package/dist/chunks/{NcTimezonePicker-CtFsF-jG.cjs.map → NcTimezonePicker-8z2Jxzq-.cjs.map} +1 -1
  455. package/dist/chunks/{NcTimezonePicker-BInLNCSt.mjs → NcTimezonePicker-DOSucwRx.mjs} +5 -5
  456. package/dist/chunks/{NcTimezonePicker-BInLNCSt.mjs.map → NcTimezonePicker-DOSucwRx.mjs.map} +1 -1
  457. package/dist/chunks/{NcUserBubble-ByvVV8jh.cjs → NcUserBubble-Bzng2YLf.cjs} +2 -2
  458. package/dist/chunks/{NcUserBubble-ByvVV8jh.cjs.map → NcUserBubble-Bzng2YLf.cjs.map} +1 -1
  459. package/dist/chunks/{NcUserBubble-sIUM-Rru.mjs → NcUserBubble-CSGX6IdN.mjs} +2 -2
  460. package/dist/chunks/{NcUserBubble-sIUM-Rru.mjs.map → NcUserBubble-CSGX6IdN.mjs.map} +1 -1
  461. package/dist/chunks/{NcUserStatusIcon-CYsrjxDh.cjs → NcUserStatusIcon-DYU-ubF3.cjs} +3 -3
  462. package/dist/chunks/{NcUserStatusIcon-CYsrjxDh.cjs.map → NcUserStatusIcon-DYU-ubF3.cjs.map} +1 -1
  463. package/dist/chunks/{NcUserStatusIcon-DZI9jlXE.mjs → NcUserStatusIcon-Dfd_lPCI.mjs} +3 -3
  464. package/dist/chunks/{NcUserStatusIcon-DZI9jlXE.mjs.map → NcUserStatusIcon-Dfd_lPCI.mjs.map} +1 -1
  465. package/dist/chunks/{ScopeComponent-CNZ_b7IG.mjs → ScopeComponent-CTeSJqUJ.mjs} +2 -2
  466. package/dist/chunks/{ScopeComponent-CNZ_b7IG.mjs.map → ScopeComponent-CTeSJqUJ.mjs.map} +1 -1
  467. package/dist/chunks/{ScopeComponent-BCznIxFT.cjs → ScopeComponent-CycICbeB.cjs} +2 -2
  468. package/dist/chunks/{ScopeComponent-BCznIxFT.cjs.map → ScopeComponent-CycICbeB.cjs.map} +1 -1
  469. package/dist/chunks/{_l10n-BWisB7-O.mjs → _l10n-D3tJt_gL.mjs} +81 -79
  470. package/dist/chunks/_l10n-D3tJt_gL.mjs.map +1 -0
  471. package/dist/chunks/{_l10n-eOBJ3Dwl.cjs → _l10n-DWMcjgRh.cjs} +35 -33
  472. package/dist/chunks/{_l10n-eOBJ3Dwl.cjs.map → _l10n-DWMcjgRh.cjs.map} +1 -1
  473. package/dist/chunks/appName-D8lIU8jk.cjs +43 -0
  474. package/dist/chunks/appName-D8lIU8jk.cjs.map +1 -0
  475. package/dist/chunks/appName-DA23ARcC.mjs +44 -0
  476. package/dist/chunks/appName-DA23ARcC.mjs.map +1 -0
  477. package/dist/chunks/{colors-D3xlq-id.mjs → colors-DYuPlOca.mjs} +2 -2
  478. package/dist/chunks/{colors-D3xlq-id.mjs.map → colors-DYuPlOca.mjs.map} +1 -1
  479. package/dist/chunks/{colors-BsDQ1Yz3.cjs → colors-RIMKc3tN.cjs} +2 -2
  480. package/dist/chunks/{colors-BsDQ1Yz3.cjs.map → colors-RIMKc3tN.cjs.map} +1 -1
  481. package/dist/chunks/{mdi-Nhb6SBw8.cjs → mdi-CVXTs58m.cjs} +11 -1
  482. package/dist/chunks/{mdi-CKSXwCsV.mjs.map → mdi-CVXTs58m.cjs.map} +1 -1
  483. package/dist/chunks/{mdi-CKSXwCsV.mjs → mdi-CgetWrFc.mjs} +19 -9
  484. package/dist/chunks/{mdi-Nhb6SBw8.cjs.map → mdi-CgetWrFc.mjs.map} +1 -1
  485. package/dist/chunks/{referencePickerModal-Dz1h1EHq.cjs → referencePickerModal-BPowR5yI.cjs} +10 -10
  486. package/dist/chunks/{referencePickerModal-Dz1h1EHq.cjs.map → referencePickerModal-BPowR5yI.cjs.map} +1 -1
  487. package/dist/chunks/{referencePickerModal-Cl3fIc9s.mjs → referencePickerModal-eu8fU-gn.mjs} +10 -10
  488. package/dist/chunks/{referencePickerModal-Cl3fIc9s.mjs.map → referencePickerModal-eu8fU-gn.mjs.map} +1 -1
  489. package/dist/chunks/{useAppSettingsDialog-CPqmms-u.cjs → useAppSettingsDialog-BfnyikIV.cjs} +3 -1
  490. package/dist/chunks/useAppSettingsDialog-BfnyikIV.cjs.map +1 -0
  491. package/dist/chunks/{useAppSettingsDialog-Dn48dw1k.mjs → useAppSettingsDialog-DbtEkXa4.mjs} +4 -2
  492. package/dist/chunks/useAppSettingsDialog-DbtEkXa4.mjs.map +1 -0
  493. package/dist/chunks/useCopy-BrkuO6SD.cjs +39 -0
  494. package/dist/chunks/useCopy-BrkuO6SD.cjs.map +1 -0
  495. package/dist/chunks/useCopy-J3zJ3s94.mjs +40 -0
  496. package/dist/chunks/useCopy-J3zJ3s94.mjs.map +1 -0
  497. package/dist/chunks/useNcFormBox-DA9iwXWY.mjs +13 -0
  498. package/dist/chunks/useNcFormBox-DA9iwXWY.mjs.map +1 -0
  499. package/dist/chunks/useNcFormBox-DQeOEuQp.cjs +12 -0
  500. package/dist/chunks/useNcFormBox-DQeOEuQp.cjs.map +1 -0
  501. package/dist/components/NcAppSettingsDialog/useAppSettingsDialog.d.ts +2 -1
  502. package/dist/components/NcAppSettingsSectionShortcuts/index.d.ts +8 -1
  503. package/dist/components/NcAppSettingsShortcutsSection/index.d.ts +5 -0
  504. package/dist/components/NcFormBox/index.d.ts +1 -0
  505. package/dist/components/NcFormBox/useNcFormBox.d.ts +19 -0
  506. package/dist/components/NcFormBoxButton/index.d.ts +5 -0
  507. package/dist/components/NcFormBoxCopyButton/index.d.ts +5 -0
  508. package/dist/components/NcFormBoxSwitch/index.d.ts +5 -0
  509. package/dist/components/NcFormGroup/index.d.ts +5 -0
  510. package/dist/composables/useButtonLink.d.ts +71 -0
  511. package/dist/composables/useCopy.d.ts +12 -0
  512. package/dist/index.cjs +77 -60
  513. package/dist/index.cjs.map +1 -1
  514. package/dist/index.mjs +78 -61
  515. package/dist/index.mjs.map +1 -1
  516. package/dist/utils/VueTypes.d.ts +7 -0
  517. package/dist/utils/appName.d.ts +10 -0
  518. package/dist/utils/utils.d.ts +10 -0
  519. package/package.json +21 -21
  520. package/dist/assets/NcHotkeyList-B42a0d8Z.css +0 -9
  521. package/dist/assets/NcRadioGroup-CNgjqqiP.css +0 -49
  522. package/dist/assets/NcTextArea-B6zS3CRN.css +0 -136
  523. package/dist/chunks/NcActions-BvFVkIzX.mjs.map +0 -1
  524. package/dist/chunks/NcActions-CF9VxHHD.cjs.map +0 -1
  525. package/dist/chunks/NcAppContent-BSyhjn2J.cjs.map +0 -1
  526. package/dist/chunks/NcAppContent-C7hwN-sU.mjs.map +0 -1
  527. package/dist/chunks/NcAppNavigation-B2cKVKBH.mjs.map +0 -1
  528. package/dist/chunks/NcAppNavigation-DApCpI_F.cjs.map +0 -1
  529. package/dist/chunks/NcAppNavigationItem-DbtR6u7Y.cjs.map +0 -1
  530. package/dist/chunks/NcAppNavigationItem-geCwhCsd.mjs.map +0 -1
  531. package/dist/chunks/NcAppNavigationSearch-WfL4IPD8.mjs.map +0 -1
  532. package/dist/chunks/NcAppNavigationSearch-pMlFjm9w.cjs.map +0 -1
  533. package/dist/chunks/NcAppSettingsDialog--RlMIfbo.cjs.map +0 -1
  534. package/dist/chunks/NcAppSettingsDialog-8YaW7ud3.mjs.map +0 -1
  535. package/dist/chunks/NcAppSettingsSection-DVrBPuLD.mjs.map +0 -1
  536. package/dist/chunks/NcAppSettingsSection-OPWPqi2Y.cjs.map +0 -1
  537. package/dist/chunks/NcAppSettingsSectionShortcuts-CBYgfYGz.cjs.map +0 -1
  538. package/dist/chunks/NcAppSettingsSectionShortcuts-CdP-4ktS.mjs.map +0 -1
  539. package/dist/chunks/NcAppSidebar-DLb6ALHL.cjs.map +0 -1
  540. package/dist/chunks/NcAppSidebar-f7tuofzM.mjs.map +0 -1
  541. package/dist/chunks/NcAvatar-BwioPrbY.cjs.map +0 -1
  542. package/dist/chunks/NcAvatar-DwUmx6Fg.mjs.map +0 -1
  543. package/dist/chunks/NcButton-CJBZrdiL.cjs.map +0 -1
  544. package/dist/chunks/NcButton-DUZTtFhr.mjs.map +0 -1
  545. package/dist/chunks/NcDashboardWidget-SSlGHcII.mjs.map +0 -1
  546. package/dist/chunks/NcDashboardWidget-mEPmvuR0.cjs.map +0 -1
  547. package/dist/chunks/NcHotkeyList-CUjp1-hr.cjs.map +0 -1
  548. package/dist/chunks/NcHotkeyList-jfSroQAQ.mjs.map +0 -1
  549. package/dist/chunks/NcIconSvgWrapper-BreCg8pX.mjs.map +0 -1
  550. package/dist/chunks/NcIconSvgWrapper-D-aKMbf3.cjs.map +0 -1
  551. package/dist/chunks/NcInputField-DAllLk3X.cjs.map +0 -1
  552. package/dist/chunks/NcInputField-DUtDY_1I.mjs.map +0 -1
  553. package/dist/chunks/NcListItem-D3HiK7ra.cjs.map +0 -1
  554. package/dist/chunks/NcListItem-YVemqwZ_.mjs.map +0 -1
  555. package/dist/chunks/NcListItemIcon-BKwmcXnO.mjs.map +0 -1
  556. package/dist/chunks/NcListItemIcon-DL1VwHvL.cjs.map +0 -1
  557. package/dist/chunks/NcRadioGroup-BZ-humrK.cjs.map +0 -1
  558. package/dist/chunks/NcRadioGroup-VKZJ0Vnh.mjs.map +0 -1
  559. package/dist/chunks/NcRadioGroupButton-CD4tkF_s.mjs.map +0 -1
  560. package/dist/chunks/NcRadioGroupButton-DrqgN-8C.cjs.map +0 -1
  561. package/dist/chunks/NcRichText-DoQg3Lha.cjs.map +0 -1
  562. package/dist/chunks/NcRichText-Dy5By94Y.mjs.map +0 -1
  563. package/dist/chunks/NcSelect-Bw8EG_xU.cjs.map +0 -1
  564. package/dist/chunks/NcSelect-QVd6uJPA.mjs.map +0 -1
  565. package/dist/chunks/NcTextArea-DHmD6-6s.mjs.map +0 -1
  566. package/dist/chunks/NcTextArea-DkVtHTpD.cjs.map +0 -1
  567. package/dist/chunks/NcTextField-52Fnd27A.cjs.map +0 -1
  568. package/dist/chunks/NcTextField-CVfixgfj.mjs.map +0 -1
  569. package/dist/chunks/_l10n-BWisB7-O.mjs.map +0 -1
  570. package/dist/chunks/useAppSettingsDialog-CPqmms-u.cjs.map +0 -1
  571. package/dist/chunks/useAppSettingsDialog-Dn48dw1k.mjs.map +0 -1
  572. /package/dist/assets/{NcAppSettingsSectionShortcuts-BuI-s4kd.css → NcAppSettingsShortcutsSection-BuI-s4kd.css} +0 -0
@@ -0,0 +1,97 @@
1
+ import '../assets/NcFormBoxSwitch-BmyNQCbA.css';
2
+ import { defineComponent, watch } from "vue";
3
+ import { g as mdiToggleSwitchOff, h as mdiToggleSwitch } from "./mdi-CgetWrFc.mjs";
4
+ import { useVModel } from "@vueuse/core";
5
+ import { N as NcFormBoxItem } from "./NcFormBoxItem-BcNIAmpc.mjs";
6
+ import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-Bui9PhAS.mjs";
7
+ import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
8
+ import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
9
+ const __default__ = {
10
+ model: {
11
+ prop: "modelValue",
12
+ event: "update:modelValue"
13
+ }
14
+ };
15
+ const _sfc_main = /* @__PURE__ */ defineComponent({
16
+ ...__default__,
17
+ __name: "NcFormBoxSwitch",
18
+ props: {
19
+ label: { default: void 0 },
20
+ description: { default: void 0 },
21
+ disabled: { type: Boolean, default: false },
22
+ modelValue: { type: Boolean }
23
+ },
24
+ emits: ["enable", "disable", "update:modelValue"],
25
+ setup(__props, { emit }) {
26
+ const props = __props;
27
+ const model = useVModel(props, "modelValue", emit, { passive: true });
28
+ const inputId = createElementId();
29
+ watch(model, () => {
30
+ if (model.value) {
31
+ emit("enable");
32
+ } else {
33
+ emit("disable");
34
+ }
35
+ }, {
36
+ // defineModel emits update:modelValue synchronously
37
+ // Watching it synchronously to emit the enable/disable events together with the update:modelValue event
38
+ flush: "sync"
39
+ });
40
+ return { __sfc: true, props, emit, model, inputId, mdiToggleSwitch, mdiToggleSwitchOff, NcFormBoxItem, NcIconSvgWrapper };
41
+ }
42
+ });
43
+ const formBoxSwitch__input = "_formBoxSwitch__input_hjv1a_20";
44
+ const formBoxSwitch__icon = "_formBoxSwitch__icon_hjv1a_34";
45
+ const style0 = {
46
+ "material-design-icon": "_material-design-icon_hjv1a_12",
47
+ formBoxSwitch__input,
48
+ formBoxSwitch__icon
49
+ };
50
+ var _sfc_render = function render() {
51
+ var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
52
+ return _c(_setup.NcFormBoxItem, { attrs: { "tag": "label", "for": _setup.inputId }, scopedSlots: _vm._u([_vm.$slots.default || _vm.label ? { key: "default", fn: function() {
53
+ return [_vm._t("default", function() {
54
+ return [_vm._v(" " + _vm._s(_vm.label) + " ")];
55
+ })];
56
+ }, proxy: true } : null, _vm.$slots.description || _vm.description ? { key: "description", fn: function() {
57
+ return [_vm._t("description", function() {
58
+ return [_vm._v(" " + _vm._s(_vm.description) + " ")];
59
+ })];
60
+ }, proxy: true } : null, { key: "icon", fn: function({ descriptionId }) {
61
+ return [_c("input", { directives: [{ name: "model", rawName: "v-model", value: _setup.model, expression: "model" }], class: _vm.$style.formBoxSwitch__input, attrs: { "id": _setup.inputId, "type": "checkbox", "role": "switch", "aria-describedby": descriptionId, "disabled": _vm.disabled }, domProps: { "checked": Array.isArray(_setup.model) ? _vm._i(_setup.model, null) > -1 : _setup.model }, on: { "change": function($event) {
62
+ var $$a = _setup.model, $$el = $event.target, $$c = $$el.checked ? true : false;
63
+ if (Array.isArray($$a)) {
64
+ var $$v = null, $$i = _vm._i($$a, $$v);
65
+ if ($$el.checked) {
66
+ $$i < 0 && (_setup.model = $$a.concat([$$v]));
67
+ } else {
68
+ $$i > -1 && (_setup.model = $$a.slice(0, $$i).concat($$a.slice($$i + 1)));
69
+ }
70
+ } else {
71
+ _setup.model = $$c;
72
+ }
73
+ } } }), _c(_setup.NcIconSvgWrapper, { class: _vm.$style.formBoxSwitch__icon, attrs: { "path": _setup.model ? _setup.mdiToggleSwitch : _setup.mdiToggleSwitchOff, "size": 34, "inline": "" } })];
74
+ } }], null, true) });
75
+ };
76
+ var _sfc_staticRenderFns = [];
77
+ const __cssModules = {
78
+ "$style": style0
79
+ };
80
+ function _sfc_injectStyles(ctx) {
81
+ for (var key in __cssModules) {
82
+ this[key] = __cssModules[key];
83
+ }
84
+ }
85
+ var __component__ = /* @__PURE__ */ normalizeComponent(
86
+ _sfc_main,
87
+ _sfc_render,
88
+ _sfc_staticRenderFns,
89
+ false,
90
+ _sfc_injectStyles,
91
+ null
92
+ );
93
+ const NcFormBoxSwitch = __component__.exports;
94
+ export {
95
+ NcFormBoxSwitch as N
96
+ };
97
+ //# sourceMappingURL=NcFormBoxSwitch-BqbGsapa.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcFormBoxSwitch-BqbGsapa.mjs","sources":["../../src/components/NcFormBoxSwitch/NcFormBoxSwitch.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script lang=\"ts\">\nexport default {\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { mdiToggleSwitch, mdiToggleSwitchOff } from '@mdi/js'\nimport { useVModel } from '@vueuse/core'\nimport { watch } from 'vue'\nimport NcFormBoxItem from '../NcFormBox/NcFormBoxItem.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport { createElementId } from '../../utils/createElementId.ts'\n\nconst props = withDefaults(defineProps<{\n\t/** Main label */\n\tlabel?: string\n\t/** Optional description below the label, also used for the aria-describedby */\n\tdescription?: string\n\t/** Disabled state */\n\tdisabled?: boolean\n\t/** Switch toggle model value */\n\tmodelValue: boolean // eslint-disable-line vue/no-unused-properties\n}>(), {\n\tlabel: undefined,\n\tdescription: undefined,\n\tdisabled: false,\n})\n\nconst emit = defineEmits<{\n\t/** Switch is toggled ON */\n\t(event: 'enable'): void\n\t/** Switch is toggled OFF */\n\t(event: 'disable'): void\n\t(event: 'update:modelValue', value: boolean): void\n}>()\n\nconst model = useVModel(props, 'modelValue', emit, { passive: true })\n\nconst inputId = createElementId()\n\nwatch(model, () => {\n\tif (model.value) {\n\t\temit('enable')\n\t} else {\n\t\temit('disable')\n\t}\n}, {\n\t// defineModel emits update:modelValue synchronously\n\t// Watching it synchronously to emit the enable/disable events together with the update:modelValue event\n\tflush: 'sync',\n})\n</script>\n\n<template>\n\t<NcFormBoxItem\n\t\ttag=\"label\"\n\t\t:for=\"inputId\">\n\t\t<template v-if=\"$slots.default || label\" #default>\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot>\n\t\t\t\t{{ label }}\n\t\t\t</slot>\n\t\t</template>\n\t\t<template v-if=\"$slots.description || description\" #description>\n\t\t\t<!-- @slot Custom description content -->\n\t\t\t<slot name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</template>\n\t\t<template #icon=\"{ descriptionId }\">\n\t\t\t<input\n\t\t\t\t:id=\"inputId\"\n\t\t\t\tv-model=\"model\"\n\t\t\t\t:class=\"$style.formBoxSwitch__input\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\trole=\"switch\"\n\t\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\t\t:disabled=\"disabled\">\n\t\t\t<NcIconSvgWrapper\n\t\t\t\t:path=\"model ? mdiToggleSwitch : mdiToggleSwitchOff\"\n\t\t\t\t:class=\"$style.formBoxSwitch__icon\"\n\t\t\t\t:size=\"34 /* --default-clickable-area */\"\n\t\t\t\tinline />\n\t\t</template>\n\t</NcFormBoxItem>\n</template>\n\n<style lang=\"scss\" module>\ninput.formBoxSwitch__input {\n\tmargin: 0;\n\twidth: var(--default-clickable-area);\n\t/* Keep it visually hidden but on the position of visual switch icon */\n\tposition: absolute;\n\tinset-block: 0;\n\tinset-inline-end: var(--form-element-label-offset);\n\tz-index: -1;\n\topacity: 0 !important;\n\t/* Override server styles */\n\theight: auto;\n\tcursor: inherit;\n}\n\n.formBoxSwitch__icon {\n\tcolor: var(--color-text-maxcontrast);\n}\n\ninput:checked + .formBoxSwitch__icon {\n\tcolor: var(--color-primary-element);\n}\n</style>\n\n<docs>\n### General\n\nA toggle switch to be used within `<NcFormBox>`.\n\nLike other form box items, it has a label and an optional description.\n\nIn addition to the standard `v-model` binding, it emits `enable` and `disable` events when toggled **on** or **off**.\n\n```vue\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tswitchValue: false,\n\t\t}\n\t},\n\tmethods: {\n\t\tlog: console.log,\n\t},\n}\n</script>\n\n<template>\n\t<NcFormBox>\n\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Turn camera and microphone off by default\" />\n\t\t<NcFormBoxSwitch\n\t\t\tv-model=\"switchValue\"\n\t\t\tlabel=\"Blur camera background by default\"\n\t\t\tdisabled />\n\t\t<NcFormBoxSwitch\n\t\t\tv-model=\"switchValue\"\n\t\t\tlabel=\"Skip device preview before joining a call\"\n\t\t\tdescription=\"Will always show if recording consent is required\"\n\t\t\t@update:modelValue=\"log('Switch toggled', $event, switchValue)\"\n\t\t\t@enable=\"log('Switch enabled', switchValue)\"\n\t\t\t@disable=\"log('Switch disabled', switchValue)\"\n\t\t/>\n\t\t<NcFormBoxSwitch v-model=\"switchValue\" />\n\t</NcFormBox>\n</template>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;AAMA,MAAA,cAAe;AAAA,EACd,OAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAET;;;;;;;;;;;;;AAkCA,UAAM,QAAQ,UAAU,OAAO,cAAc,MAAM,EAAE,SAAS,MAAM;AAEpE,UAAM,UAAU,gBAAA;AAEhB,UAAM,OAAO,MAAM;AAClB,UAAI,MAAM,OAAO;AAChB,aAAK,QAAQ;AAAA,MACd,OAAO;AACN,aAAK,SAAS;AAAA,MACf;AAAA,IACD,GAAG;AAAA;AAAA;AAAA,MAGF,OAAO;AAAA,IAAA,CACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,69 @@
1
+ import '../assets/NcFormGroup-BrD0Scm7.css';
2
+ import { defineComponent, useSlots } from "vue";
3
+ import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
4
+ import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "NcFormGroup",
7
+ props: {
8
+ label: { default: void 0 },
9
+ description: { default: void 0 },
10
+ hideLabel: { type: Boolean, default: false },
11
+ hideDescription: { type: Boolean, default: false },
12
+ noGap: { type: Boolean, default: false }
13
+ },
14
+ setup(__props) {
15
+ const props = __props;
16
+ const slots = useSlots();
17
+ const id = `nc-form-group-${createElementId()}`;
18
+ const descriptionId = `${id}-description`;
19
+ const hasDescription = () => !!props.description || !!slots.description;
20
+ const getDescriptionId = () => hasDescription() ? descriptionId : void 0;
21
+ const hasContentOnly = () => props.hideLabel && (!hasDescription() || props.hideDescription);
22
+ return { __sfc: true, props, slots, id, descriptionId, hasDescription, getDescriptionId, hasContentOnly };
23
+ }
24
+ });
25
+ const formGroup = "_formGroup_9p8a1_20";
26
+ const formGroup_noGap = "_formGroup_noGap_9p8a1_24";
27
+ const formGroup__label = "_formGroup__label_9p8a1_28";
28
+ const formGroup__description = "_formGroup__description_9p8a1_34";
29
+ const formGroup__content = "_formGroup__content_9p8a1_39";
30
+ const formGroup__content_only = "_formGroup__content_only_9p8a1_45";
31
+ const style0 = {
32
+ "material-design-icon": "_material-design-icon_9p8a1_12",
33
+ formGroup,
34
+ formGroup_noGap,
35
+ formGroup__label,
36
+ formGroup__description,
37
+ formGroup__content,
38
+ formGroup__content_only
39
+ };
40
+ var _sfc_render = function render() {
41
+ var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
42
+ return _c("fieldset", { class: [_vm.$style.formGroup, { [_vm.$style.formGroup_noGap]: _vm.noGap }], attrs: { "aria-describedby": _setup.getDescriptionId() } }, [_c("legend", { class: [_vm.$style.formGroup__label, { "hidden-visually": _vm.hideLabel }] }, [_vm._t("label", function() {
43
+ return [_vm._v(" " + _vm._s(_vm.label || "⚠️ Missing label") + " ")];
44
+ })], 2), _setup.hasDescription() ? _c("div", { class: [_vm.$style.formGroup__description, { "hidden-visually": _vm.hideDescription }], attrs: { "id": _setup.descriptionId } }, [_vm._t("description", function() {
45
+ return [_vm._v(" " + _vm._s(_vm.description) + " ")];
46
+ })], 2) : _vm._e(), _c("div", { class: [_vm.$style.formGroup__content, { [_vm.$style.formGroup__content_only]: _setup.hasContentOnly() }] }, [_vm._t("default")], 2)]);
47
+ };
48
+ var _sfc_staticRenderFns = [];
49
+ const __cssModules = {
50
+ "$style": style0
51
+ };
52
+ function _sfc_injectStyles(ctx) {
53
+ for (var key in __cssModules) {
54
+ this[key] = __cssModules[key];
55
+ }
56
+ }
57
+ var __component__ = /* @__PURE__ */ normalizeComponent(
58
+ _sfc_main,
59
+ _sfc_render,
60
+ _sfc_staticRenderFns,
61
+ false,
62
+ _sfc_injectStyles,
63
+ null
64
+ );
65
+ const NcFormGroup = __component__.exports;
66
+ export {
67
+ NcFormGroup as N
68
+ };
69
+ //# sourceMappingURL=NcFormGroup-BfsPo9aC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcFormGroup-BfsPo9aC.mjs","sources":["../../src/components/NcFormGroup/NcFormGroup.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { useSlots } from 'vue'\nimport { createElementId } from '../../utils/createElementId.ts'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Group label #label slot can be used for custom label content\n\t */\n\tlabel?: string\n\t/**\n\t * Optional fieldset description. #description slot can be used for custom description content\n\t */\n\tdescription?: string\n\t/**\n\t * Hide the label visually but keep it accessible for screen readers\n\t */\n\thideLabel?: boolean\n\t/**\n\t * Hide the description visually but keep it accessible for screen readers\n\t */\n\thideDescription?: boolean\n\t/**\n\t * Disable default fieldset content gap between content elements\n\t */\n\tnoGap?: boolean\n}>(), {\n\tlabel: undefined,\n\tdescription: undefined,\n\thideLabel: false,\n\thideDescription: false,\n\tnoGap: false,\n})\n\nconst slots = useSlots()\n\nconst id = `nc-form-group-${createElementId()}`\nconst descriptionId = `${id}-description`\n\nconst hasDescription = () => !!props.description || !!slots.description\nconst getDescriptionId = () => hasDescription() ? descriptionId : undefined\nconst hasContentOnly = () => props.hideLabel && (!hasDescription() || props.hideDescription)\n</script>\n\n<template>\n\t<fieldset\n\t\t:class=\"[$style.formGroup, { [$style.formGroup_noGap]: noGap }]\"\n\t\t:aria-describedby=\"getDescriptionId()\">\n\t\t<legend :class=\"[$style.formGroup__label, { 'hidden-visually': hideLabel }]\">\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot name=\"label\">\n\t\t\t\t{{ label || '⚠️ Missing label' }}\n\t\t\t</slot>\n\t\t</legend>\n\t\t<div v-if=\"hasDescription()\" :id=\"descriptionId\" :class=\"[$style.formGroup__description, { 'hidden-visually': hideDescription }]\">\n\t\t\t<!-- @slot Custom description content -->\n\t\t\t<slot name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</div>\n\t\t<div :class=\"[$style.formGroup__content, { [$style.formGroup__content_only]: hasContentOnly() }]\">\n\t\t\t<!-- @slot Content -->\n\t\t\t<slot />\n\t\t</div>\n\t</fieldset>\n</template>\n\n<style lang=\"scss\" module>\n.formGroup {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\t--form-group-content-gap: calc(2 * var(--default-grid-baseline));\n\n\t&.formGroup_noGap {\n\t\t--form-group-content-gap: 0;\n\t}\n}\n\n.formGroup__label {\n\tpadding-inline: var(--form-element-label-offset);\n\tfont-size: var(--font-size);\n\tfont-weight: bold;\n}\n\n.formGroup__description {\n\tpadding-inline: var(--form-element-label-offset);\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.formGroup__content {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--form-group-content-gap);\n\tmargin-block-start: calc(2.5 * var(--default-grid-baseline));\n\n\t&.formGroup__content_only {\n\t\tmargin-block-start: 0;\n\t}\n}\n</style>\n\n<docs>\n### General\n\nLabelled group of form elements.\n\n```vue\n<template>\n\t<NcFormGroup label=\"Personal information\">\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n\n### With description\n\n```vue\n<template>\n\t<NcFormGroup label=\"Personal information\" description=\"Your contact details\">\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n\n### Hidden label/description\n\nYou can visually hide the label and/or the description.\\\nNote: you still must provide the label. Do not visually hide the missing label warning!\n\n```vue\n<template>\n\t<NcFormGroup\n\t\tlabel=\"Personal information\"\n\t\tdescription=\"Your contact details\"\n\t\thide-label\n\t\thide-description>\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAsCA,UAAM,QAAQ,SAAA;AAEd,UAAM,KAAK,iBAAiB,gBAAA,CAAiB;AAC7C,UAAM,gBAAgB,GAAG,EAAE;AAE3B,UAAM,iBAAiB,MAAM,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM;AAC5D,UAAM,mBAAmB,MAAM,eAAA,IAAmB,gBAAgB;AAClE,UAAM,iBAAiB,MAAM,MAAM,cAAc,CAAC,eAAA,KAAoB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,68 @@
1
+ require('../assets/NcFormGroup-BrD0Scm7.css');
2
+ "use strict";
3
+ const Vue = require("vue");
4
+ const createElementId = require("./createElementId-lalylSCf.cjs");
5
+ const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
6
+ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
7
+ __name: "NcFormGroup",
8
+ props: {
9
+ label: { default: void 0 },
10
+ description: { default: void 0 },
11
+ hideLabel: { type: Boolean, default: false },
12
+ hideDescription: { type: Boolean, default: false },
13
+ noGap: { type: Boolean, default: false }
14
+ },
15
+ setup(__props) {
16
+ const props = __props;
17
+ const slots = Vue.useSlots();
18
+ const id = `nc-form-group-${createElementId.createElementId()}`;
19
+ const descriptionId = `${id}-description`;
20
+ const hasDescription = () => !!props.description || !!slots.description;
21
+ const getDescriptionId = () => hasDescription() ? descriptionId : void 0;
22
+ const hasContentOnly = () => props.hideLabel && (!hasDescription() || props.hideDescription);
23
+ return { __sfc: true, props, slots, id, descriptionId, hasDescription, getDescriptionId, hasContentOnly };
24
+ }
25
+ });
26
+ const formGroup = "_formGroup_9p8a1_20";
27
+ const formGroup_noGap = "_formGroup_noGap_9p8a1_24";
28
+ const formGroup__label = "_formGroup__label_9p8a1_28";
29
+ const formGroup__description = "_formGroup__description_9p8a1_34";
30
+ const formGroup__content = "_formGroup__content_9p8a1_39";
31
+ const formGroup__content_only = "_formGroup__content_only_9p8a1_45";
32
+ const style0 = {
33
+ "material-design-icon": "_material-design-icon_9p8a1_12",
34
+ formGroup,
35
+ formGroup_noGap,
36
+ formGroup__label,
37
+ formGroup__description,
38
+ formGroup__content,
39
+ formGroup__content_only
40
+ };
41
+ var _sfc_render = function render() {
42
+ var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
43
+ return _c("fieldset", { class: [_vm.$style.formGroup, { [_vm.$style.formGroup_noGap]: _vm.noGap }], attrs: { "aria-describedby": _setup.getDescriptionId() } }, [_c("legend", { class: [_vm.$style.formGroup__label, { "hidden-visually": _vm.hideLabel }] }, [_vm._t("label", function() {
44
+ return [_vm._v(" " + _vm._s(_vm.label || "⚠️ Missing label") + " ")];
45
+ })], 2), _setup.hasDescription() ? _c("div", { class: [_vm.$style.formGroup__description, { "hidden-visually": _vm.hideDescription }], attrs: { "id": _setup.descriptionId } }, [_vm._t("description", function() {
46
+ return [_vm._v(" " + _vm._s(_vm.description) + " ")];
47
+ })], 2) : _vm._e(), _c("div", { class: [_vm.$style.formGroup__content, { [_vm.$style.formGroup__content_only]: _setup.hasContentOnly() }] }, [_vm._t("default")], 2)]);
48
+ };
49
+ var _sfc_staticRenderFns = [];
50
+ const __cssModules = {
51
+ "$style": style0
52
+ };
53
+ function _sfc_injectStyles(ctx) {
54
+ for (var key in __cssModules) {
55
+ this[key] = __cssModules[key];
56
+ }
57
+ }
58
+ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
59
+ _sfc_main,
60
+ _sfc_render,
61
+ _sfc_staticRenderFns,
62
+ false,
63
+ _sfc_injectStyles,
64
+ null
65
+ );
66
+ const NcFormGroup = __component__.exports;
67
+ exports.NcFormGroup = NcFormGroup;
68
+ //# sourceMappingURL=NcFormGroup-CBMl_9_J.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcFormGroup-CBMl_9_J.cjs","sources":["../../src/components/NcFormGroup/NcFormGroup.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { useSlots } from 'vue'\nimport { createElementId } from '../../utils/createElementId.ts'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Group label #label slot can be used for custom label content\n\t */\n\tlabel?: string\n\t/**\n\t * Optional fieldset description. #description slot can be used for custom description content\n\t */\n\tdescription?: string\n\t/**\n\t * Hide the label visually but keep it accessible for screen readers\n\t */\n\thideLabel?: boolean\n\t/**\n\t * Hide the description visually but keep it accessible for screen readers\n\t */\n\thideDescription?: boolean\n\t/**\n\t * Disable default fieldset content gap between content elements\n\t */\n\tnoGap?: boolean\n}>(), {\n\tlabel: undefined,\n\tdescription: undefined,\n\thideLabel: false,\n\thideDescription: false,\n\tnoGap: false,\n})\n\nconst slots = useSlots()\n\nconst id = `nc-form-group-${createElementId()}`\nconst descriptionId = `${id}-description`\n\nconst hasDescription = () => !!props.description || !!slots.description\nconst getDescriptionId = () => hasDescription() ? descriptionId : undefined\nconst hasContentOnly = () => props.hideLabel && (!hasDescription() || props.hideDescription)\n</script>\n\n<template>\n\t<fieldset\n\t\t:class=\"[$style.formGroup, { [$style.formGroup_noGap]: noGap }]\"\n\t\t:aria-describedby=\"getDescriptionId()\">\n\t\t<legend :class=\"[$style.formGroup__label, { 'hidden-visually': hideLabel }]\">\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot name=\"label\">\n\t\t\t\t{{ label || '⚠️ Missing label' }}\n\t\t\t</slot>\n\t\t</legend>\n\t\t<div v-if=\"hasDescription()\" :id=\"descriptionId\" :class=\"[$style.formGroup__description, { 'hidden-visually': hideDescription }]\">\n\t\t\t<!-- @slot Custom description content -->\n\t\t\t<slot name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</div>\n\t\t<div :class=\"[$style.formGroup__content, { [$style.formGroup__content_only]: hasContentOnly() }]\">\n\t\t\t<!-- @slot Content -->\n\t\t\t<slot />\n\t\t</div>\n\t</fieldset>\n</template>\n\n<style lang=\"scss\" module>\n.formGroup {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\t--form-group-content-gap: calc(2 * var(--default-grid-baseline));\n\n\t&.formGroup_noGap {\n\t\t--form-group-content-gap: 0;\n\t}\n}\n\n.formGroup__label {\n\tpadding-inline: var(--form-element-label-offset);\n\tfont-size: var(--font-size);\n\tfont-weight: bold;\n}\n\n.formGroup__description {\n\tpadding-inline: var(--form-element-label-offset);\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.formGroup__content {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--form-group-content-gap);\n\tmargin-block-start: calc(2.5 * var(--default-grid-baseline));\n\n\t&.formGroup__content_only {\n\t\tmargin-block-start: 0;\n\t}\n}\n</style>\n\n<docs>\n### General\n\nLabelled group of form elements.\n\n```vue\n<template>\n\t<NcFormGroup label=\"Personal information\">\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n\n### With description\n\n```vue\n<template>\n\t<NcFormGroup label=\"Personal information\" description=\"Your contact details\">\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n\n### Hidden label/description\n\nYou can visually hide the label and/or the description.\\\nNote: you still must provide the label. Do not visually hide the missing label warning!\n\n```vue\n<template>\n\t<NcFormGroup\n\t\tlabel=\"Personal information\"\n\t\tdescription=\"Your contact details\"\n\t\thide-label\n\t\thide-description>\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n</docs>\n"],"names":["useSlots","createElementId"],"mappings":";;;;;;;;;;;;;;;AAsCA,UAAM,QAAQA,IAAAA,SAAA;AAEd,UAAM,KAAK,iBAAiBC,gBAAAA,gBAAA,CAAiB;AAC7C,UAAM,gBAAgB,GAAG,EAAE;AAE3B,UAAM,iBAAiB,MAAM,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM;AAC5D,UAAM,mBAAmB,MAAM,eAAA,IAAmB,gBAAgB;AAClE,UAAM,iBAAiB,MAAM,MAAM,cAAc,CAAC,eAAA,KAAoB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  require('../assets/NcHeaderButton-DI-1Gsph.css');
2
2
  "use strict";
3
3
  const GenRandomId = require("./GenRandomId-D7iOvpZS.cjs");
4
- const NcButton = require("./NcButton-CJBZrdiL.cjs");
4
+ const NcButton = require("./NcButton-CuFElrFD.cjs");
5
5
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
6
6
  const _sfc_main = {
7
7
  name: "NcHeaderButton",
@@ -60,4 +60,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
60
60
  );
61
61
  const NcHeaderButton = __component__.exports;
62
62
  exports.NcHeaderButton = NcHeaderButton;
63
- //# sourceMappingURL=NcHeaderButton-6kuTEKbj.cjs.map
63
+ //# sourceMappingURL=NcHeaderButton-CpWQbzfF.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcHeaderButton-6kuTEKbj.cjs","sources":["../../src/components/NcHeaderButton/NcHeaderButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header,\nsimilar to the NcHeaderMenu but to be used when only a trigger button is needed, e.g. when opening a dialog.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderButton id=\"search-dialog\"\n\t\t\taria-label=\"Search\"\n\t\t\t@click=\"showDialog = true\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t</NcHeaderButton>\n\n\t\t<NcDialog name=\"Search\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showDialog\">\n\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t<NcEmptyContent name=\"Search\"\n\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</NcDialog>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowDialog: false,\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<!-- We need a wrapper for server styles to apply -->\n\t<div :id=\"id\" class=\"header-menu\">\n\t\t<NcButton\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"$emit('click', $event)\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderButton',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` attribute of the button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../NcHeaderMenu/header-menu__trigger.scss';\n</style>\n"],"names":["NcButton","GenRandomId"],"mappings":";;;;AA6FA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAA,SAAAA;AAAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,eAAAC,YAAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcHeaderButton-CpWQbzfF.cjs","sources":["../../src/components/NcHeaderButton/NcHeaderButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header,\nsimilar to the NcHeaderMenu but to be used when only a trigger button is needed, e.g. when opening a dialog.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderButton id=\"search-dialog\"\n\t\t\taria-label=\"Search\"\n\t\t\t@click=\"showDialog = true\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t</NcHeaderButton>\n\n\t\t<NcDialog name=\"Search\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showDialog\">\n\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t<NcEmptyContent name=\"Search\"\n\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</NcDialog>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowDialog: false,\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<!-- We need a wrapper for server styles to apply -->\n\t<div :id=\"id\" class=\"header-menu\">\n\t\t<NcButton\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"$emit('click', $event)\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderButton',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` attribute of the button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../NcHeaderMenu/header-menu__trigger.scss';\n</style>\n"],"names":["NcButton","GenRandomId"],"mappings":";;;;AA6FA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAA,SAAAA;AAAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,eAAAC,YAAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import '../assets/NcHeaderButton-DI-1Gsph.css';
2
2
  import { G as GenRandomId } from "./GenRandomId-F5ebeBB_.mjs";
3
- import { N as NcButton } from "./NcButton-DUZTtFhr.mjs";
3
+ import { N as NcButton } from "./NcButton-Dz2O6cSU.mjs";
4
4
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
5
5
  const _sfc_main = {
6
6
  name: "NcHeaderButton",
@@ -61,4 +61,4 @@ const NcHeaderButton = __component__.exports;
61
61
  export {
62
62
  NcHeaderButton as N
63
63
  };
64
- //# sourceMappingURL=NcHeaderButton-TgPjfPtk.mjs.map
64
+ //# sourceMappingURL=NcHeaderButton-Dvo1_Bwc.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcHeaderButton-TgPjfPtk.mjs","sources":["../../src/components/NcHeaderButton/NcHeaderButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header,\nsimilar to the NcHeaderMenu but to be used when only a trigger button is needed, e.g. when opening a dialog.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderButton id=\"search-dialog\"\n\t\t\taria-label=\"Search\"\n\t\t\t@click=\"showDialog = true\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t</NcHeaderButton>\n\n\t\t<NcDialog name=\"Search\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showDialog\">\n\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t<NcEmptyContent name=\"Search\"\n\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</NcDialog>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowDialog: false,\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<!-- We need a wrapper for server styles to apply -->\n\t<div :id=\"id\" class=\"header-menu\">\n\t\t<NcButton\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"$emit('click', $event)\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderButton',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` attribute of the button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../NcHeaderMenu/header-menu__trigger.scss';\n</style>\n"],"names":[],"mappings":";;;AA6FA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,eAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcHeaderButton-Dvo1_Bwc.mjs","sources":["../../src/components/NcHeaderButton/NcHeaderButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header,\nsimilar to the NcHeaderMenu but to be used when only a trigger button is needed, e.g. when opening a dialog.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderButton id=\"search-dialog\"\n\t\t\taria-label=\"Search\"\n\t\t\t@click=\"showDialog = true\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t</NcHeaderButton>\n\n\t\t<NcDialog name=\"Search\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showDialog\">\n\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t<NcEmptyContent name=\"Search\"\n\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</NcDialog>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowDialog: false,\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<!-- We need a wrapper for server styles to apply -->\n\t<div :id=\"id\" class=\"header-menu\">\n\t\t<NcButton\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"$emit('click', $event)\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderButton',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` attribute of the button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../NcHeaderMenu/header-menu__trigger.scss';\n</style>\n"],"names":[],"mappings":";;;AA6FA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,eAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;"}
@@ -21,7 +21,7 @@ require("@nextcloud/capabilities");
21
21
  require("./logger-3HuiEIF6.cjs");
22
22
  const focusTrap$1 = require("./focusTrap-DUTqW_IG.cjs");
23
23
  const GenRandomId = require("./GenRandomId-D7iOvpZS.cjs");
24
- const NcButton = require("./NcButton-CJBZrdiL.cjs");
24
+ const NcButton = require("./NcButton-CuFElrFD.cjs");
25
25
  const _sfc_main = {
26
26
  name: "NcHeaderMenu",
27
27
  components: {
@@ -230,4 +230,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
230
230
  );
231
231
  const NcHeaderMenu = __component__.exports;
232
232
  exports.NcHeaderMenu = NcHeaderMenu;
233
- //# sourceMappingURL=NcHeaderMenu-CwjH_j0c.cjs.map
233
+ //# sourceMappingURL=NcHeaderMenu-Cmu-m_aM.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcHeaderMenu-CwjH_j0c.cjs","sources":["../../src/components/NcHeaderMenu/NcHeaderMenu.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderMenu id=\"search\"\n\t\t\taria-label=\"Search\">\n\t\t\t<template #trigger>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t\t<div>\n\t\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\tstyle=\"padding-inline: 8px;\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tname=\"Search\"\n\t\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Magnify />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</NcHeaderMenu>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"wrapperTag\"\n\t\t:id=\"id\"\n\t\tref=\"headerMenu\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:aria-labelledby=\"isNav ? triggerId : null\"\n\t\t:class=\"{ 'header-menu--opened': opened }\"\n\t\tclass=\"header-menu\"\n\t\tv-on=\"listeners\">\n\t\t<!-- Trigger -->\n\t\t<NcButton\n\t\t\t:id=\"isNav ? triggerId : null\"\n\t\t\tref=\"trigger\"\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-controls=\"`header-menu-${id}`\"\n\t\t\t:aria-describedby=\"description ? descriptionId : null\"\n\t\t\t:aria-expanded=\"opened.toString()\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\n\t\t<!-- Visual triangle -->\n\t\t<div v-show=\"opened\" class=\"header-menu__carret\" />\n\n\t\t<!-- Menu opened content -->\n\t\t<div\n\t\t\tv-show=\"opened\"\n\t\t\t:id=\"`header-menu-${id}`\"\n\t\t\tclass=\"header-menu__wrapper\">\n\t\t\t<div ref=\"content\" class=\"header-menu__content\">\n\t\t\t\t<!-- @slot Main content -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\nimport { ref } from 'vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { clickOutsideOptions } from '../../mixins/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderMenu',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * aria-label attribute of the menu open button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Current menu open state\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 * Pass `true` if the header menu is used for website navigation\n\t\t *\n\t\t * The wrapper tag will be set to `nav` and its `aria-labelledby`\n\t\t * will be associated with the menu open button\n\t\t */\n\t\tisNav: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the menu\n\t\t * open button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closed',\n\t\t'open',\n\t\t'opened',\n\t\t'update:open',\n\t\t'cancel',\n\t],\n\n\tsetup(props) {\n\t\tconst opened = ref(props.open)\n\n\t\t// When component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(opened, {\n\t\t\tdisabled: () => !props.isNav,\n\t\t})\n\n\t\treturn {\n\t\t\topened,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfocusTrap: null,\n\t\t\tshortcutsDisabled: window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),\n\t\t\ttriggerId: GenRandomId(),\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isNav ? 'nav' : 'div'\n\t\t},\n\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\n\t\tlisteners() {\n\t\t\tif (this.isNav) {\n\t\t\t\treturn {\n\t\t\t\t\tfocusout: this.onFocusOut,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tdocument.addEventListener('keydown', this.onKeyDown)\n\t},\n\n\tbeforeDestroy() {\n\t\tdocument.removeEventListener('keydown', this.onKeyDown)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the current menu open state\n\t\t */\n\t\ttoggleMenu() {\n\t\t\t// Toggling current state\n\t\t\tif (!this.opened) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the current menu\n\t\t *\n\t\t * @param {boolean} cancelled emit a cancel event instead of close\n\t\t */\n\t\tcloseMenu(cancelled = false) {\n\t\t\t// Close the menu\n\t\t\tthis.opened = false\n\t\t\tthis.$emit(cancelled ? 'cancel' : 'close')\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t// Kill focus trap\n\t\t\tthis.clearFocusTrap()\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$emit('closed')\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Open the current menu\n\t\t */\n\t\topenMenu() {\n\t\t\t// Open the menu\n\t\t\tthis.opened = true\n\t\t\tthis.$emit('open')\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.useFocusTrap()\n\t\t\t\tthis.$emit('opened')\n\t\t\t})\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\tif (this.shortcutsDisabled || !this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If escape have been pressed, we close\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\t/** User cancelled the menu by pressing escape */\n\t\t\t\tthis.closeMenu(true)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {FocusEvent} event The focus event\n\t\t */\n\t\tonFocusOut(event) {\n\t\t\tif (!this.$refs.headerMenu.contains(event.relatedTarget)) {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t * Shall only be used when all children are mounted\n\t\t * and available in the DOM. We use $nextTick for that.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tif (this.isNav || this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Init focus trap\n\t\t\tconst contentContainer = this.$refs.content\n\t\t\tthis.focusTrap = createFocusTrap(contentContainer, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tfallbackFocus: this.$refs.trigger.$el,\n\t\t\t})\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// content inner and outer margin\n// Also used for menu top-right positioning\n$externalMargin: 8px;\n\n@use './header-menu__trigger.scss';\n\n.header-menu {\n\t&__wrapper {\n\t\tposition: fixed;\n\t\tz-index: 2000;\n\t\ttop: var(--header-height);\n\t\tinset-inline-end: 0;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $externalMargin;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\n\t\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\n\t}\n\n\t&__carret {\n\t\tposition: absolute;\n\t\tz-index: 2001; // Because __wrapper is 2000.\n\t\tbottom: 0;\n\t\tinset-inline-start: calc(50% - 10px);\n\t\twidth: 0;\n\t\theight: 0;\n\t\tcontent: ' ';\n\t\tpointer-events: none;\n\t\tborder: 10px solid transparent;\n\t\tborder-bottom-color: var(--color-main-background);\n\t}\n\n\t&__content {\n\t\toverflow: auto;\n\t\twidth: 350px;\n\t\tmax-width: calc(100vw - 2 * $externalMargin);\n\t\tmin-height: calc(var(--default-clickable-area) * 1.5);\n\t\tmax-height: calc(100vh - var(--header-height) * 2);\n\t\t:deep(.empty-content) {\n\t\t\tmargin: 12vh 10px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["NcButton","ClickOutside","clickOutsideOptions","ref","useTrapStackControl","GenRandomId","createFocusTrap","getTrapStack"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAwHA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAA,SAAAA;AAAAA,EACA;AAAA,EAEA,YAAA;AAAA,IACA,cAAAC,WAAAA;AAAAA,EACA;AAAA,EAEA,QAAA;AAAA,IACAC;AAAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,MAAA,OAAA;AACA,UAAA,SAAAC,QAAA,MAAA,IAAA;AAIAC,wBAAAA,oBAAA,QAAA;AAAA,MACA,UAAA,MAAA,CAAA,MAAA;AAAA,IACA,CAAA;AAEA,WAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,mBAAA,OAAA,KAAA,eAAA,2BAAA;AAAA,MACA,WAAAC,YAAAA,YAAA;AAAA,MACA,eAAAA,YAAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,QAAA,QAAA;AAAA,IACA;AAAA,IAEA,qBAAA;AACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,UAAA,KAAA,OAAA;AACA,eAAA;AAAA,UACA,UAAA,KAAA;AAAA,QACA;AAAA,MACA;AACA,aAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,KAAA,MAAA;AACA,UAAA,MAAA;AACA,aAAA,SAAA;AAAA,MACA,OAAA;AACA,aAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,aAAA,iBAAA,WAAA,KAAA,SAAA;AAAA,EACA;AAAA,EAEA,gBAAA;AACA,aAAA,oBAAA,WAAA,KAAA,SAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA,IAIA,aAAA;AAEA,UAAA,CAAA,KAAA,QAAA;AACA,aAAA,SAAA;AAAA,MACA,OAAA;AACA,aAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA,YAAA,OAAA;AAEA,WAAA,SAAA;AACA,WAAA,MAAA,YAAA,WAAA,OAAA;AACA,WAAA,MAAA,eAAA,KAAA;AAGA,WAAA,eAAA;AAGA,WAAA,UAAA,MAAA;AACA,aAAA,MAAA,QAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAEA,WAAA,SAAA;AACA,WAAA,MAAA,MAAA;AACA,WAAA,MAAA,eAAA,IAAA;AAGA,WAAA,UAAA,MAAA;AACA,aAAA,aAAA;AACA,aAAA,MAAA,QAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,IAEA,UAAA,OAAA;AACA,UAAA,KAAA,qBAAA,CAAA,KAAA,QAAA;AACA;AAAA,MACA;AAGA,UAAA,MAAA,QAAA,UAAA;AACA,cAAA,eAAA;AAGA,aAAA,UAAA,IAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA,OAAA;AACA,UAAA,CAAA,KAAA,MAAA,WAAA,SAAA,MAAA,aAAA,GAAA;AACA,aAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAA,eAAA;AACA,UAAA,KAAA,SAAA,KAAA,WAAA;AACA;AAAA,MACA;AAEA,YAAA,mBAAA,KAAA,MAAA;AACA,WAAA,YAAAC,UAAAA,gBAAA,kBAAA;AAAA,QACA,mBAAA;AAAA,QACA,WAAAC,YAAAA,aAAA;AAAA,QACA,eAAA,KAAA,MAAA,QAAA;AAAA,MACA,CAAA;AACA,WAAA,UAAA,SAAA;AAAA,IACA;AAAA,IAEA,iBAAA;AACA,WAAA,WAAA,WAAA;AACA,WAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcHeaderMenu-Cmu-m_aM.cjs","sources":["../../src/components/NcHeaderMenu/NcHeaderMenu.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderMenu id=\"search\"\n\t\t\taria-label=\"Search\">\n\t\t\t<template #trigger>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t\t<div>\n\t\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\tstyle=\"padding-inline: 8px;\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tname=\"Search\"\n\t\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Magnify />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</NcHeaderMenu>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"wrapperTag\"\n\t\t:id=\"id\"\n\t\tref=\"headerMenu\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:aria-labelledby=\"isNav ? triggerId : null\"\n\t\t:class=\"{ 'header-menu--opened': opened }\"\n\t\tclass=\"header-menu\"\n\t\tv-on=\"listeners\">\n\t\t<!-- Trigger -->\n\t\t<NcButton\n\t\t\t:id=\"isNav ? triggerId : null\"\n\t\t\tref=\"trigger\"\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-controls=\"`header-menu-${id}`\"\n\t\t\t:aria-describedby=\"description ? descriptionId : null\"\n\t\t\t:aria-expanded=\"opened.toString()\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\n\t\t<!-- Visual triangle -->\n\t\t<div v-show=\"opened\" class=\"header-menu__carret\" />\n\n\t\t<!-- Menu opened content -->\n\t\t<div\n\t\t\tv-show=\"opened\"\n\t\t\t:id=\"`header-menu-${id}`\"\n\t\t\tclass=\"header-menu__wrapper\">\n\t\t\t<div ref=\"content\" class=\"header-menu__content\">\n\t\t\t\t<!-- @slot Main content -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\nimport { ref } from 'vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { clickOutsideOptions } from '../../mixins/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderMenu',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * aria-label attribute of the menu open button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Current menu open state\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 * Pass `true` if the header menu is used for website navigation\n\t\t *\n\t\t * The wrapper tag will be set to `nav` and its `aria-labelledby`\n\t\t * will be associated with the menu open button\n\t\t */\n\t\tisNav: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the menu\n\t\t * open button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closed',\n\t\t'open',\n\t\t'opened',\n\t\t'update:open',\n\t\t'cancel',\n\t],\n\n\tsetup(props) {\n\t\tconst opened = ref(props.open)\n\n\t\t// When component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(opened, {\n\t\t\tdisabled: () => !props.isNav,\n\t\t})\n\n\t\treturn {\n\t\t\topened,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfocusTrap: null,\n\t\t\tshortcutsDisabled: window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),\n\t\t\ttriggerId: GenRandomId(),\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isNav ? 'nav' : 'div'\n\t\t},\n\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\n\t\tlisteners() {\n\t\t\tif (this.isNav) {\n\t\t\t\treturn {\n\t\t\t\t\tfocusout: this.onFocusOut,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tdocument.addEventListener('keydown', this.onKeyDown)\n\t},\n\n\tbeforeDestroy() {\n\t\tdocument.removeEventListener('keydown', this.onKeyDown)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the current menu open state\n\t\t */\n\t\ttoggleMenu() {\n\t\t\t// Toggling current state\n\t\t\tif (!this.opened) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the current menu\n\t\t *\n\t\t * @param {boolean} cancelled emit a cancel event instead of close\n\t\t */\n\t\tcloseMenu(cancelled = false) {\n\t\t\t// Close the menu\n\t\t\tthis.opened = false\n\t\t\tthis.$emit(cancelled ? 'cancel' : 'close')\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t// Kill focus trap\n\t\t\tthis.clearFocusTrap()\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$emit('closed')\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Open the current menu\n\t\t */\n\t\topenMenu() {\n\t\t\t// Open the menu\n\t\t\tthis.opened = true\n\t\t\tthis.$emit('open')\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.useFocusTrap()\n\t\t\t\tthis.$emit('opened')\n\t\t\t})\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\tif (this.shortcutsDisabled || !this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If escape have been pressed, we close\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\t/** User cancelled the menu by pressing escape */\n\t\t\t\tthis.closeMenu(true)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {FocusEvent} event The focus event\n\t\t */\n\t\tonFocusOut(event) {\n\t\t\tif (!this.$refs.headerMenu.contains(event.relatedTarget)) {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t * Shall only be used when all children are mounted\n\t\t * and available in the DOM. We use $nextTick for that.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tif (this.isNav || this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Init focus trap\n\t\t\tconst contentContainer = this.$refs.content\n\t\t\tthis.focusTrap = createFocusTrap(contentContainer, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tfallbackFocus: this.$refs.trigger.$el,\n\t\t\t})\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// content inner and outer margin\n// Also used for menu top-right positioning\n$externalMargin: 8px;\n\n@use './header-menu__trigger.scss';\n\n.header-menu {\n\t&__wrapper {\n\t\tposition: fixed;\n\t\tz-index: 2000;\n\t\ttop: var(--header-height);\n\t\tinset-inline-end: 0;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $externalMargin;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\n\t\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\n\t}\n\n\t&__carret {\n\t\tposition: absolute;\n\t\tz-index: 2001; // Because __wrapper is 2000.\n\t\tbottom: 0;\n\t\tinset-inline-start: calc(50% - 10px);\n\t\twidth: 0;\n\t\theight: 0;\n\t\tcontent: ' ';\n\t\tpointer-events: none;\n\t\tborder: 10px solid transparent;\n\t\tborder-bottom-color: var(--color-main-background);\n\t}\n\n\t&__content {\n\t\toverflow: auto;\n\t\twidth: 350px;\n\t\tmax-width: calc(100vw - 2 * $externalMargin);\n\t\tmin-height: calc(var(--default-clickable-area) * 1.5);\n\t\tmax-height: calc(100vh - var(--header-height) * 2);\n\t\t:deep(.empty-content) {\n\t\t\tmargin: 12vh 10px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["NcButton","ClickOutside","clickOutsideOptions","ref","useTrapStackControl","GenRandomId","createFocusTrap","getTrapStack"],"mappings":"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"}
@@ -20,7 +20,7 @@ import "@nextcloud/capabilities";
20
20
  import "./logger-D3RVzcfQ.mjs";
21
21
  import { g as getTrapStack } from "./focusTrap-HJQ4pqHV.mjs";
22
22
  import { G as GenRandomId } from "./GenRandomId-F5ebeBB_.mjs";
23
- import { N as NcButton } from "./NcButton-DUZTtFhr.mjs";
23
+ import { N as NcButton } from "./NcButton-Dz2O6cSU.mjs";
24
24
  const _sfc_main = {
25
25
  name: "NcHeaderMenu",
26
26
  components: {
@@ -231,4 +231,4 @@ const NcHeaderMenu = __component__.exports;
231
231
  export {
232
232
  NcHeaderMenu as N
233
233
  };
234
- //# sourceMappingURL=NcHeaderMenu-Hk8OTuma.mjs.map
234
+ //# sourceMappingURL=NcHeaderMenu-Cuh8ay0F.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcHeaderMenu-Hk8OTuma.mjs","sources":["../../src/components/NcHeaderMenu/NcHeaderMenu.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderMenu id=\"search\"\n\t\t\taria-label=\"Search\">\n\t\t\t<template #trigger>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t\t<div>\n\t\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\tstyle=\"padding-inline: 8px;\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tname=\"Search\"\n\t\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Magnify />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</NcHeaderMenu>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"wrapperTag\"\n\t\t:id=\"id\"\n\t\tref=\"headerMenu\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:aria-labelledby=\"isNav ? triggerId : null\"\n\t\t:class=\"{ 'header-menu--opened': opened }\"\n\t\tclass=\"header-menu\"\n\t\tv-on=\"listeners\">\n\t\t<!-- Trigger -->\n\t\t<NcButton\n\t\t\t:id=\"isNav ? triggerId : null\"\n\t\t\tref=\"trigger\"\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-controls=\"`header-menu-${id}`\"\n\t\t\t:aria-describedby=\"description ? descriptionId : null\"\n\t\t\t:aria-expanded=\"opened.toString()\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\n\t\t<!-- Visual triangle -->\n\t\t<div v-show=\"opened\" class=\"header-menu__carret\" />\n\n\t\t<!-- Menu opened content -->\n\t\t<div\n\t\t\tv-show=\"opened\"\n\t\t\t:id=\"`header-menu-${id}`\"\n\t\t\tclass=\"header-menu__wrapper\">\n\t\t\t<div ref=\"content\" class=\"header-menu__content\">\n\t\t\t\t<!-- @slot Main content -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\nimport { ref } from 'vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { clickOutsideOptions } from '../../mixins/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderMenu',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * aria-label attribute of the menu open button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Current menu open state\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 * Pass `true` if the header menu is used for website navigation\n\t\t *\n\t\t * The wrapper tag will be set to `nav` and its `aria-labelledby`\n\t\t * will be associated with the menu open button\n\t\t */\n\t\tisNav: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the menu\n\t\t * open button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closed',\n\t\t'open',\n\t\t'opened',\n\t\t'update:open',\n\t\t'cancel',\n\t],\n\n\tsetup(props) {\n\t\tconst opened = ref(props.open)\n\n\t\t// When component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(opened, {\n\t\t\tdisabled: () => !props.isNav,\n\t\t})\n\n\t\treturn {\n\t\t\topened,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfocusTrap: null,\n\t\t\tshortcutsDisabled: window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),\n\t\t\ttriggerId: GenRandomId(),\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isNav ? 'nav' : 'div'\n\t\t},\n\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\n\t\tlisteners() {\n\t\t\tif (this.isNav) {\n\t\t\t\treturn {\n\t\t\t\t\tfocusout: this.onFocusOut,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tdocument.addEventListener('keydown', this.onKeyDown)\n\t},\n\n\tbeforeDestroy() {\n\t\tdocument.removeEventListener('keydown', this.onKeyDown)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the current menu open state\n\t\t */\n\t\ttoggleMenu() {\n\t\t\t// Toggling current state\n\t\t\tif (!this.opened) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the current menu\n\t\t *\n\t\t * @param {boolean} cancelled emit a cancel event instead of close\n\t\t */\n\t\tcloseMenu(cancelled = false) {\n\t\t\t// Close the menu\n\t\t\tthis.opened = false\n\t\t\tthis.$emit(cancelled ? 'cancel' : 'close')\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t// Kill focus trap\n\t\t\tthis.clearFocusTrap()\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$emit('closed')\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Open the current menu\n\t\t */\n\t\topenMenu() {\n\t\t\t// Open the menu\n\t\t\tthis.opened = true\n\t\t\tthis.$emit('open')\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.useFocusTrap()\n\t\t\t\tthis.$emit('opened')\n\t\t\t})\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\tif (this.shortcutsDisabled || !this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If escape have been pressed, we close\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\t/** User cancelled the menu by pressing escape */\n\t\t\t\tthis.closeMenu(true)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {FocusEvent} event The focus event\n\t\t */\n\t\tonFocusOut(event) {\n\t\t\tif (!this.$refs.headerMenu.contains(event.relatedTarget)) {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t * Shall only be used when all children are mounted\n\t\t * and available in the DOM. We use $nextTick for that.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tif (this.isNav || this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Init focus trap\n\t\t\tconst contentContainer = this.$refs.content\n\t\t\tthis.focusTrap = createFocusTrap(contentContainer, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tfallbackFocus: this.$refs.trigger.$el,\n\t\t\t})\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// content inner and outer margin\n// Also used for menu top-right positioning\n$externalMargin: 8px;\n\n@use './header-menu__trigger.scss';\n\n.header-menu {\n\t&__wrapper {\n\t\tposition: fixed;\n\t\tz-index: 2000;\n\t\ttop: var(--header-height);\n\t\tinset-inline-end: 0;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $externalMargin;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\n\t\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\n\t}\n\n\t&__carret {\n\t\tposition: absolute;\n\t\tz-index: 2001; // Because __wrapper is 2000.\n\t\tbottom: 0;\n\t\tinset-inline-start: calc(50% - 10px);\n\t\twidth: 0;\n\t\theight: 0;\n\t\tcontent: ' ';\n\t\tpointer-events: none;\n\t\tborder: 10px solid transparent;\n\t\tborder-bottom-color: var(--color-main-background);\n\t}\n\n\t&__content {\n\t\toverflow: auto;\n\t\twidth: 350px;\n\t\tmax-width: calc(100vw - 2 * $externalMargin);\n\t\tmin-height: calc(var(--default-clickable-area) * 1.5);\n\t\tmax-height: calc(100vh - var(--header-height) * 2);\n\t\t:deep(.empty-content) {\n\t\t\tmargin: 12vh 10px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["ClickOutside"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwHA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,YAAA;AAAA,IACA,cAAAA;AAAAA,EACA;AAAA,EAEA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,MAAA,OAAA;AACA,UAAA,SAAA,IAAA,MAAA,IAAA;AAIA,wBAAA,QAAA;AAAA,MACA,UAAA,MAAA,CAAA,MAAA;AAAA,IACA,CAAA;AAEA,WAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,mBAAA,OAAA,KAAA,eAAA,2BAAA;AAAA,MACA,WAAA,YAAA;AAAA,MACA,eAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,aAAA;AACA,aAAA,KAAA,QAAA,QAAA;AAAA,IACA;AAAA,IAEA,qBAAA;AACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,UAAA,KAAA,OAAA;AACA,eAAA;AAAA,UACA,UAAA,KAAA;AAAA,QACA;AAAA,MACA;AACA,aAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,KAAA,MAAA;AACA,UAAA,MAAA;AACA,aAAA,SAAA;AAAA,MACA,OAAA;AACA,aAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,aAAA,iBAAA,WAAA,KAAA,SAAA;AAAA,EACA;AAAA,EAEA,gBAAA;AACA,aAAA,oBAAA,WAAA,KAAA,SAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA,IAIA,aAAA;AAEA,UAAA,CAAA,KAAA,QAAA;AACA,aAAA,SAAA;AAAA,MACA,OAAA;AACA,aAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA,YAAA,OAAA;AAEA,WAAA,SAAA;AACA,WAAA,MAAA,YAAA,WAAA,OAAA;AACA,WAAA,MAAA,eAAA,KAAA;AAGA,WAAA,eAAA;AAGA,WAAA,UAAA,MAAA;AACA,aAAA,MAAA,QAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAEA,WAAA,SAAA;AACA,WAAA,MAAA,MAAA;AACA,WAAA,MAAA,eAAA,IAAA;AAGA,WAAA,UAAA,MAAA;AACA,aAAA,aAAA;AACA,aAAA,MAAA,QAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,IAEA,UAAA,OAAA;AACA,UAAA,KAAA,qBAAA,CAAA,KAAA,QAAA;AACA;AAAA,MACA;AAGA,UAAA,MAAA,QAAA,UAAA;AACA,cAAA,eAAA;AAGA,aAAA,UAAA,IAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA,OAAA;AACA,UAAA,CAAA,KAAA,MAAA,WAAA,SAAA,MAAA,aAAA,GAAA;AACA,aAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAA,eAAA;AACA,UAAA,KAAA,SAAA,KAAA,WAAA;AACA;AAAA,MACA;AAEA,YAAA,mBAAA,KAAA,MAAA;AACA,WAAA,YAAA,gBAAA,kBAAA;AAAA,QACA,mBAAA;AAAA,QACA,WAAA,aAAA;AAAA,QACA,eAAA,KAAA,MAAA,QAAA;AAAA,MACA,CAAA;AACA,WAAA,UAAA,SAAA;AAAA,IACA;AAAA,IAEA,iBAAA;AACA,WAAA,WAAA,WAAA;AACA,WAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcHeaderMenu-Cuh8ay0F.mjs","sources":["../../src/components/NcHeaderMenu/NcHeaderMenu.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderMenu id=\"search\"\n\t\t\taria-label=\"Search\">\n\t\t\t<template #trigger>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t\t<div>\n\t\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\tstyle=\"padding-inline: 8px;\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tname=\"Search\"\n\t\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Magnify />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</NcHeaderMenu>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"wrapperTag\"\n\t\t:id=\"id\"\n\t\tref=\"headerMenu\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:aria-labelledby=\"isNav ? triggerId : null\"\n\t\t:class=\"{ 'header-menu--opened': opened }\"\n\t\tclass=\"header-menu\"\n\t\tv-on=\"listeners\">\n\t\t<!-- Trigger -->\n\t\t<NcButton\n\t\t\t:id=\"isNav ? triggerId : null\"\n\t\t\tref=\"trigger\"\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-controls=\"`header-menu-${id}`\"\n\t\t\t:aria-describedby=\"description ? descriptionId : null\"\n\t\t\t:aria-expanded=\"opened.toString()\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\n\t\t<!-- Visual triangle -->\n\t\t<div v-show=\"opened\" class=\"header-menu__carret\" />\n\n\t\t<!-- Menu opened content -->\n\t\t<div\n\t\t\tv-show=\"opened\"\n\t\t\t:id=\"`header-menu-${id}`\"\n\t\t\tclass=\"header-menu__wrapper\">\n\t\t\t<div ref=\"content\" class=\"header-menu__content\">\n\t\t\t\t<!-- @slot Main content -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\nimport { ref } from 'vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { clickOutsideOptions } from '../../mixins/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderMenu',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * aria-label attribute of the menu open button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Current menu open state\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 * Pass `true` if the header menu is used for website navigation\n\t\t *\n\t\t * The wrapper tag will be set to `nav` and its `aria-labelledby`\n\t\t * will be associated with the menu open button\n\t\t */\n\t\tisNav: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the menu\n\t\t * open button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closed',\n\t\t'open',\n\t\t'opened',\n\t\t'update:open',\n\t\t'cancel',\n\t],\n\n\tsetup(props) {\n\t\tconst opened = ref(props.open)\n\n\t\t// When component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(opened, {\n\t\t\tdisabled: () => !props.isNav,\n\t\t})\n\n\t\treturn {\n\t\t\topened,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfocusTrap: null,\n\t\t\tshortcutsDisabled: window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),\n\t\t\ttriggerId: GenRandomId(),\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isNav ? 'nav' : 'div'\n\t\t},\n\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\n\t\tlisteners() {\n\t\t\tif (this.isNav) {\n\t\t\t\treturn {\n\t\t\t\t\tfocusout: this.onFocusOut,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tdocument.addEventListener('keydown', this.onKeyDown)\n\t},\n\n\tbeforeDestroy() {\n\t\tdocument.removeEventListener('keydown', this.onKeyDown)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the current menu open state\n\t\t */\n\t\ttoggleMenu() {\n\t\t\t// Toggling current state\n\t\t\tif (!this.opened) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the current menu\n\t\t *\n\t\t * @param {boolean} cancelled emit a cancel event instead of close\n\t\t */\n\t\tcloseMenu(cancelled = false) {\n\t\t\t// Close the menu\n\t\t\tthis.opened = false\n\t\t\tthis.$emit(cancelled ? 'cancel' : 'close')\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t// Kill focus trap\n\t\t\tthis.clearFocusTrap()\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$emit('closed')\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Open the current menu\n\t\t */\n\t\topenMenu() {\n\t\t\t// Open the menu\n\t\t\tthis.opened = true\n\t\t\tthis.$emit('open')\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.useFocusTrap()\n\t\t\t\tthis.$emit('opened')\n\t\t\t})\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\tif (this.shortcutsDisabled || !this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If escape have been pressed, we close\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\t/** User cancelled the menu by pressing escape */\n\t\t\t\tthis.closeMenu(true)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {FocusEvent} event The focus event\n\t\t */\n\t\tonFocusOut(event) {\n\t\t\tif (!this.$refs.headerMenu.contains(event.relatedTarget)) {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t * Shall only be used when all children are mounted\n\t\t * and available in the DOM. We use $nextTick for that.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tif (this.isNav || this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Init focus trap\n\t\t\tconst contentContainer = this.$refs.content\n\t\t\tthis.focusTrap = createFocusTrap(contentContainer, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tfallbackFocus: this.$refs.trigger.$el,\n\t\t\t})\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// content inner and outer margin\n// Also used for menu top-right positioning\n$externalMargin: 8px;\n\n@use './header-menu__trigger.scss';\n\n.header-menu {\n\t&__wrapper {\n\t\tposition: fixed;\n\t\tz-index: 2000;\n\t\ttop: var(--header-height);\n\t\tinset-inline-end: 0;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $externalMargin;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\n\t\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\n\t}\n\n\t&__carret {\n\t\tposition: absolute;\n\t\tz-index: 2001; // Because __wrapper is 2000.\n\t\tbottom: 0;\n\t\tinset-inline-start: calc(50% - 10px);\n\t\twidth: 0;\n\t\theight: 0;\n\t\tcontent: ' ';\n\t\tpointer-events: none;\n\t\tborder: 10px solid transparent;\n\t\tborder-bottom-color: var(--color-main-background);\n\t}\n\n\t&__content {\n\t\toverflow: auto;\n\t\twidth: 350px;\n\t\tmax-width: calc(100vw - 2 * $externalMargin);\n\t\tmin-height: calc(var(--default-clickable-area) * 1.5);\n\t\tmax-height: calc(100vh - var(--header-height) * 2);\n\t\t:deep(.empty-content) {\n\t\t\tmargin: 12vh 10px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["ClickOutside"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- require('../assets/NcHotkey-QklVKSyr.css');
1
+ require('../assets/NcHotkey-4yi1Hobg.css');
2
2
  "use strict";
3
3
  const Vue = require("vue");
4
- const NcKbd = require("./NcKbd-CVBh8nyU.cjs");
4
+ const NcKbd = require("./NcKbd-CyyEm6BD.cjs");
5
5
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
6
6
  const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
7
7
  __name: "NcHotkey",
@@ -18,11 +18,11 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
18
18
  return { __sfc: true, props, symbols, NO_LABEL_WARNING, NcKbd: NcKbd.NcKbd };
19
19
  }
20
20
  });
21
- const hotkey = "_hotkey_19tul_20";
22
- const hotkey__label = "_hotkey__label_19tul_26";
23
- const hotkey__keys = "_hotkey__keys_19tul_27";
21
+ const hotkey = "_hotkey_1s86g_20";
22
+ const hotkey__label = "_hotkey__label_1s86g_27";
23
+ const hotkey__keys = "_hotkey__keys_1s86g_28";
24
24
  const style0 = {
25
- "material-design-icon": "_material-design-icon_19tul_12",
25
+ "material-design-icon": "_material-design-icon_1s86g_12",
26
26
  hotkey,
27
27
  hotkey__label,
28
28
  hotkey__keys
@@ -56,4 +56,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
56
56
  );
57
57
  const NcHotkey = __component__.exports;
58
58
  exports.NcHotkey = NcHotkey;
59
- //# sourceMappingURL=NcHotkey-CUPH5u09.cjs.map
59
+ //# sourceMappingURL=NcHotkey-CuAapY_f.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcHotkey-CUPH5u09.cjs","sources":["../../src/components/NcHotkey/NcHotkey.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport NcKbd from '../NcKbd/NcKbd.vue'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Label for the hotkey\n\t */\n\tlabel?: string\n\t/**\n\t * Hotkey combination string separated by space, for example, `Control Alt T` or `F2` (see `<NcKbd>` for supported key names)\n\t */\n\thotkey?: string\n}>(), {\n\tlabel: undefined,\n\thotkey: undefined,\n})\n\nconst symbols = computed(() => {\n\treturn props.hotkey?.split(/\\s+/).map((s) => s.trim())\n})\n\nconst NO_LABEL_WARNING = '⚠️ NcHotKey must have a label or slot content'\n</script>\n\n<template>\n\t<li :class=\"$style.hotkey\">\n\t\t<span role=\"term\" :class=\"$style.hotkey__keys\">\n\t\t\t<!-- @slot Custom hotkey content for an advanced hotkey layout with \"NcKbd\" components or other custom content -->\n\t\t\t<slot name=\"hotkey\">\n\t\t\t\t<NcKbd v-for=\"(symbol, index) in symbols\" :key=\"index\" :symbol=\"symbol\" />\n\t\t\t</slot>\n\t\t</span>\n\t\t<span role=\"definition\" :class=\"$style.hotkey__label\">\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot>\n\t\t\t\t{{ label || NO_LABEL_WARNING }}\n\t\t\t</slot>\n\t\t</span>\n\t</li>\n</template>\n\n<style lang=\"scss\" module>\n.hotkey {\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\talign-items: stretch;\n\tpadding-inline: var(--border-radius-element); /* Align with form group */\n\n\t&:first-child {\n\t\t.hotkey__label,\n\t\t.hotkey__keys {\n\t\t\tborder-block-start: none;\n\t\t}\n\t}\n\n}\n\n.hotkey__label,\n.hotkey__keys {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-block: calc(2 * var(--default-grid-baseline));\n\tborder-block-start: 1px solid var(--color-border);\n}\n\n.hotkey__label {\n\tflex: 1 1 200px;\n}\n\n.hotkey__keys {\n\tflex: 1 1 auto;\n\tflex-wrap: wrap;\n\tjustify-content: end;\n\trow-gap: calc(1 * var(--default-grid-baseline));\n}\n</style>\n"],"names":["computed"],"mappings":";;;;;;;;;;;;AAuBA,UAAM,UAAUA,IAAAA,SAAS,MAAM;AAC9B,aAAO,MAAM,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;AAAA,IACtD,CAAC;AAED,UAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcHotkey-CuAapY_f.cjs","sources":["../../src/components/NcHotkey/NcHotkey.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport NcKbd from '../NcKbd/NcKbd.vue'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Label for the hotkey\n\t */\n\tlabel?: string\n\t/**\n\t * Hotkey combination string separated by space, for example, `Control Alt T` or `F2` (see `<NcKbd>` for supported key names)\n\t */\n\thotkey?: string\n}>(), {\n\tlabel: undefined,\n\thotkey: undefined,\n})\n\nconst symbols = computed(() => {\n\treturn props.hotkey?.split(/\\s+/).map((s) => s.trim())\n})\n\nconst NO_LABEL_WARNING = '⚠️ NcHotKey must have a label or slot content'\n</script>\n\n<template>\n\t<li :class=\"$style.hotkey\">\n\t\t<span role=\"term\" :class=\"$style.hotkey__keys\">\n\t\t\t<!-- @slot Custom hotkey content for an advanced hotkey layout with \"NcKbd\" components or other custom content -->\n\t\t\t<slot name=\"hotkey\">\n\t\t\t\t<NcKbd v-for=\"(symbol, index) in symbols\" :key=\"index\" :symbol=\"symbol\" />\n\t\t\t</slot>\n\t\t</span>\n\t\t<span role=\"definition\" :class=\"$style.hotkey__label\">\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot>\n\t\t\t\t{{ label || NO_LABEL_WARNING }}\n\t\t\t</slot>\n\t\t</span>\n\t</li>\n</template>\n\n<style lang=\"scss\" module>\n.hotkey {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\talign-items: stretch;\n\tpadding-inline: var(--form-element-label-offset);\n\n\t&:first-child {\n\t\t.hotkey__label,\n\t\t.hotkey__keys {\n\t\t\tborder-block-start: none;\n\t\t}\n\t}\n\n}\n\n.hotkey__label,\n.hotkey__keys {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-block: calc(2 * var(--default-grid-baseline));\n\tborder-block-start: 1px solid var(--color-border);\n}\n\n.hotkey__label {\n\tflex: 1 1 200px;\n}\n\n.hotkey__keys {\n\tflex: 1 1 auto;\n\tflex-wrap: wrap;\n\tjustify-content: end;\n\trow-gap: calc(1 * var(--default-grid-baseline));\n}\n</style>\n"],"names":["computed"],"mappings":";;;;;;;;;;;;AAuBA,UAAM,UAAUA,IAAAA,SAAS,MAAM;AAC9B,aAAO,MAAM,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;AAAA,IACtD,CAAC;AAED,UAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
- import '../assets/NcHotkey-QklVKSyr.css';
1
+ import '../assets/NcHotkey-4yi1Hobg.css';
2
2
  import { defineComponent, computed } from "vue";
3
- import { N as NcKbd } from "./NcKbd-BdW5UbhW.mjs";
3
+ import { N as NcKbd } from "./NcKbd-ChdGXvZR.mjs";
4
4
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
6
6
  __name: "NcHotkey",
@@ -17,11 +17,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17
17
  return { __sfc: true, props, symbols, NO_LABEL_WARNING, NcKbd };
18
18
  }
19
19
  });
20
- const hotkey = "_hotkey_19tul_20";
21
- const hotkey__label = "_hotkey__label_19tul_26";
22
- const hotkey__keys = "_hotkey__keys_19tul_27";
20
+ const hotkey = "_hotkey_1s86g_20";
21
+ const hotkey__label = "_hotkey__label_1s86g_27";
22
+ const hotkey__keys = "_hotkey__keys_1s86g_28";
23
23
  const style0 = {
24
- "material-design-icon": "_material-design-icon_19tul_12",
24
+ "material-design-icon": "_material-design-icon_1s86g_12",
25
25
  hotkey,
26
26
  hotkey__label,
27
27
  hotkey__keys
@@ -57,4 +57,4 @@ const NcHotkey = __component__.exports;
57
57
  export {
58
58
  NcHotkey as N
59
59
  };
60
- //# sourceMappingURL=NcHotkey-BVMf1V89.mjs.map
60
+ //# sourceMappingURL=NcHotkey-DcpG5Pla.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcHotkey-BVMf1V89.mjs","sources":["../../src/components/NcHotkey/NcHotkey.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport NcKbd from '../NcKbd/NcKbd.vue'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Label for the hotkey\n\t */\n\tlabel?: string\n\t/**\n\t * Hotkey combination string separated by space, for example, `Control Alt T` or `F2` (see `<NcKbd>` for supported key names)\n\t */\n\thotkey?: string\n}>(), {\n\tlabel: undefined,\n\thotkey: undefined,\n})\n\nconst symbols = computed(() => {\n\treturn props.hotkey?.split(/\\s+/).map((s) => s.trim())\n})\n\nconst NO_LABEL_WARNING = '⚠️ NcHotKey must have a label or slot content'\n</script>\n\n<template>\n\t<li :class=\"$style.hotkey\">\n\t\t<span role=\"term\" :class=\"$style.hotkey__keys\">\n\t\t\t<!-- @slot Custom hotkey content for an advanced hotkey layout with \"NcKbd\" components or other custom content -->\n\t\t\t<slot name=\"hotkey\">\n\t\t\t\t<NcKbd v-for=\"(symbol, index) in symbols\" :key=\"index\" :symbol=\"symbol\" />\n\t\t\t</slot>\n\t\t</span>\n\t\t<span role=\"definition\" :class=\"$style.hotkey__label\">\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot>\n\t\t\t\t{{ label || NO_LABEL_WARNING }}\n\t\t\t</slot>\n\t\t</span>\n\t</li>\n</template>\n\n<style lang=\"scss\" module>\n.hotkey {\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\talign-items: stretch;\n\tpadding-inline: var(--border-radius-element); /* Align with form group */\n\n\t&:first-child {\n\t\t.hotkey__label,\n\t\t.hotkey__keys {\n\t\t\tborder-block-start: none;\n\t\t}\n\t}\n\n}\n\n.hotkey__label,\n.hotkey__keys {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-block: calc(2 * var(--default-grid-baseline));\n\tborder-block-start: 1px solid var(--color-border);\n}\n\n.hotkey__label {\n\tflex: 1 1 200px;\n}\n\n.hotkey__keys {\n\tflex: 1 1 auto;\n\tflex-wrap: wrap;\n\tjustify-content: end;\n\trow-gap: calc(1 * var(--default-grid-baseline));\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;AAuBA,UAAM,UAAU,SAAS,MAAM;AAC9B,aAAO,MAAM,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;AAAA,IACtD,CAAC;AAED,UAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcHotkey-DcpG5Pla.mjs","sources":["../../src/components/NcHotkey/NcHotkey.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport NcKbd from '../NcKbd/NcKbd.vue'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Label for the hotkey\n\t */\n\tlabel?: string\n\t/**\n\t * Hotkey combination string separated by space, for example, `Control Alt T` or `F2` (see `<NcKbd>` for supported key names)\n\t */\n\thotkey?: string\n}>(), {\n\tlabel: undefined,\n\thotkey: undefined,\n})\n\nconst symbols = computed(() => {\n\treturn props.hotkey?.split(/\\s+/).map((s) => s.trim())\n})\n\nconst NO_LABEL_WARNING = '⚠️ NcHotKey must have a label or slot content'\n</script>\n\n<template>\n\t<li :class=\"$style.hotkey\">\n\t\t<span role=\"term\" :class=\"$style.hotkey__keys\">\n\t\t\t<!-- @slot Custom hotkey content for an advanced hotkey layout with \"NcKbd\" components or other custom content -->\n\t\t\t<slot name=\"hotkey\">\n\t\t\t\t<NcKbd v-for=\"(symbol, index) in symbols\" :key=\"index\" :symbol=\"symbol\" />\n\t\t\t</slot>\n\t\t</span>\n\t\t<span role=\"definition\" :class=\"$style.hotkey__label\">\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot>\n\t\t\t\t{{ label || NO_LABEL_WARNING }}\n\t\t\t</slot>\n\t\t</span>\n\t</li>\n</template>\n\n<style lang=\"scss\" module>\n.hotkey {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\talign-items: stretch;\n\tpadding-inline: var(--form-element-label-offset);\n\n\t&:first-child {\n\t\t.hotkey__label,\n\t\t.hotkey__keys {\n\t\t\tborder-block-start: none;\n\t\t}\n\t}\n\n}\n\n.hotkey__label,\n.hotkey__keys {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-block: calc(2 * var(--default-grid-baseline));\n\tborder-block-start: 1px solid var(--color-border);\n}\n\n.hotkey__label {\n\tflex: 1 1 200px;\n}\n\n.hotkey__keys {\n\tflex: 1 1 auto;\n\tflex-wrap: wrap;\n\tjustify-content: end;\n\trow-gap: calc(1 * var(--default-grid-baseline));\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;AAuBA,UAAM,UAAU,SAAS,MAAM;AAC9B,aAAO,MAAM,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;AAAA,IACtD,CAAC;AAED,UAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}