@nextcloud/vue 8.0.0-beta.8 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/CHANGELOG.md +64 -2
  2. package/dist/Components/NcActionButton.cjs +22 -11
  3. package/dist/Components/NcActionButton.cjs.map +1 -1
  4. package/dist/Components/NcActionButton.mjs +24 -12
  5. package/dist/Components/NcActionButton.mjs.map +1 -1
  6. package/dist/Components/NcActionInput.cjs +23 -18
  7. package/dist/Components/NcActionInput.cjs.map +1 -1
  8. package/dist/Components/NcActionInput.mjs +20 -14
  9. package/dist/Components/NcActionInput.mjs.map +1 -1
  10. package/dist/Components/NcActionLink.cjs +7 -7
  11. package/dist/Components/NcActionLink.cjs.map +1 -1
  12. package/dist/Components/NcActionLink.mjs +4 -4
  13. package/dist/Components/NcActionLink.mjs.map +1 -1
  14. package/dist/Components/NcActionRouter.cjs +8 -8
  15. package/dist/Components/NcActionRouter.cjs.map +1 -1
  16. package/dist/Components/NcActionRouter.mjs +4 -4
  17. package/dist/Components/NcActionRouter.mjs.map +1 -1
  18. package/dist/Components/NcActionText.cjs +10 -10
  19. package/dist/Components/NcActionText.cjs.map +1 -1
  20. package/dist/Components/NcActionText.mjs +11 -11
  21. package/dist/Components/NcActionText.mjs.map +1 -1
  22. package/dist/Components/NcActionTextEditable.cjs +10 -10
  23. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  24. package/dist/Components/NcActionTextEditable.mjs +2 -2
  25. package/dist/Components/NcActions.cjs +64 -57
  26. package/dist/Components/NcActions.cjs.map +1 -1
  27. package/dist/Components/NcActions.mjs +76 -69
  28. package/dist/Components/NcActions.mjs.map +1 -1
  29. package/dist/Components/NcAppContent.cjs +19 -20
  30. package/dist/Components/NcAppContent.cjs.map +1 -1
  31. package/dist/Components/NcAppContent.mjs +8 -8
  32. package/dist/Components/NcAppContent.mjs.map +1 -1
  33. package/dist/Components/NcAppNavigation.cjs +58 -27
  34. package/dist/Components/NcAppNavigation.cjs.map +1 -1
  35. package/dist/Components/NcAppNavigation.mjs +67 -34
  36. package/dist/Components/NcAppNavigation.mjs.map +1 -1
  37. package/dist/Components/NcAppNavigationItem.cjs +167 -63
  38. package/dist/Components/NcAppNavigationItem.cjs.map +1 -1
  39. package/dist/Components/NcAppNavigationItem.mjs +142 -40
  40. package/dist/Components/NcAppNavigationItem.mjs.map +1 -1
  41. package/dist/Components/NcAppNavigationNew.cjs +6 -6
  42. package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
  43. package/dist/Components/NcAppNavigationNew.mjs +17 -17
  44. package/dist/Components/NcAppNavigationNew.mjs.map +1 -1
  45. package/dist/Components/NcAppNavigationNewItem.cjs +7 -7
  46. package/dist/Components/NcAppNavigationNewItem.cjs.map +1 -1
  47. package/dist/Components/NcAppNavigationNewItem.mjs +5 -5
  48. package/dist/Components/NcAppNavigationNewItem.mjs.map +1 -1
  49. package/dist/Components/NcAppNavigationSettings.cjs +46 -14
  50. package/dist/Components/NcAppNavigationSettings.cjs.map +1 -1
  51. package/dist/Components/NcAppNavigationSettings.mjs +48 -16
  52. package/dist/Components/NcAppNavigationSettings.mjs.map +1 -1
  53. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  54. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  55. package/dist/Components/NcAppSettingsDialog.cjs +87 -117
  56. package/dist/Components/NcAppSettingsDialog.cjs.map +1 -1
  57. package/dist/Components/NcAppSettingsDialog.mjs +95 -124
  58. package/dist/Components/NcAppSettingsDialog.mjs.map +1 -1
  59. package/dist/Components/NcAppSettingsSection.cjs +29 -10
  60. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  61. package/dist/Components/NcAppSettingsSection.mjs +29 -10
  62. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  63. package/dist/Components/NcAppSidebar.cjs +100 -34
  64. package/dist/Components/NcAppSidebar.cjs.map +1 -1
  65. package/dist/Components/NcAppSidebar.mjs +157 -93
  66. package/dist/Components/NcAppSidebar.mjs.map +1 -1
  67. package/dist/Components/NcAppSidebarTab.cjs +7 -7
  68. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  69. package/dist/Components/NcAppSidebarTab.mjs +4 -4
  70. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  71. package/dist/Components/NcAvatar.cjs +1 -1
  72. package/dist/Components/NcAvatar.mjs +1 -1
  73. package/dist/Components/NcBreadcrumb.cjs +10 -10
  74. package/dist/Components/NcBreadcrumb.cjs.map +1 -1
  75. package/dist/Components/NcBreadcrumb.mjs +1 -1
  76. package/dist/Components/NcBreadcrumbs.cjs +86 -54
  77. package/dist/Components/NcBreadcrumbs.cjs.map +1 -1
  78. package/dist/Components/NcBreadcrumbs.mjs +93 -62
  79. package/dist/Components/NcBreadcrumbs.mjs.map +1 -1
  80. package/dist/Components/NcButton.cjs +25 -25
  81. package/dist/Components/NcButton.cjs.map +1 -1
  82. package/dist/Components/NcButton.mjs +25 -25
  83. package/dist/Components/NcButton.mjs.map +1 -1
  84. package/dist/Components/NcCheckboxRadioSwitch.cjs +400 -54
  85. package/dist/Components/NcCheckboxRadioSwitch.cjs.map +1 -1
  86. package/dist/Components/NcCheckboxRadioSwitch.mjs +398 -58
  87. package/dist/Components/NcCheckboxRadioSwitch.mjs.map +1 -1
  88. package/dist/Components/NcColorPicker.cjs +18 -18
  89. package/dist/Components/NcColorPicker.cjs.map +1 -1
  90. package/dist/Components/NcColorPicker.mjs +17 -17
  91. package/dist/Components/NcColorPicker.mjs.map +1 -1
  92. package/dist/Components/NcDashboardWidget.cjs +30 -30
  93. package/dist/Components/NcDashboardWidget.cjs.map +1 -1
  94. package/dist/Components/NcDashboardWidget.mjs +3 -3
  95. package/dist/Components/NcDashboardWidgetItem.cjs +11 -11
  96. package/dist/Components/NcDashboardWidgetItem.cjs.map +1 -1
  97. package/dist/Components/NcDashboardWidgetItem.mjs +9 -9
  98. package/dist/Components/NcDashboardWidgetItem.mjs.map +1 -1
  99. package/dist/Components/NcDateTime.cjs +1 -1
  100. package/dist/Components/NcDateTime.mjs +1 -1
  101. package/dist/Components/NcDateTimePicker.cjs +109 -44
  102. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  103. package/dist/Components/NcDateTimePicker.mjs +115 -52
  104. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  105. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  106. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  107. package/dist/Components/NcDialog.cjs +171 -0
  108. package/dist/Components/NcDialog.cjs.map +1 -0
  109. package/dist/Components/NcDialog.mjs +177 -0
  110. package/dist/Components/NcDialog.mjs.map +1 -0
  111. package/dist/Components/NcDialogButton.cjs +69 -0
  112. package/dist/Components/NcDialogButton.cjs.map +1 -0
  113. package/dist/Components/NcDialogButton.mjs +74 -0
  114. package/dist/Components/NcDialogButton.mjs.map +1 -0
  115. package/dist/Components/NcEmojiPicker.cjs +1 -1
  116. package/dist/Components/NcEmojiPicker.mjs +1 -1
  117. package/dist/Components/NcEmptyContent.cjs +14 -14
  118. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  119. package/dist/Components/NcEmptyContent.mjs +7 -7
  120. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  121. package/dist/Components/NcIconSvgWrapper.cjs +29 -14
  122. package/dist/Components/NcIconSvgWrapper.cjs.map +1 -1
  123. package/dist/Components/NcIconSvgWrapper.mjs +32 -17
  124. package/dist/Components/NcIconSvgWrapper.mjs.map +1 -1
  125. package/dist/Components/NcInputField.cjs +16 -16
  126. package/dist/Components/NcInputField.cjs.map +1 -1
  127. package/dist/Components/NcInputField.mjs +5 -5
  128. package/dist/Components/NcInputField.mjs.map +1 -1
  129. package/dist/Components/NcListItem.cjs +3 -3
  130. package/dist/Components/NcListItem.cjs.map +1 -1
  131. package/dist/Components/NcListItem.mjs +3 -3
  132. package/dist/Components/NcListItem.mjs.map +1 -1
  133. package/dist/Components/NcListItemIcon.cjs +20 -12
  134. package/dist/Components/NcListItemIcon.cjs.map +1 -1
  135. package/dist/Components/NcListItemIcon.mjs +21 -13
  136. package/dist/Components/NcListItemIcon.mjs.map +1 -1
  137. package/dist/Components/NcModal.cjs +167 -72
  138. package/dist/Components/NcModal.cjs.map +1 -1
  139. package/dist/Components/NcModal.mjs +171 -79
  140. package/dist/Components/NcModal.mjs.map +1 -1
  141. package/dist/Components/NcNoteCard.cjs +147 -19
  142. package/dist/Components/NcNoteCard.cjs.map +1 -1
  143. package/dist/Components/NcNoteCard.mjs +148 -23
  144. package/dist/Components/NcNoteCard.mjs.map +1 -1
  145. package/dist/Components/NcPasswordField.cjs +114 -39
  146. package/dist/Components/NcPasswordField.cjs.map +1 -1
  147. package/dist/Components/NcPasswordField.mjs +125 -52
  148. package/dist/Components/NcPasswordField.mjs.map +1 -1
  149. package/dist/Components/NcRelatedResourcesPanel.cjs +70 -37
  150. package/dist/Components/NcRelatedResourcesPanel.cjs.map +1 -1
  151. package/dist/Components/NcRelatedResourcesPanel.mjs +60 -27
  152. package/dist/Components/NcRelatedResourcesPanel.mjs.map +1 -1
  153. package/dist/Components/NcRichContenteditable.cjs +22 -18
  154. package/dist/Components/NcRichContenteditable.cjs.map +1 -1
  155. package/dist/Components/NcRichContenteditable.mjs +32 -28
  156. package/dist/Components/NcRichContenteditable.mjs.map +1 -1
  157. package/dist/Components/NcRichText.cjs +1 -1
  158. package/dist/Components/NcRichText.mjs +3 -3
  159. package/dist/Components/NcSelect.cjs +82 -54
  160. package/dist/Components/NcSelect.cjs.map +1 -1
  161. package/dist/Components/NcSelect.mjs +77 -47
  162. package/dist/Components/NcSelect.mjs.map +1 -1
  163. package/dist/Components/NcSelectTags.cjs +2 -2
  164. package/dist/Components/NcSelectTags.cjs.map +1 -1
  165. package/dist/Components/NcSelectTags.mjs +4 -4
  166. package/dist/Components/NcSelectTags.mjs.map +1 -1
  167. package/dist/Components/NcSettingsInputText.cjs +1 -1
  168. package/dist/Components/NcSettingsInputText.mjs +1 -1
  169. package/dist/Components/NcSettingsSection.cjs +46 -14
  170. package/dist/Components/NcSettingsSection.cjs.map +1 -1
  171. package/dist/Components/NcSettingsSection.mjs +44 -12
  172. package/dist/Components/NcSettingsSection.mjs.map +1 -1
  173. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  174. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  175. package/dist/Components/NcTextArea.cjs +167 -0
  176. package/dist/Components/NcTextArea.cjs.map +1 -0
  177. package/dist/Components/NcTextArea.mjs +172 -0
  178. package/dist/Components/NcTextArea.mjs.map +1 -0
  179. package/dist/Components/NcTextField.cjs +79 -23
  180. package/dist/Components/NcTextField.cjs.map +1 -1
  181. package/dist/Components/NcTextField.mjs +82 -27
  182. package/dist/Components/NcTextField.mjs.map +1 -1
  183. package/dist/Components/NcTimezonePicker.cjs +26 -19
  184. package/dist/Components/NcTimezonePicker.cjs.map +1 -1
  185. package/dist/Components/NcTimezonePicker.mjs +31 -23
  186. package/dist/Components/NcTimezonePicker.mjs.map +1 -1
  187. package/dist/Components/NcUserBubble.cjs +24 -20
  188. package/dist/Components/NcUserBubble.cjs.map +1 -1
  189. package/dist/Components/NcUserBubble.mjs +25 -20
  190. package/dist/Components/NcUserBubble.mjs.map +1 -1
  191. package/dist/assets/{NcAppNavigationToggle-2cc5b864.css → NcAppNavigationToggle-9e170630.css} +3 -2
  192. package/dist/assets/{NcInputConfirmCancel-2ba60a52.css → NcInputConfirmCancel-45d1d76b.css} +7 -7
  193. package/dist/assets/{index-5072b6ee.css → index-05760fea.css} +16 -11
  194. package/dist/assets/{index-30e099f7.css → index-0ac09203.css} +3 -3
  195. package/dist/assets/{index-0ab8e182.css → index-0e9b11c7.css} +27 -22
  196. package/dist/assets/{index-1151d229.css → index-1f25a3c0.css} +3 -3
  197. package/dist/assets/{index-5eff69c7.css → index-2e5e3b55.css} +32 -30
  198. package/dist/assets/{index-03ec5f40.css → index-400b48a6.css} +7 -7
  199. package/dist/assets/{index-ed4adf1d.css → index-4271da53.css} +18 -17
  200. package/dist/assets/{index-33da80f0.css → index-4611417f.css} +8 -9
  201. package/dist/assets/{index-01e5adf4.css → index-55600948.css} +11 -11
  202. package/dist/assets/{index-c7905a53.css → index-57b305d3.css} +3 -3
  203. package/dist/assets/{index-de0326c7.css → index-5ee8a575.css} +69 -78
  204. package/dist/assets/index-6899d75b.css +150 -0
  205. package/dist/assets/{index-9354264c.css → index-6f721577.css} +16 -16
  206. package/dist/assets/{index-1beccc92.css → index-750c02cc.css} +28 -10
  207. package/dist/assets/{index-0557f12a.css → index-77a548be.css} +4 -4
  208. package/dist/assets/{index-fbdeb5ab.css → index-7d211db9.css} +11 -11
  209. package/dist/assets/{index-becfbea7.css → index-802d2118.css} +28 -23
  210. package/dist/assets/{index-a2d55f92.css → index-9176105d.css} +41 -41
  211. package/dist/assets/index-93bc89ef.css +197 -0
  212. package/dist/assets/{index-50b0766d.css → index-a0532427.css} +55 -70
  213. package/dist/assets/{index-6405cd50.css → index-ab715d82.css} +4 -4
  214. package/dist/assets/index-abb90c97.css +164 -0
  215. package/dist/assets/{index-23e64bbb.css → index-c221fe05.css} +9 -9
  216. package/dist/assets/{index-c6f0da2e.css → index-c239a2fc.css} +14 -8
  217. package/dist/assets/{index-fec4bb7b.css → index-d3702c91.css} +22 -17
  218. package/dist/assets/{index-194e9415.css → index-d5716ef0.css} +74 -59
  219. package/dist/assets/{index-4a775ba1.css → index-d812ed9e.css} +43 -43
  220. package/dist/assets/{index-793eae6b.css → index-d9ae9479.css} +6 -6
  221. package/dist/assets/{index-1cf8eeb4.css → index-db5a8b1c.css} +26 -33
  222. package/dist/assets/index-dc612aa3.css +112 -0
  223. package/dist/assets/{index-294382c8.css → index-e1a7aa6f.css} +43 -38
  224. package/dist/assets/{index-376d2dec.css → index-e7c55791.css} +67 -67
  225. package/dist/assets/{index-165fce0e.css → index-e7eadba7.css} +13 -13
  226. package/dist/assets/{index-0adc989c.css → index-ebbb7829.css} +9 -13
  227. package/dist/assets/{referencePickerModal-0acecb5e.css → referencePickerModal-3a127978.css} +55 -55
  228. package/dist/chunks/AlertCircleOutline-7085c10f.cjs +35 -0
  229. package/dist/chunks/AlertCircleOutline-7085c10f.cjs.map +1 -0
  230. package/dist/chunks/AlertCircleOutline-b73838e0.mjs +37 -0
  231. package/dist/chunks/AlertCircleOutline-b73838e0.mjs.map +1 -0
  232. package/dist/chunks/ArrowLeft-2f9b9323.cjs +35 -0
  233. package/dist/chunks/ArrowLeft-2f9b9323.cjs.map +1 -0
  234. package/dist/chunks/ArrowLeft-3779ba88.mjs +37 -0
  235. package/dist/chunks/ArrowLeft-3779ba88.mjs.map +1 -0
  236. package/dist/chunks/ArrowRight-7315f6c1.cjs +35 -0
  237. package/dist/chunks/ArrowRight-7315f6c1.cjs.map +1 -0
  238. package/dist/chunks/ArrowRight-74a9fcb2.mjs +37 -0
  239. package/dist/chunks/ArrowRight-74a9fcb2.mjs.map +1 -0
  240. package/dist/chunks/Check-2ea0a88a.mjs +37 -0
  241. package/dist/chunks/Check-2ea0a88a.mjs.map +1 -0
  242. package/dist/chunks/Check-be8cd6af.cjs +35 -0
  243. package/dist/chunks/Check-be8cd6af.cjs.map +1 -0
  244. package/dist/chunks/ChevronDown-a72d365d.mjs +37 -0
  245. package/dist/chunks/ChevronDown-a72d365d.mjs.map +1 -0
  246. package/dist/chunks/ChevronDown-dc32e51d.cjs +35 -0
  247. package/dist/chunks/ChevronDown-dc32e51d.cjs.map +1 -0
  248. package/dist/chunks/ChevronRight-1a6a6cf2.mjs +37 -0
  249. package/dist/chunks/ChevronRight-1a6a6cf2.mjs.map +1 -0
  250. package/dist/chunks/ChevronRight-a4c1e0d3.cjs +35 -0
  251. package/dist/chunks/ChevronRight-a4c1e0d3.cjs.map +1 -0
  252. package/dist/chunks/Close-271f72e2.mjs +37 -0
  253. package/dist/chunks/Close-271f72e2.mjs.map +1 -0
  254. package/dist/chunks/Close-98cb6f12.cjs +35 -0
  255. package/dist/chunks/Close-98cb6f12.cjs.map +1 -0
  256. package/dist/chunks/DotsHorizontal-0ee7d901.mjs +37 -0
  257. package/dist/chunks/DotsHorizontal-0ee7d901.mjs.map +1 -0
  258. package/dist/chunks/DotsHorizontal-ac96129a.cjs +35 -0
  259. package/dist/chunks/DotsHorizontal-ac96129a.cjs.map +1 -0
  260. package/dist/chunks/NcAppNavigationToggle-364eb664.cjs +113 -0
  261. package/dist/chunks/NcAppNavigationToggle-364eb664.cjs.map +1 -0
  262. package/dist/chunks/NcAppNavigationToggle-cd2ef112.mjs +118 -0
  263. package/dist/chunks/NcAppNavigationToggle-cd2ef112.mjs.map +1 -0
  264. package/dist/chunks/{NcInputConfirmCancel-f881168d.mjs → NcInputConfirmCancel-304f0b74.mjs} +22 -15
  265. package/dist/chunks/NcInputConfirmCancel-304f0b74.mjs.map +1 -0
  266. package/dist/chunks/NcInputConfirmCancel-c873bb9b.cjs +90 -0
  267. package/dist/chunks/NcInputConfirmCancel-c873bb9b.cjs.map +1 -0
  268. package/dist/chunks/{NcRichText-1c3d2654.mjs → NcRichText-25edeb8e.mjs} +9 -9
  269. package/dist/chunks/{NcRichText-d385dc10.cjs.map → NcRichText-25edeb8e.mjs.map} +1 -1
  270. package/dist/chunks/{NcRichText-d385dc10.cjs → NcRichText-dcb4fb97.cjs} +2 -2
  271. package/dist/chunks/{NcRichText-1c3d2654.mjs.map → NcRichText-dcb4fb97.cjs.map} +1 -1
  272. package/dist/chunks/{NcSettingsSelectGroup-47d9c113.cjs → NcSettingsSelectGroup-d639533d.cjs} +1 -1
  273. package/dist/chunks/{NcSettingsSelectGroup-47d9c113.cjs.map → NcSettingsSelectGroup-d639533d.cjs.map} +1 -1
  274. package/dist/chunks/{NcSettingsSelectGroup-0f4a0f94.mjs → NcSettingsSelectGroup-fd91d31a.mjs} +2 -2
  275. package/dist/chunks/{NcSettingsSelectGroup-0f4a0f94.mjs.map → NcSettingsSelectGroup-fd91d31a.mjs.map} +1 -1
  276. package/dist/chunks/{ScopeComponent-97a014a1.mjs → ScopeComponent-5b9e60d8.mjs} +3 -3
  277. package/dist/chunks/{ScopeComponent-97a014a1.mjs.map → ScopeComponent-5b9e60d8.mjs.map} +1 -1
  278. package/dist/chunks/{ScopeComponent-1c75ec38.cjs → ScopeComponent-dfa5ec75.cjs} +1 -1
  279. package/dist/chunks/{ScopeComponent-1c75ec38.cjs.map → ScopeComponent-dfa5ec75.cjs.map} +1 -1
  280. package/dist/chunks/{actionText-b0bd6eb7.cjs → actionText-54bc24a6.cjs} +1 -1
  281. package/dist/chunks/{actionText-9f5c55bd.mjs.map → actionText-54bc24a6.cjs.map} +1 -1
  282. package/dist/chunks/{actionText-9f5c55bd.mjs → actionText-a64be267.mjs} +1 -1
  283. package/dist/chunks/{actionText-b0bd6eb7.cjs.map → actionText-a64be267.mjs.map} +1 -1
  284. package/dist/chunks/{index-2a5b8ace.cjs → index-343ecbe5.cjs} +98 -55
  285. package/dist/chunks/index-343ecbe5.cjs.map +1 -0
  286. package/dist/chunks/{index-6c221fa0.mjs → index-a01ff595.mjs} +143 -100
  287. package/dist/chunks/index-a01ff595.mjs.map +1 -0
  288. package/dist/chunks/{l10n-4326316a.cjs → l10n-9321b50d.cjs} +1 -1
  289. package/dist/chunks/{l10n-4326316a.cjs.map → l10n-9321b50d.cjs.map} +1 -1
  290. package/dist/chunks/l10n-9f3afaf5.cjs +29 -0
  291. package/dist/chunks/l10n-9f3afaf5.cjs.map +1 -0
  292. package/dist/chunks/l10n-b6d21146.mjs +31 -0
  293. package/dist/chunks/l10n-b6d21146.mjs.map +1 -0
  294. package/dist/chunks/{l10n-c5f5f001.mjs → l10n-bef4ea85.mjs} +1 -1
  295. package/dist/chunks/{l10n-c5f5f001.mjs.map → l10n-bef4ea85.mjs.map} +1 -1
  296. package/dist/chunks/{referencePickerModal-0fde503d.mjs → referencePickerModal-58498cac.mjs} +157 -125
  297. package/dist/chunks/referencePickerModal-58498cac.mjs.map +1 -0
  298. package/dist/chunks/{referencePickerModal-9b4ff88d.cjs → referencePickerModal-a739a17b.cjs} +145 -112
  299. package/dist/chunks/referencePickerModal-a739a17b.cjs.map +1 -0
  300. package/dist/index.cjs +105 -103
  301. package/dist/index.cjs.map +1 -1
  302. package/dist/index.mjs +138 -133
  303. package/dist/index.mjs.map +1 -1
  304. package/dist/vendor.LICENSE.txt +5 -1
  305. package/package.json +8 -5
  306. package/dist/assets/index-7768d5e5.css +0 -148
  307. package/dist/assets/index-d646553d.css +0 -41
  308. package/dist/chunks/NcAppNavigationToggle-960658a0.cjs +0 -49
  309. package/dist/chunks/NcAppNavigationToggle-960658a0.cjs.map +0 -1
  310. package/dist/chunks/NcAppNavigationToggle-d868f651.mjs +0 -55
  311. package/dist/chunks/NcAppNavigationToggle-d868f651.mjs.map +0 -1
  312. package/dist/chunks/NcInputConfirmCancel-0c4bee9a.cjs +0 -83
  313. package/dist/chunks/NcInputConfirmCancel-0c4bee9a.cjs.map +0 -1
  314. package/dist/chunks/NcInputConfirmCancel-f881168d.mjs.map +0 -1
  315. package/dist/chunks/index-2a5b8ace.cjs.map +0 -1
  316. package/dist/chunks/index-6c221fa0.mjs.map +0 -1
  317. package/dist/chunks/l10n-27a75c40.mjs +0 -31
  318. package/dist/chunks/l10n-27a75c40.mjs.map +0 -1
  319. package/dist/chunks/l10n-903083c4.cjs +0 -29
  320. package/dist/chunks/l10n-903083c4.cjs.map +0 -1
  321. package/dist/chunks/referencePickerModal-0fde503d.mjs.map +0 -1
  322. package/dist/chunks/referencePickerModal-9b4ff88d.cjs.map +0 -1
@@ -1,17 +1,17 @@
1
- import "../assets/index-01e5adf4.css";
2
- import H from "./NcButton.mjs";
3
- import P from "./NcPopover.mjs";
4
- import { G as T } from "../chunks/GenRandomId-cb9ccebe.mjs";
5
- import { t as z } from "../chunks/l10n-27a75c40.mjs";
6
- import R from "vue";
7
- import K from "vue-material-design-icons/DotsHorizontal.vue";
8
- import { n as V } from "../chunks/_plugin-vue2_normalizer-71e2aa87.mjs";
9
- const g = ".focusable", G = {
1
+ import "../assets/index-55600948.css";
2
+ import P from "./NcButton.mjs";
3
+ import R from "./NcPopover.mjs";
4
+ import { G as z } from "../chunks/GenRandomId-cb9ccebe.mjs";
5
+ import { t as K } from "../chunks/l10n-b6d21146.mjs";
6
+ import V from "vue";
7
+ import { D as G } from "../chunks/DotsHorizontal-0ee7d901.mjs";
8
+ import { n as j } from "../chunks/_plugin-vue2_normalizer-71e2aa87.mjs";
9
+ const a = ".focusable", U = {
10
10
  name: "NcActions",
11
11
  components: {
12
- NcButton: H,
13
- DotsHorizontal: K,
14
- NcPopover: P
12
+ NcButton: P,
13
+ DotsHorizontal: G,
14
+ NcPopover: R
15
15
  },
16
16
  props: {
17
17
  /**
@@ -89,7 +89,7 @@ const g = ".focusable", G = {
89
89
  */
90
90
  ariaLabel: {
91
91
  type: String,
92
- default: z("Actions")
92
+ default: K("Actions")
93
93
  },
94
94
  /**
95
95
  * aria-hidden attribute for the icon slot
@@ -146,7 +146,7 @@ const g = ".focusable", G = {
146
146
  return {
147
147
  opened: this.open,
148
148
  focusIndex: 0,
149
- randomId: `menu-${T()}`
149
+ randomId: `menu-${z()}`
150
150
  };
151
151
  },
152
152
  computed: {
@@ -169,8 +169,8 @@ const g = ".focusable", G = {
169
169
  * @return {boolean}
170
170
  */
171
171
  isValidSingleAction(e) {
172
- var l, p, o, a, d;
173
- const s = (d = (o = (p = (l = e == null ? void 0 : e.componentOptions) == null ? void 0 : l.Ctor) == null ? void 0 : p.extendOptions) == null ? void 0 : o.name) != null ? d : (a = e == null ? void 0 : e.componentOptions) == null ? void 0 : a.tag;
172
+ var u, p, o, d, f;
173
+ const s = (f = (o = (p = (u = e == null ? void 0 : e.componentOptions) == null ? void 0 : u.Ctor) == null ? void 0 : p.extendOptions) == null ? void 0 : o.name) != null ? f : (d = e == null ? void 0 : e.componentOptions) == null ? void 0 : d.tag;
174
174
  return ["NcActionButton", "NcActionLink", "NcActionRouter"].includes(s);
175
175
  },
176
176
  // MENU STATE MANAGEMENT
@@ -195,9 +195,9 @@ const g = ".focusable", G = {
195
195
  return;
196
196
  const s = e.target.closest("li");
197
197
  if (s) {
198
- const l = s.querySelector(g);
199
- if (l) {
200
- const o = [...this.$refs.menu.querySelectorAll(g)].indexOf(l);
198
+ const u = s.querySelector(a);
199
+ if (u) {
200
+ const o = [...this.$refs.menu.querySelectorAll(a)].indexOf(u);
201
201
  o > -1 && (this.focusIndex = o, this.focusAction());
202
202
  }
203
203
  }
@@ -215,7 +215,7 @@ const g = ".focusable", G = {
215
215
  e && e.classList.remove("active");
216
216
  },
217
217
  focusAction() {
218
- const e = this.$refs.menu.querySelectorAll(g)[this.focusIndex];
218
+ const e = this.$refs.menu.querySelectorAll(a)[this.focusIndex];
219
219
  if (e) {
220
220
  this.removeCurrentActive();
221
221
  const s = e.closest("li.action");
@@ -227,15 +227,19 @@ const g = ".focusable", G = {
227
227
  },
228
228
  focusNextAction(e) {
229
229
  if (this.opened) {
230
- const s = this.$refs.menu.querySelectorAll(g).length - 1;
230
+ const s = this.$refs.menu.querySelectorAll(a).length - 1;
231
231
  this.focusIndex === s ? this.closeMenu() : (this.preventIfEvent(e), this.focusIndex = this.focusIndex + 1), this.focusAction();
232
232
  }
233
233
  },
234
234
  focusFirstAction(e) {
235
- this.opened && (this.preventIfEvent(e), this.focusIndex = 0, this.focusAction());
235
+ if (this.opened) {
236
+ this.preventIfEvent(e);
237
+ const s = [...this.$refs.menu.querySelectorAll(a)].findIndex((u) => u.parentElement.getAttribute("aria-selected"));
238
+ this.focusIndex = s > -1 ? s : 0, this.focusAction();
239
+ }
236
240
  },
237
241
  focusLastAction(e) {
238
- this.opened && (this.preventIfEvent(e), this.focusIndex = this.$refs.menu.querySelectorAll(g).length - 1, this.focusAction());
242
+ this.opened && (this.preventIfEvent(e), this.focusIndex = this.$refs.menu.querySelectorAll(a).length - 1, this.focusAction());
239
243
  },
240
244
  preventIfEvent(e) {
241
245
  e && (e.preventDefault(), e.stopPropagation());
@@ -256,64 +260,66 @@ const g = ".focusable", G = {
256
260
  render(e) {
257
261
  const s = (this.$slots.default || []).filter(
258
262
  (t) => {
259
- var r, n, i, u;
260
- return ((r = t == null ? void 0 : t.componentOptions) == null ? void 0 : r.tag) || ((u = (i = (n = t == null ? void 0 : t.componentOptions) == null ? void 0 : n.Ctor) == null ? void 0 : i.extendOptions) == null ? void 0 : u.name);
263
+ var l, n, i, r;
264
+ return ((l = t == null ? void 0 : t.componentOptions) == null ? void 0 : l.tag) || ((r = (i = (n = t == null ? void 0 : t.componentOptions) == null ? void 0 : n.Ctor) == null ? void 0 : i.extendOptions) == null ? void 0 : r.name);
261
265
  }
262
- ), l = (t) => {
263
- var n, i, u, f, c, m, h, y;
264
- return ((c = (u = (i = (n = t == null ? void 0 : t.componentOptions) == null ? void 0 : n.Ctor) == null ? void 0 : i.extendOptions) == null ? void 0 : u.name) != null ? c : (f = t == null ? void 0 : t.componentOptions) == null ? void 0 : f.tag) === "NcActionLink" && ((y = (h = (m = t == null ? void 0 : t.componentOptions) == null ? void 0 : m.propsData) == null ? void 0 : h.href) == null ? void 0 : y.startsWith(window.location.origin));
265
- }, p = s.every(l);
266
+ ), u = (t) => {
267
+ var i, r, g, m, c, h, y;
268
+ const l = (c = (g = (r = (i = t == null ? void 0 : t.componentOptions) == null ? void 0 : i.Ctor) == null ? void 0 : r.extendOptions) == null ? void 0 : g.name) != null ? c : (m = t == null ? void 0 : t.componentOptions) == null ? void 0 : m.tag, n = (y = (h = t == null ? void 0 : t.componentOptions) == null ? void 0 : h.propsData) == null ? void 0 : y.href;
269
+ return l === "NcActionLink" && !(n != null && n.startsWith("#")) && new URL(n, window.location.origin).origin === window.location.origin;
270
+ }, p = s.every(u);
266
271
  let o = s.filter(this.isValidSingleAction);
267
- if (this.forceMenu && o.length > 0 && this.inline > 0 && (R.util.warn("Specifying forceMenu will ignore any inline actions rendering."), o = []), s.length === 0)
272
+ if (this.forceMenu && o.length > 0 && this.inline > 0 && (V.util.warn("Specifying forceMenu will ignore any inline actions rendering."), o = []), s.length === 0)
268
273
  return;
269
- const a = (t) => {
270
- var m, h, y, b, x, _, v, I, N, B, A, O, $, S, k, C, L, M, w, E, F, D;
271
- const r = ((y = (h = (m = t == null ? void 0 : t.data) == null ? void 0 : m.scopedSlots) == null ? void 0 : h.icon()) == null ? void 0 : y[0]) || e("span", { class: ["icon", (x = (b = t == null ? void 0 : t.componentOptions) == null ? void 0 : b.propsData) == null ? void 0 : x.icon] }), n = (v = (_ = t == null ? void 0 : t.componentOptions) == null ? void 0 : _.listeners) == null ? void 0 : v.click, i = (O = (A = (B = (N = (I = t == null ? void 0 : t.componentOptions) == null ? void 0 : I.children) == null ? void 0 : N[0]) == null ? void 0 : B.text) == null ? void 0 : A.trim) == null ? void 0 : O.call(A), u = ((S = ($ = t == null ? void 0 : t.componentOptions) == null ? void 0 : $.propsData) == null ? void 0 : S.ariaLabel) || i, f = this.forceName ? i : "";
272
- let c = (C = (k = t == null ? void 0 : t.componentOptions) == null ? void 0 : k.propsData) == null ? void 0 : C.title;
273
- return this.forceName || c || (c = i), e(
274
+ const d = (t) => {
275
+ var h, y, x, b, v, I, _, N, $, O, B, A, S, k, w, L, C, E, M, F, D, q, T;
276
+ const l = ((x = (y = (h = t == null ? void 0 : t.data) == null ? void 0 : h.scopedSlots) == null ? void 0 : y.icon()) == null ? void 0 : x[0]) || e("span", { class: ["icon", (v = (b = t == null ? void 0 : t.componentOptions) == null ? void 0 : b.propsData) == null ? void 0 : v.icon] }), n = ((I = t == null ? void 0 : t.data) == null ? void 0 : I.attrs) || {}, i = (N = (_ = t == null ? void 0 : t.componentOptions) == null ? void 0 : _.listeners) == null ? void 0 : N.click, r = (S = (A = (B = (O = ($ = t == null ? void 0 : t.componentOptions) == null ? void 0 : $.children) == null ? void 0 : O[0]) == null ? void 0 : B.text) == null ? void 0 : A.trim) == null ? void 0 : S.call(A), g = ((w = (k = t == null ? void 0 : t.componentOptions) == null ? void 0 : k.propsData) == null ? void 0 : w.ariaLabel) || r, m = this.forceName ? r : "";
277
+ let c = (C = (L = t == null ? void 0 : t.componentOptions) == null ? void 0 : L.propsData) == null ? void 0 : C.title;
278
+ return this.forceName || c || (c = r), e(
274
279
  "NcButton",
275
280
  {
276
281
  class: [
277
282
  "action-item action-item--single",
278
- (L = t == null ? void 0 : t.data) == null ? void 0 : L.staticClass,
283
+ (E = t == null ? void 0 : t.data) == null ? void 0 : E.staticClass,
279
284
  (M = t == null ? void 0 : t.data) == null ? void 0 : M.class
280
285
  ],
281
286
  attrs: {
282
- "aria-label": u,
287
+ ...n,
288
+ "aria-label": g,
283
289
  title: c
284
290
  },
285
- ref: (w = t == null ? void 0 : t.data) == null ? void 0 : w.ref,
291
+ ref: (F = t == null ? void 0 : t.data) == null ? void 0 : F.ref,
286
292
  props: {
287
293
  // If it has a menuName, we use a secondary button
288
- type: this.type || (f ? "secondary" : "tertiary"),
289
- disabled: this.disabled || ((F = (E = t == null ? void 0 : t.componentOptions) == null ? void 0 : E.propsData) == null ? void 0 : F.disabled),
294
+ type: this.type || (m ? "secondary" : "tertiary"),
295
+ disabled: this.disabled || ((q = (D = t == null ? void 0 : t.componentOptions) == null ? void 0 : D.propsData) == null ? void 0 : q.disabled),
290
296
  ariaHidden: this.ariaHidden,
291
- ...(D = t == null ? void 0 : t.componentOptions) == null ? void 0 : D.propsData
297
+ ...(T = t == null ? void 0 : t.componentOptions) == null ? void 0 : T.propsData
292
298
  },
293
299
  on: {
294
300
  focus: this.onFocus,
295
301
  blur: this.onBlur,
296
302
  // If we have a click listener,
297
303
  // we bind it to execute on click and forward the click event
298
- ...!!n && {
299
- click: (q) => {
300
- n && n(q);
304
+ ...!!i && {
305
+ click: (H) => {
306
+ i && i(H);
301
307
  }
302
308
  }
303
309
  }
304
310
  },
305
311
  [
306
- e("template", { slot: "icon" }, [r]),
307
- f
312
+ e("template", { slot: "icon" }, [l]),
313
+ m
308
314
  ]
309
315
  );
310
- }, d = (t) => {
311
- var n, i;
312
- const r = ((n = this.$slots.icon) == null ? void 0 : n[0]) || (this.defaultIcon ? e("span", { class: ["icon", this.defaultIcon] }) : e("DotsHorizontal", {
316
+ }, f = (t) => {
317
+ var i, r;
318
+ const l = ((i = this.$slots.icon) == null ? void 0 : i[0]) || (this.defaultIcon ? e("span", { class: ["icon", this.defaultIcon] }) : e("DotsHorizontal", {
313
319
  props: {
314
320
  size: 20
315
321
  }
316
- }));
322
+ })), n = () => p || this.opened ? this.opened.toString() : null;
317
323
  return e(
318
324
  "NcPopover",
319
325
  {
@@ -326,7 +332,7 @@ const g = ".focusable", G = {
326
332
  boundary: this.boundariesElement,
327
333
  container: this.container,
328
334
  popoverBaseClass: "action-item__popper",
329
- setReturnFocus: (i = this.$refs.menuButton) == null ? void 0 : i.$el
335
+ setReturnFocus: (r = this.$refs.menuButton) == null ? void 0 : r.$el
330
336
  },
331
337
  // For some reason the popover component
332
338
  // does not react to props given under the 'props' key,
@@ -338,8 +344,7 @@ const g = ".focusable", G = {
338
344
  placement: this.placement,
339
345
  boundary: this.boundariesElement,
340
346
  container: this.container,
341
- ...this.manualOpen && { triggers: [] },
342
- popoverBaseClass: "action-item__popper"
347
+ ...this.manualOpen && { triggers: [] }
343
348
  },
344
349
  on: {
345
350
  show: this.openMenu,
@@ -361,14 +366,14 @@ const g = ".focusable", G = {
361
366
  "aria-haspopup": p ? null : "menu",
362
367
  "aria-label": this.menuName ? null : this.ariaLabel,
363
368
  "aria-controls": this.opened ? this.randomId : null,
364
- "aria-expanded": this.opened.toString()
369
+ "aria-expanded": n()
365
370
  },
366
371
  on: {
367
372
  focus: this.onFocus,
368
373
  blur: this.onBlur
369
374
  }
370
375
  }, [
371
- e("template", { slot: "icon" }, [r]),
376
+ e("template", { slot: "icon" }, [l]),
372
377
  this.menuName
373
378
  ]),
374
379
  e("div", {
@@ -398,9 +403,11 @@ const g = ".focusable", G = {
398
403
  );
399
404
  };
400
405
  if (s.length === 1 && o.length === 1 && !this.forceMenu)
401
- return a(o[0]);
402
- if (o.length > 0 && this.inline > 0) {
403
- const t = o.slice(0, this.inline), r = s.filter((n) => !t.includes(n));
406
+ return d(o[0]);
407
+ if (this.$nextTick(() => {
408
+ this.opened && this.$refs.menu && (this.$refs.menu.querySelector("li.active") || []).length === 0 && this.focusFirstAction();
409
+ }), o.length > 0 && this.inline > 0) {
410
+ const t = o.slice(0, this.inline), l = s.filter((n) => !t.includes(n));
404
411
  return e(
405
412
  "div",
406
413
  {
@@ -411,9 +418,9 @@ const g = ".focusable", G = {
411
418
  },
412
419
  [
413
420
  // Render inline actions
414
- ...t.map(a),
421
+ ...t.map(d),
415
422
  // render the rest within the popover menu
416
- r.length > 0 ? e(
423
+ l.length > 0 ? e(
417
424
  "div",
418
425
  {
419
426
  class: [
@@ -424,7 +431,7 @@ const g = ".focusable", G = {
424
431
  ]
425
432
  },
426
433
  [
427
- d(r)
434
+ f(l)
428
435
  ]
429
436
  ) : null
430
437
  ]
@@ -442,22 +449,22 @@ const g = ".focusable", G = {
442
449
  ]
443
450
  },
444
451
  [
445
- d(s)
452
+ f(s)
446
453
  ]
447
454
  );
448
455
  }
449
- }, j = null, W = null;
450
- var J = /* @__PURE__ */ V(
451
- G,
452
- j,
456
+ }, W = null, J = null;
457
+ var Q = /* @__PURE__ */ j(
458
+ U,
453
459
  W,
460
+ J,
454
461
  !1,
455
462
  null,
456
- "b84866e9",
463
+ "f797c400",
457
464
  null,
458
465
  null
459
466
  );
460
- const ne = J.exports;
467
+ const ie = Q.exports;
461
468
  export {
462
- ne as default
469
+ ie as default
463
470
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NcActions.mjs","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</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 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\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 * aria-hidden attribute for the icon slot\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],\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}\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// 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) {\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\t// Up or Shift+Tab\n\t\t\tif (event.keyCode === 38 || (event.keyCode === 9 && event.shiftKey)) {\n\t\t\t\tthis.focusPreviousAction(event)\n\t\t\t}\n\t\t\t// Down or Tab\n\t\t\tif (event.keyCode === 40 || (event.keyCode === 9 && !event.shiftKey)) {\n\t\t\t\tthis.focusNextAction(event)\n\t\t\t}\n\t\t\t// Page-Up\n\t\t\tif (event.keyCode === 33) {\n\t\t\t\tthis.focusFirstAction(event)\n\t\t\t}\n\t\t\t// Page-Down\n\t\t\tif (event.keyCode === 34) {\n\t\t\t\tthis.focusLastAction(event)\n\t\t\t}\n\t\t\t// Esc\n\t\t\tif (event.keyCode === 27) {\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\t// First element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\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\t// Last element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\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\tthis.focusIndex = 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},\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 isNavLink = (action) => {\n\t\t\tconst componentName = action?.componentOptions?.Ctor?.extendOptions?.name ?? action?.componentOptions?.tag\n\t\t\treturn (\n\t\t\t\tcomponentName === 'NcActionLink'\n\t\t\t\t&& action?.componentOptions?.propsData?.href?.startsWith(window.location.origin)\n\t\t\t)\n\t\t}\n\t\t// Automatically detect whether all actions are website navigation links\n\t\tconst isNav = actions.every(isNavLink)\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 {object} 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 icon = action?.data?.scopedSlots?.icon()?.[0]\n\t\t\t\t|| h('span', { class: ['icon', action?.componentOptions?.propsData?.icon] })\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\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'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\tariaHidden: this.ariaHidden,\n\t\t\t\t\t\t...action?.componentOptions?.propsData,\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// 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\tsetReturnFocus: this.$refs.menuButton?.$el,\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\tpopoverBaseClass: 'action-item__popper',\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\tariaHidden: this.ariaHidden,\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-haspopup': isNav ? null : 'menu',\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\t'aria-expanded': this.opened.toString(),\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},\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: isNav ? null : 'menu',\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/**\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</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","NcButton","DotsHorizontal","NcPopover","value","t","GenRandomId","state","action","componentName","_e","_c","_b","_a","_d","returnFocus","event","menuItem","focusableItem","focusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","h","actions","isNavLink","_h","_g","_f","isNav","inlineActions","Vue","renderInlineAction","icon","clickListener","text","_l","_k","_j","_i","ariaLabel","_n","_m","buttonText","title","_p","_o","_q","_r","_s","_u","_t","_v","renderActionsPopover","triggerIcon","renderedInlineActions","menuActions"],"mappings":";;;;;;;;AAikBA,MAAAA,IAAA,cAUAC,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,WAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAAC,GAAA;AACA,eAAA,CAAA,WAAA,aAAA,YAAA,0BAAA,uBAAA,SAAA,WAAA,SAAA,EAAA,QAAAA,CAAA,MAAA;AAAA,MACA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAAC,EAAA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,SAAA,cAAA,MAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA,CAAA,QAAA,QAAA,SAAA,OAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,QAAA,KAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA,QAAAC,EAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,iBAAA;AAEA,aAAA,KAAA,SAAA,KAAA,UACA,YAEA,KAAA,WAAA,cAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA,IAEA,KAAAC,GAAA;AACA,MAAAA,MAAA,KAAA,WAIA,KAAA,SAAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,oBAAAC,GAAA;;AACA,YAAAC,KAAAC,KAAAC,KAAAC,KAAAC,IAAAL,KAAA,gBAAAA,EAAA,qBAAA,gBAAAK,EAAA,SAAA,gBAAAD,EAAA,kBAAA,gBAAAD,EAAA,SAAA,OAAAD,KAAAI,IAAAN,KAAA,gBAAAA,EAAA,qBAAA,gBAAAM,EAAA;AACA,aAAA,CAAA,kBAAA,gBAAA,gBAAA,EAAA,SAAAL,CAAA;AAAA,IACA;AAAA;AAAA,IAGA,SAAA,GAAA;AACA,MAAA,KAAA,WAIA,KAAA,SAAA,IAOA,KAAA,MAAA,eAAA,EAAA,GAKA,KAAA,MAAA,MAAA;AAAA,IACA;AAAA,IACA,UAAAM,IAAA,IAAA;AACA,MAAA,KAAA,WAIA,KAAA,SAAA,IAEA,KAAA,MAAA,QAAA,eAAA,EAAA,aAAAA,EAAA,CAAA,GAOA,KAAA,MAAA,eAAA,EAAA,GAKA,KAAA,MAAA,OAAA,GAGA,KAAA,aAAA,GAGA,KAAA,MAAA,WAAA,IAAA,MAAA;AAAA,IACA;AAAA,IAEA,OAAAC,GAAA;AACA,WAAA,UAAA,MAAA;AACA,aAAA,iBAAAA,CAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,mBAAAA,GAAA;AACA,UAAA,SAAA,kBAAAA,EAAA;AACA;AAGA,YAAAC,IAAAD,EAAA,OAAA,QAAA,IAAA;AACA,UAAAC,GAAA;AACA,cAAAC,IAAAD,EAAA,cAAAlB,CAAA;AACA,YAAAmB,GAAA;AAEA,gBAAAC,IAAA,CAAA,GADA,KAAA,MAAA,KAAA,iBAAApB,CAAA,CACA,EAAA,QAAAmB,CAAA;AACA,UAAAC,IAAA,OACA,KAAA,aAAAA,GACA,KAAA,YAAA;AAAA,QAEA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,UAAAH,GAAA;AAEA,OAAAA,EAAA,YAAA,MAAAA,EAAA,YAAA,KAAAA,EAAA,aACA,KAAA,oBAAAA,CAAA,IAGAA,EAAA,YAAA,MAAAA,EAAA,YAAA,KAAA,CAAAA,EAAA,aACA,KAAA,gBAAAA,CAAA,GAGAA,EAAA,YAAA,MACA,KAAA,iBAAAA,CAAA,GAGAA,EAAA,YAAA,MACA,KAAA,gBAAAA,CAAA,GAGAA,EAAA,YAAA,OACA,KAAA,UAAA,GACAA,EAAA,eAAA;AAAA,IAEA;AAAA,IACA,sBAAA;AACA,YAAAI,IAAA,KAAA,MAAA,KAAA,cAAA,WAAA;AACA,MAAAA,KACAA,EAAA,UAAA,OAAA,QAAA;AAAA,IAEA;AAAA,IACA,cAAA;AAEA,YAAAC,IAAA,KAAA,MAAA,KAAA,iBAAAtB,CAAA,EAAA,KAAA,UAAA;AACA,UAAAsB,GAAA;AACA,aAAA,oBAAA;AACA,cAAAC,IAAAD,EAAA,QAAA,WAAA;AACA,QAAAA,EAAA,MAAA,GACAC,KACAA,EAAA,UAAA,IAAA,QAAA;AAAA,MAEA;AAAA,IACA;AAAA,IACA,oBAAAN,GAAA;AACA,MAAA,KAAA,WACA,KAAA,eAAA,IAEA,KAAA,UAAA,KAEA,KAAA,eAAAA,CAAA,GACA,KAAA,aAAA,KAAA,aAAA,IAEA,KAAA,YAAA;AAAA,IAEA;AAAA,IACA,gBAAAA,GAAA;AACA,UAAA,KAAA,QAAA;AACA,cAAAO,IAAA,KAAA,MAAA,KAAA,iBAAAxB,CAAA,EAAA,SAAA;AACA,QAAA,KAAA,eAAAwB,IAEA,KAAA,UAAA,KAEA,KAAA,eAAAP,CAAA,GACA,KAAA,aAAA,KAAA,aAAA,IAEA,KAAA,YAAA;AAAA,MACA;AAAA,IACA;AAAA,IACA,iBAAAA,GAAA;AACA,MAAA,KAAA,WACA,KAAA,eAAAA,CAAA,GACA,KAAA,aAAA,GACA,KAAA,YAAA;AAAA,IAEA;AAAA,IACA,gBAAAA,GAAA;AACA,MAAA,KAAA,WACA,KAAA,eAAAA,CAAA,GACA,KAAA,aAAA,KAAA,MAAA,KAAA,iBAAAjB,CAAA,EAAA,SAAA,GACA,KAAA,YAAA;AAAA,IAEA;AAAA,IACA,eAAAiB,GAAA;AACA,MAAAA,MACAA,EAAA,eAAA,GACAA,EAAA,gBAAA;AAAA,IAEA;AAAA,IACA,QAAAA,GAAA;AACA,WAAA,MAAA,SAAAA,CAAA;AAAA,IACA;AAAA,IACA,OAAAA,GAAA;AACA,WAAA,MAAA,QAAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAAQ,GAAA;AAMA,UAAAC,KAAA,KAAA,OAAA,WAAA,CAAA,GAAA;AAAA,MACA,CAAAjB,MAAA;;AAAA,iBAAAK,IAAAL,KAAA,gBAAAA,EAAA,qBAAA,gBAAAK,EAAA,UAAAC,KAAAH,KAAAC,IAAAJ,KAAA,gBAAAA,EAAA,qBAAA,gBAAAI,EAAA,SAAA,gBAAAD,EAAA,kBAAA,gBAAAG,EAAA;AAAA;AAAA,IACA,GAEAY,IAAA,CAAAlB,MAAA;;AAEA,eADAE,KAAAC,KAAAC,KAAAC,IAAAL,KAAA,gBAAAA,EAAA,qBAAA,gBAAAK,EAAA,SAAA,gBAAAD,EAAA,kBAAA,gBAAAD,EAAA,SAAA,OAAAD,KAAAI,IAAAN,KAAA,gBAAAA,EAAA,qBAAA,gBAAAM,EAAA,SAEA,oBACAa,KAAAC,KAAAC,IAAArB,KAAA,gBAAAA,EAAA,qBAAA,gBAAAqB,EAAA,cAAA,gBAAAD,EAAA,SAAA,gBAAAD,EAAA,WAAA,OAAA,SAAA;AAAA,IAEA,GAEAG,IAAAL,EAAA,MAAAC,CAAA;AAKA,QAAAK,IAAAN,EAAA,OAAA,KAAA,mBAAA;AAOA,QANA,KAAA,aAAAM,EAAA,SAAA,KAAA,KAAA,SAAA,MACAC,EAAA,KAAA,KAAA,gEAAA,GACAD,IAAA,CAAA,IAIAN,EAAA,WAAA;AACA;AASA,UAAAQ,IAAA,CAAAzB,MAAA;;AACA,YAAA0B,MAAAvB,KAAAC,KAAAC,IAAAL,KAAA,gBAAAA,EAAA,SAAA,gBAAAK,EAAA,gBAAA,gBAAAD,EAAA,WAAA,gBAAAD,EAAA,OACAa,EAAA,QAAA,EAAA,OAAA,CAAA,SAAAd,KAAAI,IAAAN,KAAA,gBAAAA,EAAA,qBAAA,gBAAAM,EAAA,cAAA,gBAAAJ,EAAA,IAAA,EAAA,CAAA,GACAyB,KAAAP,KAAAC,IAAArB,KAAA,gBAAAA,EAAA,qBAAA,gBAAAqB,EAAA,cAAA,gBAAAD,EAAA,OAEAQ,KAAAC,KAAAC,KAAAC,KAAAC,KAAAb,IAAAnB,KAAA,gBAAAA,EAAA,qBAAA,gBAAAmB,EAAA,aAAA,gBAAAa,EAAA,OAAA,gBAAAD,EAAA,SAAA,gBAAAD,EAAA,SAAA,gBAAAD,EAAA,KAAAC,IACAG,MAAAC,KAAAC,IAAAnC,KAAA,gBAAAA,EAAA,qBAAA,gBAAAmC,EAAA,cAAA,gBAAAD,EAAA,cAAAN,GACAQ,IAAA,KAAA,YAAAR,IAAA;AAEA,UAAAS,KAAAC,KAAAC,IAAAvC,KAAA,gBAAAA,EAAA,qBAAA,gBAAAuC,EAAA,cAAA,gBAAAD,EAAA;AAEA,aAAA,KAAA,aAAAD,MACAA,IAAAT,IAGAZ;AAAA,QAAA;AAAA,QACA;AAAA,UACA,OAAA;AAAA,YACA;AAAA,aACAwB,IAAAxC,KAAA,gBAAAA,EAAA,SAAA,gBAAAwC,EAAA;AAAA,aACAC,IAAAzC,KAAA,gBAAAA,EAAA,SAAA,gBAAAyC,EAAA;AAAA,UACA;AAAA,UACA,OAAA;AAAA,YACA,cAAAR;AAAA,YACA,OAAAI;AAAA,UACA;AAAA,UACA,MAAAK,IAAA1C,KAAA,gBAAAA,EAAA,SAAA,gBAAA0C,EAAA;AAAA,UACA,OAAA;AAAA;AAAA,YAEA,MAAA,KAAA,SAAAN,IAAA,cAAA;AAAA,YACA,UAAA,KAAA,cAAAO,KAAAC,IAAA5C,KAAA,gBAAAA,EAAA,qBAAA,gBAAA4C,EAAA,cAAA,gBAAAD,EAAA;AAAA,YACA,YAAA,KAAA;AAAA,YACA,IAAAE,IAAA7C,KAAA,gBAAAA,EAAA,qBAAA,gBAAA6C,EAAA;AAAA,UACA;AAAA,UACA,IAAA;AAAA,YACA,OAAA,KAAA;AAAA,YACA,MAAA,KAAA;AAAA;AAAA;AAAA,YAGA,GAAA,CAAA,CAAAlB,KAAA;AAAA,cACA,OAAA,CAAAnB,MAAA;AACA,gBAAAmB,KACAA,EAAAnB,CAAA;AAAA,cAEA;AAAA,YACA;AAAA,UACA;AAAA,QACA;AAAA,QACA;AAAA,UACAQ,EAAA,YAAA,EAAA,MAAA,OAAA,GAAA,CAAAU,CAAA,CAAA;AAAA,UACAU;AAAA,QACA;AAAA,MACA;AAAA,IACA,GAQAU,IAAA,CAAA7B,MAAA;;AACA,YAAA8B,MAAA1C,IAAA,KAAA,OAAA,SAAA,gBAAAA,EAAA,QACA,KAAA,cACAW,EAAA,QAAA,EAAA,OAAA,CAAA,QAAA,KAAA,WAAA,EAAA,CAAA,IACAA,EAAA,kBAAA;AAAA,QACA,OAAA;AAAA,UACA,MAAA;AAAA,QACA;AAAA,MACA,CAAA;AAEA,aAAAA;AAAA,QAAA;AAAA,QACA;AAAA,UACA,KAAA;AAAA,UACA,OAAA;AAAA,YACA,OAAA;AAAA,YACA,cAAA;AAAA,YACA,OAAA,KAAA;AAAA,YACA,WAAA,KAAA;AAAA,YACA,UAAA,KAAA;AAAA,YACA,WAAA,KAAA;AAAA,YACA,kBAAA;AAAA,YACA,iBAAAZ,IAAA,KAAA,MAAA,eAAA,gBAAAA,EAAA;AAAA,UACA;AAAA;AAAA;AAAA;AAAA,UAIA,OAAA;AAAA,YACA,OAAA;AAAA,YACA,cAAA;AAAA,YACA,OAAA,KAAA;AAAA,YACA,WAAA,KAAA;AAAA,YACA,UAAA,KAAA;AAAA,YACA,WAAA,KAAA;AAAA,YACA,GAAA,KAAA,cAAA,EAAA,UAAA,CAAA,EAAA;AAAA,YACA,kBAAA;AAAA,UACA;AAAA,UACA,IAAA;AAAA,YACA,MAAA,KAAA;AAAA,YACA,cAAA,KAAA;AAAA,YACA,MAAA,KAAA;AAAA,UACA;AAAA,QACA;AAAA,QACA;AAAA,UACAY,EAAA,YAAA;AAAA,YACA,OAAA;AAAA,YACA,OAAA;AAAA,cACA,MAAA,KAAA;AAAA,cACA,UAAA,KAAA;AAAA,cACA,YAAA,KAAA;AAAA,YACA;AAAA,YACA,MAAA;AAAA,YACA,KAAA;AAAA,YACA,OAAA;AAAA,cACA,iBAAAM,IAAA,OAAA;AAAA,cACA,cAAA,KAAA,WAAA,OAAA,KAAA;AAAA,cACA,iBAAA,KAAA,SAAA,KAAA,WAAA;AAAA,cACA,iBAAA,KAAA,OAAA,SAAA;AAAA,YACA;AAAA,YACA,IAAA;AAAA,cACA,OAAA,KAAA;AAAA,cACA,MAAA,KAAA;AAAA,YACA;AAAA,UACA,GAAA;AAAA,YACAN,EAAA,YAAA,EAAA,MAAA,OAAA,GAAA,CAAA+B,CAAA,CAAA;AAAA,YACA,KAAA;AAAA,UACA,CAAA;AAAA,UACA/B,EAAA,OAAA;AAAA,YACA,OAAA;AAAA,cACA,MAAA,KAAA;AAAA,YACA;AAAA,YACA,OAAA;AAAA,cACA,UAAA;AAAA,YACA;AAAA,YACA,IAAA;AAAA,cACA,SAAA,KAAA;AAAA,cACA,WAAA,KAAA;AAAA,YACA;AAAA,YACA,KAAA;AAAA,UACA,GAAA;AAAA,YACAA,EAAA,MAAA;AAAA,cACA,OAAA;AAAA,gBACA,IAAA,KAAA;AAAA,gBACA,UAAA;AAAA,gBACA,MAAAM,IAAA,OAAA;AAAA,cACA;AAAA,YACA,GAAA;AAAA,cACAL;AAAA,YACA,CAAA;AAAA,UACA,CAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAMA,QAAAA,EAAA,WAAA,KAAAM,EAAA,WAAA,KAAA,CAAA,KAAA;AACA,aAAAE,EAAAF,EAAA,CAAA,CAAA;AAMA,QAAAA,EAAA,SAAA,KAAA,KAAA,SAAA,GAAA;AACA,YAAAyB,IAAAzB,EAAA,MAAA,GAAA,KAAA,MAAA,GAEA0B,IAAAhC,EAAA,OAAA,CAAAjB,MAAA,CAAAgD,EAAA,SAAAhD,CAAA,CAAA;AACA,aAAAgB;AAAA,QAAA;AAAA,QACA;AAAA,UACA,OAAA;AAAA,YACA;AAAA,YACA,gBAAA,KAAA,cAAA;AAAA,UACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,UAEA,GAAAgC,EAAA,IAAAvB,CAAA;AAAA;AAAA,UAEAwB,EAAA,SAAA,IACAjC;AAAA,YAAA;AAAA,YACA;AAAA,cACA,OAAA;AAAA,gBACA;AAAA,gBACA;AAAA,kBACA,qBAAA,KAAA;AAAA,gBACA;AAAA,cACA;AAAA,YACA;AAAA,YACA;AAAA,cACA8B,EAAAG,CAAA;AAAA,YACA;AAAA,UAAA,IACA;AAAA,QACA;AAAA,MAAA;AAAA,IACA;AAKA,WAAAjC;AAAA,MAAA;AAAA,MACA;AAAA,QACA,OAAA;AAAA,UACA;AAAA,UACA,gBAAA,KAAA,cAAA;AAAA,UACA;AAAA,YACA,qBAAA,KAAA;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACA;AAAA,QACA8B,EAAA7B,CAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcActions.mjs","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</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 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\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 * aria-hidden attribute for the icon slot\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],\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}\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// 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) {\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\t// Up or Shift+Tab\n\t\t\tif (event.keyCode === 38 || (event.keyCode === 9 && event.shiftKey)) {\n\t\t\t\tthis.focusPreviousAction(event)\n\t\t\t}\n\t\t\t// Down or Tab\n\t\t\tif (event.keyCode === 40 || (event.keyCode === 9 && !event.shiftKey)) {\n\t\t\t\tthis.focusNextAction(event)\n\t\t\t}\n\t\t\t// Page-Up\n\t\t\tif (event.keyCode === 33) {\n\t\t\t\tthis.focusFirstAction(event)\n\t\t\t}\n\t\t\t// Page-Down\n\t\t\tif (event.keyCode === 34) {\n\t\t\t\tthis.focusLastAction(event)\n\t\t\t}\n\t\t\t// Esc\n\t\t\tif (event.keyCode === 27) {\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\t// First element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\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\t// Last element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\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},\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 isNavLink = (action) => {\n\t\t\tconst componentName = action?.componentOptions?.Ctor?.extendOptions?.name ?? action?.componentOptions?.tag\n\t\t\tconst href = action?.componentOptions?.propsData?.href\n\t\t\treturn (\n\t\t\t\tcomponentName === 'NcActionLink'\n\t\t\t\t\t&& !href?.startsWith('#')\n\t\t\t\t\t&& new URL(href, window.location.origin).origin === window.location.origin\n\t\t\t)\n\t\t}\n\t\t// Automatically detect whether all actions are website navigation links\n\t\tconst isNav = actions.every(isNavLink)\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 icon = action?.data?.scopedSlots?.icon()?.[0]\n\t\t\t\t|| h('span', { class: ['icon', action?.componentOptions?.propsData?.icon] })\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\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\tariaHidden: this.ariaHidden,\n\t\t\t\t\t\t...action?.componentOptions?.propsData,\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// 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\tconst ariaExpandedForTrigger = () => {\n\t\t\t\treturn (isNav || this.opened) ? this.opened.toString() : null\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\tsetReturnFocus: this.$refs.menuButton?.$el,\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\tariaHidden: this.ariaHidden,\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-haspopup': isNav ? null : 'menu',\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\t'aria-expanded': ariaExpandedForTrigger(),\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},\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: isNav ? null : 'menu',\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</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","NcButton","DotsHorizontal","NcPopover","value","t","GenRandomId","state","action","componentName","_e","_c","_b","_a","_d","returnFocus","event","menuItem","focusableItem","focusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstSelectedIndex","button","h","actions","isNavLink","href","_g","_f","isNav","inlineActions","Vue","renderInlineAction","icon","attrs","clickListener","_h","text","_m","_l","_k","_j","_i","ariaLabel","_o","_n","buttonText","title","_q","_p","_r","_s","_t","_v","_u","_w","renderActionsPopover","triggerIcon","ariaExpandedForTrigger","renderedInlineActions","menuActions"],"mappings":"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"}
@@ -1,17 +1,16 @@
1
- var P = require("../assets/index-ed4adf1d.css");
2
- const p = require("./NcButton.cjs"), r = require("../chunks/l10n-903083c4.cjs");
1
+ var x = require("../assets/index-4271da53.css");
2
+ const p = require("./NcButton.cjs"), r = require("../chunks/l10n-9f3afaf5.cjs");
3
3
  require("../Directives/Tooltip.cjs");
4
- const n = require("@nextcloud/event-bus"), c = require("vue-material-design-icons/ArrowRight.vue"), l = require("../chunks/_plugin-vue2_normalizer-7f9efb60.cjs"), u = require("floating-vue"), g = require("../Mixins/isMobile.cjs"), h = require("@nextcloud/browser-storage"), d = require("@vueuse/core"), a = require("splitpanes");
4
+ const n = require("@nextcloud/event-bus"), c = require("../chunks/ArrowRight-7315f6c1.cjs"), l = require("../chunks/_plugin-vue2_normalizer-7f9efb60.cjs"), u = require("floating-vue"), g = require("../Mixins/isMobile.cjs"), h = require("@nextcloud/browser-storage"), d = require("@vueuse/core"), a = require("splitpanes");
5
5
  require("splitpanes/dist/splitpanes.css");
6
- const f = (t) => t && t.__esModule ? t : { default: t }, _ = /* @__PURE__ */ f(c);
7
- const m = {
6
+ const f = {
8
7
  name: "NcAppDetailsToggle",
9
8
  directives: {
10
9
  tooltip: u.VTooltip
11
10
  },
12
11
  components: {
13
12
  NcButton: p,
14
- ArrowRight: _.default
13
+ ArrowRight: c.ArrowRight
15
14
  },
16
15
  computed: {
17
16
  title() {
@@ -31,26 +30,26 @@ const m = {
31
30
  }
32
31
  }
33
32
  };
34
- var z = function() {
33
+ var _ = function() {
35
34
  var e = this, i = e._self._c;
36
35
  return i("NcButton", { directives: [{ name: "tooltip", rawName: "v-tooltip", value: e.title, expression: "title" }], staticClass: "app-details-toggle", attrs: { "aria-label": e.title }, scopedSlots: e._u([{ key: "icon", fn: function() {
37
36
  return [i("ArrowRight", { attrs: { size: 20 } })];
38
37
  }, proxy: !0 }]) });
39
- }, S = [], v = /* @__PURE__ */ l.normalizeComponent(
38
+ }, m = [], z = /* @__PURE__ */ l.normalizeComponent(
39
+ f,
40
+ _,
40
41
  m,
41
- z,
42
- S,
43
42
  !1,
44
43
  null,
45
44
  "5244e83e",
46
45
  null,
47
46
  null
48
47
  );
49
- const w = v.exports;
50
- const o = h.getBuilder("nextcloud").persist().build(), C = {
48
+ const S = z.exports;
49
+ const o = h.getBuilder("nextcloud").persist().build(), v = {
51
50
  name: "NcAppContent",
52
51
  components: {
53
- NcAppDetailsToggle: w,
52
+ NcAppDetailsToggle: S,
54
53
  Pane: a.Pane,
55
54
  Splitpanes: a.Splitpanes
56
55
  },
@@ -199,20 +198,20 @@ const o = h.getBuilder("nextcloud").persist().build(), C = {
199
198
  }
200
199
  }
201
200
  };
202
- var N = function() {
201
+ var w = function() {
203
202
  var e = this, i = e._self._c;
204
203
  return i("main", { staticClass: "app-content no-snapper", class: { "app-content--has-list": e.hasList }, attrs: { id: "app-content-vue" } }, [e.pageHeading ? i("h1", { staticClass: "hidden-visually" }, [e._v(" " + e._s(e.pageHeading) + " ")]) : e._e(), e.hasList ? [e.isMobile ? i("div", { staticClass: "app-content-wrapper app-content-wrapper--mobile", class: e.showDetails ? "app-content-wrapper--show-details" : "app-content-wrapper--show-list" }, [e.hasList && e.showDetails ? i("NcAppDetailsToggle", { nativeOn: { click: function(s) {
205
204
  return s.stopPropagation(), s.preventDefault(), e.hideDetails.apply(null, arguments);
206
205
  } } }) : e._e(), e._t("list"), e._t("default")], 2) : i("div", { staticClass: "app-content-wrapper" }, [i("Splitpanes", { staticClass: "default-theme", on: { resized: e.handlePaneResize } }, [i("Pane", { staticClass: "splitpanes__pane-list", attrs: { size: e.listPaneSize || e.paneDefaults.list.size, "min-size": e.paneDefaults.list.min, "max-size": e.paneDefaults.list.max } }, [e._t("list")], 2), i("Pane", { staticClass: "splitpanes__pane-details", attrs: { size: e.detailsPaneSize, "min-size": e.paneDefaults.details.min, "max-size": e.paneDefaults.details.max } }, [e._t("default")], 2)], 1)], 1)] : e._t("default")], 2);
207
- }, y = [], D = /* @__PURE__ */ l.normalizeComponent(
206
+ }, C = [], N = /* @__PURE__ */ l.normalizeComponent(
207
+ v,
208
+ w,
208
209
  C,
209
- N,
210
- y,
211
210
  !1,
212
211
  null,
213
- "9a2b658c",
212
+ "424ef3d1",
214
213
  null,
215
214
  null
216
215
  );
217
- const x = D.exports;
218
- module.exports = x;
216
+ const y = N.exports;
217
+ module.exports = y;