@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.
- package/CHANGELOG.md +88 -65
- package/dist/assets/{NcActionButton-DLer-aUY.css → NcActionButton.css} +1 -0
- package/dist/assets/{NcActionCheckbox-wD8m_a8-.css → NcActionCheckbox.css} +1 -0
- package/dist/assets/{NcActionInput-t9WvlgV0.css → NcActionInput.css} +70 -66
- package/dist/assets/{NcActionLink-b4Ph5q10.css → NcActionLink.css} +1 -0
- package/dist/assets/{NcActionRadio-D2rLM1ci.css → NcActionRadio.css} +1 -0
- package/dist/assets/{NcActionRouter-BWXfCfxM.css → NcActionRouter.css} +1 -0
- package/dist/assets/{NcActionText-Dzegj6AY.css → NcActionText.css} +1 -0
- package/dist/assets/{NcActionTextEditable-BlZeHZ7J.css → NcActionTextEditable.css} +67 -65
- package/dist/assets/{NcActions-y7ehwPSp.css → NcActions.css} +12 -12
- package/dist/assets/{NcAppNavigation-OHw55TTZ.css → NcAppNavigation.css} +17 -17
- package/dist/assets/{NcAppNavigationItem-BZ1xj6Xi.css → NcAppNavigationItem.css} +58 -48
- package/dist/assets/NcAppNavigationList.css +52 -0
- package/dist/assets/{NcAppNavigationNewItem-MaYQVcKF.css → NcAppNavigationNewItem.css} +13 -3
- package/dist/assets/{NcAppNavigationSettings-mWFhcXm0.css → NcAppNavigationSettings.css} +6 -6
- package/dist/assets/{NcAppSettingsDialog-Dh_scIK4.css → NcAppSettingsDialog.css} +3 -3
- package/dist/assets/{NcAppSettingsShortcutsSection-BHxkQTg2.css → NcAppSettingsShortcutsSection.css} +1 -1
- package/dist/assets/{NcAppSidebar-oJQ8kUb0.css → NcAppSidebar.css} +132 -78
- package/dist/assets/{NcAppSidebarTab-Xd3HTDbw.css → NcAppSidebarTab.css} +4 -4
- package/dist/assets/{NcAssistantButton-CT25wqIs.css → NcAssistantButton.css} +9 -9
- package/dist/assets/{NcAssistantContent-FV00e96S.css → NcAssistantContent.css} +3 -3
- package/dist/assets/{NcAssistantIcon-BMLpMaMJ.css → NcAssistantIcon.css} +4 -4
- package/dist/assets/{NcAvatar-Bs7qEhkA.css → NcAvatar.css} +39 -24
- package/dist/assets/{NcBlurHash-RgrahjEp.css → NcBlurHash.css} +2 -2
- package/dist/assets/{NcButton-DOrlC_y5.css → NcButton.css} +52 -50
- package/dist/assets/{NcCheckboxRadioSwitch-BlQSZVW0.css → NcCheckboxRadioSwitch.css} +36 -36
- package/dist/assets/{NcDateTimePicker-BQ_y9Ihj.css → NcDateTimePicker.css} +234 -234
- package/dist/assets/NcDateTimePickerNative.css +38 -0
- package/dist/assets/{NcEllipsisedOption-CPWbbgBy.css → NcEllipsisedOption.css} +10 -5
- package/dist/assets/{NcFilePicker-BdjtiV3h.css → NcFilePicker.css} +1 -1
- package/dist/assets/{NcFormBox-TRgICDO3.css → NcFormBox.css} +11 -11
- package/dist/assets/{NcFormBoxButton-ClkxmO-H.css → NcFormBoxButton.css} +2 -2
- package/dist/assets/{NcFormBoxItem-CABDVZLe.css → NcFormBoxItem.css} +19 -15
- package/dist/assets/{NcFormBoxSwitch-NCjook_Z.css → NcFormBoxSwitch.css} +2 -2
- package/dist/assets/{NcFormGroup-eh8-PBGB.css → NcFormGroup.css} +7 -7
- package/dist/assets/{NcHeaderMenu-Hy0UKyUu.css → NcHeaderMenu.css} +22 -24
- package/dist/assets/{NcHotkey-Dm-26TVC.css → NcHotkey.css} +8 -8
- package/dist/assets/{NcHotkeyList-BigfRqyr.css → NcHotkeyList.css} +2 -2
- package/dist/assets/{NcIconToggleSwitch-zUXkaJHv.css → NcIconToggleSwitch.css} +4 -4
- package/dist/assets/{NcInputField-DpyFJ1xw.css → NcInputField.css} +43 -43
- package/dist/assets/{NcKbd-DcC56WbC.css → NcKbd.css} +3 -3
- package/dist/assets/NcPopover.css +108 -0
- package/dist/assets/NcProfileHoverCard.css +340 -0
- package/dist/assets/{NcProgressBar-B6wveIA1.css → NcProgressBar.css} +14 -14
- package/dist/assets/{NcRadioGroup-CtXZ4Y8D.css → NcRadioGroup.css} +2 -2
- package/dist/assets/{NcRadioGroupButton-BuB-aWeJ.css → NcRadioGroupButton.css} +19 -14
- package/dist/assets/NcReferenceWidget.css +150 -0
- package/dist/assets/{NcRichContenteditable-BCUBhRqg.css → NcRichContenteditable.css} +17 -17
- package/dist/assets/NcSelect.css +397 -0
- package/dist/assets/NcSelectUsers.css +12 -0
- package/dist/assets/{autolink-XS-VDSVB.css → autolink.css} +3 -3
- package/dist/assets/{referencePickerModal-BNPfxyni.css → referencePickerModal.css} +0 -149
- package/dist/chunks/{ArrowRight-B1ncAhus.mjs → ArrowRight.mjs} +2 -2
- package/dist/chunks/ArrowRight.mjs.map +1 -0
- package/dist/chunks/{ChevronDown-C6gc637b.mjs → ChevronDown.mjs} +2 -2
- package/dist/chunks/ChevronDown.mjs.map +1 -0
- package/dist/chunks/{ChevronUp-ChH8oB7p.mjs → ChevronUp.mjs} +2 -2
- package/dist/chunks/ChevronUp.mjs.map +1 -0
- package/dist/chunks/{Close-CuhcJnX2.mjs → Close.mjs} +2 -2
- package/dist/chunks/Close.mjs.map +1 -0
- package/dist/chunks/{NcActionButton-BO5T5ePT.mjs → NcActionButton.mjs} +7 -7
- package/dist/chunks/NcActionButton.mjs.map +1 -0
- package/dist/chunks/{NcActionButtonGroup-Dd03Oluy.mjs → NcActionButtonGroup.mjs} +6 -6
- package/dist/chunks/NcActionButtonGroup.mjs.map +1 -0
- package/dist/chunks/{NcActionCaption-f7L9gBlT.mjs → NcActionCaption.mjs} +4 -4
- package/dist/chunks/NcActionCaption.mjs.map +1 -0
- package/dist/chunks/{NcActionCheckbox-DBqiK-AZ.mjs → NcActionCheckbox.mjs} +8 -8
- package/dist/chunks/NcActionCheckbox.mjs.map +1 -0
- package/dist/chunks/{NcActionInput-Dr8Yrafu.mjs → NcActionInput.mjs} +14 -13
- package/dist/chunks/NcActionInput.mjs.map +1 -0
- package/dist/chunks/{NcActionLink-BFiaYt9A.mjs → NcActionLink.mjs} +5 -5
- package/dist/chunks/NcActionLink.mjs.map +1 -0
- package/dist/chunks/{NcActionRadio-BA08CAtA.mjs → NcActionRadio.mjs} +8 -8
- package/dist/chunks/NcActionRadio.mjs.map +1 -0
- package/dist/chunks/{NcActionRouter-vYFtIOzD.mjs → NcActionRouter.mjs} +5 -5
- package/dist/chunks/NcActionRouter.mjs.map +1 -0
- package/dist/chunks/{NcActionSeparator-B9pNQaji.mjs → NcActionSeparator.mjs} +3 -3
- package/dist/chunks/NcActionSeparator.mjs.map +1 -0
- package/dist/chunks/{NcActionText-CQ9qwJ0p.mjs → NcActionText.mjs} +5 -5
- package/dist/chunks/NcActionText.mjs.map +1 -0
- package/dist/chunks/{NcActionTextEditable-B8y_GEre.mjs → NcActionTextEditable.mjs} +8 -8
- package/dist/chunks/NcActionTextEditable.mjs.map +1 -0
- package/dist/chunks/{NcActions-C-wDqSrv.mjs → NcActions.mjs} +12 -12
- package/dist/chunks/NcActions.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-DavgjaFX.mjs → NcAppContent.mjs} +11 -11
- package/dist/chunks/NcAppContent.mjs.map +1 -0
- package/dist/chunks/{NcAppContentDetails.vue_vue_type_script_setup_true_lang-BWl5Pw5g.mjs → NcAppContentDetails.vue_vue_type_script_setup_true_lang.mjs} +1 -1
- package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/{NcAppContentList-Copx3Ver.mjs → NcAppContentList.mjs} +2 -2
- package/dist/chunks/NcAppContentList.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-g57j16pB.mjs → NcAppNavigation.mjs} +17 -16
- package/dist/chunks/NcAppNavigation.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationCaption-VjSWJ8R4.mjs → NcAppNavigationCaption.mjs} +4 -4
- package/dist/chunks/NcAppNavigationCaption.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationIconBullet-BmU-dPcY.mjs → NcAppNavigationIconBullet.mjs} +3 -3
- package/dist/chunks/NcAppNavigationIconBullet.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationItem-CDeYtA3E.mjs → NcAppNavigationItem.mjs} +53 -24
- package/dist/chunks/NcAppNavigationItem.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationList.mjs +147 -0
- package/dist/chunks/NcAppNavigationList.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNew-CBNppM7Q.mjs → NcAppNavigationNew.mjs} +4 -4
- package/dist/chunks/NcAppNavigationNew.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNewItem-B1RfQkvu.mjs → NcAppNavigationNewItem.mjs} +5 -5
- package/dist/chunks/NcAppNavigationNewItem.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSearch-CQQWb1Eq.mjs → NcAppNavigationSearch.mjs} +7 -7
- package/dist/chunks/NcAppNavigationSearch.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSettings-DoMjRExO.mjs → NcAppNavigationSettings.mjs} +16 -16
- package/dist/chunks/NcAppNavigationSettings.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSpacer-CIRC4ZEj.mjs → NcAppNavigationSpacer.mjs} +3 -3
- package/dist/chunks/NcAppNavigationSpacer.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsDialog-BPcEYLjP.mjs → NcAppSettingsDialog.mjs} +13 -13
- package/dist/chunks/NcAppSettingsDialog.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsSection-BosSmisT.mjs → NcAppSettingsSection.mjs} +5 -5
- package/dist/chunks/NcAppSettingsSection.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsShortcutsSection-DLwubKV9.mjs → NcAppSettingsShortcutsSection.mjs} +7 -7
- package/dist/chunks/NcAppSettingsShortcutsSection.mjs.map +1 -0
- package/dist/chunks/{NcAppSidebar-C8YzAzrZ.mjs → NcAppSidebar.mjs} +180 -46
- package/dist/chunks/NcAppSidebar.mjs.map +1 -0
- 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
- package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/{NcAppSidebarTab-DOSDDbGA.mjs → NcAppSidebarTab.mjs} +15 -8
- package/dist/chunks/NcAppSidebarTab.mjs.map +1 -0
- package/dist/chunks/{NcAssistantButton-iK491d2v.mjs → NcAssistantButton.mjs} +14 -14
- package/dist/chunks/NcAssistantButton.mjs.map +1 -0
- package/dist/chunks/{NcAssistantContent-iHA4O4cC.mjs → NcAssistantContent.mjs} +6 -6
- package/dist/chunks/NcAssistantContent.mjs.map +1 -0
- package/dist/chunks/{NcAssistantIcon-C6s4Qm7-.mjs → NcAssistantIcon.mjs} +9 -9
- package/dist/chunks/NcAssistantIcon.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-1KxMUN7V.mjs → NcAvatar.mjs} +214 -80
- package/dist/chunks/NcAvatar.mjs.map +1 -0
- package/dist/chunks/{NcBlurHash-B30Ol8KP.mjs → NcBlurHash.mjs} +6 -6
- package/dist/chunks/NcBlurHash.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-3Y5NWXnV.mjs → NcBreadcrumb.mjs} +6 -6
- package/dist/chunks/NcBreadcrumb.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumbs-BaTp3Sya.mjs → NcBreadcrumbs.mjs} +8 -8
- package/dist/chunks/NcBreadcrumbs.mjs.map +1 -0
- package/dist/chunks/{NcButton-jvoYS2my.mjs → NcButton.mjs} +6 -6
- package/dist/chunks/NcButton.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-DVdt5Hkq.mjs → NcCheckboxRadioSwitch.mjs} +22 -12
- package/dist/chunks/NcCheckboxRadioSwitch.mjs.map +1 -0
- package/dist/chunks/{NcChip-DKRlV47q.mjs → NcChip.mjs} +9 -9
- package/dist/chunks/NcChip.mjs.map +1 -0
- package/dist/chunks/{NcCollectionList-B9qCtjJw.mjs → NcCollectionList.mjs} +12 -12
- package/dist/chunks/NcCollectionList.mjs.map +1 -0
- package/dist/chunks/{NcColorPicker-BCkasLwT.mjs → NcColorPicker.mjs} +12 -12
- package/dist/chunks/NcColorPicker.mjs.map +1 -0
- package/dist/chunks/{NcContent-BYh5hWDN.mjs → NcContent.mjs} +9 -9
- package/dist/chunks/NcContent.mjs.map +1 -0
- package/dist/chunks/{NcCounterBubble-CV0YMrXW.mjs → NcCounterBubble.mjs} +3 -3
- package/dist/chunks/NcCounterBubble.mjs.map +1 -0
- package/dist/chunks/{NcDashboardWidget-zmbDEGL-.mjs → NcDashboardWidget.mjs} +8 -8
- package/dist/chunks/NcDashboardWidget.mjs.map +1 -0
- package/dist/chunks/{NcDashboardWidgetItem-DwDndrm_.mjs → NcDashboardWidgetItem.mjs} +6 -6
- package/dist/chunks/NcDashboardWidgetItem.mjs.map +1 -0
- package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs → NcDateTime.vue_vue_type_script_setup_true_lang.mjs} +1 -1
- package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/NcDateTimePicker.mjs +2979 -0
- package/dist/chunks/NcDateTimePicker.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePickerNative-B8CMOUnH.mjs → NcDateTimePickerNative.mjs} +21 -26
- package/dist/chunks/NcDateTimePickerNative.mjs.map +1 -0
- package/dist/chunks/{NcDialog-D617YI0t.mjs → NcDialog.mjs} +6 -6
- package/dist/chunks/NcDialog.mjs.map +1 -0
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-Bqfy678u.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang.mjs} +6 -6
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/{NcEllipsisedOption-D6Amb91K.mjs → NcEllipsisedOption.mjs} +5 -5
- package/dist/chunks/NcEllipsisedOption.mjs.map +1 -0
- package/dist/chunks/{NcEmojiPicker-UTxgju3f.mjs → NcEmojiPicker.mjs} +12 -12
- package/dist/chunks/NcEmojiPicker.mjs.map +1 -0
- package/dist/chunks/{NcEmptyContent-CGAPqk4S.mjs → NcEmptyContent.mjs} +4 -4
- package/dist/chunks/NcEmptyContent.mjs.map +1 -0
- package/dist/chunks/{NcFilePicker-bD2toutn.mjs → NcFilePicker.mjs} +9 -9
- package/dist/chunks/NcFilePicker.mjs.map +1 -0
- package/dist/chunks/{NcFormBox-Bmqar8nn.mjs → NcFormBox.mjs} +9 -9
- package/dist/chunks/NcFormBox.mjs.map +1 -0
- package/dist/chunks/{NcFormBoxButton-G_PkUiQy.mjs → NcFormBoxButton.mjs} +8 -8
- package/dist/chunks/NcFormBoxButton.mjs.map +1 -0
- 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
- package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/{NcFormBoxItem-Cm8aZaVJ.mjs → NcFormBoxItem.mjs} +14 -14
- package/dist/chunks/NcFormBoxItem.mjs.map +1 -0
- package/dist/chunks/{NcFormBoxSwitch-DSXiQcnq.mjs → NcFormBoxSwitch.mjs} +8 -8
- package/dist/chunks/NcFormBoxSwitch.mjs.map +1 -0
- package/dist/chunks/{NcFormGroup-N7qIFAwN.mjs → NcFormGroup.mjs} +11 -11
- package/dist/chunks/NcFormGroup.mjs.map +1 -0
- package/dist/chunks/{NcGuestContent-CvT6VGt1.mjs → NcGuestContent.mjs} +3 -3
- package/dist/chunks/NcGuestContent.mjs.map +1 -0
- package/dist/chunks/{NcHeaderButton-BnLwYCog.mjs → NcHeaderButton.mjs} +5 -5
- package/dist/chunks/NcHeaderButton.mjs.map +1 -0
- package/dist/chunks/{NcHeaderMenu-ktQJV2SW.mjs → NcHeaderMenu.mjs} +14 -20
- package/dist/chunks/NcHeaderMenu.mjs.map +1 -0
- package/dist/chunks/{NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs → NcHighlight.vue_vue_type_script_lang.mjs} +1 -1
- package/dist/chunks/NcHighlight.vue_vue_type_script_lang.mjs.map +1 -0
- package/dist/chunks/{NcHotkey-BDGeF3eH.mjs → NcHotkey.mjs} +8 -8
- package/dist/chunks/NcHotkey.mjs.map +1 -0
- package/dist/chunks/{NcHotkeyList-B4WjTLAp.mjs → NcHotkeyList.mjs} +8 -8
- package/dist/chunks/NcHotkeyList.mjs.map +1 -0
- package/dist/chunks/{NcIconSvgWrapper-g8ubWhoz.mjs → NcIconSvgWrapper.mjs} +3 -3
- package/dist/chunks/NcIconSvgWrapper.mjs.map +1 -0
- package/dist/chunks/{NcIconToggleSwitch-CRvGt4su.mjs → NcIconToggleSwitch.mjs} +6 -6
- package/dist/chunks/NcIconToggleSwitch.mjs.map +1 -0
- package/dist/chunks/{NcInputConfirmCancel-CGTllrXj.mjs → NcInputConfirmCancel.mjs} +9 -9
- package/dist/chunks/NcInputConfirmCancel.mjs.map +1 -0
- package/dist/chunks/{NcInputField-5Sg6EUP6.mjs → NcInputField.mjs} +9 -9
- package/dist/chunks/NcInputField.mjs.map +1 -0
- package/dist/chunks/{NcKbd-Bh_Tk6Ar.mjs → NcKbd.mjs} +8 -8
- package/dist/chunks/NcKbd.mjs.map +1 -0
- package/dist/chunks/{NcListItem-BliLJpvU.mjs → NcListItem.mjs} +7 -7
- package/dist/chunks/NcListItem.mjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-Dl_tfkk9.mjs → NcListItemIcon.mjs} +7 -7
- package/dist/chunks/NcListItemIcon.mjs.map +1 -0
- package/dist/chunks/{NcLoadingIcon-BOVpFVQz.mjs → NcLoadingIcon.mjs} +3 -3
- package/dist/chunks/NcLoadingIcon.mjs.map +1 -0
- 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
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs.map +1 -0
- package/dist/chunks/{NcModal-DiDvgcU8.mjs → NcModal.mjs} +12 -12
- package/dist/chunks/NcModal.mjs.map +1 -0
- package/dist/chunks/{NcNoteCard-mI7qVZ9j.mjs → NcNoteCard.mjs} +6 -6
- package/dist/chunks/NcNoteCard.mjs.map +1 -0
- package/dist/chunks/{NcPasswordField-BFyzHTOO.mjs → NcPasswordField.mjs} +9 -9
- package/dist/chunks/NcPasswordField.mjs.map +1 -0
- package/dist/chunks/{NcPopover-B87bEPLq.mjs → NcPopover.mjs} +9 -10
- package/dist/chunks/NcPopover.mjs.map +1 -0
- package/dist/chunks/NcProfileHoverCard.mjs +777 -0
- package/dist/chunks/NcProfileHoverCard.mjs.map +1 -0
- package/dist/chunks/{NcProgressBar-C-ane-Ni.mjs → NcProgressBar.mjs} +20 -10
- package/dist/chunks/NcProgressBar.mjs.map +1 -0
- package/dist/chunks/{NcRadioGroup-B4qmS2UD.mjs → NcRadioGroup.mjs} +8 -8
- package/dist/chunks/NcRadioGroup.mjs.map +1 -0
- package/dist/chunks/{NcRadioGroupButton-CZykGwv3.mjs → NcRadioGroupButton.mjs} +12 -12
- package/dist/chunks/NcRadioGroupButton.mjs.map +1 -0
- package/dist/chunks/NcReferenceWidget.mjs +292 -0
- package/dist/chunks/NcReferenceWidget.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-D_Ttpg5_.mjs → NcRelatedResourcesPanel.mjs} +13 -13
- package/dist/chunks/NcRelatedResourcesPanel.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-Qw614bJ5.mjs → NcRichContenteditable.mjs} +37 -35
- package/dist/chunks/NcRichContenteditable.mjs.map +1 -0
- package/dist/chunks/{NcRichText-BO_4KtBA.mjs → NcRichText.mjs} +12 -12
- package/dist/chunks/NcRichText.mjs.map +1 -0
- package/dist/chunks/{NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DbQnMYZm.mjs → NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang.mjs} +1 -1
- package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/{NcSelect--kERLlBK.mjs → NcSelect.mjs} +124 -29
- package/dist/chunks/NcSelect.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-I2hJaNax.mjs → NcSelectTags.mjs} +6 -6
- package/dist/chunks/NcSelectTags.mjs.map +1 -0
- package/dist/chunks/{NcSelectUsers-K14Bepkq.mjs → NcSelectUsers.mjs} +6 -6
- package/dist/chunks/NcSelectUsers.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSection-Caz1fuWt.mjs → NcSettingsSection.mjs} +5 -5
- package/dist/chunks/NcSettingsSection.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSelectGroup-SYJ8-XlR.mjs → NcSettingsSelectGroup.mjs} +7 -7
- package/dist/chunks/NcSettingsSelectGroup.mjs.map +1 -0
- package/dist/chunks/{NcTextArea-Dxzj4zdb.mjs → NcTextArea.mjs} +8 -8
- package/dist/chunks/NcTextArea.mjs.map +1 -0
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs → NcTextField.vue_vue_type_script_setup_true_lang.mjs} +7 -7
- package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/{NcThemeProvider.vue_vue_type_script_setup_true_lang-wie70gn4.mjs → NcThemeProvider.vue_vue_type_script_setup_true_lang.mjs} +2 -2
- package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-D7ZHgnwW.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang.mjs} +5 -5
- package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/dist/chunks/{NcUserBubble-BXR7vT0V.mjs → NcUserBubble.mjs} +5 -5
- package/dist/chunks/NcUserBubble.mjs.map +1 -0
- package/dist/chunks/{NcUserStatusIcon-BF5OEQFU.mjs → NcUserStatusIcon.mjs} +7 -7
- package/dist/chunks/NcUserStatusIcon.mjs.map +1 -0
- package/dist/chunks/{NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs → NcVNodes.vue_vue_type_script_lang.mjs} +1 -1
- package/dist/chunks/NcVNodes.vue_vue_type_script_lang.mjs.map +1 -0
- package/dist/chunks/{_l10n-wdIzZwir.mjs → _l10n.mjs} +106 -104
- package/dist/chunks/_l10n.mjs.map +1 -0
- package/dist/chunks/{_plugin-vue_export-helper-1tPrXgE0.mjs → _plugin-vue_export-helper.mjs} +1 -1
- package/dist/chunks/_plugin-vue_export-helper.mjs.map +1 -0
- package/dist/chunks/{actionGlobal-BZFdtdJL.mjs → actionGlobal.mjs} +1 -1
- package/dist/chunks/actionGlobal.mjs.map +1 -0
- package/dist/chunks/{actionText-BXR0sWNu.mjs → actionText.mjs} +3 -3
- package/dist/chunks/actionText.mjs.map +1 -0
- package/dist/chunks/{appName-DyNMVZpX.mjs → appName.mjs} +2 -2
- package/dist/chunks/appName.mjs.map +1 -0
- package/dist/chunks/{autolink-DrIurosL.mjs → autolink.mjs} +7 -7
- package/dist/chunks/autolink.mjs.map +1 -0
- package/dist/chunks/{colors-Cv9F-jWS.mjs → colors.mjs} +3 -3
- package/dist/chunks/colors.mjs.map +1 -0
- package/dist/chunks/{constants-wIEKSp2G.mjs → constants.mjs} +1 -1
- package/dist/chunks/constants.mjs.map +1 -0
- package/dist/chunks/{constants-Ciwvl5xb.mjs → constants2.mjs} +1 -1
- package/dist/chunks/constants2.mjs.map +1 -0
- package/dist/chunks/{createElementId-DhjFt1I9.mjs → createElementId.mjs} +1 -1
- package/dist/chunks/createElementId.mjs.map +1 -0
- package/dist/chunks/customPickerElements.mjs +61 -0
- package/dist/chunks/customPickerElements.mjs.map +1 -0
- package/dist/chunks/{emoji-C8k9NUlo.mjs → emoji.mjs} +1 -1
- package/dist/chunks/emoji.mjs.map +1 -0
- package/dist/chunks/{focusTrap-HJQ4pqHV.mjs → focusTrap.mjs} +1 -1
- package/dist/chunks/focusTrap.mjs.map +1 -0
- package/dist/chunks/highlight.mjs +5 -0
- package/dist/chunks/highlight.mjs.map +1 -0
- package/dist/chunks/{legacy-BoqDmOCa.mjs → legacy.mjs} +4 -2
- package/dist/chunks/legacy.mjs.map +1 -0
- package/dist/chunks/{logger-D3RVzcfQ.mjs → logger.mjs} +1 -1
- package/dist/chunks/logger.mjs.map +1 -0
- package/dist/chunks/{mdi-CpchYUUV.mjs → mdi.mjs} +12 -14
- package/dist/chunks/mdi.mjs.map +1 -0
- package/dist/chunks/{platform-CC2ecGvV.mjs → platform.mjs} +1 -1
- package/dist/chunks/platform.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-CnKdEDwu.mjs → referencePickerModal.mjs} +60 -342
- package/dist/chunks/referencePickerModal.mjs.map +1 -0
- package/dist/chunks/{rtl-v0UOPAM7.mjs → rtl.mjs} +1 -1
- package/dist/chunks/rtl.mjs.map +1 -0
- package/dist/chunks/{useAppSettingsDialog-C73Wx6iQ.mjs → useAppSettingsDialog.mjs} +1 -1
- package/dist/chunks/useAppSettingsDialog.mjs.map +1 -0
- package/dist/chunks/{useCopy-6F-qWHq0.mjs → useCopy.mjs} +4 -4
- package/dist/chunks/useCopy.mjs.map +1 -0
- package/dist/chunks/{useNcActions-BzPO2c4h.mjs → useNcActions.mjs} +1 -1
- package/dist/chunks/useNcActions.mjs.map +1 -0
- package/dist/chunks/{useNcFormBox-Djlh582y.mjs → useNcFormBox.mjs} +1 -1
- package/dist/chunks/useNcFormBox.mjs.map +1 -0
- package/dist/chunks/{useNcRadioGroup-D6llQmAl.mjs → useNcRadioGroup.mjs} +1 -1
- package/dist/chunks/useNcRadioGroup.mjs.map +1 -0
- package/dist/chunks/{useTrapStackControl-B6cEicto.mjs → useTrapStackControl.mjs} +2 -2
- package/dist/chunks/useTrapStackControl.mjs.map +1 -0
- package/dist/chunks/widgets.mjs +66 -0
- package/dist/chunks/widgets.mjs.map +1 -0
- package/dist/components/NcActionButton/index.mjs +1 -1
- package/dist/components/NcActionButtonGroup/index.mjs +1 -1
- package/dist/components/NcActionCaption/index.mjs +1 -1
- package/dist/components/NcActionCheckbox/index.mjs +1 -1
- package/dist/components/NcActionInput/NcActionInput.vue.d.ts +302 -103
- package/dist/components/NcActionInput/index.mjs +1 -1
- package/dist/components/NcActionLink/index.mjs +1 -1
- package/dist/components/NcActionRadio/index.mjs +1 -1
- package/dist/components/NcActionRouter/index.mjs +1 -1
- package/dist/components/NcActionSeparator/index.mjs +1 -1
- package/dist/components/NcActionText/index.mjs +1 -1
- package/dist/components/NcActionTextEditable/index.mjs +1 -1
- package/dist/components/NcActions/NcActions.vue.d.ts +3 -3
- package/dist/components/NcActions/index.mjs +1 -1
- package/dist/components/NcAppContent/index.mjs +1 -1
- package/dist/components/NcAppContentDetails/index.mjs +1 -1
- package/dist/components/NcAppContentList/index.mjs +1 -1
- package/dist/components/NcAppNavigation/index.mjs +1 -1
- package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +3 -3
- package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
- package/dist/components/NcAppNavigationIconBullet/index.mjs +1 -1
- package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +10 -6
- package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +1 -1
- package/dist/components/NcAppNavigationItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationList/NcAppNavigationList.vue.d.ts +57 -1
- package/dist/components/NcAppNavigationList/highlight.d.ts +12 -0
- package/dist/components/NcAppNavigationList/index.mjs +1 -1
- package/dist/components/NcAppNavigationNew/index.mjs +1 -1
- package/dist/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +1 -1
- package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +16 -16
- package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
- package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
- package/dist/components/NcAppNavigationSpacer/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
- package/dist/components/NcAppSettingsSection/index.mjs +1 -1
- package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
- package/dist/components/NcAppSettingsShortcutsSection/index.mjs +1 -1
- package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +23 -4
- package/dist/components/NcAppSidebar/NcAppSidebarTabs.vue.d.ts +43 -0
- package/dist/components/NcAppSidebar/NcAppSidebarTabsButton.vue.d.ts +5 -0
- package/dist/components/NcAppSidebar/index.mjs +1 -1
- package/dist/components/NcAppSidebarHeader/index.mjs +1 -1
- package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +14 -4
- package/dist/components/NcAppSidebarTab/index.mjs +1 -1
- package/dist/components/NcAssistantButton/index.mjs +1 -1
- package/dist/components/NcAssistantContent/index.mjs +1 -1
- package/dist/components/NcAssistantIcon/index.mjs +1 -1
- package/dist/components/NcAvatar/NcAvatar.vue.d.ts +53 -138
- package/dist/components/NcAvatar/index.mjs +1 -1
- package/dist/components/NcBlurHash/index.mjs +1 -1
- package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +4 -4
- package/dist/components/NcBreadcrumb/index.mjs +1 -1
- package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +7 -7
- package/dist/components/NcBreadcrumbs/index.mjs +1 -1
- package/dist/components/NcButton/index.mjs +1 -1
- package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
- package/dist/components/NcChip/index.mjs +1 -1
- package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +272 -280
- package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +38 -140
- package/dist/components/NcCollectionList/index.mjs +1 -1
- package/dist/components/NcColorPicker/index.mjs +1 -1
- package/dist/components/NcContent/index.mjs +1 -1
- package/dist/components/NcCounterBubble/index.mjs +1 -1
- package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +73 -277
- package/dist/components/NcDashboardWidget/index.mjs +1 -1
- package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +38 -140
- package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
- package/dist/components/NcDateTime/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +82 -80
- package/dist/components/NcDateTimePicker/dateFnsLocaleLoader.d.ts +3 -0
- package/dist/components/NcDateTimePicker/format.d.ts +35 -0
- package/dist/components/NcDateTimePicker/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/useDateFnsLocale.d.ts +16 -0
- package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
- package/dist/components/NcDialog/index.mjs +1 -1
- package/dist/components/NcDialogButton/index.mjs +1 -1
- package/dist/components/NcEllipsisedOption/index.mjs +1 -1
- package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +14 -11
- package/dist/components/NcEmojiPicker/index.mjs +1 -1
- package/dist/components/NcEmptyContent/index.mjs +1 -1
- package/dist/components/NcFilePicker/index.mjs +1 -1
- package/dist/components/NcFormBox/index.mjs +1 -1
- package/dist/components/NcFormBoxButton/index.mjs +1 -1
- package/dist/components/NcFormBoxCopyButton/index.mjs +1 -1
- package/dist/components/NcFormBoxSwitch/index.mjs +1 -1
- package/dist/components/NcFormGroup/index.mjs +1 -1
- package/dist/components/NcGuestContent/index.mjs +1 -1
- package/dist/components/NcHeaderButton/index.mjs +1 -1
- package/dist/components/NcHeaderMenu/index.mjs +1 -1
- package/dist/components/NcHighlight/index.mjs +1 -1
- package/dist/components/NcHotkey/index.mjs +1 -1
- package/dist/components/NcHotkeyList/index.mjs +1 -1
- package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
- package/dist/components/NcInputField/NcInputField.vue.d.ts +8 -5
- package/dist/components/NcInputField/index.mjs +1 -1
- package/dist/components/NcKbd/index.mjs +1 -1
- package/dist/components/NcListItem/NcListItem.vue.d.ts +3 -3
- package/dist/components/NcListItem/index.mjs +1 -1
- package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +36 -138
- package/dist/components/NcListItemIcon/index.mjs +1 -1
- package/dist/components/NcLoadingIcon/index.mjs +1 -1
- package/dist/components/NcModal/index.mjs +1 -1
- package/dist/components/NcNoteCard/index.mjs +1 -1
- package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +16 -16
- package/dist/components/NcPasswordField/index.mjs +1 -1
- package/dist/components/NcPopover/index.mjs +1 -1
- package/dist/components/NcProfileHoverCard/NcProfileHoverCard.vue.d.ts +80 -0
- package/dist/components/NcProfileHoverCard/index.d.ts +5 -0
- package/dist/components/NcProfileHoverCard/index.mjs +5 -0
- package/dist/components/NcProfileHoverCard/index.mjs.map +1 -0
- package/dist/components/NcProfileHoverCard/profileCache.d.ts +31 -0
- package/dist/components/NcProgressBar/NcProgressBar.vue.d.ts +27 -0
- package/dist/components/NcProgressBar/index.mjs +1 -1
- package/dist/components/NcRadioGroup/index.mjs +1 -1
- package/dist/components/NcRadioGroupButton/index.mjs +1 -1
- package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +1 -1
- package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
- package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +1 -1
- package/dist/components/NcRichContenteditable/index.mjs +1 -1
- package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +199 -3
- package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +14 -11
- package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +412 -17
- package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +412 -17
- package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +199 -3
- package/dist/components/NcRichText/index.mjs +14 -12
- package/dist/components/NcRichText/index.mjs.map +1 -1
- package/dist/components/NcSavingIndicatorIcon/index.mjs +1 -1
- package/dist/components/NcSelect/NcSelect.vue.d.ts +208 -3
- package/dist/components/NcSelect/index.mjs +1 -1
- package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +201 -5
- package/dist/components/NcSelectTags/index.mjs +1 -1
- package/dist/components/NcSelectUsers/index.mjs +1 -1
- package/dist/components/NcSettingsSection/index.mjs +1 -1
- package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +199 -3
- package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
- package/dist/components/NcTextArea/index.mjs +1 -1
- package/dist/components/NcTextField/NcTextField.vue.d.ts +23 -17
- package/dist/components/NcTextField/index.mjs +1 -1
- package/dist/components/NcThemeProvider/index.mjs +1 -1
- package/dist/components/NcTimezonePicker/index.mjs +1 -1
- package/dist/components/NcUserBubble/index.mjs +1 -1
- package/dist/components/NcUserStatusIcon/index.mjs +1 -1
- package/dist/components/NcVNodes/index.mjs +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/composables/useFormatDateTime/index.mjs +11 -5
- package/dist/composables/useFormatDateTime/index.mjs.map +1 -1
- package/dist/composables/useHotKey/index.mjs +1 -1
- package/dist/composables/useIsDarkTheme/index.mjs +1 -1
- package/dist/functions/contactsMenu/index.mjs +1 -1
- package/dist/functions/emoji/index.mjs +1 -1
- package/dist/functions/reference/index.mjs +13 -12
- package/dist/functions/reference/index.mjs.map +1 -1
- package/dist/functions/registerReference/index.mjs +10 -9
- package/dist/functions/registerReference/index.mjs.map +1 -1
- package/dist/functions/usernameToColor/index.mjs +1 -1
- package/dist/index.mjs +120 -116
- package/dist/index.mjs.map +1 -1
- package/dist/utils/legacy.d.ts +2 -0
- package/package.json +20 -19
- package/dist/assets/NcAppNavigationList--36j6Acm.css +0 -28
- package/dist/assets/NcDateTimePickerNative-BP6eg8aU.css +0 -60
- package/dist/assets/NcPopover-CAoHhjKa.css +0 -123
- package/dist/assets/NcSelect-CvDEQAjD.css +0 -245
- package/dist/assets/NcSelectUsers-YF5729PJ.css +0 -4
- package/dist/chunks/ArrowRight-B1ncAhus.mjs.map +0 -1
- package/dist/chunks/ChevronDown-C6gc637b.mjs.map +0 -1
- package/dist/chunks/ChevronUp-ChH8oB7p.mjs.map +0 -1
- package/dist/chunks/Close-CuhcJnX2.mjs.map +0 -1
- package/dist/chunks/NcActionButton-BO5T5ePT.mjs.map +0 -1
- package/dist/chunks/NcActionButtonGroup-Dd03Oluy.mjs.map +0 -1
- package/dist/chunks/NcActionCaption-f7L9gBlT.mjs.map +0 -1
- package/dist/chunks/NcActionCheckbox-DBqiK-AZ.mjs.map +0 -1
- package/dist/chunks/NcActionInput-Dr8Yrafu.mjs.map +0 -1
- package/dist/chunks/NcActionLink-BFiaYt9A.mjs.map +0 -1
- package/dist/chunks/NcActionRadio-BA08CAtA.mjs.map +0 -1
- package/dist/chunks/NcActionRouter-vYFtIOzD.mjs.map +0 -1
- package/dist/chunks/NcActionSeparator-B9pNQaji.mjs.map +0 -1
- package/dist/chunks/NcActionText-CQ9qwJ0p.mjs.map +0 -1
- package/dist/chunks/NcActionTextEditable-B8y_GEre.mjs.map +0 -1
- package/dist/chunks/NcActions-C-wDqSrv.mjs.map +0 -1
- package/dist/chunks/NcAppContent-DavgjaFX.mjs.map +0 -1
- package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-BWl5Pw5g.mjs.map +0 -1
- package/dist/chunks/NcAppContentList-Copx3Ver.mjs.map +0 -1
- package/dist/chunks/NcAppNavigation-g57j16pB.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationCaption-VjSWJ8R4.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationIconBullet-BmU-dPcY.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-CDeYtA3E.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationList-CGSWabRB.mjs +0 -17
- package/dist/chunks/NcAppNavigationList-CGSWabRB.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationNew-CBNppM7Q.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationNewItem-B1RfQkvu.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSearch-CQQWb1Eq.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSettings-DoMjRExO.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSpacer-CIRC4ZEj.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-BPcEYLjP.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsSection-BosSmisT.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsShortcutsSection-DLwubKV9.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-C8YzAzrZ.mjs.map +0 -1
- package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map +0 -1
- package/dist/chunks/NcAppSidebarTab-DOSDDbGA.mjs.map +0 -1
- package/dist/chunks/NcAssistantButton-iK491d2v.mjs.map +0 -1
- package/dist/chunks/NcAssistantContent-iHA4O4cC.mjs.map +0 -1
- package/dist/chunks/NcAssistantIcon-C6s4Qm7-.mjs.map +0 -1
- package/dist/chunks/NcAvatar-1KxMUN7V.mjs.map +0 -1
- package/dist/chunks/NcBlurHash-B30Ol8KP.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-3Y5NWXnV.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumbs-BaTp3Sya.mjs.map +0 -1
- package/dist/chunks/NcButton-jvoYS2my.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-DVdt5Hkq.mjs.map +0 -1
- package/dist/chunks/NcChip-DKRlV47q.mjs.map +0 -1
- package/dist/chunks/NcCollectionList-B9qCtjJw.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-BCkasLwT.mjs.map +0 -1
- package/dist/chunks/NcContent-BYh5hWDN.mjs.map +0 -1
- package/dist/chunks/NcCounterBubble-CV0YMrXW.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-zmbDEGL-.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidgetItem-DwDndrm_.mjs.map +0 -1
- package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs.map +0 -1
- package/dist/chunks/NcDateTimePicker-qaFC_wUt.mjs +0 -415
- package/dist/chunks/NcDateTimePicker-qaFC_wUt.mjs.map +0 -1
- package/dist/chunks/NcDateTimePickerNative-B8CMOUnH.mjs.map +0 -1
- package/dist/chunks/NcDialog-D617YI0t.mjs.map +0 -1
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-Bqfy678u.mjs.map +0 -1
- package/dist/chunks/NcEllipsisedOption-D6Amb91K.mjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-UTxgju3f.mjs.map +0 -1
- package/dist/chunks/NcEmptyContent-CGAPqk4S.mjs.map +0 -1
- package/dist/chunks/NcFilePicker-bD2toutn.mjs.map +0 -1
- package/dist/chunks/NcFormBox-Bmqar8nn.mjs.map +0 -1
- package/dist/chunks/NcFormBoxButton-G_PkUiQy.mjs.map +0 -1
- package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs.map +0 -1
- package/dist/chunks/NcFormBoxItem-Cm8aZaVJ.mjs.map +0 -1
- package/dist/chunks/NcFormBoxSwitch-DSXiQcnq.mjs.map +0 -1
- package/dist/chunks/NcFormGroup-N7qIFAwN.mjs.map +0 -1
- package/dist/chunks/NcGuestContent-CvT6VGt1.mjs.map +0 -1
- package/dist/chunks/NcHeaderButton-BnLwYCog.mjs.map +0 -1
- package/dist/chunks/NcHeaderMenu-ktQJV2SW.mjs.map +0 -1
- package/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map +0 -1
- package/dist/chunks/NcHotkey-BDGeF3eH.mjs.map +0 -1
- package/dist/chunks/NcHotkeyList-B4WjTLAp.mjs.map +0 -1
- package/dist/chunks/NcIconSvgWrapper-g8ubWhoz.mjs.map +0 -1
- package/dist/chunks/NcIconToggleSwitch-CRvGt4su.mjs.map +0 -1
- package/dist/chunks/NcInputConfirmCancel-CGTllrXj.mjs.map +0 -1
- package/dist/chunks/NcInputField-5Sg6EUP6.mjs.map +0 -1
- package/dist/chunks/NcKbd-Bh_Tk6Ar.mjs.map +0 -1
- package/dist/chunks/NcListItem-BliLJpvU.mjs.map +0 -1
- package/dist/chunks/NcListItemIcon-Dl_tfkk9.mjs.map +0 -1
- package/dist/chunks/NcLoadingIcon-BOVpFVQz.mjs.map +0 -1
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs.map +0 -1
- package/dist/chunks/NcModal-DiDvgcU8.mjs.map +0 -1
- package/dist/chunks/NcNoteCard-mI7qVZ9j.mjs.map +0 -1
- package/dist/chunks/NcPasswordField-BFyzHTOO.mjs.map +0 -1
- package/dist/chunks/NcPopover-B87bEPLq.mjs.map +0 -1
- package/dist/chunks/NcProgressBar-C-ane-Ni.mjs.map +0 -1
- package/dist/chunks/NcRadioGroup-B4qmS2UD.mjs.map +0 -1
- package/dist/chunks/NcRadioGroupButton-CZykGwv3.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-D_Ttpg5_.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-Qw614bJ5.mjs.map +0 -1
- package/dist/chunks/NcRichText-BO_4KtBA.mjs.map +0 -1
- package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DbQnMYZm.mjs.map +0 -1
- package/dist/chunks/NcSelect--kERLlBK.mjs.map +0 -1
- package/dist/chunks/NcSelectTags-I2hJaNax.mjs.map +0 -1
- package/dist/chunks/NcSelectUsers-K14Bepkq.mjs.map +0 -1
- package/dist/chunks/NcSettingsSection-Caz1fuWt.mjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-SYJ8-XlR.mjs.map +0 -1
- package/dist/chunks/NcTextArea-Dxzj4zdb.mjs.map +0 -1
- package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs.map +0 -1
- package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-wie70gn4.mjs.map +0 -1
- package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-D7ZHgnwW.mjs.map +0 -1
- package/dist/chunks/NcUserBubble-BXR7vT0V.mjs.map +0 -1
- package/dist/chunks/NcUserStatusIcon-BF5OEQFU.mjs.map +0 -1
- package/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map +0 -1
- package/dist/chunks/_l10n-wdIzZwir.mjs.map +0 -1
- package/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs.map +0 -1
- package/dist/chunks/actionGlobal-BZFdtdJL.mjs.map +0 -1
- package/dist/chunks/actionText-BXR0sWNu.mjs.map +0 -1
- package/dist/chunks/appName-DyNMVZpX.mjs.map +0 -1
- package/dist/chunks/autolink-DrIurosL.mjs.map +0 -1
- package/dist/chunks/colors-Cv9F-jWS.mjs.map +0 -1
- package/dist/chunks/constants-Ciwvl5xb.mjs.map +0 -1
- package/dist/chunks/constants-wIEKSp2G.mjs.map +0 -1
- package/dist/chunks/createElementId-DhjFt1I9.mjs.map +0 -1
- package/dist/chunks/customPickerElements-BqbDcaEu.mjs +0 -123
- package/dist/chunks/customPickerElements-BqbDcaEu.mjs.map +0 -1
- package/dist/chunks/emoji-C8k9NUlo.mjs.map +0 -1
- package/dist/chunks/focusTrap-HJQ4pqHV.mjs.map +0 -1
- package/dist/chunks/legacy-BoqDmOCa.mjs.map +0 -1
- package/dist/chunks/logger-D3RVzcfQ.mjs.map +0 -1
- package/dist/chunks/mdi-CpchYUUV.mjs.map +0 -1
- package/dist/chunks/platform-CC2ecGvV.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-CnKdEDwu.mjs.map +0 -1
- package/dist/chunks/rtl-v0UOPAM7.mjs.map +0 -1
- package/dist/chunks/useAppSettingsDialog-C73Wx6iQ.mjs.map +0 -1
- package/dist/chunks/useCopy-6F-qWHq0.mjs.map +0 -1
- package/dist/chunks/useNcActions-BzPO2c4h.mjs.map +0 -1
- package/dist/chunks/useNcFormBox-Djlh582y.mjs.map +0 -1
- package/dist/chunks/useNcRadioGroup-D6llQmAl.mjs.map +0 -1
- package/dist/chunks/useTrapStackControl-B6cEicto.mjs.map +0 -1
- /package/dist/assets/{NcActionButtonGroup-Bt8kRk79.css → NcActionButtonGroup.css} +0 -0
- /package/dist/assets/{NcActionCaption-DnG2OyWa.css → NcActionCaption.css} +0 -0
- /package/dist/assets/{NcActionSeparator-Ct2RnclR.css → NcActionSeparator.css} +0 -0
- /package/dist/assets/{NcAppContent-TgcZd4AI.css → NcAppContent.css} +0 -0
- /package/dist/assets/{NcAppNavigationCaption-ggcWspH2.css → NcAppNavigationCaption.css} +0 -0
- /package/dist/assets/{NcAppNavigationIconBullet-DLQJkObX.css → NcAppNavigationIconBullet.css} +0 -0
- /package/dist/assets/{NcAppNavigationNew-Bn8zj5lM.css → NcAppNavigationNew.css} +0 -0
- /package/dist/assets/{NcAppNavigationSearch-DD7mo6OW.css → NcAppNavigationSearch.css} +0 -0
- /package/dist/assets/{NcAppNavigationSpacer-LST5uYYS.css → NcAppNavigationSpacer.css} +0 -0
- /package/dist/assets/{NcAppSettingsSection-DIw8GLHR.css → NcAppSettingsSection.css} +0 -0
- /package/dist/assets/{NcBreadcrumb-BxhZKQlW.css → NcBreadcrumb.css} +0 -0
- /package/dist/assets/{NcBreadcrumbs-B4eyDS9i.css → NcBreadcrumbs.css} +0 -0
- /package/dist/assets/{NcChip-DbSI4mFP.css → NcChip.css} +0 -0
- /package/dist/assets/{NcCollectionList-e5JFvzqX.css → NcCollectionList.css} +0 -0
- /package/dist/assets/{NcColorPicker-DVYGs8R3.css → NcColorPicker.css} +0 -0
- /package/dist/assets/{NcContent-DX4Rs6Pc.css → NcContent.css} +0 -0
- /package/dist/assets/{NcCounterBubble-ZnteskDR.css → NcCounterBubble.css} +0 -0
- /package/dist/assets/{NcDashboardWidget-nZuIL1UN.css → NcDashboardWidget.css} +0 -0
- /package/dist/assets/{NcDashboardWidgetItem-DpVmEBwQ.css → NcDashboardWidgetItem.css} +0 -0
- /package/dist/assets/{NcDialog-BSV74Bru.css → NcDialog.css} +0 -0
- /package/dist/assets/{NcEmojiPicker-vNKR9S87.css → NcEmojiPicker.css} +0 -0
- /package/dist/assets/{NcEmptyContent-DJMDuGVz.css → NcEmptyContent.css} +0 -0
- /package/dist/assets/{NcGuestContent-CM0uWLr1.css → NcGuestContent.css} +0 -0
- /package/dist/assets/{NcHeaderButton-CVOQgRjm.css → NcHeaderButton.css} +0 -0
- /package/dist/assets/{NcIconSvgWrapper-N3OwSN9O.css → NcIconSvgWrapper.css} +0 -0
- /package/dist/assets/{NcInputConfirmCancel-DZEDRf0t.css → NcInputConfirmCancel.css} +0 -0
- /package/dist/assets/{NcListItem-BjeejGlB.css → NcListItem.css} +0 -0
- /package/dist/assets/{NcListItemIcon-DJRcmlo1.css → NcListItemIcon.css} +0 -0
- /package/dist/assets/{NcLoadingIcon-CWUlo4XY.css → NcLoadingIcon.css} +0 -0
- /package/dist/assets/{NcMentionBubble-BeGb2xGc.css → NcMentionBubble.css} +0 -0
- /package/dist/assets/{NcModal-D81luiuU.css → NcModal.css} +0 -0
- /package/dist/assets/{NcNoteCard-DfescGKl.css → NcNoteCard.css} +0 -0
- /package/dist/assets/{NcPasswordField-BN4HFgU5.css → NcPasswordField.css} +0 -0
- /package/dist/assets/{NcRelatedResourcesPanel-BZKjkugM.css → NcRelatedResourcesPanel.css} +0 -0
- /package/dist/assets/{NcRichText-D0Bu5bbu.css → NcRichText.css} +0 -0
- /package/dist/assets/{NcSettingsSection-f5rBJsKJ.css → NcSettingsSection.css} +0 -0
- /package/dist/assets/{NcSettingsSelectGroup-D_fSrafm.css → NcSettingsSelectGroup.css} +0 -0
- /package/dist/assets/{NcTextArea-BxGe3Lqn.css → NcTextArea.css} +0 -0
- /package/dist/assets/{NcUserBubble-DFUmBxeb.css → NcUserBubble.css} +0 -0
- /package/dist/assets/{NcUserStatusIcon-B3aHoBAd.css → NcUserStatusIcon.css} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import '../assets/NcAppSettingsDialog
|
|
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
|
|
5
|
-
import { _ as _sfc_main$2 } from "./NcVNodes.vue_vue_type_script_lang
|
|
6
|
-
import { u as useLocalizedAppName, A as APP_VERSION } from "./appName
|
|
7
|
-
import { A as APP_SETTINGS_LEGACY_DESIGN_KEY, a as APP_SETTINGS_REGISTRATION_KEY } from "./useAppSettingsDialog
|
|
8
|
-
import { _ as _export_sfc } from "./_plugin-vue_export-helper
|
|
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
|
|
11
|
-
import { i as isLegacy34 } from "./legacy
|
|
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 = "
|
|
25
|
-
const appSettingsDialogVersion__legacy = "
|
|
24
|
+
const appSettingsDialogVersion = "_appSettingsDialogVersion_e4tNO";
|
|
25
|
+
const appSettingsDialogVersion__legacy = "_appSettingsDialogVersion__legacy_AeUZg";
|
|
26
26
|
const style0 = {
|
|
27
|
-
"material-design-icon": "_material-design-
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
4
|
-
import { u as useAppSettingsDialog, A as APP_SETTINGS_LEGACY_DESIGN_KEY } from "./useAppSettingsDialog
|
|
5
|
-
import { _ as _export_sfc } from "./_plugin-vue_export-helper
|
|
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
|
|
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;;;;;;"}
|
package/dist/chunks/{NcAppSettingsShortcutsSection-DLwubKV9.mjs → NcAppSettingsShortcutsSection.mjs}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import '../assets/NcAppSettingsShortcutsSection
|
|
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
|
|
4
|
-
import { r as register,
|
|
5
|
-
import { _ as _export_sfc } from "./_plugin-vue_export-helper
|
|
6
|
-
register(
|
|
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 = "
|
|
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
|
|
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
|
|
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,
|
|
5
|
-
import { I as IconArrowRight } from "./ArrowRight
|
|
6
|
-
import { I as IconClose } from "./Close
|
|
7
|
-
import { _ as _export_sfc } from "./_plugin-vue_export-helper
|
|
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
|
|
10
|
-
import { i as isLegacy34 } from "./legacy
|
|
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,
|
|
14
|
-
import { c as createElementId } from "./createElementId
|
|
15
|
-
import { g as getTrapStack } from "./focusTrap
|
|
16
|
-
import { i as isSlotPopulated, N as NcActions } from "./NcActions
|
|
17
|
-
import { l as logger } from "./logger
|
|
18
|
-
import { _ as _sfc_main$7 } from "./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang
|
|
19
|
-
import { N as NcButton } from "./NcButton
|
|
20
|
-
import { C as CONTENT_SELECTOR_KEY } from "./
|
|
21
|
-
import { N as NcEmptyContent } from "./NcEmptyContent
|
|
22
|
-
import { N as NcLoadingIcon } from "./NcLoadingIcon
|
|
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
|
|
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
|
-
|
|
179
|
-
|
|
180
|
-
},
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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 = "
|
|
197
|
-
const sidebarTabsButton_legacy = "
|
|
198
|
-
const sidebarTabsButton_selected = "
|
|
199
|
-
const
|
|
200
|
-
const
|
|
201
|
-
const
|
|
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-
|
|
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-
|
|
422
|
-
register(
|
|
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-
|
|
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
|
|
1185
|
+
//# sourceMappingURL=NcAppSidebar.mjs.map
|