@nextcloud/vue 9.1.0 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -0
- package/dist/assets/{NcActions-Bqx-6r2h.css → NcActions-DneK-9R2.css} +11 -11
- package/dist/assets/{NcAppContent-r_MkL84m.css → NcAppContent-HF21N7dO.css} +19 -19
- package/dist/assets/{NcAppNavigation-Br6xragy.css → NcAppNavigation-f2zUqaiQ.css} +12 -12
- package/dist/assets/{NcAppNavigationItem-6ZUh2hMu.css → NcAppNavigationItem-D97Onpd9.css} +36 -36
- package/dist/assets/{NcAppNavigationSearch-CUSlFbdJ.css → NcAppNavigationSearch-BH8hBjGe.css} +5 -5
- package/dist/assets/{NcAppSettingsDialog-Dcv235GW.css → NcAppSettingsDialog-Dz8uBPgu.css} +36 -10
- package/dist/assets/NcAppSettingsSection-ObwpPdgW.css +46 -0
- package/dist/assets/{NcAppSidebar-aGrIJ9f6.css → NcAppSidebar-krHtMwId.css} +44 -44
- package/dist/assets/{NcAvatar-BvgSFJqT.css → NcAvatar-f8SJKMDw.css} +24 -24
- package/dist/assets/{NcButton-BjcEkfk2.css → NcButton-DtYLJgG8.css} +48 -48
- package/dist/assets/{NcChip-T6s7HqeL.css → NcChip-DZ8dUSFy.css} +12 -12
- package/dist/assets/{NcDashboardWidget-DD06i7ws.css → NcDashboardWidget-DFY9GRrd.css} +12 -12
- package/dist/assets/{NcDateTimePicker-DW0b4W9D.css → NcDateTimePicker-DL6-rWSN.css} +8 -4
- package/dist/assets/NcFormBox-D-kcijXp.css +54 -0
- package/dist/assets/{NcAppSettingsSection-DIVdlb0g.css → NcFormBoxButton-C6EvdLK4.css} +13 -11
- package/dist/assets/NcFormBoxItem-BfXKp9xJ.css +88 -0
- package/dist/assets/NcFormBoxSwitch-BmyNQCbA.css +37 -0
- package/dist/assets/NcFormGroup-BrD0Scm7.css +43 -0
- package/dist/assets/{NcHotkey-QklVKSyr.css → NcHotkey-4yi1Hobg.css} +10 -9
- package/dist/assets/NcHotkeyList-gAZN0WIu.css +8 -0
- package/dist/assets/{NcIconSvgWrapper-D6qXQDNo.css → NcIconSvgWrapper-N3OwSN9O.css} +10 -10
- package/dist/assets/{NcInputField-D5SEE7D0.css → NcInputField-DCpslX7k.css} +40 -40
- package/dist/assets/{NcListItem-BRTO5Id3.css → NcListItem-CZnKmy9X.css} +41 -41
- package/dist/assets/{NcListItemIcon-OOjV0jWx.css → NcListItemIcon-aquns6B7.css} +13 -13
- package/dist/assets/{NcNoteCard-l5nIN9Hg.css → NcNoteCard-DZSuYX4-.css} +10 -10
- package/dist/assets/{NcPasswordField-CMuvrdVC.css → NcPasswordField-BCJ0LHSS.css} +2 -2
- package/dist/assets/NcRadioGroup-1zpSX8V5.css +21 -0
- package/dist/assets/{NcRadioGroupButton-qxDfssOp.css → NcRadioGroupButton-DRZ1_-yY.css} +11 -19
- package/dist/assets/{NcRelatedResourcesPanel-CZDNe7DZ.css → NcRelatedResourcesPanel-Bun35PUF.css} +7 -7
- package/dist/assets/{NcRichContenteditable-CPbTS8xJ.css → NcRichContenteditable-BuaWt3Xn.css} +11 -11
- package/dist/assets/{NcRichText-Bx--sR58.css → NcRichText-BwHm-gXR.css} +111 -88
- package/dist/assets/{NcTextArea-7C2JBozT.css → NcTextArea-BKVszZmQ.css} +25 -25
- package/dist/chunks/{NcActionButton-BAaRMesp.mjs → NcActionButton-DCWUru2b.mjs} +3 -3
- package/dist/chunks/{NcActionButton-BAaRMesp.mjs.map → NcActionButton-DCWUru2b.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-EyWT8pe-.mjs → NcActionButtonGroup-QgGuZcPA.mjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-EyWT8pe-.mjs.map → NcActionButtonGroup-QgGuZcPA.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-BaHXAvFo.mjs → NcActionInput-Bw4UxfFB.mjs} +6 -6
- package/dist/chunks/{NcActionInput-BaHXAvFo.mjs.map → NcActionInput-Bw4UxfFB.mjs.map} +1 -1
- package/dist/chunks/{NcActionTextEditable-CzI0V4-P.mjs → NcActionTextEditable-BQXCci7D.mjs} +3 -3
- package/dist/chunks/{NcActionTextEditable-CzI0V4-P.mjs.map → NcActionTextEditable-BQXCci7D.mjs.map} +1 -1
- package/dist/chunks/{NcActions-C-E6BGfZ.mjs → NcActions-B0kM6AYb.mjs} +23 -57
- package/dist/chunks/NcActions-B0kM6AYb.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-Qg8YBJa7.mjs → NcAppContent-BbtKZp6w.mjs} +9 -18
- package/dist/chunks/NcAppContent-BbtKZp6w.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-BWd7-5H0.mjs → NcAppNavigation-CROkGlDE.mjs} +7 -7
- package/dist/chunks/NcAppNavigation-CROkGlDE.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationCaption-wzGkHPZs.mjs → NcAppNavigationCaption-CuGe5Mev.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-wzGkHPZs.mjs.map → NcAppNavigationCaption-CuGe5Mev.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-Cz_lEp5a.mjs → NcAppNavigationItem-DU-pLjwa.mjs} +9 -9
- package/dist/chunks/NcAppNavigationItem-DU-pLjwa.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNew-Y50s6jTC.mjs → NcAppNavigationNew-DJbq5wr_.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNew-Y50s6jTC.mjs.map → NcAppNavigationNew-DJbq5wr_.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-D-JsQf87.mjs → NcAppNavigationNewItem-CoRu6Q9O.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-D-JsQf87.mjs.map → NcAppNavigationNewItem-CoRu6Q9O.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-BbXky-Un.mjs → NcAppNavigationSearch-DaIFceYy.mjs} +5 -5
- package/dist/chunks/NcAppNavigationSearch-DaIFceYy.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSettings-CgRg-AbU.mjs → NcAppNavigationSettings-45tEbBBm.mjs} +5 -5
- package/dist/chunks/{NcAppNavigationSettings-CgRg-AbU.mjs.map → NcAppNavigationSettings-45tEbBBm.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-BZzj8jNU.mjs → NcAppSettingsDialog-lTULgn3p.mjs} +40 -12
- package/dist/chunks/NcAppSettingsDialog-lTULgn3p.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsSection-urZiy9aH.mjs → NcAppSettingsSection-B9R7enkC.mjs} +15 -8
- package/dist/chunks/NcAppSettingsSection-B9R7enkC.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsSectionShortcuts-CK8lXUxx.mjs → NcAppSettingsShortcutsSection-DIIuKYzs.mjs} +7 -7
- package/dist/chunks/{NcAppSettingsSectionShortcuts-CK8lXUxx.mjs.map → NcAppSettingsShortcutsSection-DIIuKYzs.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-Du9lcG-G.mjs → NcAppSidebar-X9ktYY0p.mjs} +6 -6
- package/dist/chunks/NcAppSidebar-X9ktYY0p.mjs.map +1 -0
- package/dist/chunks/{NcAssistantButton-BdYyxDoX.mjs → NcAssistantButton-BID8rRE5.mjs} +5 -5
- package/dist/chunks/{NcAssistantButton-BdYyxDoX.mjs.map → NcAssistantButton-BID8rRE5.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantIcon-ClJKOiGi.mjs → NcAssistantIcon-BUvb4WNg.mjs} +2 -2
- package/dist/chunks/{NcAssistantIcon-ClJKOiGi.mjs.map → NcAssistantIcon-BUvb4WNg.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-CZVJYWdr.mjs → NcAvatar-Dxm05R6e.mjs} +27 -23
- package/dist/chunks/NcAvatar-Dxm05R6e.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-CkUvC1g0.mjs → NcBreadcrumb-CiM9xAAS.mjs} +3 -3
- package/dist/chunks/{NcBreadcrumb-CkUvC1g0.mjs.map → NcBreadcrumb-CiM9xAAS.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-Dx6ylWcp.mjs → NcBreadcrumbs-geMiBPkk.mjs} +4 -4
- package/dist/chunks/{NcBreadcrumbs-Dx6ylWcp.mjs.map → NcBreadcrumbs-geMiBPkk.mjs.map} +1 -1
- package/dist/chunks/{NcButton-DkC5k3Lb.mjs → NcButton-ZNHdqKQl.mjs} +3 -3
- package/dist/chunks/NcButton-ZNHdqKQl.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-Da3UT5om.mjs → NcCheckboxRadioSwitch-6ty3DxEG.mjs} +2 -2
- package/dist/chunks/{NcCheckboxRadioSwitch-Da3UT5om.mjs.map → NcCheckboxRadioSwitch-6ty3DxEG.mjs.map} +1 -1
- package/dist/chunks/{NcChip-CIjgDRrf.mjs → NcChip-CFf0KxGk.mjs} +8 -8
- package/dist/chunks/NcChip-CFf0KxGk.mjs.map +1 -0
- package/dist/chunks/{NcCollectionList-DqNsOT7P.mjs → NcCollectionList-Ds-tmckn.mjs} +7 -7
- package/dist/chunks/{NcCollectionList-DqNsOT7P.mjs.map → NcCollectionList-Ds-tmckn.mjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-yoZ5ZWC3.mjs → NcColorPicker-BFcR9_1o.mjs} +6 -6
- package/dist/chunks/{NcColorPicker-yoZ5ZWC3.mjs.map → NcColorPicker-BFcR9_1o.mjs.map} +1 -1
- package/dist/chunks/{NcContent-DxKYTMfp.mjs → NcContent-BKKnoxxu.mjs} +4 -4
- package/dist/chunks/{NcContent-DxKYTMfp.mjs.map → NcContent-BKKnoxxu.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-Bu7bWoUK.mjs → NcDashboardWidget-cclUqUde.mjs} +7 -7
- package/dist/chunks/NcDashboardWidget-cclUqUde.mjs.map +1 -0
- package/dist/chunks/{NcDashboardWidgetItem-CJg0lrlx.mjs → NcDashboardWidgetItem-DM96gJkD.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-CJg0lrlx.mjs.map → NcDashboardWidgetItem-DM96gJkD.mjs.map} +1 -1
- package/dist/chunks/{NcDateTimePicker-DOwSKf9T.mjs → NcDateTimePicker-CYRbEpfY.mjs} +7 -7
- package/dist/chunks/{NcDateTimePicker-DOwSKf9T.mjs.map → NcDateTimePicker-CYRbEpfY.mjs.map} +1 -1
- package/dist/chunks/{NcDateTimePickerNative-BSKXbwuA.mjs → NcDateTimePickerNative-CR1Yx5Qp.mjs} +2 -2
- package/dist/chunks/{NcDateTimePickerNative-BSKXbwuA.mjs.map → NcDateTimePickerNative-CR1Yx5Qp.mjs.map} +1 -1
- package/dist/chunks/{NcDialog-BgzJN2XT.mjs → NcDialog-BY-1v8yi.mjs} +3 -3
- package/dist/chunks/{NcDialog-BgzJN2XT.mjs.map → NcDialog-BY-1v8yi.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-D9ClaBcS.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-CF6LnBe7.mjs} +4 -4
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-D9ClaBcS.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-CF6LnBe7.mjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-CwR_8bCR.mjs → NcEmojiPicker-DMiiRPm1.mjs} +7 -7
- package/dist/chunks/{NcEmojiPicker-CwR_8bCR.mjs.map → NcEmojiPicker-DMiiRPm1.mjs.map} +1 -1
- package/dist/chunks/NcFormBox-K2tCRm3B.mjs +45 -0
- package/dist/chunks/NcFormBox-K2tCRm3B.mjs.map +1 -0
- package/dist/chunks/NcFormBoxButton-4XaQUTOS.mjs +145 -0
- package/dist/chunks/NcFormBoxButton-4XaQUTOS.mjs.map +1 -0
- package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs +53 -0
- package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs.map +1 -0
- package/dist/chunks/NcFormBoxItem-BBP76Mkf.mjs +97 -0
- package/dist/chunks/NcFormBoxItem-BBP76Mkf.mjs.map +1 -0
- package/dist/chunks/NcFormBoxSwitch-E6Ei7MFo.mjs +97 -0
- package/dist/chunks/NcFormBoxSwitch-E6Ei7MFo.mjs.map +1 -0
- package/dist/chunks/NcFormGroup-CnSfPFey.mjs +74 -0
- package/dist/chunks/NcFormGroup-CnSfPFey.mjs.map +1 -0
- package/dist/chunks/{NcHeaderButton-DafXYbXB.mjs → NcHeaderButton-tLfDELGu.mjs} +2 -2
- package/dist/chunks/{NcHeaderButton-DafXYbXB.mjs.map → NcHeaderButton-tLfDELGu.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-DfO7ghiM.mjs → NcHeaderMenu-ClRw0Xc5.mjs} +2 -2
- package/dist/chunks/{NcHeaderMenu-DfO7ghiM.mjs.map → NcHeaderMenu-ClRw0Xc5.mjs.map} +1 -1
- package/dist/chunks/{NcHotkey-V6s3DXUs.mjs → NcHotkey-Cya0WRKL.mjs} +7 -7
- package/dist/chunks/NcHotkey-Cya0WRKL.mjs.map +1 -0
- package/dist/chunks/{NcHotkeyList-Ck87UwvW.mjs → NcHotkeyList-B9C--U6a.mjs} +5 -5
- package/dist/chunks/NcHotkeyList-B9C--U6a.mjs.map +1 -0
- package/dist/chunks/{NcIconSvgWrapper-5AA93z-F.mjs → NcIconSvgWrapper-BvLanNaW.mjs} +4 -4
- package/dist/chunks/NcIconSvgWrapper-BvLanNaW.mjs.map +1 -0
- package/dist/chunks/{NcInputConfirmCancel-Zkh97f-3.mjs → NcInputConfirmCancel-Brw2dsPI.mjs} +3 -3
- package/dist/chunks/{NcInputConfirmCancel-Zkh97f-3.mjs.map → NcInputConfirmCancel-Brw2dsPI.mjs.map} +1 -1
- package/dist/chunks/{NcInputField-By_D1kDJ.mjs → NcInputField-z8wpYKt2.mjs} +11 -9
- package/dist/chunks/NcInputField-z8wpYKt2.mjs.map +1 -0
- package/dist/chunks/{NcKbd-CyqxbpJJ.mjs → NcKbd-D6pM7aJM.mjs} +2 -2
- package/dist/chunks/{NcKbd-CyqxbpJJ.mjs.map → NcKbd-D6pM7aJM.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-z4qAtAqe.mjs → NcListItem-D5AkAxDh.mjs} +9 -10
- package/dist/chunks/NcListItem-D5AkAxDh.mjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-BVr_U7S4.mjs → NcListItemIcon-D_ReDycv.mjs} +5 -5
- package/dist/chunks/NcListItemIcon-D_ReDycv.mjs.map +1 -0
- package/dist/chunks/{NcModal-CvHjwuUy.mjs → NcModal-DZtBQM1y.mjs} +7 -7
- package/dist/chunks/{NcModal-CvHjwuUy.mjs.map → NcModal-DZtBQM1y.mjs.map} +1 -1
- package/dist/chunks/{NcNoteCard-BomepG0z.mjs → NcNoteCard-C6JdnZUp.mjs} +5 -5
- package/dist/chunks/NcNoteCard-C6JdnZUp.mjs.map +1 -0
- package/dist/chunks/{NcPasswordField-DroBJzYE.mjs → NcPasswordField-BquWP0Di.mjs} +11 -8
- package/dist/chunks/NcPasswordField-BquWP0Di.mjs.map +1 -0
- package/dist/chunks/NcRadioGroup-CLtk-WPR.mjs +75 -0
- package/dist/chunks/NcRadioGroup-CLtk-WPR.mjs.map +1 -0
- package/dist/chunks/{NcRadioGroupButton-BNydXurR.mjs → NcRadioGroupButton-CDA5i7Dq.mjs} +11 -9
- package/dist/chunks/NcRadioGroupButton-CDA5i7Dq.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-1oVpr5Oh.mjs → NcRelatedResourcesPanel-DPwZ4SSu.mjs} +8 -8
- package/dist/chunks/NcRelatedResourcesPanel-DPwZ4SSu.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-D-GPJR9c.mjs → NcRichContenteditable-ClUiBH9B.mjs} +18 -15
- package/dist/chunks/{NcRichContenteditable-D-GPJR9c.mjs.map → NcRichContenteditable-ClUiBH9B.mjs.map} +1 -1
- package/dist/chunks/{NcRichText-CETsOVBU.mjs → NcRichText-DamxfqDV.mjs} +47 -8
- package/dist/chunks/NcRichText-DamxfqDV.mjs.map +1 -0
- package/dist/chunks/{NcSelect-BUPzYWtk.mjs → NcSelect-Ba00b95n.mjs} +2 -2
- package/dist/chunks/{NcSelect-BUPzYWtk.mjs.map → NcSelect-Ba00b95n.mjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-Cu7fqEPC.mjs → NcSelectTags-DAxQe-10.mjs} +3 -3
- package/dist/chunks/{NcSelectTags-Cu7fqEPC.mjs.map → NcSelectTags-DAxQe-10.mjs.map} +1 -1
- package/dist/chunks/{NcSelectUsers-C3w6sjP5.mjs → NcSelectUsers-DlE8EHdq.mjs} +3 -3
- package/dist/chunks/{NcSelectUsers-C3w6sjP5.mjs.map → NcSelectUsers-DlE8EHdq.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-DFav6ob5.mjs → NcSettingsSection-BfK7eHNT.mjs} +2 -2
- package/dist/chunks/{NcSettingsSection-DFav6ob5.mjs.map → NcSettingsSection-BfK7eHNT.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-DOiWF5XH.mjs → NcSettingsSelectGroup-CO8dnQ6q.mjs} +4 -4
- package/dist/chunks/{NcSettingsSelectGroup-DOiWF5XH.mjs.map → NcSettingsSelectGroup-CO8dnQ6q.mjs.map} +1 -1
- package/dist/chunks/{NcTextArea-CKK_gfIE.mjs → NcTextArea-Cr27-KiU.mjs} +9 -7
- package/dist/chunks/NcTextArea-Cr27-KiU.mjs.map +1 -0
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-DVAnIMOA.mjs → NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs} +5 -5
- package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs.map +1 -0
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C2YnFWvf.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs} +3 -3
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C2YnFWvf.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-CM66IyhS.mjs → NcUserBubble-DEW575GR.mjs} +2 -2
- package/dist/chunks/{NcUserBubble-CM66IyhS.mjs.map → NcUserBubble-DEW575GR.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-DWB8QUZh.mjs → NcUserStatusIcon-DHHqIgRK.mjs} +2 -2
- package/dist/chunks/{NcUserStatusIcon-DWB8QUZh.mjs.map → NcUserStatusIcon-DHHqIgRK.mjs.map} +1 -1
- package/dist/chunks/{_l10n-YZMLsK4O.mjs → _l10n-CWKr1fUH.mjs} +51 -49
- package/dist/chunks/_l10n-CWKr1fUH.mjs.map +1 -0
- package/dist/chunks/appName-DtnLUijR.mjs +41 -0
- package/dist/chunks/appName-DtnLUijR.mjs.map +1 -0
- package/dist/chunks/{colors-DhEYXS0_.mjs → colors-BM9KkzNS.mjs} +2 -2
- package/dist/chunks/{colors-DhEYXS0_.mjs.map → colors-BM9KkzNS.mjs.map} +1 -1
- package/dist/chunks/{mdi-Cjx8NyEs.mjs → mdi-HQ-WBPmL.mjs} +32 -22
- package/dist/chunks/{mdi-Cjx8NyEs.mjs.map → mdi-HQ-WBPmL.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-CseuhGwX.mjs → referencePickerModal-f8STnNvS.mjs} +10 -10
- package/dist/chunks/{referencePickerModal-CseuhGwX.mjs.map → referencePickerModal-f8STnNvS.mjs.map} +1 -1
- package/dist/chunks/{useAppSettingsDialog-Dn48dw1k.mjs → useAppSettingsDialog-DbtEkXa4.mjs} +4 -2
- package/dist/chunks/useAppSettingsDialog-DbtEkXa4.mjs.map +1 -0
- package/dist/chunks/useCopy-pTWmSjcP.mjs +39 -0
- package/dist/chunks/useCopy-pTWmSjcP.mjs.map +1 -0
- package/dist/chunks/useNcFormBox-DA9iwXWY.mjs +13 -0
- package/dist/chunks/useNcFormBox-DA9iwXWY.mjs.map +1 -0
- package/dist/chunks/useTrapStackControl-B6cEicto.mjs.map +1 -1
- package/dist/components/NcActionButton/index.mjs +1 -1
- package/dist/components/NcActionButtonGroup/index.mjs +1 -1
- package/dist/components/NcActionInput/NcActionInput.vue.d.ts +2 -2
- package/dist/components/NcActionInput/index.mjs +1 -1
- package/dist/components/NcActionTextEditable/index.mjs +1 -1
- package/dist/components/NcActions/NcActions.vue.d.ts +21 -9
- package/dist/components/NcActions/index.mjs +1 -1
- package/dist/components/NcAppContent/index.mjs +1 -1
- package/dist/components/NcAppNavigation/index.mjs +1 -1
- package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +11 -4
- package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
- package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +11 -4
- package/dist/components/NcAppNavigationItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationNew/index.mjs +1 -1
- package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
- package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/NcAppSettingsDialog.vue.d.ts +12 -0
- package/dist/components/NcAppSettingsDialog/NcAppSettingsDialogVersion.vue.d.ts +2 -0
- package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/useAppSettingsDialog.d.ts +2 -1
- package/dist/components/NcAppSettingsSection/NcAppSettingsSection.vue.d.ts +2 -0
- package/dist/components/NcAppSettingsSection/index.mjs +1 -1
- package/dist/components/NcAppSettingsSectionShortcuts/index.d.ts +8 -1
- package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
- package/dist/components/NcAppSettingsShortcutsSection/index.d.ts +5 -0
- package/dist/components/NcAppSettingsShortcutsSection/index.mjs +5 -0
- package/dist/components/NcAppSettingsShortcutsSection/index.mjs.map +1 -0
- package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +11 -4
- package/dist/components/NcAppSidebar/index.mjs +1 -1
- package/dist/components/NcAssistantButton/index.mjs +1 -1
- package/dist/components/NcAssistantIcon/index.mjs +1 -1
- package/dist/components/NcAvatar/NcAvatar.vue.d.ts +12 -4
- package/dist/components/NcAvatar/index.mjs +1 -1
- package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +11 -4
- package/dist/components/NcBreadcrumb/index.mjs +1 -1
- package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +22 -8
- package/dist/components/NcBreadcrumbs/index.mjs +1 -1
- package/dist/components/NcButton/index.mjs +1 -1
- package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
- package/dist/components/NcChip/index.mjs +1 -1
- package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +36 -14
- package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +23 -8
- package/dist/components/NcCollectionList/index.mjs +1 -1
- package/dist/components/NcColorPicker/index.mjs +1 -1
- package/dist/components/NcContent/index.mjs +1 -1
- package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +35 -12
- package/dist/components/NcDashboardWidget/index.mjs +1 -1
- package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +23 -8
- package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +2 -2
- package/dist/components/NcDateTimePicker/index.mjs +1 -1
- package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
- package/dist/components/NcDialog/index.mjs +1 -1
- package/dist/components/NcDialogButton/index.mjs +1 -1
- package/dist/components/NcEmojiPicker/index.mjs +1 -1
- package/dist/components/NcFormBox/NcFormBox.vue.d.ts +42 -0
- package/dist/components/NcFormBox/NcFormBoxItem.vue.d.ts +61 -0
- package/dist/components/NcFormBox/index.d.ts +1 -0
- package/dist/components/NcFormBox/index.mjs +5 -0
- package/dist/components/NcFormBox/index.mjs.map +1 -0
- package/dist/components/NcFormBox/useNcFormBox.d.ts +19 -0
- package/dist/components/NcFormBoxButton/NcFormBoxButton.vue.d.ts +51 -0
- package/dist/components/NcFormBoxButton/index.d.ts +5 -0
- package/dist/components/NcFormBoxButton/index.mjs +5 -0
- package/dist/components/NcFormBoxButton/index.mjs.map +1 -0
- package/dist/components/NcFormBoxCopyButton/NcFormBoxCopyButton.vue.d.ts +34 -0
- package/dist/components/NcFormBoxCopyButton/index.d.ts +5 -0
- package/dist/components/NcFormBoxCopyButton/index.mjs +5 -0
- package/dist/components/NcFormBoxCopyButton/index.mjs.map +1 -0
- package/dist/components/NcFormBoxSwitch/NcFormBoxSwitch.vue.d.ts +45 -0
- package/dist/components/NcFormBoxSwitch/index.d.ts +5 -0
- package/dist/components/NcFormBoxSwitch/index.mjs +5 -0
- package/dist/components/NcFormBoxSwitch/index.mjs.map +1 -0
- package/dist/components/NcFormGroup/NcFormGroup.vue.d.ts +64 -0
- package/dist/components/NcFormGroup/index.d.ts +5 -0
- package/dist/components/NcFormGroup/index.mjs +5 -0
- package/dist/components/NcFormGroup/index.mjs.map +1 -0
- package/dist/components/NcHeaderButton/index.mjs +1 -1
- package/dist/components/NcHeaderMenu/index.mjs +1 -1
- package/dist/components/NcHotkey/index.mjs +1 -1
- package/dist/components/NcHotkeyList/index.mjs +1 -1
- package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
- package/dist/components/NcInputField/index.mjs +1 -1
- package/dist/components/NcKbd/index.mjs +1 -1
- package/dist/components/NcListItem/NcListItem.vue.d.ts +11 -4
- package/dist/components/NcListItem/index.mjs +1 -1
- package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +13 -4
- package/dist/components/NcListItemIcon/index.mjs +1 -1
- package/dist/components/NcModal/index.mjs +1 -1
- package/dist/components/NcNoteCard/index.mjs +1 -1
- package/dist/components/NcPasswordField/index.mjs +1 -1
- package/dist/components/NcRadioGroup/NcRadioGroup.vue.d.ts +7 -1
- package/dist/components/NcRadioGroup/index.mjs +1 -1
- package/dist/components/NcRadioGroupButton/index.mjs +1 -1
- package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
- package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +1 -2
- package/dist/components/NcRichContenteditable/index.mjs +1 -1
- package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +1 -2
- package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +1 -2
- package/dist/components/NcRichText/NcRichTextCopyButton.vue.d.ts +6 -0
- package/dist/components/NcRichText/index.mjs +3 -3
- package/dist/components/NcSelect/index.mjs +1 -1
- package/dist/components/NcSelectTags/index.mjs +1 -1
- package/dist/components/NcSelectUsers/index.mjs +1 -1
- package/dist/components/NcSettingsSection/index.mjs +1 -1
- package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +1 -2
- package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
- package/dist/components/NcTextArea/index.mjs +1 -1
- package/dist/components/NcTextField/index.mjs +1 -1
- package/dist/components/NcTimezonePicker/index.mjs +1 -1
- package/dist/components/NcUserBubble/index.mjs +1 -1
- package/dist/components/NcUserStatusIcon/index.mjs +1 -1
- package/dist/components/index.d.ts +6 -0
- package/dist/composables/useButtonLink.d.ts +78 -0
- package/dist/composables/useCopy.d.ts +12 -0
- package/dist/composables/useFormatDateTime/index.mjs +1 -1
- package/dist/composables/useTrapStackControl.d.ts +1 -2
- package/dist/functions/reference/index.mjs +1 -1
- package/dist/functions/usernameToColor/index.mjs +1 -1
- package/dist/index.mjs +149 -138
- package/dist/index.mjs.map +1 -1
- package/dist/mixins/userStatus.d.ts +8 -0
- package/dist/utils/appName.d.ts +5 -0
- package/dist/utils/utils.d.ts +10 -0
- package/package.json +24 -24
- package/dist/assets/NcHotkeyList-B42a0d8Z.css +0 -9
- package/dist/assets/NcRadioGroup-CNgjqqiP.css +0 -49
- package/dist/chunks/NcActions-C-E6BGfZ.mjs.map +0 -1
- package/dist/chunks/NcAppContent-Qg8YBJa7.mjs.map +0 -1
- package/dist/chunks/NcAppNavigation-BWd7-5H0.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-Cz_lEp5a.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSearch-BbXky-Un.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-BZzj8jNU.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsSection-urZiy9aH.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-Du9lcG-G.mjs.map +0 -1
- package/dist/chunks/NcAvatar-CZVJYWdr.mjs.map +0 -1
- package/dist/chunks/NcButton-DkC5k3Lb.mjs.map +0 -1
- package/dist/chunks/NcChip-CIjgDRrf.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-Bu7bWoUK.mjs.map +0 -1
- package/dist/chunks/NcHotkey-V6s3DXUs.mjs.map +0 -1
- package/dist/chunks/NcHotkeyList-Ck87UwvW.mjs.map +0 -1
- package/dist/chunks/NcIconSvgWrapper-5AA93z-F.mjs.map +0 -1
- package/dist/chunks/NcInputField-By_D1kDJ.mjs.map +0 -1
- package/dist/chunks/NcListItem-z4qAtAqe.mjs.map +0 -1
- package/dist/chunks/NcListItemIcon-BVr_U7S4.mjs.map +0 -1
- package/dist/chunks/NcNoteCard-BomepG0z.mjs.map +0 -1
- package/dist/chunks/NcPasswordField-DroBJzYE.mjs.map +0 -1
- package/dist/chunks/NcRadioGroup-B_BNFM6V.mjs +0 -81
- package/dist/chunks/NcRadioGroup-B_BNFM6V.mjs.map +0 -1
- package/dist/chunks/NcRadioGroupButton-BNydXurR.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-1oVpr5Oh.mjs.map +0 -1
- package/dist/chunks/NcRichText-CETsOVBU.mjs.map +0 -1
- package/dist/chunks/NcTextArea-CKK_gfIE.mjs.map +0 -1
- package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-DVAnIMOA.mjs.map +0 -1
- package/dist/chunks/_l10n-YZMLsK4O.mjs.map +0 -1
- package/dist/chunks/useAppSettingsDialog-Dn48dw1k.mjs.map +0 -1
- /package/dist/assets/{NcAppSettingsSectionShortcuts-CRO4RakN.css → NcAppSettingsShortcutsSection-CRO4RakN.css} +0 -0
- /package/dist/components/{NcAppSettingsSectionShortcuts/NcAppSettingsSectionShortcuts.vue.d.ts → NcAppSettingsShortcutsSection/NcAppSettingsShortcutsSection.vue.d.ts} +0 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import '../assets/NcFormBoxButton-C6EvdLK4.css';
|
|
2
|
+
import { reactive, inject, computed, defineComponent, toRef, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from "vue";
|
|
3
|
+
import { q as mdiOpenInNew, r as mdiArrowTopRight } from "./mdi-HQ-WBPmL.mjs";
|
|
4
|
+
import { N as NcFormBoxItem } from "./NcFormBoxItem-BBP76Mkf.mjs";
|
|
5
|
+
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-BvLanNaW.mjs";
|
|
6
|
+
import { routerKey } from "vue-router";
|
|
7
|
+
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
8
|
+
/*!
|
|
9
|
+
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
|
10
|
+
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
11
|
+
*/
|
|
12
|
+
function useButtonLink(options) {
|
|
13
|
+
const props = reactive(options);
|
|
14
|
+
const hasVueRouterContext = inject(routerKey, null) !== null;
|
|
15
|
+
const tag = computed(() => {
|
|
16
|
+
if (hasVueRouterContext && props.to) {
|
|
17
|
+
return "RouterLink";
|
|
18
|
+
} else if (props.href) {
|
|
19
|
+
return "a";
|
|
20
|
+
} else {
|
|
21
|
+
return "button";
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
const isLink = computed(() => tag.value === "RouterLink" || tag.value === "a");
|
|
25
|
+
const isHyperLink = computed(() => tag.value === "a");
|
|
26
|
+
const isRouterLink = computed(() => tag.value === "RouterLink");
|
|
27
|
+
const isButton = computed(() => tag.value === "button");
|
|
28
|
+
const attrs = computed(() => {
|
|
29
|
+
if (tag.value === "RouterLink") {
|
|
30
|
+
return {
|
|
31
|
+
to: props.to,
|
|
32
|
+
activeClass: "active",
|
|
33
|
+
...props.additionalAttrs?.("RouterLink") ?? {}
|
|
34
|
+
};
|
|
35
|
+
} else if (tag.value === "a") {
|
|
36
|
+
return {
|
|
37
|
+
href: props.href,
|
|
38
|
+
target: props.target,
|
|
39
|
+
download: props.download || void 0,
|
|
40
|
+
rel: "nofollow noreferrer noopener",
|
|
41
|
+
...props.additionalAttrs?.("a") ?? {}
|
|
42
|
+
};
|
|
43
|
+
} else if (tag.value === "button") {
|
|
44
|
+
return {
|
|
45
|
+
type: props.type || "button",
|
|
46
|
+
disabled: props.disabled,
|
|
47
|
+
...props.additionalAttrs?.("button") ?? {}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
tag,
|
|
53
|
+
isLink,
|
|
54
|
+
isHyperLink,
|
|
55
|
+
isRouterLink,
|
|
56
|
+
isButton,
|
|
57
|
+
attrs
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
61
|
+
__name: "NcFormBoxButton",
|
|
62
|
+
props: {
|
|
63
|
+
label: { default: () => void 0 },
|
|
64
|
+
description: { default: () => void 0 },
|
|
65
|
+
invertedAccent: { type: Boolean, default: false },
|
|
66
|
+
to: { default: () => void 0 },
|
|
67
|
+
href: { default: () => void 0 },
|
|
68
|
+
target: { default: () => void 0 },
|
|
69
|
+
disabled: { type: Boolean, default: false }
|
|
70
|
+
},
|
|
71
|
+
emits: ["click"],
|
|
72
|
+
setup(__props) {
|
|
73
|
+
const { tag, attrs, isLink } = useButtonLink({
|
|
74
|
+
to: toRef(() => __props.to),
|
|
75
|
+
href: toRef(() => __props.href),
|
|
76
|
+
target: toRef(() => __props.target),
|
|
77
|
+
disabled: toRef(() => __props.disabled)
|
|
78
|
+
});
|
|
79
|
+
const icon = computed(() => {
|
|
80
|
+
if (isLink.value) {
|
|
81
|
+
return __props.target === "_blank" ? mdiOpenInNew : mdiArrowTopRight;
|
|
82
|
+
}
|
|
83
|
+
return void 0;
|
|
84
|
+
});
|
|
85
|
+
return (_ctx, _cache) => {
|
|
86
|
+
return openBlock(), createBlock(NcFormBoxItem, mergeProps({
|
|
87
|
+
tag: unref(tag),
|
|
88
|
+
"item-classes": [
|
|
89
|
+
"button-vue",
|
|
90
|
+
/* Reset server's global HTML button styles */
|
|
91
|
+
_ctx.$style.formBoxButton
|
|
92
|
+
],
|
|
93
|
+
"inverted-accent": _ctx.invertedAccent
|
|
94
|
+
}, unref(attrs), {
|
|
95
|
+
tabindex: "0",
|
|
96
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
|
|
97
|
+
}), createSlots({ _: 2 }, [
|
|
98
|
+
_ctx.$slots.default || _ctx.label ? {
|
|
99
|
+
name: "default",
|
|
100
|
+
fn: withCtx(() => [
|
|
101
|
+
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
102
|
+
createTextVNode(toDisplayString(_ctx.label), 1)
|
|
103
|
+
])
|
|
104
|
+
]),
|
|
105
|
+
key: "0"
|
|
106
|
+
} : void 0,
|
|
107
|
+
_ctx.$slots.description || _ctx.description ? {
|
|
108
|
+
name: "description",
|
|
109
|
+
fn: withCtx(() => [
|
|
110
|
+
renderSlot(_ctx.$slots, "description", {}, () => [
|
|
111
|
+
createTextVNode(toDisplayString(_ctx.description), 1)
|
|
112
|
+
])
|
|
113
|
+
]),
|
|
114
|
+
key: "1"
|
|
115
|
+
} : void 0,
|
|
116
|
+
_ctx.$slots.icon || icon.value ? {
|
|
117
|
+
name: "icon",
|
|
118
|
+
fn: withCtx(() => [
|
|
119
|
+
renderSlot(_ctx.$slots, "icon", {}, () => [
|
|
120
|
+
icon.value ? (openBlock(), createBlock(NcIconSvgWrapper, {
|
|
121
|
+
key: 0,
|
|
122
|
+
path: icon.value,
|
|
123
|
+
inline: ""
|
|
124
|
+
}, null, 8, ["path"])) : createCommentVNode("", true)
|
|
125
|
+
])
|
|
126
|
+
]),
|
|
127
|
+
key: "2"
|
|
128
|
+
} : void 0
|
|
129
|
+
]), 1040, ["tag", "item-classes", "inverted-accent"]);
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
const formBoxButton = "_formBoxButton_15jyc_20";
|
|
134
|
+
const style0 = {
|
|
135
|
+
"material-design-icon": "_material-design-icon_15jyc_12",
|
|
136
|
+
formBoxButton
|
|
137
|
+
};
|
|
138
|
+
const cssModules = {
|
|
139
|
+
"$style": style0
|
|
140
|
+
};
|
|
141
|
+
const NcFormBoxButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
142
|
+
export {
|
|
143
|
+
NcFormBoxButton as N
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=NcFormBoxButton-4XaQUTOS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcFormBoxButton-4XaQUTOS.mjs","sources":["../../src/composables/useButtonLink.ts","../../src/components/NcFormBoxButton/NcFormBoxButton.vue"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AnchorHTMLAttributes, ButtonHTMLAttributes, MaybeRef } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\n\nimport { computed, inject, reactive } from 'vue'\nimport { routerKey } from 'vue-router'\n\ntype ButtonLinkProps = {\n\t// Required - general link props\n\n\t/**\n\t * RouterLink's to props and a trigger to use RouterLink.\n\t * Note: This takes precedence over the href attribute.\n\t */\n\tto: MaybeRef<RouteLocationRaw | undefined>\n\t/**\n\t * HyperLink href attribute and a trigger to use <a> hyperlink.\n\t */\n\thref: MaybeRef<string | undefined>\n\t/**\n\t * Define additional attributes, based on the tag\n\t */\n\tadditionalAttrs?: (tag: 'RouterLink' | 'a' | 'button') => object | undefined\n\n\t// RouterLink props\n\n\t/**\n\t * RouterLink's activeClass prop\n\t */\n\tactiveClass?: MaybeRef<string | undefined>\n\n\t// Hyperlink\n\n\t/**\n\t * <a> hyperlink's target attribute\n\t */\n\ttarget?: MaybeRef<AnchorHTMLAttributes['target'] | undefined>\n\t/**\n\t * <a> hyperlink's download attribute\n\t */\n\tdownload?: MaybeRef<string | boolean | undefined>\n\n\t// Button\n\n\t/**\n\t * <button> element's type attribute, but default to \"button\" instead of \"submit\"\n\t */\n\ttype?: MaybeRef<ButtonHTMLAttributes['type'] | undefined>\n\t/**\n\t * <button> element's disabled attribute\n\t */\n\tdisabled?: MaybeRef<boolean | undefined>\n}\n\n/**\n * Reusable implementation of an interactive button-like element that can be a link or a button\n *\n * @param options - Props to determine the button/link behavior. Can be a reactive object, or an object with nested refs, or mixed.\n */\nexport function useButtonLink(options: ButtonLinkProps) {\n\t// Resolve all MaybeRef-s values and maybe reactive object via unwrapping\n\tconst props = reactive(options)\n\n\tconst hasVueRouterContext = inject(routerKey, null) !== null\n\n\t/**\n\t * Tag name to be used\n\t */\n\tconst tag = computed(() => {\n\t\t// TODO: should we warn if props.to is provided but there is no vue-router?\n\t\tif (hasVueRouterContext && props.to) {\n\t\t\t// Note: RouterLink is used as globally registered component (by name) and not imported intentionally\n\t\t\t// to use injected component from the app and not bundle it to the button\n\t\t\treturn 'RouterLink'\n\t\t} else if (props.href) {\n\t\t\treturn 'a'\n\t\t} else {\n\t\t\treturn 'button'\n\t\t}\n\t})\n\n\tconst isLink = computed(() => tag.value === 'RouterLink' || tag.value === 'a')\n\tconst isHyperLink = computed(() => tag.value === 'a')\n\tconst isRouterLink = computed(() => tag.value === 'RouterLink')\n\tconst isButton = computed(() => tag.value === 'button')\n\n\tconst attrs = computed(() => {\n\t\tif (tag.value === 'RouterLink') {\n\t\t\treturn {\n\t\t\t\tto: props.to,\n\t\t\t\tactiveClass: 'active',\n\t\t\t\t...(props.additionalAttrs?.('RouterLink') ?? {}),\n\t\t\t}\n\t\t} else if (tag.value === 'a') {\n\t\t\treturn {\n\t\t\t\thref: props.href,\n\t\t\t\ttarget: props.target,\n\t\t\t\tdownload: props.download || undefined,\n\t\t\t\trel: 'nofollow noreferrer noopener',\n\t\t\t\t...(props.additionalAttrs?.('a') ?? {}),\n\t\t\t}\n\t\t} else if (tag.value === 'button') {\n\t\t\treturn {\n\t\t\t\ttype: props.type || 'button',\n\t\t\t\tdisabled: props.disabled,\n\t\t\t\t...(props.additionalAttrs?.('button') ?? {}),\n\t\t\t}\n\t\t}\n\t})\n\n\treturn {\n\t\ttag,\n\t\tisLink,\n\t\tisHyperLink,\n\t\tisRouterLink,\n\t\tisButton,\n\t\tattrs,\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { AnchorHTMLAttributes, Slot } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\n\nimport { mdiArrowTopRight, mdiOpenInNew } from '@mdi/js'\nimport { computed, toRef } from 'vue'\nimport NcFormBoxItem from '../NcFormBox/NcFormBoxItem.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport { useButtonLink } from '../../composables/useButtonLink.ts'\n\nconst {\n\tlabel = undefined,\n\tdescription = undefined,\n\tinvertedAccent = false,\n\tto = undefined,\n\thref = undefined,\n\ttarget = undefined, // TODO: should it be _blank by default?\n\tdisabled = false,\n} = 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/** Accent on the description instead of the label (see docs) */\n\tinvertedAccent?: boolean\n\t/** RouterLink's `to` prop; when provided, renders as `<RouterLink>` (takes precedence over the `href` prop) */\n\tto?: RouteLocationRaw\n\t/** Hyperlink `href` attribute; when provided, renders as `<a>` */\n\thref?: string\n\t/** Hyperlink's target attribute */\n\ttarget?: AnchorHTMLAttributes['target']\n\t/** Button's disabled attribute, not applicable to links */\n\tdisabled?: boolean\n}>()\n\ndefineEmits<{\n\t/** Native click event */\n\tclick: [event: MouseEvent]\n}>()\n\ndefineSlots<{\n\t/** Custom label content */\n\tdefault?: Slot\n\t/** Custom description content */\n\tdescription?: Slot\n\t/** Required icon (links have a default icon) */\n\ticon?: Slot // TODO: should the default link icon only be used for _blank links?\n}>()\n\nconst { tag, attrs, isLink } = useButtonLink({\n\tto: toRef(() => to),\n\thref: toRef(() => href),\n\ttarget: toRef(() => target),\n\tdisabled: toRef(() => disabled),\n})\n\nconst icon = computed(() => {\n\tif (isLink.value) {\n\t\treturn target === '_blank' ? mdiOpenInNew : mdiArrowTopRight\n\t}\n\treturn undefined\n})\n</script>\n\n<template>\n\t<NcFormBoxItem\n\t\t:tag\n\t\t:item-classes=\"[\n\t\t\t'button-vue', /* Reset server's global HTML button styles */\n\t\t\t$style.formBoxButton,\n\t\t]\"\n\t\t:inverted-accent\n\t\tv-bind=\"attrs\"\n\t\ttabindex=\"0\"\n\t\t@click=\"$emit('click', $event)\">\n\t\t<template v-if=\"$slots.default || label\" #default>\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 name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</template>\n\t\t<template v-if=\"$slots.icon || icon\" #icon>\n\t\t\t<slot name=\"icon\">\n\t\t\t\t<NcIconSvgWrapper v-if=\"icon\" :path=\"icon\" inline />\n\t\t\t</slot>\n\t\t</template>\n\t</NcFormBoxItem>\n</template>\n\n<style lang=\"scss\" module>\n.formBoxButton {\n\t/* Reset default HTML button styles */\n\tbackground: unset;\n\tborder: none;\n\tcolor: inherit;\n\tfont-size: inherit;\n\tfont-weight: inherit;\n\ttext-decoration: none;\n\ttext-align: inherit;\n\tline-height: inherit;\n\tpadding: 0;\n\tmargin: 0;\n\toutline: none;\n}\n</style>\n\n<docs>\n### General\n\nAn interactive button-like item within `<NcFormBox>`. It can be a button or a native link/router link if `to` or `href` props are provided.\n\nLike other form box items, it has a label and an optional description.\n\n```vue\n<script>\nimport { mdiContentCopy, mdiInformationOutline } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiContentCopy,\n\t\t\tmdiInformationOutline,\n\t\t}\n\t},\n}\n</script>\n\n<template>\n\t<NcFormBox>\n\t\t<NcFormBoxButton\n\t\t\tlabel=\"Nextcloud\"\n\t\t\thref=\"https://nextcloud.com\"\n\t\t\ttarget=\"_blank\" />\n\n\t\t<NcFormBoxButton\n\t\t\thref=\"https://nextcloud-vue-components.netlify.app\">\n\t\t\t<code>@nextcloud/vue</code> documentation\n\t\t</NcFormBoxButton>\n\n\t\t<NcFormBoxButton\n\t\t\tlabel=\"About\"\n\t\t\tdescription=\"Installation details\"\n\t\t\thref=\"https://nextcloud.com\"\n\t\t\ttarget=\"_blank\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiInformationOutline\" inline />\n\t\t\t</template>\n\t\t</NcFormBoxButton>\n\n\t\t<NcFormBoxButton\n\t\t\tlabel=\"Public signing key\">\n\t\t\t<template #description>\n\t\t\t\t<code>SSBkb24ndCBrbm93IHdoeSB5b3UgZGVjb2RlZCB0aGlzIHZhbHVlDQrgvLwg44GkIOKXlV/il5Ug4Ly944Gk</code>\n\t\t\t</template>\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiContentCopy\" inline />\n\t\t\t</template>\n\t\t</NcFormBoxButton>\n\t</NcFormBox>\n</template>\n```\n\n### Inverted accent\n\nSometimes the description is more important than the label. In such cases use `inverted-accent` prop.\n\nFor example:\n- **Steps:** the description of the step is more important than the step number\n- **Copy button:** the value being copied is more important than the value label\n- **Folder picker:** the selected folder path is more important than the input label\n\n```vue\n<script>\nimport { mdiContentCopy, mdiDomain, mdiFolderOpenOutline } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn { mdiContentCopy, mdiDomain, mdiFolderOpenOutline }\n\t},\n}\n</script>\n\n<template>\n\t<div style=\"display: flex; flex-direction: column; gap: calc(4 * var(--default-grid-baseline));\">\n\t\t<NcFormGroup label=\"Mailvelope\" description=\"A browser extension that enables easy OpenPGP encryption and decryption of emails\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxButton\n\t\t\t\t\tlabel=\"Step 1\"\n\t\t\t\t\tdescription=\"Install the browser extension\"\n\t\t\t\t\thref=\"https://www.mailvelope.com/\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\tinverted-accent />\n\t\t\t\t<NcFormBoxButton\n\t\t\t\t\tlabel=\"Step 2\"\n\t\t\t\t\tdescription=\"Enable the current domain\"\n\t\t\t\t\tinverted-accent>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDomain\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormGroup label=\"CalDAV\" description=\"Access Nextcloud calendars from other apps and devices\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxButton\n\t\t\t\t\tlabel=\"CalDAV URL\"\n\t\t\t\t\tdescription=\"https://cloud.example.com/remote.php/dav/\"\n\t\t\t\t\tinverted-accent>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiContentCopy\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcFormBoxButton\n\t\t\t\t\tlabel=\"Server Address for iOS and macOS\"\n\t\t\t\t\tdescription=\"https://cloud.example.com/remote.php/dav/principals/users/user/\"\n\t\t\t\t\tinverted-accent>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiContentCopy\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormGroup label=\"Files\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxButton\n\t\t\t\t\tlabel=\"Attachments folder\"\n\t\t\t\t\tdescription=\"/Talk\"\n\t\t\t\t\tinverted-accent>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiFolderOpenOutline\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\t</div>\n</template>\n```\n\n### Requirements\n\n- Label is required (`label` prop or the default slot)\n- Icon is required unless there is a default icon (links)\n\n```vue\n<template>\n\t<NcFormBox>\n\t\t<NcFormBoxButton description=\"No label example\">\n\t\t\t<template #icon>\n\t\t\t\t✅\n\t\t\t</template>\n\t\t</NcFormBoxButton>\n\t\t<NcFormBoxButton label=\"No icon example\"/>\n\t\t<NcFormBoxButton\n\t\t\tlabel=\"No icon link example\"\n\t\t\tdescription=\"Links have a default icon\"\n\t\t\thref=\"https://nextcloud.com\"\n\t\t\ttarget=\"_blank\" />\n\t</NcFormBox>\n</template>\n```\n</docs>\n"],"names":["_openBlock","_createBlock","_mergeProps","_unref","$style","invertedAccent","$emit","$slots","label","_renderSlot","description"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AA+DO,SAAS,cAAc,SAA0B;AAEvD,QAAM,QAAQ,SAAS,OAAO;AAE9B,QAAM,sBAAsB,OAAO,WAAW,IAAI,MAAM;AAKxD,QAAM,MAAM,SAAS,MAAM;AAE1B,QAAI,uBAAuB,MAAM,IAAI;AAGpC,aAAO;AAAA,IACR,WAAW,MAAM,MAAM;AACtB,aAAO;AAAA,IACR,OAAO;AACN,aAAO;AAAA,IACR;AAAA,EACD,CAAC;AAED,QAAM,SAAS,SAAS,MAAM,IAAI,UAAU,gBAAgB,IAAI,UAAU,GAAG;AAC7E,QAAM,cAAc,SAAS,MAAM,IAAI,UAAU,GAAG;AACpD,QAAM,eAAe,SAAS,MAAM,IAAI,UAAU,YAAY;AAC9D,QAAM,WAAW,SAAS,MAAM,IAAI,UAAU,QAAQ;AAEtD,QAAM,QAAQ,SAAS,MAAM;AAC5B,QAAI,IAAI,UAAU,cAAc;AAC/B,aAAO;AAAA,QACN,IAAI,MAAM;AAAA,QACV,aAAa;AAAA,QACb,GAAI,MAAM,kBAAkB,YAAY,KAAK,CAAA;AAAA,MAAC;AAAA,IAEhD,WAAW,IAAI,UAAU,KAAK;AAC7B,aAAO;AAAA,QACN,MAAM,MAAM;AAAA,QACZ,QAAQ,MAAM;AAAA,QACd,UAAU,MAAM,YAAY;AAAA,QAC5B,KAAK;AAAA,QACL,GAAI,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAAA,MAAC;AAAA,IAEvC,WAAW,IAAI,UAAU,UAAU;AAClC,aAAO;AAAA,QACN,MAAM,MAAM,QAAQ;AAAA,QACpB,UAAU,MAAM;AAAA,QAChB,GAAI,MAAM,kBAAkB,QAAQ,KAAK,CAAA;AAAA,MAAC;AAAA,IAE5C;AAAA,EACD,CAAC;AAED,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;;;;;;;;;;;;;;ACpEA,UAAM,EAAE,KAAK,OAAO,OAAA,IAAW,cAAc;AAAA,MAC5C,IAAI,MAAM,MAAM,UAAE;AAAA,MAClB,MAAM,MAAM,MAAM,YAAI;AAAA,MACtB,QAAQ,MAAM,MAAM,QAAA,MAAM;AAAA,MAC1B,UAAU,MAAM,MAAM,QAAA,QAAQ;AAAA,IAAA,CAC9B;AAED,UAAM,OAAO,SAAS,MAAM;AAC3B,UAAI,OAAO,OAAO;AACjB,eAAO,QAAA,WAAW,WAAW,eAAe;AAAA,MAC7C;AACA,aAAO;AAAA,IACR,CAAC;;AAIA,aAAAA,UAAA,GAAAC,YAyBgB,eAzBhBC,WAyBgB;AAAA,QAxBd,KAAAC,MAAA,GAAA;AAAA,QACA,gBAAY;AAAA;;UAAuEC,KAAAA,OAAO;AAAA,QAAA;AAAA,QAI1F,mBAAAC,KAAAA;AAAAA,MAAAA,GACOF,MAAA,KAAA,GAAK;AAAA,QACb,UAAS;AAAA,QACR,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAA,WAAEG,KAAAA,MAAK,SAAU,MAAM;AAAA,MAAA;QACbC,KAAAA,OAAO,WAAWC,KAAAA;gBAAQ;AAAA,sBACzC,MAEO;AAAA,YAFPC,WAEO,4BAFP,MAEO;AAAA,8CADHD,KAAAA,KAAK,GAAA,CAAA;AAAA,YAAA;;;;QAGMD,KAAAA,OAAO,eAAeG,KAAAA;gBAAc;AAAA,sBACnD,MAEO;AAAA,YAFPD,WAEO,gCAFP,MAEO;AAAA,8CADHC,KAAAA,WAAW,GAAA,CAAA;AAAA,YAAA;;;;QAGAH,KAAAA,OAAO,QAAQ,KAAA;gBAAO;AAAA,sBACrC,MAEO;AAAA,YAFPE,WAEO,yBAFP,MAEO;AAAA,cADkB,KAAA,sBAAxBR,YAAoD,kBAAA;AAAA;gBAArB,MAAM,KAAA;AAAA,gBAAM,QAAA;AAAA,cAAA;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { defineComponent, createBlock, openBlock, unref, createSlots, withCtx, createVNode, createTextVNode, toDisplayString, createElementVNode, renderSlot } from "vue";
|
|
2
|
+
import { whenever } from "@vueuse/core";
|
|
3
|
+
import { N as NcFormBoxButton } from "./NcFormBoxButton-4XaQUTOS.mjs";
|
|
4
|
+
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-BvLanNaW.mjs";
|
|
5
|
+
import { u as useCopy } from "./useCopy-pTWmSjcP.mjs";
|
|
6
|
+
const _hoisted_1 = { class: "hidden-visually" };
|
|
7
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
8
|
+
__name: "NcFormBoxCopyButton",
|
|
9
|
+
props: {
|
|
10
|
+
label: { default: () => void 0 },
|
|
11
|
+
value: {},
|
|
12
|
+
disabled: { type: Boolean, default: false }
|
|
13
|
+
},
|
|
14
|
+
emits: ["copy"],
|
|
15
|
+
setup(__props, { emit: __emit }) {
|
|
16
|
+
const emit = __emit;
|
|
17
|
+
const { isCopied, copy, icon, altText } = useCopy(() => __props.value);
|
|
18
|
+
whenever(isCopied, () => emit("copy"));
|
|
19
|
+
return (_ctx, _cache) => {
|
|
20
|
+
return openBlock(), createBlock(NcFormBoxButton, {
|
|
21
|
+
disabled: _ctx.disabled,
|
|
22
|
+
"inverted-accent": "",
|
|
23
|
+
onClick: unref(copy)
|
|
24
|
+
}, createSlots({
|
|
25
|
+
description: withCtx(() => [
|
|
26
|
+
createTextVNode(toDisplayString(_ctx.value), 1)
|
|
27
|
+
]),
|
|
28
|
+
icon: withCtx(() => [
|
|
29
|
+
createVNode(NcIconSvgWrapper, {
|
|
30
|
+
path: unref(icon),
|
|
31
|
+
inline: ""
|
|
32
|
+
}, null, 8, ["path"])
|
|
33
|
+
]),
|
|
34
|
+
_: 2
|
|
35
|
+
}, [
|
|
36
|
+
_ctx.$slots.default || _ctx.label ? {
|
|
37
|
+
name: "default",
|
|
38
|
+
fn: withCtx(() => [
|
|
39
|
+
createElementVNode("span", _hoisted_1, toDisplayString(unref(altText)), 1),
|
|
40
|
+
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
41
|
+
createTextVNode(toDisplayString(_ctx.label), 1)
|
|
42
|
+
])
|
|
43
|
+
]),
|
|
44
|
+
key: "0"
|
|
45
|
+
} : void 0
|
|
46
|
+
]), 1032, ["disabled", "onClick"]);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
export {
|
|
51
|
+
_sfc_main as _
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs","sources":["../../src/components/NcFormBoxCopyButton/NcFormBoxCopyButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport { whenever } from '@vueuse/core'\nimport NcFormBoxButton from '../NcFormBoxButton/NcFormBoxButton.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport { useCopy } from '../../composables/useCopy.ts'\n\nconst {\n\tlabel = undefined,\n\tvalue,\n\tdisabled = false,\n} = defineProps<{\n\t/** Copied value's value */\n\tlabel?: string\n\t/** The value to be copied */\n\tvalue: string\n\t/** Native disabled attribute */\n\tdisabled?: boolean\n}>()\n\nconst emit = defineEmits<{\n\t/** Value has been successfully copied */\n\tcopy: []\n}>()\n\ndefineSlots<{\n\t/** Custom label content */\n\tdefault?: Slot\n}>()\n\nconst { isCopied, copy, icon, altText } = useCopy(() => value)\n\nwhenever(isCopied, () => emit('copy'))\n</script>\n\n<template>\n\t<NcFormBoxButton\n\t\t:disabled\n\t\tinverted-accent\n\t\t@click=\"copy\">\n\t\t<template v-if=\"$slots.default || label\" #default>\n\t\t\t<span class=\"hidden-visually\">\n\t\t\t\t{{ altText }}\n\t\t\t</span>\n\t\t\t<slot>\n\t\t\t\t{{ label }}\n\t\t\t</slot>\n\t\t</template>\n\t\t<template #description>\n\t\t\t{{ value }}\n\t\t</template>\n\t\t<template #icon>\n\t\t\t<NcIconSvgWrapper :path=\"icon\" inline />\n\t\t</template>\n\t</NcFormBoxButton>\n</template>\n\n<docs>\n### General\n\n`NcFormBoxButton` set up to be a copy button.\n\n```vue\n<template>\n\t<NcFormGroup label=\"CalDAV\" description=\"Access Nextcloud calendars from other apps and devices\">\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxCopyButton\n\t\t\t\tlabel=\"CalDAV URL\"\n\t\t\t\tvalue=\"https://cloud.example.com/remote.php/dav/\" />\n\t\t\t<NcFormBoxCopyButton\n\t\t\t\tlabel=\"Server Address for iOS and macOS\"\n\t\t\t\tvalue=\"https://cloud.example.com/remote.php/dav/principals/users/user/\" />\n\t\t</NcFormBox>\n\t</NcFormGroup>\n</template>\n```\n</docs>\n"],"names":["_createBlock","disabled","_unref","value","_createVNode","$slots","label","_createElementVNode","_toDisplayString","_renderSlot"],"mappings":";;;;;;;;;;;;;;;AA0BA,UAAM,OAAO;AAUb,UAAM,EAAE,UAAU,MAAM,MAAM,YAAY,QAAQ,MAAM,QAAA,KAAK;AAE7D,aAAS,UAAU,MAAM,KAAK,MAAM,CAAC;;0BAIpCA,YAkBkB,iBAAA;AAAA,QAjBhB,UAAAC,KAAAA;AAAAA,QACD,mBAAA;AAAA,QACC,SAAOC,MAAA,IAAA;AAAA,MAAA;QASG,qBACV,MAAW;AAAA,0CAARC,KAAAA,KAAK,GAAA,CAAA;AAAA,QAAA;QAEE,cACV,MAAwC;AAAA,UAAxCC,YAAwC,kBAAA;AAAA,YAArB,MAAMF,MAAA,IAAA;AAAA,YAAM,QAAA;AAAA,UAAA;;;;QAZhBG,KAAAA,OAAO,WAAWC,KAAAA;gBAAQ;AAAA,sBACzC,MAEO;AAAA,YAFPC,mBAEO,QAFP,YAEOC,gBADHN,MAAA,OAAA,CAAO,GAAA,CAAA;AAAA,YAEXO,WAEO,4BAFP,MAEO;AAAA,8CADHH,KAAAA,KAAK,GAAA,CAAA;AAAA,YAAA;;;;;;;;"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import '../assets/NcFormBoxItem-BfXKp9xJ.css';
|
|
2
|
+
import { defineComponent, useSlots, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createBlock, createCommentVNode, resolveDynamicComponent, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString } from "vue";
|
|
3
|
+
import { u as useNcFormBox } from "./useNcFormBox-DA9iwXWY.mjs";
|
|
4
|
+
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
5
|
+
import { i as isLegacy } from "./legacy-DcjXBL_t.mjs";
|
|
6
|
+
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
7
|
+
const _hoisted_1 = ["id"];
|
|
8
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
9
|
+
...{ inheritAttrs: false },
|
|
10
|
+
__name: "NcFormBoxItem",
|
|
11
|
+
props: {
|
|
12
|
+
tag: {},
|
|
13
|
+
label: { default: () => void 0 },
|
|
14
|
+
description: { default: () => void 0 },
|
|
15
|
+
invertedAccent: { type: Boolean, default: false },
|
|
16
|
+
class: { default: () => void 0 },
|
|
17
|
+
itemClasses: { default: () => void 0 }
|
|
18
|
+
},
|
|
19
|
+
emits: ["click"],
|
|
20
|
+
setup(__props) {
|
|
21
|
+
const slots = useSlots();
|
|
22
|
+
const { formBoxItemClass } = useNcFormBox();
|
|
23
|
+
const descriptionId = createElementId();
|
|
24
|
+
const hasDescription = () => !!__props.description || !!slots.description;
|
|
25
|
+
return (_ctx, _cache) => {
|
|
26
|
+
return openBlock(), createElementBlock("div", {
|
|
27
|
+
class: normalizeClass([
|
|
28
|
+
__props.class,
|
|
29
|
+
_ctx.$style.formBoxItem,
|
|
30
|
+
unref(formBoxItemClass),
|
|
31
|
+
{
|
|
32
|
+
[_ctx.$style.formBoxItem_inverted]: _ctx.invertedAccent && hasDescription(),
|
|
33
|
+
[_ctx.$style.formBoxItem_legacy]: unref(isLegacy)
|
|
34
|
+
}
|
|
35
|
+
])
|
|
36
|
+
}, [
|
|
37
|
+
createElementVNode("span", {
|
|
38
|
+
class: normalizeClass(_ctx.$style.formBoxItem__content)
|
|
39
|
+
}, [
|
|
40
|
+
(openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), mergeProps({
|
|
41
|
+
class: [_ctx.$style.formBoxItem__element, _ctx.itemClasses]
|
|
42
|
+
}, _ctx.$attrs, {
|
|
43
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
|
|
44
|
+
}), {
|
|
45
|
+
default: withCtx(() => [
|
|
46
|
+
renderSlot(_ctx.$slots, "default", { descriptionId: unref(descriptionId) }, () => [
|
|
47
|
+
createTextVNode(toDisplayString(_ctx.label || "⚠️ Label is missing"), 1)
|
|
48
|
+
])
|
|
49
|
+
]),
|
|
50
|
+
_: 3
|
|
51
|
+
}, 16, ["class"])),
|
|
52
|
+
hasDescription() ? (openBlock(), createElementBlock("span", {
|
|
53
|
+
key: 0,
|
|
54
|
+
id: unref(descriptionId),
|
|
55
|
+
class: normalizeClass(_ctx.$style.formBoxItem__description)
|
|
56
|
+
}, [
|
|
57
|
+
renderSlot(_ctx.$slots, "description", {}, () => [
|
|
58
|
+
createTextVNode(toDisplayString(_ctx.description), 1)
|
|
59
|
+
])
|
|
60
|
+
], 10, _hoisted_1)) : createCommentVNode("", true)
|
|
61
|
+
], 2),
|
|
62
|
+
createElementVNode("span", {
|
|
63
|
+
class: normalizeClass(_ctx.$style.formBoxItem__icon)
|
|
64
|
+
}, [
|
|
65
|
+
renderSlot(_ctx.$slots, "icon", { descriptionId: unref(descriptionId) }, () => [
|
|
66
|
+
_cache[1] || (_cache[1] = createTextVNode(" ⚠️ Icon is missing ", -1))
|
|
67
|
+
])
|
|
68
|
+
], 2)
|
|
69
|
+
], 2);
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const formBoxItem = "_formBoxItem_v5un7_20";
|
|
74
|
+
const formBoxItem_legacy = "_formBoxItem_legacy_v5un7_60";
|
|
75
|
+
const formBoxItem_inverted = "_formBoxItem_inverted_v5un7_64";
|
|
76
|
+
const formBoxItem__element = "_formBoxItem__element_v5un7_64";
|
|
77
|
+
const formBoxItem__description = "_formBoxItem__description_v5un7_67";
|
|
78
|
+
const formBoxItem__content = "_formBoxItem__content_v5un7_71";
|
|
79
|
+
const formBoxItem__icon = "_formBoxItem__icon_v5un7_89";
|
|
80
|
+
const style0 = {
|
|
81
|
+
"material-design-icon": "_material-design-icon_v5un7_12",
|
|
82
|
+
formBoxItem,
|
|
83
|
+
formBoxItem_legacy,
|
|
84
|
+
formBoxItem_inverted,
|
|
85
|
+
formBoxItem__element,
|
|
86
|
+
formBoxItem__description,
|
|
87
|
+
formBoxItem__content,
|
|
88
|
+
formBoxItem__icon
|
|
89
|
+
};
|
|
90
|
+
const cssModules = {
|
|
91
|
+
"$style": style0
|
|
92
|
+
};
|
|
93
|
+
const NcFormBoxItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
94
|
+
export {
|
|
95
|
+
NcFormBoxItem as N
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=NcFormBoxItem-BBP76Mkf.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcFormBoxItem-BBP76Mkf.mjs","sources":["../../src/components/NcFormBox/NcFormBoxItem.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\nimport type { VueClassType } from '../../utils/VueTypes.ts'\n\nimport { useNcFormBox } from '../../components/NcFormBox/useNcFormBox.ts'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport { isLegacy } from '../../utils/legacy.ts'\n\ndefineOptions({ inheritAttrs: false })\n\nconst {\n\ttag,\n\tlabel = undefined,\n\tdescription = undefined,\n\tinvertedAccent = false,\n\tclass: rootClasses = undefined,\n\titemClasses = undefined,\n} = defineProps<{\n\t/** Interactive item element's tag */\n\ttag: string\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/** Accent on the description instead of the label */\n\tinvertedAccent?: boolean\n\t/** Root element classes */\n\tclass?: VueClassType\n\t/** Interactive item classes */\n\titemClasses?: VueClassType\n}>()\n\ndefineEmits<{\n\t/** Click on the item */\n\tclick: [event: MouseEvent]\n}>()\n\nconst slots = defineSlots<{\n\t/** Item's label custom content */\n\tdefault?: Slot<{\n\t\t/** IDRef of the description element if present */\n\t\tdescriptionId?: string\n\t}>\n\t/** Custom description content */\n\tdescription?: Slot<{\n\t\t/** IDRef of the description element if present */\n\t\tdescriptionId?: string\n\t}>\n\t/** Icon content */\n\ticon?: Slot\n}>()\n\nconst { formBoxItemClass } = useNcFormBox()\n\nconst descriptionId = createElementId()\nconst hasDescription = () => !!description || !!slots.description\n</script>\n\n<template>\n\t<div\n\t\t:class=\"[\n\t\t\trootClasses,\n\t\t\t$style.formBoxItem,\n\t\t\tformBoxItemClass,\n\t\t\t{\n\t\t\t\t[$style.formBoxItem_inverted]: invertedAccent && hasDescription(),\n\t\t\t\t[$style.formBoxItem_legacy]: isLegacy,\n\t\t\t},\n\t\t]\">\n\t\t<span :class=\"$style.formBoxItem__content\">\n\t\t\t<component\n\t\t\t\t:is=\"tag\"\n\t\t\t\t:class=\"[$style.formBoxItem__element, itemClasses]\"\n\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t@click=\"$emit('click', $event)\">\n\t\t\t\t<slot :description-id>\n\t\t\t\t\t{{ label || '⚠️ Label is missing' }}\n\t\t\t\t</slot>\n\t\t\t</component>\n\t\t\t<span v-if=\"hasDescription()\" :id=\"descriptionId\" :class=\"$style.formBoxItem__description\">\n\t\t\t\t<slot name=\"description\">\n\t\t\t\t\t{{ description }}\n\t\t\t\t</slot>\n\t\t\t</span>\n\t\t</span>\n\t\t<span :class=\"$style.formBoxItem__icon\">\n\t\t\t<slot name=\"icon\" :description-id>\n\t\t\t\t⚠️ Icon is missing\n\t\t\t</slot>\n\t\t</span>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.formBoxItem {\n\t--nc-form-box-item-border-width: 1px;\n\t--nc-form-box-item-min-height: 40px; // Special size defined by the design\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\t--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));\n\t// New colors we don't yet have in theming\n\t// TODO: add new colors to the theming\n\t--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l * 1.045));\n\t--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l * 1.045));\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: calc(2 * var(--default-grid-baseline));\n\tmin-height: var(--nc-form-box-item-min-height);\n\tpadding-inline: var(--form-element-label-padding);\n\tborder: 1px solid var(--color-primary-element-extra-light-hover);\n\tborder-bottom-width: 2px;\n\tborder-radius: var(--border-radius-element);\n\tbackground-color: var(--color-primary-element-extra-light);\n\tcolor: var(--color-main-text);\n\ttransition-property: color, border-color, background-color;\n\ttransition-duration: var(--animation-quick);\n\ttransition-timing-function: linear;\n\t-webkit-user-select: none;\n\tuser-select: none;\n\tcursor: pointer;\n\n\t* {\n\t\tcursor: inherit;\n\t}\n\n\t&:has(:disabled) {\n\t\tcursor: default;\n\t\topacity: 0.5;\n\t}\n\n\t&:hover:not(:has(:disabled)) {\n\t\tcolor: var(--color-primary-element-light-text);\n\t\tbackground-color: var(--color-primary-element-extra-light-hover);\n\t}\n\n\t&:has(:focus-visible) {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t}\n\n\t&.formBoxItem_legacy {\n\t\t--nc-form-box-item-border-width: 0px;\n\t\tborder: none;\n\t}\n\n\t&.formBoxItem_inverted {\n\t\t.formBoxItem__element {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t.formBoxItem__description {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n}\n\n.formBoxItem__content {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding-block: calc(2 * var(--default-grid-baseline));\n\toverflow-wrap: anywhere;\n}\n\n// A trick for accessibility:\n// make entire component clickable while internally splitting the interactive item and the description\n.formBoxItem__element::after {\n\tcontent: '';\n\tposition: absolute;\n\tinset: 0;\n}\n\n.formBoxItem__description {\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.formBoxItem__icon {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n}\n</style>\n\n<docs>\nAn internal component\n</docs>\n"],"names":["_useSlots","_createElementBlock","_normalizeClass","$style","_unref","invertedAccent","_createElementVNode","_createBlock","_resolveDynamicComponent","tag","_mergeProps","itemClasses","$attrs","$emit","_renderSlot","label","description"],"mappings":";;;;;;;;;;;;;;;;;;;AA0CA,UAAM,QAAQA,SAAA;AAed,UAAM,EAAE,iBAAA,IAAqB,aAAA;AAE7B,UAAM,gBAAgB,gBAAA;AACtB,UAAM,iBAAiB,MAAM,CAAC,CAAC,QAAA,eAAe,CAAC,CAAC,MAAM;;0BAIrDC,mBA+BM,OAAA;AAAA,QA9BJ,OAAKC,eAAA;AAAA,UAAO,QAAA;AAAA,UAAgBC,KAAAA,OAAO;AAAA,UAAgBC,MAAA,gBAAA;AAAA;YAA4BD,CAAAA,KAAAA,OAAO,oBAAoB,GAAGE,KAAAA,kBAAkB,eAAA;AAAA,aAAuBF,KAAAA,OAAO,kBAAkB,GAAGC,MAAA,QAAA;AAAA,UAAA;AAAA;;QASnLE,mBAeO,QAAA;AAAA,UAfA,OAAKJ,eAAEC,KAAAA,OAAO,oBAAoB;AAAA,QAAA;wBACxCI,YAQYC,wBAPNC,KAAAA,GAAG,GADTC,WAQY;AAAA,YANV,OAAK,CAAGP,KAAAA,OAAO,sBAAsBQ,KAAAA,WAAW;AAAA,UAAA,GACzCC,KAAAA,QAAM;AAAA,YACb,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAA,WAAEC,KAAAA,MAAK,SAAU,MAAM;AAAA,UAAA;6BAC7B,MAEO;AAAA,cAFPC,WAEO,KAAA,QAAA,WAAA,EAFA,eAAAV,MAAA,aAAA,EAAA,GAAP,MAEO;AAAA,gDADHW,KAAAA,SAAK,qBAAA,GAAA,CAAA;AAAA,cAAA;;;;UAGE,iCAAZd,mBAIO,QAAA;AAAA;YAJwB,IAAIG,MAAA,aAAA;AAAA,YAAgB,OAAKF,eAAEC,KAAAA,OAAO,wBAAwB;AAAA,UAAA;YACxFW,WAEO,gCAFP,MAEO;AAAA,8CADHE,KAAAA,WAAW,GAAA,CAAA;AAAA,YAAA;;;QAIjBV,mBAIO,QAAA;AAAA,UAJA,OAAKJ,eAAEC,KAAAA,OAAO,iBAAiB;AAAA,QAAA;UACrCW,WAEO,KAAA,QAAA,QAAA,EAFY,eAAAV,MAAA,aAAA,EAAA,GAAnB,MAEO;AAAA,sDAF2B,wBAElC,EAAA;AAAA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import '../assets/NcFormBoxSwitch-BmyNQCbA.css';
|
|
2
|
+
import { defineComponent, mergeModels, useModel, watch, createBlock, openBlock, unref, createSlots, withCtx, withDirectives, createVNode, createElementVNode, normalizeClass, vModelCheckbox, renderSlot, createTextVNode, toDisplayString } from "vue";
|
|
3
|
+
import { k as mdiToggleSwitch, l as mdiToggleSwitchOff } from "./mdi-HQ-WBPmL.mjs";
|
|
4
|
+
import { N as NcFormBoxItem } from "./NcFormBoxItem-BBP76Mkf.mjs";
|
|
5
|
+
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-BvLanNaW.mjs";
|
|
6
|
+
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
7
|
+
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
8
|
+
const _hoisted_1 = ["id", "aria-describedby", "disabled"];
|
|
9
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
|
+
__name: "NcFormBoxSwitch",
|
|
11
|
+
props: /* @__PURE__ */ mergeModels({
|
|
12
|
+
label: { default: () => void 0 },
|
|
13
|
+
description: { default: () => void 0 },
|
|
14
|
+
disabled: { type: Boolean, default: false }
|
|
15
|
+
}, {
|
|
16
|
+
"modelValue": { type: Boolean, ...{ required: true } },
|
|
17
|
+
"modelModifiers": {}
|
|
18
|
+
}),
|
|
19
|
+
emits: /* @__PURE__ */ mergeModels(["enable", "disable"], ["update:modelValue"]),
|
|
20
|
+
setup(__props, { emit: __emit }) {
|
|
21
|
+
const modelValue = useModel(__props, "modelValue");
|
|
22
|
+
const emit = __emit;
|
|
23
|
+
const inputId = createElementId();
|
|
24
|
+
watch(modelValue, () => {
|
|
25
|
+
if (modelValue.value) {
|
|
26
|
+
emit("enable");
|
|
27
|
+
} else {
|
|
28
|
+
emit("disable");
|
|
29
|
+
}
|
|
30
|
+
}, {
|
|
31
|
+
// defineModel emits update:modelValue synchronously
|
|
32
|
+
// Watching it synchronously to emit the enable/disable events together with the update:modelValue event
|
|
33
|
+
flush: "sync"
|
|
34
|
+
});
|
|
35
|
+
return (_ctx, _cache) => {
|
|
36
|
+
return openBlock(), createBlock(NcFormBoxItem, {
|
|
37
|
+
tag: "label",
|
|
38
|
+
for: unref(inputId)
|
|
39
|
+
}, createSlots({
|
|
40
|
+
icon: withCtx(({ descriptionId }) => [
|
|
41
|
+
withDirectives(createElementVNode("input", {
|
|
42
|
+
id: unref(inputId),
|
|
43
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
44
|
+
class: normalizeClass(_ctx.$style.formBoxSwitch__input),
|
|
45
|
+
type: "checkbox",
|
|
46
|
+
role: "switch",
|
|
47
|
+
"aria-describedby": descriptionId,
|
|
48
|
+
disabled: _ctx.disabled
|
|
49
|
+
}, null, 10, _hoisted_1), [
|
|
50
|
+
[vModelCheckbox, modelValue.value]
|
|
51
|
+
]),
|
|
52
|
+
createVNode(NcIconSvgWrapper, {
|
|
53
|
+
path: modelValue.value ? unref(mdiToggleSwitch) : unref(mdiToggleSwitchOff),
|
|
54
|
+
class: normalizeClass(_ctx.$style.formBoxSwitch__icon),
|
|
55
|
+
size: 34,
|
|
56
|
+
inline: ""
|
|
57
|
+
}, null, 8, ["path", "class"])
|
|
58
|
+
]),
|
|
59
|
+
_: 2
|
|
60
|
+
}, [
|
|
61
|
+
_ctx.$slots.default || _ctx.label ? {
|
|
62
|
+
name: "default",
|
|
63
|
+
fn: withCtx(() => [
|
|
64
|
+
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
65
|
+
createTextVNode(toDisplayString(_ctx.label), 1)
|
|
66
|
+
])
|
|
67
|
+
]),
|
|
68
|
+
key: "0"
|
|
69
|
+
} : void 0,
|
|
70
|
+
_ctx.$slots.description || _ctx.description ? {
|
|
71
|
+
name: "description",
|
|
72
|
+
fn: withCtx(() => [
|
|
73
|
+
renderSlot(_ctx.$slots, "description", {}, () => [
|
|
74
|
+
createTextVNode(toDisplayString(_ctx.description), 1)
|
|
75
|
+
])
|
|
76
|
+
]),
|
|
77
|
+
key: "1"
|
|
78
|
+
} : void 0
|
|
79
|
+
]), 1032, ["for"]);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
const formBoxSwitch__input = "_formBoxSwitch__input_hjv1a_20";
|
|
84
|
+
const formBoxSwitch__icon = "_formBoxSwitch__icon_hjv1a_34";
|
|
85
|
+
const style0 = {
|
|
86
|
+
"material-design-icon": "_material-design-icon_hjv1a_12",
|
|
87
|
+
formBoxSwitch__input,
|
|
88
|
+
formBoxSwitch__icon
|
|
89
|
+
};
|
|
90
|
+
const cssModules = {
|
|
91
|
+
"$style": style0
|
|
92
|
+
};
|
|
93
|
+
const NcFormBoxSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
94
|
+
export {
|
|
95
|
+
NcFormBoxSwitch as N
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=NcFormBoxSwitch-E6Ei7MFo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcFormBoxSwitch-E6Ei7MFo.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 setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport { mdiToggleSwitch, mdiToggleSwitchOff } from '@mdi/js'\nimport { watch } from 'vue'\nimport NcFormBoxItem from '../NcFormBox/NcFormBoxItem.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport { createElementId } from '../../utils/createElementId.ts'\n\n/** Switch toggle model value */\nconst modelValue = defineModel<boolean>({ required: true })\n\nconst {\n\tlabel = undefined,\n\tdescription = undefined,\n\tdisabled = false,\n} = 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}>()\n\nconst emit = defineEmits<{\n\t/** Switch is toggled ON */\n\tenable: []\n\t/** Switch is toggled OFF */\n\tdisable: []\n}>()\n\ndefineSlots<{\n\t/** Custom label content */\n\tdefault?: Slot\n\t/** Custom description content */\n\tdescription?: Slot\n}>()\n\nconst inputId = createElementId()\n\nwatch(modelValue, () => {\n\tif (modelValue.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>\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 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=\"modelValue\"\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>\n\t\t\t<NcIconSvgWrapper\n\t\t\t\t:path=\"modelValue ? mdiToggleSwitch : mdiToggleSwitchOff\"\n\t\t\t\t:class=\"$style.formBoxSwitch__icon\"\n\t\t\t\t:size=\"34 /* --default-clickable-area */\"\n\t\t\t\tinline />\n\t\t</template>\n\t</NcFormBoxItem>\n</template>\n\n<style lang=\"scss\" module>\ninput.formBoxSwitch__input {\n\tmargin: 0;\n\twidth: var(--default-clickable-area);\n\t/* Keep it visually hidden but on the position of visual switch icon */\n\tposition: absolute;\n\tinset-block: 0;\n\tinset-inline-end: var(--form-element-label-offset);\n\tz-index: -1;\n\topacity: 0 !important;\n\t/* Override server styles */\n\theight: auto;\n\tcursor: inherit;\n}\n\n.formBoxSwitch__icon {\n\tcolor: var(--color-text-maxcontrast);\n}\n\ninput:checked + .formBoxSwitch__icon {\n\tcolor: var(--color-primary-element);\n}\n</style>\n\n<docs>\n### General\n\nA toggle switch to be used within `<NcFormBox>`.\n\nLike other form box items, it has a label and an optional description.\n\nIn addition to the standard `v-model` binding, it emits `enable` and `disable` events when toggled **on** or **off**.\n\n```vue\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tswitchValue: false,\n\t\t}\n\t}\n}\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=\"console.log('Switch toggled', $event, switchValue)\"\n\t\t\t@enable=\"console.log('Switch enabled', switchValue)\"\n\t\t\t@disable=\"console.log('Switch disabled', switchValue)\"\n\t\t/>\n\t\t<NcFormBoxSwitch v-model=\"switchValue\" />\n\t</NcFormBox>\n</template>\n```\n</docs>\n"],"names":["_useModel","_createBlock","_unref","_withCtx","_createElementVNode","_normalizeClass","$style","disabled","_createVNode","$slots","label","_renderSlot","description"],"mappings":";;;;;;;;;;;;;;;;;;;AAeA,UAAM,aAAaA,SAAoB,SAAA,YAAmB;AAe1D,UAAM,OAAO;AAcb,UAAM,UAAU,gBAAA;AAEhB,UAAM,YAAY,MAAM;AACvB,UAAI,WAAW,OAAO;AACrB,aAAK,QAAQ;AAAA,MACd,OAAO;AACN,aAAK,SAAS;AAAA,MACf;AAAA,IACD,GAAG;AAAA;AAAA;AAAA,MAGF,OAAO;AAAA,IAAA,CACP;;0BAIAC,YA4BgB,eAAA;AAAA,QA3Bf,KAAI;AAAA,QACH,KAAKC,MAAA,OAAA;AAAA,MAAA;QAWK,MAAIC,QACd,CAOW,EARO,oBAAa;AAAA,yBAC/BC,mBAOW,SAAA;AAAA,YANT,IAAIF,MAAA,OAAA;AAAA,yEACI,WAAU,QAAA;AAAA,YAClB,OAAKG,eAAEC,KAAAA,OAAO,oBAAoB;AAAA,YACnC,MAAK;AAAA,YACL,MAAK;AAAA,YACJ,oBAAkB;AAAA,YAClB,UAAAC,KAAAA;AAAAA,UAAAA;6BALQ,WAAA,KAAU;AAAA,UAAA;UAMpBC,YAIU,kBAAA;AAAA,YAHR,MAAM,WAAA,QAAaN,MAAA,eAAA,IAAkBA,MAAA,kBAAA;AAAA,YACrC,OAAKG,eAAEC,KAAAA,OAAO,mBAAmB;AAAA,YACjC,MAAM;AAAA,YACP,QAAA;AAAA,UAAA;;;;QAvBcG,KAAAA,OAAO,WAAWC,KAAAA;gBAAQ;AAAA,sBACzC,MAEO;AAAA,YAFPC,WAEO,4BAFP,MAEO;AAAA,8CADHD,KAAAA,KAAK,GAAA,CAAA;AAAA,YAAA;;;;QAGMD,KAAAA,OAAO,eAAeG,KAAAA;gBAAc;AAAA,sBACnD,MAEO;AAAA,YAFPD,WAEO,gCAFP,MAEO;AAAA,8CADHC,KAAAA,WAAW,GAAA,CAAA;AAAA,YAAA;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import '../assets/NcFormGroup-BrD0Scm7.css';
|
|
2
|
+
import { defineComponent, useSlots, createElementBlock, openBlock, normalizeClass, createElementVNode, createCommentVNode, renderSlot, createTextVNode, toDisplayString } from "vue";
|
|
3
|
+
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
4
|
+
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
5
|
+
const _hoisted_1 = ["aria-describedby"];
|
|
6
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
|
+
__name: "NcFormGroup",
|
|
8
|
+
props: {
|
|
9
|
+
label: { default: () => void 0 },
|
|
10
|
+
description: { default: () => void 0 },
|
|
11
|
+
hideLabel: { type: Boolean, default: false },
|
|
12
|
+
hideDescription: { type: Boolean, default: false },
|
|
13
|
+
noGap: { type: Boolean, default: false }
|
|
14
|
+
},
|
|
15
|
+
setup(__props) {
|
|
16
|
+
const slots = useSlots();
|
|
17
|
+
const id = `nc-form-group-${createElementId()}`;
|
|
18
|
+
const descriptionId = `${id}-description`;
|
|
19
|
+
const hasDescription = () => !!__props.description || !!slots.description;
|
|
20
|
+
const getDescriptionId = () => hasDescription() ? descriptionId : void 0;
|
|
21
|
+
const hasContentOnly = () => __props.hideLabel && (!hasDescription() || __props.hideDescription);
|
|
22
|
+
return (_ctx, _cache) => {
|
|
23
|
+
return openBlock(), createElementBlock("fieldset", {
|
|
24
|
+
class: normalizeClass([_ctx.$style.formGroup, { [_ctx.$style.formGroup_noGap]: _ctx.noGap }]),
|
|
25
|
+
"aria-describedby": getDescriptionId()
|
|
26
|
+
}, [
|
|
27
|
+
createElementVNode("legend", {
|
|
28
|
+
class: normalizeClass([_ctx.$style.formGroup__label, { "hidden-visually": _ctx.hideLabel }])
|
|
29
|
+
}, [
|
|
30
|
+
renderSlot(_ctx.$slots, "label", {}, () => [
|
|
31
|
+
createTextVNode(toDisplayString(_ctx.label || "⚠️ Missing label"), 1)
|
|
32
|
+
])
|
|
33
|
+
], 2),
|
|
34
|
+
hasDescription() ? (openBlock(), createElementBlock("div", {
|
|
35
|
+
key: 0,
|
|
36
|
+
id: descriptionId,
|
|
37
|
+
class: normalizeClass([_ctx.$style.formGroup__description, { "hidden-visually": _ctx.hideDescription }])
|
|
38
|
+
}, [
|
|
39
|
+
renderSlot(_ctx.$slots, "description", {}, () => [
|
|
40
|
+
createTextVNode(toDisplayString(_ctx.description), 1)
|
|
41
|
+
])
|
|
42
|
+
], 2)) : createCommentVNode("", true),
|
|
43
|
+
createElementVNode("div", {
|
|
44
|
+
class: normalizeClass([_ctx.$style.formGroup__content, { [_ctx.$style.formGroup__content_only]: hasContentOnly() }])
|
|
45
|
+
}, [
|
|
46
|
+
renderSlot(_ctx.$slots, "default")
|
|
47
|
+
], 2)
|
|
48
|
+
], 10, _hoisted_1);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const formGroup = "_formGroup_9p8a1_20";
|
|
53
|
+
const formGroup_noGap = "_formGroup_noGap_9p8a1_24";
|
|
54
|
+
const formGroup__label = "_formGroup__label_9p8a1_28";
|
|
55
|
+
const formGroup__description = "_formGroup__description_9p8a1_34";
|
|
56
|
+
const formGroup__content = "_formGroup__content_9p8a1_39";
|
|
57
|
+
const formGroup__content_only = "_formGroup__content_only_9p8a1_45";
|
|
58
|
+
const style0 = {
|
|
59
|
+
"material-design-icon": "_material-design-icon_9p8a1_12",
|
|
60
|
+
formGroup,
|
|
61
|
+
formGroup_noGap,
|
|
62
|
+
formGroup__label,
|
|
63
|
+
formGroup__description,
|
|
64
|
+
formGroup__content,
|
|
65
|
+
formGroup__content_only
|
|
66
|
+
};
|
|
67
|
+
const cssModules = {
|
|
68
|
+
"$style": style0
|
|
69
|
+
};
|
|
70
|
+
const NcFormGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
71
|
+
export {
|
|
72
|
+
NcFormGroup as N
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=NcFormGroup-CnSfPFey.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcFormGroup-CnSfPFey.mjs","sources":["../../src/components/NcFormGroup/NcFormGroup.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport { createElementId } from '../../utils/createElementId.ts'\n\nconst {\n\tlabel = undefined,\n\tdescription = undefined,\n\thideLabel = false,\n\thideDescription = false,\n\tnoGap = false,\n} = defineProps<{\n\t/**\n\t * Group label #label slot can be used for custom label content\n\t */\n\tlabel?: string\n\t/**\n\t * Optional fieldset description. #description slot can be used for custom description content\n\t */\n\tdescription?: string\n\t/**\n\t * Hide the label visually but keep it accessible for screen readers\n\t */\n\thideLabel?: boolean\n\t/**\n\t * Hide the description visually but keep it accessible for screen readers\n\t */\n\thideDescription?: boolean\n\t/**\n\t * Disable default fieldset content gap between content elements\n\t */\n\tnoGap?: boolean\n}>()\n\nconst slots = defineSlots<{\n\t/**\n\t * Content\n\t */\n\tdefault?: Slot\n\t/**\n\t * Custom label content\n\t */\n\tlabel?: Slot\n\t/**\n\t * Custom description content\n\t */\n\tdescription?: Slot\n}>()\n\nconst id = `nc-form-group-${createElementId()}`\nconst descriptionId = `${id}-description`\n\nconst hasDescription = () => !!description || !!slots.description\nconst getDescriptionId = () => hasDescription() ? descriptionId : undefined\nconst hasContentOnly = () => hideLabel && (!hasDescription() || hideDescription)\n</script>\n\n<template>\n\t<fieldset\n\t\t:class=\"[$style.formGroup, { [$style.formGroup_noGap]: noGap }]\"\n\t\t:aria-describedby=\"getDescriptionId()\">\n\t\t<legend :class=\"[$style.formGroup__label, { 'hidden-visually': hideLabel }]\">\n\t\t\t<slot name=\"label\">\n\t\t\t\t{{ label || '⚠️ Missing label' }}\n\t\t\t</slot>\n\t\t</legend>\n\t\t<div v-if=\"hasDescription()\" :id=\"descriptionId\" :class=\"[$style.formGroup__description, { 'hidden-visually': hideDescription }]\">\n\t\t\t<slot name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</div>\n\t\t<div :class=\"[$style.formGroup__content, { [$style.formGroup__content_only]: hasContentOnly() }]\">\n\t\t\t<slot />\n\t\t</div>\n\t</fieldset>\n</template>\n\n<style lang=\"scss\" module>\n.formGroup {\n\t--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n\t--form-group-content-gap: calc(2 * var(--default-grid-baseline));\n\n\t&.formGroup_noGap {\n\t\t--form-group-content-gap: 0;\n\t}\n}\n\n.formGroup__label {\n\tpadding-inline: var(--form-element-label-offset);\n\tfont-size: var(--font-size);\n\tfont-weight: bold;\n}\n\n.formGroup__description {\n\tpadding-inline: var(--form-element-label-offset);\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.formGroup__content {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--form-group-content-gap);\n\tmargin-block-start: calc(2.5 * var(--default-grid-baseline));\n\n\t&.formGroup__content_only {\n\t\tmargin-block-start: 0;\n\t}\n}\n</style>\n\n<docs>\n### General\n\nLabelled group of form elements.\n\n```vue\n<template>\n\t<NcFormGroup label=\"Personal information\">\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n\n### With description\n\n```vue\n<template>\n\t<NcFormGroup label=\"Personal information\" description=\"Your contact details\">\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n\n### Hidden label/description\n\nYou can visually hide the label and/or the description.\\\nNote: you still must provide the label. Do not visually hide the missing label warning!\n\n```vue\n<template>\n\t<NcFormGroup\n\t\tlabel=\"Personal information\"\n\t\tdescription=\"Your contact details\"\n\t\thide-label\n\t\thide-description>\n\t\t<NcTextField label=\"First name\" />\n\t\t<NcTextField label=\"Last name\" />\n\t</NcFormGroup>\n</template>\n```\n</docs>\n"],"names":["_useSlots","_createElementBlock","_normalizeClass","$style","noGap","_createElementVNode","hideLabel","_renderSlot","label","hideDescription","description"],"mappings":";;;;;;;;;;;;;;AAuCA,UAAM,QAAQA,SAAA;AAed,UAAM,KAAK,iBAAiB,gBAAA,CAAiB;AAC7C,UAAM,gBAAgB,GAAG,EAAE;AAE3B,UAAM,iBAAiB,MAAM,CAAC,CAAC,QAAA,eAAe,CAAC,CAAC,MAAM;AACtD,UAAM,mBAAmB,MAAM,eAAA,IAAmB,gBAAgB;AAClE,UAAM,iBAAiB,MAAM,QAAA,cAAc,CAAC,eAAA,KAAoB,QAAA;;0BAI/DC,mBAgBW,YAAA;AAAA,QAfT,OAAKC,eAAA,CAAGC,YAAO,cAAcA,KAAAA,OAAO,eAAe,GAAGC,KAAAA,MAAAA,CAAK,CAAA;AAAA,QAC3D,oBAAkB,iBAAA;AAAA,MAAgB;QACnCC,mBAIS,UAAA;AAAA,UAJA,OAAKH,eAAA,CAAGC,KAAAA,OAAO,uCAAuCG,KAAAA,WAAS,CAAA;AAAA,QAAA;UACvEC,WAEO,0BAFP,MAEO;AAAA,4CADHC,KAAAA,SAAK,kBAAA,GAAA,CAAA;AAAA,UAAA;;QAGC,iCAAXP,mBAIM,OAAA;AAAA;UAJwB,IAAI;AAAA,UAAgB,OAAKC,eAAA,CAAGC,KAAAA,OAAO,6CAA6CM,KAAAA,iBAAe,CAAA;AAAA,QAAA;UAC5HF,WAEO,gCAFP,MAEO;AAAA,4CADHG,KAAAA,WAAW,GAAA,CAAA;AAAA,UAAA;;QAGhBL,mBAEM,OAAA;AAAA,UAFA,OAAKH,eAAA,CAAGC,YAAO,uBAAuBA,KAAAA,OAAO,uBAAuB,GAAG,eAAA,EAAc,CAAA,CAAA;AAAA,QAAA;UAC1FI,WAAQ,KAAA,QAAA,SAAA;AAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '../assets/NcHeaderButton-CVOQgRjm.css';
|
|
2
2
|
import { defineComponent, createElementBlock, openBlock, createVNode, createCommentVNode, unref, withModifiers, withCtx, renderSlot, toDisplayString } from "vue";
|
|
3
3
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
4
|
-
import { N as NcButton } from "./NcButton-
|
|
4
|
+
import { N as NcButton } from "./NcButton-ZNHdqKQl.mjs";
|
|
5
5
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
6
6
|
const _hoisted_1 = ["id"];
|
|
7
7
|
const _hoisted_2 = ["id"];
|
|
@@ -46,4 +46,4 @@ const NcHeaderButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "da
|
|
|
46
46
|
export {
|
|
47
47
|
NcHeaderButton as N
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=NcHeaderButton-
|
|
49
|
+
//# sourceMappingURL=NcHeaderButton-tLfDELGu.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcHeaderButton-
|
|
1
|
+
{"version":3,"file":"NcHeaderButton-tLfDELGu.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\tv-model:open=\"showDialog\">\n\t\t\t<NcTextField label=\"Search for files, comments, contacts …\"\n\t\t\t\ttype=\"search\"\n\t\t\t\tv-model=\"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\t:aria-label=\"ariaLabel\"\n\t\t\t:aria-describedby=\"descriptionId\"\n\t\t\tclass=\"header-menu__trigger\"\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 setup lang=\"ts\">\nimport { createElementId } from '../../utils/createElementId.ts'\nimport NcButton from '../NcButton/index.ts'\n\ndefineProps<{\n\t/** Unique id for this menu */\n\tid: string\n\t/** `aria-label` attribute of the button */\n\tariaLabel: string\n\t/** Optional visually hidden description text for the button */\n\tdescription?: string\n}>()\n\ndefineEmits<{\n\tclick: [event: MouseEvent]\n}>()\n\nconst descriptionId = createElementId()\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../NcHeaderMenu/header-menu__trigger.scss';\n</style>\n"],"names":["_createElementBlock","id","_createVNode","_unref","ariaLabel","_withModifiers","$emit","_renderSlot","description"],"mappings":";;;;;;;;;;;;;;;AA0GA,UAAM,gBAAgB,gBAAA;;0BAzCrBA,mBAqBM,OAAA;AAAA,QArBA,IAAIC,KAAAA;AAAAA,QAAI,OAAM;AAAA,MAAA;QACnBC,YAYWC,MAAA,QAAA,GAAA;AAAA,UAXT,cAAYC,KAAAA;AAAAA,UACZ,oBAAkBD,MAAA,aAAA;AAAA,UACnB,OAAM;AAAA,UACN,MAAK;AAAA,UACL,SAAQ;AAAA,UACP,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAE,cAAA,CAAA,WAAUC,KAAAA,MAAK,SAAU,MAAM,GAAA,CAAA,SAAA,CAAA;AAAA,QAAA;UAC1B,cAGV,MAAoB;AAAA,YAApBC,WAAoB,KAAA,QAAA,QAAA,CAAA,GAAA,QAAA,IAAA;AAAA,UAAA;;;QAKfC,KAAAA,4BADPR,mBAKO,QAAA;AAAA;UAHL,IAAIG,MAAA,aAAA;AAAA,UACL,OAAM;AAAA,QAAA,mBACHK,KAAAA,WAAW,GAAA,GAAA,UAAA;;;;;;"}
|
|
@@ -10,7 +10,7 @@ import "../composables/useIsMobile/index.mjs";
|
|
|
10
10
|
import { u as useTrapStackControl } from "./useTrapStackControl-B6cEicto.mjs";
|
|
11
11
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
12
12
|
import { g as getTrapStack } from "./focusTrap-HJQ4pqHV.mjs";
|
|
13
|
-
import { N as NcButton } from "./NcButton-
|
|
13
|
+
import { N as NcButton } from "./NcButton-ZNHdqKQl.mjs";
|
|
14
14
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
15
15
|
const _hoisted_1 = ["id"];
|
|
16
16
|
const _hoisted_2 = { class: "header-menu__caret" };
|
|
@@ -139,4 +139,4 @@ const NcHeaderMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data
|
|
|
139
139
|
export {
|
|
140
140
|
NcHeaderMenu as N
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=NcHeaderMenu-
|
|
142
|
+
//# sourceMappingURL=NcHeaderMenu-ClRw0Xc5.mjs.map
|