@nextcloud/vue 9.9.0 → 9.11.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 (655) hide show
  1. package/CHANGELOG.md +88 -65
  2. package/dist/assets/{NcActionButton-DLer-aUY.css → NcActionButton.css} +1 -0
  3. package/dist/assets/{NcActionCheckbox-wD8m_a8-.css → NcActionCheckbox.css} +1 -0
  4. package/dist/assets/{NcActionInput-t9WvlgV0.css → NcActionInput.css} +70 -66
  5. package/dist/assets/{NcActionLink-b4Ph5q10.css → NcActionLink.css} +1 -0
  6. package/dist/assets/{NcActionRadio-D2rLM1ci.css → NcActionRadio.css} +1 -0
  7. package/dist/assets/{NcActionRouter-BWXfCfxM.css → NcActionRouter.css} +1 -0
  8. package/dist/assets/{NcActionText-Dzegj6AY.css → NcActionText.css} +1 -0
  9. package/dist/assets/{NcActionTextEditable-BlZeHZ7J.css → NcActionTextEditable.css} +67 -65
  10. package/dist/assets/{NcActions-y7ehwPSp.css → NcActions.css} +12 -12
  11. package/dist/assets/{NcAppNavigation-OHw55TTZ.css → NcAppNavigation.css} +17 -17
  12. package/dist/assets/{NcAppNavigationItem-BZ1xj6Xi.css → NcAppNavigationItem.css} +58 -48
  13. package/dist/assets/NcAppNavigationList.css +52 -0
  14. package/dist/assets/{NcAppNavigationNewItem-MaYQVcKF.css → NcAppNavigationNewItem.css} +13 -3
  15. package/dist/assets/{NcAppNavigationSettings-mWFhcXm0.css → NcAppNavigationSettings.css} +6 -6
  16. package/dist/assets/{NcAppSettingsDialog-Dh_scIK4.css → NcAppSettingsDialog.css} +3 -3
  17. package/dist/assets/{NcAppSettingsShortcutsSection-BHxkQTg2.css → NcAppSettingsShortcutsSection.css} +1 -1
  18. package/dist/assets/{NcAppSidebar-oJQ8kUb0.css → NcAppSidebar.css} +132 -78
  19. package/dist/assets/{NcAppSidebarTab-Xd3HTDbw.css → NcAppSidebarTab.css} +4 -4
  20. package/dist/assets/{NcAssistantButton-CT25wqIs.css → NcAssistantButton.css} +9 -9
  21. package/dist/assets/{NcAssistantContent-FV00e96S.css → NcAssistantContent.css} +3 -3
  22. package/dist/assets/{NcAssistantIcon-BMLpMaMJ.css → NcAssistantIcon.css} +4 -4
  23. package/dist/assets/{NcAvatar-Bs7qEhkA.css → NcAvatar.css} +39 -24
  24. package/dist/assets/{NcBlurHash-RgrahjEp.css → NcBlurHash.css} +2 -2
  25. package/dist/assets/{NcButton-DOrlC_y5.css → NcButton.css} +52 -50
  26. package/dist/assets/{NcCheckboxRadioSwitch-BlQSZVW0.css → NcCheckboxRadioSwitch.css} +36 -36
  27. package/dist/assets/{NcDateTimePicker-BQ_y9Ihj.css → NcDateTimePicker.css} +234 -234
  28. package/dist/assets/NcDateTimePickerNative.css +38 -0
  29. package/dist/assets/{NcEllipsisedOption-CPWbbgBy.css → NcEllipsisedOption.css} +10 -5
  30. package/dist/assets/{NcFilePicker-BdjtiV3h.css → NcFilePicker.css} +1 -1
  31. package/dist/assets/{NcFormBox-TRgICDO3.css → NcFormBox.css} +11 -11
  32. package/dist/assets/{NcFormBoxButton-ClkxmO-H.css → NcFormBoxButton.css} +2 -2
  33. package/dist/assets/{NcFormBoxItem-CABDVZLe.css → NcFormBoxItem.css} +19 -15
  34. package/dist/assets/{NcFormBoxSwitch-NCjook_Z.css → NcFormBoxSwitch.css} +2 -2
  35. package/dist/assets/{NcFormGroup-eh8-PBGB.css → NcFormGroup.css} +7 -7
  36. package/dist/assets/{NcHeaderMenu-Hy0UKyUu.css → NcHeaderMenu.css} +22 -24
  37. package/dist/assets/{NcHotkey-Dm-26TVC.css → NcHotkey.css} +8 -8
  38. package/dist/assets/{NcHotkeyList-BigfRqyr.css → NcHotkeyList.css} +2 -2
  39. package/dist/assets/{NcIconToggleSwitch-zUXkaJHv.css → NcIconToggleSwitch.css} +4 -4
  40. package/dist/assets/{NcInputField-DpyFJ1xw.css → NcInputField.css} +43 -43
  41. package/dist/assets/{NcKbd-DcC56WbC.css → NcKbd.css} +3 -3
  42. package/dist/assets/NcPopover.css +108 -0
  43. package/dist/assets/NcProfileHoverCard.css +340 -0
  44. package/dist/assets/{NcProgressBar-B6wveIA1.css → NcProgressBar.css} +14 -14
  45. package/dist/assets/{NcRadioGroup-CtXZ4Y8D.css → NcRadioGroup.css} +2 -2
  46. package/dist/assets/{NcRadioGroupButton-BuB-aWeJ.css → NcRadioGroupButton.css} +19 -14
  47. package/dist/assets/NcReferenceWidget.css +150 -0
  48. package/dist/assets/{NcRichContenteditable-BCUBhRqg.css → NcRichContenteditable.css} +17 -17
  49. package/dist/assets/NcSelect.css +397 -0
  50. package/dist/assets/NcSelectUsers.css +12 -0
  51. package/dist/assets/{autolink-XS-VDSVB.css → autolink.css} +3 -3
  52. package/dist/assets/{referencePickerModal-BNPfxyni.css → referencePickerModal.css} +0 -149
  53. package/dist/chunks/{ArrowRight-B1ncAhus.mjs → ArrowRight.mjs} +2 -2
  54. package/dist/chunks/ArrowRight.mjs.map +1 -0
  55. package/dist/chunks/{ChevronDown-C6gc637b.mjs → ChevronDown.mjs} +2 -2
  56. package/dist/chunks/ChevronDown.mjs.map +1 -0
  57. package/dist/chunks/{ChevronUp-ChH8oB7p.mjs → ChevronUp.mjs} +2 -2
  58. package/dist/chunks/ChevronUp.mjs.map +1 -0
  59. package/dist/chunks/{Close-CuhcJnX2.mjs → Close.mjs} +2 -2
  60. package/dist/chunks/Close.mjs.map +1 -0
  61. package/dist/chunks/{NcActionButton-BO5T5ePT.mjs → NcActionButton.mjs} +7 -7
  62. package/dist/chunks/NcActionButton.mjs.map +1 -0
  63. package/dist/chunks/{NcActionButtonGroup-Dd03Oluy.mjs → NcActionButtonGroup.mjs} +6 -6
  64. package/dist/chunks/NcActionButtonGroup.mjs.map +1 -0
  65. package/dist/chunks/{NcActionCaption-f7L9gBlT.mjs → NcActionCaption.mjs} +4 -4
  66. package/dist/chunks/NcActionCaption.mjs.map +1 -0
  67. package/dist/chunks/{NcActionCheckbox-DBqiK-AZ.mjs → NcActionCheckbox.mjs} +8 -8
  68. package/dist/chunks/NcActionCheckbox.mjs.map +1 -0
  69. package/dist/chunks/{NcActionInput-Dr8Yrafu.mjs → NcActionInput.mjs} +14 -13
  70. package/dist/chunks/NcActionInput.mjs.map +1 -0
  71. package/dist/chunks/{NcActionLink-BFiaYt9A.mjs → NcActionLink.mjs} +5 -5
  72. package/dist/chunks/NcActionLink.mjs.map +1 -0
  73. package/dist/chunks/{NcActionRadio-BA08CAtA.mjs → NcActionRadio.mjs} +8 -8
  74. package/dist/chunks/NcActionRadio.mjs.map +1 -0
  75. package/dist/chunks/{NcActionRouter-vYFtIOzD.mjs → NcActionRouter.mjs} +5 -5
  76. package/dist/chunks/NcActionRouter.mjs.map +1 -0
  77. package/dist/chunks/{NcActionSeparator-B9pNQaji.mjs → NcActionSeparator.mjs} +3 -3
  78. package/dist/chunks/NcActionSeparator.mjs.map +1 -0
  79. package/dist/chunks/{NcActionText-CQ9qwJ0p.mjs → NcActionText.mjs} +5 -5
  80. package/dist/chunks/NcActionText.mjs.map +1 -0
  81. package/dist/chunks/{NcActionTextEditable-B8y_GEre.mjs → NcActionTextEditable.mjs} +8 -8
  82. package/dist/chunks/NcActionTextEditable.mjs.map +1 -0
  83. package/dist/chunks/{NcActions-C-wDqSrv.mjs → NcActions.mjs} +12 -12
  84. package/dist/chunks/NcActions.mjs.map +1 -0
  85. package/dist/chunks/{NcAppContent-DavgjaFX.mjs → NcAppContent.mjs} +11 -11
  86. package/dist/chunks/NcAppContent.mjs.map +1 -0
  87. package/dist/chunks/{NcAppContentDetails.vue_vue_type_script_setup_true_lang-BWl5Pw5g.mjs → NcAppContentDetails.vue_vue_type_script_setup_true_lang.mjs} +1 -1
  88. package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  89. package/dist/chunks/{NcAppContentList-Copx3Ver.mjs → NcAppContentList.mjs} +2 -2
  90. package/dist/chunks/NcAppContentList.mjs.map +1 -0
  91. package/dist/chunks/{NcAppNavigation-g57j16pB.mjs → NcAppNavigation.mjs} +17 -16
  92. package/dist/chunks/NcAppNavigation.mjs.map +1 -0
  93. package/dist/chunks/{NcAppNavigationCaption-VjSWJ8R4.mjs → NcAppNavigationCaption.mjs} +4 -4
  94. package/dist/chunks/NcAppNavigationCaption.mjs.map +1 -0
  95. package/dist/chunks/{NcAppNavigationIconBullet-BmU-dPcY.mjs → NcAppNavigationIconBullet.mjs} +3 -3
  96. package/dist/chunks/NcAppNavigationIconBullet.mjs.map +1 -0
  97. package/dist/chunks/{NcAppNavigationItem-CDeYtA3E.mjs → NcAppNavigationItem.mjs} +53 -24
  98. package/dist/chunks/NcAppNavigationItem.mjs.map +1 -0
  99. package/dist/chunks/NcAppNavigationList.mjs +147 -0
  100. package/dist/chunks/NcAppNavigationList.mjs.map +1 -0
  101. package/dist/chunks/{NcAppNavigationNew-CBNppM7Q.mjs → NcAppNavigationNew.mjs} +4 -4
  102. package/dist/chunks/NcAppNavigationNew.mjs.map +1 -0
  103. package/dist/chunks/{NcAppNavigationNewItem-B1RfQkvu.mjs → NcAppNavigationNewItem.mjs} +5 -5
  104. package/dist/chunks/NcAppNavigationNewItem.mjs.map +1 -0
  105. package/dist/chunks/{NcAppNavigationSearch-CQQWb1Eq.mjs → NcAppNavigationSearch.mjs} +7 -7
  106. package/dist/chunks/NcAppNavigationSearch.mjs.map +1 -0
  107. package/dist/chunks/{NcAppNavigationSettings-DoMjRExO.mjs → NcAppNavigationSettings.mjs} +16 -16
  108. package/dist/chunks/NcAppNavigationSettings.mjs.map +1 -0
  109. package/dist/chunks/{NcAppNavigationSpacer-CIRC4ZEj.mjs → NcAppNavigationSpacer.mjs} +3 -3
  110. package/dist/chunks/NcAppNavigationSpacer.mjs.map +1 -0
  111. package/dist/chunks/{NcAppSettingsDialog-BPcEYLjP.mjs → NcAppSettingsDialog.mjs} +13 -13
  112. package/dist/chunks/NcAppSettingsDialog.mjs.map +1 -0
  113. package/dist/chunks/{NcAppSettingsSection-BosSmisT.mjs → NcAppSettingsSection.mjs} +5 -5
  114. package/dist/chunks/NcAppSettingsSection.mjs.map +1 -0
  115. package/dist/chunks/{NcAppSettingsShortcutsSection-DLwubKV9.mjs → NcAppSettingsShortcutsSection.mjs} +7 -7
  116. package/dist/chunks/NcAppSettingsShortcutsSection.mjs.map +1 -0
  117. package/dist/chunks/{NcAppSidebar-C8YzAzrZ.mjs → NcAppSidebar.mjs} +180 -46
  118. package/dist/chunks/NcAppSidebar.mjs.map +1 -0
  119. package/dist/chunks/{NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs → NcAppSidebarHeader.vue_vue_type_script_setup_true_lang.mjs} +1 -1
  120. package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  121. package/dist/chunks/{NcAppSidebarTab-DOSDDbGA.mjs → NcAppSidebarTab.mjs} +15 -8
  122. package/dist/chunks/NcAppSidebarTab.mjs.map +1 -0
  123. package/dist/chunks/{NcAssistantButton-iK491d2v.mjs → NcAssistantButton.mjs} +14 -14
  124. package/dist/chunks/NcAssistantButton.mjs.map +1 -0
  125. package/dist/chunks/{NcAssistantContent-iHA4O4cC.mjs → NcAssistantContent.mjs} +6 -6
  126. package/dist/chunks/NcAssistantContent.mjs.map +1 -0
  127. package/dist/chunks/{NcAssistantIcon-C6s4Qm7-.mjs → NcAssistantIcon.mjs} +9 -9
  128. package/dist/chunks/NcAssistantIcon.mjs.map +1 -0
  129. package/dist/chunks/{NcAvatar-1KxMUN7V.mjs → NcAvatar.mjs} +214 -80
  130. package/dist/chunks/NcAvatar.mjs.map +1 -0
  131. package/dist/chunks/{NcBlurHash-B30Ol8KP.mjs → NcBlurHash.mjs} +6 -6
  132. package/dist/chunks/NcBlurHash.mjs.map +1 -0
  133. package/dist/chunks/{NcBreadcrumb-3Y5NWXnV.mjs → NcBreadcrumb.mjs} +6 -6
  134. package/dist/chunks/NcBreadcrumb.mjs.map +1 -0
  135. package/dist/chunks/{NcBreadcrumbs-BaTp3Sya.mjs → NcBreadcrumbs.mjs} +8 -8
  136. package/dist/chunks/NcBreadcrumbs.mjs.map +1 -0
  137. package/dist/chunks/{NcButton-jvoYS2my.mjs → NcButton.mjs} +6 -6
  138. package/dist/chunks/NcButton.mjs.map +1 -0
  139. package/dist/chunks/{NcCheckboxRadioSwitch-DVdt5Hkq.mjs → NcCheckboxRadioSwitch.mjs} +22 -12
  140. package/dist/chunks/NcCheckboxRadioSwitch.mjs.map +1 -0
  141. package/dist/chunks/{NcChip-DKRlV47q.mjs → NcChip.mjs} +9 -9
  142. package/dist/chunks/NcChip.mjs.map +1 -0
  143. package/dist/chunks/{NcCollectionList-B9qCtjJw.mjs → NcCollectionList.mjs} +12 -12
  144. package/dist/chunks/NcCollectionList.mjs.map +1 -0
  145. package/dist/chunks/{NcColorPicker-BCkasLwT.mjs → NcColorPicker.mjs} +12 -12
  146. package/dist/chunks/NcColorPicker.mjs.map +1 -0
  147. package/dist/chunks/{NcContent-BYh5hWDN.mjs → NcContent.mjs} +9 -9
  148. package/dist/chunks/NcContent.mjs.map +1 -0
  149. package/dist/chunks/{NcCounterBubble-CV0YMrXW.mjs → NcCounterBubble.mjs} +3 -3
  150. package/dist/chunks/NcCounterBubble.mjs.map +1 -0
  151. package/dist/chunks/{NcDashboardWidget-zmbDEGL-.mjs → NcDashboardWidget.mjs} +8 -8
  152. package/dist/chunks/NcDashboardWidget.mjs.map +1 -0
  153. package/dist/chunks/{NcDashboardWidgetItem-DwDndrm_.mjs → NcDashboardWidgetItem.mjs} +6 -6
  154. package/dist/chunks/NcDashboardWidgetItem.mjs.map +1 -0
  155. package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs → NcDateTime.vue_vue_type_script_setup_true_lang.mjs} +1 -1
  156. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  157. package/dist/chunks/NcDateTimePicker.mjs +2979 -0
  158. package/dist/chunks/NcDateTimePicker.mjs.map +1 -0
  159. package/dist/chunks/{NcDateTimePickerNative-B8CMOUnH.mjs → NcDateTimePickerNative.mjs} +21 -26
  160. package/dist/chunks/NcDateTimePickerNative.mjs.map +1 -0
  161. package/dist/chunks/{NcDialog-D617YI0t.mjs → NcDialog.mjs} +6 -6
  162. package/dist/chunks/NcDialog.mjs.map +1 -0
  163. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-Bqfy678u.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang.mjs} +6 -6
  164. package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  165. package/dist/chunks/{NcEllipsisedOption-D6Amb91K.mjs → NcEllipsisedOption.mjs} +5 -5
  166. package/dist/chunks/NcEllipsisedOption.mjs.map +1 -0
  167. package/dist/chunks/{NcEmojiPicker-UTxgju3f.mjs → NcEmojiPicker.mjs} +12 -12
  168. package/dist/chunks/NcEmojiPicker.mjs.map +1 -0
  169. package/dist/chunks/{NcEmptyContent-CGAPqk4S.mjs → NcEmptyContent.mjs} +4 -4
  170. package/dist/chunks/NcEmptyContent.mjs.map +1 -0
  171. package/dist/chunks/{NcFilePicker-bD2toutn.mjs → NcFilePicker.mjs} +9 -9
  172. package/dist/chunks/NcFilePicker.mjs.map +1 -0
  173. package/dist/chunks/{NcFormBox-Bmqar8nn.mjs → NcFormBox.mjs} +9 -9
  174. package/dist/chunks/NcFormBox.mjs.map +1 -0
  175. package/dist/chunks/{NcFormBoxButton-G_PkUiQy.mjs → NcFormBoxButton.mjs} +8 -8
  176. package/dist/chunks/NcFormBoxButton.mjs.map +1 -0
  177. package/dist/chunks/{NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs → NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang.mjs} +4 -4
  178. package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  179. package/dist/chunks/{NcFormBoxItem-Cm8aZaVJ.mjs → NcFormBoxItem.mjs} +14 -14
  180. package/dist/chunks/NcFormBoxItem.mjs.map +1 -0
  181. package/dist/chunks/{NcFormBoxSwitch-DSXiQcnq.mjs → NcFormBoxSwitch.mjs} +8 -8
  182. package/dist/chunks/NcFormBoxSwitch.mjs.map +1 -0
  183. package/dist/chunks/{NcFormGroup-N7qIFAwN.mjs → NcFormGroup.mjs} +11 -11
  184. package/dist/chunks/NcFormGroup.mjs.map +1 -0
  185. package/dist/chunks/{NcGuestContent-CvT6VGt1.mjs → NcGuestContent.mjs} +3 -3
  186. package/dist/chunks/NcGuestContent.mjs.map +1 -0
  187. package/dist/chunks/{NcHeaderButton-BnLwYCog.mjs → NcHeaderButton.mjs} +5 -5
  188. package/dist/chunks/NcHeaderButton.mjs.map +1 -0
  189. package/dist/chunks/{NcHeaderMenu-ktQJV2SW.mjs → NcHeaderMenu.mjs} +14 -20
  190. package/dist/chunks/NcHeaderMenu.mjs.map +1 -0
  191. package/dist/chunks/{NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs → NcHighlight.vue_vue_type_script_lang.mjs} +1 -1
  192. package/dist/chunks/NcHighlight.vue_vue_type_script_lang.mjs.map +1 -0
  193. package/dist/chunks/{NcHotkey-BDGeF3eH.mjs → NcHotkey.mjs} +8 -8
  194. package/dist/chunks/NcHotkey.mjs.map +1 -0
  195. package/dist/chunks/{NcHotkeyList-B4WjTLAp.mjs → NcHotkeyList.mjs} +8 -8
  196. package/dist/chunks/NcHotkeyList.mjs.map +1 -0
  197. package/dist/chunks/{NcIconSvgWrapper-g8ubWhoz.mjs → NcIconSvgWrapper.mjs} +3 -3
  198. package/dist/chunks/NcIconSvgWrapper.mjs.map +1 -0
  199. package/dist/chunks/{NcIconToggleSwitch-CRvGt4su.mjs → NcIconToggleSwitch.mjs} +6 -6
  200. package/dist/chunks/NcIconToggleSwitch.mjs.map +1 -0
  201. package/dist/chunks/{NcInputConfirmCancel-CGTllrXj.mjs → NcInputConfirmCancel.mjs} +9 -9
  202. package/dist/chunks/NcInputConfirmCancel.mjs.map +1 -0
  203. package/dist/chunks/{NcInputField-5Sg6EUP6.mjs → NcInputField.mjs} +9 -9
  204. package/dist/chunks/NcInputField.mjs.map +1 -0
  205. package/dist/chunks/{NcKbd-Bh_Tk6Ar.mjs → NcKbd.mjs} +8 -8
  206. package/dist/chunks/NcKbd.mjs.map +1 -0
  207. package/dist/chunks/{NcListItem-BliLJpvU.mjs → NcListItem.mjs} +7 -7
  208. package/dist/chunks/NcListItem.mjs.map +1 -0
  209. package/dist/chunks/{NcListItemIcon-Dl_tfkk9.mjs → NcListItemIcon.mjs} +7 -7
  210. package/dist/chunks/NcListItemIcon.mjs.map +1 -0
  211. package/dist/chunks/{NcLoadingIcon-BOVpFVQz.mjs → NcLoadingIcon.mjs} +3 -3
  212. package/dist/chunks/NcLoadingIcon.mjs.map +1 -0
  213. package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs → NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs} +2 -2
  214. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs.map +1 -0
  215. package/dist/chunks/{NcModal-DiDvgcU8.mjs → NcModal.mjs} +12 -12
  216. package/dist/chunks/NcModal.mjs.map +1 -0
  217. package/dist/chunks/{NcNoteCard-mI7qVZ9j.mjs → NcNoteCard.mjs} +6 -6
  218. package/dist/chunks/NcNoteCard.mjs.map +1 -0
  219. package/dist/chunks/{NcPasswordField-BFyzHTOO.mjs → NcPasswordField.mjs} +9 -9
  220. package/dist/chunks/NcPasswordField.mjs.map +1 -0
  221. package/dist/chunks/{NcPopover-B87bEPLq.mjs → NcPopover.mjs} +9 -10
  222. package/dist/chunks/NcPopover.mjs.map +1 -0
  223. package/dist/chunks/NcProfileHoverCard.mjs +777 -0
  224. package/dist/chunks/NcProfileHoverCard.mjs.map +1 -0
  225. package/dist/chunks/{NcProgressBar-C-ane-Ni.mjs → NcProgressBar.mjs} +20 -10
  226. package/dist/chunks/NcProgressBar.mjs.map +1 -0
  227. package/dist/chunks/{NcRadioGroup-B4qmS2UD.mjs → NcRadioGroup.mjs} +8 -8
  228. package/dist/chunks/NcRadioGroup.mjs.map +1 -0
  229. package/dist/chunks/{NcRadioGroupButton-CZykGwv3.mjs → NcRadioGroupButton.mjs} +12 -12
  230. package/dist/chunks/NcRadioGroupButton.mjs.map +1 -0
  231. package/dist/chunks/NcReferenceWidget.mjs +292 -0
  232. package/dist/chunks/NcReferenceWidget.mjs.map +1 -0
  233. package/dist/chunks/{NcRelatedResourcesPanel-D_Ttpg5_.mjs → NcRelatedResourcesPanel.mjs} +13 -13
  234. package/dist/chunks/NcRelatedResourcesPanel.mjs.map +1 -0
  235. package/dist/chunks/{NcRichContenteditable-Qw614bJ5.mjs → NcRichContenteditable.mjs} +37 -35
  236. package/dist/chunks/NcRichContenteditable.mjs.map +1 -0
  237. package/dist/chunks/{NcRichText-BO_4KtBA.mjs → NcRichText.mjs} +12 -12
  238. package/dist/chunks/NcRichText.mjs.map +1 -0
  239. package/dist/chunks/{NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DbQnMYZm.mjs → NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang.mjs} +1 -1
  240. package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  241. package/dist/chunks/{NcSelect--kERLlBK.mjs → NcSelect.mjs} +124 -29
  242. package/dist/chunks/NcSelect.mjs.map +1 -0
  243. package/dist/chunks/{NcSelectTags-I2hJaNax.mjs → NcSelectTags.mjs} +6 -6
  244. package/dist/chunks/NcSelectTags.mjs.map +1 -0
  245. package/dist/chunks/{NcSelectUsers-K14Bepkq.mjs → NcSelectUsers.mjs} +6 -6
  246. package/dist/chunks/NcSelectUsers.mjs.map +1 -0
  247. package/dist/chunks/{NcSettingsSection-Caz1fuWt.mjs → NcSettingsSection.mjs} +5 -5
  248. package/dist/chunks/NcSettingsSection.mjs.map +1 -0
  249. package/dist/chunks/{NcSettingsSelectGroup-SYJ8-XlR.mjs → NcSettingsSelectGroup.mjs} +7 -7
  250. package/dist/chunks/NcSettingsSelectGroup.mjs.map +1 -0
  251. package/dist/chunks/{NcTextArea-Dxzj4zdb.mjs → NcTextArea.mjs} +8 -8
  252. package/dist/chunks/NcTextArea.mjs.map +1 -0
  253. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs → NcTextField.vue_vue_type_script_setup_true_lang.mjs} +7 -7
  254. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  255. package/dist/chunks/{NcThemeProvider.vue_vue_type_script_setup_true_lang-wie70gn4.mjs → NcThemeProvider.vue_vue_type_script_setup_true_lang.mjs} +2 -2
  256. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  257. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-D7ZHgnwW.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang.mjs} +5 -5
  258. package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  259. package/dist/chunks/{NcUserBubble-BXR7vT0V.mjs → NcUserBubble.mjs} +5 -5
  260. package/dist/chunks/NcUserBubble.mjs.map +1 -0
  261. package/dist/chunks/{NcUserStatusIcon-BF5OEQFU.mjs → NcUserStatusIcon.mjs} +7 -7
  262. package/dist/chunks/NcUserStatusIcon.mjs.map +1 -0
  263. package/dist/chunks/{NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs → NcVNodes.vue_vue_type_script_lang.mjs} +1 -1
  264. package/dist/chunks/NcVNodes.vue_vue_type_script_lang.mjs.map +1 -0
  265. package/dist/chunks/{_l10n-wdIzZwir.mjs → _l10n.mjs} +106 -104
  266. package/dist/chunks/_l10n.mjs.map +1 -0
  267. package/dist/chunks/{_plugin-vue_export-helper-1tPrXgE0.mjs → _plugin-vue_export-helper.mjs} +1 -1
  268. package/dist/chunks/_plugin-vue_export-helper.mjs.map +1 -0
  269. package/dist/chunks/{actionGlobal-BZFdtdJL.mjs → actionGlobal.mjs} +1 -1
  270. package/dist/chunks/actionGlobal.mjs.map +1 -0
  271. package/dist/chunks/{actionText-BXR0sWNu.mjs → actionText.mjs} +3 -3
  272. package/dist/chunks/actionText.mjs.map +1 -0
  273. package/dist/chunks/{appName-DyNMVZpX.mjs → appName.mjs} +2 -2
  274. package/dist/chunks/appName.mjs.map +1 -0
  275. package/dist/chunks/{autolink-DrIurosL.mjs → autolink.mjs} +7 -7
  276. package/dist/chunks/autolink.mjs.map +1 -0
  277. package/dist/chunks/{colors-Cv9F-jWS.mjs → colors.mjs} +3 -3
  278. package/dist/chunks/colors.mjs.map +1 -0
  279. package/dist/chunks/{constants-wIEKSp2G.mjs → constants.mjs} +1 -1
  280. package/dist/chunks/constants.mjs.map +1 -0
  281. package/dist/chunks/{constants-Ciwvl5xb.mjs → constants2.mjs} +1 -1
  282. package/dist/chunks/constants2.mjs.map +1 -0
  283. package/dist/chunks/{createElementId-DhjFt1I9.mjs → createElementId.mjs} +1 -1
  284. package/dist/chunks/createElementId.mjs.map +1 -0
  285. package/dist/chunks/customPickerElements.mjs +61 -0
  286. package/dist/chunks/customPickerElements.mjs.map +1 -0
  287. package/dist/chunks/{emoji-C8k9NUlo.mjs → emoji.mjs} +1 -1
  288. package/dist/chunks/emoji.mjs.map +1 -0
  289. package/dist/chunks/{focusTrap-HJQ4pqHV.mjs → focusTrap.mjs} +1 -1
  290. package/dist/chunks/focusTrap.mjs.map +1 -0
  291. package/dist/chunks/highlight.mjs +5 -0
  292. package/dist/chunks/highlight.mjs.map +1 -0
  293. package/dist/chunks/{legacy-BoqDmOCa.mjs → legacy.mjs} +4 -2
  294. package/dist/chunks/legacy.mjs.map +1 -0
  295. package/dist/chunks/{logger-D3RVzcfQ.mjs → logger.mjs} +1 -1
  296. package/dist/chunks/logger.mjs.map +1 -0
  297. package/dist/chunks/{mdi-CpchYUUV.mjs → mdi.mjs} +12 -14
  298. package/dist/chunks/mdi.mjs.map +1 -0
  299. package/dist/chunks/{platform-CC2ecGvV.mjs → platform.mjs} +1 -1
  300. package/dist/chunks/platform.mjs.map +1 -0
  301. package/dist/chunks/{referencePickerModal-CnKdEDwu.mjs → referencePickerModal.mjs} +60 -342
  302. package/dist/chunks/referencePickerModal.mjs.map +1 -0
  303. package/dist/chunks/{rtl-v0UOPAM7.mjs → rtl.mjs} +1 -1
  304. package/dist/chunks/rtl.mjs.map +1 -0
  305. package/dist/chunks/{useAppSettingsDialog-C73Wx6iQ.mjs → useAppSettingsDialog.mjs} +1 -1
  306. package/dist/chunks/useAppSettingsDialog.mjs.map +1 -0
  307. package/dist/chunks/{useCopy-6F-qWHq0.mjs → useCopy.mjs} +4 -4
  308. package/dist/chunks/useCopy.mjs.map +1 -0
  309. package/dist/chunks/{useNcActions-BzPO2c4h.mjs → useNcActions.mjs} +1 -1
  310. package/dist/chunks/useNcActions.mjs.map +1 -0
  311. package/dist/chunks/{useNcFormBox-Djlh582y.mjs → useNcFormBox.mjs} +1 -1
  312. package/dist/chunks/useNcFormBox.mjs.map +1 -0
  313. package/dist/chunks/{useNcRadioGroup-D6llQmAl.mjs → useNcRadioGroup.mjs} +1 -1
  314. package/dist/chunks/useNcRadioGroup.mjs.map +1 -0
  315. package/dist/chunks/{useTrapStackControl-B6cEicto.mjs → useTrapStackControl.mjs} +2 -2
  316. package/dist/chunks/useTrapStackControl.mjs.map +1 -0
  317. package/dist/chunks/widgets.mjs +66 -0
  318. package/dist/chunks/widgets.mjs.map +1 -0
  319. package/dist/components/NcActionButton/index.mjs +1 -1
  320. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  321. package/dist/components/NcActionCaption/index.mjs +1 -1
  322. package/dist/components/NcActionCheckbox/index.mjs +1 -1
  323. package/dist/components/NcActionInput/NcActionInput.vue.d.ts +302 -103
  324. package/dist/components/NcActionInput/index.mjs +1 -1
  325. package/dist/components/NcActionLink/index.mjs +1 -1
  326. package/dist/components/NcActionRadio/index.mjs +1 -1
  327. package/dist/components/NcActionRouter/index.mjs +1 -1
  328. package/dist/components/NcActionSeparator/index.mjs +1 -1
  329. package/dist/components/NcActionText/index.mjs +1 -1
  330. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  331. package/dist/components/NcActions/NcActions.vue.d.ts +3 -3
  332. package/dist/components/NcActions/index.mjs +1 -1
  333. package/dist/components/NcAppContent/index.mjs +1 -1
  334. package/dist/components/NcAppContentDetails/index.mjs +1 -1
  335. package/dist/components/NcAppContentList/index.mjs +1 -1
  336. package/dist/components/NcAppNavigation/index.mjs +1 -1
  337. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +3 -3
  338. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  339. package/dist/components/NcAppNavigationIconBullet/index.mjs +1 -1
  340. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +10 -6
  341. package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +1 -1
  342. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  343. package/dist/components/NcAppNavigationList/NcAppNavigationList.vue.d.ts +57 -1
  344. package/dist/components/NcAppNavigationList/highlight.d.ts +12 -0
  345. package/dist/components/NcAppNavigationList/index.mjs +1 -1
  346. package/dist/components/NcAppNavigationNew/index.mjs +1 -1
  347. package/dist/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +1 -1
  348. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  349. package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +16 -16
  350. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  351. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  352. package/dist/components/NcAppNavigationSpacer/index.mjs +1 -1
  353. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  354. package/dist/components/NcAppSettingsSection/index.mjs +1 -1
  355. package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
  356. package/dist/components/NcAppSettingsShortcutsSection/index.mjs +1 -1
  357. package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +23 -4
  358. package/dist/components/NcAppSidebar/NcAppSidebarTabs.vue.d.ts +43 -0
  359. package/dist/components/NcAppSidebar/NcAppSidebarTabsButton.vue.d.ts +5 -0
  360. package/dist/components/NcAppSidebar/index.mjs +1 -1
  361. package/dist/components/NcAppSidebarHeader/index.mjs +1 -1
  362. package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +14 -4
  363. package/dist/components/NcAppSidebarTab/index.mjs +1 -1
  364. package/dist/components/NcAssistantButton/index.mjs +1 -1
  365. package/dist/components/NcAssistantContent/index.mjs +1 -1
  366. package/dist/components/NcAssistantIcon/index.mjs +1 -1
  367. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +53 -138
  368. package/dist/components/NcAvatar/index.mjs +1 -1
  369. package/dist/components/NcBlurHash/index.mjs +1 -1
  370. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +4 -4
  371. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  372. package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +7 -7
  373. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  374. package/dist/components/NcButton/index.mjs +1 -1
  375. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  376. package/dist/components/NcChip/index.mjs +1 -1
  377. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +272 -280
  378. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +38 -140
  379. package/dist/components/NcCollectionList/index.mjs +1 -1
  380. package/dist/components/NcColorPicker/index.mjs +1 -1
  381. package/dist/components/NcContent/index.mjs +1 -1
  382. package/dist/components/NcCounterBubble/index.mjs +1 -1
  383. package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +73 -277
  384. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  385. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +38 -140
  386. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  387. package/dist/components/NcDateTime/index.mjs +1 -1
  388. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +82 -80
  389. package/dist/components/NcDateTimePicker/dateFnsLocaleLoader.d.ts +3 -0
  390. package/dist/components/NcDateTimePicker/format.d.ts +35 -0
  391. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  392. package/dist/components/NcDateTimePicker/useDateFnsLocale.d.ts +16 -0
  393. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  394. package/dist/components/NcDialog/index.mjs +1 -1
  395. package/dist/components/NcDialogButton/index.mjs +1 -1
  396. package/dist/components/NcEllipsisedOption/index.mjs +1 -1
  397. package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +14 -11
  398. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  399. package/dist/components/NcEmptyContent/index.mjs +1 -1
  400. package/dist/components/NcFilePicker/index.mjs +1 -1
  401. package/dist/components/NcFormBox/index.mjs +1 -1
  402. package/dist/components/NcFormBoxButton/index.mjs +1 -1
  403. package/dist/components/NcFormBoxCopyButton/index.mjs +1 -1
  404. package/dist/components/NcFormBoxSwitch/index.mjs +1 -1
  405. package/dist/components/NcFormGroup/index.mjs +1 -1
  406. package/dist/components/NcGuestContent/index.mjs +1 -1
  407. package/dist/components/NcHeaderButton/index.mjs +1 -1
  408. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  409. package/dist/components/NcHighlight/index.mjs +1 -1
  410. package/dist/components/NcHotkey/index.mjs +1 -1
  411. package/dist/components/NcHotkeyList/index.mjs +1 -1
  412. package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
  413. package/dist/components/NcInputField/NcInputField.vue.d.ts +8 -5
  414. package/dist/components/NcInputField/index.mjs +1 -1
  415. package/dist/components/NcKbd/index.mjs +1 -1
  416. package/dist/components/NcListItem/NcListItem.vue.d.ts +3 -3
  417. package/dist/components/NcListItem/index.mjs +1 -1
  418. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +36 -138
  419. package/dist/components/NcListItemIcon/index.mjs +1 -1
  420. package/dist/components/NcLoadingIcon/index.mjs +1 -1
  421. package/dist/components/NcModal/index.mjs +1 -1
  422. package/dist/components/NcNoteCard/index.mjs +1 -1
  423. package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +16 -16
  424. package/dist/components/NcPasswordField/index.mjs +1 -1
  425. package/dist/components/NcPopover/index.mjs +1 -1
  426. package/dist/components/NcProfileHoverCard/NcProfileHoverCard.vue.d.ts +80 -0
  427. package/dist/components/NcProfileHoverCard/index.d.ts +5 -0
  428. package/dist/components/NcProfileHoverCard/index.mjs +5 -0
  429. package/dist/components/NcProfileHoverCard/index.mjs.map +1 -0
  430. package/dist/components/NcProfileHoverCard/profileCache.d.ts +31 -0
  431. package/dist/components/NcProgressBar/NcProgressBar.vue.d.ts +27 -0
  432. package/dist/components/NcProgressBar/index.mjs +1 -1
  433. package/dist/components/NcRadioGroup/index.mjs +1 -1
  434. package/dist/components/NcRadioGroupButton/index.mjs +1 -1
  435. package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +1 -1
  436. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  437. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +1 -1
  438. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  439. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +199 -3
  440. package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +14 -11
  441. package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +412 -17
  442. package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +412 -17
  443. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +199 -3
  444. package/dist/components/NcRichText/index.mjs +14 -12
  445. package/dist/components/NcRichText/index.mjs.map +1 -1
  446. package/dist/components/NcSavingIndicatorIcon/index.mjs +1 -1
  447. package/dist/components/NcSelect/NcSelect.vue.d.ts +208 -3
  448. package/dist/components/NcSelect/index.mjs +1 -1
  449. package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +201 -5
  450. package/dist/components/NcSelectTags/index.mjs +1 -1
  451. package/dist/components/NcSelectUsers/index.mjs +1 -1
  452. package/dist/components/NcSettingsSection/index.mjs +1 -1
  453. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +199 -3
  454. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  455. package/dist/components/NcTextArea/index.mjs +1 -1
  456. package/dist/components/NcTextField/NcTextField.vue.d.ts +23 -17
  457. package/dist/components/NcTextField/index.mjs +1 -1
  458. package/dist/components/NcThemeProvider/index.mjs +1 -1
  459. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  460. package/dist/components/NcUserBubble/index.mjs +1 -1
  461. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  462. package/dist/components/NcVNodes/index.mjs +1 -1
  463. package/dist/components/index.d.ts +1 -0
  464. package/dist/composables/useFormatDateTime/index.mjs +11 -5
  465. package/dist/composables/useFormatDateTime/index.mjs.map +1 -1
  466. package/dist/composables/useHotKey/index.mjs +1 -1
  467. package/dist/composables/useIsDarkTheme/index.mjs +1 -1
  468. package/dist/functions/contactsMenu/index.mjs +1 -1
  469. package/dist/functions/emoji/index.mjs +1 -1
  470. package/dist/functions/reference/index.mjs +13 -12
  471. package/dist/functions/reference/index.mjs.map +1 -1
  472. package/dist/functions/registerReference/index.mjs +10 -9
  473. package/dist/functions/registerReference/index.mjs.map +1 -1
  474. package/dist/functions/usernameToColor/index.mjs +1 -1
  475. package/dist/index.mjs +120 -116
  476. package/dist/index.mjs.map +1 -1
  477. package/dist/utils/legacy.d.ts +2 -0
  478. package/package.json +20 -19
  479. package/dist/assets/NcAppNavigationList--36j6Acm.css +0 -28
  480. package/dist/assets/NcDateTimePickerNative-BP6eg8aU.css +0 -60
  481. package/dist/assets/NcPopover-CAoHhjKa.css +0 -123
  482. package/dist/assets/NcSelect-CvDEQAjD.css +0 -245
  483. package/dist/assets/NcSelectUsers-YF5729PJ.css +0 -4
  484. package/dist/chunks/ArrowRight-B1ncAhus.mjs.map +0 -1
  485. package/dist/chunks/ChevronDown-C6gc637b.mjs.map +0 -1
  486. package/dist/chunks/ChevronUp-ChH8oB7p.mjs.map +0 -1
  487. package/dist/chunks/Close-CuhcJnX2.mjs.map +0 -1
  488. package/dist/chunks/NcActionButton-BO5T5ePT.mjs.map +0 -1
  489. package/dist/chunks/NcActionButtonGroup-Dd03Oluy.mjs.map +0 -1
  490. package/dist/chunks/NcActionCaption-f7L9gBlT.mjs.map +0 -1
  491. package/dist/chunks/NcActionCheckbox-DBqiK-AZ.mjs.map +0 -1
  492. package/dist/chunks/NcActionInput-Dr8Yrafu.mjs.map +0 -1
  493. package/dist/chunks/NcActionLink-BFiaYt9A.mjs.map +0 -1
  494. package/dist/chunks/NcActionRadio-BA08CAtA.mjs.map +0 -1
  495. package/dist/chunks/NcActionRouter-vYFtIOzD.mjs.map +0 -1
  496. package/dist/chunks/NcActionSeparator-B9pNQaji.mjs.map +0 -1
  497. package/dist/chunks/NcActionText-CQ9qwJ0p.mjs.map +0 -1
  498. package/dist/chunks/NcActionTextEditable-B8y_GEre.mjs.map +0 -1
  499. package/dist/chunks/NcActions-C-wDqSrv.mjs.map +0 -1
  500. package/dist/chunks/NcAppContent-DavgjaFX.mjs.map +0 -1
  501. package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-BWl5Pw5g.mjs.map +0 -1
  502. package/dist/chunks/NcAppContentList-Copx3Ver.mjs.map +0 -1
  503. package/dist/chunks/NcAppNavigation-g57j16pB.mjs.map +0 -1
  504. package/dist/chunks/NcAppNavigationCaption-VjSWJ8R4.mjs.map +0 -1
  505. package/dist/chunks/NcAppNavigationIconBullet-BmU-dPcY.mjs.map +0 -1
  506. package/dist/chunks/NcAppNavigationItem-CDeYtA3E.mjs.map +0 -1
  507. package/dist/chunks/NcAppNavigationList-CGSWabRB.mjs +0 -17
  508. package/dist/chunks/NcAppNavigationList-CGSWabRB.mjs.map +0 -1
  509. package/dist/chunks/NcAppNavigationNew-CBNppM7Q.mjs.map +0 -1
  510. package/dist/chunks/NcAppNavigationNewItem-B1RfQkvu.mjs.map +0 -1
  511. package/dist/chunks/NcAppNavigationSearch-CQQWb1Eq.mjs.map +0 -1
  512. package/dist/chunks/NcAppNavigationSettings-DoMjRExO.mjs.map +0 -1
  513. package/dist/chunks/NcAppNavigationSpacer-CIRC4ZEj.mjs.map +0 -1
  514. package/dist/chunks/NcAppSettingsDialog-BPcEYLjP.mjs.map +0 -1
  515. package/dist/chunks/NcAppSettingsSection-BosSmisT.mjs.map +0 -1
  516. package/dist/chunks/NcAppSettingsShortcutsSection-DLwubKV9.mjs.map +0 -1
  517. package/dist/chunks/NcAppSidebar-C8YzAzrZ.mjs.map +0 -1
  518. package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map +0 -1
  519. package/dist/chunks/NcAppSidebarTab-DOSDDbGA.mjs.map +0 -1
  520. package/dist/chunks/NcAssistantButton-iK491d2v.mjs.map +0 -1
  521. package/dist/chunks/NcAssistantContent-iHA4O4cC.mjs.map +0 -1
  522. package/dist/chunks/NcAssistantIcon-C6s4Qm7-.mjs.map +0 -1
  523. package/dist/chunks/NcAvatar-1KxMUN7V.mjs.map +0 -1
  524. package/dist/chunks/NcBlurHash-B30Ol8KP.mjs.map +0 -1
  525. package/dist/chunks/NcBreadcrumb-3Y5NWXnV.mjs.map +0 -1
  526. package/dist/chunks/NcBreadcrumbs-BaTp3Sya.mjs.map +0 -1
  527. package/dist/chunks/NcButton-jvoYS2my.mjs.map +0 -1
  528. package/dist/chunks/NcCheckboxRadioSwitch-DVdt5Hkq.mjs.map +0 -1
  529. package/dist/chunks/NcChip-DKRlV47q.mjs.map +0 -1
  530. package/dist/chunks/NcCollectionList-B9qCtjJw.mjs.map +0 -1
  531. package/dist/chunks/NcColorPicker-BCkasLwT.mjs.map +0 -1
  532. package/dist/chunks/NcContent-BYh5hWDN.mjs.map +0 -1
  533. package/dist/chunks/NcCounterBubble-CV0YMrXW.mjs.map +0 -1
  534. package/dist/chunks/NcDashboardWidget-zmbDEGL-.mjs.map +0 -1
  535. package/dist/chunks/NcDashboardWidgetItem-DwDndrm_.mjs.map +0 -1
  536. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs.map +0 -1
  537. package/dist/chunks/NcDateTimePicker-qaFC_wUt.mjs +0 -415
  538. package/dist/chunks/NcDateTimePicker-qaFC_wUt.mjs.map +0 -1
  539. package/dist/chunks/NcDateTimePickerNative-B8CMOUnH.mjs.map +0 -1
  540. package/dist/chunks/NcDialog-D617YI0t.mjs.map +0 -1
  541. package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-Bqfy678u.mjs.map +0 -1
  542. package/dist/chunks/NcEllipsisedOption-D6Amb91K.mjs.map +0 -1
  543. package/dist/chunks/NcEmojiPicker-UTxgju3f.mjs.map +0 -1
  544. package/dist/chunks/NcEmptyContent-CGAPqk4S.mjs.map +0 -1
  545. package/dist/chunks/NcFilePicker-bD2toutn.mjs.map +0 -1
  546. package/dist/chunks/NcFormBox-Bmqar8nn.mjs.map +0 -1
  547. package/dist/chunks/NcFormBoxButton-G_PkUiQy.mjs.map +0 -1
  548. package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs.map +0 -1
  549. package/dist/chunks/NcFormBoxItem-Cm8aZaVJ.mjs.map +0 -1
  550. package/dist/chunks/NcFormBoxSwitch-DSXiQcnq.mjs.map +0 -1
  551. package/dist/chunks/NcFormGroup-N7qIFAwN.mjs.map +0 -1
  552. package/dist/chunks/NcGuestContent-CvT6VGt1.mjs.map +0 -1
  553. package/dist/chunks/NcHeaderButton-BnLwYCog.mjs.map +0 -1
  554. package/dist/chunks/NcHeaderMenu-ktQJV2SW.mjs.map +0 -1
  555. package/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map +0 -1
  556. package/dist/chunks/NcHotkey-BDGeF3eH.mjs.map +0 -1
  557. package/dist/chunks/NcHotkeyList-B4WjTLAp.mjs.map +0 -1
  558. package/dist/chunks/NcIconSvgWrapper-g8ubWhoz.mjs.map +0 -1
  559. package/dist/chunks/NcIconToggleSwitch-CRvGt4su.mjs.map +0 -1
  560. package/dist/chunks/NcInputConfirmCancel-CGTllrXj.mjs.map +0 -1
  561. package/dist/chunks/NcInputField-5Sg6EUP6.mjs.map +0 -1
  562. package/dist/chunks/NcKbd-Bh_Tk6Ar.mjs.map +0 -1
  563. package/dist/chunks/NcListItem-BliLJpvU.mjs.map +0 -1
  564. package/dist/chunks/NcListItemIcon-Dl_tfkk9.mjs.map +0 -1
  565. package/dist/chunks/NcLoadingIcon-BOVpFVQz.mjs.map +0 -1
  566. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs.map +0 -1
  567. package/dist/chunks/NcModal-DiDvgcU8.mjs.map +0 -1
  568. package/dist/chunks/NcNoteCard-mI7qVZ9j.mjs.map +0 -1
  569. package/dist/chunks/NcPasswordField-BFyzHTOO.mjs.map +0 -1
  570. package/dist/chunks/NcPopover-B87bEPLq.mjs.map +0 -1
  571. package/dist/chunks/NcProgressBar-C-ane-Ni.mjs.map +0 -1
  572. package/dist/chunks/NcRadioGroup-B4qmS2UD.mjs.map +0 -1
  573. package/dist/chunks/NcRadioGroupButton-CZykGwv3.mjs.map +0 -1
  574. package/dist/chunks/NcRelatedResourcesPanel-D_Ttpg5_.mjs.map +0 -1
  575. package/dist/chunks/NcRichContenteditable-Qw614bJ5.mjs.map +0 -1
  576. package/dist/chunks/NcRichText-BO_4KtBA.mjs.map +0 -1
  577. package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DbQnMYZm.mjs.map +0 -1
  578. package/dist/chunks/NcSelect--kERLlBK.mjs.map +0 -1
  579. package/dist/chunks/NcSelectTags-I2hJaNax.mjs.map +0 -1
  580. package/dist/chunks/NcSelectUsers-K14Bepkq.mjs.map +0 -1
  581. package/dist/chunks/NcSettingsSection-Caz1fuWt.mjs.map +0 -1
  582. package/dist/chunks/NcSettingsSelectGroup-SYJ8-XlR.mjs.map +0 -1
  583. package/dist/chunks/NcTextArea-Dxzj4zdb.mjs.map +0 -1
  584. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs.map +0 -1
  585. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-wie70gn4.mjs.map +0 -1
  586. package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-D7ZHgnwW.mjs.map +0 -1
  587. package/dist/chunks/NcUserBubble-BXR7vT0V.mjs.map +0 -1
  588. package/dist/chunks/NcUserStatusIcon-BF5OEQFU.mjs.map +0 -1
  589. package/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map +0 -1
  590. package/dist/chunks/_l10n-wdIzZwir.mjs.map +0 -1
  591. package/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs.map +0 -1
  592. package/dist/chunks/actionGlobal-BZFdtdJL.mjs.map +0 -1
  593. package/dist/chunks/actionText-BXR0sWNu.mjs.map +0 -1
  594. package/dist/chunks/appName-DyNMVZpX.mjs.map +0 -1
  595. package/dist/chunks/autolink-DrIurosL.mjs.map +0 -1
  596. package/dist/chunks/colors-Cv9F-jWS.mjs.map +0 -1
  597. package/dist/chunks/constants-Ciwvl5xb.mjs.map +0 -1
  598. package/dist/chunks/constants-wIEKSp2G.mjs.map +0 -1
  599. package/dist/chunks/createElementId-DhjFt1I9.mjs.map +0 -1
  600. package/dist/chunks/customPickerElements-BqbDcaEu.mjs +0 -123
  601. package/dist/chunks/customPickerElements-BqbDcaEu.mjs.map +0 -1
  602. package/dist/chunks/emoji-C8k9NUlo.mjs.map +0 -1
  603. package/dist/chunks/focusTrap-HJQ4pqHV.mjs.map +0 -1
  604. package/dist/chunks/legacy-BoqDmOCa.mjs.map +0 -1
  605. package/dist/chunks/logger-D3RVzcfQ.mjs.map +0 -1
  606. package/dist/chunks/mdi-CpchYUUV.mjs.map +0 -1
  607. package/dist/chunks/platform-CC2ecGvV.mjs.map +0 -1
  608. package/dist/chunks/referencePickerModal-CnKdEDwu.mjs.map +0 -1
  609. package/dist/chunks/rtl-v0UOPAM7.mjs.map +0 -1
  610. package/dist/chunks/useAppSettingsDialog-C73Wx6iQ.mjs.map +0 -1
  611. package/dist/chunks/useCopy-6F-qWHq0.mjs.map +0 -1
  612. package/dist/chunks/useNcActions-BzPO2c4h.mjs.map +0 -1
  613. package/dist/chunks/useNcFormBox-Djlh582y.mjs.map +0 -1
  614. package/dist/chunks/useNcRadioGroup-D6llQmAl.mjs.map +0 -1
  615. package/dist/chunks/useTrapStackControl-B6cEicto.mjs.map +0 -1
  616. /package/dist/assets/{NcActionButtonGroup-Bt8kRk79.css → NcActionButtonGroup.css} +0 -0
  617. /package/dist/assets/{NcActionCaption-DnG2OyWa.css → NcActionCaption.css} +0 -0
  618. /package/dist/assets/{NcActionSeparator-Ct2RnclR.css → NcActionSeparator.css} +0 -0
  619. /package/dist/assets/{NcAppContent-TgcZd4AI.css → NcAppContent.css} +0 -0
  620. /package/dist/assets/{NcAppNavigationCaption-ggcWspH2.css → NcAppNavigationCaption.css} +0 -0
  621. /package/dist/assets/{NcAppNavigationIconBullet-DLQJkObX.css → NcAppNavigationIconBullet.css} +0 -0
  622. /package/dist/assets/{NcAppNavigationNew-Bn8zj5lM.css → NcAppNavigationNew.css} +0 -0
  623. /package/dist/assets/{NcAppNavigationSearch-DD7mo6OW.css → NcAppNavigationSearch.css} +0 -0
  624. /package/dist/assets/{NcAppNavigationSpacer-LST5uYYS.css → NcAppNavigationSpacer.css} +0 -0
  625. /package/dist/assets/{NcAppSettingsSection-DIw8GLHR.css → NcAppSettingsSection.css} +0 -0
  626. /package/dist/assets/{NcBreadcrumb-BxhZKQlW.css → NcBreadcrumb.css} +0 -0
  627. /package/dist/assets/{NcBreadcrumbs-B4eyDS9i.css → NcBreadcrumbs.css} +0 -0
  628. /package/dist/assets/{NcChip-DbSI4mFP.css → NcChip.css} +0 -0
  629. /package/dist/assets/{NcCollectionList-e5JFvzqX.css → NcCollectionList.css} +0 -0
  630. /package/dist/assets/{NcColorPicker-DVYGs8R3.css → NcColorPicker.css} +0 -0
  631. /package/dist/assets/{NcContent-DX4Rs6Pc.css → NcContent.css} +0 -0
  632. /package/dist/assets/{NcCounterBubble-ZnteskDR.css → NcCounterBubble.css} +0 -0
  633. /package/dist/assets/{NcDashboardWidget-nZuIL1UN.css → NcDashboardWidget.css} +0 -0
  634. /package/dist/assets/{NcDashboardWidgetItem-DpVmEBwQ.css → NcDashboardWidgetItem.css} +0 -0
  635. /package/dist/assets/{NcDialog-BSV74Bru.css → NcDialog.css} +0 -0
  636. /package/dist/assets/{NcEmojiPicker-vNKR9S87.css → NcEmojiPicker.css} +0 -0
  637. /package/dist/assets/{NcEmptyContent-DJMDuGVz.css → NcEmptyContent.css} +0 -0
  638. /package/dist/assets/{NcGuestContent-CM0uWLr1.css → NcGuestContent.css} +0 -0
  639. /package/dist/assets/{NcHeaderButton-CVOQgRjm.css → NcHeaderButton.css} +0 -0
  640. /package/dist/assets/{NcIconSvgWrapper-N3OwSN9O.css → NcIconSvgWrapper.css} +0 -0
  641. /package/dist/assets/{NcInputConfirmCancel-DZEDRf0t.css → NcInputConfirmCancel.css} +0 -0
  642. /package/dist/assets/{NcListItem-BjeejGlB.css → NcListItem.css} +0 -0
  643. /package/dist/assets/{NcListItemIcon-DJRcmlo1.css → NcListItemIcon.css} +0 -0
  644. /package/dist/assets/{NcLoadingIcon-CWUlo4XY.css → NcLoadingIcon.css} +0 -0
  645. /package/dist/assets/{NcMentionBubble-BeGb2xGc.css → NcMentionBubble.css} +0 -0
  646. /package/dist/assets/{NcModal-D81luiuU.css → NcModal.css} +0 -0
  647. /package/dist/assets/{NcNoteCard-DfescGKl.css → NcNoteCard.css} +0 -0
  648. /package/dist/assets/{NcPasswordField-BN4HFgU5.css → NcPasswordField.css} +0 -0
  649. /package/dist/assets/{NcRelatedResourcesPanel-BZKjkugM.css → NcRelatedResourcesPanel.css} +0 -0
  650. /package/dist/assets/{NcRichText-D0Bu5bbu.css → NcRichText.css} +0 -0
  651. /package/dist/assets/{NcSettingsSection-f5rBJsKJ.css → NcSettingsSection.css} +0 -0
  652. /package/dist/assets/{NcSettingsSelectGroup-D_fSrafm.css → NcSettingsSelectGroup.css} +0 -0
  653. /package/dist/assets/{NcTextArea-BxGe3Lqn.css → NcTextArea.css} +0 -0
  654. /package/dist/assets/{NcUserBubble-DFUmBxeb.css → NcUserBubble.css} +0 -0
  655. /package/dist/assets/{NcUserStatusIcon-B3aHoBAd.css → NcUserStatusIcon.css} +0 -0
@@ -1,14 +1,14 @@
1
- import '../assets/NcAppSettingsDialog-Dh_scIK4.css';
1
+ import '../assets/NcAppSettingsDialog.css';
2
2
  import { defineComponent, inject, openBlock, createElementBlock, normalizeClass, unref, toDisplayString, useModel, provide, toRef, useTemplateRef, ref, computed, onBeforeUnmount, warn, createBlock, createSlots, withCtx, createElementVNode, renderSlot, createCommentVNode, Fragment, renderList, withKeys, withModifiers, mergeModels } from "vue";
3
3
  import debounce from "debounce";
4
- import { N as NcDialog } from "./NcDialog-D617YI0t.mjs";
5
- import { _ as _sfc_main$2 } from "./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs";
6
- import { u as useLocalizedAppName, A as APP_VERSION } from "./appName-DyNMVZpX.mjs";
7
- import { A as APP_SETTINGS_LEGACY_DESIGN_KEY, a as APP_SETTINGS_REGISTRATION_KEY } from "./useAppSettingsDialog-C73Wx6iQ.mjs";
8
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
4
+ import { N as NcDialog } from "./NcDialog.mjs";
5
+ import { _ as _sfc_main$2 } from "./NcVNodes.vue_vue_type_script_lang.mjs";
6
+ import { u as useLocalizedAppName, A as APP_VERSION } from "./appName.mjs";
7
+ import { A as APP_SETTINGS_LEGACY_DESIGN_KEY, a as APP_SETTINGS_REGISTRATION_KEY } from "./useAppSettingsDialog.mjs";
8
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
9
9
  import { useIsMobile } from "../composables/useIsMobile/index.mjs";
10
- import { r as register, I as t48, a as t } from "./_l10n-wdIzZwir.mjs";
11
- import { i as isLegacy34 } from "./legacy-BoqDmOCa.mjs";
10
+ import { r as register, I as t49, a as t } from "./_l10n.mjs";
11
+ import { i as isLegacy34 } from "./legacy.mjs";
12
12
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
13
13
  __name: "NcAppSettingsDialogVersion",
14
14
  setup(__props) {
@@ -21,10 +21,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21
21
  };
22
22
  }
23
23
  });
24
- const appSettingsDialogVersion = "_appSettingsDialogVersion_Y2viq";
25
- const appSettingsDialogVersion__legacy = "_appSettingsDialogVersion__legacy_I-lpS";
24
+ const appSettingsDialogVersion = "_appSettingsDialogVersion_e4tNO";
25
+ const appSettingsDialogVersion__legacy = "_appSettingsDialogVersion__legacy_AeUZg";
26
26
  const style0 = {
27
- "material-design-icon": "_material-design-icon_1zyjw",
27
+ "material-design-icon": "_material-design-icon_MFxpL",
28
28
  appSettingsDialogVersion,
29
29
  appSettingsDialogVersion__legacy
30
30
  };
@@ -32,7 +32,7 @@ const cssModules = {
32
32
  "$style": style0
33
33
  };
34
34
  const NcAppSettingsDialogVersion = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules]]);
35
- register(t48);
35
+ register(t49);
36
36
  const _hoisted_1 = {
37
37
  key: 0,
38
38
  class: "app-settings__title"
@@ -204,4 +204,4 @@ const NcAppSettingsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId"
204
204
  export {
205
205
  NcAppSettingsDialog as N
206
206
  };
207
- //# sourceMappingURL=NcAppSettingsDialog-BPcEYLjP.mjs.map
207
+ //# sourceMappingURL=NcAppSettingsDialog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppSettingsDialog.mjs","sources":["../../src/components/NcAppSettingsDialog/NcAppSettingsDialogVersion.vue","../../src/components/NcAppSettingsDialog/NcAppSettingsDialog.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 { inject } from 'vue'\nimport { APP_VERSION, useLocalizedAppName } from '../../utils/appName.ts'\nimport { APP_SETTINGS_LEGACY_DESIGN_KEY } from './useAppSettingsDialog.ts'\n\nconst legacy = inject(APP_SETTINGS_LEGACY_DESIGN_KEY)!\n\nconst localizedAppName = useLocalizedAppName()\n</script>\n\n<template>\n\t<div :class=\"[$style.appSettingsDialogVersion, { [$style.appSettingsDialogVersion__legacy]: legacy }]\">\n\t\t{{ localizedAppName }} {{ APP_VERSION }}\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.appSettingsDialogVersion {\n --form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n color: var(--color-text-maxcontrast);\n margin-block-end: calc(8 * var(--default-grid-baseline));\n margin-inline: var(--form-element-label-offset);\n}\n\n.appSettingsDialogVersion__legacy {\n margin-inline: 0;\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot, VNode } from 'vue'\n\nimport debounce from 'debounce'\nimport { computed, onBeforeUnmount, provide, ref, toRef, useTemplateRef, warn } from 'vue'\nimport NcDialog from '../NcDialog/NcDialog.vue'\nimport NcVNodes from '../NcVNodes/NcVNodes.vue'\nimport NcAppSettingsDialogVersion from './NcAppSettingsDialogVersion.vue'\nimport { useIsMobile } from '../../composables/useIsMobile/index.ts'\nimport { t } from '../../l10n.ts'\nimport { isLegacy34 } from '../../utils/legacy.ts'\nimport { APP_SETTINGS_LEGACY_DESIGN_KEY, APP_SETTINGS_REGISTRATION_KEY } from './useAppSettingsDialog.ts'\n\nexport interface IAppSettingsSection {\n\tid: string\n\tname: string\n\torder?: number\n\ticon?: VNode[]\n}\n\n/**\n * Determines the open / closed state of the modal\n */\nconst open = defineModel<boolean>('open', { required: true })\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Shows the navigation on desktop if true\n\t */\n\tshowNavigation?: boolean\n\n\t/**\n\t * Selector for the popover container\n\t */\n\tcontainer?: string\n\n\t/**\n\t * Name of the settings\n\t */\n\tname?: string\n\n\t/**\n\t * Additional elements to add to the focus trap\n\t */\n\tadditionalTrapElements?: (string | HTMLElement)[]\n\n\t/**\n\t * Use legacy design without any requirements for the section content\n\t *\n\t * @deprecated The legacy design will be removed\n\t */\n\tlegacy?: boolean\n\n\t/**\n\t * Do not add the application version at the bottom of the dialog\n\t */\n\tnoVersion?: boolean\n}>(), {\n\tcontainer: 'body',\n\tname: '',\n\tadditionalTrapElements: () => [],\n\tlegacy: false,\n\tnoVersion: false,\n})\n\ndefineSlots<{\n\t/**\n\t * The NcAppSettingsSections\n\t */\n\tdefault?: Slot\n}>()\n\nprovide(APP_SETTINGS_REGISTRATION_KEY, {\n\tregisterSection,\n\tunregisterSection,\n})\n\nprovide(APP_SETTINGS_LEGACY_DESIGN_KEY, toRef(() => props.legacy))\n\nconst settingsScrollerElement = useTemplateRef('settingsScroller')\n\nconst isMobile = useIsMobile()\n\nconst selectedSection = ref('')\nconst linkClicked = ref(false)\nconst registeredSections = ref<IAppSettingsSection[]>([])\n\nconst hasNavigation = computed(() => !isMobile.value && props.showNavigation)\n\n/**\n * Check if one or more navigation entries provide icons\n */\nconst hasNavigationIcons = computed(() => registeredSections.value.some(({ icon }) => !!icon))\n\n/**\n * Remove selected section once the user starts scrolling\n */\nconst unfocusNavigationItem = debounce(() => {\n\tselectedSection.value = ''\n\tif (document.activeElement?.className.includes('navigation-list__link')) {\n\t\t(document.activeElement as HTMLElement).blur()\n\t}\n}, 300)\n\n/**\n * Fallback order map to keep track of section orders if not provided by child components\n */\nconst sectionsOrderMap = new Map()\nonBeforeUnmount(() => {\n\tsectionsOrderMap.clear()\n})\n\n/**\n * Scrolls the content to the selected settings section.absolute\n *\n * @param item - the ID of the section\n */\nfunction handleSettingsNavigationClick(item: string) {\n\tlinkClicked.value = true\n\tdocument.getElementById('settings-section_' + item)!.scrollIntoView({\n\t\tbehavior: 'smooth',\n\t\tinline: 'nearest',\n\t})\n\tselectedSection.value = item\n\tsetTimeout(() => {\n\t\tlinkClicked.value = false\n\t}, 1000)\n}\n\n/**\n * Reset the dialog state when closed to have a clean state if re-opened.\n *\n * @param isOpen - The new modal open state\n */\nfunction handleCloseModal(isOpen: boolean) {\n\tif (isOpen) {\n\t\treturn\n\t}\n\n\topen.value = false\n\t// reset the scrolling state if the modal is just hidden\n\tsettingsScrollerElement.value!.scrollTop = 0\n}\n\n/**\n * When scrolled manually we remove the focus from the navigation item.\n */\nfunction handleScroll() {\n\tif (open.value && !linkClicked.value) {\n\t\tunfocusNavigationItem()\n\t}\n}\n\n/**\n * Called when a new section is registered\n *\n * @param id - The section ID\n * @param name - The section name\n * @param order - Optional section order in navigation list\n * @param icon - Optional icon component\n */\nfunction registerSection(id: string, name: string, order?: number, icon?: VNode[]) {\n\t// Check for the uniqueness of section names\n\tif (registeredSections.value.some(({ id: otherId }) => id === otherId)) {\n\t\tthrow new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`)\n\t}\n\tif (registeredSections.value.some(({ name: otherName }) => name === otherName)) {\n\t\twarn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`)\n\t}\n\n\t// Ensure tab order is set\n\tif (order !== undefined) {\n\t\tsectionsOrderMap.set(id, order)\n\t} else if (sectionsOrderMap.has(id)) {\n\t\torder = sectionsOrderMap.get(id)\n\t} else {\n\t\t// Fallback to the closest positive number that isn't already taken\n\t\torder = Math.max(0, ...sectionsOrderMap.values()) + 1\n\t\tsectionsOrderMap.set(id, order)\n\t}\n\n\t// Sort sections by order in slots\n\tregisteredSections.value = [...registeredSections.value, { id, name, order, icon }]\n\t\t.sort(({ order: orderA }, { order: orderB }) => {\n\t\t\treturn orderA! - orderB!\n\t\t})\n\n\t// If this is the first section registered, set it as selected\n\tif (registeredSections.value.length === 1) {\n\t\tselectedSection.value = id\n\t}\n}\n\n/**\n * Called when a section is unregistered to remove it from dialog\n *\n * @param id - The section ID\n */\nfunction unregisterSection(id: string) {\n\tregisteredSections.value = registeredSections.value\n\t\t.filter(({ id: otherId }) => id !== otherId)\n\n\t// If the current section is unregistered, set the first section as selected\n\tif (selectedSection.value === id) {\n\t\tselectedSection.value = registeredSections.value[0]?.id ?? ''\n\t}\n}\n</script>\n\n<template>\n\t<NcDialog\n\t\tv-if=\"open\"\n\t\tclass=\"app-settings\"\n\t\t:class=\"{ 'app-settings--legacy': isLegacy34 }\"\n\t\tcontentClasses=\"app-settings__content\"\n\t\tnavigationClasses=\"app-settings__navigation\"\n\t\t:additionalTrapElements\n\t\t:container\n\t\tcloseOnClickOutside\n\t\t:navigation-aria-label=\"t('Settings navigation')\"\n\t\tsize=\"large\"\n\t\t:name\n\t\t@update:open=\"handleCloseModal\">\n\t\t<template v-if=\"hasNavigation\" #navigation=\"{ isCollapsed }\">\n\t\t\t<div v-if=\"!isLegacy34\" class=\"app-settings__title\">\n\t\t\t\t{{ name }}\n\t\t\t</div>\n\t\t\t<ul\n\t\t\t\tv-if=\"!isCollapsed\"\n\t\t\t\tclass=\"navigation-list\">\n\t\t\t\t<li v-for=\"section in registeredSections\" :key=\"section.id\">\n\t\t\t\t\t<a\n\t\t\t\t\t\t:aria-current=\"`${section.id === selectedSection}`\"\n\t\t\t\t\t\tclass=\"navigation-list__link\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'navigation-list__link--active': section.id === selectedSection,\n\t\t\t\t\t\t\t'navigation-list__link--icon': hasNavigationIcons,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:href=\"`#settings-section_${section.id}`\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click.prevent=\"handleSettingsNavigationClick(section.id)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSettingsNavigationClick(section.id)\">\n\t\t\t\t\t\t<div v-if=\"hasNavigationIcons\" class=\"navigation-list__link-icon\">\n\t\t\t\t\t\t\t<NcVNodes v-if=\"section.icon\" :vnodes=\"section.icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"navigation-list__link-text\">\n\t\t\t\t\t\t\t{{ section.name }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t\t<div ref=\"settingsScroller\" @scroll=\"handleScroll\">\n\t\t\t<slot />\n\t\t\t<NcAppSettingsDialogVersion v-if=\"!noVersion\" />\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n$navigation-width: 200px;\n$content-inset: calc(3 * var(--default-grid-baseline));\n\n.app-settings:not(.app-settings--legacy) {\n\t--nav-tint: hsl(from var(--color-primary-element-light) h s calc(l * 1.045));\n\t--nav-tint-strong: var(--color-primary-element-light);\n\n\t// Apply styles to parent dialog, do not affect nested ones\n\t& > :deep(.modal-wrapper > .modal-container) {\n\t\tpadding-inline-start: 0 !important;\n\t\tpadding-block-start: 0 !important;\n\t\tbackground-color: var(--nav-tint);\n\t\toverflow: hidden;\n\t\tmax-width: 900px;\n\n\t\t// Title is rendered inside the navigation slot; hide the native h2 but\n\t\t// keep it in the a11y tree so the modal still has its accessible name.\n\t\t& > .modal-container__content > .dialog__name {\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 1px;\n\t\t\tmargin: -1px;\n\t\t\tpadding: 0;\n\t\t\toverflow: hidden;\n\t\t\tclip-path: inset(100%);\n\t\t\twhite-space: nowrap;\n\t\t\tborder: 0;\n\t\t}\n\t}\n\n\t:deep(.app-settings__navigation) {\n\t\tmin-width: $navigation-width;\n\t\tmax-width: $navigation-width;\n\t\tflex: 0 0 $navigation-width;\n\t\t// Beat NcDialog's default 20px end-margin so the tint meets the content.\n\t\tmargin-inline-end: 0 !important;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\n\t:deep(.app-settings__content) {\n\t\tpadding: $content-inset;\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-inline-start: 1px solid var(--color-border-dark);\n\t\tborder-start-start-radius: var(--border-radius-element);\n\t\tborder-end-start-radius: var(--border-radius-element);\n\t}\n\n\t.app-settings__title {\n\t\tbox-sizing: border-box;\n\t\tpadding: $content-inset;\n\t\tmargin: 0;\n\t\tfont-size: 20px;\n\t\tfont-weight: 700;\n\t}\n\n\t.navigation-list {\n\t\theight: 100%;\n\t\toverflow-y: auto;\n\t\tpadding: var(--default-grid-baseline);\n\n\t\t&__link {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tfont-size: var(--default-font-size);\n\t\t\tfont-weight: 500;\n\t\t\theight: var(--default-clickable-area);\n\t\t\tmargin: 2px 0;\n\t\t\tline-height: var(--default-clickable-area);\n\t\t\tborder-radius: var(--border-radius-element);\n\t\t\tpadding-inline: calc(2 * var(--default-grid-baseline));\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\tbackground-color: transparent;\n\t\t\tborder: none;\n\t\t\tcolor: var(--color-main-text);\n\n\t\t\t&:hover,\n\t\t\t&:focus-visible {\n\t\t\t\tbackground-color: color-mix(in srgb, var(--color-primary-element) 8%, transparent);\n\t\t\t}\n\n\t\t\t&:focus-visible {\n\t\t\t\toutline: 2px solid var(--color-main-text);\n\t\t\t\toutline-offset: -2px;\n\t\t\t}\n\n\t\t\t&--active {\n\t\t\t\tbackground-color: var(--nav-tint-strong);\n\n\t\t\t\t&:hover,\n\t\t\t\t&:focus-visible {\n\t\t\t\t\tbackground-color: var(--color-primary-element-light-hover);\n\t\t\t\t}\n\n\t\t\t\t&::before {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tinset-block: var(--default-grid-baseline);\n\t\t\t\t\tinset-inline-start: 0;\n\t\t\t\t\twidth: 3px;\n\t\t\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t\t\tborder-radius: 999px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&--icon {\n\t\t\t\tgap: var(--default-grid-baseline);\n\t\t\t}\n\n\t\t\t&-icon {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\t\t\t\talign-content: center;\n\t\t\t\twidth: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n\t\t\t\tmax-width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n\t\t\t}\n\t\t}\n\t}\n\n}\n\n@media only screen and (width < $breakpoint-mobile) {\n\t.app-settings:not(.app-settings--legacy) {\n\t\t// Apply styles to parent dialog, do not affect nested ones\n\t\t& > :deep(.modal-wrapper > .modal-container) {\n\t\t\tpadding-inline-start: 12px !important;\n\t\t\tpadding-block-start: 4px !important;\n\t\t\tbackground-color: var(--color-main-background);\n\n\t\t\t& > .modal-container__content > .dialog__name {\n\t\t\t\tposition: static;\n\t\t\t\twidth: auto;\n\t\t\t\theight: auto;\n\t\t\t\tmargin: 0 0 12px 0;\n\t\t\t\tpadding-inline-end: var(--default-clickable-area);\n\t\t\t\toverflow: visible;\n\t\t\t\tclip-path: none;\n\t\t\t\twhite-space: normal;\n\t\t\t\tborder: 0;\n\t\t\t}\n\t\t}\n\t\t:deep(.app-settings__content) {\n\t\t\tborder: none;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n}\n\n// Legacy design (NC < 34): keep the original centered-title layout.\n.app-settings.app-settings--legacy {\n\t:deep(.app-settings__navigation) {\n\t\tmin-width: 200px;\n\t\tmargin-inline-end: calc(4 * var(--default-grid-baseline));\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\n\t:deep(.app-settings__content) {\n\t\tpadding-inline: calc(4 * var(--default-grid-baseline));\n\t}\n\n\t.navigation-list {\n\t\theight: 100%;\n\t\toverflow-y: auto;\n\t\tpadding: calc(3 * var(--default-grid-baseline));\n\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\talign-content: center;\n\t\t\tfont-size: 16px;\n\t\t\theight: var(--default-clickable-area);\n\t\t\tmargin: 4px 0;\n\t\t\tline-height: var(--default-clickable-area);\n\t\t\tborder-radius: var(--border-radius-element);\n\t\t\tfont-weight: var(--font-weight-element, bold);\n\t\t\tpadding: 0 calc(4 * var(--default-grid-baseline));\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\tbackground-color: transparent;\n\t\t\tborder: none;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\n\t\t\t&--active {\n\t\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t\t}\n\n\t\t\t&--icon {\n\t\t\t\tpadding-inline-start: calc(2 * var(--default-grid-baseline));\n\t\t\t\tgap: var(--default-grid-baseline);\n\t\t\t}\n\n\t\t\t&-icon {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\t\t\t\talign-content: center;\n\t\t\t\twidth: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n\t\t\t\tmax-width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n\t\t\t}\n\t\t}\n\t}\n\n\t@media only screen and (max-width: $breakpoint-small-mobile) {\n\t\t.app-settings:not(.app-settings--legacy) {\n\t\t\t// Apply styles to parent dialog, do not affect nested ones\n\t\t\t& > :deep(.modal-wrapper > .modal-container) {\n\t\t\t\t& > .modal-container__content > .dialog__name {\n\t\t\t\t\tpadding-inline-start: 16px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n\n<docs>\nJust nest the `AppSettingSections` component into `NcAppSettingsDialog`,\nproviding the section's name prop. You can put your settings within each\n`NcAppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog v-model:open=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\" legacy>\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-5\" name=\"Example name 5\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-6\" name=\"Example name 6\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-7\" name=\"Example name 7\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-8\" name=\"Example name 8\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-9\" name=\"Example name 9\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-10\" name=\"Example name 10\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also add icons to the section navigation:\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog v-model:open=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\" legacy>\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Instagram\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Instagram :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tInstagram setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Mastodon\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Mastodon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tMastodon setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Twitch\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitch :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tTwitch setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Twitter\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitter :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tTwitter setting\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nimport Instagram from 'vue-material-design-icons/Instagram.vue'\nimport Mastodon from 'vue-material-design-icons/Mastodon.vue'\nimport Twitch from 'vue-material-design-icons/Twitch.vue'\nimport Twitter from 'vue-material-design-icons/Twitter.vue'\n\nexport default {\n\tcomponents: {\n\t\tInstagram,\n\t\tMastodon,\n\t\tTwitch,\n\t\tTwitter,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nSections order in navigation list is defined during initial rendering.\nIn case of dynamic/conditional sections rendering explicit `order` prop must be used for ordering.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog v-model:open=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\" legacy>\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\" :order=\"1\">\n\t\t\t\tSome example content\n\t\t\t\t<NcCheckboxRadioSwitch v-model=\"showExtraSections\">Show section 3</NcCheckboxRadioSwitch>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\" :order=\"2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<template v-if=\"showExtraSections\">\n\t\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\" :order=\"3\">\n\t\t\t\t\tSome example content\n\t\t\t\t</NcAppSettingsSection>\n\t\t\t</template>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\" :order=\"4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tsettingsOpen: false,\n\t\t\t\tshowExtraSections: true,\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n### New design\n\n```vue\n<script>\nimport { mdiArrowRight, mdiPlus, mdiDomain, mdiDockLeft, mdiDockBottom, mdiListBoxOutline, mdiPencilOutline, mdiTrashCanOutline, mdiMedalOutline, mdiEmailOutline } from '@mdi/js'\nexport default {\n\tsetup() {\n\t\treturn { mdiArrowRight, mdiPlus, mdiDomain, mdiDockLeft, mdiDockBottom, mdiListBoxOutline, mdiPencilOutline, mdiTrashCanOutline, mdiMedalOutline, mdiEmailOutline }\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t\tswitchValue: true,\n\t\t\tlayout: 'vertical',\n\t\t\tsorting: 'asc',\n\t\t\treply: 'top',\n\t\t}\n\t},\n}\n</script>\n\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Mail Settings</NcButton>\n\t\t<NcAppSettingsDialog v-model:open=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"general\" name=\"General\">\n\t\t\t\t<NcButton wide>Set as default mail app</NcButton>\n\n\t\t\t\t<NcFormGroup label=\"Account settings\">\n\t\t\t\t\t<NcFormBox>\n\t\t\t\t\t\t<NcFormBoxButton label=\"user@example.com\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcFormBoxButton>\n\t\t\t\t\t\t<NcFormBoxButton label=\"sales@example.com\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcFormBoxButton>\n\t\t\t\t\t\t<NcButton wide>\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiPlus\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\tAdd mail account\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</NcFormBox>\n\t\t\t\t</NcFormGroup>\n\t\t\t</NcAppSettingsSection>\n\n\t\t\t<NcAppSettingsSection id=\"appearance\" name=\"Appearance\">\n\t\t\t\t<NcFormBox>\n\t\t\t\t\t<NcFormBoxSwitch\n\t\t\t\t\t\tv-model=\"switchValue\"\n\t\t\t\t\t\tlabel=\"Show all messages in thread\"\n\t\t\t\t\t\tdescription=\"When off, only the selected messages will be shown\" />\n\t\t\t\t</NcFormBox>\n\t\t\t\t<NcRadioGroup v-model=\"layout\" label=\"Layout\">\n\t\t\t\t\t<NcRadioGroupButton label=\"Vertical\" value=\"vertical\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDockLeft\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcRadioGroupButton>\n\t\t\t\t\t<NcRadioGroupButton label=\"Horizontal\" value=\"horizontal\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDockBottom\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcRadioGroupButton>\n\t\t\t\t\t<NcRadioGroupButton label=\"List\" value=\"list\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiListBoxOutline\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcRadioGroupButton>\n\t\t\t\t</NcRadioGroup>\n\t\t\t\t<NcRadioGroup v-model=\"sorting\" label=\"Sorting\">\n\t\t\t\t\t<NcRadioGroupButton label=\"Newest first\" value=\"asc\" />\n\t\t\t\t\t<NcRadioGroupButton label=\"Oldest first\" value=\"desc\" />\n\t\t\t\t</NcRadioGroup>\n\t\t\t</NcAppSettingsSection>\n\n\t\t\t<NcAppSettingsSection id=\"messages\" name=\"Messages\">\n\t\t\t\t<NcFormBox>\n\t\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Avatars from Gravatar and favicons\" />\n\t\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Determine importance using machine learning\" />\n\t\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Search the body of messages in Priority inbox\" />\n\t\t\t\t</NcFormBox>\n\t\t\t\t<NcRadioGroup v-model=\"reply\" label=\"Reply position\">\n\t\t\t\t\t<NcRadioGroupButton label=\"Top\" value=\"top\" />\n\t\t\t\t\t<NcRadioGroupButton label=\"Bottom\" value=\"bottom\" />\n\t\t\t\t</NcRadioGroup>\n\t\t\t\t<NcFormGroup\n\t\t\t\t\tlabel=\"Text blocks\"\n\t\t\t\t\tdescription=\"Reusable pieces of text that can be inserted in messages\">\n\t\t\t\t\t<NcListItem name=\"Title\">\n\t\t\t\t\t\t<template #subname>\n\t\t\t\t\t\t\tContent\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extra-actions>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiPencilOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiTrashCanOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcListItem>\n\t\t\t\t\t<NcListItem name=\"Reply\">\n\t\t\t\t\t\t<template #subname>\n\t\t\t\t\t\t\tThank you for contacting us!\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extra-actions>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiPencilOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiTrashCanOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcListItem>\n\t\t\t\t</NcFormGroup>\n\t\t\t</NcAppSettingsSection>\n\n\t\t\t<NcAppSettingsSection id=\"privacy\" name=\"Privacy\">\n\t\t\t\t<NcFormBox>\n\t\t\t\t\t<NcFormBoxSwitch\n\t\t\t\t\t\tv-model=\"switchValue\"\n\t\t\t\t\t\tlabel=\"Data collection\"\n\t\t\t\t\t\tdescription=\"Allow the app to collect and process data locally to adapt to your preferences\" />\n\t\t\t\t</NcFormBox>\n\t\t\t\t<NcFormGroup label=\"Always show images from\">\n\t\t\t\t\t<NcListItem name=\"example.com\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDomain\" inline />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extra-actions>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiTrashCanOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcListItem>\n\t\t\t\t\t<NcListItem name=\"example.net\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDomain\" inline />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extra-actions>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiTrashCanOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcListItem>\n\t\t\t\t\t<NcListItem name=\"mail@example.org\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiEmailOutline\" inline />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extra-actions>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiTrashCanOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcListItem>\n\t\t\t\t</NcFormGroup>\n\t\t\t</NcAppSettingsSection>\n\n\t\t\t<NcAppSettingsSection id=\"security\" name=\"Security\">\n\t\t\t\t<NcFormBox>\n\t\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Highlight external addresses\" />\n\t\t\t\t</NcFormBox>\n\t\t\t\t<NcFormGroup label=\"Internal addresses\">\n\t\t\t\t\t<NcListItem name=\"example.com\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDomain\" inline />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extra-actions>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiTrashCanOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcListItem>\n\t\t\t\t\t<NcListItem name=\"example.company@example.net\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiEmailOutline\" inline />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extra-actions>\n\t\t\t\t\t\t\t<NcButton variant=\"tertiary\" #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiTrashCanOutline\" inline />\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcListItem>\n\t\t\t\t\t<NcButton wide>Add internal address</NcButton>\n\t\t\t\t</NcFormGroup>\n\t\t\t\t<NcFormGroup label=\"S/MIME\">\n\t\t\t\t\t<NcButton wide>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiMedalOutline\" inline />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tManage certificates\n\t\t\t\t\t</NcButton>\n\t\t\t\t</NcFormGroup>\n\t\t\t\t<NcFormGroup label=\"Mailvelope\">\n\t\t\t\t\t<NcFormBox>\n\t\t\t\t\t\t<NcFormBoxButton\n\t\t\t\t\t\t\tlabel=\"Step 1\"\n\t\t\t\t\t\t\tdescription=\"Install the browser extension\"\n\t\t\t\t\t\t\thref=\"https://www.mailvelope.com/\"\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\tinverted-accent />\n\t\t\t\t\t\t<NcFormBoxButton\n\t\t\t\t\t\t\tlabel=\"Step 2\"\n\t\t\t\t\t\t\tdescription=\"Enable the current domain\"\n\t\t\t\t\t\t\tinverted-accent>\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDomain\" inline />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcFormBoxButton>\n\t\t\t\t\t</NcFormBox>\n\t\t\t\t</NcFormGroup>\n\t\t\t</NcAppSettingsSection>\n\n\t\t\t<NcAppSettingsSection id=\"about\" name=\"About\">\n\t\t\t\t<NcFormGroup label=\"Acknowledgements\" description=\"This application includes CKEditor, an open-source editor. Copyright (C) CKEditor contributors. Licensed under GPLv2.\" />\n\t\t\t</NcAppSettingsSection>\n\n\t\t\t<NcAppSettingsShortcutsSection>\n\t\t\t\t<NcHotkeyList>\n\t\t\t\t\t<NcHotkey label=\"Compose new message\" hotkey=\"C\" />\n\t\t\t\t\t<NcHotkey label=\"Newer message\" hotkey=\"ArrowLeft\" />\n\t\t\t\t\t<NcHotkey label=\"Older message\" hotkey=\"ArrowRight\" />\n\t\t\t\t\t<NcHotkey label=\"Toggle star\" hotkey=\"S\" />\n\t\t\t\t\t<NcHotkey label=\"Toggle unread\" hotkey=\"U\" />\n\t\t\t\t\t<NcHotkey label=\"Archive\" hotkey=\"A\" />\n\t\t\t\t\t<NcHotkey label=\"Delete\" hotkey=\"Delete\" />\n\t\t\t\t\t<NcHotkey label=\"Search\" hotkey=\"Control F\" />\n\t\t\t\t\t<NcHotkey label=\"Send\" hotkey=\"Control Enter\" />\n\t\t\t\t\t<NcHotkey label=\"Refresh\" hotkey=\"R\" />\n\t\t\t\t</NcHotkeyList>\n\t\t\t</NcAppSettingsShortcutsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n```\n</docs>\n"],"names":["_createElementBlock","_normalizeClass","$style","_unref","_toDisplayString","_useModel","_createBlock","_createElementVNode","_renderSlot","_withCtx","_openBlock","_Fragment","_renderList","_withModifiers","_withKeys","NcVNodes"],"mappings":";;;;;;;;;;;;;AAUA,UAAM,SAAS,OAAO,8BAA8B;AAEpD,UAAM,mBAAmB,oBAAA;;0BAIxBA,mBAEM,OAAA;AAAA,QAFA,OAAKC,eAAA,CAAGC,YAAO,6BAA6BA,KAAAA,OAAO,gCAAgC,GAAGC,MAAA,MAAA,EAAA,CAAM,CAAA;AAAA,MAAA,mBAC9FA,MAAA,gBAAA,CAAgB,IAAG,MAACC,gBAAGD,MAAA,WAAA,CAAW,GAAA,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACWvC,UAAM,OAAOE,SAAoB,SAAC,MAA0B;AAE5D,UAAM,QAAQ;AA+Cd,YAAQ,+BAA+B;AAAA,MACtC;AAAA,MACA;AAAA,IAAA,CACA;AAED,YAAQ,gCAAgC,MAAM,MAAM,MAAM,MAAM,CAAC;AAEjE,UAAM,0BAA0B,eAAe,kBAAkB;AAEjE,UAAM,WAAW,YAAA;AAEjB,UAAM,kBAAkB,IAAI,EAAE;AAC9B,UAAM,cAAc,IAAI,KAAK;AAC7B,UAAM,qBAAqB,IAA2B,EAAE;AAExD,UAAM,gBAAgB,SAAS,MAAM,CAAC,SAAS,SAAS,MAAM,cAAc;AAK5E,UAAM,qBAAqB,SAAS,MAAM,mBAAmB,MAAM,KAAK,CAAC,EAAE,KAAA,MAAW,CAAC,CAAC,IAAI,CAAC;AAK7F,UAAM,wBAAwB,SAAS,MAAM;AAC5C,sBAAgB,QAAQ;AACxB,UAAI,SAAS,eAAe,UAAU,SAAS,uBAAuB,GAAG;AACvE,iBAAS,cAA8B,KAAA;AAAA,MACzC;AAAA,IACD,GAAG,GAAG;AAKN,UAAM,uCAAuB,IAAA;AAC7B,oBAAgB,MAAM;AACrB,uBAAiB,MAAA;AAAA,IAClB,CAAC;AAOD,aAAS,8BAA8B,MAAc;AACpD,kBAAY,QAAQ;AACpB,eAAS,eAAe,sBAAsB,IAAI,EAAG,eAAe;AAAA,QACnE,UAAU;AAAA,QACV,QAAQ;AAAA,MAAA,CACR;AACD,sBAAgB,QAAQ;AACxB,iBAAW,MAAM;AAChB,oBAAY,QAAQ;AAAA,MACrB,GAAG,GAAI;AAAA,IACR;AAOA,aAAS,iBAAiB,QAAiB;AAC1C,UAAI,QAAQ;AACX;AAAA,MACD;AAEA,WAAK,QAAQ;AAEb,8BAAwB,MAAO,YAAY;AAAA,IAC5C;AAKA,aAAS,eAAe;AACvB,UAAI,KAAK,SAAS,CAAC,YAAY,OAAO;AACrC,8BAAA;AAAA,MACD;AAAA,IACD;AAUA,aAAS,gBAAgB,IAAY,MAAc,OAAgB,MAAgB;AAElF,UAAI,mBAAmB,MAAM,KAAK,CAAC,EAAE,IAAI,QAAA,MAAc,OAAO,OAAO,GAAG;AACvE,cAAM,IAAI,MAAM,+BAA+B,EAAE,8DAA8D;AAAA,MAChH;AACA,UAAI,mBAAmB,MAAM,KAAK,CAAC,EAAE,MAAM,UAAA,MAAgB,SAAS,SAAS,GAAG;AAC/E,aAAK,iCAAiC,IAAI,gEAAgE;AAAA,MAC3G;AAGA,UAAI,UAAU,QAAW;AACxB,yBAAiB,IAAI,IAAI,KAAK;AAAA,MAC/B,WAAW,iBAAiB,IAAI,EAAE,GAAG;AACpC,gBAAQ,iBAAiB,IAAI,EAAE;AAAA,MAChC,OAAO;AAEN,gBAAQ,KAAK,IAAI,GAAG,GAAG,iBAAiB,OAAA,CAAQ,IAAI;AACpD,yBAAiB,IAAI,IAAI,KAAK;AAAA,MAC/B;AAGA,yBAAmB,QAAQ,CAAC,GAAG,mBAAmB,OAAO,EAAE,IAAI,MAAM,OAAO,KAAA,CAAM,EAChF,KAAK,CAAC,EAAE,OAAO,UAAU,EAAE,OAAO,aAAa;AAC/C,eAAO,SAAU;AAAA,MAClB,CAAC;AAGF,UAAI,mBAAmB,MAAM,WAAW,GAAG;AAC1C,wBAAgB,QAAQ;AAAA,MACzB;AAAA,IACD;AAOA,aAAS,kBAAkB,IAAY;AACtC,yBAAmB,QAAQ,mBAAmB,MAC5C,OAAO,CAAC,EAAE,IAAI,QAAA,MAAc,OAAO,OAAO;AAG5C,UAAI,gBAAgB,UAAU,IAAI;AACjC,wBAAgB,QAAQ,mBAAmB,MAAM,CAAC,GAAG,MAAM;AAAA,MAC5D;AAAA,IACD;;aAKQ,KAAA,sBADPC,YA8CW,UAAA;AAAA;QA5CV,OAAKL,eAAA,CAAC,gBAAc,EAAA,wBACcE,MAAA,UAAA,EAAA,CAAU,CAAA;AAAA,QAC5C,gBAAe;AAAA,QACf,mBAAkB;AAAA,QACjB,wBAAA,QAAA;AAAA,QACA,WAAA,QAAA;AAAA,QACD,qBAAA;AAAA,QACC,yBAAuBA,MAAA,CAAA,EAAC,qBAAA;AAAA,QACzB,MAAK;AAAA,QACJ,MAAA,QAAA;AAAA,QACA,iBAAa;AAAA,MAAA;yBA8Bd,MAGM;AAAA,UAHNI,mBAGM,OAAA;AAAA,YAHD,KAAI;AAAA,YAAoB,UAAQ;AAAA,UAAA;YACpCC,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,aAC2B,QAAA,0BAAnCF,YAAgD,4BAAA,EAAA,KAAA,EAAA,CAAA;;;;;QA/BjC,cAAA;gBAAgB;AAAA,UAC/B,IAAAG,QAAA,CAEM,EAHuC,kBAAW;AAAA,aAC5CN,MAAA,UAAA,kBAAZH,mBAEM,OAFN,YAEMI,gBADF,QAAA,IAAI,GAAA,CAAA;aAGA,eADRM,UAAA,GAAAV,mBAuBK,MAvBL,YAuBK;AAAA,gCApBJA,mBAmBKW,UAAA,MAAAC,WAnBiB,mBAAA,OAAkB,CAA7B,YAAO;oCAAlBZ,mBAmBK,MAAA;AAAA,kBAnBsC,KAAK,QAAQ;AAAA,gBAAA;kBACvDO,mBAiBI,KAAA;AAAA,oBAhBF,gBAAY,GAAK,QAAQ,OAAO,gBAAA,KAAe;AAAA,oBAChD,uBAAM,yBAAuB;AAAA,uDACqB,QAAQ,OAAO,gBAAA;AAAA,qDAAuD,mBAAA;AAAA,oBAAA;oBAIvH,MAAI,qBAAuB,QAAQ,EAAE;AAAA,oBACtC,UAAS;AAAA,oBACR,SAAKM,cAAA,CAAA,WAAU,8BAA8B,QAAQ,EAAE,GAAA,CAAA,SAAA,CAAA;AAAA,oBACvD,WAAOC,SAAA,CAAA,WAAQ,8BAA8B,QAAQ,EAAE,GAAA,CAAA,OAAA,CAAA;AAAA,kBAAA;oBAC7C,mBAAA,SAAXJ,UAAA,GAAAV,mBAEM,OAFN,YAEM;AAAA,sBADW,QAAQ,qBAAxBM,YAAuDS,aAAA;AAAA;wBAAxB,QAAQ,QAAQ;AAAA,sBAAA;;oBAEhDR,mBAEO,QAFP,YAEOH,gBADH,QAAQ,IAAI,GAAA,CAAA;AAAA,kBAAA;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
- import '../assets/NcAppSettingsSection-DIw8GLHR.css';
1
+ import '../assets/NcAppSettingsSection.css';
2
2
  import { defineComponent, useSlots, inject, computed, watch, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, toDisplayString, renderSlot } from "vue";
3
- import { l as logger } from "./logger-D3RVzcfQ.mjs";
4
- import { u as useAppSettingsDialog, A as APP_SETTINGS_LEGACY_DESIGN_KEY } from "./useAppSettingsDialog-C73Wx6iQ.mjs";
5
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
3
+ import { l as logger } from "./logger.mjs";
4
+ import { u as useAppSettingsDialog, A as APP_SETTINGS_LEGACY_DESIGN_KEY } from "./useAppSettingsDialog.mjs";
5
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
6
6
  const _hoisted_1 = ["id", "aria-labelledby"];
7
7
  const _hoisted_2 = ["id"];
8
8
  const _hoisted_3 = { class: "app-settings-section__description" };
@@ -58,4 +58,4 @@ const NcAppSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId
58
58
  export {
59
59
  NcAppSettingsSection as N
60
60
  };
61
- //# sourceMappingURL=NcAppSettingsSection-BosSmisT.mjs.map
61
+ //# sourceMappingURL=NcAppSettingsSection.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppSettingsSection.mjs","sources":["../../src/components/NcAppSettingsSection/NcAppSettingsSection.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { logger } from '../../utils/logger.ts'\nimport { APP_SETTINGS_LEGACY_DESIGN_KEY, useAppSettingsDialog } from '../NcAppSettingsDialog/useAppSettingsDialog.ts'\n\nconst props = defineProps<{\n\t/** Name of the section */\n\tname: string\n\t/** Optional description of the section */\n\tdescription?: string\n\t/** The id of the section */\n\tid: string\n\t/** The id of the section */\n\torder?: number\n}>()\n\nconst slots = defineSlots<{\n\t/** Section content */\n\tdefault?: Slot\n\t/** Optional icon for the section in the navigation */\n\ticon?: Slot\n}>()\n\nconst { registerSection, unregisterSection } = useAppSettingsDialog()\nconst legacy = inject(APP_SETTINGS_LEGACY_DESIGN_KEY)!\n\nconst htmlId = computed(() => 'settings-section_' + props.id)\n\n// Validate id prop - only alphanumeric, dash and underscore\nwatch(() => props.id, () => {\n\tif (!/^[a-z0-9\\-_]+$/.test(props.id)) {\n\t\tlogger.warn(`Invalid id prop: ${props.id}. Only alphanumeric, dash and underscore are allowed.`)\n\t}\n}, { immediate: true })\n\n// Reactive changes for section navigation\nwatch([() => props.id, () => props.name, () => props.order], (\n\t[newId, newName, newOrder],\n\t[oldId, ,],\n) => {\n\tunregisterSection(oldId)\n\tregisterSection(newId, newName, newOrder, slots?.icon?.())\n})\n\nonMounted(() => {\n\tregisterSection(props.id, props.name, props.order, slots?.icon?.())\n})\n\nonBeforeUnmount(() => {\n\tunregisterSection(props.id)\n})\n</script>\n\n<template>\n\t<section\n\t\t:id=\"htmlId\"\n\t\t:aria-labelledby=\"`${htmlId}--label`\"\n\t\tclass=\"app-settings-section\"\n\t\t:class=\"{ 'app-settings-section__legacy': legacy }\">\n\t\t<h3 :id=\"`${htmlId}--label`\" class=\"app-settings-section__name\">\n\t\t\t{{ name }}\n\t\t</h3>\n\t\t<div class=\"app-settings-section__description\">\n\t\t\t{{ description }}\n\t\t</div>\n\t\t<div class=\"app-settings-section__content\">\n\t\t\t<slot />\n\t\t</div>\n\t</section>\n</template>\n\n<style lang=\"scss\" scoped>\n.app-settings-section {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\t--app-settings-section-text-offset: var(--form-element-label-offset);\n\t--app-settings-section-content-gap: calc(6 * var(--default-grid-baseline));\n\tmargin-block-end: calc(8 * var(--default-grid-baseline));\n\n\t&__name {\n\t\tmargin: 0;\n\t\tpadding-inline: var(--app-settings-section-text-offset);\n\t\tpadding-block: 0;\n\t\tfont-size: 20px;\n\t\tfont-weight: var(--font-weight-heading, bold);\n\t}\n\n\t&__description {\n\t\tpadding-inline: var(--app-settings-section-text-offset);\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__content {\n\t\tmargin-block-start: calc(2 * var(--default-grid-baseline));\n\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: stretch;\n\t\tgap: var(--app-settings-section-content-gap);\n\t}\n}\n\n.app-settings-section__legacy {\n\t--app-settings-section-text-offset: 0;\n\t--app-settings-section-content-gap: 0;\n}\n</style>\n"],"names":["_useSlots","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_toDisplayString","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;AAYA,UAAM,QAAQ;AAWd,UAAM,QAAQA,SAAA;AAOd,UAAM,EAAE,iBAAiB,kBAAA,IAAsB,qBAAA;AAC/C,UAAM,SAAS,OAAO,8BAA8B;AAEpD,UAAM,SAAS,SAAS,MAAM,sBAAsB,MAAM,EAAE;AAG5D,UAAM,MAAM,MAAM,IAAI,MAAM;AAC3B,UAAI,CAAC,iBAAiB,KAAK,MAAM,EAAE,GAAG;AACrC,eAAO,KAAK,oBAAoB,MAAM,EAAE,uDAAuD;AAAA,MAChG;AAAA,IACD,GAAG,EAAE,WAAW,MAAM;AAGtB,UAAM,CAAC,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG,CAC5D,CAAC,OAAO,SAAS,QAAQ,GACzB,CAAC,cACG;AACJ,wBAAkB,KAAK;AACvB,sBAAgB,OAAO,SAAS,UAAU,OAAO,QAAQ;AAAA,IAC1D,CAAC;AAED,cAAU,MAAM;AACf,sBAAgB,MAAM,IAAI,MAAM,MAAM,MAAM,OAAO,OAAO,QAAQ;AAAA,IACnE,CAAC;AAED,oBAAgB,MAAM;AACrB,wBAAkB,MAAM,EAAE;AAAA,IAC3B,CAAC;;0BAIAC,mBAcU,WAAA;AAAA,QAbR,IAAI,OAAA;AAAA,QACJ,sBAAoB,OAAA,KAAM;AAAA,QAC3B,OAAKC,eAAA,CAAC,wBAAsB,EAAA,gCACcC,MAAA,MAAA,GAAM,CAAA;AAAA,MAAA;QAChDC,mBAEK,MAAA;AAAA,UAFA,OAAO,OAAA,KAAM;AAAA,UAAW,OAAM;AAAA,QAAA,mBAC/B,QAAA,IAAI,GAAA,GAAA,UAAA;AAAA,QAERA,mBAEM,OAFN,YAEMC,gBADF,QAAA,WAAW,GAAA,CAAA;AAAA,QAEfD,mBAEM,OAFN,YAEM;AAAA,UADLE,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,QAAA;;;;;;"}
@@ -1,9 +1,9 @@
1
- import '../assets/NcAppSettingsShortcutsSection-BHxkQTg2.css';
1
+ import '../assets/NcAppSettingsShortcutsSection.css';
2
2
  import { defineComponent, openBlock, createBlock, unref, withCtx, createElementVNode, normalizeClass, renderSlot } from "vue";
3
- import { N as NcAppSettingsSection } from "./NcAppSettingsSection-BosSmisT.mjs";
4
- import { r as register, p as t31, a as t } from "./_l10n-wdIzZwir.mjs";
5
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
6
- register(t31);
3
+ import { N as NcAppSettingsSection } from "./NcAppSettingsSection.mjs";
4
+ import { r as register, q as t32, a as t } from "./_l10n.mjs";
5
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
6
+ register(t32);
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "NcAppSettingsShortcutsSection",
9
9
  setup(__props) {
@@ -24,7 +24,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
24
24
  };
25
25
  }
26
26
  });
27
- const appSettingsSectionShortcuts = "_appSettingsSectionShortcuts_Epzxx";
27
+ const appSettingsSectionShortcuts = "_appSettingsSectionShortcuts_Flb3s";
28
28
  const style0 = {
29
29
  appSettingsSectionShortcuts
30
30
  };
@@ -35,4 +35,4 @@ const NcAppSettingsShortcutsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [["
35
35
  export {
36
36
  NcAppSettingsShortcutsSection as N
37
37
  };
38
- //# sourceMappingURL=NcAppSettingsShortcutsSection-DLwubKV9.mjs.map
38
+ //# sourceMappingURL=NcAppSettingsShortcutsSection.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcAppSettingsShortcutsSection.mjs","sources":["../../src/components/NcAppSettingsShortcutsSection/NcAppSettingsShortcutsSection.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 type { Slot } from 'vue'\n\nimport NcAppSettingsSection from '../NcAppSettingsSection/NcAppSettingsSection.vue'\nimport { t } from '../../l10n.ts'\n\ndefineSlots<{\n\t/**\n\t * Shortcuts described via <NcHotkeyList> components\n\t */\n\tdefault?: Slot\n}>()\n</script>\n\n<template>\n\t<NcAppSettingsSection id=\"keyboard-shortcuts\" :name=\"t('Keyboard shortcuts')\">\n\t\t<div :class=\"$style.appSettingsSectionShortcuts\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcAppSettingsSection>\n</template>\n\n<style module>\n.appSettingsSectionShortcuts {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(4 * var(--default-grid-baseline));\n}\n</style>\n\n<docs>\nA special `NcAppSettingsSection` for listing keyboard shortcuts using `<NcHotkeyList>` and `<NcHotkey>` components with predefined heading and gap between hotkey lists.\n\n```vue\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\topen: false,\n\t\t}\n\t},\n}\n</script>\n\n<template>\n\t<div>\n\t\t<NcButton @click=\"open = true\">App Settings</NcButton>\n\t\t<NcAppSettingsDialog v-model:open=\"open\" name=\"Application settings\" show-navigation>\n\t\t\t<NcAppSettingsShortcutsSection>\n\t\t\t\t<NcHotkeyList label=\"Actions\">\n\t\t\t\t\t<NcHotkey label=\"File actions\" hotkey=\"A\" />\n\t\t\t\t\t<NcHotkey label=\"Rename\" hotkey=\"F2\" />\n\t\t\t\t\t<NcHotkey label=\"Delete\" hotkey=\"Delete\" />\n\t\t\t\t\t<NcHotkey label=\"Add or remove favorite\" hotkey=\"S\" />\n\t\t\t\t\t<NcHotkey label=\"Manage tags\" hotkey=\"T\" />\n\t\t\t\t</NcHotkeyList>\n\n\t\t\t\t<NcHotkeyList label=\"Selection\">\n\t\t\t\t\t<NcHotkey label=\"Select all files\" hotkey=\"Control A\" />\n\t\t\t\t\t<NcHotkey label=\"Deselect all\" hotkey=\"Escape\" />\n\t\t\t\t\t<NcHotkey label=\"Select or deselect\" hotkey=\"Control Space\" />\n\t\t\t\t\t<NcHotkey label=\"Select a range\" hotkey=\"Control Shift Space\" />\n\t\t\t\t</NcHotkeyList>\n\n\t\t\t\t<NcHotkeyList label=\"Navigation\">\n\t\t\t\t\t<NcHotkey label=\"Go to parent folder\" hotkey=\"Alt ArrowUp\" />\n\t\t\t\t\t<NcHotkey label=\"Go to file above\" hotkey=\"ArrowUp\" />\n\t\t\t\t\t<NcHotkey label=\"Go to file below\" hotkey=\"ArrowDown\" />\n\t\t\t\t\t<NcHotkey label=\"Go left in grid\" hotkey=\"ArrowLeft\" />\n\t\t\t\t\t<NcHotkey label=\"Go right in grid\" hotkey=\"ArrowRight\" />\n\t\t\t\t</NcHotkeyList>\n\n\t\t\t\t<NcHotkeyList label=\"View\">\n\t\t\t\t\t<NcHotkey label=\"Toggle grid view\" hotkey=\"V\" />\n\t\t\t\t\t<NcHotkey label=\"Open file sidebar\" hotkey=\"D\" />\n\t\t\t\t\t<NcHotkey label=\"Show those shortcuts\" hotkey=\"?\" />\n\t\t\t\t</NcHotkeyList>\n\t\t\t</NcAppSettingsShortcutsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n```\n</docs>\n"],"names":["_createBlock","_unref","_createElementVNode","_normalizeClass","$style","_renderSlot"],"mappings":";;;;;;;;;0BAoBCA,YAIuB,sBAAA;AAAA,QAJD,IAAG;AAAA,QAAsB,MAAMC,MAAA,CAAA,EAAC,oBAAA;AAAA,MAAA;yBACrD,MAEM;AAAA,UAFNC,mBAEM,OAAA;AAAA,YAFA,OAAKC,eAAEC,KAAAA,OAAO,2BAA2B;AAAA,UAAA;YAC9CC,WAAQ,KAAA,QAAA,SAAA;AAAA,UAAA;;;;;;;;;;;;;;;"}
@@ -1,25 +1,25 @@
1
- import '../assets/NcAppSidebar-oJQ8kUb0.css';
1
+ import '../assets/NcAppSidebar.css';
2
2
  import { vOnClickOutside } from "@vueuse/components";
3
3
  import { createFocusTrap } from "focus-trap";
4
- import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useModel, normalizeClass, unref, createVNode, withCtx, mergeModels, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from "vue";
5
- import { I as IconArrowRight } from "./ArrowRight-B1ncAhus.mjs";
6
- import { I as IconClose } from "./Close-CuhcJnX2.mjs";
7
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
4
+ import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useModel, ref, normalizeClass, unref, createVNode, withCtx, mergeModels, resolveComponent, withKeys, withModifiers, normalizeStyle, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, vShow, createTextVNode, warn, provide } from "vue";
5
+ import { I as IconArrowRight } from "./ArrowRight.mjs";
6
+ import { I as IconClose } from "./Close.mjs";
7
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper.mjs";
8
8
  import { getCanonicalLocale } from "@nextcloud/l10n";
9
- import { _ as _sfc_main$6 } from "./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs";
10
- import { i as isLegacy34 } from "./legacy-BoqDmOCa.mjs";
9
+ import { _ as _sfc_main$6 } from "./NcVNodes.vue_vue_type_script_lang.mjs";
10
+ import { i as isLegacy34 } from "./legacy.mjs";
11
11
  import { useIsSmallMobile } from "../composables/useIsMobile/index.mjs";
12
12
  import directive from "../directives/Focus/index.mjs";
13
- import { r as register, V as t15, a as t } from "./_l10n-wdIzZwir.mjs";
14
- import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
15
- import { g as getTrapStack } from "./focusTrap-HJQ4pqHV.mjs";
16
- import { i as isSlotPopulated, N as NcActions } from "./NcActions-C-wDqSrv.mjs";
17
- import { l as logger } from "./logger-D3RVzcfQ.mjs";
18
- import { _ as _sfc_main$7 } from "./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs";
19
- import { N as NcButton } from "./NcButton-jvoYS2my.mjs";
20
- import { C as CONTENT_SELECTOR_KEY } from "./constants-Ciwvl5xb.mjs";
21
- import { N as NcEmptyContent } from "./NcEmptyContent-CGAPqk4S.mjs";
22
- import { N as NcLoadingIcon } from "./NcLoadingIcon-BOVpFVQz.mjs";
13
+ import { r as register, W as t16, a as t } from "./_l10n.mjs";
14
+ import { c as createElementId } from "./createElementId.mjs";
15
+ import { g as getTrapStack } from "./focusTrap.mjs";
16
+ import { i as isSlotPopulated, N as NcActions } from "./NcActions.mjs";
17
+ import { l as logger } from "./logger.mjs";
18
+ import { _ as _sfc_main$7 } from "./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang.mjs";
19
+ import { N as NcButton } from "./NcButton.mjs";
20
+ import { C as CONTENT_SELECTOR_KEY } from "./constants2.mjs";
21
+ import { N as NcEmptyContent } from "./NcEmptyContent.mjs";
22
+ import { N as NcLoadingIcon } from "./NcLoadingIcon.mjs";
23
23
  const _sfc_main$5 = {
24
24
  name: "DockRightIcon",
25
25
  emits: ["click"],
@@ -153,7 +153,8 @@ const _hoisted_1$2 = ["aria-selected", "tabindex"];
153
153
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
154
154
  __name: "NcAppSidebarTabsButton",
155
155
  props: /* @__PURE__ */ mergeModels({
156
- tab: {}
156
+ tab: {},
157
+ animatedHighlight: { type: Boolean }
157
158
  }, {
158
159
  "selected": { type: Boolean, ...{ required: true } },
159
160
  "selectedModifiers": {}
@@ -161,31 +162,59 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
161
162
  emits: ["update:selected"],
162
163
  setup(__props) {
163
164
  const selected = useModel(__props, "selected");
165
+ const popping = ref(false);
166
+ function onClick() {
167
+ selected.value = true;
168
+ popping.value = false;
169
+ requestAnimationFrame(() => {
170
+ popping.value = true;
171
+ });
172
+ }
164
173
  return (_ctx, _cache) => {
165
174
  return openBlock(), createElementBlock("button", {
166
175
  class: normalizeClass(["button-vue", [_ctx.$style.sidebarTabsButton, {
167
176
  [_ctx.$style.sidebarTabsButton_selected]: selected.value,
168
- [_ctx.$style.sidebarTabsButton_legacy]: unref(isLegacy34)
177
+ [_ctx.$style.sidebarTabsButton_legacy]: unref(isLegacy34),
178
+ [_ctx.$style.sidebarTabsButton_animatedHighlight]: __props.animatedHighlight
169
179
  }]]),
170
180
  role: "tab",
171
181
  "aria-selected": selected.value,
172
182
  tabindex: selected.value ? 0 : -1,
173
- onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)
183
+ onClick
174
184
  }, [
175
185
  createElementVNode("span", {
176
- class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)
186
+ class: normalizeClass([_ctx.$style.sidebarTabsButton__icon, { [_ctx.$style.sidebarTabsButton__icon_pop]: popping.value }]),
187
+ onAnimationend: _cache[0] || (_cache[0] = ($event) => popping.value = false)
177
188
  }, [
178
- createVNode(_sfc_main$6, {
179
- vnodes: __props.tab.renderIcon()
180
- }, {
181
- default: withCtx(() => [
182
- createElementVNode("span", {
183
- class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])
184
- }, null, 2)
185
- ]),
186
- _: 1
187
- }, 8, ["vnodes"])
188
- ], 2),
189
+ createElementVNode("span", {
190
+ class: normalizeClass([_ctx.$style.sidebarTabsButton__iconLayer, { [_ctx.$style.sidebarTabsButton__iconLayer_hidden]: selected.value }])
191
+ }, [
192
+ createVNode(_sfc_main$6, {
193
+ vnodes: __props.tab.renderIcon(false)
194
+ }, {
195
+ default: withCtx(() => [
196
+ createElementVNode("span", {
197
+ class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])
198
+ }, null, 2)
199
+ ]),
200
+ _: 1
201
+ }, 8, ["vnodes"])
202
+ ], 2),
203
+ createElementVNode("span", {
204
+ class: normalizeClass([_ctx.$style.sidebarTabsButton__iconLayer, { [_ctx.$style.sidebarTabsButton__iconLayer_hidden]: !selected.value }])
205
+ }, [
206
+ createVNode(_sfc_main$6, {
207
+ vnodes: __props.tab.renderIcon(true)
208
+ }, {
209
+ default: withCtx(() => [
210
+ createElementVNode("span", {
211
+ class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])
212
+ }, null, 2)
213
+ ]),
214
+ _: 1
215
+ }, 8, ["vnodes"])
216
+ ], 2)
217
+ ], 34),
189
218
  createElementVNode("span", {
190
219
  class: normalizeClass(_ctx.$style.sidebarTabsButton__name)
191
220
  }, toDisplayString(__props.tab.name), 3)
@@ -193,19 +222,28 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
193
222
  };
194
223
  }
195
224
  });
196
- const sidebarTabsButton = "_sidebarTabsButton_OCROY";
197
- const sidebarTabsButton_legacy = "_sidebarTabsButton_legacy_e9-y9";
198
- const sidebarTabsButton_selected = "_sidebarTabsButton_selected_S48M1";
199
- const sidebarTabsButton__name = "_sidebarTabsButton__name_GZRY8";
200
- const sidebarTabsButton__icon = "_sidebarTabsButton__icon_ZDmkU";
201
- const sidebarTabsButton__legacyIcon = "_sidebarTabsButton__legacyIcon_y6cLW";
225
+ const sidebarTabsButton = "_sidebarTabsButton_q3kBA";
226
+ const sidebarTabsButton_legacy = "_sidebarTabsButton_legacy_KQ4d1";
227
+ const sidebarTabsButton_selected = "_sidebarTabsButton_selected_Pjayf";
228
+ const sidebarTabsButton_animatedHighlight = "_sidebarTabsButton_animatedHighlight_uvp-0";
229
+ const sidebarTabsButton__name = "_sidebarTabsButton__name_rlQsL";
230
+ const sidebarTabsButton__icon = "_sidebarTabsButton__icon_QzZg4";
231
+ const sidebarTabsButton__iconLayer = "_sidebarTabsButton__iconLayer_ZkZan";
232
+ const sidebarTabsButton__iconLayer_hidden = "_sidebarTabsButton__iconLayer_hidden_c7Cpv";
233
+ const sidebarTabsButton__icon_pop = "_sidebarTabsButton__icon_pop_IA0By";
234
+ const sidebarTabsButton__legacyIcon = "_sidebarTabsButton__legacyIcon_QhcNW";
202
235
  const style0 = {
203
- "material-design-icon": "_material-design-icon_v9SPG",
236
+ "material-design-icon": "_material-design-icon_GQ9O0",
204
237
  sidebarTabsButton,
205
238
  sidebarTabsButton_legacy,
206
239
  sidebarTabsButton_selected,
240
+ sidebarTabsButton_animatedHighlight,
207
241
  sidebarTabsButton__name,
208
242
  sidebarTabsButton__icon,
243
+ sidebarTabsButton__iconLayer,
244
+ sidebarTabsButton__iconLayer_hidden,
245
+ sidebarTabsButton__icon_pop,
246
+ "sidebar-tab-icon-pop": "_sidebar-tab-icon-pop_mqaHb",
209
247
  sidebarTabsButton__legacyIcon
210
248
  };
211
249
  const cssModules = {
@@ -254,7 +292,20 @@ const _sfc_main$1 = {
254
292
  * Local active (open) tab's ID. It allows to use component without v-model:active
255
293
  */
256
294
  activeTab: props.active,
257
- isLegacy34
295
+ isLegacy34,
296
+ /** Whether the sliding highlight runs (JS mounted, non-legacy design) */
297
+ highlightEnabled: false,
298
+ /** Whether the highlight is currently shown */
299
+ highlightVisible: false,
300
+ /** Whether position changes should transition (slide) or snap */
301
+ highlightAnimated: false,
302
+ /** Whether the highlight sits on the active tab (turns transparent) */
303
+ highlightOverActive: false,
304
+ /** Highlight geometry inside the tablist, in pixels */
305
+ highlightLeft: 0,
306
+ highlightTop: 0,
307
+ highlightWidth: 0,
308
+ highlightHeight: 0
258
309
  };
259
310
  },
260
311
  computed: {
@@ -271,6 +322,13 @@ const _sfc_main$1 = {
271
322
  },
272
323
  currentTabIndex() {
273
324
  return this.tabs.findIndex((tab) => tab.id === this.activeTab);
325
+ },
326
+ highlightStyle() {
327
+ return {
328
+ transform: `translate(${this.highlightLeft}px, ${this.highlightTop}px)`,
329
+ width: `${this.highlightWidth}px`,
330
+ height: `${this.highlightHeight}px`
331
+ };
274
332
  }
275
333
  },
276
334
  watch: {
@@ -285,6 +343,10 @@ const _sfc_main$1 = {
285
343
  }
286
344
  }
287
345
  },
346
+ mounted() {
347
+ this.highlightedButton = null;
348
+ this.highlightEnabled = !this.isLegacy34;
349
+ },
288
350
  methods: {
289
351
  /**
290
352
  * Set the current active tab
@@ -378,6 +440,62 @@ const _sfc_main$1 = {
378
440
  if (this.activeTab === id) {
379
441
  this.updateActive();
380
442
  }
443
+ },
444
+ /**
445
+ * Move the sliding highlight onto a tab button. It slides there if
446
+ * already visible, otherwise it snaps into place so it does not slide in
447
+ * from a previously hovered tab. Over the active tab it turns transparent
448
+ * so the active tab keeps its own static background.
449
+ *
450
+ * @param {HTMLElement} button the tab button element to cover
451
+ */
452
+ showHighlightOn(button) {
453
+ const buttonRect = button.getBoundingClientRect();
454
+ const navRect = this.$refs.nav.getBoundingClientRect();
455
+ const wasVisible = this.highlightVisible;
456
+ this.highlightAnimated = wasVisible;
457
+ this.highlightOverActive = button.getAttribute("aria-selected") === "true";
458
+ this.highlightLeft = buttonRect.left - navRect.left;
459
+ this.highlightTop = buttonRect.top - navRect.top;
460
+ this.highlightWidth = buttonRect.width;
461
+ this.highlightHeight = buttonRect.height;
462
+ if (!wasVisible) {
463
+ this.highlightVisible = true;
464
+ this.$nextTick(() => requestAnimationFrame(() => {
465
+ this.highlightAnimated = true;
466
+ }));
467
+ }
468
+ },
469
+ /** Hide the sliding highlight */
470
+ hideHighlight() {
471
+ this.highlightVisible = false;
472
+ this.highlightedButton = null;
473
+ },
474
+ /**
475
+ * Move the highlight to the tab button under the pointer or focus
476
+ *
477
+ * @param {Event} event the pointer or focus event
478
+ */
479
+ handleHighlight(event) {
480
+ if (!this.highlightEnabled) {
481
+ return;
482
+ }
483
+ const button = event.target?.closest?.(".app-sidebar-tabs__tab");
484
+ if (!button || button === this.highlightedButton || !this.$refs.nav.contains(button)) {
485
+ return;
486
+ }
487
+ this.highlightedButton = button;
488
+ this.showHighlightOn(button);
489
+ },
490
+ /**
491
+ * Hide the highlight once focus leaves the tablist entirely
492
+ *
493
+ * @param {FocusEvent} event the focusout event
494
+ */
495
+ onHighlightFocusOut(event) {
496
+ if (this.highlightEnabled && !this.$refs.nav.contains(event.relatedTarget)) {
497
+ this.hideHighlight();
498
+ }
381
499
  }
382
500
  }
383
501
  };
@@ -387,6 +505,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
387
505
  return openBlock(), createElementBlock("div", _hoisted_1$1, [
388
506
  $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock("div", {
389
507
  key: 0,
508
+ ref: "nav",
390
509
  role: "tablist",
391
510
  class: normalizeClass(["app-sidebar-tabs__nav", { "app-sidebar-tabs__nav--legacy": $data.isLegacy34 }]),
392
511
  onKeydown: [
@@ -397,8 +516,22 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
397
516
  _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), ["exact", "prevent", "stop"]), ["end"])),
398
517
  _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), ["exact", "prevent", "stop"]), ["page-up"])),
399
518
  _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), ["exact", "prevent", "stop"]), ["page-down"]))
400
- ]
519
+ ],
520
+ onPointerover: _cache[7] || (_cache[7] = (...args) => $options.handleHighlight && $options.handleHighlight(...args)),
521
+ onPointerleave: _cache[8] || (_cache[8] = (...args) => $options.hideHighlight && $options.hideHighlight(...args)),
522
+ onFocusin: _cache[9] || (_cache[9] = (...args) => $options.handleHighlight && $options.handleHighlight(...args)),
523
+ onFocusout: _cache[10] || (_cache[10] = (...args) => $options.onHighlightFocusOut && $options.onHighlightFocusOut(...args))
401
524
  }, [
525
+ $data.highlightEnabled ? (openBlock(), createElementBlock("div", {
526
+ key: 0,
527
+ class: normalizeClass(["app-sidebar-tabs__highlight", {
528
+ "app-sidebar-tabs__highlight--visible": $data.highlightVisible,
529
+ "app-sidebar-tabs__highlight--animated": $data.highlightAnimated,
530
+ "app-sidebar-tabs__highlight--over-active": $data.highlightOverActive
531
+ }]),
532
+ style: normalizeStyle($options.highlightStyle),
533
+ "aria-hidden": "true"
534
+ }, null, 6)) : createCommentVNode("", true),
402
535
  (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {
403
536
  return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {
404
537
  id: `tab-button-${tab.id}`,
@@ -406,9 +539,10 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
406
539
  class: "app-sidebar-tabs__tab",
407
540
  "aria-controls": `tab-${tab.id}`,
408
541
  selected: $data.activeTab === tab.id,
542
+ animatedHighlight: $data.highlightEnabled,
409
543
  tab,
410
544
  "onUpdate:selected": ($event) => $options.setActive(tab.id)
411
- }, null, 8, ["id", "aria-controls", "selected", "tab", "onUpdate:selected"]);
545
+ }, null, 8, ["id", "aria-controls", "selected", "animatedHighlight", "tab", "onUpdate:selected"]);
412
546
  }), 128))
413
547
  ], 34)) : createCommentVNode("", true),
414
548
  createElementVNode("div", {
@@ -418,8 +552,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
418
552
  ], 2)
419
553
  ]);
420
554
  }
421
- const NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-e74d1502"]]);
422
- register(t15);
555
+ const NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-74190d2a"]]);
556
+ register(t16);
423
557
  const _sfc_main = {
424
558
  name: "NcAppSidebar",
425
559
  components: {
@@ -1044,8 +1178,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
1044
1178
  _: 3
1045
1179
  }, 8, ["onAfterEnter", "onAfterLeave"]);
1046
1180
  }
1047
- const NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e8979b7f"]]);
1181
+ const NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-c2c6820b"]]);
1048
1182
  export {
1049
1183
  NcAppSidebar as N
1050
1184
  };
1051
- //# sourceMappingURL=NcAppSidebar-C8YzAzrZ.mjs.map
1185
+ //# sourceMappingURL=NcAppSidebar.mjs.map