@nextcloud/vue 9.0.0-alpha.0 → 9.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/CHANGELOG.md +47 -1
  2. package/dist/Components/NcActionButton.cjs +1 -1
  3. package/dist/Components/NcActionButton.mjs +1 -1
  4. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  6. package/dist/Components/NcActionCheckbox.cjs +1 -1
  7. package/dist/Components/NcActionCheckbox.mjs +1 -1
  8. package/dist/Components/NcActionInput.cjs +1 -1
  9. package/dist/Components/NcActionInput.mjs +1 -1
  10. package/dist/Components/NcActionLink.cjs +1 -1
  11. package/dist/Components/NcActionLink.mjs +1 -1
  12. package/dist/Components/NcActionRadio.cjs +1 -1
  13. package/dist/Components/NcActionRadio.mjs +1 -1
  14. package/dist/Components/NcActionRouter.cjs +1 -1
  15. package/dist/Components/NcActionRouter.mjs +1 -1
  16. package/dist/Components/NcActionText.cjs +1 -1
  17. package/dist/Components/NcActionText.mjs +1 -1
  18. package/dist/Components/NcActionTextEditable.cjs +1 -1
  19. package/dist/Components/NcActionTextEditable.mjs +1 -1
  20. package/dist/Components/NcActions.cjs +1 -1
  21. package/dist/Components/NcActions.mjs +1 -1
  22. package/dist/Components/NcAppContent.cjs +1 -1
  23. package/dist/Components/NcAppContent.mjs +1 -1
  24. package/dist/Components/NcAppNavigation.cjs +1 -1
  25. package/dist/Components/NcAppNavigation.mjs +1 -1
  26. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  27. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  28. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  29. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  30. package/dist/Components/NcAppNavigationNew.cjs +1 -1
  31. package/dist/Components/NcAppNavigationNew.mjs +1 -1
  32. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  33. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  34. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  35. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  36. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  37. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  38. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  39. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  40. package/dist/Components/NcAppSettingsSection.cjs +1 -1
  41. package/dist/Components/NcAppSettingsSection.mjs +1 -1
  42. package/dist/Components/NcAppSidebar.cjs +1 -1
  43. package/dist/Components/NcAppSidebar.mjs +1 -1
  44. package/dist/Components/NcAppSidebarTab.cjs +1 -1
  45. package/dist/Components/NcAppSidebarTab.mjs +1 -1
  46. package/dist/Components/NcAvatar.cjs +1 -1
  47. package/dist/Components/NcAvatar.mjs +1 -1
  48. package/dist/Components/NcBreadcrumb.cjs +1 -1
  49. package/dist/Components/NcBreadcrumb.mjs +1 -1
  50. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  51. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  52. package/dist/Components/NcButton.cjs +1 -1
  53. package/dist/Components/NcButton.mjs +1 -1
  54. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  55. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  56. package/dist/Components/NcColorPicker.cjs +1 -1
  57. package/dist/Components/NcColorPicker.mjs +1 -1
  58. package/dist/Components/NcContent.cjs +1 -1
  59. package/dist/Components/NcContent.mjs +1 -1
  60. package/dist/Components/NcDashboardWidget.cjs +1 -1
  61. package/dist/Components/NcDashboardWidget.mjs +1 -1
  62. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  63. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  64. package/dist/Components/NcDateTime.cjs +1 -1
  65. package/dist/Components/NcDateTime.mjs +1 -1
  66. package/dist/Components/NcDateTimePicker.cjs +1 -1
  67. package/dist/Components/NcDateTimePicker.mjs +1 -1
  68. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  69. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  70. package/dist/Components/NcDialog.cjs +1 -1
  71. package/dist/Components/NcDialog.mjs +1 -1
  72. package/dist/Components/NcDialogButton.cjs +1 -1
  73. package/dist/Components/NcDialogButton.mjs +1 -1
  74. package/dist/Components/NcEmojiPicker.cjs +1 -1
  75. package/dist/Components/NcEmojiPicker.mjs +1 -1
  76. package/dist/Components/NcHeaderMenu.cjs +1 -1
  77. package/dist/Components/NcHeaderMenu.mjs +1 -1
  78. package/dist/Components/NcIconSvgWrapper.cjs +1 -1
  79. package/dist/Components/NcIconSvgWrapper.mjs +1 -1
  80. package/dist/Components/NcInputField.cjs +1 -1
  81. package/dist/Components/NcInputField.mjs +1 -1
  82. package/dist/Components/NcListItem.cjs +1 -1
  83. package/dist/Components/NcListItem.mjs +1 -1
  84. package/dist/Components/NcListItemIcon.cjs +1 -1
  85. package/dist/Components/NcListItemIcon.mjs +1 -1
  86. package/dist/Components/NcModal.cjs +12 -11
  87. package/dist/Components/NcModal.cjs.map +1 -1
  88. package/dist/Components/NcModal.mjs +37 -36
  89. package/dist/Components/NcModal.mjs.map +1 -1
  90. package/dist/Components/NcNoteCard.cjs +1 -1
  91. package/dist/Components/NcNoteCard.mjs +1 -1
  92. package/dist/Components/NcPasswordField.cjs +1 -1
  93. package/dist/Components/NcPasswordField.mjs +1 -1
  94. package/dist/Components/NcPopover.cjs +1 -1
  95. package/dist/Components/NcPopover.mjs +1 -1
  96. package/dist/Components/NcProgressBar.cjs +1 -1
  97. package/dist/Components/NcProgressBar.mjs +1 -1
  98. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  99. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  100. package/dist/Components/NcRichContenteditable.cjs +1 -1
  101. package/dist/Components/NcRichContenteditable.mjs +2 -2
  102. package/dist/Components/NcRichText.cjs +1 -1
  103. package/dist/Components/NcRichText.mjs +3 -3
  104. package/dist/Components/NcSelect.cjs +1 -1
  105. package/dist/Components/NcSelect.mjs +1 -1
  106. package/dist/Components/NcSelectTags.cjs +1 -1
  107. package/dist/Components/NcSelectTags.mjs +1 -1
  108. package/dist/Components/NcSettingsInputText.cjs +1 -1
  109. package/dist/Components/NcSettingsInputText.mjs +1 -1
  110. package/dist/Components/NcSettingsSection.cjs +1 -1
  111. package/dist/Components/NcSettingsSection.mjs +1 -1
  112. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  113. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  114. package/dist/Components/NcTextArea.cjs +1 -1
  115. package/dist/Components/NcTextArea.mjs +1 -1
  116. package/dist/Components/NcTextField.cjs +1 -1
  117. package/dist/Components/NcTextField.mjs +1 -1
  118. package/dist/Components/NcTimezonePicker.cjs +1 -1
  119. package/dist/Components/NcTimezonePicker.mjs +1 -1
  120. package/dist/Components/NcUserBubble.cjs +1 -1
  121. package/dist/Components/NcUserBubble.mjs +1 -1
  122. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  123. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  124. package/dist/Components/NcVNodes.cjs +4 -3
  125. package/dist/Components/NcVNodes.cjs.map +1 -1
  126. package/dist/Components/NcVNodes.mjs +4 -3
  127. package/dist/Components/NcVNodes.mjs.map +1 -1
  128. package/dist/Directives/Linkify.cjs +5 -4
  129. package/dist/Directives/Linkify.cjs.map +1 -1
  130. package/dist/Directives/Linkify.mjs +6 -5
  131. package/dist/Directives/Linkify.mjs.map +1 -1
  132. package/dist/Functions/emoji.cjs +1 -1
  133. package/dist/Functions/emoji.mjs +1 -1
  134. package/dist/Functions/usernameToColor.cjs +1 -1
  135. package/dist/Functions/usernameToColor.mjs +1 -1
  136. package/dist/Mixins/richEditor.cjs +1 -1
  137. package/dist/Mixins/richEditor.mjs +1 -1
  138. package/dist/assets/{NcActionButton-p7spK21h.css → NcActionButton-De4wlKZH.css} +17 -17
  139. package/dist/assets/{NcActions-cEMOhd0g.css → NcActions-PR-7NI_x.css} +12 -12
  140. package/dist/assets/{NcAppContent--D5zvLsb.css → NcAppContent-kIkHd4VN.css} +1 -0
  141. package/dist/assets/{NcAppNavigationItem-V2jQd3bm.css → NcAppNavigationItem-_MHs9DEv.css} +14 -7
  142. package/dist/assets/{NcAppNavigationNewItem-MQBvffq9.css → NcAppNavigationNewItem-ue-H4LQY.css} +14 -7
  143. package/dist/assets/{NcAppNavigationToggle-egZffUzR.css → NcAppNavigationToggle-VrntFGdJ.css} +3 -3
  144. package/dist/assets/{NcAppSettingsDialog-F29bz2Yx.css → NcAppSettingsDialog-HOydlmNi.css} +16 -17
  145. package/dist/assets/{NcAppSidebar-QQPSZPo9.css → NcAppSidebar-UFABwmpX.css} +44 -44
  146. package/dist/assets/{NcAvatar-qgACiUer.css → NcAvatar-DCUiVghV.css} +27 -27
  147. package/dist/assets/{NcBreadcrumbs-liWjT068.css → NcBreadcrumbs-VKFJ9HrE.css} +7 -7
  148. package/dist/assets/{NcButton-fqTN6SJK.css → NcButton-rKJYdkZn.css} +43 -43
  149. package/dist/assets/{NcCheckboxRadioSwitch-P71iLdgD.css → NcCheckboxRadioSwitch-dNV4KgTO.css} +49 -47
  150. package/dist/assets/{NcColorPicker-88MDZrB0.css → NcColorPicker-FiFz1rof.css} +24 -24
  151. package/dist/assets/{NcContent-ZG2BJ837.css → NcContent-3Fl9j87E.css} +9 -9
  152. package/dist/assets/{NcDateTimePicker-SsDztIsS.css → NcDateTimePicker-CC5ocPIo.css} +10 -10
  153. package/dist/assets/{NcDateTimePickerNative-QBosiBWA.css → NcDateTimePickerNative-BeREqSH_.css} +19 -7
  154. package/dist/assets/{NcDialog-9-cx1V0y.css → NcDialog-IM0YIgKq.css} +30 -19
  155. package/dist/assets/{NcEmojiPicker-KRMyqbWg.css → NcEmojiPicker-nDpi1GKA.css} +6 -5
  156. package/dist/assets/{NcHeaderMenu-j8h_puZT.css → NcHeaderMenu-kKraSlS3.css} +15 -15
  157. package/dist/assets/{NcInputField-42mSa1zm.css → NcInputField-qx4Me7uJ.css} +39 -38
  158. package/dist/assets/{NcListItem--i7b67QY.css → NcListItem-RylkggkP.css} +49 -49
  159. package/dist/assets/{NcModal-DzsqMWSJ.css → NcModal-lgvjJTYz.css} +65 -65
  160. package/dist/assets/{NcNoteCard-OTfZqVvP.css → NcNoteCard-f0NZpwjL.css} +7 -7
  161. package/dist/assets/{NcRichContenteditable-nUZdQSMZ.css → NcRichContenteditable--bkjerM1.css} +13 -12
  162. package/dist/assets/{NcTextArea-6akBm4Ks.css → NcTextArea-Eqv_-5FR.css} +24 -23
  163. package/dist/assets/{referencePickerModal-G-NTZHL1.css → referencePickerModal-k5G-IS2z.css} +2 -2
  164. package/dist/chunks/{AlertCircleOutline-Q4EgxGNm.mjs → AlertCircleOutline-1fsF7za7.mjs} +6 -6
  165. package/dist/chunks/AlertCircleOutline-1fsF7za7.mjs.map +1 -0
  166. package/dist/chunks/{AlertCircleOutline-aU4Cu4IM.cjs → AlertCircleOutline-M7wVqz_-.cjs} +1 -1
  167. package/dist/chunks/AlertCircleOutline-M7wVqz_-.cjs.map +1 -0
  168. package/dist/chunks/{ArrowLeft-4DZMGcXE.cjs → ArrowLeft-arUkZZ3U.cjs} +4 -4
  169. package/dist/chunks/ArrowLeft-arUkZZ3U.cjs.map +1 -0
  170. package/dist/chunks/{ArrowLeft-LlLrrfss.mjs → ArrowLeft-uvAzhtxD.mjs} +4 -4
  171. package/dist/chunks/ArrowLeft-uvAzhtxD.mjs.map +1 -0
  172. package/dist/chunks/{ArrowRight-Fk_qtqpW.mjs → ArrowRight-6gYTXvBH.mjs} +4 -4
  173. package/dist/chunks/ArrowRight-6gYTXvBH.mjs.map +1 -0
  174. package/dist/chunks/{ArrowRight-mI4Fw0h2.cjs → ArrowRight-UxW1qyeX.cjs} +5 -5
  175. package/dist/chunks/ArrowRight-UxW1qyeX.cjs.map +1 -0
  176. package/dist/chunks/{Check-SlTPuUzR.cjs → Check-fwcsc82n.cjs} +4 -4
  177. package/dist/chunks/Check-fwcsc82n.cjs.map +1 -0
  178. package/dist/chunks/{Check-hentWFPd.mjs → Check-tQl0Vp18.mjs} +6 -6
  179. package/dist/chunks/Check-tQl0Vp18.mjs.map +1 -0
  180. package/dist/chunks/{ChevronDown-7w1_NWAd.cjs → ChevronDown-8tkFE94e.cjs} +4 -4
  181. package/dist/chunks/ChevronDown-8tkFE94e.cjs.map +1 -0
  182. package/dist/chunks/{ChevronDown-hP8YKVnf.mjs → ChevronDown-BxTx7hZm.mjs} +1 -1
  183. package/dist/chunks/ChevronDown-BxTx7hZm.mjs.map +1 -0
  184. package/dist/chunks/{ChevronRight-iDcqZ2Ih.cjs → ChevronRight-7GGKl2bX.cjs} +2 -2
  185. package/dist/chunks/ChevronRight-7GGKl2bX.cjs.map +1 -0
  186. package/dist/chunks/{ChevronRight-xEIO1OE7.mjs → ChevronRight-gF2cX9Cu.mjs} +4 -4
  187. package/dist/chunks/ChevronRight-gF2cX9Cu.mjs.map +1 -0
  188. package/dist/chunks/{Close-2nENZfbn.cjs → Close-e2vDvDm2.cjs} +7 -7
  189. package/dist/chunks/Close-e2vDvDm2.cjs.map +1 -0
  190. package/dist/chunks/{Close-4lZze_oD.mjs → Close-hKJ11hky.mjs} +5 -5
  191. package/dist/chunks/Close-hKJ11hky.mjs.map +1 -0
  192. package/dist/chunks/{DotsHorizontal-2GCivGee.mjs → DotsHorizontal-JfmEIGBo.mjs} +4 -4
  193. package/dist/chunks/DotsHorizontal-JfmEIGBo.mjs.map +1 -0
  194. package/dist/chunks/{DotsHorizontal-Ehuu1q0g.cjs → DotsHorizontal-z8LXg-4B.cjs} +4 -4
  195. package/dist/chunks/DotsHorizontal-z8LXg-4B.cjs.map +1 -0
  196. package/dist/chunks/{GenColors-avBT67Zu.mjs → GenColors-L7jWucCS.mjs} +3 -3
  197. package/dist/chunks/{GenColors-avBT67Zu.mjs.map → GenColors-L7jWucCS.mjs.map} +1 -1
  198. package/dist/chunks/{GenColors-ojnUsIA8.cjs → GenColors-vx_p2Tvw.cjs} +3 -3
  199. package/dist/chunks/{GenColors-ojnUsIA8.cjs.map → GenColors-vx_p2Tvw.cjs.map} +1 -1
  200. package/dist/chunks/{NcActionButton-TAhaLmwa.mjs → NcActionButton-VnbqrtOY.mjs} +15 -13
  201. package/dist/chunks/NcActionButton-VnbqrtOY.mjs.map +1 -0
  202. package/dist/chunks/{NcActionButton-G4OSfyii.cjs → NcActionButton-sJpgOVU9.cjs} +19 -17
  203. package/dist/chunks/NcActionButton-sJpgOVU9.cjs.map +1 -0
  204. package/dist/chunks/{NcActionButtonGroup-jTRjqpYM.cjs → NcActionButtonGroup-5PPiueIz.cjs} +2 -2
  205. package/dist/chunks/{NcActionButtonGroup-jTRjqpYM.cjs.map → NcActionButtonGroup-5PPiueIz.cjs.map} +1 -1
  206. package/dist/chunks/{NcActionButtonGroup-0hif9Dcf.mjs → NcActionButtonGroup-oFPVvd4U.mjs} +2 -2
  207. package/dist/chunks/{NcActionButtonGroup-0hif9Dcf.mjs.map → NcActionButtonGroup-oFPVvd4U.mjs.map} +1 -1
  208. package/dist/chunks/{NcActionCheckbox-PWAridhc.mjs → NcActionCheckbox-5-bIAzkC.mjs} +1 -1
  209. package/dist/chunks/{NcActionCheckbox-PWAridhc.mjs.map → NcActionCheckbox-5-bIAzkC.mjs.map} +1 -1
  210. package/dist/chunks/{NcActionCheckbox-Z4Wc9828.cjs → NcActionCheckbox-CUXJQss6.cjs} +1 -1
  211. package/dist/chunks/{NcActionCheckbox-Z4Wc9828.cjs.map → NcActionCheckbox-CUXJQss6.cjs.map} +1 -1
  212. package/dist/chunks/{NcActionInput-GuwDt73G.cjs → NcActionInput-of1oXP_n.cjs} +2 -2
  213. package/dist/chunks/{NcActionInput-GuwDt73G.cjs.map → NcActionInput-of1oXP_n.cjs.map} +1 -1
  214. package/dist/chunks/{NcActionInput-7-f1OPr6.mjs → NcActionInput-zg13uJ6x.mjs} +8 -8
  215. package/dist/chunks/{NcActionInput-7-f1OPr6.mjs.map → NcActionInput-zg13uJ6x.mjs.map} +1 -1
  216. package/dist/chunks/{NcActionLink-QLFtD_iF.cjs → NcActionLink-eBaRU5qY.cjs} +2 -2
  217. package/dist/chunks/{NcActionLink-QLFtD_iF.cjs.map → NcActionLink-eBaRU5qY.cjs.map} +1 -1
  218. package/dist/chunks/{NcActionLink-YllmwOrF.mjs → NcActionLink-pscYsQ_3.mjs} +2 -2
  219. package/dist/chunks/{NcActionLink-YllmwOrF.mjs.map → NcActionLink-pscYsQ_3.mjs.map} +1 -1
  220. package/dist/chunks/{NcActionRadio-DSBghCIA.mjs → NcActionRadio-1QLxEcfl.mjs} +1 -1
  221. package/dist/chunks/{NcActionRadio-DSBghCIA.mjs.map → NcActionRadio-1QLxEcfl.mjs.map} +1 -1
  222. package/dist/chunks/{NcActionRadio-1U50276u.cjs → NcActionRadio-3UkRsS6r.cjs} +1 -1
  223. package/dist/chunks/{NcActionRadio-1U50276u.cjs.map → NcActionRadio-3UkRsS6r.cjs.map} +1 -1
  224. package/dist/chunks/{NcActionRouter-vBYCxyc1.mjs → NcActionRouter-BsOXVKlY.mjs} +2 -2
  225. package/dist/chunks/{NcActionRouter-vBYCxyc1.mjs.map → NcActionRouter-BsOXVKlY.mjs.map} +1 -1
  226. package/dist/chunks/{NcActionRouter-Vg-BSvq7.cjs → NcActionRouter-c6pYto3T.cjs} +2 -2
  227. package/dist/chunks/{NcActionRouter-Vg-BSvq7.cjs.map → NcActionRouter-c6pYto3T.cjs.map} +1 -1
  228. package/dist/chunks/{NcActionText-p3Ew3r1G.mjs → NcActionText-9Ti6bh1b.mjs} +2 -2
  229. package/dist/chunks/{NcActionText-p3Ew3r1G.mjs.map → NcActionText-9Ti6bh1b.mjs.map} +1 -1
  230. package/dist/chunks/{NcActionText-aWTbDRVH.cjs → NcActionText-Sw_tMRaW.cjs} +2 -2
  231. package/dist/chunks/{NcActionText-aWTbDRVH.cjs.map → NcActionText-Sw_tMRaW.cjs.map} +1 -1
  232. package/dist/chunks/{NcActionTextEditable-RUh3BjpU.cjs → NcActionTextEditable-faJIAtYw.cjs} +2 -2
  233. package/dist/chunks/{NcActionTextEditable-RUh3BjpU.cjs.map → NcActionTextEditable-faJIAtYw.cjs.map} +1 -1
  234. package/dist/chunks/{NcActionTextEditable-PAn8Dpv4.mjs → NcActionTextEditable-xPb_cTMW.mjs} +3 -3
  235. package/dist/chunks/{NcActionTextEditable-PAn8Dpv4.mjs.map → NcActionTextEditable-xPb_cTMW.mjs.map} +1 -1
  236. package/dist/chunks/{NcActions-6Yv0De7D.mjs → NcActions-76CtOBCq.mjs} +160 -114
  237. package/dist/chunks/NcActions-76CtOBCq.mjs.map +1 -0
  238. package/dist/chunks/{NcActions-VJy75Dj8.cjs → NcActions-YpbmJ7hS.cjs} +160 -115
  239. package/dist/chunks/NcActions-YpbmJ7hS.cjs.map +1 -0
  240. package/dist/chunks/{NcAppContent-rV1EGzGY.mjs → NcAppContent-Tw5gNorr.mjs} +6 -6
  241. package/dist/chunks/{NcAppContent-rV1EGzGY.mjs.map → NcAppContent-Tw5gNorr.mjs.map} +1 -1
  242. package/dist/chunks/{NcAppContent-khCUrgDu.cjs → NcAppContent-mHc-Ms2b.cjs} +5 -5
  243. package/dist/chunks/{NcAppContent-khCUrgDu.cjs.map → NcAppContent-mHc-Ms2b.cjs.map} +1 -1
  244. package/dist/chunks/{NcAppNavigation-wvBM1j2_.mjs → NcAppNavigation-sY7HaHMv.mjs} +1 -1
  245. package/dist/chunks/{NcAppNavigation-wvBM1j2_.mjs.map → NcAppNavigation-sY7HaHMv.mjs.map} +1 -1
  246. package/dist/chunks/{NcAppNavigation-qnc3o3YP.cjs → NcAppNavigation-yEZ-RJA2.cjs} +1 -1
  247. package/dist/chunks/{NcAppNavigation-qnc3o3YP.cjs.map → NcAppNavigation-yEZ-RJA2.cjs.map} +1 -1
  248. package/dist/chunks/{NcAppNavigationCaption-6SpoIhcW.cjs → NcAppNavigationCaption-XpbVXYKV.cjs} +1 -1
  249. package/dist/chunks/{NcAppNavigationCaption-6SpoIhcW.cjs.map → NcAppNavigationCaption-XpbVXYKV.cjs.map} +1 -1
  250. package/dist/chunks/{NcAppNavigationCaption-wnBg9gYq.mjs → NcAppNavigationCaption-pcyV3wRO.mjs} +1 -1
  251. package/dist/chunks/{NcAppNavigationCaption-wnBg9gYq.mjs.map → NcAppNavigationCaption-pcyV3wRO.mjs.map} +1 -1
  252. package/dist/chunks/{NcAppNavigationItem-VR6oSt2q.mjs → NcAppNavigationItem-JLYTEgEH.mjs} +22 -22
  253. package/dist/chunks/NcAppNavigationItem-JLYTEgEH.mjs.map +1 -0
  254. package/dist/chunks/{NcAppNavigationItem-6kzsp9I8.cjs → NcAppNavigationItem-NE1UdZkS.cjs} +6 -6
  255. package/dist/chunks/NcAppNavigationItem-NE1UdZkS.cjs.map +1 -0
  256. package/dist/chunks/{NcAppNavigationNew-AamR4VD3.mjs → NcAppNavigationNew-6ZAJS_DY.mjs} +1 -1
  257. package/dist/chunks/{NcAppNavigationNew-AamR4VD3.mjs.map → NcAppNavigationNew-6ZAJS_DY.mjs.map} +1 -1
  258. package/dist/chunks/{NcAppNavigationNew-ae4GCKxx.cjs → NcAppNavigationNew-hmJL2IDR.cjs} +1 -1
  259. package/dist/chunks/{NcAppNavigationNew-ae4GCKxx.cjs.map → NcAppNavigationNew-hmJL2IDR.cjs.map} +1 -1
  260. package/dist/chunks/{NcAppNavigationNewItem-sZ0DdaXr.cjs → NcAppNavigationNewItem-MjsbS_dO.cjs} +2 -2
  261. package/dist/chunks/{NcAppNavigationNewItem-sZ0DdaXr.cjs.map → NcAppNavigationNewItem-MjsbS_dO.cjs.map} +1 -1
  262. package/dist/chunks/{NcAppNavigationNewItem-tSH06MX2.mjs → NcAppNavigationNewItem-NzRL8Uwy.mjs} +2 -2
  263. package/dist/chunks/{NcAppNavigationNewItem-tSH06MX2.mjs.map → NcAppNavigationNewItem-NzRL8Uwy.mjs.map} +1 -1
  264. package/dist/chunks/{NcAppNavigationSettings-mYqB3vRb.cjs → NcAppNavigationSettings-DPeH305A.cjs} +2 -2
  265. package/dist/chunks/NcAppNavigationSettings-DPeH305A.cjs.map +1 -0
  266. package/dist/chunks/{NcAppNavigationSettings-giVx2sHN.mjs → NcAppNavigationSettings-LR3QCvNr.mjs} +2 -2
  267. package/dist/chunks/NcAppNavigationSettings-LR3QCvNr.mjs.map +1 -0
  268. package/dist/chunks/{NcAppNavigationToggle-DBCPaseG.mjs → NcAppNavigationToggle-SEvIEY16.mjs} +29 -20
  269. package/dist/chunks/NcAppNavigationToggle-SEvIEY16.mjs.map +1 -0
  270. package/dist/chunks/{NcAppNavigationToggle-cRUPsHZH.cjs → NcAppNavigationToggle-sXvQDqok.cjs} +17 -8
  271. package/dist/chunks/NcAppNavigationToggle-sXvQDqok.cjs.map +1 -0
  272. package/dist/chunks/{NcAppSettingsDialog-WvDTWMwC.cjs → NcAppSettingsDialog-HnYa47vg.cjs} +51 -44
  273. package/dist/chunks/{NcAppSettingsDialog-90cJBaTf.mjs.map → NcAppSettingsDialog-HnYa47vg.cjs.map} +1 -1
  274. package/dist/chunks/{NcAppSettingsDialog-90cJBaTf.mjs → NcAppSettingsDialog-nbTWBbti.mjs} +65 -58
  275. package/dist/chunks/{NcAppSettingsDialog-WvDTWMwC.cjs.map → NcAppSettingsDialog-nbTWBbti.mjs.map} +1 -1
  276. package/dist/chunks/NcAppSettingsSection-LHcKgBpz.cjs +54 -0
  277. package/dist/chunks/{NcAppSettingsSection-wLClE1lO.cjs.map → NcAppSettingsSection-LHcKgBpz.cjs.map} +1 -1
  278. package/dist/chunks/{NcAppSettingsSection-WcupJObJ.mjs → NcAppSettingsSection-a0Un2ZRv.mjs} +18 -15
  279. package/dist/chunks/{NcAppSettingsSection-WcupJObJ.mjs.map → NcAppSettingsSection-a0Un2ZRv.mjs.map} +1 -1
  280. package/dist/chunks/NcAppSidebar-Tvy0LplS.cjs +712 -0
  281. package/dist/chunks/NcAppSidebar-Tvy0LplS.cjs.map +1 -0
  282. package/dist/chunks/NcAppSidebar-xWMj1EI8.mjs +731 -0
  283. package/dist/chunks/NcAppSidebar-xWMj1EI8.mjs.map +1 -0
  284. package/dist/chunks/{NcAppSidebarTab-BeWt8Sdt.cjs → NcAppSidebarTab-oPHofCKq.cjs} +15 -14
  285. package/dist/chunks/{NcAppSidebarTab-BeWt8Sdt.cjs.map → NcAppSidebarTab-oPHofCKq.cjs.map} +1 -1
  286. package/dist/chunks/{NcAppSidebarTab--7BkDK9T.mjs → NcAppSidebarTab-sMoFkDTb.mjs} +13 -12
  287. package/dist/chunks/{NcAppSidebarTab--7BkDK9T.mjs.map → NcAppSidebarTab-sMoFkDTb.mjs.map} +1 -1
  288. package/dist/chunks/{NcAvatar-paLjF9Tc.mjs → NcAvatar-JsMCceHU.mjs} +110 -100
  289. package/dist/chunks/NcAvatar-JsMCceHU.mjs.map +1 -0
  290. package/dist/chunks/{NcAvatar-1MXwkOA2.cjs → NcAvatar-uPVG9WWg.cjs} +133 -123
  291. package/dist/chunks/NcAvatar-uPVG9WWg.cjs.map +1 -0
  292. package/dist/chunks/{NcBreadcrumb-X45pwcLq.cjs → NcBreadcrumb-7q3EEfcO.cjs} +3 -3
  293. package/dist/chunks/{NcBreadcrumb-X45pwcLq.cjs.map → NcBreadcrumb-7q3EEfcO.cjs.map} +1 -1
  294. package/dist/chunks/{NcBreadcrumb-gB_hnDG_.mjs → NcBreadcrumb-Fr7J33Qv.mjs} +5 -5
  295. package/dist/chunks/{NcBreadcrumb-gB_hnDG_.mjs.map → NcBreadcrumb-Fr7J33Qv.mjs.map} +1 -1
  296. package/dist/chunks/{NcBreadcrumbs-Y8LRE6xz.cjs → NcBreadcrumbs-XVIsLfXn.cjs} +100 -96
  297. package/dist/chunks/NcBreadcrumbs-XVIsLfXn.cjs.map +1 -0
  298. package/dist/chunks/{NcBreadcrumbs-N7-Jj_ry.mjs → NcBreadcrumbs-ozezYXlM.mjs} +114 -110
  299. package/dist/chunks/NcBreadcrumbs-ozezYXlM.mjs.map +1 -0
  300. package/dist/chunks/{NcButton-Uxh-oARg.cjs → NcButton-7UKtzkX5.cjs} +73 -66
  301. package/dist/chunks/NcButton-7UKtzkX5.cjs.map +1 -0
  302. package/dist/chunks/{NcButton-nCkJxwsi.mjs → NcButton-YOXv3gFY.mjs} +73 -66
  303. package/dist/chunks/NcButton-YOXv3gFY.mjs.map +1 -0
  304. package/dist/chunks/{NcCheckboxRadioSwitch-Hi5ocuhB.cjs → NcCheckboxRadioSwitch-IA6Ssm8K.cjs} +22 -22
  305. package/dist/chunks/NcCheckboxRadioSwitch-IA6Ssm8K.cjs.map +1 -0
  306. package/dist/chunks/{NcCheckboxRadioSwitch-RgFq8ZUL.mjs → NcCheckboxRadioSwitch-NwTx_zgG.mjs} +80 -80
  307. package/dist/chunks/NcCheckboxRadioSwitch-NwTx_zgG.mjs.map +1 -0
  308. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-togIrFzp.cjs +3 -0
  309. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-togIrFzp.cjs.map +1 -0
  310. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-yghIE9RS.mjs +3 -0
  311. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-yghIE9RS.mjs.map +1 -0
  312. package/dist/chunks/{NcColorPicker-hS0KYrLP.mjs → NcColorPicker-DNy0FRJb.mjs} +42 -35
  313. package/dist/chunks/{NcColorPicker-hS0KYrLP.mjs.map → NcColorPicker-DNy0FRJb.mjs.map} +1 -1
  314. package/dist/chunks/{NcColorPicker-rE3Dd7s7.cjs → NcColorPicker-i9PgTYBd.cjs} +26 -19
  315. package/dist/chunks/{NcColorPicker-rE3Dd7s7.cjs.map → NcColorPicker-i9PgTYBd.cjs.map} +1 -1
  316. package/dist/chunks/NcContent-HdbQCleH.mjs +111 -0
  317. package/dist/chunks/{NcContent-fGj1oSM5.cjs.map → NcContent-HdbQCleH.mjs.map} +1 -1
  318. package/dist/chunks/NcContent-MOEEa0z1.cjs +103 -0
  319. package/dist/chunks/{NcContent-CUWR0V-w.mjs.map → NcContent-MOEEa0z1.cjs.map} +1 -1
  320. package/dist/chunks/{NcDashboardWidget-DC4_9Yv_.mjs → NcDashboardWidget-JGkvqDWC.mjs} +4 -4
  321. package/dist/chunks/{NcDashboardWidget-DC4_9Yv_.mjs.map → NcDashboardWidget-JGkvqDWC.mjs.map} +1 -1
  322. package/dist/chunks/{NcDashboardWidget-fnhMGIb6.cjs → NcDashboardWidget-qHSuK2yd.cjs} +1 -1
  323. package/dist/chunks/{NcDashboardWidget-fnhMGIb6.cjs.map → NcDashboardWidget-qHSuK2yd.cjs.map} +1 -1
  324. package/dist/chunks/{NcDashboardWidgetItem-0jGJ_5Nx.cjs → NcDashboardWidgetItem-fl92G4Pt.cjs} +1 -1
  325. package/dist/chunks/{NcDashboardWidgetItem-0jGJ_5Nx.cjs.map → NcDashboardWidgetItem-fl92G4Pt.cjs.map} +1 -1
  326. package/dist/chunks/{NcDashboardWidgetItem-TD0N9xlv.mjs → NcDashboardWidgetItem-oQGp29KO.mjs} +3 -3
  327. package/dist/chunks/{NcDashboardWidgetItem-TD0N9xlv.mjs.map → NcDashboardWidgetItem-oQGp29KO.mjs.map} +1 -1
  328. package/dist/chunks/{NcDateTime-EnQV6T52.mjs → NcDateTime-JYO8uPbb.mjs} +1 -1
  329. package/dist/chunks/{NcDateTime-EnQV6T52.mjs.map → NcDateTime-JYO8uPbb.mjs.map} +1 -1
  330. package/dist/chunks/{NcDateTime-m_WZoAvd.cjs → NcDateTime-T52KrH65.cjs} +1 -1
  331. package/dist/chunks/{NcDateTime-m_WZoAvd.cjs.map → NcDateTime-T52KrH65.cjs.map} +1 -1
  332. package/dist/chunks/{NcDateTimePicker-4edYzlVf.cjs → NcDateTimePicker-X2pCnTer.cjs} +36 -34
  333. package/dist/chunks/NcDateTimePicker-X2pCnTer.cjs.map +1 -0
  334. package/dist/chunks/{NcDateTimePicker-GHt3kJ7B.mjs → NcDateTimePicker-ahgVldMQ.mjs} +55 -53
  335. package/dist/chunks/NcDateTimePicker-ahgVldMQ.mjs.map +1 -0
  336. package/dist/chunks/{NcDateTimePickerNative-nDQjZSiZ.mjs → NcDateTimePickerNative-3Xru7_OT.mjs} +12 -12
  337. package/dist/chunks/{NcDateTimePickerNative-nDQjZSiZ.mjs.map → NcDateTimePickerNative-3Xru7_OT.mjs.map} +1 -1
  338. package/dist/chunks/{NcDateTimePickerNative-m30hv5MT.cjs → NcDateTimePickerNative-xSITuvpX.cjs} +13 -13
  339. package/dist/chunks/{NcDateTimePickerNative-m30hv5MT.cjs.map → NcDateTimePickerNative-xSITuvpX.cjs.map} +1 -1
  340. package/dist/chunks/{NcDialog-qsI2VY8S.cjs → NcDialog-BYXi2emF.cjs} +26 -24
  341. package/dist/chunks/NcDialog-BYXi2emF.cjs.map +1 -0
  342. package/dist/chunks/{NcDialog-eZWcoYL9.mjs → NcDialog-rTTTdaH3.mjs} +36 -34
  343. package/dist/chunks/NcDialog-rTTTdaH3.mjs.map +1 -0
  344. package/dist/chunks/NcDialogButton-37TPbyFs.cjs +73 -0
  345. package/dist/chunks/{NcDialogButton-Dou0EAc_.cjs.map → NcDialogButton-37TPbyFs.cjs.map} +1 -1
  346. package/dist/chunks/{NcDialogButton-R-zAILHz.mjs → NcDialogButton-ax4NTfDU.mjs} +21 -20
  347. package/dist/chunks/{NcDialogButton-R-zAILHz.mjs.map → NcDialogButton-ax4NTfDU.mjs.map} +1 -1
  348. package/dist/chunks/{NcEmojiPicker-84m02Stk.mjs → NcEmojiPicker-oWZ5anxp.mjs} +74 -71
  349. package/dist/chunks/NcEmojiPicker-oWZ5anxp.mjs.map +1 -0
  350. package/dist/chunks/{NcEmojiPicker-hxiKGEHb.cjs → NcEmojiPicker-tOE2N9VS.cjs} +68 -65
  351. package/dist/chunks/NcEmojiPicker-tOE2N9VS.cjs.map +1 -0
  352. package/dist/chunks/{NcHeaderMenu-yJJ4FWin.mjs → NcHeaderMenu-67JCzTGo.mjs} +44 -42
  353. package/dist/chunks/{NcHeaderMenu-Eo6rZDeL.cjs.map → NcHeaderMenu-67JCzTGo.mjs.map} +1 -1
  354. package/dist/chunks/{NcHeaderMenu-Eo6rZDeL.cjs → NcHeaderMenu-TvFFSvGS.cjs} +30 -28
  355. package/dist/chunks/{NcHeaderMenu-yJJ4FWin.mjs.map → NcHeaderMenu-TvFFSvGS.cjs.map} +1 -1
  356. package/dist/chunks/{NcIconSvgWrapper-gQnsseD2.mjs → NcIconSvgWrapper-ACaaN_pS.mjs} +1 -1
  357. package/dist/chunks/{NcIconSvgWrapper-gQnsseD2.mjs.map → NcIconSvgWrapper-ACaaN_pS.mjs.map} +1 -1
  358. package/dist/chunks/{NcIconSvgWrapper-rDMSblV4.cjs → NcIconSvgWrapper-_hHu9P_M.cjs} +1 -1
  359. package/dist/chunks/{NcIconSvgWrapper-rDMSblV4.cjs.map → NcIconSvgWrapper-_hHu9P_M.cjs.map} +1 -1
  360. package/dist/chunks/{NcInputConfirmCancel-3c-uWUuw.cjs → NcInputConfirmCancel-DYlc289d.cjs} +1 -1
  361. package/dist/chunks/{NcInputConfirmCancel-3c-uWUuw.cjs.map → NcInputConfirmCancel-DYlc289d.cjs.map} +1 -1
  362. package/dist/chunks/{NcInputConfirmCancel-cDJ5_L-Z.mjs → NcInputConfirmCancel-lmWu4ouW.mjs} +4 -4
  363. package/dist/chunks/{NcInputConfirmCancel-cDJ5_L-Z.mjs.map → NcInputConfirmCancel-lmWu4ouW.mjs.map} +1 -1
  364. package/dist/chunks/{NcInputField-9PAE2ONE.mjs → NcInputField-6pRWha3h.mjs} +7 -7
  365. package/dist/chunks/{NcInputField-dP-QARJo.cjs.map → NcInputField-6pRWha3h.mjs.map} +1 -1
  366. package/dist/chunks/{NcInputField-dP-QARJo.cjs → NcInputField-6vveMrmf.cjs} +5 -5
  367. package/dist/chunks/{NcInputField-9PAE2ONE.mjs.map → NcInputField-6vveMrmf.cjs.map} +1 -1
  368. package/dist/chunks/{NcListItem-iWTR4IZZ.cjs → NcListItem-3QDILDKr.cjs} +55 -53
  369. package/dist/chunks/NcListItem-3QDILDKr.cjs.map +1 -0
  370. package/dist/chunks/{NcListItem-gdczIybY.mjs → NcListItem-vkgu6Biu.mjs} +63 -61
  371. package/dist/chunks/NcListItem-vkgu6Biu.mjs.map +1 -0
  372. package/dist/chunks/{NcListItemIcon-XsKTtITp.mjs → NcListItemIcon-130Lt3dW.mjs} +32 -31
  373. package/dist/chunks/{NcListItemIcon-XsKTtITp.mjs.map → NcListItemIcon-130Lt3dW.mjs.map} +1 -1
  374. package/dist/chunks/{NcListItemIcon-FeNwaJy4.cjs → NcListItemIcon-dOvFvjqI.cjs} +29 -28
  375. package/dist/chunks/{NcListItemIcon-FeNwaJy4.cjs.map → NcListItemIcon-dOvFvjqI.cjs.map} +1 -1
  376. package/dist/chunks/{NcNoteCard-joOYqjyF.mjs → NcNoteCard-MnmgJvKD.mjs} +41 -39
  377. package/dist/chunks/NcNoteCard-MnmgJvKD.mjs.map +1 -0
  378. package/dist/chunks/{NcNoteCard-IAgTi5HW.cjs → NcNoteCard-ujnbiyLI.cjs} +20 -18
  379. package/dist/chunks/NcNoteCard-ujnbiyLI.cjs.map +1 -0
  380. package/dist/chunks/{NcPasswordField-QA6kIMu2.cjs → NcPasswordField-8rboJv29.cjs} +21 -21
  381. package/dist/chunks/NcPasswordField-8rboJv29.cjs.map +1 -0
  382. package/dist/chunks/{NcPasswordField-8NI5u7lk.mjs → NcPasswordField-RHelr3R-.mjs} +27 -27
  383. package/dist/chunks/NcPasswordField-RHelr3R-.mjs.map +1 -0
  384. package/dist/chunks/{NcPopover-sVfBFdPh.cjs → NcPopover-J0pw-klF.cjs} +31 -32
  385. package/dist/chunks/NcPopover-J0pw-klF.cjs.map +1 -0
  386. package/dist/chunks/{NcPopover-HwP68PjO.mjs → NcPopover-XgOWyuQF.mjs} +46 -47
  387. package/dist/chunks/NcPopover-XgOWyuQF.mjs.map +1 -0
  388. package/dist/chunks/{NcProgressBar-KvtCwl-0.mjs → NcProgressBar-1EANJyYJ.mjs} +2 -2
  389. package/dist/chunks/{NcProgressBar-KvtCwl-0.mjs.map → NcProgressBar-1EANJyYJ.mjs.map} +1 -1
  390. package/dist/chunks/{NcProgressBar-3p3Phbcw.cjs → NcProgressBar-zsehqkEw.cjs} +2 -2
  391. package/dist/chunks/{NcProgressBar-3p3Phbcw.cjs.map → NcProgressBar-zsehqkEw.cjs.map} +1 -1
  392. package/dist/chunks/{NcRelatedResourcesPanel--UoHihRf.mjs → NcRelatedResourcesPanel-NqDuh_7F.mjs} +24 -20
  393. package/dist/chunks/{NcRelatedResourcesPanel--UoHihRf.mjs.map → NcRelatedResourcesPanel-NqDuh_7F.mjs.map} +1 -1
  394. package/dist/chunks/{NcRelatedResourcesPanel-oTY2g2gt.cjs → NcRelatedResourcesPanel-QgNIHnCY.cjs} +45 -41
  395. package/dist/chunks/{NcRelatedResourcesPanel-oTY2g2gt.cjs.map → NcRelatedResourcesPanel-QgNIHnCY.cjs.map} +1 -1
  396. package/dist/chunks/{NcRichContenteditable-0x4AmYZf.cjs → NcRichContenteditable-L8aEJNGb.cjs} +28 -25
  397. package/dist/chunks/{NcRichContenteditable-rSquEMs2.mjs.map → NcRichContenteditable-L8aEJNGb.cjs.map} +1 -1
  398. package/dist/chunks/{NcRichContenteditable-rSquEMs2.mjs → NcRichContenteditable-W0BnJp3x.mjs} +31 -28
  399. package/dist/chunks/{NcRichContenteditable-0x4AmYZf.cjs.map → NcRichContenteditable-W0BnJp3x.mjs.map} +1 -1
  400. package/dist/chunks/{NcRichText-S8FLpGCe.cjs → NcRichText-91v7gJEe.cjs} +66 -54
  401. package/dist/chunks/NcRichText-91v7gJEe.cjs.map +1 -0
  402. package/dist/chunks/{NcRichText-_MNRVaQB.mjs → NcRichText-RTwlrmhz.mjs} +95 -83
  403. package/dist/chunks/NcRichText-RTwlrmhz.mjs.map +1 -0
  404. package/dist/chunks/{NcSelect-w_Gt1U72.mjs → NcSelect-HmmLuUCp.mjs} +63 -58
  405. package/dist/chunks/{NcSelect-9cM-OGdn.cjs.map → NcSelect-HmmLuUCp.mjs.map} +1 -1
  406. package/dist/chunks/{NcSelect-9cM-OGdn.cjs → NcSelect-P2FpWJBr.cjs} +46 -41
  407. package/dist/chunks/{NcSelect-w_Gt1U72.mjs.map → NcSelect-P2FpWJBr.cjs.map} +1 -1
  408. package/dist/chunks/{NcSelectTags-vm5Fx2H5.cjs → NcSelectTags-HX8YbYwd.cjs} +2 -11
  409. package/dist/chunks/{NcSelectTags-vm5Fx2H5.cjs.map → NcSelectTags-HX8YbYwd.cjs.map} +1 -1
  410. package/dist/chunks/{NcSelectTags-6F9oTRUw.mjs → NcSelectTags-ZoLcdmHG.mjs} +3 -12
  411. package/dist/chunks/{NcSelectTags-6F9oTRUw.mjs.map → NcSelectTags-ZoLcdmHG.mjs.map} +1 -1
  412. package/dist/chunks/{NcSettingsInputText-KTYvd9zc.mjs → NcSettingsInputText-9TVSwO_s.mjs} +1 -1
  413. package/dist/chunks/{NcSettingsInputText-KTYvd9zc.mjs.map → NcSettingsInputText-9TVSwO_s.mjs.map} +1 -1
  414. package/dist/chunks/{NcSettingsInputText-wY_R_c6S.cjs → NcSettingsInputText-oJ_c6sMr.cjs} +1 -1
  415. package/dist/chunks/{NcSettingsInputText-wY_R_c6S.cjs.map → NcSettingsInputText-oJ_c6sMr.cjs.map} +1 -1
  416. package/dist/chunks/{NcSettingsSection-2TP0NQPH.cjs → NcSettingsSection-W7Ieq32P.cjs} +7 -7
  417. package/dist/chunks/NcSettingsSection-W7Ieq32P.cjs.map +1 -0
  418. package/dist/chunks/{NcSettingsSection-dEPaFL2w.mjs → NcSettingsSection-bpmpu801.mjs} +2 -2
  419. package/dist/chunks/NcSettingsSection-bpmpu801.mjs.map +1 -0
  420. package/dist/chunks/{NcSettingsSelectGroup-JfvkEnNr.mjs → NcSettingsSelectGroup-HFDYgsw-.mjs} +5 -5
  421. package/dist/chunks/{NcSettingsSelectGroup-JfvkEnNr.mjs.map → NcSettingsSelectGroup-HFDYgsw-.mjs.map} +1 -1
  422. package/dist/chunks/{NcSettingsSelectGroup-p8cgn6pv.cjs → NcSettingsSelectGroup-UnB2ao3D.cjs} +4 -4
  423. package/dist/chunks/{NcSettingsSelectGroup-p8cgn6pv.cjs.map → NcSettingsSelectGroup-UnB2ao3D.cjs.map} +1 -1
  424. package/dist/chunks/{NcTextArea-hNPj4rEs.cjs → NcTextArea-QIkvyzz7.cjs} +7 -7
  425. package/dist/chunks/{NcTextArea-hNPj4rEs.cjs.map → NcTextArea-QIkvyzz7.cjs.map} +1 -1
  426. package/dist/chunks/{NcTextArea-dRgNOiSU.mjs → NcTextArea-SeSiP6Dy.mjs} +6 -6
  427. package/dist/chunks/{NcTextArea-dRgNOiSU.mjs.map → NcTextArea-SeSiP6Dy.mjs.map} +1 -1
  428. package/dist/chunks/{NcTextField-avDV7Ry_.mjs → NcTextField-qqwMB07_.mjs} +19 -19
  429. package/dist/chunks/NcTextField-qqwMB07_.mjs.map +1 -0
  430. package/dist/chunks/{NcTextField-bz_keSKF.cjs → NcTextField-zi19KqEm.cjs} +2 -2
  431. package/dist/chunks/NcTextField-zi19KqEm.cjs.map +1 -0
  432. package/dist/chunks/NcTimezonePicker-EPCmHeHy.mjs +3790 -0
  433. package/dist/chunks/{NcTimezonePicker-wLjOcbbU.mjs.map → NcTimezonePicker-EPCmHeHy.mjs.map} +1 -1
  434. package/dist/chunks/NcTimezonePicker-f6X4yiuj.cjs +3783 -0
  435. package/dist/chunks/{NcTimezonePicker-YNWJXRnl.cjs.map → NcTimezonePicker-f6X4yiuj.cjs.map} +1 -1
  436. package/dist/chunks/{NcUserBubble-fA1TQtnx.mjs → NcUserBubble-Jw-rOju8.mjs} +17 -16
  437. package/dist/chunks/{NcUserBubble-fA1TQtnx.mjs.map → NcUserBubble-Jw-rOju8.mjs.map} +1 -1
  438. package/dist/chunks/{NcUserBubble-epl-RDQa.cjs → NcUserBubble-NZeBFOmo.cjs} +23 -22
  439. package/dist/chunks/{NcUserBubble-epl-RDQa.cjs.map → NcUserBubble-NZeBFOmo.cjs.map} +1 -1
  440. package/dist/chunks/NcUserStatusIcon-b0xt-g7X.cjs +146 -0
  441. package/dist/chunks/{NcUserStatusIcon-swCHU0tl.cjs.map → NcUserStatusIcon-b0xt-g7X.cjs.map} +1 -1
  442. package/dist/chunks/NcUserStatusIcon-hmLq9dti.mjs +154 -0
  443. package/dist/chunks/{NcUserStatusIcon--z2VUZIt.mjs.map → NcUserStatusIcon-hmLq9dti.mjs.map} +1 -1
  444. package/dist/chunks/{ScopeComponent-4ppIHwI4.cjs → ScopeComponent-Gzz2FMnQ.cjs} +1 -1
  445. package/dist/chunks/{ScopeComponent-4ppIHwI4.cjs.map → ScopeComponent-Gzz2FMnQ.cjs.map} +1 -1
  446. package/dist/chunks/{ScopeComponent-KbEZrKGJ.mjs → ScopeComponent-mG7CSpxl.mjs} +1 -1
  447. package/dist/chunks/{ScopeComponent-KbEZrKGJ.mjs.map → ScopeComponent-mG7CSpxl.mjs.map} +1 -1
  448. package/dist/chunks/_l10n-Fl7RzbcZ.cjs +64 -0
  449. package/dist/chunks/_l10n-Fl7RzbcZ.cjs.map +1 -0
  450. package/dist/chunks/_l10n-uuAvfQgY.mjs +66 -0
  451. package/dist/chunks/_l10n-uuAvfQgY.mjs.map +1 -0
  452. package/dist/chunks/{actionGlobal-kyAHPMcH.cjs → actionGlobal-Cx6Fi9Pj.cjs} +4 -3
  453. package/dist/chunks/{actionGlobal-1onxXJwM.mjs.map → actionGlobal-Cx6Fi9Pj.cjs.map} +1 -1
  454. package/dist/chunks/{actionGlobal-1onxXJwM.mjs → actionGlobal-pi4JQ0yh.mjs} +4 -3
  455. package/dist/chunks/{actionGlobal-kyAHPMcH.cjs.map → actionGlobal-pi4JQ0yh.mjs.map} +1 -1
  456. package/dist/chunks/{actionText-WQ07UNmt.cjs → actionText-H_SIpDkO.cjs} +1 -1
  457. package/dist/chunks/{actionText-WQ07UNmt.cjs.map → actionText-H_SIpDkO.cjs.map} +1 -1
  458. package/dist/chunks/{actionText-IqPIFk1D.mjs → actionText-yZ-YQ_fz.mjs} +1 -1
  459. package/dist/chunks/{actionText-IqPIFk1D.mjs.map → actionText-yZ-YQ_fz.mjs.map} +1 -1
  460. package/dist/chunks/{emoji-mJIuLpNR.cjs → emoji-NrWIXNZ4.cjs} +7 -6
  461. package/dist/chunks/{emoji-mJIuLpNR.cjs.map → emoji-NrWIXNZ4.cjs.map} +1 -1
  462. package/dist/chunks/{emoji-tllD0Rvt.mjs → emoji-mEkenm2t.mjs} +4 -3
  463. package/dist/chunks/{emoji-tllD0Rvt.mjs.map → emoji-mEkenm2t.mjs.map} +1 -1
  464. package/dist/chunks/{index-NP8hZQhr.cjs → index-6mzaBTml.cjs} +8 -10
  465. package/dist/chunks/{index-NP8hZQhr.cjs.map → index-6mzaBTml.cjs.map} +1 -1
  466. package/dist/chunks/{index-hX7KRzaJ.mjs → index-clpvFjGU.mjs} +8 -10
  467. package/dist/chunks/{index-hX7KRzaJ.mjs.map → index-clpvFjGU.mjs.map} +1 -1
  468. package/dist/chunks/{referencePickerModal-9sd4Ftja.mjs → referencePickerModal-Fu9pQBdT.mjs} +188 -173
  469. package/dist/chunks/referencePickerModal-Fu9pQBdT.mjs.map +1 -0
  470. package/dist/chunks/{referencePickerModal-gCkuVbeM.cjs → referencePickerModal-JVKOIVTG.cjs} +143 -128
  471. package/dist/chunks/referencePickerModal-JVKOIVTG.cjs.map +1 -0
  472. package/dist/chunks/{usernameToColor-t95If_mB.mjs → usernameToColor-YCPAFxlc.mjs} +1 -1
  473. package/dist/chunks/{usernameToColor-t95If_mB.mjs.map → usernameToColor-YCPAFxlc.mjs.map} +1 -1
  474. package/dist/chunks/{usernameToColor--FE9Dq8h.cjs → usernameToColor-r5M5P032.cjs} +1 -1
  475. package/dist/chunks/{usernameToColor--FE9Dq8h.cjs.map → usernameToColor-r5M5P032.cjs.map} +1 -1
  476. package/dist/index.cjs +4 -4
  477. package/dist/index.mjs +64 -64
  478. package/dist/src/components/NcActionButton/NcActionButton.vue.d.ts +8 -4
  479. package/dist/src/components/NcActions/NcActions.vue.d.ts +29 -7
  480. package/dist/src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue.d.ts +14 -0
  481. package/dist/src/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +2 -3
  482. package/dist/src/components/NcButton/NcButton.vue.d.ts +1 -0
  483. package/dist/src/components/NcListItem/NcListItem.vue.d.ts +1 -1
  484. package/dist/src/components/NcRichText/NcReferenceList.vue.d.ts +9 -0
  485. package/dist/src/components/NcRichText/NcRichText.vue.d.ts +1 -1
  486. package/dist/vendor.LICENSE.txt +1 -1
  487. package/package.json +4 -3
  488. package/dist/chunks/AlertCircleOutline-Q4EgxGNm.mjs.map +0 -1
  489. package/dist/chunks/AlertCircleOutline-aU4Cu4IM.cjs.map +0 -1
  490. package/dist/chunks/ArrowLeft-4DZMGcXE.cjs.map +0 -1
  491. package/dist/chunks/ArrowLeft-LlLrrfss.mjs.map +0 -1
  492. package/dist/chunks/ArrowRight-Fk_qtqpW.mjs.map +0 -1
  493. package/dist/chunks/ArrowRight-mI4Fw0h2.cjs.map +0 -1
  494. package/dist/chunks/Check-SlTPuUzR.cjs.map +0 -1
  495. package/dist/chunks/Check-hentWFPd.mjs.map +0 -1
  496. package/dist/chunks/ChevronDown-7w1_NWAd.cjs.map +0 -1
  497. package/dist/chunks/ChevronDown-hP8YKVnf.mjs.map +0 -1
  498. package/dist/chunks/ChevronRight-iDcqZ2Ih.cjs.map +0 -1
  499. package/dist/chunks/ChevronRight-xEIO1OE7.mjs.map +0 -1
  500. package/dist/chunks/Close-2nENZfbn.cjs.map +0 -1
  501. package/dist/chunks/Close-4lZze_oD.mjs.map +0 -1
  502. package/dist/chunks/DotsHorizontal-2GCivGee.mjs.map +0 -1
  503. package/dist/chunks/DotsHorizontal-Ehuu1q0g.cjs.map +0 -1
  504. package/dist/chunks/NcActionButton-G4OSfyii.cjs.map +0 -1
  505. package/dist/chunks/NcActionButton-TAhaLmwa.mjs.map +0 -1
  506. package/dist/chunks/NcActions-6Yv0De7D.mjs.map +0 -1
  507. package/dist/chunks/NcActions-VJy75Dj8.cjs.map +0 -1
  508. package/dist/chunks/NcAppNavigationItem-6kzsp9I8.cjs.map +0 -1
  509. package/dist/chunks/NcAppNavigationItem-VR6oSt2q.mjs.map +0 -1
  510. package/dist/chunks/NcAppNavigationSettings-giVx2sHN.mjs.map +0 -1
  511. package/dist/chunks/NcAppNavigationSettings-mYqB3vRb.cjs.map +0 -1
  512. package/dist/chunks/NcAppNavigationToggle-DBCPaseG.mjs.map +0 -1
  513. package/dist/chunks/NcAppNavigationToggle-cRUPsHZH.cjs.map +0 -1
  514. package/dist/chunks/NcAppSettingsSection-wLClE1lO.cjs +0 -51
  515. package/dist/chunks/NcAppSidebar-19vWkj82.cjs +0 -706
  516. package/dist/chunks/NcAppSidebar-19vWkj82.cjs.map +0 -1
  517. package/dist/chunks/NcAppSidebar-yjd-HiUO.mjs +0 -725
  518. package/dist/chunks/NcAppSidebar-yjd-HiUO.mjs.map +0 -1
  519. package/dist/chunks/NcAvatar-1MXwkOA2.cjs.map +0 -1
  520. package/dist/chunks/NcAvatar-paLjF9Tc.mjs.map +0 -1
  521. package/dist/chunks/NcBreadcrumbs-N7-Jj_ry.mjs.map +0 -1
  522. package/dist/chunks/NcBreadcrumbs-Y8LRE6xz.cjs.map +0 -1
  523. package/dist/chunks/NcButton-Uxh-oARg.cjs.map +0 -1
  524. package/dist/chunks/NcButton-nCkJxwsi.mjs.map +0 -1
  525. package/dist/chunks/NcCheckboxRadioSwitch-Hi5ocuhB.cjs.map +0 -1
  526. package/dist/chunks/NcCheckboxRadioSwitch-RgFq8ZUL.mjs.map +0 -1
  527. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_c3135eb8_lang-RYt-H2PA.cjs +0 -3
  528. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_c3135eb8_lang-RYt-H2PA.cjs.map +0 -1
  529. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_c3135eb8_lang-kB-352LR.mjs +0 -3
  530. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_c3135eb8_lang-kB-352LR.mjs.map +0 -1
  531. package/dist/chunks/NcContent-CUWR0V-w.mjs +0 -156
  532. package/dist/chunks/NcContent-fGj1oSM5.cjs +0 -148
  533. package/dist/chunks/NcDateTimePicker-4edYzlVf.cjs.map +0 -1
  534. package/dist/chunks/NcDateTimePicker-GHt3kJ7B.mjs.map +0 -1
  535. package/dist/chunks/NcDialog-eZWcoYL9.mjs.map +0 -1
  536. package/dist/chunks/NcDialog-qsI2VY8S.cjs.map +0 -1
  537. package/dist/chunks/NcDialogButton-Dou0EAc_.cjs +0 -72
  538. package/dist/chunks/NcEmojiPicker-84m02Stk.mjs.map +0 -1
  539. package/dist/chunks/NcEmojiPicker-hxiKGEHb.cjs.map +0 -1
  540. package/dist/chunks/NcListItem-gdczIybY.mjs.map +0 -1
  541. package/dist/chunks/NcListItem-iWTR4IZZ.cjs.map +0 -1
  542. package/dist/chunks/NcNoteCard-IAgTi5HW.cjs.map +0 -1
  543. package/dist/chunks/NcNoteCard-joOYqjyF.mjs.map +0 -1
  544. package/dist/chunks/NcPasswordField-8NI5u7lk.mjs.map +0 -1
  545. package/dist/chunks/NcPasswordField-QA6kIMu2.cjs.map +0 -1
  546. package/dist/chunks/NcPopover-HwP68PjO.mjs.map +0 -1
  547. package/dist/chunks/NcPopover-sVfBFdPh.cjs.map +0 -1
  548. package/dist/chunks/NcRichText-S8FLpGCe.cjs.map +0 -1
  549. package/dist/chunks/NcRichText-_MNRVaQB.mjs.map +0 -1
  550. package/dist/chunks/NcSettingsSection-2TP0NQPH.cjs.map +0 -1
  551. package/dist/chunks/NcSettingsSection-dEPaFL2w.mjs.map +0 -1
  552. package/dist/chunks/NcTextField-avDV7Ry_.mjs.map +0 -1
  553. package/dist/chunks/NcTextField-bz_keSKF.cjs.map +0 -1
  554. package/dist/chunks/NcTimezonePicker-YNWJXRnl.cjs +0 -7202
  555. package/dist/chunks/NcTimezonePicker-wLjOcbbU.mjs +0 -7209
  556. package/dist/chunks/NcUserStatusIcon--z2VUZIt.mjs +0 -171
  557. package/dist/chunks/NcUserStatusIcon-swCHU0tl.cjs +0 -163
  558. package/dist/chunks/_l10n-JmazR_zZ.mjs +0 -66
  559. package/dist/chunks/_l10n-JmazR_zZ.mjs.map +0 -1
  560. package/dist/chunks/_l10n-wK0o0jNS.cjs +0 -64
  561. package/dist/chunks/_l10n-wK0o0jNS.cjs.map +0 -1
  562. package/dist/chunks/referencePickerModal-9sd4Ftja.mjs.map +0 -1
  563. package/dist/chunks/referencePickerModal-gCkuVbeM.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcButton-7UKtzkX5.cjs","sources":["../../src/utils/isSlotPopulated.ts","../../src/components/NcButton/NcButton.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2023 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license AGPL-3.0-or-later\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\nimport type { VNode, VNodeNormalizedChildren } from 'vue'\nimport { Fragment, Comment, Text } from 'vue'\n\n/**\n * Checks whether a slot is populated\n *\n * @param vnodes The array of vnodes to check\n */\nconst isSlotPopulated = function(vnodes?: VNode[] | VNodeNormalizedChildren) {\n\treturn Array.isArray(vnodes) && vnodes.some(node => {\n\t\tif (node === null) return false\n\t\tif (typeof node === 'object') {\n\t\t\tconst vnode = node as VNode\n\t\t\tif (vnode.type === Comment) return false\n\t\t\tif (vnode.type === Fragment && !isSlotPopulated(vnode.children)) return false\n\t\t\tif (vnode.type === Text && !(vnode.children as string).trim()) return false\n\t\t}\n\t\treturn true\n\t})\n}\n\nexport default isSlotPopulated\n","<!--\n - @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@icloud.com>\n -\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\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<docs>\n\n### General description\nGeneral purpose button component. See props for different options.\n[Use material design icons only for icons](https://www.npmjs.com/package/vue-material-design-icons) and remember to set their size to 20.\n\n### Usage\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```\n<template>\n<div class=\"wrapper\">\n\t<!-- Style selector -->\n\t<div class=\"grid\">\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"text\" name=\"style\" type=\"radio\">Text only</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"icon\" name=\"style\" type=\"radio\">Icon only</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"icontext\" name=\"style\" type=\"radio\">Icon and text</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"disabled\" type=\"checkbox\">Disabled</NcCheckboxRadioSwitch>\n\t\t<!--<NcCheckboxRadioSwitch v-model=\"readonly\" type=\"checkbox\">Read-only</NcCheckboxRadioSwitch>-->\n\t</div>\n\n\t<h5>Standard buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary, no background</p>\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"tertiary-no-background\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"style.indexOf('text') !== -1\">Example text</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"tertiary\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"style.indexOf('text') !== -1\">Example text</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"style.indexOf('text') !== -1\">Example text</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"primary\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"style.indexOf('text') !== -1\">Example text</template>\n\t\t</NcButton>\n\t</div>\n\n\t<!-- Wide button -->\n\t<h5>Wide button</h5>\n\t<NcButton\n\t\t:disabled=\"disabled\"\n\t\t:readonly=\"readonly\"\n\t\t:wide=\"true\"\n\t\ttext=\"Example text\">\n\t\t<template #icon>\n\t\t\t<Video\n\t\t\t\t:size=\"20\" />\n\t\t</template>\n\t\tExample text\n\t</NcButton>\n\n\t<!-- Special buttons -->\n\t<h5>Special buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Success</p>\n\t\t<p>Warning</p>\n\t\t<p>Error</p>\n\t\t<p> - </p>\n\t\t<NcButton\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"success\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"warning\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"error\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</NcButton>\n\t\t<p> - </p>\n\t</div>\n</div>\n\n</template>\n<script>\nimport Video from 'vue-material-design-icons/Video'\n\nexport default {\n\tcomponents: {\n\t\tVideo,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false,\n\t\t\tdisabled: false,\n\t\t\treadonly: false,\n\t\t\tstyle: 'icontext',\n\t\t}\n\t}\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.wrapper {\n\tpadding: 0 12px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr 1fr 1fr;\n\tgrid-template-rows: repeat(auto-fill, auto);\n\tposition: relative;\n\tmargin: 12px 0;\n}\n\nh5 {\n\tfont-weight: bold;\n\tmargin: 40px 0 20px 0;\n}\n\np {\n\ttext-align: center;\n\tmargin: 4px 0 12px 0;\n\tcolor: var(--color-text-maxcontrast)\n}\n\nbutton {\n\tmargin: auto;\n}\n</style>\n```\n\n### Alignment\nSometimes it is required to change the icon alignment on the button, like for switching between pages as in following example:\n\n```vue\n<template>\n\t<div style=\"display: flex; flex-direction: column; gap: 12px;\">\n\t\t<NcButton aria-label=\"center (default)\" type=\"secondary\" wide>\n\t\t\t<template #icon>\n\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t</template>\n\t\t\tcenter (default)\n\t\t</NcButton>\n\t\t<NcButton alignment=\"center-reverse\" aria-label=\"center-reverse\" type=\"secondary\" wide>\n\t\t\t<template #icon>\n\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t</template>\n\t\t\tcenter-reverse\n\t\t</NcButton>\n\t\t<div style=\"display: flex; gap: 12px;\">\n\t\t\t<div style=\"display: flex; flex-direction: column; gap: 12px; flex: 1\">\n\t\t\t\t<NcButton alignment=\"start\" aria-label=\"start\" type=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tstart\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton alignment=\"start-reverse\" aria-label=\"start-reverse\" type=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tstart-reverse\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<div style=\"display: flex; flex-direction: column; gap: 12px; flex: 1\">\n\t\t\t\t<NcButton alignment=\"end\" aria-label=\"end\" type=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tend\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton alignment=\"end-reverse\" aria-label=\"end-reverse\" type=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tend-reverse\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport IconLeft from 'vue-material-design-icons/ArrowLeft.vue'\nimport IconRight from 'vue-material-design-icons/ArrowRight.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconLeft,\n\t\tIconRight,\n\t},\n}\n</script>\n```\n\n### Pressed state\n\nIt is possible to make the button stateful by adding a pressed state, e.g. if you like to create a favorite button.\nThe button will have the required `aria` attribute for accessibility and visual style (`primary` when pressed, and the configured type otherwise).\n\nDo not change `text` or `aria-label` of the pressed/unpressed button. See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-pressed\n\n```vue\n<template>\n\t<div>\n\t\t<div style=\"display: flex; gap: 12px;\">\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" aria-label=\"Favorite\" type=\"tertiary-no-background\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" type=\"tertiary\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tFavorite\n\t\t\t</NcButton>\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" aria-label=\"Favorite\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</div>\n\t\t<div>\n\t\t\tIt is {{ isFavorite ? 'a' : 'not a' }} favorite.\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport IconStar from 'vue-material-design-icons/Star.vue'\nimport IconStarOutline from 'vue-material-design-icons/StarOutline.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconStar,\n\t\tIconStarOutline,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisFavorite: false,\n\t\t}\n\t},\n\tmethods: {\n\t\ttoggleFavorite() {\n\t\t\tthis.isFavorite = !this.isFavorite\n\t\t},\n\t},\n}\n</script>\n```\n\n### Usage example: Sorting table columns\nThe standard way to implement sortable table column headers should be like this:\n\n```vue\n<template>\n\t<table>\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<th :aria-sorted=\"sortedName\" class=\"row-name\">\n\t\t\t\t\t<NcButton alignment=\"start-reverse\"\n\t\t\t\t\t\t:wide=\"true\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t@click=\"sortName\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconDown v-if=\"sortedName === 'ascending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t\t<IconUp v-else-if=\"sortedName === 'descending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<span class=\"table-header\">Name</span>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</th>\n\t\t\t\t<th :aria-sorted=\"sortedSize\" class=\"row-size\">\n\t\t\t\t\t<NcButton alignment=\"end\"\n\t\t\t\t\t\t:wide=\"true\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t@click=\"sortSize\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconDown v-if=\"sortedSize === 'ascending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t\t<IconUp v-else-if=\"sortedSize === 'descending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<span class=\"table-header\">Size</span>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</th>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td class=\"row-name\">Lorem ipsum</td>\n\t\t\t\t<td class=\"row-size\">8 MiB</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</template>\n<script>\nimport IconUp from 'vue-material-design-icons/MenuUp.vue'\nimport IconDown from 'vue-material-design-icons/MenuDown.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconUp,\n\t\tIconDown,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsortedName: null,\n\t\t\tsortedSize: null,\n\t\t}\n\t},\n\tmethods: {\n\t\tsortName() {\n\t\t\tif (this.sortedName === 'ascending') {\n\t\t\t\tthis.sortedName = 'descending'\n\t\t\t} else if (this.sortedName === 'descending') {\n\t\t\t\tthis.sortedName = null\n\t\t\t} else {\n\t\t\t\tthis.sortedName = 'ascending'\n\t\t\t}\n\t\t},\n\t\tsortSize() {\n\t\t\tif (this.sortedSize === 'ascending') {\n\t\t\t\tthis.sortedSize = 'descending'\n\t\t\t} else if (this.sortedSize === 'descending') {\n\t\t\t\tthis.sortedSize = null\n\t\t\t} else {\n\t\t\t\tthis.sortedSize = 'ascending'\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style>\ntable {\n\ttable-layout: fixed;\n\twidth: 300px;\n}\n\ntd.row-name {\n\tpadding-inline-start: 16px;\n}\n\ntd.row-size {\n\ttext-align: right;\n\tpadding-inline-end: 16px;\n}\n\n.table-header {\n\tfont-weight: normal;\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.sort-icon {\n\tcolor: var(--color-text-maxcontrast);\n\tposition: relative;\n\tinset-inline: -10px;\n}\n\n.row-size .sort-icon {\n\tinset-inline: 10px;\n}\n</style>\n```\n\n</docs>\n\n<script lang=\"ts\">\nimport type { PropType } from 'vue'\n\nimport { defineComponent, h, resolveComponent } from 'vue'\n\nimport isSlotPopulated from '../../utils/isSlotPopulated'\n\nconst BUTTON_ALIGNMENT = ['start', 'start-reverse', 'center', 'center-reverse', 'end', 'end-reverse'] as const\nconst BUTTON_TYPES = ['primary', 'secondary', 'tertiary', 'tertiary-no-background', 'tertiary-on-primary', 'error', 'warning', 'success'] as const\nconst NATIVE_TYPES = ['submit', 'reset', 'button'] as const\n\nexport default defineComponent({\n\tname: 'NcButton',\n\n\tinject: {\n\t\tgetNcPopoverTriggerAttrs: {\n\t\t\tfrom: 'NcPopover:trigger:attrs',\n\t\t\tdefault: () => () => ({}),\n\t\t},\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Set the text and icon alignment\n\t\t *\n\t\t * @default 'center'\n\t\t * @type {'start' | 'start-reverse' | 'center' | 'center-reverse' | 'end' | 'end-reverse'}\n\t\t */\n\t\talignment: {\n\t\t\ttype: String as PropType<typeof BUTTON_ALIGNMENT[number]>,\n\t\t\tdefault: 'center',\n\t\t\tvalidator(alignment) {\n\t\t\t\treturn typeof alignment === 'string' && (BUTTON_ALIGNMENT as readonly string[]).includes(alignment)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Toggles the disabled state of the button on and off.\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 * Specifies the button type\n\t\t * If left empty, the default button style will be applied.\n\t\t *\n\t\t * @default 'secondary'\n\t\t * @type {'primary' | 'secondary' | 'tertiary' | 'tertiary-no-background' | 'tertiary-on-primary' | 'error' | 'warning' | 'success'}\n\t\t */\n\t\ttype: {\n\t\t\ttype: String as PropType<typeof BUTTON_TYPES[number]>,\n\t\t\tvalidator(value) {\n\t\t\t\treturn typeof value === 'string' && (BUTTON_TYPES as readonly string[]).indexOf(value) !== -1\n\t\t\t},\n\t\t\tdefault: 'secondary',\n\t\t},\n\n\t\t/**\n\t\t * Specifies the button native type\n\t\t * If left empty, the default \"button\" type will be used.\n\t\t *\n\t\t * @type {'submit' | 'reset' | 'button'}\n\t\t */\n\t\tnativeType: {\n\t\t\ttype: String as PropType<typeof NATIVE_TYPES[number]>,\n\t\t\tvalidator(value) {\n\t\t\t\treturn typeof value === 'string' && (NATIVE_TYPES as readonly string[]).includes(value)\n\t\t\t},\n\t\t\tdefault: 'button',\n\t\t},\n\n\t\t/**\n\t\t * Specifies whether the button should span all the available width.\n\t\t * By default, buttons span the whole width of the container.\n\t\t */\n\t\twide: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Always try to provide an aria-label to your button. Make it more\n\t\t * specific than the button's name by provide some more context. E.g. if\n\t\t * the name of the button is \"send\" in the Mail app, the aria label could\n\t\t * be \"Send email\".\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Providing the href attribute turns the button component into an `a`\n\t\t * element.\n\t\t */\n\t\thref: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Providing the download attribute with href downloads file when clicking.\n\t\t */\n\t\tdownload: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Providing the to attribute turns the button component into a `router-link`\n\t\t * element. Takes precedence over the href attribute.\n\t\t */\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n\t\t * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n\t\t * otherwise root element will inherit incorrect aria-hidden.\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * The pressed state of the button if it has a checked state\n\t\t * This will add the `aria-pressed` attribute and for the button to have the primary style in checked state.\n\t\t *\n\t\t * Pressed state is not supported for links\n\t\t */\n\t\tpressed: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: ['update:pressed', 'click'],\n\n\tcomputed: {\n\t\t/**\n\t\t * The real type to be used for the button, enforces `primary` for pressed state and, if stateful button, any other type for not pressed state\n\t\t * Otherwise the type property is used.\n\t\t */\n\t\trealType() {\n\t\t\t// Force *primary* when pressed\n\t\t\tif (this.pressed) {\n\t\t\t\treturn 'primary'\n\t\t\t}\n\t\t\t// If not pressed but button is configured as stateful button then the type must not be primary\n\t\t\tif (this.pressed === false && this.type === 'primary') {\n\t\t\t\treturn 'secondary'\n\t\t\t}\n\t\t\treturn this.type\n\t\t},\n\n\t\t/**\n\t\t * The flexbox alignment of the button content\n\t\t */\n\t\tflexAlignment() {\n\t\t\treturn this.alignment.split('-')[0]\n\t\t},\n\n\t\t/**\n\t\t * If the button content should be reversed (icon on the end)\n\t\t */\n\t\tisReverseAligned() {\n\t\t\treturn this.alignment.includes('-')\n\t\t},\n\n\t\tncPopoverTriggerAttrs() {\n\t\t\treturn this.getNcPopoverTriggerAttrs()\n\t\t},\n\t},\n\n\t/**\n\t * The render function to display the component\n\t *\n\t * @return {object|undefined} The created VNode\n\t */\n\trender() {\n\t\tconst hasText = isSlotPopulated(this.$slots.default?.())\n\t\tconst hasIcon = isSlotPopulated(this.$slots.icon?.())\n\n\t\t/**\n\t\t * Always fill either the text prop or the ariaLabel one.\n\t\t */\n\t\tif (!hasText && !this.ariaLabel) {\n\t\t\tconsole.warn('You need to fill either the text or the ariaLabel props in the button component.', {\n\t\t\t\ttext: this.$slots.default?.()?.[0]?.children,\n\t\t\t\tariaLabel: this.ariaLabel,\n\t\t\t},\n\t\t\tthis)\n\t\t}\n\n\t\tconst isLink = (this.to || this.href)\n\n\t\tconst hasPressed = !isLink && typeof this.pressed === 'boolean'\n\n\t\tconst renderButton = ({ href, navigate, isActive }: {href?: string, navigate?: (ev: Event) => void, isActive?: boolean } = {}) => h(isLink ? 'a' : 'button',\n\t\t\t{\n\t\t\t\tclass: [\n\t\t\t\t\t'button-vue',\n\t\t\t\t\t{\n\t\t\t\t\t\t'button-vue--icon-only': hasIcon && !hasText,\n\t\t\t\t\t\t'button-vue--text-only': hasText && !hasIcon,\n\t\t\t\t\t\t'button-vue--icon-and-text': hasIcon && hasText,\n\t\t\t\t\t\t[`button-vue--vue-${this.realType}`]: this.realType,\n\t\t\t\t\t\t'button-vue--wide': this.wide,\n\t\t\t\t\t\t[`button-vue--${this.flexAlignment}`]: this.flexAlignment !== 'center',\n\t\t\t\t\t\t'button-vue--reverse': this.isReverseAligned,\n\t\t\t\t\t\tactive: isActive,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t'aria-label': this.ariaLabel,\n\t\t\t\t'aria-pressed': hasPressed ? this.pressed.toString() : undefined,\n\t\t\t\tdisabled: this.disabled,\n\t\t\t\ttype: isLink ? null : this.nativeType,\n\t\t\t\trole: isLink ? 'button' : null,\n\t\t\t\thref: this.to ? href : (this.href || null),\n\t\t\t\ttarget: isLink ? '_self' : null,\n\t\t\t\trel: isLink ? 'nofollow noreferrer noopener' : null,\n\t\t\t\tdownload: (!this.to && this.href && this.download) ? this.download : null,\n\t\t\t\t// If this button is used as a popover trigger, we need to apply trigger attrs, e.g. aria attributes\n\t\t\t\t...this.ncPopoverTriggerAttrs,\n\t\t\t\tonClick: ($event) => {\n\t\t\t\t\t// Update pressed prop on click if it is set\n\t\t\t\t\tif (hasPressed) {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Update the current pressed state of the button (if the `pressed` property was configured)\n\t\t\t\t\t\t *\n\t\t\t\t\t\t * @property {boolean} newValue The new `pressed`-state\n\t\t\t\t\t\t */\n\t\t\t\t\t\tthis.$emit('update:pressed', !this.pressed)\n\t\t\t\t\t}\n\t\t\t\t\t// We have to both navigate and emit the click event\n\t\t\t\t\tthis.$emit('click', $event)\n\t\t\t\t\tnavigate?.($event)\n\t\t\t\t},\n\t\t\t},\n\t\t\t[\n\t\t\t\th('span', { class: 'button-vue__wrapper' }, [\n\t\t\t\t\thasIcon\n\t\t\t\t\t\t? h('span', {\n\t\t\t\t\t\t\tclass: 'button-vue__icon',\n\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t'aria-hidden': 'true',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[this.$slots.icon?.()],\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: null,\n\t\t\t\t\thasText ? h('span', { class: 'button-vue__text' }, [this.$slots.default?.()]) : null,\n\t\t\t\t]),\n\t\t\t],\n\t\t)\n\n\t\t// If we have a router-link, we wrap the button in it\n\t\tif (this.to) {\n\t\t\treturn h(resolveComponent('router-link'), {\n\t\t\t\tcustom: true,\n\t\t\t\tto: this.to,\n\t\t\t}, {\n\t\t\t\tdefault: renderButton,\n\t\t\t})\n\t\t}\n\t\t// Otherwise we simply return the button\n\t\treturn renderButton()\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n\n.button-vue {\n\tposition: relative;\n\twidth: fit-content;\n\toverflow: hidden;\n\tborder: 0;\n\tpadding: 0;\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\tmin-height: $clickable-area;\n\tmin-width: $clickable-area;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t// Cursor pointer on element and all children\n\tcursor: pointer;\n\t& *,\n\tspan {\n\t\tcursor: pointer;\n\t}\n\tborder-radius: math.div($clickable-area, 2);\n\ttransition-property: color, border-color, background-color;\n\ttransition-duration: 0.1s;\n\ttransition-timing-function: linear;\n\n\t// No outline feedback for focus. Handled with a toggled class in js (see data)\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\t& * {\n\t\t\tcursor: default;\n\t\t}\n\t\topacity: $opacity_disabled;\n\t\t// Gives a wash out effect\n\t\tfilter: saturate($opacity_normal);\n\t}\n\n\t// Default button type\n\tcolor: var(--color-primary-element-light-text);\n\tbackground-color: var(--color-primary-element-light);\n\t&:hover:not(:disabled) {\n\t\tbackground-color: var(--color-primary-element-light-hover);\n\t}\n\n\t// Back to the default color for this button when active\n\t// TODO: add ripple effect\n\t&:active {\n\t\tbackground-color: var(--color-primary-element-light);\n\t}\n\n\t&__wrapper {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t}\n\n\t&--end &__wrapper {\n\t\tjustify-content: end;\n\t}\n\t&--start &__wrapper {\n\t\tjustify-content: start;\n\t}\n\t&--reverse &__wrapper {\n\t\tflex-direction: row-reverse;\n\t}\n\n\t&--reverse#{&}--icon-and-text {\n\t\tpadding-inline: calc(var(--default-grid-baseline) * 4) var(--default-grid-baseline);\n\t}\n\n\t&__icon {\n\t\theight: $clickable-area;\n\t\twidth: $clickable-area;\n\t\tmin-height: $clickable-area;\n\t\tmin-width: $clickable-area;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\n\t&__text {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 1px;\n\t\tpadding: 2px 0;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t// Icon-only button\n\t&--icon-only {\n\t\twidth: $clickable-area !important;\n\t}\n\n\t// Text-only button\n\t&--text-only {\n\t\tpadding: 0 12px;\n\t\t& .button-vue__text {\n\t\t\tmargin-left: 4px;\n\t\t\tmargin-right: 4px;\n\t\t}\n\t}\n\n\t// Icon and text button\n\t&--icon-and-text {\n\t\tpadding-block: 0;\n\t\tpadding-inline: var(--default-grid-baseline) calc(var(--default-grid-baseline) * 4);\n\t}\n\n\t// Wide button spans the whole width of the container\n\t&--wide {\n\t\twidth: 100%;\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\t&.button-vue--vue-tertiary-on-primary {\n\t\t\toutline: 2px solid var(--color-primary-element-text);\n\t\t\tborder-radius: var(--border-radius);\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Button types\n\n\t// Primary\n\t&--vue-primary {\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-element-text);\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Secondary\n\t&--vue-secondary {\n\t\tcolor: var(--color-primary-element-light-text);\n\t\tbackground-color: var(--color-primary-element-light);\n\t\t&:hover:not(:disabled) {\n\t\t\tcolor: var(--color-primary-element-light-text);\n\t\t\tbackground-color: var(--color-primary-element-light-hover);\n\t\t}\n\t}\n\n\t// Tertiary\n\t&--vue-tertiary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t// Tertiary, no background\n\t&--vue-tertiary-no-background {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Tertiary on primary color (like the header)\n\t&--vue-tertiary-on-primary {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: transparent;\n\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Success\n\t&--vue-success {\n\t\tbackground-color: var(--color-success);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// : add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t}\n\n\t// Warning\n\t&--vue-warning {\n\t\tbackground-color: var(--color-warning);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-warning);\n\t\t}\n\t}\n\n\t// Error\n\t&--vue-error {\n\t\tbackground-color: var(--color-error);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-error);\n\t\t}\n\t}\n}\n\n</style>\n"],"names":["isSlotPopulated","vnodes","node","vnode","vue","BUTTON_ALIGNMENT","BUTTON_TYPES","NATIVE_TYPES","_sfc_main","alignment","value","hasText","_b","_a","hasIcon","_d","_c","_h","_g","_f","_e","isLink","hasPressed","renderButton","href","navigate","isActive","$event","_b2","_a2","_d2","_c2"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import "../assets/NcButton-fqTN6SJK.css";
2
- import { Comment as p, Fragment as c, Text as f, defineComponent as h, h as n, resolveComponent as y } from "vue";
3
- import { _ as b } from "./_plugin-vue_export-helper-hUChTQA_.mjs";
1
+ import "../assets/NcButton-rKJYdkZn.css";
2
+ import { Comment as A, Fragment as w, Text as N, defineComponent as S, h as i, resolveComponent as B } from "vue";
3
+ import { _ as P } from "./_plugin-vue_export-helper-hUChTQA_.mjs";
4
4
  /**
5
5
  * @copyright Copyright (c) 2023 Raimund Schlüßler <raimund.schluessler@mailbox.org>
6
6
  *
@@ -22,23 +22,23 @@ import { _ as b } from "./_plugin-vue_export-helper-hUChTQA_.mjs";
22
22
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
23
23
  *
24
24
  */
25
- const s = function(t) {
25
+ const o = function(t) {
26
26
  return Array.isArray(t) && t.some((r) => {
27
27
  if (r === null)
28
28
  return !1;
29
29
  if (typeof r == "object") {
30
30
  const e = r;
31
- if (e.type === p || e.type === c && !s(e.children) || e.type === f && !e.children.trim())
31
+ if (e.type === A || e.type === w && !o(e.children) || e.type === N && !e.children.trim())
32
32
  return !1;
33
33
  }
34
34
  return !0;
35
35
  });
36
- }, m = ["start", "start-reverse", "center", "center-reverse", "end", "end-reverse"], g = ["primary", "secondary", "tertiary", "tertiary-no-background", "tertiary-on-primary", "error", "warning", "success"], v = ["submit", "reset", "button"], T = h({
36
+ }, L = ["start", "start-reverse", "center", "center-reverse", "end", "end-reverse"], k = ["primary", "secondary", "tertiary", "tertiary-no-background", "tertiary-on-primary", "error", "warning", "success"], $ = ["submit", "reset", "button"], C = S({
37
37
  name: "NcButton",
38
38
  inject: {
39
- ncPopoverTriggerAttrs: {
39
+ getNcPopoverTriggerAttrs: {
40
40
  from: "NcPopover:trigger:attrs",
41
- default: () => ({})
41
+ default: () => () => ({})
42
42
  }
43
43
  },
44
44
  props: {
@@ -52,7 +52,7 @@ const s = function(t) {
52
52
  type: String,
53
53
  default: "center",
54
54
  validator(t) {
55
- return typeof t == "string" && m.includes(t);
55
+ return typeof t == "string" && L.includes(t);
56
56
  }
57
57
  },
58
58
  /**
@@ -72,7 +72,7 @@ const s = function(t) {
72
72
  type: {
73
73
  type: String,
74
74
  validator(t) {
75
- return typeof t == "string" && g.indexOf(t) !== -1;
75
+ return typeof t == "string" && k.indexOf(t) !== -1;
76
76
  },
77
77
  default: "secondary"
78
78
  },
@@ -85,7 +85,7 @@ const s = function(t) {
85
85
  nativeType: {
86
86
  type: String,
87
87
  validator(t) {
88
- return typeof t == "string" && v.includes(t);
88
+ return typeof t == "string" && $.includes(t);
89
89
  },
90
90
  default: "button"
91
91
  },
@@ -170,6 +170,9 @@ const s = function(t) {
170
170
  */
171
171
  isReverseAligned() {
172
172
  return this.alignment.includes("-");
173
+ },
174
+ ncPopoverTriggerAttrs() {
175
+ return this.getNcPopoverTriggerAttrs();
173
176
  }
174
177
  },
175
178
  /**
@@ -178,71 +181,75 @@ const s = function(t) {
178
181
  * @return {object|undefined} The created VNode
179
182
  */
180
183
  render() {
181
- const t = s(this.$slots.default?.()), r = s(this.$slots.icon?.());
182
- !t && !this.ariaLabel && console.warn(
184
+ var t, r, e, a, u, d, c, p;
185
+ const s = o((r = (t = this.$slots).default) == null ? void 0 : r.call(t)), l = o((a = (e = this.$slots).icon) == null ? void 0 : a.call(e));
186
+ !s && !this.ariaLabel && console.warn(
183
187
  "You need to fill either the text or the ariaLabel props in the button component.",
184
188
  {
185
- text: this.$slots.default?.()?.[0]?.children,
189
+ text: (p = (c = (d = (u = this.$slots).default) == null ? void 0 : d.call(u)) == null ? void 0 : c[0]) == null ? void 0 : p.children,
186
190
  ariaLabel: this.ariaLabel
187
191
  },
188
192
  this
189
193
  );
190
- const e = this.to || this.href, i = !e && typeof this.pressed == "boolean", o = ({ href: a, navigate: u, isActive: d } = {}) => n(
191
- e ? "a" : "button",
192
- {
193
- class: [
194
- "button-vue",
195
- {
196
- "button-vue--icon-only": r && !t,
197
- "button-vue--text-only": t && !r,
198
- "button-vue--icon-and-text": r && t,
199
- [`button-vue--vue-${this.realType}`]: this.realType,
200
- "button-vue--wide": this.wide,
201
- [`button-vue--${this.flexAlignment}`]: this.flexAlignment !== "center",
202
- "button-vue--reverse": this.isReverseAligned,
203
- active: d
204
- }
205
- ],
206
- "aria-label": this.ariaLabel,
207
- "aria-pressed": i ? this.pressed.toString() : void 0,
208
- disabled: this.disabled,
209
- type: e ? null : this.nativeType,
210
- role: e ? "button" : null,
211
- href: this.to ? a : this.href || null,
212
- target: e ? "_self" : null,
213
- rel: e ? "nofollow noreferrer noopener" : null,
214
- download: !this.to && this.href && this.download ? this.download : null,
215
- // If this button is used as a popover trigger, we need to apply trigger attrs, e.g. aria attributes
216
- ...this.ncPopoverTriggerAttrs,
217
- onClick: (l) => {
218
- i && this.$emit("update:pressed", !this.pressed), this.$emit("click", l), u?.(l);
219
- }
220
- },
221
- [
222
- n("span", { class: "button-vue__wrapper" }, [
223
- r ? n(
224
- "span",
194
+ const n = this.to || this.href, f = !n && typeof this.pressed == "boolean", h = ({ href: T, navigate: y, isActive: x } = {}) => {
195
+ var v, g, b, m;
196
+ return i(
197
+ n ? "a" : "button",
198
+ {
199
+ class: [
200
+ "button-vue",
225
201
  {
226
- class: "button-vue__icon",
227
- attrs: {
228
- "aria-hidden": "true"
229
- }
230
- },
231
- [this.$slots.icon?.()]
232
- ) : null,
233
- t ? n("span", { class: "button-vue__text" }, [this.$slots.default?.()]) : null
234
- ])
235
- ]
236
- );
237
- return this.to ? n(y("router-link"), {
202
+ "button-vue--icon-only": l && !s,
203
+ "button-vue--text-only": s && !l,
204
+ "button-vue--icon-and-text": l && s,
205
+ ["button-vue--vue-".concat(this.realType)]: this.realType,
206
+ "button-vue--wide": this.wide,
207
+ ["button-vue--".concat(this.flexAlignment)]: this.flexAlignment !== "center",
208
+ "button-vue--reverse": this.isReverseAligned,
209
+ active: x
210
+ }
211
+ ],
212
+ "aria-label": this.ariaLabel,
213
+ "aria-pressed": f ? this.pressed.toString() : void 0,
214
+ disabled: this.disabled,
215
+ type: n ? null : this.nativeType,
216
+ role: n ? "button" : null,
217
+ href: this.to ? T : this.href || null,
218
+ target: n ? "_self" : null,
219
+ rel: n ? "nofollow noreferrer noopener" : null,
220
+ download: !this.to && this.href && this.download ? this.download : null,
221
+ // If this button is used as a popover trigger, we need to apply trigger attrs, e.g. aria attributes
222
+ ...this.ncPopoverTriggerAttrs,
223
+ onClick: (_) => {
224
+ f && this.$emit("update:pressed", !this.pressed), this.$emit("click", _), y == null || y(_);
225
+ }
226
+ },
227
+ [
228
+ i("span", { class: "button-vue__wrapper" }, [
229
+ l ? i(
230
+ "span",
231
+ {
232
+ class: "button-vue__icon",
233
+ attrs: {
234
+ "aria-hidden": "true"
235
+ }
236
+ },
237
+ [(g = (v = this.$slots).icon) == null ? void 0 : g.call(v)]
238
+ ) : null,
239
+ s ? i("span", { class: "button-vue__text" }, [(m = (b = this.$slots).default) == null ? void 0 : m.call(b)]) : null
240
+ ])
241
+ ]
242
+ );
243
+ };
244
+ return this.to ? i(B("router-link"), {
238
245
  custom: !0,
239
246
  to: this.to
240
247
  }, {
241
- default: o
242
- }) : o();
248
+ default: h
249
+ }) : h();
243
250
  }
244
- }), A = /* @__PURE__ */ b(T, [["__scopeId", "data-v-a8683752"]]);
251
+ }), j = /* @__PURE__ */ P(C, [["__scopeId", "data-v-4d186141"]]);
245
252
  export {
246
- A as N,
247
- s as i
253
+ j as N,
254
+ o as i
248
255
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcButton-YOXv3gFY.mjs","sources":["../../src/utils/isSlotPopulated.ts","../../src/components/NcButton/NcButton.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2023 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license AGPL-3.0-or-later\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\nimport type { VNode, VNodeNormalizedChildren } from 'vue'\nimport { Fragment, Comment, Text } from 'vue'\n\n/**\n * Checks whether a slot is populated\n *\n * @param vnodes The array of vnodes to check\n */\nconst isSlotPopulated = function(vnodes?: VNode[] | VNodeNormalizedChildren) {\n\treturn Array.isArray(vnodes) && vnodes.some(node => {\n\t\tif (node === null) return false\n\t\tif (typeof node === 'object') {\n\t\t\tconst vnode = node as VNode\n\t\t\tif (vnode.type === Comment) return false\n\t\t\tif (vnode.type === Fragment && !isSlotPopulated(vnode.children)) return false\n\t\t\tif (vnode.type === Text && !(vnode.children as string).trim()) return false\n\t\t}\n\t\treturn true\n\t})\n}\n\nexport default isSlotPopulated\n","<!--\n - @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@icloud.com>\n -\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\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<docs>\n\n### General description\nGeneral purpose button component. See props for different options.\n[Use material design icons only for icons](https://www.npmjs.com/package/vue-material-design-icons) and remember to set their size to 20.\n\n### Usage\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```\n<template>\n<div class=\"wrapper\">\n\t<!-- Style selector -->\n\t<div class=\"grid\">\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"text\" name=\"style\" type=\"radio\">Text only</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"icon\" name=\"style\" type=\"radio\">Icon only</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"icontext\" name=\"style\" type=\"radio\">Icon and text</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"disabled\" type=\"checkbox\">Disabled</NcCheckboxRadioSwitch>\n\t\t<!--<NcCheckboxRadioSwitch v-model=\"readonly\" type=\"checkbox\">Read-only</NcCheckboxRadioSwitch>-->\n\t</div>\n\n\t<h5>Standard buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary, no background</p>\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"tertiary-no-background\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"style.indexOf('text') !== -1\">Example text</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"tertiary\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"style.indexOf('text') !== -1\">Example text</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"style.indexOf('text') !== -1\">Example text</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"primary\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"style.indexOf('text') !== -1\">Example text</template>\n\t\t</NcButton>\n\t</div>\n\n\t<!-- Wide button -->\n\t<h5>Wide button</h5>\n\t<NcButton\n\t\t:disabled=\"disabled\"\n\t\t:readonly=\"readonly\"\n\t\t:wide=\"true\"\n\t\ttext=\"Example text\">\n\t\t<template #icon>\n\t\t\t<Video\n\t\t\t\t:size=\"20\" />\n\t\t</template>\n\t\tExample text\n\t</NcButton>\n\n\t<!-- Special buttons -->\n\t<h5>Special buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Success</p>\n\t\t<p>Warning</p>\n\t\t<p>Error</p>\n\t\t<p> - </p>\n\t\t<NcButton\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"success\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"warning\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\t:disabled=\"disabled\"\n\t\t\t:readonly=\"readonly\"\n\t\t\ttype=\"error\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</NcButton>\n\t\t<p> - </p>\n\t</div>\n</div>\n\n</template>\n<script>\nimport Video from 'vue-material-design-icons/Video'\n\nexport default {\n\tcomponents: {\n\t\tVideo,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false,\n\t\t\tdisabled: false,\n\t\t\treadonly: false,\n\t\t\tstyle: 'icontext',\n\t\t}\n\t}\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.wrapper {\n\tpadding: 0 12px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr 1fr 1fr;\n\tgrid-template-rows: repeat(auto-fill, auto);\n\tposition: relative;\n\tmargin: 12px 0;\n}\n\nh5 {\n\tfont-weight: bold;\n\tmargin: 40px 0 20px 0;\n}\n\np {\n\ttext-align: center;\n\tmargin: 4px 0 12px 0;\n\tcolor: var(--color-text-maxcontrast)\n}\n\nbutton {\n\tmargin: auto;\n}\n</style>\n```\n\n### Alignment\nSometimes it is required to change the icon alignment on the button, like for switching between pages as in following example:\n\n```vue\n<template>\n\t<div style=\"display: flex; flex-direction: column; gap: 12px;\">\n\t\t<NcButton aria-label=\"center (default)\" type=\"secondary\" wide>\n\t\t\t<template #icon>\n\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t</template>\n\t\t\tcenter (default)\n\t\t</NcButton>\n\t\t<NcButton alignment=\"center-reverse\" aria-label=\"center-reverse\" type=\"secondary\" wide>\n\t\t\t<template #icon>\n\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t</template>\n\t\t\tcenter-reverse\n\t\t</NcButton>\n\t\t<div style=\"display: flex; gap: 12px;\">\n\t\t\t<div style=\"display: flex; flex-direction: column; gap: 12px; flex: 1\">\n\t\t\t\t<NcButton alignment=\"start\" aria-label=\"start\" type=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tstart\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton alignment=\"start-reverse\" aria-label=\"start-reverse\" type=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tstart-reverse\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<div style=\"display: flex; flex-direction: column; gap: 12px; flex: 1\">\n\t\t\t\t<NcButton alignment=\"end\" aria-label=\"end\" type=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tend\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton alignment=\"end-reverse\" aria-label=\"end-reverse\" type=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tend-reverse\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport IconLeft from 'vue-material-design-icons/ArrowLeft.vue'\nimport IconRight from 'vue-material-design-icons/ArrowRight.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconLeft,\n\t\tIconRight,\n\t},\n}\n</script>\n```\n\n### Pressed state\n\nIt is possible to make the button stateful by adding a pressed state, e.g. if you like to create a favorite button.\nThe button will have the required `aria` attribute for accessibility and visual style (`primary` when pressed, and the configured type otherwise).\n\nDo not change `text` or `aria-label` of the pressed/unpressed button. See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-pressed\n\n```vue\n<template>\n\t<div>\n\t\t<div style=\"display: flex; gap: 12px;\">\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" aria-label=\"Favorite\" type=\"tertiary-no-background\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" type=\"tertiary\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tFavorite\n\t\t\t</NcButton>\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" aria-label=\"Favorite\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</div>\n\t\t<div>\n\t\t\tIt is {{ isFavorite ? 'a' : 'not a' }} favorite.\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport IconStar from 'vue-material-design-icons/Star.vue'\nimport IconStarOutline from 'vue-material-design-icons/StarOutline.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconStar,\n\t\tIconStarOutline,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisFavorite: false,\n\t\t}\n\t},\n\tmethods: {\n\t\ttoggleFavorite() {\n\t\t\tthis.isFavorite = !this.isFavorite\n\t\t},\n\t},\n}\n</script>\n```\n\n### Usage example: Sorting table columns\nThe standard way to implement sortable table column headers should be like this:\n\n```vue\n<template>\n\t<table>\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<th :aria-sorted=\"sortedName\" class=\"row-name\">\n\t\t\t\t\t<NcButton alignment=\"start-reverse\"\n\t\t\t\t\t\t:wide=\"true\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t@click=\"sortName\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconDown v-if=\"sortedName === 'ascending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t\t<IconUp v-else-if=\"sortedName === 'descending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<span class=\"table-header\">Name</span>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</th>\n\t\t\t\t<th :aria-sorted=\"sortedSize\" class=\"row-size\">\n\t\t\t\t\t<NcButton alignment=\"end\"\n\t\t\t\t\t\t:wide=\"true\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t@click=\"sortSize\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconDown v-if=\"sortedSize === 'ascending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t\t<IconUp v-else-if=\"sortedSize === 'descending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<span class=\"table-header\">Size</span>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</th>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td class=\"row-name\">Lorem ipsum</td>\n\t\t\t\t<td class=\"row-size\">8 MiB</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</template>\n<script>\nimport IconUp from 'vue-material-design-icons/MenuUp.vue'\nimport IconDown from 'vue-material-design-icons/MenuDown.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconUp,\n\t\tIconDown,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsortedName: null,\n\t\t\tsortedSize: null,\n\t\t}\n\t},\n\tmethods: {\n\t\tsortName() {\n\t\t\tif (this.sortedName === 'ascending') {\n\t\t\t\tthis.sortedName = 'descending'\n\t\t\t} else if (this.sortedName === 'descending') {\n\t\t\t\tthis.sortedName = null\n\t\t\t} else {\n\t\t\t\tthis.sortedName = 'ascending'\n\t\t\t}\n\t\t},\n\t\tsortSize() {\n\t\t\tif (this.sortedSize === 'ascending') {\n\t\t\t\tthis.sortedSize = 'descending'\n\t\t\t} else if (this.sortedSize === 'descending') {\n\t\t\t\tthis.sortedSize = null\n\t\t\t} else {\n\t\t\t\tthis.sortedSize = 'ascending'\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style>\ntable {\n\ttable-layout: fixed;\n\twidth: 300px;\n}\n\ntd.row-name {\n\tpadding-inline-start: 16px;\n}\n\ntd.row-size {\n\ttext-align: right;\n\tpadding-inline-end: 16px;\n}\n\n.table-header {\n\tfont-weight: normal;\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.sort-icon {\n\tcolor: var(--color-text-maxcontrast);\n\tposition: relative;\n\tinset-inline: -10px;\n}\n\n.row-size .sort-icon {\n\tinset-inline: 10px;\n}\n</style>\n```\n\n</docs>\n\n<script lang=\"ts\">\nimport type { PropType } from 'vue'\n\nimport { defineComponent, h, resolveComponent } from 'vue'\n\nimport isSlotPopulated from '../../utils/isSlotPopulated'\n\nconst BUTTON_ALIGNMENT = ['start', 'start-reverse', 'center', 'center-reverse', 'end', 'end-reverse'] as const\nconst BUTTON_TYPES = ['primary', 'secondary', 'tertiary', 'tertiary-no-background', 'tertiary-on-primary', 'error', 'warning', 'success'] as const\nconst NATIVE_TYPES = ['submit', 'reset', 'button'] as const\n\nexport default defineComponent({\n\tname: 'NcButton',\n\n\tinject: {\n\t\tgetNcPopoverTriggerAttrs: {\n\t\t\tfrom: 'NcPopover:trigger:attrs',\n\t\t\tdefault: () => () => ({}),\n\t\t},\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Set the text and icon alignment\n\t\t *\n\t\t * @default 'center'\n\t\t * @type {'start' | 'start-reverse' | 'center' | 'center-reverse' | 'end' | 'end-reverse'}\n\t\t */\n\t\talignment: {\n\t\t\ttype: String as PropType<typeof BUTTON_ALIGNMENT[number]>,\n\t\t\tdefault: 'center',\n\t\t\tvalidator(alignment) {\n\t\t\t\treturn typeof alignment === 'string' && (BUTTON_ALIGNMENT as readonly string[]).includes(alignment)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Toggles the disabled state of the button on and off.\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 * Specifies the button type\n\t\t * If left empty, the default button style will be applied.\n\t\t *\n\t\t * @default 'secondary'\n\t\t * @type {'primary' | 'secondary' | 'tertiary' | 'tertiary-no-background' | 'tertiary-on-primary' | 'error' | 'warning' | 'success'}\n\t\t */\n\t\ttype: {\n\t\t\ttype: String as PropType<typeof BUTTON_TYPES[number]>,\n\t\t\tvalidator(value) {\n\t\t\t\treturn typeof value === 'string' && (BUTTON_TYPES as readonly string[]).indexOf(value) !== -1\n\t\t\t},\n\t\t\tdefault: 'secondary',\n\t\t},\n\n\t\t/**\n\t\t * Specifies the button native type\n\t\t * If left empty, the default \"button\" type will be used.\n\t\t *\n\t\t * @type {'submit' | 'reset' | 'button'}\n\t\t */\n\t\tnativeType: {\n\t\t\ttype: String as PropType<typeof NATIVE_TYPES[number]>,\n\t\t\tvalidator(value) {\n\t\t\t\treturn typeof value === 'string' && (NATIVE_TYPES as readonly string[]).includes(value)\n\t\t\t},\n\t\t\tdefault: 'button',\n\t\t},\n\n\t\t/**\n\t\t * Specifies whether the button should span all the available width.\n\t\t * By default, buttons span the whole width of the container.\n\t\t */\n\t\twide: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Always try to provide an aria-label to your button. Make it more\n\t\t * specific than the button's name by provide some more context. E.g. if\n\t\t * the name of the button is \"send\" in the Mail app, the aria label could\n\t\t * be \"Send email\".\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Providing the href attribute turns the button component into an `a`\n\t\t * element.\n\t\t */\n\t\thref: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Providing the download attribute with href downloads file when clicking.\n\t\t */\n\t\tdownload: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Providing the to attribute turns the button component into a `router-link`\n\t\t * element. Takes precedence over the href attribute.\n\t\t */\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n\t\t * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n\t\t * otherwise root element will inherit incorrect aria-hidden.\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * The pressed state of the button if it has a checked state\n\t\t * This will add the `aria-pressed` attribute and for the button to have the primary style in checked state.\n\t\t *\n\t\t * Pressed state is not supported for links\n\t\t */\n\t\tpressed: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: ['update:pressed', 'click'],\n\n\tcomputed: {\n\t\t/**\n\t\t * The real type to be used for the button, enforces `primary` for pressed state and, if stateful button, any other type for not pressed state\n\t\t * Otherwise the type property is used.\n\t\t */\n\t\trealType() {\n\t\t\t// Force *primary* when pressed\n\t\t\tif (this.pressed) {\n\t\t\t\treturn 'primary'\n\t\t\t}\n\t\t\t// If not pressed but button is configured as stateful button then the type must not be primary\n\t\t\tif (this.pressed === false && this.type === 'primary') {\n\t\t\t\treturn 'secondary'\n\t\t\t}\n\t\t\treturn this.type\n\t\t},\n\n\t\t/**\n\t\t * The flexbox alignment of the button content\n\t\t */\n\t\tflexAlignment() {\n\t\t\treturn this.alignment.split('-')[0]\n\t\t},\n\n\t\t/**\n\t\t * If the button content should be reversed (icon on the end)\n\t\t */\n\t\tisReverseAligned() {\n\t\t\treturn this.alignment.includes('-')\n\t\t},\n\n\t\tncPopoverTriggerAttrs() {\n\t\t\treturn this.getNcPopoverTriggerAttrs()\n\t\t},\n\t},\n\n\t/**\n\t * The render function to display the component\n\t *\n\t * @return {object|undefined} The created VNode\n\t */\n\trender() {\n\t\tconst hasText = isSlotPopulated(this.$slots.default?.())\n\t\tconst hasIcon = isSlotPopulated(this.$slots.icon?.())\n\n\t\t/**\n\t\t * Always fill either the text prop or the ariaLabel one.\n\t\t */\n\t\tif (!hasText && !this.ariaLabel) {\n\t\t\tconsole.warn('You need to fill either the text or the ariaLabel props in the button component.', {\n\t\t\t\ttext: this.$slots.default?.()?.[0]?.children,\n\t\t\t\tariaLabel: this.ariaLabel,\n\t\t\t},\n\t\t\tthis)\n\t\t}\n\n\t\tconst isLink = (this.to || this.href)\n\n\t\tconst hasPressed = !isLink && typeof this.pressed === 'boolean'\n\n\t\tconst renderButton = ({ href, navigate, isActive }: {href?: string, navigate?: (ev: Event) => void, isActive?: boolean } = {}) => h(isLink ? 'a' : 'button',\n\t\t\t{\n\t\t\t\tclass: [\n\t\t\t\t\t'button-vue',\n\t\t\t\t\t{\n\t\t\t\t\t\t'button-vue--icon-only': hasIcon && !hasText,\n\t\t\t\t\t\t'button-vue--text-only': hasText && !hasIcon,\n\t\t\t\t\t\t'button-vue--icon-and-text': hasIcon && hasText,\n\t\t\t\t\t\t[`button-vue--vue-${this.realType}`]: this.realType,\n\t\t\t\t\t\t'button-vue--wide': this.wide,\n\t\t\t\t\t\t[`button-vue--${this.flexAlignment}`]: this.flexAlignment !== 'center',\n\t\t\t\t\t\t'button-vue--reverse': this.isReverseAligned,\n\t\t\t\t\t\tactive: isActive,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t'aria-label': this.ariaLabel,\n\t\t\t\t'aria-pressed': hasPressed ? this.pressed.toString() : undefined,\n\t\t\t\tdisabled: this.disabled,\n\t\t\t\ttype: isLink ? null : this.nativeType,\n\t\t\t\trole: isLink ? 'button' : null,\n\t\t\t\thref: this.to ? href : (this.href || null),\n\t\t\t\ttarget: isLink ? '_self' : null,\n\t\t\t\trel: isLink ? 'nofollow noreferrer noopener' : null,\n\t\t\t\tdownload: (!this.to && this.href && this.download) ? this.download : null,\n\t\t\t\t// If this button is used as a popover trigger, we need to apply trigger attrs, e.g. aria attributes\n\t\t\t\t...this.ncPopoverTriggerAttrs,\n\t\t\t\tonClick: ($event) => {\n\t\t\t\t\t// Update pressed prop on click if it is set\n\t\t\t\t\tif (hasPressed) {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Update the current pressed state of the button (if the `pressed` property was configured)\n\t\t\t\t\t\t *\n\t\t\t\t\t\t * @property {boolean} newValue The new `pressed`-state\n\t\t\t\t\t\t */\n\t\t\t\t\t\tthis.$emit('update:pressed', !this.pressed)\n\t\t\t\t\t}\n\t\t\t\t\t// We have to both navigate and emit the click event\n\t\t\t\t\tthis.$emit('click', $event)\n\t\t\t\t\tnavigate?.($event)\n\t\t\t\t},\n\t\t\t},\n\t\t\t[\n\t\t\t\th('span', { class: 'button-vue__wrapper' }, [\n\t\t\t\t\thasIcon\n\t\t\t\t\t\t? h('span', {\n\t\t\t\t\t\t\tclass: 'button-vue__icon',\n\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t'aria-hidden': 'true',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[this.$slots.icon?.()],\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: null,\n\t\t\t\t\thasText ? h('span', { class: 'button-vue__text' }, [this.$slots.default?.()]) : null,\n\t\t\t\t]),\n\t\t\t],\n\t\t)\n\n\t\t// If we have a router-link, we wrap the button in it\n\t\tif (this.to) {\n\t\t\treturn h(resolveComponent('router-link'), {\n\t\t\t\tcustom: true,\n\t\t\t\tto: this.to,\n\t\t\t}, {\n\t\t\t\tdefault: renderButton,\n\t\t\t})\n\t\t}\n\t\t// Otherwise we simply return the button\n\t\treturn renderButton()\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n\n.button-vue {\n\tposition: relative;\n\twidth: fit-content;\n\toverflow: hidden;\n\tborder: 0;\n\tpadding: 0;\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\tmin-height: $clickable-area;\n\tmin-width: $clickable-area;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t// Cursor pointer on element and all children\n\tcursor: pointer;\n\t& *,\n\tspan {\n\t\tcursor: pointer;\n\t}\n\tborder-radius: math.div($clickable-area, 2);\n\ttransition-property: color, border-color, background-color;\n\ttransition-duration: 0.1s;\n\ttransition-timing-function: linear;\n\n\t// No outline feedback for focus. Handled with a toggled class in js (see data)\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\t& * {\n\t\t\tcursor: default;\n\t\t}\n\t\topacity: $opacity_disabled;\n\t\t// Gives a wash out effect\n\t\tfilter: saturate($opacity_normal);\n\t}\n\n\t// Default button type\n\tcolor: var(--color-primary-element-light-text);\n\tbackground-color: var(--color-primary-element-light);\n\t&:hover:not(:disabled) {\n\t\tbackground-color: var(--color-primary-element-light-hover);\n\t}\n\n\t// Back to the default color for this button when active\n\t// TODO: add ripple effect\n\t&:active {\n\t\tbackground-color: var(--color-primary-element-light);\n\t}\n\n\t&__wrapper {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t}\n\n\t&--end &__wrapper {\n\t\tjustify-content: end;\n\t}\n\t&--start &__wrapper {\n\t\tjustify-content: start;\n\t}\n\t&--reverse &__wrapper {\n\t\tflex-direction: row-reverse;\n\t}\n\n\t&--reverse#{&}--icon-and-text {\n\t\tpadding-inline: calc(var(--default-grid-baseline) * 4) var(--default-grid-baseline);\n\t}\n\n\t&__icon {\n\t\theight: $clickable-area;\n\t\twidth: $clickable-area;\n\t\tmin-height: $clickable-area;\n\t\tmin-width: $clickable-area;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\n\t&__text {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 1px;\n\t\tpadding: 2px 0;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t// Icon-only button\n\t&--icon-only {\n\t\twidth: $clickable-area !important;\n\t}\n\n\t// Text-only button\n\t&--text-only {\n\t\tpadding: 0 12px;\n\t\t& .button-vue__text {\n\t\t\tmargin-left: 4px;\n\t\t\tmargin-right: 4px;\n\t\t}\n\t}\n\n\t// Icon and text button\n\t&--icon-and-text {\n\t\tpadding-block: 0;\n\t\tpadding-inline: var(--default-grid-baseline) calc(var(--default-grid-baseline) * 4);\n\t}\n\n\t// Wide button spans the whole width of the container\n\t&--wide {\n\t\twidth: 100%;\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\t&.button-vue--vue-tertiary-on-primary {\n\t\t\toutline: 2px solid var(--color-primary-element-text);\n\t\t\tborder-radius: var(--border-radius);\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Button types\n\n\t// Primary\n\t&--vue-primary {\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-element-text);\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Secondary\n\t&--vue-secondary {\n\t\tcolor: var(--color-primary-element-light-text);\n\t\tbackground-color: var(--color-primary-element-light);\n\t\t&:hover:not(:disabled) {\n\t\t\tcolor: var(--color-primary-element-light-text);\n\t\t\tbackground-color: var(--color-primary-element-light-hover);\n\t\t}\n\t}\n\n\t// Tertiary\n\t&--vue-tertiary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t// Tertiary, no background\n\t&--vue-tertiary-no-background {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Tertiary on primary color (like the header)\n\t&--vue-tertiary-on-primary {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: transparent;\n\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Success\n\t&--vue-success {\n\t\tbackground-color: var(--color-success);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// : add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t}\n\n\t// Warning\n\t&--vue-warning {\n\t\tbackground-color: var(--color-warning);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-warning);\n\t\t}\n\t}\n\n\t// Error\n\t&--vue-error {\n\t\tbackground-color: var(--color-error);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-error);\n\t\t}\n\t}\n}\n\n</style>\n"],"names":["isSlotPopulated","vnodes","node","vnode","Comment","Fragment","Text","BUTTON_ALIGNMENT","BUTTON_TYPES","NATIVE_TYPES","_sfc_main","defineComponent","alignment","value","hasText","_b","_a","hasIcon","_d","_c","_h","_g","_f","_e","isLink","hasPressed","renderButton","href","navigate","isActive","h","$event","_b2","_a2","_d2","_c2","resolveComponent"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- const e = require("vue"), o = require("./_plugin-vue_export-helper-xG2iG1wl.cjs"), k = require("./NcLoadingIcon-Fwid-wWE.cjs");
3
- require("./NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_c3135eb8_lang-RYt-H2PA.cjs");
4
- const f = require("./GenRandomId-ULxaMkkr.cjs"), m = require("./_l10n-wK0o0jNS.cjs"), _ = {
2
+ const e = require("vue"), o = require("./_plugin-vue_export-helper-xG2iG1wl.cjs"), f = require("./NcLoadingIcon-Fwid-wWE.cjs");
3
+ require("./NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-togIrFzp.cjs");
4
+ const k = require("./GenRandomId-ULxaMkkr.cjs"), m = require("./_l10n-Fl7RzbcZ.cjs"), _ = {
5
5
  name: "CheckboxBlankOutlineIcon",
6
6
  emits: ["click"],
7
7
  props: {
@@ -20,7 +20,7 @@ const f = require("./GenRandomId-ULxaMkkr.cjs"), m = require("./_l10n-wK0o0jNS.c
20
20
  }, g = ["aria-hidden", "aria-label"], b = ["fill", "width", "height"], y = { d: "M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z" }, B = { key: 0 };
21
21
  function C(i, l, t, c, r, n) {
22
22
  return e.openBlock(), e.createElementBlock("span", e.mergeProps(i.$attrs, {
23
- "aria-hidden": !t.title,
23
+ "aria-hidden": t.title ? null : !0,
24
24
  "aria-label": t.title,
25
25
  class: "material-design-icon checkbox-blank-outline-icon",
26
26
  role: "img",
@@ -55,10 +55,10 @@ const p = /* @__PURE__ */ o._export_sfc(_, [["render", C]]), x = {
55
55
  default: 24
56
56
  }
57
57
  }
58
- }, w = ["aria-hidden", "aria-label"], V = ["fill", "width", "height"], v = { d: "M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z" }, S = { key: 0 };
58
+ }, w = ["aria-hidden", "aria-label"], v = ["fill", "width", "height"], V = { d: "M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z" }, S = { key: 0 };
59
59
  function A(i, l, t, c, r, n) {
60
60
  return e.openBlock(), e.createElementBlock("span", e.mergeProps(i.$attrs, {
61
- "aria-hidden": !t.title,
61
+ "aria-hidden": t.title ? null : !0,
62
62
  "aria-label": t.title,
63
63
  class: "material-design-icon minus-box-icon",
64
64
  role: "img",
@@ -71,10 +71,10 @@ function A(i, l, t, c, r, n) {
71
71
  height: t.size,
72
72
  viewBox: "0 0 24 24"
73
73
  }, [
74
- e.createElementVNode("path", v, [
74
+ e.createElementVNode("path", V, [
75
75
  t.title ? (e.openBlock(), e.createElementBlock("title", S, e.toDisplayString(t.title), 1)) : e.createCommentVNode("", !0)
76
76
  ])
77
- ], 8, V))
77
+ ], 8, v))
78
78
  ], 16, w);
79
79
  }
80
80
  const E = /* @__PURE__ */ o._export_sfc(x, [["render", A]]), N = {
@@ -96,7 +96,7 @@ const E = /* @__PURE__ */ o._export_sfc(x, [["render", A]]), N = {
96
96
  }, z = ["aria-hidden", "aria-label"], T = ["fill", "width", "height"], I = { d: "M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z" }, M = { key: 0 };
97
97
  function H(i, l, t, c, r, n) {
98
98
  return e.openBlock(), e.createElementBlock("span", e.mergeProps(i.$attrs, {
99
- "aria-hidden": !t.title,
99
+ "aria-hidden": t.title ? null : !0,
100
100
  "aria-label": t.title,
101
101
  class: "material-design-icon checkbox-marked-icon",
102
102
  role: "img",
@@ -134,7 +134,7 @@ const L = /* @__PURE__ */ o._export_sfc(N, [["render", H]]), P = {
134
134
  }, R = ["aria-hidden", "aria-label"], q = ["fill", "width", "height"], D = { d: "M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z" }, O = { key: 0 };
135
135
  function Z(i, l, t, c, r, n) {
136
136
  return e.openBlock(), e.createElementBlock("span", e.mergeProps(i.$attrs, {
137
- "aria-hidden": !t.title,
137
+ "aria-hidden": t.title ? null : !0,
138
138
  "aria-label": t.title,
139
139
  class: "material-design-icon radiobox-marked-icon",
140
140
  role: "img",
@@ -172,7 +172,7 @@ const G = /* @__PURE__ */ o._export_sfc(P, [["render", Z]]), W = {
172
172
  }, Y = ["aria-hidden", "aria-label"], j = ["fill", "width", "height"], K = { d: "M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" }, U = { key: 0 };
173
173
  function X(i, l, t, c, r, n) {
174
174
  return e.openBlock(), e.createElementBlock("span", e.mergeProps(i.$attrs, {
175
- "aria-hidden": !t.title,
175
+ "aria-hidden": t.title ? null : !0,
176
176
  "aria-label": t.title,
177
177
  class: "material-design-icon radiobox-blank-icon",
178
178
  role: "img",
@@ -210,7 +210,7 @@ const F = /* @__PURE__ */ o._export_sfc(W, [["render", X]]), J = {
210
210
  }, Q = ["aria-hidden", "aria-label"], $ = ["fill", "width", "height"], ee = { d: "M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z" }, te = { key: 0 };
211
211
  function ie(i, l, t, c, r, n) {
212
212
  return e.openBlock(), e.createElementBlock("span", e.mergeProps(i.$attrs, {
213
- "aria-hidden": !t.title,
213
+ "aria-hidden": t.title ? null : !0,
214
214
  "aria-label": t.title,
215
215
  class: "material-design-icon toggle-switch-off-icon",
216
216
  role: "img",
@@ -248,7 +248,7 @@ const ne = /* @__PURE__ */ o._export_sfc(J, [["render", ie]]), le = {
248
248
  }, ae = ["aria-hidden", "aria-label"], oe = ["fill", "width", "height"], ce = { d: "M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z" }, re = { key: 0 };
249
249
  function se(i, l, t, c, r, n) {
250
250
  return e.openBlock(), e.createElementBlock("span", e.mergeProps(i.$attrs, {
251
- "aria-hidden": !t.title,
251
+ "aria-hidden": t.title ? null : !0,
252
252
  "aria-label": t.title,
253
253
  class: "material-design-icon toggle-switch-icon",
254
254
  role: "img",
@@ -270,7 +270,7 @@ function se(i, l, t, c, r, n) {
270
270
  const de = /* @__PURE__ */ o._export_sfc(le, [["render", se]]), d = "checkbox", u = "radio", s = "switch", h = "button", ue = {
271
271
  name: "NcCheckboxContent",
272
272
  components: {
273
- NcLoadingIcon: k.NcLoadingIcon
273
+ NcLoadingIcon: f.NcLoadingIcon
274
274
  },
275
275
  props: {
276
276
  /**
@@ -365,7 +365,7 @@ const de = /* @__PURE__ */ o._export_sfc(le, [["render", se]]), d = "checkbox",
365
365
  function me(i, l, t, c, r, n) {
366
366
  const a = e.resolveComponent("NcLoadingIcon");
367
367
  return e.openBlock(), e.createElementBlock("span", {
368
- id: n.isButtonType ? void 0 : `${t.id}-label`,
368
+ id: n.isButtonType ? void 0 : "".concat(t.id, "-label"),
369
369
  class: e.normalizeClass(["checkbox-content", {
370
370
  ["checkbox-content-" + t.type]: !0,
371
371
  "checkbox-content--button-variant": t.buttonVariant,
@@ -399,10 +399,10 @@ function me(i, l, t, c, r, n) {
399
399
  ], 2)) : e.createCommentVNode("", !0)
400
400
  ], 10, he);
401
401
  }
402
- const ke = /* @__PURE__ */ o._export_sfc(ue, [["render", me], ["__scopeId", "data-v-adf98230"]]), fe = {
402
+ const fe = /* @__PURE__ */ o._export_sfc(ue, [["render", me], ["__scopeId", "data-v-2672ad1a"]]), ke = {
403
403
  name: "NcCheckboxRadioSwitch",
404
404
  components: {
405
- NcCheckboxContent: ke
405
+ NcCheckboxContent: fe
406
406
  },
407
407
  props: {
408
408
  /**
@@ -410,7 +410,7 @@ const ke = /* @__PURE__ */ o._export_sfc(ue, [["render", me], ["__scopeId", "dat
410
410
  */
411
411
  id: {
412
412
  type: String,
413
- default: () => "checkbox-radio-switch-" + f.GenRandomId(),
413
+ default: () => "checkbox-radio-switch-" + k.GenRandomId(),
414
414
  validator: (i) => i.trim() !== ""
415
415
  },
416
416
  /**
@@ -613,11 +613,11 @@ const ke = /* @__PURE__ */ o._export_sfc(ue, [["render", me], ["__scopeId", "dat
613
613
  return;
614
614
  }
615
615
  if (typeof this.modelValue == "boolean") {
616
- this.$emit("update:modelValue", !this.isChecked);
616
+ this.$emit("update:modelValue", !this.modelValue);
617
617
  return;
618
618
  }
619
619
  const i = this.getInputsSet().filter((l) => l.checked).map((l) => l.value);
620
- this.$emit("update:modelValue", i);
620
+ i.includes(this.value) ? this.$emit("update:modelValue", i.filter((l) => l !== this.value)) : this.$emit("update:modelValue", [...i, this.value]);
621
621
  },
622
622
  /**
623
623
  * Get the input set based on this name
@@ -651,7 +651,7 @@ function ge(i, l, t, c, r, n) {
651
651
  n.isButtonType ? e.createCommentVNode("", !0) : (e.openBlock(), e.createElementBlock("input", e.mergeProps({
652
652
  key: 0,
653
653
  id: t.id,
654
- "aria-labelledby": !n.isButtonType && !t.ariaLabel ? `${t.id}-label` : null,
654
+ "aria-labelledby": !n.isButtonType && !t.ariaLabel ? "".concat(t.id, "-label") : null,
655
655
  "aria-label": t.ariaLabel || void 0,
656
656
  class: "checkbox-radio-switch__input",
657
657
  disabled: t.disabled,
@@ -692,5 +692,5 @@ function ge(i, l, t, c, r, n) {
692
692
  _: 3
693
693
  }, 16, ["id", "aria-label", "class", "style", "type"]);
694
694
  }
695
- const be = /* @__PURE__ */ o._export_sfc(fe, [["render", ge], ["__scopeId", "data-v-c3135eb8"]]);
695
+ const be = /* @__PURE__ */ o._export_sfc(ke, [["render", ge], ["__scopeId", "data-v-48c28b96"]]);
696
696
  exports.NcCheckboxRadioSwitch = be;