@nextcloud/vue 8.34.0 → 8.35.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -2
- package/dist/Components/NcActionButton.cjs +1 -1
- package/dist/Components/NcActionButton.mjs +1 -1
- package/dist/Components/NcActionButtonGroup.cjs +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +1 -1
- package/dist/Components/NcActionInput.cjs +1 -1
- package/dist/Components/NcActionInput.mjs +1 -1
- package/dist/Components/NcActionTextEditable.cjs +1 -1
- package/dist/Components/NcActionTextEditable.mjs +1 -1
- package/dist/Components/NcActions.cjs +1 -1
- package/dist/Components/NcActions.mjs +1 -1
- package/dist/Components/NcAppContent.cjs +1 -1
- package/dist/Components/NcAppContent.mjs +1 -1
- package/dist/Components/NcAppNavigation.cjs +1 -1
- package/dist/Components/NcAppNavigation.mjs +1 -1
- package/dist/Components/NcAppNavigationCaption.cjs +1 -1
- package/dist/Components/NcAppNavigationCaption.mjs +1 -1
- package/dist/Components/NcAppNavigationItem.cjs +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +1 -1
- package/dist/Components/NcAppNavigationNew.cjs +1 -1
- package/dist/Components/NcAppNavigationNew.mjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
- package/dist/Components/NcAppNavigationSearch.cjs +1 -1
- package/dist/Components/NcAppNavigationSearch.mjs +1 -1
- package/dist/Components/NcAppNavigationSettings.cjs +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +1 -1
- package/dist/Components/NcAppNavigationToggle.cjs +1 -1
- package/dist/Components/NcAppNavigationToggle.mjs +1 -1
- package/dist/Components/NcAppSettingsDialog.cjs +1 -1
- package/dist/Components/NcAppSettingsDialog.mjs +1 -1
- package/dist/Components/NcAppSettingsSection.cjs +1 -1
- package/dist/Components/NcAppSettingsSection.mjs +1 -1
- package/dist/Components/NcAppSettingsSectionShortcuts.cjs +1 -1
- package/dist/Components/NcAppSettingsSectionShortcuts.mjs +1 -1
- package/dist/Components/NcAppSettingsShortcutsSection.cjs +1 -1
- package/dist/Components/NcAppSettingsShortcutsSection.mjs +1 -1
- package/dist/Components/NcAppSidebar.cjs +1 -1
- package/dist/Components/NcAppSidebar.mjs +1 -1
- package/dist/Components/NcAssistantButton.cjs +1 -1
- package/dist/Components/NcAssistantButton.mjs +1 -1
- package/dist/Components/NcAssistantIcon.cjs +1 -1
- package/dist/Components/NcAssistantIcon.mjs +1 -1
- package/dist/Components/NcAvatar.cjs +1 -1
- package/dist/Components/NcAvatar.mjs +1 -1
- package/dist/Components/NcBreadcrumb.cjs +1 -1
- package/dist/Components/NcBreadcrumb.mjs +1 -1
- package/dist/Components/NcBreadcrumbs.cjs +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +1 -1
- package/dist/Components/NcButton.cjs +1 -1
- package/dist/Components/NcButton.mjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
- package/dist/Components/NcChip.cjs +7 -7
- package/dist/Components/NcChip.cjs.map +1 -1
- package/dist/Components/NcChip.mjs +7 -7
- package/dist/Components/NcChip.mjs.map +1 -1
- package/dist/Components/NcCollectionList.cjs +1 -1
- package/dist/Components/NcCollectionList.mjs +1 -1
- package/dist/Components/NcColorPicker.cjs +1 -1
- package/dist/Components/NcColorPicker.mjs +1 -1
- package/dist/Components/NcContent.cjs +1 -1
- package/dist/Components/NcContent.mjs +1 -1
- package/dist/Components/NcDashboardWidget.cjs +1 -1
- package/dist/Components/NcDashboardWidget.mjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
- package/dist/Components/NcDateTimePicker.cjs +5 -5
- package/dist/Components/NcDateTimePicker.mjs +5 -5
- package/dist/Components/NcDateTimePickerNative.cjs +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +1 -1
- package/dist/Components/NcDialog.cjs +1 -1
- package/dist/Components/NcDialog.mjs +1 -1
- package/dist/Components/NcDialogButton.cjs +1 -1
- package/dist/Components/NcDialogButton.mjs +1 -1
- package/dist/Components/NcEmojiPicker.cjs +1 -1
- package/dist/Components/NcEmojiPicker.mjs +1 -1
- package/dist/Components/NcFormBox.cjs +1 -1
- package/dist/Components/NcFormBox.mjs +1 -1
- package/dist/Components/NcFormBoxButton.cjs +1 -1
- package/dist/Components/NcFormBoxButton.mjs +1 -1
- package/dist/Components/NcFormBoxCopyButton.cjs +1 -1
- package/dist/Components/NcFormBoxCopyButton.mjs +1 -1
- package/dist/Components/NcFormBoxSwitch.cjs +1 -1
- package/dist/Components/NcFormBoxSwitch.mjs +1 -1
- package/dist/Components/NcHeaderButton.cjs +1 -1
- package/dist/Components/NcHeaderButton.mjs +1 -1
- package/dist/Components/NcHeaderMenu.cjs +1 -1
- package/dist/Components/NcHeaderMenu.mjs +1 -1
- package/dist/Components/NcHotkey.cjs +1 -1
- package/dist/Components/NcHotkey.mjs +1 -1
- package/dist/Components/NcHotkeyList.cjs +1 -1
- package/dist/Components/NcHotkeyList.mjs +1 -1
- package/dist/Components/NcIconSvgWrapper.cjs +1 -1
- package/dist/Components/NcIconSvgWrapper.mjs +1 -1
- package/dist/Components/NcInputField.cjs +1 -1
- package/dist/Components/NcInputField.mjs +1 -1
- package/dist/Components/NcKbd.cjs +1 -1
- package/dist/Components/NcKbd.mjs +1 -1
- package/dist/Components/NcListItem.cjs +1 -1
- package/dist/Components/NcListItem.mjs +1 -1
- package/dist/Components/NcListItemIcon.cjs +1 -1
- package/dist/Components/NcListItemIcon.mjs +1 -1
- package/dist/Components/NcModal.cjs +9 -9
- package/dist/Components/NcModal.cjs.map +1 -1
- package/dist/Components/NcModal.mjs +9 -9
- package/dist/Components/NcModal.mjs.map +1 -1
- package/dist/Components/NcNoteCard.cjs +2 -2
- package/dist/Components/NcNoteCard.cjs.map +1 -1
- package/dist/Components/NcNoteCard.mjs +2 -2
- package/dist/Components/NcNoteCard.mjs.map +1 -1
- package/dist/Components/NcPasswordField.cjs +1 -1
- package/dist/Components/NcPasswordField.mjs +1 -1
- package/dist/Components/NcPopover.cjs +1 -1
- package/dist/Components/NcPopover.mjs +1 -1
- package/dist/Components/NcRadioGroup.cjs +1 -1
- package/dist/Components/NcRadioGroup.mjs +1 -1
- package/dist/Components/NcRadioGroupButton.cjs +1 -1
- package/dist/Components/NcRadioGroupButton.mjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
- package/dist/Components/NcRichContenteditable.cjs +1 -1
- package/dist/Components/NcRichContenteditable.mjs +1 -1
- package/dist/Components/NcRichText.cjs +2 -2
- package/dist/Components/NcRichText.mjs +3 -3
- package/dist/Components/NcSelect.cjs +1 -1
- package/dist/Components/NcSelect.mjs +1 -1
- package/dist/Components/NcSelectTags.cjs +1 -1
- package/dist/Components/NcSelectTags.mjs +1 -1
- package/dist/Components/NcSelectUsers.cjs +1 -1
- package/dist/Components/NcSelectUsers.mjs +1 -1
- package/dist/Components/NcSettingsInputText.cjs +1 -1
- package/dist/Components/NcSettingsInputText.mjs +1 -1
- package/dist/Components/NcSettingsSection.cjs +1 -1
- package/dist/Components/NcSettingsSection.mjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
- package/dist/Components/NcTextArea.cjs +1 -1
- package/dist/Components/NcTextArea.mjs +1 -1
- package/dist/Components/NcTextField.cjs +1 -1
- package/dist/Components/NcTextField.mjs +1 -1
- package/dist/Components/NcThemeProvider.cjs +1 -1
- package/dist/Components/NcThemeProvider.mjs +1 -1
- package/dist/Components/NcTimezonePicker.cjs +1 -1
- package/dist/Components/NcTimezonePicker.mjs +1 -1
- package/dist/Components/NcUserBubble.cjs +1 -1
- package/dist/Components/NcUserBubble.mjs +1 -1
- package/dist/Components/NcUserStatusIcon.cjs +1 -1
- package/dist/Components/NcUserStatusIcon.mjs +1 -1
- package/dist/Composables/useFormatDateTime.cjs +1 -1
- package/dist/Composables/useFormatDateTime.mjs +1 -1
- package/dist/Composables/useHotKey.cjs +1 -1
- package/dist/Composables/useHotKey.cjs.map +1 -1
- package/dist/Composables/useHotKey.mjs +1 -1
- package/dist/Composables/useHotKey.mjs.map +1 -1
- package/dist/Composables/useIsDarkTheme.cjs +1 -1
- package/dist/Composables/useIsDarkTheme.mjs +1 -1
- package/dist/Functions/reference.cjs +1 -1
- package/dist/Functions/reference.mjs +1 -1
- package/dist/Functions/usernameToColor.cjs +1 -1
- package/dist/Functions/usernameToColor.mjs +1 -1
- package/dist/assets/{NcActionInput-BvPYSqDP.css → NcActionInput-B-c5cOfM.css} +65 -65
- package/dist/assets/{NcActions-Dfs69WGA.css → NcActions-CVw1SmBu.css} +11 -11
- package/dist/assets/{NcAppContent-Ri_iNfn5.css → NcAppContent-CY_qJiOL.css} +19 -19
- package/dist/assets/{NcAppNavigation-Bg4Oe7WC.css → NcAppNavigation-Dbpqdigp.css} +12 -12
- package/dist/assets/{NcAppNavigationItem-DSL2nLRf.css → NcAppNavigationItem-De04deJW.css} +36 -36
- package/dist/assets/{NcAppNavigationSearch-o97SOfOb.css → NcAppNavigationSearch-DWhTZbjb.css} +6 -6
- package/dist/assets/{NcAppSettingsDialog-TJ3aaiJI.css → NcAppSettingsDialog-p8V4OFR1.css} +39 -10
- package/dist/assets/{NcAppSidebar-Bd2cj1W-.css → NcAppSidebar-DujbJ9sN.css} +44 -44
- package/dist/assets/{NcAvatar-Cm4kVIfS.css → NcAvatar-CK9ipsjF.css} +24 -24
- package/dist/assets/{NcButton-uQUvp7DS.css → NcButton-n-KI8Bqb.css} +46 -46
- package/dist/assets/{NcCheckboxRadioSwitch-BcHKt-lf.css → NcCheckboxRadioSwitch-BACLOhMO.css} +13 -12
- package/dist/assets/{NcChip-ByvuZS2-.css → NcChip-DLfUzq07.css} +12 -12
- package/dist/assets/{NcDashboardWidget-DzJMoJ_B.css → NcDashboardWidget-CodY3evn.css} +12 -12
- package/dist/assets/{NcDateTimePicker-uS5WikmF.css → NcDateTimePicker-DScHHYaR.css} +8 -8
- package/dist/assets/{NcFormBoxItem-j2nGdOvd.css → NcFormBoxItem-BfXKp9xJ.css} +14 -14
- package/dist/assets/{NcFormBoxSwitch-BmyNQCbA.css → NcFormBoxSwitch-DScgbxtv.css} +2 -8
- package/dist/assets/{NcIconSvgWrapper-DJQ2Kuip.css → NcIconSvgWrapper-Cm1Dmlij.css} +7 -7
- package/dist/assets/NcIconToggleSwitch-Dr-tC5Ic.css +30 -0
- package/dist/assets/{NcInputField-CtUAgq1i.css → NcInputField-DDJ6W_1o.css} +84 -63
- package/dist/assets/{NcListItem-Czbi1F0Q.css → NcListItem-BX2N-9Dt.css} +44 -44
- package/dist/assets/{NcListItemIcon-Co3jVZZ8.css → NcListItemIcon-BDyiLlk2.css} +13 -13
- package/dist/assets/{NcModal-4ZPVUmG2.css → NcModal-CfHpabcF.css} +65 -65
- package/dist/assets/{NcNoteCard-Dz5-u2BY.css → NcNoteCard-CwNXZ4vV.css} +12 -12
- package/dist/assets/{NcPasswordField-mhXQk8aT.css → NcPasswordField-CiN_phAQ.css} +2 -2
- package/dist/assets/{NcRichText-Cr-HXxVi.css → NcRichText-C72XMOoz.css} +104 -87
- package/dist/assets/{NcSelect-B1pyRV6j.css → NcSelect-z8dCuG3q.css} +53 -6
- package/dist/assets/NcTextArea-Tr_3gutt.css +156 -0
- package/dist/chunks/{NcActionButton-BWM7FD0z.cjs → NcActionButton-jtEEPXw2.cjs} +3 -3
- package/dist/chunks/{NcActionButton-BWM7FD0z.cjs.map → NcActionButton-jtEEPXw2.cjs.map} +1 -1
- package/dist/chunks/{NcActionButton-DykQxmXJ.mjs → NcActionButton-w5F9kCHW.mjs} +3 -3
- package/dist/chunks/{NcActionButton-DykQxmXJ.mjs.map → NcActionButton-w5F9kCHW.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-Uol_nwut.mjs → NcActionButtonGroup-Dl_0bIqn.mjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-Uol_nwut.mjs.map → NcActionButtonGroup-Dl_0bIqn.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-Bqp4vRGy.cjs → NcActionButtonGroup-E-6SoAHx.cjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-Bqp4vRGy.cjs.map → NcActionButtonGroup-E-6SoAHx.cjs.map} +1 -1
- package/dist/chunks/{NcActionInput-BZGP5m4T.cjs → NcActionInput-CvTePip6.cjs} +7 -7
- package/dist/chunks/NcActionInput-CvTePip6.cjs.map +1 -0
- package/dist/chunks/{NcActionInput-pjhToEAw.mjs → NcActionInput-JVtIXzyo.mjs} +7 -7
- package/dist/chunks/NcActionInput-JVtIXzyo.mjs.map +1 -0
- package/dist/chunks/{NcActionTextEditable-JAg35gIb.cjs → NcActionTextEditable-CDkdl0jj.cjs} +3 -3
- package/dist/chunks/{NcActionTextEditable-JAg35gIb.cjs.map → NcActionTextEditable-CDkdl0jj.cjs.map} +1 -1
- package/dist/chunks/{NcActionTextEditable-Bnt0-S7Y.mjs → NcActionTextEditable-CfhlP5-E.mjs} +3 -3
- package/dist/chunks/{NcActionTextEditable-Bnt0-S7Y.mjs.map → NcActionTextEditable-CfhlP5-E.mjs.map} +1 -1
- package/dist/chunks/{NcActions-CpdT2y6O.mjs → NcActions-DXfOYf3w.mjs} +20 -7
- package/dist/chunks/NcActions-DXfOYf3w.mjs.map +1 -0
- package/dist/chunks/{NcActions-ykoV9rRj.cjs → NcActions-DhEGso92.cjs} +20 -7
- package/dist/chunks/NcActions-DhEGso92.cjs.map +1 -0
- package/dist/chunks/{NcAppContent-CABHzKrx.mjs → NcAppContent-D-MzdCDi.mjs} +7 -10
- package/dist/chunks/NcAppContent-D-MzdCDi.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-D2h4xrfv.cjs → NcAppContent-cKOp687H.cjs} +7 -10
- package/dist/chunks/NcAppContent-cKOp687H.cjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-BKgpMjQN.mjs → NcAppNavigation-BGc7ks7G.mjs} +4 -4
- package/dist/chunks/NcAppNavigation-BGc7ks7G.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-D_pDitZ1.cjs → NcAppNavigation-Ce5BoTSG.cjs} +4 -4
- package/dist/chunks/NcAppNavigation-Ce5BoTSG.cjs.map +1 -0
- package/dist/chunks/{NcAppNavigationCaption-CO99po3G.cjs → NcAppNavigationCaption-C8SUVqGR.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-CO99po3G.cjs.map → NcAppNavigationCaption-C8SUVqGR.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-CcWZR8rN.mjs → NcAppNavigationCaption-oRJEZSTQ.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-CcWZR8rN.mjs.map → NcAppNavigationCaption-oRJEZSTQ.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-Ca9CAehR.cjs → NcAppNavigationItem-DyMBscJd.cjs} +8 -8
- package/dist/chunks/NcAppNavigationItem-DyMBscJd.cjs.map +1 -0
- package/dist/chunks/{NcAppNavigationItem-BYWvtSRw.mjs → NcAppNavigationItem-zOxlduFj.mjs} +8 -8
- package/dist/chunks/NcAppNavigationItem-zOxlduFj.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNew-BYvFykgl.cjs → NcAppNavigationNew-ByTNXL-2.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationNew-BYvFykgl.cjs.map → NcAppNavigationNew-ByTNXL-2.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNew-BHzvRlVc.mjs → NcAppNavigationNew-t3Rkrwjh.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNew-BHzvRlVc.mjs.map → NcAppNavigationNew-t3Rkrwjh.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-CwhxGiXO.cjs → NcAppNavigationNewItem-BSsLh8nj.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-CwhxGiXO.cjs.map → NcAppNavigationNewItem-BSsLh8nj.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-DUNLtTs8.mjs → NcAppNavigationNewItem-D7Pn6vob.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-DUNLtTs8.mjs.map → NcAppNavigationNewItem-D7Pn6vob.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-Ci8jz_C2.mjs → NcAppNavigationSearch-BgivVWlR.mjs} +5 -5
- package/dist/chunks/NcAppNavigationSearch-BgivVWlR.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSearch-BC3LfUdL.cjs → NcAppNavigationSearch-DC2ybadu.cjs} +5 -5
- package/dist/chunks/NcAppNavigationSearch-DC2ybadu.cjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSettings-B29zrNPr.mjs → NcAppNavigationSettings-D5-V4TIs.mjs} +5 -5
- package/dist/chunks/{NcAppNavigationSettings-B29zrNPr.mjs.map → NcAppNavigationSettings-D5-V4TIs.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-Dt15jIbU.cjs → NcAppNavigationSettings-J1GIZ9QS.cjs} +5 -5
- package/dist/chunks/{NcAppNavigationSettings-Dt15jIbU.cjs.map → NcAppNavigationSettings-J1GIZ9QS.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-Bk99wJ65.cjs → NcAppNavigationToggle-C0Kc4R9v.cjs} +3 -3
- package/dist/chunks/{NcAppNavigationToggle-Bk99wJ65.cjs.map → NcAppNavigationToggle-C0Kc4R9v.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-DtNWDe9v.mjs → NcAppNavigationToggle-phm-tyID.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationToggle-DtNWDe9v.mjs.map → NcAppNavigationToggle-phm-tyID.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-C1mtjsnj.cjs → NcAppSettingsDialog-BSxqwcZ4.cjs} +52 -13
- package/dist/chunks/NcAppSettingsDialog-BSxqwcZ4.cjs.map +1 -0
- package/dist/chunks/{NcAppSettingsDialog-CF-oMoP_.mjs → NcAppSettingsDialog-CjnPlzCs.mjs} +53 -14
- package/dist/chunks/NcAppSettingsDialog-CjnPlzCs.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsSection-Cq1VIzMR.mjs → NcAppSettingsSection-BjQllLEA.mjs} +2 -2
- package/dist/chunks/{NcAppSettingsSection-Cq1VIzMR.mjs.map → NcAppSettingsSection-BjQllLEA.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsSection-Q5PB51ht.cjs → NcAppSettingsSection-CDLQ-AjK.cjs} +2 -2
- package/dist/chunks/{NcAppSettingsSection-Q5PB51ht.cjs.map → NcAppSettingsSection-CDLQ-AjK.cjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsShortcutsSection-DG3FQlb5.cjs → NcAppSettingsShortcutsSection-B0WBkOo9.cjs} +4 -4
- package/dist/chunks/NcAppSettingsShortcutsSection-B0WBkOo9.cjs.map +1 -0
- package/dist/chunks/{NcAppSettingsShortcutsSection-C089rPL6.mjs → NcAppSettingsShortcutsSection-DzjowBeE.mjs} +4 -4
- package/dist/chunks/NcAppSettingsShortcutsSection-DzjowBeE.mjs.map +1 -0
- package/dist/chunks/{NcAppSidebar-DwLrcwGi.cjs → NcAppSidebar-BDz7d7NJ.cjs} +8 -8
- package/dist/chunks/NcAppSidebar-BDz7d7NJ.cjs.map +1 -0
- package/dist/chunks/{NcAppSidebar-D5IUeKjd.mjs → NcAppSidebar-CdSeLJD4.mjs} +8 -8
- package/dist/chunks/NcAppSidebar-CdSeLJD4.mjs.map +1 -0
- package/dist/chunks/{NcAssistantButton-lRXTGAwe.mjs → NcAssistantButton-CjP2aanh.mjs} +5 -5
- package/dist/chunks/{NcAssistantButton-lRXTGAwe.mjs.map → NcAssistantButton-CjP2aanh.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantButton-DrYpawyR.cjs → NcAssistantButton-DQSwGT_7.cjs} +5 -5
- package/dist/chunks/{NcAssistantButton-DrYpawyR.cjs.map → NcAssistantButton-DQSwGT_7.cjs.map} +1 -1
- package/dist/chunks/{NcAssistantIcon-jHDGZ_Bd.cjs → NcAssistantIcon-Dn_unLGj.cjs} +2 -2
- package/dist/chunks/{NcAssistantIcon-jHDGZ_Bd.cjs.map → NcAssistantIcon-Dn_unLGj.cjs.map} +1 -1
- package/dist/chunks/{NcAssistantIcon-B9L1Ih5x.mjs → NcAssistantIcon-wlxNsdd7.mjs} +2 -2
- package/dist/chunks/{NcAssistantIcon-B9L1Ih5x.mjs.map → NcAssistantIcon-wlxNsdd7.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-D5nljVEA.mjs → NcAvatar-Cn98JTqK.mjs} +28 -24
- package/dist/chunks/NcAvatar-Cn98JTqK.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-BXRgjNXy.cjs → NcAvatar-DTYINOTI.cjs} +28 -24
- package/dist/chunks/NcAvatar-DTYINOTI.cjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-DCq7akG2.cjs → NcBreadcrumb-CkmzyLa_.cjs} +3 -3
- package/dist/chunks/{NcBreadcrumb-DCq7akG2.cjs.map → NcBreadcrumb-CkmzyLa_.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-BC6tmZfd.mjs → NcBreadcrumb-DB0OuwsV.mjs} +3 -3
- package/dist/chunks/{NcBreadcrumb-BC6tmZfd.mjs.map → NcBreadcrumb-DB0OuwsV.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-BPfsSByZ.mjs → NcBreadcrumbs-BizyuyGI.mjs} +4 -4
- package/dist/chunks/{NcBreadcrumbs-BPfsSByZ.mjs.map → NcBreadcrumbs-BizyuyGI.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-7dWiGWqj.cjs → NcBreadcrumbs-C4T9-I6M.cjs} +4 -4
- package/dist/chunks/{NcBreadcrumbs-7dWiGWqj.cjs.map → NcBreadcrumbs-C4T9-I6M.cjs.map} +1 -1
- package/dist/chunks/{NcButton-CJBZrdiL.cjs → NcButton-CuFElrFD.cjs} +3 -3
- package/dist/chunks/NcButton-CuFElrFD.cjs.map +1 -0
- package/dist/chunks/{NcButton-DUZTtFhr.mjs → NcButton-Dz2O6cSU.mjs} +3 -3
- package/dist/chunks/NcButton-Dz2O6cSU.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-DAPHFb0L.mjs → NcCheckboxRadioSwitch-CgbTELjq.mjs} +37 -104
- package/dist/chunks/NcCheckboxRadioSwitch-CgbTELjq.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-CC2UI0kG.cjs → NcCheckboxRadioSwitch-USANpRLI.cjs} +37 -104
- package/dist/chunks/NcCheckboxRadioSwitch-USANpRLI.cjs.map +1 -0
- package/dist/chunks/{NcCollectionList-DSugNziH.cjs → NcCollectionList-BjYItjGi.cjs} +6 -6
- package/dist/chunks/{NcCollectionList-DSugNziH.cjs.map → NcCollectionList-BjYItjGi.cjs.map} +1 -1
- package/dist/chunks/{NcCollectionList-B9weMM0Q.mjs → NcCollectionList-C7QmpJW9.mjs} +6 -6
- package/dist/chunks/{NcCollectionList-B9weMM0Q.mjs.map → NcCollectionList-C7QmpJW9.mjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-Chrtrp3i.cjs → NcColorPicker-Chsy5lX_.cjs} +8 -8
- package/dist/chunks/{NcColorPicker-Chrtrp3i.cjs.map → NcColorPicker-Chsy5lX_.cjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-DVkGUHxL.mjs → NcColorPicker-DnWT8i3g.mjs} +8 -8
- package/dist/chunks/{NcColorPicker-DVkGUHxL.mjs.map → NcColorPicker-DnWT8i3g.mjs.map} +1 -1
- package/dist/chunks/{NcContent-UoMpCfT3.cjs → NcContent-B0MLEwwX.cjs} +4 -4
- package/dist/chunks/{NcContent-UoMpCfT3.cjs.map → NcContent-B0MLEwwX.cjs.map} +1 -1
- package/dist/chunks/{NcContent-BPmE93Mq.mjs → NcContent-RSHRX9Ei.mjs} +4 -4
- package/dist/chunks/{NcContent-BPmE93Mq.mjs.map → NcContent-RSHRX9Ei.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-DpzjksBk.mjs → NcDashboardWidget-By1MRGQM.mjs} +6 -6
- package/dist/chunks/NcDashboardWidget-By1MRGQM.mjs.map +1 -0
- package/dist/chunks/{NcDashboardWidget-k5_NmYYZ.cjs → NcDashboardWidget-tPBonsAz.cjs} +6 -6
- package/dist/chunks/NcDashboardWidget-tPBonsAz.cjs.map +1 -0
- package/dist/chunks/{NcDashboardWidgetItem-DZ13sBtT.mjs → NcDashboardWidgetItem-D2CwvHeu.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-DZ13sBtT.mjs.map → NcDashboardWidgetItem-D2CwvHeu.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-CeA1eF60.cjs → NcDashboardWidgetItem-Zb-33B99.cjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-CeA1eF60.cjs.map → NcDashboardWidgetItem-Zb-33B99.cjs.map} +1 -1
- package/dist/chunks/{NcDialog-DUTlKw4_.cjs → NcDialog-ChYi3mdd.cjs} +2 -2
- package/dist/chunks/{NcDialog-DUTlKw4_.cjs.map → NcDialog-ChYi3mdd.cjs.map} +1 -1
- package/dist/chunks/{NcDialog-DDuqQeT-.mjs → NcDialog-DDWiv6ap.mjs} +2 -2
- package/dist/chunks/{NcDialog-DDuqQeT-.mjs.map → NcDialog-DDWiv6ap.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton-DyWjiA1e.cjs → NcDialogButton-DljI3tNu.cjs} +4 -4
- package/dist/chunks/{NcDialogButton-DyWjiA1e.cjs.map → NcDialogButton-DljI3tNu.cjs.map} +1 -1
- package/dist/chunks/{NcDialogButton-P7Ryycqk.mjs → NcDialogButton-lR5aJG_-.mjs} +4 -4
- package/dist/chunks/{NcDialogButton-P7Ryycqk.mjs.map → NcDialogButton-lR5aJG_-.mjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-D8d4iUUn.cjs → NcEmojiPicker-C0AfqJC9.cjs} +7 -7
- package/dist/chunks/{NcEmojiPicker-D8d4iUUn.cjs.map → NcEmojiPicker-C0AfqJC9.cjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-CpU37Ozq.mjs → NcEmojiPicker-DclGvRU_.mjs} +7 -7
- package/dist/chunks/{NcEmojiPicker-CpU37Ozq.mjs.map → NcEmojiPicker-DclGvRU_.mjs.map} +1 -1
- package/dist/chunks/{NcFormBox-DL435pbV.mjs → NcFormBox-C4wu4RJ_.mjs} +2 -2
- package/dist/chunks/{NcFormBox-DL435pbV.mjs.map → NcFormBox-C4wu4RJ_.mjs.map} +1 -1
- package/dist/chunks/{NcFormBox-_JqkU_xn.cjs → NcFormBox-DjrN-K4Q.cjs} +2 -2
- package/dist/chunks/{NcFormBox-_JqkU_xn.cjs.map → NcFormBox-DjrN-K4Q.cjs.map} +1 -1
- package/dist/chunks/{NcFormBoxButton-DN0-J4yN.mjs → NcFormBoxButton-4xiKHRJH.mjs} +4 -4
- package/dist/chunks/{NcFormBoxButton-DN0-J4yN.mjs.map → NcFormBoxButton-4xiKHRJH.mjs.map} +1 -1
- package/dist/chunks/{NcFormBoxButton-D-s5mL0c.cjs → NcFormBoxButton-WatYqw6i.cjs} +4 -4
- package/dist/chunks/{NcFormBoxButton-D-s5mL0c.cjs.map → NcFormBoxButton-WatYqw6i.cjs.map} +1 -1
- package/dist/chunks/{NcFormBoxCopyButton-Dwrfiovz.mjs → NcFormBoxCopyButton-AeYq9iKM.mjs} +9 -39
- package/dist/chunks/NcFormBoxCopyButton-AeYq9iKM.mjs.map +1 -0
- package/dist/chunks/{NcFormBoxCopyButton-CTHelPkb.cjs → NcFormBoxCopyButton-VM720MPU.cjs} +7 -37
- package/dist/chunks/NcFormBoxCopyButton-VM720MPU.cjs.map +1 -0
- package/dist/chunks/{NcFormBoxItem-CtrbGjnv.cjs → NcFormBoxItem-CK0Zakr1.cjs} +11 -11
- package/dist/chunks/{NcFormBoxItem-CtrbGjnv.cjs.map → NcFormBoxItem-CK0Zakr1.cjs.map} +1 -1
- package/dist/chunks/{NcFormBoxItem-DPBm3ZbJ.mjs → NcFormBoxItem-DJZrmlTP.mjs} +11 -11
- package/dist/chunks/{NcFormBoxItem-DPBm3ZbJ.mjs.map → NcFormBoxItem-DJZrmlTP.mjs.map} +1 -1
- package/dist/chunks/{NcFormBoxSwitch-CM3WaFkA.cjs → NcFormBoxSwitch-DGAjBKdo.cjs} +10 -13
- package/dist/chunks/NcFormBoxSwitch-DGAjBKdo.cjs.map +1 -0
- package/dist/chunks/{NcFormBoxSwitch-aOCNeI-K.mjs → NcFormBoxSwitch-Dq5JvIem.mjs} +10 -13
- package/dist/chunks/NcFormBoxSwitch-Dq5JvIem.mjs.map +1 -0
- package/dist/chunks/{NcHeaderButton-6kuTEKbj.cjs → NcHeaderButton-CpWQbzfF.cjs} +2 -2
- package/dist/chunks/{NcHeaderButton-6kuTEKbj.cjs.map → NcHeaderButton-CpWQbzfF.cjs.map} +1 -1
- package/dist/chunks/{NcHeaderButton-TgPjfPtk.mjs → NcHeaderButton-Dvo1_Bwc.mjs} +2 -2
- package/dist/chunks/{NcHeaderButton-TgPjfPtk.mjs.map → NcHeaderButton-Dvo1_Bwc.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-CwjH_j0c.cjs → NcHeaderMenu-Cmu-m_aM.cjs} +2 -2
- package/dist/chunks/{NcHeaderMenu-CwjH_j0c.cjs.map → NcHeaderMenu-Cmu-m_aM.cjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-Hk8OTuma.mjs → NcHeaderMenu-Cuh8ay0F.mjs} +2 -2
- package/dist/chunks/{NcHeaderMenu-Hk8OTuma.mjs.map → NcHeaderMenu-Cuh8ay0F.mjs.map} +1 -1
- package/dist/chunks/{NcHotkey-BMemJWSu.cjs → NcHotkey-B9IBly2F.cjs} +2 -2
- package/dist/chunks/{NcHotkey-BMemJWSu.cjs.map → NcHotkey-B9IBly2F.cjs.map} +1 -1
- package/dist/chunks/{NcHotkey-CzuMmIU9.mjs → NcHotkey-COqzksbg.mjs} +2 -2
- package/dist/chunks/{NcHotkey-CzuMmIU9.mjs.map → NcHotkey-COqzksbg.mjs.map} +1 -1
- package/dist/chunks/{NcHotkeyList-DAJkKYNu.cjs → NcHotkeyList-D5QS6zXI.cjs} +3 -3
- package/dist/chunks/{NcHotkeyList-DAJkKYNu.cjs.map → NcHotkeyList-D5QS6zXI.cjs.map} +1 -1
- package/dist/chunks/{NcHotkeyList-Bm25Odp7.mjs → NcHotkeyList-D9tKXM-e.mjs} +3 -3
- package/dist/chunks/{NcHotkeyList-Bm25Odp7.mjs.map → NcHotkeyList-D9tKXM-e.mjs.map} +1 -1
- package/dist/chunks/{NcIconSvgWrapper-D-aKMbf3.cjs → NcIconSvgWrapper-Bbl4kXZI.cjs} +4 -4
- package/dist/chunks/NcIconSvgWrapper-Bbl4kXZI.cjs.map +1 -0
- package/dist/chunks/{NcIconSvgWrapper-BreCg8pX.mjs → NcIconSvgWrapper-Bui9PhAS.mjs} +4 -4
- package/dist/chunks/NcIconSvgWrapper-Bui9PhAS.mjs.map +1 -0
- package/dist/chunks/NcIconToggleSwitch-C2VDKTSP.mjs +62 -0
- package/dist/chunks/NcIconToggleSwitch-C2VDKTSP.mjs.map +1 -0
- package/dist/chunks/NcIconToggleSwitch-Cnov67_2.cjs +61 -0
- package/dist/chunks/NcIconToggleSwitch-Cnov67_2.cjs.map +1 -0
- package/dist/chunks/{NcInputConfirmCancel-vqVq5qKL.cjs → NcInputConfirmCancel-BAM7SUH2.cjs} +3 -3
- package/dist/chunks/{NcInputConfirmCancel-vqVq5qKL.cjs.map → NcInputConfirmCancel-BAM7SUH2.cjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-CtdWwDCo.mjs → NcInputConfirmCancel-CrZiDaEw.mjs} +3 -3
- package/dist/chunks/{NcInputConfirmCancel-CtdWwDCo.mjs.map → NcInputConfirmCancel-CrZiDaEw.mjs.map} +1 -1
- package/dist/chunks/{NcInputField-DUtDY_1I.mjs → NcInputField-CZRuRX_c.mjs} +4 -4
- package/dist/chunks/NcInputField-CZRuRX_c.mjs.map +1 -0
- package/dist/chunks/{NcInputField-DAllLk3X.cjs → NcInputField-Dyvi0lw3.cjs} +4 -4
- package/dist/chunks/NcInputField-Dyvi0lw3.cjs.map +1 -0
- package/dist/chunks/{NcKbd-CfVfr9CW.mjs → NcKbd-CapL6_v1.mjs} +3 -3
- package/dist/chunks/{NcKbd-CfVfr9CW.mjs.map → NcKbd-CapL6_v1.mjs.map} +1 -1
- package/dist/chunks/{NcKbd-ewuqi-PO.cjs → NcKbd-DiOuj-R9.cjs} +3 -3
- package/dist/chunks/{NcKbd-ewuqi-PO.cjs.map → NcKbd-DiOuj-R9.cjs.map} +1 -1
- package/dist/chunks/{NcListItem-BommrKRB.mjs → NcListItem-BCsfLnyO.mjs} +4 -4
- package/dist/chunks/NcListItem-BCsfLnyO.mjs.map +1 -0
- package/dist/chunks/{NcListItem-DaRnEXN5.cjs → NcListItem-DO5dSzuL.cjs} +4 -4
- package/dist/chunks/NcListItem-DO5dSzuL.cjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-DT7XMp5c.mjs → NcListItemIcon-D--9lMWR.mjs} +5 -5
- package/dist/chunks/NcListItemIcon-D--9lMWR.mjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-2L14AYM5.cjs → NcListItemIcon-DShtuUOU.cjs} +5 -5
- package/dist/chunks/NcListItemIcon-DShtuUOU.cjs.map +1 -0
- package/dist/chunks/{NcPasswordField-B91RnUSh.mjs → NcPasswordField-Df0X4U3c.mjs} +7 -7
- package/dist/chunks/{NcPasswordField-BO0hL-T4.cjs.map → NcPasswordField-Df0X4U3c.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-BO0hL-T4.cjs → NcPasswordField-btocqVR7.cjs} +7 -7
- package/dist/chunks/{NcPasswordField-B91RnUSh.mjs.map → NcPasswordField-btocqVR7.cjs.map} +1 -1
- package/dist/chunks/{NcPopover-BgUZkmjk.cjs → NcPopover-CD8IwZd2.cjs} +4 -4
- package/dist/chunks/NcPopover-CD8IwZd2.cjs.map +1 -0
- package/dist/chunks/{NcPopover-gxcAqoEb.mjs → NcPopover-DmPH_emH.mjs} +4 -4
- package/dist/chunks/NcPopover-DmPH_emH.mjs.map +1 -0
- package/dist/chunks/{NcRadioGroup-D0rC63G8.mjs → NcRadioGroup-C2Nibs7w.mjs} +3 -3
- package/dist/chunks/{NcRadioGroup-D0rC63G8.mjs.map → NcRadioGroup-C2Nibs7w.mjs.map} +1 -1
- package/dist/chunks/{NcRadioGroup-D59En1O3.cjs → NcRadioGroup-zZIcG3FY.cjs} +3 -3
- package/dist/chunks/{NcRadioGroup-D59En1O3.cjs.map → NcRadioGroup-zZIcG3FY.cjs.map} +1 -1
- package/dist/chunks/{NcRadioGroupButton-3Pu4Iqdf.mjs → NcRadioGroupButton-Bzd7AZ5F.mjs} +3 -3
- package/dist/chunks/{NcRadioGroupButton-3Pu4Iqdf.mjs.map → NcRadioGroupButton-Bzd7AZ5F.mjs.map} +1 -1
- package/dist/chunks/{NcRadioGroupButton-DoOf7cE1.cjs → NcRadioGroupButton-C_T_e6DC.cjs} +3 -3
- package/dist/chunks/{NcRadioGroupButton-DoOf7cE1.cjs.map → NcRadioGroupButton-C_T_e6DC.cjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-D9-wo_xr.mjs → NcRelatedResourcesPanel-CZgZsBil.mjs} +4 -4
- package/dist/chunks/{NcRelatedResourcesPanel-D9-wo_xr.mjs.map → NcRelatedResourcesPanel-CZgZsBil.mjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-CpXbcI3f.cjs → NcRelatedResourcesPanel-DDEAaN_S.cjs} +4 -4
- package/dist/chunks/{NcRelatedResourcesPanel-CpXbcI3f.cjs.map → NcRelatedResourcesPanel-DDEAaN_S.cjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-BQNR-AeA.mjs → NcRichContenteditable-BitJ9Dpc.mjs} +8 -8
- package/dist/chunks/{NcRichContenteditable-BQNR-AeA.mjs.map → NcRichContenteditable-BitJ9Dpc.mjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-DsWbC4ZK.cjs → NcRichContenteditable-Y5XIH11o.cjs} +8 -8
- package/dist/chunks/{NcRichContenteditable-DsWbC4ZK.cjs.map → NcRichContenteditable-Y5XIH11o.cjs.map} +1 -1
- package/dist/chunks/{NcRichText-BfK6Ybyf.mjs → NcRichText-BoBTuJn0.mjs} +56 -16
- package/dist/chunks/NcRichText-BoBTuJn0.mjs.map +1 -0
- package/dist/chunks/{NcRichText-CSFIswpI.cjs → NcRichText-C-Sj_7GQ.cjs} +55 -15
- package/dist/chunks/NcRichText-C-Sj_7GQ.cjs.map +1 -0
- package/dist/chunks/{NcSelect-CgLK3i8n.cjs → NcSelect-B04XrVzV.cjs} +10 -7
- package/dist/chunks/NcSelect-B04XrVzV.cjs.map +1 -0
- package/dist/chunks/{NcSelect-DTniMiUS.mjs → NcSelect-vNUKMdvr.mjs} +10 -7
- package/dist/chunks/NcSelect-vNUKMdvr.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-CktuFsK3.mjs → NcSelectTags-BHfgOy9u.mjs} +3 -3
- package/dist/chunks/{NcSelectTags-CktuFsK3.mjs.map → NcSelectTags-BHfgOy9u.mjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-DRotL4u-.cjs → NcSelectTags-DeVGcDZr.cjs} +3 -3
- package/dist/chunks/{NcSelectTags-DRotL4u-.cjs.map → NcSelectTags-DeVGcDZr.cjs.map} +1 -1
- package/dist/chunks/{NcSelectUsers-RyUVUaWQ.mjs → NcSelectUsers--GvJjma1.mjs} +4 -4
- package/dist/chunks/{NcSelectUsers-RyUVUaWQ.mjs.map → NcSelectUsers--GvJjma1.mjs.map} +1 -1
- package/dist/chunks/{NcSelectUsers-Vy7qpE1b.cjs → NcSelectUsers-BSi-wQFH.cjs} +4 -4
- package/dist/chunks/{NcSelectUsers-Vy7qpE1b.cjs.map → NcSelectUsers-BSi-wQFH.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-DJ1lsJ-4.cjs → NcSettingsInputText-BmZijZoF.cjs} +2 -2
- package/dist/chunks/{NcSettingsInputText-DJ1lsJ-4.cjs.map → NcSettingsInputText-BmZijZoF.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-Dtr4Rn2b.mjs → NcSettingsInputText-DRgdOe4X.mjs} +2 -2
- package/dist/chunks/{NcSettingsInputText-Dtr4Rn2b.mjs.map → NcSettingsInputText-DRgdOe4X.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-BniKad1K.mjs → NcSettingsSection-10O9VU1F.mjs} +2 -2
- package/dist/chunks/{NcSettingsSection-BniKad1K.mjs.map → NcSettingsSection-10O9VU1F.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-DGoocV82.cjs → NcSettingsSection-Ck1k_G_E.cjs} +2 -2
- package/dist/chunks/{NcSettingsSection-DGoocV82.cjs.map → NcSettingsSection-Ck1k_G_E.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-DRp_BpNb.cjs → NcSettingsSelectGroup-Chz3fOJq.cjs} +3 -3
- package/dist/chunks/{NcSettingsSelectGroup-DRp_BpNb.cjs.map → NcSettingsSelectGroup-Chz3fOJq.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-D4_09H0F.mjs → NcSettingsSelectGroup-Dqh2jQi_.mjs} +3 -3
- package/dist/chunks/{NcSettingsSelectGroup-D4_09H0F.mjs.map → NcSettingsSelectGroup-Dqh2jQi_.mjs.map} +1 -1
- package/dist/chunks/{NcTextArea-DHmD6-6s.mjs → NcTextArea-CIgfjLRv.mjs} +3 -3
- package/dist/chunks/NcTextArea-CIgfjLRv.mjs.map +1 -0
- package/dist/chunks/{NcTextArea-DkVtHTpD.cjs → NcTextArea-Dd8ctlvG.cjs} +3 -3
- package/dist/chunks/NcTextArea-Dd8ctlvG.cjs.map +1 -0
- package/dist/chunks/{NcTextField-YOwuZ0wq.cjs → NcTextField-DiFoJmdM.cjs} +5 -5
- package/dist/chunks/NcTextField-DiFoJmdM.cjs.map +1 -0
- package/dist/chunks/{NcTextField-CfZknuqx.mjs → NcTextField-DyPJI6lW.mjs} +5 -5
- package/dist/chunks/NcTextField-DyPJI6lW.mjs.map +1 -0
- package/dist/chunks/{NcThemeProvider-25ResoIv.mjs → NcThemeProvider-BA_zMjAf.mjs} +2 -2
- package/dist/chunks/{NcThemeProvider-25ResoIv.mjs.map → NcThemeProvider-BA_zMjAf.mjs.map} +1 -1
- package/dist/chunks/{NcThemeProvider-BqGPTeWg.cjs → NcThemeProvider-BOKkNukO.cjs} +2 -2
- package/dist/chunks/{NcThemeProvider-BqGPTeWg.cjs.map → NcThemeProvider-BOKkNukO.cjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-CuJzNsPZ.cjs → NcTimezonePicker-2dMBEhRN.cjs} +3 -3
- package/dist/chunks/{NcTimezonePicker-CuJzNsPZ.cjs.map → NcTimezonePicker-2dMBEhRN.cjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-DgoDpdHS.mjs → NcTimezonePicker-Cirerde6.mjs} +3 -3
- package/dist/chunks/{NcTimezonePicker-DgoDpdHS.mjs.map → NcTimezonePicker-Cirerde6.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-VLY4hn5K.mjs → NcUserBubble-DT9YWw5v.mjs} +3 -3
- package/dist/chunks/{NcUserBubble-VLY4hn5K.mjs.map → NcUserBubble-DT9YWw5v.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-DwJgtybL.cjs → NcUserBubble-OTn2y2Qh.cjs} +3 -3
- package/dist/chunks/{NcUserBubble-DwJgtybL.cjs.map → NcUserBubble-OTn2y2Qh.cjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-D_kxQky5.mjs → NcUserStatusIcon-BNyLZCP1.mjs} +2 -2
- package/dist/chunks/{NcUserStatusIcon-D_kxQky5.mjs.map → NcUserStatusIcon-BNyLZCP1.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-DaYZfl2J.cjs → NcUserStatusIcon-CeS_I2cx.cjs} +2 -2
- package/dist/chunks/{NcUserStatusIcon-DaYZfl2J.cjs.map → NcUserStatusIcon-CeS_I2cx.cjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-B59v3zbZ.cjs → ScopeComponent-CeSMfr4m.cjs} +2 -2
- package/dist/chunks/{ScopeComponent-B59v3zbZ.cjs.map → ScopeComponent-CeSMfr4m.cjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-B4ZR5mwH.mjs → ScopeComponent-lxrc03tk.mjs} +2 -2
- package/dist/chunks/{ScopeComponent-B4ZR5mwH.mjs.map → ScopeComponent-lxrc03tk.mjs.map} +1 -1
- package/dist/chunks/_l10n-BcrsamRV.mjs +149 -0
- package/dist/chunks/_l10n-BcrsamRV.mjs.map +1 -0
- package/dist/chunks/_l10n-IBFNlYqh.cjs +148 -0
- package/dist/chunks/{_l10n-B4clLGwo.cjs.map → _l10n-IBFNlYqh.cjs.map} +1 -1
- package/dist/chunks/appName-D8lIU8jk.cjs +43 -0
- package/dist/chunks/appName-D8lIU8jk.cjs.map +1 -0
- package/dist/chunks/appName-DA23ARcC.mjs +44 -0
- package/dist/chunks/appName-DA23ARcC.mjs.map +1 -0
- package/dist/chunks/{colors-FtmuYvMf.cjs → colors-DSOGBWbF.cjs} +2 -2
- package/dist/chunks/{colors-FtmuYvMf.cjs.map → colors-DSOGBWbF.cjs.map} +1 -1
- package/dist/chunks/{colors-BwQwSDJi.mjs → colors-DqvwWwoq.mjs} +2 -2
- package/dist/chunks/{colors-BwQwSDJi.mjs.map → colors-DqvwWwoq.mjs.map} +1 -1
- package/dist/chunks/{constants-C_lA-vcp.cjs → constants-D-Hp78ng.cjs} +2 -2
- package/dist/chunks/{constants-C_lA-vcp.cjs.map → constants-D-Hp78ng.cjs.map} +1 -1
- package/dist/chunks/{constants-Bls5liKo.mjs → constants-wIEKSp2G.mjs} +2 -2
- package/dist/chunks/{constants-Bls5liKo.mjs.map → constants-wIEKSp2G.mjs.map} +1 -1
- package/dist/chunks/{mdi-CVXTs58m.cjs → mdi-BLgCcHlv.cjs} +1 -5
- package/dist/chunks/{mdi-CVXTs58m.cjs.map → mdi-BLgCcHlv.cjs.map} +1 -1
- package/dist/chunks/{mdi-C_j0YT8c.mjs → mdi-CNJ_YP0l.mjs} +11 -15
- package/dist/chunks/{mdi-C_j0YT8c.mjs.map → mdi-CNJ_YP0l.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-CHpUHrDL.mjs → referencePickerModal-B8AfZsD_.mjs} +6 -6
- package/dist/chunks/{referencePickerModal-CHpUHrDL.mjs.map → referencePickerModal-B8AfZsD_.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-CJNn-fvp.cjs → referencePickerModal-BfGuwv98.cjs} +6 -6
- package/dist/chunks/{referencePickerModal-CJNn-fvp.cjs.map → referencePickerModal-BfGuwv98.cjs.map} +1 -1
- package/dist/chunks/useAppSettingsDialog-C73Wx6iQ.mjs +12 -0
- package/dist/chunks/{useAppSettingsDialog-DbtEkXa4.mjs.map → useAppSettingsDialog-C73Wx6iQ.mjs.map} +1 -1
- package/dist/chunks/{useAppSettingsDialog-BfnyikIV.cjs → useAppSettingsDialog-DKwz-cwX.cjs} +3 -3
- package/dist/chunks/{useAppSettingsDialog-BfnyikIV.cjs.map → useAppSettingsDialog-DKwz-cwX.cjs.map} +1 -1
- package/dist/chunks/useCopy-B8YTkOhE.cjs +39 -0
- package/dist/chunks/useCopy-B8YTkOhE.cjs.map +1 -0
- package/dist/chunks/useCopy-BWnr0WjK.mjs +40 -0
- package/dist/chunks/useCopy-BWnr0WjK.mjs.map +1 -0
- package/dist/chunks/{useNcFormBox-DA9iwXWY.mjs → useNcFormBox-Djlh582y.mjs} +2 -2
- package/dist/chunks/{useNcFormBox-DA9iwXWY.mjs.map → useNcFormBox-Djlh582y.mjs.map} +1 -1
- package/dist/chunks/{useNcFormBox-DQeOEuQp.cjs → useNcFormBox-XowgPxpI.cjs} +2 -2
- package/dist/chunks/{useNcFormBox-DQeOEuQp.cjs.map → useNcFormBox-XowgPxpI.cjs.map} +1 -1
- package/dist/chunks/{useNcRadioGroup-DaZbEKbf.mjs → useNcRadioGroup-D6llQmAl.mjs} +2 -2
- package/dist/chunks/{useNcRadioGroup-DaZbEKbf.mjs.map → useNcRadioGroup-D6llQmAl.mjs.map} +1 -1
- package/dist/chunks/{useNcRadioGroup-Djvu7bo0.cjs → useNcRadioGroup-rLYISWKB.cjs} +2 -2
- package/dist/chunks/{useNcRadioGroup-Djvu7bo0.cjs.map → useNcRadioGroup-rLYISWKB.cjs.map} +1 -1
- package/dist/{components/NcFormBoxCopyButton → composables}/useCopy.d.ts +2 -0
- package/dist/index.cjs +64 -64
- package/dist/index.mjs +65 -65
- package/dist/utils/appName.d.ts +10 -0
- package/dist/utils/utils.d.ts +10 -0
- package/package.json +19 -19
- package/dist/assets/NcTextArea-B6zS3CRN.css +0 -136
- package/dist/chunks/NcActionInput-BZGP5m4T.cjs.map +0 -1
- package/dist/chunks/NcActionInput-pjhToEAw.mjs.map +0 -1
- package/dist/chunks/NcActions-CpdT2y6O.mjs.map +0 -1
- package/dist/chunks/NcActions-ykoV9rRj.cjs.map +0 -1
- package/dist/chunks/NcAppContent-CABHzKrx.mjs.map +0 -1
- package/dist/chunks/NcAppContent-D2h4xrfv.cjs.map +0 -1
- package/dist/chunks/NcAppNavigation-BKgpMjQN.mjs.map +0 -1
- package/dist/chunks/NcAppNavigation-D_pDitZ1.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-BYWvtSRw.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-Ca9CAehR.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationSearch-BC3LfUdL.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationSearch-Ci8jz_C2.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-C1mtjsnj.cjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-CF-oMoP_.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsShortcutsSection-C089rPL6.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsShortcutsSection-DG3FQlb5.cjs.map +0 -1
- package/dist/chunks/NcAppSidebar-D5IUeKjd.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-DwLrcwGi.cjs.map +0 -1
- package/dist/chunks/NcAvatar-BXRgjNXy.cjs.map +0 -1
- package/dist/chunks/NcAvatar-D5nljVEA.mjs.map +0 -1
- package/dist/chunks/NcButton-CJBZrdiL.cjs.map +0 -1
- package/dist/chunks/NcButton-DUZTtFhr.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-CC2UI0kG.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-DAPHFb0L.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-DpzjksBk.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-k5_NmYYZ.cjs.map +0 -1
- package/dist/chunks/NcFormBoxCopyButton-CTHelPkb.cjs.map +0 -1
- package/dist/chunks/NcFormBoxCopyButton-Dwrfiovz.mjs.map +0 -1
- package/dist/chunks/NcFormBoxSwitch-CM3WaFkA.cjs.map +0 -1
- package/dist/chunks/NcFormBoxSwitch-aOCNeI-K.mjs.map +0 -1
- package/dist/chunks/NcIconSvgWrapper-BreCg8pX.mjs.map +0 -1
- package/dist/chunks/NcIconSvgWrapper-D-aKMbf3.cjs.map +0 -1
- package/dist/chunks/NcInputField-DAllLk3X.cjs.map +0 -1
- package/dist/chunks/NcInputField-DUtDY_1I.mjs.map +0 -1
- package/dist/chunks/NcListItem-BommrKRB.mjs.map +0 -1
- package/dist/chunks/NcListItem-DaRnEXN5.cjs.map +0 -1
- package/dist/chunks/NcListItemIcon-2L14AYM5.cjs.map +0 -1
- package/dist/chunks/NcListItemIcon-DT7XMp5c.mjs.map +0 -1
- package/dist/chunks/NcPopover-BgUZkmjk.cjs.map +0 -1
- package/dist/chunks/NcPopover-gxcAqoEb.mjs.map +0 -1
- package/dist/chunks/NcRichText-BfK6Ybyf.mjs.map +0 -1
- package/dist/chunks/NcRichText-CSFIswpI.cjs.map +0 -1
- package/dist/chunks/NcSelect-CgLK3i8n.cjs.map +0 -1
- package/dist/chunks/NcSelect-DTniMiUS.mjs.map +0 -1
- package/dist/chunks/NcTextArea-DHmD6-6s.mjs.map +0 -1
- package/dist/chunks/NcTextArea-DkVtHTpD.cjs.map +0 -1
- package/dist/chunks/NcTextField-CfZknuqx.mjs.map +0 -1
- package/dist/chunks/NcTextField-YOwuZ0wq.cjs.map +0 -1
- package/dist/chunks/_l10n-B4clLGwo.cjs +0 -138
- package/dist/chunks/_l10n-BmKQgz1z.mjs +0 -139
- package/dist/chunks/_l10n-BmKQgz1z.mjs.map +0 -1
- package/dist/chunks/useAppSettingsDialog-DbtEkXa4.mjs +0 -12
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import '../assets/NcFormBoxSwitch-
|
|
1
|
+
import '../assets/NcFormBoxSwitch-DScgbxtv.css';
|
|
2
2
|
import { defineComponent, watch } from "vue";
|
|
3
|
-
import { f as mdiToggleSwitchOff, g as mdiToggleSwitch } from "./mdi-C_j0YT8c.mjs";
|
|
4
3
|
import { useVModel } from "@vueuse/core";
|
|
5
|
-
import { N as NcFormBoxItem } from "./NcFormBoxItem-
|
|
6
|
-
import { N as
|
|
4
|
+
import { N as NcFormBoxItem } from "./NcFormBoxItem-DJZrmlTP.mjs";
|
|
5
|
+
import { N as NcIconToggleSwitch } from "./NcIconToggleSwitch-C2VDKTSP.mjs";
|
|
7
6
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
8
7
|
import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
9
8
|
const __default__ = {
|
|
@@ -24,7 +23,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
24
23
|
emits: ["enable", "disable", "update:modelValue"],
|
|
25
24
|
setup(__props, { emit }) {
|
|
26
25
|
const props = __props;
|
|
27
|
-
const model = useVModel(props, "modelValue", emit);
|
|
26
|
+
const model = useVModel(props, "modelValue", emit, { passive: true });
|
|
28
27
|
const inputId = createElementId();
|
|
29
28
|
watch(model, () => {
|
|
30
29
|
if (model.value) {
|
|
@@ -37,15 +36,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
37
36
|
// Watching it synchronously to emit the enable/disable events together with the update:modelValue event
|
|
38
37
|
flush: "sync"
|
|
39
38
|
});
|
|
40
|
-
return { __sfc: true, props, emit, model, inputId,
|
|
39
|
+
return { __sfc: true, props, emit, model, inputId, NcFormBoxItem, NcIconToggleSwitch };
|
|
41
40
|
}
|
|
42
41
|
});
|
|
43
|
-
const formBoxSwitch__input = "
|
|
44
|
-
const formBoxSwitch__icon = "_formBoxSwitch__icon_hjv1a_34";
|
|
42
|
+
const formBoxSwitch__input = "_formBoxSwitch__input_njiy8_20";
|
|
45
43
|
const style0 = {
|
|
46
|
-
"material-design-icon": "_material-design-
|
|
47
|
-
formBoxSwitch__input
|
|
48
|
-
formBoxSwitch__icon
|
|
44
|
+
"material-design-icon": "_material-design-icon_njiy8_12",
|
|
45
|
+
formBoxSwitch__input
|
|
49
46
|
};
|
|
50
47
|
var _sfc_render = function render() {
|
|
51
48
|
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
@@ -70,7 +67,7 @@ var _sfc_render = function render() {
|
|
|
70
67
|
} else {
|
|
71
68
|
_setup.model = $$c;
|
|
72
69
|
}
|
|
73
|
-
} } }), _c(_setup.
|
|
70
|
+
} } }), _c(_setup.NcIconToggleSwitch, { attrs: { "checked": _vm.modelValue, "inline": "" } })];
|
|
74
71
|
} }], null, true) });
|
|
75
72
|
};
|
|
76
73
|
var _sfc_staticRenderFns = [];
|
|
@@ -94,4 +91,4 @@ const NcFormBoxSwitch = __component__.exports;
|
|
|
94
91
|
export {
|
|
95
92
|
NcFormBoxSwitch as N
|
|
96
93
|
};
|
|
97
|
-
//# sourceMappingURL=NcFormBoxSwitch-
|
|
94
|
+
//# sourceMappingURL=NcFormBoxSwitch-Dq5JvIem.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcFormBoxSwitch-Dq5JvIem.mjs","sources":["../../src/components/NcFormBoxSwitch/NcFormBoxSwitch.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script lang=\"ts\">\nexport default {\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { watch } from 'vue'\nimport NcFormBoxItem from '../NcFormBox/NcFormBoxItem.vue'\nimport NcIconToggleSwitch from '../NcIconToggleSwitch/NcIconToggleSwitch.vue'\nimport { createElementId } from '../../utils/createElementId.ts'\n\nconst props = withDefaults(defineProps<{\n\t/** Main label */\n\tlabel?: string\n\t/** Optional description below the label, also used for the aria-describedby */\n\tdescription?: string\n\t/** Disabled state */\n\tdisabled?: boolean\n\t/** Switch toggle model value */\n\tmodelValue: boolean // eslint-disable-line vue/no-unused-properties\n}>(), {\n\tlabel: undefined,\n\tdescription: undefined,\n\tdisabled: false,\n})\n\nconst emit = defineEmits<{\n\t/** Switch is toggled ON */\n\t(event: 'enable'): void\n\t/** Switch is toggled OFF */\n\t(event: 'disable'): void\n\t(event: 'update:modelValue', value: boolean): void\n}>()\n\nconst model = useVModel(props, 'modelValue', emit, { passive: true })\n\nconst inputId = createElementId()\n\nwatch(model, () => {\n\tif (model.value) {\n\t\temit('enable')\n\t} else {\n\t\temit('disable')\n\t}\n}, {\n\t// defineModel emits update:modelValue synchronously\n\t// Watching it synchronously to emit the enable/disable events together with the update:modelValue event\n\tflush: 'sync',\n})\n</script>\n\n<template>\n\t<NcFormBoxItem\n\t\ttag=\"label\"\n\t\t:for=\"inputId\">\n\t\t<template v-if=\"$slots.default || label\" #default>\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot>\n\t\t\t\t{{ label }}\n\t\t\t</slot>\n\t\t</template>\n\t\t<template v-if=\"$slots.description || description\" #description>\n\t\t\t<!-- @slot Custom description content -->\n\t\t\t<slot name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</template>\n\t\t<template #icon=\"{ descriptionId }\">\n\t\t\t<input\n\t\t\t\t:id=\"inputId\"\n\t\t\t\tv-model=\"model\"\n\t\t\t\t:class=\"$style.formBoxSwitch__input\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\trole=\"switch\"\n\t\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\t\t:disabled=\"disabled\">\n\t\t\t<NcIconToggleSwitch :checked=\"modelValue\" inline />\n\t\t</template>\n\t</NcFormBoxItem>\n</template>\n\n<style lang=\"scss\" module>\ninput.formBoxSwitch__input {\n\tmargin: 0;\n\twidth: var(--default-clickable-area);\n\t/* Keep it visually hidden but on the position of visual switch icon */\n\tposition: absolute;\n\tinset-block: 0;\n\tinset-inline-end: var(--form-element-label-offset);\n\tz-index: -1;\n\topacity: 0 !important;\n\t/* Override server styles */\n\theight: auto;\n\tcursor: inherit;\n}\n</style>\n\n<docs>\n### General\n\nA toggle switch to be used within `<NcFormBox>`.\n\nLike other form box items, it has a label and an optional description.\n\nIn addition to the standard `v-model` binding, it emits `enable` and `disable` events when toggled **on** or **off**.\n\n```vue\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tswitchValue: false,\n\t\t}\n\t},\n\tmethods: {\n\t\tlog: console.log,\n\t},\n}\n</script>\n\n<template>\n\t<NcFormBox>\n\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Turn camera and microphone off by default\" />\n\t\t<NcFormBoxSwitch\n\t\t\tv-model=\"switchValue\"\n\t\t\tlabel=\"Blur camera background by default\"\n\t\t\tdisabled />\n\t\t<NcFormBoxSwitch\n\t\t\tv-model=\"switchValue\"\n\t\t\tlabel=\"Skip device preview before joining a call\"\n\t\t\tdescription=\"Will always show if recording consent is required\"\n\t\t\t@update:modelValue=\"log('Switch toggled', $event, switchValue)\"\n\t\t\t@enable=\"log('Switch enabled', switchValue)\"\n\t\t\t@disable=\"log('Switch disabled', switchValue)\"\n\t\t/>\n\t\t<NcFormBoxSwitch v-model=\"switchValue\" />\n\t</NcFormBox>\n</template>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;AAMA,MAAA,cAAe;AAAA,EACd,OAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAET;;;;;;;;;;;;;AAiCA,UAAM,QAAQ,UAAU,OAAO,cAAc,MAAM,EAAE,SAAS,MAAM;AAEpE,UAAM,UAAU,gBAAA;AAEhB,UAAM,OAAO,MAAM;AAClB,UAAI,MAAM,OAAO;AAChB,aAAK,QAAQ;AAAA,MACd,OAAO;AACN,aAAK,SAAS;AAAA,MACf;AAAA,IACD,GAAG;AAAA;AAAA;AAAA,MAGF,OAAO;AAAA,IAAA,CACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('../assets/NcHeaderButton-DI-1Gsph.css');
|
|
2
2
|
"use strict";
|
|
3
3
|
const GenRandomId = require("./GenRandomId-D7iOvpZS.cjs");
|
|
4
|
-
const NcButton = require("./NcButton-
|
|
4
|
+
const NcButton = require("./NcButton-CuFElrFD.cjs");
|
|
5
5
|
const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
|
|
6
6
|
const _sfc_main = {
|
|
7
7
|
name: "NcHeaderButton",
|
|
@@ -60,4 +60,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
60
60
|
);
|
|
61
61
|
const NcHeaderButton = __component__.exports;
|
|
62
62
|
exports.NcHeaderButton = NcHeaderButton;
|
|
63
|
-
//# sourceMappingURL=NcHeaderButton-
|
|
63
|
+
//# sourceMappingURL=NcHeaderButton-CpWQbzfF.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHeaderButton-
|
|
1
|
+
{"version":3,"file":"NcHeaderButton-CpWQbzfF.cjs","sources":["../../src/components/NcHeaderButton/NcHeaderButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header,\nsimilar to the NcHeaderMenu but to be used when only a trigger button is needed, e.g. when opening a dialog.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderButton id=\"search-dialog\"\n\t\t\taria-label=\"Search\"\n\t\t\t@click=\"showDialog = true\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t</NcHeaderButton>\n\n\t\t<NcDialog name=\"Search\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showDialog\">\n\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t<NcEmptyContent name=\"Search\"\n\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</NcDialog>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowDialog: false,\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<!-- We need a wrapper for server styles to apply -->\n\t<div :id=\"id\" class=\"header-menu\">\n\t\t<NcButton\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"$emit('click', $event)\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderButton',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` attribute of the button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../NcHeaderMenu/header-menu__trigger.scss';\n</style>\n"],"names":["NcButton","GenRandomId"],"mappings":";;;;AA6FA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAA,SAAAA;AAAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,eAAAC,YAAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../assets/NcHeaderButton-DI-1Gsph.css';
|
|
2
2
|
import { G as GenRandomId } from "./GenRandomId-F5ebeBB_.mjs";
|
|
3
|
-
import { N as NcButton } from "./NcButton-
|
|
3
|
+
import { N as NcButton } from "./NcButton-Dz2O6cSU.mjs";
|
|
4
4
|
import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
5
5
|
const _sfc_main = {
|
|
6
6
|
name: "NcHeaderButton",
|
|
@@ -61,4 +61,4 @@ const NcHeaderButton = __component__.exports;
|
|
|
61
61
|
export {
|
|
62
62
|
NcHeaderButton as N
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=NcHeaderButton-
|
|
64
|
+
//# sourceMappingURL=NcHeaderButton-Dvo1_Bwc.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHeaderButton-
|
|
1
|
+
{"version":3,"file":"NcHeaderButton-Dvo1_Bwc.mjs","sources":["../../src/components/NcHeaderButton/NcHeaderButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header,\nsimilar to the NcHeaderMenu but to be used when only a trigger button is needed, e.g. when opening a dialog.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderButton id=\"search-dialog\"\n\t\t\taria-label=\"Search\"\n\t\t\t@click=\"showDialog = true\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t</NcHeaderButton>\n\n\t\t<NcDialog name=\"Search\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showDialog\">\n\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t<NcEmptyContent name=\"Search\"\n\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</NcDialog>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowDialog: false,\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<!-- We need a wrapper for server styles to apply -->\n\t<div :id=\"id\" class=\"header-menu\">\n\t\t<NcButton\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"$emit('click', $event)\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderButton',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` attribute of the button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../NcHeaderMenu/header-menu__trigger.scss';\n</style>\n"],"names":[],"mappings":";;;AA6FA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,eAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -21,7 +21,7 @@ require("@nextcloud/capabilities");
|
|
|
21
21
|
require("./logger-3HuiEIF6.cjs");
|
|
22
22
|
const focusTrap$1 = require("./focusTrap-DUTqW_IG.cjs");
|
|
23
23
|
const GenRandomId = require("./GenRandomId-D7iOvpZS.cjs");
|
|
24
|
-
const NcButton = require("./NcButton-
|
|
24
|
+
const NcButton = require("./NcButton-CuFElrFD.cjs");
|
|
25
25
|
const _sfc_main = {
|
|
26
26
|
name: "NcHeaderMenu",
|
|
27
27
|
components: {
|
|
@@ -230,4 +230,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
230
230
|
);
|
|
231
231
|
const NcHeaderMenu = __component__.exports;
|
|
232
232
|
exports.NcHeaderMenu = NcHeaderMenu;
|
|
233
|
-
//# sourceMappingURL=NcHeaderMenu-
|
|
233
|
+
//# sourceMappingURL=NcHeaderMenu-Cmu-m_aM.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHeaderMenu-CwjH_j0c.cjs","sources":["../../src/components/NcHeaderMenu/NcHeaderMenu.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderMenu id=\"search\"\n\t\t\taria-label=\"Search\">\n\t\t\t<template #trigger>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t\t<div>\n\t\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\tstyle=\"padding-inline: 8px;\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tname=\"Search\"\n\t\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Magnify />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</NcHeaderMenu>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"wrapperTag\"\n\t\t:id=\"id\"\n\t\tref=\"headerMenu\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:aria-labelledby=\"isNav ? triggerId : null\"\n\t\t:class=\"{ 'header-menu--opened': opened }\"\n\t\tclass=\"header-menu\"\n\t\tv-on=\"listeners\">\n\t\t<!-- Trigger -->\n\t\t<NcButton\n\t\t\t:id=\"isNav ? triggerId : null\"\n\t\t\tref=\"trigger\"\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-controls=\"`header-menu-${id}`\"\n\t\t\t:aria-describedby=\"description ? descriptionId : null\"\n\t\t\t:aria-expanded=\"opened.toString()\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\n\t\t<!-- Visual triangle -->\n\t\t<div v-show=\"opened\" class=\"header-menu__carret\" />\n\n\t\t<!-- Menu opened content -->\n\t\t<div\n\t\t\tv-show=\"opened\"\n\t\t\t:id=\"`header-menu-${id}`\"\n\t\t\tclass=\"header-menu__wrapper\">\n\t\t\t<div ref=\"content\" class=\"header-menu__content\">\n\t\t\t\t<!-- @slot Main content -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\nimport { ref } from 'vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { clickOutsideOptions } from '../../mixins/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderMenu',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * aria-label attribute of the menu open button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Current menu open state\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Pass `true` if the header menu is used for website navigation\n\t\t *\n\t\t * The wrapper tag will be set to `nav` and its `aria-labelledby`\n\t\t * will be associated with the menu open button\n\t\t */\n\t\tisNav: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the menu\n\t\t * open button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closed',\n\t\t'open',\n\t\t'opened',\n\t\t'update:open',\n\t\t'cancel',\n\t],\n\n\tsetup(props) {\n\t\tconst opened = ref(props.open)\n\n\t\t// When component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(opened, {\n\t\t\tdisabled: () => !props.isNav,\n\t\t})\n\n\t\treturn {\n\t\t\topened,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfocusTrap: null,\n\t\t\tshortcutsDisabled: window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),\n\t\t\ttriggerId: GenRandomId(),\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isNav ? 'nav' : 'div'\n\t\t},\n\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\n\t\tlisteners() {\n\t\t\tif (this.isNav) {\n\t\t\t\treturn {\n\t\t\t\t\tfocusout: this.onFocusOut,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tdocument.addEventListener('keydown', this.onKeyDown)\n\t},\n\n\tbeforeDestroy() {\n\t\tdocument.removeEventListener('keydown', this.onKeyDown)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the current menu open state\n\t\t */\n\t\ttoggleMenu() {\n\t\t\t// Toggling current state\n\t\t\tif (!this.opened) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the current menu\n\t\t *\n\t\t * @param {boolean} cancelled emit a cancel event instead of close\n\t\t */\n\t\tcloseMenu(cancelled = false) {\n\t\t\t// Close the menu\n\t\t\tthis.opened = false\n\t\t\tthis.$emit(cancelled ? 'cancel' : 'close')\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t// Kill focus trap\n\t\t\tthis.clearFocusTrap()\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$emit('closed')\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Open the current menu\n\t\t */\n\t\topenMenu() {\n\t\t\t// Open the menu\n\t\t\tthis.opened = true\n\t\t\tthis.$emit('open')\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.useFocusTrap()\n\t\t\t\tthis.$emit('opened')\n\t\t\t})\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\tif (this.shortcutsDisabled || !this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If escape have been pressed, we close\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\t/** User cancelled the menu by pressing escape */\n\t\t\t\tthis.closeMenu(true)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {FocusEvent} event The focus event\n\t\t */\n\t\tonFocusOut(event) {\n\t\t\tif (!this.$refs.headerMenu.contains(event.relatedTarget)) {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t * Shall only be used when all children are mounted\n\t\t * and available in the DOM. We use $nextTick for that.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tif (this.isNav || this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Init focus trap\n\t\t\tconst contentContainer = this.$refs.content\n\t\t\tthis.focusTrap = createFocusTrap(contentContainer, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tfallbackFocus: this.$refs.trigger.$el,\n\t\t\t})\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// content inner and outer margin\n// Also used for menu top-right positioning\n$externalMargin: 8px;\n\n@use './header-menu__trigger.scss';\n\n.header-menu {\n\t&__wrapper {\n\t\tposition: fixed;\n\t\tz-index: 2000;\n\t\ttop: var(--header-height);\n\t\tinset-inline-end: 0;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $externalMargin;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\n\t\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\n\t}\n\n\t&__carret {\n\t\tposition: absolute;\n\t\tz-index: 2001; // Because __wrapper is 2000.\n\t\tbottom: 0;\n\t\tinset-inline-start: calc(50% - 10px);\n\t\twidth: 0;\n\t\theight: 0;\n\t\tcontent: ' ';\n\t\tpointer-events: none;\n\t\tborder: 10px solid transparent;\n\t\tborder-bottom-color: var(--color-main-background);\n\t}\n\n\t&__content {\n\t\toverflow: auto;\n\t\twidth: 350px;\n\t\tmax-width: calc(100vw - 2 * $externalMargin);\n\t\tmin-height: calc(var(--default-clickable-area) * 1.5);\n\t\tmax-height: calc(100vh - var(--header-height) * 2);\n\t\t:deep(.empty-content) {\n\t\t\tmargin: 12vh 10px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["NcButton","ClickOutside","clickOutsideOptions","ref","useTrapStackControl","GenRandomId","createFocusTrap","getTrapStack"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NcHeaderMenu-Cmu-m_aM.cjs","sources":["../../src/components/NcHeaderMenu/NcHeaderMenu.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderMenu id=\"search\"\n\t\t\taria-label=\"Search\">\n\t\t\t<template #trigger>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t\t<div>\n\t\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\tstyle=\"padding-inline: 8px;\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tname=\"Search\"\n\t\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Magnify />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</NcHeaderMenu>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"wrapperTag\"\n\t\t:id=\"id\"\n\t\tref=\"headerMenu\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:aria-labelledby=\"isNav ? triggerId : null\"\n\t\t:class=\"{ 'header-menu--opened': opened }\"\n\t\tclass=\"header-menu\"\n\t\tv-on=\"listeners\">\n\t\t<!-- Trigger -->\n\t\t<NcButton\n\t\t\t:id=\"isNav ? triggerId : null\"\n\t\t\tref=\"trigger\"\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-controls=\"`header-menu-${id}`\"\n\t\t\t:aria-describedby=\"description ? descriptionId : null\"\n\t\t\t:aria-expanded=\"opened.toString()\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\n\t\t<!-- Visual triangle -->\n\t\t<div v-show=\"opened\" class=\"header-menu__carret\" />\n\n\t\t<!-- Menu opened content -->\n\t\t<div\n\t\t\tv-show=\"opened\"\n\t\t\t:id=\"`header-menu-${id}`\"\n\t\t\tclass=\"header-menu__wrapper\">\n\t\t\t<div ref=\"content\" class=\"header-menu__content\">\n\t\t\t\t<!-- @slot Main content -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\nimport { ref } from 'vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { clickOutsideOptions } from '../../mixins/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderMenu',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * aria-label attribute of the menu open button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Current menu open state\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Pass `true` if the header menu is used for website navigation\n\t\t *\n\t\t * The wrapper tag will be set to `nav` and its `aria-labelledby`\n\t\t * will be associated with the menu open button\n\t\t */\n\t\tisNav: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the menu\n\t\t * open button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closed',\n\t\t'open',\n\t\t'opened',\n\t\t'update:open',\n\t\t'cancel',\n\t],\n\n\tsetup(props) {\n\t\tconst opened = ref(props.open)\n\n\t\t// When component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(opened, {\n\t\t\tdisabled: () => !props.isNav,\n\t\t})\n\n\t\treturn {\n\t\t\topened,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfocusTrap: null,\n\t\t\tshortcutsDisabled: window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),\n\t\t\ttriggerId: GenRandomId(),\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isNav ? 'nav' : 'div'\n\t\t},\n\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\n\t\tlisteners() {\n\t\t\tif (this.isNav) {\n\t\t\t\treturn {\n\t\t\t\t\tfocusout: this.onFocusOut,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tdocument.addEventListener('keydown', this.onKeyDown)\n\t},\n\n\tbeforeDestroy() {\n\t\tdocument.removeEventListener('keydown', this.onKeyDown)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the current menu open state\n\t\t */\n\t\ttoggleMenu() {\n\t\t\t// Toggling current state\n\t\t\tif (!this.opened) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the current menu\n\t\t *\n\t\t * @param {boolean} cancelled emit a cancel event instead of close\n\t\t */\n\t\tcloseMenu(cancelled = false) {\n\t\t\t// Close the menu\n\t\t\tthis.opened = false\n\t\t\tthis.$emit(cancelled ? 'cancel' : 'close')\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t// Kill focus trap\n\t\t\tthis.clearFocusTrap()\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$emit('closed')\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Open the current menu\n\t\t */\n\t\topenMenu() {\n\t\t\t// Open the menu\n\t\t\tthis.opened = true\n\t\t\tthis.$emit('open')\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.useFocusTrap()\n\t\t\t\tthis.$emit('opened')\n\t\t\t})\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\tif (this.shortcutsDisabled || !this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If escape have been pressed, we close\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\t/** User cancelled the menu by pressing escape */\n\t\t\t\tthis.closeMenu(true)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {FocusEvent} event The focus event\n\t\t */\n\t\tonFocusOut(event) {\n\t\t\tif (!this.$refs.headerMenu.contains(event.relatedTarget)) {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t * Shall only be used when all children are mounted\n\t\t * and available in the DOM. We use $nextTick for that.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tif (this.isNav || this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Init focus trap\n\t\t\tconst contentContainer = this.$refs.content\n\t\t\tthis.focusTrap = createFocusTrap(contentContainer, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tfallbackFocus: this.$refs.trigger.$el,\n\t\t\t})\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// content inner and outer margin\n// Also used for menu top-right positioning\n$externalMargin: 8px;\n\n@use './header-menu__trigger.scss';\n\n.header-menu {\n\t&__wrapper {\n\t\tposition: fixed;\n\t\tz-index: 2000;\n\t\ttop: var(--header-height);\n\t\tinset-inline-end: 0;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $externalMargin;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\n\t\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\n\t}\n\n\t&__carret {\n\t\tposition: absolute;\n\t\tz-index: 2001; // Because __wrapper is 2000.\n\t\tbottom: 0;\n\t\tinset-inline-start: calc(50% - 10px);\n\t\twidth: 0;\n\t\theight: 0;\n\t\tcontent: ' ';\n\t\tpointer-events: none;\n\t\tborder: 10px solid transparent;\n\t\tborder-bottom-color: var(--color-main-background);\n\t}\n\n\t&__content {\n\t\toverflow: auto;\n\t\twidth: 350px;\n\t\tmax-width: calc(100vw - 2 * $externalMargin);\n\t\tmin-height: calc(var(--default-clickable-area) * 1.5);\n\t\tmax-height: calc(100vh - var(--header-height) * 2);\n\t\t:deep(.empty-content) {\n\t\t\tmargin: 12vh 10px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["NcButton","ClickOutside","clickOutsideOptions","ref","useTrapStackControl","GenRandomId","createFocusTrap","getTrapStack"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ import "@nextcloud/capabilities";
|
|
|
20
20
|
import "./logger-D3RVzcfQ.mjs";
|
|
21
21
|
import { g as getTrapStack } from "./focusTrap-HJQ4pqHV.mjs";
|
|
22
22
|
import { G as GenRandomId } from "./GenRandomId-F5ebeBB_.mjs";
|
|
23
|
-
import { N as NcButton } from "./NcButton-
|
|
23
|
+
import { N as NcButton } from "./NcButton-Dz2O6cSU.mjs";
|
|
24
24
|
const _sfc_main = {
|
|
25
25
|
name: "NcHeaderMenu",
|
|
26
26
|
components: {
|
|
@@ -231,4 +231,4 @@ const NcHeaderMenu = __component__.exports;
|
|
|
231
231
|
export {
|
|
232
232
|
NcHeaderMenu as N
|
|
233
233
|
};
|
|
234
|
-
//# sourceMappingURL=NcHeaderMenu-
|
|
234
|
+
//# sourceMappingURL=NcHeaderMenu-Cuh8ay0F.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHeaderMenu-Hk8OTuma.mjs","sources":["../../src/components/NcHeaderMenu/NcHeaderMenu.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderMenu id=\"search\"\n\t\t\taria-label=\"Search\">\n\t\t\t<template #trigger>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t\t<div>\n\t\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\tstyle=\"padding-inline: 8px;\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tname=\"Search\"\n\t\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Magnify />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</NcHeaderMenu>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"wrapperTag\"\n\t\t:id=\"id\"\n\t\tref=\"headerMenu\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:aria-labelledby=\"isNav ? triggerId : null\"\n\t\t:class=\"{ 'header-menu--opened': opened }\"\n\t\tclass=\"header-menu\"\n\t\tv-on=\"listeners\">\n\t\t<!-- Trigger -->\n\t\t<NcButton\n\t\t\t:id=\"isNav ? triggerId : null\"\n\t\t\tref=\"trigger\"\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-controls=\"`header-menu-${id}`\"\n\t\t\t:aria-describedby=\"description ? descriptionId : null\"\n\t\t\t:aria-expanded=\"opened.toString()\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\n\t\t<!-- Visual triangle -->\n\t\t<div v-show=\"opened\" class=\"header-menu__carret\" />\n\n\t\t<!-- Menu opened content -->\n\t\t<div\n\t\t\tv-show=\"opened\"\n\t\t\t:id=\"`header-menu-${id}`\"\n\t\t\tclass=\"header-menu__wrapper\">\n\t\t\t<div ref=\"content\" class=\"header-menu__content\">\n\t\t\t\t<!-- @slot Main content -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\nimport { ref } from 'vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { clickOutsideOptions } from '../../mixins/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderMenu',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * aria-label attribute of the menu open button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Current menu open state\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Pass `true` if the header menu is used for website navigation\n\t\t *\n\t\t * The wrapper tag will be set to `nav` and its `aria-labelledby`\n\t\t * will be associated with the menu open button\n\t\t */\n\t\tisNav: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the menu\n\t\t * open button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closed',\n\t\t'open',\n\t\t'opened',\n\t\t'update:open',\n\t\t'cancel',\n\t],\n\n\tsetup(props) {\n\t\tconst opened = ref(props.open)\n\n\t\t// When component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(opened, {\n\t\t\tdisabled: () => !props.isNav,\n\t\t})\n\n\t\treturn {\n\t\t\topened,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfocusTrap: null,\n\t\t\tshortcutsDisabled: window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),\n\t\t\ttriggerId: GenRandomId(),\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isNav ? 'nav' : 'div'\n\t\t},\n\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\n\t\tlisteners() {\n\t\t\tif (this.isNav) {\n\t\t\t\treturn {\n\t\t\t\t\tfocusout: this.onFocusOut,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tdocument.addEventListener('keydown', this.onKeyDown)\n\t},\n\n\tbeforeDestroy() {\n\t\tdocument.removeEventListener('keydown', this.onKeyDown)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the current menu open state\n\t\t */\n\t\ttoggleMenu() {\n\t\t\t// Toggling current state\n\t\t\tif (!this.opened) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the current menu\n\t\t *\n\t\t * @param {boolean} cancelled emit a cancel event instead of close\n\t\t */\n\t\tcloseMenu(cancelled = false) {\n\t\t\t// Close the menu\n\t\t\tthis.opened = false\n\t\t\tthis.$emit(cancelled ? 'cancel' : 'close')\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t// Kill focus trap\n\t\t\tthis.clearFocusTrap()\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$emit('closed')\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Open the current menu\n\t\t */\n\t\topenMenu() {\n\t\t\t// Open the menu\n\t\t\tthis.opened = true\n\t\t\tthis.$emit('open')\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.useFocusTrap()\n\t\t\t\tthis.$emit('opened')\n\t\t\t})\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\tif (this.shortcutsDisabled || !this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If escape have been pressed, we close\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\t/** User cancelled the menu by pressing escape */\n\t\t\t\tthis.closeMenu(true)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {FocusEvent} event The focus event\n\t\t */\n\t\tonFocusOut(event) {\n\t\t\tif (!this.$refs.headerMenu.contains(event.relatedTarget)) {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t * Shall only be used when all children are mounted\n\t\t * and available in the DOM. We use $nextTick for that.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tif (this.isNav || this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Init focus trap\n\t\t\tconst contentContainer = this.$refs.content\n\t\t\tthis.focusTrap = createFocusTrap(contentContainer, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tfallbackFocus: this.$refs.trigger.$el,\n\t\t\t})\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// content inner and outer margin\n// Also used for menu top-right positioning\n$externalMargin: 8px;\n\n@use './header-menu__trigger.scss';\n\n.header-menu {\n\t&__wrapper {\n\t\tposition: fixed;\n\t\tz-index: 2000;\n\t\ttop: var(--header-height);\n\t\tinset-inline-end: 0;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $externalMargin;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\n\t\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\n\t}\n\n\t&__carret {\n\t\tposition: absolute;\n\t\tz-index: 2001; // Because __wrapper is 2000.\n\t\tbottom: 0;\n\t\tinset-inline-start: calc(50% - 10px);\n\t\twidth: 0;\n\t\theight: 0;\n\t\tcontent: ' ';\n\t\tpointer-events: none;\n\t\tborder: 10px solid transparent;\n\t\tborder-bottom-color: var(--color-main-background);\n\t}\n\n\t&__content {\n\t\toverflow: auto;\n\t\twidth: 350px;\n\t\tmax-width: calc(100vw - 2 * $externalMargin);\n\t\tmin-height: calc(var(--default-clickable-area) * 1.5);\n\t\tmax-height: calc(100vh - var(--header-height) * 2);\n\t\t:deep(.empty-content) {\n\t\t\tmargin: 12vh 10px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["ClickOutside"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NcHeaderMenu-Cuh8ay0F.mjs","sources":["../../src/components/NcHeaderMenu/NcHeaderMenu.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used in the Nextcloud top header.\n\n```\n<template>\n\t<div id=\"nextcloud-header\">\n\t\t<NcHeaderMenu id=\"search\"\n\t\t\taria-label=\"Search\">\n\t\t\t<template #trigger>\n\t\t\t\t<Magnify />\n\t\t\t</template>\n\t\t\t<div>\n\t\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\tstyle=\"padding-inline: 8px;\"\n\t\t\t\ttype=\"search\"\n\t\t\t\t:value.sync=\"query\" />\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tname=\"Search\"\n\t\t\t\t\t:description=\"query ? `No results for '${query}'` : 'Start typing to search'\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Magnify />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</NcHeaderMenu>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tMagnify,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tquery: '',\n\t\t}\n\t},\n}\n</script>\n<style>\n#nextcloud-header {\n\tdisplay: flex;\n\tjustify-content: right;\n\tbackground-color: var(--color-primary);\n\theight: var(--header-height, 50px);\n\tpadding-inline-end: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"wrapperTag\"\n\t\t:id=\"id\"\n\t\tref=\"headerMenu\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:aria-labelledby=\"isNav ? triggerId : null\"\n\t\t:class=\"{ 'header-menu--opened': opened }\"\n\t\tclass=\"header-menu\"\n\t\tv-on=\"listeners\">\n\t\t<!-- Trigger -->\n\t\t<NcButton\n\t\t\t:id=\"isNav ? triggerId : null\"\n\t\t\tref=\"trigger\"\n\t\t\tclass=\"header-menu__trigger\"\n\t\t\t:aria-controls=\"`header-menu-${id}`\"\n\t\t\t:aria-describedby=\"description ? descriptionId : null\"\n\t\t\t:aria-expanded=\"opened.toString()\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tsize=\"large\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click.prevent=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Icon trigger slot. Make sure the svg path\n\t\t\t\tis at least 16px. Usually mdi icon works at 20px -->\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<span\n\t\t\tv-if=\"description\"\n\t\t\t:id=\"descriptionId\"\n\t\t\tclass=\"header-menu__description hidden-visually\">\n\t\t\t{{ description }}\n\t\t</span>\n\n\t\t<!-- Visual triangle -->\n\t\t<div v-show=\"opened\" class=\"header-menu__carret\" />\n\n\t\t<!-- Menu opened content -->\n\t\t<div\n\t\t\tv-show=\"opened\"\n\t\t\t:id=\"`header-menu-${id}`\"\n\t\t\tclass=\"header-menu__wrapper\">\n\t\t\t<div ref=\"content\" class=\"header-menu__content\">\n\t\t\t\t<!-- @slot Main content -->\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</component>\n</template>\n\n<script>\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\nimport { createFocusTrap } from 'focus-trap'\nimport { ref } from 'vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { clickOutsideOptions } from '../../mixins/index.js'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcButton from '../NcButton/index.js'\n\nexport default {\n\tname: 'NcHeaderMenu',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\n\tprops: {\n\t\t/**\n\t\t * Unique id for this menu\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * aria-label attribute of the menu open button\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Current menu open state\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Pass `true` if the header menu is used for website navigation\n\t\t *\n\t\t * The wrapper tag will be set to `nav` and its `aria-labelledby`\n\t\t * will be associated with the menu open button\n\t\t */\n\t\tisNav: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional visually hidden description text for the menu\n\t\t * open button\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'closed',\n\t\t'open',\n\t\t'opened',\n\t\t'update:open',\n\t\t'cancel',\n\t],\n\n\tsetup(props) {\n\t\tconst opened = ref(props.open)\n\n\t\t// When component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(opened, {\n\t\t\tdisabled: () => !props.isNav,\n\t\t})\n\n\t\treturn {\n\t\t\topened,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfocusTrap: null,\n\t\t\tshortcutsDisabled: window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),\n\t\t\ttriggerId: GenRandomId(),\n\t\t\tdescriptionId: GenRandomId(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\twrapperTag() {\n\t\t\treturn this.isNav ? 'nav' : 'div'\n\t\t},\n\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\n\t\tlisteners() {\n\t\t\tif (this.isNav) {\n\t\t\t\treturn {\n\t\t\t\t\tfocusout: this.onFocusOut,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t},\n\n\twatch: {\n\t\topen(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tdocument.addEventListener('keydown', this.onKeyDown)\n\t},\n\n\tbeforeDestroy() {\n\t\tdocument.removeEventListener('keydown', this.onKeyDown)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle the current menu open state\n\t\t */\n\t\ttoggleMenu() {\n\t\t\t// Toggling current state\n\t\t\tif (!this.opened) {\n\t\t\t\tthis.openMenu()\n\t\t\t} else {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the current menu\n\t\t *\n\t\t * @param {boolean} cancelled emit a cancel event instead of close\n\t\t */\n\t\tcloseMenu(cancelled = false) {\n\t\t\t// Close the menu\n\t\t\tthis.opened = false\n\t\t\tthis.$emit(cancelled ? 'cancel' : 'close')\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t// Kill focus trap\n\t\t\tthis.clearFocusTrap()\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$emit('closed')\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Open the current menu\n\t\t */\n\t\topenMenu() {\n\t\t\t// Open the menu\n\t\t\tthis.opened = true\n\t\t\tthis.$emit('open')\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t// Wait for component to finish rendering\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.useFocusTrap()\n\t\t\t\tthis.$emit('opened')\n\t\t\t})\n\t\t},\n\n\t\tonKeyDown(event) {\n\t\t\tif (this.shortcutsDisabled || !this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If escape have been pressed, we close\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\t/** User cancelled the menu by pressing escape */\n\t\t\t\tthis.closeMenu(true)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {FocusEvent} event The focus event\n\t\t */\n\t\tonFocusOut(event) {\n\t\t\tif (!this.$refs.headerMenu.contains(event.relatedTarget)) {\n\t\t\t\tthis.closeMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t * Shall only be used when all children are mounted\n\t\t * and available in the DOM. We use $nextTick for that.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tif (this.isNav || this.focusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Init focus trap\n\t\t\tconst contentContainer = this.$refs.content\n\t\t\tthis.focusTrap = createFocusTrap(contentContainer, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t\tfallbackFocus: this.$refs.trigger.$el,\n\t\t\t})\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// content inner and outer margin\n// Also used for menu top-right positioning\n$externalMargin: 8px;\n\n@use './header-menu__trigger.scss';\n\n.header-menu {\n\t&__wrapper {\n\t\tposition: fixed;\n\t\tz-index: 2000;\n\t\ttop: var(--header-height);\n\t\tinset-inline-end: 0;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $externalMargin;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\n\t\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\n\t}\n\n\t&__carret {\n\t\tposition: absolute;\n\t\tz-index: 2001; // Because __wrapper is 2000.\n\t\tbottom: 0;\n\t\tinset-inline-start: calc(50% - 10px);\n\t\twidth: 0;\n\t\theight: 0;\n\t\tcontent: ' ';\n\t\tpointer-events: none;\n\t\tborder: 10px solid transparent;\n\t\tborder-bottom-color: var(--color-main-background);\n\t}\n\n\t&__content {\n\t\toverflow: auto;\n\t\twidth: 350px;\n\t\tmax-width: calc(100vw - 2 * $externalMargin);\n\t\tmin-height: calc(var(--default-clickable-area) * 1.5);\n\t\tmax-height: calc(100vh - var(--header-height) * 2);\n\t\t:deep(.empty-content) {\n\t\t\tmargin: 12vh 10px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["ClickOutside"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('../assets/NcHotkey-4yi1Hobg.css');
|
|
2
2
|
"use strict";
|
|
3
3
|
const Vue = require("vue");
|
|
4
|
-
const NcKbd = require("./NcKbd-
|
|
4
|
+
const NcKbd = require("./NcKbd-DiOuj-R9.cjs");
|
|
5
5
|
const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
7
7
|
__name: "NcHotkey",
|
|
@@ -56,4 +56,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
56
56
|
);
|
|
57
57
|
const NcHotkey = __component__.exports;
|
|
58
58
|
exports.NcHotkey = NcHotkey;
|
|
59
|
-
//# sourceMappingURL=NcHotkey-
|
|
59
|
+
//# sourceMappingURL=NcHotkey-B9IBly2F.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHotkey-
|
|
1
|
+
{"version":3,"file":"NcHotkey-B9IBly2F.cjs","sources":["../../src/components/NcHotkey/NcHotkey.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport NcKbd from '../NcKbd/NcKbd.vue'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Label for the hotkey\n\t */\n\tlabel?: string\n\t/**\n\t * Hotkey combination string separated by space, for example, `Control Alt T` or `F2` (see `<NcKbd>` for supported key names)\n\t */\n\thotkey?: string\n}>(), {\n\tlabel: undefined,\n\thotkey: undefined,\n})\n\nconst symbols = computed(() => {\n\treturn props.hotkey?.split(/\\s+/).map((s) => s.trim())\n})\n\nconst NO_LABEL_WARNING = '⚠️ NcHotKey must have a label or slot content'\n</script>\n\n<template>\n\t<li :class=\"$style.hotkey\">\n\t\t<span role=\"term\" :class=\"$style.hotkey__keys\">\n\t\t\t<!-- @slot Custom hotkey content for an advanced hotkey layout with \"NcKbd\" components or other custom content -->\n\t\t\t<slot name=\"hotkey\">\n\t\t\t\t<NcKbd v-for=\"(symbol, index) in symbols\" :key=\"index\" :symbol=\"symbol\" />\n\t\t\t</slot>\n\t\t</span>\n\t\t<span role=\"definition\" :class=\"$style.hotkey__label\">\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot>\n\t\t\t\t{{ label || NO_LABEL_WARNING }}\n\t\t\t</slot>\n\t\t</span>\n\t</li>\n</template>\n\n<style lang=\"scss\" module>\n.hotkey {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\talign-items: stretch;\n\tpadding-inline: var(--form-element-label-offset);\n\n\t&:first-child {\n\t\t.hotkey__label,\n\t\t.hotkey__keys {\n\t\t\tborder-block-start: none;\n\t\t}\n\t}\n\n}\n\n.hotkey__label,\n.hotkey__keys {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-block: calc(2 * var(--default-grid-baseline));\n\tborder-block-start: 1px solid var(--color-border);\n}\n\n.hotkey__label {\n\tflex: 1 1 200px;\n}\n\n.hotkey__keys {\n\tflex: 1 1 auto;\n\tflex-wrap: wrap;\n\tjustify-content: end;\n\trow-gap: calc(1 * var(--default-grid-baseline));\n}\n</style>\n"],"names":["computed"],"mappings":";;;;;;;;;;;;AAuBA,UAAM,UAAUA,IAAAA,SAAS,MAAM;AAC9B,aAAO,MAAM,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;AAAA,IACtD,CAAC;AAED,UAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../assets/NcHotkey-4yi1Hobg.css';
|
|
2
2
|
import { defineComponent, computed } from "vue";
|
|
3
|
-
import { N as NcKbd } from "./NcKbd-
|
|
3
|
+
import { N as NcKbd } from "./NcKbd-CapL6_v1.mjs";
|
|
4
4
|
import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
5
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
6
|
__name: "NcHotkey",
|
|
@@ -57,4 +57,4 @@ const NcHotkey = __component__.exports;
|
|
|
57
57
|
export {
|
|
58
58
|
NcHotkey as N
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=NcHotkey-
|
|
60
|
+
//# sourceMappingURL=NcHotkey-COqzksbg.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHotkey-
|
|
1
|
+
{"version":3,"file":"NcHotkey-COqzksbg.mjs","sources":["../../src/components/NcHotkey/NcHotkey.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport NcKbd from '../NcKbd/NcKbd.vue'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Label for the hotkey\n\t */\n\tlabel?: string\n\t/**\n\t * Hotkey combination string separated by space, for example, `Control Alt T` or `F2` (see `<NcKbd>` for supported key names)\n\t */\n\thotkey?: string\n}>(), {\n\tlabel: undefined,\n\thotkey: undefined,\n})\n\nconst symbols = computed(() => {\n\treturn props.hotkey?.split(/\\s+/).map((s) => s.trim())\n})\n\nconst NO_LABEL_WARNING = '⚠️ NcHotKey must have a label or slot content'\n</script>\n\n<template>\n\t<li :class=\"$style.hotkey\">\n\t\t<span role=\"term\" :class=\"$style.hotkey__keys\">\n\t\t\t<!-- @slot Custom hotkey content for an advanced hotkey layout with \"NcKbd\" components or other custom content -->\n\t\t\t<slot name=\"hotkey\">\n\t\t\t\t<NcKbd v-for=\"(symbol, index) in symbols\" :key=\"index\" :symbol=\"symbol\" />\n\t\t\t</slot>\n\t\t</span>\n\t\t<span role=\"definition\" :class=\"$style.hotkey__label\">\n\t\t\t<!-- @slot Custom label content -->\n\t\t\t<slot>\n\t\t\t\t{{ label || NO_LABEL_WARNING }}\n\t\t\t</slot>\n\t\t</span>\n\t</li>\n</template>\n\n<style lang=\"scss\" module>\n.hotkey {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\talign-items: stretch;\n\tpadding-inline: var(--form-element-label-offset);\n\n\t&:first-child {\n\t\t.hotkey__label,\n\t\t.hotkey__keys {\n\t\t\tborder-block-start: none;\n\t\t}\n\t}\n\n}\n\n.hotkey__label,\n.hotkey__keys {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-block: calc(2 * var(--default-grid-baseline));\n\tborder-block-start: 1px solid var(--color-border);\n}\n\n.hotkey__label {\n\tflex: 1 1 200px;\n}\n\n.hotkey__keys {\n\tflex: 1 1 auto;\n\tflex-wrap: wrap;\n\tjustify-content: end;\n\trow-gap: calc(1 * var(--default-grid-baseline));\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;AAuBA,UAAM,UAAU,SAAS,MAAM;AAC9B,aAAO,MAAM,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;AAAA,IACtD,CAAC;AAED,UAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require('../assets/NcHotkeyList-gAZN0WIu.css');
|
|
2
2
|
"use strict";
|
|
3
3
|
const Vue = require("vue");
|
|
4
|
-
const _l10n = require("./_l10n-
|
|
4
|
+
const _l10n = require("./_l10n-IBFNlYqh.cjs");
|
|
5
5
|
const createElementId = require("./createElementId-lalylSCf.cjs");
|
|
6
6
|
const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
|
|
7
|
-
_l10n.register();
|
|
7
|
+
_l10n.register(_l10n.t31);
|
|
8
8
|
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
9
9
|
__name: "NcHotkeyList",
|
|
10
10
|
props: {
|
|
@@ -44,4 +44,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
44
44
|
);
|
|
45
45
|
const NcHotkeyList = __component__.exports;
|
|
46
46
|
exports.NcHotkeyList = NcHotkeyList;
|
|
47
|
-
//# sourceMappingURL=NcHotkeyList-
|
|
47
|
+
//# sourceMappingURL=NcHotkeyList-D5QS6zXI.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHotkeyList-
|
|
1
|
+
{"version":3,"file":"NcHotkeyList-D5QS6zXI.cjs","sources":["../../src/components/NcHotkeyList/NcHotkeyList.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 { t } from '../../l10n.js'\nimport { createElementId } from '../../utils/createElementId.ts'\n\nwithDefaults(defineProps<{\n\t/**\n\t * Heading list label to use when there are multiple lists of shortcuts\n\t */\n\tlabel?: string\n}>(), {\n\tlabel: undefined,\n})\n\nconst labelId = `NcHotkeyList_${createElementId()}`\n</script>\n\n<template>\n\t<div :class=\"$style.hotkeyList\">\n\t\t<div :id=\"labelId\" :class=\"[$style.hotkeyList__heading, { 'hidden-visually': !label }]\">\n\t\t\t{{ label || t('Keyboard shortcuts') }}\n\t\t</div>\n\t\t<ul :aria-labelledby=\"labelId\">\n\t\t\t<!-- @slot Shortcuts described via \"NcHotkey\" components -->\n\t\t\t<slot />\n\t\t</ul>\n\t</div>\n</template>\n\n<style module>\n.hotkeyList {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n}\n\n.hotkeyList__heading {\n\tfont-weight: bold;\n\tmargin-inline: var(--form-element-label-offset);\n}\n</style>\n\n<docs>\n## General\n\nList of keyboard shortcuts for the `<NcAppSettingsShortcutsSection>`.\n\n```vue\n<template>\n\t<NcHotkeyList>\n\t\t<NcHotkey label=\"New File\" hotkey=\"Ctrl N\" />\n\t\t<NcHotkey label=\"Open File\" hotkey=\"Ctrl O\" />\n\t\t<NcHotkey label=\"Save File\" hotkey=\"Ctrl S\" />\n\t</NcHotkeyList>\n</template>\n```\n\n## Groups\n\nThe hotkey list can have an optional heading label. This is useful when there are multiple groups of shortcuts in an app with many shortcuts.\n\n```vue\n<template>\n\t<section>\n\t\t<NcHotkeyList label=\"Actions\">\n\t\t\t<NcHotkey label=\"File actions\" hotkey=\"A\" />\n\t\t\t<NcHotkey label=\"Rename\" hotkey=\"F2\" />\n\t\t\t<NcHotkey label=\"Delete\" hotkey=\"Delete\" />\n\t\t\t<NcHotkey label=\"Add or remove favorite\" hotkey=\"S\" />\n\t\t\t<NcHotkey label=\"Manage tags\" hotkey=\"T\" />\n\t\t</NcHotkeyList>\n\n\t\t<NcHotkeyList label=\"Selection\">\n\t\t\t<NcHotkey label=\"Select all files\" hotkey=\"Control A\" />\n\t\t\t<NcHotkey label=\"Deselect all\" hotkey=\"Escape\" />\n\t\t\t<NcHotkey label=\"Select or deselect\" hotkey=\"Control Space\" />\n\t\t\t<NcHotkey label=\"Select a range\" hotkey=\"Control Shift Space\" />\n\t\t</NcHotkeyList>\n\n\t\t<NcHotkeyList label=\"Navigation\">\n\t\t\t<NcHotkey label=\"Go to parent folder\" hotkey=\"Alt ArrowUp\" />\n\t\t\t<NcHotkey label=\"Go to file above\" hotkey=\"ArrowUp\" />\n\t\t\t<NcHotkey label=\"Go to file below\" hotkey=\"ArrowDown\" />\n\t\t\t<NcHotkey label=\"Go left in grid\" hotkey=\"ArrowLeft\" />\n\t\t\t<NcHotkey label=\"Go right in grid\" hotkey=\"ArrowRight\" />\n\t\t</NcHotkeyList>\n\n\t\t<NcHotkeyList label=\"View\">\n\t\t\t<NcHotkey label=\"Toggle grid view\" hotkey=\"V\" />\n\t\t\t<NcHotkey label=\"Open file sidebar\" hotkey=\"D\" />\n\t\t\t<NcHotkey label=\"Show those shortcuts\" hotkey=\"?\" />\n\t\t</NcHotkeyList>\n\t</section>\n</template>\n```\n</docs>\n"],"names":["createElementId"],"mappings":";;;;;;;;;;;;AAkBA,UAAM,UAAU,gBAAgBA,gBAAAA,gBAAA,CAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '../assets/NcHotkeyList-gAZN0WIu.css';
|
|
2
2
|
import { defineComponent } from "vue";
|
|
3
|
-
import { r as register, a as t } from "./_l10n-
|
|
3
|
+
import { r as register, x as t31, a as t } from "./_l10n-BcrsamRV.mjs";
|
|
4
4
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
5
5
|
import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
6
|
-
register();
|
|
6
|
+
register(t31);
|
|
7
7
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
8
8
|
__name: "NcHotkeyList",
|
|
9
9
|
props: {
|
|
@@ -45,4 +45,4 @@ const NcHotkeyList = __component__.exports;
|
|
|
45
45
|
export {
|
|
46
46
|
NcHotkeyList as N
|
|
47
47
|
};
|
|
48
|
-
//# sourceMappingURL=NcHotkeyList-
|
|
48
|
+
//# sourceMappingURL=NcHotkeyList-D9tKXM-e.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHotkeyList-
|
|
1
|
+
{"version":3,"file":"NcHotkeyList-D9tKXM-e.mjs","sources":["../../src/components/NcHotkeyList/NcHotkeyList.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 { t } from '../../l10n.js'\nimport { createElementId } from '../../utils/createElementId.ts'\n\nwithDefaults(defineProps<{\n\t/**\n\t * Heading list label to use when there are multiple lists of shortcuts\n\t */\n\tlabel?: string\n}>(), {\n\tlabel: undefined,\n})\n\nconst labelId = `NcHotkeyList_${createElementId()}`\n</script>\n\n<template>\n\t<div :class=\"$style.hotkeyList\">\n\t\t<div :id=\"labelId\" :class=\"[$style.hotkeyList__heading, { 'hidden-visually': !label }]\">\n\t\t\t{{ label || t('Keyboard shortcuts') }}\n\t\t</div>\n\t\t<ul :aria-labelledby=\"labelId\">\n\t\t\t<!-- @slot Shortcuts described via \"NcHotkey\" components -->\n\t\t\t<slot />\n\t\t</ul>\n\t</div>\n</template>\n\n<style module>\n.hotkeyList {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n}\n\n.hotkeyList__heading {\n\tfont-weight: bold;\n\tmargin-inline: var(--form-element-label-offset);\n}\n</style>\n\n<docs>\n## General\n\nList of keyboard shortcuts for the `<NcAppSettingsShortcutsSection>`.\n\n```vue\n<template>\n\t<NcHotkeyList>\n\t\t<NcHotkey label=\"New File\" hotkey=\"Ctrl N\" />\n\t\t<NcHotkey label=\"Open File\" hotkey=\"Ctrl O\" />\n\t\t<NcHotkey label=\"Save File\" hotkey=\"Ctrl S\" />\n\t</NcHotkeyList>\n</template>\n```\n\n## Groups\n\nThe hotkey list can have an optional heading label. This is useful when there are multiple groups of shortcuts in an app with many shortcuts.\n\n```vue\n<template>\n\t<section>\n\t\t<NcHotkeyList label=\"Actions\">\n\t\t\t<NcHotkey label=\"File actions\" hotkey=\"A\" />\n\t\t\t<NcHotkey label=\"Rename\" hotkey=\"F2\" />\n\t\t\t<NcHotkey label=\"Delete\" hotkey=\"Delete\" />\n\t\t\t<NcHotkey label=\"Add or remove favorite\" hotkey=\"S\" />\n\t\t\t<NcHotkey label=\"Manage tags\" hotkey=\"T\" />\n\t\t</NcHotkeyList>\n\n\t\t<NcHotkeyList label=\"Selection\">\n\t\t\t<NcHotkey label=\"Select all files\" hotkey=\"Control A\" />\n\t\t\t<NcHotkey label=\"Deselect all\" hotkey=\"Escape\" />\n\t\t\t<NcHotkey label=\"Select or deselect\" hotkey=\"Control Space\" />\n\t\t\t<NcHotkey label=\"Select a range\" hotkey=\"Control Shift Space\" />\n\t\t</NcHotkeyList>\n\n\t\t<NcHotkeyList label=\"Navigation\">\n\t\t\t<NcHotkey label=\"Go to parent folder\" hotkey=\"Alt ArrowUp\" />\n\t\t\t<NcHotkey label=\"Go to file above\" hotkey=\"ArrowUp\" />\n\t\t\t<NcHotkey label=\"Go to file below\" hotkey=\"ArrowDown\" />\n\t\t\t<NcHotkey label=\"Go left in grid\" hotkey=\"ArrowLeft\" />\n\t\t\t<NcHotkey label=\"Go right in grid\" hotkey=\"ArrowRight\" />\n\t\t</NcHotkeyList>\n\n\t\t<NcHotkeyList label=\"View\">\n\t\t\t<NcHotkey label=\"Toggle grid view\" hotkey=\"V\" />\n\t\t\t<NcHotkey label=\"Open file sidebar\" hotkey=\"D\" />\n\t\t\t<NcHotkey label=\"Show those shortcuts\" hotkey=\"?\" />\n\t\t</NcHotkeyList>\n\t</section>\n</template>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;;;;;AAkBA,UAAM,UAAU,gBAAgB,gBAAA,CAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require('../assets/NcIconSvgWrapper-
|
|
1
|
+
require('../assets/NcIconSvgWrapper-Cm1Dmlij.css');
|
|
2
2
|
"use strict";
|
|
3
3
|
const DOMPurify = require("dompurify");
|
|
4
4
|
const Vue = require("vue");
|
|
@@ -84,7 +84,7 @@ const __default__ = {
|
|
|
84
84
|
};
|
|
85
85
|
const __injectCSSVars__ = () => {
|
|
86
86
|
Vue.useCssVars((_vm, _setup) => ({
|
|
87
|
-
"
|
|
87
|
+
"dad67fa8": _vm.iconSize
|
|
88
88
|
}));
|
|
89
89
|
};
|
|
90
90
|
const __setup__ = __default__.setup;
|
|
@@ -107,8 +107,8 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
107
107
|
_sfc_staticRenderFns,
|
|
108
108
|
false,
|
|
109
109
|
null,
|
|
110
|
-
"
|
|
110
|
+
"4625d649"
|
|
111
111
|
);
|
|
112
112
|
const NcIconSvgWrapper = __component__.exports;
|
|
113
113
|
exports.NcIconSvgWrapper = NcIconSvgWrapper;
|
|
114
|
-
//# sourceMappingURL=NcIconSvgWrapper-
|
|
114
|
+
//# sourceMappingURL=NcIconSvgWrapper-Bbl4kXZI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcIconSvgWrapper-Bbl4kXZI.cjs","sources":["../../src/components/NcIconSvgWrapper/NcIconSvgWrapper.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nRender raw SVG string icons.\n\n### Usage within `icon`-slot\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<NcButton aria-label=\"Close\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"closeSvg\" name=\"Close\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Settings\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"cogSvg\" name=\"Cog\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Add\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"plusSvg\" name=\"Plus\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Send\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiSendOutline\" name=\"Send\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Star\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiStarOutline\" name=\"Star\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport closeSvg from '@mdi/svg/svg/close.svg?raw'\nimport cogSvg from '@mdi/svg/svg/cog-outline.svg?raw'\nimport plusSvg from '@mdi/svg/svg/plus.svg?raw'\nimport { mdiSendOutline } from '@mdi/js'\nimport { mdiStarOutline } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\t// These icons are static data, so you do not need to put them into `data` which will make them reactive\n\t\treturn {\n\t\t\tcloseSvg,\n\t\t\tcogSvg,\n\t\t\tplusSvg,\n\t\t\tmdiSendOutline,\n\t\t\tmdiStarOutline,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(5, max-content);\n\tgap: 10px;\n}\n</style>\n```\n\n### Inline usage inside text\n\n```vue\n<template>\n\t<p>\n\t\tThis is my <NcIconSvgWrapper inline :path=\"mdiStarOutline\" /> Favorite\n\t</p>\n</template>\n<script>\nimport { mdiStarOutline } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiStarOutline,\n\t\t}\n\t},\n}\n</script>\n```\n\n### Directional usage\n\nThe `directional` property allows to enable a language direction aware icon.\nThis icon component can be used in places where an language direction aware icon should be used,\nfor example if an arrow pointing to the left it used it often points in the wrong direction for right-to-left languages.\nIn this cases this icon can be used which will always point into the logical \"start\" direction.\n\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcButton @click=\"isRtl = !isRtl\">Toggle RTL</NcButton>\n\t\t<div class=\"directional\" :dir=\"isRtl ? 'rtl' : 'ltr'\">\n\t\t\t<NcButton alignment=\"start\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiChevronLeft\" />\n\t\t\t\t</template>\n\t\t\t\tPrevious\n\t\t\t</NcButton>\n\t\t\t<NcButton alignment=\"end-reverse\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiChevronRight\" />\n\t\t\t\t</template>\n\t\t\t\tNext\n\t\t\t</NcButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { mdiChevronLeft, mdiChevronRight } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiChevronLeft,\n\t\t\tmdiChevronRight,\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisRtl: false\n\t\t}\n\t},\n}\n</script>\n<style scoped>\n.wrapper {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(2 * var(--default-grid-baseline));\n\tmax-width: 300px;\n}\n\n.directional {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: calc(2 * var(--default-grid-baseline));\n}\n\n.directional * {\n\tflex: 1 50%;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span\n\t\t:aria-hidden=\"name ? undefined : 'true'\"\n\t\t:aria-label=\"name || undefined\"\n\t\tclass=\"icon-vue\"\n\t\t:class=\"{\n\t\t\t'icon-vue--directional': directional,\n\t\t\t'icon-vue--inline': inline,\n\t\t}\"\n\t\trole=\"img\">\n\t\t<svg v-if=\"!cleanSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t<path :d=\"path\" />\n\t\t</svg>\n\t\t<!-- eslint-disable-next-line vue/no-v-text-v-html-on-component,vue/no-v-html -->\n\t\t<span v-else v-html=\"cleanSvg\" />\n\t</span>\n</template>\n\n<script>\nimport DOMPurify from 'dompurify'\nimport Vue from 'vue'\n\nexport default {\n\tname: 'NcIconSvgWrapper',\n\n\tprops: {\n\t\t/**\n\t\t * Make the icon directional, meaning it is langauge direction aware.\n\t\t * If the icon is placed in a right-to-left context it will be mirrored vertically.\n\t\t */\n\t\tdirectional: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Set if the icon should be used as inline content e.g. within text.\n\t\t * By default the icon is made a block element for use inside `icon`-slots.\n\t\t */\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Raw SVG string to render\n\t\t */\n\t\tsvg: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Label of the icon, used in aria-label\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Raw SVG path to render. Takes precedence over the SVG string in the `svg` prop.\n\t\t */\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Size of the icon to show. Only use if not using within an icon slot.\n\t\t * Defaults to 20px which is the Nextcloud icon size for all icon slots.\n\t\t *\n\t\t * @default 20\n\t\t */\n\t\tsize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 20,\n\t\t\tvalidator: (value) => typeof value === 'number' || value === 'auto',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Icon size used in CSS\n\t\t */\n\t\ticonSize() {\n\t\t\treturn typeof this.size === 'number' ? `${this.size}px` : this.size\n\t\t},\n\n\t\tcleanSvg() {\n\t\t\tif (!this.svg || this.path) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst svg = DOMPurify.sanitize(this.svg)\n\n\t\t\tconst svgDocument = new DOMParser().parseFromString(svg, 'image/svg+xml')\n\n\t\t\tif (svgDocument.querySelector('parsererror')) {\n\t\t\t\tVue.util.warn('SVG is not valid')\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\tif (svgDocument.documentElement.id) {\n\t\t\t\tsvgDocument.documentElement.removeAttribute('id')\n\t\t\t}\n\n\t\t\treturn svgDocument.documentElement.outerHTML\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.icon-vue {\n\t--icon-size: v-bind('iconSize');\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tmin-width: var(--default-clickable-area);\n\tmin-height: var(--default-clickable-area);\n\topacity: 1;\n\n\t&--inline {\n\t\tdisplay: inline-flex;\n\t\tmin-width: fit-content;\n\t\tmin-height: fit-content;\n\t\tvertical-align: text-bottom;\n\t}\n\n\t// Icon svg wrapper\n\tspan {\n\t\tline-height: 0;\n\t}\n\n\t&:deep(svg) {\n\t\tfill: currentColor;\n\t\twidth: var(--icon-size, 20px);\n\t\theight: var(--icon-size, 20px);\n\t\tmax-width: var(--icon-size, 20px);\n\t\tmax-height: var(--icon-size, 20px);\n\t}\n\n\t&--directional:deep(svg:dir(rtl)) {\n\t\ttransform: scaleX(-1);\n\t}\n}\n</style>\n"],"names":["DOMPurify","Vue"],"mappings":";;;;;;;AAsLA,MAAA,cAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,MAAA;AAAA,MACA,MAAA,CAAA,QAAA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA,OAAA,UAAA,YAAA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AACA,aAAA,OAAA,KAAA,SAAA,WAAA,GAAA,KAAA,IAAA,OAAA,KAAA;AAAA,IACA;AAAA,IAEA,WAAA;AACA,UAAA,CAAA,KAAA,OAAA,KAAA,MAAA;AACA;AAAA,MACA;AAEA,YAAA,MAAAA,mBAAAA,QAAA,SAAA,KAAA,GAAA;AAEA,YAAA,cAAA,IAAA,UAAA,EAAA,gBAAA,KAAA,eAAA;AAEA,UAAA,YAAA,cAAA,aAAA,GAAA;AACAC,6BAAA,KAAA,KAAA,kBAAA;AACA,eAAA;AAAA,MACA;AAEA,UAAA,YAAA,gBAAA,IAAA;AACA,oBAAA,gBAAA,gBAAA,IAAA;AAAA,MACA;AAEA,aAAA,YAAA,gBAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '../assets/NcIconSvgWrapper-
|
|
1
|
+
import '../assets/NcIconSvgWrapper-Cm1Dmlij.css';
|
|
2
2
|
import DOMPurify from "dompurify";
|
|
3
3
|
import Vue, { useCssVars } from "vue";
|
|
4
4
|
import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
@@ -80,7 +80,7 @@ const __default__ = {
|
|
|
80
80
|
};
|
|
81
81
|
const __injectCSSVars__ = () => {
|
|
82
82
|
useCssVars((_vm, _setup) => ({
|
|
83
|
-
"
|
|
83
|
+
"dad67fa8": _vm.iconSize
|
|
84
84
|
}));
|
|
85
85
|
};
|
|
86
86
|
const __setup__ = __default__.setup;
|
|
@@ -103,10 +103,10 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
|
103
103
|
_sfc_staticRenderFns,
|
|
104
104
|
false,
|
|
105
105
|
null,
|
|
106
|
-
"
|
|
106
|
+
"4625d649"
|
|
107
107
|
);
|
|
108
108
|
const NcIconSvgWrapper = __component__.exports;
|
|
109
109
|
export {
|
|
110
110
|
NcIconSvgWrapper as N
|
|
111
111
|
};
|
|
112
|
-
//# sourceMappingURL=NcIconSvgWrapper-
|
|
112
|
+
//# sourceMappingURL=NcIconSvgWrapper-Bui9PhAS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcIconSvgWrapper-Bui9PhAS.mjs","sources":["../../src/components/NcIconSvgWrapper/NcIconSvgWrapper.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nRender raw SVG string icons.\n\n### Usage within `icon`-slot\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<NcButton aria-label=\"Close\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"closeSvg\" name=\"Close\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Settings\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"cogSvg\" name=\"Cog\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Add\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"plusSvg\" name=\"Plus\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Send\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiSendOutline\" name=\"Send\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Star\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiStarOutline\" name=\"Star\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport closeSvg from '@mdi/svg/svg/close.svg?raw'\nimport cogSvg from '@mdi/svg/svg/cog-outline.svg?raw'\nimport plusSvg from '@mdi/svg/svg/plus.svg?raw'\nimport { mdiSendOutline } from '@mdi/js'\nimport { mdiStarOutline } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\t// These icons are static data, so you do not need to put them into `data` which will make them reactive\n\t\treturn {\n\t\t\tcloseSvg,\n\t\t\tcogSvg,\n\t\t\tplusSvg,\n\t\t\tmdiSendOutline,\n\t\t\tmdiStarOutline,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(5, max-content);\n\tgap: 10px;\n}\n</style>\n```\n\n### Inline usage inside text\n\n```vue\n<template>\n\t<p>\n\t\tThis is my <NcIconSvgWrapper inline :path=\"mdiStarOutline\" /> Favorite\n\t</p>\n</template>\n<script>\nimport { mdiStarOutline } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiStarOutline,\n\t\t}\n\t},\n}\n</script>\n```\n\n### Directional usage\n\nThe `directional` property allows to enable a language direction aware icon.\nThis icon component can be used in places where an language direction aware icon should be used,\nfor example if an arrow pointing to the left it used it often points in the wrong direction for right-to-left languages.\nIn this cases this icon can be used which will always point into the logical \"start\" direction.\n\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcButton @click=\"isRtl = !isRtl\">Toggle RTL</NcButton>\n\t\t<div class=\"directional\" :dir=\"isRtl ? 'rtl' : 'ltr'\">\n\t\t\t<NcButton alignment=\"start\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiChevronLeft\" />\n\t\t\t\t</template>\n\t\t\t\tPrevious\n\t\t\t</NcButton>\n\t\t\t<NcButton alignment=\"end-reverse\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiChevronRight\" />\n\t\t\t\t</template>\n\t\t\t\tNext\n\t\t\t</NcButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { mdiChevronLeft, mdiChevronRight } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiChevronLeft,\n\t\t\tmdiChevronRight,\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisRtl: false\n\t\t}\n\t},\n}\n</script>\n<style scoped>\n.wrapper {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(2 * var(--default-grid-baseline));\n\tmax-width: 300px;\n}\n\n.directional {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: calc(2 * var(--default-grid-baseline));\n}\n\n.directional * {\n\tflex: 1 50%;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span\n\t\t:aria-hidden=\"name ? undefined : 'true'\"\n\t\t:aria-label=\"name || undefined\"\n\t\tclass=\"icon-vue\"\n\t\t:class=\"{\n\t\t\t'icon-vue--directional': directional,\n\t\t\t'icon-vue--inline': inline,\n\t\t}\"\n\t\trole=\"img\">\n\t\t<svg v-if=\"!cleanSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t<path :d=\"path\" />\n\t\t</svg>\n\t\t<!-- eslint-disable-next-line vue/no-v-text-v-html-on-component,vue/no-v-html -->\n\t\t<span v-else v-html=\"cleanSvg\" />\n\t</span>\n</template>\n\n<script>\nimport DOMPurify from 'dompurify'\nimport Vue from 'vue'\n\nexport default {\n\tname: 'NcIconSvgWrapper',\n\n\tprops: {\n\t\t/**\n\t\t * Make the icon directional, meaning it is langauge direction aware.\n\t\t * If the icon is placed in a right-to-left context it will be mirrored vertically.\n\t\t */\n\t\tdirectional: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Set if the icon should be used as inline content e.g. within text.\n\t\t * By default the icon is made a block element for use inside `icon`-slots.\n\t\t */\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Raw SVG string to render\n\t\t */\n\t\tsvg: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Label of the icon, used in aria-label\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Raw SVG path to render. Takes precedence over the SVG string in the `svg` prop.\n\t\t */\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Size of the icon to show. Only use if not using within an icon slot.\n\t\t * Defaults to 20px which is the Nextcloud icon size for all icon slots.\n\t\t *\n\t\t * @default 20\n\t\t */\n\t\tsize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 20,\n\t\t\tvalidator: (value) => typeof value === 'number' || value === 'auto',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Icon size used in CSS\n\t\t */\n\t\ticonSize() {\n\t\t\treturn typeof this.size === 'number' ? `${this.size}px` : this.size\n\t\t},\n\n\t\tcleanSvg() {\n\t\t\tif (!this.svg || this.path) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst svg = DOMPurify.sanitize(this.svg)\n\n\t\t\tconst svgDocument = new DOMParser().parseFromString(svg, 'image/svg+xml')\n\n\t\t\tif (svgDocument.querySelector('parsererror')) {\n\t\t\t\tVue.util.warn('SVG is not valid')\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\tif (svgDocument.documentElement.id) {\n\t\t\t\tsvgDocument.documentElement.removeAttribute('id')\n\t\t\t}\n\n\t\t\treturn svgDocument.documentElement.outerHTML\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.icon-vue {\n\t--icon-size: v-bind('iconSize');\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tmin-width: var(--default-clickable-area);\n\tmin-height: var(--default-clickable-area);\n\topacity: 1;\n\n\t&--inline {\n\t\tdisplay: inline-flex;\n\t\tmin-width: fit-content;\n\t\tmin-height: fit-content;\n\t\tvertical-align: text-bottom;\n\t}\n\n\t// Icon svg wrapper\n\tspan {\n\t\tline-height: 0;\n\t}\n\n\t&:deep(svg) {\n\t\tfill: currentColor;\n\t\twidth: var(--icon-size, 20px);\n\t\theight: var(--icon-size, 20px);\n\t\tmax-width: var(--icon-size, 20px);\n\t\tmax-height: var(--icon-size, 20px);\n\t}\n\n\t&--directional:deep(svg:dir(rtl)) {\n\t\ttransform: scaleX(-1);\n\t}\n}\n</style>\n"],"names":[],"mappings":";;;AAsLA,MAAA,cAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,MAAA;AAAA,MACA,MAAA,CAAA,QAAA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA,OAAA,UAAA,YAAA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AACA,aAAA,OAAA,KAAA,SAAA,WAAA,GAAA,KAAA,IAAA,OAAA,KAAA;AAAA,IACA;AAAA,IAEA,WAAA;AACA,UAAA,CAAA,KAAA,OAAA,KAAA,MAAA;AACA;AAAA,MACA;AAEA,YAAA,MAAA,UAAA,SAAA,KAAA,GAAA;AAEA,YAAA,cAAA,IAAA,UAAA,EAAA,gBAAA,KAAA,eAAA;AAEA,UAAA,YAAA,cAAA,aAAA,GAAA;AACA,YAAA,KAAA,KAAA,kBAAA;AACA,eAAA;AAAA,MACA;AAEA,UAAA,YAAA,gBAAA,IAAA;AACA,oBAAA,gBAAA,gBAAA,IAAA;AAAA,MACA;AAEA,aAAA,YAAA,gBAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|