@nextcloud/vue 8.5.0 → 8.5.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 +20 -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/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/NcAppNavigationNewItem.cjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.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/NcAppSidebar.cjs +1 -1
- package/dist/Components/NcAppSidebar.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 +19 -16
- package/dist/Components/NcButton.cjs.map +1 -1
- package/dist/Components/NcButton.mjs +19 -16
- package/dist/Components/NcButton.mjs.map +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.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/NcDateTime.cjs +1 -1
- package/dist/Components/NcDateTime.mjs +1 -1
- package/dist/Components/NcDateTimePicker.cjs +2 -2
- 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/NcEmojiPicker.cjs +1 -1
- package/dist/Components/NcEmojiPicker.mjs +1 -1
- package/dist/Components/NcHeaderMenu.cjs +1 -1
- package/dist/Components/NcHeaderMenu.mjs +1 -1
- package/dist/Components/NcInputField.cjs +5 -5
- package/dist/Components/NcInputField.cjs.map +1 -1
- package/dist/Components/NcInputField.mjs +2 -2
- package/dist/Components/NcInputField.mjs.map +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 +7 -7
- package/dist/Components/NcModal.cjs.map +1 -1
- package/dist/Components/NcModal.mjs +8 -8
- package/dist/Components/NcModal.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/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 +1 -1
- 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/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 +5 -5
- package/dist/Components/NcTextArea.cjs.map +1 -1
- package/dist/Components/NcTextArea.mjs +4 -4
- package/dist/Components/NcTextArea.mjs.map +1 -1
- package/dist/Components/NcTextField.cjs +1 -1
- package/dist/Components/NcTextField.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/Functions/usernameToColor.cjs +1 -1
- package/dist/Functions/usernameToColor.mjs +1 -1
- package/dist/assets/{NcActions-nAi2TA1m.css → NcActions-vgT9ak04.css} +12 -12
- package/dist/assets/{NcAppSettingsDialog-8K8FduDk.css → NcAppSettingsDialog-0eOo3ERv.css} +16 -17
- package/dist/assets/{NcAvatar-Vg6Mi1TD.css → NcAvatar-5H9cqcD1.css} +27 -27
- package/dist/assets/{NcButton-DTnreNJ5.css → NcButton-4Wj3KJn8.css} +43 -43
- package/dist/assets/{NcCheckboxRadioSwitch-IKpLtz9k.css → NcCheckboxRadioSwitch-mgKotCbU.css} +49 -47
- package/dist/assets/{NcDateTimePicker-J_kGHwdu.css → NcDateTimePicker-amYL2HzW.css} +10 -10
- package/dist/assets/{NcDialog-2V180xdm.css → NcDialog-DN-rY-55.css} +30 -19
- package/dist/assets/{NcHeaderMenu-P0OkK9WN.css → NcHeaderMenu-06vdn4tC.css} +15 -15
- package/dist/assets/{NcInputField-Y-Qp3D_b.css → NcInputField-L2Lld_iG.css} +39 -38
- package/dist/assets/{NcModal-QzDLeQrW.css → NcModal-UZh031V1.css} +64 -64
- package/dist/assets/{NcRichContenteditable-xiQ4y2Z6.css → NcRichContenteditable-j9edXOEH.css} +13 -12
- package/dist/assets/{NcTextArea-K-KVPiMp.css → NcTextArea-4rVwq6GK.css} +24 -23
- package/dist/chunks/{GenColors-6mrcK1J2.cjs → GenColors-6ePwbl4k.cjs} +1 -1
- package/dist/chunks/{GenColors-6mrcK1J2.cjs.map → GenColors-6ePwbl4k.cjs.map} +1 -1
- package/dist/chunks/{GenColors-ZwEj275X.mjs → GenColors-OwQiytMp.mjs} +1 -1
- package/dist/chunks/{GenColors-ZwEj275X.mjs.map → GenColors-OwQiytMp.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-3W6tc8gZ.mjs → NcActionButtonGroup-qXVHIy0a.mjs} +1 -1
- package/dist/chunks/{NcActionButtonGroup-3W6tc8gZ.mjs.map → NcActionButtonGroup-qXVHIy0a.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-IEaXhYp3.cjs → NcActionButtonGroup-wvQESxxh.cjs} +1 -1
- package/dist/chunks/{NcActionButtonGroup-IEaXhYp3.cjs.map → NcActionButtonGroup-wvQESxxh.cjs.map} +1 -1
- package/dist/chunks/{NcActionInput-bLRYLx45.cjs → NcActionInput-2mvb7ZnC.cjs} +1 -1
- package/dist/chunks/{NcActionInput-bLRYLx45.cjs.map → NcActionInput-2mvb7ZnC.cjs.map} +1 -1
- package/dist/chunks/{NcActionInput-v8cC8WD4.mjs → NcActionInput-Vdsm4Jt5.mjs} +4 -4
- package/dist/chunks/{NcActionInput-v8cC8WD4.mjs.map → NcActionInput-Vdsm4Jt5.mjs.map} +1 -1
- package/dist/chunks/{NcActions-7ytNFRBJ.cjs → NcActions-4ml5sv6P.cjs} +28 -23
- package/dist/chunks/NcActions-4ml5sv6P.cjs.map +1 -0
- package/dist/chunks/{NcActions-CNDgnRLf.mjs → NcActions-5K-qjttC.mjs} +36 -31
- package/dist/chunks/NcActions-5K-qjttC.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-XBosilQH.mjs → NcAppContent-agTfSSHS.mjs} +1 -1
- package/dist/chunks/{NcAppContent-XBosilQH.mjs.map → NcAppContent-agTfSSHS.mjs.map} +1 -1
- package/dist/chunks/{NcAppContent-f3dNUfhO.cjs → NcAppContent-kSymH_mo.cjs} +1 -1
- package/dist/chunks/{NcAppContent-f3dNUfhO.cjs.map → NcAppContent-kSymH_mo.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigation-qUXaV47L.mjs → NcAppNavigation-biQcPFmk.mjs} +1 -1
- package/dist/chunks/{NcAppNavigation-qUXaV47L.mjs.map → NcAppNavigation-biQcPFmk.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigation-oke9RxP6.cjs → NcAppNavigation-rSC0k8c6.cjs} +1 -1
- package/dist/chunks/{NcAppNavigation-oke9RxP6.cjs.map → NcAppNavigation-rSC0k8c6.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-M-KZKijE.mjs → NcAppNavigationCaption-E3tdVsYJ.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-M-KZKijE.mjs.map → NcAppNavigationCaption-E3tdVsYJ.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-hVmjPz-2.cjs → NcAppNavigationCaption-Mugp6fsR.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-hVmjPz-2.cjs.map → NcAppNavigationCaption-Mugp6fsR.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-GNnDmUq5.mjs → NcAppNavigationItem-CzK_gg7C.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationItem-GNnDmUq5.mjs.map → NcAppNavigationItem-CzK_gg7C.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-YYoh37Ky.cjs → NcAppNavigationItem-r0MUwPP7.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationItem-YYoh37Ky.cjs.map → NcAppNavigationItem-r0MUwPP7.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-3l4mRRsI.cjs → NcAppNavigationNewItem-IYhRBzud.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-3l4mRRsI.cjs.map → NcAppNavigationNewItem-IYhRBzud.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-pBHgj8Es.mjs → NcAppNavigationNewItem-X4Ac8vym.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-pBHgj8Es.mjs.map → NcAppNavigationNewItem-X4Ac8vym.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-c_S9UbSU.mjs → NcAppNavigationSettings-0hLCj-s5.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-c_S9UbSU.mjs.map → NcAppNavigationSettings-0hLCj-s5.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-IkF_z_xt.cjs → NcAppNavigationSettings-tvlinWey.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-IkF_z_xt.cjs.map → NcAppNavigationSettings-tvlinWey.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-S4YTmnky.mjs → NcAppNavigationToggle-RXyDbzmn.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-S4YTmnky.mjs.map → NcAppNavigationToggle-RXyDbzmn.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-Tvz9copM.cjs → NcAppNavigationToggle-ZTz_EO18.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-Tvz9copM.cjs.map → NcAppNavigationToggle-ZTz_EO18.cjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-L6IvAL_I.cjs → NcAppSettingsDialog-2tyARsR0.cjs} +3 -3
- package/dist/chunks/{NcAppSettingsDialog-L6IvAL_I.cjs.map → NcAppSettingsDialog-2tyARsR0.cjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-CQtmRXyZ.mjs → NcAppSettingsDialog-8HAKz-0l.mjs} +4 -4
- package/dist/chunks/{NcAppSettingsDialog-CQtmRXyZ.mjs.map → NcAppSettingsDialog-8HAKz-0l.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-GCbKi7Tk.cjs → NcAppSidebar-PMmg9vsl.cjs} +2 -2
- package/dist/chunks/{NcAppSidebar-GCbKi7Tk.cjs.map → NcAppSidebar-PMmg9vsl.cjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-nHbqU8Wl.mjs → NcAppSidebar-qaRnOe4Y.mjs} +3 -3
- package/dist/chunks/{NcAppSidebar-nHbqU8Wl.mjs.map → NcAppSidebar-qaRnOe4Y.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-1gX-bnpd.mjs → NcAvatar-5DJP61Ka.mjs} +23 -24
- package/dist/chunks/NcAvatar-5DJP61Ka.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-8NgbtiTN.cjs → NcAvatar-YQujzmop.cjs} +17 -18
- package/dist/chunks/NcAvatar-YQujzmop.cjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-3vNer4Fs.cjs → NcBreadcrumb-3Ez2uWmp.cjs} +1 -1
- package/dist/chunks/{NcBreadcrumb-3vNer4Fs.cjs.map → NcBreadcrumb-3Ez2uWmp.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-VlYks8Vu.mjs → NcBreadcrumb-C2oZ_vji.mjs} +1 -1
- package/dist/chunks/{NcBreadcrumb-VlYks8Vu.mjs.map → NcBreadcrumb-C2oZ_vji.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-GhYBmcix.cjs → NcBreadcrumbs-H8ec0ouN.cjs} +1 -1
- package/dist/chunks/{NcBreadcrumbs-GhYBmcix.cjs.map → NcBreadcrumbs-H8ec0ouN.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-UCJPNjZg.mjs → NcBreadcrumbs-tq1eD4Hk.mjs} +2 -2
- package/dist/chunks/{NcBreadcrumbs-UCJPNjZg.mjs.map → NcBreadcrumbs-tq1eD4Hk.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-3sa_9DpY.mjs → NcCheckboxRadioSwitch-BiREcGAk.mjs} +6 -6
- package/dist/chunks/NcCheckboxRadioSwitch-BiREcGAk.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-s5C7ZGB_.cjs → NcCheckboxRadioSwitch-xEweFZs1.cjs} +6 -6
- package/dist/chunks/NcCheckboxRadioSwitch-xEweFZs1.cjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-MzKjkB0t.mjs +3 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-MzKjkB0t.mjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-hGgZcPUX.cjs +3 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-hGgZcPUX.cjs.map +1 -0
- package/dist/chunks/{NcColorPicker-4qA0UWdA.cjs → NcColorPicker-2IJNZMe-.cjs} +1 -1
- package/dist/chunks/{NcColorPicker-4qA0UWdA.cjs.map → NcColorPicker-2IJNZMe-.cjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-aNJDKf-I.mjs → NcColorPicker-H0rZhQxw.mjs} +3 -3
- package/dist/chunks/{NcColorPicker-aNJDKf-I.mjs.map → NcColorPicker-H0rZhQxw.mjs.map} +1 -1
- package/dist/chunks/{NcContent-x5KPSopo.cjs → NcContent-ZgOMyq2k.cjs} +1 -1
- package/dist/chunks/{NcContent-x5KPSopo.cjs.map → NcContent-ZgOMyq2k.cjs.map} +1 -1
- package/dist/chunks/{NcContent-V1PRVhsU.mjs → NcContent-lWYIO3gy.mjs} +1 -1
- package/dist/chunks/{NcContent-V1PRVhsU.mjs.map → NcContent-lWYIO3gy.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-pzCvVb_0.mjs → NcDashboardWidget-hQn58Jv6.mjs} +3 -3
- package/dist/chunks/{NcDashboardWidget-pzCvVb_0.mjs.map → NcDashboardWidget-hQn58Jv6.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-w15LYpmC.cjs → NcDashboardWidget-j44iStpo.cjs} +1 -1
- package/dist/chunks/{NcDashboardWidget-w15LYpmC.cjs.map → NcDashboardWidget-j44iStpo.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-FNmPTAuj.mjs → NcDashboardWidgetItem-Yp4ii3At.mjs} +2 -2
- package/dist/chunks/{NcDashboardWidgetItem-FNmPTAuj.mjs.map → NcDashboardWidgetItem-Yp4ii3At.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-YJerQyu5.cjs → NcDashboardWidgetItem-f4Y_DBsU.cjs} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-YJerQyu5.cjs.map → NcDashboardWidgetItem-f4Y_DBsU.cjs.map} +1 -1
- package/dist/chunks/{NcDateTime-eHTrKYG4.cjs → NcDateTime-1ZGz6Hwu.cjs} +1 -1
- package/dist/chunks/{NcDateTime-eHTrKYG4.cjs.map → NcDateTime-1ZGz6Hwu.cjs.map} +1 -1
- package/dist/chunks/{NcDateTime-22ULCxg8.mjs → NcDateTime-sBcbqRB6.mjs} +1 -1
- package/dist/chunks/{NcDateTime-22ULCxg8.mjs.map → NcDateTime-sBcbqRB6.mjs.map} +1 -1
- package/dist/chunks/{NcDialog-b2LjzZB8.mjs → NcDialog-1Nrs9x8z.mjs} +6 -9
- package/dist/chunks/NcDialog-1Nrs9x8z.mjs.map +1 -0
- package/dist/chunks/{NcDialog-KlvRL7k1.cjs → NcDialog-k6iHgTGm.cjs} +3 -6
- package/dist/chunks/NcDialog-k6iHgTGm.cjs.map +1 -0
- package/dist/chunks/{NcEmojiPicker-H_YmCt4L.mjs → NcEmojiPicker--8moif3g.mjs} +5 -5
- package/dist/chunks/{NcEmojiPicker-H_YmCt4L.mjs.map → NcEmojiPicker--8moif3g.mjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-o1VRXxQO.cjs → NcEmojiPicker-gGgrlLAJ.cjs} +1 -1
- package/dist/chunks/{NcEmojiPicker-o1VRXxQO.cjs.map → NcEmojiPicker-gGgrlLAJ.cjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-CIYGCufy.cjs → NcHeaderMenu-5dnFFhRA.cjs} +5 -5
- package/dist/chunks/{NcHeaderMenu-CIYGCufy.cjs.map → NcHeaderMenu-5dnFFhRA.cjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-CfEUQ0JV.mjs → NcHeaderMenu-ePmuT5Kz.mjs} +2 -2
- package/dist/chunks/{NcHeaderMenu-CfEUQ0JV.mjs.map → NcHeaderMenu-ePmuT5Kz.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-lUDtoN2O.mjs → NcInputConfirmCancel-HrSwS4LK.mjs} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-lUDtoN2O.mjs.map → NcInputConfirmCancel-HrSwS4LK.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-YzEcukdc.cjs → NcInputConfirmCancel-q4IYDSKH.cjs} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-YzEcukdc.cjs.map → NcInputConfirmCancel-q4IYDSKH.cjs.map} +1 -1
- package/dist/chunks/{NcListItem-AZpInn_s.mjs → NcListItem-_P2bxfeP.mjs} +2 -2
- package/dist/chunks/{NcListItem-AZpInn_s.mjs.map → NcListItem-_P2bxfeP.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-bBx6_yWw.cjs → NcListItem-wsOnBEF3.cjs} +1 -1
- package/dist/chunks/{NcListItem-bBx6_yWw.cjs.map → NcListItem-wsOnBEF3.cjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-uPc7p1KY.cjs → NcListItemIcon-65Rgi-AZ.cjs} +1 -1
- package/dist/chunks/{NcListItemIcon-uPc7p1KY.cjs.map → NcListItemIcon-65Rgi-AZ.cjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-1ZcwsrMT.mjs → NcListItemIcon-IXrbZUKU.mjs} +1 -1
- package/dist/chunks/{NcListItemIcon-1ZcwsrMT.mjs.map → NcListItemIcon-IXrbZUKU.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-YvUbX2WS.cjs → NcPasswordField-XvXblBeQ.cjs} +1 -1
- package/dist/chunks/{NcPasswordField-YvUbX2WS.cjs.map → NcPasswordField-XvXblBeQ.cjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-fNiTJMmG.mjs → NcPasswordField-kJ1PZotd.mjs} +1 -1
- package/dist/chunks/{NcPasswordField-fNiTJMmG.mjs.map → NcPasswordField-kJ1PZotd.mjs.map} +1 -1
- package/dist/chunks/{NcPopover-EXxv8Pzw.cjs → NcPopover--SjyNre9.cjs} +18 -25
- package/dist/chunks/NcPopover--SjyNre9.cjs.map +1 -0
- package/dist/chunks/{NcPopover-NyUZ2r7V.mjs → NcPopover-yyItaFC6.mjs} +42 -49
- package/dist/chunks/NcPopover-yyItaFC6.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-H2imJgxi.mjs → NcRelatedResourcesPanel-1nj1tk0J.mjs} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-H2imJgxi.mjs.map → NcRelatedResourcesPanel-1nj1tk0J.mjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-DCqlPqZc.cjs → NcRelatedResourcesPanel-KxXrRko3.cjs} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-DCqlPqZc.cjs.map → NcRelatedResourcesPanel-KxXrRko3.cjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-lPa8fqWG.cjs → NcRichContenteditable-A0FFbptl.cjs} +7 -7
- package/dist/chunks/{NcRichContenteditable-EZp-vrCT.mjs.map → NcRichContenteditable-A0FFbptl.cjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-EZp-vrCT.mjs → NcRichContenteditable-VzFXqSYH.mjs} +8 -8
- package/dist/chunks/{NcRichContenteditable-lPa8fqWG.cjs.map → NcRichContenteditable-VzFXqSYH.mjs.map} +1 -1
- package/dist/chunks/{NcRichText-SPiEkcnt.cjs → NcRichText-N44WJqzt.cjs} +1 -1
- package/dist/chunks/{NcRichText-SPiEkcnt.cjs.map → NcRichText-N44WJqzt.cjs.map} +1 -1
- package/dist/chunks/{NcRichText-7CHftQ4Z.mjs → NcRichText-YSUTWw6M.mjs} +2 -2
- package/dist/chunks/{NcRichText-7CHftQ4Z.mjs.map → NcRichText-YSUTWw6M.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-c9-eF29z.cjs → NcSelect-H-xyiCqP.cjs} +1 -1
- package/dist/chunks/{NcSelect-c9-eF29z.cjs.map → NcSelect-H-xyiCqP.cjs.map} +1 -1
- package/dist/chunks/{NcSelect-zx9IspDS.mjs → NcSelect-roYZ16y8.mjs} +2 -2
- package/dist/chunks/{NcSelect-zx9IspDS.mjs.map → NcSelect-roYZ16y8.mjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-WGdCwmRr.mjs → NcSelectTags-3BfQQNLj.mjs} +2 -2
- package/dist/chunks/{NcSelectTags-WGdCwmRr.mjs.map → NcSelectTags-3BfQQNLj.mjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-doFIXNxC.cjs → NcSelectTags-iuvfaq_W.cjs} +1 -1
- package/dist/chunks/{NcSelectTags-doFIXNxC.cjs.map → NcSelectTags-iuvfaq_W.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-sJarpoq-.cjs → NcSettingsInputText-JHuxEb64.cjs} +1 -1
- package/dist/chunks/{NcSettingsInputText-sJarpoq-.cjs.map → NcSettingsInputText-JHuxEb64.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-YMRo6B3V.mjs → NcSettingsInputText-RH5qyxcD.mjs} +1 -1
- package/dist/chunks/{NcSettingsInputText-YMRo6B3V.mjs.map → NcSettingsInputText-RH5qyxcD.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-R_JKZdJk.cjs → NcSettingsSection-dsoWc5to.cjs} +1 -1
- package/dist/chunks/{NcSettingsSection-R_JKZdJk.cjs.map → NcSettingsSection-dsoWc5to.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-zdWzOqxk.mjs → NcSettingsSection-u3WizmVu.mjs} +1 -1
- package/dist/chunks/{NcSettingsSection-zdWzOqxk.mjs.map → NcSettingsSection-u3WizmVu.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-Ghgl6Y_d.mjs → NcSettingsSelectGroup-l7ImtXiI.mjs} +2 -2
- package/dist/chunks/{NcSettingsSelectGroup-Ghgl6Y_d.mjs.map → NcSettingsSelectGroup-l7ImtXiI.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-NhJyFPsw.cjs → NcSettingsSelectGroup-obOOSE0Z.cjs} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-NhJyFPsw.cjs.map → NcSettingsSelectGroup-obOOSE0Z.cjs.map} +1 -1
- package/dist/chunks/{NcTextField-8ap5MAGr.cjs → NcTextField-5nK-T1Xg.cjs} +1 -1
- package/dist/chunks/{NcTextField-8ap5MAGr.cjs.map → NcTextField-5nK-T1Xg.cjs.map} +1 -1
- package/dist/chunks/{NcTextField-tIJ3fJ37.mjs → NcTextField-JlIIeRJa.mjs} +1 -1
- package/dist/chunks/{NcTextField-tIJ3fJ37.mjs.map → NcTextField-JlIIeRJa.mjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-ag-krDDP.cjs → NcTimezonePicker-1NMfD5lj.cjs} +18 -22
- package/dist/chunks/{NcTimezonePicker-ag-krDDP.cjs.map → NcTimezonePicker-1NMfD5lj.cjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-Ue_mc4jo.mjs → NcTimezonePicker-GDJZ0IwA.mjs} +21 -25
- package/dist/chunks/{NcTimezonePicker-Ue_mc4jo.mjs.map → NcTimezonePicker-GDJZ0IwA.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-hfgJXqk2.cjs → NcUserBubble-ADV-rrgN.cjs} +1 -1
- package/dist/chunks/{NcUserBubble-hfgJXqk2.cjs.map → NcUserBubble-ADV-rrgN.cjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-s30BQXdv.mjs → NcUserBubble-HoPxl8_o.mjs} +2 -2
- package/dist/chunks/{NcUserBubble-s30BQXdv.mjs.map → NcUserBubble-HoPxl8_o.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-PevYJx6w.cjs → NcUserStatusIcon-WSxqK-Ix.cjs} +1 -1
- package/dist/chunks/{NcUserStatusIcon-PevYJx6w.cjs.map → NcUserStatusIcon-WSxqK-Ix.cjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-H5b_e8YL.mjs → NcUserStatusIcon-dgPMbNYQ.mjs} +1 -1
- package/dist/chunks/{NcUserStatusIcon-H5b_e8YL.mjs.map → NcUserStatusIcon-dgPMbNYQ.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-9XNLQCuu.mjs → ScopeComponent-8lJfv9VF.mjs} +4 -4
- package/dist/chunks/{ScopeComponent-9XNLQCuu.mjs.map → ScopeComponent-8lJfv9VF.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-_Cg8ogL-.cjs → ScopeComponent-d_TBKnQk.cjs} +4 -4
- package/dist/chunks/{ScopeComponent-_Cg8ogL-.cjs.map → ScopeComponent-d_TBKnQk.cjs.map} +1 -1
- package/dist/chunks/_l10n-RVZyA63y.cjs +64 -0
- package/dist/chunks/_l10n-RVZyA63y.cjs.map +1 -0
- package/dist/chunks/_l10n-gZppkly8.mjs +66 -0
- package/dist/chunks/_l10n-gZppkly8.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-rHOAeK-a.cjs → referencePickerModal-byTgSeys.cjs} +1 -1
- package/dist/chunks/{referencePickerModal-rHOAeK-a.cjs.map → referencePickerModal-byTgSeys.cjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-jbqYHMmd.mjs → referencePickerModal-tEVbhwha.mjs} +3 -3
- package/dist/chunks/{referencePickerModal-jbqYHMmd.mjs.map → referencePickerModal-tEVbhwha.mjs.map} +1 -1
- package/dist/chunks/{usernameToColor-pYptUj7i.mjs → usernameToColor-LY-6e04n.mjs} +1 -1
- package/dist/chunks/{usernameToColor-pYptUj7i.mjs.map → usernameToColor-LY-6e04n.mjs.map} +1 -1
- package/dist/chunks/{usernameToColor-fJ1S8Q2S.cjs → usernameToColor-ty7b2Xom.cjs} +1 -1
- package/dist/chunks/{usernameToColor-fJ1S8Q2S.cjs.map → usernameToColor-ty7b2Xom.cjs.map} +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +43 -43
- package/package.json +2 -2
- package/dist/chunks/NcActions-7ytNFRBJ.cjs.map +0 -1
- package/dist/chunks/NcActions-CNDgnRLf.mjs.map +0 -1
- package/dist/chunks/NcAvatar-1gX-bnpd.mjs.map +0 -1
- package/dist/chunks/NcAvatar-8NgbtiTN.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-3sa_9DpY.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-s5C7ZGB_.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs +0 -3
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs +0 -3
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs.map +0 -1
- package/dist/chunks/NcDialog-KlvRL7k1.cjs.map +0 -1
- package/dist/chunks/NcDialog-b2LjzZB8.mjs.map +0 -1
- package/dist/chunks/NcPopover-EXxv8Pzw.cjs.map +0 -1
- package/dist/chunks/NcPopover-NyUZ2r7V.mjs.map +0 -1
- package/dist/chunks/_l10n-juAR1Sua.cjs +0 -64
- package/dist/chunks/_l10n-juAR1Sua.cjs.map +0 -1
- package/dist/chunks/_l10n-tZEKUJRj.mjs +0 -66
- package/dist/chunks/_l10n-tZEKUJRj.mjs.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
var
|
|
2
|
-
const
|
|
1
|
+
var R = require("../assets/NcActions-vgT9ak04.css");
|
|
2
|
+
const B = require("../Components/NcButton.cjs"), O = require("./NcPopover--SjyNre9.cjs"), L = require("./GenRandomId-ULxaMkkr.cjs"), h = require("./_l10n-RVZyA63y.cjs"), v = require("vue"), M = require("./DotsHorizontal-dlN1WvqM.cjs"), w = require("./_plugin-vue2_normalizer-DCfUPqga.cjs"), P = (e) => e && e.__esModule ? e : { default: e }, q = /* @__PURE__ */ P(v);
|
|
3
3
|
h.register(h.t4);
|
|
4
4
|
const c = ".focusable", E = {
|
|
5
5
|
name: "NcActions",
|
|
6
6
|
components: {
|
|
7
|
-
NcButton:
|
|
7
|
+
NcButton: B,
|
|
8
8
|
DotsHorizontal: M.DotsHorizontal,
|
|
9
|
-
NcPopover:
|
|
9
|
+
NcPopover: O.NcPopover
|
|
10
10
|
},
|
|
11
11
|
provide() {
|
|
12
12
|
return {
|
|
@@ -151,7 +151,8 @@ const c = ".focusable", E = {
|
|
|
151
151
|
"update:open",
|
|
152
152
|
"close",
|
|
153
153
|
"focus",
|
|
154
|
-
"blur"
|
|
154
|
+
"blur",
|
|
155
|
+
"click"
|
|
155
156
|
],
|
|
156
157
|
data() {
|
|
157
158
|
return {
|
|
@@ -219,9 +220,9 @@ const c = ".focusable", E = {
|
|
|
219
220
|
return;
|
|
220
221
|
const n = e.target.closest("li");
|
|
221
222
|
if (n && this.$refs.menu.contains(n)) {
|
|
222
|
-
const
|
|
223
|
-
if (
|
|
224
|
-
const a = [...this.$refs.menu.querySelectorAll(c)].indexOf(
|
|
223
|
+
const i = n.querySelector(c);
|
|
224
|
+
if (i) {
|
|
225
|
+
const a = [...this.$refs.menu.querySelectorAll(c)].indexOf(i);
|
|
225
226
|
a > -1 && (this.focusIndex = a, this.focusAction());
|
|
226
227
|
}
|
|
227
228
|
}
|
|
@@ -258,7 +259,7 @@ const c = ".focusable", E = {
|
|
|
258
259
|
focusFirstAction(e) {
|
|
259
260
|
if (this.opened) {
|
|
260
261
|
this.preventIfEvent(e);
|
|
261
|
-
const n = [...this.$refs.menu.querySelectorAll(c)].findIndex((
|
|
262
|
+
const n = [...this.$refs.menu.querySelectorAll(c)].findIndex((i) => i.parentElement.getAttribute("aria-selected"));
|
|
262
263
|
this.focusIndex = n > -1 ? n : 0, this.focusAction();
|
|
263
264
|
}
|
|
264
265
|
},
|
|
@@ -273,6 +274,9 @@ const c = ".focusable", E = {
|
|
|
273
274
|
},
|
|
274
275
|
onBlur(e) {
|
|
275
276
|
this.$emit("blur", e);
|
|
277
|
+
},
|
|
278
|
+
onClick(e) {
|
|
279
|
+
this.$emit("click", e);
|
|
276
280
|
}
|
|
277
281
|
},
|
|
278
282
|
/**
|
|
@@ -284,14 +288,14 @@ const c = ".focusable", E = {
|
|
|
284
288
|
render(e) {
|
|
285
289
|
const n = (this.$slots.default || []).filter(
|
|
286
290
|
(t) => t?.componentOptions?.tag || t?.componentOptions?.Ctor?.extendOptions?.name
|
|
287
|
-
),
|
|
291
|
+
), i = (t) => t?.componentOptions?.Ctor?.extendOptions?.name ?? t?.componentOptions?.tag, y = ["NcActionButton", "NcActionButtonGroup", "NcActionCheckbox", "NcActionRadio"], a = ["NcActionInput", "NcActionTextEditable"], N = ["NcActionLink", "NcActionRouter"], l = n.some((t) => a.includes(i(t))), A = n.some((t) => y.includes(i(t))), x = n.some((t) => N.includes(i(t)));
|
|
288
292
|
this.isSemanticMenu = A && !l, this.isSemanticNavigation = x && !A && !l, this.isSemanticPopoverLike = !this.isSemanticMenu && !this.isSemanticNavigation;
|
|
289
293
|
const u = this.isSemanticMenu ? "menu" : l ? "dialog" : "true";
|
|
290
294
|
let s = n.filter(this.isValidSingleAction);
|
|
291
295
|
if (this.forceMenu && s.length > 0 && this.inline > 0 && (q.default.util.warn("Specifying forceMenu will ignore any inline actions rendering."), s = []), n.length === 0)
|
|
292
296
|
return;
|
|
293
297
|
const g = (t) => {
|
|
294
|
-
const
|
|
298
|
+
const o = t?.componentOptions?.propsData?.icon, p = t?.data?.scopedSlots?.icon()?.[0] ?? (this.isIconUrl(o) ? e("img", { class: "action-item__menutoggle__icon", attrs: { src: o, alt: "" } }) : e("span", { class: ["icon", o] })), S = t?.data?.attrs || {}, d = t?.componentOptions?.listeners?.click, f = t?.componentOptions?.children?.[0]?.text?.trim?.(), k = t?.componentOptions?.propsData?.ariaLabel || f, b = this.forceName ? f : "";
|
|
295
299
|
let m = t?.componentOptions?.propsData?.title;
|
|
296
300
|
this.forceName || m || (m = f);
|
|
297
301
|
const r = { ...t?.componentOptions?.propsData ?? {} }, $ = ["submit", "reset"].includes(r.type) ? r.modelValue : "button";
|
|
@@ -305,7 +309,7 @@ const c = ".focusable", E = {
|
|
|
305
309
|
],
|
|
306
310
|
attrs: {
|
|
307
311
|
...S,
|
|
308
|
-
"aria-label":
|
|
312
|
+
"aria-label": k,
|
|
309
313
|
title: m
|
|
310
314
|
},
|
|
311
315
|
ref: t?.data?.ref,
|
|
@@ -326,8 +330,8 @@ const c = ".focusable", E = {
|
|
|
326
330
|
// If we have a click listener,
|
|
327
331
|
// we bind it to execute on click and forward the click event
|
|
328
332
|
...!!d && {
|
|
329
|
-
click: (
|
|
330
|
-
d && d(
|
|
333
|
+
click: (_) => {
|
|
334
|
+
d && d(_);
|
|
331
335
|
}
|
|
332
336
|
}
|
|
333
337
|
}
|
|
@@ -338,7 +342,7 @@ const c = ".focusable", E = {
|
|
|
338
342
|
]
|
|
339
343
|
);
|
|
340
344
|
}, I = (t) => {
|
|
341
|
-
const
|
|
345
|
+
const o = this.$slots.icon?.[0] || (this.defaultIcon ? e("span", { class: ["icon", this.defaultIcon] }) : e("DotsHorizontal", {
|
|
342
346
|
props: {
|
|
343
347
|
size: 20
|
|
344
348
|
}
|
|
@@ -394,10 +398,11 @@ const c = ".focusable", E = {
|
|
|
394
398
|
},
|
|
395
399
|
on: {
|
|
396
400
|
focus: this.onFocus,
|
|
397
|
-
blur: this.onBlur
|
|
401
|
+
blur: this.onBlur,
|
|
402
|
+
click: this.onClick
|
|
398
403
|
}
|
|
399
404
|
}, [
|
|
400
|
-
e("template", { slot: "icon" }, [
|
|
405
|
+
e("template", { slot: "icon" }, [o]),
|
|
401
406
|
this.menuName
|
|
402
407
|
]),
|
|
403
408
|
e("div", {
|
|
@@ -432,7 +437,7 @@ const c = ".focusable", E = {
|
|
|
432
437
|
if (this.$nextTick(() => {
|
|
433
438
|
this.opened && this.$refs.menu && (this.$refs.menu.querySelector("li.active") || []).length === 0 && this.focusFirstAction();
|
|
434
439
|
}), s.length > 0 && this.inline > 0) {
|
|
435
|
-
const t = s.slice(0, this.inline),
|
|
440
|
+
const t = s.slice(0, this.inline), o = n.filter((p) => !t.includes(p));
|
|
436
441
|
return e(
|
|
437
442
|
"div",
|
|
438
443
|
{
|
|
@@ -445,7 +450,7 @@ const c = ".focusable", E = {
|
|
|
445
450
|
// Render inline actions
|
|
446
451
|
...t.map(g),
|
|
447
452
|
// render the rest within the popover menu
|
|
448
|
-
|
|
453
|
+
o.length > 0 ? e(
|
|
449
454
|
"div",
|
|
450
455
|
{
|
|
451
456
|
class: [
|
|
@@ -456,7 +461,7 @@ const c = ".focusable", E = {
|
|
|
456
461
|
]
|
|
457
462
|
},
|
|
458
463
|
[
|
|
459
|
-
I(
|
|
464
|
+
I(o)
|
|
460
465
|
]
|
|
461
466
|
) : null
|
|
462
467
|
]
|
|
@@ -485,9 +490,9 @@ var T = /* @__PURE__ */ w.normalizeComponent(
|
|
|
485
490
|
F,
|
|
486
491
|
!1,
|
|
487
492
|
null,
|
|
488
|
-
"
|
|
493
|
+
"aa98d7d0",
|
|
489
494
|
null,
|
|
490
495
|
null
|
|
491
496
|
);
|
|
492
|
-
const
|
|
493
|
-
exports.NcActions =
|
|
497
|
+
const C = T.exports;
|
|
498
|
+
exports.NcActions = C;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcActions-4ml5sv6P.cjs","sources":["../../src/components/NcActions/NcActions.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n - @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<!-- Accessibility guidelines:\nhttps://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-actions.html -->\n\n<docs>\n### Single action\n\n```vue\n<template>\n\t<NcActions>\n\t\t<NcActionButton @click=\"actionDelete\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t},\n\tmethods: {\n\t\tactionDelete() {\n\t\t\talert('Delete')\n\t\t},\n\t},\n}\n</script>\n```\n\n### Multiple actions\n\n```vue\n<template>\n\t<NcActions>\n\t\t<NcActionButton @click=\"showMessage('Edit')\">\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionLink href=\"https://nextcloud.com\">\n\t\t\t<template #icon>\n\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t</template>\n\t\t\tLink\n\t\t</NcActionLink>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tOpenInNew,\n\t\tPencil,\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n\n### Multiple actions with 2 items inline\n\n```vue\n<template>\n\t<NcActions :inline=\"2\">\n\t\t<NcActionButton @click=\"showMessage('Add')\">\n\t\t\t<template #icon>\n\t\t\t\t<Plus :size=\"20\" />\n\t\t\t</template>\n\t\t\tAdd\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Edit')\">\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionLink href=\"https://nextcloud.com\">\n\t\t\t<template #icon>\n\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t</template>\n\t\t\tLink\n\t\t</NcActionLink>\n\t</NcActions>\n</template>\n<script>\nimport Plus from 'vue-material-design-icons/Plus'\nimport Delete from 'vue-material-design-icons/Delete'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tOpenInNew,\n\t\tPencil,\n\t\tPlus,\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n\n### Multiple actions with 2 items inline AND forced names\n\n```vue\n<template>\n\t<NcActions :force-name=\"true\" :inline=\"2\">\n\t\t<NcActionButton @click=\"showMessage('Add')\">\n\t\t\t<template #icon>\n\t\t\t\t<Plus :size=\"20\" />\n\t\t\t</template>\n\t\t\tAdd\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Edit')\">\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionLink href=\"https://nextcloud.com\">\n\t\t\t<template #icon>\n\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t</template>\n\t\t\tLink\n\t\t</NcActionLink>\n\t</NcActions>\n</template>\n<script>\nimport Plus from 'vue-material-design-icons/Plus'\nimport Delete from 'vue-material-design-icons/Delete'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew'\nimport Pencil from 'vue-material-design-icons/Pencil'\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tOpenInNew,\n\t\tPencil,\n\t\tPlus,\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n\n### Multiple actions with custom icon\n\n```vue\n<template>\n\t<NcActions>\n\t\t<template #icon>\n\t\t\t<Pencil :size=\"20\" />\n\t\t</template>\n\t\t<NcActionButton @click=\"showMessage('Edit')\">\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionLink href=\"https://nextcloud.com\">\n\t\t\t<template #icon>\n\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t</template>\n\t\t\tLink\n\t\t</NcActionLink>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tOpenInNew,\n\t\tPencil,\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n\n### With menu name\n\n```vue\n<template>\n\t<NcActions menu-name=\"Object management\">\n\t\t<template #icon>\n\t\t\t<Pencil :size=\"20\" />\n\t\t</template>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tRename\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t</template>\n\t\t\tValidate\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Download :size=\"20\" />\n\t\t\t</template>\n\t\t\tDownload\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport ArrowRight from 'vue-material-design-icons/ArrowRight'\nimport Delete from 'vue-material-design-icons/Delete'\nimport Download from 'vue-material-design-icons/Download'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tArrowRight,\n\t\tDelete,\n\t\tDownload,\n\t\tPencil,\n\t},\n}\n</script>\n```\n\n### Various icons styles\n```vue\n<template>\n\t<NcActions :primary=\"true\">\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tPencil,\n\t},\n}\n</script>\n```\n\n```vue\n<template>\n\t<NcActions :primary=\"true\" menu-name=\"Object management\">\n\t\t<template #icon>\n\t\t\t<Plus :size=\"20\" />\n\t\t</template>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tRename\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t</template>\n\t\t\tValidate\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Download :size=\"20\" />\n\t\t\t</template>\n\t\t\tDownload\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport ArrowRight from 'vue-material-design-icons/ArrowRight'\nimport Delete from 'vue-material-design-icons/Delete'\nimport Download from 'vue-material-design-icons/Download'\nimport Pencil from 'vue-material-design-icons/Pencil'\nimport Plus from 'vue-material-design-icons/Plus'\n\nexport default {\n\tcomponents: {\n\t\tArrowRight,\n\t\tDelete,\n\t\tDownload,\n\t\tPencil,\n\t\tPlus,\n\t},\n}\n</script>\n```\n\n### Custom icon slot\nTo be used with `vue-material-design-icons` only. For icon classes use the `default-icon` slot.\nIt can be used with one or multiple actions.\n```vue\n<template>\n\t<div style=\"display: flex;align-items: center;\">\n\t\t<NcButton @click=\"toggled = !toggled\">Toggle multiple action</NcButton>\n\t\t<NcActions>\n\t\t\t<template #icon>\n\t\t\t\t<DotsHorizontalCircleOutline :size=\"20\" />\n\t\t\t</template>\n\t\t\t<NcActionButton>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<MicrophoneOff :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tMute\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton v-if=\"toggled\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tDelete\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</div>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport DotsHorizontalCircleOutline from 'vue-material-design-icons/DotsHorizontalCircleOutline'\nimport MicrophoneOff from 'vue-material-design-icons/MicrophoneOff'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tDotsHorizontalCircleOutline,\n\t\tMicrophoneOff,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false\n\t\t}\n\t}\n}\n</script>\n```\n\n### Custom icon slot in child elements\n```vue\n<template>\n\t<NcActions :primary=\"true\">\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</template>\n\t\t\tSearch\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tMagnify,\n\t},\n}\n</script>\n```\n\n### Type variants\n\n```vue\n<template>\n\t<div>\n\t\t<NcActions :type=\"current\">\n\t\t\t<template #icon>\n\t\t\t\t<SelectColor :size=\"20\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton v-if=\"current\" close-after-click @click=\"define()\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tRemove\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton v-for=\"row in types\" close-after-click @click=\"define(row)\" :key=\"`type-icon--${row}`\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckboxMarkedCircleOutline v-if=\"row === current\" :size=\"20\" />\n\t\t\t\t\t<SelectColor v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ row }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<NcActions :type=\"current\" menu-name=\"Choose a type\">\n\t\t\t<NcActionButton v-if=\"current\" close-after-click @click=\"define()\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tRemove\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton v-for=\"row in types\" close-after-click @click=\"define(row)\" :key=\"`type-text--${row}`\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckboxMarkedCircleOutline v-if=\"row === current\" :size=\"20\" />\n\t\t\t\t\t<SelectColor v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ row }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<NcActions :type=\"current\" menu-name=\"Choose a type\">\n\t\t\t<template #icon>\n\t\t\t\t<SelectColor :size=\"20\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton v-if=\"current\" close-after-click @click=\"define()\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tRemove\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton v-for=\"row in types\" close-after-click @click=\"define(row)\" :key=\"`type-icon-text--${row}`\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckboxMarkedCircleOutline v-if=\"row === current\" :size=\"20\" />\n\t\t\t\t\t<SelectColor v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ row }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</div>\n</template>\n\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport Palette from 'vue-material-design-icons/Palette'\nimport SelectColor from 'vue-material-design-icons/SelectColor'\nimport CheckboxMarkedCircleOutline from 'vue-material-design-icons/CheckboxMarkedCircleOutline'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tPalette,\n\t\tSelectColor,\n\t\tCheckboxMarkedCircleOutline,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcurrent: 'primary',\n\t\t\ttypes: [\n\t\t\t\t'primary',\n\t\t\t\t'secondary',\n\t\t\t\t'tertiary',\n\t\t\t\t'error',\n\t\t\t\t'warning',\n\t\t\t\t'success'\n\t\t\t]\n\t\t}\n\t},\n\tmethods: {\n\t\tdefine(row = undefined) {\n\t\t\tthis.current = row\n\t\t}\n\t}\n}\n</script>\n```\n\n### Use cases\n\n```vue\n<template>\n\t<div>\n\t\t<h2>Application menu</h2>\n\t\tUses buttons, button groups, links and router links, separators, text. May have checkboxes and radio buttons.\n\t\t<p>\n\t\t\t<NcActions aria-label=\"Email menu\" type=\"tertiary\">\n\t\t\t\t<NcActionButtonGroup>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<StarOutline :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tFavorite\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<EmailUnread :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tUnread\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Bookmark :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tImportant\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActionButtonGroup>\n\t\t\t\t<NcActionText>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<ClockOutlineIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ new Date().toLocaleDateString('en-US') }}\n\t\t\t\t</NcActionText>\n\t\t\t\t<NcActionSeparator />\n\t\t\t\t<NcActionButton>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<AlertOctagonIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tMark as spam\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionCheckbox :checked.sync=\"selected\">\n\t\t\t\t\tSelect\n\t\t\t\t</NcActionCheckbox>\n\t\t\t\t<NcActionButton>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<OpenInNewIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tMove thread\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionLink href=\"#\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<DownloadIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tDownload message\n\t\t\t\t</NcActionLink>\n\t\t\t</NcActions>\n\t\t</p>\n\n\t\t<h2>Menu in menubar</h2>\n\t\tSame as application menu. Separator can be used to make groups of radio buttons as well.\n\t\t<p>\n\t\t\t<NcActions aria-label=\"Text settings\" type=\"tertiary\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<FormatTitle :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<NcActionButtonGroup name=\"Allignment\">\n\t\t\t\t\t<NcActionButton aria-label=\"Left\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<FormatAlignLeft :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton aria-label=\"Center\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<FormatAlignCenter :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton aria-label=\"Right\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<FormatAlignRight :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActionButtonGroup>\n\t\t\t\t<NcActionSeparator />\n\t\t\t\t<NcActionCheckbox :checked.sync=\"checked.bold\" value=\"bold\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<FormatBold :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tBold\n\t\t\t\t</NcActionCheckbox>\n\t\t\t\t<NcActionCheckbox :checked.sync=\"checked.italic\" value=\"italic\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<FormatItalic :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tItalic\n\t\t\t\t</NcActionCheckbox>\n\t\t\t\t<NcActionCheckbox :checked.sync=\"checked.underline\" value=\"underline\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<FormatUnderline :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tUnderline\n\t\t\t\t</NcActionCheckbox>\n\t\t\t\t<NcActionSeparator />\n\t\t\t\t<NcActionRadio name=\"color\" :checked.sync=\"color.black\" value=\"Black\">Black</NcActionRadio>\n\t\t\t\t<NcActionRadio name=\"color\" :checked.sync=\"color.blue\" value=\"Blue\">Blue</NcActionRadio>\n\t\t\t\t<NcActionRadio name=\"color\" :checked.sync=\"color.red\" value=\"Red\">Red</NcActionRadio>\n\t\t\t\t<NcActionRadio name=\"color\" :checked.sync=\"color.green\" value=\"Green\">Green</NcActionRadio>\n\t\t\t</NcActions>\n\t\t</p>\n\n\t\t<h2>Navigation</h2>\n\t\tUses links or router links. May use text elements, captions and separators.\n\t\t<p>\n\t\t\t<NcActions aria-label=\"Applications navigation\" :inline=\"2\" type=\"tertiary\">\n\t\t\t\t<NcActionLink href=\"/apps/dashboard\" icon=\"icon-category-dashboard-white\">\n\t\t\t\t\tDashboard\n\t\t\t\t</NcActionLink>\n\t\t\t\t<NcActionLink href=\"/apps/files\" icon=\"icon-files-white\">\n\t\t\t\t\tFiles\n\t\t\t\t</NcActionLink>\n\t\t\t\t<NcActionLink href=\"/apps/spreed\" icon=\"icon-talk-white\">\n\t\t\t\t\tTalk\n\t\t\t\t</NcActionLink>\n\t\t\t\t<NcActionLink href=\"/apps/contacts\" icon=\"icon-contacts-white\">\n\t\t\t\t\tContacts\n\t\t\t\t</NcActionLink>\n\t\t\t\t<NcActionLink href=\"/apps/spreed\" icon=\"icon-circles-white\">\n\t\t\t\t\tCircles\n\t\t\t\t</NcActionLink>\n\t\t\t</NcActions>\n\t\t</p>\n\n\t\t<h2>Popover</h2>\n\t\tHas any elements, including text input element, or no buttons.\n\t\t<p>\n\t\t\t<NcActions aria-label=\"Group management\">\n\t\t\t\t<NcActionInput trailing-button-label=\"Submit\" label=\"Rename group\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionInput>\n\t\t\t\t<NcActionButton>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tRemove group\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</p>\n\t</div>\n</template>\n\n<script>\n// Common icons\nimport Pencil from 'vue-material-design-icons/Pencil'\nimport Delete from 'vue-material-design-icons/Delete'\n\n// Email icons\nimport StarOutline from 'vue-material-design-icons/StarOutline'\nimport EmailUnread from 'vue-material-design-icons/Email'\nimport Bookmark from 'vue-material-design-icons/Bookmark'\nimport ClockOutlineIcon from 'vue-material-design-icons/ClockOutline'\nimport AlertOctagonIcon from 'vue-material-design-icons/AlertOctagon'\nimport CheckIcon from 'vue-material-design-icons/Check'\nimport OpenInNewIcon from 'vue-material-design-icons/OpenInNew'\nimport DownloadIcon from 'vue-material-design-icons/Download'\n\n// Formating icons\nimport FormatTitle from 'vue-material-design-icons/FormatTitle.vue'\nimport FormatAlignLeft from 'vue-material-design-icons/FormatAlignLeft.vue'\nimport FormatAlignCenter from 'vue-material-design-icons/FormatAlignCenter.vue'\nimport FormatAlignRight from 'vue-material-design-icons/FormatAlignRight.vue'\nimport FormatBold from 'vue-material-design-icons/FormatBold.vue'\nimport FormatItalic from 'vue-material-design-icons/FormatItalic.vue'\nimport FormatUnderline from 'vue-material-design-icons/FormatUnderline.vue'\n\nexport default {\n\tcomponents: {\n\t\t// Common icons\n\t\tPencil,\n\t\tDelete,\n\n\t\t// Email icons\n\t\tStarOutline,\n\t\tEmailUnread,\n\t\tBookmark,\n\t\tClockOutlineIcon,\n\t\tAlertOctagonIcon,\n\t\tCheckIcon,\n\t\tOpenInNewIcon,\n\t\tDownloadIcon,\n\n\t\t// Formating icons\n\t\tFormatTitle,\n\t\tFormatAlignLeft,\n\t\tFormatAlignCenter,\n\t\tFormatAlignRight,\n\t\tFormatBold,\n\t\tFormatItalic,\n\t\tFormatUnderline,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselected: false,\n\t\t\t// Formating\n\t\t\tchecked: {\n\t\t\t\tbold: true,\n\t\t\t\titalic: false,\n\t\t\t\tunderline: false,\n\t\t\t},\n\t\t\tcolor: {\n\t\t\t\tblack: true,\n\t\t\t\tblue: false,\n\t\t\t\tred: false,\n\t\t\t\tgreen: false,\n\t\t\t},\n\t\t}\n\t},\n}\n</script>\n\n<style scoped>\np {\n\tmargin: 1rem 0;\n}\n</style>\n```\n\n</docs>\n\n<script>\nimport NcButton from '../NcButton/index.js'\nimport NcPopover from '../NcPopover/index.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport { t } from '../../l10n.js'\n\nimport Vue, { computed } from 'vue'\nimport DotsHorizontal from 'vue-material-design-icons/DotsHorizontal.vue'\n\nconst focusableSelector = '.focusable'\n\n/**\n * The Actions component can be used to display one ore more actions.\n * If only a single action is provided, it will be rendered as an inline icon.\n * For more, a menu indicator will be shown and a popovermenu containing the\n * actions will be opened on click.\n *\n * @since 0.10.0\n */\nexport default {\n\tname: 'NcActions',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tDotsHorizontal,\n\t\tNcPopover,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * NcActions can be used as:\n\t\t\t * - Application menu (has menu role)\n\t\t\t * - Navigation (has no specific role, should be used an element with navigation role)\n\t\t\t * - Popover with plain text or text inputs (has no specific role)\n\t\t\t * Depending on the usage (used items), the menu and its items should have different roles for a11y.\n\t\t\t * Provide the role for NcAction* components in the NcActions content.\n\t\t\t * @type {import('vue').ComputedRef<boolean>}\n\t\t\t */\n\t\t\t'NcActions:isSemanticMenu': computed(() => this.isSemanticMenu),\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Specify the open state of the popover menu\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 * This disables the internal open management,\n\t\t * so the actions menu only respects the `open` prop.\n\t\t * This is e.g. necessary for the NcAvatar component\n\t\t * to only open the actions menu after loading it's entries has finished.\n\t\t */\n\t\tmanualOpen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the actions to display in a three dot menu\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the name to show for single actions\n\t\t */\n\t\tforceName: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Specify the menu name\n\t\t */\n\t\tmenuName: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Apply primary styling for this menu\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Specifies the button type used for trigger and single actions buttons\n\t\t * Accepted values: primary, secondary, tertiary, tertiary-no-background, tertiary-on-primary, error, warning, success. If left empty,\n\t\t * the default button style will be applied.\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['primary', 'secondary', 'tertiary', 'tertiary-no-background', 'tertiary-on-primary', 'error', 'warning', 'success'].indexOf(value) !== -1\n\t\t\t},\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Icon to show for the toggle menu button\n\t\t * when more than one action is inside the actions component.\n\t\t * Only replace the default three-dot icon if really necessary.\n\t\t */\n\t\tdefaultIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Aria label for the actions menu.\n\t\t *\n\t\t * If `menuName` is defined this will not be used to prevent\n\t\t * any accessible name conflicts. This ensures that the\n\t\t * element can be activated via voice input.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Actions'),\n\t\t},\n\n\t\t/**\n\t\t * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n\t\t * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n\t\t * otherwise root element will inherit incorrect aria-hidden.\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Wanted direction of the menu\n\t\t */\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: 'bottom',\n\t\t},\n\n\t\t/**\n\t\t * DOM element for the actions' popover boundaries\n\t\t */\n\t\tboundariesElement: {\n\t\t\ttype: Element,\n\t\t\tdefault: () => document.querySelector('body'),\n\t\t},\n\n\t\t/**\n\t\t * Selector for the actions' popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: [String, Object, Element, Boolean],\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Disabled state of the main button (single action or menu toggle)\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Display x items inline out of the dropdown menu\n\t\t * Will be ignored if `forceMenu` is set\n\t\t */\n\t\tinline: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t},\n\n\temits: [\n\t\t'open',\n\t\t'update:open',\n\t\t'close',\n\t\t'focus',\n\t\t'blur',\n\t\t'click',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\topened: this.open,\n\t\t\tfocusIndex: 0,\n\t\t\trandomId: `menu-${GenRandomId()}`,\n\t\t\tisSemanticMenu: false,\n\t\t\tisSemanticNavigation: false,\n\t\t\tisSemanticPopoverLike: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttriggerBtnType() {\n\t\t\t// If requested, we use a primary button\n\t\t\treturn this.type || (this.primary\n\t\t\t\t? 'primary'\n\t\t\t\t// If it has a name, we use a secondary button\n\t\t\t\t: this.menuName ? 'secondary' : 'tertiary')\n\t\t},\n\t},\n\n\twatch: {\n\t\t// Watch parent prop\n\t\topen(state) {\n\t\t\tif (state === this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = state\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Do we have exactly one Action and\n\t\t * is it allowed as a standalone element?\n\t\t *\n\t\t * @param {Array} action The action to check\n\t\t * @return {boolean}\n\t\t */\n\t\tisValidSingleAction(action) {\n\t\t\tconst componentName = action?.componentOptions?.Ctor?.extendOptions?.name ?? action?.componentOptions?.tag\n\t\t\treturn ['NcActionButton', 'NcActionLink', 'NcActionRouter'].includes(componentName)\n\t\t},\n\n\t\t/**\n\t\t * Check whether a icon prop value is an URL or not\n\t\t * @param {string} url The icon prop value\n\t\t */\n\t\tisIconUrl(url) {\n\t\t\ttry {\n\t\t\t\treturn !!(new URL(url, url.startsWith('/') ? window.location.origin : undefined))\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\t// MENU STATE MANAGEMENT\n\t\topenMenu(e) {\n\t\t\tif (this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = true\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu open state is changed\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu is opened\n\t\t\t */\n\t\t\tthis.$emit('open')\n\t\t},\n\t\tcloseMenu(returnFocus = true) {\n\t\t\tif (!this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = false\n\n\t\t\tthis.$refs.popover.clearFocusTrap({ returnFocus })\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu open state is changed\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu is closed\n\t\t\t */\n\t\t\tthis.$emit('close')\n\n\t\t\t// close everything\n\t\t\tthis.focusIndex = 0\n\n\t\t\t// focus back the menu button\n\t\t\tthis.$refs.menuButton.$el.focus()\n\t\t},\n\n\t\tonOpen(event) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.focusFirstAction(event)\n\t\t\t})\n\t\t},\n\n\t\t// MENU KEYS & FOCUS MANAGEMENT\n\t\t// focus nearest focusable item on mouse move\n\t\t// DO NOT change the focus if the target is already focused\n\t\t// this will prevent issues with input being unfocused\n\t\t// on mouse move\n\t\tonMouseFocusAction(event) {\n\t\t\tif (document.activeElement === event.target) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst menuItem = event.target.closest('li')\n\t\t\tif (menuItem && this.$refs.menu.contains(menuItem)) {\n\t\t\t\tconst focusableItem = menuItem.querySelector(focusableSelector)\n\t\t\t\tif (focusableItem) {\n\t\t\t\t\tconst focusList = this.$refs.menu.querySelectorAll(focusableSelector)\n\t\t\t\t\tconst focusIndex = [...focusList].indexOf(focusableItem)\n\t\t\t\t\tif (focusIndex > -1) {\n\t\t\t\t\t\tthis.focusIndex = focusIndex\n\t\t\t\t\t\tthis.focusAction()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Dispatches the keydown listener to different handlers\n\t\t *\n\t\t * @param {object} event The keydown event\n\t\t */\n\t\tonKeydown(event) {\n\t\t\tif (event.key === 'Tab' && !this.isSemanticPopoverLike) {\n\t\t\t\tthis.closeMenu(false)\n\t\t\t}\n\n\t\t\tif (event.key === 'ArrowUp') {\n\t\t\t\tthis.focusPreviousAction(event)\n\t\t\t}\n\n\t\t\tif (event.key === 'ArrowDown') {\n\t\t\t\tthis.focusNextAction(event)\n\t\t\t}\n\n\t\t\tif (event.key === 'PageUp') {\n\t\t\t\tthis.focusFirstAction(event)\n\t\t\t}\n\n\t\t\tif (event.key === 'PageDown') {\n\t\t\t\tthis.focusLastAction(event)\n\t\t\t}\n\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tthis.closeMenu()\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t},\n\t\tremoveCurrentActive() {\n\t\t\tconst currentActiveElement = this.$refs.menu.querySelector('li.active')\n\t\t\tif (currentActiveElement) {\n\t\t\t\tcurrentActiveElement.classList.remove('active')\n\t\t\t}\n\t\t},\n\t\tfocusAction() {\n\t\t\t// TODO: have a global disabled state for non input elements\n\t\t\tconst focusElement = this.$refs.menu.querySelectorAll(focusableSelector)[this.focusIndex]\n\t\t\tif (focusElement) {\n\t\t\t\tthis.removeCurrentActive()\n\t\t\t\tconst liMenuParent = focusElement.closest('li.action')\n\t\t\t\tfocusElement.focus()\n\t\t\t\tif (liMenuParent) {\n\t\t\t\t\tliMenuParent.classList.add('active')\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tfocusPreviousAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tif (this.focusIndex === 0) {\n\t\t\t\t\tthis.focusLastAction(event)\n\t\t\t\t} else {\n\t\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t\tthis.focusIndex = this.focusIndex - 1\n\t\t\t\t}\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusNextAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tconst indexLength = this.$refs.menu.querySelectorAll(focusableSelector).length - 1\n\t\t\t\tif (this.focusIndex === indexLength) {\n\t\t\t\t\tthis.focusFirstAction(event)\n\t\t\t\t} else {\n\t\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t\tthis.focusIndex = this.focusIndex + 1\n\t\t\t\t}\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusFirstAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t// In case a button is considered aria-selected we will use this one as a initial focus\n\t\t\t\tconst firstSelectedIndex = [...this.$refs.menu.querySelectorAll(focusableSelector)].findIndex((button) => {\n\t\t\t\t\treturn button.parentElement.getAttribute('aria-selected')\n\t\t\t\t})\n\t\t\t\tthis.focusIndex = firstSelectedIndex > -1 ? firstSelectedIndex : 0\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusLastAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\tthis.focusIndex = this.$refs.menu.querySelectorAll(focusableSelector).length - 1\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tpreventIfEvent(event) {\n\t\t\tif (event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t}\n\t\t},\n\t\tonFocus(event) {\n\t\t\tthis.$emit('focus', event)\n\t\t},\n\t\tonBlur(event) {\n\t\t\tthis.$emit('blur', event)\n\t\t},\n\t\tonClick(event) {\n\t\t\t/**\n\t\t\t * Event emitted when the menu toggle button is clicked.\n\t\t\t *\n\t\t\t * This is e.g. necessary for the NcAvatar component\n\t\t\t * which needs to fetch the menu items on click.\n\t\t\t *\n\t\t\t * @type {PointerEvent}\n\t\t\t */\n\t\t\tthis.$emit('click', event)\n\t\t},\n\t},\n\n\t/**\n\t * The render function to display the component\n\t *\n\t * @param {Function} h The function to create VNodes\n\t * @return {object|undefined} The created VNode\n\t */\n\trender(h) {\n\t\t/**\n\t\t * Filter the Actions, so that we only get allowed components.\n\t\t * This also ensure that we don't get 'text' elements, which would\n\t\t * become problematic later on.\n\t\t */\n\t\tconst actions = (this.$slots.default || []).filter(\n\t\t\taction => action?.componentOptions?.tag || action?.componentOptions?.Ctor?.extendOptions?.name,\n\t\t)\n\n\t\tconst getActionName = (action) => action?.componentOptions?.Ctor?.extendOptions?.name ?? action?.componentOptions?.tag\n\n\t\tconst menuItemsActions = ['NcActionButton', 'NcActionButtonGroup', 'NcActionCheckbox', 'NcActionRadio']\n\t\tconst textInputActions = ['NcActionInput', 'NcActionTextEditable']\n\t\tconst linkActions = ['NcActionLink', 'NcActionRouter']\n\n\t\tconst hasTextInputAction = actions.some(action => textInputActions.includes(getActionName(action)))\n\t\tconst hasMenuItemAction = actions.some(action => menuItemsActions.includes(getActionName(action)))\n\t\tconst hasLinkAction = actions.some(action => linkActions.includes(getActionName(action)))\n\n\t\t// We consider the NcActions to have role=\"menu\" if it consists some button-like action and not text inputs\n\t\tthis.isSemanticMenu = hasMenuItemAction && !hasTextInputAction\n\t\t// We consider the NcActions to be navigation if it consists some link-like action\n\t\tthis.isSemanticNavigation = hasLinkAction && !hasMenuItemAction && !hasTextInputAction\n\t\t// If it is not a menu and not a navigation, it is a popover with items: a form or just a text\n\t\tthis.isSemanticPopoverLike = !this.isSemanticMenu && !this.isSemanticNavigation\n\n\t\tconst popupRole = this.isSemanticMenu\n\t\t\t? 'menu'\n\t\t\t: hasTextInputAction\n\t\t\t\t? 'dialog'\n\t\t\t\t: 'true'\n\n\t\t/**\n\t\t * Filter and list actions that are allowed to be displayed inline\n\t\t */\n\t\tlet inlineActions = actions.filter(this.isValidSingleAction)\n\t\tif (this.forceMenu && inlineActions.length > 0 && this.inline > 0) {\n\t\t\tVue.util.warn('Specifying forceMenu will ignore any inline actions rendering.')\n\t\t\tinlineActions = []\n\t\t}\n\n\t\t// Check that we have at least one action\n\t\tif (actions.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\t/**\n\t\t * Render the provided action\n\t\t *\n\t\t * @param {import('vue').VNode} action the action to render\n\t\t * @return {Function} the vue render function\n\t\t */\n\t\tconst renderInlineAction = (action) => {\n\t\t\tconst iconProp = action?.componentOptions?.propsData?.icon\n\t\t\tconst icon = action?.data?.scopedSlots?.icon()?.[0] ?? (\n\t\t\t\tthis.isIconUrl(iconProp)\n\t\t\t\t\t? h('img', { class: 'action-item__menutoggle__icon', attrs: { src: iconProp, alt: '' } })\n\t\t\t\t\t: h('span', { class: ['icon', iconProp] })\n\t\t\t)\n\t\t\tconst attrs = action?.data?.attrs || {}\n\t\t\tconst clickListener = action?.componentOptions?.listeners?.click\n\n\t\t\tconst text = action?.componentOptions?.children?.[0]?.text?.trim?.()\n\t\t\tconst ariaLabel = action?.componentOptions?.propsData?.ariaLabel || text\n\t\t\tconst buttonText = this.forceName ? text : ''\n\n\t\t\tlet title = action?.componentOptions?.propsData?.title\n\t\t\t// Show a default title for single actions if none is present\n\t\t\tif (!(this.forceName || title)) {\n\t\t\t\ttitle = text\n\t\t\t}\n\n\t\t\tconst propsToForward = { ...(action?.componentOptions?.propsData ?? {}) }\n\t\t\tconst nativeType = ['submit', 'reset'].includes(propsToForward.type) ? propsToForward.modelValue : 'button'\n\t\t\t// not available on NcButton or with different meaning\n\t\t\tdelete propsToForward.modelValue\n\t\t\tdelete propsToForward.type\n\n\t\t\treturn h('NcButton',\n\t\t\t\t{\n\t\t\t\t\tclass: [\n\t\t\t\t\t\t'action-item action-item--single',\n\t\t\t\t\t\taction?.data?.staticClass,\n\t\t\t\t\t\taction?.data?.class,\n\t\t\t\t\t],\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\t...attrs,\n\t\t\t\t\t\t'aria-label': ariaLabel,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t},\n\t\t\t\t\tref: action?.data?.ref,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\t// If it has a menuName, we use a secondary button\n\t\t\t\t\t\ttype: this.type || (buttonText ? 'secondary' : 'tertiary'),\n\t\t\t\t\t\tdisabled: this.disabled || action?.componentOptions?.propsData?.disabled,\n\t\t\t\t\t\tpressed: action?.componentOptions?.propsData?.modelValue,\n\t\t\t\t\t\tnativeType,\n\t\t\t\t\t\t...propsToForward,\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tfocus: this.onFocus,\n\t\t\t\t\t\tblur: this.onBlur,\n\t\t\t\t\t\t// forward any pressed state from NcButton just like NcActionButton does\n\t\t\t\t\t\t'update:pressed': action?.componentOptions?.listeners?.['update:modelValue'] ?? (() => {}),\n\t\t\t\t\t\t// If we have a click listener,\n\t\t\t\t\t\t// we bind it to execute on click and forward the click event\n\t\t\t\t\t\t...(!!clickListener && {\n\t\t\t\t\t\t\tclick: (event) => {\n\t\t\t\t\t\t\t\tif (clickListener) {\n\t\t\t\t\t\t\t\t\tclickListener(event)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\th('template', { slot: 'icon' }, [icon]),\n\t\t\t\t\tbuttonText,\n\t\t\t\t],\n\t\t\t)\n\t\t}\n\n\t\t/**\n\t\t * Render the actions popover\n\t\t *\n\t\t * @param {Array} actions the actions to render within\n\t\t * @return {Function} the vue render function\n\t\t */\n\t\tconst renderActionsPopover = (actions) => {\n\t\t\tconst triggerIcon = this.$slots.icon?.[0] || (\n\t\t\t\tthis.defaultIcon\n\t\t\t\t\t? h('span', { class: ['icon', this.defaultIcon] })\n\t\t\t\t\t: h('DotsHorizontal', {\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tsize: 20,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t)\n\t\t\treturn h('NcPopover',\n\t\t\t\t{\n\t\t\t\t\tref: 'popover',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdelay: 0,\n\t\t\t\t\t\thandleResize: true,\n\t\t\t\t\t\tshown: this.opened,\n\t\t\t\t\t\tplacement: this.placement,\n\t\t\t\t\t\tboundary: this.boundariesElement,\n\t\t\t\t\t\tcontainer: this.container,\n\t\t\t\t\t\tpopoverBaseClass: 'action-item__popper',\n\t\t\t\t\t\tpopupRole,\n\t\t\t\t\t\t// Menu and navigation should not have focus trap\n\t\t\t\t\t\t// Tab should close the menu and move focus to the next UI element\n\t\t\t\t\t\tsetReturnFocus: !this.isSemanticPopoverLike ? null : this.$refs.menuButton?.$el,\n\t\t\t\t\t\tfocusTrap: this.isSemanticPopoverLike,\n\t\t\t\t\t},\n\t\t\t\t\t// For some reason the popover component\n\t\t\t\t\t// does not react to props given under the 'props' key,\n\t\t\t\t\t// so we use both 'attrs' and 'props'\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tdelay: 0,\n\t\t\t\t\t\thandleResize: true,\n\t\t\t\t\t\tshown: this.opened,\n\t\t\t\t\t\tplacement: this.placement,\n\t\t\t\t\t\tboundary: this.boundariesElement,\n\t\t\t\t\t\tcontainer: this.container,\n\t\t\t\t\t\t...this.manualOpen && { triggers: [] },\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tshow: this.openMenu,\n\t\t\t\t\t\t'after-show': this.onOpen,\n\t\t\t\t\t\thide: this.closeMenu,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\th('NcButton', {\n\t\t\t\t\t\tclass: 'action-item__menutoggle',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\ttype: this.triggerBtnType,\n\t\t\t\t\t\t\tdisabled: this.disabled,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tslot: 'trigger',\n\t\t\t\t\t\tref: 'menuButton',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t'aria-label': this.menuName ? null : this.ariaLabel,\n\t\t\t\t\t\t\t'aria-controls': this.opened ? this.randomId : null,\n\t\t\t\t\t\t},\n\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\tfocus: this.onFocus,\n\t\t\t\t\t\t\tblur: this.onBlur,\n\t\t\t\t\t\t\tclick: this.onClick,\n\t\t\t\t\t\t},\n\t\t\t\t\t}, [\n\t\t\t\t\t\th('template', { slot: 'icon' }, [triggerIcon]),\n\t\t\t\t\t\tthis.menuName,\n\t\t\t\t\t]),\n\t\t\t\t\th('div', {\n\t\t\t\t\t\tclass: {\n\t\t\t\t\t\t\topen: this.opened,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\ttabindex: '-1',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\tkeydown: this.onKeydown,\n\t\t\t\t\t\t\tmousemove: this.onMouseFocusAction,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tref: 'menu',\n\t\t\t\t\t}, [\n\t\t\t\t\t\th('ul', {\n\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\tid: this.randomId,\n\t\t\t\t\t\t\t\ttabindex: '-1',\n\t\t\t\t\t\t\t\trole: popupRole !== 'true' ? popupRole : undefined,\n\t\t\t\t\t\t\t\t// TODO: allow to provide dialog aria-label\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}, [\n\t\t\t\t\t\t\tactions,\n\t\t\t\t\t\t]),\n\t\t\t\t\t]),\n\t\t\t\t],\n\t\t\t)\n\t\t}\n\n\t\t/**\n\t\t * If we have a single action only and didn't force a menu,\n\t\t * we render the action as a standalone button\n\t\t */\n\t\tif (actions.length === 1 && inlineActions.length === 1 && !this.forceMenu) {\n\t\t\treturn renderInlineAction(inlineActions[0])\n\t\t}\n\n\t\t// If we completely re-render the children\n\t\t// we need to focus the first action again\n\t\t// Mostly used when clicking a menu item\n\t\tthis.$nextTick(() => {\n\t\t\tif (this.opened && this.$refs.menu) {\n\t\t\t\tconst isAnyActive = this.$refs.menu.querySelector('li.active') || []\n\t\t\t\tif (isAnyActive.length === 0) {\n\t\t\t\t\tthis.focusFirstAction()\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\t/**\n\t\t * If we some inline actions to render, render them, then the menu\n\t\t */\n\t\tif (inlineActions.length > 0 && this.inline > 0) {\n\t\t\tconst renderedInlineActions = inlineActions.slice(0, this.inline)\n\t\t\t// Filter already rendered actions\n\t\t\tconst menuActions = actions.filter(action => !renderedInlineActions.includes(action))\n\t\t\treturn h('div',\n\t\t\t\t{\n\t\t\t\t\tclass: [\n\t\t\t\t\t\t'action-items',\n\t\t\t\t\t\t`action-item--${this.triggerBtnType}`,\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t// Render inline actions\n\t\t\t\t\t...renderedInlineActions.map(renderInlineAction),\n\t\t\t\t\t// render the rest within the popover menu\n\t\t\t\t\tmenuActions.length > 0\n\t\t\t\t\t\t? h('div',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t\t\t'action-item',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'action-item--open': this.opened,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\trenderActionsPopover(menuActions),\n\t\t\t\t\t\t\t])\n\t\t\t\t\t\t: null,\n\t\t\t\t])\n\t\t}\n\n\t\t/**\n\t\t * Otherwise, we render the actions in a popover\n\t\t */\n\t\treturn h('div',\n\t\t\t{\n\t\t\t\tclass: [\n\t\t\t\t\t'action-item action-item--default-popover',\n\t\t\t\t\t`action-item--${this.triggerBtnType}`,\n\t\t\t\t\t{\n\t\t\t\t\t\t'action-item--open': this.opened,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t[\n\t\t\t\trenderActionsPopover(actions),\n\t\t\t],\n\t\t)\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// Inline buttons\n.action-items {\n\tdisplay: flex;\n\talign-items: center;\n\n\t// Spacing between buttons\n\t& > button {\n\t\tmargin-right: math.div($icon-margin, 2);\n\t}\n}\n\n.action-item {\n\t--open-background-color: var(--color-background-hover, $action-background-hover);\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t&.action-item--primary {\n\t\t--open-background-color: var(--color-primary-element-hover);\n\t}\n\n\t&.action-item--secondary {\n\t\t--open-background-color: var(--color-primary-element-light-hover);\n\t}\n\n\t&.action-item--error {\n\t\t--open-background-color: var(--color-error-hover);\n\t}\n\n\t&.action-item--warning {\n\t\t--open-background-color: var(--color-warning-hover);\n\t}\n\n\t&.action-item--success {\n\t\t--open-background-color: var(--color-success-hover);\n\t}\n\n\t&.action-item--tertiary-no-background {\n\t\t--open-background-color: transparent;\n\t}\n\n\t&.action-item--open .action-item__menutoggle {\n\t\tbackground-color: var(--open-background-color);\n\t}\n\n\t&__menutoggle__icon {\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tobject-fit: contain;\n\t}\n}\n</style>\n\n<style lang=\"scss\">\n// We overwrote the popover base class, so we can style\n// the popover__inner for actions only.\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper {\n\tborder-radius: var(--border-radius-large);\n\toverflow:hidden;\n\n\t.v-popper__inner {\n\t\tborder-radius: var(--border-radius-large);\n\t\tpadding: 4px;\n\t\tmax-height: calc(50vh - 16px);\n\t\toverflow: auto;\n\t}\n}\n</style>\n"],"names":["focusableSelector","_sfc_main","Components_NcButton","DotsHorizontal","NcPopover","Vue","value","_l10n","GenRandomId","state","action","componentName","url","returnFocus","event","menuItem","focusableItem","focusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstSelectedIndex","button","h","actions","getActionName","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","popupRole","inlineActions","Vue__default","renderInlineAction","iconProp","icon","attrs","clickListener","text","ariaLabel","buttonText","title","propsToForward","nativeType","renderActionsPopover","triggerIcon","renderedInlineActions","menuActions"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import "../assets/NcActions-
|
|
2
|
-
import
|
|
3
|
-
import { N as
|
|
4
|
-
import { G as
|
|
5
|
-
import { r as L, o as M, a as w } from "./_l10n-
|
|
1
|
+
import "../assets/NcActions-vgT9ak04.css";
|
|
2
|
+
import $ from "../Components/NcButton.mjs";
|
|
3
|
+
import { N as B } from "./NcPopover-yyItaFC6.mjs";
|
|
4
|
+
import { G as O } from "./GenRandomId-VodkdWbp.mjs";
|
|
5
|
+
import { r as L, o as M, a as w } from "./_l10n-gZppkly8.mjs";
|
|
6
6
|
import _, { computed as E } from "vue";
|
|
7
7
|
import { D as P } from "./DotsHorizontal-NssXDZGM.mjs";
|
|
8
8
|
import { n as F } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
|
|
@@ -10,9 +10,9 @@ L(M);
|
|
|
10
10
|
const c = ".focusable", T = {
|
|
11
11
|
name: "NcActions",
|
|
12
12
|
components: {
|
|
13
|
-
NcButton:
|
|
13
|
+
NcButton: $,
|
|
14
14
|
DotsHorizontal: P,
|
|
15
|
-
NcPopover:
|
|
15
|
+
NcPopover: B
|
|
16
16
|
},
|
|
17
17
|
provide() {
|
|
18
18
|
return {
|
|
@@ -157,13 +157,14 @@ const c = ".focusable", T = {
|
|
|
157
157
|
"update:open",
|
|
158
158
|
"close",
|
|
159
159
|
"focus",
|
|
160
|
-
"blur"
|
|
160
|
+
"blur",
|
|
161
|
+
"click"
|
|
161
162
|
],
|
|
162
163
|
data() {
|
|
163
164
|
return {
|
|
164
165
|
opened: this.open,
|
|
165
166
|
focusIndex: 0,
|
|
166
|
-
randomId: `menu-${
|
|
167
|
+
randomId: `menu-${O()}`,
|
|
167
168
|
isSemanticMenu: !1,
|
|
168
169
|
isSemanticNavigation: !1,
|
|
169
170
|
isSemanticPopoverLike: !1
|
|
@@ -225,9 +226,9 @@ const c = ".focusable", T = {
|
|
|
225
226
|
return;
|
|
226
227
|
const n = e.target.closest("li");
|
|
227
228
|
if (n && this.$refs.menu.contains(n)) {
|
|
228
|
-
const
|
|
229
|
-
if (
|
|
230
|
-
const a = [...this.$refs.menu.querySelectorAll(c)].indexOf(
|
|
229
|
+
const i = n.querySelector(c);
|
|
230
|
+
if (i) {
|
|
231
|
+
const a = [...this.$refs.menu.querySelectorAll(c)].indexOf(i);
|
|
231
232
|
a > -1 && (this.focusIndex = a, this.focusAction());
|
|
232
233
|
}
|
|
233
234
|
}
|
|
@@ -264,7 +265,7 @@ const c = ".focusable", T = {
|
|
|
264
265
|
focusFirstAction(e) {
|
|
265
266
|
if (this.opened) {
|
|
266
267
|
this.preventIfEvent(e);
|
|
267
|
-
const n = [...this.$refs.menu.querySelectorAll(c)].findIndex((
|
|
268
|
+
const n = [...this.$refs.menu.querySelectorAll(c)].findIndex((i) => i.parentElement.getAttribute("aria-selected"));
|
|
268
269
|
this.focusIndex = n > -1 ? n : 0, this.focusAction();
|
|
269
270
|
}
|
|
270
271
|
},
|
|
@@ -279,6 +280,9 @@ const c = ".focusable", T = {
|
|
|
279
280
|
},
|
|
280
281
|
onBlur(e) {
|
|
281
282
|
this.$emit("blur", e);
|
|
283
|
+
},
|
|
284
|
+
onClick(e) {
|
|
285
|
+
this.$emit("click", e);
|
|
282
286
|
}
|
|
283
287
|
},
|
|
284
288
|
/**
|
|
@@ -290,16 +294,16 @@ const c = ".focusable", T = {
|
|
|
290
294
|
render(e) {
|
|
291
295
|
const n = (this.$slots.default || []).filter(
|
|
292
296
|
(t) => t?.componentOptions?.tag || t?.componentOptions?.Ctor?.extendOptions?.name
|
|
293
|
-
),
|
|
297
|
+
), i = (t) => t?.componentOptions?.Ctor?.extendOptions?.name ?? t?.componentOptions?.tag, h = ["NcActionButton", "NcActionButtonGroup", "NcActionCheckbox", "NcActionRadio"], a = ["NcActionInput", "NcActionTextEditable"], I = ["NcActionLink", "NcActionRouter"], l = n.some((t) => a.includes(i(t))), y = n.some((t) => h.includes(i(t))), v = n.some((t) => I.includes(i(t)));
|
|
294
298
|
this.isSemanticMenu = y && !l, this.isSemanticNavigation = v && !y && !l, this.isSemanticPopoverLike = !this.isSemanticMenu && !this.isSemanticNavigation;
|
|
295
299
|
const u = this.isSemanticMenu ? "menu" : l ? "dialog" : "true";
|
|
296
300
|
let s = n.filter(this.isValidSingleAction);
|
|
297
301
|
if (this.forceMenu && s.length > 0 && this.inline > 0 && (_.util.warn("Specifying forceMenu will ignore any inline actions rendering."), s = []), n.length === 0)
|
|
298
302
|
return;
|
|
299
303
|
const A = (t) => {
|
|
300
|
-
const
|
|
301
|
-
let
|
|
302
|
-
this.forceName ||
|
|
304
|
+
const o = t?.componentOptions?.propsData?.icon, p = t?.data?.scopedSlots?.icon()?.[0] ?? (this.isIconUrl(o) ? e("img", { class: "action-item__menutoggle__icon", attrs: { src: o, alt: "" } }) : e("span", { class: ["icon", o] })), x = t?.data?.attrs || {}, d = t?.componentOptions?.listeners?.click, m = t?.componentOptions?.children?.[0]?.text?.trim?.(), N = t?.componentOptions?.propsData?.ariaLabel || m, b = this.forceName ? m : "";
|
|
305
|
+
let f = t?.componentOptions?.propsData?.title;
|
|
306
|
+
this.forceName || f || (f = m);
|
|
303
307
|
const r = { ...t?.componentOptions?.propsData ?? {} }, S = ["submit", "reset"].includes(r.type) ? r.modelValue : "button";
|
|
304
308
|
return delete r.modelValue, delete r.type, e(
|
|
305
309
|
"NcButton",
|
|
@@ -312,7 +316,7 @@ const c = ".focusable", T = {
|
|
|
312
316
|
attrs: {
|
|
313
317
|
...x,
|
|
314
318
|
"aria-label": N,
|
|
315
|
-
title:
|
|
319
|
+
title: f
|
|
316
320
|
},
|
|
317
321
|
ref: t?.data?.ref,
|
|
318
322
|
props: {
|
|
@@ -332,8 +336,8 @@ const c = ".focusable", T = {
|
|
|
332
336
|
// If we have a click listener,
|
|
333
337
|
// we bind it to execute on click and forward the click event
|
|
334
338
|
...!!d && {
|
|
335
|
-
click: (
|
|
336
|
-
d && d(
|
|
339
|
+
click: (k) => {
|
|
340
|
+
d && d(k);
|
|
337
341
|
}
|
|
338
342
|
}
|
|
339
343
|
}
|
|
@@ -344,7 +348,7 @@ const c = ".focusable", T = {
|
|
|
344
348
|
]
|
|
345
349
|
);
|
|
346
350
|
}, g = (t) => {
|
|
347
|
-
const
|
|
351
|
+
const o = this.$slots.icon?.[0] || (this.defaultIcon ? e("span", { class: ["icon", this.defaultIcon] }) : e("DotsHorizontal", {
|
|
348
352
|
props: {
|
|
349
353
|
size: 20
|
|
350
354
|
}
|
|
@@ -400,10 +404,11 @@ const c = ".focusable", T = {
|
|
|
400
404
|
},
|
|
401
405
|
on: {
|
|
402
406
|
focus: this.onFocus,
|
|
403
|
-
blur: this.onBlur
|
|
407
|
+
blur: this.onBlur,
|
|
408
|
+
click: this.onClick
|
|
404
409
|
}
|
|
405
410
|
}, [
|
|
406
|
-
e("template", { slot: "icon" }, [
|
|
411
|
+
e("template", { slot: "icon" }, [o]),
|
|
407
412
|
this.menuName
|
|
408
413
|
]),
|
|
409
414
|
e("div", {
|
|
@@ -438,7 +443,7 @@ const c = ".focusable", T = {
|
|
|
438
443
|
if (this.$nextTick(() => {
|
|
439
444
|
this.opened && this.$refs.menu && (this.$refs.menu.querySelector("li.active") || []).length === 0 && this.focusFirstAction();
|
|
440
445
|
}), s.length > 0 && this.inline > 0) {
|
|
441
|
-
const t = s.slice(0, this.inline),
|
|
446
|
+
const t = s.slice(0, this.inline), o = n.filter((p) => !t.includes(p));
|
|
442
447
|
return e(
|
|
443
448
|
"div",
|
|
444
449
|
{
|
|
@@ -451,7 +456,7 @@ const c = ".focusable", T = {
|
|
|
451
456
|
// Render inline actions
|
|
452
457
|
...t.map(A),
|
|
453
458
|
// render the rest within the popover menu
|
|
454
|
-
|
|
459
|
+
o.length > 0 ? e(
|
|
455
460
|
"div",
|
|
456
461
|
{
|
|
457
462
|
class: [
|
|
@@ -462,7 +467,7 @@ const c = ".focusable", T = {
|
|
|
462
467
|
]
|
|
463
468
|
},
|
|
464
469
|
[
|
|
465
|
-
g(
|
|
470
|
+
g(o)
|
|
466
471
|
]
|
|
467
472
|
) : null
|
|
468
473
|
]
|
|
@@ -484,18 +489,18 @@ const c = ".focusable", T = {
|
|
|
484
489
|
]
|
|
485
490
|
);
|
|
486
491
|
}
|
|
487
|
-
}, D = null,
|
|
488
|
-
var
|
|
492
|
+
}, D = null, C = null;
|
|
493
|
+
var R = /* @__PURE__ */ F(
|
|
489
494
|
T,
|
|
490
495
|
D,
|
|
491
|
-
|
|
496
|
+
C,
|
|
492
497
|
!1,
|
|
493
498
|
null,
|
|
494
|
-
"
|
|
499
|
+
"aa98d7d0",
|
|
495
500
|
null,
|
|
496
501
|
null
|
|
497
502
|
);
|
|
498
|
-
const W =
|
|
503
|
+
const W = R.exports;
|
|
499
504
|
export {
|
|
500
505
|
W as N
|
|
501
506
|
};
|